{"version":3,"sources":["../src/main.ts"],"sourcesContent":["type ChineseNumeralMap = {\n  [key: string | number]: string\n}\n\nconst numerals: ChineseNumeralMap = {\n  '-': '負',\n  '.': '點',\n  0: '零',\n  1: '一',\n  2: '二',\n  3: '三',\n  4: '四',\n  5: '五',\n  6: '六',\n  7: '七',\n  8: '八',\n  9: '九',\n  10: '十',\n  100: '百',\n  1000: '千',\n  10000: '萬',\n  100000000: '億',\n  1000000000000: '兆',\n}\n\nconst financialNumerals: ChineseNumeralMap = {\n  一: '壹',\n  二: '貳',\n  三: '叄',\n  四: '肆',\n  五: '伍',\n  六: '陸',\n  七: '柒',\n  八: '捌',\n  九: '玖',\n  十: '拾',\n  百: '佰',\n  千: '仟',\n}\n\nconst toChineseNumeral = (num: number): string => {\n  if (num < 0) {\n    return numerals['-'] + toChineseNumeral(-num)\n  }\n\n  if (num < 1) {\n    return num\n      .toString()\n      .split('')\n      .reduce((p, n) => p + numerals[n], '')\n  }\n\n  if (num > Math.floor(num)) {\n    const [integerPart, decimalPart] = num.toString().split('.')\n    return (\n      toChineseNumeral(parseInt(integerPart)) +\n      toChineseNumeral(parseFloat(`.${decimalPart}`)).slice(1)\n    )\n  }\n\n  return [1000000000000, 100000000, 10000, 1000, 100, 10, 1]\n    .reduce(\n      (p, n) => {\n        if (num >= n) {\n          if (p.zeroFlag) p.ch += numerals[0]\n          const t = Math.floor(num / n)\n          p.ch += t < 10 ? numerals[t] : toChineseNumeral(Math.floor(num / n))\n          if (n !== 1) p.ch += numerals[n]\n          p.zeroFlag = false\n        } else if (p.ch) {\n          p.zeroFlag = true\n        }\n        num %= n\n        return p\n      },\n      { ch: '', zeroFlag: false }\n    )\n    .ch.replace(/^一十/, '十')\n}\n\nconst toChineseFinancialNumeral = (num: number): string =>\n  Object.keys(financialNumerals).reduce(\n    (p, c) => p.replace(new RegExp(c, 'g'), financialNumerals[c]),\n    toChineseNumeral(num)\n  )\n\nexport { toChineseNumeral, toChineseFinancialNumeral }\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,IAAM,WAA8B;AAAA,EAClC,KAAK;AAAA,EACL,KAAK;AAAA,EACL,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,KAAM;AAAA,EACN,KAAO;AAAA,EACP,KAAW;AAAA,EACX,MAAe;AACjB;AAEA,IAAM,oBAAuC;AAAA,EAC3C,QAAG;AAAA,EACH,QAAG;AAAA,EACH,QAAG;AAAA,EACH,QAAG;AAAA,EACH,QAAG;AAAA,EACH,QAAG;AAAA,EACH,QAAG;AAAA,EACH,QAAG;AAAA,EACH,QAAG;AAAA,EACH,QAAG;AAAA,EACH,QAAG;AAAA,EACH,QAAG;AACL;AAEA,IAAM,mBAAmB,CAAC,QAAwB;AAChD,MAAI,MAAM,GAAG;AACX,WAAO,SAAS,GAAG,IAAI,iBAAiB,CAAC,GAAG;AAAA,EAC9C;AAEA,MAAI,MAAM,GAAG;AACX,WAAO,IACJ,SAAS,EACT,MAAM,EAAE,EACR,OAAO,CAAC,GAAG,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE;AAAA,EACzC;AAEA,MAAI,MAAM,KAAK,MAAM,GAAG,GAAG;AACzB,UAAM,CAAC,aAAa,WAAW,IAAI,IAAI,SAAS,EAAE,MAAM,GAAG;AAC3D,WACE,iBAAiB,SAAS,WAAW,CAAC,IACtC,iBAAiB,WAAW,IAAI,WAAW,EAAE,CAAC,EAAE,MAAM,CAAC;AAAA,EAE3D;AAEA,SAAO,CAAC,MAAe,KAAW,KAAO,KAAM,KAAK,IAAI,CAAC,EACtD;AAAA,IACC,CAAC,GAAG,MAAM;AACR,UAAI,OAAO,GAAG;AACZ,YAAI,EAAE,SAAU,GAAE,MAAM,SAAS,CAAC;AAClC,cAAM,IAAI,KAAK,MAAM,MAAM,CAAC;AAC5B,UAAE,MAAM,IAAI,KAAK,SAAS,CAAC,IAAI,iBAAiB,KAAK,MAAM,MAAM,CAAC,CAAC;AACnE,YAAI,MAAM,EAAG,GAAE,MAAM,SAAS,CAAC;AAC/B,UAAE,WAAW;AAAA,MACf,WAAW,EAAE,IAAI;AACf,UAAE,WAAW;AAAA,MACf;AACA,aAAO;AACP,aAAO;AAAA,IACT;AAAA,IACA,EAAE,IAAI,IAAI,UAAU,MAAM;AAAA,EAC5B,EACC,GAAG,QAAQ,OAAO,QAAG;AAC1B;AAEA,IAAM,4BAA4B,CAAC,QACjC,OAAO,KAAK,iBAAiB,EAAE;AAAA,EAC7B,CAAC,GAAG,MAAM,EAAE,QAAQ,IAAI,OAAO,GAAG,GAAG,GAAG,kBAAkB,CAAC,CAAC;AAAA,EAC5D,iBAAiB,GAAG;AACtB;","names":[]}