{"version":3,"file":"Alert.cjs","sources":["../../../../../../packages/components/alert/src/Alert.tsx"],"sourcesContent":["import type { CSSProperties } from 'vue';\nimport {\n  CheckCircleFilled,\n  CheckCircleOutlined,\n  CloseCircleFilled,\n  CloseCircleOutlined,\n  CloseOutlined,\n  ExclamationCircleFilled,\n  ExclamationCircleOutlined,\n  InfoCircleFilled,\n  InfoCircleOutlined,\n} from '@ant-design/icons-vue';\nimport { classNames, cloneElement, isValidElement } from '@antdv/utils';\nimport { getTransitionProps } from '@antdv/vue-components';\nimport { computed, defineComponent, shallowRef, Transition } from 'vue';\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\nimport useStyle from '../style';\nimport { alertProps } from './props';\n\nconst iconMapFilled = {\n  success: CheckCircleFilled,\n  info: InfoCircleFilled,\n  error: CloseCircleFilled,\n  warning: ExclamationCircleFilled,\n};\n\nconst iconMapOutlined = {\n  success: CheckCircleOutlined,\n  info: InfoCircleOutlined,\n  error: CloseCircleOutlined,\n  warning: ExclamationCircleOutlined,\n};\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'AAlert',\n  inheritAttrs: false,\n  props: alertProps(),\n  setup(props, { slots, emit, attrs, expose }) {\n    const { prefixCls, direction } = useConfigInject('alert', props);\n    const [wrapSSR, hashId] = useStyle(prefixCls);\n    const closing = shallowRef(false);\n    const closed = shallowRef(false);\n    const alertNode = shallowRef();\n\n    const handleClose = (e: MouseEvent) => {\n      e.preventDefault();\n\n      const dom = alertNode.value;\n\n      dom.style.height = `${dom.offsetHeight}px`;\n      // Magic code\n      // 重复一次后才能正确设置 height\n      dom.style.height = `${dom.offsetHeight}px`;\n\n      closing.value = true;\n      emit('close', e);\n    };\n\n    const animationEnd = () => {\n      closing.value = false;\n      closed.value = true;\n      props.afterClose?.();\n    };\n    const mergedType = computed(() => {\n      const { type } = props;\n      if (type !== undefined)\n        return type;\n\n      // banner 模式默认为警告\n      return props.banner ? 'warning' : 'info';\n    });\n    expose({ animationEnd });\n    const motionStyle = shallowRef<CSSProperties>({});\n    return () => {\n      const { banner, closeIcon: customCloseIcon = slots.closeIcon?.() } = props;\n\n      let { closable, showIcon } = props;\n\n      const closeText = props.closeText ?? slots.closeText?.();\n      const description = props.description ?? slots.description?.();\n      const message = props.message ?? slots.message?.();\n      const icon = props.icon ?? slots.icon?.();\n      const action = slots.action?.();\n\n      // banner模式默认有 Icon\n      showIcon = banner && showIcon === undefined ? true : showIcon;\n\n      const IconType = (description ? iconMapOutlined : iconMapFilled)[mergedType.value] || null;\n\n      // closeable when closeText is assigned\n      if (closeText)\n        closable = true;\n\n      const prefixClsValue = prefixCls.value;\n      const alertCls = classNames(prefixClsValue, {\n        [`${prefixClsValue}-${mergedType.value}`]: true,\n        [`${prefixClsValue}-closing`]: closing.value,\n        [`${prefixClsValue}-with-description`]: !!description,\n        [`${prefixClsValue}-no-icon`]: !showIcon,\n        [`${prefixClsValue}-banner`]: !!banner,\n        [`${prefixClsValue}-closable`]: closable,\n        [`${prefixClsValue}-rtl`]: direction.value === 'rtl',\n        [hashId.value]: true,\n      });\n\n      const closeIcon = closable\n        ? (\n            <button\n              type=\"button\"\n              onClick={handleClose}\n              class={`${prefixClsValue}-close-icon`}\n              tabindex={0}\n            >\n              {closeText\n                ? (\n                    <span class={`${prefixClsValue}-close-text`}>{closeText}</span>\n                  )\n                : customCloseIcon === undefined\n                  ? (\n                      <CloseOutlined />\n                    )\n                  : (\n                      customCloseIcon\n                    )}\n            </button>\n          )\n        : null;\n\n      const iconNode = (icon\n        && (isValidElement(icon)\n          ? (\n              cloneElement(icon, {\n                class: `${prefixClsValue}-icon`,\n              })\n            )\n          : (\n              <span class={`${prefixClsValue}-icon`}>{icon}</span>\n            ))) || <IconType class={`${prefixClsValue}-icon`} />;\n\n      const transitionProps = getTransitionProps(`${prefixClsValue}-motion`, {\n        appear: false,\n        css: true,\n        onAfterLeave: animationEnd,\n        onBeforeLeave: (node: HTMLDivElement) => {\n          node.style.maxHeight = `${node.offsetHeight}px`;\n        },\n        onLeave: (node: HTMLDivElement) => {\n          node.style.maxHeight = '0px';\n        },\n      });\n      return wrapSSR(\n        closed.value\n          ? null\n          : (\n              <Transition {...transitionProps}>\n                <div\n                  role=\"alert\"\n                  {...attrs}\n                  style={[attrs.style as CSSProperties, motionStyle.value]}\n                  v-show={!closing.value}\n                  class={[attrs.class, alertCls]}\n                  data-show={!closing.value}\n                  ref={alertNode}\n                >\n                  {showIcon ? iconNode : null}\n                  <div class={`${prefixClsValue}-content`}>\n                    {message ? <div class={`${prefixClsValue}-message`}>{message}</div> : null}\n                    {description\n                      ? (\n                          <div class={`${prefixClsValue}-description`}>{description}</div>\n                        )\n                      : null}\n                  </div>\n                  {action ? <div class={`${prefixClsValue}-action`}>{action}</div> : null}\n                  {closeIcon}\n                </div>\n              </Transition>\n            ),\n      );\n    };\n  },\n});\n"],"names":["iconMapFilled","success","CheckCircleFilled","info","InfoCircleFilled","error","CloseCircleFilled","warning","ExclamationCircleFilled","iconMapOutlined","CheckCircleOutlined","InfoCircleOutlined","CloseCircleOutlined","ExclamationCircleOutlined","defineComponent","compatConfig","MODE","name","inheritAttrs","props","alertProps","setup","slots","emit","attrs","expose","prefixCls","direction","useConfigInject","wrapSSR","hashId","useStyle","closing","shallowRef","closed","alertNode","handleClose","e","preventDefault","dom","value","style","height","offsetHeight","animationEnd","afterClose","mergedType","computed","type","undefined","banner","motionStyle","closeIcon","customCloseIcon","closable","showIcon","closeText","description","message","icon","action","IconType","prefixClsValue","alertCls","classNames","_createVNode","CloseOutlined","iconNode","isValidElement","cloneElement","class","transitionProps","getTransitionProps","appear","css","onAfterLeave","onBeforeLeave","node","maxHeight","onLeave","Transition","default","_withDirectives","_vShow"],"mappings":"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"}