{"version":3,"file":"8731.1631be8dec32b89becd8.js","mappings":"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","sources":["webpack://skagenfondene.no/./node_modules/numeral/locales.js","webpack://skagenfondene.no/./node_modules/numeral/numeral.js"],"sourcesContent":["/*! @preserve\n * numeral.js\n * locales : 2.0.6\n * license : MIT\n * http://adamwdraper.github.com/Numeral-js/\n */\n\n(function (global, factory) {\n if (typeof define === 'function' && define.amd) {\n define(['numeral'], factory);\n } else if (typeof module === 'object' && module.exports) {\n factory(require('./numeral'));\n } else {\n factory(global.numeral);\n }\n}(this, function (numeral) {\n \n(function() {\n numeral.register('locale', 'bg', {\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: { // I found these here http://www.unicode.org/cldr/charts/28/verify/numbers/bg.html\n thousand: 'хил',\n million: 'млн',\n billion: 'млрд',\n trillion: 'трлн'\n },\n ordinal: function (number) {\n // google translate suggests:\n // 1st=1-ви; 2nd=2-ри; 7th=7-ми;\n // 8th=8-ми and many others end with -ти\n // for example 3rd=3-ти\n // However since I've seen suggestions that in\n // Bulgarian the ordinal can be taken in\n // different forms (masculine, feminine, neuter)\n // I've opted to wimp out on commiting that to code\n return '';\n },\n currency: {\n symbol: 'лв'\n }\n });\n})();\n\n\n(function() {\n \n numeral.register('locale', 'chs', {\n delimiters: {\n thousands: ',',\n decimal: '.'\n },\n abbreviations: {\n thousand: '千',\n million: '百万',\n billion: '十亿',\n trillion: '兆'\n },\n ordinal: function (number) {\n return '.';\n },\n currency: {\n symbol: '¥'\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'cs', {\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: 'tis.',\n million: 'mil.',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function () {\n return '.';\n },\n currency: {\n symbol: 'Kč'\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'da-dk', {\n delimiters: {\n thousands: '.',\n decimal: ','\n },\n abbreviations: {\n thousand: 'k',\n million: 'mio',\n billion: 'mia',\n trillion: 'b'\n },\n ordinal: function (number) {\n return '.';\n },\n currency: {\n symbol: 'DKK'\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'de-ch', {\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function (number) {\n return '.';\n },\n currency: {\n symbol: 'CHF'\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'de', {\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function (number) {\n return '.';\n },\n currency: {\n symbol: '€'\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'en-au', {\n delimiters: {\n thousands: ',',\n decimal: '.'\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function (number) {\n var b = number % 10;\n return (~~ (number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n },\n currency: {\n symbol: '$'\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'en-gb', {\n delimiters: {\n thousands: ',',\n decimal: '.'\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function (number) {\n var b = number % 10;\n return (~~ (number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n },\n currency: {\n symbol: '£'\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'en-za', {\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function (number) {\n var b = number % 10;\n return (~~ (number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n },\n currency: {\n symbol: 'R'\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'es-es', {\n delimiters: {\n thousands: '.',\n decimal: ','\n },\n abbreviations: {\n thousand: 'k',\n million: 'mm',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function (number) {\n var b = number % 10;\n return (b === 1 || b === 3) ? 'er' :\n (b === 2) ? 'do' :\n (b === 7 || b === 0) ? 'mo' :\n (b === 8) ? 'vo' :\n (b === 9) ? 'no' : 'to';\n },\n currency: {\n symbol: '€'\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'es', {\n delimiters: {\n thousands: '.',\n decimal: ','\n },\n abbreviations: {\n thousand: 'k',\n million: 'mm',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function (number) {\n var b = number % 10;\n return (b === 1 || b === 3) ? 'er' :\n (b === 2) ? 'do' :\n (b === 7 || b === 0) ? 'mo' :\n\t\t(b === 8) ? 'vo' :\n\t\t(b === 9) ? 'no' : 'to';\n },\n currency: {\n symbol: '$'\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'et', {\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: ' tuh',\n million: ' mln',\n billion: ' mld',\n trillion: ' trl'\n },\n ordinal: function (number) {\n return '.';\n },\n currency: {\n symbol: '€'\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'fi', {\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: 'k',\n million: 'M',\n billion: 'G',\n trillion: 'T'\n },\n ordinal: function (number) {\n return '.';\n },\n currency: {\n symbol: '€'\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'fr-ca', {\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: 'k',\n million: 'M',\n billion: 'G',\n trillion: 'T'\n },\n ordinal : function (number) {\n return number === 1 ? 'er' : 'e';\n },\n currency: {\n symbol: '$'\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'fr-ch', {\n delimiters: {\n thousands: '\\'',\n decimal: '.'\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't'\n },\n ordinal : function (number) {\n return number === 1 ? 'er' : 'e';\n },\n currency: {\n symbol: 'CHF'\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'fr', {\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't'\n },\n ordinal : function (number) {\n return number === 1 ? 'er' : 'e';\n },\n currency: {\n symbol: '€'\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'hu', {\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: 'E', // ezer\n million: 'M', // millió\n billion: 'Mrd', // milliárd\n trillion: 'T' // trillió\n },\n ordinal: function (number) {\n return '.';\n },\n currency: {\n symbol: ' Ft'\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'it', {\n delimiters: {\n thousands: '.',\n decimal: ','\n },\n abbreviations: {\n thousand: 'mila',\n million: 'mil',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function (number) {\n return 'º';\n },\n currency: {\n symbol: '€'\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'ja', {\n delimiters: {\n thousands: ',',\n decimal: '.'\n },\n abbreviations: {\n thousand: '千',\n million: '百万',\n billion: '十億',\n trillion: '兆'\n },\n ordinal: function (number) {\n return '.';\n },\n currency: {\n symbol: '¥'\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'lv', {\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: ' tūkst.',\n million: ' milj.',\n billion: ' mljrd.',\n trillion: ' trilj.'\n },\n ordinal: function (number) {\n return '.';\n },\n currency: {\n symbol: '€'\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'nl-be', {\n delimiters: {\n thousands: ' ',\n decimal : ','\n },\n abbreviations: {\n thousand : 'k',\n million : ' mln',\n billion : ' mld',\n trillion : ' bln'\n },\n ordinal : function (number) {\n var remainder = number % 100;\n\n return (number !== 0 && remainder <= 1 || remainder === 8 || remainder >= 20) ? 'ste' : 'de';\n },\n currency: {\n symbol: '€ '\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'nl-nl', {\n delimiters: {\n thousands: '.',\n decimal : ','\n },\n abbreviations: {\n thousand : 'k',\n million : 'mln',\n billion : 'mrd',\n trillion : 'bln'\n },\n ordinal : function (number) {\n var remainder = number % 100;\n return (number !== 0 && remainder <= 1 || remainder === 8 || remainder >= 20) ? 'ste' : 'de';\n },\n currency: {\n symbol: '€ '\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'no', {\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function (number) {\n return '.';\n },\n currency: {\n symbol: 'kr'\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'pl', {\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: 'tys.',\n million: 'mln',\n billion: 'mld',\n trillion: 'bln'\n },\n ordinal: function (number) {\n return '.';\n },\n currency: {\n symbol: 'PLN'\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'pt-br', {\n delimiters: {\n thousands: '.',\n decimal: ','\n },\n abbreviations: {\n thousand: 'mil',\n million: 'milhões',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function (number) {\n return 'º';\n },\n currency: {\n symbol: 'R$'\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'pt-pt', {\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't'\n },\n ordinal : function (number) {\n return 'º';\n },\n currency: {\n symbol: '€'\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'ru-ua', {\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: 'тыс.',\n million: 'млн',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function () {\n // not ideal, but since in Russian it can taken on\n // different forms (masculine, feminine, neuter)\n // this is all we can do\n return '.';\n },\n currency: {\n symbol: '\\u20B4'\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'ru', {\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: 'тыс.',\n million: 'млн.',\n billion: 'млрд.',\n trillion: 'трлн.'\n },\n ordinal: function () {\n // not ideal, but since in Russian it can taken on\n // different forms (masculine, feminine, neuter)\n // this is all we can do\n return '.';\n },\n currency: {\n symbol: 'руб.'\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'sk', {\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: 'tis.',\n million: 'mil.',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function () {\n return '.';\n },\n currency: {\n symbol: '€'\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'sl', {\n delimiters: {\n thousands: '.',\n decimal: ','\n },\n abbreviations: {\n thousand: 'k',\n million: 'mio',\n billion: 'mrd',\n trillion: 'trilijon'\n },\n ordinal: function () {\n return '.';\n },\n currency: {\n symbol: '€'\n }\n });\n})();\n\n\n(function() {\n \n\n numeral.register('locale', 'th', {\n delimiters: {\n thousands: ',',\n decimal: '.'\n },\n abbreviations: {\n thousand: 'พัน',\n million: 'ล้าน',\n billion: 'พันล้าน',\n trillion: 'ล้านล้าน'\n },\n ordinal: function (number) {\n return '.';\n },\n currency: {\n symbol: '฿'\n }\n });\n})();\n\n\n(function() {\n var suffixes = {\n 1: '\\'inci',\n 5: '\\'inci',\n 8: '\\'inci',\n 70: '\\'inci',\n 80: '\\'inci',\n\n 2: '\\'nci',\n 7: '\\'nci',\n 20: '\\'nci',\n 50: '\\'nci',\n\n 3: '\\'üncü',\n 4: '\\'üncü',\n 100: '\\'üncü',\n\n 6: '\\'ncı',\n\n 9: '\\'uncu',\n 10: '\\'uncu',\n 30: '\\'uncu',\n\n 60: '\\'ıncı',\n 90: '\\'ıncı'\n };\n\n numeral.register('locale', 'tr', {\n delimiters: {\n thousands: '.',\n decimal: ','\n },\n abbreviations: {\n thousand: 'bin',\n million: 'milyon',\n billion: 'milyar',\n trillion: 'trilyon'\n },\n ordinal: function (number) {\n if (number === 0) { // special case for zero\n return '\\'ıncı';\n }\n\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n\n return suffixes[a] || suffixes[b] || suffixes[c];\n },\n currency: {\n symbol: '\\u20BA'\n }\n });\n})();\n\n\n(function() {\n numeral.register('locale', 'uk-ua', {\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: 'тис.',\n million: 'млн',\n billion: 'млрд',\n trillion: 'блн'\n },\n ordinal: function () {\n // not ideal, but since in Ukrainian it can taken on\n // different forms (masculine, feminine, neuter)\n // this is all we can do\n return '';\n },\n currency: {\n symbol: '\\u20B4'\n }\n });\n})();\n\n\n(function() {\n \n numeral.register('locale', 'vi', {\n delimiters: {\n thousands: '.',\n decimal: ','\n },\n abbreviations: {\n thousand: ' nghìn',\n million: ' triệu',\n billion: ' tỷ',\n trillion: ' nghìn tỷ'\n },\n ordinal: function () {\n return '.';\n },\n currency: {\n symbol: '₫'\n }\n });\n})();\n\n\n}));\n","/*! @preserve\n * numeral.js\n * version : 2.0.6\n * author : Adam Draper\n * license : MIT\n * http://adamwdraper.github.com/Numeral-js/\n */\n\n(function (global, factory) {\n if (typeof define === 'function' && define.amd) {\n define(factory);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = factory();\n } else {\n global.numeral = factory();\n }\n}(this, function () {\n /************************************\n Variables\n ************************************/\n\n var numeral,\n _,\n VERSION = '2.0.6',\n formats = {},\n locales = {},\n defaults = {\n currentLocale: 'en',\n zeroFormat: null,\n nullFormat: null,\n defaultFormat: '0,0',\n scalePercentBy100: true\n },\n options = {\n currentLocale: defaults.currentLocale,\n zeroFormat: defaults.zeroFormat,\n nullFormat: defaults.nullFormat,\n defaultFormat: defaults.defaultFormat,\n scalePercentBy100: defaults.scalePercentBy100\n };\n\n\n /************************************\n Constructors\n ************************************/\n\n // Numeral prototype object\n function Numeral(input, number) {\n this._input = input;\n\n this._value = number;\n }\n\n numeral = function(input) {\n var value,\n kind,\n unformatFunction,\n regexp;\n\n if (numeral.isNumeral(input)) {\n value = input.value();\n } else if (input === 0 || typeof input === 'undefined') {\n value = 0;\n } else if (input === null || _.isNaN(input)) {\n value = null;\n } else if (typeof input === 'string') {\n if (options.zeroFormat && input === options.zeroFormat) {\n value = 0;\n } else if (options.nullFormat && input === options.nullFormat || !input.replace(/[^0-9]+/g, '').length) {\n value = null;\n } else {\n for (kind in formats) {\n regexp = typeof formats[kind].regexps.unformat === 'function' ? formats[kind].regexps.unformat() : formats[kind].regexps.unformat;\n\n if (regexp && input.match(regexp)) {\n unformatFunction = formats[kind].unformat;\n\n break;\n }\n }\n\n unformatFunction = unformatFunction || numeral._.stringToNumber;\n\n value = unformatFunction(input);\n }\n } else {\n value = Number(input)|| null;\n }\n\n return new Numeral(input, value);\n };\n\n // version number\n numeral.version = VERSION;\n\n // compare numeral object\n numeral.isNumeral = function(obj) {\n return obj instanceof Numeral;\n };\n\n // helper functions\n numeral._ = _ = {\n // formats numbers separators, decimals places, signs, abbreviations\n numberToFormat: function(value, format, roundingFunction) {\n var locale = locales[numeral.options.currentLocale],\n negP = false,\n optDec = false,\n leadingCount = 0,\n abbr = '',\n trillion = 1000000000000,\n billion = 1000000000,\n million = 1000000,\n thousand = 1000,\n decimal = '',\n neg = false,\n abbrForce, // force abbreviation\n abs,\n min,\n max,\n power,\n int,\n precision,\n signed,\n thousands,\n output;\n\n // make sure we never format a null value\n value = value || 0;\n\n abs = Math.abs(value);\n\n // see if we should use parentheses for negative number or if we should prefix with a sign\n // if both are present we default to parentheses\n if (numeral._.includes(format, '(')) {\n negP = true;\n format = format.replace(/[\\(|\\)]/g, '');\n } else if (numeral._.includes(format, '+') || numeral._.includes(format, '-')) {\n signed = numeral._.includes(format, '+') ? format.indexOf('+') : value < 0 ? format.indexOf('-') : -1;\n format = format.replace(/[\\+|\\-]/g, '');\n }\n\n // see if abbreviation is wanted\n if (numeral._.includes(format, 'a')) {\n abbrForce = format.match(/a(k|m|b|t)?/);\n\n abbrForce = abbrForce ? abbrForce[1] : false;\n\n // check for space before abbreviation\n if (numeral._.includes(format, ' a')) {\n abbr = ' ';\n }\n\n format = format.replace(new RegExp(abbr + 'a[kmbt]?'), '');\n\n if (abs >= trillion && !abbrForce || abbrForce === 't') {\n // trillion\n abbr += locale.abbreviations.trillion;\n value = value / trillion;\n } else if (abs < trillion && abs >= billion && !abbrForce || abbrForce === 'b') {\n // billion\n abbr += locale.abbreviations.billion;\n value = value / billion;\n } else if (abs < billion && abs >= million && !abbrForce || abbrForce === 'm') {\n // million\n abbr += locale.abbreviations.million;\n value = value / million;\n } else if (abs < million && abs >= thousand && !abbrForce || abbrForce === 'k') {\n // thousand\n abbr += locale.abbreviations.thousand;\n value = value / thousand;\n }\n }\n\n // check for optional decimals\n if (numeral._.includes(format, '[.]')) {\n optDec = true;\n format = format.replace('[.]', '.');\n }\n\n // break number and format\n int = value.toString().split('.')[0];\n precision = format.split('.')[1];\n thousands = format.indexOf(',');\n leadingCount = (format.split('.')[0].split(',')[0].match(/0/g) || []).length;\n\n if (precision) {\n if (numeral._.includes(precision, '[')) {\n precision = precision.replace(']', '');\n precision = precision.split('[');\n decimal = numeral._.toFixed(value, (precision[0].length + precision[1].length), roundingFunction, precision[1].length);\n } else {\n decimal = numeral._.toFixed(value, precision.length, roundingFunction);\n }\n\n int = decimal.split('.')[0];\n\n if (numeral._.includes(decimal, '.')) {\n decimal = locale.delimiters.decimal + decimal.split('.')[1];\n } else {\n decimal = '';\n }\n\n if (optDec && Number(decimal.slice(1)) === 0) {\n decimal = '';\n }\n } else {\n int = numeral._.toFixed(value, 0, roundingFunction);\n }\n\n // check abbreviation again after rounding\n if (abbr && !abbrForce && Number(int) >= 1000 && abbr !== locale.abbreviations.trillion) {\n int = String(Number(int) / 1000);\n\n switch (abbr) {\n case locale.abbreviations.thousand:\n abbr = locale.abbreviations.million;\n break;\n case locale.abbreviations.million:\n abbr = locale.abbreviations.billion;\n break;\n case locale.abbreviations.billion:\n abbr = locale.abbreviations.trillion;\n break;\n }\n }\n\n\n // format number\n if (numeral._.includes(int, '-')) {\n int = int.slice(1);\n neg = true;\n }\n\n if (int.length < leadingCount) {\n for (var i = leadingCount - int.length; i > 0; i--) {\n int = '0' + int;\n }\n }\n\n if (thousands > -1) {\n int = int.toString().replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1' + locale.delimiters.thousands);\n }\n\n if (format.indexOf('.') === 0) {\n int = '';\n }\n\n output = int + decimal + (abbr ? abbr : '');\n\n if (negP) {\n output = (negP && neg ? '(' : '') + output + (negP && neg ? ')' : '');\n } else {\n if (signed >= 0) {\n output = signed === 0 ? (neg ? '-' : '+') + output : output + (neg ? '-' : '+');\n } else if (neg) {\n output = '-' + output;\n }\n }\n\n return output;\n },\n // unformats numbers separators, decimals places, signs, abbreviations\n stringToNumber: function(string) {\n var locale = locales[options.currentLocale],\n stringOriginal = string,\n abbreviations = {\n thousand: 3,\n million: 6,\n billion: 9,\n trillion: 12\n },\n abbreviation,\n value,\n i,\n regexp;\n\n if (options.zeroFormat && string === options.zeroFormat) {\n value = 0;\n } else if (options.nullFormat && string === options.nullFormat || !string.replace(/[^0-9]+/g, '').length) {\n value = null;\n } else {\n value = 1;\n\n if (locale.delimiters.decimal !== '.') {\n string = string.replace(/\\./g, '').replace(locale.delimiters.decimal, '.');\n }\n\n for (abbreviation in abbreviations) {\n regexp = new RegExp('[^a-zA-Z]' + locale.abbreviations[abbreviation] + '(?:\\\\)|(\\\\' + locale.currency.symbol + ')?(?:\\\\))?)?$');\n\n if (stringOriginal.match(regexp)) {\n value *= Math.pow(10, abbreviations[abbreviation]);\n break;\n }\n }\n\n // check for negative number\n value *= (string.split('-').length + Math.min(string.split('(').length - 1, string.split(')').length - 1)) % 2 ? 1 : -1;\n\n // remove non numbers\n string = string.replace(/[^0-9\\.]+/g, '');\n\n value *= Number(string);\n }\n\n return value;\n },\n isNaN: function(value) {\n return typeof value === 'number' && isNaN(value);\n },\n includes: function(string, search) {\n return string.indexOf(search) !== -1;\n },\n insert: function(string, subString, start) {\n return string.slice(0, start) + subString + string.slice(start);\n },\n reduce: function(array, callback /*, initialValue*/) {\n if (this === null) {\n throw new TypeError('Array.prototype.reduce called on null or undefined');\n }\n\n if (typeof callback !== 'function') {\n throw new TypeError(callback + ' is not a function');\n }\n\n var t = Object(array),\n len = t.length >>> 0,\n k = 0,\n value;\n\n if (arguments.length === 3) {\n value = arguments[2];\n } else {\n while (k < len && !(k in t)) {\n k++;\n }\n\n if (k >= len) {\n throw new TypeError('Reduce of empty array with no initial value');\n }\n\n value = t[k++];\n }\n for (; k < len; k++) {\n if (k in t) {\n value = callback(value, t[k], k, t);\n }\n }\n return value;\n },\n /**\n * Computes the multiplier necessary to make x >= 1,\n * effectively eliminating miscalculations caused by\n * finite precision.\n */\n multiplier: function (x) {\n var parts = x.toString().split('.');\n\n return parts.length < 2 ? 1 : Math.pow(10, parts[1].length);\n },\n /**\n * Given a variable number of arguments, returns the maximum\n * multiplier that must be used to normalize an operation involving\n * all of them.\n */\n correctionFactor: function () {\n var args = Array.prototype.slice.call(arguments);\n\n return args.reduce(function(accum, next) {\n var mn = _.multiplier(next);\n return accum > mn ? accum : mn;\n }, 1);\n },\n /**\n * Implementation of toFixed() that treats floats more like decimals\n *\n * Fixes binary rounding issues (eg. (0.615).toFixed(2) === '0.61') that present\n * problems for accounting- and finance-related software.\n */\n toFixed: function(value, maxDecimals, roundingFunction, optionals) {\n var splitValue = value.toString().split('.'),\n minDecimals = maxDecimals - (optionals || 0),\n boundedPrecision,\n optionalsRegExp,\n power,\n output;\n\n // Use the smallest precision value possible to avoid errors from floating point representation\n if (splitValue.length === 2) {\n boundedPrecision = Math.min(Math.max(splitValue[1].length, minDecimals), maxDecimals);\n } else {\n boundedPrecision = minDecimals;\n }\n\n power = Math.pow(10, boundedPrecision);\n\n // Multiply up by precision, round accurately, then divide and use native toFixed():\n output = (roundingFunction(value + 'e+' + boundedPrecision) / power).toFixed(boundedPrecision);\n\n if (optionals > maxDecimals - boundedPrecision) {\n optionalsRegExp = new RegExp('\\\\.?0{1,' + (optionals - (maxDecimals - boundedPrecision)) + '}$');\n output = output.replace(optionalsRegExp, '');\n }\n\n return output;\n }\n };\n\n // avaliable options\n numeral.options = options;\n\n // avaliable formats\n numeral.formats = formats;\n\n // avaliable formats\n numeral.locales = locales;\n\n // This function sets the current locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n numeral.locale = function(key) {\n if (key) {\n options.currentLocale = key.toLowerCase();\n }\n\n return options.currentLocale;\n };\n\n // This function provides access to the loaded locale data. If\n // no arguments are passed in, it will simply return the current\n // global locale object.\n numeral.localeData = function(key) {\n if (!key) {\n return locales[options.currentLocale];\n }\n\n key = key.toLowerCase();\n\n if (!locales[key]) {\n throw new Error('Unknown locale : ' + key);\n }\n\n return locales[key];\n };\n\n numeral.reset = function() {\n for (var property in defaults) {\n options[property] = defaults[property];\n }\n };\n\n numeral.zeroFormat = function(format) {\n options.zeroFormat = typeof(format) === 'string' ? format : null;\n };\n\n numeral.nullFormat = function (format) {\n options.nullFormat = typeof(format) === 'string' ? format : null;\n };\n\n numeral.defaultFormat = function(format) {\n options.defaultFormat = typeof(format) === 'string' ? format : '0.0';\n };\n\n numeral.register = function(type, name, format) {\n name = name.toLowerCase();\n\n if (this[type + 's'][name]) {\n throw new TypeError(name + ' ' + type + ' already registered.');\n }\n\n this[type + 's'][name] = format;\n\n return format;\n };\n\n\n numeral.validate = function(val, culture) {\n var _decimalSep,\n _thousandSep,\n _currSymbol,\n _valArray,\n _abbrObj,\n _thousandRegEx,\n localeData,\n temp;\n\n //coerce val to string\n if (typeof val !== 'string') {\n val += '';\n\n if (console.warn) {\n console.warn('Numeral.js: Value is not string. It has been co-erced to: ', val);\n }\n }\n\n //trim whitespaces from either sides\n val = val.trim();\n\n //if val is just digits return true\n if (!!val.match(/^\\d+$/)) {\n return true;\n }\n\n //if val is empty return false\n if (val === '') {\n return false;\n }\n\n //get the decimal and thousands separator from numeral.localeData\n try {\n //check if the culture is understood by numeral. if not, default it to current locale\n localeData = numeral.localeData(culture);\n } catch (e) {\n localeData = numeral.localeData(numeral.locale());\n }\n\n //setup the delimiters and currency symbol based on culture/locale\n _currSymbol = localeData.currency.symbol;\n _abbrObj = localeData.abbreviations;\n _decimalSep = localeData.delimiters.decimal;\n if (localeData.delimiters.thousands === '.') {\n _thousandSep = '\\\\.';\n } else {\n _thousandSep = localeData.delimiters.thousands;\n }\n\n // validating currency symbol\n temp = val.match(/^[^\\d]+/);\n if (temp !== null) {\n val = val.substr(1);\n if (temp[0] !== _currSymbol) {\n return false;\n }\n }\n\n //validating abbreviation symbol\n temp = val.match(/[^\\d]+$/);\n if (temp !== null) {\n val = val.slice(0, -1);\n if (temp[0] !== _abbrObj.thousand && temp[0] !== _abbrObj.million && temp[0] !== _abbrObj.billion && temp[0] !== _abbrObj.trillion) {\n return false;\n }\n }\n\n _thousandRegEx = new RegExp(_thousandSep + '{2}');\n\n if (!val.match(/[^\\d.,]/g)) {\n _valArray = val.split(_decimalSep);\n if (_valArray.length > 2) {\n return false;\n } else {\n if (_valArray.length < 2) {\n return ( !! _valArray[0].match(/^\\d+.*\\d$/) && !_valArray[0].match(_thousandRegEx));\n } else {\n if (_valArray[0].length === 1) {\n return ( !! _valArray[0].match(/^\\d+$/) && !_valArray[0].match(_thousandRegEx) && !! _valArray[1].match(/^\\d+$/));\n } else {\n return ( !! _valArray[0].match(/^\\d+.*\\d$/) && !_valArray[0].match(_thousandRegEx) && !! _valArray[1].match(/^\\d+$/));\n }\n }\n }\n }\n\n return false;\n };\n\n\n /************************************\n Numeral Prototype\n ************************************/\n\n numeral.fn = Numeral.prototype = {\n clone: function() {\n return numeral(this);\n },\n format: function(inputString, roundingFunction) {\n var value = this._value,\n format = inputString || options.defaultFormat,\n kind,\n output,\n formatFunction;\n\n // make sure we have a roundingFunction\n roundingFunction = roundingFunction || Math.round;\n\n // format based on value\n if (value === 0 && options.zeroFormat !== null) {\n output = options.zeroFormat;\n } else if (value === null && options.nullFormat !== null) {\n output = options.nullFormat;\n } else {\n for (kind in formats) {\n if (format.match(formats[kind].regexps.format)) {\n formatFunction = formats[kind].format;\n\n break;\n }\n }\n\n formatFunction = formatFunction || numeral._.numberToFormat;\n\n output = formatFunction(value, format, roundingFunction);\n }\n\n return output;\n },\n value: function() {\n return this._value;\n },\n input: function() {\n return this._input;\n },\n set: function(value) {\n this._value = Number(value);\n\n return this;\n },\n add: function(value) {\n var corrFactor = _.correctionFactor.call(null, this._value, value);\n\n function cback(accum, curr, currI, O) {\n return accum + Math.round(corrFactor * curr);\n }\n\n this._value = _.reduce([this._value, value], cback, 0) / corrFactor;\n\n return this;\n },\n subtract: function(value) {\n var corrFactor = _.correctionFactor.call(null, this._value, value);\n\n function cback(accum, curr, currI, O) {\n return accum - Math.round(corrFactor * curr);\n }\n\n this._value = _.reduce([value], cback, Math.round(this._value * corrFactor)) / corrFactor;\n\n return this;\n },\n multiply: function(value) {\n function cback(accum, curr, currI, O) {\n var corrFactor = _.correctionFactor(accum, curr);\n return Math.round(accum * corrFactor) * Math.round(curr * corrFactor) / Math.round(corrFactor * corrFactor);\n }\n\n this._value = _.reduce([this._value, value], cback, 1);\n\n return this;\n },\n divide: function(value) {\n function cback(accum, curr, currI, O) {\n var corrFactor = _.correctionFactor(accum, curr);\n return Math.round(accum * corrFactor) / Math.round(curr * corrFactor);\n }\n\n this._value = _.reduce([this._value, value], cback);\n\n return this;\n },\n difference: function(value) {\n return Math.abs(numeral(this._value).subtract(value).value());\n }\n };\n\n /************************************\n Default Locale && Format\n ************************************/\n\n numeral.register('locale', 'en', {\n delimiters: {\n thousands: ',',\n decimal: '.'\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function(number) {\n var b = number % 10;\n return (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n },\n currency: {\n symbol: '$'\n }\n });\n\n \n\n(function() {\n numeral.register('format', 'bps', {\n regexps: {\n format: /(BPS)/,\n unformat: /(BPS)/\n },\n format: function(value, format, roundingFunction) {\n var space = numeral._.includes(format, ' BPS') ? ' ' : '',\n output;\n\n value = value * 10000;\n\n // check for space before BPS\n format = format.replace(/\\s?BPS/, '');\n\n output = numeral._.numberToFormat(value, format, roundingFunction);\n\n if (numeral._.includes(output, ')')) {\n output = output.split('');\n\n output.splice(-1, 0, space + 'BPS');\n\n output = output.join('');\n } else {\n output = output + space + 'BPS';\n }\n\n return output;\n },\n unformat: function(string) {\n return +(numeral._.stringToNumber(string) * 0.0001).toFixed(15);\n }\n });\n})();\n\n\n(function() {\n var decimal = {\n base: 1000,\n suffixes: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']\n },\n binary = {\n base: 1024,\n suffixes: ['B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB']\n };\n\n var allSuffixes = decimal.suffixes.concat(binary.suffixes.filter(function (item) {\n return decimal.suffixes.indexOf(item) < 0;\n }));\n var unformatRegex = allSuffixes.join('|');\n // Allow support for BPS (http://www.investopedia.com/terms/b/basispoint.asp)\n unformatRegex = '(' + unformatRegex.replace('B', 'B(?!PS)') + ')';\n\n numeral.register('format', 'bytes', {\n regexps: {\n format: /([0\\s]i?b)/,\n unformat: new RegExp(unformatRegex)\n },\n format: function(value, format, roundingFunction) {\n var output,\n bytes = numeral._.includes(format, 'ib') ? binary : decimal,\n suffix = numeral._.includes(format, ' b') || numeral._.includes(format, ' ib') ? ' ' : '',\n power,\n min,\n max;\n\n // check for space before\n format = format.replace(/\\s?i?b/, '');\n\n for (power = 0; power <= bytes.suffixes.length; power++) {\n min = Math.pow(bytes.base, power);\n max = Math.pow(bytes.base, power + 1);\n\n if (value === null || value === 0 || value >= min && value < max) {\n suffix += bytes.suffixes[power];\n\n if (min > 0) {\n value = value / min;\n }\n\n break;\n }\n }\n\n output = numeral._.numberToFormat(value, format, roundingFunction);\n\n return output + suffix;\n },\n unformat: function(string) {\n var value = numeral._.stringToNumber(string),\n power,\n bytesMultiplier;\n\n if (value) {\n for (power = decimal.suffixes.length - 1; power >= 0; power--) {\n if (numeral._.includes(string, decimal.suffixes[power])) {\n bytesMultiplier = Math.pow(decimal.base, power);\n\n break;\n }\n\n if (numeral._.includes(string, binary.suffixes[power])) {\n bytesMultiplier = Math.pow(binary.base, power);\n\n break;\n }\n }\n\n value *= (bytesMultiplier || 1);\n }\n\n return value;\n }\n });\n})();\n\n\n(function() {\n numeral.register('format', 'currency', {\n regexps: {\n format: /(\\$)/\n },\n format: function(value, format, roundingFunction) {\n var locale = numeral.locales[numeral.options.currentLocale],\n symbols = {\n before: format.match(/^([\\+|\\-|\\(|\\s|\\$]*)/)[0],\n after: format.match(/([\\+|\\-|\\)|\\s|\\$]*)$/)[0]\n },\n output,\n symbol,\n i;\n\n // strip format of spaces and $\n format = format.replace(/\\s?\\$\\s?/, '');\n\n // format the number\n output = numeral._.numberToFormat(value, format, roundingFunction);\n\n // update the before and after based on value\n if (value >= 0) {\n symbols.before = symbols.before.replace(/[\\-\\(]/, '');\n symbols.after = symbols.after.replace(/[\\-\\)]/, '');\n } else if (value < 0 && (!numeral._.includes(symbols.before, '-') && !numeral._.includes(symbols.before, '('))) {\n symbols.before = '-' + symbols.before;\n }\n\n // loop through each before symbol\n for (i = 0; i < symbols.before.length; i++) {\n symbol = symbols.before[i];\n\n switch (symbol) {\n case '$':\n output = numeral._.insert(output, locale.currency.symbol, i);\n break;\n case ' ':\n output = numeral._.insert(output, ' ', i + locale.currency.symbol.length - 1);\n break;\n }\n }\n\n // loop through each after symbol\n for (i = symbols.after.length - 1; i >= 0; i--) {\n symbol = symbols.after[i];\n\n switch (symbol) {\n case '$':\n output = i === symbols.after.length - 1 ? output + locale.currency.symbol : numeral._.insert(output, locale.currency.symbol, -(symbols.after.length - (1 + i)));\n break;\n case ' ':\n output = i === symbols.after.length - 1 ? output + ' ' : numeral._.insert(output, ' ', -(symbols.after.length - (1 + i) + locale.currency.symbol.length - 1));\n break;\n }\n }\n\n\n return output;\n }\n });\n})();\n\n\n(function() {\n numeral.register('format', 'exponential', {\n regexps: {\n format: /(e\\+|e-)/,\n unformat: /(e\\+|e-)/\n },\n format: function(value, format, roundingFunction) {\n var output,\n exponential = typeof value === 'number' && !numeral._.isNaN(value) ? value.toExponential() : '0e+0',\n parts = exponential.split('e');\n\n format = format.replace(/e[\\+|\\-]{1}0/, '');\n\n output = numeral._.numberToFormat(Number(parts[0]), format, roundingFunction);\n\n return output + 'e' + parts[1];\n },\n unformat: function(string) {\n var parts = numeral._.includes(string, 'e+') ? string.split('e+') : string.split('e-'),\n value = Number(parts[0]),\n power = Number(parts[1]);\n\n power = numeral._.includes(string, 'e-') ? power *= -1 : power;\n\n function cback(accum, curr, currI, O) {\n var corrFactor = numeral._.correctionFactor(accum, curr),\n num = (accum * corrFactor) * (curr * corrFactor) / (corrFactor * corrFactor);\n return num;\n }\n\n return numeral._.reduce([value, Math.pow(10, power)], cback, 1);\n }\n });\n})();\n\n\n(function() {\n numeral.register('format', 'ordinal', {\n regexps: {\n format: /(o)/\n },\n format: function(value, format, roundingFunction) {\n var locale = numeral.locales[numeral.options.currentLocale],\n output,\n ordinal = numeral._.includes(format, ' o') ? ' ' : '';\n\n // check for space before\n format = format.replace(/\\s?o/, '');\n\n ordinal += locale.ordinal(value);\n\n output = numeral._.numberToFormat(value, format, roundingFunction);\n\n return output + ordinal;\n }\n });\n})();\n\n\n(function() {\n numeral.register('format', 'percentage', {\n regexps: {\n format: /(%)/,\n unformat: /(%)/\n },\n format: function(value, format, roundingFunction) {\n var space = numeral._.includes(format, ' %') ? ' ' : '',\n output;\n\n if (numeral.options.scalePercentBy100) {\n value = value * 100;\n }\n\n // check for space before %\n format = format.replace(/\\s?\\%/, '');\n\n output = numeral._.numberToFormat(value, format, roundingFunction);\n\n if (numeral._.includes(output, ')')) {\n output = output.split('');\n\n output.splice(-1, 0, space + '%');\n\n output = output.join('');\n } else {\n output = output + space + '%';\n }\n\n return output;\n },\n unformat: function(string) {\n var number = numeral._.stringToNumber(string);\n if (numeral.options.scalePercentBy100) {\n return number * 0.01;\n }\n return number;\n }\n });\n})();\n\n\n(function() {\n numeral.register('format', 'time', {\n regexps: {\n format: /(:)/,\n unformat: /(:)/\n },\n format: function(value, format, roundingFunction) {\n var hours = Math.floor(value / 60 / 60),\n minutes = Math.floor((value - (hours * 60 * 60)) / 60),\n seconds = Math.round(value - (hours * 60 * 60) - (minutes * 60));\n\n return hours + ':' + (minutes < 10 ? '0' + minutes : minutes) + ':' + (seconds < 10 ? '0' + seconds : seconds);\n },\n unformat: function(string) {\n var timeArray = string.split(':'),\n seconds = 0;\n\n // turn hours and minutes into seconds and add them all up\n if (timeArray.length === 3) {\n // hours\n seconds = seconds + (Number(timeArray[0]) * 60 * 60);\n // minutes\n seconds = seconds + (Number(timeArray[1]) * 60);\n // seconds\n seconds = seconds + Number(timeArray[2]);\n } else if (timeArray.length === 2) {\n // minutes\n seconds = seconds + (Number(timeArray[0]) * 60);\n // seconds\n seconds = seconds + Number(timeArray[1]);\n }\n return Number(seconds);\n }\n });\n})();\n\nreturn numeral;\n}));\n"],"names":["numeral","suffixes","register","delimiters","thousands","decimal","abbreviations","thousand","million","billion","trillion","ordinal","number","currency","symbol","b","remainder","a","c","_","binary","unformatRegex","VERSION","formats","locales","defaults","currentLocale","zeroFormat","nullFormat","defaultFormat","scalePercentBy100","options","Numeral","input","this","_input","_value","value","kind","unformatFunction","regexp","isNumeral","isNaN","replace","length","regexps","unformat","match","stringToNumber","Number","version","obj","numberToFormat","format","roundingFunction","abbrForce","abs","int","precision","signed","output","locale","negP","optDec","leadingCount","abbr","neg","Math","includes","indexOf","RegExp","toString","split","toFixed","slice","String","i","string","abbreviation","stringOriginal","pow","min","search","insert","subString","start","reduce","array","callback","TypeError","t","Object","len","k","arguments","multiplier","x","parts","correctionFactor","Array","prototype","call","accum","next","mn","maxDecimals","optionals","boundedPrecision","optionalsRegExp","power","splitValue","minDecimals","max","key","toLowerCase","localeData","Error","reset","property","type","name","validate","val","culture","_decimalSep","_thousandSep","_currSymbol","_valArray","_abbrObj","_thousandRegEx","temp","console","warn","trim","e","substr","fn","clone","inputString","formatFunction","round","set","add","corrFactor","cback","curr","currI","O","subtract","multiply","divide","difference","space","splice","join","base","concat","filter","item","bytes","suffix","bytesMultiplier","symbols","before","after","toExponential","hours","floor","minutes","seconds","timeArray"],"sourceRoot":""}