{"version":3,"file":"badge.mjs","sources":["../../../components/badge/badge.tsx"],"sourcesContent":["import { defineComponent, computed } from 'vue';\nimport props from './props';\nimport { useContent, useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\n\nexport default defineComponent({\n  name: 'TBadge',\n  inheritAttrs: false,\n  props,\n  setup(props, { attrs }) {\n    const renderContent = useContent();\n    const renderTNodeJSX = useTNodeJSX();\n\n    /** 内容计算相关逻辑 start */\n    const displayCount = computed(() => {\n      let count = renderTNodeJSX('count');\n\n      if (Number.isNaN(Number(count))) {\n        return count;\n      }\n      count = Number(props.count);\n      return count > props.maxCount ? `${props.maxCount}+` : count;\n    });\n\n    const getOffset = () => {\n      if (!props.offset) return {};\n      let [xOffset, yOffset]: Array<string | number> = props.offset;\n      xOffset = Number.isNaN(Number(xOffset)) ? xOffset : `${xOffset}px`;\n      yOffset = Number.isNaN(Number(yOffset)) ? yOffset : `${yOffset}px`;\n      return { xOffset, yOffset };\n    };\n    /** 内容计算相关逻辑 end */\n\n    /** 样式计算相关逻辑 start */\n    const classPrefix = usePrefixClass();\n    const COMPONENT_NAME = usePrefixClass('badge');\n    const isHidden = computed(() => {\n      return !props.showZero && (displayCount.value === 0 || displayCount.value === '0');\n    });\n\n    const badgeClassNames = computed(() => {\n      return [\n        {\n          [`${COMPONENT_NAME.value}--dot`]: !!props.dot,\n          [`${COMPONENT_NAME.value}--circle`]: !props.dot && props.shape === 'circle',\n          [`${COMPONENT_NAME.value}--round`]: !props.dot && props.shape === 'round',\n          [`${classPrefix.value}-size-s`]: props.size === 'small',\n        },\n      ];\n    });\n\n    const inlineStyle = computed(() => {\n      const { xOffset, yOffset } = getOffset();\n      return {\n        background: props.color,\n        right: xOffset,\n        top: yOffset,\n      };\n    });\n    /** 样式计算相关逻辑 end */\n\n    return () => (\n      <div class={COMPONENT_NAME.value} {...attrs}>\n        {renderContent('default', 'content')}\n        {isHidden.value ? null : (\n          <sup class={badgeClassNames.value} style={inlineStyle.value}>\n            {props.dot ? null : displayCount.value}\n          </sup>\n        )}\n      </div>\n    );\n  },\n});\n"],"names":["defineComponent","name","inheritAttrs","props","setup","attrs","_ref","renderContent","useContent","renderTNodeJSX","useTNodeJSX","displayCount","computed","count","Number","isNaN","maxCount","concat","getOffset","offset","_props2$offset","_slicedToArray","xOffset","yOffset","classPrefix","usePrefixClass","COMPONENT_NAME","isHidden","showZero","value","badgeClassNames","_defineProperty","dot","shape","size","inlineStyle","_getOffset","background","color","right","top","_createVNode","_mergeProps"],"mappings":"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"}