{"version":3,"file":"197.7a4c9c83c194adcc0468.js","mappings":"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","sources":["webpack://kelberman.org/./node_modules/imask/esm/masked/number.js"],"sourcesContent":["import { j as _toConsumableArray, d as _inherits, e as _createSuper, _ as _createClass, a as _classCallCheck, g as _get, h as _getPrototypeOf, f as _slicedToArray, i as _set } from '../_rollupPluginBabelHelpers-67bba7fb.js';\nimport { escapeRegExp, normalizePrepare, DIRECTION } from '../core/utils.js';\nimport ChangeDetails from '../core/change-details.js';\nimport Masked from './base.js';\nimport IMask from '../core/holder.js';\nimport '../core/continuous-tail-details.js';\n\n/**\n Number mask\n @param {Object} opts\n @param {string} opts.radix - Single char\n @param {string} opts.thousandsSeparator - Single char\n @param {Array} opts.mapToRadix - Array of single chars\n @param {number} opts.min\n @param {number} opts.max\n @param {number} opts.scale - Digits after point\n @param {boolean} opts.signed - Allow negative\n @param {boolean} opts.normalizeZeros - Flag to remove leading and trailing zeros in the end of editing\n @param {boolean} opts.padFractionalZeros - Flag to pad trailing zeros after point in the end of editing\n*/\nvar MaskedNumber = /*#__PURE__*/function (_Masked) {\n _inherits(MaskedNumber, _Masked);\n\n var _super = _createSuper(MaskedNumber);\n\n /** Single char */\n\n /** Single char */\n\n /** Array of single chars */\n\n /** */\n\n /** */\n\n /** Digits after point */\n\n /** */\n\n /** Flag to remove leading and trailing zeros in the end of editing */\n\n /** Flag to pad trailing zeros after point in the end of editing */\n function MaskedNumber(opts) {\n _classCallCheck(this, MaskedNumber);\n\n return _super.call(this, Object.assign({}, MaskedNumber.DEFAULTS, opts));\n }\n /**\n @override\n */\n\n\n _createClass(MaskedNumber, [{\n key: \"_update\",\n value: function _update(opts) {\n _get(_getPrototypeOf(MaskedNumber.prototype), \"_update\", this).call(this, opts);\n\n this._updateRegExps();\n }\n /** */\n\n }, {\n key: \"_updateRegExps\",\n value: function _updateRegExps() {\n // use different regexp to process user input (more strict, input suffix) and tail shifting\n var start = '^' + (this.allowNegative ? '[+|\\\\-]?' : '');\n var midInput = '(0|([1-9]+\\\\d*))?';\n var mid = '\\\\d*';\n var end = (this.scale ? '(' + escapeRegExp(this.radix) + '\\\\d{0,' + this.scale + '})?' : '') + '$';\n this._numberRegExpInput = new RegExp(start + midInput + end);\n this._numberRegExp = new RegExp(start + mid + end);\n this._mapToRadixRegExp = new RegExp('[' + this.mapToRadix.map(escapeRegExp).join('') + ']', 'g');\n this._thousandsSeparatorRegExp = new RegExp(escapeRegExp(this.thousandsSeparator), 'g');\n }\n /** */\n\n }, {\n key: \"_removeThousandsSeparators\",\n value: function _removeThousandsSeparators(value) {\n return value.replace(this._thousandsSeparatorRegExp, '');\n }\n /** */\n\n }, {\n key: \"_insertThousandsSeparators\",\n value: function _insertThousandsSeparators(value) {\n // https://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript\n var parts = value.split(this.radix);\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, this.thousandsSeparator);\n return parts.join(this.radix);\n }\n /**\n @override\n */\n\n }, {\n key: \"doPrepare\",\n value: function doPrepare(ch) {\n var _get2;\n\n ch = ch.replace(this._mapToRadixRegExp, this.radix);\n\n var noSepCh = this._removeThousandsSeparators(ch);\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var _normalizePrepare = normalizePrepare((_get2 = _get(_getPrototypeOf(MaskedNumber.prototype), \"doPrepare\", this)).call.apply(_get2, [this, noSepCh].concat(args))),\n _normalizePrepare2 = _slicedToArray(_normalizePrepare, 2),\n prepCh = _normalizePrepare2[0],\n details = _normalizePrepare2[1];\n\n if (ch && !noSepCh) details.skip = true;\n return [prepCh, details];\n }\n /** */\n\n }, {\n key: \"_separatorsCount\",\n value: function _separatorsCount(to) {\n var extendOnSeparators = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var count = 0;\n\n for (var pos = 0; pos < to; ++pos) {\n if (this._value.indexOf(this.thousandsSeparator, pos) === pos) {\n ++count;\n if (extendOnSeparators) to += this.thousandsSeparator.length;\n }\n }\n\n return count;\n }\n /** */\n\n }, {\n key: \"_separatorsCountFromSlice\",\n value: function _separatorsCountFromSlice() {\n var slice = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this._value;\n return this._separatorsCount(this._removeThousandsSeparators(slice).length, true);\n }\n /**\n @override\n */\n\n }, {\n key: \"extractInput\",\n value: function extractInput() {\n var fromPos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var toPos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.value.length;\n var flags = arguments.length > 2 ? arguments[2] : undefined;\n\n var _this$_adjustRangeWit = this._adjustRangeWithSeparators(fromPos, toPos);\n\n var _this$_adjustRangeWit2 = _slicedToArray(_this$_adjustRangeWit, 2);\n\n fromPos = _this$_adjustRangeWit2[0];\n toPos = _this$_adjustRangeWit2[1];\n return this._removeThousandsSeparators(_get(_getPrototypeOf(MaskedNumber.prototype), \"extractInput\", this).call(this, fromPos, toPos, flags));\n }\n /**\n @override\n */\n\n }, {\n key: \"_appendCharRaw\",\n value: function _appendCharRaw(ch) {\n var flags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.thousandsSeparator) return _get(_getPrototypeOf(MaskedNumber.prototype), \"_appendCharRaw\", this).call(this, ch, flags);\n var prevBeforeTailValue = flags.tail && flags._beforeTailState ? flags._beforeTailState._value : this._value;\n\n var prevBeforeTailSeparatorsCount = this._separatorsCountFromSlice(prevBeforeTailValue);\n\n this._value = this._removeThousandsSeparators(this.value);\n\n var appendDetails = _get(_getPrototypeOf(MaskedNumber.prototype), \"_appendCharRaw\", this).call(this, ch, flags);\n\n this._value = this._insertThousandsSeparators(this._value);\n var beforeTailValue = flags.tail && flags._beforeTailState ? flags._beforeTailState._value : this._value;\n\n var beforeTailSeparatorsCount = this._separatorsCountFromSlice(beforeTailValue);\n\n appendDetails.tailShift += (beforeTailSeparatorsCount - prevBeforeTailSeparatorsCount) * this.thousandsSeparator.length;\n appendDetails.skip = !appendDetails.rawInserted && ch === this.thousandsSeparator;\n return appendDetails;\n }\n /** */\n\n }, {\n key: \"_findSeparatorAround\",\n value: function _findSeparatorAround(pos) {\n if (this.thousandsSeparator) {\n var searchFrom = pos - this.thousandsSeparator.length + 1;\n var separatorPos = this.value.indexOf(this.thousandsSeparator, searchFrom);\n if (separatorPos <= pos) return separatorPos;\n }\n\n return -1;\n }\n }, {\n key: \"_adjustRangeWithSeparators\",\n value: function _adjustRangeWithSeparators(from, to) {\n var separatorAroundFromPos = this._findSeparatorAround(from);\n\n if (separatorAroundFromPos >= 0) from = separatorAroundFromPos;\n\n var separatorAroundToPos = this._findSeparatorAround(to);\n\n if (separatorAroundToPos >= 0) to = separatorAroundToPos + this.thousandsSeparator.length;\n return [from, to];\n }\n /**\n @override\n */\n\n }, {\n key: \"remove\",\n value: function remove() {\n var fromPos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var toPos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.value.length;\n\n var _this$_adjustRangeWit3 = this._adjustRangeWithSeparators(fromPos, toPos);\n\n var _this$_adjustRangeWit4 = _slicedToArray(_this$_adjustRangeWit3, 2);\n\n fromPos = _this$_adjustRangeWit4[0];\n toPos = _this$_adjustRangeWit4[1];\n var valueBeforePos = this.value.slice(0, fromPos);\n var valueAfterPos = this.value.slice(toPos);\n\n var prevBeforeTailSeparatorsCount = this._separatorsCount(valueBeforePos.length);\n\n this._value = this._insertThousandsSeparators(this._removeThousandsSeparators(valueBeforePos + valueAfterPos));\n\n var beforeTailSeparatorsCount = this._separatorsCountFromSlice(valueBeforePos);\n\n return new ChangeDetails({\n tailShift: (beforeTailSeparatorsCount - prevBeforeTailSeparatorsCount) * this.thousandsSeparator.length\n });\n }\n /**\n @override\n */\n\n }, {\n key: \"nearestInputPos\",\n value: function nearestInputPos(cursorPos, direction) {\n if (!this.thousandsSeparator) return cursorPos;\n\n switch (direction) {\n case DIRECTION.NONE:\n case DIRECTION.LEFT:\n case DIRECTION.FORCE_LEFT:\n {\n var separatorAtLeftPos = this._findSeparatorAround(cursorPos - 1);\n\n if (separatorAtLeftPos >= 0) {\n var separatorAtLeftEndPos = separatorAtLeftPos + this.thousandsSeparator.length;\n\n if (cursorPos < separatorAtLeftEndPos || this.value.length <= separatorAtLeftEndPos || direction === DIRECTION.FORCE_LEFT) {\n return separatorAtLeftPos;\n }\n }\n\n break;\n }\n\n case DIRECTION.RIGHT:\n case DIRECTION.FORCE_RIGHT:\n {\n var separatorAtRightPos = this._findSeparatorAround(cursorPos);\n\n if (separatorAtRightPos >= 0) {\n return separatorAtRightPos + this.thousandsSeparator.length;\n }\n }\n }\n\n return cursorPos;\n }\n /**\n @override\n */\n\n }, {\n key: \"doValidate\",\n value: function doValidate(flags) {\n var regexp = flags.input ? this._numberRegExpInput : this._numberRegExp; // validate as string\n\n var valid = regexp.test(this._removeThousandsSeparators(this.value));\n\n if (valid) {\n // validate as number\n var number = this.number;\n valid = valid && !isNaN(number) && ( // check min bound for negative values\n this.min == null || this.min >= 0 || this.min <= this.number) && ( // check max bound for positive values\n this.max == null || this.max <= 0 || this.number <= this.max);\n }\n\n return valid && _get(_getPrototypeOf(MaskedNumber.prototype), \"doValidate\", this).call(this, flags);\n }\n /**\n @override\n */\n\n }, {\n key: \"doCommit\",\n value: function doCommit() {\n if (this.value) {\n var number = this.number;\n var validnum = number; // check bounds\n\n if (this.min != null) validnum = Math.max(validnum, this.min);\n if (this.max != null) validnum = Math.min(validnum, this.max);\n if (validnum !== number) this.unmaskedValue = String(validnum);\n var formatted = this.value;\n if (this.normalizeZeros) formatted = this._normalizeZeros(formatted);\n if (this.padFractionalZeros && this.scale > 0) formatted = this._padFractionalZeros(formatted);\n this._value = formatted;\n }\n\n _get(_getPrototypeOf(MaskedNumber.prototype), \"doCommit\", this).call(this);\n }\n /** */\n\n }, {\n key: \"_normalizeZeros\",\n value: function _normalizeZeros(value) {\n var parts = this._removeThousandsSeparators(value).split(this.radix); // remove leading zeros\n\n\n parts[0] = parts[0].replace(/^(\\D*)(0*)(\\d*)/, function (match, sign, zeros, num) {\n return sign + num;\n }); // add leading zero\n\n if (value.length && !/\\d$/.test(parts[0])) parts[0] = parts[0] + '0';\n\n if (parts.length > 1) {\n parts[1] = parts[1].replace(/0*$/, ''); // remove trailing zeros\n\n if (!parts[1].length) parts.length = 1; // remove fractional\n }\n\n return this._insertThousandsSeparators(parts.join(this.radix));\n }\n /** */\n\n }, {\n key: \"_padFractionalZeros\",\n value: function _padFractionalZeros(value) {\n if (!value) return value;\n var parts = value.split(this.radix);\n if (parts.length < 2) parts.push('');\n parts[1] = parts[1].padEnd(this.scale, '0');\n return parts.join(this.radix);\n }\n /**\n @override\n */\n\n }, {\n key: \"unmaskedValue\",\n get: function get() {\n return this._removeThousandsSeparators(this._normalizeZeros(this.value)).replace(this.radix, '.');\n },\n set: function set(unmaskedValue) {\n _set(_getPrototypeOf(MaskedNumber.prototype), \"unmaskedValue\", unmaskedValue.replace('.', this.radix), this, true);\n }\n /**\n @override\n */\n\n }, {\n key: \"typedValue\",\n get: function get() {\n return Number(this.unmaskedValue);\n },\n set: function set(n) {\n _set(_getPrototypeOf(MaskedNumber.prototype), \"unmaskedValue\", String(n), this, true);\n }\n /** Parsed Number */\n\n }, {\n key: \"number\",\n get: function get() {\n return this.typedValue;\n },\n set: function set(number) {\n this.typedValue = number;\n }\n /**\n Is negative allowed\n @readonly\n */\n\n }, {\n key: \"allowNegative\",\n get: function get() {\n return this.signed || this.min != null && this.min < 0 || this.max != null && this.max < 0;\n }\n /**\n @override\n */\n\n }, {\n key: \"typedValueEquals\",\n value: function typedValueEquals(value) {\n // handle 0 -> '' case (typed = 0 even if value = '')\n // for details see https://github.com/uNmAnNeR/imaskjs/issues/134\n return (_get(_getPrototypeOf(MaskedNumber.prototype), \"typedValueEquals\", this).call(this, value) || MaskedNumber.EMPTY_VALUES.includes(value) && MaskedNumber.EMPTY_VALUES.includes(this.typedValue)) && !(value === 0 && this.value === '');\n }\n }]);\n\n return MaskedNumber;\n}(Masked);\nMaskedNumber.DEFAULTS = {\n radix: ',',\n thousandsSeparator: '',\n mapToRadix: ['.'],\n scale: 2,\n signed: false,\n normalizeZeros: true,\n padFractionalZeros: false\n};\nMaskedNumber.EMPTY_VALUES = [].concat(_toConsumableArray(Masked.EMPTY_VALUES), [0]);\nIMask.MaskedNumber = MaskedNumber;\n\nexport { MaskedNumber as default };\n"],"names":["MaskedNumber","_Masked","_super","opts","this","call","Object","assign","DEFAULTS","_","key","value","prototype","_updateRegExps","start","allowNegative","end","scale","radix","_numberRegExpInput","RegExp","_numberRegExp","_mapToRadixRegExp","mapToRadix","map","join","_thousandsSeparatorRegExp","thousandsSeparator","replace","parts","split","ch","_get2","noSepCh","_removeThousandsSeparators","_len","arguments","length","args","Array","_key","_normalizePrepare","apply","concat","_normalizePrepare2","prepCh","details","skip","to","extendOnSeparators","undefined","count","pos","_value","indexOf","slice","_separatorsCount","fromPos","toPos","flags","_this$_adjustRangeWit","_adjustRangeWithSeparators","_this$_adjustRangeWit2","prevBeforeTailValue","tail","_beforeTailState","prevBeforeTailSeparatorsCount","_separatorsCountFromSlice","appendDetails","_insertThousandsSeparators","beforeTailValue","beforeTailSeparatorsCount","tailShift","rawInserted","searchFrom","separatorPos","from","separatorAroundFromPos","_findSeparatorAround","separatorAroundToPos","_this$_adjustRangeWit3","_this$_adjustRangeWit4","valueBeforePos","valueAfterPos","cursorPos","direction","separatorAtLeftPos","separatorAtLeftEndPos","separatorAtRightPos","valid","input","test","number","isNaN","min","max","validnum","Math","unmaskedValue","String","formatted","normalizeZeros","_normalizeZeros","padFractionalZeros","_padFractionalZeros","match","sign","zeros","num","push","padEnd","get","set","Number","n","typedValue","signed","EMPTY_VALUES","includes"],"sourceRoot":""}