{"version":3,"file":"js/3583-1c3351f1f761e1fea2c7.js","mappings":"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","sources":["webpack://Oomple/./node_modules/immutability-helper/index.js","webpack://Oomple/./node_modules/invariant/browser.js","webpack://Oomple/./node_modules/numeral/numeral.js"],"sourcesContent":["var invariant = require('invariant');\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar splice = Array.prototype.splice;\n\nvar toString = Object.prototype.toString\nvar type = function(obj) {\n return toString.call(obj).slice(8, -1);\n}\n\nvar assign = Object.assign || /* istanbul ignore next */ function assign(target, source) {\n getAllKeys(source).forEach(function(key) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n });\n return target;\n};\n\nvar getAllKeys = typeof Object.getOwnPropertySymbols === 'function' ?\n function(obj) { return Object.keys(obj).concat(Object.getOwnPropertySymbols(obj)) } :\n /* istanbul ignore next */ function(obj) { return Object.keys(obj) };\n\n/* istanbul ignore next */\nfunction copy(object) {\n if (Array.isArray(object)) {\n return assign(object.constructor(object.length), object)\n } else if (type(object) === 'Map') {\n return new Map(object)\n } else if (type(object) === 'Set') {\n return new Set(object)\n } else if (object && typeof object === 'object') {\n var prototype = Object.getPrototypeOf(object);\n return assign(Object.create(prototype), object);\n } else {\n return object;\n }\n}\n\nfunction newContext() {\n var commands = assign({}, defaultCommands);\n update.extend = function(directive, fn) {\n commands[directive] = fn;\n };\n update.isEquals = function(a, b) { return a === b; };\n\n return update;\n\n function update(object, spec) {\n if (typeof spec === 'function') {\n spec = { $apply: spec };\n }\n\n if (!(Array.isArray(object) && Array.isArray(spec))) {\n invariant(\n !Array.isArray(spec),\n 'update(): You provided an invalid spec to update(). The spec may ' +\n 'not contain an array except as the value of $set, $push, $unshift, ' +\n '$splice or any custom command allowing an array value.'\n );\n }\n\n invariant(\n typeof spec === 'object' && spec !== null,\n 'update(): You provided an invalid spec to update(). The spec and ' +\n 'every included key path must be plain objects containing one of the ' +\n 'following commands: %s.',\n Object.keys(commands).join(', ')\n );\n\n var nextObject = object;\n var index, key;\n getAllKeys(spec).forEach(function(key) {\n if (hasOwnProperty.call(commands, key)) {\n var objectWasNextObject = object === nextObject;\n nextObject = commands[key](spec[key], nextObject, spec, object);\n if (objectWasNextObject && update.isEquals(nextObject, object)) {\n nextObject = object;\n }\n } else {\n var nextValueForKey =\n type(object) === 'Map'\n ? update(object.get(key), spec[key])\n : update(object[key], spec[key]);\n var nextObjectValue =\n type(nextObject) === 'Map'\n ? nextObject.get(key)\n : nextObject[key];\n if (!update.isEquals(nextValueForKey, nextObjectValue) || typeof nextValueForKey === 'undefined' && !hasOwnProperty.call(object, key)) {\n if (nextObject === object) {\n nextObject = copy(object);\n }\n if (type(nextObject) === 'Map') {\n nextObject.set(key, nextValueForKey);\n } else {\n nextObject[key] = nextValueForKey;\n }\n }\n }\n })\n return nextObject;\n }\n\n}\n\nvar defaultCommands = {\n $push: function(value, nextObject, spec) {\n invariantPushAndUnshift(nextObject, spec, '$push');\n return value.length ? nextObject.concat(value) : nextObject;\n },\n $unshift: function(value, nextObject, spec) {\n invariantPushAndUnshift(nextObject, spec, '$unshift');\n return value.length ? value.concat(nextObject) : nextObject;\n },\n $splice: function(value, nextObject, spec, originalObject) {\n invariantSplices(nextObject, spec);\n value.forEach(function(args) {\n invariantSplice(args);\n if (nextObject === originalObject && args.length) nextObject = copy(originalObject);\n splice.apply(nextObject, args);\n });\n return nextObject;\n },\n $set: function(value, nextObject, spec) {\n invariantSet(spec);\n return value;\n },\n $toggle: function(targets, nextObject) {\n invariantSpecArray(targets, '$toggle');\n var nextObjectCopy = targets.length ? copy(nextObject) : nextObject;\n\n targets.forEach(function(target) {\n nextObjectCopy[target] = !nextObject[target];\n });\n\n return nextObjectCopy;\n },\n $unset: function(value, nextObject, spec, originalObject) {\n invariantSpecArray(value, '$unset');\n value.forEach(function(key) {\n if (Object.hasOwnProperty.call(nextObject, key)) {\n if (nextObject === originalObject) nextObject = copy(originalObject);\n delete nextObject[key];\n }\n });\n return nextObject;\n },\n $add: function(value, nextObject, spec, originalObject) {\n invariantMapOrSet(nextObject, '$add');\n invariantSpecArray(value, '$add');\n if (type(nextObject) === 'Map') {\n value.forEach(function(pair) {\n var key = pair[0];\n var value = pair[1];\n if (nextObject === originalObject && nextObject.get(key) !== value) nextObject = copy(originalObject);\n nextObject.set(key, value);\n });\n } else {\n value.forEach(function(value) {\n if (nextObject === originalObject && !nextObject.has(value)) nextObject = copy(originalObject);\n nextObject.add(value);\n });\n }\n return nextObject;\n },\n $remove: function(value, nextObject, spec, originalObject) {\n invariantMapOrSet(nextObject, '$remove');\n invariantSpecArray(value, '$remove');\n value.forEach(function(key) {\n if (nextObject === originalObject && nextObject.has(key)) nextObject = copy(originalObject);\n nextObject.delete(key);\n });\n return nextObject;\n },\n $merge: function(value, nextObject, spec, originalObject) {\n invariantMerge(nextObject, value);\n getAllKeys(value).forEach(function(key) {\n if (value[key] !== nextObject[key]) {\n if (nextObject === originalObject) nextObject = copy(originalObject);\n nextObject[key] = value[key];\n }\n });\n return nextObject;\n },\n $apply: function(value, original) {\n invariantApply(value);\n return value(original);\n }\n};\n\nvar contextForExport = newContext();\n\nmodule.exports = contextForExport;\nmodule.exports.default = contextForExport;\nmodule.exports.newContext = newContext;\n\n// invariants\n\nfunction invariantPushAndUnshift(value, spec, command) {\n invariant(\n Array.isArray(value),\n 'update(): expected target of %s to be an array; got %s.',\n command,\n value\n );\n invariantSpecArray(spec[command], command)\n}\n\nfunction invariantSpecArray(spec, command) {\n invariant(\n Array.isArray(spec),\n 'update(): expected spec of %s to be an array; got %s. ' +\n 'Did you forget to wrap your parameter in an array?',\n command,\n spec\n );\n}\n\nfunction invariantSplices(value, spec) {\n invariant(\n Array.isArray(value),\n 'Expected $splice target to be an array; got %s',\n value\n );\n invariantSplice(spec['$splice']);\n}\n\nfunction invariantSplice(value) {\n invariant(\n Array.isArray(value),\n 'update(): expected spec of $splice to be an array of arrays; got %s. ' +\n 'Did you forget to wrap your parameters in an array?',\n value\n );\n}\n\nfunction invariantApply(fn) {\n invariant(\n typeof fn === 'function',\n 'update(): expected spec of $apply to be a function; got %s.',\n fn\n );\n}\n\nfunction invariantSet(spec) {\n invariant(\n Object.keys(spec).length === 1,\n 'Cannot have more than one key in an object with $set'\n );\n}\n\nfunction invariantMerge(target, specValue) {\n invariant(\n specValue && typeof specValue === 'object',\n 'update(): $merge expects a spec of type \\'object\\'; got %s',\n specValue\n );\n invariant(\n target && typeof target === 'object',\n 'update(): $merge expects a target of type \\'object\\'; got %s',\n target\n );\n}\n\nfunction invariantMapOrSet(target, command) {\n var typeOfTarget = type(target);\n invariant(\n typeOfTarget === 'Map' || typeOfTarget === 'Set',\n 'update(): %s expects a target of type Set or Map; got %s',\n command,\n typeOfTarget\n );\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\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":["invariant","hasOwnProperty","Object","prototype","splice","Array","toString","type","obj","call","slice","assign","target","source","getAllKeys","forEach","key","getOwnPropertySymbols","keys","concat","copy","object","isArray","constructor","length","Map","Set","getPrototypeOf","create","newContext","commands","defaultCommands","update","extend","directive","fn","isEquals","a","b","spec","$apply","join","nextObject","objectWasNextObject","nextValueForKey","get","nextObjectValue","set","$push","value","invariantPushAndUnshift","$unshift","$splice","originalObject","invariantSplice","invariantSplices","args","apply","$set","invariantSet","$toggle","targets","invariantSpecArray","nextObjectCopy","$unset","$add","invariantMapOrSet","pair","has","add","$remove","delete","$merge","specValue","original","contextForExport","command","typeOfTarget","module","exports","condition","format","c","d","e","f","error","undefined","Error","argIndex","replace","name","framesToPop","numeral","_","decimal","binary","unformatRegex","VERSION","formats","locales","defaults","currentLocale","zeroFormat","nullFormat","defaultFormat","scalePercentBy100","options","Numeral","input","number","this","_input","_value","kind","unformatFunction","regexp","isNumeral","isNaN","regexps","unformat","match","stringToNumber","Number","version","numberToFormat","roundingFunction","abbrForce","abs","int","precision","signed","thousands","output","locale","negP","optDec","leadingCount","abbr","trillion","billion","million","thousand","neg","Math","includes","indexOf","RegExp","abbreviations","split","toFixed","delimiters","String","i","string","abbreviation","stringOriginal","currency","symbol","pow","min","search","insert","subString","start","reduce","array","callback","TypeError","t","len","k","arguments","multiplier","x","parts","correctionFactor","accum","next","mn","maxDecimals","optionals","boundedPrecision","optionalsRegExp","power","splitValue","minDecimals","max","toLowerCase","localeData","reset","property","register","validate","val","culture","_decimalSep","_thousandSep","_currSymbol","_valArray","_abbrObj","_thousandRegEx","temp","console","warn","trim","substr","clone","inputString","formatFunction","round","corrFactor","cback","curr","currI","O","subtract","multiply","divide","difference","ordinal","space","base","suffixes","filter","item","bytes","suffix","bytesMultiplier","symbols","before","after","toExponential","hours","floor","minutes","seconds","timeArray"],"sourceRoot":""}