{"version":3,"sources":["webpack://jrs-ui/./runtime_dependencies/moment-timezone/index.js","webpack://jrs-ui/./runtime_dependencies/moment-timezone/moment-timezone.js","webpack://jrs-ui/./runtime_dependencies/numeral/numeral.js"],"names":["module","tz","load","require","root","factory","exports","define","this","moment","undefined","version","cachedGuess","zones","links","countries","names","guesses","logError","momentVersion","split","major","minor","charCodeToInt","charCode","unpackBase60","string","i","parts","whole","fractional","multiplier","out","sign","charCodeAt","length","arrayToInt","array","mapIndices","source","indices","unpack","data","offsets","untils","Math","round","Infinity","intToUntil","name","abbrs","population","Zone","packedString","_set","Country","country_name","zone_names","OffsetAt","at","timeString","toTimeString","abbr","match","join","offset","getTimezoneOffset","ZoneScore","zone","offsetScore","abbrScore","findChange","low","high","mid","diff","Date","sortZoneScores","a","b","localeCompare","addToGuesses","guessesForUserOffsets","j","guessesOffset","offsetsLength","filteredGuesses","hasOwnProperty","push","rebuildGuess","intlName","Intl","DateTimeFormat","resolvedOptions","timeZone","normalizeName","e","zoneScore","change","next","startYear","getFullYear","last","userOffsets","zoneScores","getZone","scoreOffsetAt","sort","toLowerCase","replace","addZone","packed","normalized","caller","link","addLink","aliases","alias","normal0","normal1","needsOffset","m","isUnixTimestamp","_f","_a","_tzm","message","console","error","input","args","Array","prototype","slice","call","arguments","utc","apply","isMoment","add","parse","unpacked","_index","timestamp","target","zone_name","Object","keys","filter","country_code","indexOf","offsetNext","offsetPrev","max","moveAmbiguousForward","moveInvalidForward","mom","utcOffset","offsetAt","abs","dataVersion","_zones","_links","_names","_countries","country_zones","toUpperCase","addCountries","zoneExists","didShowError","guess","ignoreCache","zonesForCountry","country","with_offset","map","old","fn","abbrWrap","_z","resetZoneWrap","defaultZone","updateOffset","keepTime","_isUTC","_d","z","Error","zoneName","zoneAbbr","local","setDefault","momentProperties","toString","numeral","_","decimal","binary","unformatRegex","VERSION","formats","locales","defaults","currentLocale","zeroFormat","nullFormat","defaultFormat","scalePercentBy100","options","Numeral","number","_input","_value","value","kind","unformatFunction","regexp","isNumeral","isNaN","regexps","unformat","stringToNumber","Number","obj","numberToFormat","format","roundingFunction","abbrForce","int","precision","signed","thousands","output","locale","negP","optDec","leadingCount","trillion","billion","million","thousand","neg","includes","RegExp","abbreviations","toFixed","delimiters","String","abbreviation","stringOriginal","currency","symbol","pow","min","search","insert","subString","start","reduce","callback","TypeError","t","len","k","x","correctionFactor","accum","mn","maxDecimals","optionals","boundedPrecision","optionalsRegExp","power","splitValue","minDecimals","key","localeData","reset","property","register","type","validate","val","culture","_decimalSep","_thousandSep","_currSymbol","_valArray","_abbrObj","_thousandRegEx","temp","warn","trim","substr","clone","inputString","formatFunction","set","corrFactor","cback","curr","currI","O","subtract","multiply","divide","difference","ordinal","space","splice","base","suffixes","concat","item","bytes","suffix","bytesMultiplier","symbols","before","after","toExponential","hours","floor","minutes","seconds","timeArray"],"mappings":"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","file":"_chunks/chunk.235.js","sourcesContent":["var moment = module.exports = require(\"./moment-timezone\");\nmoment.tz.load(require('./data/packed/latest.json'));\n","//! moment-timezone.js\n//! version : 0.5.41\n//! Copyright (c) JS Foundation and other contributors\n//! license : MIT\n//! github.com/moment/moment-timezone\n\n(function (root, factory) {\n\t\"use strict\";\n\n\t/*global define*/\n\tif (typeof module === 'object' && module.exports) {\n\t\tmodule.exports = factory(require('moment')); // Node\n\t} else if (typeof define === 'function' && define.amd) {\n\t\tdefine(['moment'], factory); // AMD\n\t} else {\n\t\tfactory(root.moment); // Browser\n\t}\n}(this, function (moment) {\n\t\"use strict\";\n\n\t// Resolves es6 module loading issue\n\tif (moment.version === undefined && moment.default) {\n\t\tmoment = moment.default;\n\t}\n\n\t// Do not load moment-timezone a second time.\n\t// if (moment.tz !== undefined) {\n\t// \tlogError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion);\n\t// \treturn moment;\n\t// }\n\n\tvar VERSION = \"0.5.41\",\n\t\tzones = {},\n\t\tlinks = {},\n\t\tcountries = {},\n\t\tnames = {},\n\t\tguesses = {},\n\t\tcachedGuess;\n\n\tif (!moment || typeof moment.version !== 'string') {\n\t\tlogError('Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/');\n\t}\n\n\tvar momentVersion = moment.version.split('.'),\n\t\tmajor = +momentVersion[0],\n\t\tminor = +momentVersion[1];\n\n\t// Moment.js version check\n\tif (major < 2 || (major === 2 && minor < 6)) {\n\t\tlogError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js ' + moment.version + '. See momentjs.com');\n\t}\n\n\t/************************************\n\t\tUnpacking\n\t************************************/\n\n\tfunction charCodeToInt(charCode) {\n\t\tif (charCode > 96) {\n\t\t\treturn charCode - 87;\n\t\t} else if (charCode > 64) {\n\t\t\treturn charCode - 29;\n\t\t}\n\t\treturn charCode - 48;\n\t}\n\n\tfunction unpackBase60(string) {\n\t\tvar i = 0,\n\t\t\tparts = string.split('.'),\n\t\t\twhole = parts[0],\n\t\t\tfractional = parts[1] || '',\n\t\t\tmultiplier = 1,\n\t\t\tnum,\n\t\t\tout = 0,\n\t\t\tsign = 1;\n\n\t\t// handle negative numbers\n\t\tif (string.charCodeAt(0) === 45) {\n\t\t\ti = 1;\n\t\t\tsign = -1;\n\t\t}\n\n\t\t// handle digits before the decimal\n\t\tfor (i; i < whole.length; i++) {\n\t\t\tnum = charCodeToInt(whole.charCodeAt(i));\n\t\t\tout = 60 * out + num;\n\t\t}\n\n\t\t// handle digits after the decimal\n\t\tfor (i = 0; i < fractional.length; i++) {\n\t\t\tmultiplier = multiplier / 60;\n\t\t\tnum = charCodeToInt(fractional.charCodeAt(i));\n\t\t\tout += num * multiplier;\n\t\t}\n\n\t\treturn out * sign;\n\t}\n\n\tfunction arrayToInt (array) {\n\t\tfor (var i = 0; i < array.length; i++) {\n\t\t\tarray[i] = unpackBase60(array[i]);\n\t\t}\n\t}\n\n\tfunction intToUntil (array, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tarray[i] = Math.round((array[i - 1] || 0) + (array[i] * 60000)); // minutes to milliseconds\n\t\t}\n\n\t\tarray[length - 1] = Infinity;\n\t}\n\n\tfunction mapIndices (source, indices) {\n\t\tvar out = [], i;\n\n\t\tfor (i = 0; i < indices.length; i++) {\n\t\t\tout[i] = source[indices[i]];\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction unpack (string) {\n\t\tvar data = string.split('|'),\n\t\t\toffsets = data[2].split(' '),\n\t\t\tindices = data[3].split(''),\n\t\t\tuntils = data[4].split(' ');\n\n\t\tarrayToInt(offsets);\n\t\tarrayToInt(indices);\n\t\tarrayToInt(untils);\n\n\t\tintToUntil(untils, indices.length);\n\n\t\treturn {\n\t\t\tname : data[0],\n\t\t\tabbrs : mapIndices(data[1].split(' '), indices),\n\t\t\toffsets : mapIndices(offsets, indices),\n\t\t\tuntils : untils,\n\t\t\tpopulation : data[5] | 0\n\t\t};\n\t}\n\n\t/************************************\n\t\tZone object\n\t************************************/\n\n\tfunction Zone (packedString) {\n\t\tif (packedString) {\n\t\t\tthis._set(unpack(packedString));\n\t\t}\n\t}\n\n\tZone.prototype = {\n\t\t_set : function (unpacked) {\n\t\t\tthis.name = unpacked.name;\n\t\t\tthis.abbrs = unpacked.abbrs;\n\t\t\tthis.untils = unpacked.untils;\n\t\t\tthis.offsets = unpacked.offsets;\n\t\t\tthis.population = unpacked.population;\n\t\t},\n\n\t\t_index : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\tuntils = this.untils,\n\t\t\t\ti;\n\n\t\t\tfor (i = 0; i < untils.length; i++) {\n\t\t\t\tif (target < untils[i]) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tcountries : function () {\n\t\t\tvar zone_name = this.name;\n\t\t\treturn Object.keys(countries).filter(function (country_code) {\n\t\t\t\treturn countries[country_code].zones.indexOf(zone_name) !== -1;\n\t\t\t});\n\t\t},\n\n\t\tparse : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\toffsets = this.offsets,\n\t\t\t\tuntils = this.untils,\n\t\t\t\tmax = untils.length - 1,\n\t\t\t\toffset, offsetNext, offsetPrev, i;\n\n\t\t\tfor (i = 0; i < max; i++) {\n\t\t\t\toffset = offsets[i];\n\t\t\t\toffsetNext = offsets[i + 1];\n\t\t\t\toffsetPrev = offsets[i ? i - 1 : i];\n\n\t\t\t\tif (offset < offsetNext && tz.moveAmbiguousForward) {\n\t\t\t\t\toffset = offsetNext;\n\t\t\t\t} else if (offset > offsetPrev && tz.moveInvalidForward) {\n\t\t\t\t\toffset = offsetPrev;\n\t\t\t\t}\n\n\t\t\t\tif (target < untils[i] - (offset * 60000)) {\n\t\t\t\t\treturn offsets[i];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn offsets[max];\n\t\t},\n\n\t\tabbr : function (mom) {\n\t\t\treturn this.abbrs[this._index(mom)];\n\t\t},\n\n\t\toffset : function (mom) {\n\t\t\tlogError(\"zone.offset has been deprecated in favor of zone.utcOffset\");\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t},\n\n\t\tutcOffset : function (mom) {\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t}\n\t};\n\n\t/************************************\n\t\tCountry object\n\t************************************/\n\n\tfunction Country (country_name, zone_names) {\n\t\tthis.name = country_name;\n\t\tthis.zones = zone_names;\n\t}\n\n\t/************************************\n\t\tCurrent Timezone\n\t************************************/\n\n\tfunction OffsetAt(at) {\n\t\tvar timeString = at.toTimeString();\n\t\tvar abbr = timeString.match(/\\([a-z ]+\\)/i);\n\t\tif (abbr && abbr[0]) {\n\t\t\t// 17:56:31 GMT-0600 (CST)\n\t\t\t// 17:56:31 GMT-0600 (Central Standard Time)\n\t\t\tabbr = abbr[0].match(/[A-Z]/g);\n\t\t\tabbr = abbr ? abbr.join('') : undefined;\n\t\t} else {\n\t\t\t// 17:56:31 CST\n\t\t\t// 17:56:31 GMT+0800 (台北標準時間)\n\t\t\tabbr = timeString.match(/[A-Z]{3,5}/g);\n\t\t\tabbr = abbr ? abbr[0] : undefined;\n\t\t}\n\n\t\tif (abbr === 'GMT') {\n\t\t\tabbr = undefined;\n\t\t}\n\n\t\tthis.at = +at;\n\t\tthis.abbr = abbr;\n\t\tthis.offset = at.getTimezoneOffset();\n\t}\n\n\tfunction ZoneScore(zone) {\n\t\tthis.zone = zone;\n\t\tthis.offsetScore = 0;\n\t\tthis.abbrScore = 0;\n\t}\n\n\tZoneScore.prototype.scoreOffsetAt = function (offsetAt) {\n\t\tthis.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset);\n\t\tif (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, '') !== offsetAt.abbr) {\n\t\t\tthis.abbrScore++;\n\t\t}\n\t};\n\n\tfunction findChange(low, high) {\n\t\tvar mid, diff;\n\n\t\twhile ((diff = ((high.at - low.at) / 12e4 | 0) * 6e4)) {\n\t\t\tmid = new OffsetAt(new Date(low.at + diff));\n\t\t\tif (mid.offset === low.offset) {\n\t\t\t\tlow = mid;\n\t\t\t} else {\n\t\t\t\thigh = mid;\n\t\t\t}\n\t\t}\n\n\t\treturn low;\n\t}\n\n\tfunction userOffsets() {\n\t\tvar startYear = new Date().getFullYear() - 2,\n\t\t\tlast = new OffsetAt(new Date(startYear, 0, 1)),\n\t\t\toffsets = [last],\n\t\t\tchange, next, i;\n\n\t\tfor (i = 1; i < 48; i++) {\n\t\t\tnext = new OffsetAt(new Date(startYear, i, 1));\n\t\t\tif (next.offset !== last.offset) {\n\t\t\t\tchange = findChange(last, next);\n\t\t\t\toffsets.push(change);\n\t\t\t\toffsets.push(new OffsetAt(new Date(change.at + 6e4)));\n\t\t\t}\n\t\t\tlast = next;\n\t\t}\n\n\t\tfor (i = 0; i < 4; i++) {\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 0, 1)));\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 6, 1)));\n\t\t}\n\n\t\treturn offsets;\n\t}\n\n\tfunction sortZoneScores (a, b) {\n\t\tif (a.offsetScore !== b.offsetScore) {\n\t\t\treturn a.offsetScore - b.offsetScore;\n\t\t}\n\t\tif (a.abbrScore !== b.abbrScore) {\n\t\t\treturn a.abbrScore - b.abbrScore;\n\t\t}\n\t\tif (a.zone.population !== b.zone.population) {\n\t\t\treturn b.zone.population - a.zone.population;\n\t\t}\n\t\treturn b.zone.name.localeCompare(a.zone.name);\n\t}\n\n\tfunction addToGuesses (name, offsets) {\n\t\tvar i, offset;\n\t\tarrayToInt(offsets);\n\t\tfor (i = 0; i < offsets.length; i++) {\n\t\t\toffset = offsets[i];\n\t\t\tguesses[offset] = guesses[offset] || {};\n\t\t\tguesses[offset][name] = true;\n\t\t}\n\t}\n\n\tfunction guessesForUserOffsets (offsets) {\n\t\tvar offsetsLength = offsets.length,\n\t\t\tfilteredGuesses = {},\n\t\t\tout = [],\n\t\t\ti, j, guessesOffset;\n\n\t\tfor (i = 0; i < offsetsLength; i++) {\n\t\t\tguessesOffset = guesses[offsets[i].offset] || {};\n\t\t\tfor (j in guessesOffset) {\n\t\t\t\tif (guessesOffset.hasOwnProperty(j)) {\n\t\t\t\t\tfilteredGuesses[j] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (i in filteredGuesses) {\n\t\t\tif (filteredGuesses.hasOwnProperty(i)) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction rebuildGuess () {\n\n\t\t// use Intl API when available and returning valid time zone\n\t\ttry {\n\t\t\tvar intlName = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\t\t\tif (intlName && intlName.length > 3) {\n\t\t\t\tvar name = names[normalizeName(intlName)];\n\t\t\t\tif (name) {\n\t\t\t\t\treturn name;\n\t\t\t\t}\n\t\t\t\tlogError(\"Moment Timezone found \" + intlName + \" from the Intl api, but did not have that data loaded.\");\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t// Intl unavailable, fall back to manual guessing.\n\t\t}\n\n\t\tvar offsets = userOffsets(),\n\t\t\toffsetsLength = offsets.length,\n\t\t\tguesses = guessesForUserOffsets(offsets),\n\t\t\tzoneScores = [],\n\t\t\tzoneScore, i, j;\n\n\t\tfor (i = 0; i < guesses.length; i++) {\n\t\t\tzoneScore = new ZoneScore(getZone(guesses[i]), offsetsLength);\n\t\t\tfor (j = 0; j < offsetsLength; j++) {\n\t\t\t\tzoneScore.scoreOffsetAt(offsets[j]);\n\t\t\t}\n\t\t\tzoneScores.push(zoneScore);\n\t\t}\n\n\t\tzoneScores.sort(sortZoneScores);\n\n\t\treturn zoneScores.length > 0 ? zoneScores[0].zone.name : undefined;\n\t}\n\n\tfunction guess (ignoreCache) {\n\t\tif (!cachedGuess || ignoreCache) {\n\t\t\tcachedGuess = rebuildGuess();\n\t\t}\n\t\treturn cachedGuess;\n\t}\n\n\t/************************************\n\t\tGlobal Methods\n\t************************************/\n\n\tfunction normalizeName (name) {\n\t\treturn (name || '').toLowerCase().replace(/\\//g, '_');\n\t}\n\n\tfunction addZone (packed) {\n\t\tvar i, name, split, normalized;\n\n\t\tif (typeof packed === \"string\") {\n\t\t\tpacked = [packed];\n\t\t}\n\n\t\tfor (i = 0; i < packed.length; i++) {\n\t\t\tsplit = packed[i].split('|');\n\t\t\tname = split[0];\n\t\t\tnormalized = normalizeName(name);\n\t\t\tzones[normalized] = packed[i];\n\t\t\tnames[normalized] = name;\n\t\t\taddToGuesses(normalized, split[2].split(' '));\n\t\t}\n\t}\n\n\tfunction getZone (name, caller) {\n\n\t\tname = normalizeName(name);\n\n\t\tvar zone = zones[name];\n\t\tvar link;\n\n\t\tif (zone instanceof Zone) {\n\t\t\treturn zone;\n\t\t}\n\n\t\tif (typeof zone === 'string') {\n\t\t\tzone = new Zone(zone);\n\t\t\tzones[name] = zone;\n\t\t\treturn zone;\n\t\t}\n\n\t\t// Pass getZone to prevent recursion more than 1 level deep\n\t\tif (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) {\n\t\t\tzone = zones[name] = new Zone();\n\t\t\tzone._set(link);\n\t\t\tzone.name = names[name];\n\t\t\treturn zone;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction getNames () {\n\t\tvar i, out = [];\n\n\t\tfor (i in names) {\n\t\t\tif (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out.sort();\n\t}\n\n\tfunction getCountryNames () {\n\t\treturn Object.keys(countries);\n\t}\n\n\tfunction addLink (aliases) {\n\t\tvar i, alias, normal0, normal1;\n\n\t\tif (typeof aliases === \"string\") {\n\t\t\taliases = [aliases];\n\t\t}\n\n\t\tfor (i = 0; i < aliases.length; i++) {\n\t\t\talias = aliases[i].split('|');\n\n\t\t\tnormal0 = normalizeName(alias[0]);\n\t\t\tnormal1 = normalizeName(alias[1]);\n\n\t\t\tlinks[normal0] = normal1;\n\t\t\tnames[normal0] = alias[0];\n\n\t\t\tlinks[normal1] = normal0;\n\t\t\tnames[normal1] = alias[1];\n\t\t}\n\t}\n\n\tfunction addCountries (data) {\n\t\tvar i, country_code, country_zones, split;\n\t\tif (!data || !data.length) return;\n\t\tfor (i = 0; i < data.length; i++) {\n\t\t\tsplit = data[i].split('|');\n\t\t\tcountry_code = split[0].toUpperCase();\n\t\t\tcountry_zones = split[1].split(' ');\n\t\t\tcountries[country_code] = new Country(\n\t\t\t\tcountry_code,\n\t\t\t\tcountry_zones\n\t\t\t);\n\t\t}\n\t}\n\n\tfunction getCountry (name) {\n\t\tname = name.toUpperCase();\n\t\treturn countries[name] || null;\n\t}\n\n\tfunction zonesForCountry(country, with_offset) {\n\t\tcountry = getCountry(country);\n\n\t\tif (!country) return null;\n\n\t\tvar zones = country.zones.sort();\n\n\t\tif (with_offset) {\n\t\t\treturn zones.map(function (zone_name) {\n\t\t\t\tvar zone = getZone(zone_name);\n\t\t\t\treturn {\n\t\t\t\t\tname: zone_name,\n\t\t\t\t\toffset: zone.utcOffset(new Date())\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\n\t\treturn zones;\n\t}\n\n\tfunction loadData (data) {\n\t\taddZone(data.zones);\n\t\taddLink(data.links);\n\t\taddCountries(data.countries);\n\t\ttz.dataVersion = data.version;\n\t}\n\n\tfunction zoneExists (name) {\n\t\tif (!zoneExists.didShowError) {\n\t\t\tzoneExists.didShowError = true;\n\t\t\t\tlogError(\"moment.tz.zoneExists('\" + name + \"') has been deprecated in favor of !moment.tz.zone('\" + name + \"')\");\n\t\t}\n\t\treturn !!getZone(name);\n\t}\n\n\tfunction needsOffset (m) {\n\t\tvar isUnixTimestamp = (m._f === 'X' || m._f === 'x');\n\t\treturn !!(m._a && (m._tzm === undefined) && !isUnixTimestamp);\n\t}\n\n\tfunction logError (message) {\n\t\tif (typeof console !== 'undefined' && typeof console.error === 'function') {\n\t\t\tconsole.error(message);\n\t\t}\n\t}\n\n\t/************************************\n\t\tmoment.tz namespace\n\t************************************/\n\n\tfunction tz (input) {\n\t\tvar args = Array.prototype.slice.call(arguments, 0, -1),\n\t\t\tname = arguments[arguments.length - 1],\n\t\t\tzone = getZone(name),\n\t\t\tout = moment.utc.apply(null, args);\n\n\t\tif (zone && !moment.isMoment(input) && needsOffset(out)) {\n\t\t\tout.add(zone.parse(out), 'minutes');\n\t\t}\n\n\t\tout.tz(name);\n\n\t\treturn out;\n\t}\n\n\ttz.version = VERSION;\n\ttz.dataVersion = '';\n\ttz._zones = zones;\n\ttz._links = links;\n\ttz._names = names;\n\ttz._countries\t= countries;\n\ttz.add = addZone;\n\ttz.link = addLink;\n\ttz.load = loadData;\n\ttz.zone = getZone;\n\ttz.zoneExists = zoneExists; // deprecated in 0.1.0\n\ttz.guess = guess;\n\ttz.names = getNames;\n\ttz.Zone = Zone;\n\ttz.unpack = unpack;\n\ttz.unpackBase60 = unpackBase60;\n\ttz.needsOffset = needsOffset;\n\ttz.moveInvalidForward = true;\n\ttz.moveAmbiguousForward = false;\n\ttz.countries = getCountryNames;\n\ttz.zonesForCountry = zonesForCountry;\n\n\t/************************************\n\t\tInterface with Moment.js\n\t************************************/\n\n\tvar fn = moment.fn;\n\n\tmoment.tz = tz;\n\n\tmoment.defaultZone = null;\n\n\tmoment.updateOffset = function (mom, keepTime) {\n\t\tvar zone = moment.defaultZone,\n\t\t\toffset;\n\n\t\tif (mom._z === undefined) {\n\t\t\tif (zone && needsOffset(mom) && !mom._isUTC) {\n\t\t\t\tmom._d = moment.utc(mom._a)._d;\n\t\t\t\tmom.utc().add(zone.parse(mom), 'minutes');\n\t\t\t}\n\t\t\tmom._z = zone;\n\t\t}\n\t\tif (mom._z) {\n\t\t\toffset = mom._z.utcOffset(mom);\n\t\t\tif (Math.abs(offset) < 16) {\n\t\t\t\toffset = offset / 60;\n\t\t\t}\n\t\t\tif (mom.utcOffset !== undefined) {\n\t\t\t\tvar z = mom._z;\n\t\t\t\tmom.utcOffset(-offset, keepTime);\n\t\t\t\tmom._z = z;\n\t\t\t} else {\n\t\t\t\tmom.zone(offset, keepTime);\n\t\t\t}\n\t\t}\n\t};\n\n\tfn.tz = function (name, keepTime) {\n\t\tif (name) {\n\t\t\tif (typeof name !== 'string') {\n\t\t\t\tthrow new Error('Time zone name must be a string, got ' + name + ' [' + typeof name + ']');\n\t\t\t}\n\t\t\tthis._z = getZone(name);\n\t\t\tif (this._z) {\n\t\t\t\tmoment.updateOffset(this, keepTime);\n\t\t\t} else {\n\t\t\t\tlogError(\"Moment Timezone has no data for \" + name + \". See http://momentjs.com/timezone/docs/#/data-loading/.\");\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif (this._z) { return this._z.name; }\n\t};\n\n\tfunction abbrWrap (old) {\n\t\treturn function () {\n\t\t\tif (this._z) { return this._z.abbr(this); }\n\t\t\treturn old.call(this);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap (old) {\n\t\treturn function () {\n\t\t\tthis._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap2 (old) {\n\t\treturn function () {\n\t\t\tif (arguments.length > 0) this._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfn.zoneName = abbrWrap(fn.zoneName);\n\tfn.zoneAbbr = abbrWrap(fn.zoneAbbr);\n\tfn.utc = resetZoneWrap(fn.utc);\n\tfn.local = resetZoneWrap(fn.local);\n\tfn.utcOffset = resetZoneWrap2(fn.utcOffset);\n\n\tmoment.tz.setDefault = function(name) {\n\t\tif (major < 2 || (major === 2 && minor < 9)) {\n\t\t\tlogError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + moment.version + '.');\n\t\t}\n\t\tmoment.defaultZone = name ? getZone(name) : null;\n\t\treturn moment;\n\t};\n\n\t// Cloning a moment should include the _z property.\n\tvar momentProperties = moment.momentProperties;\n\tif (Object.prototype.toString.call(momentProperties) === '[object Array]') {\n\t\t// moment 2.8.1+\n\t\tmomentProperties.push('_z');\n\t\tmomentProperties.push('_a');\n\t} else if (momentProperties) {\n\t\t// moment 2.7.0\n\t\tmomentProperties._z = null;\n\t}\n\n\t// INJECT DATA\n\n\treturn moment;\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"],"sourceRoot":""}