diff --git a/README.md b/README.md index 08b44480..174cc3fe 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,9 @@ Supports all major browsers and IE11+ [need support older?](https://unmanner.git ## Changes +### 1.1.0 +* new _prepare_ and _commit_ options + ### 1.0.0 * **major API changes and improvements** * new _Masked_ model abstraction diff --git a/dist/imask.es.js b/dist/imask.es.js index 01ada623..b420d16d 100644 --- a/dist/imask.es.js +++ b/dist/imask.es.js @@ -644,21 +644,26 @@ function _applyDecoratedDescriptor(target, property, decorators, descriptor, con var Masked = (_class = function () { function Masked(_ref) { var mask = _ref.mask, - validate = _ref.validate; + _ref$prepare = _ref.prepare, + prepare = _ref$prepare === undefined ? function (val) { + return val; + } : _ref$prepare, + _ref$validate = _ref.validate, + validate = _ref$validate === undefined ? function () { + return true; + } : _ref$validate, + _ref$commit = _ref.commit, + commit = _ref$commit === undefined ? function () {} : _ref$commit; classCallCheck(this, Masked); this._value = ''; this.mask = mask; - this.validate = validate || function () { - return true; - }; + this.prepare = prepare; + this.validate = validate; + this.commit = commit; this.isInitialized = true; } - Masked.prototype._validate = function _validate(soft) { - return this.validate(this.value, this, soft); - }; - Masked.prototype.clone = function clone() { var m = new Masked(this); m._value = this.value.slice(); @@ -695,9 +700,10 @@ var Masked = (_class = function () { var oldValueLength = this.value.length; var consistentValue = this.clone(); + str = this.doPrepare(str, soft); for (var ci = 0; ci < str.length; ++ci) { this._value += str[ci]; - if (this._validate(soft) === false) { + if (this.doValidate(soft) === false) { _extends(this, consistentValue); if (!soft) return false; } @@ -720,7 +726,7 @@ var Masked = (_class = function () { var appended = this._append(ch, true); consistentAppended = this.clone(); var tailAppended = appended !== false && this._appendTail(tail) !== false; - if (tailAppended === false || this._validate(true) === false) { + if (tailAppended === false || this.doValidate(true) === false) { _extends(this, consistentValue); break; } @@ -767,7 +773,17 @@ var Masked = (_class = function () { return ret; }; - Masked.prototype.commit = function commit() {}; + Masked.prototype.doPrepare = function doPrepare(str, soft) { + return this.prepare(str, this, soft); + }; + + Masked.prototype.doValidate = function doValidate(soft) { + return this.validate(this.value, this, soft); + }; + + Masked.prototype.doCommit = function doCommit() { + this.commit(this.value, this); + }; // TODO // resolve (inputRaw) -> outputRaw @@ -793,6 +809,30 @@ var Masked = (_class = function () { set: function set$$1(mask) { this._mask = mask; } + }, { + key: 'prepare', + get: function get$$1() { + return this._prepare; + }, + set: function set$$1(prepare) { + this._prepare = prepare; + } + }, { + key: 'validate', + get: function get$$1() { + return this._validate; + }, + set: function set$$1(validate) { + this._validate = validate; + } + }, { + key: 'commit', + get: function get$$1() { + return this._commit; + }, + set: function set$$1(commit) { + this._commit = commit; + } }, { key: 'value', get: function get$$1() { @@ -801,7 +841,7 @@ var Masked = (_class = function () { set: function set$$1(value) { this.reset(); this.appendWithTail(value); - this.commit(); + this.doCommit(); } }, { key: 'unmaskedValue', @@ -812,7 +852,7 @@ var Masked = (_class = function () { this.reset(); this._append(value); this.appendWithTail(""); - this.commit(); + this.doCommit(); } }, { key: 'isComplete', @@ -821,7 +861,7 @@ var Masked = (_class = function () { } }]); return Masked; -}(), (_applyDecoratedDescriptor(_class.prototype, 'mask', [refreshValueOnSet], Object.getOwnPropertyDescriptor(_class.prototype, 'mask'), _class.prototype)), _class); +}(), (_applyDecoratedDescriptor(_class.prototype, 'mask', [refreshValueOnSet], Object.getOwnPropertyDescriptor(_class.prototype, 'mask'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'prepare', [refreshValueOnSet], Object.getOwnPropertyDescriptor(_class.prototype, 'prepare'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'validate', [refreshValueOnSet], Object.getOwnPropertyDescriptor(_class.prototype, 'validate'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'commit', [refreshValueOnSet], Object.getOwnPropertyDescriptor(_class.prototype, 'commit'), _class.prototype)), _class); var _class$2; @@ -936,8 +976,8 @@ var MaskedNumber = (_class$2 = function (_Masked) { return parts.join(this.radix); }; - MaskedNumber.prototype._append = function _append(str, soft) { - return _Masked.prototype._append.call(this, this._removeThousandsSeparators(str.replace(this._mapToRadixRegExp, this.radix)), soft); + MaskedNumber.prototype.doPrepare = function doPrepare(str, soft) { + return _Masked.prototype.doPrepare.call(this, this._removeThousandsSeparators(str.replace(this._mapToRadixRegExp, this.radix)), soft); }; MaskedNumber.prototype.appendWithTail = function appendWithTail(str, tail) { @@ -972,7 +1012,7 @@ var MaskedNumber = (_class$2 = function (_Masked) { return cursorPos; }; - MaskedNumber.prototype._validate = function _validate(soft) { + MaskedNumber.prototype.doValidate = function doValidate(soft) { var regexp = soft ? this._numberRegExpSoft : this._numberRegExp; // validate as string @@ -988,10 +1028,10 @@ var MaskedNumber = (_class$2 = function (_Masked) { this.max == null || this.max <= 0 || this.number <= this.max); } - return valid && _Masked.prototype._validate.call(this, soft); + return valid && _Masked.prototype.doValidate.call(this, soft); }; - MaskedNumber.prototype.commit = function commit() { + MaskedNumber.prototype.doCommit = function doCommit() { var number = this.number; var validnum = number; @@ -1014,6 +1054,7 @@ var MaskedNumber = (_class$2 = function (_Masked) { } this._value = formatted; + _Masked.prototype.doCommit.call(this); }; MaskedNumber.prototype._normalizeZeros = function _normalizeZeros(value) { @@ -1237,7 +1278,7 @@ var PatternGroup = function () { }; } - PatternGroup.prototype._validate = function _validate(soft) { + PatternGroup.prototype.doValidate = function doValidate(soft) { return this.validate(this.value, this, soft); }; @@ -1492,10 +1533,10 @@ var MaskedPattern = (_class$1 = function (_Masked) { } }; - MaskedPattern.prototype._validate = function _validate(soft) { + MaskedPattern.prototype.doValidate = function doValidate(soft) { return this._groupDefs.every(function (g) { - return g._validate(soft); - }) && _Masked.prototype._validate.call(this, soft); + return g.doValidate(soft); + }) && _Masked.prototype.doValidate.call(this, soft); }; MaskedPattern.prototype.clone = function clone() { @@ -1581,7 +1622,7 @@ var MaskedPattern = (_class$1 = function (_Masked) { if (def.type === PatternDefinition.TYPES.INPUT) { if (chres) { this._value += chres; - if (!this._validate()) { + if (!this.doValidate()) { chres = ''; this._value = this.value.slice(0, -1); } @@ -1895,8 +1936,8 @@ var MaskedDate = (_class$3 = function (_MaskedPattern) { return _this; } - MaskedDate.prototype._validate = function _validate(soft) { - var valid = _MaskedPattern.prototype._validate.call(this, soft); + MaskedDate.prototype.doValidate = function doValidate(soft) { + var valid = _MaskedPattern.prototype.doValidate.call(this, soft); var date = this.date; return valid && (!this.isComplete || this.isDateExist(this.value) && date && (this.min == null || this.min <= date) && (this.max == null || date <= this.max)); @@ -2187,7 +2228,7 @@ var InputMask = function () { if (this.value !== this.el.value) { this.updateValue(); } - this.masked.commit(); + this.masked.doCommit(); this.updateControl(); }; diff --git a/dist/imask.es.js.map b/dist/imask.es.js.map index 61a3e35c..aa93524c 100644 --- a/dist/imask.es.js.map +++ b/dist/imask.es.js.map @@ -1 +1 @@ -{"version":3,"file":"imask.es.js","sources":["../node_modules/core-js/modules/_global.js","../node_modules/core-js/modules/_core.js","../node_modules/core-js/modules/_is-object.js","../node_modules/core-js/modules/_an-object.js","../node_modules/core-js/modules/_fails.js","../node_modules/core-js/modules/_descriptors.js","../node_modules/core-js/modules/_dom-create.js","../node_modules/core-js/modules/_ie8-dom-define.js","../node_modules/core-js/modules/_to-primitive.js","../node_modules/core-js/modules/_object-dp.js","../node_modules/core-js/modules/_property-desc.js","../node_modules/core-js/modules/_hide.js","../node_modules/core-js/modules/_has.js","../node_modules/core-js/modules/_uid.js","../node_modules/core-js/modules/_redefine.js","../node_modules/core-js/modules/_a-function.js","../node_modules/core-js/modules/_ctx.js","../node_modules/core-js/modules/_export.js","../node_modules/core-js/modules/_cof.js","../node_modules/core-js/modules/_iobject.js","../node_modules/core-js/modules/_defined.js","../node_modules/core-js/modules/_to-object.js","../node_modules/core-js/modules/_to-integer.js","../node_modules/core-js/modules/_to-length.js","../node_modules/core-js/modules/_is-array.js","../node_modules/core-js/modules/_shared.js","../node_modules/core-js/modules/_wks.js","../node_modules/core-js/modules/_array-species-constructor.js","../node_modules/core-js/modules/_array-species-create.js","../node_modules/core-js/modules/_array-methods.js","../node_modules/core-js/modules/_add-to-unscopables.js","../node_modules/core-js/modules/es6.array.find.js","../node_modules/core-js/modules/_to-iobject.js","../node_modules/core-js/modules/_to-index.js","../node_modules/core-js/modules/_array-includes.js","../node_modules/core-js/modules/_shared-key.js","../node_modules/core-js/modules/_object-keys-internal.js","../node_modules/core-js/modules/_enum-bug-keys.js","../node_modules/core-js/modules/_object-keys.js","../node_modules/core-js/modules/_object-sap.js","../node_modules/core-js/modules/es6.object.keys.js","../node_modules/core-js/modules/_string-repeat.js","../node_modules/core-js/modules/es6.string.repeat.js","../node_modules/core-js/modules/_string-pad.js","../node_modules/core-js/modules/es7.string.pad-start.js","../node_modules/core-js/modules/es7.string.pad-end.js","../src/core/utils.js","../src/masked/base.js","../src/masked/number.js","../src/masked/factory.js","../src/masked/pattern/definition.js","../src/masked/pattern/group.js","../src/masked/pattern.js","../src/masked/date.js","../src/core/action-details.js","../src/controls/input.js","../src/imask.js"],"sourcesContent":["// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef","var core = module.exports = {version: '2.4.0'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};","var isObject = require('./_is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});","var isObject = require('./_is-object')\n , document = require('./_global').document\n // in old IE typeof document.createElement is 'object'\n , is = isObject(document) && isObject(document.createElement);\nmodule.exports = function(it){\n return is ? document.createElement(it) : {};\n};","module.exports = !require('./_descriptors') && !require('./_fails')(function(){\n return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;\n});","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function(it, S){\n if(!isObject(it))return it;\n var fn, val;\n if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;\n if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};","var anObject = require('./_an-object')\n , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n , toPrimitive = require('./_to-primitive')\n , dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if(IE8_DOM_DEFINE)try {\n return dP(O, P, Attributes);\n } catch(e){ /* empty */ }\n if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');\n if('value' in Attributes)O[P] = Attributes.value;\n return O;\n};","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};","var dP = require('./_object-dp')\n , createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function(object, key, value){\n return dP.f(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};","var id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};","var global = require('./_global')\n , hide = require('./_hide')\n , has = require('./_has')\n , SRC = require('./_uid')('src')\n , TO_STRING = 'toString'\n , $toString = Function[TO_STRING]\n , TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function(it){\n return $toString.call(it);\n};\n\n(module.exports = function(O, key, val, safe){\n var isFunction = typeof val == 'function';\n if(isFunction)has(val, 'name') || hide(val, 'name', key);\n if(O[key] === val)return;\n if(isFunction)has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if(O === global){\n O[key] = val;\n } else {\n if(!safe){\n delete O[key];\n hide(O, key, val);\n } else {\n if(O[key])O[key] = val;\n else hide(O, key, val);\n }\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString(){\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};","var global = require('./_global')\n , core = require('./_core')\n , hide = require('./_hide')\n , redefine = require('./_redefine')\n , ctx = require('./_ctx')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {})\n , key, own, out, exp;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if(target)redefine(target, key, out, type & $export.U);\n // export\n if(exports[key] != out)hide(exports, key, exp);\n if(IS_PROTO && expProto[key] != out)expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library` \nmodule.exports = $export;","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n return it;\n};","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function(it){\n return Object(defined(it));\n};","// 7.1.4 ToInteger\nvar ceil = Math.ceil\n , floor = Math.floor;\nmodule.exports = function(it){\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer')\n , min = Math.min;\nmodule.exports = function(it){\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};","var global = require('./_global')\n , SHARED = '__core-js_shared__'\n , store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n return store[key] || (store[key] = {});\n};","var store = require('./_shared')('wks')\n , uid = require('./_uid')\n , Symbol = require('./_global').Symbol\n , USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function(name){\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;","var isObject = require('./_is-object')\n , isArray = require('./_is-array')\n , SPECIES = require('./_wks')('species');\n\nmodule.exports = function(original){\n var C;\n if(isArray(original)){\n C = original.constructor;\n // cross-realm fallback\n if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;\n if(isObject(C)){\n C = C[SPECIES];\n if(C === null)C = undefined;\n }\n } return C === undefined ? Array : C;\n};","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function(original, length){\n return new (speciesConstructor(original))(length);\n};","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx')\n , IObject = require('./_iobject')\n , toObject = require('./_to-object')\n , toLength = require('./_to-length')\n , asc = require('./_array-species-create');\nmodule.exports = function(TYPE, $create){\n var IS_MAP = TYPE == 1\n , IS_FILTER = TYPE == 2\n , IS_SOME = TYPE == 3\n , IS_EVERY = TYPE == 4\n , IS_FIND_INDEX = TYPE == 6\n , NO_HOLES = TYPE == 5 || IS_FIND_INDEX\n , create = $create || asc;\n return function($this, callbackfn, that){\n var O = toObject($this)\n , self = IObject(O)\n , f = ctx(callbackfn, that, 3)\n , length = toLength(self.length)\n , index = 0\n , result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined\n , val, res;\n for(;length > index; index++)if(NO_HOLES || index in self){\n val = self[index];\n res = f(val, index, O);\n if(TYPE){\n if(IS_MAP)result[index] = res; // map\n else if(res)switch(TYPE){\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if(IS_EVERY)return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables')\n , ArrayProto = Array.prototype;\nif(ArrayProto[UNSCOPABLES] == undefined)require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function(key){\n ArrayProto[UNSCOPABLES][key] = true;\n};","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export')\n , $find = require('./_array-methods')(5)\n , KEY = 'find'\n , forced = true;\n// Shouldn't skip holes\nif(KEY in [])Array(1)[KEY](function(){ forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn/*, that = undefined */){\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject')\n , defined = require('./_defined');\nmodule.exports = function(it){\n return IObject(defined(it));\n};","var toInteger = require('./_to-integer')\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};","var shared = require('./_shared')('keys')\n , uid = require('./_uid');\nmodule.exports = function(key){\n return shared[key] || (shared[key] = uid(key));\n};","var has = require('./_has')\n , toIObject = require('./_to-iobject')\n , arrayIndexOf = require('./_array-includes')(false)\n , IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function(object, names){\n var O = toIObject(object)\n , i = 0\n , result = []\n , key;\n for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while(names.length > i)if(has(O, key = names[i++])){\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal')\n , enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O){\n return $keys(O, enumBugKeys);\n};","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export')\n , core = require('./_core')\n , fails = require('./_fails');\nmodule.exports = function(KEY, exec){\n var fn = (core.Object || {})[KEY] || Object[KEY]\n , exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object')\n , $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});","'use strict';\nvar toInteger = require('./_to-integer')\n , defined = require('./_defined');\n\nmodule.exports = function repeat(count){\n var str = String(defined(this))\n , res = ''\n , n = toInteger(count);\n if(n < 0 || n == Infinity)throw RangeError(\"Count can't be negative\");\n for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str;\n return res;\n};","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('./_to-length')\n , repeat = require('./_string-repeat')\n , defined = require('./_defined');\n\nmodule.exports = function(that, maxLength, fillString, left){\n var S = String(defined(that))\n , stringLength = S.length\n , fillStr = fillString === undefined ? ' ' : String(fillString)\n , intMaxLength = toLength(maxLength);\n if(intMaxLength <= stringLength || fillStr == '')return S;\n var fillLen = intMaxLength - stringLength\n , stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));\n if(stringFiller.length > fillLen)stringFiller = stringFiller.slice(0, fillLen);\n return left ? stringFiller + S : S + stringFiller;\n};\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export')\n , $pad = require('./_string-pad');\n\n$export($export.P, 'String', {\n padStart: function padStart(maxLength /*, fillString = ' ' */){\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n }\n});","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export')\n , $pad = require('./_string-pad');\n\n$export($export.P, 'String', {\n padEnd: function padEnd(maxLength /*, fillString = ' ' */){\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n }\n});","export\r\nfunction isString (str) {\r\n return typeof str === 'string' || str instanceof String;\r\n}\r\n\r\nexport\r\nfunction conform (res, str, fallback='') {\r\n return isString(res) ?\r\n res :\r\n res ?\r\n str :\r\n fallback;\r\n}\r\n\r\nexport\r\nconst DIRECTION = {\r\n NONE: 0,\r\n LEFT: -1,\r\n RIGHT: 1\r\n}\r\n\r\nexport\r\nfunction indexInDirection (pos, direction) {\r\n if (direction === DIRECTION.LEFT) --pos;\r\n return pos;\r\n}\r\n\r\nexport\r\nfunction refreshValueOnSet (target, key, descriptor) {\r\n const method = descriptor.set;\r\n descriptor.set = function (...args) {\r\n return this.withValueRefresh(method.bind(this, ...args));\r\n };\r\n}\r\n\r\nexport\r\nfunction escapeRegExp(str) {\r\n return str.replace(/([.*+?^=!:${}()|\\[\\]\\/\\\\])/g, '\\\\$1');\r\n}\r\n","import {refreshValueOnSet} from '../core/utils';\r\n\r\n\r\nexport default\r\nclass Masked {\r\n constructor ({mask, validate}) {\r\n this._value = '';\r\n this.mask = mask;\r\n this.validate = validate || (() => true);\r\n this.isInitialized = true;\r\n }\r\n\r\n get mask () {\r\n return this._mask;\r\n }\r\n\r\n @refreshValueOnSet\r\n set mask (mask) {\r\n this._mask = mask;\r\n }\r\n\r\n _validate (soft) {\r\n return this.validate(this.value, this, soft);\r\n }\r\n\r\n clone () {\r\n const m = new Masked(this);\r\n m._value = this.value.slice();\r\n return m;\r\n }\r\n\r\n reset () {\r\n this._value = '';\r\n }\r\n\r\n get value () {\r\n return this._value;\r\n }\r\n\r\n set value (value) {\r\n this.reset();\r\n this.appendWithTail(value);\r\n this.commit();\r\n }\r\n\r\n get unmaskedValue () {\r\n return this._unmask();\r\n }\r\n\r\n set unmaskedValue (value) {\r\n this.reset();\r\n this._append(value);\r\n this.appendWithTail(\"\");\r\n this.commit();\r\n }\r\n\r\n get isComplete () {\r\n return true;\r\n }\r\n\r\n nearestInputPos (cursorPos, /* direction */) {\r\n return cursorPos;\r\n }\r\n\r\n extractInput (fromPos=0, toPos=this.value.length) {\r\n return this.value.slice(fromPos, toPos);\r\n }\r\n\r\n extractTail (fromPos=0, toPos=this.value.length) {\r\n return this.extractInput(fromPos, toPos);\r\n }\r\n\r\n _appendTail (tail) {\r\n return !tail || this._append(tail);\r\n }\r\n\r\n _append (str, soft) {\r\n const oldValueLength = this.value.length;\r\n let consistentValue = this.clone();\r\n\r\n for (let ci=0; ci outputRaw\r\n\r\n // TODO\r\n // insert (str, fromPos, soft)\r\n\r\n // splice (start, deleteCount, inserted, removeDirection) {\r\n // const tailPos = start + deleteCount;\r\n // const tail = this.extractTail(tailPos);\r\n\r\n // start = this.nearestInputPos(start, removeDirection);\r\n // this.clear(start);\r\n // return this.appendWithTail(inserted, tail);\r\n // }\r\n}\r\n","import {escapeRegExp, refreshValueOnSet, DIRECTION, indexInDirection} from '../core/utils';\r\nimport Masked from './base';\r\n\r\n\r\nexport default\r\nclass MaskedNumber extends Masked {\r\n constructor (opts={}) {\r\n opts = Object.assign({}, MaskedNumber.DEFAULTS, opts);\r\n super(opts);\r\n delete this.isInitialized;\r\n\r\n const {scale, radix, mapToRadix, min, max, signed, thousandsSeparator, postFormat} = opts;\r\n\r\n this.min = min;\r\n this.max = max;\r\n this.scale = scale;\r\n this.radix = radix;\r\n this.mapToRadix = mapToRadix;\r\n this.signed = signed;\r\n this.thousandsSeparator = thousandsSeparator;\r\n this.postFormat = postFormat;\r\n\r\n this._updateNumberRegExp();\r\n\r\n this.isInitialized = true;\r\n }\r\n\r\n _updateNumberRegExp () {\r\n // TODO refactor?\r\n let regExpStrSoft = '^';\r\n let regExpStr = '^';\r\n\r\n if (this.signed) {\r\n regExpStrSoft += '([+|\\\\-]?|([+|\\\\-]?(0|([1-9]+\\\\d*))))';\r\n regExpStr += '[+|\\\\-]?';\r\n } else {\r\n regExpStrSoft += '(0|([1-9]+\\\\d*))';\r\n }\r\n regExpStr += '\\\\d*';\r\n\r\n if (this.scale) {\r\n regExpStrSoft += '(' + this.radix + '\\\\d{0,' + this.scale + '})?';\r\n regExpStr += '(' + this.radix + '\\\\d{0,' + this.scale + '})?';\r\n }\r\n\r\n regExpStrSoft += '$';\r\n regExpStr += '$';\r\n\r\n this._numberRegExpSoft = new RegExp(regExpStrSoft);\r\n this._numberRegExp = new RegExp(regExpStr)\r\n }\r\n\r\n extractTail (fromPos=0, toPos=this.value.length) {\r\n return this._removeThousandsSeparators(super.extractTail(fromPos, toPos));\r\n }\r\n\r\n _removeThousandsSeparators (value) {\r\n return value.replace(this._thousandsSeparatorRegExp, '');\r\n }\r\n\r\n _insertThousandsSeparators (value) {\r\n // https://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript\r\n const parts = value.split(this.radix);\r\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, this.thousandsSeparator);\r\n return parts.join(this.radix);\r\n }\r\n\r\n _append (str, soft) {\r\n return super._append(\r\n this._removeThousandsSeparators(\r\n str.replace(this._mapToRadixRegExp, this.radix)),\r\n soft);\r\n }\r\n\r\n appendWithTail (str, tail) {\r\n const oldValueLength = this.value.length;\r\n this._value = this._removeThousandsSeparators(this.value);\r\n let removedSeparatorsCount = oldValueLength - this.value.length;\r\n\r\n\r\n const appended = super.appendWithTail(str, tail);\r\n\r\n\r\n this._value = this._insertThousandsSeparators(this.value);\r\n\r\n let beforeTailPos = oldValueLength + appended - removedSeparatorsCount;\r\n this._value = this._insertThousandsSeparators(this.value);\r\n let insertedSeparatorsBeforeTailCount = 0;\r\n for (let pos = 0; pos <= beforeTailPos; ++pos) {\r\n if (this.value[pos] === this.thousandsSeparator) {\r\n ++insertedSeparatorsBeforeTailCount;\r\n ++beforeTailPos;\r\n }\r\n }\r\n\r\n return appended - removedSeparatorsCount + insertedSeparatorsBeforeTailCount;\r\n }\r\n\r\n nearestInputPos (cursorPos, direction=DIRECTION.LEFT) {\r\n if (!direction) return cursorPos;\r\n\r\n const nextPos = indexInDirection(cursorPos, direction);\r\n if (this.value[nextPos] === this.thousandsSeparator) cursorPos += direction;\r\n return cursorPos;\r\n }\r\n\r\n _validate (soft) {\r\n const regexp = soft ? this._numberRegExpSoft : this._numberRegExp;\r\n\r\n // validate as string\r\n let valid = regexp.test(this._removeThousandsSeparators(this.value));\r\n\r\n if (valid) {\r\n // validate as number\r\n const number = this.number;\r\n valid = valid && !isNaN(number) &&\r\n // check min bound for negative values\r\n (this.min == null || this.min >= 0 || this.min <= this.number) &&\r\n // check max bound for positive values\r\n (this.max == null || this.max <= 0 || this.number <= this.max);\r\n }\r\n\r\n return valid && super._validate(soft);\r\n }\r\n\r\n commit () {\r\n const number = this.number;\r\n let validnum = number;\r\n\r\n // check bounds\r\n if (this.min != null) validnum = Math.max(validnum, this.min);\r\n if (this.max != null) validnum = Math.min(validnum, this.max);\r\n\r\n if (validnum !== number) {\r\n this.unmaskedValue = '' + validnum;\r\n }\r\n\r\n let formatted = this.value;\r\n\r\n if (this.postFormat.normalizeZeros) {\r\n formatted = this._normalizeZeros(formatted);\r\n }\r\n\r\n if (this.postFormat.padFractionalZeros) {\r\n formatted = this._padFractionalZeros(formatted);\r\n }\r\n\r\n this._value = formatted;\r\n }\r\n\r\n _normalizeZeros (value) {\r\n const parts = this._removeThousandsSeparators(value).split(this.radix);\r\n\r\n // remove leading zeros\r\n parts[0] = parts[0].replace(/^(\\D*)(0*)(\\d*)/, (match, sign, zeros, num) => sign + num);\r\n // add leading zero\r\n if (value.length && !/\\d$/.test(parts[0])) parts[0] = parts[0] + '0';\r\n\r\n if (parts.length > 1) {\r\n parts[1] = parts[1].replace(/0*$/, ''); // remove trailing zeros\r\n if (!parts[1].length) parts.length = 1; // remove fractional\r\n }\r\n\r\n return this._insertThousandsSeparators(parts.join(this.radix));\r\n }\r\n\r\n _padFractionalZeros (value) {\r\n const parts = value.split(this.radix);\r\n if (parts.length < 2) parts.push('');\r\n parts[1] = parts[1].padEnd(this.scale, '0');\r\n return parts.join(this.radix);\r\n }\r\n\r\n get number () {\r\n let numstr =\r\n this._removeThousandsSeparators(\r\n this._normalizeZeros(\r\n this.unmaskedValue))\r\n .replace(this.radix, '.');\r\n\r\n return Number(numstr);\r\n }\r\n\r\n set number (number) {\r\n this.unmaskedValue = '' + number;\r\n }\r\n\r\n get min () {\r\n return this._min;\r\n }\r\n\r\n @refreshValueOnSet\r\n set min (min) {\r\n this._min = min;\r\n }\r\n\r\n get max () {\r\n return this._max;\r\n }\r\n\r\n @refreshValueOnSet\r\n set max (max) {\r\n this._max = max;\r\n }\r\n\r\n get scale () {\r\n return this._scale;\r\n }\r\n\r\n @refreshValueOnSet\r\n set scale (scale) {\r\n this._scale = scale;\r\n }\r\n\r\n get radix () {\r\n return this._radix;\r\n }\r\n\r\n @refreshValueOnSet\r\n set radix (radix) {\r\n this._radix = radix;\r\n this._updateNumberRegExp();\r\n }\r\n\r\n get signed () {\r\n return this._signed || (this.min != null && this.min < 0) || (this.max != null && this.max < 0);\r\n }\r\n\r\n @refreshValueOnSet\r\n set signed (signed) {\r\n this._signed = signed;\r\n }\r\n\r\n get postFormat () {\r\n return this._postFormat;\r\n }\r\n\r\n @refreshValueOnSet\r\n set postFormat (postFormat) {\r\n this._postFormat = {\r\n ...MaskedNumber.DEFAULTS.postFormat,\r\n ...postFormat\r\n };\r\n }\r\n\r\n get mapToRadix () {\r\n return this._mapToRadix;\r\n }\r\n\r\n @refreshValueOnSet\r\n set mapToRadix (mapToRadix) {\r\n this._mapToRadix = mapToRadix;\r\n this._mapToRadixRegExp = new RegExp('[' +\r\n mapToRadix.map(escapeRegExp).join('') +\r\n ']', 'g');\r\n }\r\n\r\n get thousandsSeparator () {\r\n return this._thousandsSeparator;\r\n }\r\n\r\n @refreshValueOnSet\r\n set thousandsSeparator (thousandsSeparator) {\r\n this._thousandsSeparator = thousandsSeparator;\r\n this._thousandsSeparatorRegExp = new RegExp(escapeRegExp(thousandsSeparator), 'g');\r\n }\r\n}\r\nMaskedNumber.DEFAULTS = {\r\n radix: ',',\r\n thousandsSeparator: '',\r\n mapToRadix: ['.'],\r\n scale: 2,\r\n postFormat: {\r\n normalizeZeros: true,\r\n }\r\n};\r\n","import {isString} from '../core/utils';\r\nimport Masked from './base';\r\nimport MaskedNumber from './number';\r\n\r\n\r\nexport default\r\nfunction createMask (opts) {\r\n opts = Object.assign({}, opts); // clone\r\n\r\n const mask = opts.mask;\r\n\r\n if (mask instanceof Masked) {\r\n return mask;\r\n }\r\n if (mask instanceof RegExp) {\r\n opts.validate = (value) => mask.test(value);\r\n return new Masked(opts);\r\n }\r\n if (isString(mask)) {\r\n return new IMask.MaskedPattern(opts);\r\n }\r\n if (mask.prototype instanceof Masked) {\r\n delete opts.mask;\r\n return new mask(opts);\r\n }\r\n if (mask instanceof Number || typeof mask === 'number' || mask === Number) {\r\n delete opts.mask;\r\n return new MaskedNumber(opts);\r\n }\r\n if (mask instanceof Date || mask === Date) {\r\n delete opts.mask;\r\n if (opts.pattern) {\r\n opts.mask = opts.pattern;\r\n delete opts.pattern;\r\n }\r\n return new IMask.MaskedDate(opts);\r\n }\r\n if (mask instanceof Function){\r\n opts.validate = mask;\r\n return new Masked(opts);\r\n }\r\n\r\n console.warn('Mask not found for', opts); // eslint-disable-line no-console\r\n return new Masked(opts);\r\n}\r\n","import createMask from '../factory';\r\n\r\n\r\nexport default\r\nclass PatternDefinition {\r\n constructor(opts) {\r\n Object.assign(this, opts);\r\n\r\n if (this.mask) {\r\n this._masked = createMask(opts);\r\n }\r\n }\r\n\r\n reset () {\r\n this.isHollow = false;\r\n if (this._masked) this._masked.reset();\r\n }\r\n\r\n get isInput () {\r\n return this.type === PatternDefinition.TYPES.INPUT;\r\n }\r\n\r\n get isHiddenHollow () {\r\n return this.isHollow && this.optional;\r\n }\r\n\r\n resolve (ch) {\r\n if (!this._masked) return false;\r\n // TODO seems strange\r\n this._masked.value = ch;\r\n return this._masked.value;\r\n }\r\n}\r\n\r\nPatternDefinition.DEFAULTS = {\r\n '0': /\\d/,\r\n 'a': /[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/, // http://stackoverflow.com/a/22075070\r\n '*': /./\r\n};\r\nPatternDefinition.TYPES = {\r\n INPUT: 'input',\r\n FIXED: 'fixed'\r\n};\r\n","export default\r\nclass PatternGroup {\r\n constructor(masked, {name, offset, mask, validate}) {\r\n this.masked = masked;\r\n this.name = name;\r\n this.offset = offset;\r\n this.mask = mask;\r\n this.validate = validate || (() => true);\r\n }\r\n\r\n get value () {\r\n return this.masked.value.slice(\r\n this.masked.mapDefIndexToPos(this.offset),\r\n this.masked.mapDefIndexToPos(this.offset + this.mask.length));\r\n }\r\n\r\n get unmaskedValue () {\r\n return this.masked.extractInput(\r\n this.masked.mapDefIndexToPos(this.offset),\r\n this.masked.mapDefIndexToPos(this.offset + this.mask.length));\r\n }\r\n\r\n _validate (soft) {\r\n return this.validate(this.value, this, soft);\r\n }\r\n}\r\n\r\nexport\r\nclass RangeGroup {\r\n constructor ([from, to], maxlen=(to+'').length) {\r\n this._from = from;\r\n this._to = to;\r\n this._maxLength = maxlen;\r\n this.validate = this.validate.bind(this);\r\n\r\n this._update();\r\n }\r\n\r\n get to () {\r\n return this._to;\r\n }\r\n\r\n set to (to) {\r\n this._to = to;\r\n this._update();\r\n }\r\n\r\n get from () {\r\n return this._from;\r\n }\r\n\r\n set from (from) {\r\n this._from = from;\r\n this._update();\r\n }\r\n\r\n get maxLength () {\r\n return this._maxLength;\r\n }\r\n\r\n set maxLength (maxLength) {\r\n this._maxLength = maxLength;\r\n this._update();\r\n }\r\n\r\n get _matchFrom () {\r\n return this.maxLength - (this.from + '').length;\r\n }\r\n\r\n _update() {\r\n this._maxLength = Math.max(this._maxLength, (this.to + '').length);\r\n this.mask = '0'.repeat(this._maxLength);\r\n }\r\n\r\n validate (str) {\r\n let minstr = '';\r\n let maxstr = '';\r\n\r\n const [, placeholder, num] = str.match(/^(\\D*)(\\d*)(\\D*)/);\r\n if (num) {\r\n minstr = ('0'.repeat(placeholder.length) + num);\r\n maxstr = ('9'.repeat(placeholder.length) + num);\r\n }\r\n\r\n const firstNonZero = str.search(/[^0]/);\r\n if (firstNonZero === -1 && str.length <= this._matchFrom) return true;\r\n\r\n minstr = minstr.padEnd(this._maxLength, '0');\r\n maxstr = maxstr.padEnd(this._maxLength, '9');\r\n\r\n return this.from <= Number(maxstr) && Number(minstr) <= this.to;\r\n }\r\n}\r\n\r\nexport\r\nfunction EnumGroup (enums) {\r\n return {\r\n mask: '*'.repeat(enums[0].length),\r\n validate: (value, group) => enums.some(e => e.indexOf(group.unmaskedValue) >= 0)\r\n };\r\n}\r\n\r\nPatternGroup.Range = RangeGroup;\r\nPatternGroup.Enum = EnumGroup;\r\n","import {conform, DIRECTION, indexInDirection, refreshValueOnSet} from '../core/utils';\r\nimport Masked from './base';\r\nimport PatternDefinition from './pattern/definition';\r\nimport PatternGroup from './pattern/group';\r\n\r\n\r\nexport default\r\nclass MaskedPattern extends Masked {\r\n constructor (opts={}) {\r\n const {definitions, placeholder, groups} = opts;\r\n super(opts);\r\n delete this.isInitialized;\r\n\r\n this.placeholder = placeholder;\r\n this.definitions = definitions;\r\n this.groups = groups;\r\n\r\n this.isInitialized = true;\r\n }\r\n\r\n get placeholder () {\r\n return this._placeholder;\r\n }\r\n\r\n @refreshValueOnSet\r\n set placeholder (ph) {\r\n this._placeholder = {\r\n ...MaskedPattern.DEFAULT_PLACEHOLDER,\r\n ...ph\r\n };\r\n }\r\n\r\n get definitions () {\r\n return this._definitions;\r\n }\r\n\r\n @refreshValueOnSet\r\n set definitions (defs) {\r\n defs = {\r\n ...PatternDefinition.DEFAULTS,\r\n ...defs\r\n };\r\n\r\n this._definitions = defs;\r\n this._updateMask();\r\n }\r\n\r\n get mask () {\r\n return this._mask;\r\n }\r\n\r\n @refreshValueOnSet\r\n set mask (mask) {\r\n this._mask = mask;\r\n this._updateMask();\r\n }\r\n\r\n _updateMask () {\r\n const defs = this._definitions;\r\n this._charDefs = [];\r\n this._groupDefs = [];\r\n\r\n let pattern = this.mask;\r\n if (!pattern || !defs) return;\r\n\r\n let unmaskingBlock = false;\r\n let optionalBlock = false;\r\n let stopAlign = false;\r\n\r\n\r\n for (let i=0; i p.indexOf(gName) === 0);\r\n // order by key length\r\n gNames.sort((a, b) => b.length - a.length);\r\n // use group name with max length\r\n const gName = gNames[0];\r\n if (gName) {\r\n const group = this._groups[gName];\r\n this._groupDefs.push(new PatternGroup(this, {\r\n name: gName,\r\n offset: this._charDefs.length,\r\n mask: group.mask,\r\n validate: group.validate\r\n }));\r\n pattern = pattern.replace(gName, group.mask);\r\n }\r\n }\r\n\r\n let char = pattern[i];\r\n let type = !unmaskingBlock && char in defs ?\r\n PatternDefinition.TYPES.INPUT :\r\n PatternDefinition.TYPES.FIXED;\r\n const unmasking = type === PatternDefinition.TYPES.INPUT || unmaskingBlock;\r\n const optional = type === PatternDefinition.TYPES.INPUT && optionalBlock;\r\n\r\n if (char === MaskedPattern.STOP_CHAR) {\r\n stopAlign = true;\r\n continue;\r\n }\r\n\r\n if (char === '{' || char === '}') {\r\n unmaskingBlock = !unmaskingBlock;\r\n continue;\r\n }\r\n\r\n if (char === '[' || char === ']') {\r\n optionalBlock = !optionalBlock;\r\n continue;\r\n }\r\n\r\n if (char === MaskedPattern.ESCAPE_CHAR) {\r\n ++i;\r\n char = pattern[i];\r\n // TODO validation\r\n if (!char) break;\r\n type = PatternDefinition.TYPES.FIXED;\r\n }\r\n\r\n this._charDefs.push(new PatternDefinition({\r\n char,\r\n type,\r\n optional,\r\n stopAlign,\r\n mask: unmasking &&\r\n (type === PatternDefinition.TYPES.INPUT ?\r\n defs[char] :\r\n (value => value === char))\r\n }));\r\n\r\n stopAlign = false;\r\n }\r\n }\r\n\r\n _validate (soft) {\r\n return this._groupDefs.every(g => g._validate(soft)) && super._validate(soft);\r\n }\r\n\r\n clone () {\r\n const m = new MaskedPattern(this);\r\n m._value = this.value;\r\n m._charDefs.forEach((d, i) => Object.assign(d, this._charDefs[i]));\r\n m._groupDefs.forEach((d, i) => Object.assign(d, this._groupDefs[i]));\r\n return m;\r\n }\r\n\r\n reset () {\r\n super.reset();\r\n this._charDefs.forEach(d => {delete d.isHollow;});\r\n }\r\n\r\n get isComplete () {\r\n return !this._charDefs.some((d, i) =>\r\n d.isInput && !d.optional && (d.isHollow || !this.extractInput(i, i+1)));\r\n }\r\n\r\n hiddenHollowsBefore (defIndex) {\r\n return this._charDefs\r\n .slice(0, defIndex)\r\n .filter(d => d.isHiddenHollow)\r\n .length;\r\n }\r\n\r\n mapDefIndexToPos (defIndex) {\r\n if (defIndex == null) return;\r\n return defIndex - this.hiddenHollowsBefore(defIndex);\r\n }\r\n\r\n mapPosToDefIndex (pos) {\r\n if (pos == null) return;\r\n let defIndex = pos;\r\n for (let di=0; di= defIndex) break;\r\n if (def.isHiddenHollow) ++defIndex;\r\n }\r\n return defIndex;\r\n }\r\n\r\n _unmask () {\r\n const str = this.value;\r\n let unmasked = '';\r\n\r\n for (let ci=0, di=0; ci [d, i])\r\n .slice(fromDefIndex, toDefIndex)\r\n .filter(([d]) => d.stopAlign)\r\n .map(([, i]) => i);\r\n\r\n const stops = [\r\n fromDefIndex,\r\n ...stopDefIndices,\r\n toDefIndex\r\n ];\r\n\r\n return stops.map((s, i) => [\r\n stopDefIndices.indexOf(s) >= 0 ?\r\n s :\r\n null,\r\n\r\n this.extractInput(\r\n this.mapDefIndexToPos(s),\r\n this.mapDefIndexToPos(stops[++i]))\r\n ]).filter(([stop, input]) => stop != null || input);\r\n }\r\n\r\n _appendPlaceholder (toDefIndex) {\r\n const maxDefIndex = toDefIndex || this._charDefs.length;\r\n for (let di=this.mapPosToDefIndex(this.value.length); di < maxDefIndex; ++di) {\r\n const def = this._charDefs[di];\r\n if (def.isInput) def.isHollow = true;\r\n\r\n if (!this.placeholder.lazy || toDefIndex) {\r\n this._value += !def.isInput ?\r\n def.char :\r\n !def.optional ?\r\n this.placeholder.char :\r\n '';\r\n }\r\n }\r\n }\r\n\r\n clear (from=0, to=this.value.length) {\r\n this._value = this.value.slice(0, from) + this.value.slice(to);\r\n const fromDefIndex = this.mapPosToDefIndex(from);\r\n const toDefIndex = this.mapPosToDefIndex(to);\r\n this._charDefs\r\n .slice(fromDefIndex, toDefIndex)\r\n .forEach(d => d.reset());\r\n }\r\n\r\n nearestInputPos (cursorPos, direction=DIRECTION.LEFT) {\r\n if (!direction) return cursorPos;\r\n\r\n const initialDefIndex = this.mapPosToDefIndex(cursorPos);\r\n let di = initialDefIndex;\r\n\r\n let firstInputIndex,\r\n firstFilledInputIndex,\r\n firstVisibleHollowIndex,\r\n nextdi;\r\n\r\n // search forward\r\n for (nextdi = indexInDirection(di, direction); 0 <= nextdi && nextdi < this._charDefs.length; di += direction, nextdi += direction) {\r\n const nextDef = this._charDefs[nextdi];\r\n if (firstInputIndex == null && nextDef.isInput) firstInputIndex = di;\r\n if (firstVisibleHollowIndex == null && nextDef.isHollow && !nextDef.isHiddenHollow) firstVisibleHollowIndex = di;\r\n if (nextDef.isInput && !nextDef.isHollow) {\r\n firstFilledInputIndex = di;\r\n break;\r\n }\r\n }\r\n\r\n if (direction === DIRECTION.LEFT || firstInputIndex == null) {\r\n // search backwards\r\n direction = -direction;\r\n let overflow = false;\r\n\r\n // find hollows only before initial pos\r\n for (nextdi = indexInDirection(di, direction);\r\n 0 <= nextdi && nextdi < this._charDefs.length;\r\n di += direction, nextdi += direction)\r\n {\r\n const nextDef = this._charDefs[nextdi];\r\n if (nextDef.isInput) {\r\n firstInputIndex = di;\r\n if (nextDef.isHollow && !nextDef.isHiddenHollow) break;\r\n }\r\n\r\n // if hollow not found before start position - set `overflow`\r\n // and try to find just any input\r\n if (di === initialDefIndex) overflow = true;\r\n\r\n // first input found\r\n if (overflow && firstInputIndex != null) break;\r\n }\r\n\r\n // process overflow\r\n overflow = overflow || nextdi >= this._charDefs.length;\r\n if (overflow && firstInputIndex != null) di = firstInputIndex;\r\n } else if (firstFilledInputIndex == null) {\r\n // adjust index if delete at right and filled input not found at right\r\n di = firstVisibleHollowIndex != null ?\r\n firstVisibleHollowIndex :\r\n firstInputIndex;\r\n }\r\n\r\n return this.mapDefIndexToPos(di);\r\n }\r\n\r\n get groups () { return this._groups; }\r\n\r\n @refreshValueOnSet\r\n set groups (groups) {\r\n this._groups = groups;\r\n this._updateMask();\r\n }\r\n\r\n group (name) {\r\n return this.groupsByName(name)[0];\r\n }\r\n\r\n groupsByName (name) {\r\n return this._groupDefs.filter(g => g.name === name);\r\n }\r\n}\r\n\r\nMaskedPattern.DEFAULT_PLACEHOLDER = {\r\n lazy: true,\r\n char: '_'\r\n};\r\nMaskedPattern.STOP_CHAR = '`';\r\nMaskedPattern.ESCAPE_CHAR = '\\\\';\r\nMaskedPattern.Definition = PatternDefinition;\r\nMaskedPattern.Group = PatternGroup;\r\n","import {refreshValueOnSet} from '../core/utils';\r\nimport MaskedPattern from './pattern';\r\nimport PatternGroup from './pattern/group';\r\n\r\n\r\nexport default\r\nclass MaskedDate extends MaskedPattern {\r\n constructor (opts={}) {\r\n const groups = opts.groups;\r\n opts = Object.assign({}, MaskedDate.DEFAULTS, opts);\r\n const {min, max, format, parse} = opts;\r\n\r\n opts.groups = Object.assign({}, MaskedDate.DEFAULTS.groups);\r\n if (opts.groups.Y) {\r\n // adjust year group\r\n if (min) opts.groups.Y.from = min.getFullYear();\r\n if (max) opts.groups.Y.to = max.getFullYear();\r\n }\r\n\r\n Object.assign(opts.groups, groups);\r\n\r\n super(opts);\r\n delete this.isInitialized;\r\n\r\n this.min = min;\r\n this.max = max;\r\n this.format = format;\r\n this.parse = parse;\r\n\r\n this.isInitialized = true;\r\n }\r\n\r\n _validate (soft) {\r\n const valid = super._validate(soft);\r\n const date = this.date;\r\n\r\n return valid &&\r\n (!this.isComplete ||\r\n this.isDateExist(this.value) && date &&\r\n (this.min == null || this.min <= date) &&\r\n (this.max == null || date <= this.max));\r\n }\r\n\r\n isDateExist (str) {\r\n return this.format(this.parse(str)) === str;\r\n }\r\n\r\n get date () {\r\n return this.isComplete ?\r\n this.parse(this.value) :\r\n null;\r\n }\r\n\r\n set date (date) {\r\n this.value = this.format(date);\r\n }\r\n\r\n get min () {\r\n return this._min;\r\n }\r\n\r\n @refreshValueOnSet\r\n set min (min) {\r\n this._min = min;\r\n }\r\n\r\n get max () {\r\n return this._max;\r\n }\r\n\r\n @refreshValueOnSet\r\n set max (max) {\r\n this._max = max;\r\n }\r\n}\r\nMaskedDate.DEFAULTS = {\r\n mask: 'd{.}`m{.}`Y',\r\n format: date => {\r\n const day = ('' + date.getDate()).padStart(2, '0');\r\n const month = ('' + (date.getMonth() + 1)).padStart(2, '0');\r\n const year = date.getFullYear();\r\n\r\n return [day, month, year].join('.');\r\n },\r\n parse: str => {\r\n const [day, month, year] = str.split('.');\r\n return new Date(year, month - 1, day);\r\n },\r\n groups: {\r\n d: new PatternGroup.Range([1, 31]),\r\n m: new PatternGroup.Range([1, 12]),\r\n Y: new PatternGroup.Range([1900, 9999]),\r\n },\r\n};\r\n","import {DIRECTION} from './utils';\r\n\r\n\r\nexport default\r\nclass ActionDetails {\r\n constructor (value, cursorPos, oldValue, oldSelection) {\r\n this.value = value;\r\n this.cursorPos = cursorPos;\r\n this.oldValue = oldValue;\r\n this.oldSelection = oldSelection;\r\n }\r\n\r\n get startChangePos () {\r\n return Math.min(this.cursorPos, this.oldSelection.start);\r\n }\r\n\r\n get insertedCount () {\r\n return this.cursorPos - this.startChangePos;\r\n }\r\n\r\n get inserted () {\r\n return this.value.substr(this.startChangePos, this.insertedCount);\r\n }\r\n\r\n get removedCount () {\r\n // Math.max for opposite operation\r\n return Math.max((this.oldSelection.end - this.startChangePos) ||\r\n // for Delete\r\n this.oldValue.length - this.value.length, 0);\r\n }\r\n\r\n get removed () {\r\n return this.oldValue.substr(this.startChangePos, this.removedCount);\r\n }\r\n\r\n get head () {\r\n return this.value.substring(0, this.startChangePos);\r\n }\r\n\r\n get tail () {\r\n this.value.substring(this.startChangePos + this.insertedCount);\r\n }\r\n\r\n get removeDirection () {\r\n return this.removedCount &&\r\n ((this.oldSelection.end === this.cursorPos || this.insertedCount) ?\r\n DIRECTION.RIGHT :\r\n DIRECTION.LEFT);\r\n }\r\n}\r\n","import ActionDetails from '../core/action-details';\r\nimport createMask from '../masked/factory';\r\n\r\n\r\nexport default\r\nclass InputMask {\r\n constructor (el, opts) {\r\n this.el = el;\r\n this.masked = createMask(opts);\r\n\r\n this._listeners = {};\r\n this._value = '';\r\n this._unmaskedValue = '';\r\n\r\n this._saveSelection = this._saveSelection.bind(this);\r\n this._onInput = this._onInput.bind(this);\r\n this._onChange = this._onChange.bind(this);\r\n this._onDrop = this._onDrop.bind(this);\r\n this._alignCursor = this._alignCursor.bind(this);\r\n this._alignCursorFriendly = this._alignCursorFriendly.bind(this);\r\n\r\n this.bindEvents();\r\n\r\n // refresh\r\n this.updateValue();\r\n this._onChange();\r\n }\r\n\r\n get mask () { return this.masked.mask; }\r\n set mask (mask) {\r\n if (typeof mask === typeof this.masked.mask) {\r\n this.masked.mask = mask;\r\n return;\r\n }\r\n\r\n const unmasked = this.masked ? this.masked.unmaskedValue : null;\r\n this.masked = createMask({mask});\r\n if (unmasked != null) this.masked.unmaskedValue = unmasked;\r\n }\r\n\r\n get value () {\r\n return this._value;\r\n }\r\n\r\n set value (str) {\r\n this.masked.value = str;\r\n this.updateControl();\r\n this._alignCursor();\r\n }\r\n\r\n get unmaskedValue () {\r\n return this._unmaskedValue;\r\n }\r\n\r\n set unmaskedValue (str) {\r\n this.masked.unmaskedValue = str;\r\n this.updateControl();\r\n this._alignCursor();\r\n }\r\n\r\n bindEvents () {\r\n this.el.addEventListener('keydown', this._saveSelection);\r\n this.el.addEventListener('input', this._onInput);\r\n this.el.addEventListener('drop', this._onDrop);\r\n this.el.addEventListener('click', this._alignCursorFriendly);\r\n this.el.addEventListener('change', this._onChange);\r\n }\r\n\r\n unbindEvents () {\r\n this.el.removeEventListener('keydown', this._saveSelection);\r\n this.el.removeEventListener('input', this._onInput);\r\n this.el.removeEventListener('drop', this._onDrop);\r\n this.el.removeEventListener('click', this._alignCursorFriendly);\r\n this.el.removeEventListener('change', this._onChange);\r\n }\r\n\r\n fireEvent (ev) {\r\n const listeners = this._listeners[ev] || [];\r\n listeners.forEach(l => l());\r\n }\r\n\r\n get selectionStart () {\r\n return this._cursorChanging ?\r\n this._changingCursorPos :\r\n\r\n this.el.selectionStart;\r\n }\r\n\r\n get cursorPos () {\r\n return this._cursorChanging ?\r\n this._changingCursorPos :\r\n\r\n this.el.selectionEnd;\r\n }\r\n\r\n set cursorPos (pos) {\r\n if (this.el !== document.activeElement) return;\r\n\r\n this.el.setSelectionRange(pos, pos);\r\n this._saveSelection();\r\n }\r\n\r\n _saveSelection (/* ev */) {\r\n if (this.value !== this.el.value) {\r\n console.warn('Uncontrolled input change, refresh mask manually!'); // eslint-disable-line no-console\r\n }\r\n this._selection = {\r\n start: this.selectionStart,\r\n end: this.cursorPos\r\n };\r\n }\r\n\r\n updateValue () {\r\n this.masked.value = this.el.value;\r\n }\r\n\r\n updateControl () {\r\n const newUnmaskedValue = this.masked.unmaskedValue;\r\n const newValue = this.masked.value;\r\n const isChanged = (this.unmaskedValue !== newUnmaskedValue ||\r\n this.value !== newValue);\r\n\r\n this._unmaskedValue = newUnmaskedValue;\r\n this._value = newValue;\r\n\r\n if (this.el.value !== newValue) this.el.value = newValue;\r\n if (isChanged) this._fireChangeEvents();\r\n }\r\n\r\n updateOptions (opts) {\r\n const mask = opts.mask;\r\n if (mask) this.mask = mask;\r\n\r\n this.masked.withValueRefresh(() => {\r\n for (const k in opts) {\r\n if (k === 'mask') continue;\r\n this.masked[k] = opts[k];\r\n }\r\n });\r\n\r\n this.updateControl();\r\n }\r\n\r\n updateCursor (cursorPos) {\r\n if (cursorPos == null) return;\r\n this.cursorPos = cursorPos;\r\n\r\n // also queue change cursor for mobile browsers\r\n this._delayUpdateCursor(cursorPos);\r\n }\r\n\r\n _delayUpdateCursor (cursorPos) {\r\n this._abortUpdateCursor();\r\n this._changingCursorPos = cursorPos;\r\n this._cursorChanging = setTimeout(() => {\r\n this.cursorPos = this._changingCursorPos;\r\n this._abortUpdateCursor();\r\n }, 10);\r\n }\r\n\r\n _fireChangeEvents () {\r\n this.fireEvent('accept');\r\n if (this.masked.isComplete) this.fireEvent('complete');\r\n }\r\n\r\n _abortUpdateCursor () {\r\n if (this._cursorChanging) {\r\n clearTimeout(this._cursorChanging);\r\n delete this._cursorChanging;\r\n }\r\n }\r\n\r\n _alignCursor () {\r\n this.cursorPos = this.masked.nearestInputPos(this.cursorPos);\r\n }\r\n\r\n _alignCursorFriendly () {\r\n if (this.selectionStart !== this.cursorPos) return;\r\n this._alignCursor();\r\n }\r\n\r\n on (ev, handler) {\r\n if (!this._listeners[ev]) this._listeners[ev] = [];\r\n this._listeners[ev].push(handler);\r\n return this;\r\n }\r\n\r\n off (ev, handler) {\r\n if (!this._listeners[ev]) return;\r\n if (!handler) {\r\n delete this._listeners[ev];\r\n return;\r\n }\r\n const hIndex = this._listeners[ev].indexOf(handler);\r\n if (hIndex >= 0) this._listeners.splice(hIndex, 1);\r\n return this;\r\n }\r\n\r\n _onInput () {\r\n this._abortUpdateCursor();\r\n\r\n const details = new ActionDetails(\r\n // new state\r\n this.el.value, this.cursorPos,\r\n // old state\r\n this.value, this._selection);\r\n\r\n const tailPos = details.startChangePos + details.removed.length;\r\n const tail = this.masked.extractTail(tailPos);\r\n\r\n const lastInputPos = this.masked.nearestInputPos(details.startChangePos, details.removeDirection);\r\n this.masked.clear(lastInputPos);\r\n const insertedCount = this.masked.appendWithTail(details.inserted, tail);\r\n\r\n\r\n const cursorPos = this.masked.nearestInputPos(\r\n lastInputPos + insertedCount,\r\n details.removeDirection);\r\n\r\n this.updateControl();\r\n this.updateCursor(cursorPos);\r\n }\r\n\r\n _onChange () {\r\n if (this.value !== this.el.value) {\r\n this.updateValue();\r\n }\r\n this.masked.commit();\r\n this.updateControl();\r\n }\r\n\r\n _onDrop (ev) {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n }\r\n\r\n destroy () {\r\n this.unbindEvents();\r\n this._listeners.length = 0;\r\n }\r\n}\r\n","import 'core-js/fn/array/find';\r\nimport 'core-js/fn/object/keys';\r\nimport 'core-js/fn/string/repeat';\r\nimport 'core-js/fn/string/pad-start';\r\nimport 'core-js/fn/string/pad-end';\r\n\r\n\r\nimport Masked from './masked/base';\r\nimport MaskedPattern from './masked/pattern';\r\nimport MaskedNumber from './masked/number';\r\nimport MaskedDate from './masked/date';\r\n\r\nimport InputMask from './controls/input';\r\n\r\n\r\nexport default\r\nfunction IMask (el, opts={}) {\r\n\t// currently available only for input elements\r\n return new InputMask(el, opts);\r\n}\r\n\r\n\r\nIMask.InputMask = InputMask;\r\n\r\nIMask.Masked = Masked;\r\nIMask.MaskedPattern = MaskedPattern;\r\nIMask.MaskedNumber = MaskedNumber;\r\nIMask.MaskedDate = MaskedDate;\r\n\r\nwindow.IMask = IMask;\r\n"],"names":["isObject","require$$0","document","require$$1","require$$2","anObject","toPrimitive","IE8_DOM_DEFINE","dP","createDesc","has","hide","global","aFunction","core","ctx","redefine","cof","defined","toInteger","uid","isArray","speciesConstructor","asc","toObject","IObject","toLength","$export","min","toIObject","toIndex","$keys","enumBugKeys","fails","repeat","$pad","isString","str","String","conform","res","fallback","DIRECTION","indexInDirection","pos","direction","LEFT","refreshValueOnSet","target","key","descriptor","method","set","args","withValueRefresh","bind","escapeRegExp","replace","Masked","mask","validate","_value","isInitialized","_validate","soft","value","clone","m","slice","reset","nearestInputPos","cursorPos","extractInput","fromPos","toPos","length","extractTail","_appendTail","tail","_append","oldValueLength","consistentValue","ci","appendWithTail","appendCount","consistentAppended","ch","appended","tailAppended","_unmask","clear","from","to","fn","_refreshing","unmasked","unmaskedValue","ret","commit","_mask","MaskedNumber","opts","babelHelpers.extends","DEFAULTS","scale","radix","mapToRadix","max","signed","thousandsSeparator","postFormat","_updateNumberRegExp","regExpStrSoft","regExpStr","_numberRegExpSoft","RegExp","_numberRegExp","_removeThousandsSeparators","_thousandsSeparatorRegExp","_insertThousandsSeparators","parts","split","join","_mapToRadixRegExp","removedSeparatorsCount","beforeTailPos","insertedSeparatorsBeforeTailCount","nextPos","regexp","valid","test","number","isNaN","validnum","Math","formatted","normalizeZeros","_normalizeZeros","padFractionalZeros","_padFractionalZeros","match","sign","zeros","num","push","padEnd","numstr","Number","_min","_max","_scale","_radix","_signed","_postFormat","_mapToRadix","map","_thousandsSeparator","createMask","IMask","MaskedPattern","prototype","Date","pattern","MaskedDate","Function","warn","PatternDefinition","_masked","isHollow","resolve","type","TYPES","INPUT","optional","PatternGroup","masked","name","offset","mapDefIndexToPos","RangeGroup","maxlen","_from","_to","_maxLength","_update","minstr","maxstr","placeholder","firstNonZero","search","_matchFrom","maxLength","EnumGroup","enums","group","some","e","indexOf","Range","Enum","definitions","groups","_updateMask","defs","_definitions","_charDefs","_groupDefs","unmaskingBlock","optionalBlock","stopAlign","_groups","p","i","gNames","Object","keys","filter","gName","sort","a","b","char","FIXED","unmasking","STOP_CHAR","ESCAPE_CHAR","every","g","forEach","d","hiddenHollowsBefore","defIndex","isHiddenHollow","mapPosToDefIndex","di","def","_appendChunks","_appendPlaceholder","resolved","skipped","chres","chunks","fromDefIndex","input","extractInputChunks","toDefIndex","isInput","stopDefIndices","stops","s","stop","maxDefIndex","lazy","initialDefIndex","firstInputIndex","firstFilledInputIndex","firstVisibleHollowIndex","nextdi","nextDef","overflow","groupsByName","_placeholder","ph","DEFAULT_PLACEHOLDER","Definition","Group","format","parse","Y","getFullYear","date","isComplete","isDateExist","day","getDate","padStart","month","getMonth","year","ActionDetails","oldValue","oldSelection","start","startChangePos","substr","insertedCount","end","removedCount","substring","RIGHT","InputMask","el","_listeners","_unmaskedValue","_saveSelection","_onInput","_onChange","_onDrop","_alignCursor","_alignCursorFriendly","bindEvents","updateValue","addEventListener","unbindEvents","removeEventListener","fireEvent","ev","listeners","l","_selection","selectionStart","updateControl","newUnmaskedValue","newValue","isChanged","_fireChangeEvents","updateOptions","k","updateCursor","_delayUpdateCursor","_abortUpdateCursor","_changingCursorPos","_cursorChanging","setTimeout","on","handler","off","hIndex","splice","details","tailPos","removed","lastInputPos","removeDirection","inserted","preventDefault","stopPropagation","destroy","selectionEnd","activeElement","setSelectionRange","window"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"imask.es.js","sources":["../node_modules/core-js/modules/_global.js","../node_modules/core-js/modules/_core.js","../node_modules/core-js/modules/_is-object.js","../node_modules/core-js/modules/_an-object.js","../node_modules/core-js/modules/_fails.js","../node_modules/core-js/modules/_descriptors.js","../node_modules/core-js/modules/_dom-create.js","../node_modules/core-js/modules/_ie8-dom-define.js","../node_modules/core-js/modules/_to-primitive.js","../node_modules/core-js/modules/_object-dp.js","../node_modules/core-js/modules/_property-desc.js","../node_modules/core-js/modules/_hide.js","../node_modules/core-js/modules/_has.js","../node_modules/core-js/modules/_uid.js","../node_modules/core-js/modules/_redefine.js","../node_modules/core-js/modules/_a-function.js","../node_modules/core-js/modules/_ctx.js","../node_modules/core-js/modules/_export.js","../node_modules/core-js/modules/_cof.js","../node_modules/core-js/modules/_iobject.js","../node_modules/core-js/modules/_defined.js","../node_modules/core-js/modules/_to-object.js","../node_modules/core-js/modules/_to-integer.js","../node_modules/core-js/modules/_to-length.js","../node_modules/core-js/modules/_is-array.js","../node_modules/core-js/modules/_shared.js","../node_modules/core-js/modules/_wks.js","../node_modules/core-js/modules/_array-species-constructor.js","../node_modules/core-js/modules/_array-species-create.js","../node_modules/core-js/modules/_array-methods.js","../node_modules/core-js/modules/_add-to-unscopables.js","../node_modules/core-js/modules/es6.array.find.js","../node_modules/core-js/modules/_to-iobject.js","../node_modules/core-js/modules/_to-index.js","../node_modules/core-js/modules/_array-includes.js","../node_modules/core-js/modules/_shared-key.js","../node_modules/core-js/modules/_object-keys-internal.js","../node_modules/core-js/modules/_enum-bug-keys.js","../node_modules/core-js/modules/_object-keys.js","../node_modules/core-js/modules/_object-sap.js","../node_modules/core-js/modules/es6.object.keys.js","../node_modules/core-js/modules/_string-repeat.js","../node_modules/core-js/modules/es6.string.repeat.js","../node_modules/core-js/modules/_string-pad.js","../node_modules/core-js/modules/es7.string.pad-start.js","../node_modules/core-js/modules/es7.string.pad-end.js","../src/core/utils.js","../src/masked/base.js","../src/masked/number.js","../src/masked/factory.js","../src/masked/pattern/definition.js","../src/masked/pattern/group.js","../src/masked/pattern.js","../src/masked/date.js","../src/core/action-details.js","../src/controls/input.js","../src/imask.js"],"sourcesContent":["// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef","var core = module.exports = {version: '2.4.0'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};","var isObject = require('./_is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});","var isObject = require('./_is-object')\n , document = require('./_global').document\n // in old IE typeof document.createElement is 'object'\n , is = isObject(document) && isObject(document.createElement);\nmodule.exports = function(it){\n return is ? document.createElement(it) : {};\n};","module.exports = !require('./_descriptors') && !require('./_fails')(function(){\n return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;\n});","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function(it, S){\n if(!isObject(it))return it;\n var fn, val;\n if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;\n if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};","var anObject = require('./_an-object')\n , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n , toPrimitive = require('./_to-primitive')\n , dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if(IE8_DOM_DEFINE)try {\n return dP(O, P, Attributes);\n } catch(e){ /* empty */ }\n if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');\n if('value' in Attributes)O[P] = Attributes.value;\n return O;\n};","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};","var dP = require('./_object-dp')\n , createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function(object, key, value){\n return dP.f(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};","var id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};","var global = require('./_global')\n , hide = require('./_hide')\n , has = require('./_has')\n , SRC = require('./_uid')('src')\n , TO_STRING = 'toString'\n , $toString = Function[TO_STRING]\n , TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function(it){\n return $toString.call(it);\n};\n\n(module.exports = function(O, key, val, safe){\n var isFunction = typeof val == 'function';\n if(isFunction)has(val, 'name') || hide(val, 'name', key);\n if(O[key] === val)return;\n if(isFunction)has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if(O === global){\n O[key] = val;\n } else {\n if(!safe){\n delete O[key];\n hide(O, key, val);\n } else {\n if(O[key])O[key] = val;\n else hide(O, key, val);\n }\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString(){\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};","var global = require('./_global')\n , core = require('./_core')\n , hide = require('./_hide')\n , redefine = require('./_redefine')\n , ctx = require('./_ctx')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {})\n , key, own, out, exp;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if(target)redefine(target, key, out, type & $export.U);\n // export\n if(exports[key] != out)hide(exports, key, exp);\n if(IS_PROTO && expProto[key] != out)expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library` \nmodule.exports = $export;","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n return it;\n};","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function(it){\n return Object(defined(it));\n};","// 7.1.4 ToInteger\nvar ceil = Math.ceil\n , floor = Math.floor;\nmodule.exports = function(it){\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer')\n , min = Math.min;\nmodule.exports = function(it){\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};","var global = require('./_global')\n , SHARED = '__core-js_shared__'\n , store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n return store[key] || (store[key] = {});\n};","var store = require('./_shared')('wks')\n , uid = require('./_uid')\n , Symbol = require('./_global').Symbol\n , USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function(name){\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;","var isObject = require('./_is-object')\n , isArray = require('./_is-array')\n , SPECIES = require('./_wks')('species');\n\nmodule.exports = function(original){\n var C;\n if(isArray(original)){\n C = original.constructor;\n // cross-realm fallback\n if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;\n if(isObject(C)){\n C = C[SPECIES];\n if(C === null)C = undefined;\n }\n } return C === undefined ? Array : C;\n};","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function(original, length){\n return new (speciesConstructor(original))(length);\n};","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx')\n , IObject = require('./_iobject')\n , toObject = require('./_to-object')\n , toLength = require('./_to-length')\n , asc = require('./_array-species-create');\nmodule.exports = function(TYPE, $create){\n var IS_MAP = TYPE == 1\n , IS_FILTER = TYPE == 2\n , IS_SOME = TYPE == 3\n , IS_EVERY = TYPE == 4\n , IS_FIND_INDEX = TYPE == 6\n , NO_HOLES = TYPE == 5 || IS_FIND_INDEX\n , create = $create || asc;\n return function($this, callbackfn, that){\n var O = toObject($this)\n , self = IObject(O)\n , f = ctx(callbackfn, that, 3)\n , length = toLength(self.length)\n , index = 0\n , result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined\n , val, res;\n for(;length > index; index++)if(NO_HOLES || index in self){\n val = self[index];\n res = f(val, index, O);\n if(TYPE){\n if(IS_MAP)result[index] = res; // map\n else if(res)switch(TYPE){\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if(IS_EVERY)return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables')\n , ArrayProto = Array.prototype;\nif(ArrayProto[UNSCOPABLES] == undefined)require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function(key){\n ArrayProto[UNSCOPABLES][key] = true;\n};","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export')\n , $find = require('./_array-methods')(5)\n , KEY = 'find'\n , forced = true;\n// Shouldn't skip holes\nif(KEY in [])Array(1)[KEY](function(){ forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn/*, that = undefined */){\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject')\n , defined = require('./_defined');\nmodule.exports = function(it){\n return IObject(defined(it));\n};","var toInteger = require('./_to-integer')\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};","var shared = require('./_shared')('keys')\n , uid = require('./_uid');\nmodule.exports = function(key){\n return shared[key] || (shared[key] = uid(key));\n};","var has = require('./_has')\n , toIObject = require('./_to-iobject')\n , arrayIndexOf = require('./_array-includes')(false)\n , IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function(object, names){\n var O = toIObject(object)\n , i = 0\n , result = []\n , key;\n for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while(names.length > i)if(has(O, key = names[i++])){\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal')\n , enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O){\n return $keys(O, enumBugKeys);\n};","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export')\n , core = require('./_core')\n , fails = require('./_fails');\nmodule.exports = function(KEY, exec){\n var fn = (core.Object || {})[KEY] || Object[KEY]\n , exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object')\n , $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});","'use strict';\nvar toInteger = require('./_to-integer')\n , defined = require('./_defined');\n\nmodule.exports = function repeat(count){\n var str = String(defined(this))\n , res = ''\n , n = toInteger(count);\n if(n < 0 || n == Infinity)throw RangeError(\"Count can't be negative\");\n for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str;\n return res;\n};","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('./_to-length')\n , repeat = require('./_string-repeat')\n , defined = require('./_defined');\n\nmodule.exports = function(that, maxLength, fillString, left){\n var S = String(defined(that))\n , stringLength = S.length\n , fillStr = fillString === undefined ? ' ' : String(fillString)\n , intMaxLength = toLength(maxLength);\n if(intMaxLength <= stringLength || fillStr == '')return S;\n var fillLen = intMaxLength - stringLength\n , stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));\n if(stringFiller.length > fillLen)stringFiller = stringFiller.slice(0, fillLen);\n return left ? stringFiller + S : S + stringFiller;\n};\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export')\n , $pad = require('./_string-pad');\n\n$export($export.P, 'String', {\n padStart: function padStart(maxLength /*, fillString = ' ' */){\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n }\n});","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export')\n , $pad = require('./_string-pad');\n\n$export($export.P, 'String', {\n padEnd: function padEnd(maxLength /*, fillString = ' ' */){\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n }\n});","export\r\nfunction isString (str) {\r\n return typeof str === 'string' || str instanceof String;\r\n}\r\n\r\nexport\r\nfunction conform (res, str, fallback='') {\r\n return isString(res) ?\r\n res :\r\n res ?\r\n str :\r\n fallback;\r\n}\r\n\r\nexport\r\nconst DIRECTION = {\r\n NONE: 0,\r\n LEFT: -1,\r\n RIGHT: 1\r\n}\r\n\r\nexport\r\nfunction indexInDirection (pos, direction) {\r\n if (direction === DIRECTION.LEFT) --pos;\r\n return pos;\r\n}\r\n\r\nexport\r\nfunction refreshValueOnSet (target, key, descriptor) {\r\n const method = descriptor.set;\r\n descriptor.set = function (...args) {\r\n return this.withValueRefresh(method.bind(this, ...args));\r\n };\r\n}\r\n\r\nexport\r\nfunction escapeRegExp (str) {\r\n return str.replace(/([.*+?^=!:${}()|\\[\\]\\/\\\\])/g, '\\\\$1');\r\n}\r\n","import {refreshValueOnSet} from '../core/utils';\r\n\r\n\r\nexport default\r\nclass Masked {\r\n constructor ({\r\n mask,\r\n prepare=((val) => val),\r\n validate=(() => true),\r\n commit=(() => {}),\r\n }) {\r\n this._value = '';\r\n this.mask = mask;\r\n this.prepare = prepare;\r\n this.validate = validate;\r\n this.commit = commit;\r\n this.isInitialized = true;\r\n }\r\n\r\n get mask () {\r\n return this._mask;\r\n }\r\n\r\n @refreshValueOnSet\r\n set mask (mask) {\r\n this._mask = mask;\r\n }\r\n\r\n get prepare () {\r\n return this._prepare;\r\n }\r\n\r\n @refreshValueOnSet\r\n set prepare (prepare) {\r\n this._prepare = prepare;\r\n }\r\n\r\n get validate () {\r\n return this._validate;\r\n }\r\n\r\n @refreshValueOnSet\r\n set validate (validate) {\r\n this._validate = validate;\r\n }\r\n\r\n get commit () {\r\n return this._commit;\r\n }\r\n\r\n @refreshValueOnSet\r\n set commit (commit) {\r\n this._commit = commit;\r\n }\r\n\r\n clone () {\r\n const m = new Masked(this);\r\n m._value = this.value.slice();\r\n return m;\r\n }\r\n\r\n reset () {\r\n this._value = '';\r\n }\r\n\r\n get value () {\r\n return this._value;\r\n }\r\n\r\n set value (value) {\r\n this.reset();\r\n this.appendWithTail(value);\r\n this.doCommit();\r\n }\r\n\r\n get unmaskedValue () {\r\n return this._unmask();\r\n }\r\n\r\n set unmaskedValue (value) {\r\n this.reset();\r\n this._append(value);\r\n this.appendWithTail(\"\");\r\n this.doCommit();\r\n }\r\n\r\n get isComplete () {\r\n return true;\r\n }\r\n\r\n nearestInputPos (cursorPos, /* direction */) {\r\n return cursorPos;\r\n }\r\n\r\n extractInput (fromPos=0, toPos=this.value.length) {\r\n return this.value.slice(fromPos, toPos);\r\n }\r\n\r\n extractTail (fromPos=0, toPos=this.value.length) {\r\n return this.extractInput(fromPos, toPos);\r\n }\r\n\r\n _appendTail (tail) {\r\n return !tail || this._append(tail);\r\n }\r\n\r\n _append (str, soft) {\r\n const oldValueLength = this.value.length;\r\n let consistentValue = this.clone();\r\n\r\n str = this.doPrepare(str, soft);\r\n for (let ci=0; ci outputRaw\r\n\r\n // TODO\r\n // insert (str, fromPos, soft)\r\n\r\n // splice (start, deleteCount, inserted, removeDirection) {\r\n // const tailPos = start + deleteCount;\r\n // const tail = this.extractTail(tailPos);\r\n\r\n // start = this.nearestInputPos(start, removeDirection);\r\n // this.clear(start);\r\n // return this.appendWithTail(inserted, tail);\r\n // }\r\n}\r\n","import {escapeRegExp, refreshValueOnSet, DIRECTION, indexInDirection} from '../core/utils';\r\nimport Masked from './base';\r\n\r\n\r\nexport default\r\nclass MaskedNumber extends Masked {\r\n constructor (opts={}) {\r\n opts = Object.assign({}, MaskedNumber.DEFAULTS, opts);\r\n super(opts);\r\n delete this.isInitialized;\r\n\r\n const {scale, radix, mapToRadix, min, max, signed, thousandsSeparator, postFormat} = opts;\r\n\r\n this.min = min;\r\n this.max = max;\r\n this.scale = scale;\r\n this.radix = radix;\r\n this.mapToRadix = mapToRadix;\r\n this.signed = signed;\r\n this.thousandsSeparator = thousandsSeparator;\r\n this.postFormat = postFormat;\r\n\r\n this._updateNumberRegExp();\r\n\r\n this.isInitialized = true;\r\n }\r\n\r\n _updateNumberRegExp () {\r\n // TODO refactor?\r\n let regExpStrSoft = '^';\r\n let regExpStr = '^';\r\n\r\n if (this.signed) {\r\n regExpStrSoft += '([+|\\\\-]?|([+|\\\\-]?(0|([1-9]+\\\\d*))))';\r\n regExpStr += '[+|\\\\-]?';\r\n } else {\r\n regExpStrSoft += '(0|([1-9]+\\\\d*))';\r\n }\r\n regExpStr += '\\\\d*';\r\n\r\n if (this.scale) {\r\n regExpStrSoft += '(' + this.radix + '\\\\d{0,' + this.scale + '})?';\r\n regExpStr += '(' + this.radix + '\\\\d{0,' + this.scale + '})?';\r\n }\r\n\r\n regExpStrSoft += '$';\r\n regExpStr += '$';\r\n\r\n this._numberRegExpSoft = new RegExp(regExpStrSoft);\r\n this._numberRegExp = new RegExp(regExpStr)\r\n }\r\n\r\n extractTail (fromPos=0, toPos=this.value.length) {\r\n return this._removeThousandsSeparators(super.extractTail(fromPos, toPos));\r\n }\r\n\r\n _removeThousandsSeparators (value) {\r\n return value.replace(this._thousandsSeparatorRegExp, '');\r\n }\r\n\r\n _insertThousandsSeparators (value) {\r\n // https://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript\r\n const parts = value.split(this.radix);\r\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, this.thousandsSeparator);\r\n return parts.join(this.radix);\r\n }\r\n\r\n doPrepare (str, soft) {\r\n return super.doPrepare(this._removeThousandsSeparators(str.replace(this._mapToRadixRegExp, this.radix)), soft);\r\n }\r\n\r\n appendWithTail (str, tail) {\r\n const oldValueLength = this.value.length;\r\n this._value = this._removeThousandsSeparators(this.value);\r\n let removedSeparatorsCount = oldValueLength - this.value.length;\r\n\r\n\r\n const appended = super.appendWithTail(str, tail);\r\n\r\n\r\n this._value = this._insertThousandsSeparators(this.value);\r\n\r\n let beforeTailPos = oldValueLength + appended - removedSeparatorsCount;\r\n this._value = this._insertThousandsSeparators(this.value);\r\n let insertedSeparatorsBeforeTailCount = 0;\r\n for (let pos = 0; pos <= beforeTailPos; ++pos) {\r\n if (this.value[pos] === this.thousandsSeparator) {\r\n ++insertedSeparatorsBeforeTailCount;\r\n ++beforeTailPos;\r\n }\r\n }\r\n\r\n return appended - removedSeparatorsCount + insertedSeparatorsBeforeTailCount;\r\n }\r\n\r\n nearestInputPos (cursorPos, direction=DIRECTION.LEFT) {\r\n if (!direction) return cursorPos;\r\n\r\n const nextPos = indexInDirection(cursorPos, direction);\r\n if (this.value[nextPos] === this.thousandsSeparator) cursorPos += direction;\r\n return cursorPos;\r\n }\r\n\r\n doValidate (soft) {\r\n const regexp = soft ? this._numberRegExpSoft : this._numberRegExp;\r\n\r\n // validate as string\r\n let valid = regexp.test(this._removeThousandsSeparators(this.value));\r\n\r\n if (valid) {\r\n // validate as number\r\n const number = this.number;\r\n valid = valid && !isNaN(number) &&\r\n // check min bound for negative values\r\n (this.min == null || this.min >= 0 || this.min <= this.number) &&\r\n // check max bound for positive values\r\n (this.max == null || this.max <= 0 || this.number <= this.max);\r\n }\r\n\r\n return valid && super.doValidate(soft);\r\n }\r\n\r\n doCommit () {\r\n const number = this.number;\r\n let validnum = number;\r\n\r\n // check bounds\r\n if (this.min != null) validnum = Math.max(validnum, this.min);\r\n if (this.max != null) validnum = Math.min(validnum, this.max);\r\n\r\n if (validnum !== number) {\r\n this.unmaskedValue = '' + validnum;\r\n }\r\n\r\n let formatted = this.value;\r\n\r\n if (this.postFormat.normalizeZeros) {\r\n formatted = this._normalizeZeros(formatted);\r\n }\r\n\r\n if (this.postFormat.padFractionalZeros) {\r\n formatted = this._padFractionalZeros(formatted);\r\n }\r\n\r\n this._value = formatted;\r\n super.doCommit();\r\n }\r\n\r\n _normalizeZeros (value) {\r\n const parts = this._removeThousandsSeparators(value).split(this.radix);\r\n\r\n // remove leading zeros\r\n parts[0] = parts[0].replace(/^(\\D*)(0*)(\\d*)/, (match, sign, zeros, num) => sign + num);\r\n // add leading zero\r\n if (value.length && !/\\d$/.test(parts[0])) parts[0] = parts[0] + '0';\r\n\r\n if (parts.length > 1) {\r\n parts[1] = parts[1].replace(/0*$/, ''); // remove trailing zeros\r\n if (!parts[1].length) parts.length = 1; // remove fractional\r\n }\r\n\r\n return this._insertThousandsSeparators(parts.join(this.radix));\r\n }\r\n\r\n _padFractionalZeros (value) {\r\n const parts = value.split(this.radix);\r\n if (parts.length < 2) parts.push('');\r\n parts[1] = parts[1].padEnd(this.scale, '0');\r\n return parts.join(this.radix);\r\n }\r\n\r\n get number () {\r\n let numstr =\r\n this._removeThousandsSeparators(\r\n this._normalizeZeros(\r\n this.unmaskedValue))\r\n .replace(this.radix, '.');\r\n\r\n return Number(numstr);\r\n }\r\n\r\n set number (number) {\r\n this.unmaskedValue = '' + number;\r\n }\r\n\r\n get min () {\r\n return this._min;\r\n }\r\n\r\n @refreshValueOnSet\r\n set min (min) {\r\n this._min = min;\r\n }\r\n\r\n get max () {\r\n return this._max;\r\n }\r\n\r\n @refreshValueOnSet\r\n set max (max) {\r\n this._max = max;\r\n }\r\n\r\n get scale () {\r\n return this._scale;\r\n }\r\n\r\n @refreshValueOnSet\r\n set scale (scale) {\r\n this._scale = scale;\r\n }\r\n\r\n get radix () {\r\n return this._radix;\r\n }\r\n\r\n @refreshValueOnSet\r\n set radix (radix) {\r\n this._radix = radix;\r\n this._updateNumberRegExp();\r\n }\r\n\r\n get signed () {\r\n return this._signed || (this.min != null && this.min < 0) || (this.max != null && this.max < 0);\r\n }\r\n\r\n @refreshValueOnSet\r\n set signed (signed) {\r\n this._signed = signed;\r\n }\r\n\r\n get postFormat () {\r\n return this._postFormat;\r\n }\r\n\r\n @refreshValueOnSet\r\n set postFormat (postFormat) {\r\n this._postFormat = {\r\n ...MaskedNumber.DEFAULTS.postFormat,\r\n ...postFormat\r\n };\r\n }\r\n\r\n get mapToRadix () {\r\n return this._mapToRadix;\r\n }\r\n\r\n @refreshValueOnSet\r\n set mapToRadix (mapToRadix) {\r\n this._mapToRadix = mapToRadix;\r\n this._mapToRadixRegExp = new RegExp('[' +\r\n mapToRadix.map(escapeRegExp).join('') +\r\n ']', 'g');\r\n }\r\n\r\n get thousandsSeparator () {\r\n return this._thousandsSeparator;\r\n }\r\n\r\n @refreshValueOnSet\r\n set thousandsSeparator (thousandsSeparator) {\r\n this._thousandsSeparator = thousandsSeparator;\r\n this._thousandsSeparatorRegExp = new RegExp(escapeRegExp(thousandsSeparator), 'g');\r\n }\r\n}\r\nMaskedNumber.DEFAULTS = {\r\n radix: ',',\r\n thousandsSeparator: '',\r\n mapToRadix: ['.'],\r\n scale: 2,\r\n postFormat: {\r\n normalizeZeros: true,\r\n }\r\n};\r\n","import {isString} from '../core/utils';\r\nimport Masked from './base';\r\nimport MaskedNumber from './number';\r\n\r\n\r\nexport default\r\nfunction createMask (opts) {\r\n opts = Object.assign({}, opts); // clone\r\n\r\n const mask = opts.mask;\r\n\r\n if (mask instanceof Masked) {\r\n return mask;\r\n }\r\n if (mask instanceof RegExp) {\r\n opts.validate = (value) => mask.test(value);\r\n return new Masked(opts);\r\n }\r\n if (isString(mask)) {\r\n return new IMask.MaskedPattern(opts);\r\n }\r\n if (mask.prototype instanceof Masked) {\r\n delete opts.mask;\r\n return new mask(opts);\r\n }\r\n if (mask instanceof Number || typeof mask === 'number' || mask === Number) {\r\n delete opts.mask;\r\n return new MaskedNumber(opts);\r\n }\r\n if (mask instanceof Date || mask === Date) {\r\n delete opts.mask;\r\n if (opts.pattern) {\r\n opts.mask = opts.pattern;\r\n delete opts.pattern;\r\n }\r\n return new IMask.MaskedDate(opts);\r\n }\r\n if (mask instanceof Function){\r\n opts.validate = mask;\r\n return new Masked(opts);\r\n }\r\n\r\n console.warn('Mask not found for', opts); // eslint-disable-line no-console\r\n return new Masked(opts);\r\n}\r\n","import createMask from '../factory';\r\n\r\n\r\nexport default\r\nclass PatternDefinition {\r\n constructor(opts) {\r\n Object.assign(this, opts);\r\n\r\n if (this.mask) {\r\n this._masked = createMask(opts);\r\n }\r\n }\r\n\r\n reset () {\r\n this.isHollow = false;\r\n if (this._masked) this._masked.reset();\r\n }\r\n\r\n get isInput () {\r\n return this.type === PatternDefinition.TYPES.INPUT;\r\n }\r\n\r\n get isHiddenHollow () {\r\n return this.isHollow && this.optional;\r\n }\r\n\r\n resolve (ch) {\r\n if (!this._masked) return false;\r\n // TODO seems strange\r\n this._masked.value = ch;\r\n return this._masked.value;\r\n }\r\n}\r\n\r\nPatternDefinition.DEFAULTS = {\r\n '0': /\\d/,\r\n 'a': /[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/, // http://stackoverflow.com/a/22075070\r\n '*': /./\r\n};\r\nPatternDefinition.TYPES = {\r\n INPUT: 'input',\r\n FIXED: 'fixed'\r\n};\r\n","export default\r\nclass PatternGroup {\r\n constructor(masked, {name, offset, mask, validate}) {\r\n this.masked = masked;\r\n this.name = name;\r\n this.offset = offset;\r\n this.mask = mask;\r\n this.validate = validate || (() => true);\r\n }\r\n\r\n get value () {\r\n return this.masked.value.slice(\r\n this.masked.mapDefIndexToPos(this.offset),\r\n this.masked.mapDefIndexToPos(this.offset + this.mask.length));\r\n }\r\n\r\n get unmaskedValue () {\r\n return this.masked.extractInput(\r\n this.masked.mapDefIndexToPos(this.offset),\r\n this.masked.mapDefIndexToPos(this.offset + this.mask.length));\r\n }\r\n\r\n doValidate (soft) {\r\n return this.validate(this.value, this, soft);\r\n }\r\n}\r\n\r\nexport\r\nclass RangeGroup {\r\n constructor ([from, to], maxlen=(to+'').length) {\r\n this._from = from;\r\n this._to = to;\r\n this._maxLength = maxlen;\r\n this.validate = this.validate.bind(this);\r\n\r\n this._update();\r\n }\r\n\r\n get to () {\r\n return this._to;\r\n }\r\n\r\n set to (to) {\r\n this._to = to;\r\n this._update();\r\n }\r\n\r\n get from () {\r\n return this._from;\r\n }\r\n\r\n set from (from) {\r\n this._from = from;\r\n this._update();\r\n }\r\n\r\n get maxLength () {\r\n return this._maxLength;\r\n }\r\n\r\n set maxLength (maxLength) {\r\n this._maxLength = maxLength;\r\n this._update();\r\n }\r\n\r\n get _matchFrom () {\r\n return this.maxLength - (this.from + '').length;\r\n }\r\n\r\n _update() {\r\n this._maxLength = Math.max(this._maxLength, (this.to + '').length);\r\n this.mask = '0'.repeat(this._maxLength);\r\n }\r\n\r\n validate (str) {\r\n let minstr = '';\r\n let maxstr = '';\r\n\r\n const [, placeholder, num] = str.match(/^(\\D*)(\\d*)(\\D*)/);\r\n if (num) {\r\n minstr = ('0'.repeat(placeholder.length) + num);\r\n maxstr = ('9'.repeat(placeholder.length) + num);\r\n }\r\n\r\n const firstNonZero = str.search(/[^0]/);\r\n if (firstNonZero === -1 && str.length <= this._matchFrom) return true;\r\n\r\n minstr = minstr.padEnd(this._maxLength, '0');\r\n maxstr = maxstr.padEnd(this._maxLength, '9');\r\n\r\n return this.from <= Number(maxstr) && Number(minstr) <= this.to;\r\n }\r\n}\r\n\r\nexport\r\nfunction EnumGroup (enums) {\r\n return {\r\n mask: '*'.repeat(enums[0].length),\r\n validate: (value, group) => enums.some(e => e.indexOf(group.unmaskedValue) >= 0)\r\n };\r\n}\r\n\r\nPatternGroup.Range = RangeGroup;\r\nPatternGroup.Enum = EnumGroup;\r\n","import {conform, DIRECTION, indexInDirection, refreshValueOnSet} from '../core/utils';\r\nimport Masked from './base';\r\nimport PatternDefinition from './pattern/definition';\r\nimport PatternGroup from './pattern/group';\r\n\r\n\r\nexport default\r\nclass MaskedPattern extends Masked {\r\n constructor (opts={}) {\r\n const {definitions, placeholder, groups} = opts;\r\n super(opts);\r\n delete this.isInitialized;\r\n\r\n this.placeholder = placeholder;\r\n this.definitions = definitions;\r\n this.groups = groups;\r\n\r\n this.isInitialized = true;\r\n }\r\n\r\n get placeholder () {\r\n return this._placeholder;\r\n }\r\n\r\n @refreshValueOnSet\r\n set placeholder (ph) {\r\n this._placeholder = {\r\n ...MaskedPattern.DEFAULT_PLACEHOLDER,\r\n ...ph\r\n };\r\n }\r\n\r\n get definitions () {\r\n return this._definitions;\r\n }\r\n\r\n @refreshValueOnSet\r\n set definitions (defs) {\r\n defs = {\r\n ...PatternDefinition.DEFAULTS,\r\n ...defs\r\n };\r\n\r\n this._definitions = defs;\r\n this._updateMask();\r\n }\r\n\r\n get mask () {\r\n return this._mask;\r\n }\r\n\r\n @refreshValueOnSet\r\n set mask (mask) {\r\n this._mask = mask;\r\n this._updateMask();\r\n }\r\n\r\n _updateMask () {\r\n const defs = this._definitions;\r\n this._charDefs = [];\r\n this._groupDefs = [];\r\n\r\n let pattern = this.mask;\r\n if (!pattern || !defs) return;\r\n\r\n let unmaskingBlock = false;\r\n let optionalBlock = false;\r\n let stopAlign = false;\r\n\r\n\r\n for (let i=0; i p.indexOf(gName) === 0);\r\n // order by key length\r\n gNames.sort((a, b) => b.length - a.length);\r\n // use group name with max length\r\n const gName = gNames[0];\r\n if (gName) {\r\n const group = this._groups[gName];\r\n this._groupDefs.push(new PatternGroup(this, {\r\n name: gName,\r\n offset: this._charDefs.length,\r\n mask: group.mask,\r\n validate: group.validate\r\n }));\r\n pattern = pattern.replace(gName, group.mask);\r\n }\r\n }\r\n\r\n let char = pattern[i];\r\n let type = !unmaskingBlock && char in defs ?\r\n PatternDefinition.TYPES.INPUT :\r\n PatternDefinition.TYPES.FIXED;\r\n const unmasking = type === PatternDefinition.TYPES.INPUT || unmaskingBlock;\r\n const optional = type === PatternDefinition.TYPES.INPUT && optionalBlock;\r\n\r\n if (char === MaskedPattern.STOP_CHAR) {\r\n stopAlign = true;\r\n continue;\r\n }\r\n\r\n if (char === '{' || char === '}') {\r\n unmaskingBlock = !unmaskingBlock;\r\n continue;\r\n }\r\n\r\n if (char === '[' || char === ']') {\r\n optionalBlock = !optionalBlock;\r\n continue;\r\n }\r\n\r\n if (char === MaskedPattern.ESCAPE_CHAR) {\r\n ++i;\r\n char = pattern[i];\r\n // TODO validation\r\n if (!char) break;\r\n type = PatternDefinition.TYPES.FIXED;\r\n }\r\n\r\n this._charDefs.push(new PatternDefinition({\r\n char,\r\n type,\r\n optional,\r\n stopAlign,\r\n mask: unmasking &&\r\n (type === PatternDefinition.TYPES.INPUT ?\r\n defs[char] :\r\n (value => value === char))\r\n }));\r\n\r\n stopAlign = false;\r\n }\r\n }\r\n\r\n doValidate (soft) {\r\n return this._groupDefs.every(g => g.doValidate(soft)) && super.doValidate(soft);\r\n }\r\n\r\n clone () {\r\n const m = new MaskedPattern(this);\r\n m._value = this.value;\r\n m._charDefs.forEach((d, i) => Object.assign(d, this._charDefs[i]));\r\n m._groupDefs.forEach((d, i) => Object.assign(d, this._groupDefs[i]));\r\n return m;\r\n }\r\n\r\n reset () {\r\n super.reset();\r\n this._charDefs.forEach(d => {delete d.isHollow;});\r\n }\r\n\r\n get isComplete () {\r\n return !this._charDefs.some((d, i) =>\r\n d.isInput && !d.optional && (d.isHollow || !this.extractInput(i, i+1)));\r\n }\r\n\r\n hiddenHollowsBefore (defIndex) {\r\n return this._charDefs\r\n .slice(0, defIndex)\r\n .filter(d => d.isHiddenHollow)\r\n .length;\r\n }\r\n\r\n mapDefIndexToPos (defIndex) {\r\n if (defIndex == null) return;\r\n return defIndex - this.hiddenHollowsBefore(defIndex);\r\n }\r\n\r\n mapPosToDefIndex (pos) {\r\n if (pos == null) return;\r\n let defIndex = pos;\r\n for (let di=0; di= defIndex) break;\r\n if (def.isHiddenHollow) ++defIndex;\r\n }\r\n return defIndex;\r\n }\r\n\r\n _unmask () {\r\n const str = this.value;\r\n let unmasked = '';\r\n\r\n for (let ci=0, di=0; ci [d, i])\r\n .slice(fromDefIndex, toDefIndex)\r\n .filter(([d]) => d.stopAlign)\r\n .map(([, i]) => i);\r\n\r\n const stops = [\r\n fromDefIndex,\r\n ...stopDefIndices,\r\n toDefIndex\r\n ];\r\n\r\n return stops.map((s, i) => [\r\n stopDefIndices.indexOf(s) >= 0 ?\r\n s :\r\n null,\r\n\r\n this.extractInput(\r\n this.mapDefIndexToPos(s),\r\n this.mapDefIndexToPos(stops[++i]))\r\n ]).filter(([stop, input]) => stop != null || input);\r\n }\r\n\r\n _appendPlaceholder (toDefIndex) {\r\n const maxDefIndex = toDefIndex || this._charDefs.length;\r\n for (let di=this.mapPosToDefIndex(this.value.length); di < maxDefIndex; ++di) {\r\n const def = this._charDefs[di];\r\n if (def.isInput) def.isHollow = true;\r\n\r\n if (!this.placeholder.lazy || toDefIndex) {\r\n this._value += !def.isInput ?\r\n def.char :\r\n !def.optional ?\r\n this.placeholder.char :\r\n '';\r\n }\r\n }\r\n }\r\n\r\n clear (from=0, to=this.value.length) {\r\n this._value = this.value.slice(0, from) + this.value.slice(to);\r\n const fromDefIndex = this.mapPosToDefIndex(from);\r\n const toDefIndex = this.mapPosToDefIndex(to);\r\n this._charDefs\r\n .slice(fromDefIndex, toDefIndex)\r\n .forEach(d => d.reset());\r\n }\r\n\r\n nearestInputPos (cursorPos, direction=DIRECTION.LEFT) {\r\n if (!direction) return cursorPos;\r\n\r\n const initialDefIndex = this.mapPosToDefIndex(cursorPos);\r\n let di = initialDefIndex;\r\n\r\n let firstInputIndex,\r\n firstFilledInputIndex,\r\n firstVisibleHollowIndex,\r\n nextdi;\r\n\r\n // search forward\r\n for (nextdi = indexInDirection(di, direction); 0 <= nextdi && nextdi < this._charDefs.length; di += direction, nextdi += direction) {\r\n const nextDef = this._charDefs[nextdi];\r\n if (firstInputIndex == null && nextDef.isInput) firstInputIndex = di;\r\n if (firstVisibleHollowIndex == null && nextDef.isHollow && !nextDef.isHiddenHollow) firstVisibleHollowIndex = di;\r\n if (nextDef.isInput && !nextDef.isHollow) {\r\n firstFilledInputIndex = di;\r\n break;\r\n }\r\n }\r\n\r\n if (direction === DIRECTION.LEFT || firstInputIndex == null) {\r\n // search backwards\r\n direction = -direction;\r\n let overflow = false;\r\n\r\n // find hollows only before initial pos\r\n for (nextdi = indexInDirection(di, direction);\r\n 0 <= nextdi && nextdi < this._charDefs.length;\r\n di += direction, nextdi += direction)\r\n {\r\n const nextDef = this._charDefs[nextdi];\r\n if (nextDef.isInput) {\r\n firstInputIndex = di;\r\n if (nextDef.isHollow && !nextDef.isHiddenHollow) break;\r\n }\r\n\r\n // if hollow not found before start position - set `overflow`\r\n // and try to find just any input\r\n if (di === initialDefIndex) overflow = true;\r\n\r\n // first input found\r\n if (overflow && firstInputIndex != null) break;\r\n }\r\n\r\n // process overflow\r\n overflow = overflow || nextdi >= this._charDefs.length;\r\n if (overflow && firstInputIndex != null) di = firstInputIndex;\r\n } else if (firstFilledInputIndex == null) {\r\n // adjust index if delete at right and filled input not found at right\r\n di = firstVisibleHollowIndex != null ?\r\n firstVisibleHollowIndex :\r\n firstInputIndex;\r\n }\r\n\r\n return this.mapDefIndexToPos(di);\r\n }\r\n\r\n get groups () { return this._groups; }\r\n\r\n @refreshValueOnSet\r\n set groups (groups) {\r\n this._groups = groups;\r\n this._updateMask();\r\n }\r\n\r\n group (name) {\r\n return this.groupsByName(name)[0];\r\n }\r\n\r\n groupsByName (name) {\r\n return this._groupDefs.filter(g => g.name === name);\r\n }\r\n}\r\n\r\nMaskedPattern.DEFAULT_PLACEHOLDER = {\r\n lazy: true,\r\n char: '_'\r\n};\r\nMaskedPattern.STOP_CHAR = '`';\r\nMaskedPattern.ESCAPE_CHAR = '\\\\';\r\nMaskedPattern.Definition = PatternDefinition;\r\nMaskedPattern.Group = PatternGroup;\r\n","import {refreshValueOnSet} from '../core/utils';\r\nimport MaskedPattern from './pattern';\r\nimport PatternGroup from './pattern/group';\r\n\r\n\r\nexport default\r\nclass MaskedDate extends MaskedPattern {\r\n constructor (opts={}) {\r\n const groups = opts.groups;\r\n opts = Object.assign({}, MaskedDate.DEFAULTS, opts);\r\n const {min, max, format, parse} = opts;\r\n\r\n opts.groups = Object.assign({}, MaskedDate.DEFAULTS.groups);\r\n if (opts.groups.Y) {\r\n // adjust year group\r\n if (min) opts.groups.Y.from = min.getFullYear();\r\n if (max) opts.groups.Y.to = max.getFullYear();\r\n }\r\n\r\n Object.assign(opts.groups, groups);\r\n\r\n super(opts);\r\n delete this.isInitialized;\r\n\r\n this.min = min;\r\n this.max = max;\r\n this.format = format;\r\n this.parse = parse;\r\n\r\n this.isInitialized = true;\r\n }\r\n\r\n doValidate (soft) {\r\n const valid = super.doValidate(soft);\r\n const date = this.date;\r\n\r\n return valid &&\r\n (!this.isComplete ||\r\n this.isDateExist(this.value) && date &&\r\n (this.min == null || this.min <= date) &&\r\n (this.max == null || date <= this.max));\r\n }\r\n\r\n isDateExist (str) {\r\n return this.format(this.parse(str)) === str;\r\n }\r\n\r\n get date () {\r\n return this.isComplete ?\r\n this.parse(this.value) :\r\n null;\r\n }\r\n\r\n set date (date) {\r\n this.value = this.format(date);\r\n }\r\n\r\n get min () {\r\n return this._min;\r\n }\r\n\r\n @refreshValueOnSet\r\n set min (min) {\r\n this._min = min;\r\n }\r\n\r\n get max () {\r\n return this._max;\r\n }\r\n\r\n @refreshValueOnSet\r\n set max (max) {\r\n this._max = max;\r\n }\r\n}\r\nMaskedDate.DEFAULTS = {\r\n mask: 'd{.}`m{.}`Y',\r\n format: date => {\r\n const day = ('' + date.getDate()).padStart(2, '0');\r\n const month = ('' + (date.getMonth() + 1)).padStart(2, '0');\r\n const year = date.getFullYear();\r\n\r\n return [day, month, year].join('.');\r\n },\r\n parse: str => {\r\n const [day, month, year] = str.split('.');\r\n return new Date(year, month - 1, day);\r\n },\r\n groups: {\r\n d: new PatternGroup.Range([1, 31]),\r\n m: new PatternGroup.Range([1, 12]),\r\n Y: new PatternGroup.Range([1900, 9999]),\r\n },\r\n};\r\n","import {DIRECTION} from './utils';\r\n\r\n\r\nexport default\r\nclass ActionDetails {\r\n constructor (value, cursorPos, oldValue, oldSelection) {\r\n this.value = value;\r\n this.cursorPos = cursorPos;\r\n this.oldValue = oldValue;\r\n this.oldSelection = oldSelection;\r\n }\r\n\r\n get startChangePos () {\r\n return Math.min(this.cursorPos, this.oldSelection.start);\r\n }\r\n\r\n get insertedCount () {\r\n return this.cursorPos - this.startChangePos;\r\n }\r\n\r\n get inserted () {\r\n return this.value.substr(this.startChangePos, this.insertedCount);\r\n }\r\n\r\n get removedCount () {\r\n // Math.max for opposite operation\r\n return Math.max((this.oldSelection.end - this.startChangePos) ||\r\n // for Delete\r\n this.oldValue.length - this.value.length, 0);\r\n }\r\n\r\n get removed () {\r\n return this.oldValue.substr(this.startChangePos, this.removedCount);\r\n }\r\n\r\n get head () {\r\n return this.value.substring(0, this.startChangePos);\r\n }\r\n\r\n get tail () {\r\n this.value.substring(this.startChangePos + this.insertedCount);\r\n }\r\n\r\n get removeDirection () {\r\n return this.removedCount &&\r\n ((this.oldSelection.end === this.cursorPos || this.insertedCount) ?\r\n DIRECTION.RIGHT :\r\n DIRECTION.LEFT);\r\n }\r\n}\r\n","import ActionDetails from '../core/action-details';\r\nimport createMask from '../masked/factory';\r\n\r\n\r\nexport default\r\nclass InputMask {\r\n constructor (el, opts) {\r\n this.el = el;\r\n this.masked = createMask(opts);\r\n\r\n this._listeners = {};\r\n this._value = '';\r\n this._unmaskedValue = '';\r\n\r\n this._saveSelection = this._saveSelection.bind(this);\r\n this._onInput = this._onInput.bind(this);\r\n this._onChange = this._onChange.bind(this);\r\n this._onDrop = this._onDrop.bind(this);\r\n this._alignCursor = this._alignCursor.bind(this);\r\n this._alignCursorFriendly = this._alignCursorFriendly.bind(this);\r\n\r\n this.bindEvents();\r\n\r\n // refresh\r\n this.updateValue();\r\n this._onChange();\r\n }\r\n\r\n get mask () { return this.masked.mask; }\r\n set mask (mask) {\r\n if (typeof mask === typeof this.masked.mask) {\r\n this.masked.mask = mask;\r\n return;\r\n }\r\n\r\n const unmasked = this.masked ? this.masked.unmaskedValue : null;\r\n this.masked = createMask({mask});\r\n if (unmasked != null) this.masked.unmaskedValue = unmasked;\r\n }\r\n\r\n get value () {\r\n return this._value;\r\n }\r\n\r\n set value (str) {\r\n this.masked.value = str;\r\n this.updateControl();\r\n this._alignCursor();\r\n }\r\n\r\n get unmaskedValue () {\r\n return this._unmaskedValue;\r\n }\r\n\r\n set unmaskedValue (str) {\r\n this.masked.unmaskedValue = str;\r\n this.updateControl();\r\n this._alignCursor();\r\n }\r\n\r\n bindEvents () {\r\n this.el.addEventListener('keydown', this._saveSelection);\r\n this.el.addEventListener('input', this._onInput);\r\n this.el.addEventListener('drop', this._onDrop);\r\n this.el.addEventListener('click', this._alignCursorFriendly);\r\n this.el.addEventListener('change', this._onChange);\r\n }\r\n\r\n unbindEvents () {\r\n this.el.removeEventListener('keydown', this._saveSelection);\r\n this.el.removeEventListener('input', this._onInput);\r\n this.el.removeEventListener('drop', this._onDrop);\r\n this.el.removeEventListener('click', this._alignCursorFriendly);\r\n this.el.removeEventListener('change', this._onChange);\r\n }\r\n\r\n fireEvent (ev) {\r\n const listeners = this._listeners[ev] || [];\r\n listeners.forEach(l => l());\r\n }\r\n\r\n get selectionStart () {\r\n return this._cursorChanging ?\r\n this._changingCursorPos :\r\n\r\n this.el.selectionStart;\r\n }\r\n\r\n get cursorPos () {\r\n return this._cursorChanging ?\r\n this._changingCursorPos :\r\n\r\n this.el.selectionEnd;\r\n }\r\n\r\n set cursorPos (pos) {\r\n if (this.el !== document.activeElement) return;\r\n\r\n this.el.setSelectionRange(pos, pos);\r\n this._saveSelection();\r\n }\r\n\r\n _saveSelection (/* ev */) {\r\n if (this.value !== this.el.value) {\r\n console.warn('Uncontrolled input change, refresh mask manually!'); // eslint-disable-line no-console\r\n }\r\n this._selection = {\r\n start: this.selectionStart,\r\n end: this.cursorPos\r\n };\r\n }\r\n\r\n updateValue () {\r\n this.masked.value = this.el.value;\r\n }\r\n\r\n updateControl () {\r\n const newUnmaskedValue = this.masked.unmaskedValue;\r\n const newValue = this.masked.value;\r\n const isChanged = (this.unmaskedValue !== newUnmaskedValue ||\r\n this.value !== newValue);\r\n\r\n this._unmaskedValue = newUnmaskedValue;\r\n this._value = newValue;\r\n\r\n if (this.el.value !== newValue) this.el.value = newValue;\r\n if (isChanged) this._fireChangeEvents();\r\n }\r\n\r\n updateOptions (opts) {\r\n const mask = opts.mask;\r\n if (mask) this.mask = mask;\r\n\r\n this.masked.withValueRefresh(() => {\r\n for (const k in opts) {\r\n if (k === 'mask') continue;\r\n this.masked[k] = opts[k];\r\n }\r\n });\r\n\r\n this.updateControl();\r\n }\r\n\r\n updateCursor (cursorPos) {\r\n if (cursorPos == null) return;\r\n this.cursorPos = cursorPos;\r\n\r\n // also queue change cursor for mobile browsers\r\n this._delayUpdateCursor(cursorPos);\r\n }\r\n\r\n _delayUpdateCursor (cursorPos) {\r\n this._abortUpdateCursor();\r\n this._changingCursorPos = cursorPos;\r\n this._cursorChanging = setTimeout(() => {\r\n this.cursorPos = this._changingCursorPos;\r\n this._abortUpdateCursor();\r\n }, 10);\r\n }\r\n\r\n _fireChangeEvents () {\r\n this.fireEvent('accept');\r\n if (this.masked.isComplete) this.fireEvent('complete');\r\n }\r\n\r\n _abortUpdateCursor () {\r\n if (this._cursorChanging) {\r\n clearTimeout(this._cursorChanging);\r\n delete this._cursorChanging;\r\n }\r\n }\r\n\r\n _alignCursor () {\r\n this.cursorPos = this.masked.nearestInputPos(this.cursorPos);\r\n }\r\n\r\n _alignCursorFriendly () {\r\n if (this.selectionStart !== this.cursorPos) return;\r\n this._alignCursor();\r\n }\r\n\r\n on (ev, handler) {\r\n if (!this._listeners[ev]) this._listeners[ev] = [];\r\n this._listeners[ev].push(handler);\r\n return this;\r\n }\r\n\r\n off (ev, handler) {\r\n if (!this._listeners[ev]) return;\r\n if (!handler) {\r\n delete this._listeners[ev];\r\n return;\r\n }\r\n const hIndex = this._listeners[ev].indexOf(handler);\r\n if (hIndex >= 0) this._listeners.splice(hIndex, 1);\r\n return this;\r\n }\r\n\r\n _onInput () {\r\n this._abortUpdateCursor();\r\n\r\n const details = new ActionDetails(\r\n // new state\r\n this.el.value, this.cursorPos,\r\n // old state\r\n this.value, this._selection);\r\n\r\n const tailPos = details.startChangePos + details.removed.length;\r\n const tail = this.masked.extractTail(tailPos);\r\n\r\n const lastInputPos = this.masked.nearestInputPos(details.startChangePos, details.removeDirection);\r\n this.masked.clear(lastInputPos);\r\n const insertedCount = this.masked.appendWithTail(details.inserted, tail);\r\n\r\n\r\n const cursorPos = this.masked.nearestInputPos(\r\n lastInputPos + insertedCount,\r\n details.removeDirection);\r\n\r\n this.updateControl();\r\n this.updateCursor(cursorPos);\r\n }\r\n\r\n _onChange () {\r\n if (this.value !== this.el.value) {\r\n this.updateValue();\r\n }\r\n this.masked.doCommit();\r\n this.updateControl();\r\n }\r\n\r\n _onDrop (ev) {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n }\r\n\r\n destroy () {\r\n this.unbindEvents();\r\n this._listeners.length = 0;\r\n }\r\n}\r\n","import 'core-js/fn/array/find';\r\nimport 'core-js/fn/object/keys';\r\nimport 'core-js/fn/string/repeat';\r\nimport 'core-js/fn/string/pad-start';\r\nimport 'core-js/fn/string/pad-end';\r\n\r\n\r\nimport Masked from './masked/base';\r\nimport MaskedPattern from './masked/pattern';\r\nimport MaskedNumber from './masked/number';\r\nimport MaskedDate from './masked/date';\r\n\r\nimport InputMask from './controls/input';\r\n\r\n\r\nexport default\r\nfunction IMask (el, opts={}) {\r\n\t// currently available only for input elements\r\n return new InputMask(el, opts);\r\n}\r\n\r\n\r\nIMask.InputMask = InputMask;\r\n\r\nIMask.Masked = Masked;\r\nIMask.MaskedPattern = MaskedPattern;\r\nIMask.MaskedNumber = MaskedNumber;\r\nIMask.MaskedDate = MaskedDate;\r\n\r\nwindow.IMask = IMask;\r\n"],"names":["isObject","require$$0","document","require$$1","require$$2","anObject","toPrimitive","IE8_DOM_DEFINE","dP","createDesc","has","hide","global","aFunction","core","ctx","redefine","cof","defined","toInteger","uid","isArray","speciesConstructor","asc","toObject","IObject","toLength","$export","min","toIObject","toIndex","$keys","enumBugKeys","fails","repeat","$pad","isString","str","String","conform","res","fallback","DIRECTION","indexInDirection","pos","direction","LEFT","refreshValueOnSet","target","key","descriptor","method","set","args","withValueRefresh","bind","escapeRegExp","replace","Masked","mask","prepare","val","validate","commit","_value","isInitialized","clone","m","value","slice","reset","nearestInputPos","cursorPos","extractInput","fromPos","toPos","length","extractTail","_appendTail","tail","_append","soft","oldValueLength","consistentValue","doPrepare","ci","doValidate","appendWithTail","appendCount","consistentAppended","ch","appended","tailAppended","_unmask","clear","from","to","fn","_refreshing","unmasked","unmaskedValue","ret","doCommit","_mask","_prepare","_validate","_commit","MaskedNumber","opts","babelHelpers.extends","DEFAULTS","scale","radix","mapToRadix","max","signed","thousandsSeparator","postFormat","_updateNumberRegExp","regExpStrSoft","regExpStr","_numberRegExpSoft","RegExp","_numberRegExp","_removeThousandsSeparators","_thousandsSeparatorRegExp","_insertThousandsSeparators","parts","split","join","_mapToRadixRegExp","removedSeparatorsCount","beforeTailPos","insertedSeparatorsBeforeTailCount","nextPos","regexp","valid","test","number","isNaN","validnum","Math","formatted","normalizeZeros","_normalizeZeros","padFractionalZeros","_padFractionalZeros","match","sign","zeros","num","push","padEnd","numstr","Number","_min","_max","_scale","_radix","_signed","_postFormat","_mapToRadix","map","_thousandsSeparator","createMask","IMask","MaskedPattern","prototype","Date","pattern","MaskedDate","Function","warn","PatternDefinition","_masked","isHollow","resolve","type","TYPES","INPUT","optional","PatternGroup","masked","name","offset","mapDefIndexToPos","RangeGroup","maxlen","_from","_to","_maxLength","_update","minstr","maxstr","placeholder","firstNonZero","search","_matchFrom","maxLength","EnumGroup","enums","group","some","e","indexOf","Range","Enum","definitions","groups","_updateMask","defs","_definitions","_charDefs","_groupDefs","unmaskingBlock","optionalBlock","stopAlign","_groups","p","i","gNames","Object","keys","filter","gName","sort","a","b","char","FIXED","unmasking","STOP_CHAR","ESCAPE_CHAR","every","g","forEach","d","hiddenHollowsBefore","defIndex","isHiddenHollow","mapPosToDefIndex","di","def","_appendChunks","_appendPlaceholder","resolved","skipped","chres","chunks","fromDefIndex","input","extractInputChunks","toDefIndex","isInput","stopDefIndices","stops","s","stop","maxDefIndex","lazy","initialDefIndex","firstInputIndex","firstFilledInputIndex","firstVisibleHollowIndex","nextdi","nextDef","overflow","groupsByName","_placeholder","ph","DEFAULT_PLACEHOLDER","Definition","Group","format","parse","Y","getFullYear","date","isComplete","isDateExist","day","getDate","padStart","month","getMonth","year","ActionDetails","oldValue","oldSelection","start","startChangePos","substr","insertedCount","end","removedCount","substring","RIGHT","InputMask","el","_listeners","_unmaskedValue","_saveSelection","_onInput","_onChange","_onDrop","_alignCursor","_alignCursorFriendly","bindEvents","updateValue","addEventListener","unbindEvents","removeEventListener","fireEvent","ev","listeners","l","_selection","selectionStart","updateControl","newUnmaskedValue","newValue","isChanged","_fireChangeEvents","updateOptions","k","updateCursor","_delayUpdateCursor","_abortUpdateCursor","_changingCursorPos","_cursorChanging","setTimeout","on","handler","off","hIndex","splice","details","tailPos","removed","lastInputPos","removeDirection","inserted","preventDefault","stopPropagation","destroy","selectionEnd","activeElement","setSelectionRange","window"],"mappings":"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"} \ No newline at end of file diff --git a/dist/imask.js b/dist/imask.js index 80b0233d..918f6687 100644 --- a/dist/imask.js +++ b/dist/imask.js @@ -650,21 +650,26 @@ function _applyDecoratedDescriptor(target, property, decorators, descriptor, con var Masked = (_class = function () { function Masked(_ref) { var mask = _ref.mask, - validate = _ref.validate; + _ref$prepare = _ref.prepare, + prepare = _ref$prepare === undefined ? function (val) { + return val; + } : _ref$prepare, + _ref$validate = _ref.validate, + validate = _ref$validate === undefined ? function () { + return true; + } : _ref$validate, + _ref$commit = _ref.commit, + commit = _ref$commit === undefined ? function () {} : _ref$commit; classCallCheck(this, Masked); this._value = ''; this.mask = mask; - this.validate = validate || function () { - return true; - }; + this.prepare = prepare; + this.validate = validate; + this.commit = commit; this.isInitialized = true; } - Masked.prototype._validate = function _validate(soft) { - return this.validate(this.value, this, soft); - }; - Masked.prototype.clone = function clone() { var m = new Masked(this); m._value = this.value.slice(); @@ -701,9 +706,10 @@ var Masked = (_class = function () { var oldValueLength = this.value.length; var consistentValue = this.clone(); + str = this.doPrepare(str, soft); for (var ci = 0; ci < str.length; ++ci) { this._value += str[ci]; - if (this._validate(soft) === false) { + if (this.doValidate(soft) === false) { _extends(this, consistentValue); if (!soft) return false; } @@ -726,7 +732,7 @@ var Masked = (_class = function () { var appended = this._append(ch, true); consistentAppended = this.clone(); var tailAppended = appended !== false && this._appendTail(tail) !== false; - if (tailAppended === false || this._validate(true) === false) { + if (tailAppended === false || this.doValidate(true) === false) { _extends(this, consistentValue); break; } @@ -773,7 +779,17 @@ var Masked = (_class = function () { return ret; }; - Masked.prototype.commit = function commit() {}; + Masked.prototype.doPrepare = function doPrepare(str, soft) { + return this.prepare(str, this, soft); + }; + + Masked.prototype.doValidate = function doValidate(soft) { + return this.validate(this.value, this, soft); + }; + + Masked.prototype.doCommit = function doCommit() { + this.commit(this.value, this); + }; // TODO // resolve (inputRaw) -> outputRaw @@ -799,6 +815,30 @@ var Masked = (_class = function () { set: function set$$1(mask) { this._mask = mask; } + }, { + key: 'prepare', + get: function get$$1() { + return this._prepare; + }, + set: function set$$1(prepare) { + this._prepare = prepare; + } + }, { + key: 'validate', + get: function get$$1() { + return this._validate; + }, + set: function set$$1(validate) { + this._validate = validate; + } + }, { + key: 'commit', + get: function get$$1() { + return this._commit; + }, + set: function set$$1(commit) { + this._commit = commit; + } }, { key: 'value', get: function get$$1() { @@ -807,7 +847,7 @@ var Masked = (_class = function () { set: function set$$1(value) { this.reset(); this.appendWithTail(value); - this.commit(); + this.doCommit(); } }, { key: 'unmaskedValue', @@ -818,7 +858,7 @@ var Masked = (_class = function () { this.reset(); this._append(value); this.appendWithTail(""); - this.commit(); + this.doCommit(); } }, { key: 'isComplete', @@ -827,7 +867,7 @@ var Masked = (_class = function () { } }]); return Masked; -}(), (_applyDecoratedDescriptor(_class.prototype, 'mask', [refreshValueOnSet], Object.getOwnPropertyDescriptor(_class.prototype, 'mask'), _class.prototype)), _class); +}(), (_applyDecoratedDescriptor(_class.prototype, 'mask', [refreshValueOnSet], Object.getOwnPropertyDescriptor(_class.prototype, 'mask'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'prepare', [refreshValueOnSet], Object.getOwnPropertyDescriptor(_class.prototype, 'prepare'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'validate', [refreshValueOnSet], Object.getOwnPropertyDescriptor(_class.prototype, 'validate'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'commit', [refreshValueOnSet], Object.getOwnPropertyDescriptor(_class.prototype, 'commit'), _class.prototype)), _class); var _class$2; @@ -942,8 +982,8 @@ var MaskedNumber = (_class$2 = function (_Masked) { return parts.join(this.radix); }; - MaskedNumber.prototype._append = function _append(str, soft) { - return _Masked.prototype._append.call(this, this._removeThousandsSeparators(str.replace(this._mapToRadixRegExp, this.radix)), soft); + MaskedNumber.prototype.doPrepare = function doPrepare(str, soft) { + return _Masked.prototype.doPrepare.call(this, this._removeThousandsSeparators(str.replace(this._mapToRadixRegExp, this.radix)), soft); }; MaskedNumber.prototype.appendWithTail = function appendWithTail(str, tail) { @@ -978,7 +1018,7 @@ var MaskedNumber = (_class$2 = function (_Masked) { return cursorPos; }; - MaskedNumber.prototype._validate = function _validate(soft) { + MaskedNumber.prototype.doValidate = function doValidate(soft) { var regexp = soft ? this._numberRegExpSoft : this._numberRegExp; // validate as string @@ -994,10 +1034,10 @@ var MaskedNumber = (_class$2 = function (_Masked) { this.max == null || this.max <= 0 || this.number <= this.max); } - return valid && _Masked.prototype._validate.call(this, soft); + return valid && _Masked.prototype.doValidate.call(this, soft); }; - MaskedNumber.prototype.commit = function commit() { + MaskedNumber.prototype.doCommit = function doCommit() { var number = this.number; var validnum = number; @@ -1020,6 +1060,7 @@ var MaskedNumber = (_class$2 = function (_Masked) { } this._value = formatted; + _Masked.prototype.doCommit.call(this); }; MaskedNumber.prototype._normalizeZeros = function _normalizeZeros(value) { @@ -1243,7 +1284,7 @@ var PatternGroup = function () { }; } - PatternGroup.prototype._validate = function _validate(soft) { + PatternGroup.prototype.doValidate = function doValidate(soft) { return this.validate(this.value, this, soft); }; @@ -1498,10 +1539,10 @@ var MaskedPattern = (_class$1 = function (_Masked) { } }; - MaskedPattern.prototype._validate = function _validate(soft) { + MaskedPattern.prototype.doValidate = function doValidate(soft) { return this._groupDefs.every(function (g) { - return g._validate(soft); - }) && _Masked.prototype._validate.call(this, soft); + return g.doValidate(soft); + }) && _Masked.prototype.doValidate.call(this, soft); }; MaskedPattern.prototype.clone = function clone() { @@ -1587,7 +1628,7 @@ var MaskedPattern = (_class$1 = function (_Masked) { if (def.type === PatternDefinition.TYPES.INPUT) { if (chres) { this._value += chres; - if (!this._validate()) { + if (!this.doValidate()) { chres = ''; this._value = this.value.slice(0, -1); } @@ -1901,8 +1942,8 @@ var MaskedDate = (_class$3 = function (_MaskedPattern) { return _this; } - MaskedDate.prototype._validate = function _validate(soft) { - var valid = _MaskedPattern.prototype._validate.call(this, soft); + MaskedDate.prototype.doValidate = function doValidate(soft) { + var valid = _MaskedPattern.prototype.doValidate.call(this, soft); var date = this.date; return valid && (!this.isComplete || this.isDateExist(this.value) && date && (this.min == null || this.min <= date) && (this.max == null || date <= this.max)); @@ -2193,7 +2234,7 @@ var InputMask = function () { if (this.value !== this.el.value) { this.updateValue(); } - this.masked.commit(); + this.masked.doCommit(); this.updateControl(); }; diff --git a/dist/imask.js.map b/dist/imask.js.map index d5441f64..249d0c11 100644 --- a/dist/imask.js.map +++ b/dist/imask.js.map @@ -1 +1 @@ -{"version":3,"file":"imask.js","sources":["../node_modules/core-js/modules/_global.js","../node_modules/core-js/modules/_core.js","../node_modules/core-js/modules/_is-object.js","../node_modules/core-js/modules/_an-object.js","../node_modules/core-js/modules/_fails.js","../node_modules/core-js/modules/_descriptors.js","../node_modules/core-js/modules/_dom-create.js","../node_modules/core-js/modules/_ie8-dom-define.js","../node_modules/core-js/modules/_to-primitive.js","../node_modules/core-js/modules/_object-dp.js","../node_modules/core-js/modules/_property-desc.js","../node_modules/core-js/modules/_hide.js","../node_modules/core-js/modules/_has.js","../node_modules/core-js/modules/_uid.js","../node_modules/core-js/modules/_redefine.js","../node_modules/core-js/modules/_a-function.js","../node_modules/core-js/modules/_ctx.js","../node_modules/core-js/modules/_export.js","../node_modules/core-js/modules/_cof.js","../node_modules/core-js/modules/_iobject.js","../node_modules/core-js/modules/_defined.js","../node_modules/core-js/modules/_to-object.js","../node_modules/core-js/modules/_to-integer.js","../node_modules/core-js/modules/_to-length.js","../node_modules/core-js/modules/_is-array.js","../node_modules/core-js/modules/_shared.js","../node_modules/core-js/modules/_wks.js","../node_modules/core-js/modules/_array-species-constructor.js","../node_modules/core-js/modules/_array-species-create.js","../node_modules/core-js/modules/_array-methods.js","../node_modules/core-js/modules/_add-to-unscopables.js","../node_modules/core-js/modules/es6.array.find.js","../node_modules/core-js/modules/_to-iobject.js","../node_modules/core-js/modules/_to-index.js","../node_modules/core-js/modules/_array-includes.js","../node_modules/core-js/modules/_shared-key.js","../node_modules/core-js/modules/_object-keys-internal.js","../node_modules/core-js/modules/_enum-bug-keys.js","../node_modules/core-js/modules/_object-keys.js","../node_modules/core-js/modules/_object-sap.js","../node_modules/core-js/modules/es6.object.keys.js","../node_modules/core-js/modules/_string-repeat.js","../node_modules/core-js/modules/es6.string.repeat.js","../node_modules/core-js/modules/_string-pad.js","../node_modules/core-js/modules/es7.string.pad-start.js","../node_modules/core-js/modules/es7.string.pad-end.js","../src/core/utils.js","../src/masked/base.js","../src/masked/number.js","../src/masked/factory.js","../src/masked/pattern/definition.js","../src/masked/pattern/group.js","../src/masked/pattern.js","../src/masked/date.js","../src/core/action-details.js","../src/controls/input.js","../src/imask.js"],"sourcesContent":["// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef","var core = module.exports = {version: '2.4.0'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};","var isObject = require('./_is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});","var isObject = require('./_is-object')\n , document = require('./_global').document\n // in old IE typeof document.createElement is 'object'\n , is = isObject(document) && isObject(document.createElement);\nmodule.exports = function(it){\n return is ? document.createElement(it) : {};\n};","module.exports = !require('./_descriptors') && !require('./_fails')(function(){\n return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;\n});","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function(it, S){\n if(!isObject(it))return it;\n var fn, val;\n if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;\n if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};","var anObject = require('./_an-object')\n , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n , toPrimitive = require('./_to-primitive')\n , dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if(IE8_DOM_DEFINE)try {\n return dP(O, P, Attributes);\n } catch(e){ /* empty */ }\n if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');\n if('value' in Attributes)O[P] = Attributes.value;\n return O;\n};","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};","var dP = require('./_object-dp')\n , createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function(object, key, value){\n return dP.f(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};","var id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};","var global = require('./_global')\n , hide = require('./_hide')\n , has = require('./_has')\n , SRC = require('./_uid')('src')\n , TO_STRING = 'toString'\n , $toString = Function[TO_STRING]\n , TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function(it){\n return $toString.call(it);\n};\n\n(module.exports = function(O, key, val, safe){\n var isFunction = typeof val == 'function';\n if(isFunction)has(val, 'name') || hide(val, 'name', key);\n if(O[key] === val)return;\n if(isFunction)has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if(O === global){\n O[key] = val;\n } else {\n if(!safe){\n delete O[key];\n hide(O, key, val);\n } else {\n if(O[key])O[key] = val;\n else hide(O, key, val);\n }\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString(){\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};","var global = require('./_global')\n , core = require('./_core')\n , hide = require('./_hide')\n , redefine = require('./_redefine')\n , ctx = require('./_ctx')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {})\n , key, own, out, exp;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if(target)redefine(target, key, out, type & $export.U);\n // export\n if(exports[key] != out)hide(exports, key, exp);\n if(IS_PROTO && expProto[key] != out)expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library` \nmodule.exports = $export;","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n return it;\n};","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function(it){\n return Object(defined(it));\n};","// 7.1.4 ToInteger\nvar ceil = Math.ceil\n , floor = Math.floor;\nmodule.exports = function(it){\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer')\n , min = Math.min;\nmodule.exports = function(it){\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};","var global = require('./_global')\n , SHARED = '__core-js_shared__'\n , store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n return store[key] || (store[key] = {});\n};","var store = require('./_shared')('wks')\n , uid = require('./_uid')\n , Symbol = require('./_global').Symbol\n , USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function(name){\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;","var isObject = require('./_is-object')\n , isArray = require('./_is-array')\n , SPECIES = require('./_wks')('species');\n\nmodule.exports = function(original){\n var C;\n if(isArray(original)){\n C = original.constructor;\n // cross-realm fallback\n if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;\n if(isObject(C)){\n C = C[SPECIES];\n if(C === null)C = undefined;\n }\n } return C === undefined ? Array : C;\n};","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function(original, length){\n return new (speciesConstructor(original))(length);\n};","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx')\n , IObject = require('./_iobject')\n , toObject = require('./_to-object')\n , toLength = require('./_to-length')\n , asc = require('./_array-species-create');\nmodule.exports = function(TYPE, $create){\n var IS_MAP = TYPE == 1\n , IS_FILTER = TYPE == 2\n , IS_SOME = TYPE == 3\n , IS_EVERY = TYPE == 4\n , IS_FIND_INDEX = TYPE == 6\n , NO_HOLES = TYPE == 5 || IS_FIND_INDEX\n , create = $create || asc;\n return function($this, callbackfn, that){\n var O = toObject($this)\n , self = IObject(O)\n , f = ctx(callbackfn, that, 3)\n , length = toLength(self.length)\n , index = 0\n , result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined\n , val, res;\n for(;length > index; index++)if(NO_HOLES || index in self){\n val = self[index];\n res = f(val, index, O);\n if(TYPE){\n if(IS_MAP)result[index] = res; // map\n else if(res)switch(TYPE){\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if(IS_EVERY)return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables')\n , ArrayProto = Array.prototype;\nif(ArrayProto[UNSCOPABLES] == undefined)require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function(key){\n ArrayProto[UNSCOPABLES][key] = true;\n};","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export')\n , $find = require('./_array-methods')(5)\n , KEY = 'find'\n , forced = true;\n// Shouldn't skip holes\nif(KEY in [])Array(1)[KEY](function(){ forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn/*, that = undefined */){\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject')\n , defined = require('./_defined');\nmodule.exports = function(it){\n return IObject(defined(it));\n};","var toInteger = require('./_to-integer')\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};","var shared = require('./_shared')('keys')\n , uid = require('./_uid');\nmodule.exports = function(key){\n return shared[key] || (shared[key] = uid(key));\n};","var has = require('./_has')\n , toIObject = require('./_to-iobject')\n , arrayIndexOf = require('./_array-includes')(false)\n , IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function(object, names){\n var O = toIObject(object)\n , i = 0\n , result = []\n , key;\n for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while(names.length > i)if(has(O, key = names[i++])){\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal')\n , enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O){\n return $keys(O, enumBugKeys);\n};","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export')\n , core = require('./_core')\n , fails = require('./_fails');\nmodule.exports = function(KEY, exec){\n var fn = (core.Object || {})[KEY] || Object[KEY]\n , exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object')\n , $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});","'use strict';\nvar toInteger = require('./_to-integer')\n , defined = require('./_defined');\n\nmodule.exports = function repeat(count){\n var str = String(defined(this))\n , res = ''\n , n = toInteger(count);\n if(n < 0 || n == Infinity)throw RangeError(\"Count can't be negative\");\n for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str;\n return res;\n};","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('./_to-length')\n , repeat = require('./_string-repeat')\n , defined = require('./_defined');\n\nmodule.exports = function(that, maxLength, fillString, left){\n var S = String(defined(that))\n , stringLength = S.length\n , fillStr = fillString === undefined ? ' ' : String(fillString)\n , intMaxLength = toLength(maxLength);\n if(intMaxLength <= stringLength || fillStr == '')return S;\n var fillLen = intMaxLength - stringLength\n , stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));\n if(stringFiller.length > fillLen)stringFiller = stringFiller.slice(0, fillLen);\n return left ? stringFiller + S : S + stringFiller;\n};\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export')\n , $pad = require('./_string-pad');\n\n$export($export.P, 'String', {\n padStart: function padStart(maxLength /*, fillString = ' ' */){\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n }\n});","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export')\n , $pad = require('./_string-pad');\n\n$export($export.P, 'String', {\n padEnd: function padEnd(maxLength /*, fillString = ' ' */){\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n }\n});","export\r\nfunction isString (str) {\r\n return typeof str === 'string' || str instanceof String;\r\n}\r\n\r\nexport\r\nfunction conform (res, str, fallback='') {\r\n return isString(res) ?\r\n res :\r\n res ?\r\n str :\r\n fallback;\r\n}\r\n\r\nexport\r\nconst DIRECTION = {\r\n NONE: 0,\r\n LEFT: -1,\r\n RIGHT: 1\r\n}\r\n\r\nexport\r\nfunction indexInDirection (pos, direction) {\r\n if (direction === DIRECTION.LEFT) --pos;\r\n return pos;\r\n}\r\n\r\nexport\r\nfunction refreshValueOnSet (target, key, descriptor) {\r\n const method = descriptor.set;\r\n descriptor.set = function (...args) {\r\n return this.withValueRefresh(method.bind(this, ...args));\r\n };\r\n}\r\n\r\nexport\r\nfunction escapeRegExp(str) {\r\n return str.replace(/([.*+?^=!:${}()|\\[\\]\\/\\\\])/g, '\\\\$1');\r\n}\r\n","import {refreshValueOnSet} from '../core/utils';\r\n\r\n\r\nexport default\r\nclass Masked {\r\n constructor ({mask, validate}) {\r\n this._value = '';\r\n this.mask = mask;\r\n this.validate = validate || (() => true);\r\n this.isInitialized = true;\r\n }\r\n\r\n get mask () {\r\n return this._mask;\r\n }\r\n\r\n @refreshValueOnSet\r\n set mask (mask) {\r\n this._mask = mask;\r\n }\r\n\r\n _validate (soft) {\r\n return this.validate(this.value, this, soft);\r\n }\r\n\r\n clone () {\r\n const m = new Masked(this);\r\n m._value = this.value.slice();\r\n return m;\r\n }\r\n\r\n reset () {\r\n this._value = '';\r\n }\r\n\r\n get value () {\r\n return this._value;\r\n }\r\n\r\n set value (value) {\r\n this.reset();\r\n this.appendWithTail(value);\r\n this.commit();\r\n }\r\n\r\n get unmaskedValue () {\r\n return this._unmask();\r\n }\r\n\r\n set unmaskedValue (value) {\r\n this.reset();\r\n this._append(value);\r\n this.appendWithTail(\"\");\r\n this.commit();\r\n }\r\n\r\n get isComplete () {\r\n return true;\r\n }\r\n\r\n nearestInputPos (cursorPos, /* direction */) {\r\n return cursorPos;\r\n }\r\n\r\n extractInput (fromPos=0, toPos=this.value.length) {\r\n return this.value.slice(fromPos, toPos);\r\n }\r\n\r\n extractTail (fromPos=0, toPos=this.value.length) {\r\n return this.extractInput(fromPos, toPos);\r\n }\r\n\r\n _appendTail (tail) {\r\n return !tail || this._append(tail);\r\n }\r\n\r\n _append (str, soft) {\r\n const oldValueLength = this.value.length;\r\n let consistentValue = this.clone();\r\n\r\n for (let ci=0; ci outputRaw\r\n\r\n // TODO\r\n // insert (str, fromPos, soft)\r\n\r\n // splice (start, deleteCount, inserted, removeDirection) {\r\n // const tailPos = start + deleteCount;\r\n // const tail = this.extractTail(tailPos);\r\n\r\n // start = this.nearestInputPos(start, removeDirection);\r\n // this.clear(start);\r\n // return this.appendWithTail(inserted, tail);\r\n // }\r\n}\r\n","import {escapeRegExp, refreshValueOnSet, DIRECTION, indexInDirection} from '../core/utils';\r\nimport Masked from './base';\r\n\r\n\r\nexport default\r\nclass MaskedNumber extends Masked {\r\n constructor (opts={}) {\r\n opts = Object.assign({}, MaskedNumber.DEFAULTS, opts);\r\n super(opts);\r\n delete this.isInitialized;\r\n\r\n const {scale, radix, mapToRadix, min, max, signed, thousandsSeparator, postFormat} = opts;\r\n\r\n this.min = min;\r\n this.max = max;\r\n this.scale = scale;\r\n this.radix = radix;\r\n this.mapToRadix = mapToRadix;\r\n this.signed = signed;\r\n this.thousandsSeparator = thousandsSeparator;\r\n this.postFormat = postFormat;\r\n\r\n this._updateNumberRegExp();\r\n\r\n this.isInitialized = true;\r\n }\r\n\r\n _updateNumberRegExp () {\r\n // TODO refactor?\r\n let regExpStrSoft = '^';\r\n let regExpStr = '^';\r\n\r\n if (this.signed) {\r\n regExpStrSoft += '([+|\\\\-]?|([+|\\\\-]?(0|([1-9]+\\\\d*))))';\r\n regExpStr += '[+|\\\\-]?';\r\n } else {\r\n regExpStrSoft += '(0|([1-9]+\\\\d*))';\r\n }\r\n regExpStr += '\\\\d*';\r\n\r\n if (this.scale) {\r\n regExpStrSoft += '(' + this.radix + '\\\\d{0,' + this.scale + '})?';\r\n regExpStr += '(' + this.radix + '\\\\d{0,' + this.scale + '})?';\r\n }\r\n\r\n regExpStrSoft += '$';\r\n regExpStr += '$';\r\n\r\n this._numberRegExpSoft = new RegExp(regExpStrSoft);\r\n this._numberRegExp = new RegExp(regExpStr)\r\n }\r\n\r\n extractTail (fromPos=0, toPos=this.value.length) {\r\n return this._removeThousandsSeparators(super.extractTail(fromPos, toPos));\r\n }\r\n\r\n _removeThousandsSeparators (value) {\r\n return value.replace(this._thousandsSeparatorRegExp, '');\r\n }\r\n\r\n _insertThousandsSeparators (value) {\r\n // https://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript\r\n const parts = value.split(this.radix);\r\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, this.thousandsSeparator);\r\n return parts.join(this.radix);\r\n }\r\n\r\n _append (str, soft) {\r\n return super._append(\r\n this._removeThousandsSeparators(\r\n str.replace(this._mapToRadixRegExp, this.radix)),\r\n soft);\r\n }\r\n\r\n appendWithTail (str, tail) {\r\n const oldValueLength = this.value.length;\r\n this._value = this._removeThousandsSeparators(this.value);\r\n let removedSeparatorsCount = oldValueLength - this.value.length;\r\n\r\n\r\n const appended = super.appendWithTail(str, tail);\r\n\r\n\r\n this._value = this._insertThousandsSeparators(this.value);\r\n\r\n let beforeTailPos = oldValueLength + appended - removedSeparatorsCount;\r\n this._value = this._insertThousandsSeparators(this.value);\r\n let insertedSeparatorsBeforeTailCount = 0;\r\n for (let pos = 0; pos <= beforeTailPos; ++pos) {\r\n if (this.value[pos] === this.thousandsSeparator) {\r\n ++insertedSeparatorsBeforeTailCount;\r\n ++beforeTailPos;\r\n }\r\n }\r\n\r\n return appended - removedSeparatorsCount + insertedSeparatorsBeforeTailCount;\r\n }\r\n\r\n nearestInputPos (cursorPos, direction=DIRECTION.LEFT) {\r\n if (!direction) return cursorPos;\r\n\r\n const nextPos = indexInDirection(cursorPos, direction);\r\n if (this.value[nextPos] === this.thousandsSeparator) cursorPos += direction;\r\n return cursorPos;\r\n }\r\n\r\n _validate (soft) {\r\n const regexp = soft ? this._numberRegExpSoft : this._numberRegExp;\r\n\r\n // validate as string\r\n let valid = regexp.test(this._removeThousandsSeparators(this.value));\r\n\r\n if (valid) {\r\n // validate as number\r\n const number = this.number;\r\n valid = valid && !isNaN(number) &&\r\n // check min bound for negative values\r\n (this.min == null || this.min >= 0 || this.min <= this.number) &&\r\n // check max bound for positive values\r\n (this.max == null || this.max <= 0 || this.number <= this.max);\r\n }\r\n\r\n return valid && super._validate(soft);\r\n }\r\n\r\n commit () {\r\n const number = this.number;\r\n let validnum = number;\r\n\r\n // check bounds\r\n if (this.min != null) validnum = Math.max(validnum, this.min);\r\n if (this.max != null) validnum = Math.min(validnum, this.max);\r\n\r\n if (validnum !== number) {\r\n this.unmaskedValue = '' + validnum;\r\n }\r\n\r\n let formatted = this.value;\r\n\r\n if (this.postFormat.normalizeZeros) {\r\n formatted = this._normalizeZeros(formatted);\r\n }\r\n\r\n if (this.postFormat.padFractionalZeros) {\r\n formatted = this._padFractionalZeros(formatted);\r\n }\r\n\r\n this._value = formatted;\r\n }\r\n\r\n _normalizeZeros (value) {\r\n const parts = this._removeThousandsSeparators(value).split(this.radix);\r\n\r\n // remove leading zeros\r\n parts[0] = parts[0].replace(/^(\\D*)(0*)(\\d*)/, (match, sign, zeros, num) => sign + num);\r\n // add leading zero\r\n if (value.length && !/\\d$/.test(parts[0])) parts[0] = parts[0] + '0';\r\n\r\n if (parts.length > 1) {\r\n parts[1] = parts[1].replace(/0*$/, ''); // remove trailing zeros\r\n if (!parts[1].length) parts.length = 1; // remove fractional\r\n }\r\n\r\n return this._insertThousandsSeparators(parts.join(this.radix));\r\n }\r\n\r\n _padFractionalZeros (value) {\r\n const parts = value.split(this.radix);\r\n if (parts.length < 2) parts.push('');\r\n parts[1] = parts[1].padEnd(this.scale, '0');\r\n return parts.join(this.radix);\r\n }\r\n\r\n get number () {\r\n let numstr =\r\n this._removeThousandsSeparators(\r\n this._normalizeZeros(\r\n this.unmaskedValue))\r\n .replace(this.radix, '.');\r\n\r\n return Number(numstr);\r\n }\r\n\r\n set number (number) {\r\n this.unmaskedValue = '' + number;\r\n }\r\n\r\n get min () {\r\n return this._min;\r\n }\r\n\r\n @refreshValueOnSet\r\n set min (min) {\r\n this._min = min;\r\n }\r\n\r\n get max () {\r\n return this._max;\r\n }\r\n\r\n @refreshValueOnSet\r\n set max (max) {\r\n this._max = max;\r\n }\r\n\r\n get scale () {\r\n return this._scale;\r\n }\r\n\r\n @refreshValueOnSet\r\n set scale (scale) {\r\n this._scale = scale;\r\n }\r\n\r\n get radix () {\r\n return this._radix;\r\n }\r\n\r\n @refreshValueOnSet\r\n set radix (radix) {\r\n this._radix = radix;\r\n this._updateNumberRegExp();\r\n }\r\n\r\n get signed () {\r\n return this._signed || (this.min != null && this.min < 0) || (this.max != null && this.max < 0);\r\n }\r\n\r\n @refreshValueOnSet\r\n set signed (signed) {\r\n this._signed = signed;\r\n }\r\n\r\n get postFormat () {\r\n return this._postFormat;\r\n }\r\n\r\n @refreshValueOnSet\r\n set postFormat (postFormat) {\r\n this._postFormat = {\r\n ...MaskedNumber.DEFAULTS.postFormat,\r\n ...postFormat\r\n };\r\n }\r\n\r\n get mapToRadix () {\r\n return this._mapToRadix;\r\n }\r\n\r\n @refreshValueOnSet\r\n set mapToRadix (mapToRadix) {\r\n this._mapToRadix = mapToRadix;\r\n this._mapToRadixRegExp = new RegExp('[' +\r\n mapToRadix.map(escapeRegExp).join('') +\r\n ']', 'g');\r\n }\r\n\r\n get thousandsSeparator () {\r\n return this._thousandsSeparator;\r\n }\r\n\r\n @refreshValueOnSet\r\n set thousandsSeparator (thousandsSeparator) {\r\n this._thousandsSeparator = thousandsSeparator;\r\n this._thousandsSeparatorRegExp = new RegExp(escapeRegExp(thousandsSeparator), 'g');\r\n }\r\n}\r\nMaskedNumber.DEFAULTS = {\r\n radix: ',',\r\n thousandsSeparator: '',\r\n mapToRadix: ['.'],\r\n scale: 2,\r\n postFormat: {\r\n normalizeZeros: true,\r\n }\r\n};\r\n","import {isString} from '../core/utils';\r\nimport Masked from './base';\r\nimport MaskedNumber from './number';\r\n\r\n\r\nexport default\r\nfunction createMask (opts) {\r\n opts = Object.assign({}, opts); // clone\r\n\r\n const mask = opts.mask;\r\n\r\n if (mask instanceof Masked) {\r\n return mask;\r\n }\r\n if (mask instanceof RegExp) {\r\n opts.validate = (value) => mask.test(value);\r\n return new Masked(opts);\r\n }\r\n if (isString(mask)) {\r\n return new IMask.MaskedPattern(opts);\r\n }\r\n if (mask.prototype instanceof Masked) {\r\n delete opts.mask;\r\n return new mask(opts);\r\n }\r\n if (mask instanceof Number || typeof mask === 'number' || mask === Number) {\r\n delete opts.mask;\r\n return new MaskedNumber(opts);\r\n }\r\n if (mask instanceof Date || mask === Date) {\r\n delete opts.mask;\r\n if (opts.pattern) {\r\n opts.mask = opts.pattern;\r\n delete opts.pattern;\r\n }\r\n return new IMask.MaskedDate(opts);\r\n }\r\n if (mask instanceof Function){\r\n opts.validate = mask;\r\n return new Masked(opts);\r\n }\r\n\r\n console.warn('Mask not found for', opts); // eslint-disable-line no-console\r\n return new Masked(opts);\r\n}\r\n","import createMask from '../factory';\r\n\r\n\r\nexport default\r\nclass PatternDefinition {\r\n constructor(opts) {\r\n Object.assign(this, opts);\r\n\r\n if (this.mask) {\r\n this._masked = createMask(opts);\r\n }\r\n }\r\n\r\n reset () {\r\n this.isHollow = false;\r\n if (this._masked) this._masked.reset();\r\n }\r\n\r\n get isInput () {\r\n return this.type === PatternDefinition.TYPES.INPUT;\r\n }\r\n\r\n get isHiddenHollow () {\r\n return this.isHollow && this.optional;\r\n }\r\n\r\n resolve (ch) {\r\n if (!this._masked) return false;\r\n // TODO seems strange\r\n this._masked.value = ch;\r\n return this._masked.value;\r\n }\r\n}\r\n\r\nPatternDefinition.DEFAULTS = {\r\n '0': /\\d/,\r\n 'a': /[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/, // http://stackoverflow.com/a/22075070\r\n '*': /./\r\n};\r\nPatternDefinition.TYPES = {\r\n INPUT: 'input',\r\n FIXED: 'fixed'\r\n};\r\n","export default\r\nclass PatternGroup {\r\n constructor(masked, {name, offset, mask, validate}) {\r\n this.masked = masked;\r\n this.name = name;\r\n this.offset = offset;\r\n this.mask = mask;\r\n this.validate = validate || (() => true);\r\n }\r\n\r\n get value () {\r\n return this.masked.value.slice(\r\n this.masked.mapDefIndexToPos(this.offset),\r\n this.masked.mapDefIndexToPos(this.offset + this.mask.length));\r\n }\r\n\r\n get unmaskedValue () {\r\n return this.masked.extractInput(\r\n this.masked.mapDefIndexToPos(this.offset),\r\n this.masked.mapDefIndexToPos(this.offset + this.mask.length));\r\n }\r\n\r\n _validate (soft) {\r\n return this.validate(this.value, this, soft);\r\n }\r\n}\r\n\r\nexport\r\nclass RangeGroup {\r\n constructor ([from, to], maxlen=(to+'').length) {\r\n this._from = from;\r\n this._to = to;\r\n this._maxLength = maxlen;\r\n this.validate = this.validate.bind(this);\r\n\r\n this._update();\r\n }\r\n\r\n get to () {\r\n return this._to;\r\n }\r\n\r\n set to (to) {\r\n this._to = to;\r\n this._update();\r\n }\r\n\r\n get from () {\r\n return this._from;\r\n }\r\n\r\n set from (from) {\r\n this._from = from;\r\n this._update();\r\n }\r\n\r\n get maxLength () {\r\n return this._maxLength;\r\n }\r\n\r\n set maxLength (maxLength) {\r\n this._maxLength = maxLength;\r\n this._update();\r\n }\r\n\r\n get _matchFrom () {\r\n return this.maxLength - (this.from + '').length;\r\n }\r\n\r\n _update() {\r\n this._maxLength = Math.max(this._maxLength, (this.to + '').length);\r\n this.mask = '0'.repeat(this._maxLength);\r\n }\r\n\r\n validate (str) {\r\n let minstr = '';\r\n let maxstr = '';\r\n\r\n const [, placeholder, num] = str.match(/^(\\D*)(\\d*)(\\D*)/);\r\n if (num) {\r\n minstr = ('0'.repeat(placeholder.length) + num);\r\n maxstr = ('9'.repeat(placeholder.length) + num);\r\n }\r\n\r\n const firstNonZero = str.search(/[^0]/);\r\n if (firstNonZero === -1 && str.length <= this._matchFrom) return true;\r\n\r\n minstr = minstr.padEnd(this._maxLength, '0');\r\n maxstr = maxstr.padEnd(this._maxLength, '9');\r\n\r\n return this.from <= Number(maxstr) && Number(minstr) <= this.to;\r\n }\r\n}\r\n\r\nexport\r\nfunction EnumGroup (enums) {\r\n return {\r\n mask: '*'.repeat(enums[0].length),\r\n validate: (value, group) => enums.some(e => e.indexOf(group.unmaskedValue) >= 0)\r\n };\r\n}\r\n\r\nPatternGroup.Range = RangeGroup;\r\nPatternGroup.Enum = EnumGroup;\r\n","import {conform, DIRECTION, indexInDirection, refreshValueOnSet} from '../core/utils';\r\nimport Masked from './base';\r\nimport PatternDefinition from './pattern/definition';\r\nimport PatternGroup from './pattern/group';\r\n\r\n\r\nexport default\r\nclass MaskedPattern extends Masked {\r\n constructor (opts={}) {\r\n const {definitions, placeholder, groups} = opts;\r\n super(opts);\r\n delete this.isInitialized;\r\n\r\n this.placeholder = placeholder;\r\n this.definitions = definitions;\r\n this.groups = groups;\r\n\r\n this.isInitialized = true;\r\n }\r\n\r\n get placeholder () {\r\n return this._placeholder;\r\n }\r\n\r\n @refreshValueOnSet\r\n set placeholder (ph) {\r\n this._placeholder = {\r\n ...MaskedPattern.DEFAULT_PLACEHOLDER,\r\n ...ph\r\n };\r\n }\r\n\r\n get definitions () {\r\n return this._definitions;\r\n }\r\n\r\n @refreshValueOnSet\r\n set definitions (defs) {\r\n defs = {\r\n ...PatternDefinition.DEFAULTS,\r\n ...defs\r\n };\r\n\r\n this._definitions = defs;\r\n this._updateMask();\r\n }\r\n\r\n get mask () {\r\n return this._mask;\r\n }\r\n\r\n @refreshValueOnSet\r\n set mask (mask) {\r\n this._mask = mask;\r\n this._updateMask();\r\n }\r\n\r\n _updateMask () {\r\n const defs = this._definitions;\r\n this._charDefs = [];\r\n this._groupDefs = [];\r\n\r\n let pattern = this.mask;\r\n if (!pattern || !defs) return;\r\n\r\n let unmaskingBlock = false;\r\n let optionalBlock = false;\r\n let stopAlign = false;\r\n\r\n\r\n for (let i=0; i p.indexOf(gName) === 0);\r\n // order by key length\r\n gNames.sort((a, b) => b.length - a.length);\r\n // use group name with max length\r\n const gName = gNames[0];\r\n if (gName) {\r\n const group = this._groups[gName];\r\n this._groupDefs.push(new PatternGroup(this, {\r\n name: gName,\r\n offset: this._charDefs.length,\r\n mask: group.mask,\r\n validate: group.validate\r\n }));\r\n pattern = pattern.replace(gName, group.mask);\r\n }\r\n }\r\n\r\n let char = pattern[i];\r\n let type = !unmaskingBlock && char in defs ?\r\n PatternDefinition.TYPES.INPUT :\r\n PatternDefinition.TYPES.FIXED;\r\n const unmasking = type === PatternDefinition.TYPES.INPUT || unmaskingBlock;\r\n const optional = type === PatternDefinition.TYPES.INPUT && optionalBlock;\r\n\r\n if (char === MaskedPattern.STOP_CHAR) {\r\n stopAlign = true;\r\n continue;\r\n }\r\n\r\n if (char === '{' || char === '}') {\r\n unmaskingBlock = !unmaskingBlock;\r\n continue;\r\n }\r\n\r\n if (char === '[' || char === ']') {\r\n optionalBlock = !optionalBlock;\r\n continue;\r\n }\r\n\r\n if (char === MaskedPattern.ESCAPE_CHAR) {\r\n ++i;\r\n char = pattern[i];\r\n // TODO validation\r\n if (!char) break;\r\n type = PatternDefinition.TYPES.FIXED;\r\n }\r\n\r\n this._charDefs.push(new PatternDefinition({\r\n char,\r\n type,\r\n optional,\r\n stopAlign,\r\n mask: unmasking &&\r\n (type === PatternDefinition.TYPES.INPUT ?\r\n defs[char] :\r\n (value => value === char))\r\n }));\r\n\r\n stopAlign = false;\r\n }\r\n }\r\n\r\n _validate (soft) {\r\n return this._groupDefs.every(g => g._validate(soft)) && super._validate(soft);\r\n }\r\n\r\n clone () {\r\n const m = new MaskedPattern(this);\r\n m._value = this.value;\r\n m._charDefs.forEach((d, i) => Object.assign(d, this._charDefs[i]));\r\n m._groupDefs.forEach((d, i) => Object.assign(d, this._groupDefs[i]));\r\n return m;\r\n }\r\n\r\n reset () {\r\n super.reset();\r\n this._charDefs.forEach(d => {delete d.isHollow;});\r\n }\r\n\r\n get isComplete () {\r\n return !this._charDefs.some((d, i) =>\r\n d.isInput && !d.optional && (d.isHollow || !this.extractInput(i, i+1)));\r\n }\r\n\r\n hiddenHollowsBefore (defIndex) {\r\n return this._charDefs\r\n .slice(0, defIndex)\r\n .filter(d => d.isHiddenHollow)\r\n .length;\r\n }\r\n\r\n mapDefIndexToPos (defIndex) {\r\n if (defIndex == null) return;\r\n return defIndex - this.hiddenHollowsBefore(defIndex);\r\n }\r\n\r\n mapPosToDefIndex (pos) {\r\n if (pos == null) return;\r\n let defIndex = pos;\r\n for (let di=0; di= defIndex) break;\r\n if (def.isHiddenHollow) ++defIndex;\r\n }\r\n return defIndex;\r\n }\r\n\r\n _unmask () {\r\n const str = this.value;\r\n let unmasked = '';\r\n\r\n for (let ci=0, di=0; ci [d, i])\r\n .slice(fromDefIndex, toDefIndex)\r\n .filter(([d]) => d.stopAlign)\r\n .map(([, i]) => i);\r\n\r\n const stops = [\r\n fromDefIndex,\r\n ...stopDefIndices,\r\n toDefIndex\r\n ];\r\n\r\n return stops.map((s, i) => [\r\n stopDefIndices.indexOf(s) >= 0 ?\r\n s :\r\n null,\r\n\r\n this.extractInput(\r\n this.mapDefIndexToPos(s),\r\n this.mapDefIndexToPos(stops[++i]))\r\n ]).filter(([stop, input]) => stop != null || input);\r\n }\r\n\r\n _appendPlaceholder (toDefIndex) {\r\n const maxDefIndex = toDefIndex || this._charDefs.length;\r\n for (let di=this.mapPosToDefIndex(this.value.length); di < maxDefIndex; ++di) {\r\n const def = this._charDefs[di];\r\n if (def.isInput) def.isHollow = true;\r\n\r\n if (!this.placeholder.lazy || toDefIndex) {\r\n this._value += !def.isInput ?\r\n def.char :\r\n !def.optional ?\r\n this.placeholder.char :\r\n '';\r\n }\r\n }\r\n }\r\n\r\n clear (from=0, to=this.value.length) {\r\n this._value = this.value.slice(0, from) + this.value.slice(to);\r\n const fromDefIndex = this.mapPosToDefIndex(from);\r\n const toDefIndex = this.mapPosToDefIndex(to);\r\n this._charDefs\r\n .slice(fromDefIndex, toDefIndex)\r\n .forEach(d => d.reset());\r\n }\r\n\r\n nearestInputPos (cursorPos, direction=DIRECTION.LEFT) {\r\n if (!direction) return cursorPos;\r\n\r\n const initialDefIndex = this.mapPosToDefIndex(cursorPos);\r\n let di = initialDefIndex;\r\n\r\n let firstInputIndex,\r\n firstFilledInputIndex,\r\n firstVisibleHollowIndex,\r\n nextdi;\r\n\r\n // search forward\r\n for (nextdi = indexInDirection(di, direction); 0 <= nextdi && nextdi < this._charDefs.length; di += direction, nextdi += direction) {\r\n const nextDef = this._charDefs[nextdi];\r\n if (firstInputIndex == null && nextDef.isInput) firstInputIndex = di;\r\n if (firstVisibleHollowIndex == null && nextDef.isHollow && !nextDef.isHiddenHollow) firstVisibleHollowIndex = di;\r\n if (nextDef.isInput && !nextDef.isHollow) {\r\n firstFilledInputIndex = di;\r\n break;\r\n }\r\n }\r\n\r\n if (direction === DIRECTION.LEFT || firstInputIndex == null) {\r\n // search backwards\r\n direction = -direction;\r\n let overflow = false;\r\n\r\n // find hollows only before initial pos\r\n for (nextdi = indexInDirection(di, direction);\r\n 0 <= nextdi && nextdi < this._charDefs.length;\r\n di += direction, nextdi += direction)\r\n {\r\n const nextDef = this._charDefs[nextdi];\r\n if (nextDef.isInput) {\r\n firstInputIndex = di;\r\n if (nextDef.isHollow && !nextDef.isHiddenHollow) break;\r\n }\r\n\r\n // if hollow not found before start position - set `overflow`\r\n // and try to find just any input\r\n if (di === initialDefIndex) overflow = true;\r\n\r\n // first input found\r\n if (overflow && firstInputIndex != null) break;\r\n }\r\n\r\n // process overflow\r\n overflow = overflow || nextdi >= this._charDefs.length;\r\n if (overflow && firstInputIndex != null) di = firstInputIndex;\r\n } else if (firstFilledInputIndex == null) {\r\n // adjust index if delete at right and filled input not found at right\r\n di = firstVisibleHollowIndex != null ?\r\n firstVisibleHollowIndex :\r\n firstInputIndex;\r\n }\r\n\r\n return this.mapDefIndexToPos(di);\r\n }\r\n\r\n get groups () { return this._groups; }\r\n\r\n @refreshValueOnSet\r\n set groups (groups) {\r\n this._groups = groups;\r\n this._updateMask();\r\n }\r\n\r\n group (name) {\r\n return this.groupsByName(name)[0];\r\n }\r\n\r\n groupsByName (name) {\r\n return this._groupDefs.filter(g => g.name === name);\r\n }\r\n}\r\n\r\nMaskedPattern.DEFAULT_PLACEHOLDER = {\r\n lazy: true,\r\n char: '_'\r\n};\r\nMaskedPattern.STOP_CHAR = '`';\r\nMaskedPattern.ESCAPE_CHAR = '\\\\';\r\nMaskedPattern.Definition = PatternDefinition;\r\nMaskedPattern.Group = PatternGroup;\r\n","import {refreshValueOnSet} from '../core/utils';\r\nimport MaskedPattern from './pattern';\r\nimport PatternGroup from './pattern/group';\r\n\r\n\r\nexport default\r\nclass MaskedDate extends MaskedPattern {\r\n constructor (opts={}) {\r\n const groups = opts.groups;\r\n opts = Object.assign({}, MaskedDate.DEFAULTS, opts);\r\n const {min, max, format, parse} = opts;\r\n\r\n opts.groups = Object.assign({}, MaskedDate.DEFAULTS.groups);\r\n if (opts.groups.Y) {\r\n // adjust year group\r\n if (min) opts.groups.Y.from = min.getFullYear();\r\n if (max) opts.groups.Y.to = max.getFullYear();\r\n }\r\n\r\n Object.assign(opts.groups, groups);\r\n\r\n super(opts);\r\n delete this.isInitialized;\r\n\r\n this.min = min;\r\n this.max = max;\r\n this.format = format;\r\n this.parse = parse;\r\n\r\n this.isInitialized = true;\r\n }\r\n\r\n _validate (soft) {\r\n const valid = super._validate(soft);\r\n const date = this.date;\r\n\r\n return valid &&\r\n (!this.isComplete ||\r\n this.isDateExist(this.value) && date &&\r\n (this.min == null || this.min <= date) &&\r\n (this.max == null || date <= this.max));\r\n }\r\n\r\n isDateExist (str) {\r\n return this.format(this.parse(str)) === str;\r\n }\r\n\r\n get date () {\r\n return this.isComplete ?\r\n this.parse(this.value) :\r\n null;\r\n }\r\n\r\n set date (date) {\r\n this.value = this.format(date);\r\n }\r\n\r\n get min () {\r\n return this._min;\r\n }\r\n\r\n @refreshValueOnSet\r\n set min (min) {\r\n this._min = min;\r\n }\r\n\r\n get max () {\r\n return this._max;\r\n }\r\n\r\n @refreshValueOnSet\r\n set max (max) {\r\n this._max = max;\r\n }\r\n}\r\nMaskedDate.DEFAULTS = {\r\n mask: 'd{.}`m{.}`Y',\r\n format: date => {\r\n const day = ('' + date.getDate()).padStart(2, '0');\r\n const month = ('' + (date.getMonth() + 1)).padStart(2, '0');\r\n const year = date.getFullYear();\r\n\r\n return [day, month, year].join('.');\r\n },\r\n parse: str => {\r\n const [day, month, year] = str.split('.');\r\n return new Date(year, month - 1, day);\r\n },\r\n groups: {\r\n d: new PatternGroup.Range([1, 31]),\r\n m: new PatternGroup.Range([1, 12]),\r\n Y: new PatternGroup.Range([1900, 9999]),\r\n },\r\n};\r\n","import {DIRECTION} from './utils';\r\n\r\n\r\nexport default\r\nclass ActionDetails {\r\n constructor (value, cursorPos, oldValue, oldSelection) {\r\n this.value = value;\r\n this.cursorPos = cursorPos;\r\n this.oldValue = oldValue;\r\n this.oldSelection = oldSelection;\r\n }\r\n\r\n get startChangePos () {\r\n return Math.min(this.cursorPos, this.oldSelection.start);\r\n }\r\n\r\n get insertedCount () {\r\n return this.cursorPos - this.startChangePos;\r\n }\r\n\r\n get inserted () {\r\n return this.value.substr(this.startChangePos, this.insertedCount);\r\n }\r\n\r\n get removedCount () {\r\n // Math.max for opposite operation\r\n return Math.max((this.oldSelection.end - this.startChangePos) ||\r\n // for Delete\r\n this.oldValue.length - this.value.length, 0);\r\n }\r\n\r\n get removed () {\r\n return this.oldValue.substr(this.startChangePos, this.removedCount);\r\n }\r\n\r\n get head () {\r\n return this.value.substring(0, this.startChangePos);\r\n }\r\n\r\n get tail () {\r\n this.value.substring(this.startChangePos + this.insertedCount);\r\n }\r\n\r\n get removeDirection () {\r\n return this.removedCount &&\r\n ((this.oldSelection.end === this.cursorPos || this.insertedCount) ?\r\n DIRECTION.RIGHT :\r\n DIRECTION.LEFT);\r\n }\r\n}\r\n","import ActionDetails from '../core/action-details';\r\nimport createMask from '../masked/factory';\r\n\r\n\r\nexport default\r\nclass InputMask {\r\n constructor (el, opts) {\r\n this.el = el;\r\n this.masked = createMask(opts);\r\n\r\n this._listeners = {};\r\n this._value = '';\r\n this._unmaskedValue = '';\r\n\r\n this._saveSelection = this._saveSelection.bind(this);\r\n this._onInput = this._onInput.bind(this);\r\n this._onChange = this._onChange.bind(this);\r\n this._onDrop = this._onDrop.bind(this);\r\n this._alignCursor = this._alignCursor.bind(this);\r\n this._alignCursorFriendly = this._alignCursorFriendly.bind(this);\r\n\r\n this.bindEvents();\r\n\r\n // refresh\r\n this.updateValue();\r\n this._onChange();\r\n }\r\n\r\n get mask () { return this.masked.mask; }\r\n set mask (mask) {\r\n if (typeof mask === typeof this.masked.mask) {\r\n this.masked.mask = mask;\r\n return;\r\n }\r\n\r\n const unmasked = this.masked ? this.masked.unmaskedValue : null;\r\n this.masked = createMask({mask});\r\n if (unmasked != null) this.masked.unmaskedValue = unmasked;\r\n }\r\n\r\n get value () {\r\n return this._value;\r\n }\r\n\r\n set value (str) {\r\n this.masked.value = str;\r\n this.updateControl();\r\n this._alignCursor();\r\n }\r\n\r\n get unmaskedValue () {\r\n return this._unmaskedValue;\r\n }\r\n\r\n set unmaskedValue (str) {\r\n this.masked.unmaskedValue = str;\r\n this.updateControl();\r\n this._alignCursor();\r\n }\r\n\r\n bindEvents () {\r\n this.el.addEventListener('keydown', this._saveSelection);\r\n this.el.addEventListener('input', this._onInput);\r\n this.el.addEventListener('drop', this._onDrop);\r\n this.el.addEventListener('click', this._alignCursorFriendly);\r\n this.el.addEventListener('change', this._onChange);\r\n }\r\n\r\n unbindEvents () {\r\n this.el.removeEventListener('keydown', this._saveSelection);\r\n this.el.removeEventListener('input', this._onInput);\r\n this.el.removeEventListener('drop', this._onDrop);\r\n this.el.removeEventListener('click', this._alignCursorFriendly);\r\n this.el.removeEventListener('change', this._onChange);\r\n }\r\n\r\n fireEvent (ev) {\r\n const listeners = this._listeners[ev] || [];\r\n listeners.forEach(l => l());\r\n }\r\n\r\n get selectionStart () {\r\n return this._cursorChanging ?\r\n this._changingCursorPos :\r\n\r\n this.el.selectionStart;\r\n }\r\n\r\n get cursorPos () {\r\n return this._cursorChanging ?\r\n this._changingCursorPos :\r\n\r\n this.el.selectionEnd;\r\n }\r\n\r\n set cursorPos (pos) {\r\n if (this.el !== document.activeElement) return;\r\n\r\n this.el.setSelectionRange(pos, pos);\r\n this._saveSelection();\r\n }\r\n\r\n _saveSelection (/* ev */) {\r\n if (this.value !== this.el.value) {\r\n console.warn('Uncontrolled input change, refresh mask manually!'); // eslint-disable-line no-console\r\n }\r\n this._selection = {\r\n start: this.selectionStart,\r\n end: this.cursorPos\r\n };\r\n }\r\n\r\n updateValue () {\r\n this.masked.value = this.el.value;\r\n }\r\n\r\n updateControl () {\r\n const newUnmaskedValue = this.masked.unmaskedValue;\r\n const newValue = this.masked.value;\r\n const isChanged = (this.unmaskedValue !== newUnmaskedValue ||\r\n this.value !== newValue);\r\n\r\n this._unmaskedValue = newUnmaskedValue;\r\n this._value = newValue;\r\n\r\n if (this.el.value !== newValue) this.el.value = newValue;\r\n if (isChanged) this._fireChangeEvents();\r\n }\r\n\r\n updateOptions (opts) {\r\n const mask = opts.mask;\r\n if (mask) this.mask = mask;\r\n\r\n this.masked.withValueRefresh(() => {\r\n for (const k in opts) {\r\n if (k === 'mask') continue;\r\n this.masked[k] = opts[k];\r\n }\r\n });\r\n\r\n this.updateControl();\r\n }\r\n\r\n updateCursor (cursorPos) {\r\n if (cursorPos == null) return;\r\n this.cursorPos = cursorPos;\r\n\r\n // also queue change cursor for mobile browsers\r\n this._delayUpdateCursor(cursorPos);\r\n }\r\n\r\n _delayUpdateCursor (cursorPos) {\r\n this._abortUpdateCursor();\r\n this._changingCursorPos = cursorPos;\r\n this._cursorChanging = setTimeout(() => {\r\n this.cursorPos = this._changingCursorPos;\r\n this._abortUpdateCursor();\r\n }, 10);\r\n }\r\n\r\n _fireChangeEvents () {\r\n this.fireEvent('accept');\r\n if (this.masked.isComplete) this.fireEvent('complete');\r\n }\r\n\r\n _abortUpdateCursor () {\r\n if (this._cursorChanging) {\r\n clearTimeout(this._cursorChanging);\r\n delete this._cursorChanging;\r\n }\r\n }\r\n\r\n _alignCursor () {\r\n this.cursorPos = this.masked.nearestInputPos(this.cursorPos);\r\n }\r\n\r\n _alignCursorFriendly () {\r\n if (this.selectionStart !== this.cursorPos) return;\r\n this._alignCursor();\r\n }\r\n\r\n on (ev, handler) {\r\n if (!this._listeners[ev]) this._listeners[ev] = [];\r\n this._listeners[ev].push(handler);\r\n return this;\r\n }\r\n\r\n off (ev, handler) {\r\n if (!this._listeners[ev]) return;\r\n if (!handler) {\r\n delete this._listeners[ev];\r\n return;\r\n }\r\n const hIndex = this._listeners[ev].indexOf(handler);\r\n if (hIndex >= 0) this._listeners.splice(hIndex, 1);\r\n return this;\r\n }\r\n\r\n _onInput () {\r\n this._abortUpdateCursor();\r\n\r\n const details = new ActionDetails(\r\n // new state\r\n this.el.value, this.cursorPos,\r\n // old state\r\n this.value, this._selection);\r\n\r\n const tailPos = details.startChangePos + details.removed.length;\r\n const tail = this.masked.extractTail(tailPos);\r\n\r\n const lastInputPos = this.masked.nearestInputPos(details.startChangePos, details.removeDirection);\r\n this.masked.clear(lastInputPos);\r\n const insertedCount = this.masked.appendWithTail(details.inserted, tail);\r\n\r\n\r\n const cursorPos = this.masked.nearestInputPos(\r\n lastInputPos + insertedCount,\r\n details.removeDirection);\r\n\r\n this.updateControl();\r\n this.updateCursor(cursorPos);\r\n }\r\n\r\n _onChange () {\r\n if (this.value !== this.el.value) {\r\n this.updateValue();\r\n }\r\n this.masked.commit();\r\n this.updateControl();\r\n }\r\n\r\n _onDrop (ev) {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n }\r\n\r\n destroy () {\r\n this.unbindEvents();\r\n this._listeners.length = 0;\r\n }\r\n}\r\n","import 'core-js/fn/array/find';\r\nimport 'core-js/fn/object/keys';\r\nimport 'core-js/fn/string/repeat';\r\nimport 'core-js/fn/string/pad-start';\r\nimport 'core-js/fn/string/pad-end';\r\n\r\n\r\nimport Masked from './masked/base';\r\nimport MaskedPattern from './masked/pattern';\r\nimport MaskedNumber from './masked/number';\r\nimport MaskedDate from './masked/date';\r\n\r\nimport InputMask from './controls/input';\r\n\r\n\r\nexport default\r\nfunction IMask (el, opts={}) {\r\n\t// currently available only for input elements\r\n return new InputMask(el, opts);\r\n}\r\n\r\n\r\nIMask.InputMask = InputMask;\r\n\r\nIMask.Masked = Masked;\r\nIMask.MaskedPattern = MaskedPattern;\r\nIMask.MaskedNumber = MaskedNumber;\r\nIMask.MaskedDate = MaskedDate;\r\n\r\nwindow.IMask = IMask;\r\n"],"names":["isObject","require$$0","document","require$$1","require$$2","anObject","toPrimitive","IE8_DOM_DEFINE","dP","createDesc","has","hide","global","aFunction","core","ctx","redefine","cof","defined","toInteger","uid","isArray","speciesConstructor","asc","toObject","IObject","toLength","$export","min","toIObject","toIndex","$keys","enumBugKeys","fails","repeat","$pad","isString","str","String","conform","res","fallback","DIRECTION","indexInDirection","pos","direction","LEFT","refreshValueOnSet","target","key","descriptor","method","set","args","withValueRefresh","bind","escapeRegExp","replace","Masked","mask","validate","_value","isInitialized","_validate","soft","value","clone","m","slice","reset","nearestInputPos","cursorPos","extractInput","fromPos","toPos","length","extractTail","_appendTail","tail","_append","oldValueLength","consistentValue","ci","appendWithTail","appendCount","consistentAppended","ch","appended","tailAppended","_unmask","clear","from","to","fn","_refreshing","unmasked","unmaskedValue","ret","commit","_mask","MaskedNumber","opts","babelHelpers.extends","DEFAULTS","scale","radix","mapToRadix","max","signed","thousandsSeparator","postFormat","_updateNumberRegExp","regExpStrSoft","regExpStr","_numberRegExpSoft","RegExp","_numberRegExp","_removeThousandsSeparators","_thousandsSeparatorRegExp","_insertThousandsSeparators","parts","split","join","_mapToRadixRegExp","removedSeparatorsCount","beforeTailPos","insertedSeparatorsBeforeTailCount","nextPos","regexp","valid","test","number","isNaN","validnum","Math","formatted","normalizeZeros","_normalizeZeros","padFractionalZeros","_padFractionalZeros","match","sign","zeros","num","push","padEnd","numstr","Number","_min","_max","_scale","_radix","_signed","_postFormat","_mapToRadix","map","_thousandsSeparator","createMask","IMask","MaskedPattern","prototype","Date","pattern","MaskedDate","Function","warn","PatternDefinition","_masked","isHollow","resolve","type","TYPES","INPUT","optional","PatternGroup","masked","name","offset","mapDefIndexToPos","RangeGroup","maxlen","_from","_to","_maxLength","_update","minstr","maxstr","placeholder","firstNonZero","search","_matchFrom","maxLength","EnumGroup","enums","group","some","e","indexOf","Range","Enum","definitions","groups","_updateMask","defs","_definitions","_charDefs","_groupDefs","unmaskingBlock","optionalBlock","stopAlign","_groups","p","i","gNames","Object","keys","filter","gName","sort","a","b","char","FIXED","unmasking","STOP_CHAR","ESCAPE_CHAR","every","g","forEach","d","hiddenHollowsBefore","defIndex","isHiddenHollow","mapPosToDefIndex","di","def","_appendChunks","_appendPlaceholder","resolved","skipped","chres","chunks","fromDefIndex","input","extractInputChunks","toDefIndex","isInput","stopDefIndices","stops","s","stop","maxDefIndex","lazy","initialDefIndex","firstInputIndex","firstFilledInputIndex","firstVisibleHollowIndex","nextdi","nextDef","overflow","groupsByName","_placeholder","ph","DEFAULT_PLACEHOLDER","Definition","Group","format","parse","Y","getFullYear","date","isComplete","isDateExist","day","getDate","padStart","month","getMonth","year","ActionDetails","oldValue","oldSelection","start","startChangePos","substr","insertedCount","end","removedCount","substring","RIGHT","InputMask","el","_listeners","_unmaskedValue","_saveSelection","_onInput","_onChange","_onDrop","_alignCursor","_alignCursorFriendly","bindEvents","updateValue","addEventListener","unbindEvents","removeEventListener","fireEvent","ev","listeners","l","_selection","selectionStart","updateControl","newUnmaskedValue","newValue","isChanged","_fireChangeEvents","updateOptions","k","updateCursor","_delayUpdateCursor","_abortUpdateCursor","_changingCursorPos","_cursorChanging","setTimeout","on","handler","off","hIndex","splice","details","tailPos","removed","lastInputPos","removeDirection","inserted","preventDefault","stopPropagation","destroy","selectionEnd","activeElement","setSelectionRange","window"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"imask.js","sources":["../node_modules/core-js/modules/_global.js","../node_modules/core-js/modules/_core.js","../node_modules/core-js/modules/_is-object.js","../node_modules/core-js/modules/_an-object.js","../node_modules/core-js/modules/_fails.js","../node_modules/core-js/modules/_descriptors.js","../node_modules/core-js/modules/_dom-create.js","../node_modules/core-js/modules/_ie8-dom-define.js","../node_modules/core-js/modules/_to-primitive.js","../node_modules/core-js/modules/_object-dp.js","../node_modules/core-js/modules/_property-desc.js","../node_modules/core-js/modules/_hide.js","../node_modules/core-js/modules/_has.js","../node_modules/core-js/modules/_uid.js","../node_modules/core-js/modules/_redefine.js","../node_modules/core-js/modules/_a-function.js","../node_modules/core-js/modules/_ctx.js","../node_modules/core-js/modules/_export.js","../node_modules/core-js/modules/_cof.js","../node_modules/core-js/modules/_iobject.js","../node_modules/core-js/modules/_defined.js","../node_modules/core-js/modules/_to-object.js","../node_modules/core-js/modules/_to-integer.js","../node_modules/core-js/modules/_to-length.js","../node_modules/core-js/modules/_is-array.js","../node_modules/core-js/modules/_shared.js","../node_modules/core-js/modules/_wks.js","../node_modules/core-js/modules/_array-species-constructor.js","../node_modules/core-js/modules/_array-species-create.js","../node_modules/core-js/modules/_array-methods.js","../node_modules/core-js/modules/_add-to-unscopables.js","../node_modules/core-js/modules/es6.array.find.js","../node_modules/core-js/modules/_to-iobject.js","../node_modules/core-js/modules/_to-index.js","../node_modules/core-js/modules/_array-includes.js","../node_modules/core-js/modules/_shared-key.js","../node_modules/core-js/modules/_object-keys-internal.js","../node_modules/core-js/modules/_enum-bug-keys.js","../node_modules/core-js/modules/_object-keys.js","../node_modules/core-js/modules/_object-sap.js","../node_modules/core-js/modules/es6.object.keys.js","../node_modules/core-js/modules/_string-repeat.js","../node_modules/core-js/modules/es6.string.repeat.js","../node_modules/core-js/modules/_string-pad.js","../node_modules/core-js/modules/es7.string.pad-start.js","../node_modules/core-js/modules/es7.string.pad-end.js","../src/core/utils.js","../src/masked/base.js","../src/masked/number.js","../src/masked/factory.js","../src/masked/pattern/definition.js","../src/masked/pattern/group.js","../src/masked/pattern.js","../src/masked/date.js","../src/core/action-details.js","../src/controls/input.js","../src/imask.js"],"sourcesContent":["// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef","var core = module.exports = {version: '2.4.0'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};","var isObject = require('./_is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});","var isObject = require('./_is-object')\n , document = require('./_global').document\n // in old IE typeof document.createElement is 'object'\n , is = isObject(document) && isObject(document.createElement);\nmodule.exports = function(it){\n return is ? document.createElement(it) : {};\n};","module.exports = !require('./_descriptors') && !require('./_fails')(function(){\n return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;\n});","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function(it, S){\n if(!isObject(it))return it;\n var fn, val;\n if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;\n if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};","var anObject = require('./_an-object')\n , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n , toPrimitive = require('./_to-primitive')\n , dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if(IE8_DOM_DEFINE)try {\n return dP(O, P, Attributes);\n } catch(e){ /* empty */ }\n if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');\n if('value' in Attributes)O[P] = Attributes.value;\n return O;\n};","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};","var dP = require('./_object-dp')\n , createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function(object, key, value){\n return dP.f(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};","var id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};","var global = require('./_global')\n , hide = require('./_hide')\n , has = require('./_has')\n , SRC = require('./_uid')('src')\n , TO_STRING = 'toString'\n , $toString = Function[TO_STRING]\n , TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function(it){\n return $toString.call(it);\n};\n\n(module.exports = function(O, key, val, safe){\n var isFunction = typeof val == 'function';\n if(isFunction)has(val, 'name') || hide(val, 'name', key);\n if(O[key] === val)return;\n if(isFunction)has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if(O === global){\n O[key] = val;\n } else {\n if(!safe){\n delete O[key];\n hide(O, key, val);\n } else {\n if(O[key])O[key] = val;\n else hide(O, key, val);\n }\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString(){\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};","var global = require('./_global')\n , core = require('./_core')\n , hide = require('./_hide')\n , redefine = require('./_redefine')\n , ctx = require('./_ctx')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {})\n , key, own, out, exp;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if(target)redefine(target, key, out, type & $export.U);\n // export\n if(exports[key] != out)hide(exports, key, exp);\n if(IS_PROTO && expProto[key] != out)expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library` \nmodule.exports = $export;","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n return it;\n};","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function(it){\n return Object(defined(it));\n};","// 7.1.4 ToInteger\nvar ceil = Math.ceil\n , floor = Math.floor;\nmodule.exports = function(it){\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer')\n , min = Math.min;\nmodule.exports = function(it){\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};","var global = require('./_global')\n , SHARED = '__core-js_shared__'\n , store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n return store[key] || (store[key] = {});\n};","var store = require('./_shared')('wks')\n , uid = require('./_uid')\n , Symbol = require('./_global').Symbol\n , USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function(name){\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;","var isObject = require('./_is-object')\n , isArray = require('./_is-array')\n , SPECIES = require('./_wks')('species');\n\nmodule.exports = function(original){\n var C;\n if(isArray(original)){\n C = original.constructor;\n // cross-realm fallback\n if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;\n if(isObject(C)){\n C = C[SPECIES];\n if(C === null)C = undefined;\n }\n } return C === undefined ? Array : C;\n};","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function(original, length){\n return new (speciesConstructor(original))(length);\n};","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx')\n , IObject = require('./_iobject')\n , toObject = require('./_to-object')\n , toLength = require('./_to-length')\n , asc = require('./_array-species-create');\nmodule.exports = function(TYPE, $create){\n var IS_MAP = TYPE == 1\n , IS_FILTER = TYPE == 2\n , IS_SOME = TYPE == 3\n , IS_EVERY = TYPE == 4\n , IS_FIND_INDEX = TYPE == 6\n , NO_HOLES = TYPE == 5 || IS_FIND_INDEX\n , create = $create || asc;\n return function($this, callbackfn, that){\n var O = toObject($this)\n , self = IObject(O)\n , f = ctx(callbackfn, that, 3)\n , length = toLength(self.length)\n , index = 0\n , result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined\n , val, res;\n for(;length > index; index++)if(NO_HOLES || index in self){\n val = self[index];\n res = f(val, index, O);\n if(TYPE){\n if(IS_MAP)result[index] = res; // map\n else if(res)switch(TYPE){\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if(IS_EVERY)return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables')\n , ArrayProto = Array.prototype;\nif(ArrayProto[UNSCOPABLES] == undefined)require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function(key){\n ArrayProto[UNSCOPABLES][key] = true;\n};","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export')\n , $find = require('./_array-methods')(5)\n , KEY = 'find'\n , forced = true;\n// Shouldn't skip holes\nif(KEY in [])Array(1)[KEY](function(){ forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn/*, that = undefined */){\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject')\n , defined = require('./_defined');\nmodule.exports = function(it){\n return IObject(defined(it));\n};","var toInteger = require('./_to-integer')\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};","var shared = require('./_shared')('keys')\n , uid = require('./_uid');\nmodule.exports = function(key){\n return shared[key] || (shared[key] = uid(key));\n};","var has = require('./_has')\n , toIObject = require('./_to-iobject')\n , arrayIndexOf = require('./_array-includes')(false)\n , IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function(object, names){\n var O = toIObject(object)\n , i = 0\n , result = []\n , key;\n for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while(names.length > i)if(has(O, key = names[i++])){\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal')\n , enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O){\n return $keys(O, enumBugKeys);\n};","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export')\n , core = require('./_core')\n , fails = require('./_fails');\nmodule.exports = function(KEY, exec){\n var fn = (core.Object || {})[KEY] || Object[KEY]\n , exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object')\n , $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});","'use strict';\nvar toInteger = require('./_to-integer')\n , defined = require('./_defined');\n\nmodule.exports = function repeat(count){\n var str = String(defined(this))\n , res = ''\n , n = toInteger(count);\n if(n < 0 || n == Infinity)throw RangeError(\"Count can't be negative\");\n for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str;\n return res;\n};","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('./_to-length')\n , repeat = require('./_string-repeat')\n , defined = require('./_defined');\n\nmodule.exports = function(that, maxLength, fillString, left){\n var S = String(defined(that))\n , stringLength = S.length\n , fillStr = fillString === undefined ? ' ' : String(fillString)\n , intMaxLength = toLength(maxLength);\n if(intMaxLength <= stringLength || fillStr == '')return S;\n var fillLen = intMaxLength - stringLength\n , stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));\n if(stringFiller.length > fillLen)stringFiller = stringFiller.slice(0, fillLen);\n return left ? stringFiller + S : S + stringFiller;\n};\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export')\n , $pad = require('./_string-pad');\n\n$export($export.P, 'String', {\n padStart: function padStart(maxLength /*, fillString = ' ' */){\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n }\n});","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export')\n , $pad = require('./_string-pad');\n\n$export($export.P, 'String', {\n padEnd: function padEnd(maxLength /*, fillString = ' ' */){\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n }\n});","export\r\nfunction isString (str) {\r\n return typeof str === 'string' || str instanceof String;\r\n}\r\n\r\nexport\r\nfunction conform (res, str, fallback='') {\r\n return isString(res) ?\r\n res :\r\n res ?\r\n str :\r\n fallback;\r\n}\r\n\r\nexport\r\nconst DIRECTION = {\r\n NONE: 0,\r\n LEFT: -1,\r\n RIGHT: 1\r\n}\r\n\r\nexport\r\nfunction indexInDirection (pos, direction) {\r\n if (direction === DIRECTION.LEFT) --pos;\r\n return pos;\r\n}\r\n\r\nexport\r\nfunction refreshValueOnSet (target, key, descriptor) {\r\n const method = descriptor.set;\r\n descriptor.set = function (...args) {\r\n return this.withValueRefresh(method.bind(this, ...args));\r\n };\r\n}\r\n\r\nexport\r\nfunction escapeRegExp (str) {\r\n return str.replace(/([.*+?^=!:${}()|\\[\\]\\/\\\\])/g, '\\\\$1');\r\n}\r\n","import {refreshValueOnSet} from '../core/utils';\r\n\r\n\r\nexport default\r\nclass Masked {\r\n constructor ({\r\n mask,\r\n prepare=((val) => val),\r\n validate=(() => true),\r\n commit=(() => {}),\r\n }) {\r\n this._value = '';\r\n this.mask = mask;\r\n this.prepare = prepare;\r\n this.validate = validate;\r\n this.commit = commit;\r\n this.isInitialized = true;\r\n }\r\n\r\n get mask () {\r\n return this._mask;\r\n }\r\n\r\n @refreshValueOnSet\r\n set mask (mask) {\r\n this._mask = mask;\r\n }\r\n\r\n get prepare () {\r\n return this._prepare;\r\n }\r\n\r\n @refreshValueOnSet\r\n set prepare (prepare) {\r\n this._prepare = prepare;\r\n }\r\n\r\n get validate () {\r\n return this._validate;\r\n }\r\n\r\n @refreshValueOnSet\r\n set validate (validate) {\r\n this._validate = validate;\r\n }\r\n\r\n get commit () {\r\n return this._commit;\r\n }\r\n\r\n @refreshValueOnSet\r\n set commit (commit) {\r\n this._commit = commit;\r\n }\r\n\r\n clone () {\r\n const m = new Masked(this);\r\n m._value = this.value.slice();\r\n return m;\r\n }\r\n\r\n reset () {\r\n this._value = '';\r\n }\r\n\r\n get value () {\r\n return this._value;\r\n }\r\n\r\n set value (value) {\r\n this.reset();\r\n this.appendWithTail(value);\r\n this.doCommit();\r\n }\r\n\r\n get unmaskedValue () {\r\n return this._unmask();\r\n }\r\n\r\n set unmaskedValue (value) {\r\n this.reset();\r\n this._append(value);\r\n this.appendWithTail(\"\");\r\n this.doCommit();\r\n }\r\n\r\n get isComplete () {\r\n return true;\r\n }\r\n\r\n nearestInputPos (cursorPos, /* direction */) {\r\n return cursorPos;\r\n }\r\n\r\n extractInput (fromPos=0, toPos=this.value.length) {\r\n return this.value.slice(fromPos, toPos);\r\n }\r\n\r\n extractTail (fromPos=0, toPos=this.value.length) {\r\n return this.extractInput(fromPos, toPos);\r\n }\r\n\r\n _appendTail (tail) {\r\n return !tail || this._append(tail);\r\n }\r\n\r\n _append (str, soft) {\r\n const oldValueLength = this.value.length;\r\n let consistentValue = this.clone();\r\n\r\n str = this.doPrepare(str, soft);\r\n for (let ci=0; ci outputRaw\r\n\r\n // TODO\r\n // insert (str, fromPos, soft)\r\n\r\n // splice (start, deleteCount, inserted, removeDirection) {\r\n // const tailPos = start + deleteCount;\r\n // const tail = this.extractTail(tailPos);\r\n\r\n // start = this.nearestInputPos(start, removeDirection);\r\n // this.clear(start);\r\n // return this.appendWithTail(inserted, tail);\r\n // }\r\n}\r\n","import {escapeRegExp, refreshValueOnSet, DIRECTION, indexInDirection} from '../core/utils';\r\nimport Masked from './base';\r\n\r\n\r\nexport default\r\nclass MaskedNumber extends Masked {\r\n constructor (opts={}) {\r\n opts = Object.assign({}, MaskedNumber.DEFAULTS, opts);\r\n super(opts);\r\n delete this.isInitialized;\r\n\r\n const {scale, radix, mapToRadix, min, max, signed, thousandsSeparator, postFormat} = opts;\r\n\r\n this.min = min;\r\n this.max = max;\r\n this.scale = scale;\r\n this.radix = radix;\r\n this.mapToRadix = mapToRadix;\r\n this.signed = signed;\r\n this.thousandsSeparator = thousandsSeparator;\r\n this.postFormat = postFormat;\r\n\r\n this._updateNumberRegExp();\r\n\r\n this.isInitialized = true;\r\n }\r\n\r\n _updateNumberRegExp () {\r\n // TODO refactor?\r\n let regExpStrSoft = '^';\r\n let regExpStr = '^';\r\n\r\n if (this.signed) {\r\n regExpStrSoft += '([+|\\\\-]?|([+|\\\\-]?(0|([1-9]+\\\\d*))))';\r\n regExpStr += '[+|\\\\-]?';\r\n } else {\r\n regExpStrSoft += '(0|([1-9]+\\\\d*))';\r\n }\r\n regExpStr += '\\\\d*';\r\n\r\n if (this.scale) {\r\n regExpStrSoft += '(' + this.radix + '\\\\d{0,' + this.scale + '})?';\r\n regExpStr += '(' + this.radix + '\\\\d{0,' + this.scale + '})?';\r\n }\r\n\r\n regExpStrSoft += '$';\r\n regExpStr += '$';\r\n\r\n this._numberRegExpSoft = new RegExp(regExpStrSoft);\r\n this._numberRegExp = new RegExp(regExpStr)\r\n }\r\n\r\n extractTail (fromPos=0, toPos=this.value.length) {\r\n return this._removeThousandsSeparators(super.extractTail(fromPos, toPos));\r\n }\r\n\r\n _removeThousandsSeparators (value) {\r\n return value.replace(this._thousandsSeparatorRegExp, '');\r\n }\r\n\r\n _insertThousandsSeparators (value) {\r\n // https://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript\r\n const parts = value.split(this.radix);\r\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, this.thousandsSeparator);\r\n return parts.join(this.radix);\r\n }\r\n\r\n doPrepare (str, soft) {\r\n return super.doPrepare(this._removeThousandsSeparators(str.replace(this._mapToRadixRegExp, this.radix)), soft);\r\n }\r\n\r\n appendWithTail (str, tail) {\r\n const oldValueLength = this.value.length;\r\n this._value = this._removeThousandsSeparators(this.value);\r\n let removedSeparatorsCount = oldValueLength - this.value.length;\r\n\r\n\r\n const appended = super.appendWithTail(str, tail);\r\n\r\n\r\n this._value = this._insertThousandsSeparators(this.value);\r\n\r\n let beforeTailPos = oldValueLength + appended - removedSeparatorsCount;\r\n this._value = this._insertThousandsSeparators(this.value);\r\n let insertedSeparatorsBeforeTailCount = 0;\r\n for (let pos = 0; pos <= beforeTailPos; ++pos) {\r\n if (this.value[pos] === this.thousandsSeparator) {\r\n ++insertedSeparatorsBeforeTailCount;\r\n ++beforeTailPos;\r\n }\r\n }\r\n\r\n return appended - removedSeparatorsCount + insertedSeparatorsBeforeTailCount;\r\n }\r\n\r\n nearestInputPos (cursorPos, direction=DIRECTION.LEFT) {\r\n if (!direction) return cursorPos;\r\n\r\n const nextPos = indexInDirection(cursorPos, direction);\r\n if (this.value[nextPos] === this.thousandsSeparator) cursorPos += direction;\r\n return cursorPos;\r\n }\r\n\r\n doValidate (soft) {\r\n const regexp = soft ? this._numberRegExpSoft : this._numberRegExp;\r\n\r\n // validate as string\r\n let valid = regexp.test(this._removeThousandsSeparators(this.value));\r\n\r\n if (valid) {\r\n // validate as number\r\n const number = this.number;\r\n valid = valid && !isNaN(number) &&\r\n // check min bound for negative values\r\n (this.min == null || this.min >= 0 || this.min <= this.number) &&\r\n // check max bound for positive values\r\n (this.max == null || this.max <= 0 || this.number <= this.max);\r\n }\r\n\r\n return valid && super.doValidate(soft);\r\n }\r\n\r\n doCommit () {\r\n const number = this.number;\r\n let validnum = number;\r\n\r\n // check bounds\r\n if (this.min != null) validnum = Math.max(validnum, this.min);\r\n if (this.max != null) validnum = Math.min(validnum, this.max);\r\n\r\n if (validnum !== number) {\r\n this.unmaskedValue = '' + validnum;\r\n }\r\n\r\n let formatted = this.value;\r\n\r\n if (this.postFormat.normalizeZeros) {\r\n formatted = this._normalizeZeros(formatted);\r\n }\r\n\r\n if (this.postFormat.padFractionalZeros) {\r\n formatted = this._padFractionalZeros(formatted);\r\n }\r\n\r\n this._value = formatted;\r\n super.doCommit();\r\n }\r\n\r\n _normalizeZeros (value) {\r\n const parts = this._removeThousandsSeparators(value).split(this.radix);\r\n\r\n // remove leading zeros\r\n parts[0] = parts[0].replace(/^(\\D*)(0*)(\\d*)/, (match, sign, zeros, num) => sign + num);\r\n // add leading zero\r\n if (value.length && !/\\d$/.test(parts[0])) parts[0] = parts[0] + '0';\r\n\r\n if (parts.length > 1) {\r\n parts[1] = parts[1].replace(/0*$/, ''); // remove trailing zeros\r\n if (!parts[1].length) parts.length = 1; // remove fractional\r\n }\r\n\r\n return this._insertThousandsSeparators(parts.join(this.radix));\r\n }\r\n\r\n _padFractionalZeros (value) {\r\n const parts = value.split(this.radix);\r\n if (parts.length < 2) parts.push('');\r\n parts[1] = parts[1].padEnd(this.scale, '0');\r\n return parts.join(this.radix);\r\n }\r\n\r\n get number () {\r\n let numstr =\r\n this._removeThousandsSeparators(\r\n this._normalizeZeros(\r\n this.unmaskedValue))\r\n .replace(this.radix, '.');\r\n\r\n return Number(numstr);\r\n }\r\n\r\n set number (number) {\r\n this.unmaskedValue = '' + number;\r\n }\r\n\r\n get min () {\r\n return this._min;\r\n }\r\n\r\n @refreshValueOnSet\r\n set min (min) {\r\n this._min = min;\r\n }\r\n\r\n get max () {\r\n return this._max;\r\n }\r\n\r\n @refreshValueOnSet\r\n set max (max) {\r\n this._max = max;\r\n }\r\n\r\n get scale () {\r\n return this._scale;\r\n }\r\n\r\n @refreshValueOnSet\r\n set scale (scale) {\r\n this._scale = scale;\r\n }\r\n\r\n get radix () {\r\n return this._radix;\r\n }\r\n\r\n @refreshValueOnSet\r\n set radix (radix) {\r\n this._radix = radix;\r\n this._updateNumberRegExp();\r\n }\r\n\r\n get signed () {\r\n return this._signed || (this.min != null && this.min < 0) || (this.max != null && this.max < 0);\r\n }\r\n\r\n @refreshValueOnSet\r\n set signed (signed) {\r\n this._signed = signed;\r\n }\r\n\r\n get postFormat () {\r\n return this._postFormat;\r\n }\r\n\r\n @refreshValueOnSet\r\n set postFormat (postFormat) {\r\n this._postFormat = {\r\n ...MaskedNumber.DEFAULTS.postFormat,\r\n ...postFormat\r\n };\r\n }\r\n\r\n get mapToRadix () {\r\n return this._mapToRadix;\r\n }\r\n\r\n @refreshValueOnSet\r\n set mapToRadix (mapToRadix) {\r\n this._mapToRadix = mapToRadix;\r\n this._mapToRadixRegExp = new RegExp('[' +\r\n mapToRadix.map(escapeRegExp).join('') +\r\n ']', 'g');\r\n }\r\n\r\n get thousandsSeparator () {\r\n return this._thousandsSeparator;\r\n }\r\n\r\n @refreshValueOnSet\r\n set thousandsSeparator (thousandsSeparator) {\r\n this._thousandsSeparator = thousandsSeparator;\r\n this._thousandsSeparatorRegExp = new RegExp(escapeRegExp(thousandsSeparator), 'g');\r\n }\r\n}\r\nMaskedNumber.DEFAULTS = {\r\n radix: ',',\r\n thousandsSeparator: '',\r\n mapToRadix: ['.'],\r\n scale: 2,\r\n postFormat: {\r\n normalizeZeros: true,\r\n }\r\n};\r\n","import {isString} from '../core/utils';\r\nimport Masked from './base';\r\nimport MaskedNumber from './number';\r\n\r\n\r\nexport default\r\nfunction createMask (opts) {\r\n opts = Object.assign({}, opts); // clone\r\n\r\n const mask = opts.mask;\r\n\r\n if (mask instanceof Masked) {\r\n return mask;\r\n }\r\n if (mask instanceof RegExp) {\r\n opts.validate = (value) => mask.test(value);\r\n return new Masked(opts);\r\n }\r\n if (isString(mask)) {\r\n return new IMask.MaskedPattern(opts);\r\n }\r\n if (mask.prototype instanceof Masked) {\r\n delete opts.mask;\r\n return new mask(opts);\r\n }\r\n if (mask instanceof Number || typeof mask === 'number' || mask === Number) {\r\n delete opts.mask;\r\n return new MaskedNumber(opts);\r\n }\r\n if (mask instanceof Date || mask === Date) {\r\n delete opts.mask;\r\n if (opts.pattern) {\r\n opts.mask = opts.pattern;\r\n delete opts.pattern;\r\n }\r\n return new IMask.MaskedDate(opts);\r\n }\r\n if (mask instanceof Function){\r\n opts.validate = mask;\r\n return new Masked(opts);\r\n }\r\n\r\n console.warn('Mask not found for', opts); // eslint-disable-line no-console\r\n return new Masked(opts);\r\n}\r\n","import createMask from '../factory';\r\n\r\n\r\nexport default\r\nclass PatternDefinition {\r\n constructor(opts) {\r\n Object.assign(this, opts);\r\n\r\n if (this.mask) {\r\n this._masked = createMask(opts);\r\n }\r\n }\r\n\r\n reset () {\r\n this.isHollow = false;\r\n if (this._masked) this._masked.reset();\r\n }\r\n\r\n get isInput () {\r\n return this.type === PatternDefinition.TYPES.INPUT;\r\n }\r\n\r\n get isHiddenHollow () {\r\n return this.isHollow && this.optional;\r\n }\r\n\r\n resolve (ch) {\r\n if (!this._masked) return false;\r\n // TODO seems strange\r\n this._masked.value = ch;\r\n return this._masked.value;\r\n }\r\n}\r\n\r\nPatternDefinition.DEFAULTS = {\r\n '0': /\\d/,\r\n 'a': /[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/, // http://stackoverflow.com/a/22075070\r\n '*': /./\r\n};\r\nPatternDefinition.TYPES = {\r\n INPUT: 'input',\r\n FIXED: 'fixed'\r\n};\r\n","export default\r\nclass PatternGroup {\r\n constructor(masked, {name, offset, mask, validate}) {\r\n this.masked = masked;\r\n this.name = name;\r\n this.offset = offset;\r\n this.mask = mask;\r\n this.validate = validate || (() => true);\r\n }\r\n\r\n get value () {\r\n return this.masked.value.slice(\r\n this.masked.mapDefIndexToPos(this.offset),\r\n this.masked.mapDefIndexToPos(this.offset + this.mask.length));\r\n }\r\n\r\n get unmaskedValue () {\r\n return this.masked.extractInput(\r\n this.masked.mapDefIndexToPos(this.offset),\r\n this.masked.mapDefIndexToPos(this.offset + this.mask.length));\r\n }\r\n\r\n doValidate (soft) {\r\n return this.validate(this.value, this, soft);\r\n }\r\n}\r\n\r\nexport\r\nclass RangeGroup {\r\n constructor ([from, to], maxlen=(to+'').length) {\r\n this._from = from;\r\n this._to = to;\r\n this._maxLength = maxlen;\r\n this.validate = this.validate.bind(this);\r\n\r\n this._update();\r\n }\r\n\r\n get to () {\r\n return this._to;\r\n }\r\n\r\n set to (to) {\r\n this._to = to;\r\n this._update();\r\n }\r\n\r\n get from () {\r\n return this._from;\r\n }\r\n\r\n set from (from) {\r\n this._from = from;\r\n this._update();\r\n }\r\n\r\n get maxLength () {\r\n return this._maxLength;\r\n }\r\n\r\n set maxLength (maxLength) {\r\n this._maxLength = maxLength;\r\n this._update();\r\n }\r\n\r\n get _matchFrom () {\r\n return this.maxLength - (this.from + '').length;\r\n }\r\n\r\n _update() {\r\n this._maxLength = Math.max(this._maxLength, (this.to + '').length);\r\n this.mask = '0'.repeat(this._maxLength);\r\n }\r\n\r\n validate (str) {\r\n let minstr = '';\r\n let maxstr = '';\r\n\r\n const [, placeholder, num] = str.match(/^(\\D*)(\\d*)(\\D*)/);\r\n if (num) {\r\n minstr = ('0'.repeat(placeholder.length) + num);\r\n maxstr = ('9'.repeat(placeholder.length) + num);\r\n }\r\n\r\n const firstNonZero = str.search(/[^0]/);\r\n if (firstNonZero === -1 && str.length <= this._matchFrom) return true;\r\n\r\n minstr = minstr.padEnd(this._maxLength, '0');\r\n maxstr = maxstr.padEnd(this._maxLength, '9');\r\n\r\n return this.from <= Number(maxstr) && Number(minstr) <= this.to;\r\n }\r\n}\r\n\r\nexport\r\nfunction EnumGroup (enums) {\r\n return {\r\n mask: '*'.repeat(enums[0].length),\r\n validate: (value, group) => enums.some(e => e.indexOf(group.unmaskedValue) >= 0)\r\n };\r\n}\r\n\r\nPatternGroup.Range = RangeGroup;\r\nPatternGroup.Enum = EnumGroup;\r\n","import {conform, DIRECTION, indexInDirection, refreshValueOnSet} from '../core/utils';\r\nimport Masked from './base';\r\nimport PatternDefinition from './pattern/definition';\r\nimport PatternGroup from './pattern/group';\r\n\r\n\r\nexport default\r\nclass MaskedPattern extends Masked {\r\n constructor (opts={}) {\r\n const {definitions, placeholder, groups} = opts;\r\n super(opts);\r\n delete this.isInitialized;\r\n\r\n this.placeholder = placeholder;\r\n this.definitions = definitions;\r\n this.groups = groups;\r\n\r\n this.isInitialized = true;\r\n }\r\n\r\n get placeholder () {\r\n return this._placeholder;\r\n }\r\n\r\n @refreshValueOnSet\r\n set placeholder (ph) {\r\n this._placeholder = {\r\n ...MaskedPattern.DEFAULT_PLACEHOLDER,\r\n ...ph\r\n };\r\n }\r\n\r\n get definitions () {\r\n return this._definitions;\r\n }\r\n\r\n @refreshValueOnSet\r\n set definitions (defs) {\r\n defs = {\r\n ...PatternDefinition.DEFAULTS,\r\n ...defs\r\n };\r\n\r\n this._definitions = defs;\r\n this._updateMask();\r\n }\r\n\r\n get mask () {\r\n return this._mask;\r\n }\r\n\r\n @refreshValueOnSet\r\n set mask (mask) {\r\n this._mask = mask;\r\n this._updateMask();\r\n }\r\n\r\n _updateMask () {\r\n const defs = this._definitions;\r\n this._charDefs = [];\r\n this._groupDefs = [];\r\n\r\n let pattern = this.mask;\r\n if (!pattern || !defs) return;\r\n\r\n let unmaskingBlock = false;\r\n let optionalBlock = false;\r\n let stopAlign = false;\r\n\r\n\r\n for (let i=0; i p.indexOf(gName) === 0);\r\n // order by key length\r\n gNames.sort((a, b) => b.length - a.length);\r\n // use group name with max length\r\n const gName = gNames[0];\r\n if (gName) {\r\n const group = this._groups[gName];\r\n this._groupDefs.push(new PatternGroup(this, {\r\n name: gName,\r\n offset: this._charDefs.length,\r\n mask: group.mask,\r\n validate: group.validate\r\n }));\r\n pattern = pattern.replace(gName, group.mask);\r\n }\r\n }\r\n\r\n let char = pattern[i];\r\n let type = !unmaskingBlock && char in defs ?\r\n PatternDefinition.TYPES.INPUT :\r\n PatternDefinition.TYPES.FIXED;\r\n const unmasking = type === PatternDefinition.TYPES.INPUT || unmaskingBlock;\r\n const optional = type === PatternDefinition.TYPES.INPUT && optionalBlock;\r\n\r\n if (char === MaskedPattern.STOP_CHAR) {\r\n stopAlign = true;\r\n continue;\r\n }\r\n\r\n if (char === '{' || char === '}') {\r\n unmaskingBlock = !unmaskingBlock;\r\n continue;\r\n }\r\n\r\n if (char === '[' || char === ']') {\r\n optionalBlock = !optionalBlock;\r\n continue;\r\n }\r\n\r\n if (char === MaskedPattern.ESCAPE_CHAR) {\r\n ++i;\r\n char = pattern[i];\r\n // TODO validation\r\n if (!char) break;\r\n type = PatternDefinition.TYPES.FIXED;\r\n }\r\n\r\n this._charDefs.push(new PatternDefinition({\r\n char,\r\n type,\r\n optional,\r\n stopAlign,\r\n mask: unmasking &&\r\n (type === PatternDefinition.TYPES.INPUT ?\r\n defs[char] :\r\n (value => value === char))\r\n }));\r\n\r\n stopAlign = false;\r\n }\r\n }\r\n\r\n doValidate (soft) {\r\n return this._groupDefs.every(g => g.doValidate(soft)) && super.doValidate(soft);\r\n }\r\n\r\n clone () {\r\n const m = new MaskedPattern(this);\r\n m._value = this.value;\r\n m._charDefs.forEach((d, i) => Object.assign(d, this._charDefs[i]));\r\n m._groupDefs.forEach((d, i) => Object.assign(d, this._groupDefs[i]));\r\n return m;\r\n }\r\n\r\n reset () {\r\n super.reset();\r\n this._charDefs.forEach(d => {delete d.isHollow;});\r\n }\r\n\r\n get isComplete () {\r\n return !this._charDefs.some((d, i) =>\r\n d.isInput && !d.optional && (d.isHollow || !this.extractInput(i, i+1)));\r\n }\r\n\r\n hiddenHollowsBefore (defIndex) {\r\n return this._charDefs\r\n .slice(0, defIndex)\r\n .filter(d => d.isHiddenHollow)\r\n .length;\r\n }\r\n\r\n mapDefIndexToPos (defIndex) {\r\n if (defIndex == null) return;\r\n return defIndex - this.hiddenHollowsBefore(defIndex);\r\n }\r\n\r\n mapPosToDefIndex (pos) {\r\n if (pos == null) return;\r\n let defIndex = pos;\r\n for (let di=0; di= defIndex) break;\r\n if (def.isHiddenHollow) ++defIndex;\r\n }\r\n return defIndex;\r\n }\r\n\r\n _unmask () {\r\n const str = this.value;\r\n let unmasked = '';\r\n\r\n for (let ci=0, di=0; ci [d, i])\r\n .slice(fromDefIndex, toDefIndex)\r\n .filter(([d]) => d.stopAlign)\r\n .map(([, i]) => i);\r\n\r\n const stops = [\r\n fromDefIndex,\r\n ...stopDefIndices,\r\n toDefIndex\r\n ];\r\n\r\n return stops.map((s, i) => [\r\n stopDefIndices.indexOf(s) >= 0 ?\r\n s :\r\n null,\r\n\r\n this.extractInput(\r\n this.mapDefIndexToPos(s),\r\n this.mapDefIndexToPos(stops[++i]))\r\n ]).filter(([stop, input]) => stop != null || input);\r\n }\r\n\r\n _appendPlaceholder (toDefIndex) {\r\n const maxDefIndex = toDefIndex || this._charDefs.length;\r\n for (let di=this.mapPosToDefIndex(this.value.length); di < maxDefIndex; ++di) {\r\n const def = this._charDefs[di];\r\n if (def.isInput) def.isHollow = true;\r\n\r\n if (!this.placeholder.lazy || toDefIndex) {\r\n this._value += !def.isInput ?\r\n def.char :\r\n !def.optional ?\r\n this.placeholder.char :\r\n '';\r\n }\r\n }\r\n }\r\n\r\n clear (from=0, to=this.value.length) {\r\n this._value = this.value.slice(0, from) + this.value.slice(to);\r\n const fromDefIndex = this.mapPosToDefIndex(from);\r\n const toDefIndex = this.mapPosToDefIndex(to);\r\n this._charDefs\r\n .slice(fromDefIndex, toDefIndex)\r\n .forEach(d => d.reset());\r\n }\r\n\r\n nearestInputPos (cursorPos, direction=DIRECTION.LEFT) {\r\n if (!direction) return cursorPos;\r\n\r\n const initialDefIndex = this.mapPosToDefIndex(cursorPos);\r\n let di = initialDefIndex;\r\n\r\n let firstInputIndex,\r\n firstFilledInputIndex,\r\n firstVisibleHollowIndex,\r\n nextdi;\r\n\r\n // search forward\r\n for (nextdi = indexInDirection(di, direction); 0 <= nextdi && nextdi < this._charDefs.length; di += direction, nextdi += direction) {\r\n const nextDef = this._charDefs[nextdi];\r\n if (firstInputIndex == null && nextDef.isInput) firstInputIndex = di;\r\n if (firstVisibleHollowIndex == null && nextDef.isHollow && !nextDef.isHiddenHollow) firstVisibleHollowIndex = di;\r\n if (nextDef.isInput && !nextDef.isHollow) {\r\n firstFilledInputIndex = di;\r\n break;\r\n }\r\n }\r\n\r\n if (direction === DIRECTION.LEFT || firstInputIndex == null) {\r\n // search backwards\r\n direction = -direction;\r\n let overflow = false;\r\n\r\n // find hollows only before initial pos\r\n for (nextdi = indexInDirection(di, direction);\r\n 0 <= nextdi && nextdi < this._charDefs.length;\r\n di += direction, nextdi += direction)\r\n {\r\n const nextDef = this._charDefs[nextdi];\r\n if (nextDef.isInput) {\r\n firstInputIndex = di;\r\n if (nextDef.isHollow && !nextDef.isHiddenHollow) break;\r\n }\r\n\r\n // if hollow not found before start position - set `overflow`\r\n // and try to find just any input\r\n if (di === initialDefIndex) overflow = true;\r\n\r\n // first input found\r\n if (overflow && firstInputIndex != null) break;\r\n }\r\n\r\n // process overflow\r\n overflow = overflow || nextdi >= this._charDefs.length;\r\n if (overflow && firstInputIndex != null) di = firstInputIndex;\r\n } else if (firstFilledInputIndex == null) {\r\n // adjust index if delete at right and filled input not found at right\r\n di = firstVisibleHollowIndex != null ?\r\n firstVisibleHollowIndex :\r\n firstInputIndex;\r\n }\r\n\r\n return this.mapDefIndexToPos(di);\r\n }\r\n\r\n get groups () { return this._groups; }\r\n\r\n @refreshValueOnSet\r\n set groups (groups) {\r\n this._groups = groups;\r\n this._updateMask();\r\n }\r\n\r\n group (name) {\r\n return this.groupsByName(name)[0];\r\n }\r\n\r\n groupsByName (name) {\r\n return this._groupDefs.filter(g => g.name === name);\r\n }\r\n}\r\n\r\nMaskedPattern.DEFAULT_PLACEHOLDER = {\r\n lazy: true,\r\n char: '_'\r\n};\r\nMaskedPattern.STOP_CHAR = '`';\r\nMaskedPattern.ESCAPE_CHAR = '\\\\';\r\nMaskedPattern.Definition = PatternDefinition;\r\nMaskedPattern.Group = PatternGroup;\r\n","import {refreshValueOnSet} from '../core/utils';\r\nimport MaskedPattern from './pattern';\r\nimport PatternGroup from './pattern/group';\r\n\r\n\r\nexport default\r\nclass MaskedDate extends MaskedPattern {\r\n constructor (opts={}) {\r\n const groups = opts.groups;\r\n opts = Object.assign({}, MaskedDate.DEFAULTS, opts);\r\n const {min, max, format, parse} = opts;\r\n\r\n opts.groups = Object.assign({}, MaskedDate.DEFAULTS.groups);\r\n if (opts.groups.Y) {\r\n // adjust year group\r\n if (min) opts.groups.Y.from = min.getFullYear();\r\n if (max) opts.groups.Y.to = max.getFullYear();\r\n }\r\n\r\n Object.assign(opts.groups, groups);\r\n\r\n super(opts);\r\n delete this.isInitialized;\r\n\r\n this.min = min;\r\n this.max = max;\r\n this.format = format;\r\n this.parse = parse;\r\n\r\n this.isInitialized = true;\r\n }\r\n\r\n doValidate (soft) {\r\n const valid = super.doValidate(soft);\r\n const date = this.date;\r\n\r\n return valid &&\r\n (!this.isComplete ||\r\n this.isDateExist(this.value) && date &&\r\n (this.min == null || this.min <= date) &&\r\n (this.max == null || date <= this.max));\r\n }\r\n\r\n isDateExist (str) {\r\n return this.format(this.parse(str)) === str;\r\n }\r\n\r\n get date () {\r\n return this.isComplete ?\r\n this.parse(this.value) :\r\n null;\r\n }\r\n\r\n set date (date) {\r\n this.value = this.format(date);\r\n }\r\n\r\n get min () {\r\n return this._min;\r\n }\r\n\r\n @refreshValueOnSet\r\n set min (min) {\r\n this._min = min;\r\n }\r\n\r\n get max () {\r\n return this._max;\r\n }\r\n\r\n @refreshValueOnSet\r\n set max (max) {\r\n this._max = max;\r\n }\r\n}\r\nMaskedDate.DEFAULTS = {\r\n mask: 'd{.}`m{.}`Y',\r\n format: date => {\r\n const day = ('' + date.getDate()).padStart(2, '0');\r\n const month = ('' + (date.getMonth() + 1)).padStart(2, '0');\r\n const year = date.getFullYear();\r\n\r\n return [day, month, year].join('.');\r\n },\r\n parse: str => {\r\n const [day, month, year] = str.split('.');\r\n return new Date(year, month - 1, day);\r\n },\r\n groups: {\r\n d: new PatternGroup.Range([1, 31]),\r\n m: new PatternGroup.Range([1, 12]),\r\n Y: new PatternGroup.Range([1900, 9999]),\r\n },\r\n};\r\n","import {DIRECTION} from './utils';\r\n\r\n\r\nexport default\r\nclass ActionDetails {\r\n constructor (value, cursorPos, oldValue, oldSelection) {\r\n this.value = value;\r\n this.cursorPos = cursorPos;\r\n this.oldValue = oldValue;\r\n this.oldSelection = oldSelection;\r\n }\r\n\r\n get startChangePos () {\r\n return Math.min(this.cursorPos, this.oldSelection.start);\r\n }\r\n\r\n get insertedCount () {\r\n return this.cursorPos - this.startChangePos;\r\n }\r\n\r\n get inserted () {\r\n return this.value.substr(this.startChangePos, this.insertedCount);\r\n }\r\n\r\n get removedCount () {\r\n // Math.max for opposite operation\r\n return Math.max((this.oldSelection.end - this.startChangePos) ||\r\n // for Delete\r\n this.oldValue.length - this.value.length, 0);\r\n }\r\n\r\n get removed () {\r\n return this.oldValue.substr(this.startChangePos, this.removedCount);\r\n }\r\n\r\n get head () {\r\n return this.value.substring(0, this.startChangePos);\r\n }\r\n\r\n get tail () {\r\n this.value.substring(this.startChangePos + this.insertedCount);\r\n }\r\n\r\n get removeDirection () {\r\n return this.removedCount &&\r\n ((this.oldSelection.end === this.cursorPos || this.insertedCount) ?\r\n DIRECTION.RIGHT :\r\n DIRECTION.LEFT);\r\n }\r\n}\r\n","import ActionDetails from '../core/action-details';\r\nimport createMask from '../masked/factory';\r\n\r\n\r\nexport default\r\nclass InputMask {\r\n constructor (el, opts) {\r\n this.el = el;\r\n this.masked = createMask(opts);\r\n\r\n this._listeners = {};\r\n this._value = '';\r\n this._unmaskedValue = '';\r\n\r\n this._saveSelection = this._saveSelection.bind(this);\r\n this._onInput = this._onInput.bind(this);\r\n this._onChange = this._onChange.bind(this);\r\n this._onDrop = this._onDrop.bind(this);\r\n this._alignCursor = this._alignCursor.bind(this);\r\n this._alignCursorFriendly = this._alignCursorFriendly.bind(this);\r\n\r\n this.bindEvents();\r\n\r\n // refresh\r\n this.updateValue();\r\n this._onChange();\r\n }\r\n\r\n get mask () { return this.masked.mask; }\r\n set mask (mask) {\r\n if (typeof mask === typeof this.masked.mask) {\r\n this.masked.mask = mask;\r\n return;\r\n }\r\n\r\n const unmasked = this.masked ? this.masked.unmaskedValue : null;\r\n this.masked = createMask({mask});\r\n if (unmasked != null) this.masked.unmaskedValue = unmasked;\r\n }\r\n\r\n get value () {\r\n return this._value;\r\n }\r\n\r\n set value (str) {\r\n this.masked.value = str;\r\n this.updateControl();\r\n this._alignCursor();\r\n }\r\n\r\n get unmaskedValue () {\r\n return this._unmaskedValue;\r\n }\r\n\r\n set unmaskedValue (str) {\r\n this.masked.unmaskedValue = str;\r\n this.updateControl();\r\n this._alignCursor();\r\n }\r\n\r\n bindEvents () {\r\n this.el.addEventListener('keydown', this._saveSelection);\r\n this.el.addEventListener('input', this._onInput);\r\n this.el.addEventListener('drop', this._onDrop);\r\n this.el.addEventListener('click', this._alignCursorFriendly);\r\n this.el.addEventListener('change', this._onChange);\r\n }\r\n\r\n unbindEvents () {\r\n this.el.removeEventListener('keydown', this._saveSelection);\r\n this.el.removeEventListener('input', this._onInput);\r\n this.el.removeEventListener('drop', this._onDrop);\r\n this.el.removeEventListener('click', this._alignCursorFriendly);\r\n this.el.removeEventListener('change', this._onChange);\r\n }\r\n\r\n fireEvent (ev) {\r\n const listeners = this._listeners[ev] || [];\r\n listeners.forEach(l => l());\r\n }\r\n\r\n get selectionStart () {\r\n return this._cursorChanging ?\r\n this._changingCursorPos :\r\n\r\n this.el.selectionStart;\r\n }\r\n\r\n get cursorPos () {\r\n return this._cursorChanging ?\r\n this._changingCursorPos :\r\n\r\n this.el.selectionEnd;\r\n }\r\n\r\n set cursorPos (pos) {\r\n if (this.el !== document.activeElement) return;\r\n\r\n this.el.setSelectionRange(pos, pos);\r\n this._saveSelection();\r\n }\r\n\r\n _saveSelection (/* ev */) {\r\n if (this.value !== this.el.value) {\r\n console.warn('Uncontrolled input change, refresh mask manually!'); // eslint-disable-line no-console\r\n }\r\n this._selection = {\r\n start: this.selectionStart,\r\n end: this.cursorPos\r\n };\r\n }\r\n\r\n updateValue () {\r\n this.masked.value = this.el.value;\r\n }\r\n\r\n updateControl () {\r\n const newUnmaskedValue = this.masked.unmaskedValue;\r\n const newValue = this.masked.value;\r\n const isChanged = (this.unmaskedValue !== newUnmaskedValue ||\r\n this.value !== newValue);\r\n\r\n this._unmaskedValue = newUnmaskedValue;\r\n this._value = newValue;\r\n\r\n if (this.el.value !== newValue) this.el.value = newValue;\r\n if (isChanged) this._fireChangeEvents();\r\n }\r\n\r\n updateOptions (opts) {\r\n const mask = opts.mask;\r\n if (mask) this.mask = mask;\r\n\r\n this.masked.withValueRefresh(() => {\r\n for (const k in opts) {\r\n if (k === 'mask') continue;\r\n this.masked[k] = opts[k];\r\n }\r\n });\r\n\r\n this.updateControl();\r\n }\r\n\r\n updateCursor (cursorPos) {\r\n if (cursorPos == null) return;\r\n this.cursorPos = cursorPos;\r\n\r\n // also queue change cursor for mobile browsers\r\n this._delayUpdateCursor(cursorPos);\r\n }\r\n\r\n _delayUpdateCursor (cursorPos) {\r\n this._abortUpdateCursor();\r\n this._changingCursorPos = cursorPos;\r\n this._cursorChanging = setTimeout(() => {\r\n this.cursorPos = this._changingCursorPos;\r\n this._abortUpdateCursor();\r\n }, 10);\r\n }\r\n\r\n _fireChangeEvents () {\r\n this.fireEvent('accept');\r\n if (this.masked.isComplete) this.fireEvent('complete');\r\n }\r\n\r\n _abortUpdateCursor () {\r\n if (this._cursorChanging) {\r\n clearTimeout(this._cursorChanging);\r\n delete this._cursorChanging;\r\n }\r\n }\r\n\r\n _alignCursor () {\r\n this.cursorPos = this.masked.nearestInputPos(this.cursorPos);\r\n }\r\n\r\n _alignCursorFriendly () {\r\n if (this.selectionStart !== this.cursorPos) return;\r\n this._alignCursor();\r\n }\r\n\r\n on (ev, handler) {\r\n if (!this._listeners[ev]) this._listeners[ev] = [];\r\n this._listeners[ev].push(handler);\r\n return this;\r\n }\r\n\r\n off (ev, handler) {\r\n if (!this._listeners[ev]) return;\r\n if (!handler) {\r\n delete this._listeners[ev];\r\n return;\r\n }\r\n const hIndex = this._listeners[ev].indexOf(handler);\r\n if (hIndex >= 0) this._listeners.splice(hIndex, 1);\r\n return this;\r\n }\r\n\r\n _onInput () {\r\n this._abortUpdateCursor();\r\n\r\n const details = new ActionDetails(\r\n // new state\r\n this.el.value, this.cursorPos,\r\n // old state\r\n this.value, this._selection);\r\n\r\n const tailPos = details.startChangePos + details.removed.length;\r\n const tail = this.masked.extractTail(tailPos);\r\n\r\n const lastInputPos = this.masked.nearestInputPos(details.startChangePos, details.removeDirection);\r\n this.masked.clear(lastInputPos);\r\n const insertedCount = this.masked.appendWithTail(details.inserted, tail);\r\n\r\n\r\n const cursorPos = this.masked.nearestInputPos(\r\n lastInputPos + insertedCount,\r\n details.removeDirection);\r\n\r\n this.updateControl();\r\n this.updateCursor(cursorPos);\r\n }\r\n\r\n _onChange () {\r\n if (this.value !== this.el.value) {\r\n this.updateValue();\r\n }\r\n this.masked.doCommit();\r\n this.updateControl();\r\n }\r\n\r\n _onDrop (ev) {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n }\r\n\r\n destroy () {\r\n this.unbindEvents();\r\n this._listeners.length = 0;\r\n }\r\n}\r\n","import 'core-js/fn/array/find';\r\nimport 'core-js/fn/object/keys';\r\nimport 'core-js/fn/string/repeat';\r\nimport 'core-js/fn/string/pad-start';\r\nimport 'core-js/fn/string/pad-end';\r\n\r\n\r\nimport Masked from './masked/base';\r\nimport MaskedPattern from './masked/pattern';\r\nimport MaskedNumber from './masked/number';\r\nimport MaskedDate from './masked/date';\r\n\r\nimport InputMask from './controls/input';\r\n\r\n\r\nexport default\r\nfunction IMask (el, opts={}) {\r\n\t// currently available only for input elements\r\n return new InputMask(el, opts);\r\n}\r\n\r\n\r\nIMask.InputMask = InputMask;\r\n\r\nIMask.Masked = Masked;\r\nIMask.MaskedPattern = MaskedPattern;\r\nIMask.MaskedNumber = MaskedNumber;\r\nIMask.MaskedDate = MaskedDate;\r\n\r\nwindow.IMask = IMask;\r\n"],"names":["isObject","require$$0","document","require$$1","require$$2","anObject","toPrimitive","IE8_DOM_DEFINE","dP","createDesc","has","hide","global","aFunction","core","ctx","redefine","cof","defined","toInteger","uid","isArray","speciesConstructor","asc","toObject","IObject","toLength","$export","min","toIObject","toIndex","$keys","enumBugKeys","fails","repeat","$pad","isString","str","String","conform","res","fallback","DIRECTION","indexInDirection","pos","direction","LEFT","refreshValueOnSet","target","key","descriptor","method","set","args","withValueRefresh","bind","escapeRegExp","replace","Masked","mask","prepare","val","validate","commit","_value","isInitialized","clone","m","value","slice","reset","nearestInputPos","cursorPos","extractInput","fromPos","toPos","length","extractTail","_appendTail","tail","_append","soft","oldValueLength","consistentValue","doPrepare","ci","doValidate","appendWithTail","appendCount","consistentAppended","ch","appended","tailAppended","_unmask","clear","from","to","fn","_refreshing","unmasked","unmaskedValue","ret","doCommit","_mask","_prepare","_validate","_commit","MaskedNumber","opts","babelHelpers.extends","DEFAULTS","scale","radix","mapToRadix","max","signed","thousandsSeparator","postFormat","_updateNumberRegExp","regExpStrSoft","regExpStr","_numberRegExpSoft","RegExp","_numberRegExp","_removeThousandsSeparators","_thousandsSeparatorRegExp","_insertThousandsSeparators","parts","split","join","_mapToRadixRegExp","removedSeparatorsCount","beforeTailPos","insertedSeparatorsBeforeTailCount","nextPos","regexp","valid","test","number","isNaN","validnum","Math","formatted","normalizeZeros","_normalizeZeros","padFractionalZeros","_padFractionalZeros","match","sign","zeros","num","push","padEnd","numstr","Number","_min","_max","_scale","_radix","_signed","_postFormat","_mapToRadix","map","_thousandsSeparator","createMask","IMask","MaskedPattern","prototype","Date","pattern","MaskedDate","Function","warn","PatternDefinition","_masked","isHollow","resolve","type","TYPES","INPUT","optional","PatternGroup","masked","name","offset","mapDefIndexToPos","RangeGroup","maxlen","_from","_to","_maxLength","_update","minstr","maxstr","placeholder","firstNonZero","search","_matchFrom","maxLength","EnumGroup","enums","group","some","e","indexOf","Range","Enum","definitions","groups","_updateMask","defs","_definitions","_charDefs","_groupDefs","unmaskingBlock","optionalBlock","stopAlign","_groups","p","i","gNames","Object","keys","filter","gName","sort","a","b","char","FIXED","unmasking","STOP_CHAR","ESCAPE_CHAR","every","g","forEach","d","hiddenHollowsBefore","defIndex","isHiddenHollow","mapPosToDefIndex","di","def","_appendChunks","_appendPlaceholder","resolved","skipped","chres","chunks","fromDefIndex","input","extractInputChunks","toDefIndex","isInput","stopDefIndices","stops","s","stop","maxDefIndex","lazy","initialDefIndex","firstInputIndex","firstFilledInputIndex","firstVisibleHollowIndex","nextdi","nextDef","overflow","groupsByName","_placeholder","ph","DEFAULT_PLACEHOLDER","Definition","Group","format","parse","Y","getFullYear","date","isComplete","isDateExist","day","getDate","padStart","month","getMonth","year","ActionDetails","oldValue","oldSelection","start","startChangePos","substr","insertedCount","end","removedCount","substring","RIGHT","InputMask","el","_listeners","_unmaskedValue","_saveSelection","_onInput","_onChange","_onDrop","_alignCursor","_alignCursorFriendly","bindEvents","updateValue","addEventListener","unbindEvents","removeEventListener","fireEvent","ev","listeners","l","_selection","selectionStart","updateControl","newUnmaskedValue","newValue","isChanged","_fireChangeEvents","updateOptions","k","updateCursor","_delayUpdateCursor","_abortUpdateCursor","_changingCursorPos","_cursorChanging","setTimeout","on","handler","off","hIndex","splice","details","tailPos","removed","lastInputPos","removeDirection","inserted","preventDefault","stopPropagation","destroy","selectionEnd","activeElement","setSelectionRange","window"],"mappings":"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"} \ No newline at end of file diff --git a/dist/imask.min.es.js b/dist/imask.min.es.js index d2c4865d..1df3533c 100644 --- a/dist/imask.min.es.js +++ b/dist/imask.min.es.js @@ -1,2 +1,2 @@ -function createCommonjsModule(t,e){return e={exports:{}},t(e,e.exports),e.exports}function isString(t){return"string"==typeof t||t instanceof String}function conform(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return isString(t)?t:t?e:n}function indexInDirection(t,e){return e===DIRECTION.LEFT&&--t,t}function refreshValueOnSet(t,e,n){var r=n.set;n.set=function(){for(var t=arguments.length,e=Array(t),n=0;n=0})}}}function _applyDecoratedDescriptor$1(t,e,n,r,i){var u={};return Object.keys(r).forEach(function(t){u[t]=r[t]}),u.enumerable=!!u.enumerable,u.configurable=!!u.configurable,("value"in u||u.initializer)&&(u.writable=!0),u=n.slice().reverse().reduce(function(n,r){return r(t,e,n)||n},u),i&&void 0!==u.initializer&&(u.value=u.initializer?u.initializer.call(i):void 0,u.initializer=void 0),void 0===u.initializer&&(Object.defineProperty(t,e,u),u=null),u}function _applyDecoratedDescriptor$3(t,e,n,r,i){var u={};return Object.keys(r).forEach(function(t){u[t]=r[t]}),u.enumerable=!!u.enumerable,u.configurable=!!u.configurable,("value"in u||u.initializer)&&(u.writable=!0),u=n.slice().reverse().reduce(function(n,r){return r(t,e,n)||n},u),i&&void 0!==u.initializer&&(u.value=u.initializer?u.initializer.call(i):void 0,u.initializer=void 0),void 0===u.initializer&&(Object.defineProperty(t,e,u),u=null),u}function IMask$1(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new InputMask(t,e)}var _global=createCommonjsModule(function(t){var e=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=e)}),_core=createCommonjsModule(function(t){var e=t.exports={version:"2.4.0"};"number"==typeof __e&&(__e=e)}),_isObject=function(t){return"object"==typeof t?null!==t:"function"==typeof t},_anObject=function(t){if(!_isObject(t))throw TypeError(t+" is not an object!");return t},_fails=function(t){try{return!!t()}catch(t){return!0}},_descriptors=!_fails(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}),document$1=_global.document,is=_isObject(document$1)&&_isObject(document$1.createElement),_domCreate=function(t){return is?document$1.createElement(t):{}},_ie8DomDefine=!_descriptors&&!_fails(function(){return 7!=Object.defineProperty(_domCreate("div"),"a",{get:function(){return 7}}).a}),_toPrimitive=function(t,e){if(!_isObject(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!_isObject(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!_isObject(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!_isObject(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")},dP=Object.defineProperty,f=_descriptors?Object.defineProperty:function(t,e,n){if(_anObject(t),e=_toPrimitive(e,!0),_anObject(n),_ie8DomDefine)try{return dP(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t},_objectDp={f:f},_propertyDesc=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},_hide=_descriptors?function(t,e,n){return _objectDp.f(t,e,_propertyDesc(1,n))}:function(t,e,n){return t[e]=n,t},hasOwnProperty={}.hasOwnProperty,_has=function(t,e){return hasOwnProperty.call(t,e)},id=0,px=Math.random(),_uid=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++id+px).toString(36))},_redefine=createCommonjsModule(function(t){var e=_uid("src"),n=Function.toString,r=(""+n).split("toString");_core.inspectSource=function(t){return n.call(t)},(t.exports=function(t,n,i,u){var o="function"==typeof i;o&&(_has(i,"name")||_hide(i,"name",n)),t[n]!==i&&(o&&(_has(i,e)||_hide(i,e,t[n]?""+t[n]:r.join(String(n)))),t===_global?t[n]=i:u?t[n]?t[n]=i:_hide(t,n,i):(delete t[n],_hide(t,n,i)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[e]||n.call(this)})}),_aFunction=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t},_ctx=function(t,e,n){if(_aFunction(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)}}return function(){return t.apply(e,arguments)}},PROTOTYPE="prototype",$export=function(t,e,n){var r,i,u,o,s=t&$export.F,a=t&$export.G,l=t&$export.S,c=t&$export.P,h=t&$export.B,p=a?_global:l?_global[e]||(_global[e]={}):(_global[e]||{})[PROTOTYPE],f=a?_core:_core[e]||(_core[e]={}),d=f[PROTOTYPE]||(f[PROTOTYPE]={});a&&(n=e);for(r in n)u=((i=!s&&p&&void 0!==p[r])?p:n)[r],o=h&&i?_ctx(u,_global):c&&"function"==typeof u?_ctx(Function.call,u):u,p&&_redefine(p,r,u,t&$export.U),f[r]!=u&&_hide(f,r,o),c&&d[r]!=u&&(d[r]=u)};_global.core=_core,$export.F=1,$export.G=2,$export.S=4,$export.P=8,$export.B=16,$export.W=32,$export.U=64,$export.R=128;var _export=$export,toString={}.toString,_cof=function(t){return toString.call(t).slice(8,-1)},_iobject=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==_cof(t)?t.split(""):Object(t)},_defined=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t},_toObject=function(t){return Object(_defined(t))},ceil=Math.ceil,floor=Math.floor,_toInteger=function(t){return isNaN(t=+t)?0:(t>0?floor:ceil)(t)},min=Math.min,_toLength=function(t){return t>0?min(_toInteger(t),9007199254740991):0},_isArray=Array.isArray||function(t){return"Array"==_cof(t)},SHARED="__core-js_shared__",store=_global[SHARED]||(_global[SHARED]={}),_shared=function(t){return store[t]||(store[t]={})},_wks=createCommonjsModule(function(t){var e=_shared("wks"),n=_global.Symbol,r="function"==typeof n;(t.exports=function(t){return e[t]||(e[t]=r&&n[t]||(r?n:_uid)("Symbol."+t))}).store=e}),SPECIES=_wks("species"),_arraySpeciesConstructor=function(t){var e;return _isArray(t)&&("function"!=typeof(e=t.constructor)||e!==Array&&!_isArray(e.prototype)||(e=void 0),_isObject(e)&&null===(e=e[SPECIES])&&(e=void 0)),void 0===e?Array:e},_arraySpeciesCreate=function(t,e){return new(_arraySpeciesConstructor(t))(e)},_arrayMethods=function(t,e){var n=1==t,r=2==t,i=3==t,u=4==t,o=6==t,s=5==t||o,a=e||_arraySpeciesCreate;return function(e,l,c){for(var h,p,f=_toObject(e),d=_iobject(f),_=_ctx(l,c,3),m=_toLength(d.length),v=0,g=n?a(e,m):r?a(e,0):void 0;m>v;v++)if((s||v in d)&&(h=d[v],p=_(h,v,f),t))if(n)g[v]=p;else if(p)switch(t){case 3:return!0;case 5:return h;case 6:return v;case 2:g.push(h)}else if(u)return!1;return o?-1:i||u?u:g}},UNSCOPABLES=_wks("unscopables"),ArrayProto=Array.prototype;void 0==ArrayProto[UNSCOPABLES]&&_hide(ArrayProto,UNSCOPABLES,{});var _addToUnscopables=function(t){ArrayProto[UNSCOPABLES][t]=!0},$find=_arrayMethods(5),KEY="find",forced=!0;KEY in[]&&Array(1)[KEY](function(){forced=!1}),_export(_export.P+_export.F*forced,"Array",{find:function(t){return $find(this,t,arguments.length>1?arguments[1]:void 0)}}),_addToUnscopables(KEY);var _toIobject=function(t){return _iobject(_defined(t))},max=Math.max,min$1=Math.min,_toIndex=function(t,e){return(t=_toInteger(t))<0?max(t+e,0):min$1(t,e)},_arrayIncludes=function(t){return function(e,n,r){var i,u=_toIobject(e),o=_toLength(u.length),s=_toIndex(r,o);if(t&&n!=n){for(;o>s;)if((i=u[s++])!=i)return!0}else for(;o>s;s++)if((t||s in u)&&u[s]===n)return t||s||0;return!t&&-1}},shared=_shared("keys"),_sharedKey=function(t){return shared[t]||(shared[t]=_uid(t))},arrayIndexOf=_arrayIncludes(!1),IE_PROTO=_sharedKey("IE_PROTO"),_objectKeysInternal=function(t,e){var n,r=_toIobject(t),i=0,u=[];for(n in r)n!=IE_PROTO&&_has(r,n)&&u.push(n);for(;e.length>i;)_has(r,n=e[i++])&&(~arrayIndexOf(u,n)||u.push(n));return u},_enumBugKeys="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),_objectKeys=Object.keys||function(t){return _objectKeysInternal(t,_enumBugKeys)},_objectSap=function(t,e){var n=(_core.Object||{})[t]||Object[t],r={};r[t]=e(n),_export(_export.S+_export.F*_fails(function(){n(1)}),"Object",r)};_objectSap("keys",function(){return function(t){return _objectKeys(_toObject(t))}});var _stringRepeat=function(t){var e=String(_defined(this)),n="",r=_toInteger(t);if(r<0||r==1/0)throw RangeError("Count can't be negative");for(;r>0;(r>>>=1)&&(e+=e))1&r&&(n+=e);return n};_export(_export.P,"String",{repeat:_stringRepeat});var _stringPad=function(t,e,n,r){var i=String(_defined(t)),u=i.length,o=void 0===n?" ":String(n),s=_toLength(e);if(s<=u||""==o)return i;var a=s-u,l=_stringRepeat.call(o,Math.ceil(a/o.length));return l.length>a&&(l=l.slice(0,a)),r?l+i:i+l};_export(_export.P,"String",{padStart:function(t){return _stringPad(this,t,arguments.length>1?arguments[1]:void 0,!0)}}),_export(_export.P,"String",{padEnd:function(t){return _stringPad(this,t,arguments.length>1?arguments[1]:void 0,!1)}});var DIRECTION={NONE:0,LEFT:-1,RIGHT:1},_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},classCallCheck=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},createClass=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;return this.value.slice(t,e)},t.prototype.extractTail=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;return this.extractInput(t,e)},t.prototype._appendTail=function(t){return!t||this._append(t)},t.prototype._append=function(t,e){for(var n=this.value.length,r=this.clone(),i=0;i0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;this._value=this.value.slice(0,t)+this.value.slice(e)},t.prototype.withValueRefresh=function(t){if(this._refreshing)return t();this._refreshing=!0;var e=this.isInitialized?this.unmaskedValue:null,n=t();return null!=e&&(this.unmaskedValue=e),delete this._refreshing,n},t.prototype.commit=function(){},createClass(t,[{key:"mask",get:function(){return this._mask},set:function(t){this._mask=t}},{key:"value",get:function(){return this._value},set:function(t){this.reset(),this.appendWithTail(t),this.commit()}},{key:"unmaskedValue",get:function(){return this._unmask()},set:function(t){this.reset(),this._append(t),this.appendWithTail(""),this.commit()}},{key:"isComplete",get:function(){return!0}}]),t}(),_applyDecoratedDescriptor(_class.prototype,"mask",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class.prototype,"mask"),_class.prototype),_class),_class$2,MaskedNumber=(_class$2=function(t){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};classCallCheck(this,e),n=_extends({},e.DEFAULTS,n);var r=possibleConstructorReturn(this,t.call(this,n));delete r.isInitialized;var i=n,u=i.scale,o=i.radix,s=i.mapToRadix,a=i.min,l=i.max,c=i.signed,h=i.thousandsSeparator,p=i.postFormat;return r.min=a,r.max=l,r.scale=u,r.radix=o,r.mapToRadix=s,r.signed=c,r.thousandsSeparator=h,r.postFormat=p,r._updateNumberRegExp(),r.isInitialized=!0,r}return inherits(e,t),e.prototype._updateNumberRegExp=function(){var t="^",e="^";this.signed?(t+="([+|\\-]?|([+|\\-]?(0|([1-9]+\\d*))))",e+="[+|\\-]?"):t+="(0|([1-9]+\\d*))",e+="\\d*",this.scale&&(t+="("+this.radix+"\\d{0,"+this.scale+"})?",e+="("+this.radix+"\\d{0,"+this.scale+"})?"),t+="$",e+="$",this._numberRegExpSoft=new RegExp(t),this._numberRegExp=new RegExp(e)},e.prototype.extractTail=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;return this._removeThousandsSeparators(t.prototype.extractTail.call(this,e,n))},e.prototype._removeThousandsSeparators=function(t){return t.replace(this._thousandsSeparatorRegExp,"")},e.prototype._insertThousandsSeparators=function(t){var e=t.split(this.radix);return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,this.thousandsSeparator),e.join(this.radix)},e.prototype._append=function(e,n){return t.prototype._append.call(this,this._removeThousandsSeparators(e.replace(this._mapToRadixRegExp,this.radix)),n)},e.prototype.appendWithTail=function(e,n){var r=this.value.length;this._value=this._removeThousandsSeparators(this.value);var i=r-this.value.length,u=t.prototype.appendWithTail.call(this,e,n);this._value=this._insertThousandsSeparators(this.value);var o=r+u-i;this._value=this._insertThousandsSeparators(this.value);for(var s=0,a=0;a<=o;++a)this.value[a]===this.thousandsSeparator&&(++s,++o);return u-i+s},e.prototype.nearestInputPos=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:DIRECTION.LEFT;if(!e)return t;var n=indexInDirection(t,e);return this.value[n]===this.thousandsSeparator&&(t+=e),t},e.prototype._validate=function(e){var n=(e?this._numberRegExpSoft:this._numberRegExp).test(this._removeThousandsSeparators(this.value));if(n){var r=this.number;n=n&&!isNaN(r)&&(null==this.min||this.min>=0||this.min<=this.number)&&(null==this.max||this.max<=0||this.number<=this.max)}return n&&t.prototype._validate.call(this,e)},e.prototype.commit=function(){var t=this.number,e=t;null!=this.min&&(e=Math.max(e,this.min)),null!=this.max&&(e=Math.min(e,this.max)),e!==t&&(this.unmaskedValue=""+e);var n=this.value;this.postFormat.normalizeZeros&&(n=this._normalizeZeros(n)),this.postFormat.padFractionalZeros&&(n=this._padFractionalZeros(n)),this._value=n},e.prototype._normalizeZeros=function(t){var e=this._removeThousandsSeparators(t).split(this.radix);return e[0]=e[0].replace(/^(\D*)(0*)(\d*)/,function(t,e,n,r){return e+r}),t.length&&!/\d$/.test(e[0])&&(e[0]=e[0]+"0"),e.length>1&&(e[1]=e[1].replace(/0*$/,""),e[1].length||(e.length=1)),this._insertThousandsSeparators(e.join(this.radix))},e.prototype._padFractionalZeros=function(t){var e=t.split(this.radix);return e.length<2&&e.push(""),e[1]=e[1].padEnd(this.scale,"0"),e.join(this.radix)},createClass(e,[{key:"number",get:function(){var t=this._removeThousandsSeparators(this._normalizeZeros(this.unmaskedValue)).replace(this.radix,".");return Number(t)},set:function(t){this.unmaskedValue=""+t}},{key:"min",get:function(){return this._min},set:function(t){this._min=t}},{key:"max",get:function(){return this._max},set:function(t){this._max=t}},{key:"scale",get:function(){return this._scale},set:function(t){this._scale=t}},{key:"radix",get:function(){return this._radix},set:function(t){this._radix=t,this._updateNumberRegExp()}},{key:"signed",get:function(){return this._signed||null!=this.min&&this.min<0||null!=this.max&&this.max<0},set:function(t){this._signed=t}},{key:"postFormat",get:function(){return this._postFormat},set:function(t){this._postFormat=_extends({},e.DEFAULTS.postFormat,t)}},{key:"mapToRadix",get:function(){return this._mapToRadix},set:function(t){this._mapToRadix=t,this._mapToRadixRegExp=new RegExp("["+t.map(escapeRegExp).join("")+"]","g")}},{key:"thousandsSeparator",get:function(){return this._thousandsSeparator},set:function(t){this._thousandsSeparator=t,this._thousandsSeparatorRegExp=new RegExp(escapeRegExp(t),"g")}}]),e}(Masked),_applyDecoratedDescriptor$2(_class$2.prototype,"min",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class$2.prototype,"min"),_class$2.prototype),_applyDecoratedDescriptor$2(_class$2.prototype,"max",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class$2.prototype,"max"),_class$2.prototype),_applyDecoratedDescriptor$2(_class$2.prototype,"scale",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class$2.prototype,"scale"),_class$2.prototype),_applyDecoratedDescriptor$2(_class$2.prototype,"radix",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class$2.prototype,"radix"),_class$2.prototype),_applyDecoratedDescriptor$2(_class$2.prototype,"signed",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class$2.prototype,"signed"),_class$2.prototype),_applyDecoratedDescriptor$2(_class$2.prototype,"postFormat",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class$2.prototype,"postFormat"),_class$2.prototype),_applyDecoratedDescriptor$2(_class$2.prototype,"mapToRadix",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class$2.prototype,"mapToRadix"),_class$2.prototype),_applyDecoratedDescriptor$2(_class$2.prototype,"thousandsSeparator",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class$2.prototype,"thousandsSeparator"),_class$2.prototype),_class$2);MaskedNumber.DEFAULTS={radix:",",thousandsSeparator:"",mapToRadix:["."],scale:2,postFormat:{normalizeZeros:!0}};var PatternDefinition=function(){function t(e){classCallCheck(this,t),_extends(this,e),this.mask&&(this._masked=createMask(e))}return t.prototype.reset=function(){this.isHollow=!1,this._masked&&this._masked.reset()},t.prototype.resolve=function(t){return!!this._masked&&(this._masked.value=t,this._masked.value)},createClass(t,[{key:"isInput",get:function(){return this.type===t.TYPES.INPUT}},{key:"isHiddenHollow",get:function(){return this.isHollow&&this.optional}}]),t}();PatternDefinition.DEFAULTS={0:/\d/,a:/[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,"*":/./},PatternDefinition.TYPES={INPUT:"input",FIXED:"fixed"};var PatternGroup=function(){function t(e,n){var r=n.name,i=n.offset,u=n.mask,o=n.validate;classCallCheck(this,t),this.masked=e,this.name=r,this.offset=i,this.mask=u,this.validate=o||function(){return!0}}return t.prototype._validate=function(t){return this.validate(this.value,this,t)},createClass(t,[{key:"value",get:function(){return this.masked.value.slice(this.masked.mapDefIndexToPos(this.offset),this.masked.mapDefIndexToPos(this.offset+this.mask.length))}},{key:"unmaskedValue",get:function(){return this.masked.extractInput(this.masked.mapDefIndexToPos(this.offset),this.masked.mapDefIndexToPos(this.offset+this.mask.length))}}]),t}(),RangeGroup=function(){function t(e){var n=e[0],r=e[1],i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(r+"").length;classCallCheck(this,t),this._from=n,this._to=r,this._maxLength=i,this.validate=this.validate.bind(this),this._update()}return t.prototype._update=function(){this._maxLength=Math.max(this._maxLength,(this.to+"").length),this.mask="0".repeat(this._maxLength)},t.prototype.validate=function(t){var e="",n="",r=t.match(/^(\D*)(\d*)(\D*)/),i=r[1],u=r[2];return u&&(e="0".repeat(i.length)+u,n="9".repeat(i.length)+u),-1===t.search(/[^0]/)&&t.length<=this._matchFrom||(e=e.padEnd(this._maxLength,"0"),n=n.padEnd(this._maxLength,"9"),this.from<=Number(n)&&Number(e)<=this.to)},createClass(t,[{key:"to",get:function(){return this._to},set:function(t){this._to=t,this._update()}},{key:"from",get:function(){return this._from},set:function(t){this._from=t,this._update()}},{key:"maxLength",get:function(){return this._maxLength},set:function(t){this._maxLength=t,this._update()}},{key:"_matchFrom",get:function(){return this.maxLength-(this.from+"").length}}]),t}();PatternGroup.Range=RangeGroup,PatternGroup.Enum=EnumGroup;var _class$1,MaskedPattern=(_class$1=function(t){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};classCallCheck(this,e);var r=n.definitions,i=n.placeholder,u=n.groups,o=possibleConstructorReturn(this,t.call(this,n));return delete o.isInitialized,o.placeholder=i,o.definitions=r,o.groups=u,o.isInitialized=!0,o}return inherits(e,t),e.prototype._updateMask=function(){var t=this,n=this._definitions;this._charDefs=[],this._groupDefs=[];var r=this.mask;if(r&&n){var i=!1,u=!1,o=!1;t:for(var s=0;s=e)break;r.isHiddenHollow&&++e}return e}},e.prototype._unmask=function(){for(var t=this.value,e="",n=0,r=0;n0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,n=this.value,r="",i=this.mapPosToDefIndex(e),u=t,o=this.mapPosToDefIndex(t);u0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,r=this.mapPosToDefIndex(e),i=this.mapPosToDefIndex(n),u=this._charDefs.map(function(t,e){return[t,e]}).slice(r,i).filter(function(t){return t[0].stopAlign}).map(function(t){return t[1]}),o=[r].concat(u,[i]);return o.map(function(e,n){return[u.indexOf(e)>=0?e:null,t.extractInput(t.mapDefIndexToPos(e),t.mapDefIndexToPos(o[++n]))]}).filter(function(t){var e=t[0],n=t[1];return null!=e||n})},e.prototype._appendPlaceholder=function(t){for(var e=t||this._charDefs.length,n=this.mapPosToDefIndex(this.value.length);n0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;this._value=this.value.slice(0,t)+this.value.slice(e);var n=this.mapPosToDefIndex(t),r=this.mapPosToDefIndex(e);this._charDefs.slice(n,r).forEach(function(t){return t.reset()})},e.prototype.nearestInputPos=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:DIRECTION.LEFT;if(!e)return t;var n=this.mapPosToDefIndex(t),r=n,i=void 0,u=void 0,o=void 0,s=void 0;for(s=indexInDirection(r,e);0<=s&&s=this._charDefs.length)&&null!=i&&(r=i)}else null==u&&(r=null!=o?o:i);return this.mapDefIndexToPos(r)},e.prototype.group=function(t){return this.groupsByName(t)[0]},e.prototype.groupsByName=function(t){return this._groupDefs.filter(function(e){return e.name===t})},createClass(e,[{key:"placeholder",get:function(){return this._placeholder},set:function(t){this._placeholder=_extends({},e.DEFAULT_PLACEHOLDER,t)}},{key:"definitions",get:function(){return this._definitions},set:function(t){t=_extends({},PatternDefinition.DEFAULTS,t),this._definitions=t,this._updateMask()}},{key:"mask",get:function(){return this._mask},set:function(t){this._mask=t,this._updateMask()}},{key:"isComplete",get:function(){var t=this;return!this._charDefs.some(function(e,n){return e.isInput&&!e.optional&&(e.isHollow||!t.extractInput(n,n+1))})}},{key:"groups",get:function(){return this._groups},set:function(t){this._groups=t,this._updateMask()}}]),e}(Masked),_applyDecoratedDescriptor$1(_class$1.prototype,"placeholder",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class$1.prototype,"placeholder"),_class$1.prototype),_applyDecoratedDescriptor$1(_class$1.prototype,"definitions",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class$1.prototype,"definitions"),_class$1.prototype),_applyDecoratedDescriptor$1(_class$1.prototype,"mask",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class$1.prototype,"mask"),_class$1.prototype),_applyDecoratedDescriptor$1(_class$1.prototype,"groups",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class$1.prototype,"groups"),_class$1.prototype),_class$1);MaskedPattern.DEFAULT_PLACEHOLDER={lazy:!0,char:"_"},MaskedPattern.STOP_CHAR="`",MaskedPattern.ESCAPE_CHAR="\\",MaskedPattern.Definition=PatternDefinition,MaskedPattern.Group=PatternGroup;var _class$3,MaskedDate=(_class$3=function(t){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};classCallCheck(this,e);var r=n.groups,i=n=_extends({},e.DEFAULTS,n),u=i.min,o=i.max,s=i.format,a=i.parse;n.groups=_extends({},e.DEFAULTS.groups),n.groups.Y&&(u&&(n.groups.Y.from=u.getFullYear()),o&&(n.groups.Y.to=o.getFullYear())),_extends(n.groups,r);var l=possibleConstructorReturn(this,t.call(this,n));return delete l.isInitialized,l.min=u,l.max=o,l.format=s,l.parse=a,l.isInitialized=!0,l}return inherits(e,t),e.prototype._validate=function(e){var n=t.prototype._validate.call(this,e),r=this.date;return n&&(!this.isComplete||this.isDateExist(this.value)&&r&&(null==this.min||this.min<=r)&&(null==this.max||r<=this.max))},e.prototype.isDateExist=function(t){return this.format(this.parse(t))===t},createClass(e,[{key:"date",get:function(){return this.isComplete?this.parse(this.value):null},set:function(t){this.value=this.format(t)}},{key:"min",get:function(){return this._min},set:function(t){this._min=t}},{key:"max",get:function(){return this._max},set:function(t){this._max=t}}]),e}(MaskedPattern),_applyDecoratedDescriptor$3(_class$3.prototype,"min",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class$3.prototype,"min"),_class$3.prototype),_applyDecoratedDescriptor$3(_class$3.prototype,"max",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class$3.prototype,"max"),_class$3.prototype),_class$3);MaskedDate.DEFAULTS={mask:"d{.}`m{.}`Y",format:function(t){return[(""+t.getDate()).padStart(2,"0"),(""+(t.getMonth()+1)).padStart(2,"0"),t.getFullYear()].join(".")},parse:function(t){var e=t.split("."),n=e[0],r=e[1],i=e[2];return new Date(i,r-1,n)},groups:{d:new PatternGroup.Range([1,31]),m:new PatternGroup.Range([1,12]),Y:new PatternGroup.Range([1900,9999])}};var ActionDetails=function(){function t(e,n,r,i){classCallCheck(this,t),this.value=e,this.cursorPos=n,this.oldValue=r,this.oldSelection=i}return createClass(t,[{key:"startChangePos",get:function(){return Math.min(this.cursorPos,this.oldSelection.start)}},{key:"insertedCount",get:function(){return this.cursorPos-this.startChangePos}},{key:"inserted",get:function(){return this.value.substr(this.startChangePos,this.insertedCount)}},{key:"removedCount",get:function(){return Math.max(this.oldSelection.end-this.startChangePos||this.oldValue.length-this.value.length,0)}},{key:"removed",get:function(){return this.oldValue.substr(this.startChangePos,this.removedCount)}},{key:"head",get:function(){return this.value.substring(0,this.startChangePos)}},{key:"tail",get:function(){this.value.substring(this.startChangePos+this.insertedCount)}},{key:"removeDirection",get:function(){return this.removedCount&&(this.oldSelection.end===this.cursorPos||this.insertedCount?DIRECTION.RIGHT:DIRECTION.LEFT)}}]),t}(),InputMask=function(){function t(e,n){classCallCheck(this,t),this.el=e,this.masked=createMask(n),this._listeners={},this._value="",this._unmaskedValue="",this._saveSelection=this._saveSelection.bind(this),this._onInput=this._onInput.bind(this),this._onChange=this._onChange.bind(this),this._onDrop=this._onDrop.bind(this),this._alignCursor=this._alignCursor.bind(this),this._alignCursorFriendly=this._alignCursorFriendly.bind(this),this.bindEvents(),this.updateValue(),this._onChange()}return t.prototype.bindEvents=function(){this.el.addEventListener("keydown",this._saveSelection),this.el.addEventListener("input",this._onInput),this.el.addEventListener("drop",this._onDrop),this.el.addEventListener("click",this._alignCursorFriendly),this.el.addEventListener("change",this._onChange)},t.prototype.unbindEvents=function(){this.el.removeEventListener("keydown",this._saveSelection),this.el.removeEventListener("input",this._onInput),this.el.removeEventListener("drop",this._onDrop),this.el.removeEventListener("click",this._alignCursorFriendly),this.el.removeEventListener("change",this._onChange)},t.prototype.fireEvent=function(t){(this._listeners[t]||[]).forEach(function(t){return t()})},t.prototype._saveSelection=function(){this.value!==this.el.value&&console.warn("Uncontrolled input change, refresh mask manually!"),this._selection={start:this.selectionStart,end:this.cursorPos}},t.prototype.updateValue=function(){this.masked.value=this.el.value},t.prototype.updateControl=function(){var t=this.masked.unmaskedValue,e=this.masked.value,n=this.unmaskedValue!==t||this.value!==e;this._unmaskedValue=t,this._value=e,this.el.value!==e&&(this.el.value=e),n&&this._fireChangeEvents()},t.prototype.updateOptions=function(t){var e=this,n=t.mask;n&&(this.mask=n),this.masked.withValueRefresh(function(){for(var n in t)"mask"!==n&&(e.masked[n]=t[n])}),this.updateControl()},t.prototype.updateCursor=function(t){null!=t&&(this.cursorPos=t,this._delayUpdateCursor(t))},t.prototype._delayUpdateCursor=function(t){var e=this;this._abortUpdateCursor(),this._changingCursorPos=t,this._cursorChanging=setTimeout(function(){e.cursorPos=e._changingCursorPos,e._abortUpdateCursor()},10)},t.prototype._fireChangeEvents=function(){this.fireEvent("accept"),this.masked.isComplete&&this.fireEvent("complete")},t.prototype._abortUpdateCursor=function(){this._cursorChanging&&(clearTimeout(this._cursorChanging),delete this._cursorChanging)},t.prototype._alignCursor=function(){this.cursorPos=this.masked.nearestInputPos(this.cursorPos)},t.prototype._alignCursorFriendly=function(){this.selectionStart===this.cursorPos&&this._alignCursor()},t.prototype.on=function(t,e){return this._listeners[t]||(this._listeners[t]=[]),this._listeners[t].push(e),this},t.prototype.off=function(t,e){if(this._listeners[t]){if(e){var n=this._listeners[t].indexOf(e);return n>=0&&this._listeners.splice(n,1),this}delete this._listeners[t]}},t.prototype._onInput=function(){this._abortUpdateCursor();var t=new ActionDetails(this.el.value,this.cursorPos,this.value,this._selection),e=t.startChangePos+t.removed.length,n=this.masked.extractTail(e),r=this.masked.nearestInputPos(t.startChangePos,t.removeDirection);this.masked.clear(r);var i=this.masked.appendWithTail(t.inserted,n),u=this.masked.nearestInputPos(r+i,t.removeDirection);this.updateControl(),this.updateCursor(u)},t.prototype._onChange=function(){this.value!==this.el.value&&this.updateValue(),this.masked.commit(),this.updateControl()},t.prototype._onDrop=function(t){t.preventDefault(),t.stopPropagation()},t.prototype.destroy=function(){this.unbindEvents(),this._listeners.length=0},createClass(t,[{key:"mask",get:function(){return this.masked.mask},set:function(t){if((void 0===t?"undefined":_typeof(t))!==_typeof(this.masked.mask)){var e=this.masked?this.masked.unmaskedValue:null;this.masked=createMask({mask:t}),null!=e&&(this.masked.unmaskedValue=e)}else this.masked.mask=t}},{key:"value",get:function(){return this._value},set:function(t){this.masked.value=t,this.updateControl(),this._alignCursor()}},{key:"unmaskedValue",get:function(){return this._unmaskedValue},set:function(t){this.masked.unmaskedValue=t,this.updateControl(),this._alignCursor()}},{key:"selectionStart",get:function(){return this._cursorChanging?this._changingCursorPos:this.el.selectionStart}},{key:"cursorPos",get:function(){return this._cursorChanging?this._changingCursorPos:this.el.selectionEnd},set:function(t){this.el===document.activeElement&&(this.el.setSelectionRange(t,t),this._saveSelection())}}]),t}();IMask$1.InputMask=InputMask,IMask$1.Masked=Masked,IMask$1.MaskedPattern=MaskedPattern,IMask$1.MaskedNumber=MaskedNumber,IMask$1.MaskedDate=MaskedDate,window.IMask=IMask$1;export default IMask$1; +function createCommonjsModule(t,e){return e={exports:{}},t(e,e.exports),e.exports}function isString(t){return"string"==typeof t||t instanceof String}function conform(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return isString(t)?t:t?e:r}function indexInDirection(t,e){return e===DIRECTION.LEFT&&--t,t}function refreshValueOnSet(t,e,r){var n=r.set;r.set=function(){for(var t=arguments.length,e=Array(t),r=0;r=0})}}}function _applyDecoratedDescriptor$1(t,e,r,n,i){var u={};return Object.keys(n).forEach(function(t){u[t]=n[t]}),u.enumerable=!!u.enumerable,u.configurable=!!u.configurable,("value"in u||u.initializer)&&(u.writable=!0),u=r.slice().reverse().reduce(function(r,n){return n(t,e,r)||r},u),i&&void 0!==u.initializer&&(u.value=u.initializer?u.initializer.call(i):void 0,u.initializer=void 0),void 0===u.initializer&&(Object.defineProperty(t,e,u),u=null),u}function _applyDecoratedDescriptor$3(t,e,r,n,i){var u={};return Object.keys(n).forEach(function(t){u[t]=n[t]}),u.enumerable=!!u.enumerable,u.configurable=!!u.configurable,("value"in u||u.initializer)&&(u.writable=!0),u=r.slice().reverse().reduce(function(r,n){return n(t,e,r)||r},u),i&&void 0!==u.initializer&&(u.value=u.initializer?u.initializer.call(i):void 0,u.initializer=void 0),void 0===u.initializer&&(Object.defineProperty(t,e,u),u=null),u}function IMask$1(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new InputMask(t,e)}var _global=createCommonjsModule(function(t){var e=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=e)}),_core=createCommonjsModule(function(t){var e=t.exports={version:"2.4.0"};"number"==typeof __e&&(__e=e)}),_isObject=function(t){return"object"==typeof t?null!==t:"function"==typeof t},_anObject=function(t){if(!_isObject(t))throw TypeError(t+" is not an object!");return t},_fails=function(t){try{return!!t()}catch(t){return!0}},_descriptors=!_fails(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}),document$1=_global.document,is=_isObject(document$1)&&_isObject(document$1.createElement),_domCreate=function(t){return is?document$1.createElement(t):{}},_ie8DomDefine=!_descriptors&&!_fails(function(){return 7!=Object.defineProperty(_domCreate("div"),"a",{get:function(){return 7}}).a}),_toPrimitive=function(t,e){if(!_isObject(t))return t;var r,n;if(e&&"function"==typeof(r=t.toString)&&!_isObject(n=r.call(t)))return n;if("function"==typeof(r=t.valueOf)&&!_isObject(n=r.call(t)))return n;if(!e&&"function"==typeof(r=t.toString)&&!_isObject(n=r.call(t)))return n;throw TypeError("Can't convert object to primitive value")},dP=Object.defineProperty,f=_descriptors?Object.defineProperty:function(t,e,r){if(_anObject(t),e=_toPrimitive(e,!0),_anObject(r),_ie8DomDefine)try{return dP(t,e,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(t[e]=r.value),t},_objectDp={f:f},_propertyDesc=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},_hide=_descriptors?function(t,e,r){return _objectDp.f(t,e,_propertyDesc(1,r))}:function(t,e,r){return t[e]=r,t},hasOwnProperty={}.hasOwnProperty,_has=function(t,e){return hasOwnProperty.call(t,e)},id=0,px=Math.random(),_uid=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++id+px).toString(36))},_redefine=createCommonjsModule(function(t){var e=_uid("src"),r=Function.toString,n=(""+r).split("toString");_core.inspectSource=function(t){return r.call(t)},(t.exports=function(t,r,i,u){var o="function"==typeof i;o&&(_has(i,"name")||_hide(i,"name",r)),t[r]!==i&&(o&&(_has(i,e)||_hide(i,e,t[r]?""+t[r]:n.join(String(r)))),t===_global?t[r]=i:u?t[r]?t[r]=i:_hide(t,r,i):(delete t[r],_hide(t,r,i)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[e]||r.call(this)})}),_aFunction=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t},_ctx=function(t,e,r){if(_aFunction(t),void 0===e)return t;switch(r){case 1:return function(r){return t.call(e,r)};case 2:return function(r,n){return t.call(e,r,n)};case 3:return function(r,n,i){return t.call(e,r,n,i)}}return function(){return t.apply(e,arguments)}},PROTOTYPE="prototype",$export=function(t,e,r){var n,i,u,o,s=t&$export.F,a=t&$export.G,l=t&$export.S,c=t&$export.P,p=t&$export.B,h=a?_global:l?_global[e]||(_global[e]={}):(_global[e]||{})[PROTOTYPE],f=a?_core:_core[e]||(_core[e]={}),d=f[PROTOTYPE]||(f[PROTOTYPE]={});a&&(r=e);for(n in r)u=((i=!s&&h&&void 0!==h[n])?h:r)[n],o=p&&i?_ctx(u,_global):c&&"function"==typeof u?_ctx(Function.call,u):u,h&&_redefine(h,n,u,t&$export.U),f[n]!=u&&_hide(f,n,o),c&&d[n]!=u&&(d[n]=u)};_global.core=_core,$export.F=1,$export.G=2,$export.S=4,$export.P=8,$export.B=16,$export.W=32,$export.U=64,$export.R=128;var _export=$export,toString={}.toString,_cof=function(t){return toString.call(t).slice(8,-1)},_iobject=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==_cof(t)?t.split(""):Object(t)},_defined=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t},_toObject=function(t){return Object(_defined(t))},ceil=Math.ceil,floor=Math.floor,_toInteger=function(t){return isNaN(t=+t)?0:(t>0?floor:ceil)(t)},min=Math.min,_toLength=function(t){return t>0?min(_toInteger(t),9007199254740991):0},_isArray=Array.isArray||function(t){return"Array"==_cof(t)},SHARED="__core-js_shared__",store=_global[SHARED]||(_global[SHARED]={}),_shared=function(t){return store[t]||(store[t]={})},_wks=createCommonjsModule(function(t){var e=_shared("wks"),r=_global.Symbol,n="function"==typeof r;(t.exports=function(t){return e[t]||(e[t]=n&&r[t]||(n?r:_uid)("Symbol."+t))}).store=e}),SPECIES=_wks("species"),_arraySpeciesConstructor=function(t){var e;return _isArray(t)&&("function"!=typeof(e=t.constructor)||e!==Array&&!_isArray(e.prototype)||(e=void 0),_isObject(e)&&null===(e=e[SPECIES])&&(e=void 0)),void 0===e?Array:e},_arraySpeciesCreate=function(t,e){return new(_arraySpeciesConstructor(t))(e)},_arrayMethods=function(t,e){var r=1==t,n=2==t,i=3==t,u=4==t,o=6==t,s=5==t||o,a=e||_arraySpeciesCreate;return function(e,l,c){for(var p,h,f=_toObject(e),d=_iobject(f),_=_ctx(l,c,3),m=_toLength(d.length),v=0,y=r?a(e,m):n?a(e,0):void 0;m>v;v++)if((s||v in d)&&(p=d[v],h=_(p,v,f),t))if(r)y[v]=h;else if(h)switch(t){case 3:return!0;case 5:return p;case 6:return v;case 2:y.push(p)}else if(u)return!1;return o?-1:i||u?u:y}},UNSCOPABLES=_wks("unscopables"),ArrayProto=Array.prototype;void 0==ArrayProto[UNSCOPABLES]&&_hide(ArrayProto,UNSCOPABLES,{});var _addToUnscopables=function(t){ArrayProto[UNSCOPABLES][t]=!0},$find=_arrayMethods(5),KEY="find",forced=!0;KEY in[]&&Array(1)[KEY](function(){forced=!1}),_export(_export.P+_export.F*forced,"Array",{find:function(t){return $find(this,t,arguments.length>1?arguments[1]:void 0)}}),_addToUnscopables(KEY);var _toIobject=function(t){return _iobject(_defined(t))},max=Math.max,min$1=Math.min,_toIndex=function(t,e){return(t=_toInteger(t))<0?max(t+e,0):min$1(t,e)},_arrayIncludes=function(t){return function(e,r,n){var i,u=_toIobject(e),o=_toLength(u.length),s=_toIndex(n,o);if(t&&r!=r){for(;o>s;)if((i=u[s++])!=i)return!0}else for(;o>s;s++)if((t||s in u)&&u[s]===r)return t||s||0;return!t&&-1}},shared=_shared("keys"),_sharedKey=function(t){return shared[t]||(shared[t]=_uid(t))},arrayIndexOf=_arrayIncludes(!1),IE_PROTO=_sharedKey("IE_PROTO"),_objectKeysInternal=function(t,e){var r,n=_toIobject(t),i=0,u=[];for(r in n)r!=IE_PROTO&&_has(n,r)&&u.push(r);for(;e.length>i;)_has(n,r=e[i++])&&(~arrayIndexOf(u,r)||u.push(r));return u},_enumBugKeys="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),_objectKeys=Object.keys||function(t){return _objectKeysInternal(t,_enumBugKeys)},_objectSap=function(t,e){var r=(_core.Object||{})[t]||Object[t],n={};n[t]=e(r),_export(_export.S+_export.F*_fails(function(){r(1)}),"Object",n)};_objectSap("keys",function(){return function(t){return _objectKeys(_toObject(t))}});var _stringRepeat=function(t){var e=String(_defined(this)),r="",n=_toInteger(t);if(n<0||n==1/0)throw RangeError("Count can't be negative");for(;n>0;(n>>>=1)&&(e+=e))1&n&&(r+=e);return r};_export(_export.P,"String",{repeat:_stringRepeat});var _stringPad=function(t,e,r,n){var i=String(_defined(t)),u=i.length,o=void 0===r?" ":String(r),s=_toLength(e);if(s<=u||""==o)return i;var a=s-u,l=_stringRepeat.call(o,Math.ceil(a/o.length));return l.length>a&&(l=l.slice(0,a)),n?l+i:i+l};_export(_export.P,"String",{padStart:function(t){return _stringPad(this,t,arguments.length>1?arguments[1]:void 0,!0)}}),_export(_export.P,"String",{padEnd:function(t){return _stringPad(this,t,arguments.length>1?arguments[1]:void 0,!1)}});var DIRECTION={NONE:0,LEFT:-1,RIGHT:1},_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},classCallCheck=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},createClass=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;return this.value.slice(t,e)},t.prototype.extractTail=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;return this.extractInput(t,e)},t.prototype._appendTail=function(t){return!t||this._append(t)},t.prototype._append=function(t,e){var r=this.value.length,n=this.clone();t=this.doPrepare(t,e);for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;this._value=this.value.slice(0,t)+this.value.slice(e)},t.prototype.withValueRefresh=function(t){if(this._refreshing)return t();this._refreshing=!0;var e=this.isInitialized?this.unmaskedValue:null,r=t();return null!=e&&(this.unmaskedValue=e),delete this._refreshing,r},t.prototype.doPrepare=function(t,e){return this.prepare(t,this,e)},t.prototype.doValidate=function(t){return this.validate(this.value,this,t)},t.prototype.doCommit=function(){this.commit(this.value,this)},createClass(t,[{key:"mask",get:function(){return this._mask},set:function(t){this._mask=t}},{key:"prepare",get:function(){return this._prepare},set:function(t){this._prepare=t}},{key:"validate",get:function(){return this._validate},set:function(t){this._validate=t}},{key:"commit",get:function(){return this._commit},set:function(t){this._commit=t}},{key:"value",get:function(){return this._value},set:function(t){this.reset(),this.appendWithTail(t),this.doCommit()}},{key:"unmaskedValue",get:function(){return this._unmask()},set:function(t){this.reset(),this._append(t),this.appendWithTail(""),this.doCommit()}},{key:"isComplete",get:function(){return!0}}]),t}(),_applyDecoratedDescriptor(_class.prototype,"mask",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class.prototype,"mask"),_class.prototype),_applyDecoratedDescriptor(_class.prototype,"prepare",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class.prototype,"prepare"),_class.prototype),_applyDecoratedDescriptor(_class.prototype,"validate",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class.prototype,"validate"),_class.prototype),_applyDecoratedDescriptor(_class.prototype,"commit",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class.prototype,"commit"),_class.prototype),_class),_class$2,MaskedNumber=(_class$2=function(t){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};classCallCheck(this,e),r=_extends({},e.DEFAULTS,r);var n=possibleConstructorReturn(this,t.call(this,r));delete n.isInitialized;var i=r,u=i.scale,o=i.radix,s=i.mapToRadix,a=i.min,l=i.max,c=i.signed,p=i.thousandsSeparator,h=i.postFormat;return n.min=a,n.max=l,n.scale=u,n.radix=o,n.mapToRadix=s,n.signed=c,n.thousandsSeparator=p,n.postFormat=h,n._updateNumberRegExp(),n.isInitialized=!0,n}return inherits(e,t),e.prototype._updateNumberRegExp=function(){var t="^",e="^";this.signed?(t+="([+|\\-]?|([+|\\-]?(0|([1-9]+\\d*))))",e+="[+|\\-]?"):t+="(0|([1-9]+\\d*))",e+="\\d*",this.scale&&(t+="("+this.radix+"\\d{0,"+this.scale+"})?",e+="("+this.radix+"\\d{0,"+this.scale+"})?"),t+="$",e+="$",this._numberRegExpSoft=new RegExp(t),this._numberRegExp=new RegExp(e)},e.prototype.extractTail=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;return this._removeThousandsSeparators(t.prototype.extractTail.call(this,e,r))},e.prototype._removeThousandsSeparators=function(t){return t.replace(this._thousandsSeparatorRegExp,"")},e.prototype._insertThousandsSeparators=function(t){var e=t.split(this.radix);return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,this.thousandsSeparator),e.join(this.radix)},e.prototype.doPrepare=function(e,r){return t.prototype.doPrepare.call(this,this._removeThousandsSeparators(e.replace(this._mapToRadixRegExp,this.radix)),r)},e.prototype.appendWithTail=function(e,r){var n=this.value.length;this._value=this._removeThousandsSeparators(this.value);var i=n-this.value.length,u=t.prototype.appendWithTail.call(this,e,r);this._value=this._insertThousandsSeparators(this.value);var o=n+u-i;this._value=this._insertThousandsSeparators(this.value);for(var s=0,a=0;a<=o;++a)this.value[a]===this.thousandsSeparator&&(++s,++o);return u-i+s},e.prototype.nearestInputPos=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:DIRECTION.LEFT;if(!e)return t;var r=indexInDirection(t,e);return this.value[r]===this.thousandsSeparator&&(t+=e),t},e.prototype.doValidate=function(e){var r=(e?this._numberRegExpSoft:this._numberRegExp).test(this._removeThousandsSeparators(this.value));if(r){var n=this.number;r=r&&!isNaN(n)&&(null==this.min||this.min>=0||this.min<=this.number)&&(null==this.max||this.max<=0||this.number<=this.max)}return r&&t.prototype.doValidate.call(this,e)},e.prototype.doCommit=function(){var e=this.number,r=e;null!=this.min&&(r=Math.max(r,this.min)),null!=this.max&&(r=Math.min(r,this.max)),r!==e&&(this.unmaskedValue=""+r);var n=this.value;this.postFormat.normalizeZeros&&(n=this._normalizeZeros(n)),this.postFormat.padFractionalZeros&&(n=this._padFractionalZeros(n)),this._value=n,t.prototype.doCommit.call(this)},e.prototype._normalizeZeros=function(t){var e=this._removeThousandsSeparators(t).split(this.radix);return e[0]=e[0].replace(/^(\D*)(0*)(\d*)/,function(t,e,r,n){return e+n}),t.length&&!/\d$/.test(e[0])&&(e[0]=e[0]+"0"),e.length>1&&(e[1]=e[1].replace(/0*$/,""),e[1].length||(e.length=1)),this._insertThousandsSeparators(e.join(this.radix))},e.prototype._padFractionalZeros=function(t){var e=t.split(this.radix);return e.length<2&&e.push(""),e[1]=e[1].padEnd(this.scale,"0"),e.join(this.radix)},createClass(e,[{key:"number",get:function(){var t=this._removeThousandsSeparators(this._normalizeZeros(this.unmaskedValue)).replace(this.radix,".");return Number(t)},set:function(t){this.unmaskedValue=""+t}},{key:"min",get:function(){return this._min},set:function(t){this._min=t}},{key:"max",get:function(){return this._max},set:function(t){this._max=t}},{key:"scale",get:function(){return this._scale},set:function(t){this._scale=t}},{key:"radix",get:function(){return this._radix},set:function(t){this._radix=t,this._updateNumberRegExp()}},{key:"signed",get:function(){return this._signed||null!=this.min&&this.min<0||null!=this.max&&this.max<0},set:function(t){this._signed=t}},{key:"postFormat",get:function(){return this._postFormat},set:function(t){this._postFormat=_extends({},e.DEFAULTS.postFormat,t)}},{key:"mapToRadix",get:function(){return this._mapToRadix},set:function(t){this._mapToRadix=t,this._mapToRadixRegExp=new RegExp("["+t.map(escapeRegExp).join("")+"]","g")}},{key:"thousandsSeparator",get:function(){return this._thousandsSeparator},set:function(t){this._thousandsSeparator=t,this._thousandsSeparatorRegExp=new RegExp(escapeRegExp(t),"g")}}]),e}(Masked),_applyDecoratedDescriptor$2(_class$2.prototype,"min",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class$2.prototype,"min"),_class$2.prototype),_applyDecoratedDescriptor$2(_class$2.prototype,"max",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class$2.prototype,"max"),_class$2.prototype),_applyDecoratedDescriptor$2(_class$2.prototype,"scale",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class$2.prototype,"scale"),_class$2.prototype),_applyDecoratedDescriptor$2(_class$2.prototype,"radix",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class$2.prototype,"radix"),_class$2.prototype),_applyDecoratedDescriptor$2(_class$2.prototype,"signed",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class$2.prototype,"signed"),_class$2.prototype),_applyDecoratedDescriptor$2(_class$2.prototype,"postFormat",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class$2.prototype,"postFormat"),_class$2.prototype),_applyDecoratedDescriptor$2(_class$2.prototype,"mapToRadix",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class$2.prototype,"mapToRadix"),_class$2.prototype),_applyDecoratedDescriptor$2(_class$2.prototype,"thousandsSeparator",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class$2.prototype,"thousandsSeparator"),_class$2.prototype),_class$2);MaskedNumber.DEFAULTS={radix:",",thousandsSeparator:"",mapToRadix:["."],scale:2,postFormat:{normalizeZeros:!0}};var PatternDefinition=function(){function t(e){classCallCheck(this,t),_extends(this,e),this.mask&&(this._masked=createMask(e))}return t.prototype.reset=function(){this.isHollow=!1,this._masked&&this._masked.reset()},t.prototype.resolve=function(t){return!!this._masked&&(this._masked.value=t,this._masked.value)},createClass(t,[{key:"isInput",get:function(){return this.type===t.TYPES.INPUT}},{key:"isHiddenHollow",get:function(){return this.isHollow&&this.optional}}]),t}();PatternDefinition.DEFAULTS={0:/\d/,a:/[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,"*":/./},PatternDefinition.TYPES={INPUT:"input",FIXED:"fixed"};var PatternGroup=function(){function t(e,r){var n=r.name,i=r.offset,u=r.mask,o=r.validate;classCallCheck(this,t),this.masked=e,this.name=n,this.offset=i,this.mask=u,this.validate=o||function(){return!0}}return t.prototype.doValidate=function(t){return this.validate(this.value,this,t)},createClass(t,[{key:"value",get:function(){return this.masked.value.slice(this.masked.mapDefIndexToPos(this.offset),this.masked.mapDefIndexToPos(this.offset+this.mask.length))}},{key:"unmaskedValue",get:function(){return this.masked.extractInput(this.masked.mapDefIndexToPos(this.offset),this.masked.mapDefIndexToPos(this.offset+this.mask.length))}}]),t}(),RangeGroup=function(){function t(e){var r=e[0],n=e[1],i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(n+"").length;classCallCheck(this,t),this._from=r,this._to=n,this._maxLength=i,this.validate=this.validate.bind(this),this._update()}return t.prototype._update=function(){this._maxLength=Math.max(this._maxLength,(this.to+"").length),this.mask="0".repeat(this._maxLength)},t.prototype.validate=function(t){var e="",r="",n=t.match(/^(\D*)(\d*)(\D*)/),i=n[1],u=n[2];return u&&(e="0".repeat(i.length)+u,r="9".repeat(i.length)+u),-1===t.search(/[^0]/)&&t.length<=this._matchFrom||(e=e.padEnd(this._maxLength,"0"),r=r.padEnd(this._maxLength,"9"),this.from<=Number(r)&&Number(e)<=this.to)},createClass(t,[{key:"to",get:function(){return this._to},set:function(t){this._to=t,this._update()}},{key:"from",get:function(){return this._from},set:function(t){this._from=t,this._update()}},{key:"maxLength",get:function(){return this._maxLength},set:function(t){this._maxLength=t,this._update()}},{key:"_matchFrom",get:function(){return this.maxLength-(this.from+"").length}}]),t}();PatternGroup.Range=RangeGroup,PatternGroup.Enum=EnumGroup;var _class$1,MaskedPattern=(_class$1=function(t){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};classCallCheck(this,e);var n=r.definitions,i=r.placeholder,u=r.groups,o=possibleConstructorReturn(this,t.call(this,r));return delete o.isInitialized,o.placeholder=i,o.definitions=n,o.groups=u,o.isInitialized=!0,o}return inherits(e,t),e.prototype._updateMask=function(){var t=this,r=this._definitions;this._charDefs=[],this._groupDefs=[];var n=this.mask;if(n&&r){var i=!1,u=!1,o=!1;t:for(var s=0;s=e)break;n.isHiddenHollow&&++e}return e}},e.prototype._unmask=function(){for(var t=this.value,e="",r=0,n=0;r0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,r=this.value,n="",i=this.mapPosToDefIndex(e),u=t,o=this.mapPosToDefIndex(t);u0&&void 0!==arguments[0]?arguments[0]:0,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,n=this.mapPosToDefIndex(e),i=this.mapPosToDefIndex(r),u=this._charDefs.map(function(t,e){return[t,e]}).slice(n,i).filter(function(t){return t[0].stopAlign}).map(function(t){return t[1]}),o=[n].concat(u,[i]);return o.map(function(e,r){return[u.indexOf(e)>=0?e:null,t.extractInput(t.mapDefIndexToPos(e),t.mapDefIndexToPos(o[++r]))]}).filter(function(t){var e=t[0],r=t[1];return null!=e||r})},e.prototype._appendPlaceholder=function(t){for(var e=t||this._charDefs.length,r=this.mapPosToDefIndex(this.value.length);r0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;this._value=this.value.slice(0,t)+this.value.slice(e);var r=this.mapPosToDefIndex(t),n=this.mapPosToDefIndex(e);this._charDefs.slice(r,n).forEach(function(t){return t.reset()})},e.prototype.nearestInputPos=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:DIRECTION.LEFT;if(!e)return t;var r=this.mapPosToDefIndex(t),n=r,i=void 0,u=void 0,o=void 0,s=void 0;for(s=indexInDirection(n,e);0<=s&&s=this._charDefs.length)&&null!=i&&(n=i)}else null==u&&(n=null!=o?o:i);return this.mapDefIndexToPos(n)},e.prototype.group=function(t){return this.groupsByName(t)[0]},e.prototype.groupsByName=function(t){return this._groupDefs.filter(function(e){return e.name===t})},createClass(e,[{key:"placeholder",get:function(){return this._placeholder},set:function(t){this._placeholder=_extends({},e.DEFAULT_PLACEHOLDER,t)}},{key:"definitions",get:function(){return this._definitions},set:function(t){t=_extends({},PatternDefinition.DEFAULTS,t),this._definitions=t,this._updateMask()}},{key:"mask",get:function(){return this._mask},set:function(t){this._mask=t,this._updateMask()}},{key:"isComplete",get:function(){var t=this;return!this._charDefs.some(function(e,r){return e.isInput&&!e.optional&&(e.isHollow||!t.extractInput(r,r+1))})}},{key:"groups",get:function(){return this._groups},set:function(t){this._groups=t,this._updateMask()}}]),e}(Masked),_applyDecoratedDescriptor$1(_class$1.prototype,"placeholder",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class$1.prototype,"placeholder"),_class$1.prototype),_applyDecoratedDescriptor$1(_class$1.prototype,"definitions",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class$1.prototype,"definitions"),_class$1.prototype),_applyDecoratedDescriptor$1(_class$1.prototype,"mask",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class$1.prototype,"mask"),_class$1.prototype),_applyDecoratedDescriptor$1(_class$1.prototype,"groups",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class$1.prototype,"groups"),_class$1.prototype),_class$1);MaskedPattern.DEFAULT_PLACEHOLDER={lazy:!0,char:"_"},MaskedPattern.STOP_CHAR="`",MaskedPattern.ESCAPE_CHAR="\\",MaskedPattern.Definition=PatternDefinition,MaskedPattern.Group=PatternGroup;var _class$3,MaskedDate=(_class$3=function(t){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};classCallCheck(this,e);var n=r.groups,i=r=_extends({},e.DEFAULTS,r),u=i.min,o=i.max,s=i.format,a=i.parse;r.groups=_extends({},e.DEFAULTS.groups),r.groups.Y&&(u&&(r.groups.Y.from=u.getFullYear()),o&&(r.groups.Y.to=o.getFullYear())),_extends(r.groups,n);var l=possibleConstructorReturn(this,t.call(this,r));return delete l.isInitialized,l.min=u,l.max=o,l.format=s,l.parse=a,l.isInitialized=!0,l}return inherits(e,t),e.prototype.doValidate=function(e){var r=t.prototype.doValidate.call(this,e),n=this.date;return r&&(!this.isComplete||this.isDateExist(this.value)&&n&&(null==this.min||this.min<=n)&&(null==this.max||n<=this.max))},e.prototype.isDateExist=function(t){return this.format(this.parse(t))===t},createClass(e,[{key:"date",get:function(){return this.isComplete?this.parse(this.value):null},set:function(t){this.value=this.format(t)}},{key:"min",get:function(){return this._min},set:function(t){this._min=t}},{key:"max",get:function(){return this._max},set:function(t){this._max=t}}]),e}(MaskedPattern),_applyDecoratedDescriptor$3(_class$3.prototype,"min",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class$3.prototype,"min"),_class$3.prototype),_applyDecoratedDescriptor$3(_class$3.prototype,"max",[refreshValueOnSet],Object.getOwnPropertyDescriptor(_class$3.prototype,"max"),_class$3.prototype),_class$3);MaskedDate.DEFAULTS={mask:"d{.}`m{.}`Y",format:function(t){return[(""+t.getDate()).padStart(2,"0"),(""+(t.getMonth()+1)).padStart(2,"0"),t.getFullYear()].join(".")},parse:function(t){var e=t.split("."),r=e[0],n=e[1],i=e[2];return new Date(i,n-1,r)},groups:{d:new PatternGroup.Range([1,31]),m:new PatternGroup.Range([1,12]),Y:new PatternGroup.Range([1900,9999])}};var ActionDetails=function(){function t(e,r,n,i){classCallCheck(this,t),this.value=e,this.cursorPos=r,this.oldValue=n,this.oldSelection=i}return createClass(t,[{key:"startChangePos",get:function(){return Math.min(this.cursorPos,this.oldSelection.start)}},{key:"insertedCount",get:function(){return this.cursorPos-this.startChangePos}},{key:"inserted",get:function(){return this.value.substr(this.startChangePos,this.insertedCount)}},{key:"removedCount",get:function(){return Math.max(this.oldSelection.end-this.startChangePos||this.oldValue.length-this.value.length,0)}},{key:"removed",get:function(){return this.oldValue.substr(this.startChangePos,this.removedCount)}},{key:"head",get:function(){return this.value.substring(0,this.startChangePos)}},{key:"tail",get:function(){this.value.substring(this.startChangePos+this.insertedCount)}},{key:"removeDirection",get:function(){return this.removedCount&&(this.oldSelection.end===this.cursorPos||this.insertedCount?DIRECTION.RIGHT:DIRECTION.LEFT)}}]),t}(),InputMask=function(){function t(e,r){classCallCheck(this,t),this.el=e,this.masked=createMask(r),this._listeners={},this._value="",this._unmaskedValue="",this._saveSelection=this._saveSelection.bind(this),this._onInput=this._onInput.bind(this),this._onChange=this._onChange.bind(this),this._onDrop=this._onDrop.bind(this),this._alignCursor=this._alignCursor.bind(this),this._alignCursorFriendly=this._alignCursorFriendly.bind(this),this.bindEvents(),this.updateValue(),this._onChange()}return t.prototype.bindEvents=function(){this.el.addEventListener("keydown",this._saveSelection),this.el.addEventListener("input",this._onInput),this.el.addEventListener("drop",this._onDrop),this.el.addEventListener("click",this._alignCursorFriendly),this.el.addEventListener("change",this._onChange)},t.prototype.unbindEvents=function(){this.el.removeEventListener("keydown",this._saveSelection),this.el.removeEventListener("input",this._onInput),this.el.removeEventListener("drop",this._onDrop),this.el.removeEventListener("click",this._alignCursorFriendly),this.el.removeEventListener("change",this._onChange)},t.prototype.fireEvent=function(t){(this._listeners[t]||[]).forEach(function(t){return t()})},t.prototype._saveSelection=function(){this.value!==this.el.value&&console.warn("Uncontrolled input change, refresh mask manually!"),this._selection={start:this.selectionStart,end:this.cursorPos}},t.prototype.updateValue=function(){this.masked.value=this.el.value},t.prototype.updateControl=function(){var t=this.masked.unmaskedValue,e=this.masked.value,r=this.unmaskedValue!==t||this.value!==e;this._unmaskedValue=t,this._value=e,this.el.value!==e&&(this.el.value=e),r&&this._fireChangeEvents()},t.prototype.updateOptions=function(t){var e=this,r=t.mask;r&&(this.mask=r),this.masked.withValueRefresh(function(){for(var r in t)"mask"!==r&&(e.masked[r]=t[r])}),this.updateControl()},t.prototype.updateCursor=function(t){null!=t&&(this.cursorPos=t,this._delayUpdateCursor(t))},t.prototype._delayUpdateCursor=function(t){var e=this;this._abortUpdateCursor(),this._changingCursorPos=t,this._cursorChanging=setTimeout(function(){e.cursorPos=e._changingCursorPos,e._abortUpdateCursor()},10)},t.prototype._fireChangeEvents=function(){this.fireEvent("accept"),this.masked.isComplete&&this.fireEvent("complete")},t.prototype._abortUpdateCursor=function(){this._cursorChanging&&(clearTimeout(this._cursorChanging),delete this._cursorChanging)},t.prototype._alignCursor=function(){this.cursorPos=this.masked.nearestInputPos(this.cursorPos)},t.prototype._alignCursorFriendly=function(){this.selectionStart===this.cursorPos&&this._alignCursor()},t.prototype.on=function(t,e){return this._listeners[t]||(this._listeners[t]=[]),this._listeners[t].push(e),this},t.prototype.off=function(t,e){if(this._listeners[t]){if(e){var r=this._listeners[t].indexOf(e);return r>=0&&this._listeners.splice(r,1),this}delete this._listeners[t]}},t.prototype._onInput=function(){this._abortUpdateCursor();var t=new ActionDetails(this.el.value,this.cursorPos,this.value,this._selection),e=t.startChangePos+t.removed.length,r=this.masked.extractTail(e),n=this.masked.nearestInputPos(t.startChangePos,t.removeDirection);this.masked.clear(n);var i=this.masked.appendWithTail(t.inserted,r),u=this.masked.nearestInputPos(n+i,t.removeDirection);this.updateControl(),this.updateCursor(u)},t.prototype._onChange=function(){this.value!==this.el.value&&this.updateValue(),this.masked.doCommit(),this.updateControl()},t.prototype._onDrop=function(t){t.preventDefault(),t.stopPropagation()},t.prototype.destroy=function(){this.unbindEvents(),this._listeners.length=0},createClass(t,[{key:"mask",get:function(){return this.masked.mask},set:function(t){if((void 0===t?"undefined":_typeof(t))!==_typeof(this.masked.mask)){var e=this.masked?this.masked.unmaskedValue:null;this.masked=createMask({mask:t}),null!=e&&(this.masked.unmaskedValue=e)}else this.masked.mask=t}},{key:"value",get:function(){return this._value},set:function(t){this.masked.value=t,this.updateControl(),this._alignCursor()}},{key:"unmaskedValue",get:function(){return this._unmaskedValue},set:function(t){this.masked.unmaskedValue=t,this.updateControl(),this._alignCursor()}},{key:"selectionStart",get:function(){return this._cursorChanging?this._changingCursorPos:this.el.selectionStart}},{key:"cursorPos",get:function(){return this._cursorChanging?this._changingCursorPos:this.el.selectionEnd},set:function(t){this.el===document.activeElement&&(this.el.setSelectionRange(t,t),this._saveSelection())}}]),t}();IMask$1.InputMask=InputMask,IMask$1.Masked=Masked,IMask$1.MaskedPattern=MaskedPattern,IMask$1.MaskedNumber=MaskedNumber,IMask$1.MaskedDate=MaskedDate,window.IMask=IMask$1;export default IMask$1; //# sourceMappingURL=imask.min.es.js.map diff --git a/dist/imask.min.es.js.map b/dist/imask.min.es.js.map index 829b79ea..f67eac22 100644 --- a/dist/imask.min.es.js.map +++ b/dist/imask.min.es.js.map @@ -1 +1 @@ -{"version":3,"file":"imask.min.es.js","sources":["../src/core/utils.js","../src/masked/factory.js","../src/masked/pattern/group.js","../src/imask.js","../node_modules/core-js/modules/_global.js","../node_modules/core-js/modules/_core.js","../node_modules/core-js/modules/_is-object.js","../node_modules/core-js/modules/_an-object.js","../node_modules/core-js/modules/_fails.js","../node_modules/core-js/modules/_descriptors.js","../node_modules/core-js/modules/_dom-create.js","../node_modules/core-js/modules/_ie8-dom-define.js","../node_modules/core-js/modules/_to-primitive.js","../node_modules/core-js/modules/_object-dp.js","../node_modules/core-js/modules/_property-desc.js","../node_modules/core-js/modules/_hide.js","../node_modules/core-js/modules/_has.js","../node_modules/core-js/modules/_uid.js","../node_modules/core-js/modules/_redefine.js","../node_modules/core-js/modules/_a-function.js","../node_modules/core-js/modules/_ctx.js","../node_modules/core-js/modules/_export.js","../node_modules/core-js/modules/_cof.js","../node_modules/core-js/modules/_iobject.js","../node_modules/core-js/modules/_defined.js","../node_modules/core-js/modules/_to-object.js","../node_modules/core-js/modules/_to-integer.js","../node_modules/core-js/modules/_to-length.js","../node_modules/core-js/modules/_is-array.js","../node_modules/core-js/modules/_shared.js","../node_modules/core-js/modules/_wks.js","../node_modules/core-js/modules/_array-species-constructor.js","../node_modules/core-js/modules/_array-species-create.js","../node_modules/core-js/modules/_array-methods.js","../node_modules/core-js/modules/_add-to-unscopables.js","../node_modules/core-js/modules/es6.array.find.js","../node_modules/core-js/modules/_to-iobject.js","../node_modules/core-js/modules/_to-index.js","../node_modules/core-js/modules/_array-includes.js","../node_modules/core-js/modules/_shared-key.js","../node_modules/core-js/modules/_object-keys-internal.js","../node_modules/core-js/modules/_enum-bug-keys.js","../node_modules/core-js/modules/_object-keys.js","../node_modules/core-js/modules/_object-sap.js","../node_modules/core-js/modules/es6.object.keys.js","../node_modules/core-js/modules/_string-repeat.js","../node_modules/core-js/modules/es6.string.repeat.js","../node_modules/core-js/modules/_string-pad.js","../node_modules/core-js/modules/es7.string.pad-start.js","../node_modules/core-js/modules/es7.string.pad-end.js","../src/masked/base.js","../src/masked/number.js","../src/masked/pattern/definition.js","../src/masked/pattern.js","../src/masked/date.js","../src/core/action-details.js","../src/controls/input.js"],"sourcesContent":["export\r\nfunction isString (str) {\r\n return typeof str === 'string' || str instanceof String;\r\n}\r\n\r\nexport\r\nfunction conform (res, str, fallback='') {\r\n return isString(res) ?\r\n res :\r\n res ?\r\n str :\r\n fallback;\r\n}\r\n\r\nexport\r\nconst DIRECTION = {\r\n NONE: 0,\r\n LEFT: -1,\r\n RIGHT: 1\r\n}\r\n\r\nexport\r\nfunction indexInDirection (pos, direction) {\r\n if (direction === DIRECTION.LEFT) --pos;\r\n return pos;\r\n}\r\n\r\nexport\r\nfunction refreshValueOnSet (target, key, descriptor) {\r\n const method = descriptor.set;\r\n descriptor.set = function (...args) {\r\n return this.withValueRefresh(method.bind(this, ...args));\r\n };\r\n}\r\n\r\nexport\r\nfunction escapeRegExp(str) {\r\n return str.replace(/([.*+?^=!:${}()|\\[\\]\\/\\\\])/g, '\\\\$1');\r\n}\r\n","import {isString} from '../core/utils';\r\nimport Masked from './base';\r\nimport MaskedNumber from './number';\r\n\r\n\r\nexport default\r\nfunction createMask (opts) {\r\n opts = Object.assign({}, opts); // clone\r\n\r\n const mask = opts.mask;\r\n\r\n if (mask instanceof Masked) {\r\n return mask;\r\n }\r\n if (mask instanceof RegExp) {\r\n opts.validate = (value) => mask.test(value);\r\n return new Masked(opts);\r\n }\r\n if (isString(mask)) {\r\n return new IMask.MaskedPattern(opts);\r\n }\r\n if (mask.prototype instanceof Masked) {\r\n delete opts.mask;\r\n return new mask(opts);\r\n }\r\n if (mask instanceof Number || typeof mask === 'number' || mask === Number) {\r\n delete opts.mask;\r\n return new MaskedNumber(opts);\r\n }\r\n if (mask instanceof Date || mask === Date) {\r\n delete opts.mask;\r\n if (opts.pattern) {\r\n opts.mask = opts.pattern;\r\n delete opts.pattern;\r\n }\r\n return new IMask.MaskedDate(opts);\r\n }\r\n if (mask instanceof Function){\r\n opts.validate = mask;\r\n return new Masked(opts);\r\n }\r\n\r\n console.warn('Mask not found for', opts); // eslint-disable-line no-console\r\n return new Masked(opts);\r\n}\r\n","export default\r\nclass PatternGroup {\r\n constructor(masked, {name, offset, mask, validate}) {\r\n this.masked = masked;\r\n this.name = name;\r\n this.offset = offset;\r\n this.mask = mask;\r\n this.validate = validate || (() => true);\r\n }\r\n\r\n get value () {\r\n return this.masked.value.slice(\r\n this.masked.mapDefIndexToPos(this.offset),\r\n this.masked.mapDefIndexToPos(this.offset + this.mask.length));\r\n }\r\n\r\n get unmaskedValue () {\r\n return this.masked.extractInput(\r\n this.masked.mapDefIndexToPos(this.offset),\r\n this.masked.mapDefIndexToPos(this.offset + this.mask.length));\r\n }\r\n\r\n _validate (soft) {\r\n return this.validate(this.value, this, soft);\r\n }\r\n}\r\n\r\nexport\r\nclass RangeGroup {\r\n constructor ([from, to], maxlen=(to+'').length) {\r\n this._from = from;\r\n this._to = to;\r\n this._maxLength = maxlen;\r\n this.validate = this.validate.bind(this);\r\n\r\n this._update();\r\n }\r\n\r\n get to () {\r\n return this._to;\r\n }\r\n\r\n set to (to) {\r\n this._to = to;\r\n this._update();\r\n }\r\n\r\n get from () {\r\n return this._from;\r\n }\r\n\r\n set from (from) {\r\n this._from = from;\r\n this._update();\r\n }\r\n\r\n get maxLength () {\r\n return this._maxLength;\r\n }\r\n\r\n set maxLength (maxLength) {\r\n this._maxLength = maxLength;\r\n this._update();\r\n }\r\n\r\n get _matchFrom () {\r\n return this.maxLength - (this.from + '').length;\r\n }\r\n\r\n _update() {\r\n this._maxLength = Math.max(this._maxLength, (this.to + '').length);\r\n this.mask = '0'.repeat(this._maxLength);\r\n }\r\n\r\n validate (str) {\r\n let minstr = '';\r\n let maxstr = '';\r\n\r\n const [, placeholder, num] = str.match(/^(\\D*)(\\d*)(\\D*)/);\r\n if (num) {\r\n minstr = ('0'.repeat(placeholder.length) + num);\r\n maxstr = ('9'.repeat(placeholder.length) + num);\r\n }\r\n\r\n const firstNonZero = str.search(/[^0]/);\r\n if (firstNonZero === -1 && str.length <= this._matchFrom) return true;\r\n\r\n minstr = minstr.padEnd(this._maxLength, '0');\r\n maxstr = maxstr.padEnd(this._maxLength, '9');\r\n\r\n return this.from <= Number(maxstr) && Number(minstr) <= this.to;\r\n }\r\n}\r\n\r\nexport\r\nfunction EnumGroup (enums) {\r\n return {\r\n mask: '*'.repeat(enums[0].length),\r\n validate: (value, group) => enums.some(e => e.indexOf(group.unmaskedValue) >= 0)\r\n };\r\n}\r\n\r\nPatternGroup.Range = RangeGroup;\r\nPatternGroup.Enum = EnumGroup;\r\n","import 'core-js/fn/array/find';\r\nimport 'core-js/fn/object/keys';\r\nimport 'core-js/fn/string/repeat';\r\nimport 'core-js/fn/string/pad-start';\r\nimport 'core-js/fn/string/pad-end';\r\n\r\n\r\nimport Masked from './masked/base';\r\nimport MaskedPattern from './masked/pattern';\r\nimport MaskedNumber from './masked/number';\r\nimport MaskedDate from './masked/date';\r\n\r\nimport InputMask from './controls/input';\r\n\r\n\r\nexport default\r\nfunction IMask (el, opts={}) {\r\n\t// currently available only for input elements\r\n return new InputMask(el, opts);\r\n}\r\n\r\n\r\nIMask.InputMask = InputMask;\r\n\r\nIMask.Masked = Masked;\r\nIMask.MaskedPattern = MaskedPattern;\r\nIMask.MaskedNumber = MaskedNumber;\r\nIMask.MaskedDate = MaskedDate;\r\n\r\nwindow.IMask = IMask;\r\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef","var core = module.exports = {version: '2.4.0'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};","var isObject = require('./_is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});","var isObject = require('./_is-object')\n , document = require('./_global').document\n // in old IE typeof document.createElement is 'object'\n , is = isObject(document) && isObject(document.createElement);\nmodule.exports = function(it){\n return is ? document.createElement(it) : {};\n};","module.exports = !require('./_descriptors') && !require('./_fails')(function(){\n return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;\n});","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function(it, S){\n if(!isObject(it))return it;\n var fn, val;\n if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;\n if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};","var anObject = require('./_an-object')\n , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n , toPrimitive = require('./_to-primitive')\n , dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if(IE8_DOM_DEFINE)try {\n return dP(O, P, Attributes);\n } catch(e){ /* empty */ }\n if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');\n if('value' in Attributes)O[P] = Attributes.value;\n return O;\n};","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};","var dP = require('./_object-dp')\n , createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function(object, key, value){\n return dP.f(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};","var id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};","var global = require('./_global')\n , hide = require('./_hide')\n , has = require('./_has')\n , SRC = require('./_uid')('src')\n , TO_STRING = 'toString'\n , $toString = Function[TO_STRING]\n , TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function(it){\n return $toString.call(it);\n};\n\n(module.exports = function(O, key, val, safe){\n var isFunction = typeof val == 'function';\n if(isFunction)has(val, 'name') || hide(val, 'name', key);\n if(O[key] === val)return;\n if(isFunction)has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if(O === global){\n O[key] = val;\n } else {\n if(!safe){\n delete O[key];\n hide(O, key, val);\n } else {\n if(O[key])O[key] = val;\n else hide(O, key, val);\n }\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString(){\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};","var global = require('./_global')\n , core = require('./_core')\n , hide = require('./_hide')\n , redefine = require('./_redefine')\n , ctx = require('./_ctx')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {})\n , key, own, out, exp;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if(target)redefine(target, key, out, type & $export.U);\n // export\n if(exports[key] != out)hide(exports, key, exp);\n if(IS_PROTO && expProto[key] != out)expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library` \nmodule.exports = $export;","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n return it;\n};","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function(it){\n return Object(defined(it));\n};","// 7.1.4 ToInteger\nvar ceil = Math.ceil\n , floor = Math.floor;\nmodule.exports = function(it){\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer')\n , min = Math.min;\nmodule.exports = function(it){\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};","var global = require('./_global')\n , SHARED = '__core-js_shared__'\n , store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n return store[key] || (store[key] = {});\n};","var store = require('./_shared')('wks')\n , uid = require('./_uid')\n , Symbol = require('./_global').Symbol\n , USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function(name){\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;","var isObject = require('./_is-object')\n , isArray = require('./_is-array')\n , SPECIES = require('./_wks')('species');\n\nmodule.exports = function(original){\n var C;\n if(isArray(original)){\n C = original.constructor;\n // cross-realm fallback\n if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;\n if(isObject(C)){\n C = C[SPECIES];\n if(C === null)C = undefined;\n }\n } return C === undefined ? Array : C;\n};","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function(original, length){\n return new (speciesConstructor(original))(length);\n};","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx')\n , IObject = require('./_iobject')\n , toObject = require('./_to-object')\n , toLength = require('./_to-length')\n , asc = require('./_array-species-create');\nmodule.exports = function(TYPE, $create){\n var IS_MAP = TYPE == 1\n , IS_FILTER = TYPE == 2\n , IS_SOME = TYPE == 3\n , IS_EVERY = TYPE == 4\n , IS_FIND_INDEX = TYPE == 6\n , NO_HOLES = TYPE == 5 || IS_FIND_INDEX\n , create = $create || asc;\n return function($this, callbackfn, that){\n var O = toObject($this)\n , self = IObject(O)\n , f = ctx(callbackfn, that, 3)\n , length = toLength(self.length)\n , index = 0\n , result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined\n , val, res;\n for(;length > index; index++)if(NO_HOLES || index in self){\n val = self[index];\n res = f(val, index, O);\n if(TYPE){\n if(IS_MAP)result[index] = res; // map\n else if(res)switch(TYPE){\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if(IS_EVERY)return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables')\n , ArrayProto = Array.prototype;\nif(ArrayProto[UNSCOPABLES] == undefined)require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function(key){\n ArrayProto[UNSCOPABLES][key] = true;\n};","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export')\n , $find = require('./_array-methods')(5)\n , KEY = 'find'\n , forced = true;\n// Shouldn't skip holes\nif(KEY in [])Array(1)[KEY](function(){ forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn/*, that = undefined */){\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject')\n , defined = require('./_defined');\nmodule.exports = function(it){\n return IObject(defined(it));\n};","var toInteger = require('./_to-integer')\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};","var shared = require('./_shared')('keys')\n , uid = require('./_uid');\nmodule.exports = function(key){\n return shared[key] || (shared[key] = uid(key));\n};","var has = require('./_has')\n , toIObject = require('./_to-iobject')\n , arrayIndexOf = require('./_array-includes')(false)\n , IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function(object, names){\n var O = toIObject(object)\n , i = 0\n , result = []\n , key;\n for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while(names.length > i)if(has(O, key = names[i++])){\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal')\n , enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O){\n return $keys(O, enumBugKeys);\n};","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export')\n , core = require('./_core')\n , fails = require('./_fails');\nmodule.exports = function(KEY, exec){\n var fn = (core.Object || {})[KEY] || Object[KEY]\n , exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object')\n , $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});","'use strict';\nvar toInteger = require('./_to-integer')\n , defined = require('./_defined');\n\nmodule.exports = function repeat(count){\n var str = String(defined(this))\n , res = ''\n , n = toInteger(count);\n if(n < 0 || n == Infinity)throw RangeError(\"Count can't be negative\");\n for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str;\n return res;\n};","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('./_to-length')\n , repeat = require('./_string-repeat')\n , defined = require('./_defined');\n\nmodule.exports = function(that, maxLength, fillString, left){\n var S = String(defined(that))\n , stringLength = S.length\n , fillStr = fillString === undefined ? ' ' : String(fillString)\n , intMaxLength = toLength(maxLength);\n if(intMaxLength <= stringLength || fillStr == '')return S;\n var fillLen = intMaxLength - stringLength\n , stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));\n if(stringFiller.length > fillLen)stringFiller = stringFiller.slice(0, fillLen);\n return left ? stringFiller + S : S + stringFiller;\n};\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export')\n , $pad = require('./_string-pad');\n\n$export($export.P, 'String', {\n padStart: function padStart(maxLength /*, fillString = ' ' */){\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n }\n});","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export')\n , $pad = require('./_string-pad');\n\n$export($export.P, 'String', {\n padEnd: function padEnd(maxLength /*, fillString = ' ' */){\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n }\n});","import {refreshValueOnSet} from '../core/utils';\r\n\r\n\r\nexport default\r\nclass Masked {\r\n constructor ({mask, validate}) {\r\n this._value = '';\r\n this.mask = mask;\r\n this.validate = validate || (() => true);\r\n this.isInitialized = true;\r\n }\r\n\r\n get mask () {\r\n return this._mask;\r\n }\r\n\r\n @refreshValueOnSet\r\n set mask (mask) {\r\n this._mask = mask;\r\n }\r\n\r\n _validate (soft) {\r\n return this.validate(this.value, this, soft);\r\n }\r\n\r\n clone () {\r\n const m = new Masked(this);\r\n m._value = this.value.slice();\r\n return m;\r\n }\r\n\r\n reset () {\r\n this._value = '';\r\n }\r\n\r\n get value () {\r\n return this._value;\r\n }\r\n\r\n set value (value) {\r\n this.reset();\r\n this.appendWithTail(value);\r\n this.commit();\r\n }\r\n\r\n get unmaskedValue () {\r\n return this._unmask();\r\n }\r\n\r\n set unmaskedValue (value) {\r\n this.reset();\r\n this._append(value);\r\n this.appendWithTail(\"\");\r\n this.commit();\r\n }\r\n\r\n get isComplete () {\r\n return true;\r\n }\r\n\r\n nearestInputPos (cursorPos, /* direction */) {\r\n return cursorPos;\r\n }\r\n\r\n extractInput (fromPos=0, toPos=this.value.length) {\r\n return this.value.slice(fromPos, toPos);\r\n }\r\n\r\n extractTail (fromPos=0, toPos=this.value.length) {\r\n return this.extractInput(fromPos, toPos);\r\n }\r\n\r\n _appendTail (tail) {\r\n return !tail || this._append(tail);\r\n }\r\n\r\n _append (str, soft) {\r\n const oldValueLength = this.value.length;\r\n let consistentValue = this.clone();\r\n\r\n for (let ci=0; ci outputRaw\r\n\r\n // TODO\r\n // insert (str, fromPos, soft)\r\n\r\n // splice (start, deleteCount, inserted, removeDirection) {\r\n // const tailPos = start + deleteCount;\r\n // const tail = this.extractTail(tailPos);\r\n\r\n // start = this.nearestInputPos(start, removeDirection);\r\n // this.clear(start);\r\n // return this.appendWithTail(inserted, tail);\r\n // }\r\n}\r\n","import {escapeRegExp, refreshValueOnSet, DIRECTION, indexInDirection} from '../core/utils';\r\nimport Masked from './base';\r\n\r\n\r\nexport default\r\nclass MaskedNumber extends Masked {\r\n constructor (opts={}) {\r\n opts = Object.assign({}, MaskedNumber.DEFAULTS, opts);\r\n super(opts);\r\n delete this.isInitialized;\r\n\r\n const {scale, radix, mapToRadix, min, max, signed, thousandsSeparator, postFormat} = opts;\r\n\r\n this.min = min;\r\n this.max = max;\r\n this.scale = scale;\r\n this.radix = radix;\r\n this.mapToRadix = mapToRadix;\r\n this.signed = signed;\r\n this.thousandsSeparator = thousandsSeparator;\r\n this.postFormat = postFormat;\r\n\r\n this._updateNumberRegExp();\r\n\r\n this.isInitialized = true;\r\n }\r\n\r\n _updateNumberRegExp () {\r\n // TODO refactor?\r\n let regExpStrSoft = '^';\r\n let regExpStr = '^';\r\n\r\n if (this.signed) {\r\n regExpStrSoft += '([+|\\\\-]?|([+|\\\\-]?(0|([1-9]+\\\\d*))))';\r\n regExpStr += '[+|\\\\-]?';\r\n } else {\r\n regExpStrSoft += '(0|([1-9]+\\\\d*))';\r\n }\r\n regExpStr += '\\\\d*';\r\n\r\n if (this.scale) {\r\n regExpStrSoft += '(' + this.radix + '\\\\d{0,' + this.scale + '})?';\r\n regExpStr += '(' + this.radix + '\\\\d{0,' + this.scale + '})?';\r\n }\r\n\r\n regExpStrSoft += '$';\r\n regExpStr += '$';\r\n\r\n this._numberRegExpSoft = new RegExp(regExpStrSoft);\r\n this._numberRegExp = new RegExp(regExpStr)\r\n }\r\n\r\n extractTail (fromPos=0, toPos=this.value.length) {\r\n return this._removeThousandsSeparators(super.extractTail(fromPos, toPos));\r\n }\r\n\r\n _removeThousandsSeparators (value) {\r\n return value.replace(this._thousandsSeparatorRegExp, '');\r\n }\r\n\r\n _insertThousandsSeparators (value) {\r\n // https://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript\r\n const parts = value.split(this.radix);\r\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, this.thousandsSeparator);\r\n return parts.join(this.radix);\r\n }\r\n\r\n _append (str, soft) {\r\n return super._append(\r\n this._removeThousandsSeparators(\r\n str.replace(this._mapToRadixRegExp, this.radix)),\r\n soft);\r\n }\r\n\r\n appendWithTail (str, tail) {\r\n const oldValueLength = this.value.length;\r\n this._value = this._removeThousandsSeparators(this.value);\r\n let removedSeparatorsCount = oldValueLength - this.value.length;\r\n\r\n\r\n const appended = super.appendWithTail(str, tail);\r\n\r\n\r\n this._value = this._insertThousandsSeparators(this.value);\r\n\r\n let beforeTailPos = oldValueLength + appended - removedSeparatorsCount;\r\n this._value = this._insertThousandsSeparators(this.value);\r\n let insertedSeparatorsBeforeTailCount = 0;\r\n for (let pos = 0; pos <= beforeTailPos; ++pos) {\r\n if (this.value[pos] === this.thousandsSeparator) {\r\n ++insertedSeparatorsBeforeTailCount;\r\n ++beforeTailPos;\r\n }\r\n }\r\n\r\n return appended - removedSeparatorsCount + insertedSeparatorsBeforeTailCount;\r\n }\r\n\r\n nearestInputPos (cursorPos, direction=DIRECTION.LEFT) {\r\n if (!direction) return cursorPos;\r\n\r\n const nextPos = indexInDirection(cursorPos, direction);\r\n if (this.value[nextPos] === this.thousandsSeparator) cursorPos += direction;\r\n return cursorPos;\r\n }\r\n\r\n _validate (soft) {\r\n const regexp = soft ? this._numberRegExpSoft : this._numberRegExp;\r\n\r\n // validate as string\r\n let valid = regexp.test(this._removeThousandsSeparators(this.value));\r\n\r\n if (valid) {\r\n // validate as number\r\n const number = this.number;\r\n valid = valid && !isNaN(number) &&\r\n // check min bound for negative values\r\n (this.min == null || this.min >= 0 || this.min <= this.number) &&\r\n // check max bound for positive values\r\n (this.max == null || this.max <= 0 || this.number <= this.max);\r\n }\r\n\r\n return valid && super._validate(soft);\r\n }\r\n\r\n commit () {\r\n const number = this.number;\r\n let validnum = number;\r\n\r\n // check bounds\r\n if (this.min != null) validnum = Math.max(validnum, this.min);\r\n if (this.max != null) validnum = Math.min(validnum, this.max);\r\n\r\n if (validnum !== number) {\r\n this.unmaskedValue = '' + validnum;\r\n }\r\n\r\n let formatted = this.value;\r\n\r\n if (this.postFormat.normalizeZeros) {\r\n formatted = this._normalizeZeros(formatted);\r\n }\r\n\r\n if (this.postFormat.padFractionalZeros) {\r\n formatted = this._padFractionalZeros(formatted);\r\n }\r\n\r\n this._value = formatted;\r\n }\r\n\r\n _normalizeZeros (value) {\r\n const parts = this._removeThousandsSeparators(value).split(this.radix);\r\n\r\n // remove leading zeros\r\n parts[0] = parts[0].replace(/^(\\D*)(0*)(\\d*)/, (match, sign, zeros, num) => sign + num);\r\n // add leading zero\r\n if (value.length && !/\\d$/.test(parts[0])) parts[0] = parts[0] + '0';\r\n\r\n if (parts.length > 1) {\r\n parts[1] = parts[1].replace(/0*$/, ''); // remove trailing zeros\r\n if (!parts[1].length) parts.length = 1; // remove fractional\r\n }\r\n\r\n return this._insertThousandsSeparators(parts.join(this.radix));\r\n }\r\n\r\n _padFractionalZeros (value) {\r\n const parts = value.split(this.radix);\r\n if (parts.length < 2) parts.push('');\r\n parts[1] = parts[1].padEnd(this.scale, '0');\r\n return parts.join(this.radix);\r\n }\r\n\r\n get number () {\r\n let numstr =\r\n this._removeThousandsSeparators(\r\n this._normalizeZeros(\r\n this.unmaskedValue))\r\n .replace(this.radix, '.');\r\n\r\n return Number(numstr);\r\n }\r\n\r\n set number (number) {\r\n this.unmaskedValue = '' + number;\r\n }\r\n\r\n get min () {\r\n return this._min;\r\n }\r\n\r\n @refreshValueOnSet\r\n set min (min) {\r\n this._min = min;\r\n }\r\n\r\n get max () {\r\n return this._max;\r\n }\r\n\r\n @refreshValueOnSet\r\n set max (max) {\r\n this._max = max;\r\n }\r\n\r\n get scale () {\r\n return this._scale;\r\n }\r\n\r\n @refreshValueOnSet\r\n set scale (scale) {\r\n this._scale = scale;\r\n }\r\n\r\n get radix () {\r\n return this._radix;\r\n }\r\n\r\n @refreshValueOnSet\r\n set radix (radix) {\r\n this._radix = radix;\r\n this._updateNumberRegExp();\r\n }\r\n\r\n get signed () {\r\n return this._signed || (this.min != null && this.min < 0) || (this.max != null && this.max < 0);\r\n }\r\n\r\n @refreshValueOnSet\r\n set signed (signed) {\r\n this._signed = signed;\r\n }\r\n\r\n get postFormat () {\r\n return this._postFormat;\r\n }\r\n\r\n @refreshValueOnSet\r\n set postFormat (postFormat) {\r\n this._postFormat = {\r\n ...MaskedNumber.DEFAULTS.postFormat,\r\n ...postFormat\r\n };\r\n }\r\n\r\n get mapToRadix () {\r\n return this._mapToRadix;\r\n }\r\n\r\n @refreshValueOnSet\r\n set mapToRadix (mapToRadix) {\r\n this._mapToRadix = mapToRadix;\r\n this._mapToRadixRegExp = new RegExp('[' +\r\n mapToRadix.map(escapeRegExp).join('') +\r\n ']', 'g');\r\n }\r\n\r\n get thousandsSeparator () {\r\n return this._thousandsSeparator;\r\n }\r\n\r\n @refreshValueOnSet\r\n set thousandsSeparator (thousandsSeparator) {\r\n this._thousandsSeparator = thousandsSeparator;\r\n this._thousandsSeparatorRegExp = new RegExp(escapeRegExp(thousandsSeparator), 'g');\r\n }\r\n}\r\nMaskedNumber.DEFAULTS = {\r\n radix: ',',\r\n thousandsSeparator: '',\r\n mapToRadix: ['.'],\r\n scale: 2,\r\n postFormat: {\r\n normalizeZeros: true,\r\n }\r\n};\r\n","import createMask from '../factory';\r\n\r\n\r\nexport default\r\nclass PatternDefinition {\r\n constructor(opts) {\r\n Object.assign(this, opts);\r\n\r\n if (this.mask) {\r\n this._masked = createMask(opts);\r\n }\r\n }\r\n\r\n reset () {\r\n this.isHollow = false;\r\n if (this._masked) this._masked.reset();\r\n }\r\n\r\n get isInput () {\r\n return this.type === PatternDefinition.TYPES.INPUT;\r\n }\r\n\r\n get isHiddenHollow () {\r\n return this.isHollow && this.optional;\r\n }\r\n\r\n resolve (ch) {\r\n if (!this._masked) return false;\r\n // TODO seems strange\r\n this._masked.value = ch;\r\n return this._masked.value;\r\n }\r\n}\r\n\r\nPatternDefinition.DEFAULTS = {\r\n '0': /\\d/,\r\n 'a': /[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/, // http://stackoverflow.com/a/22075070\r\n '*': /./\r\n};\r\nPatternDefinition.TYPES = {\r\n INPUT: 'input',\r\n FIXED: 'fixed'\r\n};\r\n","import {conform, DIRECTION, indexInDirection, refreshValueOnSet} from '../core/utils';\r\nimport Masked from './base';\r\nimport PatternDefinition from './pattern/definition';\r\nimport PatternGroup from './pattern/group';\r\n\r\n\r\nexport default\r\nclass MaskedPattern extends Masked {\r\n constructor (opts={}) {\r\n const {definitions, placeholder, groups} = opts;\r\n super(opts);\r\n delete this.isInitialized;\r\n\r\n this.placeholder = placeholder;\r\n this.definitions = definitions;\r\n this.groups = groups;\r\n\r\n this.isInitialized = true;\r\n }\r\n\r\n get placeholder () {\r\n return this._placeholder;\r\n }\r\n\r\n @refreshValueOnSet\r\n set placeholder (ph) {\r\n this._placeholder = {\r\n ...MaskedPattern.DEFAULT_PLACEHOLDER,\r\n ...ph\r\n };\r\n }\r\n\r\n get definitions () {\r\n return this._definitions;\r\n }\r\n\r\n @refreshValueOnSet\r\n set definitions (defs) {\r\n defs = {\r\n ...PatternDefinition.DEFAULTS,\r\n ...defs\r\n };\r\n\r\n this._definitions = defs;\r\n this._updateMask();\r\n }\r\n\r\n get mask () {\r\n return this._mask;\r\n }\r\n\r\n @refreshValueOnSet\r\n set mask (mask) {\r\n this._mask = mask;\r\n this._updateMask();\r\n }\r\n\r\n _updateMask () {\r\n const defs = this._definitions;\r\n this._charDefs = [];\r\n this._groupDefs = [];\r\n\r\n let pattern = this.mask;\r\n if (!pattern || !defs) return;\r\n\r\n let unmaskingBlock = false;\r\n let optionalBlock = false;\r\n let stopAlign = false;\r\n\r\n\r\n for (let i=0; i p.indexOf(gName) === 0);\r\n // order by key length\r\n gNames.sort((a, b) => b.length - a.length);\r\n // use group name with max length\r\n const gName = gNames[0];\r\n if (gName) {\r\n const group = this._groups[gName];\r\n this._groupDefs.push(new PatternGroup(this, {\r\n name: gName,\r\n offset: this._charDefs.length,\r\n mask: group.mask,\r\n validate: group.validate\r\n }));\r\n pattern = pattern.replace(gName, group.mask);\r\n }\r\n }\r\n\r\n let char = pattern[i];\r\n let type = !unmaskingBlock && char in defs ?\r\n PatternDefinition.TYPES.INPUT :\r\n PatternDefinition.TYPES.FIXED;\r\n const unmasking = type === PatternDefinition.TYPES.INPUT || unmaskingBlock;\r\n const optional = type === PatternDefinition.TYPES.INPUT && optionalBlock;\r\n\r\n if (char === MaskedPattern.STOP_CHAR) {\r\n stopAlign = true;\r\n continue;\r\n }\r\n\r\n if (char === '{' || char === '}') {\r\n unmaskingBlock = !unmaskingBlock;\r\n continue;\r\n }\r\n\r\n if (char === '[' || char === ']') {\r\n optionalBlock = !optionalBlock;\r\n continue;\r\n }\r\n\r\n if (char === MaskedPattern.ESCAPE_CHAR) {\r\n ++i;\r\n char = pattern[i];\r\n // TODO validation\r\n if (!char) break;\r\n type = PatternDefinition.TYPES.FIXED;\r\n }\r\n\r\n this._charDefs.push(new PatternDefinition({\r\n char,\r\n type,\r\n optional,\r\n stopAlign,\r\n mask: unmasking &&\r\n (type === PatternDefinition.TYPES.INPUT ?\r\n defs[char] :\r\n (value => value === char))\r\n }));\r\n\r\n stopAlign = false;\r\n }\r\n }\r\n\r\n _validate (soft) {\r\n return this._groupDefs.every(g => g._validate(soft)) && super._validate(soft);\r\n }\r\n\r\n clone () {\r\n const m = new MaskedPattern(this);\r\n m._value = this.value;\r\n m._charDefs.forEach((d, i) => Object.assign(d, this._charDefs[i]));\r\n m._groupDefs.forEach((d, i) => Object.assign(d, this._groupDefs[i]));\r\n return m;\r\n }\r\n\r\n reset () {\r\n super.reset();\r\n this._charDefs.forEach(d => {delete d.isHollow;});\r\n }\r\n\r\n get isComplete () {\r\n return !this._charDefs.some((d, i) =>\r\n d.isInput && !d.optional && (d.isHollow || !this.extractInput(i, i+1)));\r\n }\r\n\r\n hiddenHollowsBefore (defIndex) {\r\n return this._charDefs\r\n .slice(0, defIndex)\r\n .filter(d => d.isHiddenHollow)\r\n .length;\r\n }\r\n\r\n mapDefIndexToPos (defIndex) {\r\n if (defIndex == null) return;\r\n return defIndex - this.hiddenHollowsBefore(defIndex);\r\n }\r\n\r\n mapPosToDefIndex (pos) {\r\n if (pos == null) return;\r\n let defIndex = pos;\r\n for (let di=0; di= defIndex) break;\r\n if (def.isHiddenHollow) ++defIndex;\r\n }\r\n return defIndex;\r\n }\r\n\r\n _unmask () {\r\n const str = this.value;\r\n let unmasked = '';\r\n\r\n for (let ci=0, di=0; ci [d, i])\r\n .slice(fromDefIndex, toDefIndex)\r\n .filter(([d]) => d.stopAlign)\r\n .map(([, i]) => i);\r\n\r\n const stops = [\r\n fromDefIndex,\r\n ...stopDefIndices,\r\n toDefIndex\r\n ];\r\n\r\n return stops.map((s, i) => [\r\n stopDefIndices.indexOf(s) >= 0 ?\r\n s :\r\n null,\r\n\r\n this.extractInput(\r\n this.mapDefIndexToPos(s),\r\n this.mapDefIndexToPos(stops[++i]))\r\n ]).filter(([stop, input]) => stop != null || input);\r\n }\r\n\r\n _appendPlaceholder (toDefIndex) {\r\n const maxDefIndex = toDefIndex || this._charDefs.length;\r\n for (let di=this.mapPosToDefIndex(this.value.length); di < maxDefIndex; ++di) {\r\n const def = this._charDefs[di];\r\n if (def.isInput) def.isHollow = true;\r\n\r\n if (!this.placeholder.lazy || toDefIndex) {\r\n this._value += !def.isInput ?\r\n def.char :\r\n !def.optional ?\r\n this.placeholder.char :\r\n '';\r\n }\r\n }\r\n }\r\n\r\n clear (from=0, to=this.value.length) {\r\n this._value = this.value.slice(0, from) + this.value.slice(to);\r\n const fromDefIndex = this.mapPosToDefIndex(from);\r\n const toDefIndex = this.mapPosToDefIndex(to);\r\n this._charDefs\r\n .slice(fromDefIndex, toDefIndex)\r\n .forEach(d => d.reset());\r\n }\r\n\r\n nearestInputPos (cursorPos, direction=DIRECTION.LEFT) {\r\n if (!direction) return cursorPos;\r\n\r\n const initialDefIndex = this.mapPosToDefIndex(cursorPos);\r\n let di = initialDefIndex;\r\n\r\n let firstInputIndex,\r\n firstFilledInputIndex,\r\n firstVisibleHollowIndex,\r\n nextdi;\r\n\r\n // search forward\r\n for (nextdi = indexInDirection(di, direction); 0 <= nextdi && nextdi < this._charDefs.length; di += direction, nextdi += direction) {\r\n const nextDef = this._charDefs[nextdi];\r\n if (firstInputIndex == null && nextDef.isInput) firstInputIndex = di;\r\n if (firstVisibleHollowIndex == null && nextDef.isHollow && !nextDef.isHiddenHollow) firstVisibleHollowIndex = di;\r\n if (nextDef.isInput && !nextDef.isHollow) {\r\n firstFilledInputIndex = di;\r\n break;\r\n }\r\n }\r\n\r\n if (direction === DIRECTION.LEFT || firstInputIndex == null) {\r\n // search backwards\r\n direction = -direction;\r\n let overflow = false;\r\n\r\n // find hollows only before initial pos\r\n for (nextdi = indexInDirection(di, direction);\r\n 0 <= nextdi && nextdi < this._charDefs.length;\r\n di += direction, nextdi += direction)\r\n {\r\n const nextDef = this._charDefs[nextdi];\r\n if (nextDef.isInput) {\r\n firstInputIndex = di;\r\n if (nextDef.isHollow && !nextDef.isHiddenHollow) break;\r\n }\r\n\r\n // if hollow not found before start position - set `overflow`\r\n // and try to find just any input\r\n if (di === initialDefIndex) overflow = true;\r\n\r\n // first input found\r\n if (overflow && firstInputIndex != null) break;\r\n }\r\n\r\n // process overflow\r\n overflow = overflow || nextdi >= this._charDefs.length;\r\n if (overflow && firstInputIndex != null) di = firstInputIndex;\r\n } else if (firstFilledInputIndex == null) {\r\n // adjust index if delete at right and filled input not found at right\r\n di = firstVisibleHollowIndex != null ?\r\n firstVisibleHollowIndex :\r\n firstInputIndex;\r\n }\r\n\r\n return this.mapDefIndexToPos(di);\r\n }\r\n\r\n get groups () { return this._groups; }\r\n\r\n @refreshValueOnSet\r\n set groups (groups) {\r\n this._groups = groups;\r\n this._updateMask();\r\n }\r\n\r\n group (name) {\r\n return this.groupsByName(name)[0];\r\n }\r\n\r\n groupsByName (name) {\r\n return this._groupDefs.filter(g => g.name === name);\r\n }\r\n}\r\n\r\nMaskedPattern.DEFAULT_PLACEHOLDER = {\r\n lazy: true,\r\n char: '_'\r\n};\r\nMaskedPattern.STOP_CHAR = '`';\r\nMaskedPattern.ESCAPE_CHAR = '\\\\';\r\nMaskedPattern.Definition = PatternDefinition;\r\nMaskedPattern.Group = PatternGroup;\r\n","import {refreshValueOnSet} from '../core/utils';\r\nimport MaskedPattern from './pattern';\r\nimport PatternGroup from './pattern/group';\r\n\r\n\r\nexport default\r\nclass MaskedDate extends MaskedPattern {\r\n constructor (opts={}) {\r\n const groups = opts.groups;\r\n opts = Object.assign({}, MaskedDate.DEFAULTS, opts);\r\n const {min, max, format, parse} = opts;\r\n\r\n opts.groups = Object.assign({}, MaskedDate.DEFAULTS.groups);\r\n if (opts.groups.Y) {\r\n // adjust year group\r\n if (min) opts.groups.Y.from = min.getFullYear();\r\n if (max) opts.groups.Y.to = max.getFullYear();\r\n }\r\n\r\n Object.assign(opts.groups, groups);\r\n\r\n super(opts);\r\n delete this.isInitialized;\r\n\r\n this.min = min;\r\n this.max = max;\r\n this.format = format;\r\n this.parse = parse;\r\n\r\n this.isInitialized = true;\r\n }\r\n\r\n _validate (soft) {\r\n const valid = super._validate(soft);\r\n const date = this.date;\r\n\r\n return valid &&\r\n (!this.isComplete ||\r\n this.isDateExist(this.value) && date &&\r\n (this.min == null || this.min <= date) &&\r\n (this.max == null || date <= this.max));\r\n }\r\n\r\n isDateExist (str) {\r\n return this.format(this.parse(str)) === str;\r\n }\r\n\r\n get date () {\r\n return this.isComplete ?\r\n this.parse(this.value) :\r\n null;\r\n }\r\n\r\n set date (date) {\r\n this.value = this.format(date);\r\n }\r\n\r\n get min () {\r\n return this._min;\r\n }\r\n\r\n @refreshValueOnSet\r\n set min (min) {\r\n this._min = min;\r\n }\r\n\r\n get max () {\r\n return this._max;\r\n }\r\n\r\n @refreshValueOnSet\r\n set max (max) {\r\n this._max = max;\r\n }\r\n}\r\nMaskedDate.DEFAULTS = {\r\n mask: 'd{.}`m{.}`Y',\r\n format: date => {\r\n const day = ('' + date.getDate()).padStart(2, '0');\r\n const month = ('' + (date.getMonth() + 1)).padStart(2, '0');\r\n const year = date.getFullYear();\r\n\r\n return [day, month, year].join('.');\r\n },\r\n parse: str => {\r\n const [day, month, year] = str.split('.');\r\n return new Date(year, month - 1, day);\r\n },\r\n groups: {\r\n d: new PatternGroup.Range([1, 31]),\r\n m: new PatternGroup.Range([1, 12]),\r\n Y: new PatternGroup.Range([1900, 9999]),\r\n },\r\n};\r\n","import {DIRECTION} from './utils';\r\n\r\n\r\nexport default\r\nclass ActionDetails {\r\n constructor (value, cursorPos, oldValue, oldSelection) {\r\n this.value = value;\r\n this.cursorPos = cursorPos;\r\n this.oldValue = oldValue;\r\n this.oldSelection = oldSelection;\r\n }\r\n\r\n get startChangePos () {\r\n return Math.min(this.cursorPos, this.oldSelection.start);\r\n }\r\n\r\n get insertedCount () {\r\n return this.cursorPos - this.startChangePos;\r\n }\r\n\r\n get inserted () {\r\n return this.value.substr(this.startChangePos, this.insertedCount);\r\n }\r\n\r\n get removedCount () {\r\n // Math.max for opposite operation\r\n return Math.max((this.oldSelection.end - this.startChangePos) ||\r\n // for Delete\r\n this.oldValue.length - this.value.length, 0);\r\n }\r\n\r\n get removed () {\r\n return this.oldValue.substr(this.startChangePos, this.removedCount);\r\n }\r\n\r\n get head () {\r\n return this.value.substring(0, this.startChangePos);\r\n }\r\n\r\n get tail () {\r\n this.value.substring(this.startChangePos + this.insertedCount);\r\n }\r\n\r\n get removeDirection () {\r\n return this.removedCount &&\r\n ((this.oldSelection.end === this.cursorPos || this.insertedCount) ?\r\n DIRECTION.RIGHT :\r\n DIRECTION.LEFT);\r\n }\r\n}\r\n","import ActionDetails from '../core/action-details';\r\nimport createMask from '../masked/factory';\r\n\r\n\r\nexport default\r\nclass InputMask {\r\n constructor (el, opts) {\r\n this.el = el;\r\n this.masked = createMask(opts);\r\n\r\n this._listeners = {};\r\n this._value = '';\r\n this._unmaskedValue = '';\r\n\r\n this._saveSelection = this._saveSelection.bind(this);\r\n this._onInput = this._onInput.bind(this);\r\n this._onChange = this._onChange.bind(this);\r\n this._onDrop = this._onDrop.bind(this);\r\n this._alignCursor = this._alignCursor.bind(this);\r\n this._alignCursorFriendly = this._alignCursorFriendly.bind(this);\r\n\r\n this.bindEvents();\r\n\r\n // refresh\r\n this.updateValue();\r\n this._onChange();\r\n }\r\n\r\n get mask () { return this.masked.mask; }\r\n set mask (mask) {\r\n if (typeof mask === typeof this.masked.mask) {\r\n this.masked.mask = mask;\r\n return;\r\n }\r\n\r\n const unmasked = this.masked ? this.masked.unmaskedValue : null;\r\n this.masked = createMask({mask});\r\n if (unmasked != null) this.masked.unmaskedValue = unmasked;\r\n }\r\n\r\n get value () {\r\n return this._value;\r\n }\r\n\r\n set value (str) {\r\n this.masked.value = str;\r\n this.updateControl();\r\n this._alignCursor();\r\n }\r\n\r\n get unmaskedValue () {\r\n return this._unmaskedValue;\r\n }\r\n\r\n set unmaskedValue (str) {\r\n this.masked.unmaskedValue = str;\r\n this.updateControl();\r\n this._alignCursor();\r\n }\r\n\r\n bindEvents () {\r\n this.el.addEventListener('keydown', this._saveSelection);\r\n this.el.addEventListener('input', this._onInput);\r\n this.el.addEventListener('drop', this._onDrop);\r\n this.el.addEventListener('click', this._alignCursorFriendly);\r\n this.el.addEventListener('change', this._onChange);\r\n }\r\n\r\n unbindEvents () {\r\n this.el.removeEventListener('keydown', this._saveSelection);\r\n this.el.removeEventListener('input', this._onInput);\r\n this.el.removeEventListener('drop', this._onDrop);\r\n this.el.removeEventListener('click', this._alignCursorFriendly);\r\n this.el.removeEventListener('change', this._onChange);\r\n }\r\n\r\n fireEvent (ev) {\r\n const listeners = this._listeners[ev] || [];\r\n listeners.forEach(l => l());\r\n }\r\n\r\n get selectionStart () {\r\n return this._cursorChanging ?\r\n this._changingCursorPos :\r\n\r\n this.el.selectionStart;\r\n }\r\n\r\n get cursorPos () {\r\n return this._cursorChanging ?\r\n this._changingCursorPos :\r\n\r\n this.el.selectionEnd;\r\n }\r\n\r\n set cursorPos (pos) {\r\n if (this.el !== document.activeElement) return;\r\n\r\n this.el.setSelectionRange(pos, pos);\r\n this._saveSelection();\r\n }\r\n\r\n _saveSelection (/* ev */) {\r\n if (this.value !== this.el.value) {\r\n console.warn('Uncontrolled input change, refresh mask manually!'); // eslint-disable-line no-console\r\n }\r\n this._selection = {\r\n start: this.selectionStart,\r\n end: this.cursorPos\r\n };\r\n }\r\n\r\n updateValue () {\r\n this.masked.value = this.el.value;\r\n }\r\n\r\n updateControl () {\r\n const newUnmaskedValue = this.masked.unmaskedValue;\r\n const newValue = this.masked.value;\r\n const isChanged = (this.unmaskedValue !== newUnmaskedValue ||\r\n this.value !== newValue);\r\n\r\n this._unmaskedValue = newUnmaskedValue;\r\n this._value = newValue;\r\n\r\n if (this.el.value !== newValue) this.el.value = newValue;\r\n if (isChanged) this._fireChangeEvents();\r\n }\r\n\r\n updateOptions (opts) {\r\n const mask = opts.mask;\r\n if (mask) this.mask = mask;\r\n\r\n this.masked.withValueRefresh(() => {\r\n for (const k in opts) {\r\n if (k === 'mask') continue;\r\n this.masked[k] = opts[k];\r\n }\r\n });\r\n\r\n this.updateControl();\r\n }\r\n\r\n updateCursor (cursorPos) {\r\n if (cursorPos == null) return;\r\n this.cursorPos = cursorPos;\r\n\r\n // also queue change cursor for mobile browsers\r\n this._delayUpdateCursor(cursorPos);\r\n }\r\n\r\n _delayUpdateCursor (cursorPos) {\r\n this._abortUpdateCursor();\r\n this._changingCursorPos = cursorPos;\r\n this._cursorChanging = setTimeout(() => {\r\n this.cursorPos = this._changingCursorPos;\r\n this._abortUpdateCursor();\r\n }, 10);\r\n }\r\n\r\n _fireChangeEvents () {\r\n this.fireEvent('accept');\r\n if (this.masked.isComplete) this.fireEvent('complete');\r\n }\r\n\r\n _abortUpdateCursor () {\r\n if (this._cursorChanging) {\r\n clearTimeout(this._cursorChanging);\r\n delete this._cursorChanging;\r\n }\r\n }\r\n\r\n _alignCursor () {\r\n this.cursorPos = this.masked.nearestInputPos(this.cursorPos);\r\n }\r\n\r\n _alignCursorFriendly () {\r\n if (this.selectionStart !== this.cursorPos) return;\r\n this._alignCursor();\r\n }\r\n\r\n on (ev, handler) {\r\n if (!this._listeners[ev]) this._listeners[ev] = [];\r\n this._listeners[ev].push(handler);\r\n return this;\r\n }\r\n\r\n off (ev, handler) {\r\n if (!this._listeners[ev]) return;\r\n if (!handler) {\r\n delete this._listeners[ev];\r\n return;\r\n }\r\n const hIndex = this._listeners[ev].indexOf(handler);\r\n if (hIndex >= 0) this._listeners.splice(hIndex, 1);\r\n return this;\r\n }\r\n\r\n _onInput () {\r\n this._abortUpdateCursor();\r\n\r\n const details = new ActionDetails(\r\n // new state\r\n this.el.value, this.cursorPos,\r\n // old state\r\n this.value, this._selection);\r\n\r\n const tailPos = details.startChangePos + details.removed.length;\r\n const tail = this.masked.extractTail(tailPos);\r\n\r\n const lastInputPos = this.masked.nearestInputPos(details.startChangePos, details.removeDirection);\r\n this.masked.clear(lastInputPos);\r\n const insertedCount = this.masked.appendWithTail(details.inserted, tail);\r\n\r\n\r\n const cursorPos = this.masked.nearestInputPos(\r\n lastInputPos + insertedCount,\r\n details.removeDirection);\r\n\r\n this.updateControl();\r\n this.updateCursor(cursorPos);\r\n }\r\n\r\n _onChange () {\r\n if (this.value !== this.el.value) {\r\n this.updateValue();\r\n }\r\n this.masked.commit();\r\n this.updateControl();\r\n }\r\n\r\n _onDrop (ev) {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n }\r\n\r\n destroy () {\r\n this.unbindEvents();\r\n this._listeners.length = 0;\r\n }\r\n}\r\n"],"names":["isString","str","String","conform","res","fallback","indexInDirection","pos","direction","DIRECTION","LEFT","refreshValueOnSet","target","key","descriptor","method","set","args","this","withValueRefresh","bind","escapeRegExp","replace","createMask","opts","mask","babelHelpers.extends","Masked","RegExp","validate","value","test","IMask","MaskedPattern","prototype","Number","MaskedNumber","Date","pattern","MaskedDate","Function","warn","EnumGroup","enums","repeat","length","group","some","e","indexOf","unmaskedValue","el","InputMask","global","module","window","Math","self","__g","core","version","__e","it","isObject","TypeError","exec","require$$0","Object","defineProperty","get","a","document","is","createElement","require$$1","require$$2","S","fn","val","toString","call","valueOf","dP","O","P","Attributes","anObject","toPrimitive","IE8_DOM_DEFINE","bitmap","enumerable","configurable","writable","object","f","createDesc","hasOwnProperty","id","px","random","concat","undefined","SRC","$toString","TPL","split","inspectSource","safe","isFunction","has","hide","join","that","aFunction","b","c","apply","arguments","PROTOTYPE","$export","type","name","source","own","out","exp","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","B","exports","expProto","ctx","redefine","U","W","R","slice","propertyIsEnumerable","cof","defined","ceil","floor","isNaN","min","toInteger","Array","isArray","arg","SHARED","store","Symbol","USE_SYMBOL","uid","SPECIES","original","C","constructor","speciesConstructor","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","create","asc","$this","callbackfn","toObject","IObject","toLength","index","result","push","UNSCOPABLES","ArrayProto","$find","KEY","forced","find","max","IS_INCLUDES","fromIndex","toIObject","toIndex","shared","arrayIndexOf","IE_PROTO","names","i","keys","$keys","enumBugKeys","fails","count","n","Infinity","RangeError","maxLength","fillString","left","stringLength","fillStr","intMaxLength","fillLen","stringFiller","padStart","$pad","padEnd","_value","isInitialized","_validate","soft","clone","m","reset","nearestInputPos","cursorPos","extractInput","fromPos","toPos","extractTail","_appendTail","tail","_append","oldValueLength","consistentValue","ci","appendWithTail","appendCount","consistentAppended","ch","appended","_unmask","clear","from","to","_refreshing","unmasked","ret","commit","_mask","DEFAULTS","_Masked","_this","scale","radix","mapToRadix","signed","thousandsSeparator","postFormat","_updateNumberRegExp","regExpStrSoft","regExpStr","_numberRegExpSoft","_numberRegExp","_removeThousandsSeparators","_thousandsSeparatorRegExp","_insertThousandsSeparators","parts","_mapToRadixRegExp","removedSeparatorsCount","beforeTailPos","insertedSeparatorsBeforeTailCount","nextPos","valid","number","validnum","formatted","normalizeZeros","_normalizeZeros","padFractionalZeros","_padFractionalZeros","match","sign","zeros","num","numstr","_min","_max","_scale","_radix","_signed","_postFormat","_mapToRadix","map","_thousandsSeparator","PatternDefinition","_masked","isHollow","resolve","TYPES","INPUT","optional","PatternGroup","masked","offset","mapDefIndexToPos","RangeGroup","maxlen","_from","_to","_maxLength","_update","minstr","maxstr","placeholder","search","_matchFrom","Range","Enum","definitions","groups","_updateMask","defs","_definitions","_charDefs","_groupDefs","unmaskingBlock","optionalBlock","stopAlign","_this2","_groups","p","gNames","filter","gName","sort","char","FIXED","unmasking","STOP_CHAR","ESCAPE_CHAR","every","g","forEach","d","_this3","hiddenHollowsBefore","defIndex","isHiddenHollow","mapPosToDefIndex","di","def","_appendChunks","_appendPlaceholder","resolved","skipped","chres","chunks","fromDefIndex","input","extractInputChunks","toDefIndex","isInput","stopDefIndices","stops","s","_this4","stop","maxDefIndex","lazy","initialDefIndex","firstInputIndex","firstFilledInputIndex","firstVisibleHollowIndex","nextdi","nextDef","overflow","groupsByName","_placeholder","ph","DEFAULT_PLACEHOLDER","_this5","Definition","Group","format","parse","Y","getFullYear","_MaskedPattern","date","isComplete","isDateExist","getDate","getMonth","day","month","year","ActionDetails","oldValue","oldSelection","start","startChangePos","substr","insertedCount","end","removedCount","substring","RIGHT","_listeners","_unmaskedValue","_saveSelection","_onInput","_onChange","_onDrop","_alignCursor","_alignCursorFriendly","bindEvents","updateValue","addEventListener","unbindEvents","removeEventListener","fireEvent","ev","l","_selection","selectionStart","updateControl","newUnmaskedValue","newValue","isChanged","_fireChangeEvents","updateOptions","k","updateCursor","_delayUpdateCursor","_abortUpdateCursor","_changingCursorPos","_cursorChanging","setTimeout","on","handler","off","hIndex","splice","details","tailPos","removed","lastInputPos","removeDirection","inserted","preventDefault","stopPropagation","destroy","selectionEnd","activeElement","setSelectionRange"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"imask.min.es.js","sources":["../src/core/utils.js","../src/masked/factory.js","../src/masked/pattern/group.js","../src/imask.js","../node_modules/core-js/modules/_global.js","../node_modules/core-js/modules/_core.js","../node_modules/core-js/modules/_is-object.js","../node_modules/core-js/modules/_an-object.js","../node_modules/core-js/modules/_fails.js","../node_modules/core-js/modules/_descriptors.js","../node_modules/core-js/modules/_dom-create.js","../node_modules/core-js/modules/_ie8-dom-define.js","../node_modules/core-js/modules/_to-primitive.js","../node_modules/core-js/modules/_object-dp.js","../node_modules/core-js/modules/_property-desc.js","../node_modules/core-js/modules/_hide.js","../node_modules/core-js/modules/_has.js","../node_modules/core-js/modules/_uid.js","../node_modules/core-js/modules/_redefine.js","../node_modules/core-js/modules/_a-function.js","../node_modules/core-js/modules/_ctx.js","../node_modules/core-js/modules/_export.js","../node_modules/core-js/modules/_cof.js","../node_modules/core-js/modules/_iobject.js","../node_modules/core-js/modules/_defined.js","../node_modules/core-js/modules/_to-object.js","../node_modules/core-js/modules/_to-integer.js","../node_modules/core-js/modules/_to-length.js","../node_modules/core-js/modules/_is-array.js","../node_modules/core-js/modules/_shared.js","../node_modules/core-js/modules/_wks.js","../node_modules/core-js/modules/_array-species-constructor.js","../node_modules/core-js/modules/_array-species-create.js","../node_modules/core-js/modules/_array-methods.js","../node_modules/core-js/modules/_add-to-unscopables.js","../node_modules/core-js/modules/es6.array.find.js","../node_modules/core-js/modules/_to-iobject.js","../node_modules/core-js/modules/_to-index.js","../node_modules/core-js/modules/_array-includes.js","../node_modules/core-js/modules/_shared-key.js","../node_modules/core-js/modules/_object-keys-internal.js","../node_modules/core-js/modules/_enum-bug-keys.js","../node_modules/core-js/modules/_object-keys.js","../node_modules/core-js/modules/_object-sap.js","../node_modules/core-js/modules/es6.object.keys.js","../node_modules/core-js/modules/_string-repeat.js","../node_modules/core-js/modules/es6.string.repeat.js","../node_modules/core-js/modules/_string-pad.js","../node_modules/core-js/modules/es7.string.pad-start.js","../node_modules/core-js/modules/es7.string.pad-end.js","../src/masked/base.js","../src/masked/number.js","../src/masked/pattern/definition.js","../src/masked/pattern.js","../src/masked/date.js","../src/core/action-details.js","../src/controls/input.js"],"sourcesContent":["export\r\nfunction isString (str) {\r\n return typeof str === 'string' || str instanceof String;\r\n}\r\n\r\nexport\r\nfunction conform (res, str, fallback='') {\r\n return isString(res) ?\r\n res :\r\n res ?\r\n str :\r\n fallback;\r\n}\r\n\r\nexport\r\nconst DIRECTION = {\r\n NONE: 0,\r\n LEFT: -1,\r\n RIGHT: 1\r\n}\r\n\r\nexport\r\nfunction indexInDirection (pos, direction) {\r\n if (direction === DIRECTION.LEFT) --pos;\r\n return pos;\r\n}\r\n\r\nexport\r\nfunction refreshValueOnSet (target, key, descriptor) {\r\n const method = descriptor.set;\r\n descriptor.set = function (...args) {\r\n return this.withValueRefresh(method.bind(this, ...args));\r\n };\r\n}\r\n\r\nexport\r\nfunction escapeRegExp (str) {\r\n return str.replace(/([.*+?^=!:${}()|\\[\\]\\/\\\\])/g, '\\\\$1');\r\n}\r\n","import {isString} from '../core/utils';\r\nimport Masked from './base';\r\nimport MaskedNumber from './number';\r\n\r\n\r\nexport default\r\nfunction createMask (opts) {\r\n opts = Object.assign({}, opts); // clone\r\n\r\n const mask = opts.mask;\r\n\r\n if (mask instanceof Masked) {\r\n return mask;\r\n }\r\n if (mask instanceof RegExp) {\r\n opts.validate = (value) => mask.test(value);\r\n return new Masked(opts);\r\n }\r\n if (isString(mask)) {\r\n return new IMask.MaskedPattern(opts);\r\n }\r\n if (mask.prototype instanceof Masked) {\r\n delete opts.mask;\r\n return new mask(opts);\r\n }\r\n if (mask instanceof Number || typeof mask === 'number' || mask === Number) {\r\n delete opts.mask;\r\n return new MaskedNumber(opts);\r\n }\r\n if (mask instanceof Date || mask === Date) {\r\n delete opts.mask;\r\n if (opts.pattern) {\r\n opts.mask = opts.pattern;\r\n delete opts.pattern;\r\n }\r\n return new IMask.MaskedDate(opts);\r\n }\r\n if (mask instanceof Function){\r\n opts.validate = mask;\r\n return new Masked(opts);\r\n }\r\n\r\n console.warn('Mask not found for', opts); // eslint-disable-line no-console\r\n return new Masked(opts);\r\n}\r\n","export default\r\nclass PatternGroup {\r\n constructor(masked, {name, offset, mask, validate}) {\r\n this.masked = masked;\r\n this.name = name;\r\n this.offset = offset;\r\n this.mask = mask;\r\n this.validate = validate || (() => true);\r\n }\r\n\r\n get value () {\r\n return this.masked.value.slice(\r\n this.masked.mapDefIndexToPos(this.offset),\r\n this.masked.mapDefIndexToPos(this.offset + this.mask.length));\r\n }\r\n\r\n get unmaskedValue () {\r\n return this.masked.extractInput(\r\n this.masked.mapDefIndexToPos(this.offset),\r\n this.masked.mapDefIndexToPos(this.offset + this.mask.length));\r\n }\r\n\r\n doValidate (soft) {\r\n return this.validate(this.value, this, soft);\r\n }\r\n}\r\n\r\nexport\r\nclass RangeGroup {\r\n constructor ([from, to], maxlen=(to+'').length) {\r\n this._from = from;\r\n this._to = to;\r\n this._maxLength = maxlen;\r\n this.validate = this.validate.bind(this);\r\n\r\n this._update();\r\n }\r\n\r\n get to () {\r\n return this._to;\r\n }\r\n\r\n set to (to) {\r\n this._to = to;\r\n this._update();\r\n }\r\n\r\n get from () {\r\n return this._from;\r\n }\r\n\r\n set from (from) {\r\n this._from = from;\r\n this._update();\r\n }\r\n\r\n get maxLength () {\r\n return this._maxLength;\r\n }\r\n\r\n set maxLength (maxLength) {\r\n this._maxLength = maxLength;\r\n this._update();\r\n }\r\n\r\n get _matchFrom () {\r\n return this.maxLength - (this.from + '').length;\r\n }\r\n\r\n _update() {\r\n this._maxLength = Math.max(this._maxLength, (this.to + '').length);\r\n this.mask = '0'.repeat(this._maxLength);\r\n }\r\n\r\n validate (str) {\r\n let minstr = '';\r\n let maxstr = '';\r\n\r\n const [, placeholder, num] = str.match(/^(\\D*)(\\d*)(\\D*)/);\r\n if (num) {\r\n minstr = ('0'.repeat(placeholder.length) + num);\r\n maxstr = ('9'.repeat(placeholder.length) + num);\r\n }\r\n\r\n const firstNonZero = str.search(/[^0]/);\r\n if (firstNonZero === -1 && str.length <= this._matchFrom) return true;\r\n\r\n minstr = minstr.padEnd(this._maxLength, '0');\r\n maxstr = maxstr.padEnd(this._maxLength, '9');\r\n\r\n return this.from <= Number(maxstr) && Number(minstr) <= this.to;\r\n }\r\n}\r\n\r\nexport\r\nfunction EnumGroup (enums) {\r\n return {\r\n mask: '*'.repeat(enums[0].length),\r\n validate: (value, group) => enums.some(e => e.indexOf(group.unmaskedValue) >= 0)\r\n };\r\n}\r\n\r\nPatternGroup.Range = RangeGroup;\r\nPatternGroup.Enum = EnumGroup;\r\n","import 'core-js/fn/array/find';\r\nimport 'core-js/fn/object/keys';\r\nimport 'core-js/fn/string/repeat';\r\nimport 'core-js/fn/string/pad-start';\r\nimport 'core-js/fn/string/pad-end';\r\n\r\n\r\nimport Masked from './masked/base';\r\nimport MaskedPattern from './masked/pattern';\r\nimport MaskedNumber from './masked/number';\r\nimport MaskedDate from './masked/date';\r\n\r\nimport InputMask from './controls/input';\r\n\r\n\r\nexport default\r\nfunction IMask (el, opts={}) {\r\n\t// currently available only for input elements\r\n return new InputMask(el, opts);\r\n}\r\n\r\n\r\nIMask.InputMask = InputMask;\r\n\r\nIMask.Masked = Masked;\r\nIMask.MaskedPattern = MaskedPattern;\r\nIMask.MaskedNumber = MaskedNumber;\r\nIMask.MaskedDate = MaskedDate;\r\n\r\nwindow.IMask = IMask;\r\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef","var core = module.exports = {version: '2.4.0'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};","var isObject = require('./_is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});","var isObject = require('./_is-object')\n , document = require('./_global').document\n // in old IE typeof document.createElement is 'object'\n , is = isObject(document) && isObject(document.createElement);\nmodule.exports = function(it){\n return is ? document.createElement(it) : {};\n};","module.exports = !require('./_descriptors') && !require('./_fails')(function(){\n return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;\n});","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function(it, S){\n if(!isObject(it))return it;\n var fn, val;\n if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;\n if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};","var anObject = require('./_an-object')\n , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n , toPrimitive = require('./_to-primitive')\n , dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if(IE8_DOM_DEFINE)try {\n return dP(O, P, Attributes);\n } catch(e){ /* empty */ }\n if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');\n if('value' in Attributes)O[P] = Attributes.value;\n return O;\n};","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};","var dP = require('./_object-dp')\n , createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function(object, key, value){\n return dP.f(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};","var id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};","var global = require('./_global')\n , hide = require('./_hide')\n , has = require('./_has')\n , SRC = require('./_uid')('src')\n , TO_STRING = 'toString'\n , $toString = Function[TO_STRING]\n , TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function(it){\n return $toString.call(it);\n};\n\n(module.exports = function(O, key, val, safe){\n var isFunction = typeof val == 'function';\n if(isFunction)has(val, 'name') || hide(val, 'name', key);\n if(O[key] === val)return;\n if(isFunction)has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if(O === global){\n O[key] = val;\n } else {\n if(!safe){\n delete O[key];\n hide(O, key, val);\n } else {\n if(O[key])O[key] = val;\n else hide(O, key, val);\n }\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString(){\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};","var global = require('./_global')\n , core = require('./_core')\n , hide = require('./_hide')\n , redefine = require('./_redefine')\n , ctx = require('./_ctx')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {})\n , key, own, out, exp;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if(target)redefine(target, key, out, type & $export.U);\n // export\n if(exports[key] != out)hide(exports, key, exp);\n if(IS_PROTO && expProto[key] != out)expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library` \nmodule.exports = $export;","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n return it;\n};","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function(it){\n return Object(defined(it));\n};","// 7.1.4 ToInteger\nvar ceil = Math.ceil\n , floor = Math.floor;\nmodule.exports = function(it){\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer')\n , min = Math.min;\nmodule.exports = function(it){\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};","var global = require('./_global')\n , SHARED = '__core-js_shared__'\n , store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n return store[key] || (store[key] = {});\n};","var store = require('./_shared')('wks')\n , uid = require('./_uid')\n , Symbol = require('./_global').Symbol\n , USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function(name){\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;","var isObject = require('./_is-object')\n , isArray = require('./_is-array')\n , SPECIES = require('./_wks')('species');\n\nmodule.exports = function(original){\n var C;\n if(isArray(original)){\n C = original.constructor;\n // cross-realm fallback\n if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;\n if(isObject(C)){\n C = C[SPECIES];\n if(C === null)C = undefined;\n }\n } return C === undefined ? Array : C;\n};","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function(original, length){\n return new (speciesConstructor(original))(length);\n};","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx')\n , IObject = require('./_iobject')\n , toObject = require('./_to-object')\n , toLength = require('./_to-length')\n , asc = require('./_array-species-create');\nmodule.exports = function(TYPE, $create){\n var IS_MAP = TYPE == 1\n , IS_FILTER = TYPE == 2\n , IS_SOME = TYPE == 3\n , IS_EVERY = TYPE == 4\n , IS_FIND_INDEX = TYPE == 6\n , NO_HOLES = TYPE == 5 || IS_FIND_INDEX\n , create = $create || asc;\n return function($this, callbackfn, that){\n var O = toObject($this)\n , self = IObject(O)\n , f = ctx(callbackfn, that, 3)\n , length = toLength(self.length)\n , index = 0\n , result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined\n , val, res;\n for(;length > index; index++)if(NO_HOLES || index in self){\n val = self[index];\n res = f(val, index, O);\n if(TYPE){\n if(IS_MAP)result[index] = res; // map\n else if(res)switch(TYPE){\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if(IS_EVERY)return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables')\n , ArrayProto = Array.prototype;\nif(ArrayProto[UNSCOPABLES] == undefined)require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function(key){\n ArrayProto[UNSCOPABLES][key] = true;\n};","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export')\n , $find = require('./_array-methods')(5)\n , KEY = 'find'\n , forced = true;\n// Shouldn't skip holes\nif(KEY in [])Array(1)[KEY](function(){ forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn/*, that = undefined */){\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject')\n , defined = require('./_defined');\nmodule.exports = function(it){\n return IObject(defined(it));\n};","var toInteger = require('./_to-integer')\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};","var shared = require('./_shared')('keys')\n , uid = require('./_uid');\nmodule.exports = function(key){\n return shared[key] || (shared[key] = uid(key));\n};","var has = require('./_has')\n , toIObject = require('./_to-iobject')\n , arrayIndexOf = require('./_array-includes')(false)\n , IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function(object, names){\n var O = toIObject(object)\n , i = 0\n , result = []\n , key;\n for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while(names.length > i)if(has(O, key = names[i++])){\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal')\n , enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O){\n return $keys(O, enumBugKeys);\n};","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export')\n , core = require('./_core')\n , fails = require('./_fails');\nmodule.exports = function(KEY, exec){\n var fn = (core.Object || {})[KEY] || Object[KEY]\n , exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object')\n , $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});","'use strict';\nvar toInteger = require('./_to-integer')\n , defined = require('./_defined');\n\nmodule.exports = function repeat(count){\n var str = String(defined(this))\n , res = ''\n , n = toInteger(count);\n if(n < 0 || n == Infinity)throw RangeError(\"Count can't be negative\");\n for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str;\n return res;\n};","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('./_to-length')\n , repeat = require('./_string-repeat')\n , defined = require('./_defined');\n\nmodule.exports = function(that, maxLength, fillString, left){\n var S = String(defined(that))\n , stringLength = S.length\n , fillStr = fillString === undefined ? ' ' : String(fillString)\n , intMaxLength = toLength(maxLength);\n if(intMaxLength <= stringLength || fillStr == '')return S;\n var fillLen = intMaxLength - stringLength\n , stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));\n if(stringFiller.length > fillLen)stringFiller = stringFiller.slice(0, fillLen);\n return left ? stringFiller + S : S + stringFiller;\n};\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export')\n , $pad = require('./_string-pad');\n\n$export($export.P, 'String', {\n padStart: function padStart(maxLength /*, fillString = ' ' */){\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n }\n});","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export')\n , $pad = require('./_string-pad');\n\n$export($export.P, 'String', {\n padEnd: function padEnd(maxLength /*, fillString = ' ' */){\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n }\n});","import {refreshValueOnSet} from '../core/utils';\r\n\r\n\r\nexport default\r\nclass Masked {\r\n constructor ({\r\n mask,\r\n prepare=((val) => val),\r\n validate=(() => true),\r\n commit=(() => {}),\r\n }) {\r\n this._value = '';\r\n this.mask = mask;\r\n this.prepare = prepare;\r\n this.validate = validate;\r\n this.commit = commit;\r\n this.isInitialized = true;\r\n }\r\n\r\n get mask () {\r\n return this._mask;\r\n }\r\n\r\n @refreshValueOnSet\r\n set mask (mask) {\r\n this._mask = mask;\r\n }\r\n\r\n get prepare () {\r\n return this._prepare;\r\n }\r\n\r\n @refreshValueOnSet\r\n set prepare (prepare) {\r\n this._prepare = prepare;\r\n }\r\n\r\n get validate () {\r\n return this._validate;\r\n }\r\n\r\n @refreshValueOnSet\r\n set validate (validate) {\r\n this._validate = validate;\r\n }\r\n\r\n get commit () {\r\n return this._commit;\r\n }\r\n\r\n @refreshValueOnSet\r\n set commit (commit) {\r\n this._commit = commit;\r\n }\r\n\r\n clone () {\r\n const m = new Masked(this);\r\n m._value = this.value.slice();\r\n return m;\r\n }\r\n\r\n reset () {\r\n this._value = '';\r\n }\r\n\r\n get value () {\r\n return this._value;\r\n }\r\n\r\n set value (value) {\r\n this.reset();\r\n this.appendWithTail(value);\r\n this.doCommit();\r\n }\r\n\r\n get unmaskedValue () {\r\n return this._unmask();\r\n }\r\n\r\n set unmaskedValue (value) {\r\n this.reset();\r\n this._append(value);\r\n this.appendWithTail(\"\");\r\n this.doCommit();\r\n }\r\n\r\n get isComplete () {\r\n return true;\r\n }\r\n\r\n nearestInputPos (cursorPos, /* direction */) {\r\n return cursorPos;\r\n }\r\n\r\n extractInput (fromPos=0, toPos=this.value.length) {\r\n return this.value.slice(fromPos, toPos);\r\n }\r\n\r\n extractTail (fromPos=0, toPos=this.value.length) {\r\n return this.extractInput(fromPos, toPos);\r\n }\r\n\r\n _appendTail (tail) {\r\n return !tail || this._append(tail);\r\n }\r\n\r\n _append (str, soft) {\r\n const oldValueLength = this.value.length;\r\n let consistentValue = this.clone();\r\n\r\n str = this.doPrepare(str, soft);\r\n for (let ci=0; ci outputRaw\r\n\r\n // TODO\r\n // insert (str, fromPos, soft)\r\n\r\n // splice (start, deleteCount, inserted, removeDirection) {\r\n // const tailPos = start + deleteCount;\r\n // const tail = this.extractTail(tailPos);\r\n\r\n // start = this.nearestInputPos(start, removeDirection);\r\n // this.clear(start);\r\n // return this.appendWithTail(inserted, tail);\r\n // }\r\n}\r\n","import {escapeRegExp, refreshValueOnSet, DIRECTION, indexInDirection} from '../core/utils';\r\nimport Masked from './base';\r\n\r\n\r\nexport default\r\nclass MaskedNumber extends Masked {\r\n constructor (opts={}) {\r\n opts = Object.assign({}, MaskedNumber.DEFAULTS, opts);\r\n super(opts);\r\n delete this.isInitialized;\r\n\r\n const {scale, radix, mapToRadix, min, max, signed, thousandsSeparator, postFormat} = opts;\r\n\r\n this.min = min;\r\n this.max = max;\r\n this.scale = scale;\r\n this.radix = radix;\r\n this.mapToRadix = mapToRadix;\r\n this.signed = signed;\r\n this.thousandsSeparator = thousandsSeparator;\r\n this.postFormat = postFormat;\r\n\r\n this._updateNumberRegExp();\r\n\r\n this.isInitialized = true;\r\n }\r\n\r\n _updateNumberRegExp () {\r\n // TODO refactor?\r\n let regExpStrSoft = '^';\r\n let regExpStr = '^';\r\n\r\n if (this.signed) {\r\n regExpStrSoft += '([+|\\\\-]?|([+|\\\\-]?(0|([1-9]+\\\\d*))))';\r\n regExpStr += '[+|\\\\-]?';\r\n } else {\r\n regExpStrSoft += '(0|([1-9]+\\\\d*))';\r\n }\r\n regExpStr += '\\\\d*';\r\n\r\n if (this.scale) {\r\n regExpStrSoft += '(' + this.radix + '\\\\d{0,' + this.scale + '})?';\r\n regExpStr += '(' + this.radix + '\\\\d{0,' + this.scale + '})?';\r\n }\r\n\r\n regExpStrSoft += '$';\r\n regExpStr += '$';\r\n\r\n this._numberRegExpSoft = new RegExp(regExpStrSoft);\r\n this._numberRegExp = new RegExp(regExpStr)\r\n }\r\n\r\n extractTail (fromPos=0, toPos=this.value.length) {\r\n return this._removeThousandsSeparators(super.extractTail(fromPos, toPos));\r\n }\r\n\r\n _removeThousandsSeparators (value) {\r\n return value.replace(this._thousandsSeparatorRegExp, '');\r\n }\r\n\r\n _insertThousandsSeparators (value) {\r\n // https://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript\r\n const parts = value.split(this.radix);\r\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, this.thousandsSeparator);\r\n return parts.join(this.radix);\r\n }\r\n\r\n doPrepare (str, soft) {\r\n return super.doPrepare(this._removeThousandsSeparators(str.replace(this._mapToRadixRegExp, this.radix)), soft);\r\n }\r\n\r\n appendWithTail (str, tail) {\r\n const oldValueLength = this.value.length;\r\n this._value = this._removeThousandsSeparators(this.value);\r\n let removedSeparatorsCount = oldValueLength - this.value.length;\r\n\r\n\r\n const appended = super.appendWithTail(str, tail);\r\n\r\n\r\n this._value = this._insertThousandsSeparators(this.value);\r\n\r\n let beforeTailPos = oldValueLength + appended - removedSeparatorsCount;\r\n this._value = this._insertThousandsSeparators(this.value);\r\n let insertedSeparatorsBeforeTailCount = 0;\r\n for (let pos = 0; pos <= beforeTailPos; ++pos) {\r\n if (this.value[pos] === this.thousandsSeparator) {\r\n ++insertedSeparatorsBeforeTailCount;\r\n ++beforeTailPos;\r\n }\r\n }\r\n\r\n return appended - removedSeparatorsCount + insertedSeparatorsBeforeTailCount;\r\n }\r\n\r\n nearestInputPos (cursorPos, direction=DIRECTION.LEFT) {\r\n if (!direction) return cursorPos;\r\n\r\n const nextPos = indexInDirection(cursorPos, direction);\r\n if (this.value[nextPos] === this.thousandsSeparator) cursorPos += direction;\r\n return cursorPos;\r\n }\r\n\r\n doValidate (soft) {\r\n const regexp = soft ? this._numberRegExpSoft : this._numberRegExp;\r\n\r\n // validate as string\r\n let valid = regexp.test(this._removeThousandsSeparators(this.value));\r\n\r\n if (valid) {\r\n // validate as number\r\n const number = this.number;\r\n valid = valid && !isNaN(number) &&\r\n // check min bound for negative values\r\n (this.min == null || this.min >= 0 || this.min <= this.number) &&\r\n // check max bound for positive values\r\n (this.max == null || this.max <= 0 || this.number <= this.max);\r\n }\r\n\r\n return valid && super.doValidate(soft);\r\n }\r\n\r\n doCommit () {\r\n const number = this.number;\r\n let validnum = number;\r\n\r\n // check bounds\r\n if (this.min != null) validnum = Math.max(validnum, this.min);\r\n if (this.max != null) validnum = Math.min(validnum, this.max);\r\n\r\n if (validnum !== number) {\r\n this.unmaskedValue = '' + validnum;\r\n }\r\n\r\n let formatted = this.value;\r\n\r\n if (this.postFormat.normalizeZeros) {\r\n formatted = this._normalizeZeros(formatted);\r\n }\r\n\r\n if (this.postFormat.padFractionalZeros) {\r\n formatted = this._padFractionalZeros(formatted);\r\n }\r\n\r\n this._value = formatted;\r\n super.doCommit();\r\n }\r\n\r\n _normalizeZeros (value) {\r\n const parts = this._removeThousandsSeparators(value).split(this.radix);\r\n\r\n // remove leading zeros\r\n parts[0] = parts[0].replace(/^(\\D*)(0*)(\\d*)/, (match, sign, zeros, num) => sign + num);\r\n // add leading zero\r\n if (value.length && !/\\d$/.test(parts[0])) parts[0] = parts[0] + '0';\r\n\r\n if (parts.length > 1) {\r\n parts[1] = parts[1].replace(/0*$/, ''); // remove trailing zeros\r\n if (!parts[1].length) parts.length = 1; // remove fractional\r\n }\r\n\r\n return this._insertThousandsSeparators(parts.join(this.radix));\r\n }\r\n\r\n _padFractionalZeros (value) {\r\n const parts = value.split(this.radix);\r\n if (parts.length < 2) parts.push('');\r\n parts[1] = parts[1].padEnd(this.scale, '0');\r\n return parts.join(this.radix);\r\n }\r\n\r\n get number () {\r\n let numstr =\r\n this._removeThousandsSeparators(\r\n this._normalizeZeros(\r\n this.unmaskedValue))\r\n .replace(this.radix, '.');\r\n\r\n return Number(numstr);\r\n }\r\n\r\n set number (number) {\r\n this.unmaskedValue = '' + number;\r\n }\r\n\r\n get min () {\r\n return this._min;\r\n }\r\n\r\n @refreshValueOnSet\r\n set min (min) {\r\n this._min = min;\r\n }\r\n\r\n get max () {\r\n return this._max;\r\n }\r\n\r\n @refreshValueOnSet\r\n set max (max) {\r\n this._max = max;\r\n }\r\n\r\n get scale () {\r\n return this._scale;\r\n }\r\n\r\n @refreshValueOnSet\r\n set scale (scale) {\r\n this._scale = scale;\r\n }\r\n\r\n get radix () {\r\n return this._radix;\r\n }\r\n\r\n @refreshValueOnSet\r\n set radix (radix) {\r\n this._radix = radix;\r\n this._updateNumberRegExp();\r\n }\r\n\r\n get signed () {\r\n return this._signed || (this.min != null && this.min < 0) || (this.max != null && this.max < 0);\r\n }\r\n\r\n @refreshValueOnSet\r\n set signed (signed) {\r\n this._signed = signed;\r\n }\r\n\r\n get postFormat () {\r\n return this._postFormat;\r\n }\r\n\r\n @refreshValueOnSet\r\n set postFormat (postFormat) {\r\n this._postFormat = {\r\n ...MaskedNumber.DEFAULTS.postFormat,\r\n ...postFormat\r\n };\r\n }\r\n\r\n get mapToRadix () {\r\n return this._mapToRadix;\r\n }\r\n\r\n @refreshValueOnSet\r\n set mapToRadix (mapToRadix) {\r\n this._mapToRadix = mapToRadix;\r\n this._mapToRadixRegExp = new RegExp('[' +\r\n mapToRadix.map(escapeRegExp).join('') +\r\n ']', 'g');\r\n }\r\n\r\n get thousandsSeparator () {\r\n return this._thousandsSeparator;\r\n }\r\n\r\n @refreshValueOnSet\r\n set thousandsSeparator (thousandsSeparator) {\r\n this._thousandsSeparator = thousandsSeparator;\r\n this._thousandsSeparatorRegExp = new RegExp(escapeRegExp(thousandsSeparator), 'g');\r\n }\r\n}\r\nMaskedNumber.DEFAULTS = {\r\n radix: ',',\r\n thousandsSeparator: '',\r\n mapToRadix: ['.'],\r\n scale: 2,\r\n postFormat: {\r\n normalizeZeros: true,\r\n }\r\n};\r\n","import createMask from '../factory';\r\n\r\n\r\nexport default\r\nclass PatternDefinition {\r\n constructor(opts) {\r\n Object.assign(this, opts);\r\n\r\n if (this.mask) {\r\n this._masked = createMask(opts);\r\n }\r\n }\r\n\r\n reset () {\r\n this.isHollow = false;\r\n if (this._masked) this._masked.reset();\r\n }\r\n\r\n get isInput () {\r\n return this.type === PatternDefinition.TYPES.INPUT;\r\n }\r\n\r\n get isHiddenHollow () {\r\n return this.isHollow && this.optional;\r\n }\r\n\r\n resolve (ch) {\r\n if (!this._masked) return false;\r\n // TODO seems strange\r\n this._masked.value = ch;\r\n return this._masked.value;\r\n }\r\n}\r\n\r\nPatternDefinition.DEFAULTS = {\r\n '0': /\\d/,\r\n 'a': /[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/, // http://stackoverflow.com/a/22075070\r\n '*': /./\r\n};\r\nPatternDefinition.TYPES = {\r\n INPUT: 'input',\r\n FIXED: 'fixed'\r\n};\r\n","import {conform, DIRECTION, indexInDirection, refreshValueOnSet} from '../core/utils';\r\nimport Masked from './base';\r\nimport PatternDefinition from './pattern/definition';\r\nimport PatternGroup from './pattern/group';\r\n\r\n\r\nexport default\r\nclass MaskedPattern extends Masked {\r\n constructor (opts={}) {\r\n const {definitions, placeholder, groups} = opts;\r\n super(opts);\r\n delete this.isInitialized;\r\n\r\n this.placeholder = placeholder;\r\n this.definitions = definitions;\r\n this.groups = groups;\r\n\r\n this.isInitialized = true;\r\n }\r\n\r\n get placeholder () {\r\n return this._placeholder;\r\n }\r\n\r\n @refreshValueOnSet\r\n set placeholder (ph) {\r\n this._placeholder = {\r\n ...MaskedPattern.DEFAULT_PLACEHOLDER,\r\n ...ph\r\n };\r\n }\r\n\r\n get definitions () {\r\n return this._definitions;\r\n }\r\n\r\n @refreshValueOnSet\r\n set definitions (defs) {\r\n defs = {\r\n ...PatternDefinition.DEFAULTS,\r\n ...defs\r\n };\r\n\r\n this._definitions = defs;\r\n this._updateMask();\r\n }\r\n\r\n get mask () {\r\n return this._mask;\r\n }\r\n\r\n @refreshValueOnSet\r\n set mask (mask) {\r\n this._mask = mask;\r\n this._updateMask();\r\n }\r\n\r\n _updateMask () {\r\n const defs = this._definitions;\r\n this._charDefs = [];\r\n this._groupDefs = [];\r\n\r\n let pattern = this.mask;\r\n if (!pattern || !defs) return;\r\n\r\n let unmaskingBlock = false;\r\n let optionalBlock = false;\r\n let stopAlign = false;\r\n\r\n\r\n for (let i=0; i p.indexOf(gName) === 0);\r\n // order by key length\r\n gNames.sort((a, b) => b.length - a.length);\r\n // use group name with max length\r\n const gName = gNames[0];\r\n if (gName) {\r\n const group = this._groups[gName];\r\n this._groupDefs.push(new PatternGroup(this, {\r\n name: gName,\r\n offset: this._charDefs.length,\r\n mask: group.mask,\r\n validate: group.validate\r\n }));\r\n pattern = pattern.replace(gName, group.mask);\r\n }\r\n }\r\n\r\n let char = pattern[i];\r\n let type = !unmaskingBlock && char in defs ?\r\n PatternDefinition.TYPES.INPUT :\r\n PatternDefinition.TYPES.FIXED;\r\n const unmasking = type === PatternDefinition.TYPES.INPUT || unmaskingBlock;\r\n const optional = type === PatternDefinition.TYPES.INPUT && optionalBlock;\r\n\r\n if (char === MaskedPattern.STOP_CHAR) {\r\n stopAlign = true;\r\n continue;\r\n }\r\n\r\n if (char === '{' || char === '}') {\r\n unmaskingBlock = !unmaskingBlock;\r\n continue;\r\n }\r\n\r\n if (char === '[' || char === ']') {\r\n optionalBlock = !optionalBlock;\r\n continue;\r\n }\r\n\r\n if (char === MaskedPattern.ESCAPE_CHAR) {\r\n ++i;\r\n char = pattern[i];\r\n // TODO validation\r\n if (!char) break;\r\n type = PatternDefinition.TYPES.FIXED;\r\n }\r\n\r\n this._charDefs.push(new PatternDefinition({\r\n char,\r\n type,\r\n optional,\r\n stopAlign,\r\n mask: unmasking &&\r\n (type === PatternDefinition.TYPES.INPUT ?\r\n defs[char] :\r\n (value => value === char))\r\n }));\r\n\r\n stopAlign = false;\r\n }\r\n }\r\n\r\n doValidate (soft) {\r\n return this._groupDefs.every(g => g.doValidate(soft)) && super.doValidate(soft);\r\n }\r\n\r\n clone () {\r\n const m = new MaskedPattern(this);\r\n m._value = this.value;\r\n m._charDefs.forEach((d, i) => Object.assign(d, this._charDefs[i]));\r\n m._groupDefs.forEach((d, i) => Object.assign(d, this._groupDefs[i]));\r\n return m;\r\n }\r\n\r\n reset () {\r\n super.reset();\r\n this._charDefs.forEach(d => {delete d.isHollow;});\r\n }\r\n\r\n get isComplete () {\r\n return !this._charDefs.some((d, i) =>\r\n d.isInput && !d.optional && (d.isHollow || !this.extractInput(i, i+1)));\r\n }\r\n\r\n hiddenHollowsBefore (defIndex) {\r\n return this._charDefs\r\n .slice(0, defIndex)\r\n .filter(d => d.isHiddenHollow)\r\n .length;\r\n }\r\n\r\n mapDefIndexToPos (defIndex) {\r\n if (defIndex == null) return;\r\n return defIndex - this.hiddenHollowsBefore(defIndex);\r\n }\r\n\r\n mapPosToDefIndex (pos) {\r\n if (pos == null) return;\r\n let defIndex = pos;\r\n for (let di=0; di= defIndex) break;\r\n if (def.isHiddenHollow) ++defIndex;\r\n }\r\n return defIndex;\r\n }\r\n\r\n _unmask () {\r\n const str = this.value;\r\n let unmasked = '';\r\n\r\n for (let ci=0, di=0; ci [d, i])\r\n .slice(fromDefIndex, toDefIndex)\r\n .filter(([d]) => d.stopAlign)\r\n .map(([, i]) => i);\r\n\r\n const stops = [\r\n fromDefIndex,\r\n ...stopDefIndices,\r\n toDefIndex\r\n ];\r\n\r\n return stops.map((s, i) => [\r\n stopDefIndices.indexOf(s) >= 0 ?\r\n s :\r\n null,\r\n\r\n this.extractInput(\r\n this.mapDefIndexToPos(s),\r\n this.mapDefIndexToPos(stops[++i]))\r\n ]).filter(([stop, input]) => stop != null || input);\r\n }\r\n\r\n _appendPlaceholder (toDefIndex) {\r\n const maxDefIndex = toDefIndex || this._charDefs.length;\r\n for (let di=this.mapPosToDefIndex(this.value.length); di < maxDefIndex; ++di) {\r\n const def = this._charDefs[di];\r\n if (def.isInput) def.isHollow = true;\r\n\r\n if (!this.placeholder.lazy || toDefIndex) {\r\n this._value += !def.isInput ?\r\n def.char :\r\n !def.optional ?\r\n this.placeholder.char :\r\n '';\r\n }\r\n }\r\n }\r\n\r\n clear (from=0, to=this.value.length) {\r\n this._value = this.value.slice(0, from) + this.value.slice(to);\r\n const fromDefIndex = this.mapPosToDefIndex(from);\r\n const toDefIndex = this.mapPosToDefIndex(to);\r\n this._charDefs\r\n .slice(fromDefIndex, toDefIndex)\r\n .forEach(d => d.reset());\r\n }\r\n\r\n nearestInputPos (cursorPos, direction=DIRECTION.LEFT) {\r\n if (!direction) return cursorPos;\r\n\r\n const initialDefIndex = this.mapPosToDefIndex(cursorPos);\r\n let di = initialDefIndex;\r\n\r\n let firstInputIndex,\r\n firstFilledInputIndex,\r\n firstVisibleHollowIndex,\r\n nextdi;\r\n\r\n // search forward\r\n for (nextdi = indexInDirection(di, direction); 0 <= nextdi && nextdi < this._charDefs.length; di += direction, nextdi += direction) {\r\n const nextDef = this._charDefs[nextdi];\r\n if (firstInputIndex == null && nextDef.isInput) firstInputIndex = di;\r\n if (firstVisibleHollowIndex == null && nextDef.isHollow && !nextDef.isHiddenHollow) firstVisibleHollowIndex = di;\r\n if (nextDef.isInput && !nextDef.isHollow) {\r\n firstFilledInputIndex = di;\r\n break;\r\n }\r\n }\r\n\r\n if (direction === DIRECTION.LEFT || firstInputIndex == null) {\r\n // search backwards\r\n direction = -direction;\r\n let overflow = false;\r\n\r\n // find hollows only before initial pos\r\n for (nextdi = indexInDirection(di, direction);\r\n 0 <= nextdi && nextdi < this._charDefs.length;\r\n di += direction, nextdi += direction)\r\n {\r\n const nextDef = this._charDefs[nextdi];\r\n if (nextDef.isInput) {\r\n firstInputIndex = di;\r\n if (nextDef.isHollow && !nextDef.isHiddenHollow) break;\r\n }\r\n\r\n // if hollow not found before start position - set `overflow`\r\n // and try to find just any input\r\n if (di === initialDefIndex) overflow = true;\r\n\r\n // first input found\r\n if (overflow && firstInputIndex != null) break;\r\n }\r\n\r\n // process overflow\r\n overflow = overflow || nextdi >= this._charDefs.length;\r\n if (overflow && firstInputIndex != null) di = firstInputIndex;\r\n } else if (firstFilledInputIndex == null) {\r\n // adjust index if delete at right and filled input not found at right\r\n di = firstVisibleHollowIndex != null ?\r\n firstVisibleHollowIndex :\r\n firstInputIndex;\r\n }\r\n\r\n return this.mapDefIndexToPos(di);\r\n }\r\n\r\n get groups () { return this._groups; }\r\n\r\n @refreshValueOnSet\r\n set groups (groups) {\r\n this._groups = groups;\r\n this._updateMask();\r\n }\r\n\r\n group (name) {\r\n return this.groupsByName(name)[0];\r\n }\r\n\r\n groupsByName (name) {\r\n return this._groupDefs.filter(g => g.name === name);\r\n }\r\n}\r\n\r\nMaskedPattern.DEFAULT_PLACEHOLDER = {\r\n lazy: true,\r\n char: '_'\r\n};\r\nMaskedPattern.STOP_CHAR = '`';\r\nMaskedPattern.ESCAPE_CHAR = '\\\\';\r\nMaskedPattern.Definition = PatternDefinition;\r\nMaskedPattern.Group = PatternGroup;\r\n","import {refreshValueOnSet} from '../core/utils';\r\nimport MaskedPattern from './pattern';\r\nimport PatternGroup from './pattern/group';\r\n\r\n\r\nexport default\r\nclass MaskedDate extends MaskedPattern {\r\n constructor (opts={}) {\r\n const groups = opts.groups;\r\n opts = Object.assign({}, MaskedDate.DEFAULTS, opts);\r\n const {min, max, format, parse} = opts;\r\n\r\n opts.groups = Object.assign({}, MaskedDate.DEFAULTS.groups);\r\n if (opts.groups.Y) {\r\n // adjust year group\r\n if (min) opts.groups.Y.from = min.getFullYear();\r\n if (max) opts.groups.Y.to = max.getFullYear();\r\n }\r\n\r\n Object.assign(opts.groups, groups);\r\n\r\n super(opts);\r\n delete this.isInitialized;\r\n\r\n this.min = min;\r\n this.max = max;\r\n this.format = format;\r\n this.parse = parse;\r\n\r\n this.isInitialized = true;\r\n }\r\n\r\n doValidate (soft) {\r\n const valid = super.doValidate(soft);\r\n const date = this.date;\r\n\r\n return valid &&\r\n (!this.isComplete ||\r\n this.isDateExist(this.value) && date &&\r\n (this.min == null || this.min <= date) &&\r\n (this.max == null || date <= this.max));\r\n }\r\n\r\n isDateExist (str) {\r\n return this.format(this.parse(str)) === str;\r\n }\r\n\r\n get date () {\r\n return this.isComplete ?\r\n this.parse(this.value) :\r\n null;\r\n }\r\n\r\n set date (date) {\r\n this.value = this.format(date);\r\n }\r\n\r\n get min () {\r\n return this._min;\r\n }\r\n\r\n @refreshValueOnSet\r\n set min (min) {\r\n this._min = min;\r\n }\r\n\r\n get max () {\r\n return this._max;\r\n }\r\n\r\n @refreshValueOnSet\r\n set max (max) {\r\n this._max = max;\r\n }\r\n}\r\nMaskedDate.DEFAULTS = {\r\n mask: 'd{.}`m{.}`Y',\r\n format: date => {\r\n const day = ('' + date.getDate()).padStart(2, '0');\r\n const month = ('' + (date.getMonth() + 1)).padStart(2, '0');\r\n const year = date.getFullYear();\r\n\r\n return [day, month, year].join('.');\r\n },\r\n parse: str => {\r\n const [day, month, year] = str.split('.');\r\n return new Date(year, month - 1, day);\r\n },\r\n groups: {\r\n d: new PatternGroup.Range([1, 31]),\r\n m: new PatternGroup.Range([1, 12]),\r\n Y: new PatternGroup.Range([1900, 9999]),\r\n },\r\n};\r\n","import {DIRECTION} from './utils';\r\n\r\n\r\nexport default\r\nclass ActionDetails {\r\n constructor (value, cursorPos, oldValue, oldSelection) {\r\n this.value = value;\r\n this.cursorPos = cursorPos;\r\n this.oldValue = oldValue;\r\n this.oldSelection = oldSelection;\r\n }\r\n\r\n get startChangePos () {\r\n return Math.min(this.cursorPos, this.oldSelection.start);\r\n }\r\n\r\n get insertedCount () {\r\n return this.cursorPos - this.startChangePos;\r\n }\r\n\r\n get inserted () {\r\n return this.value.substr(this.startChangePos, this.insertedCount);\r\n }\r\n\r\n get removedCount () {\r\n // Math.max for opposite operation\r\n return Math.max((this.oldSelection.end - this.startChangePos) ||\r\n // for Delete\r\n this.oldValue.length - this.value.length, 0);\r\n }\r\n\r\n get removed () {\r\n return this.oldValue.substr(this.startChangePos, this.removedCount);\r\n }\r\n\r\n get head () {\r\n return this.value.substring(0, this.startChangePos);\r\n }\r\n\r\n get tail () {\r\n this.value.substring(this.startChangePos + this.insertedCount);\r\n }\r\n\r\n get removeDirection () {\r\n return this.removedCount &&\r\n ((this.oldSelection.end === this.cursorPos || this.insertedCount) ?\r\n DIRECTION.RIGHT :\r\n DIRECTION.LEFT);\r\n }\r\n}\r\n","import ActionDetails from '../core/action-details';\r\nimport createMask from '../masked/factory';\r\n\r\n\r\nexport default\r\nclass InputMask {\r\n constructor (el, opts) {\r\n this.el = el;\r\n this.masked = createMask(opts);\r\n\r\n this._listeners = {};\r\n this._value = '';\r\n this._unmaskedValue = '';\r\n\r\n this._saveSelection = this._saveSelection.bind(this);\r\n this._onInput = this._onInput.bind(this);\r\n this._onChange = this._onChange.bind(this);\r\n this._onDrop = this._onDrop.bind(this);\r\n this._alignCursor = this._alignCursor.bind(this);\r\n this._alignCursorFriendly = this._alignCursorFriendly.bind(this);\r\n\r\n this.bindEvents();\r\n\r\n // refresh\r\n this.updateValue();\r\n this._onChange();\r\n }\r\n\r\n get mask () { return this.masked.mask; }\r\n set mask (mask) {\r\n if (typeof mask === typeof this.masked.mask) {\r\n this.masked.mask = mask;\r\n return;\r\n }\r\n\r\n const unmasked = this.masked ? this.masked.unmaskedValue : null;\r\n this.masked = createMask({mask});\r\n if (unmasked != null) this.masked.unmaskedValue = unmasked;\r\n }\r\n\r\n get value () {\r\n return this._value;\r\n }\r\n\r\n set value (str) {\r\n this.masked.value = str;\r\n this.updateControl();\r\n this._alignCursor();\r\n }\r\n\r\n get unmaskedValue () {\r\n return this._unmaskedValue;\r\n }\r\n\r\n set unmaskedValue (str) {\r\n this.masked.unmaskedValue = str;\r\n this.updateControl();\r\n this._alignCursor();\r\n }\r\n\r\n bindEvents () {\r\n this.el.addEventListener('keydown', this._saveSelection);\r\n this.el.addEventListener('input', this._onInput);\r\n this.el.addEventListener('drop', this._onDrop);\r\n this.el.addEventListener('click', this._alignCursorFriendly);\r\n this.el.addEventListener('change', this._onChange);\r\n }\r\n\r\n unbindEvents () {\r\n this.el.removeEventListener('keydown', this._saveSelection);\r\n this.el.removeEventListener('input', this._onInput);\r\n this.el.removeEventListener('drop', this._onDrop);\r\n this.el.removeEventListener('click', this._alignCursorFriendly);\r\n this.el.removeEventListener('change', this._onChange);\r\n }\r\n\r\n fireEvent (ev) {\r\n const listeners = this._listeners[ev] || [];\r\n listeners.forEach(l => l());\r\n }\r\n\r\n get selectionStart () {\r\n return this._cursorChanging ?\r\n this._changingCursorPos :\r\n\r\n this.el.selectionStart;\r\n }\r\n\r\n get cursorPos () {\r\n return this._cursorChanging ?\r\n this._changingCursorPos :\r\n\r\n this.el.selectionEnd;\r\n }\r\n\r\n set cursorPos (pos) {\r\n if (this.el !== document.activeElement) return;\r\n\r\n this.el.setSelectionRange(pos, pos);\r\n this._saveSelection();\r\n }\r\n\r\n _saveSelection (/* ev */) {\r\n if (this.value !== this.el.value) {\r\n console.warn('Uncontrolled input change, refresh mask manually!'); // eslint-disable-line no-console\r\n }\r\n this._selection = {\r\n start: this.selectionStart,\r\n end: this.cursorPos\r\n };\r\n }\r\n\r\n updateValue () {\r\n this.masked.value = this.el.value;\r\n }\r\n\r\n updateControl () {\r\n const newUnmaskedValue = this.masked.unmaskedValue;\r\n const newValue = this.masked.value;\r\n const isChanged = (this.unmaskedValue !== newUnmaskedValue ||\r\n this.value !== newValue);\r\n\r\n this._unmaskedValue = newUnmaskedValue;\r\n this._value = newValue;\r\n\r\n if (this.el.value !== newValue) this.el.value = newValue;\r\n if (isChanged) this._fireChangeEvents();\r\n }\r\n\r\n updateOptions (opts) {\r\n const mask = opts.mask;\r\n if (mask) this.mask = mask;\r\n\r\n this.masked.withValueRefresh(() => {\r\n for (const k in opts) {\r\n if (k === 'mask') continue;\r\n this.masked[k] = opts[k];\r\n }\r\n });\r\n\r\n this.updateControl();\r\n }\r\n\r\n updateCursor (cursorPos) {\r\n if (cursorPos == null) return;\r\n this.cursorPos = cursorPos;\r\n\r\n // also queue change cursor for mobile browsers\r\n this._delayUpdateCursor(cursorPos);\r\n }\r\n\r\n _delayUpdateCursor (cursorPos) {\r\n this._abortUpdateCursor();\r\n this._changingCursorPos = cursorPos;\r\n this._cursorChanging = setTimeout(() => {\r\n this.cursorPos = this._changingCursorPos;\r\n this._abortUpdateCursor();\r\n }, 10);\r\n }\r\n\r\n _fireChangeEvents () {\r\n this.fireEvent('accept');\r\n if (this.masked.isComplete) this.fireEvent('complete');\r\n }\r\n\r\n _abortUpdateCursor () {\r\n if (this._cursorChanging) {\r\n clearTimeout(this._cursorChanging);\r\n delete this._cursorChanging;\r\n }\r\n }\r\n\r\n _alignCursor () {\r\n this.cursorPos = this.masked.nearestInputPos(this.cursorPos);\r\n }\r\n\r\n _alignCursorFriendly () {\r\n if (this.selectionStart !== this.cursorPos) return;\r\n this._alignCursor();\r\n }\r\n\r\n on (ev, handler) {\r\n if (!this._listeners[ev]) this._listeners[ev] = [];\r\n this._listeners[ev].push(handler);\r\n return this;\r\n }\r\n\r\n off (ev, handler) {\r\n if (!this._listeners[ev]) return;\r\n if (!handler) {\r\n delete this._listeners[ev];\r\n return;\r\n }\r\n const hIndex = this._listeners[ev].indexOf(handler);\r\n if (hIndex >= 0) this._listeners.splice(hIndex, 1);\r\n return this;\r\n }\r\n\r\n _onInput () {\r\n this._abortUpdateCursor();\r\n\r\n const details = new ActionDetails(\r\n // new state\r\n this.el.value, this.cursorPos,\r\n // old state\r\n this.value, this._selection);\r\n\r\n const tailPos = details.startChangePos + details.removed.length;\r\n const tail = this.masked.extractTail(tailPos);\r\n\r\n const lastInputPos = this.masked.nearestInputPos(details.startChangePos, details.removeDirection);\r\n this.masked.clear(lastInputPos);\r\n const insertedCount = this.masked.appendWithTail(details.inserted, tail);\r\n\r\n\r\n const cursorPos = this.masked.nearestInputPos(\r\n lastInputPos + insertedCount,\r\n details.removeDirection);\r\n\r\n this.updateControl();\r\n this.updateCursor(cursorPos);\r\n }\r\n\r\n _onChange () {\r\n if (this.value !== this.el.value) {\r\n this.updateValue();\r\n }\r\n this.masked.doCommit();\r\n this.updateControl();\r\n }\r\n\r\n _onDrop (ev) {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n }\r\n\r\n destroy () {\r\n this.unbindEvents();\r\n this._listeners.length = 0;\r\n }\r\n}\r\n"],"names":["isString","str","String","conform","res","fallback","indexInDirection","pos","direction","DIRECTION","LEFT","refreshValueOnSet","target","key","descriptor","method","set","args","this","withValueRefresh","bind","escapeRegExp","replace","createMask","opts","mask","babelHelpers.extends","Masked","RegExp","validate","value","test","IMask","MaskedPattern","prototype","Number","MaskedNumber","Date","pattern","MaskedDate","Function","warn","EnumGroup","enums","repeat","length","group","some","e","indexOf","unmaskedValue","el","InputMask","global","module","window","Math","self","__g","core","version","__e","it","isObject","TypeError","exec","require$$0","Object","defineProperty","get","a","document","is","createElement","require$$1","require$$2","S","fn","val","toString","call","valueOf","dP","O","P","Attributes","anObject","toPrimitive","IE8_DOM_DEFINE","bitmap","enumerable","configurable","writable","object","f","createDesc","hasOwnProperty","id","px","random","concat","undefined","SRC","$toString","TPL","split","inspectSource","safe","isFunction","has","hide","join","that","aFunction","b","c","apply","arguments","PROTOTYPE","$export","type","name","source","own","out","exp","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","B","exports","expProto","ctx","redefine","U","W","R","slice","propertyIsEnumerable","cof","defined","ceil","floor","isNaN","min","toInteger","Array","isArray","arg","SHARED","store","Symbol","USE_SYMBOL","uid","SPECIES","original","C","constructor","speciesConstructor","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","create","asc","$this","callbackfn","toObject","IObject","toLength","index","result","push","UNSCOPABLES","ArrayProto","$find","KEY","forced","find","max","IS_INCLUDES","fromIndex","toIObject","toIndex","shared","arrayIndexOf","IE_PROTO","names","i","keys","$keys","enumBugKeys","fails","count","n","Infinity","RangeError","maxLength","fillString","left","stringLength","fillStr","intMaxLength","fillLen","stringFiller","padStart","$pad","padEnd","prepare","commit","_value","isInitialized","clone","m","reset","nearestInputPos","cursorPos","extractInput","fromPos","toPos","extractTail","_appendTail","tail","_append","soft","oldValueLength","consistentValue","doPrepare","ci","doValidate","appendWithTail","appendCount","consistentAppended","ch","appended","_unmask","clear","from","to","_refreshing","unmasked","ret","doCommit","_mask","_prepare","_validate","_commit","DEFAULTS","_Masked","_this","scale","radix","mapToRadix","signed","thousandsSeparator","postFormat","_updateNumberRegExp","regExpStrSoft","regExpStr","_numberRegExpSoft","_numberRegExp","_removeThousandsSeparators","_thousandsSeparatorRegExp","_insertThousandsSeparators","parts","_mapToRadixRegExp","removedSeparatorsCount","beforeTailPos","insertedSeparatorsBeforeTailCount","nextPos","valid","number","validnum","formatted","normalizeZeros","_normalizeZeros","padFractionalZeros","_padFractionalZeros","match","sign","zeros","num","numstr","_min","_max","_scale","_radix","_signed","_postFormat","_mapToRadix","map","_thousandsSeparator","PatternDefinition","_masked","isHollow","resolve","TYPES","INPUT","optional","PatternGroup","masked","offset","mapDefIndexToPos","RangeGroup","maxlen","_from","_to","_maxLength","_update","minstr","maxstr","placeholder","search","_matchFrom","Range","Enum","definitions","groups","_updateMask","defs","_definitions","_charDefs","_groupDefs","unmaskingBlock","optionalBlock","stopAlign","_this2","_groups","p","gNames","filter","gName","sort","char","FIXED","unmasking","STOP_CHAR","ESCAPE_CHAR","every","g","forEach","d","_this3","hiddenHollowsBefore","defIndex","isHiddenHollow","mapPosToDefIndex","di","def","_appendChunks","_appendPlaceholder","resolved","skipped","chres","chunks","fromDefIndex","input","extractInputChunks","toDefIndex","isInput","stopDefIndices","stops","s","_this4","stop","maxDefIndex","lazy","initialDefIndex","firstInputIndex","firstFilledInputIndex","firstVisibleHollowIndex","nextdi","nextDef","overflow","groupsByName","_placeholder","ph","DEFAULT_PLACEHOLDER","_this5","Definition","Group","format","parse","Y","getFullYear","_MaskedPattern","date","isComplete","isDateExist","getDate","getMonth","day","month","year","ActionDetails","oldValue","oldSelection","start","startChangePos","substr","insertedCount","end","removedCount","substring","RIGHT","_listeners","_unmaskedValue","_saveSelection","_onInput","_onChange","_onDrop","_alignCursor","_alignCursorFriendly","bindEvents","updateValue","addEventListener","unbindEvents","removeEventListener","fireEvent","ev","l","_selection","selectionStart","updateControl","newUnmaskedValue","newValue","isChanged","_fireChangeEvents","updateOptions","k","updateCursor","_delayUpdateCursor","_abortUpdateCursor","_changingCursorPos","_cursorChanging","setTimeout","on","handler","off","hIndex","splice","details","tailPos","removed","lastInputPos","removeDirection","inserted","preventDefault","stopPropagation","destroy","selectionEnd","activeElement","setSelectionRange"],"mappings":"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"} \ No newline at end of file diff --git a/dist/imask.min.js b/dist/imask.min.js index 26d942d6..317b3754 100644 --- a/dist/imask.min.js +++ b/dist/imask.min.js @@ -1,2 +1,2 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.IMask=e()}(this,function(){"use strict";function t(t,e){return e={exports:{}},t(e,e.exports),e.exports}function e(t){return"string"==typeof t||t instanceof String}function n(t,n){var u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return e(t)?t:t?n:u}function u(t,e){return e===gt.LEFT&&--t,t}function i(t,e,n){var u=n.set;n.set=function(){for(var t=arguments.length,e=Array(t),n=0;n1&&void 0!==arguments[1]?arguments[1]:{};return new It(t,e)}var p=t(function(t){var e=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=e)}),c=t(function(t){var e=t.exports={version:"2.4.0"};"number"==typeof __e&&(__e=e)}),f=function(t){return"object"==typeof t?null!==t:"function"==typeof t},d=function(t){if(!f(t))throw TypeError(t+" is not an object!");return t},v=function(t){try{return!!t()}catch(t){return!0}},m=!v(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}),g=p.document,y=f(g)&&f(g.createElement),A=function(t){return y?g.createElement(t):{}},_=!m&&!v(function(){return 7!=Object.defineProperty(A("div"),"a",{get:function(){return 7}}).a}),F=function(t,e){if(!f(t))return t;var n,u;if(e&&"function"==typeof(n=t.toString)&&!f(u=n.call(t)))return u;if("function"==typeof(n=t.valueOf)&&!f(u=n.call(t)))return u;if(!e&&"function"==typeof(n=t.toString)&&!f(u=n.call(t)))return u;throw TypeError("Can't convert object to primitive value")},D=Object.defineProperty,C={f:m?Object.defineProperty:function(t,e,n){if(d(t),e=F(e,!0),d(n),_)try{return D(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},E=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},k=m?function(t,e,n){return C.f(t,e,E(1,n))}:function(t,e,n){return t[e]=n,t},B={}.hasOwnProperty,b=function(t,e){return B.call(t,e)},x=0,P=Math.random(),T=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++x+P).toString(36))},w=t(function(t){var e=T("src"),n=Function.toString,u=(""+n).split("toString");c.inspectSource=function(t){return n.call(t)},(t.exports=function(t,n,i,r){var o="function"==typeof i;o&&(b(i,"name")||k(i,"name",n)),t[n]!==i&&(o&&(b(i,e)||k(i,e,t[n]?""+t[n]:u.join(String(n)))),t===p?t[n]=i:r?t[n]?t[n]=i:k(t,n,i):(delete t[n],k(t,n,i)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[e]||n.call(this)})}),S=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t},O=function(t,e,n){if(S(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,u){return t.call(e,n,u)};case 3:return function(n,u,i){return t.call(e,n,u,i)}}return function(){return t.apply(e,arguments)}},I=function(t,e,n){var u,i,r,o,s=t&I.F,a=t&I.G,h=t&I.S,l=t&I.P,f=t&I.B,d=a?p:h?p[e]||(p[e]={}):(p[e]||{}).prototype,v=a?c:c[e]||(c[e]={}),m=v.prototype||(v.prototype={});a&&(n=e);for(u in n)r=((i=!s&&d&&void 0!==d[u])?d:n)[u],o=f&&i?O(r,p):l&&"function"==typeof r?O(Function.call,r):r,d&&w(d,u,r,t&I.U),v[u]!=r&&k(v,u,o),l&&m[u]!=r&&(m[u]=r)};p.core=c,I.F=1,I.G=2,I.S=4,I.P=8,I.B=16,I.W=32,I.U=64,I.R=128;var j=I,R={}.toString,L=function(t){return R.call(t).slice(8,-1)},z=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==L(t)?t.split(""):Object(t)},H=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t},M=function(t){return Object(H(t))},U=Math.ceil,V=Math.floor,N=function(t){return isNaN(t=+t)?0:(t>0?V:U)(t)},Y=Math.min,Z=function(t){return t>0?Y(N(t),9007199254740991):0},W=Array.isArray||function(t){return"Array"==L(t)},$=p["__core-js_shared__"]||(p["__core-js_shared__"]={}),G=function(t){return $[t]||($[t]={})},X=t(function(t){var e=G("wks"),n=p.Symbol,u="function"==typeof n;(t.exports=function(t){return e[t]||(e[t]=u&&n[t]||(u?n:T)("Symbol."+t))}).store=e}),q=X("species"),J=function(t){var e;return W(t)&&("function"!=typeof(e=t.constructor)||e!==Array&&!W(e.prototype)||(e=void 0),f(e)&&null===(e=e[q])&&(e=void 0)),void 0===e?Array:e},K=function(t,e){return new(J(t))(e)},Q=X("unscopables"),tt=Array.prototype;void 0==tt[Q]&&k(tt,Q,{});var et=function(t,e){var n=1==t,u=2==t,i=3==t,r=4==t,o=6==t,s=5==t||o,a=e||K;return function(e,h,l){for(var p,c,f=M(e),d=z(f),v=O(h,l,3),m=Z(d.length),g=0,y=n?a(e,m):u?a(e,0):void 0;m>g;g++)if((s||g in d)&&(p=d[g],c=v(p,g,f),t))if(n)y[g]=c;else if(c)switch(t){case 3:return!0;case 5:return p;case 6:return g;case 2:y.push(p)}else if(r)return!1;return o?-1:i||r?r:y}}(5),nt=!0;"find"in[]&&Array(1).find(function(){nt=!1}),j(j.P+j.F*nt,"Array",{find:function(t){return et(this,t,arguments.length>1?arguments[1]:void 0)}}),function(t){tt[Q][t]=!0}("find");var ut=function(t){return z(H(t))},it=Math.max,rt=Math.min,ot=function(t,e){return(t=N(t))<0?it(t+e,0):rt(t,e)},st=G("keys"),at=function(t){return function(e,n,u){var i,r=ut(e),o=Z(r.length),s=ot(u,o);if(t&&n!=n){for(;o>s;)if((i=r[s++])!=i)return!0}else for(;o>s;s++)if((t||s in r)&&r[s]===n)return t||s||0;return!t&&-1}}(!1),ht=function(t){return st[t]||(st[t]=T(t))}("IE_PROTO"),lt=function(t,e){var n,u=ut(t),i=0,r=[];for(n in u)n!=ht&&b(u,n)&&r.push(n);for(;e.length>i;)b(u,n=e[i++])&&(~at(r,n)||r.push(n));return r},pt="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),ct=Object.keys||function(t){return lt(t,pt)};!function(t,e){var n=(c.Object||{})[t]||Object[t],u={};u[t]=e(n),j(j.S+j.F*v(function(){n(1)}),"Object",u)}("keys",function(){return function(t){return ct(M(t))}});var ft=function(t){var e=String(H(this)),n="",u=N(t);if(u<0||u==1/0)throw RangeError("Count can't be negative");for(;u>0;(u>>>=1)&&(e+=e))1&u&&(n+=e);return n};j(j.P,"String",{repeat:ft});var dt=function(t,e,n,u){var i=String(H(t)),r=i.length,o=void 0===n?" ":String(n),s=Z(e);if(s<=r||""==o)return i;var a=s-r,h=ft.call(o,Math.ceil(a/o.length));return h.length>a&&(h=h.slice(0,a)),u?h+i:i+h};j(j.P,"String",{padStart:function(t){return dt(this,t,arguments.length>1?arguments[1]:void 0,!0)}}),j(j.P,"String",{padEnd:function(t){return dt(this,t,arguments.length>1?arguments[1]:void 0,!1)}});var vt,mt,gt={NONE:0,LEFT:-1,RIGHT:1},yt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},At=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},_t=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;return this.value.slice(t,e)},t.prototype.extractTail=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;return this.extractInput(t,e)},t.prototype._appendTail=function(t){return!t||this._append(t)},t.prototype._append=function(t,e){for(var n=this.value.length,u=this.clone(),i=0;i0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;this._value=this.value.slice(0,t)+this.value.slice(e)},t.prototype.withValueRefresh=function(t){if(this._refreshing)return t();this._refreshing=!0;var e=this.isInitialized?this.unmaskedValue:null,n=t();return null!=e&&(this.unmaskedValue=e),delete this._refreshing,n},t.prototype.commit=function(){},_t(t,[{key:"mask",get:function(){return this._mask},set:function(t){this._mask=t}},{key:"value",get:function(){return this._value},set:function(t){this.reset(),this.appendWithTail(t),this.commit()}},{key:"unmaskedValue",get:function(){return this._unmask()},set:function(t){this.reset(),this._append(t),this.appendWithTail(""),this.commit()}},{key:"isComplete",get:function(){return!0}}]),t}(),function(t,e,n,u,i){var r={};Object.keys(u).forEach(function(t){r[t]=u[t]}),r.enumerable=!!r.enumerable,r.configurable=!!r.configurable,("value"in r||r.initializer)&&(r.writable=!0),r=n.slice().reverse().reduce(function(n,u){return u(t,e,n)||n},r),i&&void 0!==r.initializer&&(r.value=r.initializer?r.initializer.call(i):void 0,r.initializer=void 0),void 0===r.initializer&&(Object.defineProperty(t,e,r),r=null)}(vt.prototype,"mask",[i],Object.getOwnPropertyDescriptor(vt.prototype,"mask"),vt.prototype),vt),kt=(mt=function(t){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};At(this,e),n=Ft({},e.DEFAULTS,n);var u=Ct(this,t.call(this,n));delete u.isInitialized;var i=n,r=i.scale,o=i.radix,s=i.mapToRadix,a=i.min,h=i.max,l=i.signed,p=i.thousandsSeparator,c=i.postFormat;return u.min=a,u.max=h,u.scale=r,u.radix=o,u.mapToRadix=s,u.signed=l,u.thousandsSeparator=p,u.postFormat=c,u._updateNumberRegExp(),u.isInitialized=!0,u}return Dt(e,t),e.prototype._updateNumberRegExp=function(){var t="^",e="^";this.signed?(t+="([+|\\-]?|([+|\\-]?(0|([1-9]+\\d*))))",e+="[+|\\-]?"):t+="(0|([1-9]+\\d*))",e+="\\d*",this.scale&&(t+="("+this.radix+"\\d{0,"+this.scale+"})?",e+="("+this.radix+"\\d{0,"+this.scale+"})?"),t+="$",e+="$",this._numberRegExpSoft=new RegExp(t),this._numberRegExp=new RegExp(e)},e.prototype.extractTail=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;return this._removeThousandsSeparators(t.prototype.extractTail.call(this,e,n))},e.prototype._removeThousandsSeparators=function(t){return t.replace(this._thousandsSeparatorRegExp,"")},e.prototype._insertThousandsSeparators=function(t){var e=t.split(this.radix);return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,this.thousandsSeparator),e.join(this.radix)},e.prototype._append=function(e,n){return t.prototype._append.call(this,this._removeThousandsSeparators(e.replace(this._mapToRadixRegExp,this.radix)),n)},e.prototype.appendWithTail=function(e,n){var u=this.value.length;this._value=this._removeThousandsSeparators(this.value);var i=u-this.value.length,r=t.prototype.appendWithTail.call(this,e,n);this._value=this._insertThousandsSeparators(this.value);var o=u+r-i;this._value=this._insertThousandsSeparators(this.value);for(var s=0,a=0;a<=o;++a)this.value[a]===this.thousandsSeparator&&(++s,++o);return r-i+s},e.prototype.nearestInputPos=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:gt.LEFT;if(!e)return t;var n=u(t,e);return this.value[n]===this.thousandsSeparator&&(t+=e),t},e.prototype._validate=function(e){var n=(e?this._numberRegExpSoft:this._numberRegExp).test(this._removeThousandsSeparators(this.value));if(n){var u=this.number;n=n&&!isNaN(u)&&(null==this.min||this.min>=0||this.min<=this.number)&&(null==this.max||this.max<=0||this.number<=this.max)}return n&&t.prototype._validate.call(this,e)},e.prototype.commit=function(){var t=this.number,e=t;null!=this.min&&(e=Math.max(e,this.min)),null!=this.max&&(e=Math.min(e,this.max)),e!==t&&(this.unmaskedValue=""+e);var n=this.value;this.postFormat.normalizeZeros&&(n=this._normalizeZeros(n)),this.postFormat.padFractionalZeros&&(n=this._padFractionalZeros(n)),this._value=n},e.prototype._normalizeZeros=function(t){var e=this._removeThousandsSeparators(t).split(this.radix);return e[0]=e[0].replace(/^(\D*)(0*)(\d*)/,function(t,e,n,u){return e+u}),t.length&&!/\d$/.test(e[0])&&(e[0]=e[0]+"0"),e.length>1&&(e[1]=e[1].replace(/0*$/,""),e[1].length||(e.length=1)),this._insertThousandsSeparators(e.join(this.radix))},e.prototype._padFractionalZeros=function(t){var e=t.split(this.radix);return e.length<2&&e.push(""),e[1]=e[1].padEnd(this.scale,"0"),e.join(this.radix)},_t(e,[{key:"number",get:function(){var t=this._removeThousandsSeparators(this._normalizeZeros(this.unmaskedValue)).replace(this.radix,".");return Number(t)},set:function(t){this.unmaskedValue=""+t}},{key:"min",get:function(){return this._min},set:function(t){this._min=t}},{key:"max",get:function(){return this._max},set:function(t){this._max=t}},{key:"scale",get:function(){return this._scale},set:function(t){this._scale=t}},{key:"radix",get:function(){return this._radix},set:function(t){this._radix=t,this._updateNumberRegExp()}},{key:"signed",get:function(){return this._signed||null!=this.min&&this.min<0||null!=this.max&&this.max<0},set:function(t){this._signed=t}},{key:"postFormat",get:function(){return this._postFormat},set:function(t){this._postFormat=Ft({},e.DEFAULTS.postFormat,t)}},{key:"mapToRadix",get:function(){return this._mapToRadix},set:function(t){this._mapToRadix=t,this._mapToRadixRegExp=new RegExp("["+t.map(r).join("")+"]","g")}},{key:"thousandsSeparator",get:function(){return this._thousandsSeparator},set:function(t){this._thousandsSeparator=t,this._thousandsSeparatorRegExp=new RegExp(r(t),"g")}}]),e}(Et),o(mt.prototype,"min",[i],Object.getOwnPropertyDescriptor(mt.prototype,"min"),mt.prototype),o(mt.prototype,"max",[i],Object.getOwnPropertyDescriptor(mt.prototype,"max"),mt.prototype),o(mt.prototype,"scale",[i],Object.getOwnPropertyDescriptor(mt.prototype,"scale"),mt.prototype),o(mt.prototype,"radix",[i],Object.getOwnPropertyDescriptor(mt.prototype,"radix"),mt.prototype),o(mt.prototype,"signed",[i],Object.getOwnPropertyDescriptor(mt.prototype,"signed"),mt.prototype),o(mt.prototype,"postFormat",[i],Object.getOwnPropertyDescriptor(mt.prototype,"postFormat"),mt.prototype),o(mt.prototype,"mapToRadix",[i],Object.getOwnPropertyDescriptor(mt.prototype,"mapToRadix"),mt.prototype),o(mt.prototype,"thousandsSeparator",[i],Object.getOwnPropertyDescriptor(mt.prototype,"thousandsSeparator"),mt.prototype),mt);kt.DEFAULTS={radix:",",thousandsSeparator:"",mapToRadix:["."],scale:2,postFormat:{normalizeZeros:!0}};var Bt=function(){function t(e){At(this,t),Ft(this,e),this.mask&&(this._masked=s(e))}return t.prototype.reset=function(){this.isHollow=!1,this._masked&&this._masked.reset()},t.prototype.resolve=function(t){return!!this._masked&&(this._masked.value=t,this._masked.value)},_t(t,[{key:"isInput",get:function(){return this.type===t.TYPES.INPUT}},{key:"isHiddenHollow",get:function(){return this.isHollow&&this.optional}}]),t}();Bt.DEFAULTS={0:/\d/,a:/[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,"*":/./},Bt.TYPES={INPUT:"input",FIXED:"fixed"};var bt=function(){function t(e,n){var u=n.name,i=n.offset,r=n.mask,o=n.validate;At(this,t),this.masked=e,this.name=u,this.offset=i,this.mask=r,this.validate=o||function(){return!0}}return t.prototype._validate=function(t){return this.validate(this.value,this,t)},_t(t,[{key:"value",get:function(){return this.masked.value.slice(this.masked.mapDefIndexToPos(this.offset),this.masked.mapDefIndexToPos(this.offset+this.mask.length))}},{key:"unmaskedValue",get:function(){return this.masked.extractInput(this.masked.mapDefIndexToPos(this.offset),this.masked.mapDefIndexToPos(this.offset+this.mask.length))}}]),t}(),xt=function(){function t(e){var n=e[0],u=e[1],i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(u+"").length;At(this,t),this._from=n,this._to=u,this._maxLength=i,this.validate=this.validate.bind(this),this._update()}return t.prototype._update=function(){this._maxLength=Math.max(this._maxLength,(this.to+"").length),this.mask="0".repeat(this._maxLength)},t.prototype.validate=function(t){var e="",n="",u=t.match(/^(\D*)(\d*)(\D*)/),i=u[1],r=u[2];return r&&(e="0".repeat(i.length)+r,n="9".repeat(i.length)+r),-1===t.search(/[^0]/)&&t.length<=this._matchFrom||(e=e.padEnd(this._maxLength,"0"),n=n.padEnd(this._maxLength,"9"),this.from<=Number(n)&&Number(e)<=this.to)},_t(t,[{key:"to",get:function(){return this._to},set:function(t){this._to=t,this._update()}},{key:"from",get:function(){return this._from},set:function(t){this._from=t,this._update()}},{key:"maxLength",get:function(){return this._maxLength},set:function(t){this._maxLength=t,this._update()}},{key:"_matchFrom",get:function(){return this.maxLength-(this.from+"").length}}]),t}();bt.Range=xt,bt.Enum=function(t){return{mask:"*".repeat(t[0].length),validate:function(e,n){return t.some(function(t){return t.indexOf(n.unmaskedValue)>=0})}}};var Pt,Tt=(Pt=function(t){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};At(this,e);var u=n.definitions,i=n.placeholder,r=n.groups,o=Ct(this,t.call(this,n));return delete o.isInitialized,o.placeholder=i,o.definitions=u,o.groups=r,o.isInitialized=!0,o}return Dt(e,t),e.prototype._updateMask=function(){var t=this,n=this._definitions;this._charDefs=[],this._groupDefs=[];var u=this.mask;if(u&&n){var i=!1,r=!1,o=!1;t:for(var s=0;s=e)break;u.isHiddenHollow&&++e}return e}},e.prototype._unmask=function(){for(var t=this.value,e="",n=0,u=0;n0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,n=this.value,u="",i=this.mapPosToDefIndex(e),r=t,o=this.mapPosToDefIndex(t);r0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,u=this.mapPosToDefIndex(e),i=this.mapPosToDefIndex(n),r=this._charDefs.map(function(t,e){return[t,e]}).slice(u,i).filter(function(t){return t[0].stopAlign}).map(function(t){return t[1]}),o=[u].concat(r,[i]);return o.map(function(e,n){return[r.indexOf(e)>=0?e:null,t.extractInput(t.mapDefIndexToPos(e),t.mapDefIndexToPos(o[++n]))]}).filter(function(t){var e=t[0],n=t[1];return null!=e||n})},e.prototype._appendPlaceholder=function(t){for(var e=t||this._charDefs.length,n=this.mapPosToDefIndex(this.value.length);n0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;this._value=this.value.slice(0,t)+this.value.slice(e);var n=this.mapPosToDefIndex(t),u=this.mapPosToDefIndex(e);this._charDefs.slice(n,u).forEach(function(t){return t.reset()})},e.prototype.nearestInputPos=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:gt.LEFT;if(!e)return t;var n=this.mapPosToDefIndex(t),i=n,r=void 0,o=void 0,s=void 0,a=void 0;for(a=u(i,e);0<=a&&a=this._charDefs.length)&&null!=r&&(i=r)}else null==o&&(i=null!=s?s:r);return this.mapDefIndexToPos(i)},e.prototype.group=function(t){return this.groupsByName(t)[0]},e.prototype.groupsByName=function(t){return this._groupDefs.filter(function(e){return e.name===t})},_t(e,[{key:"placeholder",get:function(){return this._placeholder},set:function(t){this._placeholder=Ft({},e.DEFAULT_PLACEHOLDER,t)}},{key:"definitions",get:function(){return this._definitions},set:function(t){t=Ft({},Bt.DEFAULTS,t),this._definitions=t,this._updateMask()}},{key:"mask",get:function(){return this._mask},set:function(t){this._mask=t,this._updateMask()}},{key:"isComplete",get:function(){var t=this;return!this._charDefs.some(function(e,n){return e.isInput&&!e.optional&&(e.isHollow||!t.extractInput(n,n+1))})}},{key:"groups",get:function(){return this._groups},set:function(t){this._groups=t,this._updateMask()}}]),e}(Et),a(Pt.prototype,"placeholder",[i],Object.getOwnPropertyDescriptor(Pt.prototype,"placeholder"),Pt.prototype),a(Pt.prototype,"definitions",[i],Object.getOwnPropertyDescriptor(Pt.prototype,"definitions"),Pt.prototype),a(Pt.prototype,"mask",[i],Object.getOwnPropertyDescriptor(Pt.prototype,"mask"),Pt.prototype),a(Pt.prototype,"groups",[i],Object.getOwnPropertyDescriptor(Pt.prototype,"groups"),Pt.prototype),Pt);Tt.DEFAULT_PLACEHOLDER={lazy:!0,char:"_"},Tt.STOP_CHAR="`",Tt.ESCAPE_CHAR="\\",Tt.Definition=Bt,Tt.Group=bt;var wt,St=(wt=function(t){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};At(this,e);var u=n.groups,i=n=Ft({},e.DEFAULTS,n),r=i.min,o=i.max,s=i.format,a=i.parse;n.groups=Ft({},e.DEFAULTS.groups),n.groups.Y&&(r&&(n.groups.Y.from=r.getFullYear()),o&&(n.groups.Y.to=o.getFullYear())),Ft(n.groups,u);var h=Ct(this,t.call(this,n));return delete h.isInitialized,h.min=r,h.max=o,h.format=s,h.parse=a,h.isInitialized=!0,h}return Dt(e,t),e.prototype._validate=function(e){var n=t.prototype._validate.call(this,e),u=this.date;return n&&(!this.isComplete||this.isDateExist(this.value)&&u&&(null==this.min||this.min<=u)&&(null==this.max||u<=this.max))},e.prototype.isDateExist=function(t){return this.format(this.parse(t))===t},_t(e,[{key:"date",get:function(){return this.isComplete?this.parse(this.value):null},set:function(t){this.value=this.format(t)}},{key:"min",get:function(){return this._min},set:function(t){this._min=t}},{key:"max",get:function(){return this._max},set:function(t){this._max=t}}]),e}(Tt),h(wt.prototype,"min",[i],Object.getOwnPropertyDescriptor(wt.prototype,"min"),wt.prototype),h(wt.prototype,"max",[i],Object.getOwnPropertyDescriptor(wt.prototype,"max"),wt.prototype),wt);St.DEFAULTS={mask:"d{.}`m{.}`Y",format:function(t){return[(""+t.getDate()).padStart(2,"0"),(""+(t.getMonth()+1)).padStart(2,"0"),t.getFullYear()].join(".")},parse:function(t){var e=t.split("."),n=e[0],u=e[1],i=e[2];return new Date(i,u-1,n)},groups:{d:new bt.Range([1,31]),m:new bt.Range([1,12]),Y:new bt.Range([1900,9999])}};var Ot=function(){function t(e,n,u,i){At(this,t),this.value=e,this.cursorPos=n,this.oldValue=u,this.oldSelection=i}return _t(t,[{key:"startChangePos",get:function(){return Math.min(this.cursorPos,this.oldSelection.start)}},{key:"insertedCount",get:function(){return this.cursorPos-this.startChangePos}},{key:"inserted",get:function(){return this.value.substr(this.startChangePos,this.insertedCount)}},{key:"removedCount",get:function(){return Math.max(this.oldSelection.end-this.startChangePos||this.oldValue.length-this.value.length,0)}},{key:"removed",get:function(){return this.oldValue.substr(this.startChangePos,this.removedCount)}},{key:"head",get:function(){return this.value.substring(0,this.startChangePos)}},{key:"tail",get:function(){this.value.substring(this.startChangePos+this.insertedCount)}},{key:"removeDirection",get:function(){return this.removedCount&&(this.oldSelection.end===this.cursorPos||this.insertedCount?gt.RIGHT:gt.LEFT)}}]),t}(),It=function(){function t(e,n){At(this,t),this.el=e,this.masked=s(n),this._listeners={},this._value="",this._unmaskedValue="",this._saveSelection=this._saveSelection.bind(this),this._onInput=this._onInput.bind(this),this._onChange=this._onChange.bind(this),this._onDrop=this._onDrop.bind(this),this._alignCursor=this._alignCursor.bind(this),this._alignCursorFriendly=this._alignCursorFriendly.bind(this),this.bindEvents(),this.updateValue(),this._onChange()}return t.prototype.bindEvents=function(){this.el.addEventListener("keydown",this._saveSelection),this.el.addEventListener("input",this._onInput),this.el.addEventListener("drop",this._onDrop),this.el.addEventListener("click",this._alignCursorFriendly),this.el.addEventListener("change",this._onChange)},t.prototype.unbindEvents=function(){this.el.removeEventListener("keydown",this._saveSelection),this.el.removeEventListener("input",this._onInput),this.el.removeEventListener("drop",this._onDrop),this.el.removeEventListener("click",this._alignCursorFriendly),this.el.removeEventListener("change",this._onChange)},t.prototype.fireEvent=function(t){(this._listeners[t]||[]).forEach(function(t){return t()})},t.prototype._saveSelection=function(){this.value!==this.el.value&&console.warn("Uncontrolled input change, refresh mask manually!"),this._selection={start:this.selectionStart,end:this.cursorPos}},t.prototype.updateValue=function(){this.masked.value=this.el.value},t.prototype.updateControl=function(){var t=this.masked.unmaskedValue,e=this.masked.value,n=this.unmaskedValue!==t||this.value!==e;this._unmaskedValue=t,this._value=e,this.el.value!==e&&(this.el.value=e),n&&this._fireChangeEvents()},t.prototype.updateOptions=function(t){var e=this,n=t.mask;n&&(this.mask=n),this.masked.withValueRefresh(function(){for(var n in t)"mask"!==n&&(e.masked[n]=t[n])}),this.updateControl()},t.prototype.updateCursor=function(t){null!=t&&(this.cursorPos=t,this._delayUpdateCursor(t))},t.prototype._delayUpdateCursor=function(t){var e=this;this._abortUpdateCursor(),this._changingCursorPos=t,this._cursorChanging=setTimeout(function(){e.cursorPos=e._changingCursorPos,e._abortUpdateCursor()},10)},t.prototype._fireChangeEvents=function(){this.fireEvent("accept"),this.masked.isComplete&&this.fireEvent("complete")},t.prototype._abortUpdateCursor=function(){this._cursorChanging&&(clearTimeout(this._cursorChanging),delete this._cursorChanging)},t.prototype._alignCursor=function(){this.cursorPos=this.masked.nearestInputPos(this.cursorPos)},t.prototype._alignCursorFriendly=function(){this.selectionStart===this.cursorPos&&this._alignCursor()},t.prototype.on=function(t,e){return this._listeners[t]||(this._listeners[t]=[]),this._listeners[t].push(e),this},t.prototype.off=function(t,e){if(this._listeners[t]){if(e){var n=this._listeners[t].indexOf(e);return n>=0&&this._listeners.splice(n,1),this}delete this._listeners[t]}},t.prototype._onInput=function(){this._abortUpdateCursor();var t=new Ot(this.el.value,this.cursorPos,this.value,this._selection),e=t.startChangePos+t.removed.length,n=this.masked.extractTail(e),u=this.masked.nearestInputPos(t.startChangePos,t.removeDirection);this.masked.clear(u);var i=this.masked.appendWithTail(t.inserted,n),r=this.masked.nearestInputPos(u+i,t.removeDirection);this.updateControl(),this.updateCursor(r)},t.prototype._onChange=function(){this.value!==this.el.value&&this.updateValue(),this.masked.commit(),this.updateControl()},t.prototype._onDrop=function(t){t.preventDefault(),t.stopPropagation()},t.prototype.destroy=function(){this.unbindEvents(),this._listeners.length=0},_t(t,[{key:"mask",get:function(){return this.masked.mask},set:function(t){if((void 0===t?"undefined":yt(t))!==yt(this.masked.mask)){var e=this.masked?this.masked.unmaskedValue:null;this.masked=s({mask:t}),null!=e&&(this.masked.unmaskedValue=e)}else this.masked.mask=t}},{key:"value",get:function(){return this._value},set:function(t){this.masked.value=t,this.updateControl(),this._alignCursor()}},{key:"unmaskedValue",get:function(){return this._unmaskedValue},set:function(t){this.masked.unmaskedValue=t,this.updateControl(),this._alignCursor()}},{key:"selectionStart",get:function(){return this._cursorChanging?this._changingCursorPos:this.el.selectionStart}},{key:"cursorPos",get:function(){return this._cursorChanging?this._changingCursorPos:this.el.selectionEnd},set:function(t){this.el===document.activeElement&&(this.el.setSelectionRange(t,t),this._saveSelection())}}]),t}();return l.InputMask=It,l.Masked=Et,l.MaskedPattern=Tt,l.MaskedNumber=kt,l.MaskedDate=St,window.IMask=l,l}); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.IMask=e()}(this,function(){"use strict";function t(t,e){return e={exports:{}},t(e,e.exports),e.exports}function e(t){return"string"==typeof t||t instanceof String}function n(t,n){var u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return e(t)?t:t?n:u}function u(t,e){return e===yt.LEFT&&--t,t}function i(t,e,n){var u=n.set;n.set=function(){for(var t=arguments.length,e=Array(t),n=0;n1&&void 0!==arguments[1]?arguments[1]:{};return new jt(t,e)}var c=t(function(t){var e=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=e)}),f=t(function(t){var e=t.exports={version:"2.4.0"};"number"==typeof __e&&(__e=e)}),d=function(t){return"object"==typeof t?null!==t:"function"==typeof t},v=function(t){if(!d(t))throw TypeError(t+" is not an object!");return t},m=function(t){try{return!!t()}catch(t){return!0}},g=!m(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}),y=c.document,A=d(y)&&d(y.createElement),_=function(t){return A?y.createElement(t):{}},F=!g&&!m(function(){return 7!=Object.defineProperty(_("div"),"a",{get:function(){return 7}}).a}),D=function(t,e){if(!d(t))return t;var n,u;if(e&&"function"==typeof(n=t.toString)&&!d(u=n.call(t)))return u;if("function"==typeof(n=t.valueOf)&&!d(u=n.call(t)))return u;if(!e&&"function"==typeof(n=t.toString)&&!d(u=n.call(t)))return u;throw TypeError("Can't convert object to primitive value")},C=Object.defineProperty,E={f:g?Object.defineProperty:function(t,e,n){if(v(t),e=D(e,!0),v(n),F)try{return C(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},k=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},B=g?function(t,e,n){return E.f(t,e,k(1,n))}:function(t,e,n){return t[e]=n,t},b={}.hasOwnProperty,x=function(t,e){return b.call(t,e)},P=0,w=Math.random(),T=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++P+w).toString(36))},S=t(function(t){var e=T("src"),n=Function.toString,u=(""+n).split("toString");f.inspectSource=function(t){return n.call(t)},(t.exports=function(t,n,i,r){var o="function"==typeof i;o&&(x(i,"name")||B(i,"name",n)),t[n]!==i&&(o&&(x(i,e)||B(i,e,t[n]?""+t[n]:u.join(String(n)))),t===c?t[n]=i:r?t[n]?t[n]=i:B(t,n,i):(delete t[n],B(t,n,i)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[e]||n.call(this)})}),O=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t},I=function(t,e,n){if(O(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,u){return t.call(e,n,u)};case 3:return function(n,u,i){return t.call(e,n,u,i)}}return function(){return t.apply(e,arguments)}},j=function(t,e,n){var u,i,r,o,s=t&j.F,a=t&j.G,h=t&j.S,l=t&j.P,p=t&j.B,d=a?c:h?c[e]||(c[e]={}):(c[e]||{}).prototype,v=a?f:f[e]||(f[e]={}),m=v.prototype||(v.prototype={});a&&(n=e);for(u in n)r=((i=!s&&d&&void 0!==d[u])?d:n)[u],o=p&&i?I(r,c):l&&"function"==typeof r?I(Function.call,r):r,d&&S(d,u,r,t&j.U),v[u]!=r&&B(v,u,o),l&&m[u]!=r&&(m[u]=r)};c.core=f,j.F=1,j.G=2,j.S=4,j.P=8,j.B=16,j.W=32,j.U=64,j.R=128;var R=j,L={}.toString,z=function(t){return L.call(t).slice(8,-1)},V=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==z(t)?t.split(""):Object(t)},H=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t},M=function(t){return Object(H(t))},U=Math.ceil,N=Math.floor,Y=function(t){return isNaN(t=+t)?0:(t>0?N:U)(t)},Z=Math.min,W=function(t){return t>0?Z(Y(t),9007199254740991):0},$=Array.isArray||function(t){return"Array"==z(t)},G=c["__core-js_shared__"]||(c["__core-js_shared__"]={}),X=function(t){return G[t]||(G[t]={})},q=t(function(t){var e=X("wks"),n=c.Symbol,u="function"==typeof n;(t.exports=function(t){return e[t]||(e[t]=u&&n[t]||(u?n:T)("Symbol."+t))}).store=e}),J=q("species"),K=function(t){var e;return $(t)&&("function"!=typeof(e=t.constructor)||e!==Array&&!$(e.prototype)||(e=void 0),d(e)&&null===(e=e[J])&&(e=void 0)),void 0===e?Array:e},Q=function(t,e){return new(K(t))(e)},tt=q("unscopables"),et=Array.prototype;void 0==et[tt]&&B(et,tt,{});var nt=function(t,e){var n=1==t,u=2==t,i=3==t,r=4==t,o=6==t,s=5==t||o,a=e||Q;return function(e,h,l){for(var p,c,f=M(e),d=V(f),v=I(h,l,3),m=W(d.length),g=0,y=n?a(e,m):u?a(e,0):void 0;m>g;g++)if((s||g in d)&&(p=d[g],c=v(p,g,f),t))if(n)y[g]=c;else if(c)switch(t){case 3:return!0;case 5:return p;case 6:return g;case 2:y.push(p)}else if(r)return!1;return o?-1:i||r?r:y}}(5),ut=!0;"find"in[]&&Array(1).find(function(){ut=!1}),R(R.P+R.F*ut,"Array",{find:function(t){return nt(this,t,arguments.length>1?arguments[1]:void 0)}}),function(t){et[tt][t]=!0}("find");var it=function(t){return V(H(t))},rt=Math.max,ot=Math.min,st=function(t,e){return(t=Y(t))<0?rt(t+e,0):ot(t,e)},at=X("keys"),ht=function(t){return function(e,n,u){var i,r=it(e),o=W(r.length),s=st(u,o);if(t&&n!=n){for(;o>s;)if((i=r[s++])!=i)return!0}else for(;o>s;s++)if((t||s in r)&&r[s]===n)return t||s||0;return!t&&-1}}(!1),lt=function(t){return at[t]||(at[t]=T(t))}("IE_PROTO"),pt=function(t,e){var n,u=it(t),i=0,r=[];for(n in u)n!=lt&&x(u,n)&&r.push(n);for(;e.length>i;)x(u,n=e[i++])&&(~ht(r,n)||r.push(n));return r},ct="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),ft=Object.keys||function(t){return pt(t,ct)};!function(t,e){var n=(f.Object||{})[t]||Object[t],u={};u[t]=e(n),R(R.S+R.F*m(function(){n(1)}),"Object",u)}("keys",function(){return function(t){return ft(M(t))}});var dt=function(t){var e=String(H(this)),n="",u=Y(t);if(u<0||u==1/0)throw RangeError("Count can't be negative");for(;u>0;(u>>>=1)&&(e+=e))1&u&&(n+=e);return n};R(R.P,"String",{repeat:dt});var vt=function(t,e,n,u){var i=String(H(t)),r=i.length,o=void 0===n?" ":String(n),s=W(e);if(s<=r||""==o)return i;var a=s-r,h=dt.call(o,Math.ceil(a/o.length));return h.length>a&&(h=h.slice(0,a)),u?h+i:i+h};R(R.P,"String",{padStart:function(t){return vt(this,t,arguments.length>1?arguments[1]:void 0,!0)}}),R(R.P,"String",{padEnd:function(t){return vt(this,t,arguments.length>1?arguments[1]:void 0,!1)}});var mt,gt,yt={NONE:0,LEFT:-1,RIGHT:1},At="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_t=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},Ft=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;return this.value.slice(t,e)},t.prototype.extractTail=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;return this.extractInput(t,e)},t.prototype._appendTail=function(t){return!t||this._append(t)},t.prototype._append=function(t,e){var n=this.value.length,u=this.clone();t=this.doPrepare(t,e);for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;this._value=this.value.slice(0,t)+this.value.slice(e)},t.prototype.withValueRefresh=function(t){if(this._refreshing)return t();this._refreshing=!0;var e=this.isInitialized?this.unmaskedValue:null,n=t();return null!=e&&(this.unmaskedValue=e),delete this._refreshing,n},t.prototype.doPrepare=function(t,e){return this.prepare(t,this,e)},t.prototype.doValidate=function(t){return this.validate(this.value,this,t)},t.prototype.doCommit=function(){this.commit(this.value,this)},Ft(t,[{key:"mask",get:function(){return this._mask},set:function(t){this._mask=t}},{key:"prepare",get:function(){return this._prepare},set:function(t){this._prepare=t}},{key:"validate",get:function(){return this._validate},set:function(t){this._validate=t}},{key:"commit",get:function(){return this._commit},set:function(t){this._commit=t}},{key:"value",get:function(){return this._value},set:function(t){this.reset(),this.appendWithTail(t),this.doCommit()}},{key:"unmaskedValue",get:function(){return this._unmask()},set:function(t){this.reset(),this._append(t),this.appendWithTail(""),this.doCommit()}},{key:"isComplete",get:function(){return!0}}]),t}(),o(mt.prototype,"mask",[i],Object.getOwnPropertyDescriptor(mt.prototype,"mask"),mt.prototype),o(mt.prototype,"prepare",[i],Object.getOwnPropertyDescriptor(mt.prototype,"prepare"),mt.prototype),o(mt.prototype,"validate",[i],Object.getOwnPropertyDescriptor(mt.prototype,"validate"),mt.prototype),o(mt.prototype,"commit",[i],Object.getOwnPropertyDescriptor(mt.prototype,"commit"),mt.prototype),mt),Bt=(gt=function(t){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_t(this,e),n=Dt({},e.DEFAULTS,n);var u=Et(this,t.call(this,n));delete u.isInitialized;var i=n,r=i.scale,o=i.radix,s=i.mapToRadix,a=i.min,h=i.max,l=i.signed,p=i.thousandsSeparator,c=i.postFormat;return u.min=a,u.max=h,u.scale=r,u.radix=o,u.mapToRadix=s,u.signed=l,u.thousandsSeparator=p,u.postFormat=c,u._updateNumberRegExp(),u.isInitialized=!0,u}return Ct(e,t),e.prototype._updateNumberRegExp=function(){var t="^",e="^";this.signed?(t+="([+|\\-]?|([+|\\-]?(0|([1-9]+\\d*))))",e+="[+|\\-]?"):t+="(0|([1-9]+\\d*))",e+="\\d*",this.scale&&(t+="("+this.radix+"\\d{0,"+this.scale+"})?",e+="("+this.radix+"\\d{0,"+this.scale+"})?"),t+="$",e+="$",this._numberRegExpSoft=new RegExp(t),this._numberRegExp=new RegExp(e)},e.prototype.extractTail=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;return this._removeThousandsSeparators(t.prototype.extractTail.call(this,e,n))},e.prototype._removeThousandsSeparators=function(t){return t.replace(this._thousandsSeparatorRegExp,"")},e.prototype._insertThousandsSeparators=function(t){var e=t.split(this.radix);return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,this.thousandsSeparator),e.join(this.radix)},e.prototype.doPrepare=function(e,n){return t.prototype.doPrepare.call(this,this._removeThousandsSeparators(e.replace(this._mapToRadixRegExp,this.radix)),n)},e.prototype.appendWithTail=function(e,n){var u=this.value.length;this._value=this._removeThousandsSeparators(this.value);var i=u-this.value.length,r=t.prototype.appendWithTail.call(this,e,n);this._value=this._insertThousandsSeparators(this.value);var o=u+r-i;this._value=this._insertThousandsSeparators(this.value);for(var s=0,a=0;a<=o;++a)this.value[a]===this.thousandsSeparator&&(++s,++o);return r-i+s},e.prototype.nearestInputPos=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:yt.LEFT;if(!e)return t;var n=u(t,e);return this.value[n]===this.thousandsSeparator&&(t+=e),t},e.prototype.doValidate=function(e){var n=(e?this._numberRegExpSoft:this._numberRegExp).test(this._removeThousandsSeparators(this.value));if(n){var u=this.number;n=n&&!isNaN(u)&&(null==this.min||this.min>=0||this.min<=this.number)&&(null==this.max||this.max<=0||this.number<=this.max)}return n&&t.prototype.doValidate.call(this,e)},e.prototype.doCommit=function(){var e=this.number,n=e;null!=this.min&&(n=Math.max(n,this.min)),null!=this.max&&(n=Math.min(n,this.max)),n!==e&&(this.unmaskedValue=""+n);var u=this.value;this.postFormat.normalizeZeros&&(u=this._normalizeZeros(u)),this.postFormat.padFractionalZeros&&(u=this._padFractionalZeros(u)),this._value=u,t.prototype.doCommit.call(this)},e.prototype._normalizeZeros=function(t){var e=this._removeThousandsSeparators(t).split(this.radix);return e[0]=e[0].replace(/^(\D*)(0*)(\d*)/,function(t,e,n,u){return e+u}),t.length&&!/\d$/.test(e[0])&&(e[0]=e[0]+"0"),e.length>1&&(e[1]=e[1].replace(/0*$/,""),e[1].length||(e.length=1)),this._insertThousandsSeparators(e.join(this.radix))},e.prototype._padFractionalZeros=function(t){var e=t.split(this.radix);return e.length<2&&e.push(""),e[1]=e[1].padEnd(this.scale,"0"),e.join(this.radix)},Ft(e,[{key:"number",get:function(){var t=this._removeThousandsSeparators(this._normalizeZeros(this.unmaskedValue)).replace(this.radix,".");return Number(t)},set:function(t){this.unmaskedValue=""+t}},{key:"min",get:function(){return this._min},set:function(t){this._min=t}},{key:"max",get:function(){return this._max},set:function(t){this._max=t}},{key:"scale",get:function(){return this._scale},set:function(t){this._scale=t}},{key:"radix",get:function(){return this._radix},set:function(t){this._radix=t,this._updateNumberRegExp()}},{key:"signed",get:function(){return this._signed||null!=this.min&&this.min<0||null!=this.max&&this.max<0},set:function(t){this._signed=t}},{key:"postFormat",get:function(){return this._postFormat},set:function(t){this._postFormat=Dt({},e.DEFAULTS.postFormat,t)}},{key:"mapToRadix",get:function(){return this._mapToRadix},set:function(t){this._mapToRadix=t,this._mapToRadixRegExp=new RegExp("["+t.map(r).join("")+"]","g")}},{key:"thousandsSeparator",get:function(){return this._thousandsSeparator},set:function(t){this._thousandsSeparator=t,this._thousandsSeparatorRegExp=new RegExp(r(t),"g")}}]),e}(kt),s(gt.prototype,"min",[i],Object.getOwnPropertyDescriptor(gt.prototype,"min"),gt.prototype),s(gt.prototype,"max",[i],Object.getOwnPropertyDescriptor(gt.prototype,"max"),gt.prototype),s(gt.prototype,"scale",[i],Object.getOwnPropertyDescriptor(gt.prototype,"scale"),gt.prototype),s(gt.prototype,"radix",[i],Object.getOwnPropertyDescriptor(gt.prototype,"radix"),gt.prototype),s(gt.prototype,"signed",[i],Object.getOwnPropertyDescriptor(gt.prototype,"signed"),gt.prototype),s(gt.prototype,"postFormat",[i],Object.getOwnPropertyDescriptor(gt.prototype,"postFormat"),gt.prototype),s(gt.prototype,"mapToRadix",[i],Object.getOwnPropertyDescriptor(gt.prototype,"mapToRadix"),gt.prototype),s(gt.prototype,"thousandsSeparator",[i],Object.getOwnPropertyDescriptor(gt.prototype,"thousandsSeparator"),gt.prototype),gt);Bt.DEFAULTS={radix:",",thousandsSeparator:"",mapToRadix:["."],scale:2,postFormat:{normalizeZeros:!0}};var bt=function(){function t(e){_t(this,t),Dt(this,e),this.mask&&(this._masked=a(e))}return t.prototype.reset=function(){this.isHollow=!1,this._masked&&this._masked.reset()},t.prototype.resolve=function(t){return!!this._masked&&(this._masked.value=t,this._masked.value)},Ft(t,[{key:"isInput",get:function(){return this.type===t.TYPES.INPUT}},{key:"isHiddenHollow",get:function(){return this.isHollow&&this.optional}}]),t}();bt.DEFAULTS={0:/\d/,a:/[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,"*":/./},bt.TYPES={INPUT:"input",FIXED:"fixed"};var xt=function(){function t(e,n){var u=n.name,i=n.offset,r=n.mask,o=n.validate;_t(this,t),this.masked=e,this.name=u,this.offset=i,this.mask=r,this.validate=o||function(){return!0}}return t.prototype.doValidate=function(t){return this.validate(this.value,this,t)},Ft(t,[{key:"value",get:function(){return this.masked.value.slice(this.masked.mapDefIndexToPos(this.offset),this.masked.mapDefIndexToPos(this.offset+this.mask.length))}},{key:"unmaskedValue",get:function(){return this.masked.extractInput(this.masked.mapDefIndexToPos(this.offset),this.masked.mapDefIndexToPos(this.offset+this.mask.length))}}]),t}(),Pt=function(){function t(e){var n=e[0],u=e[1],i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(u+"").length;_t(this,t),this._from=n,this._to=u,this._maxLength=i,this.validate=this.validate.bind(this),this._update()}return t.prototype._update=function(){this._maxLength=Math.max(this._maxLength,(this.to+"").length),this.mask="0".repeat(this._maxLength)},t.prototype.validate=function(t){var e="",n="",u=t.match(/^(\D*)(\d*)(\D*)/),i=u[1],r=u[2];return r&&(e="0".repeat(i.length)+r,n="9".repeat(i.length)+r),-1===t.search(/[^0]/)&&t.length<=this._matchFrom||(e=e.padEnd(this._maxLength,"0"),n=n.padEnd(this._maxLength,"9"),this.from<=Number(n)&&Number(e)<=this.to)},Ft(t,[{key:"to",get:function(){return this._to},set:function(t){this._to=t,this._update()}},{key:"from",get:function(){return this._from},set:function(t){this._from=t,this._update()}},{key:"maxLength",get:function(){return this._maxLength},set:function(t){this._maxLength=t,this._update()}},{key:"_matchFrom",get:function(){return this.maxLength-(this.from+"").length}}]),t}();xt.Range=Pt,xt.Enum=function(t){return{mask:"*".repeat(t[0].length),validate:function(e,n){return t.some(function(t){return t.indexOf(n.unmaskedValue)>=0})}}};var wt,Tt=(wt=function(t){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_t(this,e);var u=n.definitions,i=n.placeholder,r=n.groups,o=Et(this,t.call(this,n));return delete o.isInitialized,o.placeholder=i,o.definitions=u,o.groups=r,o.isInitialized=!0,o}return Ct(e,t),e.prototype._updateMask=function(){var t=this,n=this._definitions;this._charDefs=[],this._groupDefs=[];var u=this.mask;if(u&&n){var i=!1,r=!1,o=!1;t:for(var s=0;s=e)break;u.isHiddenHollow&&++e}return e}},e.prototype._unmask=function(){for(var t=this.value,e="",n=0,u=0;n0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,n=this.value,u="",i=this.mapPosToDefIndex(e),r=t,o=this.mapPosToDefIndex(t);r0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length,u=this.mapPosToDefIndex(e),i=this.mapPosToDefIndex(n),r=this._charDefs.map(function(t,e){return[t,e]}).slice(u,i).filter(function(t){return t[0].stopAlign}).map(function(t){return t[1]}),o=[u].concat(r,[i]);return o.map(function(e,n){return[r.indexOf(e)>=0?e:null,t.extractInput(t.mapDefIndexToPos(e),t.mapDefIndexToPos(o[++n]))]}).filter(function(t){var e=t[0],n=t[1];return null!=e||n})},e.prototype._appendPlaceholder=function(t){for(var e=t||this._charDefs.length,n=this.mapPosToDefIndex(this.value.length);n0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.value.length;this._value=this.value.slice(0,t)+this.value.slice(e);var n=this.mapPosToDefIndex(t),u=this.mapPosToDefIndex(e);this._charDefs.slice(n,u).forEach(function(t){return t.reset()})},e.prototype.nearestInputPos=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:yt.LEFT;if(!e)return t;var n=this.mapPosToDefIndex(t),i=n,r=void 0,o=void 0,s=void 0,a=void 0;for(a=u(i,e);0<=a&&a=this._charDefs.length)&&null!=r&&(i=r)}else null==o&&(i=null!=s?s:r);return this.mapDefIndexToPos(i)},e.prototype.group=function(t){return this.groupsByName(t)[0]},e.prototype.groupsByName=function(t){return this._groupDefs.filter(function(e){return e.name===t})},Ft(e,[{key:"placeholder",get:function(){return this._placeholder},set:function(t){this._placeholder=Dt({},e.DEFAULT_PLACEHOLDER,t)}},{key:"definitions",get:function(){return this._definitions},set:function(t){t=Dt({},bt.DEFAULTS,t),this._definitions=t,this._updateMask()}},{key:"mask",get:function(){return this._mask},set:function(t){this._mask=t,this._updateMask()}},{key:"isComplete",get:function(){var t=this;return!this._charDefs.some(function(e,n){return e.isInput&&!e.optional&&(e.isHollow||!t.extractInput(n,n+1))})}},{key:"groups",get:function(){return this._groups},set:function(t){this._groups=t,this._updateMask()}}]),e}(kt),h(wt.prototype,"placeholder",[i],Object.getOwnPropertyDescriptor(wt.prototype,"placeholder"),wt.prototype),h(wt.prototype,"definitions",[i],Object.getOwnPropertyDescriptor(wt.prototype,"definitions"),wt.prototype),h(wt.prototype,"mask",[i],Object.getOwnPropertyDescriptor(wt.prototype,"mask"),wt.prototype),h(wt.prototype,"groups",[i],Object.getOwnPropertyDescriptor(wt.prototype,"groups"),wt.prototype),wt);Tt.DEFAULT_PLACEHOLDER={lazy:!0,char:"_"},Tt.STOP_CHAR="`",Tt.ESCAPE_CHAR="\\",Tt.Definition=bt,Tt.Group=xt;var St,Ot=(St=function(t){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_t(this,e);var u=n.groups,i=n=Dt({},e.DEFAULTS,n),r=i.min,o=i.max,s=i.format,a=i.parse;n.groups=Dt({},e.DEFAULTS.groups),n.groups.Y&&(r&&(n.groups.Y.from=r.getFullYear()),o&&(n.groups.Y.to=o.getFullYear())),Dt(n.groups,u);var h=Et(this,t.call(this,n));return delete h.isInitialized,h.min=r,h.max=o,h.format=s,h.parse=a,h.isInitialized=!0,h}return Ct(e,t),e.prototype.doValidate=function(e){var n=t.prototype.doValidate.call(this,e),u=this.date;return n&&(!this.isComplete||this.isDateExist(this.value)&&u&&(null==this.min||this.min<=u)&&(null==this.max||u<=this.max))},e.prototype.isDateExist=function(t){return this.format(this.parse(t))===t},Ft(e,[{key:"date",get:function(){return this.isComplete?this.parse(this.value):null},set:function(t){this.value=this.format(t)}},{key:"min",get:function(){return this._min},set:function(t){this._min=t}},{key:"max",get:function(){return this._max},set:function(t){this._max=t}}]),e}(Tt),l(St.prototype,"min",[i],Object.getOwnPropertyDescriptor(St.prototype,"min"),St.prototype),l(St.prototype,"max",[i],Object.getOwnPropertyDescriptor(St.prototype,"max"),St.prototype),St);Ot.DEFAULTS={mask:"d{.}`m{.}`Y",format:function(t){return[(""+t.getDate()).padStart(2,"0"),(""+(t.getMonth()+1)).padStart(2,"0"),t.getFullYear()].join(".")},parse:function(t){var e=t.split("."),n=e[0],u=e[1],i=e[2];return new Date(i,u-1,n)},groups:{d:new xt.Range([1,31]),m:new xt.Range([1,12]),Y:new xt.Range([1900,9999])}};var It=function(){function t(e,n,u,i){_t(this,t),this.value=e,this.cursorPos=n,this.oldValue=u,this.oldSelection=i}return Ft(t,[{key:"startChangePos",get:function(){return Math.min(this.cursorPos,this.oldSelection.start)}},{key:"insertedCount",get:function(){return this.cursorPos-this.startChangePos}},{key:"inserted",get:function(){return this.value.substr(this.startChangePos,this.insertedCount)}},{key:"removedCount",get:function(){return Math.max(this.oldSelection.end-this.startChangePos||this.oldValue.length-this.value.length,0)}},{key:"removed",get:function(){return this.oldValue.substr(this.startChangePos,this.removedCount)}},{key:"head",get:function(){return this.value.substring(0,this.startChangePos)}},{key:"tail",get:function(){this.value.substring(this.startChangePos+this.insertedCount)}},{key:"removeDirection",get:function(){return this.removedCount&&(this.oldSelection.end===this.cursorPos||this.insertedCount?yt.RIGHT:yt.LEFT)}}]),t}(),jt=function(){function t(e,n){_t(this,t),this.el=e,this.masked=a(n),this._listeners={},this._value="",this._unmaskedValue="",this._saveSelection=this._saveSelection.bind(this),this._onInput=this._onInput.bind(this),this._onChange=this._onChange.bind(this),this._onDrop=this._onDrop.bind(this),this._alignCursor=this._alignCursor.bind(this),this._alignCursorFriendly=this._alignCursorFriendly.bind(this),this.bindEvents(),this.updateValue(),this._onChange()}return t.prototype.bindEvents=function(){this.el.addEventListener("keydown",this._saveSelection),this.el.addEventListener("input",this._onInput),this.el.addEventListener("drop",this._onDrop),this.el.addEventListener("click",this._alignCursorFriendly),this.el.addEventListener("change",this._onChange)},t.prototype.unbindEvents=function(){this.el.removeEventListener("keydown",this._saveSelection),this.el.removeEventListener("input",this._onInput),this.el.removeEventListener("drop",this._onDrop),this.el.removeEventListener("click",this._alignCursorFriendly),this.el.removeEventListener("change",this._onChange)},t.prototype.fireEvent=function(t){(this._listeners[t]||[]).forEach(function(t){return t()})},t.prototype._saveSelection=function(){this.value!==this.el.value&&console.warn("Uncontrolled input change, refresh mask manually!"),this._selection={start:this.selectionStart,end:this.cursorPos}},t.prototype.updateValue=function(){this.masked.value=this.el.value},t.prototype.updateControl=function(){var t=this.masked.unmaskedValue,e=this.masked.value,n=this.unmaskedValue!==t||this.value!==e;this._unmaskedValue=t,this._value=e,this.el.value!==e&&(this.el.value=e),n&&this._fireChangeEvents()},t.prototype.updateOptions=function(t){var e=this,n=t.mask;n&&(this.mask=n),this.masked.withValueRefresh(function(){for(var n in t)"mask"!==n&&(e.masked[n]=t[n])}),this.updateControl()},t.prototype.updateCursor=function(t){null!=t&&(this.cursorPos=t,this._delayUpdateCursor(t))},t.prototype._delayUpdateCursor=function(t){var e=this;this._abortUpdateCursor(),this._changingCursorPos=t,this._cursorChanging=setTimeout(function(){e.cursorPos=e._changingCursorPos,e._abortUpdateCursor()},10)},t.prototype._fireChangeEvents=function(){this.fireEvent("accept"),this.masked.isComplete&&this.fireEvent("complete")},t.prototype._abortUpdateCursor=function(){this._cursorChanging&&(clearTimeout(this._cursorChanging),delete this._cursorChanging)},t.prototype._alignCursor=function(){this.cursorPos=this.masked.nearestInputPos(this.cursorPos)},t.prototype._alignCursorFriendly=function(){this.selectionStart===this.cursorPos&&this._alignCursor()},t.prototype.on=function(t,e){return this._listeners[t]||(this._listeners[t]=[]),this._listeners[t].push(e),this},t.prototype.off=function(t,e){if(this._listeners[t]){if(e){var n=this._listeners[t].indexOf(e);return n>=0&&this._listeners.splice(n,1),this}delete this._listeners[t]}},t.prototype._onInput=function(){this._abortUpdateCursor();var t=new It(this.el.value,this.cursorPos,this.value,this._selection),e=t.startChangePos+t.removed.length,n=this.masked.extractTail(e),u=this.masked.nearestInputPos(t.startChangePos,t.removeDirection);this.masked.clear(u);var i=this.masked.appendWithTail(t.inserted,n),r=this.masked.nearestInputPos(u+i,t.removeDirection);this.updateControl(),this.updateCursor(r)},t.prototype._onChange=function(){this.value!==this.el.value&&this.updateValue(),this.masked.doCommit(),this.updateControl()},t.prototype._onDrop=function(t){t.preventDefault(),t.stopPropagation()},t.prototype.destroy=function(){this.unbindEvents(),this._listeners.length=0},Ft(t,[{key:"mask",get:function(){return this.masked.mask},set:function(t){if((void 0===t?"undefined":At(t))!==At(this.masked.mask)){var e=this.masked?this.masked.unmaskedValue:null;this.masked=a({mask:t}),null!=e&&(this.masked.unmaskedValue=e)}else this.masked.mask=t}},{key:"value",get:function(){return this._value},set:function(t){this.masked.value=t,this.updateControl(),this._alignCursor()}},{key:"unmaskedValue",get:function(){return this._unmaskedValue},set:function(t){this.masked.unmaskedValue=t,this.updateControl(),this._alignCursor()}},{key:"selectionStart",get:function(){return this._cursorChanging?this._changingCursorPos:this.el.selectionStart}},{key:"cursorPos",get:function(){return this._cursorChanging?this._changingCursorPos:this.el.selectionEnd},set:function(t){this.el===document.activeElement&&(this.el.setSelectionRange(t,t),this._saveSelection())}}]),t}();return p.InputMask=jt,p.Masked=kt,p.MaskedPattern=Tt,p.MaskedNumber=Bt,p.MaskedDate=Ot,window.IMask=p,p}); //# sourceMappingURL=imask.min.js.map diff --git a/dist/imask.min.js.map b/dist/imask.min.js.map index 927693f4..aab61b57 100644 --- a/dist/imask.min.js.map +++ b/dist/imask.min.js.map @@ -1 +1 @@ -{"version":3,"file":"imask.min.js","sources":["../src/core/utils.js","../src/masked/factory.js","../src/imask.js","../node_modules/core-js/modules/_global.js","../node_modules/core-js/modules/_core.js","../node_modules/core-js/modules/_is-object.js","../node_modules/core-js/modules/_an-object.js","../node_modules/core-js/modules/_fails.js","../node_modules/core-js/modules/_descriptors.js","../node_modules/core-js/modules/_dom-create.js","../node_modules/core-js/modules/_ie8-dom-define.js","../node_modules/core-js/modules/_to-primitive.js","../node_modules/core-js/modules/_object-dp.js","../node_modules/core-js/modules/_property-desc.js","../node_modules/core-js/modules/_hide.js","../node_modules/core-js/modules/_has.js","../node_modules/core-js/modules/_uid.js","../node_modules/core-js/modules/_redefine.js","../node_modules/core-js/modules/_a-function.js","../node_modules/core-js/modules/_ctx.js","../node_modules/core-js/modules/_export.js","../node_modules/core-js/modules/_cof.js","../node_modules/core-js/modules/_iobject.js","../node_modules/core-js/modules/_defined.js","../node_modules/core-js/modules/_to-object.js","../node_modules/core-js/modules/_to-integer.js","../node_modules/core-js/modules/_to-length.js","../node_modules/core-js/modules/_is-array.js","../node_modules/core-js/modules/_shared.js","../node_modules/core-js/modules/_wks.js","../node_modules/core-js/modules/_array-species-constructor.js","../node_modules/core-js/modules/_array-species-create.js","../node_modules/core-js/modules/_add-to-unscopables.js","../node_modules/core-js/modules/es6.array.find.js","../node_modules/core-js/modules/_array-methods.js","../node_modules/core-js/modules/_to-iobject.js","../node_modules/core-js/modules/_to-index.js","../node_modules/core-js/modules/_shared-key.js","../node_modules/core-js/modules/_object-keys-internal.js","../node_modules/core-js/modules/_array-includes.js","../node_modules/core-js/modules/_enum-bug-keys.js","../node_modules/core-js/modules/_object-keys.js","../node_modules/core-js/modules/_object-sap.js","../node_modules/core-js/modules/es6.object.keys.js","../node_modules/core-js/modules/_string-repeat.js","../node_modules/core-js/modules/es6.string.repeat.js","../node_modules/core-js/modules/_string-pad.js","../node_modules/core-js/modules/es7.string.pad-start.js","../node_modules/core-js/modules/es7.string.pad-end.js","../src/masked/base.js","../src/masked/number.js","../src/masked/pattern/definition.js","../src/masked/pattern/group.js","../src/masked/pattern.js","../src/masked/date.js","../src/core/action-details.js","../src/controls/input.js"],"sourcesContent":["export\r\nfunction isString (str) {\r\n return typeof str === 'string' || str instanceof String;\r\n}\r\n\r\nexport\r\nfunction conform (res, str, fallback='') {\r\n return isString(res) ?\r\n res :\r\n res ?\r\n str :\r\n fallback;\r\n}\r\n\r\nexport\r\nconst DIRECTION = {\r\n NONE: 0,\r\n LEFT: -1,\r\n RIGHT: 1\r\n}\r\n\r\nexport\r\nfunction indexInDirection (pos, direction) {\r\n if (direction === DIRECTION.LEFT) --pos;\r\n return pos;\r\n}\r\n\r\nexport\r\nfunction refreshValueOnSet (target, key, descriptor) {\r\n const method = descriptor.set;\r\n descriptor.set = function (...args) {\r\n return this.withValueRefresh(method.bind(this, ...args));\r\n };\r\n}\r\n\r\nexport\r\nfunction escapeRegExp(str) {\r\n return str.replace(/([.*+?^=!:${}()|\\[\\]\\/\\\\])/g, '\\\\$1');\r\n}\r\n","import {isString} from '../core/utils';\r\nimport Masked from './base';\r\nimport MaskedNumber from './number';\r\n\r\n\r\nexport default\r\nfunction createMask (opts) {\r\n opts = Object.assign({}, opts); // clone\r\n\r\n const mask = opts.mask;\r\n\r\n if (mask instanceof Masked) {\r\n return mask;\r\n }\r\n if (mask instanceof RegExp) {\r\n opts.validate = (value) => mask.test(value);\r\n return new Masked(opts);\r\n }\r\n if (isString(mask)) {\r\n return new IMask.MaskedPattern(opts);\r\n }\r\n if (mask.prototype instanceof Masked) {\r\n delete opts.mask;\r\n return new mask(opts);\r\n }\r\n if (mask instanceof Number || typeof mask === 'number' || mask === Number) {\r\n delete opts.mask;\r\n return new MaskedNumber(opts);\r\n }\r\n if (mask instanceof Date || mask === Date) {\r\n delete opts.mask;\r\n if (opts.pattern) {\r\n opts.mask = opts.pattern;\r\n delete opts.pattern;\r\n }\r\n return new IMask.MaskedDate(opts);\r\n }\r\n if (mask instanceof Function){\r\n opts.validate = mask;\r\n return new Masked(opts);\r\n }\r\n\r\n console.warn('Mask not found for', opts); // eslint-disable-line no-console\r\n return new Masked(opts);\r\n}\r\n","import 'core-js/fn/array/find';\r\nimport 'core-js/fn/object/keys';\r\nimport 'core-js/fn/string/repeat';\r\nimport 'core-js/fn/string/pad-start';\r\nimport 'core-js/fn/string/pad-end';\r\n\r\n\r\nimport Masked from './masked/base';\r\nimport MaskedPattern from './masked/pattern';\r\nimport MaskedNumber from './masked/number';\r\nimport MaskedDate from './masked/date';\r\n\r\nimport InputMask from './controls/input';\r\n\r\n\r\nexport default\r\nfunction IMask (el, opts={}) {\r\n\t// currently available only for input elements\r\n return new InputMask(el, opts);\r\n}\r\n\r\n\r\nIMask.InputMask = InputMask;\r\n\r\nIMask.Masked = Masked;\r\nIMask.MaskedPattern = MaskedPattern;\r\nIMask.MaskedNumber = MaskedNumber;\r\nIMask.MaskedDate = MaskedDate;\r\n\r\nwindow.IMask = IMask;\r\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef","var core = module.exports = {version: '2.4.0'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};","var isObject = require('./_is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});","var isObject = require('./_is-object')\n , document = require('./_global').document\n // in old IE typeof document.createElement is 'object'\n , is = isObject(document) && isObject(document.createElement);\nmodule.exports = function(it){\n return is ? document.createElement(it) : {};\n};","module.exports = !require('./_descriptors') && !require('./_fails')(function(){\n return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;\n});","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function(it, S){\n if(!isObject(it))return it;\n var fn, val;\n if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;\n if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};","var anObject = require('./_an-object')\n , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n , toPrimitive = require('./_to-primitive')\n , dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if(IE8_DOM_DEFINE)try {\n return dP(O, P, Attributes);\n } catch(e){ /* empty */ }\n if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');\n if('value' in Attributes)O[P] = Attributes.value;\n return O;\n};","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};","var dP = require('./_object-dp')\n , createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function(object, key, value){\n return dP.f(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};","var id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};","var global = require('./_global')\n , hide = require('./_hide')\n , has = require('./_has')\n , SRC = require('./_uid')('src')\n , TO_STRING = 'toString'\n , $toString = Function[TO_STRING]\n , TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function(it){\n return $toString.call(it);\n};\n\n(module.exports = function(O, key, val, safe){\n var isFunction = typeof val == 'function';\n if(isFunction)has(val, 'name') || hide(val, 'name', key);\n if(O[key] === val)return;\n if(isFunction)has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if(O === global){\n O[key] = val;\n } else {\n if(!safe){\n delete O[key];\n hide(O, key, val);\n } else {\n if(O[key])O[key] = val;\n else hide(O, key, val);\n }\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString(){\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};","var global = require('./_global')\n , core = require('./_core')\n , hide = require('./_hide')\n , redefine = require('./_redefine')\n , ctx = require('./_ctx')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {})\n , key, own, out, exp;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if(target)redefine(target, key, out, type & $export.U);\n // export\n if(exports[key] != out)hide(exports, key, exp);\n if(IS_PROTO && expProto[key] != out)expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library` \nmodule.exports = $export;","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n return it;\n};","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function(it){\n return Object(defined(it));\n};","// 7.1.4 ToInteger\nvar ceil = Math.ceil\n , floor = Math.floor;\nmodule.exports = function(it){\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer')\n , min = Math.min;\nmodule.exports = function(it){\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};","var global = require('./_global')\n , SHARED = '__core-js_shared__'\n , store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n return store[key] || (store[key] = {});\n};","var store = require('./_shared')('wks')\n , uid = require('./_uid')\n , Symbol = require('./_global').Symbol\n , USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function(name){\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;","var isObject = require('./_is-object')\n , isArray = require('./_is-array')\n , SPECIES = require('./_wks')('species');\n\nmodule.exports = function(original){\n var C;\n if(isArray(original)){\n C = original.constructor;\n // cross-realm fallback\n if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;\n if(isObject(C)){\n C = C[SPECIES];\n if(C === null)C = undefined;\n }\n } return C === undefined ? Array : C;\n};","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function(original, length){\n return new (speciesConstructor(original))(length);\n};","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables')\n , ArrayProto = Array.prototype;\nif(ArrayProto[UNSCOPABLES] == undefined)require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function(key){\n ArrayProto[UNSCOPABLES][key] = true;\n};","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export')\n , $find = require('./_array-methods')(5)\n , KEY = 'find'\n , forced = true;\n// Shouldn't skip holes\nif(KEY in [])Array(1)[KEY](function(){ forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn/*, that = undefined */){\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx')\n , IObject = require('./_iobject')\n , toObject = require('./_to-object')\n , toLength = require('./_to-length')\n , asc = require('./_array-species-create');\nmodule.exports = function(TYPE, $create){\n var IS_MAP = TYPE == 1\n , IS_FILTER = TYPE == 2\n , IS_SOME = TYPE == 3\n , IS_EVERY = TYPE == 4\n , IS_FIND_INDEX = TYPE == 6\n , NO_HOLES = TYPE == 5 || IS_FIND_INDEX\n , create = $create || asc;\n return function($this, callbackfn, that){\n var O = toObject($this)\n , self = IObject(O)\n , f = ctx(callbackfn, that, 3)\n , length = toLength(self.length)\n , index = 0\n , result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined\n , val, res;\n for(;length > index; index++)if(NO_HOLES || index in self){\n val = self[index];\n res = f(val, index, O);\n if(TYPE){\n if(IS_MAP)result[index] = res; // map\n else if(res)switch(TYPE){\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if(IS_EVERY)return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject')\n , defined = require('./_defined');\nmodule.exports = function(it){\n return IObject(defined(it));\n};","var toInteger = require('./_to-integer')\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};","var shared = require('./_shared')('keys')\n , uid = require('./_uid');\nmodule.exports = function(key){\n return shared[key] || (shared[key] = uid(key));\n};","var has = require('./_has')\n , toIObject = require('./_to-iobject')\n , arrayIndexOf = require('./_array-includes')(false)\n , IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function(object, names){\n var O = toIObject(object)\n , i = 0\n , result = []\n , key;\n for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while(names.length > i)if(has(O, key = names[i++])){\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal')\n , enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O){\n return $keys(O, enumBugKeys);\n};","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export')\n , core = require('./_core')\n , fails = require('./_fails');\nmodule.exports = function(KEY, exec){\n var fn = (core.Object || {})[KEY] || Object[KEY]\n , exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object')\n , $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});","'use strict';\nvar toInteger = require('./_to-integer')\n , defined = require('./_defined');\n\nmodule.exports = function repeat(count){\n var str = String(defined(this))\n , res = ''\n , n = toInteger(count);\n if(n < 0 || n == Infinity)throw RangeError(\"Count can't be negative\");\n for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str;\n return res;\n};","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('./_to-length')\n , repeat = require('./_string-repeat')\n , defined = require('./_defined');\n\nmodule.exports = function(that, maxLength, fillString, left){\n var S = String(defined(that))\n , stringLength = S.length\n , fillStr = fillString === undefined ? ' ' : String(fillString)\n , intMaxLength = toLength(maxLength);\n if(intMaxLength <= stringLength || fillStr == '')return S;\n var fillLen = intMaxLength - stringLength\n , stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));\n if(stringFiller.length > fillLen)stringFiller = stringFiller.slice(0, fillLen);\n return left ? stringFiller + S : S + stringFiller;\n};\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export')\n , $pad = require('./_string-pad');\n\n$export($export.P, 'String', {\n padStart: function padStart(maxLength /*, fillString = ' ' */){\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n }\n});","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export')\n , $pad = require('./_string-pad');\n\n$export($export.P, 'String', {\n padEnd: function padEnd(maxLength /*, fillString = ' ' */){\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n }\n});","import {refreshValueOnSet} from '../core/utils';\r\n\r\n\r\nexport default\r\nclass Masked {\r\n constructor ({mask, validate}) {\r\n this._value = '';\r\n this.mask = mask;\r\n this.validate = validate || (() => true);\r\n this.isInitialized = true;\r\n }\r\n\r\n get mask () {\r\n return this._mask;\r\n }\r\n\r\n @refreshValueOnSet\r\n set mask (mask) {\r\n this._mask = mask;\r\n }\r\n\r\n _validate (soft) {\r\n return this.validate(this.value, this, soft);\r\n }\r\n\r\n clone () {\r\n const m = new Masked(this);\r\n m._value = this.value.slice();\r\n return m;\r\n }\r\n\r\n reset () {\r\n this._value = '';\r\n }\r\n\r\n get value () {\r\n return this._value;\r\n }\r\n\r\n set value (value) {\r\n this.reset();\r\n this.appendWithTail(value);\r\n this.commit();\r\n }\r\n\r\n get unmaskedValue () {\r\n return this._unmask();\r\n }\r\n\r\n set unmaskedValue (value) {\r\n this.reset();\r\n this._append(value);\r\n this.appendWithTail(\"\");\r\n this.commit();\r\n }\r\n\r\n get isComplete () {\r\n return true;\r\n }\r\n\r\n nearestInputPos (cursorPos, /* direction */) {\r\n return cursorPos;\r\n }\r\n\r\n extractInput (fromPos=0, toPos=this.value.length) {\r\n return this.value.slice(fromPos, toPos);\r\n }\r\n\r\n extractTail (fromPos=0, toPos=this.value.length) {\r\n return this.extractInput(fromPos, toPos);\r\n }\r\n\r\n _appendTail (tail) {\r\n return !tail || this._append(tail);\r\n }\r\n\r\n _append (str, soft) {\r\n const oldValueLength = this.value.length;\r\n let consistentValue = this.clone();\r\n\r\n for (let ci=0; ci outputRaw\r\n\r\n // TODO\r\n // insert (str, fromPos, soft)\r\n\r\n // splice (start, deleteCount, inserted, removeDirection) {\r\n // const tailPos = start + deleteCount;\r\n // const tail = this.extractTail(tailPos);\r\n\r\n // start = this.nearestInputPos(start, removeDirection);\r\n // this.clear(start);\r\n // return this.appendWithTail(inserted, tail);\r\n // }\r\n}\r\n","import {escapeRegExp, refreshValueOnSet, DIRECTION, indexInDirection} from '../core/utils';\r\nimport Masked from './base';\r\n\r\n\r\nexport default\r\nclass MaskedNumber extends Masked {\r\n constructor (opts={}) {\r\n opts = Object.assign({}, MaskedNumber.DEFAULTS, opts);\r\n super(opts);\r\n delete this.isInitialized;\r\n\r\n const {scale, radix, mapToRadix, min, max, signed, thousandsSeparator, postFormat} = opts;\r\n\r\n this.min = min;\r\n this.max = max;\r\n this.scale = scale;\r\n this.radix = radix;\r\n this.mapToRadix = mapToRadix;\r\n this.signed = signed;\r\n this.thousandsSeparator = thousandsSeparator;\r\n this.postFormat = postFormat;\r\n\r\n this._updateNumberRegExp();\r\n\r\n this.isInitialized = true;\r\n }\r\n\r\n _updateNumberRegExp () {\r\n // TODO refactor?\r\n let regExpStrSoft = '^';\r\n let regExpStr = '^';\r\n\r\n if (this.signed) {\r\n regExpStrSoft += '([+|\\\\-]?|([+|\\\\-]?(0|([1-9]+\\\\d*))))';\r\n regExpStr += '[+|\\\\-]?';\r\n } else {\r\n regExpStrSoft += '(0|([1-9]+\\\\d*))';\r\n }\r\n regExpStr += '\\\\d*';\r\n\r\n if (this.scale) {\r\n regExpStrSoft += '(' + this.radix + '\\\\d{0,' + this.scale + '})?';\r\n regExpStr += '(' + this.radix + '\\\\d{0,' + this.scale + '})?';\r\n }\r\n\r\n regExpStrSoft += '$';\r\n regExpStr += '$';\r\n\r\n this._numberRegExpSoft = new RegExp(regExpStrSoft);\r\n this._numberRegExp = new RegExp(regExpStr)\r\n }\r\n\r\n extractTail (fromPos=0, toPos=this.value.length) {\r\n return this._removeThousandsSeparators(super.extractTail(fromPos, toPos));\r\n }\r\n\r\n _removeThousandsSeparators (value) {\r\n return value.replace(this._thousandsSeparatorRegExp, '');\r\n }\r\n\r\n _insertThousandsSeparators (value) {\r\n // https://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript\r\n const parts = value.split(this.radix);\r\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, this.thousandsSeparator);\r\n return parts.join(this.radix);\r\n }\r\n\r\n _append (str, soft) {\r\n return super._append(\r\n this._removeThousandsSeparators(\r\n str.replace(this._mapToRadixRegExp, this.radix)),\r\n soft);\r\n }\r\n\r\n appendWithTail (str, tail) {\r\n const oldValueLength = this.value.length;\r\n this._value = this._removeThousandsSeparators(this.value);\r\n let removedSeparatorsCount = oldValueLength - this.value.length;\r\n\r\n\r\n const appended = super.appendWithTail(str, tail);\r\n\r\n\r\n this._value = this._insertThousandsSeparators(this.value);\r\n\r\n let beforeTailPos = oldValueLength + appended - removedSeparatorsCount;\r\n this._value = this._insertThousandsSeparators(this.value);\r\n let insertedSeparatorsBeforeTailCount = 0;\r\n for (let pos = 0; pos <= beforeTailPos; ++pos) {\r\n if (this.value[pos] === this.thousandsSeparator) {\r\n ++insertedSeparatorsBeforeTailCount;\r\n ++beforeTailPos;\r\n }\r\n }\r\n\r\n return appended - removedSeparatorsCount + insertedSeparatorsBeforeTailCount;\r\n }\r\n\r\n nearestInputPos (cursorPos, direction=DIRECTION.LEFT) {\r\n if (!direction) return cursorPos;\r\n\r\n const nextPos = indexInDirection(cursorPos, direction);\r\n if (this.value[nextPos] === this.thousandsSeparator) cursorPos += direction;\r\n return cursorPos;\r\n }\r\n\r\n _validate (soft) {\r\n const regexp = soft ? this._numberRegExpSoft : this._numberRegExp;\r\n\r\n // validate as string\r\n let valid = regexp.test(this._removeThousandsSeparators(this.value));\r\n\r\n if (valid) {\r\n // validate as number\r\n const number = this.number;\r\n valid = valid && !isNaN(number) &&\r\n // check min bound for negative values\r\n (this.min == null || this.min >= 0 || this.min <= this.number) &&\r\n // check max bound for positive values\r\n (this.max == null || this.max <= 0 || this.number <= this.max);\r\n }\r\n\r\n return valid && super._validate(soft);\r\n }\r\n\r\n commit () {\r\n const number = this.number;\r\n let validnum = number;\r\n\r\n // check bounds\r\n if (this.min != null) validnum = Math.max(validnum, this.min);\r\n if (this.max != null) validnum = Math.min(validnum, this.max);\r\n\r\n if (validnum !== number) {\r\n this.unmaskedValue = '' + validnum;\r\n }\r\n\r\n let formatted = this.value;\r\n\r\n if (this.postFormat.normalizeZeros) {\r\n formatted = this._normalizeZeros(formatted);\r\n }\r\n\r\n if (this.postFormat.padFractionalZeros) {\r\n formatted = this._padFractionalZeros(formatted);\r\n }\r\n\r\n this._value = formatted;\r\n }\r\n\r\n _normalizeZeros (value) {\r\n const parts = this._removeThousandsSeparators(value).split(this.radix);\r\n\r\n // remove leading zeros\r\n parts[0] = parts[0].replace(/^(\\D*)(0*)(\\d*)/, (match, sign, zeros, num) => sign + num);\r\n // add leading zero\r\n if (value.length && !/\\d$/.test(parts[0])) parts[0] = parts[0] + '0';\r\n\r\n if (parts.length > 1) {\r\n parts[1] = parts[1].replace(/0*$/, ''); // remove trailing zeros\r\n if (!parts[1].length) parts.length = 1; // remove fractional\r\n }\r\n\r\n return this._insertThousandsSeparators(parts.join(this.radix));\r\n }\r\n\r\n _padFractionalZeros (value) {\r\n const parts = value.split(this.radix);\r\n if (parts.length < 2) parts.push('');\r\n parts[1] = parts[1].padEnd(this.scale, '0');\r\n return parts.join(this.radix);\r\n }\r\n\r\n get number () {\r\n let numstr =\r\n this._removeThousandsSeparators(\r\n this._normalizeZeros(\r\n this.unmaskedValue))\r\n .replace(this.radix, '.');\r\n\r\n return Number(numstr);\r\n }\r\n\r\n set number (number) {\r\n this.unmaskedValue = '' + number;\r\n }\r\n\r\n get min () {\r\n return this._min;\r\n }\r\n\r\n @refreshValueOnSet\r\n set min (min) {\r\n this._min = min;\r\n }\r\n\r\n get max () {\r\n return this._max;\r\n }\r\n\r\n @refreshValueOnSet\r\n set max (max) {\r\n this._max = max;\r\n }\r\n\r\n get scale () {\r\n return this._scale;\r\n }\r\n\r\n @refreshValueOnSet\r\n set scale (scale) {\r\n this._scale = scale;\r\n }\r\n\r\n get radix () {\r\n return this._radix;\r\n }\r\n\r\n @refreshValueOnSet\r\n set radix (radix) {\r\n this._radix = radix;\r\n this._updateNumberRegExp();\r\n }\r\n\r\n get signed () {\r\n return this._signed || (this.min != null && this.min < 0) || (this.max != null && this.max < 0);\r\n }\r\n\r\n @refreshValueOnSet\r\n set signed (signed) {\r\n this._signed = signed;\r\n }\r\n\r\n get postFormat () {\r\n return this._postFormat;\r\n }\r\n\r\n @refreshValueOnSet\r\n set postFormat (postFormat) {\r\n this._postFormat = {\r\n ...MaskedNumber.DEFAULTS.postFormat,\r\n ...postFormat\r\n };\r\n }\r\n\r\n get mapToRadix () {\r\n return this._mapToRadix;\r\n }\r\n\r\n @refreshValueOnSet\r\n set mapToRadix (mapToRadix) {\r\n this._mapToRadix = mapToRadix;\r\n this._mapToRadixRegExp = new RegExp('[' +\r\n mapToRadix.map(escapeRegExp).join('') +\r\n ']', 'g');\r\n }\r\n\r\n get thousandsSeparator () {\r\n return this._thousandsSeparator;\r\n }\r\n\r\n @refreshValueOnSet\r\n set thousandsSeparator (thousandsSeparator) {\r\n this._thousandsSeparator = thousandsSeparator;\r\n this._thousandsSeparatorRegExp = new RegExp(escapeRegExp(thousandsSeparator), 'g');\r\n }\r\n}\r\nMaskedNumber.DEFAULTS = {\r\n radix: ',',\r\n thousandsSeparator: '',\r\n mapToRadix: ['.'],\r\n scale: 2,\r\n postFormat: {\r\n normalizeZeros: true,\r\n }\r\n};\r\n","import createMask from '../factory';\r\n\r\n\r\nexport default\r\nclass PatternDefinition {\r\n constructor(opts) {\r\n Object.assign(this, opts);\r\n\r\n if (this.mask) {\r\n this._masked = createMask(opts);\r\n }\r\n }\r\n\r\n reset () {\r\n this.isHollow = false;\r\n if (this._masked) this._masked.reset();\r\n }\r\n\r\n get isInput () {\r\n return this.type === PatternDefinition.TYPES.INPUT;\r\n }\r\n\r\n get isHiddenHollow () {\r\n return this.isHollow && this.optional;\r\n }\r\n\r\n resolve (ch) {\r\n if (!this._masked) return false;\r\n // TODO seems strange\r\n this._masked.value = ch;\r\n return this._masked.value;\r\n }\r\n}\r\n\r\nPatternDefinition.DEFAULTS = {\r\n '0': /\\d/,\r\n 'a': /[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/, // http://stackoverflow.com/a/22075070\r\n '*': /./\r\n};\r\nPatternDefinition.TYPES = {\r\n INPUT: 'input',\r\n FIXED: 'fixed'\r\n};\r\n","export default\r\nclass PatternGroup {\r\n constructor(masked, {name, offset, mask, validate}) {\r\n this.masked = masked;\r\n this.name = name;\r\n this.offset = offset;\r\n this.mask = mask;\r\n this.validate = validate || (() => true);\r\n }\r\n\r\n get value () {\r\n return this.masked.value.slice(\r\n this.masked.mapDefIndexToPos(this.offset),\r\n this.masked.mapDefIndexToPos(this.offset + this.mask.length));\r\n }\r\n\r\n get unmaskedValue () {\r\n return this.masked.extractInput(\r\n this.masked.mapDefIndexToPos(this.offset),\r\n this.masked.mapDefIndexToPos(this.offset + this.mask.length));\r\n }\r\n\r\n _validate (soft) {\r\n return this.validate(this.value, this, soft);\r\n }\r\n}\r\n\r\nexport\r\nclass RangeGroup {\r\n constructor ([from, to], maxlen=(to+'').length) {\r\n this._from = from;\r\n this._to = to;\r\n this._maxLength = maxlen;\r\n this.validate = this.validate.bind(this);\r\n\r\n this._update();\r\n }\r\n\r\n get to () {\r\n return this._to;\r\n }\r\n\r\n set to (to) {\r\n this._to = to;\r\n this._update();\r\n }\r\n\r\n get from () {\r\n return this._from;\r\n }\r\n\r\n set from (from) {\r\n this._from = from;\r\n this._update();\r\n }\r\n\r\n get maxLength () {\r\n return this._maxLength;\r\n }\r\n\r\n set maxLength (maxLength) {\r\n this._maxLength = maxLength;\r\n this._update();\r\n }\r\n\r\n get _matchFrom () {\r\n return this.maxLength - (this.from + '').length;\r\n }\r\n\r\n _update() {\r\n this._maxLength = Math.max(this._maxLength, (this.to + '').length);\r\n this.mask = '0'.repeat(this._maxLength);\r\n }\r\n\r\n validate (str) {\r\n let minstr = '';\r\n let maxstr = '';\r\n\r\n const [, placeholder, num] = str.match(/^(\\D*)(\\d*)(\\D*)/);\r\n if (num) {\r\n minstr = ('0'.repeat(placeholder.length) + num);\r\n maxstr = ('9'.repeat(placeholder.length) + num);\r\n }\r\n\r\n const firstNonZero = str.search(/[^0]/);\r\n if (firstNonZero === -1 && str.length <= this._matchFrom) return true;\r\n\r\n minstr = minstr.padEnd(this._maxLength, '0');\r\n maxstr = maxstr.padEnd(this._maxLength, '9');\r\n\r\n return this.from <= Number(maxstr) && Number(minstr) <= this.to;\r\n }\r\n}\r\n\r\nexport\r\nfunction EnumGroup (enums) {\r\n return {\r\n mask: '*'.repeat(enums[0].length),\r\n validate: (value, group) => enums.some(e => e.indexOf(group.unmaskedValue) >= 0)\r\n };\r\n}\r\n\r\nPatternGroup.Range = RangeGroup;\r\nPatternGroup.Enum = EnumGroup;\r\n","import {conform, DIRECTION, indexInDirection, refreshValueOnSet} from '../core/utils';\r\nimport Masked from './base';\r\nimport PatternDefinition from './pattern/definition';\r\nimport PatternGroup from './pattern/group';\r\n\r\n\r\nexport default\r\nclass MaskedPattern extends Masked {\r\n constructor (opts={}) {\r\n const {definitions, placeholder, groups} = opts;\r\n super(opts);\r\n delete this.isInitialized;\r\n\r\n this.placeholder = placeholder;\r\n this.definitions = definitions;\r\n this.groups = groups;\r\n\r\n this.isInitialized = true;\r\n }\r\n\r\n get placeholder () {\r\n return this._placeholder;\r\n }\r\n\r\n @refreshValueOnSet\r\n set placeholder (ph) {\r\n this._placeholder = {\r\n ...MaskedPattern.DEFAULT_PLACEHOLDER,\r\n ...ph\r\n };\r\n }\r\n\r\n get definitions () {\r\n return this._definitions;\r\n }\r\n\r\n @refreshValueOnSet\r\n set definitions (defs) {\r\n defs = {\r\n ...PatternDefinition.DEFAULTS,\r\n ...defs\r\n };\r\n\r\n this._definitions = defs;\r\n this._updateMask();\r\n }\r\n\r\n get mask () {\r\n return this._mask;\r\n }\r\n\r\n @refreshValueOnSet\r\n set mask (mask) {\r\n this._mask = mask;\r\n this._updateMask();\r\n }\r\n\r\n _updateMask () {\r\n const defs = this._definitions;\r\n this._charDefs = [];\r\n this._groupDefs = [];\r\n\r\n let pattern = this.mask;\r\n if (!pattern || !defs) return;\r\n\r\n let unmaskingBlock = false;\r\n let optionalBlock = false;\r\n let stopAlign = false;\r\n\r\n\r\n for (let i=0; i p.indexOf(gName) === 0);\r\n // order by key length\r\n gNames.sort((a, b) => b.length - a.length);\r\n // use group name with max length\r\n const gName = gNames[0];\r\n if (gName) {\r\n const group = this._groups[gName];\r\n this._groupDefs.push(new PatternGroup(this, {\r\n name: gName,\r\n offset: this._charDefs.length,\r\n mask: group.mask,\r\n validate: group.validate\r\n }));\r\n pattern = pattern.replace(gName, group.mask);\r\n }\r\n }\r\n\r\n let char = pattern[i];\r\n let type = !unmaskingBlock && char in defs ?\r\n PatternDefinition.TYPES.INPUT :\r\n PatternDefinition.TYPES.FIXED;\r\n const unmasking = type === PatternDefinition.TYPES.INPUT || unmaskingBlock;\r\n const optional = type === PatternDefinition.TYPES.INPUT && optionalBlock;\r\n\r\n if (char === MaskedPattern.STOP_CHAR) {\r\n stopAlign = true;\r\n continue;\r\n }\r\n\r\n if (char === '{' || char === '}') {\r\n unmaskingBlock = !unmaskingBlock;\r\n continue;\r\n }\r\n\r\n if (char === '[' || char === ']') {\r\n optionalBlock = !optionalBlock;\r\n continue;\r\n }\r\n\r\n if (char === MaskedPattern.ESCAPE_CHAR) {\r\n ++i;\r\n char = pattern[i];\r\n // TODO validation\r\n if (!char) break;\r\n type = PatternDefinition.TYPES.FIXED;\r\n }\r\n\r\n this._charDefs.push(new PatternDefinition({\r\n char,\r\n type,\r\n optional,\r\n stopAlign,\r\n mask: unmasking &&\r\n (type === PatternDefinition.TYPES.INPUT ?\r\n defs[char] :\r\n (value => value === char))\r\n }));\r\n\r\n stopAlign = false;\r\n }\r\n }\r\n\r\n _validate (soft) {\r\n return this._groupDefs.every(g => g._validate(soft)) && super._validate(soft);\r\n }\r\n\r\n clone () {\r\n const m = new MaskedPattern(this);\r\n m._value = this.value;\r\n m._charDefs.forEach((d, i) => Object.assign(d, this._charDefs[i]));\r\n m._groupDefs.forEach((d, i) => Object.assign(d, this._groupDefs[i]));\r\n return m;\r\n }\r\n\r\n reset () {\r\n super.reset();\r\n this._charDefs.forEach(d => {delete d.isHollow;});\r\n }\r\n\r\n get isComplete () {\r\n return !this._charDefs.some((d, i) =>\r\n d.isInput && !d.optional && (d.isHollow || !this.extractInput(i, i+1)));\r\n }\r\n\r\n hiddenHollowsBefore (defIndex) {\r\n return this._charDefs\r\n .slice(0, defIndex)\r\n .filter(d => d.isHiddenHollow)\r\n .length;\r\n }\r\n\r\n mapDefIndexToPos (defIndex) {\r\n if (defIndex == null) return;\r\n return defIndex - this.hiddenHollowsBefore(defIndex);\r\n }\r\n\r\n mapPosToDefIndex (pos) {\r\n if (pos == null) return;\r\n let defIndex = pos;\r\n for (let di=0; di= defIndex) break;\r\n if (def.isHiddenHollow) ++defIndex;\r\n }\r\n return defIndex;\r\n }\r\n\r\n _unmask () {\r\n const str = this.value;\r\n let unmasked = '';\r\n\r\n for (let ci=0, di=0; ci [d, i])\r\n .slice(fromDefIndex, toDefIndex)\r\n .filter(([d]) => d.stopAlign)\r\n .map(([, i]) => i);\r\n\r\n const stops = [\r\n fromDefIndex,\r\n ...stopDefIndices,\r\n toDefIndex\r\n ];\r\n\r\n return stops.map((s, i) => [\r\n stopDefIndices.indexOf(s) >= 0 ?\r\n s :\r\n null,\r\n\r\n this.extractInput(\r\n this.mapDefIndexToPos(s),\r\n this.mapDefIndexToPos(stops[++i]))\r\n ]).filter(([stop, input]) => stop != null || input);\r\n }\r\n\r\n _appendPlaceholder (toDefIndex) {\r\n const maxDefIndex = toDefIndex || this._charDefs.length;\r\n for (let di=this.mapPosToDefIndex(this.value.length); di < maxDefIndex; ++di) {\r\n const def = this._charDefs[di];\r\n if (def.isInput) def.isHollow = true;\r\n\r\n if (!this.placeholder.lazy || toDefIndex) {\r\n this._value += !def.isInput ?\r\n def.char :\r\n !def.optional ?\r\n this.placeholder.char :\r\n '';\r\n }\r\n }\r\n }\r\n\r\n clear (from=0, to=this.value.length) {\r\n this._value = this.value.slice(0, from) + this.value.slice(to);\r\n const fromDefIndex = this.mapPosToDefIndex(from);\r\n const toDefIndex = this.mapPosToDefIndex(to);\r\n this._charDefs\r\n .slice(fromDefIndex, toDefIndex)\r\n .forEach(d => d.reset());\r\n }\r\n\r\n nearestInputPos (cursorPos, direction=DIRECTION.LEFT) {\r\n if (!direction) return cursorPos;\r\n\r\n const initialDefIndex = this.mapPosToDefIndex(cursorPos);\r\n let di = initialDefIndex;\r\n\r\n let firstInputIndex,\r\n firstFilledInputIndex,\r\n firstVisibleHollowIndex,\r\n nextdi;\r\n\r\n // search forward\r\n for (nextdi = indexInDirection(di, direction); 0 <= nextdi && nextdi < this._charDefs.length; di += direction, nextdi += direction) {\r\n const nextDef = this._charDefs[nextdi];\r\n if (firstInputIndex == null && nextDef.isInput) firstInputIndex = di;\r\n if (firstVisibleHollowIndex == null && nextDef.isHollow && !nextDef.isHiddenHollow) firstVisibleHollowIndex = di;\r\n if (nextDef.isInput && !nextDef.isHollow) {\r\n firstFilledInputIndex = di;\r\n break;\r\n }\r\n }\r\n\r\n if (direction === DIRECTION.LEFT || firstInputIndex == null) {\r\n // search backwards\r\n direction = -direction;\r\n let overflow = false;\r\n\r\n // find hollows only before initial pos\r\n for (nextdi = indexInDirection(di, direction);\r\n 0 <= nextdi && nextdi < this._charDefs.length;\r\n di += direction, nextdi += direction)\r\n {\r\n const nextDef = this._charDefs[nextdi];\r\n if (nextDef.isInput) {\r\n firstInputIndex = di;\r\n if (nextDef.isHollow && !nextDef.isHiddenHollow) break;\r\n }\r\n\r\n // if hollow not found before start position - set `overflow`\r\n // and try to find just any input\r\n if (di === initialDefIndex) overflow = true;\r\n\r\n // first input found\r\n if (overflow && firstInputIndex != null) break;\r\n }\r\n\r\n // process overflow\r\n overflow = overflow || nextdi >= this._charDefs.length;\r\n if (overflow && firstInputIndex != null) di = firstInputIndex;\r\n } else if (firstFilledInputIndex == null) {\r\n // adjust index if delete at right and filled input not found at right\r\n di = firstVisibleHollowIndex != null ?\r\n firstVisibleHollowIndex :\r\n firstInputIndex;\r\n }\r\n\r\n return this.mapDefIndexToPos(di);\r\n }\r\n\r\n get groups () { return this._groups; }\r\n\r\n @refreshValueOnSet\r\n set groups (groups) {\r\n this._groups = groups;\r\n this._updateMask();\r\n }\r\n\r\n group (name) {\r\n return this.groupsByName(name)[0];\r\n }\r\n\r\n groupsByName (name) {\r\n return this._groupDefs.filter(g => g.name === name);\r\n }\r\n}\r\n\r\nMaskedPattern.DEFAULT_PLACEHOLDER = {\r\n lazy: true,\r\n char: '_'\r\n};\r\nMaskedPattern.STOP_CHAR = '`';\r\nMaskedPattern.ESCAPE_CHAR = '\\\\';\r\nMaskedPattern.Definition = PatternDefinition;\r\nMaskedPattern.Group = PatternGroup;\r\n","import {refreshValueOnSet} from '../core/utils';\r\nimport MaskedPattern from './pattern';\r\nimport PatternGroup from './pattern/group';\r\n\r\n\r\nexport default\r\nclass MaskedDate extends MaskedPattern {\r\n constructor (opts={}) {\r\n const groups = opts.groups;\r\n opts = Object.assign({}, MaskedDate.DEFAULTS, opts);\r\n const {min, max, format, parse} = opts;\r\n\r\n opts.groups = Object.assign({}, MaskedDate.DEFAULTS.groups);\r\n if (opts.groups.Y) {\r\n // adjust year group\r\n if (min) opts.groups.Y.from = min.getFullYear();\r\n if (max) opts.groups.Y.to = max.getFullYear();\r\n }\r\n\r\n Object.assign(opts.groups, groups);\r\n\r\n super(opts);\r\n delete this.isInitialized;\r\n\r\n this.min = min;\r\n this.max = max;\r\n this.format = format;\r\n this.parse = parse;\r\n\r\n this.isInitialized = true;\r\n }\r\n\r\n _validate (soft) {\r\n const valid = super._validate(soft);\r\n const date = this.date;\r\n\r\n return valid &&\r\n (!this.isComplete ||\r\n this.isDateExist(this.value) && date &&\r\n (this.min == null || this.min <= date) &&\r\n (this.max == null || date <= this.max));\r\n }\r\n\r\n isDateExist (str) {\r\n return this.format(this.parse(str)) === str;\r\n }\r\n\r\n get date () {\r\n return this.isComplete ?\r\n this.parse(this.value) :\r\n null;\r\n }\r\n\r\n set date (date) {\r\n this.value = this.format(date);\r\n }\r\n\r\n get min () {\r\n return this._min;\r\n }\r\n\r\n @refreshValueOnSet\r\n set min (min) {\r\n this._min = min;\r\n }\r\n\r\n get max () {\r\n return this._max;\r\n }\r\n\r\n @refreshValueOnSet\r\n set max (max) {\r\n this._max = max;\r\n }\r\n}\r\nMaskedDate.DEFAULTS = {\r\n mask: 'd{.}`m{.}`Y',\r\n format: date => {\r\n const day = ('' + date.getDate()).padStart(2, '0');\r\n const month = ('' + (date.getMonth() + 1)).padStart(2, '0');\r\n const year = date.getFullYear();\r\n\r\n return [day, month, year].join('.');\r\n },\r\n parse: str => {\r\n const [day, month, year] = str.split('.');\r\n return new Date(year, month - 1, day);\r\n },\r\n groups: {\r\n d: new PatternGroup.Range([1, 31]),\r\n m: new PatternGroup.Range([1, 12]),\r\n Y: new PatternGroup.Range([1900, 9999]),\r\n },\r\n};\r\n","import {DIRECTION} from './utils';\r\n\r\n\r\nexport default\r\nclass ActionDetails {\r\n constructor (value, cursorPos, oldValue, oldSelection) {\r\n this.value = value;\r\n this.cursorPos = cursorPos;\r\n this.oldValue = oldValue;\r\n this.oldSelection = oldSelection;\r\n }\r\n\r\n get startChangePos () {\r\n return Math.min(this.cursorPos, this.oldSelection.start);\r\n }\r\n\r\n get insertedCount () {\r\n return this.cursorPos - this.startChangePos;\r\n }\r\n\r\n get inserted () {\r\n return this.value.substr(this.startChangePos, this.insertedCount);\r\n }\r\n\r\n get removedCount () {\r\n // Math.max for opposite operation\r\n return Math.max((this.oldSelection.end - this.startChangePos) ||\r\n // for Delete\r\n this.oldValue.length - this.value.length, 0);\r\n }\r\n\r\n get removed () {\r\n return this.oldValue.substr(this.startChangePos, this.removedCount);\r\n }\r\n\r\n get head () {\r\n return this.value.substring(0, this.startChangePos);\r\n }\r\n\r\n get tail () {\r\n this.value.substring(this.startChangePos + this.insertedCount);\r\n }\r\n\r\n get removeDirection () {\r\n return this.removedCount &&\r\n ((this.oldSelection.end === this.cursorPos || this.insertedCount) ?\r\n DIRECTION.RIGHT :\r\n DIRECTION.LEFT);\r\n }\r\n}\r\n","import ActionDetails from '../core/action-details';\r\nimport createMask from '../masked/factory';\r\n\r\n\r\nexport default\r\nclass InputMask {\r\n constructor (el, opts) {\r\n this.el = el;\r\n this.masked = createMask(opts);\r\n\r\n this._listeners = {};\r\n this._value = '';\r\n this._unmaskedValue = '';\r\n\r\n this._saveSelection = this._saveSelection.bind(this);\r\n this._onInput = this._onInput.bind(this);\r\n this._onChange = this._onChange.bind(this);\r\n this._onDrop = this._onDrop.bind(this);\r\n this._alignCursor = this._alignCursor.bind(this);\r\n this._alignCursorFriendly = this._alignCursorFriendly.bind(this);\r\n\r\n this.bindEvents();\r\n\r\n // refresh\r\n this.updateValue();\r\n this._onChange();\r\n }\r\n\r\n get mask () { return this.masked.mask; }\r\n set mask (mask) {\r\n if (typeof mask === typeof this.masked.mask) {\r\n this.masked.mask = mask;\r\n return;\r\n }\r\n\r\n const unmasked = this.masked ? this.masked.unmaskedValue : null;\r\n this.masked = createMask({mask});\r\n if (unmasked != null) this.masked.unmaskedValue = unmasked;\r\n }\r\n\r\n get value () {\r\n return this._value;\r\n }\r\n\r\n set value (str) {\r\n this.masked.value = str;\r\n this.updateControl();\r\n this._alignCursor();\r\n }\r\n\r\n get unmaskedValue () {\r\n return this._unmaskedValue;\r\n }\r\n\r\n set unmaskedValue (str) {\r\n this.masked.unmaskedValue = str;\r\n this.updateControl();\r\n this._alignCursor();\r\n }\r\n\r\n bindEvents () {\r\n this.el.addEventListener('keydown', this._saveSelection);\r\n this.el.addEventListener('input', this._onInput);\r\n this.el.addEventListener('drop', this._onDrop);\r\n this.el.addEventListener('click', this._alignCursorFriendly);\r\n this.el.addEventListener('change', this._onChange);\r\n }\r\n\r\n unbindEvents () {\r\n this.el.removeEventListener('keydown', this._saveSelection);\r\n this.el.removeEventListener('input', this._onInput);\r\n this.el.removeEventListener('drop', this._onDrop);\r\n this.el.removeEventListener('click', this._alignCursorFriendly);\r\n this.el.removeEventListener('change', this._onChange);\r\n }\r\n\r\n fireEvent (ev) {\r\n const listeners = this._listeners[ev] || [];\r\n listeners.forEach(l => l());\r\n }\r\n\r\n get selectionStart () {\r\n return this._cursorChanging ?\r\n this._changingCursorPos :\r\n\r\n this.el.selectionStart;\r\n }\r\n\r\n get cursorPos () {\r\n return this._cursorChanging ?\r\n this._changingCursorPos :\r\n\r\n this.el.selectionEnd;\r\n }\r\n\r\n set cursorPos (pos) {\r\n if (this.el !== document.activeElement) return;\r\n\r\n this.el.setSelectionRange(pos, pos);\r\n this._saveSelection();\r\n }\r\n\r\n _saveSelection (/* ev */) {\r\n if (this.value !== this.el.value) {\r\n console.warn('Uncontrolled input change, refresh mask manually!'); // eslint-disable-line no-console\r\n }\r\n this._selection = {\r\n start: this.selectionStart,\r\n end: this.cursorPos\r\n };\r\n }\r\n\r\n updateValue () {\r\n this.masked.value = this.el.value;\r\n }\r\n\r\n updateControl () {\r\n const newUnmaskedValue = this.masked.unmaskedValue;\r\n const newValue = this.masked.value;\r\n const isChanged = (this.unmaskedValue !== newUnmaskedValue ||\r\n this.value !== newValue);\r\n\r\n this._unmaskedValue = newUnmaskedValue;\r\n this._value = newValue;\r\n\r\n if (this.el.value !== newValue) this.el.value = newValue;\r\n if (isChanged) this._fireChangeEvents();\r\n }\r\n\r\n updateOptions (opts) {\r\n const mask = opts.mask;\r\n if (mask) this.mask = mask;\r\n\r\n this.masked.withValueRefresh(() => {\r\n for (const k in opts) {\r\n if (k === 'mask') continue;\r\n this.masked[k] = opts[k];\r\n }\r\n });\r\n\r\n this.updateControl();\r\n }\r\n\r\n updateCursor (cursorPos) {\r\n if (cursorPos == null) return;\r\n this.cursorPos = cursorPos;\r\n\r\n // also queue change cursor for mobile browsers\r\n this._delayUpdateCursor(cursorPos);\r\n }\r\n\r\n _delayUpdateCursor (cursorPos) {\r\n this._abortUpdateCursor();\r\n this._changingCursorPos = cursorPos;\r\n this._cursorChanging = setTimeout(() => {\r\n this.cursorPos = this._changingCursorPos;\r\n this._abortUpdateCursor();\r\n }, 10);\r\n }\r\n\r\n _fireChangeEvents () {\r\n this.fireEvent('accept');\r\n if (this.masked.isComplete) this.fireEvent('complete');\r\n }\r\n\r\n _abortUpdateCursor () {\r\n if (this._cursorChanging) {\r\n clearTimeout(this._cursorChanging);\r\n delete this._cursorChanging;\r\n }\r\n }\r\n\r\n _alignCursor () {\r\n this.cursorPos = this.masked.nearestInputPos(this.cursorPos);\r\n }\r\n\r\n _alignCursorFriendly () {\r\n if (this.selectionStart !== this.cursorPos) return;\r\n this._alignCursor();\r\n }\r\n\r\n on (ev, handler) {\r\n if (!this._listeners[ev]) this._listeners[ev] = [];\r\n this._listeners[ev].push(handler);\r\n return this;\r\n }\r\n\r\n off (ev, handler) {\r\n if (!this._listeners[ev]) return;\r\n if (!handler) {\r\n delete this._listeners[ev];\r\n return;\r\n }\r\n const hIndex = this._listeners[ev].indexOf(handler);\r\n if (hIndex >= 0) this._listeners.splice(hIndex, 1);\r\n return this;\r\n }\r\n\r\n _onInput () {\r\n this._abortUpdateCursor();\r\n\r\n const details = new ActionDetails(\r\n // new state\r\n this.el.value, this.cursorPos,\r\n // old state\r\n this.value, this._selection);\r\n\r\n const tailPos = details.startChangePos + details.removed.length;\r\n const tail = this.masked.extractTail(tailPos);\r\n\r\n const lastInputPos = this.masked.nearestInputPos(details.startChangePos, details.removeDirection);\r\n this.masked.clear(lastInputPos);\r\n const insertedCount = this.masked.appendWithTail(details.inserted, tail);\r\n\r\n\r\n const cursorPos = this.masked.nearestInputPos(\r\n lastInputPos + insertedCount,\r\n details.removeDirection);\r\n\r\n this.updateControl();\r\n this.updateCursor(cursorPos);\r\n }\r\n\r\n _onChange () {\r\n if (this.value !== this.el.value) {\r\n this.updateValue();\r\n }\r\n this.masked.commit();\r\n this.updateControl();\r\n }\r\n\r\n _onDrop (ev) {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n }\r\n\r\n destroy () {\r\n this.unbindEvents();\r\n this._listeners.length = 0;\r\n }\r\n}\r\n"],"names":["isString","str","String","conform","res","fallback","indexInDirection","pos","direction","DIRECTION","LEFT","refreshValueOnSet","target","key","descriptor","method","set","args","this","withValueRefresh","bind","escapeRegExp","replace","createMask","opts","mask","babelHelpers.extends","Masked","RegExp","validate","value","test","IMask","MaskedPattern","prototype","Number","MaskedNumber","Date","pattern","MaskedDate","Function","warn","el","InputMask","global","module","window","Math","self","__g","core","version","__e","it","isObject","TypeError","exec","e","require$$0","Object","defineProperty","get","a","document","is","createElement","require$$1","require$$2","S","fn","val","toString","call","valueOf","dP","O","P","Attributes","anObject","toPrimitive","IE8_DOM_DEFINE","bitmap","enumerable","configurable","writable","object","f","createDesc","hasOwnProperty","id","px","random","concat","undefined","SRC","$toString","TPL","split","inspectSource","safe","isFunction","has","hide","join","that","length","aFunction","b","c","apply","arguments","$export","type","name","source","own","out","exp","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","B","exports","expProto","ctx","redefine","U","W","R","slice","propertyIsEnumerable","cof","defined","ceil","floor","isNaN","min","toInteger","Array","isArray","arg","store","Symbol","USE_SYMBOL","uid","SPECIES","original","C","constructor","speciesConstructor","UNSCOPABLES","ArrayProto","$find","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","create","asc","$this","callbackfn","toObject","IObject","toLength","index","result","push","forced","find","max","shared","arrayIndexOf","IS_INCLUDES","fromIndex","toIObject","toIndex","IE_PROTO","names","i","keys","$keys","enumBugKeys","KEY","fails","count","n","Infinity","RangeError","repeat","maxLength","fillString","left","stringLength","fillStr","intMaxLength","fillLen","stringFiller","padStart","$pad","padEnd","_value","isInitialized","_validate","soft","clone","m","reset","nearestInputPos","cursorPos","extractInput","fromPos","toPos","extractTail","_appendTail","tail","_append","oldValueLength","consistentValue","ci","appendWithTail","appendCount","consistentAppended","ch","appended","_unmask","clear","from","to","_refreshing","unmasked","unmaskedValue","ret","commit","_mask","DEFAULTS","_Masked","_this","scale","radix","mapToRadix","signed","thousandsSeparator","postFormat","_updateNumberRegExp","regExpStrSoft","regExpStr","_numberRegExpSoft","_numberRegExp","_removeThousandsSeparators","_thousandsSeparatorRegExp","_insertThousandsSeparators","parts","_mapToRadixRegExp","removedSeparatorsCount","beforeTailPos","insertedSeparatorsBeforeTailCount","nextPos","valid","number","validnum","formatted","normalizeZeros","_normalizeZeros","padFractionalZeros","_padFractionalZeros","match","sign","zeros","num","numstr","_min","_max","_scale","_radix","_signed","_postFormat","_mapToRadix","map","_thousandsSeparator","PatternDefinition","_masked","isHollow","resolve","TYPES","INPUT","optional","PatternGroup","masked","offset","mapDefIndexToPos","RangeGroup","maxlen","_from","_to","_maxLength","_update","minstr","maxstr","placeholder","search","_matchFrom","Range","Enum","enums","group","some","indexOf","definitions","groups","_updateMask","defs","_definitions","_charDefs","_groupDefs","unmaskingBlock","optionalBlock","stopAlign","_this2","_groups","p","gNames","filter","gName","sort","char","FIXED","unmasking","STOP_CHAR","ESCAPE_CHAR","every","g","forEach","d","_this3","hiddenHollowsBefore","defIndex","isHiddenHollow","mapPosToDefIndex","di","def","_appendChunks","_appendPlaceholder","resolved","skipped","chres","chunks","fromDefIndex","input","extractInputChunks","toDefIndex","isInput","stopDefIndices","stops","s","_this4","stop","maxDefIndex","lazy","initialDefIndex","firstInputIndex","firstFilledInputIndex","firstVisibleHollowIndex","nextdi","nextDef","overflow","groupsByName","_placeholder","ph","DEFAULT_PLACEHOLDER","_this5","Definition","Group","format","parse","Y","getFullYear","_MaskedPattern","date","isComplete","isDateExist","getDate","getMonth","day","month","year","ActionDetails","oldValue","oldSelection","start","startChangePos","substr","insertedCount","end","removedCount","substring","RIGHT","_listeners","_unmaskedValue","_saveSelection","_onInput","_onChange","_onDrop","_alignCursor","_alignCursorFriendly","bindEvents","updateValue","addEventListener","unbindEvents","removeEventListener","fireEvent","ev","l","_selection","selectionStart","updateControl","newUnmaskedValue","newValue","isChanged","_fireChangeEvents","updateOptions","k","updateCursor","_delayUpdateCursor","_abortUpdateCursor","_changingCursorPos","_cursorChanging","setTimeout","on","handler","off","hIndex","splice","details","tailPos","removed","lastInputPos","removeDirection","inserted","preventDefault","stopPropagation","destroy","selectionEnd","activeElement","setSelectionRange"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"imask.min.js","sources":["../src/core/utils.js","../src/masked/factory.js","../src/imask.js","../node_modules/core-js/modules/_global.js","../node_modules/core-js/modules/_core.js","../node_modules/core-js/modules/_is-object.js","../node_modules/core-js/modules/_an-object.js","../node_modules/core-js/modules/_fails.js","../node_modules/core-js/modules/_descriptors.js","../node_modules/core-js/modules/_dom-create.js","../node_modules/core-js/modules/_ie8-dom-define.js","../node_modules/core-js/modules/_to-primitive.js","../node_modules/core-js/modules/_object-dp.js","../node_modules/core-js/modules/_property-desc.js","../node_modules/core-js/modules/_hide.js","../node_modules/core-js/modules/_has.js","../node_modules/core-js/modules/_uid.js","../node_modules/core-js/modules/_redefine.js","../node_modules/core-js/modules/_a-function.js","../node_modules/core-js/modules/_ctx.js","../node_modules/core-js/modules/_export.js","../node_modules/core-js/modules/_cof.js","../node_modules/core-js/modules/_iobject.js","../node_modules/core-js/modules/_defined.js","../node_modules/core-js/modules/_to-object.js","../node_modules/core-js/modules/_to-integer.js","../node_modules/core-js/modules/_to-length.js","../node_modules/core-js/modules/_is-array.js","../node_modules/core-js/modules/_shared.js","../node_modules/core-js/modules/_wks.js","../node_modules/core-js/modules/_array-species-constructor.js","../node_modules/core-js/modules/_array-species-create.js","../node_modules/core-js/modules/_add-to-unscopables.js","../node_modules/core-js/modules/es6.array.find.js","../node_modules/core-js/modules/_array-methods.js","../node_modules/core-js/modules/_to-iobject.js","../node_modules/core-js/modules/_to-index.js","../node_modules/core-js/modules/_shared-key.js","../node_modules/core-js/modules/_object-keys-internal.js","../node_modules/core-js/modules/_array-includes.js","../node_modules/core-js/modules/_enum-bug-keys.js","../node_modules/core-js/modules/_object-keys.js","../node_modules/core-js/modules/_object-sap.js","../node_modules/core-js/modules/es6.object.keys.js","../node_modules/core-js/modules/_string-repeat.js","../node_modules/core-js/modules/es6.string.repeat.js","../node_modules/core-js/modules/_string-pad.js","../node_modules/core-js/modules/es7.string.pad-start.js","../node_modules/core-js/modules/es7.string.pad-end.js","../src/masked/base.js","../src/masked/number.js","../src/masked/pattern/definition.js","../src/masked/pattern/group.js","../src/masked/pattern.js","../src/masked/date.js","../src/core/action-details.js","../src/controls/input.js"],"sourcesContent":["export\r\nfunction isString (str) {\r\n return typeof str === 'string' || str instanceof String;\r\n}\r\n\r\nexport\r\nfunction conform (res, str, fallback='') {\r\n return isString(res) ?\r\n res :\r\n res ?\r\n str :\r\n fallback;\r\n}\r\n\r\nexport\r\nconst DIRECTION = {\r\n NONE: 0,\r\n LEFT: -1,\r\n RIGHT: 1\r\n}\r\n\r\nexport\r\nfunction indexInDirection (pos, direction) {\r\n if (direction === DIRECTION.LEFT) --pos;\r\n return pos;\r\n}\r\n\r\nexport\r\nfunction refreshValueOnSet (target, key, descriptor) {\r\n const method = descriptor.set;\r\n descriptor.set = function (...args) {\r\n return this.withValueRefresh(method.bind(this, ...args));\r\n };\r\n}\r\n\r\nexport\r\nfunction escapeRegExp (str) {\r\n return str.replace(/([.*+?^=!:${}()|\\[\\]\\/\\\\])/g, '\\\\$1');\r\n}\r\n","import {isString} from '../core/utils';\r\nimport Masked from './base';\r\nimport MaskedNumber from './number';\r\n\r\n\r\nexport default\r\nfunction createMask (opts) {\r\n opts = Object.assign({}, opts); // clone\r\n\r\n const mask = opts.mask;\r\n\r\n if (mask instanceof Masked) {\r\n return mask;\r\n }\r\n if (mask instanceof RegExp) {\r\n opts.validate = (value) => mask.test(value);\r\n return new Masked(opts);\r\n }\r\n if (isString(mask)) {\r\n return new IMask.MaskedPattern(opts);\r\n }\r\n if (mask.prototype instanceof Masked) {\r\n delete opts.mask;\r\n return new mask(opts);\r\n }\r\n if (mask instanceof Number || typeof mask === 'number' || mask === Number) {\r\n delete opts.mask;\r\n return new MaskedNumber(opts);\r\n }\r\n if (mask instanceof Date || mask === Date) {\r\n delete opts.mask;\r\n if (opts.pattern) {\r\n opts.mask = opts.pattern;\r\n delete opts.pattern;\r\n }\r\n return new IMask.MaskedDate(opts);\r\n }\r\n if (mask instanceof Function){\r\n opts.validate = mask;\r\n return new Masked(opts);\r\n }\r\n\r\n console.warn('Mask not found for', opts); // eslint-disable-line no-console\r\n return new Masked(opts);\r\n}\r\n","import 'core-js/fn/array/find';\r\nimport 'core-js/fn/object/keys';\r\nimport 'core-js/fn/string/repeat';\r\nimport 'core-js/fn/string/pad-start';\r\nimport 'core-js/fn/string/pad-end';\r\n\r\n\r\nimport Masked from './masked/base';\r\nimport MaskedPattern from './masked/pattern';\r\nimport MaskedNumber from './masked/number';\r\nimport MaskedDate from './masked/date';\r\n\r\nimport InputMask from './controls/input';\r\n\r\n\r\nexport default\r\nfunction IMask (el, opts={}) {\r\n\t// currently available only for input elements\r\n return new InputMask(el, opts);\r\n}\r\n\r\n\r\nIMask.InputMask = InputMask;\r\n\r\nIMask.Masked = Masked;\r\nIMask.MaskedPattern = MaskedPattern;\r\nIMask.MaskedNumber = MaskedNumber;\r\nIMask.MaskedDate = MaskedDate;\r\n\r\nwindow.IMask = IMask;\r\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef","var core = module.exports = {version: '2.4.0'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};","var isObject = require('./_is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});","var isObject = require('./_is-object')\n , document = require('./_global').document\n // in old IE typeof document.createElement is 'object'\n , is = isObject(document) && isObject(document.createElement);\nmodule.exports = function(it){\n return is ? document.createElement(it) : {};\n};","module.exports = !require('./_descriptors') && !require('./_fails')(function(){\n return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;\n});","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function(it, S){\n if(!isObject(it))return it;\n var fn, val;\n if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;\n if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};","var anObject = require('./_an-object')\n , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n , toPrimitive = require('./_to-primitive')\n , dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if(IE8_DOM_DEFINE)try {\n return dP(O, P, Attributes);\n } catch(e){ /* empty */ }\n if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');\n if('value' in Attributes)O[P] = Attributes.value;\n return O;\n};","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};","var dP = require('./_object-dp')\n , createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function(object, key, value){\n return dP.f(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};","var id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};","var global = require('./_global')\n , hide = require('./_hide')\n , has = require('./_has')\n , SRC = require('./_uid')('src')\n , TO_STRING = 'toString'\n , $toString = Function[TO_STRING]\n , TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function(it){\n return $toString.call(it);\n};\n\n(module.exports = function(O, key, val, safe){\n var isFunction = typeof val == 'function';\n if(isFunction)has(val, 'name') || hide(val, 'name', key);\n if(O[key] === val)return;\n if(isFunction)has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if(O === global){\n O[key] = val;\n } else {\n if(!safe){\n delete O[key];\n hide(O, key, val);\n } else {\n if(O[key])O[key] = val;\n else hide(O, key, val);\n }\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString(){\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};","var global = require('./_global')\n , core = require('./_core')\n , hide = require('./_hide')\n , redefine = require('./_redefine')\n , ctx = require('./_ctx')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {})\n , key, own, out, exp;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if(target)redefine(target, key, out, type & $export.U);\n // export\n if(exports[key] != out)hide(exports, key, exp);\n if(IS_PROTO && expProto[key] != out)expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library` \nmodule.exports = $export;","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n return it;\n};","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function(it){\n return Object(defined(it));\n};","// 7.1.4 ToInteger\nvar ceil = Math.ceil\n , floor = Math.floor;\nmodule.exports = function(it){\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer')\n , min = Math.min;\nmodule.exports = function(it){\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};","var global = require('./_global')\n , SHARED = '__core-js_shared__'\n , store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n return store[key] || (store[key] = {});\n};","var store = require('./_shared')('wks')\n , uid = require('./_uid')\n , Symbol = require('./_global').Symbol\n , USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function(name){\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;","var isObject = require('./_is-object')\n , isArray = require('./_is-array')\n , SPECIES = require('./_wks')('species');\n\nmodule.exports = function(original){\n var C;\n if(isArray(original)){\n C = original.constructor;\n // cross-realm fallback\n if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;\n if(isObject(C)){\n C = C[SPECIES];\n if(C === null)C = undefined;\n }\n } return C === undefined ? Array : C;\n};","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function(original, length){\n return new (speciesConstructor(original))(length);\n};","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables')\n , ArrayProto = Array.prototype;\nif(ArrayProto[UNSCOPABLES] == undefined)require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function(key){\n ArrayProto[UNSCOPABLES][key] = true;\n};","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export')\n , $find = require('./_array-methods')(5)\n , KEY = 'find'\n , forced = true;\n// Shouldn't skip holes\nif(KEY in [])Array(1)[KEY](function(){ forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn/*, that = undefined */){\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx')\n , IObject = require('./_iobject')\n , toObject = require('./_to-object')\n , toLength = require('./_to-length')\n , asc = require('./_array-species-create');\nmodule.exports = function(TYPE, $create){\n var IS_MAP = TYPE == 1\n , IS_FILTER = TYPE == 2\n , IS_SOME = TYPE == 3\n , IS_EVERY = TYPE == 4\n , IS_FIND_INDEX = TYPE == 6\n , NO_HOLES = TYPE == 5 || IS_FIND_INDEX\n , create = $create || asc;\n return function($this, callbackfn, that){\n var O = toObject($this)\n , self = IObject(O)\n , f = ctx(callbackfn, that, 3)\n , length = toLength(self.length)\n , index = 0\n , result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined\n , val, res;\n for(;length > index; index++)if(NO_HOLES || index in self){\n val = self[index];\n res = f(val, index, O);\n if(TYPE){\n if(IS_MAP)result[index] = res; // map\n else if(res)switch(TYPE){\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if(IS_EVERY)return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject')\n , defined = require('./_defined');\nmodule.exports = function(it){\n return IObject(defined(it));\n};","var toInteger = require('./_to-integer')\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};","var shared = require('./_shared')('keys')\n , uid = require('./_uid');\nmodule.exports = function(key){\n return shared[key] || (shared[key] = uid(key));\n};","var has = require('./_has')\n , toIObject = require('./_to-iobject')\n , arrayIndexOf = require('./_array-includes')(false)\n , IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function(object, names){\n var O = toIObject(object)\n , i = 0\n , result = []\n , key;\n for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while(names.length > i)if(has(O, key = names[i++])){\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal')\n , enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O){\n return $keys(O, enumBugKeys);\n};","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export')\n , core = require('./_core')\n , fails = require('./_fails');\nmodule.exports = function(KEY, exec){\n var fn = (core.Object || {})[KEY] || Object[KEY]\n , exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object')\n , $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});","'use strict';\nvar toInteger = require('./_to-integer')\n , defined = require('./_defined');\n\nmodule.exports = function repeat(count){\n var str = String(defined(this))\n , res = ''\n , n = toInteger(count);\n if(n < 0 || n == Infinity)throw RangeError(\"Count can't be negative\");\n for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str;\n return res;\n};","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('./_to-length')\n , repeat = require('./_string-repeat')\n , defined = require('./_defined');\n\nmodule.exports = function(that, maxLength, fillString, left){\n var S = String(defined(that))\n , stringLength = S.length\n , fillStr = fillString === undefined ? ' ' : String(fillString)\n , intMaxLength = toLength(maxLength);\n if(intMaxLength <= stringLength || fillStr == '')return S;\n var fillLen = intMaxLength - stringLength\n , stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));\n if(stringFiller.length > fillLen)stringFiller = stringFiller.slice(0, fillLen);\n return left ? stringFiller + S : S + stringFiller;\n};\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export')\n , $pad = require('./_string-pad');\n\n$export($export.P, 'String', {\n padStart: function padStart(maxLength /*, fillString = ' ' */){\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n }\n});","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export')\n , $pad = require('./_string-pad');\n\n$export($export.P, 'String', {\n padEnd: function padEnd(maxLength /*, fillString = ' ' */){\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n }\n});","import {refreshValueOnSet} from '../core/utils';\r\n\r\n\r\nexport default\r\nclass Masked {\r\n constructor ({\r\n mask,\r\n prepare=((val) => val),\r\n validate=(() => true),\r\n commit=(() => {}),\r\n }) {\r\n this._value = '';\r\n this.mask = mask;\r\n this.prepare = prepare;\r\n this.validate = validate;\r\n this.commit = commit;\r\n this.isInitialized = true;\r\n }\r\n\r\n get mask () {\r\n return this._mask;\r\n }\r\n\r\n @refreshValueOnSet\r\n set mask (mask) {\r\n this._mask = mask;\r\n }\r\n\r\n get prepare () {\r\n return this._prepare;\r\n }\r\n\r\n @refreshValueOnSet\r\n set prepare (prepare) {\r\n this._prepare = prepare;\r\n }\r\n\r\n get validate () {\r\n return this._validate;\r\n }\r\n\r\n @refreshValueOnSet\r\n set validate (validate) {\r\n this._validate = validate;\r\n }\r\n\r\n get commit () {\r\n return this._commit;\r\n }\r\n\r\n @refreshValueOnSet\r\n set commit (commit) {\r\n this._commit = commit;\r\n }\r\n\r\n clone () {\r\n const m = new Masked(this);\r\n m._value = this.value.slice();\r\n return m;\r\n }\r\n\r\n reset () {\r\n this._value = '';\r\n }\r\n\r\n get value () {\r\n return this._value;\r\n }\r\n\r\n set value (value) {\r\n this.reset();\r\n this.appendWithTail(value);\r\n this.doCommit();\r\n }\r\n\r\n get unmaskedValue () {\r\n return this._unmask();\r\n }\r\n\r\n set unmaskedValue (value) {\r\n this.reset();\r\n this._append(value);\r\n this.appendWithTail(\"\");\r\n this.doCommit();\r\n }\r\n\r\n get isComplete () {\r\n return true;\r\n }\r\n\r\n nearestInputPos (cursorPos, /* direction */) {\r\n return cursorPos;\r\n }\r\n\r\n extractInput (fromPos=0, toPos=this.value.length) {\r\n return this.value.slice(fromPos, toPos);\r\n }\r\n\r\n extractTail (fromPos=0, toPos=this.value.length) {\r\n return this.extractInput(fromPos, toPos);\r\n }\r\n\r\n _appendTail (tail) {\r\n return !tail || this._append(tail);\r\n }\r\n\r\n _append (str, soft) {\r\n const oldValueLength = this.value.length;\r\n let consistentValue = this.clone();\r\n\r\n str = this.doPrepare(str, soft);\r\n for (let ci=0; ci outputRaw\r\n\r\n // TODO\r\n // insert (str, fromPos, soft)\r\n\r\n // splice (start, deleteCount, inserted, removeDirection) {\r\n // const tailPos = start + deleteCount;\r\n // const tail = this.extractTail(tailPos);\r\n\r\n // start = this.nearestInputPos(start, removeDirection);\r\n // this.clear(start);\r\n // return this.appendWithTail(inserted, tail);\r\n // }\r\n}\r\n","import {escapeRegExp, refreshValueOnSet, DIRECTION, indexInDirection} from '../core/utils';\r\nimport Masked from './base';\r\n\r\n\r\nexport default\r\nclass MaskedNumber extends Masked {\r\n constructor (opts={}) {\r\n opts = Object.assign({}, MaskedNumber.DEFAULTS, opts);\r\n super(opts);\r\n delete this.isInitialized;\r\n\r\n const {scale, radix, mapToRadix, min, max, signed, thousandsSeparator, postFormat} = opts;\r\n\r\n this.min = min;\r\n this.max = max;\r\n this.scale = scale;\r\n this.radix = radix;\r\n this.mapToRadix = mapToRadix;\r\n this.signed = signed;\r\n this.thousandsSeparator = thousandsSeparator;\r\n this.postFormat = postFormat;\r\n\r\n this._updateNumberRegExp();\r\n\r\n this.isInitialized = true;\r\n }\r\n\r\n _updateNumberRegExp () {\r\n // TODO refactor?\r\n let regExpStrSoft = '^';\r\n let regExpStr = '^';\r\n\r\n if (this.signed) {\r\n regExpStrSoft += '([+|\\\\-]?|([+|\\\\-]?(0|([1-9]+\\\\d*))))';\r\n regExpStr += '[+|\\\\-]?';\r\n } else {\r\n regExpStrSoft += '(0|([1-9]+\\\\d*))';\r\n }\r\n regExpStr += '\\\\d*';\r\n\r\n if (this.scale) {\r\n regExpStrSoft += '(' + this.radix + '\\\\d{0,' + this.scale + '})?';\r\n regExpStr += '(' + this.radix + '\\\\d{0,' + this.scale + '})?';\r\n }\r\n\r\n regExpStrSoft += '$';\r\n regExpStr += '$';\r\n\r\n this._numberRegExpSoft = new RegExp(regExpStrSoft);\r\n this._numberRegExp = new RegExp(regExpStr)\r\n }\r\n\r\n extractTail (fromPos=0, toPos=this.value.length) {\r\n return this._removeThousandsSeparators(super.extractTail(fromPos, toPos));\r\n }\r\n\r\n _removeThousandsSeparators (value) {\r\n return value.replace(this._thousandsSeparatorRegExp, '');\r\n }\r\n\r\n _insertThousandsSeparators (value) {\r\n // https://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript\r\n const parts = value.split(this.radix);\r\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, this.thousandsSeparator);\r\n return parts.join(this.radix);\r\n }\r\n\r\n doPrepare (str, soft) {\r\n return super.doPrepare(this._removeThousandsSeparators(str.replace(this._mapToRadixRegExp, this.radix)), soft);\r\n }\r\n\r\n appendWithTail (str, tail) {\r\n const oldValueLength = this.value.length;\r\n this._value = this._removeThousandsSeparators(this.value);\r\n let removedSeparatorsCount = oldValueLength - this.value.length;\r\n\r\n\r\n const appended = super.appendWithTail(str, tail);\r\n\r\n\r\n this._value = this._insertThousandsSeparators(this.value);\r\n\r\n let beforeTailPos = oldValueLength + appended - removedSeparatorsCount;\r\n this._value = this._insertThousandsSeparators(this.value);\r\n let insertedSeparatorsBeforeTailCount = 0;\r\n for (let pos = 0; pos <= beforeTailPos; ++pos) {\r\n if (this.value[pos] === this.thousandsSeparator) {\r\n ++insertedSeparatorsBeforeTailCount;\r\n ++beforeTailPos;\r\n }\r\n }\r\n\r\n return appended - removedSeparatorsCount + insertedSeparatorsBeforeTailCount;\r\n }\r\n\r\n nearestInputPos (cursorPos, direction=DIRECTION.LEFT) {\r\n if (!direction) return cursorPos;\r\n\r\n const nextPos = indexInDirection(cursorPos, direction);\r\n if (this.value[nextPos] === this.thousandsSeparator) cursorPos += direction;\r\n return cursorPos;\r\n }\r\n\r\n doValidate (soft) {\r\n const regexp = soft ? this._numberRegExpSoft : this._numberRegExp;\r\n\r\n // validate as string\r\n let valid = regexp.test(this._removeThousandsSeparators(this.value));\r\n\r\n if (valid) {\r\n // validate as number\r\n const number = this.number;\r\n valid = valid && !isNaN(number) &&\r\n // check min bound for negative values\r\n (this.min == null || this.min >= 0 || this.min <= this.number) &&\r\n // check max bound for positive values\r\n (this.max == null || this.max <= 0 || this.number <= this.max);\r\n }\r\n\r\n return valid && super.doValidate(soft);\r\n }\r\n\r\n doCommit () {\r\n const number = this.number;\r\n let validnum = number;\r\n\r\n // check bounds\r\n if (this.min != null) validnum = Math.max(validnum, this.min);\r\n if (this.max != null) validnum = Math.min(validnum, this.max);\r\n\r\n if (validnum !== number) {\r\n this.unmaskedValue = '' + validnum;\r\n }\r\n\r\n let formatted = this.value;\r\n\r\n if (this.postFormat.normalizeZeros) {\r\n formatted = this._normalizeZeros(formatted);\r\n }\r\n\r\n if (this.postFormat.padFractionalZeros) {\r\n formatted = this._padFractionalZeros(formatted);\r\n }\r\n\r\n this._value = formatted;\r\n super.doCommit();\r\n }\r\n\r\n _normalizeZeros (value) {\r\n const parts = this._removeThousandsSeparators(value).split(this.radix);\r\n\r\n // remove leading zeros\r\n parts[0] = parts[0].replace(/^(\\D*)(0*)(\\d*)/, (match, sign, zeros, num) => sign + num);\r\n // add leading zero\r\n if (value.length && !/\\d$/.test(parts[0])) parts[0] = parts[0] + '0';\r\n\r\n if (parts.length > 1) {\r\n parts[1] = parts[1].replace(/0*$/, ''); // remove trailing zeros\r\n if (!parts[1].length) parts.length = 1; // remove fractional\r\n }\r\n\r\n return this._insertThousandsSeparators(parts.join(this.radix));\r\n }\r\n\r\n _padFractionalZeros (value) {\r\n const parts = value.split(this.radix);\r\n if (parts.length < 2) parts.push('');\r\n parts[1] = parts[1].padEnd(this.scale, '0');\r\n return parts.join(this.radix);\r\n }\r\n\r\n get number () {\r\n let numstr =\r\n this._removeThousandsSeparators(\r\n this._normalizeZeros(\r\n this.unmaskedValue))\r\n .replace(this.radix, '.');\r\n\r\n return Number(numstr);\r\n }\r\n\r\n set number (number) {\r\n this.unmaskedValue = '' + number;\r\n }\r\n\r\n get min () {\r\n return this._min;\r\n }\r\n\r\n @refreshValueOnSet\r\n set min (min) {\r\n this._min = min;\r\n }\r\n\r\n get max () {\r\n return this._max;\r\n }\r\n\r\n @refreshValueOnSet\r\n set max (max) {\r\n this._max = max;\r\n }\r\n\r\n get scale () {\r\n return this._scale;\r\n }\r\n\r\n @refreshValueOnSet\r\n set scale (scale) {\r\n this._scale = scale;\r\n }\r\n\r\n get radix () {\r\n return this._radix;\r\n }\r\n\r\n @refreshValueOnSet\r\n set radix (radix) {\r\n this._radix = radix;\r\n this._updateNumberRegExp();\r\n }\r\n\r\n get signed () {\r\n return this._signed || (this.min != null && this.min < 0) || (this.max != null && this.max < 0);\r\n }\r\n\r\n @refreshValueOnSet\r\n set signed (signed) {\r\n this._signed = signed;\r\n }\r\n\r\n get postFormat () {\r\n return this._postFormat;\r\n }\r\n\r\n @refreshValueOnSet\r\n set postFormat (postFormat) {\r\n this._postFormat = {\r\n ...MaskedNumber.DEFAULTS.postFormat,\r\n ...postFormat\r\n };\r\n }\r\n\r\n get mapToRadix () {\r\n return this._mapToRadix;\r\n }\r\n\r\n @refreshValueOnSet\r\n set mapToRadix (mapToRadix) {\r\n this._mapToRadix = mapToRadix;\r\n this._mapToRadixRegExp = new RegExp('[' +\r\n mapToRadix.map(escapeRegExp).join('') +\r\n ']', 'g');\r\n }\r\n\r\n get thousandsSeparator () {\r\n return this._thousandsSeparator;\r\n }\r\n\r\n @refreshValueOnSet\r\n set thousandsSeparator (thousandsSeparator) {\r\n this._thousandsSeparator = thousandsSeparator;\r\n this._thousandsSeparatorRegExp = new RegExp(escapeRegExp(thousandsSeparator), 'g');\r\n }\r\n}\r\nMaskedNumber.DEFAULTS = {\r\n radix: ',',\r\n thousandsSeparator: '',\r\n mapToRadix: ['.'],\r\n scale: 2,\r\n postFormat: {\r\n normalizeZeros: true,\r\n }\r\n};\r\n","import createMask from '../factory';\r\n\r\n\r\nexport default\r\nclass PatternDefinition {\r\n constructor(opts) {\r\n Object.assign(this, opts);\r\n\r\n if (this.mask) {\r\n this._masked = createMask(opts);\r\n }\r\n }\r\n\r\n reset () {\r\n this.isHollow = false;\r\n if (this._masked) this._masked.reset();\r\n }\r\n\r\n get isInput () {\r\n return this.type === PatternDefinition.TYPES.INPUT;\r\n }\r\n\r\n get isHiddenHollow () {\r\n return this.isHollow && this.optional;\r\n }\r\n\r\n resolve (ch) {\r\n if (!this._masked) return false;\r\n // TODO seems strange\r\n this._masked.value = ch;\r\n return this._masked.value;\r\n }\r\n}\r\n\r\nPatternDefinition.DEFAULTS = {\r\n '0': /\\d/,\r\n 'a': /[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/, // http://stackoverflow.com/a/22075070\r\n '*': /./\r\n};\r\nPatternDefinition.TYPES = {\r\n INPUT: 'input',\r\n FIXED: 'fixed'\r\n};\r\n","export default\r\nclass PatternGroup {\r\n constructor(masked, {name, offset, mask, validate}) {\r\n this.masked = masked;\r\n this.name = name;\r\n this.offset = offset;\r\n this.mask = mask;\r\n this.validate = validate || (() => true);\r\n }\r\n\r\n get value () {\r\n return this.masked.value.slice(\r\n this.masked.mapDefIndexToPos(this.offset),\r\n this.masked.mapDefIndexToPos(this.offset + this.mask.length));\r\n }\r\n\r\n get unmaskedValue () {\r\n return this.masked.extractInput(\r\n this.masked.mapDefIndexToPos(this.offset),\r\n this.masked.mapDefIndexToPos(this.offset + this.mask.length));\r\n }\r\n\r\n doValidate (soft) {\r\n return this.validate(this.value, this, soft);\r\n }\r\n}\r\n\r\nexport\r\nclass RangeGroup {\r\n constructor ([from, to], maxlen=(to+'').length) {\r\n this._from = from;\r\n this._to = to;\r\n this._maxLength = maxlen;\r\n this.validate = this.validate.bind(this);\r\n\r\n this._update();\r\n }\r\n\r\n get to () {\r\n return this._to;\r\n }\r\n\r\n set to (to) {\r\n this._to = to;\r\n this._update();\r\n }\r\n\r\n get from () {\r\n return this._from;\r\n }\r\n\r\n set from (from) {\r\n this._from = from;\r\n this._update();\r\n }\r\n\r\n get maxLength () {\r\n return this._maxLength;\r\n }\r\n\r\n set maxLength (maxLength) {\r\n this._maxLength = maxLength;\r\n this._update();\r\n }\r\n\r\n get _matchFrom () {\r\n return this.maxLength - (this.from + '').length;\r\n }\r\n\r\n _update() {\r\n this._maxLength = Math.max(this._maxLength, (this.to + '').length);\r\n this.mask = '0'.repeat(this._maxLength);\r\n }\r\n\r\n validate (str) {\r\n let minstr = '';\r\n let maxstr = '';\r\n\r\n const [, placeholder, num] = str.match(/^(\\D*)(\\d*)(\\D*)/);\r\n if (num) {\r\n minstr = ('0'.repeat(placeholder.length) + num);\r\n maxstr = ('9'.repeat(placeholder.length) + num);\r\n }\r\n\r\n const firstNonZero = str.search(/[^0]/);\r\n if (firstNonZero === -1 && str.length <= this._matchFrom) return true;\r\n\r\n minstr = minstr.padEnd(this._maxLength, '0');\r\n maxstr = maxstr.padEnd(this._maxLength, '9');\r\n\r\n return this.from <= Number(maxstr) && Number(minstr) <= this.to;\r\n }\r\n}\r\n\r\nexport\r\nfunction EnumGroup (enums) {\r\n return {\r\n mask: '*'.repeat(enums[0].length),\r\n validate: (value, group) => enums.some(e => e.indexOf(group.unmaskedValue) >= 0)\r\n };\r\n}\r\n\r\nPatternGroup.Range = RangeGroup;\r\nPatternGroup.Enum = EnumGroup;\r\n","import {conform, DIRECTION, indexInDirection, refreshValueOnSet} from '../core/utils';\r\nimport Masked from './base';\r\nimport PatternDefinition from './pattern/definition';\r\nimport PatternGroup from './pattern/group';\r\n\r\n\r\nexport default\r\nclass MaskedPattern extends Masked {\r\n constructor (opts={}) {\r\n const {definitions, placeholder, groups} = opts;\r\n super(opts);\r\n delete this.isInitialized;\r\n\r\n this.placeholder = placeholder;\r\n this.definitions = definitions;\r\n this.groups = groups;\r\n\r\n this.isInitialized = true;\r\n }\r\n\r\n get placeholder () {\r\n return this._placeholder;\r\n }\r\n\r\n @refreshValueOnSet\r\n set placeholder (ph) {\r\n this._placeholder = {\r\n ...MaskedPattern.DEFAULT_PLACEHOLDER,\r\n ...ph\r\n };\r\n }\r\n\r\n get definitions () {\r\n return this._definitions;\r\n }\r\n\r\n @refreshValueOnSet\r\n set definitions (defs) {\r\n defs = {\r\n ...PatternDefinition.DEFAULTS,\r\n ...defs\r\n };\r\n\r\n this._definitions = defs;\r\n this._updateMask();\r\n }\r\n\r\n get mask () {\r\n return this._mask;\r\n }\r\n\r\n @refreshValueOnSet\r\n set mask (mask) {\r\n this._mask = mask;\r\n this._updateMask();\r\n }\r\n\r\n _updateMask () {\r\n const defs = this._definitions;\r\n this._charDefs = [];\r\n this._groupDefs = [];\r\n\r\n let pattern = this.mask;\r\n if (!pattern || !defs) return;\r\n\r\n let unmaskingBlock = false;\r\n let optionalBlock = false;\r\n let stopAlign = false;\r\n\r\n\r\n for (let i=0; i p.indexOf(gName) === 0);\r\n // order by key length\r\n gNames.sort((a, b) => b.length - a.length);\r\n // use group name with max length\r\n const gName = gNames[0];\r\n if (gName) {\r\n const group = this._groups[gName];\r\n this._groupDefs.push(new PatternGroup(this, {\r\n name: gName,\r\n offset: this._charDefs.length,\r\n mask: group.mask,\r\n validate: group.validate\r\n }));\r\n pattern = pattern.replace(gName, group.mask);\r\n }\r\n }\r\n\r\n let char = pattern[i];\r\n let type = !unmaskingBlock && char in defs ?\r\n PatternDefinition.TYPES.INPUT :\r\n PatternDefinition.TYPES.FIXED;\r\n const unmasking = type === PatternDefinition.TYPES.INPUT || unmaskingBlock;\r\n const optional = type === PatternDefinition.TYPES.INPUT && optionalBlock;\r\n\r\n if (char === MaskedPattern.STOP_CHAR) {\r\n stopAlign = true;\r\n continue;\r\n }\r\n\r\n if (char === '{' || char === '}') {\r\n unmaskingBlock = !unmaskingBlock;\r\n continue;\r\n }\r\n\r\n if (char === '[' || char === ']') {\r\n optionalBlock = !optionalBlock;\r\n continue;\r\n }\r\n\r\n if (char === MaskedPattern.ESCAPE_CHAR) {\r\n ++i;\r\n char = pattern[i];\r\n // TODO validation\r\n if (!char) break;\r\n type = PatternDefinition.TYPES.FIXED;\r\n }\r\n\r\n this._charDefs.push(new PatternDefinition({\r\n char,\r\n type,\r\n optional,\r\n stopAlign,\r\n mask: unmasking &&\r\n (type === PatternDefinition.TYPES.INPUT ?\r\n defs[char] :\r\n (value => value === char))\r\n }));\r\n\r\n stopAlign = false;\r\n }\r\n }\r\n\r\n doValidate (soft) {\r\n return this._groupDefs.every(g => g.doValidate(soft)) && super.doValidate(soft);\r\n }\r\n\r\n clone () {\r\n const m = new MaskedPattern(this);\r\n m._value = this.value;\r\n m._charDefs.forEach((d, i) => Object.assign(d, this._charDefs[i]));\r\n m._groupDefs.forEach((d, i) => Object.assign(d, this._groupDefs[i]));\r\n return m;\r\n }\r\n\r\n reset () {\r\n super.reset();\r\n this._charDefs.forEach(d => {delete d.isHollow;});\r\n }\r\n\r\n get isComplete () {\r\n return !this._charDefs.some((d, i) =>\r\n d.isInput && !d.optional && (d.isHollow || !this.extractInput(i, i+1)));\r\n }\r\n\r\n hiddenHollowsBefore (defIndex) {\r\n return this._charDefs\r\n .slice(0, defIndex)\r\n .filter(d => d.isHiddenHollow)\r\n .length;\r\n }\r\n\r\n mapDefIndexToPos (defIndex) {\r\n if (defIndex == null) return;\r\n return defIndex - this.hiddenHollowsBefore(defIndex);\r\n }\r\n\r\n mapPosToDefIndex (pos) {\r\n if (pos == null) return;\r\n let defIndex = pos;\r\n for (let di=0; di= defIndex) break;\r\n if (def.isHiddenHollow) ++defIndex;\r\n }\r\n return defIndex;\r\n }\r\n\r\n _unmask () {\r\n const str = this.value;\r\n let unmasked = '';\r\n\r\n for (let ci=0, di=0; ci [d, i])\r\n .slice(fromDefIndex, toDefIndex)\r\n .filter(([d]) => d.stopAlign)\r\n .map(([, i]) => i);\r\n\r\n const stops = [\r\n fromDefIndex,\r\n ...stopDefIndices,\r\n toDefIndex\r\n ];\r\n\r\n return stops.map((s, i) => [\r\n stopDefIndices.indexOf(s) >= 0 ?\r\n s :\r\n null,\r\n\r\n this.extractInput(\r\n this.mapDefIndexToPos(s),\r\n this.mapDefIndexToPos(stops[++i]))\r\n ]).filter(([stop, input]) => stop != null || input);\r\n }\r\n\r\n _appendPlaceholder (toDefIndex) {\r\n const maxDefIndex = toDefIndex || this._charDefs.length;\r\n for (let di=this.mapPosToDefIndex(this.value.length); di < maxDefIndex; ++di) {\r\n const def = this._charDefs[di];\r\n if (def.isInput) def.isHollow = true;\r\n\r\n if (!this.placeholder.lazy || toDefIndex) {\r\n this._value += !def.isInput ?\r\n def.char :\r\n !def.optional ?\r\n this.placeholder.char :\r\n '';\r\n }\r\n }\r\n }\r\n\r\n clear (from=0, to=this.value.length) {\r\n this._value = this.value.slice(0, from) + this.value.slice(to);\r\n const fromDefIndex = this.mapPosToDefIndex(from);\r\n const toDefIndex = this.mapPosToDefIndex(to);\r\n this._charDefs\r\n .slice(fromDefIndex, toDefIndex)\r\n .forEach(d => d.reset());\r\n }\r\n\r\n nearestInputPos (cursorPos, direction=DIRECTION.LEFT) {\r\n if (!direction) return cursorPos;\r\n\r\n const initialDefIndex = this.mapPosToDefIndex(cursorPos);\r\n let di = initialDefIndex;\r\n\r\n let firstInputIndex,\r\n firstFilledInputIndex,\r\n firstVisibleHollowIndex,\r\n nextdi;\r\n\r\n // search forward\r\n for (nextdi = indexInDirection(di, direction); 0 <= nextdi && nextdi < this._charDefs.length; di += direction, nextdi += direction) {\r\n const nextDef = this._charDefs[nextdi];\r\n if (firstInputIndex == null && nextDef.isInput) firstInputIndex = di;\r\n if (firstVisibleHollowIndex == null && nextDef.isHollow && !nextDef.isHiddenHollow) firstVisibleHollowIndex = di;\r\n if (nextDef.isInput && !nextDef.isHollow) {\r\n firstFilledInputIndex = di;\r\n break;\r\n }\r\n }\r\n\r\n if (direction === DIRECTION.LEFT || firstInputIndex == null) {\r\n // search backwards\r\n direction = -direction;\r\n let overflow = false;\r\n\r\n // find hollows only before initial pos\r\n for (nextdi = indexInDirection(di, direction);\r\n 0 <= nextdi && nextdi < this._charDefs.length;\r\n di += direction, nextdi += direction)\r\n {\r\n const nextDef = this._charDefs[nextdi];\r\n if (nextDef.isInput) {\r\n firstInputIndex = di;\r\n if (nextDef.isHollow && !nextDef.isHiddenHollow) break;\r\n }\r\n\r\n // if hollow not found before start position - set `overflow`\r\n // and try to find just any input\r\n if (di === initialDefIndex) overflow = true;\r\n\r\n // first input found\r\n if (overflow && firstInputIndex != null) break;\r\n }\r\n\r\n // process overflow\r\n overflow = overflow || nextdi >= this._charDefs.length;\r\n if (overflow && firstInputIndex != null) di = firstInputIndex;\r\n } else if (firstFilledInputIndex == null) {\r\n // adjust index if delete at right and filled input not found at right\r\n di = firstVisibleHollowIndex != null ?\r\n firstVisibleHollowIndex :\r\n firstInputIndex;\r\n }\r\n\r\n return this.mapDefIndexToPos(di);\r\n }\r\n\r\n get groups () { return this._groups; }\r\n\r\n @refreshValueOnSet\r\n set groups (groups) {\r\n this._groups = groups;\r\n this._updateMask();\r\n }\r\n\r\n group (name) {\r\n return this.groupsByName(name)[0];\r\n }\r\n\r\n groupsByName (name) {\r\n return this._groupDefs.filter(g => g.name === name);\r\n }\r\n}\r\n\r\nMaskedPattern.DEFAULT_PLACEHOLDER = {\r\n lazy: true,\r\n char: '_'\r\n};\r\nMaskedPattern.STOP_CHAR = '`';\r\nMaskedPattern.ESCAPE_CHAR = '\\\\';\r\nMaskedPattern.Definition = PatternDefinition;\r\nMaskedPattern.Group = PatternGroup;\r\n","import {refreshValueOnSet} from '../core/utils';\r\nimport MaskedPattern from './pattern';\r\nimport PatternGroup from './pattern/group';\r\n\r\n\r\nexport default\r\nclass MaskedDate extends MaskedPattern {\r\n constructor (opts={}) {\r\n const groups = opts.groups;\r\n opts = Object.assign({}, MaskedDate.DEFAULTS, opts);\r\n const {min, max, format, parse} = opts;\r\n\r\n opts.groups = Object.assign({}, MaskedDate.DEFAULTS.groups);\r\n if (opts.groups.Y) {\r\n // adjust year group\r\n if (min) opts.groups.Y.from = min.getFullYear();\r\n if (max) opts.groups.Y.to = max.getFullYear();\r\n }\r\n\r\n Object.assign(opts.groups, groups);\r\n\r\n super(opts);\r\n delete this.isInitialized;\r\n\r\n this.min = min;\r\n this.max = max;\r\n this.format = format;\r\n this.parse = parse;\r\n\r\n this.isInitialized = true;\r\n }\r\n\r\n doValidate (soft) {\r\n const valid = super.doValidate(soft);\r\n const date = this.date;\r\n\r\n return valid &&\r\n (!this.isComplete ||\r\n this.isDateExist(this.value) && date &&\r\n (this.min == null || this.min <= date) &&\r\n (this.max == null || date <= this.max));\r\n }\r\n\r\n isDateExist (str) {\r\n return this.format(this.parse(str)) === str;\r\n }\r\n\r\n get date () {\r\n return this.isComplete ?\r\n this.parse(this.value) :\r\n null;\r\n }\r\n\r\n set date (date) {\r\n this.value = this.format(date);\r\n }\r\n\r\n get min () {\r\n return this._min;\r\n }\r\n\r\n @refreshValueOnSet\r\n set min (min) {\r\n this._min = min;\r\n }\r\n\r\n get max () {\r\n return this._max;\r\n }\r\n\r\n @refreshValueOnSet\r\n set max (max) {\r\n this._max = max;\r\n }\r\n}\r\nMaskedDate.DEFAULTS = {\r\n mask: 'd{.}`m{.}`Y',\r\n format: date => {\r\n const day = ('' + date.getDate()).padStart(2, '0');\r\n const month = ('' + (date.getMonth() + 1)).padStart(2, '0');\r\n const year = date.getFullYear();\r\n\r\n return [day, month, year].join('.');\r\n },\r\n parse: str => {\r\n const [day, month, year] = str.split('.');\r\n return new Date(year, month - 1, day);\r\n },\r\n groups: {\r\n d: new PatternGroup.Range([1, 31]),\r\n m: new PatternGroup.Range([1, 12]),\r\n Y: new PatternGroup.Range([1900, 9999]),\r\n },\r\n};\r\n","import {DIRECTION} from './utils';\r\n\r\n\r\nexport default\r\nclass ActionDetails {\r\n constructor (value, cursorPos, oldValue, oldSelection) {\r\n this.value = value;\r\n this.cursorPos = cursorPos;\r\n this.oldValue = oldValue;\r\n this.oldSelection = oldSelection;\r\n }\r\n\r\n get startChangePos () {\r\n return Math.min(this.cursorPos, this.oldSelection.start);\r\n }\r\n\r\n get insertedCount () {\r\n return this.cursorPos - this.startChangePos;\r\n }\r\n\r\n get inserted () {\r\n return this.value.substr(this.startChangePos, this.insertedCount);\r\n }\r\n\r\n get removedCount () {\r\n // Math.max for opposite operation\r\n return Math.max((this.oldSelection.end - this.startChangePos) ||\r\n // for Delete\r\n this.oldValue.length - this.value.length, 0);\r\n }\r\n\r\n get removed () {\r\n return this.oldValue.substr(this.startChangePos, this.removedCount);\r\n }\r\n\r\n get head () {\r\n return this.value.substring(0, this.startChangePos);\r\n }\r\n\r\n get tail () {\r\n this.value.substring(this.startChangePos + this.insertedCount);\r\n }\r\n\r\n get removeDirection () {\r\n return this.removedCount &&\r\n ((this.oldSelection.end === this.cursorPos || this.insertedCount) ?\r\n DIRECTION.RIGHT :\r\n DIRECTION.LEFT);\r\n }\r\n}\r\n","import ActionDetails from '../core/action-details';\r\nimport createMask from '../masked/factory';\r\n\r\n\r\nexport default\r\nclass InputMask {\r\n constructor (el, opts) {\r\n this.el = el;\r\n this.masked = createMask(opts);\r\n\r\n this._listeners = {};\r\n this._value = '';\r\n this._unmaskedValue = '';\r\n\r\n this._saveSelection = this._saveSelection.bind(this);\r\n this._onInput = this._onInput.bind(this);\r\n this._onChange = this._onChange.bind(this);\r\n this._onDrop = this._onDrop.bind(this);\r\n this._alignCursor = this._alignCursor.bind(this);\r\n this._alignCursorFriendly = this._alignCursorFriendly.bind(this);\r\n\r\n this.bindEvents();\r\n\r\n // refresh\r\n this.updateValue();\r\n this._onChange();\r\n }\r\n\r\n get mask () { return this.masked.mask; }\r\n set mask (mask) {\r\n if (typeof mask === typeof this.masked.mask) {\r\n this.masked.mask = mask;\r\n return;\r\n }\r\n\r\n const unmasked = this.masked ? this.masked.unmaskedValue : null;\r\n this.masked = createMask({mask});\r\n if (unmasked != null) this.masked.unmaskedValue = unmasked;\r\n }\r\n\r\n get value () {\r\n return this._value;\r\n }\r\n\r\n set value (str) {\r\n this.masked.value = str;\r\n this.updateControl();\r\n this._alignCursor();\r\n }\r\n\r\n get unmaskedValue () {\r\n return this._unmaskedValue;\r\n }\r\n\r\n set unmaskedValue (str) {\r\n this.masked.unmaskedValue = str;\r\n this.updateControl();\r\n this._alignCursor();\r\n }\r\n\r\n bindEvents () {\r\n this.el.addEventListener('keydown', this._saveSelection);\r\n this.el.addEventListener('input', this._onInput);\r\n this.el.addEventListener('drop', this._onDrop);\r\n this.el.addEventListener('click', this._alignCursorFriendly);\r\n this.el.addEventListener('change', this._onChange);\r\n }\r\n\r\n unbindEvents () {\r\n this.el.removeEventListener('keydown', this._saveSelection);\r\n this.el.removeEventListener('input', this._onInput);\r\n this.el.removeEventListener('drop', this._onDrop);\r\n this.el.removeEventListener('click', this._alignCursorFriendly);\r\n this.el.removeEventListener('change', this._onChange);\r\n }\r\n\r\n fireEvent (ev) {\r\n const listeners = this._listeners[ev] || [];\r\n listeners.forEach(l => l());\r\n }\r\n\r\n get selectionStart () {\r\n return this._cursorChanging ?\r\n this._changingCursorPos :\r\n\r\n this.el.selectionStart;\r\n }\r\n\r\n get cursorPos () {\r\n return this._cursorChanging ?\r\n this._changingCursorPos :\r\n\r\n this.el.selectionEnd;\r\n }\r\n\r\n set cursorPos (pos) {\r\n if (this.el !== document.activeElement) return;\r\n\r\n this.el.setSelectionRange(pos, pos);\r\n this._saveSelection();\r\n }\r\n\r\n _saveSelection (/* ev */) {\r\n if (this.value !== this.el.value) {\r\n console.warn('Uncontrolled input change, refresh mask manually!'); // eslint-disable-line no-console\r\n }\r\n this._selection = {\r\n start: this.selectionStart,\r\n end: this.cursorPos\r\n };\r\n }\r\n\r\n updateValue () {\r\n this.masked.value = this.el.value;\r\n }\r\n\r\n updateControl () {\r\n const newUnmaskedValue = this.masked.unmaskedValue;\r\n const newValue = this.masked.value;\r\n const isChanged = (this.unmaskedValue !== newUnmaskedValue ||\r\n this.value !== newValue);\r\n\r\n this._unmaskedValue = newUnmaskedValue;\r\n this._value = newValue;\r\n\r\n if (this.el.value !== newValue) this.el.value = newValue;\r\n if (isChanged) this._fireChangeEvents();\r\n }\r\n\r\n updateOptions (opts) {\r\n const mask = opts.mask;\r\n if (mask) this.mask = mask;\r\n\r\n this.masked.withValueRefresh(() => {\r\n for (const k in opts) {\r\n if (k === 'mask') continue;\r\n this.masked[k] = opts[k];\r\n }\r\n });\r\n\r\n this.updateControl();\r\n }\r\n\r\n updateCursor (cursorPos) {\r\n if (cursorPos == null) return;\r\n this.cursorPos = cursorPos;\r\n\r\n // also queue change cursor for mobile browsers\r\n this._delayUpdateCursor(cursorPos);\r\n }\r\n\r\n _delayUpdateCursor (cursorPos) {\r\n this._abortUpdateCursor();\r\n this._changingCursorPos = cursorPos;\r\n this._cursorChanging = setTimeout(() => {\r\n this.cursorPos = this._changingCursorPos;\r\n this._abortUpdateCursor();\r\n }, 10);\r\n }\r\n\r\n _fireChangeEvents () {\r\n this.fireEvent('accept');\r\n if (this.masked.isComplete) this.fireEvent('complete');\r\n }\r\n\r\n _abortUpdateCursor () {\r\n if (this._cursorChanging) {\r\n clearTimeout(this._cursorChanging);\r\n delete this._cursorChanging;\r\n }\r\n }\r\n\r\n _alignCursor () {\r\n this.cursorPos = this.masked.nearestInputPos(this.cursorPos);\r\n }\r\n\r\n _alignCursorFriendly () {\r\n if (this.selectionStart !== this.cursorPos) return;\r\n this._alignCursor();\r\n }\r\n\r\n on (ev, handler) {\r\n if (!this._listeners[ev]) this._listeners[ev] = [];\r\n this._listeners[ev].push(handler);\r\n return this;\r\n }\r\n\r\n off (ev, handler) {\r\n if (!this._listeners[ev]) return;\r\n if (!handler) {\r\n delete this._listeners[ev];\r\n return;\r\n }\r\n const hIndex = this._listeners[ev].indexOf(handler);\r\n if (hIndex >= 0) this._listeners.splice(hIndex, 1);\r\n return this;\r\n }\r\n\r\n _onInput () {\r\n this._abortUpdateCursor();\r\n\r\n const details = new ActionDetails(\r\n // new state\r\n this.el.value, this.cursorPos,\r\n // old state\r\n this.value, this._selection);\r\n\r\n const tailPos = details.startChangePos + details.removed.length;\r\n const tail = this.masked.extractTail(tailPos);\r\n\r\n const lastInputPos = this.masked.nearestInputPos(details.startChangePos, details.removeDirection);\r\n this.masked.clear(lastInputPos);\r\n const insertedCount = this.masked.appendWithTail(details.inserted, tail);\r\n\r\n\r\n const cursorPos = this.masked.nearestInputPos(\r\n lastInputPos + insertedCount,\r\n details.removeDirection);\r\n\r\n this.updateControl();\r\n this.updateCursor(cursorPos);\r\n }\r\n\r\n _onChange () {\r\n if (this.value !== this.el.value) {\r\n this.updateValue();\r\n }\r\n this.masked.doCommit();\r\n this.updateControl();\r\n }\r\n\r\n _onDrop (ev) {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n }\r\n\r\n destroy () {\r\n this.unbindEvents();\r\n this._listeners.length = 0;\r\n }\r\n}\r\n"],"names":["isString","str","String","conform","res","fallback","indexInDirection","pos","direction","DIRECTION","LEFT","refreshValueOnSet","target","key","descriptor","method","set","args","this","withValueRefresh","bind","escapeRegExp","replace","createMask","opts","mask","babelHelpers.extends","Masked","RegExp","validate","value","test","IMask","MaskedPattern","prototype","Number","MaskedNumber","Date","pattern","MaskedDate","Function","warn","el","InputMask","global","module","window","Math","self","__g","core","version","__e","it","isObject","TypeError","exec","e","require$$0","Object","defineProperty","get","a","document","is","createElement","require$$1","require$$2","S","fn","val","toString","call","valueOf","dP","O","P","Attributes","anObject","toPrimitive","IE8_DOM_DEFINE","bitmap","enumerable","configurable","writable","object","f","createDesc","hasOwnProperty","id","px","random","concat","undefined","SRC","$toString","TPL","split","inspectSource","safe","isFunction","has","hide","join","that","length","aFunction","b","c","apply","arguments","$export","type","name","source","own","out","exp","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","B","exports","expProto","ctx","redefine","U","W","R","slice","propertyIsEnumerable","cof","defined","ceil","floor","isNaN","min","toInteger","Array","isArray","arg","store","Symbol","USE_SYMBOL","uid","SPECIES","original","C","constructor","speciesConstructor","UNSCOPABLES","ArrayProto","$find","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","create","asc","$this","callbackfn","toObject","IObject","toLength","index","result","push","forced","find","max","shared","arrayIndexOf","IS_INCLUDES","fromIndex","toIObject","toIndex","IE_PROTO","names","i","keys","$keys","enumBugKeys","KEY","fails","count","n","Infinity","RangeError","repeat","maxLength","fillString","left","stringLength","fillStr","intMaxLength","fillLen","stringFiller","padStart","$pad","padEnd","prepare","commit","_value","isInitialized","clone","m","reset","nearestInputPos","cursorPos","extractInput","fromPos","toPos","extractTail","_appendTail","tail","_append","soft","oldValueLength","consistentValue","doPrepare","ci","doValidate","appendWithTail","appendCount","consistentAppended","ch","appended","_unmask","clear","from","to","_refreshing","unmasked","unmaskedValue","ret","doCommit","_mask","_prepare","_validate","_commit","DEFAULTS","_Masked","_this","scale","radix","mapToRadix","signed","thousandsSeparator","postFormat","_updateNumberRegExp","regExpStrSoft","regExpStr","_numberRegExpSoft","_numberRegExp","_removeThousandsSeparators","_thousandsSeparatorRegExp","_insertThousandsSeparators","parts","_mapToRadixRegExp","removedSeparatorsCount","beforeTailPos","insertedSeparatorsBeforeTailCount","nextPos","valid","number","validnum","formatted","normalizeZeros","_normalizeZeros","padFractionalZeros","_padFractionalZeros","match","sign","zeros","num","numstr","_min","_max","_scale","_radix","_signed","_postFormat","_mapToRadix","map","_thousandsSeparator","PatternDefinition","_masked","isHollow","resolve","TYPES","INPUT","optional","PatternGroup","masked","offset","mapDefIndexToPos","RangeGroup","maxlen","_from","_to","_maxLength","_update","minstr","maxstr","placeholder","search","_matchFrom","Range","Enum","enums","group","some","indexOf","definitions","groups","_updateMask","defs","_definitions","_charDefs","_groupDefs","unmaskingBlock","optionalBlock","stopAlign","_this2","_groups","p","gNames","filter","gName","sort","char","FIXED","unmasking","STOP_CHAR","ESCAPE_CHAR","every","g","forEach","d","_this3","hiddenHollowsBefore","defIndex","isHiddenHollow","mapPosToDefIndex","di","def","_appendChunks","_appendPlaceholder","resolved","skipped","chres","chunks","fromDefIndex","input","extractInputChunks","toDefIndex","isInput","stopDefIndices","stops","s","_this4","stop","maxDefIndex","lazy","initialDefIndex","firstInputIndex","firstFilledInputIndex","firstVisibleHollowIndex","nextdi","nextDef","overflow","groupsByName","_placeholder","ph","DEFAULT_PLACEHOLDER","_this5","Definition","Group","format","parse","Y","getFullYear","_MaskedPattern","date","isComplete","isDateExist","getDate","getMonth","day","month","year","ActionDetails","oldValue","oldSelection","start","startChangePos","substr","insertedCount","end","removedCount","substring","RIGHT","_listeners","_unmaskedValue","_saveSelection","_onInput","_onChange","_onDrop","_alignCursor","_alignCursorFriendly","bindEvents","updateValue","addEventListener","unbindEvents","removeEventListener","fireEvent","ev","l","_selection","selectionStart","updateControl","newUnmaskedValue","newValue","isChanged","_fireChangeEvents","updateOptions","k","updateCursor","_delayUpdateCursor","_abortUpdateCursor","_changingCursorPos","_cursorChanging","setTimeout","on","handler","off","hIndex","splice","details","tailPos","removed","lastInputPos","removeDirection","inserted","preventDefault","stopPropagation","destroy","selectionEnd","activeElement","setSelectionRange"],"mappings":"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"} \ No newline at end of file diff --git a/guide.html b/guide.html index 42d6ee1e..0b584955 100644 --- a/guide.html +++ b/guide.html @@ -149,20 +149,43 @@

Common

-
var masked = new IMask.Masked({
+        
var digitsMask = new IMask(element, {
   mask: /^\d+$/
 });

get/set mask (only same type allowed!)

-
masked.mask = /^\s+$/;  // ok
+        
masked.mask = /^\w+$/;  // ok
 masked.mask = "0000";  // ERROR! changing mask type on existing mask is not allowed!

get/set value and unmasked value

masked.value = 'hello world!';
 console.log(masked.unmaskedValue);
-

Override commit method to make some postprocessing after UI was deactivated.

-

Usually you don't need to manually create instances of that type, because it will be done by IMask internally. But you can subclass from it to add some specific behavior like uppercasing for example.

-

Additionaly to mask option you can pass custom validator as validate option for some complex checks on any mask types excluding Function and RegExp, because they are already validators themselves.

+

Use prepare (value, masked) option for preprocessing input and commit (value, masked) option for postprocessing after UI was deactivated:

+
+ + +
+
+
+ + +
+
+
+
+
var uppercaseMask = new IMask(element, {
+  mask: /^\w+$/,
+  prepare: function (str) {
+    return str.toUpperCase();
+  },
+  commit: function (value, masked) {
+    // Don't change value manually! All changes should be done in mask!
+    // But it works and could help to understand what is really changes
+    masked._value = value.toLowerCase();  // Don't do it
+  }
+});
+

Usually you don't need to manually create instances of that type, because it will be done by IMask internally. But you can subclass from it to add some specific behavior.

+

Additionaly to mask option you can pass custom validator as validate (value, masked) option for some complex checks on any mask types excluding Function and RegExp, because they are already validators themselves. But don't change masked instance inside callbacks.

-

Make sure that your mask or validator works with any of intermediate states, not just final value. For example you want to restrict input to "123" and do:

+

Also make sure that your mask or validator works with any of intermediate states, not just final value. For example you want to restrict input to "123" and do:

var masked = new IMask.Masked({
   mask: /^123$/
 });
@@ -566,6 +589,19 @@

Date

}); + new IMask(document.getElementById('uppercase-mask'), { + mask: /^\w+$/, + prepare: function (str) { + return str.toUpperCase(); + }, + commit: function (value, masked) { + // Don't change value manually! All changes should be done in mask! + // But it works and could help to understand what is really changes + masked._value = value.toLowerCase(); + } + }); + + new IMask(document.getElementById('sequence-mask'), { mask: function (value) { return /^\d*$/.test(value) && diff --git a/package.json b/package.json index 675ffbe8..aaab8192 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "imaskjs", - "version": "1.0.0", - "description": "vanillaJS input mask", + "version": "1.1.0", + "description": "vanilla javascript input mask", "main": "imask.js", "dependencies": {}, "devDependencies": { diff --git a/src/controls/input.js b/src/controls/input.js index 95c876f5..9f50415d 100644 --- a/src/controls/input.js +++ b/src/controls/input.js @@ -225,7 +225,7 @@ class InputMask { if (this.value !== this.el.value) { this.updateValue(); } - this.masked.commit(); + this.masked.doCommit(); this.updateControl(); } diff --git a/src/core/utils.js b/src/core/utils.js index 08f18803..97fbcf44 100644 --- a/src/core/utils.js +++ b/src/core/utils.js @@ -34,6 +34,6 @@ function refreshValueOnSet (target, key, descriptor) { } export -function escapeRegExp(str) { +function escapeRegExp (str) { return str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, '\\$1'); } diff --git a/src/masked/base.js b/src/masked/base.js index c800fdfd..4088ec75 100644 --- a/src/masked/base.js +++ b/src/masked/base.js @@ -3,10 +3,17 @@ import {refreshValueOnSet} from '../core/utils'; export default class Masked { - constructor ({mask, validate}) { + constructor ({ + mask, + prepare=((val) => val), + validate=(() => true), + commit=(() => {}), + }) { this._value = ''; this.mask = mask; - this.validate = validate || (() => true); + this.prepare = prepare; + this.validate = validate; + this.commit = commit; this.isInitialized = true; } @@ -19,8 +26,31 @@ class Masked { this._mask = mask; } - _validate (soft) { - return this.validate(this.value, this, soft); + get prepare () { + return this._prepare; + } + + @refreshValueOnSet + set prepare (prepare) { + this._prepare = prepare; + } + + get validate () { + return this._validate; + } + + @refreshValueOnSet + set validate (validate) { + this._validate = validate; + } + + get commit () { + return this._commit; + } + + @refreshValueOnSet + set commit (commit) { + this._commit = commit; } clone () { @@ -40,7 +70,7 @@ class Masked { set value (value) { this.reset(); this.appendWithTail(value); - this.commit(); + this.doCommit(); } get unmaskedValue () { @@ -51,7 +81,7 @@ class Masked { this.reset(); this._append(value); this.appendWithTail(""); - this.commit(); + this.doCommit(); } get isComplete () { @@ -78,9 +108,10 @@ class Masked { const oldValueLength = this.value.length; let consistentValue = this.clone(); + str = this.doPrepare(str, soft); for (let ci=0; ci outputRaw diff --git a/src/masked/date.js b/src/masked/date.js index 9a76e42d..cc9fde36 100644 --- a/src/masked/date.js +++ b/src/masked/date.js @@ -30,8 +30,8 @@ class MaskedDate extends MaskedPattern { this.isInitialized = true; } - _validate (soft) { - const valid = super._validate(soft); + doValidate (soft) { + const valid = super.doValidate(soft); const date = this.date; return valid && diff --git a/src/masked/number.js b/src/masked/number.js index 02b5b9d3..33ded411 100644 --- a/src/masked/number.js +++ b/src/masked/number.js @@ -65,11 +65,8 @@ class MaskedNumber extends Masked { return parts.join(this.radix); } - _append (str, soft) { - return super._append( - this._removeThousandsSeparators( - str.replace(this._mapToRadixRegExp, this.radix)), - soft); + doPrepare (str, soft) { + return super.doPrepare(this._removeThousandsSeparators(str.replace(this._mapToRadixRegExp, this.radix)), soft); } appendWithTail (str, tail) { @@ -104,7 +101,7 @@ class MaskedNumber extends Masked { return cursorPos; } - _validate (soft) { + doValidate (soft) { const regexp = soft ? this._numberRegExpSoft : this._numberRegExp; // validate as string @@ -120,10 +117,10 @@ class MaskedNumber extends Masked { (this.max == null || this.max <= 0 || this.number <= this.max); } - return valid && super._validate(soft); + return valid && super.doValidate(soft); } - commit () { + doCommit () { const number = this.number; let validnum = number; @@ -146,6 +143,7 @@ class MaskedNumber extends Masked { } this._value = formatted; + super.doCommit(); } _normalizeZeros (value) { diff --git a/src/masked/pattern.js b/src/masked/pattern.js index aecfe890..b2e79d34 100644 --- a/src/masked/pattern.js +++ b/src/masked/pattern.js @@ -133,8 +133,8 @@ class MaskedPattern extends Masked { } } - _validate (soft) { - return this._groupDefs.every(g => g._validate(soft)) && super._validate(soft); + doValidate (soft) { + return this._groupDefs.every(g => g.doValidate(soft)) && super.doValidate(soft); } clone () { @@ -217,7 +217,7 @@ class MaskedPattern extends Masked { if (def.type === PatternDefinition.TYPES.INPUT) { if (chres) { this._value += chres; - if (!this._validate()) { + if (!this.doValidate()) { chres = ''; this._value = this.value.slice(0, -1); } diff --git a/src/masked/pattern/group.js b/src/masked/pattern/group.js index 9c5fd598..fd301495 100644 --- a/src/masked/pattern/group.js +++ b/src/masked/pattern/group.js @@ -20,7 +20,7 @@ class PatternGroup { this.masked.mapDefIndexToPos(this.offset + this.mask.length)); } - _validate (soft) { + doValidate (soft) { return this.validate(this.value, this, soft); } }