{"version":3,"file":"Number.cjs","sources":["../../../../../../packages/components/statistic/src/Number.tsx"],"sourcesContent":["import type { FunctionalComponent, VNodeTypes } from 'vue';\nimport type { NumberProps } from './interface';\n\nconst StatisticNumber: FunctionalComponent<NumberProps> = (props) => {\n  const { value, formatter, precision, decimalSeparator, groupSeparator = '', prefixCls } = props;\n  let valueNode: VNodeTypes;\n\n  if (typeof formatter === 'function') {\n    // Customize formatter\n    valueNode = formatter({ value });\n  } else {\n    // Internal formatter\n    const val = String(value);\n    const cells = val.match(/^(-?)(\\d*)(\\.(\\d+))?$/);\n    // Process if illegal number\n    if (!cells) {\n      valueNode = val;\n    } else {\n      const negative = cells[1];\n      let int = cells[2] || '0';\n      let decimal = cells[4] || '';\n\n      int = int.replace(/\\B(?=(\\d{3})+(?!\\d))/g, groupSeparator);\n      if (typeof precision === 'number')\n        decimal = decimal.padEnd(precision, '0').slice(0, precision > 0 ? precision : 0);\n\n      if (decimal)\n        decimal = `${decimalSeparator}${decimal}`;\n\n      valueNode = [\n        <span key=\"int\" class={`${prefixCls}-content-value-int`}>\n          {negative}\n          {int}\n        </span>,\n        decimal && (\n          <span key=\"decimal\" class={`${prefixCls}-content-value-decimal`}>\n            {decimal}\n          </span>\n        ),\n      ];\n    }\n  }\n\n  return <span class={`${prefixCls}-content-value`}>{valueNode}</span>;\n};\nStatisticNumber.displayName = 'StatisticNumber';\nexport default StatisticNumber;\n"],"names":["StatisticNumber","props","value","formatter","precision","decimalSeparator","groupSeparator","prefixCls","valueNode","val","String","cells","match","negative","int","decimal","replace","padEnd","slice","_createVNode","displayName"],"mappings":";;;;;;AAGA,MAAMA,kBAAqDC,CAAU,KAAA,KAAA;AACnE,EAAM,MAAA;AAAA,IAAEC,KAAAA;AAAAA,IAAOC,SAAAA;AAAAA,IAAWC,SAAAA;AAAAA,IAAWC,gBAAAA;AAAAA,IAAkBC,cAAiB,GAAA,EAAA;AAAA,IAAIC,SAAAA;AAAAA,GAAcN,GAAAA,KAAAA,CAAAA;AAC1F,EAAIO,IAAAA,SAAAA,CAAAA;AAEJ,EAAI,IAAA,OAAOL,cAAc,UAAY,EAAA;AAEnCK,IAAAA,SAAAA,GAAYL,SAAU,CAAA;AAAA,MAAED,KAAAA;AAAAA,KAAO,CAAA,CAAA;AAAA,GAC1B,MAAA;AAEL,IAAMO,MAAAA,GAAAA,GAAMC,OAAOR,KAAK,CAAA,CAAA;AACxB,IAAMS,MAAAA,KAAAA,GAAQF,GAAIG,CAAAA,KAAAA,CAAM,uBAAuB,CAAA,CAAA;AAE/C,IAAA,IAAI,CAACD,KAAO,EAAA;AACVH,MAAYC,SAAAA,GAAAA,GAAAA,CAAAA;AAAAA,KACP,MAAA;AACL,MAAMI,MAAAA,QAAAA,GAAWF,MAAM,CAAC,CAAA,CAAA;AACxB,MAAIG,IAAAA,GAAAA,GAAMH,KAAM,CAAA,CAAC,CAAK,IAAA,GAAA,CAAA;AACtB,MAAII,IAAAA,OAAAA,GAAUJ,KAAM,CAAA,CAAC,CAAK,IAAA,EAAA,CAAA;AAE1BG,MAAMA,GAAAA,GAAAA,GAAAA,CAAIE,OAAQ,CAAA,uBAAA,EAAyBV,cAAc,CAAA,CAAA;AACzD,MAAA,IAAI,OAAOF,SAAc,KAAA,QAAA;AACvBW,QAAUA,OAAAA,GAAAA,OAAAA,CAAQE,MAAOb,CAAAA,SAAAA,EAAW,GAAG,CAAA,CAAEc,MAAM,CAAGd,EAAAA,SAAAA,GAAY,CAAIA,GAAAA,SAAAA,GAAY,CAAC,CAAA,CAAA;AAEjF,MAAIW,IAAAA,OAAAA;AACFA,QAAW,OAAA,GAAA,CAAA,EAAEV,gBAAiB,CAAA,EAAEU,OAAQ,CAAA,CAAA,CAAA;AAE1CP,MAAY,SAAA,GAAA,CAAAW,gBAAA,MAAA,EAAA;AAAA,QAAA,KAAA,EAAA,KAAA;AAAA,QAAA,OAAA,EACc,GAAEZ,SAAU,CAAA,kBAAA,CAAA;AAAA,OAAmB,EAAA,CACpDM,QACAC,EAAAA,GAAG,CAENC,CAAAA,EAAAA,OAAAA,IAAOI,gBAAA,MAAA,EAAA;AAAA,QAAA,KAAA,EAAA,SAAA;AAAA,QAAA,OAAA,EACuB,GAAEZ,SAAU,CAAA,sBAAA,CAAA;AAAA,OACrCQ,EAAAA,CAAAA,OAAO,EAEX,CAAA,CAAA;AAAA,KAEL;AAAA,GACF;AAEA,EAAA,OAAAI,gBAAA,MAAA,EAAA;AAAA,IAAA,OAAA,EAAqB,GAAEZ,SAAU,CAAA,cAAA,CAAA;AAAA,GAAe,EAAA,CAAGC,SAAS,CAAA,CAAA,CAAA;AAC9D,EAAA;AACAR,eAAAA,CAAgBoB,WAAc,GAAA,iBAAA;;;;"}