PageSourceSearch

https://snoufa.ru/public/assets/js/inputmask.js?v=6ac7164059ad9

js snoufa.ru collected 2026-10-09 18:34:58 UTC 193,948 bytes, 2,760 lines download raw bytes

1!function webpackUniversalModuleDefinition(root, factory) {
2    if ("object" == typeof exports && "object" == typeof module) module.exports = factory(require("jquery")); else if ("function" == typeof define && define.amd) define([ "jquery" ], factory); else {
3        var a = "object" == typeof exports ? factory(require("jquery")) : factory(root.jQuery);
4        for (var i in a) ("object" == typeof exports ? exports : root)[i] = a[i];
5    }
6}(window, function(__WEBPACK_EXTERNAL_MODULE__3__) {
7    return modules = [ function(module) {
8        module.exports = JSON.parse('{"BACKSPACE":8,"BACKSPACE_SAFARI":127,"DELETE":46,"DOWN":40,"END":35,"ENTER":13,"ESCAPE":27,"HOME":36,"INSERT":45,"LEFT":37,"PAGE_DOWN":34,"PAGE_UP":33,"RIGHT":39,"SPACE":32,"TAB":9,"UP":38,"X":88,"CONTROL":17,"KEY_229":229}');
9    }, function(module, exports, __webpack_require__) {
10        "use strict";
11        function _typeof(obj) {
12            return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function _typeof(obj) {
13                return typeof obj;
14            } : function _typeof(obj) {
15                return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
16            }, _typeof(obj);
17        }
18        var $ = __webpack_require__(2), window = __webpack_require__(4), document = window.document, generateMaskSet = __webpack_require__(5).generateMaskSet, analyseMask = __webpack_require__(5).analyseMask, maskScope = __webpack_require__(9);
19        function Inputmask(alias, options, internal) {
20            if (!(this instanceof Inputmask)) return new Inputmask(alias, options, internal);
21            this.el = void 0, this.events = {}, this.maskset = void 0, !0 !== internal && ($.isPlainObject(alias) ? options = alias : (options = options || {},
22            alias && (options.alias = alias)), this.opts = $.extend(!0, {}, this.defaults, options),
23                this.noMasksCache = options && void 0 !== options.definitions, this.userOptions = options || {},
24                resolveAlias(this.opts.alias, options, this.opts), this.isRTL = this.opts.numericInput),
25                this.refreshValue = !1, this.undoValue = void 0, this.$el = void 0, this.skipKeyPressEvent = !1,
26                this.skipInputEvent = !1, this.validationEvent = !1, this.ignorable = !1, this.maxLength,
27                this.mouseEnter = !1, this.originalPlaceholder = void 0, this.isComposing = !1;
28        }
29        function resolveAlias(aliasStr, options, opts) {
30            var aliasDefinition = Inputmask.prototype.aliases[aliasStr];
31            return aliasDefinition ? (aliasDefinition.alias && resolveAlias(aliasDefinition.alias, void 0, opts),
32                $.extend(!0, opts, aliasDefinition), $.extend(!0, opts, options), !0) : (null === opts.mask && (opts.mask = aliasStr),
33                !1);
34        }
35        function importAttributeOptions(npt, opts, userOptions, dataAttribute) {
36            function importOption(option, optionData) {
37                var attrOption = "" === dataAttribute ? option : dataAttribute + "-" + option;
38                optionData = void 0 !== optionData ? optionData : npt.getAttribute(attrOption),
39                null !== optionData && ("string" == typeof optionData && (0 === option.indexOf("on") ? optionData = window[optionData] : "false" === optionData ? optionData = !1 : "true" === optionData && (optionData = !0)),
40                    userOptions[option] = optionData);
41            }
42            if (!0 === opts.importDataAttributes) {
43                var attrOptions = npt.getAttribute(dataAttribute), option, dataoptions, optionData, p;
44                if (attrOptions && "" !== attrOptions && (attrOptions = attrOptions.replace(/'/g, '"'),
45                    dataoptions = JSON.parse("{" + attrOptions + "}")), dataoptions) for (p in optionData = void 0,
46                    dataoptions) if ("alias" === p.toLowerCase()) {
47                    optionData = dataoptions[p];
48                    break;
49                }
50                for (option in importOption("alias", optionData), userOptions.alias && resolveAlias(userOptions.alias, userOptions, opts),
51                    opts) {
52                    if (dataoptions) for (p in optionData = void 0, dataoptions) if (p.toLowerCase() === option.toLowerCase()) {
53                        optionData = dataoptions[p];
54                        break;
55                    }
56                    importOption(option, optionData);
57                }
58            }
59            return $.extend(!0, opts, userOptions), "rtl" !== npt.dir && !opts.rightAlign || (npt.style.textAlign = "right"),
60            "rtl" !== npt.dir && !opts.numericInput || (npt.dir = "ltr", npt.removeAttribute("dir"),
61                opts.isRTL = !0), Object.keys(userOptions).length;
62        }
63        Inputmask.prototype = {
64            dataAttribute: "data-inputmask",
65            defaults: {
66                _maxTestPos: 500,
67                placeholder: "_",
68                optionalmarker: [ "[", "]" ],
69                quantifiermarker: [ "{", "}" ],
70                groupmarker: [ "(", ")" ],
71                alternatormarker: "|",
72                escapeChar: "\\",
73                mask: null,
74                regex: null,
75                oncomplete: $.noop,
76                onincomplete: $.noop,
77                oncleared: $.noop,
78                repeat: 0,
79                greedy: !1,
80                autoUnmask: !1,
81                removeMaskOnSubmit: !1,
82                clearMaskOnLostFocus: !0,
83                insertMode: !0,
84                insertModeVisual: !0,
85                clearIncomplete: !1,
86                alias: null,
87                onKeyDown: $.noop,
88                onBeforeMask: null,
89                onBeforePaste: function onBeforePaste(pastedValue, opts) {
90                    return $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(this, pastedValue, opts) : pastedValue;
91                },
92                onBeforeWrite: null,
93                onUnMask: null,
94                showMaskOnFocus: !0,
95                showMaskOnHover: !0,
96                onKeyValidation: $.noop,
97                skipOptionalPartCharacter: " ",
98                numericInput: !1,
99                rightAlign: !1,
100                undoOnEscape: !0,
101                radixPoint: "",
102                _radixDance: !1,
103                groupSeparator: "",
104                keepStatic: null,
105                positionCaretOnTab: !0,
106                tabThrough: !1,
107                supportsInputType: [ "text", "tel", "url", "password", "search" ],
108                ignorables: [ 8, 9, 19, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 93, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 0, 229 ],
109                isComplete: null,
110                preValidation: null,
111                postValidation: null,
112                staticDefinitionSymbol: void 0,
113                jitMasking: !1,
114                nullable: !0,
115                inputEventOnly: !1,
116                noValuePatching: !1,
117                positionCaretOnClick: "lvp",
118                casing: null,
119                inputmode: "text",
120                importDataAttributes: !0,
121                shiftPositions: !0
122            },
123            definitions: {
124                9: {
125                    validator: "[0-9\uff10-\uff19]",
126                    definitionSymbol: "*"
127                },
128                a: {
129                    validator: "[A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]",
130                    definitionSymbol: "*"
131                },
132                "*": {
133                    validator: "[0-9\uff10-\uff19A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]"
134                }
135            },
136            aliases: {},
137            masksCache: {},
138            mask: function mask(elems) {
139                var that = this;
140                return "string" == typeof elems && (elems = document.getElementById(elems) || document.querySelectorAll(elems)),
141                    elems = elems.nodeName ? [ elems ] : elems, $.each(elems, function(ndx, el) {
142                    var scopedOpts = $.extend(!0, {}, that.opts);
143                    if (importAttributeOptions(el, scopedOpts, $.extend(!0, {}, that.userOptions), that.dataAttribute)) {
144                        var maskset = generateMaskSet(scopedOpts, that.noMasksCache);
145                        void 0 !== maskset && (void 0 !== el.inputmask && (el.inputmask.opts.autoUnmask = !0,
146                            el.inputmask.remove()), el.inputmask = new Inputmask(void 0, void 0, !0), el.inputmask.opts = scopedOpts,
147                            el.inputmask.noMasksCache = that.noMasksCache, el.
147inputmask.userOptions = $.extend(!0, {}, that.userOptions),
148                            el.inputmask.isRTL = scopedOpts.isRTL || scopedOpts.numericInput, el.inputmask.el = el,
149                            el.inputmask.$el = $(el), el.inputmask.maskset = maskset, $.data(el, "_inputmask_opts", that.userOptions),
150                            maskScope.call(el.inputmask, {
151                                action: "mask"
152                            }));
153                    }
154                }), elems && elems[0] && elems[0].inputmask || this;
155            },
156            option: function option(options, noremask) {
157                return "string" == typeof options ? this.opts[options] : "object" === _typeof(options) ? ($.extend(this.userOptions, options),
158                this.el && !0 !== noremask && this.mask(this.el), this) : void 0;
159            },
160            unmaskedvalue: function unmaskedvalue(value) {
161                return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache),
162                    maskScope.call(this, {
163                        action: "unmaskedvalue",
164                        value: value
165                    });
166            },
167            remove: function remove() {
168                return maskScope.call(this, {
169                    action: "remove"
170                });
171            },
172            getemptymask: function getemptymask() {
173                return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache),
174                    maskScope.call(this, {
175                        action: "getemptymask"
176                    });
177            },
178            hasMaskedValue: function hasMaskedValue() {
179                return !this.opts.autoUnmask;
180            },
181            isComplete: function isComplete() {
182                return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache),
183                    maskScope.call(this, {
184                        action: "isComplete"
185                    });
186            },
187            getmetadata: function getmetadata() {
188                return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache),
189                    maskScope.call(this, {
190                        action: "getmetadata"
191                    });
192            },
193            isValid: function isValid(value) {
194                return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache),
195                    maskScope.call(this, {
196                        action: "isValid",
197                        value: value
198                    });
199            },
200            format: function format(value, metadata) {
201                return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache),
202                    maskScope.call(this, {
203                        action: "format",
204                        value: value,
205                        metadata: metadata
206                    });
207            },
208            setValue: function setValue(value) {
209                this.el && $(this.el).trigger("setvalue", [ value ]);
210            },
211            analyseMask: analyseMask
212        }, Inputmask.extendDefaults = function(options) {
213            $.extend(!0, Inputmask.prototype.defaults, options);
214        }, Inputmask.extendDefinitions = function(definition) {
215            $.extend(!0, Inputmask.prototype.definitions, definition);
216        }, Inputmask.extendAliases = function(alias) {
217            $.extend(!0, Inputmask.prototype.aliases, alias);
218        }, Inputmask.format = function(value, options, metadata) {
219            return Inputmask(options).format(value, metadata);
220        }, Inputmask.unmask = function(value, options) {
221            return Inputmask(options).unmaskedvalue(value);
222        }, Inputmask.isValid = function(value, options) {
223            return Inputmask(options).isValid(value);
224        }, Inputmask.remove = function(elems) {
225            "string" == typeof elems && (elems = document.getElementById(elems) || document.querySelectorAll(elems)),
226                elems = elems.nodeName ? [ elems ] : elems, $.each(elems, function(ndx, el) {
227                el.inputmask && el.inputmask.remove();
228            });
229        }, Inputmask.setValue = function(elems, value) {
230            "string" == typeof elems && (elems = document.getElementById(elems) || document.querySelectorAll(elems)),
231                elems = elems.nodeName ? [ elems ] : elems, $.each(elems, function(ndx, el) {
232                el.inputmask ? el.inputmask.setValue(value) : $(el).trigger("setvalue", [ value ]);
233            });
234        }, Inputmask.dependencyLib = $, window.Inputmask = Inputmask, module.exports = Inputmask;
235    }, function(module, exports, __webpack_require__) {
236        "use strict";
237        var jquery = __webpack_require__(3);
238        if (void 0 === jquery) throw "jQuery not loaded!";
239        module.exports = jquery;
240    }
240, function(module, exports) {
241        module.exports = __WEBPACK_EXTERNAL_MODULE__3__;
242    }, function(module, exports, __webpack_require__) {
243        "use strict";
244        var __WEBPACK_AMD_DEFINE_RESULT__;
245        function _typeof(obj) {
246            return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function _typeof(obj) {
247                return typeof obj;
248            } : function _typeof(obj) {
249                return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
250            }, _typeof(obj);
251        }
252        __WEBPACK_AMD_DEFINE_RESULT__ = function() {
253            return "undefined" != typeof window ? window : new (eval("require('jsdom').JSDOM"))("").window;
254        }.call(exports, __webpack_require__, exports, module), void 0 === __WEBPACK_AMD_DEFINE_RESULT__ || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__);
255    }, function(module, exports, __webpack_require__) {
256        "use strict";
257        var $ = __webpack_require__(2);
258        function generateMaskSet(opts, nocache) {
259            var ms;
260            function generateMask(mask, metadata, opts) {
261                var regexMask = !1, masksetDefinition, maskdefKey;
262                if (null !== mask && "" !== mask || (regexMask = null !== opts.regex, mask = regexMask ? (mask = opts.regex,
263                    mask.replace(/^(\^)(.*)(\$)$/, "$2")) : (regexMask = !0, ".*")), 1 === mask.length && !1 === opts.greedy && 0 !== opts.repeat && (opts.placeholder = ""),
264                0 < opts.repeat || "*" === opts.repeat || "+" === opts.repeat) {
265                    var repeatStart = "*" === opts.repeat ? 0 : "+" === opts.repeat ? 1 : opts.repeat;
266                    mask = opts.groupmarker[0] + mask + opts.groupmarker[1] + opts.quantifiermarker[0] + repeatStart + "," + opts.repeat + opts.quantifiermarker[1];
267                }
268                return maskdefKey = regexMask ? "regex_" + opts.regex : opts.numericInput ? mask.split("").reverse().join("") : mask,
269                !1 !== opts.keepStatic && (maskdefKey = "ks_" + maskdefKey), void 0 === Inputmask.prototype.masksCache[maskdefKey] || !0 === nocache ? (masksetDefinition = {
270                    mask: mask,
271                    maskToken: Inputmask.prototype.analyseMask(mask, regexMask, opts),
272                    validPositions: {},
273                    _buffer: void 0,
274                    buffer: void 0,
275                    tests: {},
276                    excludes: {},
277                    metadata: metadata,
278                    maskLength: void 0,
279                    jitOffset: {}
280                }, !0 !== nocache && (Inputmask.prototype.masksCache[maskdefKey] = masksetDefinition,
281                    masksetDefinition = $.extend(!0, {}, Inputmask.prototype.masksCache[maskdefKey]))) : masksetDefinition = $.extend(!0, {}, Inputmask.prototype.masksCache[maskdefKey]),
282                    masksetDefinition;
283            }
284            if ($.isFunction(opts.mask) && (opts.mask = opts.mask(opts)), $.isArray(opts.mask)) {
285                if (1 < opts.mask.length) {
286                    null === opts.keepStatic && (opts.keepStatic = !0);
287                    var altMask = opts.groupmarker[0];
288                    return $.each(opts.isRTL ? opts.mask.reverse() : opts.mask, function(ndx, msk) {
289                        1 < altMask.length && (altMask += opts.groupmarker[1] + opts.alternatormarker + opts.groupmarker[0]),
290                            void 0 === msk.mask || $.isFunction(msk.mask) ? altMask += msk : altMask += msk.mask;
291                    }), altMask += opts.groupmarker[1], generateMask(altMask, opts.mask, opts);
292                }
293                opts.mask = opts.mask.pop();
294            }
295            return null === opts.keepStatic && (opts.keepStatic = !1), ms = opts.mask && void 0 !== opts.mask.mask && !$.isFunction(opts.mask.mask) ? generateMask(opts.mask.mask, opts.mask, opts) : generateMask(opts.mask, opts.mask, opts),
296                ms;
297        }
298        function analyseMask(mask, regexMask, opts) {
299            var tokenizer = /(?:[?*+]|\{[0-9+*]+(?:,[0-9+*]*)?(?:\|[0-9+*]*)?\})|[^.?*+^${[]()|\\]+|./g, regexTokenizer = /\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g, escaped = !1, currentToken = new MaskToken(), match, m, openenings = [], maskTokens = [], openingToken, currentOpeningToken, alternator, lastMatch, closeRegexGroup = !1;
300            function MaskToken(isGroup, isOptional, isQuantifier, isAlternator) {
301                this.matches = [], this.openGroup = isGroup || !1, this.alternatorGroup = !1, this.isGroup = isGroup || !1,
302                    this.isOptional = isOptional || !1, this.isQuantifier = is
302Quantifier || !1, this.isAlternator = isAlternator || !1,
303                    this.quantifier = {
304                        min: 1,
305                        max: 1
306                    };
307            }
308            function insertTestDefinition(mtoken, element, position) {
309                position = void 0 !== position ? position : mtoken.matches.length;
310                var prevMatch = mtoken.matches[position - 1];
311                if (regexMask) 0 === element.indexOf("[") || escaped && /\\d|\\s|\\w]/i.test(element) || "." === element ? mtoken.matches.splice(position++, 0, {
312                    fn: new RegExp(element, opts.casing ? "i" : ""),
313                    static: !1,
314                    optionality: !1,
315                    newBlockMarker: void 0 === prevMatch ? "master" : prevMatch.def !== element,
316                    casing: null,
317                    def: element,
318                    placeholder: void 0,
319                    nativeDef: element
320                }) : (escaped && (element = element[element.length - 1]), $.each(element.split(""), function(ndx, lmnt) {
321                    prevMatch = mtoken.matches[position - 1], mtoken.matches.splice(position++, 0, {
322                        fn: /[a-z]/i.test(opts.staticDefinitionSymbol || lmnt) ? new RegExp("[" + (opts.staticDefinitionSymbol || lmnt) + "]", opts.casing ? "i" : "") : null,
323                        static: !0,
324                        optionality: !1,
325                        newBlockMarker: void 0 === prevMatch ? "master" : prevMatch.def !== lmnt && !0 !== prevMatch.static,
326                        casing: null,
327                        def: opts.staticDefinitionSymbol || lmnt,
328                        placeholder: void 0 !== opts.staticDefinitionSymbol ? lmnt : void 0,
329                        nativeDef: (escaped ? "'" : "") + lmnt
330                    });
331                })), escaped = !1; else {
332                    var maskdef = (opts.definitions ? opts.definitions[element] : void 0) || Inputmask.prototype.definitions[element];
333                    maskdef && !escaped ? mtoken.matches.splice(position++, 0, {
334                        fn: maskdef.validator ? "string" == typeof maskdef.validator ? new RegExp(maskdef.validator, opts.casing ? "i" : "") : new function() {
335                            this.test = maskdef.validator;
336                        }() : new RegExp("."),
337                        static: maskdef.static || !1,
338                        optionality: !1,
339                        newBlockMarker: void 0 === prevMatch ? "master" : prevMatch.def !== (maskdef.definitionSymbol || element),
340                        casing: maskdef.casing,
341                        def: maskdef.definitionSymbol || element,
342                        placeholder: maskdef.placeholder,
343                        nativeDef: element,
344                        generated: maskdef.generated
345                    }) : (mtoken.matches.splice(position++, 0, {
346                        fn: /[a-z]/i.test(opts.staticDefinitionSymbol || element) ? new RegExp("[" + (opts.staticDefinitionSymbol || element) + "]", opts.casing ? "i" : "") : null,
347                        static: !0,
348                        optionality: !1,
349                        newBlockMarker: void 0 === prevMatch ? "master" : prevMatch.def !== element && !0 !== prevMatch.static,
350                        casing: null,
351                        def: opts.staticDefinitionSymbol || element,
352                        placeholder: void 0 !== opts.staticDefinitionSymbol ? element : void 0,
353                        nativeDef: (escaped ? "'" : "") + element
354                    }), escaped = !1);
355                }
356            }
357            function verifyGroupMarker(maskToken) {
358                maskToken && maskToken.matches && $.each(maskToken.matches, function(ndx, token) {
359                    var nextToken = maskToken.matches[ndx + 1];
360                    (void 0 === nextToken || void 0 === nextToken.matches || !1 === nextToken.isQuantifier) && token && token.isGroup && (token.isGroup = !1,
361                    regexMask || (insertTestDefinition(token, opts.groupmarker[0], 0), !0 !== token.openGroup && insertTestDefinition(token, opts.groupmarker[1]))),
362                        verifyGroupMarker(token);
363                });
364            }
365            function defaultCase() {
366                if (0 < openenings.length) {
367                    if (currentOpeningToken = openenings[openenings.length - 1], insertTestDefinition(currentOpeningToken, m),
368                        currentOpeningToken.isAlternator) {
369                        alternator = openenings.pop();
370                        for (var mndx = 0; mndx < alternator.matches.length; mndx++) alternator.matches[mndx].isGroup && (alternator.matches[mndx].isGroup = !1);
371                        0 < openenings.length ? (currentOpeningToken = openenings[openenings.length - 1],
372                            currentOpeningToken.matches.push(alternator)) : currentToken.matches.push(alternator);
373                    }
374                } else insertTestDefinition(currentToken, m);
375            }
376            function reverseTokens(maskToken) {
377                function reverseStatic(st) {
378                    return st === opts.optionalmarker[0] ? st = opts.optionalmarker[1] : st === opts.optionalmarker[1] ? st = opts.optionalmarker[0] : st === opts.groupmarker[0] ? st = opts.groupmarker[1] : st === opts.groupmarker[1] && (st = opts.groupmarker[0]),
379                        st;
380                }
381                for (var match in maskToken.matches = maskToken.matches.reverse(), maskToken.matches) if (Object.prototype.hasOwnProperty.call(maskToken.matches, match)) {
382                    var intMatch = parseInt(match);
383                    if (maskToken.matches[match].isQuantifier && maskToken.matches[intMatch + 1] && maskToken.matches[intMatch + 1].isGroup) {
384                        var qt = maskToken.matches[match];
385                        maskToken.matches.splice(match, 1), maskToken.matches.splice(intMatch + 1, 0, qt);
386                    }
387                    void 0 !== maskToken.matches[match].matches ? maskToken.matches[match] = reverseTokens(maskToken.matches[match]) : maskToken.matches[match] = reverseStatic(maskToken.matches[match]);
388                }
389                return maskToken;
390            }
391            function groupify(matches) {
392                var groupToken = new MaskToken(!0);
393                return groupToken.openGroup = !1, groupToken.matches = matches, groupToken;
394            }
395            function closeGroup() {
396                if (openingToken = openenings.pop(), openingToken.openGroup = !1, void 0 !== openingToken) if (0 < openenings.length) {
397                    if (currentOpeningToken = openenings[openenings.length - 1], currentOpeningToken.matches.push(openingToken),
398                        currentOpeningToken.isAlternator) {
399                        alternator = openenings.pop();
400                        for (var mndx = 0; mndx < alternator.matches.length; mndx++) alternator.matches[mndx].isGroup = !1,
401                            alternator.matches[mndx].alternatorGroup = !1;
402                        0 < openenings.length ? (currentOpeningToken = openenings[openenings.length - 1],
403                            currentOpeningToken.matches.push(alternator)) : currentToken.matches.push(alternator);
404                    }
405                } else currentToken.matches.push(openingToken); else defaultCase();
406            }
407            function groupQuantifier(matches) {
408                var lastMatch = matches.pop();
409                return lastMatch.isQuantifier && (lastMatch = groupify([ matches.pop(), lastMatch ])),
410                    lastMatch;
411            }
412            for (regexMask && (opts.optionalmarker[0] = void 0, opts.optionalmarker[1] = void 0); match = regexMask ? regexTokenizer.exec(mask) : tokenizer.exec(mask); ) {
413                if (m = match[0], regexMask) switch (m.charAt(0)) {
414                    case "?":
415                        m = "{0,1}";
416                        break;
417
418                    case "+":
419                    case "*":
420                        m = "{" + m + "}";
421                        break;
422
423                    case "|":
424                        if (0 === openenings.length) {
425                            var altRegexGroup = groupify(currentToken.matches);
426                            altRegexGroup.openGroup = !0, openenings.push(altRegexGroup), currentToken.matches = [],
427                                closeRegexGroup = !0;
428                        }
429                        break;
430                }
431                if (escaped) defaultCase(); else switch (m.charAt(0)) {
432                    case "(?=":
433                        break;
434
435                    case "(?!":
436                        break;
437
438                    case "(?<=":
439                        break;
440
441                    case "(?<!":
442                        break;
443
444                    case opts.escapeChar:
445                        escaped = !0, regexMask && defaultCase();
446                        break;
447
448                    case opts.optionalmarker[1]:
449                    case opts.groupmarker[1]:
450                        closeGroup();
451                        break;
452
453                    case opts.optionalmarker[0]:
454                        openenings.push(new MaskToken(!1, !0));
455                        break;
456
457                    case opts.groupmarker[0]:
458                        openenings.push(new MaskToken(!0));
459                        break;
460
461                    case opts.quantifiermarker[0]:
462                        var quantifier = new MaskToken(!1, !1, !0);
463                        m = m.replace(/[{}]/g, "");
464                        var mqj = m.split("|"), mq = mqj[0].split(","), mq0 = isNaN(mq[0]) ? mq[0] : parseInt(mq[0]), mq1 = 1 === mq.length ? mq0 : isNaN(mq[1]) ? mq[1] : parseInt(mq[1]);
465                        "*" !== mq0 && "+" !== mq0 || (mq0 = "*" === mq1 ? 0 : 1), quantifier.quantifier = {
466                            min: mq0,
467                            max: mq1,
468                            jit: mqj[1]
469                        };
470                        var matches = 0 < openenings.length ? openenings[openenings.length - 1].matches : currentToken.matches;
471                        if (match = matches.pop(), match.isAlternator) {
472                            matches.push(match), matches = match.matches;
473                            var groupToken = new MaskToken(!0), tmpMatch = matches.pop();
474                            matches.push(groupToken), matches = groupToken.matches, match = tmpMatch;
475                        }
476                        match.isGroup || (match = groupify([ match ])), matches.push(match), matches.push(quantifier);
477                        break;
478
479                    case opts.alternatormarker:
480                        if (0 < openenings.length) {
481                            currentOpeningToken = openenings[openenings.length - 1];
482                            var subToken = currentOpeningToken.matches[currentOpeningToken.matches.length - 1];
483                            lastMatch = currentOpeningToken.openGroup && (void 0 === subToken.matches || !1 === subToken.isGroup && !1 === subToken.isAlternator) ? openenings.pop() : groupQuantifier(currentOpeningToken.matches);
484                        } else lastMatch = groupQuantifier(currentToken.matches);
485                        if (lastMatch.isAlternator) openenings.push(lastMatch); else if (lastMatch.alternatorGroup ? (alternator = openenings.pop(),
486                            lastMatch.alternatorGroup = !1) : alternator = new MaskToken(!1, !1, !1, !0), alternator.matches.push(lastMatch),
487                            openenings.push(alternator), lastMatch.openGroup) {
488                            lastMatch.openGroup = !1;
489                            var alternatorGroup = new MaskToken(!0);
490                            alternatorGroup.alternatorGroup = !0, openenings.push(alternatorGroup);
491                        }
492                        break;
493
494                    default:
495                        defaultCase();
496                }
497            }
498            for (closeRegexGroup && closeGroup(); 0 < openenings.length; ) openingToken = openenings.pop(),
499                currentToken.matches.push(openingToken);
500            return 0 < currentToken.matches.length && (verifyGroupMarker(currentToken), maskTokens.push(currentToken)),
501            (opts.numericInput || opts.isRTL) && reverseTokens(maskTokens[0]), maskTokens;
502        }
503        module.exports = {
504            generateMaskSet: generateMaskSet,
505            analyseMask: analyseMask
506        };
507    }, function(module, exports, __webpack_require__) {
508        "use strict";
509        Object.defineProperty(exports, "__esModule", {
510            value: !0
511        }), exports.default = _default;
512        var escapeRegexRegex = new RegExp("(\\" + [ "/", ".", "*", "+", "?", "|", "(", ")", "[", "]", "{", "}", "\\", "$", "^" ].join("|\\") + ")", "gim");
513        function _default(str) {
514            return str.replace(escapeRegexRegex, "\\$1");
515        }
516    }, function(module, exports, __webpack_require__) {
517        "use strict";
518        __webpack_require__(8), __webpack_require__(11), __webpack_require__(12), __webpack_require__(13),
519            module.exports = __webpack_require__(1);
520    }, function(module, exports, __webpack_require__) {
521        "use strict";
522        var Inputmask = __webpack_require__(1);
523        Inputmask.extendDefinitions({
524            A: {
525                validator: "[A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]",
526                casing: "upper"
527            },
528            "&": {
529                validator: "[0-9A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]",
530                casing: "upper"
531            },
532            "#": {
533                validator: "[0-9A-Fa-f]",
534                casing: "upper"
535            }
536        });
537        var ipValidatorRegex = new RegExp("25[0-5]|2[0-4][0-9]|[01][0-9][0-9]");
538        function ipValidator(chrs, maskset, pos, strict, opts) {
539            return chrs = -1 < pos - 1 && "." !== maskset.buffer[pos - 1] ? (chrs = maskset.buffer[pos - 1] + chrs,
540                -1 < pos - 2 && "." !== maskset.buffer[pos - 2] ? maskset.buffer[pos - 2] + chrs : "0" + chrs) : "00" + chrs,
541                ipValidatorRegex.test(chrs);
542        }
543        Inputmask.extendAliases({
544            cssunit: {
545                regex: "[+-]?[0-9]+\\.?([0-9]+)?(px|em|rem|ex|%|in|cm|mm|pt|pc)"
546            },
547            url: {
548                regex: "(https?|ftp)://.*",
549                autoUnmask: !1
550            },
551            ip: {
552                mask: "i[i[i]].j[j[j]].k[k[k]].l[l[l]]",
553                definitions: {
554                    i: {
555                        validator: ipValidator
556                    },
557                    j: {
558                        validator: ipValidator
559                    },
560                    k: {
561                        validator: ipValidator
562                    },
563                    l: {
564                        validator: ipValidator
565                    }
566                },
567                onUnMask: function onUnMask(maskedValue, unmaskedValue, opts) {
568                    return maskedValue;
569                },
570                inputmode: "numeric"
571            },
572            email: {
573                mask: "*{1,64}[.*{1,64}][.*{1,64}][.*{1,63}]@-{1,63}.-{1,63}[.-{1,63}][.-{1,63}]",
574                greedy: !1,
575                casing: "lower",
576                onBeforePaste: function onBeforePaste(pastedValue, opts) {
577                    return pastedValue = pastedValue.toLowerCase(), pastedValue.replace("mailto:", "");
578                },
579                definitions: {
580                    "*": {
581                        validator: "[0-9\uff11-\uff19A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5!#$%&'*+/=?^_`{|}~-]"
582                    },
583                    "-": {
584                        validator: "[0-9A-Za-z-]"
585                    }
586                },
587                onUnMask: function onUnMask(maskedValue, unmaskedValue, opts) {
588                    return maskedValue;
589                },
590                inputmode: "email"
591            },
592            mac: {
593                mask: "##:##:##:##:##:##"
594            },
595            vin: {
596                mask: "V{13}9{4}",
597                definitions: {
598                    V: {
599                        validator: "[A-HJ-NPR-Za-hj-npr-z\\d]",
600                        casing: "upper"
601                    }
602                },
603                clearIncomplete: !0,
604                autoUnmask: !0
605            },
606            ssn: {
607                mask: "999-99-9999",
608                postValidation: function postValidation(buffer, pos, c, currentResult, opts, maskset, strict) {
609                    return /^(?!219-09-9999|078-05-1120)(?!666|000|9.{2}).{3}-(?!00).{2}-(?!0{4}).{4}$/.test(buffer.join(""));
610                }
611            }
612        }), module.exports = Inputmask;
613    }, function(module, exports, __webpack_require__) {
614        "use strict";
615        __webpack_require__(10);
616        var $ = __webpack_require__(2), window = __webpack_require__(4), document = window.document, ua = window.navigator && window.navigator.userAgent || "", ie = 0 < ua.indexOf("MSIE ") || 0 < ua.indexOf("Trident/"), mobile = "ontouchstart" in window, iemobile = /iemobile/i.test(ua), iphone = /iphone/i.test(ua) && !iemobile, keyCode = __webpack_require__(0);
617        module.exports = function maskScope(actionObj) {
618            var inputmask = this, maskset = inputmask.maskset, opts = inputmask.opts, el = inputmask.el, isRTL = inputmask.isRTL || (inputmask.isRTL = opts.numericInput);
619            function getMaskTemplate(baseOnInput, minimalPos, includeMode, noJit, clearOptionalTail) {
620                var greedy = opts.greedy;
621                clearOptionalTail && (opts.greedy = !1), minimalPos = minimalPos || 0;
622                var maskTemplate = [], ndxIntlzr, pos = 0, test, testPos, jitRenderStatic;
623                do {
624                    if (!0 === baseOnInput && maskset.validPositions[pos]) testPos = clearOptionalTail && !0 === maskset.validPositions[pos].match.optionality && void 0 === maskset.validPositions[pos + 1] && (!0 === maskset.validPositions[pos].generatedInput || maskset.validPositions[pos].input == opts.skipOptionalPartCharacter && 0 < pos) ? determineTestTemplate(pos, getTests(pos, ndxIntlzr, pos - 1)) : maskset.validPositions[pos],
625                        test = testPos.match, ndxIntlzr = testPos.locator.slice(), maskTemplate.push(!0 === includeMode ? testPos.input : !1 === includeMode ? test.nativeDef : getPlaceholder(pos, test)); else {
626                        testPos = getTestTemplate(pos, ndxIntlzr, pos - 1), test = testPos.match, ndxIntlzr = testPos.locator.slice();
627                        var jitMasking = !0 !== noJit && (!1 !== opts.jitMasking ? opts.jitMasking : test.jit);
628                        jitRenderStatic = jitRenderStatic && test.static && test.def !== opts.groupSeparator && null === test.fn || maskset.validPositions[pos - 1] && test.static && test.def !== opts.groupSeparator && null === test.fn,
629                            jitRenderStatic || !1 === jitMasking || void 0 === jitMasking || "number" == typeof jitMasking && isFinite(jitMasking) && pos < jitMasking ? maskTemplate.push(!1 === includeMode ? test.nativeDef : getPlaceholder(pos, test)) : jitRenderStatic = !1;
630                    }
631                    pos++;
632                } while ((void 0 === inputmask.maxLength || pos < inputmask.maxLength) && (!0 !== test.static || "" !== test.def) || pos < minimalPos);
633                return "" === maskTemplate[maskTemplate.length - 1] && maskTemplate.pop(), !1 === includeMode && void 0 !== maskset.maskLength || (maskset.maskLength = pos - 1),
634                    opts.greedy = greedy, maskTemplate;
635            }
636            function resetMaskSet(soft) {
637                maskset.buffer = void 0, !0 !== soft && (maskset.validPositions = {}, maskset.p = 0);
638            }
639            function getLastValidPosition(closestTo, strict, validPositions) {
640                var before = -1, after = -1, valids = validPositions || maskset.validPositions;
641                for (var posNdx in void 0 === closestTo && (closestTo = -1), valids) {
642                    var psNdx = parseInt(posNdx);
643                    valids[psNdx] && (strict || !0 !== valids[psNdx].generatedInput) && (psNdx <= closestTo && (before = psNdx),
644                    closestTo <= psNdx && (after = psNdx));
645                }
646                return -1 === before || before == closestTo ? after : -1 == after ? before : closestTo - before < after - closestTo ? before : after;
647            }
648            function getDecisionTaker(tst) {
649                var decisionTaker = tst.locator[tst.alternation];
650                return "string" == typeof decisionTaker && 0 < decisionTaker.length && (decisionTaker = decisionTaker.split(",")[0]),
651                    void 0 !== decisionTaker ? decisionTaker.toString() : "";
652            }
653            function getLocator(tst, align) {
654                var locator = (null != tst.alternation ? tst.mloc[getDecisionTaker(tst)] : tst.locator).join("");
655                if ("" !== locator) for (;locator.length < align; ) locator += "0";
656                return locator;
657            }
658            function determineTestTemplate(pos, tests) {
659                pos = 0 < pos ? pos - 1 : 0;
660                for (var altTest = getTest(pos), targetLocator = getLocator(altTest), tstLocator, closest, bestMatch, ndx = 0; ndx < tests.length; ndx++) {
661                    var tst = tests[ndx];
662                    tstLocator = getLocator(tst, targetLocator.length);
663                    var distance = Math.abs(tstLocator - targetLocator);
664                    (void 0 === closest || "" !== tstLocator && distance < closest || bestMatch && !opts.greedy && bestMatch.match.optionality && "master" === bestMatch.match.newBlockMarker && (!tst.match.optionality || !tst.match.newBlockMarker) || bestMatch && bestMatch.match.optionalQuantifier && !tst.match.optionalQuantifier) && (closest = distance,
665                        bestMatch = tst);
666                }
667                return bestMatch;
668            }
669            function getTestTemplate(pos, ndxIntlzr, tstPs) {
670                return maskset.validPositions[pos] || determineTestTemplate(pos, getTests(pos, ndxIntlzr ? ndxIntlzr.slice() : ndxIntlzr, tstPs));
671            }
672            function getTest(pos, tests) {
673                return maskset.validPositions[pos] ? maskset.validPositions[pos] : (tests || getTests(pos))[0];
674            }
675            function positionCanMatchDefinition(pos, testDefinition, opts) {
676                for (var valid = !1, tests = getTests(pos), tndx = 0; tndx < tests.length; tndx++) {
677                    if (tests[tndx].match && (!(tests[tndx].match.nativeDef !== testDefinition.match[opts.shiftPositions ? "def" : "nativeDef"] || opts.shiftPositions && testDefinition.match.static) || tests[tndx].match.nativeDef === testDefinition.match.nativeDef)) {
678                        valid = !0;
679                        break;
680                    }
681                    if (tests[tndx].match && tests[tndx].match.def === testDefinition.match.nativeDef) {
682                        valid = void 0;
683                        break;
684                    }
685                }
686                return !1 === valid && void 0 !== maskset.jitOffset[pos] && (valid = positionCanMatchDefinition(pos + maskset.jitOffset[pos], testDefinition, opts)),
687                    valid;
688            }
689            function getTests(pos, ndxIntlzr, tstPs) {
690                var maskTokens = maskset.maskToken, testPos = ndxIntlzr ? tstPs : 0, ndxInitializer = ndxIntlzr ? ndxIntlzr.slice() : [ 0 ], matches = [], insertStop = !1, latestMatch, cacheDependency = ndxIntlzr ? ndxIntlzr.join("") : "";
691                function resolveTestFromToken(maskToken, ndxInitializer, loopNdx, quantifierRecurse) {
692                    function handleMatch(match, loopNdx, quantifierRecurse) {
693                        function isFirstMatch(latestMatch, tokenGroup) {
694                            var firstMatch = 0 === $.inArray(latestMatch, tokenGroup.matches);
695                            return firstMatch || $.each(tokenGroup.matches, function(ndx, match) {
696                                if (!0 === match.isQuantifier ? firstMatch = isFirstMatch(latestMatch, tokenGroup.matches[ndx - 1]) : Object.prototype.hasOwnProperty.call(match, "matches") && (firstMatch = isFirstMatch(latestMatch, match)),
697                                    firstMatch) return !1;
698                            }), firstMatch;
699                        }
700                        function resolveNdxInitializer(pos, alternateNdx, targetAlternation) {
701                            var bestMatch, indexPos;
702                            if ((maskset.tests[pos] || maskset.validPositions[pos]) && $.each(maskset.tests[pos] || [ maskset.validPositions[pos] ], function(ndx, lmnt) {
703                                if (lmnt.mloc[alternateNdx]) return bestMatch = lmnt, !1;
704                                var alternation = void 0 !== targetAlternation ? targetAlternation : lmnt.alternation, ndxPos = void 0 !== lmnt.locator[alternation] ? lmnt.locator[alternation].toString().indexOf(alternateNdx) : -1;
705                                (void 0 === indexPos || ndxPos < indexPos) && -1 !== ndxPos && (bestMatch = lmnt,
706                                    indexPos = ndxPos);
707                            }), bestMatch) {
708                                var bestMatchAltIndex = bestMatch.locator[bestMatch.alternation], locator = bestMatch.mloc[alternateNdx] || bestMatch.mloc[bestMatchAltIndex] || bestMatch.locator;
709                                return locator.slice((void 0 !== targetAlternation ? targetAlternation : bestMatch.alternation) + 1);
710                            }
711                            return void 0 !== targetAlternation ? resolveNdxInitializer(pos, alternateNdx) : void 0;
712                        }
713                        function isSubsetOf(source, target) {
714                            function expand(pattern) {
715                                for (var expanded = [], start = -1, end, i = 0, l = pattern.length; i < l;
715 i++) if ("-" === pattern.charAt(i)) for (end = pattern.charCodeAt(i + 1); ++start < end; ) expanded.push(String.fromCharCode(start)); else start = pattern.charCodeAt(i),
716                                    expanded.push(pattern.charAt(i));
717                                return expanded.join("");
718                            }
719                            return source.match.def === target.match.nativeDef || !(!(opts.regex || source.match.fn instanceof RegExp && target.match.fn instanceof RegExp) || !0 === source.match.static || !0 === target.match.static) && -1 !== expand(target.match.fn.toString().replace(/[[\]/]/g, "")).indexOf(expand(source.match.fn.toString().replace(/[[\]/]/g, "")));
720                        }
721                        function staticCanMatchDefinition(source, target) {
722                            return !0 === source.match.static && !0 !== target.match.static && target.match.fn.test(source.match.def, maskset, pos, !1, opts, !1);
723                        }
724                        function setMergeLocators(targetMatch, altMatch) {
725                            var alternationNdx = targetMatch.alternation, shouldMerge = void 0 === altMatch || alternationNdx === altMatch.alternation && -1 === targetMatch.locator[alternationNdx].toString().indexOf(altMatch.locator[alternationNdx]);
726                            if (!shouldMerge && alternationNdx > altMatch.alternation) for (var i = altMatch.alternation; i < alternationNdx; i++) if (targetMatch.locator[i] !== altMatch.locator[i]) {
727                                alternationNdx = i, shouldMerge = !0;
728                                break;
729                            }
730                            if (shouldMerge) {
731                                targetMatch.mloc = targetMatch.mloc || {};
732                                var locNdx = targetMatch.locator[alternationNdx];
733                                if (void 0 !== locNdx) {
734                                    if ("string" == typeof locNdx && (locNdx = locNdx.split(",")[0]), void 0 === targetMatch.mloc[locNdx] && (targetMatch.mloc[locNdx] = targetMatch.locator.slice()),
735                                    void 0 !== altMatch) {
736                                        for (var ndx in altMatch.mloc) "string" == typeof ndx && (ndx = ndx.split(",")[0]),
737                                        void 0 === targetMatch.mloc[ndx] && (targetMatch.mloc[ndx] = altMatch.mloc[ndx]);
738                                        targetMatch.locator[alternationNdx] = Object.keys(targetMatch.mloc).join(",");
739                                    }
740                                    return !0;
741                                }
742                                targetMatch.alternation = void 0;
743                            }
744                            return !1;
745                        }
746                        function isSameLevel(targetMatch, altMatch) {
747                            if (targetMatch.locator.length !== altMatch.locator.length) return !1;
748                            for (var locNdx = targetMatch.alternation + 1; locNdx < targetMatch.locator.length; locNdx++) if (targetMatch.locator[locNdx] !== altMatch.locator[locNdx]) return !1;
749                            return !0;
750                        }
751                        if (testPos > pos + opts._maxTestPos) throw "Inputmask: There is probably an error in your mask definition or in the code. Create an issue on github with an example of the mask you are using. " + maskset.mask;
752                        if (testPos === pos && void 0 === match.matches) return matches.push({
753                            match: match,
754                            locator: loopNdx.reverse(),
755                            cd: cacheDependency,
756                            mloc: {}
757                        }), !0;
758                        if (void 0 !== match.matches) {
759                            if (match.isGroup && quantifierRecurse !== match) {
760                                if (match = handleMatch(maskToken.matches[$.inArray(match, maskToken.matches) + 1], loopNdx, quantifierRecurse),
761                                    match) return !0;
762                            } else if (match.isOptional) {
763                                var optionalToken = match, mtchsNdx = matches.length;
764                                if (match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse),
765                                    match) {
766                                    if ($.each(matches, function(ndx, mtch) {
767                                        mtchsNdx <= ndx && (mtch.match.optionality = !0);
768                                    }), latestMatch = matches[matches.length - 1].match, void 0 !== quantifierRecurse || !isFirstMatch(latestMatch, optionalToken)) return !0;
769                                    insertStop = !0, testPos = pos;
770                                }
771                            } else if (match.isAlternator) {
772                                var alternateToken = match, malternateMatches = [], maltMatches, currentMatches = matches.slice(), loopNdxCnt = loopNdx.length, altIndex = 0 < ndxInitializer.length ? ndxInitializer.shift() : -1;
773                                if (-1 === altIndex || "string" == typeof altIndex) {
774                                    var currentPos = testPos, ndxInitializerClone = ndxInitializer.slice(), altIndexArr = [], amndx;
775                                    if ("string" == typeof altIndex) altIndexArr = altIndex.split(","); else for (amndx = 0;
775 amndx < alternateToken.matches.length; amndx++) altIndexArr.push(amndx.toString());
776                                    if (void 0 !== maskset.excludes[pos]) {
777                                        for (var altIndexArrClone = altIndexArr.slice(), i = 0, exl = maskset.excludes[pos].length; i < exl; i++) {
778                                            var excludeSet = maskset.excludes[pos][i].toString().split(":");
779                                            loopNdx.length == excludeSet[1] && altIndexArr.splice(altIndexArr.indexOf(excludeSet[0]), 1);
780                                        }
781                                        0 === altIndexArr.length && (delete maskset.excludes[pos], altIndexArr = altIndexArrClone);
782                                    }
783                                    (!0 === opts.keepStatic || isFinite(parseInt(opts.keepStatic)) && currentPos >= opts.keepStatic) && (altIndexArr = altIndexArr.slice(0, 1));
784                                    for (var unMatchedAlternation = !1, ndx = 0; ndx < altIndexArr.length; ndx++) {
785                                        amndx = parseInt(altIndexArr[ndx]), matches = [], ndxInitializer = "string" == typeof altIndex && resolveNdxInitializer(testPos, amndx, loopNdxCnt) || ndxInitializerClone.slice(),
786                                            alternateToken.matches[amndx] && handleMatch(alternateToken.matches[amndx], [ amndx ].concat(loopNdx), quantifierRecurse) ? match = !0 : 0 === ndx && (unMatchedAlternation = !0),
787                                            maltMatches = matches.slice(), testPos = currentPos, matches = [];
788                                        for (var ndx1 = 0; ndx1 < maltMatches.length; ndx1++) {
789                                            var altMatch = maltMatches[ndx1], dropMatch = !1;
790                                            altMatch.match.jit = altMatch.match.jit || unMatchedAlternation, altMatch.alternation = altMatch.alternation || loopNdxCnt,
791                                                setMergeLocators(altMatch);
792                                            for (var ndx2 = 0; ndx2 < malternateMatches.length; ndx2++) {
793                                                var altMatch2 = malternateMatches[ndx2];
794                                                if ("string" != typeof altIndex || void 0 !== altMatch.alternation && -1 !== $.inArray(altMatch.locator[altMatch.alternation].toString(), altIndexArr)) {
795                                                    if (altMatch.match.nativeDef === altMatch2.match.nativeDef) {
796                                                        dropMatch = !0, setMergeLocators(altMatch2, altMatch);
797                                                        break;
798                                                    }
799                                                    if (isSubsetOf(altMatch, altMatch2)) {
800                                                        setMergeLocators(altMatch, altMatch2) && (dropMatch = !0, malternateMatches.splice(malternateMatches.indexOf(altMatch2), 0, altMatch));
801                                                        break;
802                                                    }
803                                                    if (isSubsetOf(altMatch2, altMatch)) {
804                                                        setMergeLocators(altMatch2, altMatch);
805                                                        break;
806                                                    }
807                                                    if (staticCanMatchDefinition(altMatch, altMatch2)) {
808                                                        isSameLevel(altMatch, altMatch2) || void 0 !== el.inputmask.userOptions.keepStatic ? setMergeLocators(altMatch, altMatch2) && (dropMatch = !0,
809                                                            malternateMatches.splice(malternateMatches.indexOf(altMatch2), 0, altMatch)) : opts.keepStatic = !0;
810                                                        break;
811                                                    }
812                                                }
813                                            }
814                                            dropMatch || malternateMatches.push(altMatch);
815                                        }
816                                    }
817                                    matches = currentMatches.concat(malternateMatches), testPos = pos, insertStop = 0 < matches.length,
818                                        match = 0 < malternateMatches.length, ndxInitializer = ndxInitializerClone.slice();
819                                } else match = handleMatch(alternateToken.matches[altIndex] || maskToken.matches[altIndex], [ altIndex ].concat(loopNdx), quantifierRecurse);
820                                if (match) return !0;
821                            } else if (match.isQuantifier && quantifierRecurse !== maskToken.matches[$.inArray(match, maskToken.matches) - 1]) for (var qt = match, qndx = 0 < ndxInitializer.length ? ndxInitializer.shift() : 0; qndx < (isNaN(qt.quantifier.max) ? qndx + 1 : qt.quantifier.max) && testPos <= pos; qndx++) {
822                                var tokenGroup = maskToken.matches[$.inArray(qt, maskToken.matches) - 1];
823                                if (match = handleMatch(tokenGroup, [ qndx ].concat(loopNdx), tokenGroup), match) {
824                                    if (latestMatch = matches[matches.length - 1].match, latestMatch.optionalQuantifier = qndx >= qt.quantifier.min,
825                                        latestMatch.jit = (qndx || 1) * tokenGroup.matches.indexOf(latestMatch) >= qt.quantifier.jit,
826                                    latestMatch.optionalQuantifier && isFirstMatch(latestMatch, tokenGroup)) {
827                                        insertStop = !0, testPos = pos;
828                                        break;
829                                    }
830                                    return latestMatch.jit && (maskset.jitOffset[pos] = tokenGroup.matches.length - tokenGroup.matches.indexOf(latestMatch)),
831                                        !0;
832                                }
833                            } else if (match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse),
834                                match) return !0;
835                        } else testPos++;
836                    }
837                    for (var tndx = 0 < ndxInitializer.length ? ndxInitializer.shift() : 0; tndx < maskToken.matches.length; tndx++) if (!0 !== maskToken.matches[tndx].isQuantifier) {
838                        var match = handleMatch(maskToken.matches[tndx], [ tndx ].concat(loopNdx), quantifierRecurse);
839                        if (match && testPos === pos) return match;
840                        if (pos < testPos) break;
841                    }
842                }
843                function mergeLocators(pos, tests) {
844                    var locator = [];
845                    return $.isArray(tests) || (tests = [ tests ]), 0 < tests.length && (void 0 === tests[0].alternation || !0 === opts.keepStatic ? (locator = determineTestTemplate(pos, tests.slice()).locator.slice(),
846                    0 === locator.length && (locator = tests[0].locator.slice())) : $.each(tests, function(ndx, tst) {
847                        if ("" !== tst.def) if (0 === locator.length) locator = t
847st.locator.slice(); else for (var i = 0; i < locator.length; i++) tst.locator[i] && -1 === locator[i].toString().indexOf(tst.locator[i]) && (locator[i] += "," + tst.locator[i]);
848                    })), locator;
849                }
850                if (-1 < pos && (void 0 === inputmask.maxLength || pos < inputmask.maxLength)) {
851                    if (void 0 === ndxIntlzr) {
852                        for (var previousPos = pos - 1, test; void 0 === (test = maskset.validPositions[previousPos] || maskset.tests[previousPos]) && -1 < previousPos; ) previousPos--;
853                        void 0 !== test && -1 < previousPos && (ndxInitializer = mergeLocators(previousPos, test),
854                            cacheDependency = ndxInitializer.join(""), testPos = previousPos);
855                    }
856                    if (maskset.tests[pos] && maskset.tests[pos][0].cd === cacheDependency) return maskset.tests[pos];
857                    for (var mtndx = ndxInitializer.shift(); mtndx < maskTokens.length; mtndx++) {
858                        var match = resolveTestFromToken(maskTokens[mtndx], ndxInitializer, [ mtndx ]);
859                        if (match && testPos === pos || pos < testPos) break;
860                    }
861                }
862                return 0 !== matches.length && !insertStop || matches.push({
863                    match: {
864                        fn: null,
865                        static: !0,
866                        optionality: !1,
867                        casing: null,
868                        def: "",
869                        placeholder: ""
870                    },
871                    locator: [],
872                    mloc: {},
873                    cd: cacheDependency
874                }), void 0 !== ndxIntlzr && maskset.tests[pos] ? $.extend(!0, [], matches) : (maskset.tests[pos] = $.extend(!0, [], matches),
875                    maskset.tests[pos]);
876            }
877            function getBufferTemplate() {
878                return void 0 === maskset._buffer && (maskset._buffer = getMaskTemplate(!1, 1),
879                void 0 === maskset.buffer && (maskset.buffer = maskset._buffer.slice())), maskset._buffer;
880            }
881            function getBuffer(noCache) {
882                return void 0 !== maskset.buffer && !0 !== noCache || (maskset.buffer = getMaskTemplate(!0, getLastValidPosition(), !0),
883                void 0 === maskset._buffer && (maskset._buffer = maskset.buffer.slice())), maskset.buffer;
884            }
885            function refreshFromBuffer(start, end, buffer) {
886                var i, p, skipOptionalPartCharacter = opts.skipOptionalPartCharacter, bffr = isRTL ? buffer.slice().reverse() : buffer;
887                if (opts.skipOptionalPartCharacter = "", !0 === start) resetMaskSet(), maskset.tests = {},
888                    start = 0, end = buffer.length, p = determineNewCaretPosition({
889                    begin: 0,
890                    end: 0
891                }, !1).begin; else {
892                    for (i = start; i < end; i++) delete maskset.validPositions[i];
893                    p = start;
894                }
895                var keypress = new $.Event("keypress");
896                for (i = start; i < end; i++) {
897                    keypress.which = bffr[i].toString().charCodeAt(0), inputmask.ignorable = !1;
898                    var valResult = EventHandlers.keypressEvent.call(el, keypress, !0, !1, !1, p);
899                    !1 !== valResult && (p = valResult.forwardPosition);
900                }
901                opts.skipOptionalPartCharacter = skipOptionalPartCharacter;
902            }
903            function casing(elem, test, pos) {
904                switch (opts.casing || test.casing) {
905                    case "upper":
906                        elem = elem.toUpperCase();
907                        break;
908
909                    case "lower":
910                        elem = elem.toLowerCase();
911                        break;
912
913                    case "title":
914                        var posBefore = maskset.validPositions[pos - 1];
915                        elem = 0 === pos || posBefore && posBefore.input === String.fromCharCode(keyCode.SPACE) ? elem.toUpperCase() : elem.toLowerCase();
916                        break;
917
918                    default:
919                        if ($.isFunction(opts.casing)) {
920                            var args = Array.prototype.slice.call(arguments);
921                            args.push(maskset.validPositions), elem = opts.casing.apply(this, args);
922                        }
923                }
924                return elem;
925            }
926            function checkAlternationMatch(altArr1, altArr2, na) {
927                for (var altArrC = opts.greedy ? altArr2 : altArr2.slice(0, 1), isMatch = !1, naArr = void 0 !== na ? na.split(",") : [], naNdx, i = 0; i < naArr.length; i++) -1 !== (naNdx = altArr1.indexOf(naArr[i])) && altArr1.splice(naNdx, 1);
928                for (var alndx = 0; alndx < altArr1.length;
928 alndx++) if (-1 !== $.inArray(altArr1[alndx], altArrC)) {
929                    isMatch = !0;
930                    break;
931                }
932                return isMatch;
933            }
934            function alternate(maskPos, c, strict, fromIsValid, rAltPos, selection) {
935                var validPsClone = $.extend(!0, {}, maskset.validPositions), tstClone = $.extend(!0, {}, maskset.tests), lastAlt, alternation, isValidRslt = !1, returnRslt = !1, altPos, prevAltPos, i, validPos, decisionPos, lAltPos = void 0 !== rAltPos ? rAltPos : getLastValidPosition(), nextPos, input, begin, end;
936                if (selection && (begin = selection.begin, end = selection.end, selection.begin > selection.end && (begin = selection.end,
937                    end = selection.begin)), -1 === lAltPos && void 0 === rAltPos) lastAlt = 0, prevAltPos = getTest(lastAlt),
938                    alternation = prevAltPos.alternation; else for (;0 <= lAltPos; lAltPos--) if (altPos = maskset.validPositions[lAltPos],
939                altPos && void 0 !== altPos.alternation) {
940                    if (prevAltPos && prevAltPos.locator[altPos.alternation] !== altPos.locator[altPos.alternation]) break;
941                    lastAlt = lAltPos, alternation = maskset.validPositions[lastAlt].alternation, prevAltPos = altPos;
942                }
943                if (void 0 !== alternation) {
944                    decisionPos = parseInt(lastAlt), maskset.excludes[decisionPos] = maskset.excludes[decisionPos] || [],
945                    !0 !== maskPos && maskset.excludes[decisionPos].push(getDecisionTaker(prevAltPos) + ":" + prevAltPos.alternation);
946                    var validInputs = [], resultPos = -1;
947                    for (i = decisionPos; i < getLastValidPosition(void 0, !0) + 1; i++) -1 === resultPos && maskPos <= i && void 0 !== c && (validInputs.push(c),
948                        resultPos = validInputs.length - 1), validPos = maskset.validPositions[i], validPos && !0 !== validPos.generatedInput && (void 0 === selection || i < begin || end <= i) && validInputs.push(validPos.input),
949                        delete maskset.validPositions[i];
950                    for (-1 === resultPos && void 0 !== c && (validInputs.push(c), resultPos = validInputs.length - 1); void 0 !== maskset.excludes[decisionPos] && maskset.excludes[decisionPos].length < 10; ) {
951                        for (maskset.tests = {}, resetMaskSet(!0), isValidRslt = !0, i = 0; i < validInputs.length && (nextPos = isValidRslt.caret || getLastValidPosition(void 0, !0) + 1,
952                            input = validInputs[i], isValidRslt = isValid(nextPos, input, !1, fromIsValid, !0)); i++) i === resultPos && (returnRslt = isValidRslt),
953                        1 == maskPos && isValidRslt && (returnRslt = {
954                            caretPos: i
955                        });
956                        if (isValidRslt) break;
957                        if (resetMaskSet(), prevAltPos = getTest(decisionPos), maskset.validPositions = $.extend(!0, {}, validPsClone),
958                            maskset.tests = $.extend(!0, {}, tstClone), !maskset.excludes[decisionPos]) {
959                            returnRslt = alternate(maskPos, c, strict, fromIsValid, decisionPos - 1, selection);
960                            break;
961                        }
962                        var decisionTaker = getDecisionTaker(prevAltPos);
963                        if (-1 !== maskset.excludes[decisionPos].indexOf(decisionTaker + ":" + prevAltPos.alternation)) {
964                            returnRslt = alternate(maskPos, c, strict, fromIsValid, decisionPos - 1, selection);
965                            break;
966                        }
967                        for (maskset.excludes[decisionPos].push(decisionTaker + ":" + prevAltPos.alternation),
968                                 i = decisionPos; i < getLastValidPosition(void 0, !0) + 1; i++) delete maskset.validPositions[i];
969                    }
970                }
971                return returnRslt && !1 === opts.keepStatic || delete maskset.excludes[decisionPos],
972                    returnRslt;
973            }
974            function isValid(pos, c, strict, fromIsValid, fromAlternate, validateOnly, fromCheckval) {
975                function isSelection(posObj) {
976                    return isRTL ? 1 < posObj.begin - posObj.end || posObj.begin - posObj.end == 1 : 1 < posObj.end - posObj.begin || posObj.end - posObj.begin == 1;
977                }
978                strict = !0 === strict;
979                var maskPos = pos;
980                function processCommandObject(commandObj) {
981                    if (void 0 !== commandObj) {
982                        if (void 0 !== commandObj.remove && ($.isArray(commandObj.remove) || (commandObj.remove = [ commandObj.remove ]),
983                            $.each(commandObj.remove.sort(function(a, b) {
984                                return b.pos - a.pos;
985                            }), function(ndx, lmnt) {
986                                revalidateMask({
987                                    begin: lmnt,
988                                    end: lmnt + 1
989                                });
990                            }), commandObj.remove = void 0), void 0 !== commandObj.insert && ($.isArray(commandObj.insert) || (commandObj.insert = [ commandObj.insert ]),
991                            $.each(commandObj.insert.sort(function(a, b) {
992                                return a.pos - b.pos;
993                            }), function(ndx, lmnt) {
994                                "" !== lmnt.c && isValid(lmnt.pos, lmnt.c, void 0 === lmnt.strict || lmnt.strict, void 0 !== lmnt.fromIsValid ? lmnt.fromIsValid : fromIsValid);
995                            }), commandObj.insert = void 0), commandObj.refreshFromBuffer && commandObj.buffer) {
996                            var refresh = commandObj.refreshFromBuffer;
997                            refreshFromBuffer(!0 === refresh ? refresh : refresh.start, refresh.end, commandObj.buffer),
998                                commandObj.refreshFromBuffer = void 0;
999                        }
1000                        void 0 !== commandObj.rewritePosition && (maskPos = commandObj.rewritePosition,
1001                            commandObj = !0);
1002                    }
1003                    return commandObj;
1004                }
1005                function _isValid(position, c, strict) {
1006                    var rslt = !1;
1007                    return $.each(getTests(position), function(ndx, tst) {
1008                        var test = tst.match;
1009                        if (getBuffer(!0), rslt = null != test.fn ? test.fn.test(c, maskset, position, strict, opts, isSelection(pos)) : (c === test.def || c === opts.skipOptionalPartCharacter) && "" !== test.def && {
1010                            c: getPlaceholder(position, test, !0) || test.def,
1011                            pos: position
1012                        }, !1 !== rslt) {
1013                            var elem = void 0 !== rslt.c ? rslt.c : c, validatedPos = position;
1014                            return elem = elem === opts.skipOptionalPartCharacter && !0 === test.static ? getPlaceholder(position, test, !0) || test.def : elem,
1015                                rslt = processCommandObject(rslt), !0 !== rslt && void 0 !== rslt.pos && rslt.pos !== position && (validatedPos = rslt.pos),
1016                                !0 !== rslt && void 0 === rslt.pos && void 0 === rslt.c ? !1 : (!1 === revalidateMask(pos, $.extend({}, tst, {
1017                                    input: casing(elem, test, validatedPos)
1018                                }), fromIsValid, validatedPos) && (rslt = !1), !1);
1019                        }
1020                    }), rslt;
1021                }
1022                void 0 !== pos.begin && (maskPos = isRTL ? pos.end : pos.begin);
1023                var result = !0, positionsClone = $.extend(!0, {}, maskset.validPositions);
1024                if (!1 === opts.keepStatic && void 0 !== maskset.excludes[maskPos] && !0 !== fromAlternate && !0 !== fromIsValid) for (var i = maskPos; i < (isRTL ? pos.begin : pos.end); i++) void 0 !== maskset.excludes[i] && (maskset.excludes[i] = void 0,
1025                    delete maskset.tests[i]);
1026                if ($.isFunction(opts.preValidation) && !0 !== fromIsValid && !0 !== validateOnly && (result = opts.preValidation.call(el, getBuffer(), maskPos, c, isSelection(pos), opts, maskset, pos, strict || fromAlternate),
1027                    result = processCommandObject(result)), !0 === result) {
1028                    if (void 0 === inputmask.maxLength || maskPos < inputmask.maxLength) {
1029                        if (result = _isValid(maskPos, c, strict), (!strict || !0 === fromIsValid) && !1 === result && !0 !== validateOnly) {
1030                            var currentPosValid = maskset.validPositions[maskPos];
1031                            if (!currentPosValid || !0 !== currentPosValid.match.static || currentPosValid.match.def !== c && c !== opts.skipOptionalPartCharacter) {
1032                                if (opts.insertMode || void 0 === maskset.validPositions[seekNext(maskPos)] || pos.end > maskPos) {
1033                                    var skip = !1;
1034                                    if (maskset.jitOffset[maskPos] && void 0 === maskset.validPositions[seekNext(maskPos)] && (result = isValid(maskPos + maskset.jitOffset[maskPos], c, !0),
1035                                    !1 !== result && (!0 !== fromAlternate && (result.caret = maskPos), skip = !0)),
1036                                    pos.end > maskPos && (maskset.validPositions[maskPos] = void 0), !skip && !isMask(maskPos, opts.keepStatic)) for (var nPos = maskPos + 1, snPos = seekNext(maskPos); nPos <= snPos; nPos++) if (result = _isValid(nPos, c, strict),
1037                                    !1 !== result) {
1038                                        result = trackbackPositions(maskPos, void 0 !== result.pos ? result.pos : nPos) || result,
1039                                            maskPos = nPos;
1040                                        break;
1041                                    }
1042                                }
1043                            } else result = {
1044                                caret: seekNext(maskPos)
1045                            };
1046                        }
1047                    } else result = !1;
1048                    !1 !== result || !opts.keepStatic || !isComplete(getBuffer()) && 0 !== maskPos || strict || !0 === fromAlternate ? isSelection(pos) && maskset.tests[maskPos] && 1 < maskset.tests[maskPos].length && opts.keepStatic && !strict && !0 !== fromAlternate && (result = alternate(!0)) : result = alternate(maskPos, c, strict, fromIsValid, void 0, pos),
1049                    !0 === result && (result = {
1050                        pos: maskPos
1051                    });
1052                }
1053                if ($.isFunction(opts.postValidation) && !0 !== fromIsValid && !0 !== validateOnly) {
1054                    var postResult = opts.postValidation.call(el, getBuffer(!0), void 0 !== pos.begin ? isRTL ? pos.end : pos.begin : pos, c, result, opts, maskset, strict, fromCheckval);
1055                    void 0 !== postResult && (result = !0 === postResult ? result : postResult);
1056                }
1057                result && void 0 === result.pos && (result.pos = maskPos), !1 === result || !0 === validateOnly ? (resetMaskSet(!0),
1058                    maskset.validPositions = $.extend(!0, {}, positionsClone)) : trackbackPositions(void 0, maskPos, !0);
1059                var endResult = processCommandObject(result);
1060                return endResult;
1061            }
1062            function trackbackPositions(originalPos, newPos, fillOnly) {
1063                if (void 0 === originalPos) for (originalPos = newPos - 1; 0 < originalPos && !maskset.validPositions[originalPos]; originalPos--) ;
1064                for (var ps = originalPos; ps < newPos; ps++) if (void 0 === maskset.validPositions[ps] && !isMask(ps, !0)) {
1065                    var vp = 0 == ps ? getTest(ps) : maskset.validPositions[ps - 1];
1066                    if (vp) {
1067                        var tests = getTests(ps).slice();
1068                        "" === tests[tests.length - 1].match.def && tests.pop();
1069                        var bestMatch = determineTestTemplate(ps, tests), np;
1070                        if (bestMatch && (!0 !== bestMatch.match.jit || "master" === bestMatch.match.newBlockMarker && (np = maskset.validPositions[ps + 1]) && !0 === np.match.optionalQuantifier) && (bestMatch = $.extend({}, bestMatch, {
1071                            input: getPlaceholder(ps, bestMatch.match, !0) || bestMatch.match.def
1072                        }), bestMatch.generatedInput = !0, revalidateMask(ps, bestMatch, !0), !0 !== fillOnly)) {
1073                            var cvpInput = maskset.validPositions[newPos].input;
1074                            return maskset.validPositions[newPos] = void 0, isValid(newPos, cvpInput, !0, !0);
1075                        }
1076                    }
1077                }
1078            }
1079            function revalidateMask(pos, validTest, fromIsValid, validatedPos) {
1080                function IsEnclosedStatic(pos, valids, selection) {
1081                    var posMatch = valids[pos];
1082                    if (void 0 === posMatch || !0 !== posMatch.match.static || !0 === posMatch.match.optionality || void 0 !== valids[0] && void 0 !== valids[0].alternation) return !1;
1083                    var prevMatch = selection.begin <= pos - 1 ? valids[pos - 1] && !0 === valids[pos - 1].match.static && valids[pos - 1] : valids[pos - 1], nextMatch = selection.end > pos + 1 ? valids[pos + 1] && !0 === valids[pos + 1].match.static && valids[pos + 1] : valids[pos + 1];
1084                    return prevMatch && nextMatch;
1085                }
1086                var offset = 0, begin = void 0 !== pos.begin ? pos.begin : pos, end = void 0 !== pos.end ? pos.end : pos;
1087                if (pos.begin > pos.end && (begin = pos.end, end = pos.begin), validatedPos = void 0 !== validatedPos ? validatedPos : begin,
1088                begin !== end || opts.insertMode && void 0 !== maskset.validPositions[validatedPos] && void 0 === fromIsValid || void 0 === validTest) {
1089                    var positionsClone = $.extend(!0, {}, maskset.validPositions), lvp = getLastValidPosition(void 0, !0), i;
1090                    for (maskset.p = begin, i = lvp; begin <= i; i--) delete maskset.validPositions[i],
1091                    void 0 === validTest && delete maskset.tests[i + 1];
1092                    var valid = !0, j = validatedPos, posMatch = j, t, canMatch;
1093                    for (validTest && (maskset.validPositions[validatedPos] = $.extend(!0, {}, validTest),
1094                        posMatch++, j++), i = validTest ? end : end - 1; i <= lvp; i++) {
1095                        if (void 0 !== (t = positionsClone[i]) && !0 !== t.generatedInput && (end <= i || begin <= i && IsEnclosedStatic(i, positionsClone, {
1096                            begin: begin,
1097                            end: end
1098                        }))) {
1099                            for (;"" !== getTest(posMatch).match.def; ) {
1100                                if (!1 !== (canMatch = positionCanMatchDefinition(posMatch, t, opts)) || "+" === t.match.def) {
1101                                    "+" === t.match.def && getBuffer(!0);
1102                                    var result = isValid(posMatch, t.input, "+" !== t.match.def, "+" !== t.match.def);
1103                                    if (valid = !1 !== result, j = (result.pos || posMatch) + 1, !valid && canMatch) break;
1104                                } else valid = !1;
1105                                if (valid) {
1106                                    void 0 === validTest && t.match.static && i === pos.begin && offset++;
1107                                    break;
1108                                }
1109                                if (!valid && posMatch > maskset.maskLength) break;
1110                                posMatch++;
1111                            }
1112                            "" == getTest(posMatch).match.def && (valid = !1), posMatch = j;
1113                        }
1114                        if (!valid) break;
1115                    }
1116                    if (!valid) return maskset.validPositions = $.extend(!0, {}, positionsClone), resetMaskSet(!0),
1117                        !1;
1118                } else validTest && getTest(validatedPos).match.cd === validTest.match.cd && (maskset.validPositions[validatedPos] = $.extend(!0, {}, validTest));
1119                return resetMaskSet(!0), offset;
1120            }
1121            function isMask(pos, strict, fuzzy) {
1122                var test = getTestTemplate(pos).match;
1123                if ("" === test.def && (test = getTest(pos).match), !0 !== test.static) return test.fn;
1124                if (!0 === fuzzy && void 0 !== maskset.validPositions[pos] && !0 !== maskset.validPositions[pos].generatedInput) return !0;
1125                if (!0 !== strict && -1 < pos) {
1126                    if (fuzzy) {
1127                        var tests = getTests(pos);
1128                        return tests.length > 1 + ("" === tests[tests.length - 1].match.def ? 1 : 0);
1129                    }
1130                    var testTemplate = determineTestTemplate(pos, getTests(pos)), testPlaceHolder = getPlaceholder(pos, testTemplate.match);
1131                    return testTemplate.match.def !== testPlaceHolder;
1132                }
1133                return !1;
1134            }
1135            function seekNext(pos, newBlock, fuzzy) {
1136                void 0 === fuzzy && (fuzzy = !0);
1137                for (var position = pos + 1; "" !== getTest(position).match.def && (!0 === newBlock && (!0 !== getTest(position).match.newBlockMarker || !isMask(position, void 0, !0)) || !0 !== newBlock && !isMask(position, void 0, fuzzy)); ) position++;
1138                return position;
1139            }
1140            function seekPrevious(pos, newBlock) {
1141                var position = pos, tests;
1142                if (position <= 0) return 0;
1143                for (;0 < --position && (!0 === newBlock && !0 !== getTest(position).match.newBlockMarker || !0 !== newBlock && !isMask(position, void 0, !0) && (tests = getTests(position),
1144                tests.length < 2 || 2 === tests.length && "" === tests[1].match.def)); ) ;
1145                return position;
1146            }
1147            function writeBuffer(input, buffer, caretPos, event, triggerEvents) {
1148                if (event && $.isFunction(opts.onBeforeWrite)) {
1149                    var result = opts.onBeforeWrite.call(inputmask, event, buffer, caretPos, opts);
1150                    if (result) {
1151                        if (result.refreshFromBuffer) {
1152                            var refresh = result.refreshFromBuffer;
1153                            refreshFromBuffer(!0 === refresh ? refresh : refresh.start, refresh.end, result.buffer || buffer),
1154                                buffer = getBuffer(!0);
1155                        }
1156                        void 0 !== caretPos && (caretPos = void 0 !== result.caret ? result.caret : caretPos);
1157                    }
1158                }
1159                if (void 0 !== input && (input.inputmask._valueSet(buffer.join("")), void 0 === caretPos || void 0 !== event && "blur" === event.type || caret(input, caretPos, void 0, void 0, void 0 !== event && "ke
1159ydown" === event.type && (event.keyCode === keyCode.DELETE || event.keyCode === keyCode.BACKSPACE)),
1160                !0 === triggerEvents)) {
1161                    var $input = $(input), nptVal = input.inputmask._valueGet();
1162                    input.inputmask.skipInputEvent = !0, $input.trigger("input"), setTimeout(function() {
1163                        nptVal === getBufferTemplate().join("") ? $input.trigger("cleared") : !0 === isComplete(buffer) && $input.trigger("complete");
1164                    }, 0);
1165                }
1166            }
1167            function getPlaceholder(pos, test, returnPL) {
1168                if (test = test || getTest(pos).match, void 0 !== test.placeholder || !0 === returnPL) return $.isFunction(test.placeholder) ? test.placeholder(opts) : test.placeholder;
1169                if (!0 !== test.static) return opts.placeholder.charAt(pos % opts.placeholder.length);
1170                if (-1 < pos && void 0 === maskset.validPositions[pos]) {
1171                    var tests = getTests(pos), staticAlternations = [], prevTest;
1172                    if (tests.length > 1 + ("" === tests[tests.length - 1].match.def ? 1 : 0)) for (var i = 0; i < tests.length; i++) if ("" !== tests[i].match.def && !0 !== tests[i].match.optionality && !0 !== tests[i].match.optionalQuantifier && (!0 === tests[i].match.static || void 0 === prevTest || !1 !== tests[i].match.fn.test(prevTest.match.def, maskset, pos, !0, opts)) && (staticAlternations.push(tests[i]),
1173                    !0 === tests[i].match.static && (prevTest = tests[i]), 1 < staticAlternations.length && /[0-9a-bA-Z]/.test(staticAlternations[0].match.def))) return opts.placeholder.charAt(pos % opts.placeholder.length);
1174                }
1175                return test.def;
1176            }
1177            function HandleNativePlaceholder(npt, value) {
1178                if (ie) {
1179                    if (npt.inputmask._valueGet() !== value && (npt.placeholder !== value || "" === npt.placeholder)) {
1180                        var buffer = getBuffer().slice(), nptValue = npt.inputmask._valueGet();
1181                        if (nptValue !== value) {
1182                            var lvp = getLastValidPosition();
1183                            -1 === lvp && nptValue === getBufferTemplate().join("") ? buffer = [] : -1 !== lvp && clearOptionalTail(buffer),
1184                                writeBuffer(npt, buffer);
1185                        }
1186                    }
1187                } else npt.placeholder !== value && (npt.placeholder = value, "" === npt.placeholder && npt.removeAttribute("placeholder"));
1188            }
1189            function determineNewCaretPosition(selectedCaret, tabbed) {
1190                function doRadixFocus(clickPos) {
1191                    if ("" !== opts.radixPoint && 0 !== opts.digits) {
1192                        var vps = maskset.validPositions;
1193                        if (void 0 === vps[clickPos] || vps[clickPos].input === getPlaceholder(clickPos)) {
1194                            if (clickPos < seekNext(-1)) return !0;
1195                            var radixPos = $.inArray(opts.radixPoint, getBuffer());
1196                            if (-1 !== radixPos) {
1197                                for (var vp in vps) if (vps[vp] && radixPos < vp && vps[vp].input !== getPlaceholder(vp)) return !1;
1198                                return !0;
1199                            }
1200                        }
1201                    }
1202                    return !1;
1203                }
1204                if (tabbed && (isRTL ? selectedCaret.end = selectedCaret.begin : selectedCaret.begin = selectedCaret.end),
1205                selectedCaret.begin === selectedCaret.end) {
1206                    switch (opts.positionCaretOnClick) {
1207                        case "none":
1208                            break;
1209
1210                        case "select":
1211                            selectedCaret = {
1212                                begin: 0,
1213                                end: getBuffer().length
1214                            };
1215                            break;
1216
1217                        case "ignore":
1218                            selectedCaret.end = selectedCaret.begin = seekNext(getLastValidPosition());
1219                            break;
1220
1221                        case "radixFocus":
1222                            if (doRadixFocus(selectedCaret.begin)) {
1223                                var radixPos = getBuffer().join("").indexOf(opts.radixPoint);
1224                                selectedCaret.end = selectedCaret.begin = opts.numericInput ? seekNext(radixPos) : radixPos;
1225                                break;
1226                            }
1227
1228                        default:
1229                            var clickPosition = selectedCaret.begin, lvclickPosition = getLastValidPosition(clickPosition, !0), lastPosition = seekNext(-1 !== lvclickPosition || isMask(0) ? lvclickPosition : 0);
1230                            if (clickPosition < lastPosition) selectedCaret.end = selectedCaret.begin = isMask(clickPosition, !0) || isMask(clickPosition - 1, !0) ? clickPosition : seekNext(clickPosition); else {
1231                                var lvp = maskset.validPositions[lvclickPosition], tt = getTestTemplate(lastPosition, lvp ? lvp.match.locator : void 0, lvp), placeholder = getPlaceholder(lastPosition, tt.match);
1232                                if ("" !== placeholder && getBuffer()[lastPosition] !== placeholder && !0 !== tt.match.optionalQuantifier && !0 !== tt.match.newBlockMarker || !isMask(lastPosition, opts.keepStatic) && tt.match.def === placeholder) {
1233                                    var newPos = seekNext(lastPosition);
1234                                    (newPos <= clickPosition || clickPosition === lastPosition) && (lastPosition = newPos);
1235                                }
1236                                selectedCaret.end = selectedCaret.begin = lastPosition;
1237                            }
1238                    }
1239                    return selectedCaret;
1240                }
1241            }
1242            var EventRuler = {
1243                on: function on(input, eventName, eventHandler) {
1244                    var ev = function ev(e) {
1245                        e.originalEvent && (e = e.originalEvent || e, arguments[0] = e);
1246                        var that = this, args, inputmask = that.inputmask;
1247                        if (void 0 === inputmask && "FORM" !== this.nodeName) {
1248                            var imOpts = $.data(that, "_inputmask_opts");
1249                            $(that).off(), imOpts && new Inputmask(imOpts).mask(that);
1250                        } else {
1251                            if ("setvalue" === e.type || "FORM" === this.nodeName || !(that.disabled || that.readOnly && !("keydown" === e.type && e.ctrlKey && 67 === e.keyCode || !1 === opts.tabThrough && e.keyCode === keyCode.TAB))) {
1252                                switch (e.type) {
1253                                    case "input":
1254                                        if (!0 === inputmask.skipInputEvent || e.inputType && "insertCompositionText" === e.inputType) return inputmask.skipInputEvent = !1,
1255                                            e.preventDefault();
1256                                        break;
1257
1258                                    case "keydown":
1259                                        inputmask.skipKeyPressEvent = !1, inputmask.skipInputEvent = inputmask.isComposing = e.keyCode === keyCode.KEY_229;
1260                                        break;
1261
1262                                    case "keyup":
1263                                    case "compositionend":
1264                                        inputmask.isComposing && (inputmask.skipInputEvent = !1);
1265                                        break;
1266
1267                                    case "keypress":
1268                                        if (!0 === inputmask.skipKeyPressEvent) return e.preventDefault();
1269                                        inputmask.skipKeyPressEvent = !0;
1270                                        break;
1271
1272                                    case "click":
1273                                    case "focus":
1274                                        return inputmask.validationEvent ? (inputmask.validationEvent = !1, input.blur(),
1275                                            HandleNativePlaceholder(input, (isRTL ? getBufferTemplate().slice().reverse() : getBufferTemplate()).join("")),
1276                                            setTimeout(function() {
1277                                                input.focus();
1278                                            }, 3e3)) : (args = arguments, setTimeout(function() {
1279                                            input.inputmask && eventHandler.apply(that, args);
1280                                        }, 0)), !1;
1281                                }
1282                                var returnVal = eventHandler.apply(that, arguments);
1283                                return !1 === returnVal && (e.preventDefault(), e.stopPropagation()), returnVal;
1284                            }
1285                            e.preventDefault();
1286                        }
1287                    };
1288                    input.inputmask.events[eventName] = input.inputmask.events[eventName] || [], input.inputmask.events[eventName].push(ev),
1289                        -1 !== $.inArray(eventName, [ "submit", "reset" ]) ? null !== input.form && $(input.form).on(eventName, ev) : $(input).on(eventName, ev);
1290                },
1291                off: function off(input, event) {
1292                    var events;
1293                    input.inputmask && input.inputmask.events && (event ? (events = [], events[event] = input.inputmask.events[event]) : events = input.inputmask.events,
1294                        $.each(events, function(eventName, evArr) {
1295                            for (;0 < evArr.length; ) {
1296                                var ev = evArr.pop();
1297                                -1 !== $.inArray(eventName, [ "submit", "reset" ]) ? null !== input.form && $(input.form).off(eventName, ev) : $(input).off(eventName, ev);
1298                            }
1299                            delete input.inputmask.events[eventName];
1300                        }));
1301                }
1302            }, EventHandlers = {
1303                keydownEvent: function keydownEvent(e) {
1304                    var input = this, $input = $(input), k = e.keyCode, pos = caret(input), kdResult = opts.onKeyDown.call(this, e, getBuffer(), pos, opts);
1305                    if (void 0 !== kdResult) return kdResult;
1306                    if (k === keyCode.BACKSPACE || k === keyCode.DELETE || iphone && k === keyCode.BACKSPACE_SAFARI || e.ctrlKey && k === keyCode.X && !("oncut" in input)) e.preventDefault(),
1307                        handleRemove(input, k, pos), writeBuffer(input, getBuffer(!0), maskset.p, e, input.inputmask._valueGet() !== getBuffer().join("")); else if (k === keyCode.END || k === keyCode.PAGE_DOWN) {
1308                        e.preventDefault();
1309                        var caretPos = seekNext(getLastValidPosition());
1310                        caret(input, e.shiftKey ? pos.begin : caretPos, caretPos, !0);
1311                    } else k === keyCode.HOME && !e.shiftKey || k === keyCode.PAGE_UP ? (e.preventDefault(),
1312                        caret(input, 0, e.shiftKey ? pos.begin : 0, !0)) : (opts.undoOnEscape && k === keyCode.ESCAPE || 90 === k && e.ctrlKey) && !0 !== e.altKey ? (checkVal(input, !0, !1, inputmask.undoValue.split("")),
1313                        $input.trigger("click")) : !0 === opts.tabThrough && k === keyCode.TAB ? (!0 === e.shiftKey ? (!0 === getTest(pos.begin).match.static && (pos.begin = seekNext(pos.begin)),
1314                        pos.end = seekPrevious(pos.begin, !0), pos.begin = seekPrevious(pos.end, !0)) : (pos.begin = seekNext(pos.begin, !0),
1315                        pos.end = seekNext(pos.begin, !0), pos.end < maskset.maskLength && pos.end--), pos.begin < maskset.maskLength && (e.preventDefault(),
1316                        caret(input, pos.begin, pos.end))) : e.shiftKey || opts.insertModeVisual && !1 === opts.insertMode && (k === keyCode.RIGHT ? setTimeout(function() {
1317                        var caretPos = caret(input);
1318                        caret(input, caretPos.begin);
1319                    }, 0) : k === keyCode.LEFT && setTimeout(function() {
1320                        var caretPos_begin = translatePosition(input.inputmask.caretPos.begin), caretPos_end = translatePosition(input.inputmask.caretPos.end);
1321                        caret(input, isRTL ? caretPos_begin + (caretPos_begin === maskset.maskLength ? 0 : 1) : caretPos_begin - (0 === caretPos_begin ? 0 : 1));
1322                    }, 0));
1323                    inputmask.ignorable = -1 !== $.inArray(k, opts.ignorables);
1324                },
1325                keypressEvent: function keypressEvent(e, checkval, writeOut, strict, ndx) {
1326                    var input = this, $input = $(input), k = e.which || e.charCode || e.keyCode;
1327                    if (!(!0 === checkval || e.ctrlKey && e.altKey) && (e.ctrlKey || e.metaKey || inputmask.ignorable)) return k === keyCode.ENTER && inputmask.undoValue !== getBuffer().join("") && (inputmask.undoValue = getBuffer().join(""),
1328                        setTimeout(function() {
1329                            $input.trigger("change");
1330                        }, 0)), inputmask.skipInputEvent = !0, !0;
1331                    if (k) {
1332                        44 !== k && 46 !== k || 3 !== e.location || "" === opts.radixPoint || (k = opts.radixPoint.charCodeAt(0));
1333                        var pos = checkval ? {
1334                            begin: ndx,
1335                            end: ndx
1336                        } : caret(input), forwardPosition, c = String.fromCharCode(k);
1337                        maskset.writeOutBuffer = !0;
1338                        var valResult = isValid(pos, c, strict, void 0, void 0, void 0, checkval);
1339                        if (!1 !== valResult && (resetMaskSet(!0), forwardPosition = void 0 !== valResult.caret ? valResult.caret : seekNext(valResult.pos.begin ? valResult.pos.begin : valResult.pos),
1340                            maskset.p = forwardPosition), forwardPosition = opts.numericInput && void 0 === valResult.caret ? seekPrevious(forwardPosition) : forwardPosition,
1341                        !1 !== writeOut && (setTimeout(function() {
1342                            opts.onKeyValidation.call(input, k, valResult);
1343                        }, 0), maskset.writeOutBuffer && !1 !== valResult)) {
1344                            var buffer = getBuffer();
1345                            writeBuffer(input, buffer, forwardPosition, e, !0 !== checkval);
1346                        }
1347                        if (e.preventDefault(), checkval) return !1 !== valResult && (valResult.forwardPosition = forwardPosition),
1348                            valResult;
1349                    }
1350                },
1351                keyupEvent: function keyupEvent(e) {
1352                    !inputmask.isComposing || e.keyCode !== keyCode.KEY_229 && e.keyCode !== keyCode.ENTER || inputmask.$el.trigger("input");
1353                },
1354                pasteEvent: function pasteEvent(e) {
1355                    var input = this, inputValue = this.inputmask._valueGet(!0), caretPos = caret(this), tempValue;
1356                    isRTL && (tempValue = caretPos.end, caretPos.end = caretPos.begin, caretPos.begin = tempValue);
1357                    var valueBeforeCaret = inputValue.substr(0, caretPos.begin), valueAfterCaret = inputValue.substr(caretPos.end, inputValue.length);
1358                    if (valueBeforeCaret == (isRTL ? getBufferTemplate().slice().reverse() : getBufferTemplate()).slice(0, caretPos.begin).join("") && (valueBeforeCaret = ""),
1359                    valueAfterCaret == (isRTL ? getBufferTemplate().slice().reverse() : getBufferTemplate()).slice(caretPos.end).join("") && (valueAfterCaret = ""),
1360                    window.clipboardData && window.clipboardData.getData) inputValue = valueBeforeCaret + window.clipboardData.getData("Text") + valueAfterCaret; else {
1361                        if (!e.clipboardData || !e.clipboardData.getData) return !0;
1362                        inputValue = valueBeforeCaret + e.clipboardData.getData("text/plain") + valueAfterCaret;
1363                    }
1364                    var pasteValue = inputValue;
1365                    if ($.isFunction(opts.onBeforePaste)) {
1366                        if (pasteValue = opts.onBeforePaste.call(inputmask, inputValue, opts), !1 === pasteValue) return 
1366e.preventDefault();
1367                        pasteValue = pasteValue || inputValue;
1368                    }
1369                    return checkVal(this, !0, !1, pasteValue.toString().split(""), e), e.preventDefault();
1370                },
1371                inputFallBackEvent: function inputFallBackEvent(e) {
1372                    function ieMobileHandler(input, inputValue, caretPos) {
1373                        if (iemobile) {
1374                            var inputChar = inputValue.replace(getBuffer().join(""), "");
1375                            if (1 === inputChar.length) {
1376                                var iv = inputValue.split("");
1377                                iv.splice(caretPos.begin, 0, inputChar), inputValue = iv.join("");
1378                            }
1379                        }
1380                        return inputValue;
1381                    }
1382                    function analyseChanges(inputValue, buffer, caretPos) {
1383                        for (var frontPart = inputValue.substr(0, caretPos.begin).split(""), backPart = inputValue.substr(caretPos.begin).split(""), frontBufferPart = buffer.substr(0, caretPos.begin).split(""), backBufferPart = buffer.substr(caretPos.begin).split(""), fpl = frontPart.length >= frontBufferPart.length ? frontPart.length : frontBufferPart.length, bpl = backPart.length >= backBufferPart.length ? backPart.length : backBufferPart.length, bl, i, action = "", data = [], marker = "~", placeholder; frontPart.length < fpl; ) frontPart.push("~");
1384                        for (;frontBufferPart.length < fpl; ) frontBufferPart.push("~");
1385                        for (;backPart.length < bpl; ) backPart.unshift("~");
1386                        for (;backBufferPart.length < bpl; ) backBufferPart.unshift("~");
1387                        var newBuffer = frontPart.concat(backPart), oldBuffer = frontBufferPart.concat(backBufferPart);
1388                        for (i = 0, bl = newBuffer.length; i < bl; i++) switch (placeholder = getPlaceholder(translatePosition(i)),
1389                            action) {
1390                            case "insertText":
1391                                oldBuffer[i - 1] === newBuffer[i] && caretPos.begin == newBuffer.length - 1 && data.push(newBuffer[i]),
1392                                    i = bl;
1393                                break;
1394
1395                            case "insertReplacementText":
1396                                "~" === newBuffer[i] ? caretPos.end++ : i = bl;
1397                                break;
1398
1399                            case "deleteContentBackward":
1400                                "~" === newBuffer[i] ? caretPos.end++ : i = bl;
1401                                break;
1402
1403                            default:
1404                                newBuffer[i] !== oldBuffer[i] && ("~" !== newBuffer[i + 1] && newBuffer[i + 1] !== placeholder && void 0 !== newBuffer[i + 1] || (oldBuffer[i] !== placeholder || "~" !== oldBuffer[i + 1]) && "~" !== oldBuffer[i] ? "~" === oldBuffer[i + 1] && oldBuffer[i] === newBuffer[i + 1] ? (action = "insertText",
1405                                    data.push(newBuffer[i]), caretPos.begin--, caretPos.end--) : newBuffer[i] !== placeholder && "~" !== newBuffer[i] && ("~" === newBuffer[i + 1] || oldBuffer[i] !== newBuffer[i] && oldBuffer[i + 1] === newBuffer[i + 1]) ? (action = "insertReplacementText",
1406                                    data.push(newBuffer[i]), caretPos.begin--) : "~" === newBuffer[i] ? (action = "deleteContentBackward",
1407                                !isMask(translatePosition(i), !0) && oldBuffer[i] !== opts.radixPoint || caretPos.end++) : i = bl : (action = "insertText",
1408                                    data.push(newBuffer[i]), caretPos.begin--, caretPos.end--));
1409                                break;
1410                        }
1411                        return {
1412                            action: action,
1413                            data: data,
1414                            caret: caretPos
1415                        };
1416                    }
1417                    var input = this, inputValue = input.inputmask._valueGet(!0), buffer = (isRTL ? getBuffer().slice().reverse() : getBuffer()).join(""), caretPos = caret(input, void 0, void 0, !0);
1418                    if (buffer !== inputValue) {
1419                        inputValue = ieMobileHandler(input, inputValue, caretPos);
1420                        var changes = analyseChanges(inputValue, buffer, caretPos);
1421                        switch ((input.inputmask.shadowRoot || document).activeElement !== input && input.focus(),
1422                            writeBuffer(input, getBuffer()), caret(input, caretPos.begin, caretPos.end, !0),
1423                            changes.action) {
1424                            case "insertText":
1425                            case "insertReplacementText":
1426                                $.each(changes.data, function(ndx, entry) {
1427                                    var keypress = new $.Event("keypress");
1428                                    keypress.which = entry.charCodeAt(0), inputmask.ignorable = !1, EventHandlers.keypressEvent.call(input, keypress);
1429                                }), setTimeout(function() {
1430                                    inputmask.$el.trigger("keyup");
1431                                }, 0);
1432                                break;
1433
1434                            case "deleteContentBackward":
1435                                var keydown = new $.Event("keydown");
1436                                keydown.keyCode = keyCode.BACKSPACE, EventHandlers.keydownEvent.call(input, keydown);
1437                                break;
1438
1439                            default:
1440                                applyInputValue(input, inputValue);
1441                                break;
1442                        }
1443                        e.preventDefault();
1444                    }
1445                },
1446                compositionendEvent: function compositionendEvent(e) {
1447                    inputmask.isComposing = !1, inputmask.$el.trigger("input");
1448                },
1449                setValueEvent: function setValueEvent(e, argument_1, argument_2) {
1450                    var input = this, value = e && e.detail ? e.detail[0] : argument_1;
1451                    void 0 === value && (value = this.inputmask._valueGet(!0)), applyInputValue(this, value),
1452                    (e.detail && void 0 !== e.detail[1] || void 0 !== argument_2) && caret(this, e.detail ? e.detail[1] : argument_2);
1453                },
1454                focusEvent: function focusEvent(e) {
1455                    var input = this, nptValue = this.inputmask._valueGet();
1456                    opts.showMaskOnFocus && nptValue !== getBuffer().join("") && writeBuffer(this, getBuffer(), seekNext(getLastValidPosition())),
1457                    !0 !== opts.positionCaretOnTab || !1 !== inputmask.mouseEnter || isComplete(getBuffer()) && -1 !== getLastValidPosition() || EventHandlers.clickEvent.apply(this, [ e, !0 ]),
1458                        inputmask.undoValue = getBuffer().join("");
1459                },
1460                invalidEvent: function invalidEvent(e) {
1461                    inputmask.validationEvent = !0;
1462                },
1463                mouseleaveEvent: function mouseleaveEvent() {
1464                    var input = this;
1465                    inputmask.mouseEnter = !1, opts.clearMaskOnLostFocus && (this.inputmask.shadowRoot || document).activeElement !== this && HandleNativePlaceholder(this, inputmask.originalPlaceholder);
1466                },
1467                clickEvent: function clickEvent(e, tabbed) {
1468                    var input = this;
1469                    if ((this.inputmask.shadowRoot || document).activeElement === this) {
1470                        var newCaretPosition = determineNewCaretPosition(caret(this), tabbed);
1471                        void 0 !== newCaretPosition && caret(this, newCaretPosition);
1472                    }
1473                },
1474                cutEvent: function cutEvent(e) {
1475                    var input = this, pos = caret(this), clipboardData = window.clipboardData || e.clipboardData, clipData = isRTL ? getBuffer().slice(pos.end, pos.begin) : getBuffer().slice(pos.begin, pos.end);
1476                    clipboardData.setData("text", isRTL ? clipData.reverse().join("") : clipData.join("")),
1477                    document.execCommand && document.execCommand("copy"), handleRemove(this, keyCode.DELETE, pos),
1478                        writeBuffer(this, getBuffer(), maskset.p, e, inputmask.undoValue !== getBuffer().join(""));
1479                },
1480                blurEvent: function blurEvent(e) {
1481                    var $input = $(this), input = this;
1482                    if (this.inputmask) {
1483                        HandleNativePlaceholder(this, inputmask.originalPlaceholder);
1484                        var nptValue = this.inputmask._valueGet(), buffer = getBuffer().slice();
1485                        "" !== nptValue && (opts.clearMaskOnLostFocus && (-1 === getLastValidPosition() && nptValue === getBufferTemplate().join("") ? buffer = [] : clearOptionalTail(buffer)),
1486                        !1 === isComplete(buffer) && (setTimeout(function() {
1487                            $input.trigger("incomplete");
1488                        }, 0), opts.clearIncomplete && (resetMaskSet(), buffer = opts.clearMaskOnLostFocus ? [] : getBufferTemplate().slice())),
1489                            writeBuffer(this, buffer, void 0, e)), inputmask.undoValue !== getBuffer().join("") && (inputmask.undoValue = getBuffer().join(""),
1490                            $input.trigger("change"));
1491                    }
1492                },
1493                mouseenterEvent: function mouseenterEvent() {
1494                    var input = this;
1495                    inputmask.mouseEnter = !0, (this.inputmask.shadowRoot || document).activeElement !== this && (null == inputmask.originalPlaceholder && this.placeholder !== inputmask.originalPlaceholder && (inputmask.originalPlaceholder = this.placeholder),
1496                    opts.showMaskOnHover && HandleNativePlaceholder(this, (isRTL ? getBufferTemplate().slice().reverse() : getBufferTemplate()).join("")));
1497                },
1498                submitEvent: function submitEvent() {
1499                    inputmask.undoValue !== getBuffer().join("") && inputmask.$el.trigger("change"),
1500                    opts.clearMaskOnLostFocus && -1 === getLastValidPosition() && el.inputmask._valueGet && el.inputmask._valueGet() === getBufferTemplate().join("") && el.inputmask._valueSet(""),
1501                    opts.clearIncomplete && !1 === isComplete(getBuffer()) && el.inputmask._valueSet(""),
1502                    opts.removeMaskOnSubmit && (el.inputmask._valueSet(el.inputmask.unmaskedvalue(), !0),
1503                        setTimeout(function() {
1504                            writeBuffer(el, getBuffer());
1505                        }, 0));
1506                },
1507                resetEvent: function resetEvent() {
1508                    el.inputmask.refreshValue = !0, setTimeout(function() {
1509                        applyInputValue(el, el.inputmask._valueGet(!0));
1510                    }, 0);
1511                }
1512            }, valueBuffer;
1513            function checkVal(input, writeOut, strict, nptvl, initiatingEvent) {
1514                var inputmask = this || input.inputmask, inputValue = nptvl.slice(), charCo
1514des = "", initialNdx = -1, result = void 0, skipOptionalPartCharacter = opts.skipOptionalPartCharacter;
1515                function isTemplateMatch(ndx, charCodes) {
1516                    for (var targetTemplate = getMaskTemplate(!0, 0).slice(ndx, seekNext(ndx)).join("").replace(/'/g, ""), charCodeNdx = targetTemplate.indexOf(charCodes); 0 < charCodeNdx && " " === targetTemplate[charCodeNdx - 1]; ) charCodeNdx--;
1517                    var match = 0 === charCodeNdx && !isMask(ndx) && (getTest(ndx).match.nativeDef === charCodes.charAt(0) || !0 === getTest(ndx).match.static && getTest(ndx).match.nativeDef === "'" + charCodes.charAt(0) || " " === getTest(ndx).match.nativeDef && (getTest(ndx + 1).match.nativeDef === charCodes.charAt(0) || !0 === getTest(ndx + 1).match.static && getTest(ndx + 1).match.nativeDef === "'" + charCodes.charAt(0)));
1518                    if (!match && 0 < charCodeNdx && !isMask(ndx, !1, !0)) {
1519                        var nextPos = seekNext(ndx);
1520                        inputmask.caretPos.begin < nextPos && (inputmask.caretPos = {
1521                            begin: nextPos
1522                        });
1523                    }
1524                    return match;
1525                }
1526                opts.skipOptionalPartCharacter = "", resetMaskSet(), maskset.tests = {}, initialNdx = opts.radixPoint ? determineNewCaretPosition({
1527                    begin: 0,
1528                    end: 0
1529                }).begin : 0, maskset.p = initialNdx, inputmask.caretPos = {
1530                    begin: initialNdx
1531                };
1532                var staticMatches = [], prevCaretPos = inputmask.caretPos;
1533                if ($.each(inputValue, function(ndx, charCode) {
1534                    if (void 0 !== charCode) if (void 0 === maskset.validPositions[ndx] && inputValue[ndx] === getPlaceholder(ndx) && isMask(ndx, !0) && !1 === isValid(ndx, inputValue[ndx], !0, void 0, void 0, !0)) maskset.p++; else {
1535                        var keypress = new $.Event("_checkval");
1536                        keypress.which = charCode.toString().charCodeAt(0), charCodes += charCode;
1537                        var lvp = getLastValidPosition(void 0, !0);
1538                        isTemplateMatch(initialNdx, charCodes) ? result = EventHandlers.keypressEvent.call(input, keypress, !0, !1, strict, lvp + 1) : (result = EventHandlers.keypressEvent.call(input, keypress, !0, !1, strict, inputmask.caretPos.begin),
1539                        result && (initialNdx = inputmask.caretPos.begin + 1, charCodes = "")), result ? (void 0 !== result.pos && maskset.validPositions[result.pos] && !0 === maskset.validPositions[result.pos].match.static && void 0 === maskset.validPositions[result.pos].alternation && (staticMatches.push(result.pos),
1540                        isRTL || (result.forwardPosition = result.pos + 1)), writeBuffer(void 0, getBuffer(), result.forwardPosition, keypress, !1),
1541                            inputmask.caretPos = {
1542                                begin: result.forwardPosition,
1543                                end: result.forwardPosition
1544                            }, prevCaretPos = inputmask.caretPos) : inputmask.caretPos = prevCaretPos;
1545                    }
1546                }), 0 < staticMatches.length) {
1547                    var sndx, validPos, nextValid = seekNext(-1, void 0, !1);
1548                    if (!isComplete(getBuffer()) && staticMatches.length <= nextValid || isComplete(getBuffer()) && 0 < staticMatches.length && staticMatches.length !== nextValid && 0 === staticMatches[0]) for (var nextSndx = nextValid; void 0 !== (sndx = staticMatches.shift()); ) {
1549                        var keypress = new $.Event("_checkval");
1550                        if (validPos = maskset.validPositions[sndx], validPos.generatedInput = !0, keypress.which = validPos.input.charCodeAt(0),
1551                            result = EventHandlers.keypressEvent.call(input, keypress, !0, !1, strict, nextSndx),
1552                        result && void 0 !== result.pos && result.pos !== sndx && maskset.validPositions[result.pos] && !0 === maskset.validPositions[result.pos].match.static) staticMatches.push(result.pos); else if (!result) break;
1553                        nextSndx++;
1554                    }
1555                }
1556                writeOut && writeBuffer(input, getBuffer(), result ? result.forwardPosition : inputmask.caretPos.begin, initiatingEvent || new $.Event("checkval"), initiatingEvent && "input" === initiatingEvent.type && inputmask.undoValue !== getBuffer().join("")),
1557                    opts.skipOptionalPartCharacter = skipOptionalPartCharacter;
1558            }
1559            function unmaskedvalue(input) {
1560                if (input) {
1561                    if (void 0 === input.inputmask) return input.value;
1562                    input.inputmask && input.inputmask.refreshValue && applyInputValue(input, input.inputmask._valueGet(!0));
1563                }
1564                var umValue = [], vps = maskset.validPositions;
1565                for (var pndx in vps) vps[pndx] && vps[pndx].match && (1 != vps[pndx].match.static || !0 !== vps[pndx].generatedInput) && umValue.push(vps[pndx].input);
1566                var unmaskedValue = 0 === umValue.length ? "" : (isRTL ? umValue.reverse() : umValue).join("");
1567                if ($.isFunction(opts.onUnMask)) {
1568                    var bufferValue = (isRTL ? getBuffer().slice().reverse() : getBuffer()).join("");
1569                    unmaskedValue = opts.onUnMask.call(inputmask, bufferValue, unmaskedValue, opts);
1570                }
1571                return unmaskedValue;
1572            }
1573            function translatePosition(pos) {
1574                return !isRTL || "number" != typeof pos || opts.greedy && "" === opts.placeholder || !el || (pos = el.inputmask._valueGet().length - pos),
1575                    pos;
1576            }
1577            function caret(input, begin, end, notranslate, isDelete) {
1578                var range;
1579                if (void 0 === begin) return "selectionStart" in input && "selectionEnd" in input ? (begin = input.selectionStart,
1580                    end = input.selectionEnd) : window.getSelection ? (range = window.getSelection().getRangeAt(0),
1581                range.commonAncestorContainer.parentNode !== input && range.commonAncestorContainer !== input || (begin = range.startOffset,
1582                    end = range.endOffset)) : document.selection && document.selection.createRange && (range = document.selection.createRange(),
1583                    begin = 0 - range.duplicate().moveStart("character", -input.inputmask._valueGet().length),
1584                    end = begin + range.text.length), {
1585                    begin: notranslate ? begin : translatePosition(begin),
1586                    end: notranslate ? end : translatePosition(end)
1587                };
1588                if ($.isArray(begin) && (end = isRTL ? begin[0] : begin[1], begin = isRTL ? begin[1] : begin[0]),
1589                void 0 !== begin.begin && (end = isRTL ? begin.begin : begin.end, begin = isRTL ? begin.end : begin.begin),
1590                "number" == typeof begin) {
1591                    begin = notranslate ? begin : translatePosition(begin), end = notranslate ? end : translatePosition(end),
1592                        end = "number" == typeof end ? end : begin;
1593                    var scrollCalc = parseInt(((input.ownerDocument.defaultView || window).getComputedStyle ? (input.ownerDocument.defaultView || window).getComputedStyle(input, null) : input.currentStyle).fontSize) * end;
1594                    if (input.scrollLeft = scrollCalc > input.scrollWidth ? scrollCalc : 0, input.inputmask.caretPos = {
1595                        begin: begin,
1596                        end: end
1597                    }, opts.insertModeVisual && !1 === opts.insertMode && begin === end && (isDelete || end++),
1598                    input === (input.inputmask.shadowRoot || document).activeElement) if ("setSelectionRange" in input) input.setSelectionRange(begin, end); else if (window.getSelection) {
1599                        if (range = document.createRange(), void 0 === input.firstChild || null === input.firstChild) {
1600                            var textNode = document.createTextNode("");
1601                            input.appendChild(textNode);
1602                        }
1603                        range.setStart(input.firstChild, begin < input.inputmask._valueGet().length ? begin : input.inputmask._valueGet().length),
1604                            range.setEnd(input.firstChild, end < input.inputmask._valueGet().length ? end : input.inputmask._valueGet().length),
1605                            range.collapse(!0);
1606                        var sel = window.getSelection();
1607                        sel.removeAllRanges(), sel.addRange(range);
1608                    } else input.createTextRange && (range = input.createTextRange(), range.collapse(!0),
1609                        range.moveEnd("character", end), range.moveStart("character", begin), range.select());
1610                }
1611            }
1612            function determineLastRequiredPosition(returnDefinition) {
1613                var buffer = getMaskTemplate(!0, getLastValidPosition(), !0, !0), bl = buffer.length, pos, lvp = getLastValidPosition(), positions = {}, lvTest = maskset.validPositions[lvp], ndxIntlzr = void 0 !== lvTest ? lvTest.locator.slice() : void 0, testPos;
1614                for (pos = lvp + 1; pos < buffer.length; pos++) testPos = getTestTemplate(pos, ndxIntlzr, pos - 1),
1615                    ndxIntlzr = testPos.locator.slice(), positions[pos] = $.extend(!0, {}, testPos);
1616                var lvTestAlt = lvTest && void 0 !== lvTest.alternation ? lvTest.locator[lvTest.alternation] : void 0;
1617                for (pos = bl - 1; lvp < pos && (testPos = positions[pos], (testPos.match.optionality || testPos.match.optionalQuantifier && testPos.match.newBlockMarker || lvTestAlt && (lvTestAlt !== positions[pos].locator[lvTest.alternation] && 1 != testPos.match.static || !0 === testPos.match.static && testPos.locator[lvTest.alternation] && checkAlternationMatch(testPos.locator[lvTest.alternation].toString().split(","), lvTestAlt.toString().split(",")) && "" !== getTests(pos)[0].def)) && buffer[pos] === getPlaceholder(pos, testPos.match)); pos--) bl--;
1618                return returnDefinition ? {
1619                    l: bl,
1620                    def: positions[bl] ? positions[bl].match : void 0
1621                } : bl;
1622            }
1623            function clearOptionalTail(buffer) {
1624                buffer.length = 0;
1625                for (var template = getMaskTemplate(!0, 0, !0, void 0, !0), lmnt; void 0 !== (lmnt = template.shift()); ) buffer.push(lmnt);
1626                return buffer;
1627            }
1628            function isComplete(buffer) {
1629                if ($.isFunction(opts.isComplete)) return opts.isComplete(buffer, opts);
1630                if ("*" !== opts.repeat) {
1631                    var complete = !1, lrp = determineLastRequiredPosition(!0), aml = seekPrevious(lrp.l);
1632                    if (void 0 === lrp.def || lrp.def.newBlockMarker || lrp.def.optionality || lrp.def.optionalQuantifier) {
1633                        complete = !0;
1634                        for (var i = 0; i <= aml; i++) {
1635                            var test = getTestTemplate(i).match;
1636                            if (!0 !== test.static && void 0 === maskset.validPositions[i] && !0 !== test.optionality && !0 !== test.optionalQuantifier || !0 === test.static && buffer[i] !== getPlaceholder(i, test)) {
1637                                complete = !1;
1638                                break;
1639                            }
1640                        }
1641                    }
1642                    return complete;
1643                }
1644            }
1645            function handleRemove(input, k, pos, strict, fromIsValid) {
1646                if ((opts.numericInput || isRTL) && (k === keyCode.BACKSPACE ? k = keyCode.DELETE : k === keyCode.DELETE && (k = keyCode.BACKSPACE),
1647                    isRTL)) {
1648                    var pend = pos.end;
1649                    pos.end = pos.begin, pos.begin = pend;
1650                }
1651                var lvp = getLastValidPosition(void 0, !0), offset;
1652                if (pos.end >= getBuffer().length && lvp >= pos.end && (pos.end = lvp + 1), k === keyCode.BACKSPACE ? pos.end - pos.begin < 1 && (pos.begin = seekPrevious(pos.begin)) : k === keyCode.DELETE && pos.begin === pos.end && (pos.end = isMask(pos.end, !0, !0) ? pos.end + 1 : seekNext(pos.end) + 1),
1653                !1 !== (offset = revalidateMask(pos))) {
1654                    if (!0 !== strict && !1 !== opts.keepStatic || null !== opts.regex && -1 !== getTest(pos.begin).match.def.indexOf("|")) {
1655                        var result = alternate(!0);
1656                        if (result) {
1657                            var newPos = void 0 !== result.caret ? result.caret : result.pos ? seekNext(result.pos.begin ? result.pos.begin : result.pos) : getLastValidPosition(-1, !0);
1658                            (k !== keyCode.DELETE || pos.begin > newPos) && pos.begin;
1659                        }
1660                    }
1661                    !0 !== strict && (maskset.p = k === keyCode.DELETE ? pos.begin + offset : pos.begin);
1662                }
1663            }
1664            function applyInputValue(input, value) {
1665                input.inputmask.refreshValue = !1, $.isFunction(opts.onBeforeMask) && (value = opts.onBeforeMask.call(inputmask, value, opts) || value),
1666                    value = value.toString().split(""), checkVal(input, !0, !1, value), inputmask.undoValue = getBuffer().join(""),
1667                (opts.clearMaskOnLostFocus || opts.clearIncomplete) && input.inputmask._valueGet() === getBufferTemplate().join("") && -1 === getLastValidPosition() && input.inputmask._valueSet("");
1668            }
1669            function mask() {
1670                function isElementTypeSupported(input, opts) {
1671                    function patchValueProperty(npt) {
1672                        var valueGet, valueSet;
1673                        function patchValhook(type) {
1674                            if ($.valHooks && (void 0 === $.valHooks[type] || !0 !== $.valHooks[type].inputmaskpatch)) {
1675                                var valhookGet = $.valHooks[type] && $.valHooks[type].get ? $.valHooks[type].get : function(elem) {
1676                                    return elem.value;
1677                                }, valhookSet = $.valHooks[type] && $.valHooks[type].set ? $.valHooks[type].set : function(elem, value) {
1678                                    return elem.value = value, elem;
1679                                };
1680                                $.valHooks[type] = {
1681                                    get: function get(elem) {
1682                                        if (elem.inputmask) {
1683                                            if (elem.inputmask.opts.autoUnmask) return elem.inputmask.unmaskedvalue();
1684                                            var result = valhookGet(elem);
1685                                            return -1 !== getLastValidPosition(void 0, void 0, elem.inputmask.maskset.validPositions) || !0 !== opts.nullable ? result : "";
1686                                        }
1687                                        return valhookGet(elem);
1688                                    },
1689                                    set: function set(elem, value) {
1690                                        var result = valhookSet(elem, value);
1691                                        return elem.inputmask && applyInputValue(elem, value), result;
1692                                    },
1693                                    inputmaskpatch: !0
1694                                };
1695                            }
1696                        }
1697                        function getter() {
1698                            return this.inputmask ? this.inputmask.opts.autoUnmask ? this.inputmask.unmaskedvalue() : -1 !== getLastValidPosition() || !0 !== opts.nullable ? (this.inputmask.shadowRoot || document.activeElement) === this && opts.clearMaskOnLostFocus ? (isRTL ? clearOptionalTail(getBuffer().slice()).reverse() : clearOptionalTail(getBuffer().slice())).join("") : valueGet.call(this) : "" : valueGet.call(this);
1699                        }
1700                        function setter(value) {
1701                            valueSet.call(this, value), this.inputmask && applyInputValue(this, value);
1702                        }
1703                        function installNativeValueSetFallback(npt) {
1704                            EventRuler.on(npt, "mouseenter", function() {
1705                                var input = this, value = this.inputmask._valueGet(!0);
1706                                value !== (isRTL ? getBuffer().reverse() : getBuffer()).join("") && applyInputValue(this, value);
1707                            });
1708                        }
1709                        if (!npt.inputmask.__valueGet) {
1710                            if (!0 !== opts.noValuePatching) {
1711                                if (Object.getOwnPropertyDescriptor) {
1712                                    var valueProperty = Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(npt), "value") : void 0;
1713                                    valueProperty && valueProperty.get && valueProperty.set ? (valueGet = valueProperty.get,
1714                                        valueSet = valueProperty.set, Object.defineProperty(npt, "value", {
1715                                        get: getter,
1716                                        set: setter,
1717                                        configurable: !0
1718                                    })) : "input" !== npt.tagName.toLowerCase() && (valueGet = function valueGet() {
1719                                        return this.textContent;
1720                                    }, valueSet = function valueSet(value) {
1721                                        this.textContent = value;
1722                                    }, Object.defineProperty(npt, "value", {
1723                                        get: getter,
1724                                        set: setter,
1725                                        configurable: !0
1726                                    }));
1727                                } else document.__lookupGetter__ && npt.__lookupGetter__("value") && (valueGet = npt.__lookupGetter__("value"),
1728                                    valueSet = npt.__lookupSetter__("value"), npt.__defineGetter__("value", getter),
1729                                    npt.__defineSetter__("value", setter));
1730                                npt.inputmask.__valueGet = valueGet, npt.inputmask.__valueSet = valueSet;
1731                            }
1732                            npt.inputmask._valueGet = function(overruleRTL) {
1733                                return isRTL && !0 !== overruleRTL ? valueGet.call(this.el).split("").reverse().join("") : valueGet.call(this.el);
1734                            }, npt.inputmask._valueSet = function(value, overruleRTL) {
1735                                valueSet.call(this.el, null == value ? "" : !0 !== overruleRTL && isRTL ? value.split("").reverse().join("") : value);
1736                            }, void 0 === valueGet && (valueGet = function valueGet() {
1737                                return this.value;
1738                            }, valueSet = function valueSet(value) {
1739                                this.value = value;
1740                            }, patchValhook(npt.type), installNativeValueSetFallback(npt));
1741                        }
1742                    }
1743                    "textarea" !== input.tagName.toLowerCase() && opts.ignorables.push(keyCode.ENTER);
1744                    var elementType = input.getAttribute("type"), isSupported = "input" === input.tagName.toLowerCase() && -1 !== $.inArray(elementType, opts.supportsInputType) || input.isContentEditable || "textarea" === input.tagName.toLowerCase();
1745                    if (!isSupported) if ("input" === input.tagName.toLowerCase()) {
1746                        var el = document.createElement("input");
1747                        el.setAttribute("type", elementType), isSupported = "text" === el.type, el = null;
1748                    } else isSupported = "partial";
1749                    return !1 !== isSupported ? patchValueProperty(input) : input.inputmask = void 0,
1750                        isSupported;
1751                }
1752                EventRuler.off(el);
1753                var isSupported = isElementTypeSupported(el, opts);
1754                if (!1 !== isSupported) {
1755                    inputmask.originalPlaceholder = el.placeholder, inputmask.maxLength = void 0 !== el ? el.maxLength : void 0,
1756                    -1 === inputmask.maxLength && (inputmask.maxLength = void 0), "inputMode" in el && null === el.getAttribute("inputmode") && (el.inputMode = opts.inputmode,
1757                        el.setAttribute("inputmode", opts.inputmode)), !0 === isSupported && (
1757opts.showMaskOnFocus = opts.showMaskOnFocus && -1 === [ "cc-number", "cc-exp" ].indexOf(el.autocomplete),
1758                    iphone && (opts.insertModeVisual = !1), EventRuler.on(el, "submit", EventHandlers.submitEvent),
1759                        EventRuler.on(el, "reset", EventHandlers.resetEvent), EventRuler.on(el, "blur", EventHandlers.blurEvent),
1760                        EventRuler.on(el, "focus", EventHandlers.focusEvent), EventRuler.on(el, "invalid", EventHandlers.invalidEvent),
1761                        EventRuler.on(el, "click", EventHandlers.clickEvent), EventRuler.on(el, "mouseleave", EventHandlers.mouseleaveEvent),
1762                        EventRuler.on(el, "mouseenter", EventHandlers.mouseenterEvent), EventRuler.on(el, "paste", EventHandlers.pasteEvent),
1763                        EventRuler.on(el, "cut", EventHandlers.cutEvent), EventRuler.on(el, "complete", opts.oncomplete),
1764                        EventRuler.on(el, "incomplete", opts.onincomplete), EventRuler.on(el, "cleared", opts.oncleared),
1765                    !0 !== opts.inputEventOnly && (EventRuler.on(el, "keydown", EventHandlers.keydownEvent),
1766                        EventRuler.on(el, "keypress", EventHandlers.keypressEvent), EventRuler.on(el, "keyup", EventHandlers.keyupEvent)),
1767                    (mobile || opts.inputEventOnly) && el.removeAttribute("maxLength"), EventRuler.on(el, "input", EventHandlers.inputFallBackEvent),
1768                        EventRuler.on(el, "compositionend", EventHandlers.compositionendEvent)), EventRuler.on(el, "setvalue", EventHandlers.setValueEvent),
1769                        inputmask.undoValue = getBufferTemplate().join("");
1770                    var activeElement = (el.inputmask.shadowRoot || document).activeElement;
1771                    if ("" !== el.inputmask._valueGet(!0) || !1 === opts.clearMaskOnLostFocus || activeElement === el) {
1772                        applyInputValue(el, el.inputmask._valueGet(!0), opts);
1773                        var buffer = getBuffer().slice();
1774                        !1 === isComplete(buffer) && opts.clearIncomplete && resetMaskSet(), opts.clearMaskOnLostFocus && activeElement !== el && (-1 === getLastValidPosition() ? buffer = [] : clearOptionalTail(buffer)),
1775                        (!1 === opts.clearMaskOnLostFocus || opts.showMaskOnFocus && activeElement === el || "" !== el.inputmask._valueGet(!0)) && writeBuffer(el, buffer),
1776                        activeElement === el && caret(el, seekNext(getLastValidPosition()));
1777                    }
1778                }
1779            }
1780            if (void 0 !== actionObj) switch (actionObj.action) {
1781                case "isComplete":
1782                    return el = actionObj.el, isComplete(getBuffer());
1783
1784                case "unmaskedvalue":
1785                    return void 0 !== el && void 0 === actionObj.value || (valueBuffer = actionObj.value,
1786                        valueBuffer = ($.isFunction(opts.onBeforeMask) && opts.onBeforeMask.call(inputmask, valueBuffer, opts) || valueBuffer).split(""),
1787                        checkVal.call(this, void 0, !1, !1, valueBuffer), $.isFunction(opts.onBeforeWrite) && opts.onBeforeWrite.call(inputmask, void 0, getBuffer(), 0, opts)),
1788                        unmaskedvalue(el);
1789
1790                case "mask":
1791                    mask();
1792                    break;
1793
1794                case "format":
1795                    return valueBuffer = ($.isFunction(opts.onBeforeMask) && opts.onBeforeMask.call(inputmask, actionObj.value, opts) || actionObj.value).split(""),
1796                        checkVal.call(this, void 0, !0, !1, valueBuffer), actionObj.metadata ? {
1797                        value: isRTL ? getBuffer().slice().reverse().join("") : getBuffer().join(""),
1798                        metadata: maskScope.call(this, {
1799                            action: "getmetadata"
1800                        }, maskset, opts)
1801                    } : isRTL ? getBuffer().slice().reverse().join("") : getBuffer().join("");
1802
1803                case "isValid":
1804                    actionObj.value ? (valueBuffer = ($.isFunction(opts.onBeforeMask) && opts.onBeforeMask.call(inputmask, actionObj.value, opts) || actionObj.value).split(""),
1805                        checkVal.call(this, void 0, !0, !1, valueBuffer)) : actionObj.value = isRTL ? getBuffer().slice().reverse().join("") : getBuffer().join("");
1806                    for (var buffer = getBuffer(), rl = determineLastRequiredPosition(), lmib = buffer.length - 1; rl < lmib && !isMask(lmib); lmib--) ;
1807                    return buffer.splice(rl, lmib + 1 - rl), isComplete(buffer) && actionObj.value === (isRTL ? getBuffer().slice().reverse().join("") : getBuffer().join(""));
1808
1809                case "getemptymask":
1810                    return getBufferTemplate().join("");
1811
1812                case "remove":
1813                    if (el && el.inputmask) {
1814                        $.data(el, "_inputmask_opts", null);
1815                        var cv = opts.autoUnmask ? unmaskedvalue(el) : el.inputmask._valueGet(opts.autoUnmask), valueProperty;
1816                        cv !== getBufferTemplate().join("") ? el.inputmask._valueSet(cv, opts.autoUnmask) : el.inputmask._valueSet(""),
1817                            EventRuler.off(el), Object.getOwnPropertyDescriptor && Ob
1817ject.getPrototypeOf ? (valueProperty = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(el), "value"),
1818                        valueProperty && el.inputmask.__valueGet && Object.defineProperty(el, "value", {
1819                            get: el.inputmask.__valueGet,
1820                            set: el.inputmask.__valueSet,
1821                            configurable: !0
1822                        })) : document.__lookupGetter__ && el.__lookupGetter__("value") && el.inputmask.__valueGet && (el.__defineGetter__("value", el.inputmask.__valueGet),
1823                            el.__defineSetter__("value", el.inputmask.__valueSet)), el.inputmask = void 0;
1824                    }
1825                    return el;
1826
1827                case "getmetadata":
1828                    if ($.isArray(maskset.metadata)) {
1829                        var maskTarget = getMaskTemplate(!0, 0, !1).join("");
1830                        return $.each(maskset.metadata, function(ndx, mtdt) {
1831                            if (mtdt.mask === maskTarget) return maskTarget = mtdt, !1;
1832                        }), maskTarget;
1833                    }
1834                    return maskset.metadata;
1835            }
1836        };
1837    }, function(module, exports, __webpack_require__) {
1838        "use strict";
1839        function _typeof(obj) {
1840            return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function _typeof(obj) {
1841                return typeof obj;
1842            } : function _typeof(obj) {
1843                return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
1844            }, _typeof(obj);
1845        }
1846        "function" != typeof Object.getPrototypeOf && (Object.getPrototypeOf = "object" === _typeof("test".__proto__) ? function(object) {
1847            return object.__proto__;
1848        } : function(object) {
1849            return object.constructor.prototype;
1850        });
1851    }, function(module, exports, __webpack_require__) {
1852        "use strict";
1853        function _typeof(obj) {
1854            return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function _typeof(obj) {
1855                return typeof obj;
1856            } : function _typeof(obj) {
1857                return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
1858            }, _typeof(obj);
1859        }
1860        var Inputmask = __webpack_require__(1), $ = Inputmask.dependencyLib, keyCode = __webpack_require__(0), currentYear = new Date().getFullYear(), escapeRegex = __webpack_require__(6).default, formatCode = {
1861            d: [ "[1-9]|[12][0-9]|3[01]", Date.prototype.setDate, "day", Date.prototype.getDate ],
1862            dd: [ "0[1-9]|[12][0-9]|3[01]", Date.prototype.setDate, "day", function() {
1863                return pad(Date.prototype.getDate.call(this), 2);
1864            } ],
1865            ddd: [ "" ],
1866            dddd: [ "" ],
1867            m: [ "[1-9]|1[012]", Date.prototype.setMonth, "month", function() {
1868                return Date.prototype.getMonth.call(this) + 1;
1869            } ],
1870            mm: [ "0[1-9]|1[012]", Date.prototype.setMonth, "month", function() {
1871                return pad(Date.prototype.getMonth.call(this) + 1, 2);
1872            } ],
1873            mmm: [ "" ],
1874            mmmm: [ "" ],
1875            yy: [ "[0-9]{2}", Date.prototype.setFullYear, "year", function() {
1876                return pad(Date.prototype.getFullYear.call(this), 2);
1877            } ],
1878            yyyy: [ "[0-9]{4}", Date.prototype.setFullYear, "year", function() {
1879                return pad(Date.prototype.getFullYear.call(this), 4);
1880            } ],
1881            h: [ "[1-9]|1[0-2]", Date.prototype.setHours, "hours", Date.prototype.getHours ],
1882            hh: [ "0[1-9]|1[0-2]", Date.prototype.setHours, "hours", function() {
1883                return pad(Date.prototype.getHours.call(this), 2);
1884            } ],
1885            hx: [ function(x) {
1886                return "[0-9]{".concat(x, "}");
1887            }, Date.prototype.setHours, "hours", function(x) {
1888                return Date.prototype.getHours;
1889            } ],
1890            H: [ "1?[0-9]|2[0-3]", Date.prototype.setHours, "hours", Date.prototype.getHours ],
1891            HH: [ "0[0-9]|1[0-9]|2[0-3]", Date.prototype.setHours, "hours", function() {
1892                return pad(Date.prototype.getHours.call(this), 2);
1893            } ],
1894            Hx: [ function(x) {
1895                return "[0-9]{".concat(x, "}");
1896            }, Date.prototype.setHours, "hours", function(x) {
1897                return function() {
1898                    return pad(Date.prototype.getHours.call(this), x);
1899                };
1900            } ],
1901            M: [ "[1-5]?[0-9]", Date.prototype.setMinutes, "minutes", Date.prototype.getMinutes ],
1902            MM: [ "0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]", Date.prototype.setMinutes, "minutes", function() {
1903                return pad(Date.prototype.getMinutes.call(this), 2);
1904            } ],
1905            s: [ "[1-5]?[0-9]", Date.prototype.setSeconds, "seconds", Date.prototype.getSeconds ],
1906            ss: [ "0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]", Date.prototype.setSeconds, "seconds", function() {
1907                return pad(Date.prototype.getSeconds.call(this), 2);
1908            } ],
1909            l: [ "[0-9]{3}", Date.prototype.setMilliseconds, "milliseconds", function() {
1910                return pad(Date.prototype.getMilliseconds.call(this), 3);
1911            } ],
1912            L: [ "[0-9]{2}", Date.prototype.setMilliseconds, "milliseconds", function() {
1913                return pad(Date.prototype.getMilliseconds.call(this), 2);
1914            } ],
1915            t: [ "[ap]" ],
1916            tt: [ "[ap]m" ],
1917            T: [ "[AP]" ],
1918            TT: [ "[AP]M" ],
1919            Z: [ "" ],
1920            o: [ "" ],
1921            S: [ "" ]
1922        }, formatAlias = {
1923            isoDate: "yyyy-mm-dd",
1924            isoTime: "HH:MM:ss",
1925            isoDateTime: "yyyy-mm-dd'T'HH:MM:ss",
1926            isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"
1927        };
1928        function formatcode(match) {
1929            var dynMatches = new RegExp("\\d+$").exec(match[0]);
1930            if (dynMatches && void 0 !== dynMatches[0]) {
1931                var fcode = formatCode[match[0][0] + "x"].slice("");
1932                return fcode[0] = fcode[0](dynMatches[0]), fcode[3] = fcode[3](dynMatches[0]), fcode;
1933            }
1934            if (formatCode[match[0]]) return formatCode[match[0]];
1935        }
1936        function getTokenizer(opts) {
1937            if (!opts.tokenizer) {
1938                var tokens = [], dyntokens = [];
1939                for (var ndx in formatCode) if (/\.*x$/.test(ndx)) {
1940                    var dynToken = ndx[0] + "\\d+";
1941                    -1 === dyntokens.indexOf(dynToken) && dyntokens.push(dynToken);
1942                } else -1 === tokens.indexOf(ndx[0]) && tokens.push(ndx[0]);
1943                opts.tokenizer = "(" + (0 < dyntokens.length ? dyntokens.join("|") + "|" : "") + tokens.join("+|") + ")+?|.",
1944                    opts.tokenizer = new RegExp(opts.tokenizer, "g");
1945            }
1946            return opts.tokenizer;
1947        }
1948        function prefillYear(dateParts, currentResult, opts) {
1949            if (dateParts.year !== dateParts.rawyear) {
1950                var crrntyear = currentYear.toString(), enteredPart = dateParts.rawyear.replace(/[^0-9]/g, ""), currentYearPart = crrntyear.slice(0, enteredPart.length), currentYearNextPart = crrntyear.slice(enteredPart.length);
1951                if (2 === enteredPart.length && enteredPart === currentYearPart) {
1952                    var entryCurrentYear = new Date(currentYear, dateParts.month - 1, dateParts.day);
1953                    dateParts.day == entryCurrentYear.getDate() && (!opts.max || opts.max.date.getTime() >= entryCurrentYear.getTime()) && (dateParts.date.setFullYear(currentYear),
1954                        dateParts.year = crrntyear, currentResult.insert = [ {
1955                        pos: currentResult.pos + 1,
1956                        c: currentYearNextPart[0]
1957                    }, {
1958                        pos: currentResult.pos + 2,
1959                        c: currentYearNextPart[1]
1960                    } ]);
1961                }
1962            }
1963            return currentResult;
1964        }
1965        function isValidDate(dateParts, currentResult, opts) {
1966            if (!isFinite(dateParts.rawday) || "29" == dateParts.day && !isFinite(dateParts.rawyear) || new Date(dateParts.date.getFullYear(), isFinite(dateParts.rawmonth) ? dateParts.month : dateParts.date.getMonth() + 1, 0).getDate() >= dateParts.day) return currentResult;
1967            if ("29" == dateParts.day) {
1968                var tokenMatch = getTokenMatch(currentResult.pos, opts);
1969                if ("yyyy" === tokenMatch.targetMatch[0] && currentResult.pos - tokenMatch.targetMatchIndex == 2) return currentResult.remove = currentResult.pos + 1,
1970                    currentResult;
1971            }
1972            return !1;
1973        }
1974        function isDateInRange(dateParts, result, opts, maskset, fromCheckval) {
1975            if (!result) return result;
1976            if (opts.min) {
1977                if (dateParts.rawyear) {
1978                    var rawYear = dateParts.rawyear.replace(/[^0-9]/g, ""), minYear = opts.min.year.substr(0, rawYear.length), maxYear;
1979                    if (rawYear < minYear) {
1980                        var tokenMatch = getTokenMatch(result.pos, opts);
1981                        if (rawYear = dateParts.rawyear.substr(0, result.pos - tokenMatch.targetMatchIndex + 1),
1982                            minYear = opts.min.year.substr(0, rawYear.length), minYear <= rawYear) return result.remove = tokenMatch.targetMatchIndex + rawYear.length,
1983                            result;
1984                        if (rawYear = "yyyy" === tokenMatch.targetMatch[0] ? dateParts.rawyear.substr(1, 1) : dateParts.rawyear.substr(0, 1),
1985                            minYear = opts.min.year.substr(2, 1), maxYear = opts.max ? opts.max.year.substr(2, 1) : rawYear,
1986                        1 === rawYear.length && minYear <= rawYear <= maxYear && !0 !== fromCheckval) return "yyyy" === tokenMatch.targetMatch[0] ? (result.insert = [ {
1987                            pos: result.pos + 1,
1988                            c: rawYear,
1989                            strict: !0
1990                        } ], result.caret = result.pos + 2, maskset.validPositions[result.pos].input = opts.min.year[1]) : (result.insert = [ {
1991                            pos: result.pos + 1,
1992                            c: opts.min.year[1],
1993                            strict: !0
1994                        }, {
1995                            pos: result.pos + 2,
1996                            c: rawYear,
1997                            strict: !0
1998                        } ], result.caret = result.pos + 3, maskset.validPositions[result.pos].input = opts.min.year[0]),
1999                            result;
2000                        result = !1;
2001                    }
2002                }
2003                result && dateParts.year && dateParts.year === dateParts.rawyear && opts.min.date.getTime() == opts.min.date.getTime() && (result = opts.min.date.getTime() <= dateParts.date.getTime());
2004            }
2005            return result && opts.max && opts.max.date.getTime() == opts.max.date.getTime() && (result = opts.max.date.getTime() >= dateParts.date.getTime()),
2006                result;
2007        }
2008        function parse(format, dateObjValue, opts, raw) {
2009            var mask = "", match, fcode;
2010            for (getTokenizer(opts).lastIndex = 0; match = getTokenizer(opts).exec(format); ) if (void 0 === dateObjValue) if (fcode = formatcode(match)) mask += "(" + fcode[0] + ")"; else switch (match[0]) {
2011                case "[":
2012                    mask += "(";
2013                    break;
2014
2015                case "]":
2016                    mask += ")?";
2017                    break;
2018
2019                default:
2020                    mask += escapeRegex(match[0]);
2021            } else if (fcode = formatcode(match)) if (!0 !== raw && fcode[3]) {
2022                var getFn = fcode[3];
2023                mask += getFn.call(dateObjValue.date);
2024            } else fcode[2] ? mask += dateObjValue["raw" + fcode[2]] : mask += match[0]; else mask += match[0];
2025            return mask;
2026        }
2027        function pad(val, len) {
2028            for (val = String(val), len = len || 2; val.length < len; ) val = "0" + val;
2029            return val;
2030        }
2031        function analyseMask(maskString, format, opts) {
2032            var dateObj = {
2033                date: new Date(1, 0, 1)
2034            }, targetProp, mask = maskString, match, dateOperation;
2035            function setValue(dateObj, value, opts) {
2036                dateObj[targetProp] = value.replace(/[^0-9]/g, "0"), dateObj["raw" + targetProp] = value,
2037                void 0 !== dateOperation && dateOperation.call(dateObj.date, "month" == targetProp ? parseInt(dateObj[targetProp]) - 1 : dateObj[targetProp]);
2038            }
2039            if ("string" == typeof mask) {
2040                for (getTokenizer(opts).lastIndex = 0; match = getTokenizer(opts).exec(format); ) {
2041                    var dynMatches = new RegExp("\\d+$").exec(match[0]), fcode = dynMatches ? match[0][0] + "x" : match[0], value = void 0;
2042                    if (dynMatches) {
2043                        var lastIndex = getTokenizer(opts).lastIndex, tokanMatch = getTokenMatch(match.index, opts);
2044                        getTokenizer(opts).lastIndex = lastIndex, value = mask.slice(0, mask.indexOf(tokanMatch.nextMatch[0]));
2045                    } else value = mask.slice(0, fcode.length);
2046                    Object.prototype.hasOwnProperty.call(formatCode, fcode) && (targetProp = formatCode[fcode][2],
2047                        dateOperation = formatCode[fcode][1], setValue(dateObj, value, opts)), mask = mask.slice(value.length);
2048                }
2049                return dateObj;
2050            }
2051            if (mask && "object" === _typeof(mask) && Object.prototype.hasOwnProperty.call(mask, "date")) return mask;
2052        }
2053        function importDate(dateObj, opts) {
2054            return parse(opts.inputFormat, {
2055                date: dateObj
2056            }, opts);
2057        }
2058        function getTokenMatch(pos, opts) {
2059            var calcPos = 0, targetMatch, match, matchLength = 0;
2060            for (getTokenizer(opts).lastIndex = 0; match = getTokenizer(opts).exec(opts.inputFormat); ) {
2061                var dynMatches = new RegExp("\\d+$").exec(match[0]);
2062                if (matchLength = dynMatches ? parseInt(dynMatches[0]) : match[0].length, calcPos += matchLength,
2063                pos <= calcPos) {
2064                    targetMatch = match, match = getTokenizer(opts).exec(opts.inputFormat);
2065                    break;
2066                }
2067            }
2068            return {
2069                targetMatchIndex: calcPos - matchLength,
2070                nextMatch: match,
2071                targetMatch: targetMatch
2072            };
2073        }
2074        Inputmask.extendAliases({
2075            datetime: {
2076                mask: function mask(opts) {
2077                    return opts.numericInput = !1, formatCode.S = opts.i18n.ordinalSuffix.join("|"),
2078                        opts.inputFormat = formatAlias[opts.inputFormat] || opts.inputFormat, opts.displayFormat = formatAlias[opts.displayFormat] || opts.displayFormat || opts.inputFormat,
2079                        opts.outputFormat = formatAlias[opts.outputFormat] || opts.outputFormat || opts.inputFormat,
2080                        opts.placeholder = "" !== opts.placeholder ? opts.placeholder : opts.inputFormat.replace(/[[\]]/, ""),
2081                        opts.regex = parse(opts.inputFormat, void 0, opts), opts.min = analyseMask(opts.min, opts.inputFormat, opts),
2082                        opts.max = analyseMask(opts.max, opts.inputFormat, opts), null;
2083                },
2084                placeholder: "",
2085                inputFormat: "isoDateTime",
2086                displayFormat: void 0,
2087                outputFormat: void 0,
2088                min: null,
2089                max: null,
2090                skipOptionalPartCharacter: "",
2091                i18n: {
2092                    dayNames: [ "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ],
2093                    monthNames: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "
2093November", "December" ],
2094                    ordinalSuffix: [ "st", "nd", "rd", "th" ]
2095                },
2096                preValidation: function preValidation(buffer, pos, c, isSelection, opts, maskset, caretPos, strict) {
2097                    if (strict) return !0;
2098                    if (isNaN(c) && buffer[pos] !== c) {
2099                        var tokenMatch = getTokenMatch(pos, opts);
2100                        if (tokenMatch.nextMatch && tokenMatch.nextMatch[0] === c && 1 < tokenMatch.targetMatch[0].length) {
2101                            var validator = formatCode[tokenMatch.targetMatch[0]][0];
2102                            if (new RegExp(validator).test("0" + buffer[pos - 1])) return buffer[pos] = buffer[pos - 1],
2103                                buffer[pos - 1] = "0", {
2104                                fuzzy: !0,
2105                                buffer: buffer,
2106                                refreshFromBuffer: {
2107                                    start: pos - 1,
2108                                    end: pos + 1
2109                                },
2110                                pos: pos + 1
2111                            };
2112                        }
2113                    }
2114                    return !0;
2115                },
2116                postValidation: function postValidation(buffer, pos, c, currentResult, opts, maskset, strict, fromCheckval) {
2117                    if (strict) return !0;
2118                    var tokenMatch, validator;
2119                    if (!1 === currentResult) return tokenMatch = getTokenMatch(pos + 1, opts), tokenMatch.targetMatch && tokenMatch.targetMatchIndex === pos && 1 < tokenMatch.targetMatch[0].length && void 0 !== formatCode[tokenMatch.targetMatch[0]] && (validator = formatCode[tokenMatch.targetMatch[0]][0],
2120                        new RegExp(validator).test("0" + c)) ? {
2121                        insert: [ {
2122                            pos: pos,
2123                            c: "0"
2124                        }, {
2125                            pos: pos + 1,
2126                            c: c
2127                        } ],
2128                        pos: pos + 1
2129                    } : currentResult;
2130                    if (currentResult.fuzzy && (buffer = currentResult.buffer, pos = currentResult.pos),
2131                        tokenMatch = getTokenMatch(pos, opts), tokenMatch.targetMatch && tokenMatch.targetMatch[0] && void 0 !== formatCode[tokenMatch.targetMatch[0]]) {
2132                        validator = formatCode[tokenMatch.targetMatch[0]][0];
2133                        var part = buffer.slice(tokenMatch.targetMatchIndex, tokenMatch.targetMatchIndex + tokenMatch.targetMatch[0].length);
2134                        !1 === new RegExp(validator).test(part.join("")) && 2 === tokenMatch.targetMatch[0].length && maskset.validPositions[tokenMatch.targetMatchIndex] && maskset.validPositions[tokenMatch.targetMatchIndex + 1] && (maskset.validPositions[tokenMatch.targetMatchIndex + 1].input = "0");
2135                    }
2136                    var result = currentResult, dateParts = analyseMask(buffer.join(""), opts.inputFormat, opts);
2137                    return result && dateParts.date.getTime() == dateParts.date.getTime() && (result = prefillYear(dateParts, result, opts),
2138                        result = isValidDate(dateParts, result, opts), result = isDateInRange(dateParts, result, opts, maskset, fromCheckval)),
2139                        pos && result && currentResult.pos !== pos ? {
2140                            buffer: parse(opts.inputFormat, dateParts, opts).split(""),
2141                            refreshFromBuffer: {
2142                                start: pos,
2143                                end: currentResult.pos
2144                            }
2145                        } : result;
2146                },
2147                onKeyDown: function onKeyDown(e, buffer, caretPos, opts) {
2148                    var input = this;
2149                    e.ctrlKey && e.keyCode === keyCode.RIGHT && (this.inputmask._valueSet(importDate(new Date(), opts)),
2150                        $(this).trigger("setvalue"));
2151                },
2152                onUnMask: function onUnMask(maskedValue, unmaskedValue, opts) {
2153                    return unmaskedValue ? parse(opts.outputFormat, analyseMask(maskedValue, opts.inputFormat, opts), opts, !0) : unmaskedValue;
2154                },
2155                casing: function casing(elem, test, pos, validPositions) {
2156                    return 0 == test.nativeDef.indexOf("[ap]") ? elem.toLowerCase() : 0 == test.nativeDef.indexOf("[AP]") ? elem.toUpperCase() : elem;
2157                },
2158                onBeforeMask: function onBeforeMask(initialValue, opts) {
2159                    return "[object Date]" === Object.prototype.toString.call(initialValue) && (initialValue = importDate(initialValue, opts)),
2160                        initialValue;
2161                },
2162                insertMode: !1,
2163                shiftPositions: !1,
2164                keepStatic: !1,
2165                inputmode: "numeric"
2166            }
2167        }), module.exports = Inputmask;
2168    }, function(module, exports, __webpack_require__) {
2169        "use strict";
2170        var Inputmask = __webpack_require__(1), $ = Inputmask.dependencyLib, keyCode = __webpack_require__(0), escapeRegex = __webpack_require__(6).default;
2171        function autoEscape(txt, opts) {
2172            for (var escapedTxt = "", i = 0; i < txt.length; i++) Inputmask.prototype.definitions[txt.charAt(i)] || opts.definitions[txt.charAt(i)] || opts.optionalmarker[0] === txt.charAt(i) || opts.optionalmarker[1] === txt.charAt(i) || opts.quantifiermarker[0] === txt.charAt(i) || opts.quantifiermarker[1] === txt.charAt(i) || opts.groupmarker[0] === txt.charAt(i) || opts.groupmarker[1] === txt.charAt(i) || opts.alternatormarker === txt.charAt(i) ? escapedTxt += "\\" + txt.charAt(i) : escapedTxt += txt.charAt(i);
2173            return escapedTxt;
2174        }
2175        function alignDigits(buffer, digits, opts, force) {
2176            if (0 < buffer.length && 0 < digits && (!opts.digitsOptional || force)) {
2177                var radixPosition = $.inArray(opts.radixPoint, buffer);
2178                -1 === radixPosition && (buffer.push(opts.radixPoint), radixPosition = buffer.length - 1);
2179                for (var i = 1; i <= digits; i++) isFinite(buffer[radixPosition + i]) || (buffer[radixPosition + i] = "0");
2180            }
2181            return buffer;
2182        }
2183        function findValidator(symbol, maskset) {
2184            var posNdx = 0;
2185            if ("+" === symbol) {
2186                for (posNdx in maskset.validPositions) ;
2187                posNdx = parseInt(posNdx);
2188            }
2189            for (var tstNdx in maskset.tests) if (tstNdx = parseInt(tstNdx), posNdx <= tstNdx) for (var ndx = 0, ndxl = maskset.tests[tstNdx].length; ndx < ndxl; ndx++) if ((void 0 === maskset.validPositions[tstNdx] || "-" === symbol) && maskset.tests[tstNdx][ndx].match.def === symbol) return tstNdx + (void 0 !== maskset.validPositions[tstNdx] && "-" !== symbol ? 1 : 0);
2190            return posNdx;
2191        }
2192        function findValid(symbol, maskset) {
2193            var ret = -1;
2194            return $.each(maskset.validPositions, function(ndx, tst) {
2195                if (tst && tst.match.def === symbol) return ret = parseInt(ndx), !1;
2196            }), ret;
2197        }
2198        function parseMinMaxOptions(opts) {
2199            void 0 === opts.parseMinMaxOptions && (null !== opts.min && (opts.min = opts.min.toString().replace(new RegExp(escapeRegex(opts.groupSeparator), "g"), ""),
2200            "," === opts.radixPoint && (opts.min = opts.min.replace(opts.radixPoint, ".")),
2201                opts.min = isFinite(opts.min) ? parseFloat(opts.min) : NaN, isNaN(opts.min) && (opts.min = Number.MIN_VALUE)),
2202            null !== opts.max && (opts.max = opts.max.toString().replace(new RegExp(escapeRegex(opts.groupSeparator), "g"), ""),
2203            "," === opts.radixPoint && (opts.max = opts.max.replace(opts.radixPoint, ".")),
2204                opts.max = isFinite(opts.max) ? parseFloat(opts.max) : NaN, isNaN(opts.max) && (opts.max = Number.MAX_VALUE)),
2205                opts.parseMinMaxOptions = "done");
2206        }
2207        function genMask(opts) {
2208            opts.repeat = 0, opts.groupSeparator === opts.radixPoint && opts.digits && "0" !== opts.digits && ("." === opts.radixPoint ? opts.groupSeparator = "," : "," === opts.radixPoint ? opts.groupSeparator = "." : opts.groupSeparator = ""),
2209            " " === opts.groupSeparator && (opts.skipOptionalPartCharacter = void 0), 1 < opts.placeholder.length && (opts.placeholder = opts.placeholder.charAt(0)),
2210            "radixFocus" === opts.positionCaretOnClick && "" === opts.placeholder && (opts.positionCaretOnClick = "lvp");
2211            var decimalDef = "0", radixPointDef = opts.radixPoint;
2212            !0 === opts.numericInput && void 0 === opts.__financeInput ? (decimalDef = "1",
2213                opts.positionCaretOnClick = "radixFocus" === opts.positionCaretOnClick ? "lvp" : opts.positionCaretOnClick,
2214                opts.digitsOptional = !1, isNaN(opts.digits) && (opts.digits = 2), opts._radixDance = !1,
2215                radixPointDef = "," === opts.radixPoint ? "?" : "!", "" !== opts.radixPoint && void 0 === opts.definitions[radixPointDef] && (opts.definitions[radixPointDef] = {},
2216                opts.definitions[radixPointDef].validator = "[" + opts.radixPoint + "]", opts.definitions[radixPointDef].placeholder = opts.radixPoint,
2217                opts.definitions[radixPointDef].static = !0, opts.definitions[radixPointDef].generated = !0)) : (opts.__financeInput = !1,
2218                opts.numericInput = !0);
2219            var mask = "[+]", altMask;
2220            if (mask += autoEscape(opts.prefix, opts), "" !== opts.groupSeparator ? (void 0 === opts.definitions[opts.groupSeparator] && (opts.definitions[opts.groupSeparator] = {},
2221                opts.definitions[opts.groupSeparator].validator = "[" + opts.groupSeparator + "]",
2222                opts.definitions[opts.groupSeparator].placeholder = opts.groupSeparator, opts.definitions[opts.groupSeparator].static = !0,
2223                opts.definitions[opts.groupSeparator].generated = !0), mask += opts._mask(opts)) : mask += "9{+}",
2224            void 0 !== opts.digits && 0 !== opts.digits) {
2225                var dq = opts.digits.toString().split(",");
2226                isFinite(dq[0]) && dq[1] && isFinite(dq[1]) ? mask += radixPointDef + decimalDef + "{" + opts.digits + "}" : (isNaN(opts.digits) || 0 < parseInt(opts.digits)) && (opts.digitsOptional ? (altMask = mask + radixPointDef + decimalDef + "{0," + opts.digits + "}",
2227                    opts.keepStatic = !0) : mask += radixPointDef + decimalDef + "{" + opts.digits + "}");
2228            }
2229            return mask += autoEscape(opts.suffix, opts), mask += "[-]", altMask && (mask = [ altMask + autoEscape(opts.suffix, opts) + "[-]", mask ]),
2230                opts.greedy = !1, parseMinMaxOptions(opts), mask;
2231        }
2232        function hanndleRadixDance(pos, c, radixPos, maskset, opts) {
2233            return opts._radixDance && opts.numericInput && c !== opts.negationSymbol.back && pos <= radixPos && (0 < radixPos || c == opts.radixPoint) && (void 0 === maskset.validPositions[pos - 1] || maskset.validPositions[pos - 1].input !== opts.negationSymbol.back) && (pos -= 1),
2234                pos;
2235        }
2236        function decimalValidator(chrs, maskset, pos, strict, opts) {
2237            var radixPos = maskset.buffer ? maskset.buffer.indexOf(opts.radixPoint) : -1, result = -1 !== radixPos && new RegExp("[0-9\uff11-\uff19]").test(chrs);
2238            return opts._radixDance && result && null == maskset.validPositions[radixPos] ? {
2239                insert: {
2240                    pos: radixPos === pos ? radixPos + 1 : radixPos,
2241                    c: opts.radixPoint
2242                },
2243                pos: pos
2244            } : result;
2245        }
2246        function checkForLeadingZeroes(buffer, opts) {
2247            var numberMatches = new RegExp("(^" + ("" !== opts.negationSymbol.front ? escapeRegex(opts.negationSymbol.front) + "?" : "") + escapeRegex(opts.prefix) + ")(.*)(" + escapeRegex(opts.suffix) + ("" != opts.negationSymbol.back ? escapeRegex(opts.negationSymbol.back) + "?" : "") + "$)").exec(buffer.slice().reverse().join("")), number = numberMatches ? numberMatches[2] : "", leadingzeroes = !1;
2248            return number && (number = number.split(opts.radixPoint.charAt(0))[0], leadingzeroes = new RegExp("^[0" + opts.groupSeparator + "]*").exec(number)),
2249            !(!leadingzeroes || !(1 < leadingzeroes[0].length || 0 < leadingzeroes[0].length && leadingzeroes[0].length < number.length)) && leadingzeroes;
2250        }
2251        Inputmask.extendAliases({
2252            numeric: {
2253                mask: genMask,
2254                _mask: function _mask(opts) {
2255                    return "(" + opts.groupSeparator + "999){+|1}";
2256                },
2257                digits: "*",
2258                digitsOptional: !0,
2259                enforceDigitsOnBlur: !1,
2260                radixPoint: ".",
2261                positionCaretOnClick: "radixFocus",
2262                _radixDance: !0,
2263                groupSeparator: "",
2264                allowMinus: !0,
2265                negationSymbol: {
2266                    front: "-",
2267                    back: ""
2268                },
2269                prefix: "",
2270                suffix: "",
2271                min: null,
2272                max: null,
2273                SetMaxOnOverflow: !1,
2274                step: 1,
2275                inputType: "text",
2276                unmaskAsNumber: !1,
2277                roundingFN: Math.round,
2278                inputmode: "numeric",
2279                shortcuts: {
2280                    k: "000",
2281                    m: "000000"
2282                },
2283                placeholder: "0",
2284                greedy: !1,
2285                rightAlign: !0,
2286                insertMode: !0,
2287                autoUnmask: !1,
2288                skipOptionalPartCharacter: "",
2289                definitions: {
2290                    0: {
2291                        validator: decimalValidator
2292                    },
2293                    1: {
2294                        validator: decimalValidator,
2295                        definitionSymbol: "9"
2296                    },
2297                    "+": {
2298                        validator: function validator(chrs, maskset, pos, strict, opts) {
2299                            return opts.allowMinus && ("-" === chrs || chrs === opts.negationSymbol.front);
2300                        }
2301                    },
2302                    "-": {
2303                        validator: function validator(chrs, maskset, pos, strict, opts) {
2304                            return opts.allowMinus && chrs === opts.negationSymbol.back;
2305                        }
2306                    }
2307                },
2308                preValidation: function preValidation(buffer, pos, c, isSelection, opts, maskset, caretPos, strict) {
2309                    if (!1 !== opts.__financeInput && c === opts.radixPoint) return !1;
2310                    var pattern;
2311                    if (pattern = opts.shortcuts && opts.shortcuts[c]) {
2312                        if (1 < pattern.length) for (var inserts = [], i = 0; i < pattern.length; i++) inserts.push({
2313                            pos: pos + i,
2314                            c: pattern[i],
2315                            strict: !1
2316                        });
2317                        return {
2318                            insert: inserts
2319                        };
2320                    }
2321                    var radixPos = $.inArray(opts.radixPoint, buffer), initPos = pos;
2322                    if (pos = hanndleRadixDance(pos, c, radixPos, maskset, opts), "-" === c || c === opts.negationSymbol.front) {
2323                        if (!0 !== opts.allowMinus) return !1;
2324                        var isNegative = !1, front = findValid("+", maskset), back = findValid("-", maskset);
2325                        return -1 !== front && (isNegative = [ front, back ]), !1 !== isNegative ? {
2326                            remove: isNegative,
2327                            caret: initPos
2328                        } : {
2329                            insert: [ {
2330                                pos: findValidator("+", maskset),
2331                                c: opts.negationSymbol.front,
2332                                fromIsValid: !0
2333                            }, {
2334                                pos: findValidator("-", maskset),
2335                                c: opts.negationSymbol.back,
2336                                fromIsValid: void 0
2337                            } ],
2338                            caret: initPos + opts.negationSymbol.back.length
2339                        };
2340                    }
2341                    if (strict) return !0;
2342                    if (-1 !== radixPos && !0 === opts._radixDance && !1 === isSelection && c === opts.radixPoint && void 0 !== opts.digits && (isNaN(opts.digits) || 0 < parseInt(opts.digits)) && radixPos !== pos) return {
2343                        caret: opts._radixDance && pos === radixPos - 1 ? radixPos + 1 : radixPos
2344                    };
2345                    if (!1 === opts.__financeInput) if (isSelection) {
2346                        if (opts.digitsOptional) return {
2347                            rewritePosition: caretPos.end
2348                        };
2349                        if (!opts.digitsOptional) {
2350                            if (caretPos.begin > radixPos && caretPos.end <= radixPos) return c === opts.radixPoint ? {
2351                                insert: {
2352                                    pos: radixPos + 1,
2353                                    c: "0",
2354                                    fromIsValid: !0
2355                                },
2356                                rewritePosition: radixPos
2357                            } : {
2358                                rewritePosition: radixPos + 1
2359                            };
2360                            if (caretPos.begin < radixPos) return {
2361                                rewritePosition: caretPos.begin - 1
2362                            };
2363                        }
2364                    } else if (!opts.showMaskOnHover && !opts.showMaskOnFocus && !opts.digitsOptional && 0 < opts.digits && "" === this.inputmask.__valueGet.call(this)) return {
2365                        rewritePosition: radixPos
2366                    };
2367                    return {
2368                        rewritePosition: pos
2369                    };
2370                },
2371                postValidation: function postValidation(buffer, pos, c, currentResult, opts, maskset, strict) {
2372                    if (!1 === currentResult) return currentResult;
2373                    if (strict) return !0;
2374                    if (null !== opts.min || null !== opts.max) {
2375                        var unmasked = opts.onUnMask(buffer.slice().reverse().join(""), void 0, $.extend({}, opts, {
2376                            unmaskAsNumber: !0
2377                        }));
2378                        if (null !== opts.min && unmasked < opts.min && (unmasked.toString().length > opts.min.toString().length || unmasked < 0)) return !1;
2379                        if (null !== opts.max && unmasked > opts.max) return !!opts.SetMaxOnOverflow && {
2380                            refreshFromBuffer: !0,
2381                            buffer: alignDigits(opts.max.toString().replace(".", opts.radixPoint).split(""), opts.digits, opts).reverse()
2382                        };
2383                    }
2384                    return currentResult;
2385                },
2386                onUnMask: function onUnMask(maskedValue, unmaskedValue, opts) {
2387                    if ("" === unmaskedValue && !0 === opts.nullable) return unmaskedValue;
2388                    var processValue = maskedValue.replace(opts.prefix, "");
2389                    return processValue = processValue.replace(opts.suffix, ""), processValue = processValue.replace(new RegExp(escapeRegex(opts.groupSeparator), "g"), ""),
2390                    "" !== opts.placeholder.charAt(0) && (processValue = processValue.replace(new RegExp(opts.placeholder.charAt(0), "g"), "0")),
2391                        opts.unmaskAsNumber ? ("" !== opts.radixPoint && -1 !== processValue.indexOf(opts.radixPoint) && (processValue = processValue.replace(escapeRegex.call(this, opts.radixPoint), ".")),
2392                            processValue = processValue.replace(new RegExp("^" + escapeRegex(opts.negationSymbol.front)), "-"),
2393                            processValue = processValue.replace(new RegExp(escapeRegex(opts.negationSymbol.back) + "$"), ""),
2394                            Number(processValue)) : processValue;
2395                },
2396                isComplete: function isComplete(buffer, opts) {
2397                    var maskedValue = (opts.numericInput ? buffer.slice().reverse() : buffer).join("");
2398                    return maskedValue = maskedValue.replace(new RegExp("^" + escapeRegex(opts.negationSymbol.front)), "-"),
2399                        maskedValue = maskedValue.replace(new RegExp(escapeRegex(opts.negationSymbol.back) + "$"), ""),
2400                        maskedValue = maskedValue.replace(opts.prefix, ""), maskedValue = maskedValue.replace(opts.suffix, ""),
2401                        maskedValue = maskedValue.replace(new RegExp(escapeRegex(opts.groupSeparator) + "([0-9]{3})", "g"), "$1"),
2402                    "," === opts.radixPoint && (maskedValue = maskedValue.replace(escapeRegex(opts.radixPoint), ".")),
2403                        isFinite(maskedValue);
2404                },
2405                onBeforeMask: function onBeforeMask(initialValue, opts) {
2406                    var radixPoint = opts.radixPoint || ",";
2407                    isFinite(opts.digits) && (opts.digits = parseInt(opts.digits)), "number" != typeof initialValue && "number" !== opts.inputType || "" === radixPoint || (initialValue = initialValue.toString().replace(".", radixPoint));
2408                    var valueParts = initialValue.split(radixPoint), integerPart = valueParts[0].replace(/[^\-0-9]/g, ""), decimalPart = 1 < valueParts.length ? valueParts[1].replace(/[^0-9]/g, "") : "", forceDigits = 1 < valueParts.length;
2409                    initialValue = integerPart + ("" !== decimalPart ? radixPoint + decimalPart : decimalPart);
2410                    var digits = 0;
2411                    if ("" !== radixPoint && (digits = opts.digitsOptional ? opts.digits < decimalPart.length ? opts.digits : decimalPart.length : opts.digits,
2412                    "" !== decimalPart || !opts.digitsOptional)) {
2413                        var digitsFactor = Math.pow(10, digits || 1);
2414                        initialValue = initialValue.replace(escapeRegex(radixPoint), "."), isNaN(parseFloat(initialValue)) || (initialValue = (opts.roun
2414dingFN(parseFloat(initialValue) * digitsFactor) / digitsFactor).toFixed(digits)),
2415                            initialValue = initialValue.toString().replace(".", radixPoint);
2416                    }
2417                    if (0 === opts.digits && -1 !== initialValue.indexOf(radixPoint) && (initialValue = initialValue.substring(0, initialValue.indexOf(radixPoint))),
2418                    null !== opts.min || null !== opts.max) {
2419                        var numberValue = initialValue.toString().replace(radixPoint, ".");
2420                        null !== opts.min && numberValue < opts.min ? initialValue = opts.min.toString().replace(".", radixPoint) : null !== opts.max && numberValue > opts.max && (initialValue = opts.max.toString().replace(".", radixPoint));
2421                    }
2422                    return alignDigits(initialValue.toString().split(""), digits, opts, forceDigits).join("");
2423                },
2424                onBeforeWrite: function onBeforeWrite(e, buffer, caretPos, opts) {
2425                    function stripBuffer(buffer, stripRadix) {
2426                        if (!1 !== opts.__financeInput || stripRadix) {
2427                            var position = $.inArray(opts.radixPoint, buffer);
2428                            -1 !== position && buffer.splice(position, 1);
2429                        }
2430                        if ("" !== opts.groupSeparator) for (;-1 !== (position = buffer.indexOf(opts.groupSeparator)); ) buffer.splice(position, 1);
2431                        return buffer;
2432                    }
2433                    var result, leadingzeroes = checkForLeadingZeroes(buffer, opts);
2434                    if (leadingzeroes) for (var caretNdx = buffer.join("").lastIndexOf(leadingzeroes[0].split("").reverse().join("")) - (leadingzeroes[0] == leadingzeroes.input ? 0 : 1), offset = leadingzeroes[0] == leadingzeroes.input ? 1 : 0, i = leadingzeroes[0].length - offset; 0 < i; i--) delete this.maskset.validPositions[caretNdx + i],
2435                        delete buffer[caretNdx + i];
2436                    if (e) switch (e.type) {
2437                        case "blur":
2438                        case "checkval":
2439                            if (null !== opts.min) {
2440                                var unmasked = opts.onUnMask(buffer.slice().reverse().join(""), void 0, $.extend({}, opts, {
2441                                    unmaskAsNumber: !0
2442                                }));
2443                                if (null !== opts.min && unmasked < opts.min) return {
2444                                    refreshFromBuffer: !0,
2445                                    buffer: alignDigits(opts.min.toString().replace(".", opts.radixPoint).split(""), opts.digits, opts).reverse()
2446                                };
2447                            }
2448                            if (buffer[buffer.length - 1] === opts.negationSymbol.front) {
2449                                var nmbrMtchs = new RegExp("(^" + ("" != opts.negationSymbol.front ? escapeRegex(opts.negationSymbol.front) + "?" : "") + escapeRegex(opts.prefix) + ")(.*)(" + escapeRegex(opts.suffix) + ("" != opts.negationSymbol.back ? escapeRegex(opts.negationSymbol.back) + "?" : "") + "$)").exec(stripBuffer(buffer.slice(), !0).reverse().join("")), number = nmbrMtchs ? nmbrMtchs[2] : "";
2450                                0 == number && (result = {
2451                                    refreshFromBuffer: !0,
2452                                    buffer: [ 0 ]
2453                                });
2454                            } else "" !== opts.radixPoint && buffer[0] === opts.radixPoint && (result && result.buffer ? result.buffer.shift() : (buffer.shift(),
2455                                result = {
2456                                    refreshFromBuffer: !0,
2457                                    buffer: stripBuffer(buffer)
2458                                }));
2459                            if (opts.enforceDigitsOnBlur) {
2460                                result = result || {};
2461                                var bffr = result && result.buffer || buffer.slice().reverse();
2462                                result.refreshFromBuffer = !0, result.buffer = alignDigits(bffr, opts.digits, opts, !0).reverse();
2463                            }
2464                    }
2465                    return result;
2466                },
2467                onKeyDown: function onKeyDown(e, buffer, caretPos, opts) {
2468                    var $input = $(this), bffr;
2469                    if (e.ctrlKey) switch (e.keyCode) {
2470                        case keyCode.UP:
2471                            return this.inputmask.__valueSet.call(this, parseFloat(this.inputmask.unmaskedvalue()) + parseInt(opts.step)),
2472                                $input.trigger("setvalue"), !1;
2473
2474                        case keyCode.DOWN:
2475                            return this.inputmask.__valueSet.call(this, parseFloat(this.inputmask.unmaskedvalue()) - parseInt(opts.step)),
2476                                $input.trigger("setvalue"), !1;
2477                    }
2478                    if (!e.shiftKey && (e.keyCode === keyCode.DELETE || e.keyCode === keyCode.BACKSPACE || e.keyCode === keyCode.BACKSPACE_SAFARI) && caretPos.begin !== buffer.length) {
2479                        if (buffer[e.keyCode === keyCode.DELETE ? caretPos.begin - 1 : caretPos.end] === opts.negationSymbol.front) return bffr = buffer.slice().reverse(),
2480                        "" !== opts.negationSymbol.front && bffr.shift(), "" !== opts.negationSymbol.back && bffr.pop(),
2481                            $input.trigger("setvalue", [ bffr.join(""), caretPos.begin ]), !1;
2482                        if (!0 === opts._radixDance) {
2483                            var radixPos = $.inArray(opts.radixPoint, buffer);
2484                            if (opts.digitsOptional) {
2485                                if (0 === radixPos) return bffr = buffer.slice().reverse(), bffr.pop(), $input.trigger("setvalue", [ bffr.join(""), caretPos.begin >= bffr.length ? bffr.length : caretPos.begin ]),
2486                                    !1;
2487                            } else if (-1 !== radixPos && (caretPos.begin < radixPos || caretPos.end < radixPos || e.keyCode === keyCode.DELETE && c
2487aretPos.begin === radixPos)) return caretPos.begin !== caretPos.end || e.keyCode !== keyCode.BACKSPACE && e.keyCode !== keyCode.BACKSPACE_SAFARI || caretPos.begin++,
2488                                bffr = buffer.slice().reverse(), bffr.splice(bffr.length - caretPos.begin, caretPos.begin - caretPos.end + 1),
2489                                bffr = alignDigits(bffr, opts.digits, opts).join(""), $input.trigger("setvalue", [ bffr, caretPos.begin >= bffr.length ? radixPos + 1 : caretPos.begin ]),
2490                                !1;
2491                        }
2492                    }
2493                }
2494            },
2495            currency: {
2496                prefix: "",
2497                groupSeparator: ",",
2498                alias: "numeric",
2499                digits: 2,
2500                digitsOptional: !1
2501            },
2502            decimal: {
2503                alias: "numeric"
2504            },
2505            integer: {
2506                alias: "numeric",
2507                digits: 0
2508            },
2509            percentage: {
2510                alias: "numeric",
2511                min: 0,
2512                max: 100,
2513                suffix: " %",
2514                digits: 0,
2515                allowMinus: !1
2516            },
2517            indianns: {
2518                alias: "numeric",
2519                _mask: function _mask(opts) {
2520                    return "(" + opts.groupSeparator + "99){*|1}(" + opts.groupSeparator + "999){1|1}";
2521                },
2522                groupSeparator: ",",
2523                radixPoint: ".",
2524                placeholder: "0",
2525                digits: 2,
2526                digitsOptional: !1
2527            }
2528        }), module.exports = Inputmask;
2529    }, function(module, exports, __webpack_require__) {
2530        "use strict";
2531        var _window = _interopRequireDefault(__webpack_require__(4)), _inputmask = _interopRequireDefault(__webpack_require__(1));
2532        function _typeof(obj) {
2533            return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function _typeof(obj) {
2534                return typeof obj;
2535            } : function _typeof(obj) {
2536                return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
2537            }, _typeof(obj);
2538        }
2539        function _classCallCheck(instance, Constructor) {
2540            if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");
2541        }
2542        function _inherits(subClass, superClass) {
2543            if ("function" != typeof superClass && null !== superClass) throw new TypeError("Super expression must either be null or a function");
2544            subClass.prototype = Object.create(superClass && superClass.prototype, {
2545                constructor: {
2546                    value: subClass,
2547                    writable: !0,
2548                    configurable: !0
2549                }
2550            }), superClass && _setPrototypeOf(subClass, superClass);
2551        }
2552        function _createSuper(Derived) {
2553            return function() {
2554                var Super = _getPrototypeOf(Derived), result;
2555                if (_isNativeReflectConstruct()) {
2556                    var NewTarget = _getPrototypeOf(this).constructor;
2557                    result = Reflect.construct(Super, arguments, NewTarget);
2558                } else result = Super.apply(this, arguments);
2559                return _possibleConstructorReturn(this, result);
2560            };
2561        }
2562        function _possibleConstructorReturn(self, call) {
2563            return !call || "object" !== _typeof(call) && "function" != typeof call ? _assertThisInitialized(self) : call;
2564        }
2565        function _assertThisInitialized(self) {
2566            if (void 0 === self) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
2567            return self;
2568        }
2569        function _wrapNativeSuper(Class) {
2570            var _cache = "function" == typeof Map ? new Map() : void 0;
2571            return _wrapNativeSuper = function _wrapNativeSuper(Class) {
2572                if (null === Class || !_isNativeFunction(Class)) return Class;
2573                if ("function" != typeof Class) throw new TypeError("Super expression must either be null or a function");
2574                if ("undefined" != typeof _cache) {
2575                    if (_cache.has(Class)) return _cache.get(Class);
2576                    _cache.set(Class, Wrapper);
2577                }
2578                function Wrapper() {
2579                    return _construct(Class, arguments, _getPrototypeOf(this).constructor);
2580                }
2581                return Wrapper.prototype = Object.create(Class.prototype, {
2582                    constructor: {
2583                        value: Wrapper,
2584                        enumerable: !1,
2585                        writable: !0,
2586                        configurable: !0
2587                    }
2588                }), _setPrototypeOf(Wrapper, Class);
2589            }, _wrapNativeSuper(Class);
2590        }
2591        function _construct(Parent, args, Class) {
2592            return _construct = _isNativeReflectConstruct() ? Reflect.construct : function _construct(Parent, args, Class) {
2593                var a = [ null ];
2594                a.push.apply(a, args);
2595                var Constructor = Function.bind.apply(Parent, a), instance = new Constructor();
2596                return Class && _setPrototypeOf(instance, Class.prototype), instance;
2597            }, _construct.apply(null, arguments);
2598        }
2599        function _isNativeReflectConstruct() {
2600            if ("undefined" == typeof Reflect || !Reflect.construct) return !1;
2601            if (Reflect.construct.sham) return !1;
2602            if ("function" == typeof Proxy) return !0;
2603            try {
2604                return Date.prototype.toString.call(Reflect.construct(Date, [], function() {})),
2605                    !0;
2606            } catch (e) {
2607                return !1;
2608            }
2609        }
2610        function _isNativeFunction(fn) {
2611            return -1 !== Function.toString.call(fn).indexOf("[native code]");
2612        }
2613        function _setPrototypeOf(o, p) {
2614            return _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
2615                return o.__proto__ = p, o;
2616            }, _setPrototypeOf(o, p);
2617        }
2618        function _getPrototypeOf(o) {
2619            return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
2620                return o.__proto__ || Object.getPrototypeOf(o);
2621            }, _getPrototypeOf(o);
2622        }
2623        function _interopRequireDefault(obj) {
2624            return obj && obj.__esModule ? obj : {
2625                default: obj
2626            };
2627        }
2628        var document = _window.default.document;
2629        if (document && document.head && document.head.attachShadow && _window.default.customElements && void 0 === _window.default.customElements.get("input-mask")) {
2630            var InputmaskElement = function(_HTMLElement) {
2631                _inherits(InputmaskElement, _HTMLElement);
2632                var _super = _createSuper(InputmaskElement);
2633                function InputmaskElement() {
2634                    var _this;
2635                    _classCallCheck(this, InputmaskElement), _this = _super.call(this);
2636                    var attributeNames = _this.getAttributeNames(), shadow = _this.attachShadow({
2637                        mode: "closed"
2638                    }), input = document.createElement("input");
2639                    for (var attr in input.type = "text", shadow.appendChild(input), attributeNames) Object.prototype.hasOwnProperty.call(attributeNames, attr) && input.setAttribute(attributeNames[attr], _this.getAttribute(attributeNames[attr]));
2640                    var im = new _inputmask.default();
2641                    return im.dataAttribute = "", im.mask(input), input.inputmask.shadowRoot = shadow,
2642                        _this;
2643                }
2644                return InputmaskElement;
2645            }(_wrapNativeSuper(HTMLElement));
2646            _window.default.customElements.define("input-mask", InputmaskElement);
2647        }
2648    }, function(module, exports, __webpack_require__) {
2649        "use strict";
2650        function _typeof(obj) {
2651            return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function _typeof(obj) {
2652                return typeof obj;
2653            } : function _typeof(obj) {
2654                return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
2655            }, _typeof(obj);
2656        }
2657        var $ = __webpack_require__(3), Inputmask = __webpack_require__(1);
2658        void 0 === $.fn.inputmask && ($.fn.inputmask = function(fn, options) {
2659            var nptmask, input = this[0];
2660            if (void 0 === options && (options = {}), "string" == typeof fn) switch (fn) {
2661                case "unmaskedvalue":
2662                    return input && input.inputmask ? input.inputmask.unmaskedvalue() : $(input).val();
2663
2664                case "remove":
2665                    return this.each(function() {
2666                        this.inputmask && this.inputmask.remove();
2667                    });
2668
2669                case "getemptymask":
2670                    return input && input.inputmask ? input.inputmask.getemptymask() : "";
2671
2672                case "hasMaskedValue":
2673                    return !(!input || !input.inputmask) && input.inputmask.hasMaskedValue();
2674
2675                case "isComplete":
2676                    return !input || !input.inputmask || input.inputmask.isComplete();
2677
2678                case "getmetadata":
2679                    return input && input.inputmask ? input.inputmask.getmetadata() : void 0;
2680
2681                case "setvalue":
2682                    Inputmask.setValue(input, options);
2683                    break;
2684
2685                case "option":
2686                    if ("string" != typeof options) return this.each(function() {
2687                        if (void 0 !== this.inputmask) return this.inputmask.option(options);
2688                    });
2689                    if (input && void 0 !== input.inputmask) return input.inputmask.option(options);
2690                    break;
2691
2692                default:
2693                    return options.alias = fn, nptmask = new Inputmask(options), this.each(function() {
2694                        nptmask.mask(this);
2695                    });
2696            } else {
2697                if (Array.isArray(fn)) return options.alias = fn, nptmask = new Inputmask(options),
2698                    this.each(function() {
2699                        nptmask.mask(this);
2700                    });
2701                if ("object" == _typeof(fn)) return nptmask = new Inputmask(fn), void 0 === fn.mask && void 0 === fn.alias ? this.each(function() {
2702                    if (void 0 !== this.inputmask) return this.inputmask.option(fn);
2703                    nptmask.mask(this);
2704                }) : this.each(function() {
2705                    nptmask.mask(this);
2706                });
2707                if (void 0 === fn) return this.each(function() {
2708                    nptmask = new Inputmask(options), nptmask.mask(this);
2709                });
2710            }
2711        });
2712    }, function(module, exports, __webpack_require__) {
2713        "use strict";
2714        var im = __webpack_require__(7), jQuery = __webpack_require__(3);
2715        im.dependencyLib === jQuery && __webpack_require__(14), module.exports = im;
2716    } ], installedModules = {}, __webpack_require__.m = modules, __webpack_require__.c = installedModules,
2717        __webpack_require__.d = function(exports, name, getter) {
2718            __webpack_require__.o(exports, name) || Object.defineProperty(exports, name, {
2719                enumerable: !0,
2720                get: getter
2721            });
2722        }, __webpack_require__.r = function(exports) {
2723        "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(exports, Symbol.toStringTag, {
2724            value: "Module"
2725        }), Object.defineProperty(exports, "__esModule", {
2726            value: !0
2727        });
2728    }, __webpack_require__.t = function(value, mode) {
2729        if (1 & mode && (value = __webpack_require__(value)), 8 & mode) return value;
2730        if (4 & mode && "object" == typeof value && value && value.__esModule) return value;
2731        var ns = Object.create(null);
2732        if (__webpack_require__.r(ns), Object.defineProperty(ns, "default", {
2733            enumerable: !0,
2734            value: value
2735        }), 2 & mode && "string" != typeof value) for (var key in value) __webpack_require__.d(ns, key, function(key) {
2736            return value[key];
2737        }.bind(null, key));
2738        return ns;
2739    }, __webpack_require__.n = function(module) {
2740        var getter = module && module.__esModule ? function getDefault() {
2741            return module.default;
2742        } : function getModuleExports() {
2743            return module;
2744        };
2745        return __webpack_require__.d(getter, "a", getter), getter;
2746    }, __webpack_require__.o = function(object, property) {
2747        return Object.prototype.hasOwnProperty.call(object, property);
2748    }, __webpack_require__.p = "", __webpack_require__(__webpack_require__.s = 15);
2749    function __webpack_require__(moduleId) {
2750        if (installedModules[moduleId]) return installedModules[moduleId].exports;
2751        var module = installedModules[moduleId] = {
2752            i: moduleId,
2753            l: !1,
2754            exports: {}
2755        };
2756        return modules[moduleId].call(module.exports, module, module.exports, __webpack_require__),
2757            module.l = !0, module.exports;
2758    }
2759    var modules, installedModules;
2760});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.