{"version":3,"file":"currency.es-0b4bb42b.js","sources":["../../../node_modules/currency.js/dist/currency.es.js"],"sourcesContent":["/*!\n * currency.js - v2.0.3\n * http://scurker.github.io/currency.js\n *\n * Copyright (c) 2020 Jason Wilson\n * Released under MIT license\n */\n\nvar defaults = {\n symbol: '$',\n separator: ',',\n decimal: '.',\n errorOnInvalid: false,\n precision: 2,\n pattern: '!#',\n negativePattern: '-!#',\n format: format,\n fromCents: false\n};\n\nvar round = function round(v) {\n return Math.round(v);\n};\n\nvar pow = function pow(p) {\n return Math.pow(10, p);\n};\n\nvar rounding = function rounding(value, increment) {\n return round(value / increment) * increment;\n};\n\nvar groupRegex = /(\\d)(?=(\\d{3})+\\b)/g;\nvar vedicRegex = /(\\d)(?=(\\d\\d)+\\d\\b)/g;\n/**\n * Create a new instance of currency.js\n * @param {number|string|currency} value\n * @param {object} [opts]\n */\n\nfunction currency(value, opts) {\n var that = this;\n\n if (!(that instanceof currency)) {\n return new currency(value, opts);\n }\n\n var settings = Object.assign({}, defaults, opts),\n precision = pow(settings.precision),\n v = parse(value, settings);\n that.intValue = v;\n that.value = v / precision; // Set default incremental value\n\n settings.increment = settings.increment || 1 / precision; // Support vedic numbering systems\n // see: https://en.wikipedia.org/wiki/Indian_numbering_system\n\n if (settings.useVedic) {\n settings.groups = vedicRegex;\n } else {\n settings.groups = groupRegex;\n } // Intended for internal usage only - subject to change\n\n\n this.s = settings;\n this.p = precision;\n}\n\nfunction parse(value, opts) {\n var useRounding = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var v = 0,\n decimal = opts.decimal,\n errorOnInvalid = opts.errorOnInvalid,\n decimals = opts.precision,\n fromCents = opts.fromCents,\n precision = pow(decimals),\n isNumber = typeof value === 'number',\n isCurrency = value instanceof currency;\n\n if (isCurrency && fromCents) {\n return value.intValue;\n }\n\n if (isNumber || isCurrency) {\n v = isCurrency ? value.value : value;\n } else if (typeof value === 'string') {\n var regex = new RegExp('[^-\\\\d' + decimal + ']', 'g'),\n decimalString = new RegExp('\\\\' + decimal, 'g');\n v = value.replace(/\\((.*)\\)/, '-$1') // allow negative e.g. (1.99)\n .replace(regex, '') // replace any non numeric values\n .replace(decimalString, '.'); // convert any decimal values\n\n v = v || 0;\n } else {\n if (errorOnInvalid) {\n throw Error('Invalid Input');\n }\n\n v = 0;\n }\n\n if (!fromCents) {\n v *= precision; // scale number to integer value\n\n v = v.toFixed(4); // Handle additional decimal for proper rounding.\n }\n\n return useRounding ? round(v) : v;\n}\n/**\n * Formats a currency object\n * @param currency\n * @param {object} [opts]\n */\n\n\nfunction format(currency, settings) {\n var pattern = settings.pattern,\n negativePattern = settings.negativePattern,\n symbol = settings.symbol,\n separator = settings.separator,\n decimal = settings.decimal,\n groups = settings.groups,\n split = ('' + currency).replace(/^-/, '').split('.'),\n dollars = split[0],\n cents = split[1];\n return (currency.value >= 0 ? pattern : negativePattern).replace('!', symbol).replace('#', dollars.replace(groups, '$1' + separator) + (cents ? decimal + cents : ''));\n}\n\ncurrency.prototype = {\n /**\n * Adds values together.\n * @param {number} number\n * @returns {currency}\n */\n add: function add(number) {\n var intValue = this.intValue,\n _settings = this.s,\n _precision = this.p;\n return currency((intValue += parse(number, _settings)) / (_settings.fromCents ? 1 : _precision), _settings);\n },\n\n /**\n * Subtracts value.\n * @param {number} number\n * @returns {currency}\n */\n subtract: function subtract(number) {\n var intValue = this.intValue,\n _settings = this.s,\n _precision = this.p;\n return currency((intValue -= parse(number, _settings)) / (_settings.fromCents ? 1 : _precision), _settings);\n },\n\n /**\n * Multiplies values.\n * @param {number} number\n * @returns {currency}\n */\n multiply: function multiply(number) {\n var intValue = this.intValue,\n _settings = this.s;\n return currency((intValue *= number) / (_settings.fromCents ? 1 : pow(_settings.precision)), _settings);\n },\n\n /**\n * Divides value.\n * @param {number} number\n * @returns {currency}\n */\n divide: function divide(number) {\n var intValue = this.intValue,\n _settings = this.s;\n return currency(intValue /= parse(number, _settings, false), _settings);\n },\n\n /**\n * Takes the currency amount and distributes the values evenly. Any extra pennies\n * left over from the distribution will be stacked onto the first set of entries.\n * @param {number} count\n * @returns {array}\n */\n distribute: function distribute(count) {\n var intValue = this.intValue,\n _precision = this.p,\n _settings = this.s,\n distribution = [],\n split = Math[intValue >= 0 ? 'floor' : 'ceil'](intValue / count),\n pennies = Math.abs(intValue - split * count),\n precision = _settings.fromCents ? 1 : _precision;\n\n for (; count !== 0; count--) {\n var item = currency(split / precision, _settings); // Add any left over pennies\n\n pennies-- > 0 && (item = item[intValue >= 0 ? 'add' : 'subtract'](1 / precision));\n distribution.push(item);\n }\n\n return distribution;\n },\n\n /**\n * Returns the dollar value.\n * @returns {number}\n */\n dollars: function dollars() {\n return ~~this.value;\n },\n\n /**\n * Returns the cent value.\n * @returns {number}\n */\n cents: function cents() {\n var intValue = this.intValue,\n _precision = this.p;\n return ~~(intValue % _precision);\n },\n\n /**\n * Formats the value as a string according to the formatting settings.\n * @param {boolean} useSymbol - format with currency symbol\n * @returns {string}\n */\n format: function format(options) {\n var _settings = this.s;\n\n if (typeof options === 'function') {\n return options(this, _settings);\n }\n\n return _settings.format(this, Object.assign({}, _settings, options));\n },\n\n /**\n * Formats the value as a string according to the formatting settings.\n * @returns {string}\n */\n toString: function toString() {\n var intValue = this.intValue,\n _precision = this.p,\n _settings = this.s;\n return rounding(intValue / _precision, _settings.increment).toFixed(_settings.precision);\n },\n\n /**\n * Value for JSON serialization.\n * @returns {float}\n */\n toJSON: function toJSON() {\n return this.value;\n }\n};\n\nexport default currency;\n"],"names":["round","pow","rounding","currency","dollars","cents","format"],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,IAAI,WAAW;AAAA,EACb,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,WAAW;AAAA,EACX,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB;AAAA,EACA,WAAW;AACb;AAEA,IAAI,QAAQ,SAASA,OAAM,GAAG;AAC5B,SAAO,KAAK,MAAM,CAAC;AACrB;AAEA,IAAI,MAAM,SAASC,KAAI,GAAG;AACxB,SAAO,KAAK,IAAI,IAAI,CAAC;AACvB;AAEA,IAAI,WAAW,SAASC,UAAS,OAAO,WAAW;AACjD,SAAO,MAAM,QAAQ,SAAS,IAAI;AACpC;AAEA,IAAI,aAAa;AACjB,IAAI,aAAa;AAOjB,SAAS,SAAS,OAAO,MAAM;AAC7B,MAAI,OAAO;AAEX,MAAI,EAAE,gBAAgB,WAAW;AAC/B,WAAO,IAAI,SAAS,OAAO,IAAI;AAAA,EAChC;AAED,MAAI,WAAW,OAAO,OAAO,CAAA,GAAI,UAAU,IAAI,GAC3C,YAAY,IAAI,SAAS,SAAS,GAClC,IAAI,MAAM,OAAO,QAAQ;AAC7B,OAAK,WAAW;AAChB,OAAK,QAAQ,IAAI;AAEjB,WAAS,YAAY,SAAS,aAAa,IAAI;AAG/C,MAAI,SAAS,UAAU;AACrB,aAAS,SAAS;AAAA,EACtB,OAAS;AACL,aAAS,SAAS;AAAA,EACnB;AAGD,OAAK,IAAI;AACT,OAAK,IAAI;AACX;AAEA,SAAS,MAAM,OAAO,MAAM;AAC1B,MAAI,cAAc,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AACtF,MAAI,IAAI,GACJ,UAAU,KAAK,SACf,iBAAiB,KAAK,gBACtB,WAAW,KAAK,WAChB,YAAY,KAAK,WACjB,YAAY,IAAI,QAAQ,GACxB,WAAW,OAAO,UAAU,UAC5B,aAAa,iBAAiB;AAElC,MAAI,cAAc,WAAW;AAC3B,WAAO,MAAM;AAAA,EACd;AAED,MAAI,YAAY,YAAY;AAC1B,QAAI,aAAa,MAAM,QAAQ;AAAA,EACnC,WAAa,OAAO,UAAU,UAAU;AACpC,QAAI,QAAQ,IAAI,OAAO,WAAW,UAAU,KAAK,GAAG,GAChD,gBAAgB,IAAI,OAAO,OAAO,SAAS,GAAG;AAClD,QAAI,MAAM,QAAQ,YAAY,KAAK,EAClC,QAAQ,OAAO,EAAE,EACjB,QAAQ,eAAe,GAAG;AAE3B,QAAI,KAAK;AAAA,EACb,OAAS;AACL,QAAI,gBAAgB;AAClB,YAAM,MAAM,eAAe;AAAA,IAC5B;AAED,QAAI;AAAA,EACL;AAED,MAAI,CAAC,WAAW;AACd,SAAK;AAEL,QAAI,EAAE,QAAQ,CAAC;AAAA,EAChB;AAED,SAAO,cAAc,MAAM,CAAC,IAAI;AAClC;AAQA,SAAS,OAAOC,WAAU,UAAU;AAClC,MAAI,UAAU,SAAS,SACnB,kBAAkB,SAAS,iBAC3B,SAAS,SAAS,QAClB,YAAY,SAAS,WACrB,UAAU,SAAS,SACnB,SAAS,SAAS,QAClB,SAAS,KAAKA,WAAU,QAAQ,MAAM,EAAE,EAAE,MAAM,GAAG,GACnDC,WAAU,MAAM,CAAC,GACjBC,SAAQ,MAAM,CAAC;AACnB,UAAQF,UAAS,SAAS,IAAI,UAAU,iBAAiB,QAAQ,KAAK,MAAM,EAAE,QAAQ,KAAKC,SAAQ,QAAQ,QAAQ,OAAO,SAAS,KAAKC,SAAQ,UAAUA,SAAQ,GAAG;AACvK;AAEA,SAAS,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMnB,KAAK,SAAS,IAAI,QAAQ;AACxB,QAAI,WAAW,KAAK,UAChB,YAAY,KAAK,GACjB,aAAa,KAAK;AACtB,WAAO,UAAU,YAAY,MAAM,QAAQ,SAAS,MAAM,UAAU,YAAY,IAAI,aAAa,SAAS;AAAA,EAC3G;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,UAAU,SAAS,SAAS,QAAQ;AAClC,QAAI,WAAW,KAAK,UAChB,YAAY,KAAK,GACjB,aAAa,KAAK;AACtB,WAAO,UAAU,YAAY,MAAM,QAAQ,SAAS,MAAM,UAAU,YAAY,IAAI,aAAa,SAAS;AAAA,EAC3G;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,UAAU,SAAS,SAAS,QAAQ;AAClC,QAAI,WAAW,KAAK,UAChB,YAAY,KAAK;AACrB,WAAO,UAAU,YAAY,WAAW,UAAU,YAAY,IAAI,IAAI,UAAU,SAAS,IAAI,SAAS;AAAA,EACvG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,QAAQ,SAAS,OAAO,QAAQ;AAC9B,QAAI,WAAW,KAAK,UAChB,YAAY,KAAK;AACrB,WAAO,SAAS,YAAY,MAAM,QAAQ,WAAW,KAAK,GAAG,SAAS;AAAA,EACvE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,YAAY,SAAS,WAAW,OAAO;AACrC,QAAI,WAAW,KAAK,UAChB,aAAa,KAAK,GAClB,YAAY,KAAK,GACjB,eAAe,CAAE,GACjB,QAAQ,KAAK,YAAY,IAAI,UAAU,MAAM,EAAE,WAAW,KAAK,GAC/D,UAAU,KAAK,IAAI,WAAW,QAAQ,KAAK,GAC3C,YAAY,UAAU,YAAY,IAAI;AAE1C,WAAO,UAAU,GAAG,SAAS;AAC3B,UAAI,OAAO,SAAS,QAAQ,WAAW,SAAS;AAEhD,kBAAY,MAAM,OAAO,KAAK,YAAY,IAAI,QAAQ,UAAU,EAAE,IAAI,SAAS;AAC/E,mBAAa,KAAK,IAAI;AAAA,IACvB;AAED,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,SAAS,SAAS,UAAU;AAC1B,WAAO,CAAC,CAAC,KAAK;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,SAAS,QAAQ;AACtB,QAAI,WAAW,KAAK,UAChB,aAAa,KAAK;AACtB,WAAO,CAAC,EAAE,WAAW;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,QAAQ,SAASC,QAAO,SAAS;AAC/B,QAAI,YAAY,KAAK;AAErB,QAAI,OAAO,YAAY,YAAY;AACjC,aAAO,QAAQ,MAAM,SAAS;AAAA,IAC/B;AAED,WAAO,UAAU,OAAO,MAAM,OAAO,OAAO,IAAI,WAAW,OAAO,CAAC;AAAA,EACpE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,UAAU,SAAS,WAAW;AAC5B,QAAI,WAAW,KAAK,UAChB,aAAa,KAAK,GAClB,YAAY,KAAK;AACrB,WAAO,SAAS,WAAW,YAAY,UAAU,SAAS,EAAE,QAAQ,UAAU,SAAS;AAAA,EACxF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,QAAQ,SAAS,SAAS;AACxB,WAAO,KAAK;AAAA,EACb;AACH;","x_google_ignoreList":[0]}