@siakhooi/number-to-chinese-words
Version:
Library to translate number into chinese words
1 lines • 6.99 kB
JavaScript
(()=>{"use strict";var t={562:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.BasicNumberConvertor=void 0,e.BasicNumberConvertor=class{constructor(t){this.context=t}convert_0_to_9(t,e,o,r){const n=this.context.characterSet.BASE.charAt(t);return 0===t?e?"":n:o&&1===t?r:n+r}convert_digit_1(t,e,o){return this.convert_0_to_9(o,t>9,t<10&&e,"")}useContraction(t,e){return!(!t&&!this.context.options.useContractionAll||void 0===e)}getContraction(t,e){return t>=2&&t<=9&&this.useContraction(this.context.isContract(t),this.context.characterSet.CONTRACTION[t])?this.context.characterSet.CONTRACTION[t]:e}convert_digit_10(t,e,o,r,n){const i=this.convert_0_to_9(o,t>=100&&0===r||t>=1e3&&0===n||t<10,t<100&&e,this.context.characterSet.TEN);return this.getContraction(o,i)}convert_digit_100(t,e,o){return 2===o&&this.useContraction(this.context.isContract200(),this.context.characterSet.CONTRACTION_200)?this.context.characterSet.CONTRACTION_200:this.convert_0_to_9(o,t>=1e3&&t%100==0||t<100,t<1e3&&e,this.context.characterSet.HUNDRED)}convert_digit_1000(t,e,o){return this.convert_0_to_9(o,t<1e3,t>999&&e,this.context.characterSet.THOUSAND)}convert_0_to_9999(t,e,o){const r=t%10,n=Math.floor(t/10)%10,i=Math.floor(t/100)%10,s=Math.floor(t/1e3),c=this.convert_digit_1(t,e,r),a=this.convert_digit_10(t,e,n,r,i),h=this.convert_digit_100(t,e,i);return this.convert_digit_1000(t,e,s)+h+a+c+o}}},107:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getCharacterSet=e.CharacterSet=void 0;class o{constructor(t,e,o,r,n,i,s){this.BASE=t,this.ZERO=t[0],this.TEN=e[0],this.HUNDRED=e[1],this.THOUSAND=e[2],this.TENTHOUSAND=e[3],this.HUNDREDMILLION=e[4],this.TRILLION=e[5],this.POSITIVE=o[0],this.NEGATIVE=o[1],this.DOT=o[2],this.TRADITIONAL_DOT=o[3],this.TRADITIONAL_FLOATING_UNIT=r,this.CONTRACTION=[],this.CONTRACTION[2]=n[0],this.CONTRACTION[3]=n[1],this.CONTRACTION[4]=n[2],this.CONTRACTION[5]=n[3],this.CONTRACTION[6]=n[4],this.CONTRACTION[7]=n[5],this.CONTRACTION[8]=n[6],this.CONTRACTION[9]=n[7],this.CONTRACTION_200=n[8],this.useTraditional=i,this.useCapital=s}}e.CharacterSet=o;const r=[new o("零一二三四五六七八九","十百千万亿兆","正负点又","分厘毫秒忽微纤沙尘埃渺漠","廿卅卌圩圆进枯桦皕",!1,!1),new o("零壹贰叁肆伍陆柒捌玖","拾佰仟萬億兆","正负点又","分厘毫秒忽微纤沙尘埃渺漠","念",!1,!0),new o("零一二三四五六七八九","十百千萬億兆","正負點又","分釐毫秒忽微纖沙塵埃渺漠","廿卅卌圩圓進枯樺皕",!0,!1),new o("零壹貳參肆伍陸柒捌玖","拾佰仟萬億兆","正負點又","分釐毫秒忽微纖沙塵埃渺漠","念",!0,!0)];e.getCharacterSet=function(t=!1,e=!1){return r.filter((o=>o.useTraditional===t&&o.useCapital===e))[0]}},2:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.MAX_DECIMAL_POINTS=e.ERR_NOT_SUPPORTED=void 0,e.ERR_NOT_SUPPORTED="Not Supported",e.MAX_DECIMAL_POINTS=12},396:(t,e,o)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ConversionContext=void 0;const r=o(107);e.ConversionContext=class{constructor(t){this.options=t,this.characterSet=(0,r.getCharacterSet)(t.useTraditional,t.useCapital),this.isContraction=[],this.isContraction[2]=!!t.useContraction20,this.isContraction[3]=!!t.useContraction30,this.isContraction[4]=!!t.useContraction40,this.isContraction[5]=!!t.useContraction50,this.isContraction[6]=!!t.useContraction60,this.isContraction[7]=!!t.useContraction70,this.isContraction[8]=!!t.useContraction80,this.isContraction[9]=!!t.useContraction90}isContract(t){return this.isContraction[t]||!!this.options.useContractionAll}isContract200(){return!!this.options.useContraction200||!!this.options.useContractionAll}getDot(){return this.options.useTraditionalFloatingUnit?this.characterSet.TRADITIONAL_DOT:this.characterSet.DOT}}},823:(t,e,o)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.Convertor=void 0;const r=o(2),n=o(55),i=o(396),s=o(562);e.Convertor=class{constructor(t){this.context=new i.ConversionContext(t),this.basicNumber=new s.BasicNumberConvertor(this.context)}getZeroOrEmptyIf(t){return t?this.context.characterSet.ZERO:""}convert_w(t,e,o){if(0===t)return this.getZeroOrEmptyIf(0===e);const r=this.basicNumber.convert_0_to_9999(t,e<1e4&&o,"");return this.getZeroOrEmptyIf(t<1e3&&e>=1e4)+r}convert_ww_and_www(t,e,o,r,n,i){if(0===t)return this.getZeroOrEmptyIf(e>=n&&r>=1e3);const s=this.basicNumber.convert_0_to_9999(t,e<n&&o,i);return this.getZeroOrEmptyIf(t<1e3&&e>=n)+s}convert_wwww(t,e){return 0===t?"":this.basicNumber.convert_0_to_9999(t,t>0&&e,this.context.characterSet.TRILLION)}convert_0_to_wwww(t){const e=!!this.context.options.removeLeadingOne,o=t%1e4,r=Math.floor(t/1e4)%1e4,n=Math.floor(t/1e8)%1e4,i=Math.floor(t/1e12),s=this.convert_w(o,t,e),c=this.convert_ww_and_www(r,t,e,o,1e8,this.context.characterSet.TENTHOUSAND),a=this.convert_ww_and_www(n,t,e,r,1e12,this.context.characterSet.HUNDREDMILLION);return this.convert_wwww(i,e)+a+c+s}checkNotSupportedCases(t){if(t<-Number.MAX_SAFE_INTEGER||t>Number.MAX_SAFE_INTEGER)throw r.ERR_NOT_SUPPORTED;if(t!==Math.floor(t)&&t.toString().length>r.MAX_DECIMAL_POINTS+1+Math.floor(t).toString().length)throw r.ERR_NOT_SUPPORTED}getSign(t){return t<0?this.context.characterSet.NEGATIVE:t>0&&this.context.options.displayPositive?this.context.characterSet.POSITIVE:""}combine(t,e,o,r){if(0===o.length)return t+e;{const n=this.context.getDot();return this.context.options.useTraditionalFloatingUnit&&0===r?t+o:t+e+n+o}}convertNumber(t){this.checkNotSupportedCases(t);const e=this.getSign(t),o=new n.FloatingNumberConvertor(this.context);t=Math.abs(t);const r=Math.floor(t),i=o.convertFloat(t),s=this.convert_0_to_wwww(r);return this.combine(e,s,i,r)}}},55:(t,e,o)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.FloatingNumberConvertor=void 0;const r=o(562);e.FloatingNumberConvertor=class{constructor(t){this.context=t,this.basicNumber=new r.BasicNumberConvertor(this.context)}convertFloat(t){if(t-Math.floor(t)==0)return"";const e=Math.floor(t).toString().length+1,o=t.toString(),r=o.length;return this.context.options.useTraditionalFloatingUnit?this.convertTraditionalFloatingNumber(e,r,o):this.convertModernFloatingNumber(e,r,o)}convertTraditionalFloatingNumber(t,e,o){let r="";for(let n=t;n<e;n++){const e=parseInt(o.substring(n,n+1));0!==e&&(r+=this.basicNumber.convert_0_to_9(e,!1,!1,"")+this.context.characterSet.TRADITIONAL_FLOATING_UNIT[n-t])}return r}convertModernFloatingNumber(t,e,o){let r="";for(let n=t;n<e;n++){const t=parseInt(o.substring(n,n+1));r+=this.basicNumber.convert_0_to_9(t,!1,!1,"")}return r}}}},e={};function o(r){var n=e[r];if(void 0!==n)return n.exports;var i=e[r]={exports:{}};return t[r](i,i.exports,o),i.exports}var r={};(()=>{var t=r;Object.defineProperty(t,"__esModule",{value:!0}),t.convertNumber=void 0;const e=o(823);t.convertNumber=function(t,o={}){return new e.Convertor(o).convertNumber(t)}})();var n=window;for(var i in r)n[i]=r[i];r.__esModule&&Object.defineProperty(n,"__esModule",{value:!0})})();