{"version":3,"file":"Modal.mjs","sources":["../../../../../../packages/components/modal/src/Modal.tsx"],"sourcesContent":["import type { MousePosition } from './interface';\nimport { CloseOutlined } from '@ant-design/icons-vue';\nimport { addEventListenerWrap, canUseDocElement, classNames, devWarning, initDefaultProps } from '@antdv/utils';\nimport { getTransitionName, VcDialog } from '@antdv/vue-components';\nimport { defineComponent } from 'vue';\nimport Button, { convertLegacyProps } from '../../button';\n\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\n\nimport { useLocaleReceiver } from '../../locale-provider';\nimport useStyle from '../style';\nimport { modalProps } from './props';\n\nlet mousePosition: MousePosition;\n// ref: https://github.com/ant-design/ant-design/issues/15795\nfunction getClickPosition(e: MouseEvent) {\n  mousePosition = {\n    x: e.pageX,\n    y: e.pageY,\n  };\n  // 100ms 内发生过点击事件，则从点击位置动画展示\n  // 否则直接 zoom 展示\n  // 这样可以兼容非点击方式展开\n  setTimeout(() => (mousePosition = null), 100);\n}\n\n// 只有点击事件支持从鼠标位置动画展开\nif (canUseDocElement()) addEventListenerWrap(document.documentElement, 'click', getClickPosition, true);\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'AModal',\n  test: 1,\n  inheritAttrs: false,\n  props: initDefaultProps(modalProps(), {\n    width: 520,\n    confirmLoading: false,\n    okType: 'primary',\n  }),\n  setup(props, { emit, slots, attrs }) {\n    const [locale] = useLocaleReceiver('Modal');\n    const { prefixCls, rootPrefixCls, direction, getPopupContainer } = useConfigInject(\n      'modal',\n      props,\n    );\n    const [wrapSSR, hashId] = useStyle(prefixCls);\n\n    devWarning(\n      props.visible === undefined,\n      'Modal',\n      '`visible` will be removed in next major version, please use `open` instead.',\n    );\n    const handleCancel = (e: MouseEvent) => {\n      emit('update:visible', false);\n      emit('update:open', false);\n      emit('cancel', e);\n      emit('change', false);\n    };\n\n    const handleOk = (e: MouseEvent) => {\n      emit('ok', e);\n    };\n\n    const renderFooter = () => {\n      const {\n        okText = slots.okText?.(),\n        okType,\n        cancelText = slots.cancelText?.(),\n        confirmLoading,\n      } = props;\n      return (\n        <>\n          <Button onClick={handleCancel} {...props.cancelButtonProps}>\n            {cancelText || locale.value.cancelText}\n          </Button>\n          <Button\n            {...convertLegacyProps(okType)}\n            loading={confirmLoading}\n            onClick={handleOk}\n            {...props.okButtonProps}\n          >\n            {okText || locale.value.okText}\n          </Button>\n        </>\n      );\n    };\n    return () => {\n      const {\n        prefixCls: customizePrefixCls,\n        visible,\n        open,\n        wrapClassName,\n        centered,\n        getContainer,\n        closeIcon = slots.closeIcon?.(),\n        focusTriggerAfterClose = true,\n        ...restProps\n      } = props;\n\n      const wrapClassNameExtended = classNames(wrapClassName, {\n        [`${prefixCls.value}-centered`]: !!centered,\n        [`${prefixCls.value}-wrap-rtl`]: direction.value === 'rtl',\n      });\n      return wrapSSR(\n        <VcDialog\n          {...restProps}\n          {...attrs}\n          rootClassName={hashId.value}\n          class={classNames(hashId.value, attrs.class)}\n          getContainer={getContainer || getPopupContainer?.value}\n          prefixCls={prefixCls.value}\n          wrapClassName={wrapClassNameExtended}\n          visible={open ?? visible}\n          onClose={handleCancel}\n          focusTriggerAfterClose={focusTriggerAfterClose}\n          transitionName={getTransitionName(rootPrefixCls.value, 'zoom', props.transitionName)}\n          maskTransitionName={getTransitionName(\n            rootPrefixCls.value,\n            'fade',\n            props.maskTransitionName,\n          )}\n          mousePosition={restProps.mousePosition ?? mousePosition}\n          v-slots={{\n            ...slots,\n            footer: slots.footer || renderFooter,\n            closeIcon: () => {\n              return (\n                <span class={`${prefixCls.value}-close-x`}>\n                  {closeIcon || <CloseOutlined class={`${prefixCls.value}-close-icon`} />}\n                </span>\n              );\n            },\n          }}\n        >\n        </VcDialog>,\n      );\n    };\n  },\n});\n"],"names":["mousePosition","getClickPosition","e","x","pageX","y","pageY","setTimeout","canUseDocElement","addEventListenerWrap","document","documentElement","compatConfig","MODE","name","test","inheritAttrs","props","initDefaultProps","modalProps","width","confirmLoading","okType","setup","emit","slots","attrs","locale","useLocaleReceiver","prefixCls","rootPrefixCls","direction","getPopupContainer","useConfigInject","wrapSSR","hashId","useStyle","devWarning","visible","undefined","handleCancel","handleOk","renderFooter","okText","cancelText","_createVNode","_Fragment","Button","cancelButtonProps","default","value","convertLegacyProps","okButtonProps","customizePrefixCls","open","wrapClassName","centered","getContainer","closeIcon","focusTriggerAfterClose","restProps","wrapClassNameExtended","classNames","VcDialog","class","getTransitionName","transitionName","maskTransitionName","footer","CloseOutlined"],"mappings":"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"}