UNPKG

cronapp-framework-mobile-js

Version:
1,158 lines (1,146 loc) 179 kB
/*! * jquery.inputmask.bundle.js * https://github.com/RobinHerbots/Inputmask * Copyright (c) 2010 - 2018 Robin Herbots * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php) * Version: 4.0.2 */ (function(modules) { var installedModules = {}; function __webpack_require__(moduleId) { if (installedModules[moduleId]) { return installedModules[moduleId].exports; } var module = installedModules[moduleId] = { i: moduleId, l: false, exports: {} }; modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); module.l = true; return module.exports; } __webpack_require__.m = modules; __webpack_require__.c = installedModules; __webpack_require__.d = function(exports, name, getter) { if (!__webpack_require__.o(exports, name)) { Object.defineProperty(exports, name, { enumerable: true, get: getter }); } }; __webpack_require__.r = function(exports) { if (typeof Symbol !== "undefined" && Symbol.toStringTag) { Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); } Object.defineProperty(exports, "__esModule", { value: true }); }; __webpack_require__.t = function(value, mode) { if (mode & 1) value = __webpack_require__(value); if (mode & 8) return value; if (mode & 4 && typeof value === "object" && value && value.__esModule) return value; var ns = Object.create(null); __webpack_require__.r(ns); Object.defineProperty(ns, "default", { enumerable: true, value: value }); if (mode & 2 && typeof value != "string") for (var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); return ns; }; __webpack_require__.n = function(module) { var getter = module && module.__esModule ? function getDefault() { return module["default"]; } : function getModuleExports() { return module; }; __webpack_require__.d(getter, "a", getter); return getter; }; __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; __webpack_require__.p = ""; return __webpack_require__(__webpack_require__.s = 0); })([ function(module, exports, __webpack_require__) { "use strict"; __webpack_require__(1); __webpack_require__(7); __webpack_require__(8); var _inputmask = __webpack_require__(2); var _inputmask2 = _interopRequireDefault(_inputmask); var _inputmask3 = __webpack_require__(3); var _inputmask4 = _interopRequireDefault(_inputmask3); var _jquery = __webpack_require__(4); var _jquery2 = _interopRequireDefault(_jquery); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } if (_inputmask4.default === _jquery2.default) { __webpack_require__(9); } window.Inputmask = _inputmask2.default; }, function(module, exports, __webpack_require__) { "use strict"; var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function(obj) { return typeof obj; } : function(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; (function(factory) { if (true) { !(__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(2) ], __WEBPACK_AMD_DEFINE_FACTORY__ = factory, __WEBPACK_AMD_DEFINE_RESULT__ = typeof __WEBPACK_AMD_DEFINE_FACTORY__ === "function" ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(function(Inputmask) { Inputmask.extendDefinitions({ A: { validator: "[A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]", casing: "upper" }, "&": { validator: "[0-9A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]", casing: "upper" }, "#": { validator: "[0-9A-Fa-f]", casing: "upper" } }); Inputmask.extendAliases({ cssunit: { regex: "[+-]?[0-9]+\\.?([0-9]+)?(px|em|rem|ex|%|in|cm|mm|pt|pc)" }, url: { regex: "(https?|ftp)//.*", autoUnmask: false }, ip: { mask: "i[i[i]].i[i[i]].i[i[i]].i[i[i]]", definitions: { i: { validator: function validator(chrs, maskset, pos, strict, opts) { if (pos - 1 > -1 && maskset.buffer[pos - 1] !== ".") { chrs = maskset.buffer[pos - 1] + chrs; if (pos - 2 > -1 && maskset.buffer[pos - 2] !== ".") { chrs = maskset.buffer[pos - 2] + chrs; } else chrs = "0" + chrs; } else chrs = "00" + chrs; return new RegExp("25[0-5]|2[0-4][0-9]|[01][0-9][0-9]").test(chrs); } } }, onUnMask: function onUnMask(maskedValue, unmaskedValue, opts) { return maskedValue; }, inputmode: "numeric" }, email: { mask: "*{1,64}[.*{1,64}][.*{1,64}][.*{1,63}]@-{1,63}.-{1,63}[.-{1,63}][.-{1,63}]", greedy: false, casing: "lower", onBeforePaste: function onBeforePaste(pastedValue, opts) { pastedValue = pastedValue.toLowerCase(); return pastedValue.replace("mailto:", ""); }, definitions: { "*": { validator: "[0-9\uff11-\uff19A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5!#$%&'*+/=?^_`{|}~-]" }, "-": { validator: "[0-9A-Za-z-]" } }, onUnMask: function onUnMask(maskedValue, unmaskedValue, opts) { return maskedValue; }, inputmode: "email" }, mac: { mask: "##:##:##:##:##:##" }, vin: { mask: "V{13}9{4}", definitions: { V: { validator: "[A-HJ-NPR-Za-hj-npr-z\\d]", casing: "upper" } }, clearIncomplete: true, autoUnmask: true } }); return Inputmask; }); }, function(module, exports, __webpack_require__) { "use strict"; var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function(obj) { return typeof obj; } : function(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; (function(factory) { if (true) { !(__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(3), __webpack_require__(5), __webpack_require__(6) ], __WEBPACK_AMD_DEFINE_FACTORY__ = factory, __WEBPACK_AMD_DEFINE_RESULT__ = typeof __WEBPACK_AMD_DEFINE_FACTORY__ === "function" ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(function($, window, document, undefined) { var ua = navigator.userAgent, mobile = isInputEventSupported("touchstart"), iemobile = /iemobile/i.test(ua), iphone = /iphone/i.test(ua) && !iemobile; function Inputmask(alias, options, internal) { if (!(this instanceof Inputmask)) { return new Inputmask(alias, options, internal); } this.el = undefined; this.events = {}; this.maskset = undefined; this.refreshValue = false; if (internal !== true) { if ($.isPlainObject(alias)) { options = alias; } else { options = options || {}; if (alias) options.alias = alias; } this.opts = $.extend(true, {}, this.defaults, options); this.noMasksCache = options && options.definitions !== undefined; this.userOptions = options || {}; this.isRTL = this.opts.numericInput; resolveAlias(this.opts.alias, options, this.opts); } } Inputmask.prototype = { dataAttribute: "data-inputmask", defaults: { placeholder: "_", optionalmarker: [ "[", "]" ], quantifiermarker: [ "{", "}" ], groupmarker: [ "(", ")" ], alternatormarker: "|", escapeChar: "\\", mask: null, regex: null, oncomplete: $.noop, onincomplete: $.noop, oncleared: $.noop, repeat: 0, greedy: false, autoUnmask: false, removeMaskOnSubmit: false, clearMaskOnLostFocus: true, insertMode: true, clearIncomplete: false, alias: null, onKeyDown: $.noop, onBeforeMask: null, onBeforePaste: function onBeforePaste(pastedValue, opts) { return $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(this, pastedValue, opts) : pastedValue; }, onBeforeWrite: null, onUnMask: null, showMaskOnFocus: true, showMaskOnHover: true, onKeyValidation: $.noop, skipOptionalPartCharacter: " ", numericInput: false, rightAlign: false, undoOnEscape: true, radixPoint: "", _radixDance: false, groupSeparator: "", keepStatic: null, positionCaretOnTab: true, tabThrough: false, supportsInputType: [ "text", "tel", "password", "search" ], ignorables: [ 8, 9, 13, 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 ], isComplete: null, preValidation: null, postValidation: null, staticDefinitionSymbol: undefined, jitMasking: false, nullable: true, inputEventOnly: false, noValuePatching: false, positionCaretOnClick: "lvp", casing: null, inputmode: "verbatim", colorMask: false, disablePredictiveText: false, importDataAttributes: true }, definitions: { 9: { validator: "[0-9\uff11-\uff19]", definitionSymbol: "*" }, a: { validator: "[A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]", definitionSymbol: "*" }, "*": { validator: "[0-9\uff11-\uff19A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]" } }, aliases: {}, masksCache: {}, mask: function mask(elems) { var that = this; function importAttributeOptions(npt, opts, userOptions, dataAttribute) { if (opts.importDataAttributes === true) { var importOption = function importOption(option, optionData) { optionData = optionData !== undefined ? optionData : npt.getAttribute(dataAttribute + "-" + option); if (optionData !== null) { if (typeof optionData === "string") { if (option.indexOf("on") === 0) optionData = window[optionData]; else if (optionData === "false") optionData = false; else if (optionData === "true") optionData = true; } userOptions[option] = optionData; } }; var attrOptions = npt.getAttribute(dataAttribute), option, dataoptions, optionData, p; if (attrOptions && attrOptions !== "") { attrOptions = attrOptions.replace(/'/g, '"'); dataoptions = JSON.parse("{" + attrOptions + "}"); } if (dataoptions) { optionData = undefined; for (p in dataoptions) { if (p.toLowerCase() === "alias") { optionData = dataoptions[p]; break; } } } importOption("alias", optionData); if (userOptions.alias) { resolveAlias(userOptions.alias, userOptions, opts); } for (option in opts) { if (dataoptions) { optionData = undefined; for (p in dataoptions) { if (p.toLowerCase() === option.toLowerCase()) { optionData = dataoptions[p]; break; } } } importOption(option, optionData); } } $.extend(true, opts, userOptions); if (npt.dir === "rtl" || opts.rightAlign) { npt.style.textAlign = "right"; } if (npt.dir === "rtl" || opts.numericInput) { npt.dir = "ltr"; npt.removeAttribute("dir"); opts.isRTL = true; } return Object.keys(userOptions).length; } if (typeof elems === "string") { elems = document.getElementById(elems) || document.querySelectorAll(elems); } elems = elems.nodeName ? [ elems ] : elems; $.each(elems, function(ndx, el) { var scopedOpts = $.extend(true, {}, that.opts); if (importAttributeOptions(el, scopedOpts, $.extend(true, {}, that.userOptions), that.dataAttribute)) { var maskset = generateMaskSet(scopedOpts, that.noMasksCache); if (maskset !== undefined) { if (el.inputmask !== undefined) { el.inputmask.opts.autoUnmask = true; el.inputmask.remove(); } el.inputmask = new Inputmask(undefined, undefined, true); el.inputmask.opts = scopedOpts; el.inputmask.noMasksCache = that.noMasksCache; el.inputmask.userOptions = $.extend(true, {}, that.userOptions); el.inputmask.isRTL = scopedOpts.isRTL || scopedOpts.numericInput; el.inputmask.el = el; el.inputmask.maskset = maskset; $.data(el, "_inputmask_opts", scopedOpts); maskScope.call(el.inputmask, { action: "mask" }); } } }); return elems && elems[0] ? elems[0].inputmask || this : this; }, option: function option(options, noremask) { if (typeof options === "string") { return this.opts[options]; } else if ((typeof options === "undefined" ? "undefined" : _typeof(options)) === "object") { $.extend(this.userOptions, options); if (this.el && noremask !== true) { this.mask(this.el); } return this; } }, unmaskedvalue: function unmaskedvalue(value) { this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache); return maskScope.call(this, { action: "unmaskedvalue", value: value }); }, remove: function remove() { return maskScope.call(this, { action: "remove" }); }, getemptymask: function getemptymask() { this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache); return maskScope.call(this, { action: "getemptymask" }); }, hasMaskedValue: function hasMaskedValue() { return !this.opts.autoUnmask; }, isComplete: function isComplete() { this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache); return maskScope.call(this, { action: "isComplete" }); }, getmetadata: function getmetadata() { this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache); return maskScope.call(this, { action: "getmetadata" }); }, isValid: function isValid(value) { this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache); return maskScope.call(this, { action: "isValid", value: value }); }, format: function format(value, metadata) { this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache); return maskScope.call(this, { action: "format", value: value, metadata: metadata }); }, setValue: function setValue(value) { if (this.el) { $(this.el).trigger("setvalue", [ value ]); } }, analyseMask: function analyseMask(mask, regexMask, opts) { 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 = false, currentToken = new MaskToken(), match, m, openenings = [], maskTokens = [], openingToken, currentOpeningToken, alternator, lastMatch, groupToken; function MaskToken(isGroup, isOptional, isQuantifier, isAlternator) { this.matches = []; this.openGroup = isGroup || false; this.alternatorGroup = false; this.isGroup = isGroup || false; this.isOptional = isOptional || false; this.isQuantifier = isQuantifier || false; this.isAlternator = isAlternator || false; this.quantifier = { min: 1, max: 1 }; } function insertTestDefinition(mtoken, element, position) { position = position !== undefined ? position : mtoken.matches.length; var prevMatch = mtoken.matches[position - 1]; if (regexMask) { if (element.indexOf("[") === 0 || escaped && /\\d|\\s|\\w]/i.test(element) || element === ".") { mtoken.matches.splice(position++, 0, { fn: new RegExp(element, opts.casing ? "i" : ""), optionality: false, newBlockMarker: prevMatch === undefined ? "master" : prevMatch.def !== element, casing: null, def: element, placeholder: undefined, nativeDef: element }); } else { if (escaped) element = element[element.length - 1]; $.each(element.split(""), function(ndx, lmnt) { prevMatch = mtoken.matches[position - 1]; mtoken.matches.splice(position++, 0, { fn: null, optionality: false, newBlockMarker: prevMatch === undefined ? "master" : prevMatch.def !== lmnt && prevMatch.fn !== null, casing: null, def: opts.staticDefinitionSymbol || lmnt, placeholder: opts.staticDefinitionSymbol !== undefined ? lmnt : undefined, nativeDef: (escaped ? "'" : "") + lmnt }); }); } escaped = false; } else { var maskdef = (opts.definitions ? opts.definitions[element] : undefined) || Inputmask.prototype.definitions[element]; if (maskdef && !escaped) { mtoken.matches.splice(position++, 0, { fn: maskdef.validator ? typeof maskdef.validator == "string" ? new RegExp(maskdef.validator, opts.casing ? "i" : "") : new function() { this.test = maskdef.validator; }() : new RegExp("."), optionality: false, newBlockMarker: prevMatch === undefined ? "master" : prevMatch.def !== (maskdef.definitionSymbol || element), casing: maskdef.casing, def: maskdef.definitionSymbol || element, placeholder: maskdef.placeholder, nativeDef: element }); } else { mtoken.matches.splice(position++, 0, { fn: null, optionality: false, newBlockMarker: prevMatch === undefined ? "master" : prevMatch.def !== element && prevMatch.fn !== null, casing: null, def: opts.staticDefinitionSymbol || element, placeholder: opts.staticDefinitionSymbol !== undefined ? element : undefined, nativeDef: (escaped ? "'" : "") + element }); escaped = false; } } } function verifyGroupMarker(maskToken) { if (maskToken && maskToken.matches) { $.each(maskToken.matches, function(ndx, token) { var nextToken = maskToken.matches[ndx + 1]; if ((nextToken === undefined || nextToken.matches === undefined || nextToken.isQuantifier === false) && token && token.isGroup) { token.isGroup = false; if (!regexMask) { insertTestDefinition(token, opts.groupmarker[0], 0); if (token.openGroup !== true) { insertTestDefinition(token, opts.groupmarker[1]); } } } verifyGroupMarker(token); }); } } function defaultCase() { if (openenings.length > 0) { currentOpeningToken = openenings[openenings.length - 1]; insertTestDefinition(currentOpeningToken, m); if (currentOpeningToken.isAlternator) { alternator = openenings.pop(); for (var mndx = 0; mndx < alternator.matches.length; mndx++) { if (alternator.matches[mndx].isGroup) alternator.matches[mndx].isGroup = false; } if (openenings.length > 0) { currentOpeningToken = openenings[openenings.length - 1]; currentOpeningToken.matches.push(alternator); } else { currentToken.matches.push(alternator); } } } else { insertTestDefinition(currentToken, m); } } function reverseTokens(maskToken) { function reverseStatic(st) { if (st === opts.optionalmarker[0]) st = opts.optionalmarker[1]; else if (st === opts.optionalmarker[1]) st = opts.optionalmarker[0]; else if (st === opts.groupmarker[0]) st = opts.groupmarker[1]; else if (st === opts.groupmarker[1]) st = opts.groupmarker[0]; return st; } maskToken.matches = maskToken.matches.reverse(); for (var match in maskToken.matches) { if (maskToken.matches.hasOwnProperty(match)) { var intMatch = parseInt(match); if (maskToken.matches[match].isQuantifier && maskToken.matches[intMatch + 1] && maskToken.matches[intMatch + 1].isGroup) { var qt = maskToken.matches[match]; maskToken.matches.splice(match, 1); maskToken.matches.splice(intMatch + 1, 0, qt); } if (maskToken.matches[match].matches !== undefined) { maskToken.matches[match] = reverseTokens(maskToken.matches[match]); } else { maskToken.matches[match] = reverseStatic(maskToken.matches[match]); } } } return maskToken; } function groupify(matches) { var groupToken = new MaskToken(true); groupToken.openGroup = false; groupToken.matches = matches; return groupToken; } if (regexMask) { opts.optionalmarker[0] = undefined; opts.optionalmarker[1] = undefined; } while (match = regexMask ? regexTokenizer.exec(mask) : tokenizer.exec(mask)) { m = match[0]; if (regexMask) { switch (m.charAt(0)) { case "?": m = "{0,1}"; break; case "+": case "*": m = "{" + m + "}"; break; } } if (escaped) { defaultCase(); continue; } switch (m.charAt(0)) { case "(?=": break; case "(?!": break; case "(?<=": break; case "(?<!": break; case opts.escapeChar: escaped = true; if (regexMask) { defaultCase(); } break; case opts.optionalmarker[1]: case opts.groupmarker[1]: openingToken = openenings.pop(); openingToken.openGroup = false; if (openingToken !== undefined) { if (openenings.length > 0) { currentOpeningToken = openenings[openenings.length - 1]; currentOpeningToken.matches.push(openingToken); if (currentOpeningToken.isAlternator) { alternator = openenings.pop(); for (var mndx = 0; mndx < alternator.matches.length; mndx++) { alternator.matches[mndx].isGroup = false; alternator.matches[mndx].alternatorGroup = false; } if (openenings.length > 0) { currentOpeningToken = openenings[openenings.length - 1]; currentOpeningToken.matches.push(alternator); } else { currentToken.matches.push(alternator); } } } else { currentToken.matches.push(openingToken); } } else defaultCase(); break; case opts.optionalmarker[0]: openenings.push(new MaskToken(false, true)); break; case opts.groupmarker[0]: openenings.push(new MaskToken(true)); break; case opts.quantifiermarker[0]: var quantifier = new MaskToken(false, false, true); m = m.replace(/[{}]/g, ""); var mqj = m.split("|"), mq = mqj[0].split(","), mq0 = isNaN(mq[0]) ? mq[0] : parseInt(mq[0]), mq1 = mq.length === 1 ? mq0 : isNaN(mq[1]) ? mq[1] : parseInt(mq[1]); if (mq0 === "*" || mq0 === "+") { mq0 = mq1 === "*" ? 0 : 1; } quantifier.quantifier = { min: mq0, max: mq1, jit: mqj[1] }; var matches = openenings.length > 0 ? openenings[openenings.length - 1].matches : currentToken.matches; match = matches.pop(); if (match.isAlternator) { matches.push(match); matches = match.matches; var groupToken = new MaskToken(true); var tmpMatch = matches.pop(); matches.push(groupToken); matches = groupToken.matches; match = tmpMatch; } if (!match.isGroup) { match = groupify([ match ]); } matches.push(match); matches.push(quantifier); break; case opts.alternatormarker: var groupQuantifier = function groupQuantifier(matches) { var lastMatch = matches.pop(); if (lastMatch.isQuantifier) { lastMatch = groupify([ matches.pop(), lastMatch ]); } return lastMatch; }; if (openenings.length > 0) { currentOpeningToken = openenings[openenings.length - 1]; var subToken = currentOpeningToken.matches[currentOpeningToken.matches.length - 1]; if (currentOpeningToken.openGroup && (subToken.matches === undefined || subToken.isGroup === false && subToken.isAlternator === false)) { lastMatch = openenings.pop(); } else { lastMatch = groupQuantifier(currentOpeningToken.matches); } } else { lastMatch = groupQuantifier(currentToken.matches); } if (lastMatch.isAlternator) { openenings.push(lastMatch); } else { if (lastMatch.alternatorGroup) { alternator = openenings.pop(); lastMatch.alternatorGroup = false; } else { alternator = new MaskToken(false, false, false, true); } alternator.matches.push(lastMatch); openenings.push(alternator); if (lastMatch.openGroup) { lastMatch.openGroup = false; var alternatorGroup = new MaskToken(true); alternatorGroup.alternatorGroup = true; openenings.push(alternatorGroup); } } break; default: defaultCase(); } } while (openenings.length > 0) { openingToken = openenings.pop(); currentToken.matches.push(openingToken); } if (currentToken.matches.length > 0) { verifyGroupMarker(currentToken); maskTokens.push(currentToken); } if (opts.numericInput || opts.isRTL) { reverseTokens(maskTokens[0]); } return maskTokens; } }; Inputmask.extendDefaults = function(options) { $.extend(true, Inputmask.prototype.defaults, options); }; Inputmask.extendDefinitions = function(definition) { $.extend(true, Inputmask.prototype.definitions, definition); }; Inputmask.extendAliases = function(alias) { $.extend(true, Inputmask.prototype.aliases, alias); }; Inputmask.format = function(value, options, metadata) { return Inputmask(options).format(value, metadata); }; Inputmask.unmask = function(value, options) { return Inputmask(options).unmaskedvalue(value); }; Inputmask.isValid = function(value, options) { return Inputmask(options).isValid(value); }; Inputmask.remove = function(elems) { if (typeof elems === "string") { elems = document.getElementById(elems) || document.querySelectorAll(elems); } elems = elems.nodeName ? [ elems ] : elems; $.each(elems, function(ndx, el) { if (el.inputmask) el.inputmask.remove(); }); }; Inputmask.setValue = function(elems, value) { if (typeof elems === "string") { elems = document.getElementById(elems) || document.querySelectorAll(elems); } elems = elems.nodeName ? [ elems ] : elems; $.each(elems, function(ndx, el) { if (el.inputmask) el.inputmask.setValue(value); else $(el).trigger("setvalue", [ value ]); }); }; Inputmask.escapeRegex = function(str) { var specials = [ "/", ".", "*", "+", "?", "|", "(", ")", "[", "]", "{", "}", "\\", "$", "^" ]; return str.replace(new RegExp("(\\" + specials.join("|\\") + ")", "gim"), "\\$1"); }; Inputmask.keyCode = { 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 }; Inputmask.dependencyLib = $; function resolveAlias(aliasStr, options, opts) { var aliasDefinition = Inputmask.prototype.aliases[aliasStr]; if (aliasDefinition) { if (aliasDefinition.alias) resolveAlias(aliasDefinition.alias, undefined, opts); $.extend(true, opts, aliasDefinition); $.extend(true, opts, options); return true; } else if (opts.mask === null) { opts.mask = aliasStr; } return false; } function generateMaskSet(opts, nocache) { function generateMask(mask, metadata, opts) { var regexMask = false; if (mask === null || mask === "") { regexMask = opts.regex !== null; if (regexMask) { mask = opts.regex; mask = mask.replace(/^(\^)(.*)(\$)$/, "$2"); } else { regexMask = true; mask = ".*"; } } if (mask.length === 1 && opts.greedy === false && opts.repeat !== 0) { opts.placeholder = ""; } if (opts.repeat > 0 || opts.repeat === "*" || opts.repeat === "+") { var repeatStart = opts.repeat === "*" ? 0 : opts.repeat === "+" ? 1 : opts.repeat; mask = opts.groupmarker[0] + mask + opts.groupmarker[1] + opts.quantifiermarker[0] + repeatStart + "," + opts.repeat + opts.quantifiermarker[1]; } var masksetDefinition, maskdefKey = regexMask ? "regex_" + opts.regex : opts.numericInput ? mask.split("").reverse().join("") : mask; if (Inputmask.prototype.masksCache[maskdefKey] === undefined || nocache === true) { masksetDefinition = { mask: mask, maskToken: Inputmask.prototype.analyseMask(mask, regexMask, opts), validPositions: {}, _buffer: undefined, buffer: undefined, tests: {}, excludes: {}, metadata: metadata, maskLength: undefined }; if (nocache !== true) { Inputmask.prototype.masksCache[maskdefKey] = masksetDefinition; masksetDefinition = $.extend(true, {}, Inputmask.prototype.masksCache[maskdefKey]); } } else masksetDefinition = $.extend(true, {}, Inputmask.prototype.masksCache[maskdefKey]); return masksetDefinition; } var ms; if ($.isFunction(opts.mask)) { opts.mask = opts.mask(opts); } if ($.isArray(opts.mask)) { if (opts.mask.length > 1) { if (opts.keepStatic === null) { opts.keepStatic = "auto"; for (var i = 0; i < opts.mask.length; i++) { if (opts.mask[i].charAt(0) !== opts.mask[0].charAt(0)) { opts.keepStatic = true; break; } } } var altMask = opts.groupmarker[0]; $.each(opts.isRTL ? opts.mask.reverse() : opts.mask, function(ndx, msk) { if (altMask.length > 1) { altMask += opts.groupmarker[1] + opts.alternatormarker + opts.groupmarker[0]; } if (msk.mask !== undefined && !$.isFunction(msk.mask)) { altMask += msk.mask; } else { altMask += msk; } }); altMask += opts.groupmarker[1]; return generateMask(altMask, opts.mask, opts); } else opts.mask = opts.mask.pop(); } if (opts.mask && opts.mask.mask !== undefined && !$.isFunction(opts.mask.mask)) { ms = generateMask(opts.mask.mask, opts.mask, opts); } else { ms = generateMask(opts.mask, opts.mask, opts); } return ms; } function isInputEventSupported(eventName) { var el = document.createElement("input"), evName = "on" + eventName, isSupported = evName in el; if (!isSupported) { el.setAttribute(evName, "return;"); isSupported = typeof el[evName] === "function"; } el = null; return isSupported; } function maskScope(actionObj, maskset, opts) { maskset = maskset || this.maskset; opts = opts || this.opts; var inputmask = this, el = this.el, isRTL = this.isRTL, undoValue, $el, skipKeyPressEvent = false, skipInputEvent = false, ignorable = false, maxLength, mouseEnter = false, colorMask, originalPlaceholder; function getMaskTemplate(baseOnInput, minimalPos, includeMode, noJit, clearOptionalTail) { var greedy = opts.greedy; if (clearOptionalTail) opts.greedy = false; minimalPos = minimalPos || 0; var maskTemplate = [], ndxIntlzr, pos = 0, test, testPos, lvp = getLastValidPosition(); do { if (baseOnInput === true && getMaskSet().validPositions[pos]) { testPos = clearOptionalTail && getMaskSet().validPositions[pos].match.optionality === true && getMaskSet().validPositions[pos + 1] === undefined && (getMaskSet().validPositions[pos].generatedInput === true || getMaskSet().validPositions[pos].input == opts.skipOptionalPartCharacter && pos > 0) ? determineTestTemplate(pos, getTests(pos, ndxIntlzr, pos - 1)) : getMaskSet().validPositions[pos]; test = testPos.match; ndxIntlzr = testPos.locator.slice(); maskTemplate.push(includeMode === true ? testPos.input : includeMode === false ? test.nativeDef : getPlaceholder(pos, test)); } else { testPos = getTestTemplate(pos, ndxIntlzr, pos - 1); test = testPos.match; ndxIntlzr = testPos.locator.slice(); var jitMasking = noJit === true ? false : opts.jitMasking !== false ? opts.jitMasking : test.jit; if (jitMasking === false || jitMasking === undefined || typeof jitMasking === "number" && isFinite(jitMasking) && jitMasking > pos) { maskTemplate.push(includeMode === false ? test.nativeDef : getPlaceholder(pos, test)); } } if (opts.keepStatic === "auto") { if (test.newBlockMarker && test.fn !== null) { opts.keepStatic = pos - 1; } } pos++; } while ((maxLength === undefined || pos < maxLength) && (test.fn !== null || test.def !== "") || minimalPos > pos); if (maskTemplate[maskTemplate.length - 1] === "") { maskTemplate.pop(); } if (includeMode !== false || getMaskSet().maskLength === undefined) getMaskSet().maskLength = pos - 1; opts.greedy = greedy; return maskTemplate; } function getMaskSet() { return maskset; } function resetMaskSet(soft) { var maskset = getMaskSet(); maskset.buffer = undefined; if (soft !== true) { maskset.validPositions = {}; maskset.p = 0; } } function getLastValidPosition(closestTo, strict, validPositions) { var before = -1, after = -1, valids = validPositions || getMaskSet().validPositions; if (closestTo === undefined) closestTo = -1; for (var posNdx in valids) { var psNdx = parseInt(posNdx); if (valids[psNdx] && (strict || valids[psNdx].generatedInput !== true)) { if (psNdx <= closestTo) before = psNdx; if (psNdx >= closestTo) after = psNdx; } } return before === -1 || before == closestTo ? after : after == -1 ? before : closestTo - before < after - closestTo ? before : after; } function getDecisionTaker(tst) { var decisionTaker = tst.locator[tst.alternation]; if (typeof decisionTaker == "string" && decisionTaker.length > 0) { decisionTaker = decisionTaker.split(",")[0]; } return decisionTaker !== undefined ? decisionTaker.toString() : ""; } function getLocator(tst, align) { var locator = (tst.alternation != undefined ? tst.mloc[getDecisionTaker(tst)] : tst.locator).join(""); if (locator !== "") while (locator.length < align) { locator += "0"; } return locator; } function determineTestTemplate(pos, tests) { pos = pos > 0 ? pos - 1 : 0; var altTest = getTest(pos), targetLocator = getLocator(altTest), tstLocator, closest, bestMatch; for (var ndx = 0; ndx < tests.length; ndx++) { var tst = tests[ndx]; tstLocator = getLocator(tst, targetLocator.length); var distance = Math.abs(tstLocator - targetLocator); if (closest === undefined || tstLocator !== "" && distance < closest || bestMatch && bestMatch.match.optionality && bestMatch.match.newBlockMarker === "master" && (!tst.match.optionality || !tst.match.newBlockMarker) || bestMatch && bestMatch.match.optionalQuantifier && !tst.match.optionalQuantifier) { closest = distance; bestMatch = tst; } } return bestMatch; } function getTestTemplate(pos, ndxIntlzr, tstPs) { return getMaskSet().validPositions[pos] || determineTestTemplate(pos, getTests(pos, ndxIntlzr ? ndxIntlzr.slice() : ndxIntlzr, tstPs)); } function getTest(pos, tests) { if (getMaskSet().validPositions[pos]) { return getMaskSet().validPositions[pos]; } return (tests || getTests(pos))[0]; } function positionCanMatchDefinition(pos, def) { var valid = false, tests = getTests(pos); for (var tndx = 0; tndx < tests.length; tndx++) { if (tests[tndx].match && tests[tndx].match.def === def) { valid = true; break; } } return valid; } function getTests(pos, ndxIntlzr, tstPs) { var maskTokens = getMaskSet().maskToken, testPos = ndxIntlzr ? tstPs : 0, ndxInitializer = ndxIntlzr ? ndxIntlzr.slice() : [ 0 ], matches = [], insertStop = false, latestMatch, cacheDependency = ndxIntlzr ? ndxIntlzr.join("") : "", offset = 0; function resolveTestFromToken(maskToken, ndxInitializer, loopNdx, quantifierRecurse) { function handleMatch(match, loopNdx, quantifierRecurse) { function isFirstMatch(latestMatch, tokenGroup) { var firstMatch = $.inArray(latestMatch, tokenGroup.matches) === 0; if (!firstMatch) { $.each(tokenGroup.matches, function(ndx, match) { if (match.isQuantifier === true) firstMatch = isFirstMatch(latestMatch, tokenGroup.matches[ndx - 1]); else if (match.hasOwnProperty("matches")) firstMatch = isFirstMatch(latestMatch, match); if (firstMatch) return false; }); } return firstMatch; } function resolveNdxInitializer(pos, alternateNdx, targetAlternation) { var bestMatch, indexPos; if (getMaskSet().tests[pos] || getMaskSet().validPositions[pos]) { $.each(getMaskSet().tests[pos] || [ getMaskSet().validPositions[pos] ], function(ndx, lmnt) { if (lmnt.mloc[alternateNdx]) { bestMatch = lmnt; return false; } var alternation = targetAlternation !== undefined ? targetAlternation : lmnt.alternation, ndxPos = lmnt.locator[alternation] !== undefined ? lmnt.locator[alternation].toString().indexOf(alternateNdx) : -1; if ((indexPos === undefined || ndxPos < indexPos) && ndxPos !== -1) { bestMatch = lmnt; indexPos = ndxPos; } }); } if (bestMatch) { var bestMatchAltIndex = bestMatch.locator[bestMatch.alternation]; var locator = bestMatch.mloc[alternateNdx] || bestMatch.mloc[bestMatchAltIndex] || bestMatch.locator; return locator.slice((targetAlternation !== undefined ? targetAlternation : bestMatch.alternation) + 1); } else { return targetAlternation !== undefined ? resolveNdxInitializer(pos, alternateNdx) : undefined; } } function isSubsetOf(source, target) { function expand(pattern) { var expanded = [], start, end; for (var i = 0, l = pattern.length; i < l; i++) { if (pattern.charAt(i) === "-") { end = pattern.charCodeAt(i + 1); while (++start < end) { expanded.push(String.fromCharCode(start)); } } else { start = pattern.charCodeAt(i); expanded.push(pattern.charAt(i)); } } return expanded.join(""); } if (opts.regex && source.match.fn !== null && target.match.fn !== null) { return expand(target.match.def.replace(/[\[\]]/g, "")).indexOf(expand(source.match.def.replace(/[\[\]]/g, ""))) !== -1; } return source.match.def === target.match.nativeDef; } function staticCanMatchDefinition(source, target) { var sloc = source.locator.slice(source.alternation).join(""), tloc = target.locator.slice(target.alternation).join(""), canMatch = sloc == tloc, canMatch = canMatch && source.match.fn === null && target.match.fn !== null ? target.match.fn.test(source.match.def, getMaskSet(), pos, false, opts, false) : false; return canMatch; } function setMergeLocators(targetMatch, altMatch) { if (altMatch === undefined || targetMatch.alternation === altMatch.alternation && targetMatch.locator[targetMatch.alternation].toString().indexOf(altMatch.locator[altMatch.alternation]) === -1) { targetMatch.mloc = targetMatch.mloc || {}; var locNdx = targetMatch.locator[targetMatch.alternation]; if (locNdx === undefined) targetMatch.alternation = undefined; else { if (typeof locNdx === "string") locNdx = locNdx.split(",")[0]; if (targetMatch.mloc[locNdx] === undefined) targetMatch.mloc[locNdx] = targetMatch.locator.slice(); if (altMatch !== undefined) { for (var ndx in altMatch.mloc) { if (typeof ndx === "string") ndx = ndx.split(",")[0]; if (targetMatch.mloc[ndx] === undefined) targetMatch.mloc[ndx] = altMatch.mloc[ndx]; } targetMatch.locator[targetMatch.alternation] = Object.keys(targetMatch.mloc).join(","); } return true; } } return false; } if (testPos > 500 && quantifierRecurse !== undefined) { 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. " + getMaskSet().mask; } if (testPos === pos && match.matches === undefined) { matches.push({ match: match, locator: loopNdx.reverse(), cd: cacheDependency, mloc: {} }); return true; } else if (match.matches !== undefined) { if (match.isGroup && quantifierRecurse !== match) { match = handleMatch(maskToken.matches[$.inArray(match, maskToken.matches) + 1], loopNdx, quantifierRecurse); if (match) return true; } else if (match.isOptional) { var optionalToken = match; match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse); if (match) { $.each(matches, function(ndx, mtch) { mtch.match.optionality = true; }); latestMatch = matches[matches.length - 1].match; if (quantifierRecurse === undefined && isFirstMatch(latestMatch, optionalToken)) { insertStop = true; testPos = pos; } else return true; } } else if (match.isAlternator) { var alternateToken = match, malternateMatches = [], maltMatches, currentMatches = matches.slice(), loopNdxCnt = loopNdx.length; var altIndex = ndxInitializer.length > 0 ? ndxInitializer.shift() : -1; if (altIndex === -1 || typeof altIndex === "string") { var currentPos = testPos, ndxInitializerClone = ndxInitializer.slice(), altIndexArr = [], amndx; if (typeof altIndex == "string") { altIndexArr = altIndex.split(","); } else { for (amndx = 0; amndx < alternateToken.matches.length; amndx++) { altIndexArr.push(amndx.toString()); } } if (getMaskSet().excludes[pos]) { var altIndexArrClone = altIndexArr.slice(); for (var i = 0, el = getMaskSet().excludes[pos].length; i < el; i++) { altIndexArr.splice(altIndexArr.indexOf(getMaskSet().excludes[pos][i].toString()), 1); } if (altIndexArr.length === 0) { getMaskSet().excludes[pos] = undefined; altIndexArr = altIndexArrClone; } } if (opts.keepStatic === true || isFinite(parseInt(opts.keepStatic)) && currentPos >= opts.keepStatic) altIndexArr = altIndexArr.slice(0, 1); var unMatchedAlternation = false; for (var ndx = 0; ndx < altIndexArr.length; ndx++) { amndx = parseInt(altIndexArr[ndx]); matches = []; ndxInitializer = typeof altIndex === "string" ? resolveNdxInitializer(testPos, amndx, loopNdxCnt) || ndxInitializerClone.slice() : ndxInitializerClone.slice(); if (alternateToken.matches[amndx] && handleMatch(alternateToken.matches[amndx], [ amndx ].concat(loopNdx), quantifierRecurse)) match = true; else if (ndx === 0) { unMatchedAlternation = true; } maltMatches = matches.slice(