{"version":3,"file":"currency.es.57f74176.js","sources":["../../../../node_modules/currency.js/dist/currency.es.js"],"sourcesContent":["/*!\n * currency.js - v2.0.4\n * http://scurker.github.io/currency.js\n *\n * Copyright (c) 2021 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":["defaults","format","round","v","pow","p","rounding","value","increment","groupRegex","vedicRegex","currency","opts","that","settings","precision","parse","useRounding","decimal","errorOnInvalid","decimals","fromCents","isNumber","isCurrency","regex","decimalString","pattern","negativePattern","symbol","separator","groups","split","dollars","cents","number","intValue","_settings","_precision","count","distribution","pennies","item","options"],"mappings":"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","x_google_ignoreList":[0]}