{"version":3,"file":"Tag.mjs","sources":["../../../../../../packages/components/tag/src/Tag.tsx"],"sourcesContent":["import type { CustomSlotsType } from '@antdv/types';\nimport type { CSSProperties } from 'vue';\nimport { CloseOutlined } from '@ant-design/icons-vue';\nimport { classNames, devWarning, isPresetColor, isPresetStatusColor } from '@antdv/utils';\nimport { computed, defineComponent, shallowRef, watchEffect } from 'vue';\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\nimport { Wave } from '../../wave';\n\nimport useStyle from '../style';\nimport CheckableTag from './CheckableTag';\nimport { tagProps } from './props';\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'ATag',\n  inheritAttrs: false,\n  props: tagProps(),\n  CheckableTag,\n  // emits: ['update:visible', 'close'],\n  slots: Object as CustomSlotsType<{\n    closeIcon: any\n    icon: any\n    default: any\n  }>,\n  setup(props, { slots, emit, attrs }) {\n    const { prefixCls, direction } = useConfigInject('tag', props);\n\n    const [wrapSSR, hashId] = useStyle(prefixCls);\n\n    const visible = shallowRef(true);\n\n    // Warning for deprecated usage\n    if (process.env.NODE_ENV !== 'production') {\n      devWarning(\n        props.visible === undefined,\n        'Tag',\n        '`visible` is deprecated, please use `<Tag v-show=\"visible\" />` instead.',\n      );\n    }\n\n    watchEffect(() => {\n      if (props.visible !== undefined)\n        visible.value = props.visible!;\n    });\n\n    const handleCloseClick = (e: MouseEvent) => {\n      e.stopPropagation();\n      emit('update:visible', false);\n      emit('close', e);\n\n      if (e.defaultPrevented)\n        return;\n\n      if (props.visible === undefined)\n        visible.value = false;\n    };\n\n    // const isPresetColor = computed(() => {\n    //   const { color } = props;\n    //   if (!color) {\n    //     return false;\n    //   }\n    //   return PresetColorRegex.test(color) || PresetStatusColorRegex.test(color);\n    // });\n\n    const isInternalColor = computed(\n      () => isPresetColor(props.color) || isPresetStatusColor(props.color),\n    );\n\n    const tagClassName = computed(() =>\n      classNames(prefixCls.value, hashId.value, {\n        [`${prefixCls.value}-${props.color}`]: isInternalColor.value,\n        [`${prefixCls.value}-has-color`]: props.color && !isInternalColor.value,\n        [`${prefixCls.value}-hidden`]: !visible.value,\n        [`${prefixCls.value}-rtl`]: direction.value === 'rtl',\n        [`${prefixCls.value}-borderless`]: !props.bordered,\n      }),\n    );\n    const handleClick = (e: MouseEvent) => {\n      emit('click', e);\n    };\n    return () => {\n      const {\n        icon = slots.icon?.(),\n        color,\n        closeIcon = slots.closeIcon?.(),\n        closable = false,\n      } = props;\n\n      const renderCloseIcon = () => {\n        if (closable) {\n          return closeIcon\n            ? (\n                <span class={`${prefixCls.value}-close-icon`} onClick={handleCloseClick}>\n                  {closeIcon}\n                </span>\n              )\n            : (\n                <CloseOutlined class={`${prefixCls.value}-close-icon`} onClick={handleCloseClick} />\n              );\n        }\n        return null;\n      };\n\n      const tagStyle = {\n        backgroundColor: color && !isInternalColor.value ? color : undefined,\n      };\n\n      const iconNode = icon || null;\n      const children = slots.default?.();\n      const kids = iconNode\n        ? (\n            <>\n              {iconNode}\n              <span>{children}</span>\n            </>\n          )\n        : (\n            children\n          );\n\n      const isNeedWave = props.onClick !== undefined;\n      const tagNode = (\n        <span\n          {...attrs}\n          onClick={handleClick}\n          class={[tagClassName.value, attrs.class]}\n          style={[tagStyle, attrs.style as CSSProperties]}\n        >\n          {kids}\n          {renderCloseIcon()}\n        </span>\n      );\n\n      return wrapSSR(isNeedWave ? <Wave>{tagNode}</Wave> : tagNode);\n    };\n  },\n});\n"],"names":["compatConfig","MODE","name","inheritAttrs","props","tagProps","CheckableTag","slots","Object","setup","emit","attrs","prefixCls","direction","useConfigInject","wrapSSR","hashId","useStyle","visible","shallowRef","process","env","NODE_ENV","devWarning","undefined","watchEffect","value","handleCloseClick","e","stopPropagation","defaultPrevented","isInternalColor","computed","isPresetColor","color","isPresetStatusColor","tagClassName","classNames","bordered","handleClick","icon","closeIcon","closable","renderCloseIcon","_createVNode","CloseOutlined","tagStyle","backgroundColor","iconNode","children","default","kids","_Fragment","isNeedWave","onClick","tagNode","class","style","Wave"],"mappings":"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"}