MobilePopupInner.js 2.4 KB

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