Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/currency/money-editor/dist/ |
Upload File : |
{"version":3,"file":"money-editor.bundle.js","sources":["../src/money-editor.js"],"sourcesContent":["// @flow\n\nimport { Reflection, Loc, Event, Extension } from 'main.core';\n\ntype MoneyEditorOptions = {\n\tinput: HTMLElement;\n\tcurrency: string;\n\tvalue: string;\n\tcallback: function;\n};\n\nexport class MoneyEditor\n{\n\tstatic currencyList = null;\n\n\tstatic defaultFormat = {\n\t\tCURRENCY: '',\n\t\tNAME: '',\n\t\tFORMAT_STRING: '#',\n\t\tDEC_POINT: '.',\n\t\tTHOUSANDS_VARIANT: null,\n\t\tTHOUSANDS_SEP: ' ',\n\t\tDECIMALS: 2,\n\t\tHIDE_ZERO: 'N',\n\t\tBASE: 'N',\n\t\tSEPARATOR: ' ',\n\t};\n\n\tstatic region: string = '';\n\n\tconstructor(options: MoneyEditorOptions = {})\n\t{\n\t\tthis.input = options.input;\n\n\t\tthis.callback = options.callback;\n\t\tthis.currency = options.currency;\n\n\t\tthis.value = options.value || '';\n\t\tthis.valueEditHandler = this.valueEdit.bind(this);\n\n\t\tEvent.ready(this.init.bind(this));\n\t}\n\n\tstatic getCurrencyFormat(currency)\n\t{\n\t\tconst list = this.getCurrencyList();\n\n\t\tif (typeof list[currency] !== 'undefined')\n\t\t{\n\t\t\treturn list[currency];\n\t\t}\n\n\t\treturn this.defaultFormat;\n\t}\n\n\tstatic getCurrencyList()\n\t{\n\t\tif (this.currencyList === null)\n\t\t{\n\t\t\tthis.currencyList = Loc.getMessage('CURRENCY');\n\t\t}\n\n\t\treturn this.currencyList;\n\t}\n\n\tinit()\n\t{\n\t\tthis.formatValue();\n\t\tEvent.bind(this.input, 'bxchange', this.valueEditHandler);\n\t\tEvent.unbind(this.input, 'change', this.valueEditHandler);\n\t}\n\n\tclean()\n\t{\n\t\tEvent.unbind(this.input, 'bxchange', this.valueEditHandler);\n\t\tthis.input = null;\n\t}\n\n\tvalueEdit(e)\n\t{\n\t\tif (!!e && e.type === 'keyup' && e.code === 'Tab')\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.formatValue();\n\t}\n\n\tsetCurrency(currency)\n\t{\n\t\tthis.value = MoneyEditor.getUnFormattedValue(this.input.value, this.currency);\n\n\t\tthis.currency = currency;\n\n\t\tthis.input.value = MoneyEditor.getFormattedValue(\n\t\t\tthis.value,\n\t\t\tthis.currency\n\t\t);\n\n\t\tthis.callValueChangeCallback();\n\t}\n\n\tformatValue()\n\t{\n\t\tconst cursorPos = BX.getCaretPosition(this.input);\n\t\tconst originalValue = this.input.value;\n\n\t\tthis.changeValue();\n\n\t\tif (originalValue.length > 0)\n\t\t{\n\t\t\tBX.setCaretPosition(this.input, cursorPos - originalValue.length + this.input.value.length);\n\t\t}\n\t}\n\n\tchangeValue()\n\t{\n\t\tthis.value = MoneyEditor.getUnFormattedValue(this.input.value, this.currency);\n\n\t\tthis.input.value = MoneyEditor.getFormattedValue(\n\t\t\tthis.value,\n\t\t\tthis.currency\n\t\t);\n\n\t\tthis.callValueChangeCallback();\n\t}\n\n\tcallValueChangeCallback()\n\t{\n\t\tif (!!this.callback)\n\t\t{\n\t\t\tthis.callback.apply(this, [this.value]);\n\t\t}\n\n\t\tBX.onCustomEvent(this, 'Currency::Editor::change', [this.value]);\n\t}\n\n\tstatic getBaseCurrencyId()\n\t{\n\t\tconst listCurrency = this.getCurrencyList();\n\t\tfor (let key in listCurrency)\n\t\t{\n\t\t\tif (!listCurrency.hasOwnProperty(key))\n\t\t\t{\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (BX.prop.getString(listCurrency[key], 'BASE', 'N') === 'Y')\n\t\t\t{\n\t\t\t\treturn key;\n\t\t\t}\n\t\t}\n\n\t\treturn '';\n\t}\n\n\tstatic trimTrailingZeros(formattedValue, currency)\n\t{\n\t\tformattedValue = String(formattedValue);\n\t\tconst currentFormat = this.getCurrencyFormat(currency);\n\t\tconst ch = BX.prop.getString(currentFormat, 'DEC_POINT', '');\n\n\t\treturn ch !== '' ? formattedValue.replace(new RegExp('\\\\' + ch + '0+$'), '') : formattedValue;\n\t}\n\n\tstatic escapeRegExp(text)\n\t{\n\t\ttext = String(text);\n\n\t\treturn text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n\t}\n\n\tstatic getUnFormattedValue(formattedValue, currency)\n\t{\n\t\tformattedValue = String(formattedValue);\n\t\tconst currentFormat = this.getCurrencyFormat(currency);\n\n\t\tif (currentFormat['SEPARATOR'].length === 1)\n\t\t{\n\t\t\treturn formattedValue\n\t\t\t\t.replace(new RegExp('[' + currentFormat['SEPARATOR'] + ']', 'g'), '')\n\t\t\t\t.replace(currentFormat['DEC_POINT'], '.')\n\t\t\t\t.replace(new RegExp('[^0-9\\.]', 'g'), '')\n\t\t\t;\n\t\t}\n\t\telse if (currentFormat['SEPARATOR'].length > 1)\n\t\t{\n\t\t\treturn formattedValue\n\t\t\t\t.replace(new RegExp(this.escapeRegExp(currentFormat['SEPARATOR']), 'g'), '')\n\t\t\t\t.replace(currentFormat['DEC_POINT'], '.')\n\t\t\t\t.replace(new RegExp('[^0-9\\.]', 'g'), '')\n\t\t\t;\n\t\t}\n\t\telse\n\t\t{\n\t\t\treturn formattedValue.replace(currentFormat['DEC_POINT'], '.')\n\t\t\t\t.replace(new RegExp('[^0-9\\.]', 'g'), '')\n\t\t\t;\n\t\t}\n\t}\n\n\tstatic getFormattedValue(baseValue, currency)\n\t{\n\t\tbaseValue = String(baseValue);\n\t\tif (baseValue === '')\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\tbaseValue = baseValue.replace(/^0+/, '');\n\t\tif (baseValue === '')\n\t\t{\n\t\t\tbaseValue = '0';\n\t\t}\n\t\telse if (baseValue.charAt(0) === '.')\n\t\t{\n\t\t\tbaseValue = '0' + baseValue;\n\t\t}\n\n\t\tlet sign = '';\n\t\tif (baseValue.charAt(0) === '-')\n\t\t{\n\t\t\tsign = '-';\n\t\t\tbaseValue = baseValue.slice(1);\n\t\t}\n\n\t\tconst currentFormat = this.getCurrencyFormat(currency);\n\t\tconst decPoint: string = currentFormat.DEC_POINT;\n\t\tconst decimals: number = currentFormat.DECIMALS;\n\t\tconst separator: string = currentFormat.SEPARATOR || currentFormat.THOUSANDS_SEP;\n\t\tconst gecPointMask =\n\t\t\t(decPoint === ',' || decPoint === '.')\n\t\t\t\t? new RegExp('[.,]')\n\t\t\t\t: new RegExp('[' + decPoint + '.,]')\n\t\t;\n\n\t\tconst digitMask = new RegExp('\\D', 'g');\n\t\tlet wholePart;\n\t\tlet fraction;\n\t\tlet decimalPoint;\n\t\tconst decPointPosition = baseValue.match(gecPointMask);\n\t\tif (decPointPosition === null)\n\t\t{\n\t\t\twholePart = baseValue.replaceAll(digitMask, '');\n\t\t\tfraction = '';\n\t\t\tdecimalPoint = '';\n\t\t}\n\t\telse\n\t\t{\n\t\t\twholePart = baseValue.slice(0, decPointPosition.index).replaceAll(digitMask, '');\n\t\t\tfraction = baseValue.slice(decPointPosition.index + 1).replaceAll(digitMask, '');\n\t\t\tdecimalPoint = decPoint;\n\t\t}\n\t\tif (decimals === 0)\n\t\t{\n\t\t\tfraction = '';\n\t\t\tdecimalPoint = '';\n\t\t}\n\n\t\tlet result: string = sign;\n\t\tif (this.checkInrFormat(currency))\n\t\t{\n\t\t\tif (wholePart.length <= 3)\n\t\t\t{\n\t\t\t\tresult = result + wholePart;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tlet rightTriad: string = separator + wholePart.slice(-3);\n\t\t\t\tlet leftBlock: string = wholePart.slice(0, -3);\n\t\t\t\tconst j = (leftBlock.length > 2 ? leftBlock.length % 2 : 0);\n\n\t\t\t\tresult =\n\t\t\t\t\tresult\n\t\t\t\t\t+ (j ? leftBlock.slice(0, j) + separator : '')\n\t\t\t\t\t+ leftBlock.slice(j).replace(/(\\d{2})(?=\\d)/g, \"$1\" + separator)\n\t\t\t\t\t+ rightTriad\n\t\t\t\t;\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst j = (wholePart.length > 3 ? wholePart.length % 3 : 0);\n\n\t\t\tresult =\n\t\t\t\tresult\n\t\t\t\t+ (j ? wholePart.slice(0, j) + separator : '')\n\t\t\t\t+ wholePart.slice(j).replace(/(\\d{3})(?=\\d)/g, \"$1\" + separator)\n\t\t\t;\n\t\t}\n\n\t\tif (decimals > 0)\n\t\t{\n\t\t\tresult = result + decimalPoint;\n\t\t\tif (fraction !== '')\n\t\t\t{\n\t\t\t\tif (decimals < fraction.length)\n\t\t\t\t{\n\t\t\t\t\tfraction = fraction.slice(0, decimals);\n\t\t\t\t}\n\t\t\t\tresult = result + fraction;\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tstatic initRegion(): void\n\t{\n\t\tif (this.region === '')\n\t\t{\n\t\t\tconst settings = Extension.getSettings('currency.money-editor');\n\t\t\tthis.region = settings.get('region') || '-';\n\t\t}\n\t}\n\n\tstatic checkInrFormat(currency: string): boolean\n\t{\n\t\tthis.initRegion();\n\n\t\treturn (\n\t\t\tcurrency === 'INR'\n\t\t\t&& (this.region === 'hi' || this.region === 'in')\n\t\t);\n\t}\n}\n\n/** @deprecated use import { MoneyEditor } from 'currency.money-editor' */\nReflection.namespace('BX.Currency').Editor = MoneyEditor;\n"],"names":["MoneyEditor","options","input","callback","currency","value","valueEditHandler","valueEdit","bind","Event","ready","init","formatValue","unbind","e","type","code","getUnFormattedValue","getFormattedValue","callValueChangeCallback","cursorPos","BX","getCaretPosition","originalValue","changeValue","length","setCaretPosition","apply","onCustomEvent","list","getCurrencyList","defaultFormat","currencyList","Loc","getMessage","listCurrency","key","hasOwnProperty","prop","getString","formattedValue","String","currentFormat","getCurrencyFormat","ch","replace","RegExp","text","escapeRegExp","baseValue","charAt","sign","slice","decPoint","DEC_POINT","decimals","DECIMALS","separator","SEPARATOR","THOUSANDS_SEP","gecPointMask","digitMask","wholePart","fraction","decimalPoint","decPointPosition","match","replaceAll","index","result","checkInrFormat","rightTriad","leftBlock","j","region","settings","Extension","getSettings","get","initRegion","CURRENCY","NAME","FORMAT_STRING","THOUSANDS_VARIANT","HIDE_ZERO","BASE","Reflection","namespace","Editor"],"mappings":"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"}