UNPKG

pretty-num

Version:

Lightweight module for formatting numbers to a human readable string

2 lines (1 loc) 3.54 kB
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((e="undefined"!=typeof globalThis?globalThis:e||self).prettyNum={})}(this,(function(e){"use strict";function r(e){return Array.isArray(e)?e:String(e).split(/[eE]/)}function n(e){var n=r(e);if(!function(e){var n=r(e);return!Number.isNaN(Number(n[1]))}(n))return n[0];var t="-"===n[0][0]?"-":"",i=n[0].replace(/^-/,"").split("."),o=i[0],a=i[1]||"",u=Number(n[1]);if(0===u)return"".concat(t+o,".").concat(a);if(u<0){var c=o.length+u;if(c>0){var f=o.substr(0,c),s=o.substr(c);return"".concat(t+f,".").concat(s).concat(a)}var l="0.";for(u=c;u;)l+="0",u+=1;return t+l+o+a}var d=a.length-u;if(d>0){var g=a.substr(u),p=a.substr(0,u);return"".concat(t+o+p,".").concat(g)}for(var v=-d,E="";v;)E+="0",v-=1;return t+o+a+E}var t=function(e,r){var n=((e||0===e?e:"")+"").split(".");return n.length&&(n[0]=n[0].replace(/(\d)(?=(\d{3})+\b)/g,"$1"+(r||","))),n.join(".")};function i(e,r){return"string"==typeof e&&(r||-1===e.indexOf(".")||(e=/[eE]/.test(e)?e.replace(/\.?0*(?=[eE])/,""):e.replace(/\.?0*$/,"")),e=e.replace(/^0+(?!\.)(?!$)/,"")),e}function o(e,r){if("string"!=typeof e&&(e=e.toString()),!(r>0))return e;if(-1!==e.toLowerCase().indexOf("e"))return e;for(var n=e.indexOf("."),t=-1!==n,i=e.length,o=r-(t?i-n-1:0),a=t?"":".",u=0;u<o;u+=1)a+="0";return e.slice(0,Math.max(0,i))+a+e.slice(i)}var a={REDUCE:1,REDUCE_SIGNIFICANT:2,FIXED:3,INCREASE:4},u={UP:1,DOWN:2,CEIL:3,FLOOR:4,HALF_UP:5,HALF_DOWN:6,HALF_EVEN:7};function c(e,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(-1!==(e=e.toString()).toLowerCase().indexOf("e"))return e;if(n.precisionSetting||(n.precisionSetting=a.REDUCE),n.precisionSetting===a.FIXED){var t=f(e,r,{precisionSetting:a.REDUCE,roundingMode:n.roundingMode});return t=o(t=i(t,!0),r)}if(n.precisionSetting===a.INCREASE){var u=i(e);return o(u,r)}return i(f(e,r,n))}function f(e,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},t=n.precisionSetting,i=void 0===t?a.REDUCE:t,o=n.roundingMode,c=void 0===o?u.HALF_UP:o;if(!r&&0!==r)return e;r=Number(r);var f=e.split("."),d=f[0],g=f[1];if(!g)return e;var p=!1;if("-"===d[0]&&(p=!0,d=d.slice(1)),e=d+g,i===a.REDUCE_SIGNIFICANT){var v=g.match(/^0*/);v&&(r+=v[0].length)}var E=d.length+r,N=Math.min(g.length,r),h=e.slice(E);if(e=e.slice(0,E),h&&s(h,e,p,c)&&(e=l(e)),N){var I=e.length-N;e="".concat(e.slice(0,I),".").concat(e.slice(I))}return(p?"-":"")+e}function s(e,r,n,t){if(!e||e===new Array(e.length+1).join("0"))return!1;if(t===u.DOWN||!n&&t===u.FLOOR||n&&t===u.CEIL)return!1;if(t===u.UP||n&&t===u.FLOOR||!n&&t===u.CEIL)return!0;var i="5".concat(new Array(e.length).join("0"));if(e>i)return!0;if(e<i)return!1;switch(t){case u.HALF_DOWN:return!1;case u.HALF_UP:return!0;default:return Number.parseInt(r.at(-1),10)%2==1}}function l(e){for(var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n="",t=e.length-1;t>=0;t-=1){var i=Number.parseInt(e[t],10)+r;10===i?(r=1,i=0):r=0,n+=i}return r&&(n+=r),n.split("").reverse().join("")}function d(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=r.precision,o=r.precisionSetting,a=r.roundingMode,u=r.thousandsSeparator,f=r.decimalSeparator,s=r.separateOneDigit,l=void 0===s||s,d=n(e);return d=c(d,i,{precisionSetting:o,roundingMode:a}),u&&(l||Number(d)>=1e4)&&(d=t(d,u)),f&&"."!==f&&(d=d.replace(".",f)),d}e.PRECISION_SETTING=a,e.ROUNDING_MODE=u,e.default=d,e.prettyNum=d,Object.defineProperty(e,"__esModule",{value:!0})}));