{"version":3,"file":"holder.cjs","sources":["../../../../../../packages/components/message/src/holder.tsx"],"sourcesContent":["import type { ConfigOptions } from './interface';\nimport { CloseOutlined } from '@ant-design/icons-vue';\nimport { classNames } from '@antdv/utils';\n\nimport useVcNotification from '@antdv/vue-components/vc-notification/src/useNotification';\nimport { getMotion } from '@antdv/vue-components/vc-trigger/src/utils/motionUtil';\nimport { computed, defineComponent } from 'vue';\n\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\nimport useStyle from '../style';\n\nconst DEFAULT_OFFSET = 8;\nconst DEFAULT_DURATION = 3;\n\nexport type HolderProps = ConfigOptions & {\n  onAllRemoved?: VoidFunction\n};\n\nexport default defineComponent({\n  name: 'Holder',\n  inheritAttrs: false,\n  props: [\n    'top',\n    'prefixCls',\n    'getContainer',\n    'maxCount',\n    'duration',\n    'rtl',\n    'transitionName',\n    'onAllRemoved',\n    'animation',\n    'staticGetContainer',\n  ],\n  setup(props, { expose }) {\n    const { getPrefixCls, getPopupContainer } = useConfigInject('message', props);\n\n    const prefixCls = computed(() => getPrefixCls('message', props.prefixCls));\n\n    const [, hashId] = useStyle(prefixCls);\n\n    // =============================== Style ===============================\n    const getStyles = () => {\n      const top = props.top ?? DEFAULT_OFFSET;\n      return {\n        left: '50%',\n        transform: 'translateX(-50%)',\n        top: typeof top === 'number' ? `${top}px` : top,\n      };\n    };\n    const getClassName = () => classNames(hashId.value, props.rtl ? `${prefixCls.value}-rtl` : '');\n\n    // ============================== Motion ===============================\n    const getNotificationMotion = () =>\n      getMotion({\n        prefixCls: prefixCls.value,\n        animation: props.animation ?? 'move-up',\n        transitionName: props.transitionName,\n      });\n\n    // ============================ Close Icon =============================\n    const mergedCloseIcon = (\n      <span class={`${prefixCls.value}-close-x`}>\n        <CloseOutlined class={`${prefixCls.value}-close-icon`} />\n      </span>\n    );\n\n    // ============================== Origin ===============================\n    const [api, holder] = useVcNotification({\n      getStyles,\n      prefixCls: prefixCls.value,\n      getClassName,\n      motion: getNotificationMotion,\n      closable: false,\n      closeIcon: mergedCloseIcon,\n      duration: props.duration ?? DEFAULT_DURATION,\n      getContainer: props.staticGetContainer ?? getPopupContainer.value,\n      maxCount: props.maxCount,\n      onAllRemoved: props.onAllRemoved,\n    });\n\n    // ================================ Ref ================================\n    expose({\n      ...api,\n      prefixCls,\n      hashId,\n    });\n    return holder;\n  },\n});\n"],"names":["DEFAULT_OFFSET","DEFAULT_DURATION","defineComponent","name","inheritAttrs","props","setup","expose","getPrefixCls","getPopupContainer","useConfigInject","prefixCls","computed","hashId","useStyle","getStyles","top","left","transform","getClassName","classNames","value","rtl","getNotificationMotion","getMotion","animation","transitionName","mergedCloseIcon","_createVNode","CloseOutlined","api","holder","useVcNotification","motion","closable","closeIcon","duration","getContainer","staticGetContainer","maxCount","onAllRemoved"],"mappings":"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"}