index.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
  2. import { createVNode as _createVNode, resolveDirective as _resolveDirective } from "vue";
  3. import { defineComponent, ref, watch } from 'vue';
  4. import { popupProps } from './interface';
  5. import Mask from './Mask';
  6. import MobilePopupInner from './MobilePopupInner';
  7. import PopupInner from './PopupInner';
  8. export default defineComponent({
  9. compatConfig: {
  10. MODE: 3
  11. },
  12. name: 'Popup',
  13. inheritAttrs: false,
  14. props: popupProps,
  15. setup: function setup(props, _ref) {
  16. var attrs = _ref.attrs,
  17. slots = _ref.slots,
  18. expose = _ref.expose;
  19. var innerVisible = ref(false);
  20. var inMobile = ref(false);
  21. var popupRef = ref();
  22. watch([function () {
  23. return props.visible;
  24. }, function () {
  25. return props.mobile;
  26. }], function () {
  27. innerVisible.value = props.visible;
  28. if (props.visible && props.mobile) {
  29. inMobile.value = true;
  30. }
  31. }, {
  32. immediate: true,
  33. flush: 'post'
  34. });
  35. expose({
  36. forceAlign: function forceAlign() {
  37. var _popupRef$value;
  38. (_popupRef$value = popupRef.value) === null || _popupRef$value === void 0 ? void 0 : _popupRef$value.forceAlign();
  39. },
  40. getElement: function getElement() {
  41. var _popupRef$value2;
  42. return (_popupRef$value2 = popupRef.value) === null || _popupRef$value2 === void 0 ? void 0 : _popupRef$value2.getElement();
  43. }
  44. });
  45. return function () {
  46. var cloneProps = _objectSpread(_objectSpread(_objectSpread({}, props), attrs), {}, {
  47. visible: innerVisible.value
  48. });
  49. var popupNode = inMobile.value ? _createVNode(MobilePopupInner, _objectSpread(_objectSpread({}, cloneProps), {}, {
  50. "mobile": props.mobile,
  51. "ref": popupRef
  52. }), {
  53. default: slots.default
  54. }) : _createVNode(PopupInner, _objectSpread(_objectSpread({}, cloneProps), {}, {
  55. "ref": popupRef
  56. }), {
  57. default: slots.default
  58. });
  59. return _createVNode("div", null, [_createVNode(Mask, cloneProps, null), popupNode]);
  60. };
  61. }
  62. });