PageSourceSearch

https://termoplus.com.ua/public/js/jquery.inputmask.js

js termoplus.com.ua collected 2026-10-04 12:23:58 UTC 192,284 bytes, 2,767 lines download raw bytes

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

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.