UNPKG

10.5 kBJavaScriptView Raw
1/*! @preserve
2 * numeral.js
3 * version : 2.0.0
4 * author : Adam Draper
5 * license : MIT
6 * http://adamwdraper.github.com/Numeral-js/
7 */
8(function(){function a(a,b){this._input=a,this._value=b}var b,c,d="2.0.0",e={},f={},g={currentLocale:"en",zeroFormat:null,nullFormat:null,defaultFormat:"0,0"},h={currentLocale:g.currentLocale,zeroFormat:g.zeroFormat,nullFormat:g.nullFormat,defaultFormat:g.defaultFormat};b=function(d){var f,g,i,j;if(b.isNumeral(d))f=d.value();else if(0===d||"undefined"==typeof d)f=0;else if(null===d||c.isNaN(d))f=null;else if("string"==typeof d)if(h.zeroFormat&&d===h.zeroFormat)f=0;else if(h.nullFormat&&d===h.nullFormat||!d.replace(/[^0-9]+/g,"").length)f=null;else{for(g in e)if(j="function"==typeof e[g].regexps.unformat?e[g].regexps.unformat():e[g].regexps.unformat,j&&d.match(j)){i=e[g].unformat;break}i=i||b._.stringToNumber,f=i(d)}else f=Number(d)||null;return new a(d,f)},b.version=d,b.isNumeral=function(b){return b instanceof a},b._=c={numberToFormat:function(a,c,d){var e,g,h,i,j,k=f[b.options.currentLocale],l=!1,m=!1,n=!1,o="",p=1e12,q=1e9,r=1e6,s=1e3,t="",u=!1;return a=a||0,g=Math.abs(a),b._.includes(c,"(")?(l=!0,c=c.slice(1,-1)):b._.includes(c,"+")&&(m=!0,c=c.replace(/\+/g,"")),b._.includes(c,"a")&&(e=c.match(/a(k|m|b|t)?/),e=e?e[1]:!1,b._.includes(c," a")&&(o=" "),c=c.replace(new RegExp(o+"a[kmbt]?"),""),g>=p&&!e||"t"===e?(o+=k.abbreviations.trillion,a/=p):p>g&&g>=q&&!e||"b"===e?(o+=k.abbreviations.billion,a/=q):q>g&&g>=r&&!e||"m"===e?(o+=k.abbreviations.million,a/=r):(r>g&&g>=s&&!e||"k"===e)&&(o+=k.abbreviations.thousand,a/=s)),b._.includes(c,"[.]")&&(n=!0,c=c.replace("[.]",".")),h=a.toString().split(".")[0],i=c.split(".")[1],j=c.indexOf(","),i?(b._.includes(i,"[")?(i=i.replace("]",""),i=i.split("["),t=b._.toFixed(a,i[0].length+i[1].length,d,i[1].length)):t=b._.toFixed(a,i.length,d),h=t.split(".")[0],t=b._.includes(t,".")?k.delimiters.decimal+t.split(".")[1]:"",n&&0===Number(t.slice(1))&&(t="")):h=b._.toFixed(a,null,d),b._.includes(h,"-")&&(h=h.slice(1),u=!0),j>-1&&(h=h.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1"+k.delimiters.thousands)),0===c.indexOf(".")&&(h=""),(l&&u?"(":"")+(!l&&u?"-":"")+(!u&&m?"+":"")+h+t+(o?o:"")+(l&&u?")":"")},stringToNumber:function(a){var b,c,d,e=f[h.currentLocale],g=a,i={thousand:3,million:6,billion:9,trillion:12};if(h.zeroFormat&&a===h.zeroFormat)c=0;else if(h.nullFormat&&a===h.nullFormat||!a.replace(/[^0-9]+/g,"").length)c=null;else{c=1,"."!==e.delimiters.decimal&&(a=a.replace(/\./g,"").replace(e.delimiters.decimal,"."));for(b in i)if(d=new RegExp("[^a-zA-Z]"+e.abbreviations[b]+"(?:\\)|(\\"+e.currency.symbol+")?(?:\\))?)?$"),g.match(d)){c*=Math.pow(10,i[b]);break}c*=(a.split("-").length+Math.min(a.split("(").length-1,a.split(")").length-1))%2?1:-1,a=a.replace(/[^0-9\.]+/g,""),c*=Number(a)}return c},isNaN:function(a){return"number"==typeof a&&isNaN(a)},includes:function(a,b){return-1!==a.indexOf(b)},reduce:function(a,b){if(null===this)throw new TypeError("Array.prototype.reduce called on null or undefined");if("function"!=typeof b)throw new TypeError(b+" is not a function");var c,d=Object(a),e=d.length>>>0,f=0;if(3===arguments.length)c=arguments[2];else{for(;e>f&&!(f in d);)f++;if(f>=e)throw new TypeError("Reduce of empty array with no initial value");c=d[f++]}for(;e>f;f++)f in d&&(c=b(c,d[f],f,d));return c},multiplier:function(a){var b=a.toString().split(".");return b.length<2?1:Math.pow(10,b[1].length)},correctionFactor:function(){var a=Array.prototype.slice.call(arguments);return a.reduce(function(a,b){var d=c.multiplier(b);return a>d?a:d},1)},toFixed:function(a,b,c,d){var e,f,g,h,i=a.toString().split("."),j=b-(d||0);return e=2===i.length?Math.min(Math.max(i[1].length,j),b):j,g=Math.pow(10,e),h=(c(a*g)/g).toFixed(e),d>b-e&&(f=new RegExp("\\.?0{1,"+(d-(b-e))+"}$"),h=h.replace(f,"")),h}},b.options=h,b.formats=e,b.locales=f,b.locale=function(a){return a?(h.currentLocale=a.toLowerCase(),b):h.currentLocale},b.localeData=function(a){if(!a)return f[h.currentLocale];if(a=a.toLowerCase(),!f[a])throw new Error("Unknown locale : "+a);return f[a]},b.reset=function(){for(var a in g)h[a]=g[a]},b.zeroFormat=function(a){h.zeroFormat="string"==typeof a?a:null},b.nullFormat=function(a){h.nullFormat="string"==typeof a?a:null},b.defaultFormat=function(a){h.defaultFormat="string"==typeof a?a:"0.0"},b.register=function(a,b,c){if(b=b.toLowerCase(),this[a+"s"][b])throw new TypeError(b+" "+a+" already registered.");this[a+"s"][b]=c},b.validate=function(a,c){var d,e,f,g,h,i,j,k;if("string"!=typeof a&&(a+="",console.warn&&console.warn("Numeral.js: Value is not string. It has been co-erced to: ",a)),a=a.trim(),a.match(/^\d+$/))return!0;if(""===a)return!1;try{j=b.localeData(c)}catch(l){j=b.localeData(b.locale())}return f=j.currency.symbol,h=j.abbreviations,d=j.delimiters.decimal,e="."===j.delimiters.thousands?"\\.":j.delimiters.thousands,k=a.match(/^[^\d]+/),null!==k&&(a=a.substr(1),k[0]!==f)?!1:(k=a.match(/[^\d]+$/),null!==k&&(a=a.slice(0,-1),k[0]!==h.thousand&&k[0]!==h.million&&k[0]!==h.billion&&k[0]!==h.trillion)?!1:(i=new RegExp(e+"{2}"),a.match(/[^\d.,]/g)?!1:(g=a.split(d),g.length>2?!1:g.length<2?!!g[0].match(/^\d+.*\d$/)&&!g[0].match(i):1===g[0].length?!!g[0].match(/^\d+$/)&&!g[0].match(i)&&!!g[1].match(/^\d+$/):!!g[0].match(/^\d+.*\d$/)&&!g[0].match(i)&&!!g[1].match(/^\d+$/))))},b.fn=a.prototype={clone:function(){return b(this)},format:function(a,c){var d,f,g,i=this._value,j=a||h.defaultFormat;if(c=c||Math.round,0===i&&null!==h.zeroFormat)f=h.zeroFormat;else if(null===i&&null!==h.nullFormat)f=h.nullFormat;else{for(d in e)if(j.match(e[d].regexps.format)){g=e[d].format;break}g=g||b._.numberToFormat,f=g(i,j,c)}return f},value:function(){return this._value},input:function(){return this._input},set:function(a){return this._value=Number(a),this},add:function(a){function b(a,b,c,e){return a+Math.round(d*b)}var d=c.correctionFactor.call(null,this._value,a);return this._value=c.reduce([this._value,a],b,0)/d,this},subtract:function(a){function b(a,b,c,e){return a-Math.round(d*b)}var d=c.correctionFactor.call(null,this._value,a);return this._value=c.reduce([a],b,Math.round(this._value*d))/d,this},multiply:function(a){function b(a,b,d,e){var f=c.correctionFactor(a,b);return Math.round(a*f)*Math.round(b*f)/Math.round(f*f)}return this._value=c.reduce([this._value,a],b,1),this},divide:function(a){function b(a,b,d,e){var f=c.correctionFactor(a,b);return Math.round(a*f)/Math.round(b*f)}return this._value=c.reduce([this._value,a],b),this},difference:function(a){return Math.abs(b(this._value).subtract(a).value())}},b.register("locale","en",{delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(a){var b=a%10;return 1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th"},currency:{symbol:"$"}}),"undefined"!=typeof module&&module.exports&&(module.exports=b),"undefined"==typeof ender&&(this.numeral=b),"function"==typeof define&&define.amd&&define([],function(){return b})}).call(this),function(){var a="undefined"!=typeof window?this.numeral:require("../numeral"),b={base:1e3,suffixes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"]},c={base:1024,suffixes:["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"]};a.register("format","bytes",{regexps:{format:/([0\s]i?b)/,unformat:new RegExp("("+b.suffixes.concat(c.suffixes).join("|")+")")},format:function(d,e,f){var g,h,i,j,k=a._.includes(e,"ib")?c:b,l=a._.includes(e," b")||a._.includes(e," ib")?" ":"";for(e=e.replace(/\s?i?b/,""),h=0;h<=k.suffixes.length;h++)if(i=Math.pow(k.base,h),j=Math.pow(k.base,h+1),null===d||0===d||d>=i&&j>d){l+=k.suffixes[h],i>0&&(d/=i);break}return g=a._.numberToFormat(d,e,f),g+l},unformat:function(d){var e,f,g=a._.stringToNumber(d);if(g){for(e=b.suffixes.length-1;e>=0;e--){if(a._.includes(d,b.suffixes[e])){f=Math.pow(b.base,e);break}if(a._.includes(d,c.suffixes[e])){f=Math.pow(c.base,e);break}}g*=f||1}return g}})}(),function(){var a="undefined"!=typeof window?this.numeral:require("../numeral");a.register("format","currency",{regexps:{format:/(\$)/},format:function(b,c,d){var e,f,g=a.locales[a.options.currentLocale],h=c.indexOf("$"),i=c.indexOf("("),j=c.indexOf("-"),k=a._.includes(c," $")||a._.includes(c,"$ ")?" ":"";return c=c.replace(/\s?\$\s?/,""),f=a._.numberToFormat(b,c,d),1>=h?a._.includes(f,"(")||a._.includes(f,"-")?(f=f.split(""),e=i>h||j>h?0:1,f.splice(e,0,g.currency.symbol+k),f=f.join("")):f=g.currency.symbol+k+f:a._.includes(f,")")?(f=f.split(""),f.splice(-1,0,k+g.currency.symbol),f=f.join("")):f=f+k+g.currency.symbol,f}})}(),function(){var a="undefined"!=typeof window?this.numeral:require("../numeral");a.register("format","exponential",{regexps:{format:/(e\+|e-)/,unformat:/(e\+|e-)/},format:function(b,c,d){var e,f="number"!=typeof b||a._.isNaN(b)?"0e+0":b.toExponential(),g=f.split("e");return c=c.replace(/e[\+|\-]{1}0/,""),e=a._.numberToFormat(Number(g[0]),c,d),e+"e"+g[1]},unformat:function(b){function c(b,c,d,e){var f=a._.correctionFactor(b,c),g=b*f*(c*f)/(f*f);return g}var d=a._.includes(b,"e+")?b.split("e+"):b.split("e-"),e=Number(d[0]),f=Number(d[1]);return f=a._.includes(b,"e-")?f*=-1:f,a._.reduce([e,Math.pow(10,f)],c,1)}})}(),function(){var a="undefined"!=typeof window?this.numeral:require("../numeral");"undefined"!=typeof window&&this.numeral?a=this.numeral:"undefined"!=typeof module&&module.exports&&(a=require("../numeral")),a.register("format","ordinal",{regexps:{format:/(o)/},format:function(b,c,d){var e,f=a.locales[a.options.currentLocale],g=a._.includes(c," o")?" ":"";return c=c.replace(/\s?o/,""),g+=f.ordinal(b),e=a._.numberToFormat(b,c,d),e+g}})}(),function(){var a="undefined"!=typeof window?this.numeral:require("../numeral");a.register("format","percentage",{regexps:{format:/(%)/,unformat:/(%)/},format:function(b,c,d){var e,f=a._.includes(c," %")?" ":"";return b=100*b,c=c.replace(/\s?\%/,""),e=a._.numberToFormat(b,c,d),a._.includes(e,")")?(e=e.split(""),e.splice(-1,0,f+"%"),e=e.join("")):e=e+f+"%",e},unformat:function(b){return.01*a._.stringToNumber(b)}})}(),function(){var a="undefined"!=typeof window?this.numeral:require("../numeral");a.register("format","time",{regexps:{format:/(:)/,unformat:/(:)/},format:function(a,b,c){var d=Math.floor(a/60/60),e=Math.floor((a-60*d*60)/60),f=Math.round(a-60*d*60-60*e);return d+":"+(10>e?"0"+e:e)+":"+(10>f?"0"+f:f)},unformat:function(a){var b=a.split(":"),c=0;return 3===b.length?(c+=60*Number(b[0])*60,c+=60*Number(b[1]),c+=Number(b[2])):2===b.length&&(c+=60*Number(b[0]),c+=Number(b[1])),Number(c)}})}();
\No newline at end of file