{"version":3,"file":"ScrollNumber.cjs","sources":["../../../../../../packages/components/badge/src/ScrollNumber.tsx"],"sourcesContent":["import type { CSSProperties, DefineComponent, HTMLAttributes } from 'vue';\nimport type { ScrollNumberProps } from './props';\nimport { classNames, cloneElement, filterEmpty } from '@antdv/utils';\nimport { defineComponent } from 'vue';\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\nimport { scrollNumberProps } from './props';\nimport SingleNumber from './SingleNumber';\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'ScrollNumber',\n  inheritAttrs: false,\n  props: scrollNumberProps(),\n  setup(props, { attrs, slots }) {\n    const { prefixCls } = useConfigInject('scroll-number', props);\n\n    return () => {\n      const {\n        count,\n        title,\n        component: Tag = 'sup' as unknown as DefineComponent,\n        class: className,\n        style,\n        ...restProps\n      } = { ...props, ...attrs } as ScrollNumberProps & HTMLAttributes & { style: CSSProperties };\n      // ============================ Render ============================\n      const newProps = {\n        ...restProps,\n        style,\n        'data-show': props.show,\n        'class': classNames(prefixCls.value, className),\n        'title': title as string,\n      };\n\n      // Only integer need motion\n      let numberNodes: any = count;\n      if (count && Number(count) % 1 === 0) {\n        const numberList = String(count).split('');\n\n        numberNodes = numberList.map((num, i) => {\n          return (\n            <SingleNumber\n              prefixCls={prefixCls.value}\n              count={Number(count)}\n              value={num}\n              key={numberList.length - i}\n            />\n          );\n        });\n      }\n\n      // allow specify the border\n      // mock border-color by box-shadow for compatible with old usage:\n      // <Badge count={4} style={{ backgroundColor: '#fff', color: '#999', borderColor: '#d9d9d9' }} />\n      if (style && style.borderColor) {\n        newProps.style = {\n          ...(style as CSSProperties),\n          boxShadow: `0 0 0 1px ${style.borderColor} inset`,\n        };\n      }\n      const children = filterEmpty(slots.default?.());\n      if (children && children.length) {\n        return cloneElement(\n          children,\n          {\n            class: classNames(`${prefixCls.value}-custom-component`),\n          },\n          false,\n        );\n      }\n\n      return <Tag {...newProps}>{numberNodes}</Tag>;\n    };\n  },\n});\n"],"names":["defineComponent","compatConfig","MODE","name","inheritAttrs","props","scrollNumberProps","setup","attrs","slots","prefixCls","useConfigInject","count","title","component","Tag","class","className","style","restProps","newProps","show","classNames","value","numberNodes","Number","numberList","String","split","map","num","i","_createVNode","SingleNumber","length","borderColor","boxShadow","children","filterEmpty","default","cloneElement"],"mappings":"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"}