{"ast":null,"code":"\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nconst UnitNumber = props => {\n const {\n prefixCls,\n value,\n current,\n offset = 0\n } = props;\n let style;\n if (offset) {\n style = {\n position: 'absolute',\n top: `${offset}00%`,\n left: 0\n };\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n style: style,\n className: classNames(`${prefixCls}-only-unit`, {\n current\n })\n }, value);\n};\nfunction getOffset(start, end, unit) {\n let index = start;\n let offset = 0;\n while ((index + 10) % 10 !== end) {\n index += unit;\n offset += unit;\n }\n return offset;\n}\nconst SingleNumber = props => {\n const {\n prefixCls,\n count: originCount,\n value: originValue\n } = props;\n const value = Number(originValue);\n const count = Math.abs(originCount);\n const [prevValue, setPrevValue] = React.useState(value);\n const [prevCount, setPrevCount] = React.useState(count);\n // ============================= Events =============================\n const onTransitionEnd = () => {\n setPrevValue(value);\n setPrevCount(count);\n };\n // Fallback if transition events are not supported\n React.useEffect(() => {\n const timer = setTimeout(onTransitionEnd, 1000);\n return () => clearTimeout(timer);\n }, [value]);\n // ============================= Render =============================\n // Render unit list\n let unitNodes;\n let offsetStyle;\n if (prevValue === value || Number.isNaN(value) || Number.isNaN(prevValue)) {\n // Nothing to change\n unitNodes = [/*#__PURE__*/React.createElement(UnitNumber, Object.assign({}, props, {\n key: value,\n current: true\n }))];\n offsetStyle = {\n transition: 'none'\n };\n } else {\n unitNodes = [];\n // Fill basic number units\n const end = value + 10;\n const unitNumberList = [];\n for (let index = value; index <= end; index += 1) {\n unitNumberList.push(index);\n }\n // Fill with number unit nodes\n const prevIndex = unitNumberList.findIndex(n => n % 10 === prevValue);\n unitNodes = unitNumberList.map((n, index) => {\n const singleUnit = n % 10;\n return /*#__PURE__*/React.createElement(UnitNumber, Object.assign({}, props, {\n key: n,\n value: singleUnit,\n offset: index - prevIndex,\n current: index === prevIndex\n }));\n });\n // Calculate container offset value\n const unit = prevCount < count ? 1 : -1;\n offsetStyle = {\n transform: `translateY(${-getOffset(prevValue, value, unit)}00%)`\n };\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-only`,\n style: offsetStyle,\n onTransitionEnd: onTransitionEnd\n }, unitNodes);\n};\nexport default SingleNumber;","map":{"version":3,"names":["React","classNames","UnitNumber","props","prefixCls","value","current","offset","style","position","top","left","createElement","className","getOffset","start","end","unit","index","SingleNumber","count","originCount","originValue","Number","Math","abs","prevValue","setPrevValue","useState","prevCount","setPrevCount","onTransitionEnd","useEffect","timer","setTimeout","clearTimeout","unitNodes","offsetStyle","isNaN","Object","assign","key","transition","unitNumberList","push","prevIndex","findIndex","n","map","singleUnit","transform"],"sources":["C:/Users/Аришина)/Desktop/promo/node_modules/antd/es/badge/SingleNumber.js"],"sourcesContent":["\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nconst UnitNumber = props => {\n const {\n prefixCls,\n value,\n current,\n offset = 0\n } = props;\n let style;\n if (offset) {\n style = {\n position: 'absolute',\n top: `${offset}00%`,\n left: 0\n };\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n style: style,\n className: classNames(`${prefixCls}-only-unit`, {\n current\n })\n }, value);\n};\nfunction getOffset(start, end, unit) {\n let index = start;\n let offset = 0;\n while ((index + 10) % 10 !== end) {\n index += unit;\n offset += unit;\n }\n return offset;\n}\nconst SingleNumber = props => {\n const {\n prefixCls,\n count: originCount,\n value: originValue\n } = props;\n const value = Number(originValue);\n const count = Math.abs(originCount);\n const [prevValue, setPrevValue] = React.useState(value);\n const [prevCount, setPrevCount] = React.useState(count);\n // ============================= Events =============================\n const onTransitionEnd = () => {\n setPrevValue(value);\n setPrevCount(count);\n };\n // Fallback if transition events are not supported\n React.useEffect(() => {\n const timer = setTimeout(onTransitionEnd, 1000);\n return () => clearTimeout(timer);\n }, [value]);\n // ============================= Render =============================\n // Render unit list\n let unitNodes;\n let offsetStyle;\n if (prevValue === value || Number.isNaN(value) || Number.isNaN(prevValue)) {\n // Nothing to change\n unitNodes = [/*#__PURE__*/React.createElement(UnitNumber, Object.assign({}, props, {\n key: value,\n current: true\n }))];\n offsetStyle = {\n transition: 'none'\n };\n } else {\n unitNodes = [];\n // Fill basic number units\n const end = value + 10;\n const unitNumberList = [];\n for (let index = value; index <= end; index += 1) {\n unitNumberList.push(index);\n }\n // Fill with number unit nodes\n const prevIndex = unitNumberList.findIndex(n => n % 10 === prevValue);\n unitNodes = unitNumberList.map((n, index) => {\n const singleUnit = n % 10;\n return /*#__PURE__*/React.createElement(UnitNumber, Object.assign({}, props, {\n key: n,\n value: singleUnit,\n offset: index - prevIndex,\n current: index === prevIndex\n }));\n });\n // Calculate container offset value\n const unit = prevCount < count ? 1 : -1;\n offsetStyle = {\n transform: `translateY(${-getOffset(prevValue, value, unit)}00%)`\n };\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-only`,\n style: offsetStyle,\n onTransitionEnd: onTransitionEnd\n }, unitNodes);\n};\nexport default SingleNumber;"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}