{"version":3,"file":"badge.mjs","sources":["../../src/badge/badge.tsx"],"sourcesContent":["import { defineComponent, computed } from 'vue';\nimport props from './props';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { useConfig } from '../hooks/useConfig';\nimport isFunction from 'lodash/isFunction';\n\nexport default defineComponent({\n  name: 'XBadge',\n  inheritAttrs: false,\n  props: { ...props },\n  setup(props) {\n    const renderTNodeJSX = useTNodeJSX();\n\n    /** 内容计算相关逻辑 start */\n    const content = computed(() => {\n      if (isFunction(props.count)) {\n        return renderTNodeJSX('count');\n      }\n      if (Number.isNaN(Number(props.count))) {\n        return props.count;\n      }\n      const count = Number(props.count);\n      return count > props.maxCount ? `${props.maxCount}+` : count;\n    });\n\n    const renderChildren = () => renderTNodeJSX('default');\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 } = useConfig('classPrefix');\n    const name = `${classPrefix.value}-badge`;\n    const isHidden = computed(() => {\n      return !props.showZero && (content.value === 0 || content.value === '0');\n    });\n\n    const badgeClassNames = computed(() => {\n      return [\n        {\n          [`${name}--dot`]: !!props.dot,\n          [`${name}--circle`]: !props.dot && props.shape === 'circle',\n          [`${name}--round`]: 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    return {\n      content,\n      inlineStyle,\n      badgeClassNames,\n      isHidden,\n      renderChildren,\n      name,\n    };\n  },\n\n  render() {\n    return (\n      <div class={this.name} {...this.$attrs}>\n        {this.renderChildren()}\n        {this.isHidden ? null : (\n          <sup class={this.badgeClassNames} style={this.inlineStyle}>\n            {this.dot ? null : this.content}\n          </sup>\n        )}\n      </div>\n    );\n  },\n});\n"],"names":["name","inheritAttrs","props","isFunction","xOffset","yOffset","background","right","top","content","inlineStyle","badgeClassNames","isHidden","renderChildren"],"mappings":"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"}