{"version":3,"file":"currency-core.bundle.js","sources":["../src/currency-item.js","../src/currency-core.js"],"sourcesContent":["// @flow\nexport class CurrencyItem\n{\n\t#currency = '';\n\t#format = {};\n\n\tconstructor(currency: string, format: {})\n\t{\n\t\tthis.#currency = currency;\n\t\tthis.#format = format;\n\t}\n\n\tgetCurrency(): string\n\t{\n\t\treturn this.#currency;\n\t}\n\n\tgetFormat(): {}\n\t{\n\t\treturn this.#format;\n\t}\n\n\tsetFormat(format: {}): void\n\t{\n\t\tthis.#format = format;\n\t}\n}","// @flow\n\nimport {Reflection, Type} from 'main.core';\nimport {CurrencyItem} from \"./currency-item\";\n\nexport class CurrencyCore\n{\n\tstatic currencies: CurrencyItem[] = [];\n\n\tstatic defaultFormat = {\n\t\t'FORMAT_STRING': '#',\n\t\t'DEC_POINT': '.',\n\t\t'THOUSANDS_SEP': ' ',\n\t\t'DECIMALS': 2,\n\t\t'HIDE_ZERO': 'N'\n\t};\n\n\tstatic getCurrencyList(): CurrencyItem[]\n\t{\n\t\treturn this.currencies;\n\t}\n\n\tstatic setCurrencyFormat(currency: string, format, replace: boolean): void\n\t{\n\t\tif (!Type.isStringFilled(currency) || !Type.isPlainObject(format))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst index = this.getCurrencyIndex(currency);\n\n\t\tif (index > -1 && !replace)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst innerFormat = {...this.defaultFormat, ...format};\n\n\t\tif (index === -1)\n\t\t{\n\t\t\tthis.currencies.push(new CurrencyItem(currency, innerFormat));\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.currencies[index].setFormat(innerFormat);\n\t\t}\n\t}\n\n\tstatic setCurrencies(currencies: [], replace: boolean)\n\t{\n\t\tif (Type.isArray(currencies))\n\t\t{\n\t\t\tfor (let i = 0; i < currencies.length; i++)\n\t\t\t{\n\t\t\t\tif (\n\t\t\t\t\t!Type.isPlainObject(currencies[i])\n\t\t\t\t\t|| !Type.isStringFilled(currencies[i].CURRENCY)\n\t\t\t\t\t|| !Type.isPlainObject(currencies[i].FORMAT)\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tthis.setCurrencyFormat(currencies[i].CURRENCY, currencies[i].FORMAT, replace);\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic getCurrencyFormat(currency: string)\n\t{\n\t\tconst index = this.getCurrencyIndex(currency);\n\n\t\treturn (index > -1 ? this.getCurrencyList()[index].getFormat() : false);\n\t}\n\n\tstatic getCurrencyIndex(currency: string): number\n\t{\n\t\tconst currencyList = this.getCurrencyList();\n\n\t\tfor (let i = 0; i < currencyList.length; i++)\n\t\t{\n\t\t\tif (currencyList[i].getCurrency() === currency)\n\t\t\t{\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\n\t\treturn -1;\n\t}\n\n\tstatic clearCurrency(currency)\n\t{\n\t\tconst index = this.getCurrencyIndex(currency);\n\t\tif (index > -1)\n\t\t{\n\t\t\tthis.currencies = BX.util.deleteFromArray(this.currencies, index);\n\t\t}\n\t}\n\n\tstatic clean()\n\t{\n\t\tthis.currencies = [];\n\t}\n\n\tstatic currencyFormat(price: number, currency: string, useTemplate: boolean)\n\t{\n\t\tlet result = '';\n\n\t\tconst format = this.getCurrencyFormat(currency);\n\t\tif (Type.isObject(format))\n\t\t{\n\t\t\tformat.CURRENT_DECIMALS = format.DECIMALS;\n\n\t\t\tif (format.HIDE_ZERO === 'Y' && price == parseInt(price, 10))\n\t\t\t{\n\t\t\t\tformat.CURRENT_DECIMALS = 0;\n\t\t\t}\n\n\t\t\tresult = BX.util.number_format(price, format.CURRENT_DECIMALS, format.DEC_POINT, format.THOUSANDS_SEP);\n\t\t\tif (useTemplate)\n\t\t\t{\n\t\t\t\tresult = format.FORMAT_STRING.replace(/(^|[^&])#/, '$1' + result);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tstatic getPriceControl(control: Element, currency: string)\n\t{\n\t\tlet result = '';\n\n\t\tconst format = this.getCurrencyFormat(currency);\n\t\tif (Type.isObject(format))\n\t\t{\n\t\t\tresult = format.FORMAT_STRING.replace(/(^|[^&])#/, '$1' + control.outerHTML);\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tstatic loadCurrencyFormat(currency)\n\t{\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst index = this.getCurrencyIndex(currency);\n\t\t\tif (index > -1)\n\t\t\t{\n\t\t\t\tresolve(this.getCurrencyList()[index].getFormat());\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tBX.ajax.runAction(\"currency.format.get\", {data: {currencyId: currency}})\n\t\t\t\t\t.then((response) => {\n\t\t\t\t\t\tconst format = response.data;\n\t\t\t\t\t\tthis.setCurrencyFormat(currency, format);\n\t\t\t\t\t\tresolve(format);\n\t\t\t\t\t})\n\t\t\t\t\t.catch((response) => {\n\t\t\t\t\t\treject(response.errors);\n\t\t\t\t\t});\n\t\t\t}\n\t\t})\n\t}\n}\n\n/** @deprecated use import { CurrencyCore } from 'currency.core' */\nReflection.namespace('BX.Currency').Core = CurrencyCore;"],"names":["CurrencyItem","currency","format","CurrencyCore","currencies","replace","Type","isStringFilled","isPlainObject","index","getCurrencyIndex","innerFormat","defaultFormat","push","setFormat","isArray","i","length","CURRENCY","FORMAT","setCurrencyFormat","getCurrencyList","getFormat","currencyList","getCurrency","BX","util","deleteFromArray","price","useTemplate","result","getCurrencyFormat","isObject","CURRENT_DECIMALS","DECIMALS","HIDE_ZERO","parseInt","number_format","DEC_POINT","THOUSANDS_SEP","FORMAT_STRING","control","outerHTML","Promise","resolve","reject","ajax","runAction","data","currencyId","then","response","errors","Reflection","namespace","Core"],"mappings":"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"}