forked from papamas/ekinerja
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnumeral.min.js
8 lines (8 loc) · 12.8 KB
/
numeral.min.js
1
2
3
4
5
6
7
8
/*! @preserve
* numeral.js
* version : 2.0.6
* author : Adam Draper
* license : MIT
* http://adamwdraper.github.com/Numeral-js/
*/
!function(a, b){"function" == typeof define && define.amd?define(b):"object" == typeof module && module.exports?module.exports = b():a.numeral = b()}(this, function(){function a(a, b){this._input = a, this._value = b}var b, c, d = "2.0.6", e = {}, f = {}, g = {currentLocale:"en", zeroFormat:null, nullFormat:null, defaultFormat:"0,0", scalePercentBy100:!0}, h = {currentLocale:g.currentLocale, zeroFormat:g.zeroFormat, nullFormat:g.nullFormat, defaultFormat:g.defaultFormat, scalePercentBy100:g.scalePercentBy100}; return 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, l, m = f[b.options.currentLocale], n = !1, o = !1, p = 0, q = "", r = 1e12, s = 1e9, t = 1e6, u = 1e3, v = "", w = !1; if (a = a || 0, g = Math.abs(a), b._.includes(c, "(")?(n = !0, c = c.replace(/[\(|\)]/g, "")):(b._.includes(c, "+") || b._.includes(c, "-")) && (j = b._.includes(c, "+")?c.indexOf("+"):0 > a?c.indexOf("-"): - 1, 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") && (q = " "), c = c.replace(new RegExp(q + "a[kmbt]?"), ""), g >= r && !e || "t" === e?(q += m.abbreviations.trillion, a /= r):r > g && g >= s && !e || "b" === e?(q += m.abbreviations.billion, a /= s):s > g && g >= t && !e || "m" === e?(q += m.abbreviations.million, a /= t):(t > g && g >= u && !e || "k" === e) && (q += m.abbreviations.thousand, a /= u)), b._.includes(c, "[.]") && (o = !0, c = c.replace("[.]", ".")), h = a.toString().split(".")[0], i = c.split(".")[1], k = c.indexOf(","), p = (c.split(".")[0].split(",")[0].match(/0/g) || []).length, i?(b._.includes(i, "[")?(i = i.replace("]", ""), i = i.split("["), v = b._.toFixed(a, i[0].length + i[1].length, d, i[1].length)):v = b._.toFixed(a, i.length, d), h = v.split(".")[0], v = b._.includes(v, ".")?m.delimiters.decimal + v.split(".")[1]:"", o && 0 === Number(v.slice(1)) && (v = "")):h = b._.toFixed(a, 0, d), q && !e && Number(h) >= 1e3 && q !== m.abbreviations.trillion)switch (h = String(Number(h) / 1e3), q){case m.abbreviations.thousand:q = m.abbreviations.million; break; case m.abbreviations.million:q = m.abbreviations.billion; break; case m.abbreviations.billion:q = m.abbreviations.trillion}if (b._.includes(h, "-") && (h = h.slice(1), w = !0), h.length < p)for (var x = p - h.length; x > 0; x--)h = "0" + h; return k > - 1 && (h = h.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1" + m.delimiters.thousands)), 0 === c.indexOf(".") && (h = ""), l = h + v + (q?q:""), n?l = (n && w?"(":"") + l + (n && w?")":""):j >= 0?l = 0 === j?(w?"-":"+") + l:l + (w?"-":"+"):w && (l = "-" + l), l}, 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)}, insert:function(a, b, c){return a.slice(0, c) + b + a.slice(c)}, 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 + "e+" + e) / 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()), 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."); return this[a + "s"][b] = c, 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:"$"}}), function(){b.register("format", "bps", {regexps:{format:/(BPS)/, unformat:/(BPS)/}, format:function(a, c, d){var e, f = b._.includes(c, " BPS")?" ":""; return a = 1e4 * a, c = c.replace(/\s?BPS/, ""), e = b._.numberToFormat(a, c, d), b._.includes(e, ")")?(e = e.split(""), e.splice( - 1, 0, f + "BPS"), e = e.join("")):e = e + f + "BPS", e}, unformat:function(a){return + (1e-4 * b._.stringToNumber(a)).toFixed(15)}})}(), function(){var a = {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"]}, d = a.suffixes.concat(c.suffixes.filter(function(b){return a.suffixes.indexOf(b) < 0})), e = d.join("|"); e = "(" + e.replace("B", "B(?!PS)") + ")", b.register("format", "bytes", {regexps:{format:/([0\s]i?b)/, unformat:new RegExp(e)}, format:function(d, e, f){var g, h, i, j, k = b._.includes(e, "ib")?c:a, l = b._.includes(e, " b") || b._.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 = b._.numberToFormat(d, e, f), g + l}, unformat:function(d){var e, f, g = b._.stringToNumber(d); if (g){for (e = a.suffixes.length - 1; e >= 0; e--){if (b._.includes(d, a.suffixes[e])){f = Math.pow(a.base, e); break}if (b._.includes(d, c.suffixes[e])){f = Math.pow(c.base, e); break}}g *= f || 1}return g}})}(), function(){b.register("format", "currency", {regexps:{format:/(\$)/}, format:function(a, c, d){var e, f, g, h = b.locales[b.options.currentLocale], i = {before:c.match(/^([\+|\-|\(|\s|\$]*)/)[0], after:c.match(/([\+|\-|\)|\s|\$]*)$/)[0]}; for (c = c.replace(/\s?\$\s?/, ""), e = b._.numberToFormat(a, c, d), a >= 0?(i.before = i.before.replace(/[\-\(]/, ""), i.after = i.after.replace(/[\-\)]/, "")):0 > a && !b._.includes(i.before, "-") && !b._.includes(i.before, "(") && (i.before = "-" + i.before), g = 0; g < i.before.length; g++)switch (f = i.before[g]){case"$":e = b._.insert(e, h.currency.symbol, g); break; case" ":e = b._.insert(e, " ", g + h.currency.symbol.length - 1)}for (g = i.after.length - 1; g >= 0; g--)switch (f = i.after[g]){case"$":e = g === i.after.length - 1?e + h.currency.symbol:b._.insert(e, h.currency.symbol, - (i.after.length - (1 + g))); break; case" ":e = g === i.after.length - 1?e + " ":b._.insert(e, " ", - (i.after.length - (1 + g) + h.currency.symbol.length - 1))}return e}})}(), function(){b.register("format", "exponential", {regexps:{format:/(e\+|e-)/, unformat:/(e\+|e-)/}, format:function(a, c, d){var e, f = "number" != typeof a || b._.isNaN(a)?"0e+0":a.toExponential(), g = f.split("e"); return c = c.replace(/e[\+|\-]{1}0/, ""), e = b._.numberToFormat(Number(g[0]), c, d), e + "e" + g[1]}, unformat:function(a){function c(a, c, d, e){var f = b._.correctionFactor(a, c), g = a * f * (c * f) / (f * f); return g}var d = b._.includes(a, "e+")?a.split("e+"):a.split("e-"), e = Number(d[0]), f = Number(d[1]); return f = b._.includes(a, "e-")?f *= - 1:f, b._.reduce([e, Math.pow(10, f)], c, 1)}})}(), function(){b.register("format", "ordinal", {regexps:{format:/(o)/}, format:function(a, c, d){var e, f = b.locales[b.options.currentLocale], g = b._.includes(c, " o")?" ":""; return c = c.replace(/\s?o/, ""), g += f.ordinal(a), e = b._.numberToFormat(a, c, d), e + g}})}(), function(){b.register("format", "percentage", {regexps:{format:/(%)/, unformat:/(%)/}, format:function(a, c, d){var e, f = b._.includes(c, " %")?" ":""; return b.options.scalePercentBy100 && (a = 100 * a), c = c.replace(/\s?\%/, ""), e = b._.numberToFormat(a, c, d), b._.includes(e, ")")?(e = e.split(""), e.splice( - 1, 0, f + "%"), e = e.join("")):e = e + f + "%", e}, unformat:function(a){var c = b._.stringToNumber(a); return b.options.scalePercentBy100?.01 * c:c}})}(), function(){b.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)}})}(), b});