MobilePopupInner.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = void 0;
  7. var _vue = require("vue");
  8. var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
  9. var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  10. var _propsUtil = require("../../_util/props-util");
  11. var _classNames = _interopRequireDefault(require("../../_util/classNames"));
  12. var _interface = require("./interface");
  13. var _default = exports.default = (0, _vue.defineComponent)({
  14. compatConfig: {
  15. MODE: 3
  16. },
  17. name: 'MobilePopupInner',
  18. inheritAttrs: false,
  19. props: _interface.mobileProps,
  20. emits: ['mouseenter', 'mouseleave', 'mousedown', 'touchstart', 'align'],
  21. setup(props, _ref) {
  22. let {
  23. expose,
  24. slots
  25. } = _ref;
  26. const elementRef = (0, _vue.ref)();
  27. expose({
  28. forceAlign: () => {},
  29. getElement: () => elementRef.value
  30. });
  31. return () => {
  32. var _a;
  33. const {
  34. zIndex,
  35. visible,
  36. prefixCls,
  37. mobile: {
  38. popupClassName,
  39. popupStyle,
  40. popupMotion = {},
  41. popupRender
  42. } = {}
  43. } = props;
  44. // ======================== Render ========================
  45. const mergedStyle = (0, _extends2.default)({
  46. zIndex
  47. }, popupStyle);
  48. let childNode = (0, _propsUtil.flattenChildren)((_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots));
  49. // Wrapper when multiple children
  50. if (childNode.length > 1) {
  51. const _childNode = function () {
  52. return childNode;
  53. }();
  54. childNode = (0, _vue.createVNode)("div", {
  55. "class": `${prefixCls}-content`
  56. }, [childNode]);
  57. }
  58. // Mobile support additional render
  59. if (popupRender) {
  60. childNode = popupRender(childNode);
  61. }
  62. const mergedClassName = (0, _classNames.default)(prefixCls, popupClassName);
  63. return (0, _vue.createVNode)(_vue.Transition, (0, _objectSpread2.default)({
  64. "ref": elementRef
  65. }, popupMotion), {
  66. default: () => [visible ? (0, _vue.createVNode)("div", {
  67. "class": mergedClassName,
  68. "style": mergedStyle
  69. }, [childNode]) : null]
  70. });
  71. };
  72. }
  73. });