vendor: 15,976 bytes, lines 1-252
1/*! 2* jquery.inputmask.bundle.js 3* https://github.com/RobinHerbots/jquery.inputmask 4* Copyright (c) 2010 - 2016 Robin Herbots 5* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php) 6* Version: 3.3.1 7*/ 8!function($) { 9 function Inputmask(alias, options) { 10 return this instanceof Inputmask ? ($.isPlainObject(alias) ? options = alias : (options = options || {}, 11 options.alias = alias), this.el = void 0, this.opts = $.extend(!0, {}, this.defaults, options), 12 this.noMasksCache = options && void 0 !== options.definitions, this.userOptions = options || {}, 13 this.events = {}, void resolveAlias(this.opts.alias, options, this.opts)) : new Inputmask(alias, options); 14 } 15 function isInputEventSupported(eventName) { 16 var el = document.createElement("input"), evName = "on" + eventName, isSupported = evName in el; 17 return isSupported || (el.setAttribute(evName, "return;"), isSupported = "function" == typeof el[evName]), 18 el = null, isSupported; 19 } 20 function isElementTypeSupported(input, opts) { 21 var elementType = input.getAttribute("type"), isSupported = "INPUT" === input.tagName && -1 !== $.inArray(elementType, opts.supportsInputType) || input.isContentEditable || "TEXTAREA" === input.tagName; 22 if (!isSupported && "INPUT" === input.tagName) { 23 var el = document.createElement("input"); 24 el.setAttribute("type", elementType), isSupported = "text" === el.type, el = null; 25 } 26 return isSupported; 27 } 28 function resolveAlias(aliasStr, options, opts) { 29 var aliasDefinition = opts.aliases[aliasStr]; 30 return aliasDefinition ? (aliasDefinition.alias && resolveAlias(aliasDefinition.alias, void 0, opts), 31 $.extend(!0, opts, aliasDefinition), $.extend(!0, opts, options), !0) : (null === opts.mask && (opts.mask = aliasStr), 32 !1); 33 } 34 function importAttributeOptions(npt, opts, userOptions) { 35 function importOption(option, optionData) { 36 optionData = void 0 !== optionData ? optionData : npt.getAttribute("data-inputmask-" + option), 37 null !== optionData && ("string" == typeof optionData && (0 === option.indexOf("on") ? optionData = window[optionData] : "false" === optionData ? optionData = !1 : "true" === optionData && (optionData = !0)), 38 userOptions[option] = optionData); 39 } 40 var option, dataoptions, optionData, p, attrOptions = npt.getAttribute("data-inputmask"); 41 if (attrOptions && "" !== attrOptions && (attrOptions = attrOptions.replace(new RegExp("'", "g"), '"'), 42 dataoptions = JSON.parse("{" + attrOptions + "}")), dataoptions) { 43 optionData = void 0; 44 for (p in dataoptions) if ("alias" === p.toLowerCase()) { 45 optionData = dataoptions[p]; 46 break; 47 } 48 } 49 importOption("alias", optionData), userOptions.alias && resolveAlias(userOptions.alias, userOptions, opts); 50 for (option in opts) { 51 if (dataoptions) { 52 optionData = void 0; 53 for (p in dataoptions) if (p.toLowerCase() === option.toLowerCase()) { 54 optionData = dataoptions[p]; 55 break; 56 } 57 } 58 importOption(option, optionData); 59 } 60 return $.extend(!0, opts, userOptions), opts; 61 } 62 function generateMaskSet(opts, nocache) { 63 function analyseMask(mask) { 64 function MaskToken(isGroup, isOptional, isQuantifier, isAlternator) { 65 this.matches = [], this.isGroup = isGroup || !1, this.isOptional = isOptional || !1, 66 this.isQuantifier = isQuantifier || !1, this.isAlternator = isAlternator || !1, 67 this.quantifier = { 68 min: 1, 69 max: 1 70 }; 71 } 72 function insertTestDefinition(mtoken, element, position) { 73 var maskdef = opts.definitions[element]; 74 position = void 0 !== position ? position : mtoken.matches.length; 75 var prevMatch = mtoken.matches[position - 1]; 76 if (maskdef && !escaped) { 77 maskdef.placeholder = $.isFunction(maskdef.placeholder) ? maskdef.placeholder(opts) : maskdef.placeholder; 78 for (var prevalidators = maskdef.prevalidator, prevalidatorsL = prevalidators ? prevalidators.length : 0, i = 1; i < maskdef.cardinality; i++) { 79 var prevalidator = prevalidatorsL >= i ? prevalidators[i - 1] : [], validator = prevalidator.validator, cardinality = prevalidator.cardinality; 80 mtoken.matches.splice(position++, 0, { 81 fn: validator ? "string" == typeof validator ? new RegExp(validator) : new function() { 82 this.test = validator; 83 }() : new RegExp("."), 84 cardinality: cardinality ? cardinality : 1, 85 optionality: mtoken.isOptional, 86 newBlockMarker: void 0 === prevMatch || prevMatch.def !== (maskdef.definitionSymbol || element), 87 casing: maskdef.casing, 88 def: maskdef.definitionSymbol || element, 89 placeholder: maskdef.placeholder, 90 mask: element 91 }), prevMatch = mtoken.matches[position - 1]; 92 } 93 mtoken.matches.splice(position++, 0, { 94 fn: maskdef.validator ? "string" == typeof maskdef.validator ? new RegExp(maskdef.validator) : new function() { 95 this.test = maskdef.validator; 96 }() : new RegExp("."), 97 cardinality: maskdef.cardinality, 98 optionality: mtoken.isOptional, 99 newBlockMarker: void 0 === prevMatch || prevMatch.def !== (maskdef.definitionSymbol || element), 100 casing: maskdef.casing, 101 def: maskdef.definitionSymbol || element, 102 placeholder: maskdef.placeholder, 103 mask: element 104 }); 105 } else mtoken.matches.splice(position++, 0, { 106 fn: null, 107 cardinality: 0, 108 optionality: mtoken.isOptional, 109 newBlockMarker: void 0 === prevMatch || prevMatch.def !== element, 110 casing: null, 111 def: opts.staticDefinitionSymbol || element, 112 placeholder: void 0 !== opts.staticDefinitionSymbol ? element : void 0, 113 mask: element 114 }), escaped = !1; 115 } 116 function verifyGroupMarker(lastMatch, isOpenGroup) { 117 lastMatch.isGroup && (lastMatch.isGroup = !1, insertTestDefinition(lastMatch, opts.groupmarker.start, 0), 118 isOpenGroup !== !0 && insertTestDefinition(lastMatch, opts.groupmarker.end)); 119 } 120 function maskCurrentToken(m, currentToken, lastMatch, extraCondition) { 121 currentToken.matches.length > 0 && (void 0 === extraCondition || extraCondition) && (lastMatch = currentToken.matches[currentToken.matches.length - 1], 122 verifyGroupMarker(lastMatch)), insertTestDefinition(currentToken, m); 123 } 124 function defaultCase() { 125 if (openenings.length > 0) { 126 if (currentOpeningToken = openenings[openenings.length - 1], maskCurrentToken(m, currentOpeningToken, lastMatch, !currentOpeningToken.isAlternator), 127 currentOpeningToken.isAlternator) { 128 alternator = openenings.pop(); 129 for (var mndx = 0; mndx < alternator.matches.length; mndx++) alternator.matches[mndx].isGroup = !1; 130 openenings.length > 0 ? (currentOpeningToken = openenings[openenings.length - 1], 131 currentOpeningToken.matches.push(alternator)) : currentToken.matches.push(alternator); 132 } 133 } else maskCurrentToken(m, currentToken, lastMatch); 134 } 135 function reverseTokens(maskToken) { 136 function reverseStatic(st) { 137 return st === opts.optionalmarker.start ? st = opts.optionalmarker.end : st === opts.optionalmarker.end ? st = opts.optionalmarker.start : st === opts.groupmarker.start ? st = opts.groupmarker.end : st === opts.groupmarker.end && (st = opts.groupmarker.start), 138 st; 139 } 140 maskToken.matches = maskToken.matches.reverse(); 141 for (var match in maskToken.matches) { 142 var intMatch = parseInt(match); 143 if (maskToken.matches[match].isQuantifier && maskToken.matches[intMatch + 1] && maskToken.matches[intMatch + 1].isGroup) { 144 var qt = maskToken.matches[match]; 145 maskToken.matches.splice(match, 1), maskToken.matches.splice(intMatch + 1, 0, qt); 146 } 147 void 0 !== maskToken.matches[match].matches ? maskToken.matches[match] = reverseTokens(maskToken.matches[match]) : maskToken.matches[match] = reverseStatic(maskToken.matches[match]); 148 } 149 return maskToken; 150 } 151 for (var match, m, openingToken, currentOpeningToken, alternator, lastMatch, groupToken, tokenizer = /(?:[?*+]|\{[0-9\+\*]+(?:,[0-9\+\*]*)?\})|[^.?*+^${[]()|\\]+|./g, escaped = !1, currentToken = new MaskToken(), openenings = [], maskTokens = []; match = tokenizer.exec(mask); ) if (m = match[0], 152 escaped) defaultCase(); else switch (m.charAt(0)) { 153 case opts.escapeChar: 154 escaped = !0; 155 break; 156 157 case opts.optionalmarker.end: 158 case opts.groupmarker.end: 159 if (openingToken = openenings.pop(), void 0 !== openingToken) if (openenings.length > 0) { 160 if (currentOpeningToken = openenings[openenings.length - 1], currentOpeningToken.matches.push(openingToken), 161 currentOpeningToken.isAlternator) { 162 alternator = openenings.pop(); 163 for (var mndx = 0; mndx < alternator.matches.length; mndx++) alternator.matches[mndx].isGroup = !1; 164 openenings.length > 0 ? (currentOpeningToken = openenings[openenings.length - 1], 165 currentOpeningToken.matches.push(alternator)) : currentToken.matches.push(alternator); 166 } 167 } else currentToken.matches.push(openingToken); else defaultCase(); 168 break; 169 170 case opts.optionalmarker.start: 171 openenings.push(new MaskToken(!1, !0)); 172 break; 173 174 case opts.groupmarker.start: 175 openenings.push(new MaskToken(!0)); 176 break; 177 178 case opts.quantifiermarker.start: 179 var quantifier = new MaskToken(!1, !1, !0); 180 m = m.replace(/[{}]/g, ""); 181 var mq = m.split(","), mq0 = isNaN(mq[0]) ? mq[0] : parseInt(mq[0]), mq1 = 1 === mq.length ? mq0 : isNaN(mq[1]) ? mq[1] : parseInt(mq[1]); 182 if (("*" === mq1 || "+" === mq1) && (mq0 = "*" === mq1 ? 0 : 1), quantifier.quantifier = { 183 min: mq0, 184 max: mq1 185 }, openenings.length > 0) { 186 var matches = openenings[openenings.length - 1].matches; 187 match = matches.pop(), match.isGroup || (groupToken = new MaskToken(!0), groupToken.matches.push(match), 188 match = groupToken), matches.push(match), matches.push(quantifier); 189 } else match = currentToken.matches.pop(), match.isGroup || (groupToken = new MaskToken(!0), 190 groupToken.matches.push(match), match = groupToken), currentToken.matches.push(match), 191 currentToken.matches.push(quantifier); 192 break; 193 194 case opts.alternatormarker: 195 openenings.length > 0 ? (currentOpeningToken = openenings[openenings.length - 1], 196 lastMatch = currentOpeningToken.matches.pop()) : lastMatch = currentToken.matches.pop(), 197 lastMatch.isAlternator ? openenings.push(lastMatch) : (alternator = new MaskToken(!1, !1, !1, !0), 198 alternator.matches.push(lastMatch), openenings.push(alternator)); 199 break; 200 201 default: 202 defaultCase(); 203 } 204 for (;openenings.length > 0; ) openingToken = openenings.pop(), verifyGroupMarker(openingToken, !0), 205 currentToken.matches.push(openingToken); 206 return currentToken.matches.length > 0 && (lastMatch = currentToken.matches[currentToken.matches.length - 1], 207 verifyGroupMarker(lastMatch), maskTokens.push(currentToken)), opts.numericInput && reverseTokens(maskTokens[0]), 208 maskTokens; 209 } 210 function generateMask(mask, metadata) { 211 if (null === mask || "" === mask) return void 0; 212 if (1 === mask.length && opts.greedy === !1 && 0 !== opts.repeat && (opts.placeholder = ""), 213 opts.repeat > 0 || "*" === opts.repeat || "+" === opts.repeat) { 214 var repeatStart = "*" === opts.repeat ? 0 : "+" === opts.repeat ? 1 : opts.repeat; 215 mask = opts.groupmarker.start + mask + opts.groupmarker.end + opts.quantifiermarker.start + repeatStart + "," + opts.repeat + opts.quantifiermarker.end; 216 } 217 var masksetDefinition; 218 return void 0 === Inputmask.prototype.masksCache[mask] || nocache === !0 ? (masksetDefinition = { 219 mask: mask, 220 maskToken: analyseMask(mask), 221 validPositions: {}, 222 _buffer: void 0, 223 buffer: void 0, 224 tests: {}, 225 metadata: metadata 226 }, nocache !== !0 && (Inputmask.prototype.masksCache[opts.numericInput ? mask.split("").reverse().join("") : mask] = masksetDefinition, 227 masksetDefinition = $.extend(!0, {}, Inputmask.prototype.masksCache[opts.numericInput ? mask.split("").reverse().join("") : mask]))) : masksetDefinition = $.extend(!0, {}, Inputmask.prototype.masksCache[opts.numericInput ? mask.split("").reverse().join("") : mask]), 228 masksetDefinition; 229 } 230 function preProcessMask(mask) { 231 return mask = mask.toString(); 232 } 233 var ms; 234 if ($.isFunction(opts.mask) && (opts.mask = opts.mask(opts)), $.isArray(opts.mask)) { 235 if (opts.mask.length > 1) { 236 opts.keepStatic = null === opts.keepStatic ? !0 : opts.keepStatic; 237 var altMask = "("; 238 return $.each(opts.numericInput ? opts.mask.reverse() : opts.mask, function(ndx, msk) { 239 altMask.length > 1 && (altMask += ")|("), altMask += preProcessMask(void 0 === msk.mask || $.isFunction(msk.mask) ? msk : msk.mask); 240 }), altMask += ")", generateMask(altMask, opts.mask); 241 } 242 opts.mask = opts.mask.pop(); 243 } 244 return opts.mask && (ms = void 0 === opts.mask.mask || $.isFunction(opts.mask.mask) ? generateMask(preProcessMask(opts.mask), opts.mask) : generateMask(preProcessMask(opts.mask.mask), opts.mask)), 245 ms; 246 } 247 function maskScope(actionObj, maskset, opts) { 248 function getMaskTemplate(baseOnInput, minimalPos, includeInput) { 249 minimalPos = minimalPos || 0; 250 var ndxIntlzr, test, testPos, maskTemplate = [], pos = 0, lvp = getLastValidPosition(); 251 do { 252 if (baseOnInput === !0 && getMaskSet().validPositions[pos]) {
253 var validPos = getMaskSet().validPositions[pos]; 254 test = validPos.match, ndxIntlzr = validPos.locator.slice(), maskTemplate.push(includeInput === !0 ? validPos.input : getPlaceholder(pos, test)); 255 } else testPos = getTestTemplate(pos, ndxIntlzr, pos - 1), test = testPos.match, 256 ndxIntlzr = testPos.locator.slice(), (opts.jitMasking === !1 || lvp > pos || isFinite(opts.jitMasking) && opts.jitMasking > pos) && maskTemplate.push(getPlaceholder(pos, test)); 257 pos++; 258 } while ((void 0 === maxLength || maxLength > pos - 1) && null !== test.fn || null === test.fn && "" !== test.def || minimalPos >= pos); 259 return "" === maskTemplate[maskTemplate.length - 1] && maskTemplate.pop(), maskTemplate; 260 } 261 function getMaskSet() { 262 return maskset; 263 } 264 function resetMaskSet(soft) { 265 var maskset = getMaskSet(); 266 maskset.buffer = void 0, soft !== !0 && (maskset.tests = {}, maskset._buffer = void 0, 267 maskset.validPositions = {}, maskset.p = 0); 268 } 269 function getLastValidPosition(closestTo, strict, validPositions) { 270 var before = -1, after = -1, valids = validPositions || getMaskSet().validPositions; 271 void 0 === closestTo && (closestTo = -1); 272 for (var posNdx in valids) { 273 var psNdx = parseInt(posNdx); 274 valids[psNdx] && (strict || null !== valids[psNdx].match.fn) && (closestTo >= psNdx && (before = psNdx), 275 psNdx >= closestTo && (after = psNdx)); 276 } 277 return -1 !== before && closestTo - before > 1 || closestTo > after ? before : after; 278 } 279 function setValidPosition(pos, validTest, fromSetValid, isSelection) { 280 if (isSelection || opts.insertMode && void 0 !== getMaskSet().validPositions[pos] && void 0 === fromSetValid) { 281 var i, positionsClone = $.extend(!0, {}, getMaskSet().validPositions), lvp = getLastValidPosition(); 282 for (i = pos; lvp >= i; i++) delete getMaskSet().validPositions[i]; 283 getMaskSet().validPositions[pos] = validTest; 284 var j, valid = !0, vps = getMaskSet().validPositions, needsValidation = !1; 285 for (i = j = pos; lvp >= i; i++) { 286 var t = positionsClone[i]; 287 if (void 0 !== t) for (var posMatch = j, prevPosMatch = -1; posMatch < getMaskLength() && (null == t.match.fn && vps[i] && (vps[i].match.optionalQuantifier === !0 || vps[i].match.optionality === !0) || null != t.match.fn); ) { 288 if (null === t.match.fn || !opts.keepStatic && vps[i] && (void 0 !== vps[i + 1] && getTests(i + 1, vps[i].locator.slice(), i).length > 1 || void 0 !== vps[i].alternation) ? posMatch++ : posMatch = seekNext(j), 289 needsValidation === !1 && positionsClone[posMatch] && positionsClone[posMatch].match.def === t.match.def) { 290 getMaskSet().validPositions[posMatch] = $.extend(!0, {}, positionsClone[posMatch]), 291 getMaskSet().validPositions[posMatch].input = t.input, j = posMatch, valid = !0; 292 break; 293 } 294 if (positionCanMatchDefinition(posMatch, t.match.def)) { 295 var result = isValid(posMatch, t.input, !0, !0); 296 if (valid = result !== !1, j = result.caret || result.insert ? getLastValidPosition() : posMatch, 297 needsValidation = !0, valid) break; 298 } else { 299 if (valid = null == t.match.fn, prevPosMatch === posMatch) break; 300 prevPosMatch = posMatch; 301 } 302 } 303 if (!valid) break; 304 } 305 if (!valid) return getMaskSet().validPositions = $.extend(!0, {}, positionsClone), 306 resetMaskSet(!0), !1; 307 } else getMaskSet().validPositions[pos] = validTest; 308 return resetMaskSet(!0), !0; 309 } 310 function stripValidPositions(start, end, nocheck, strict) { 311 function IsEnclosedStatic(pos) { 312 var posMatch = getMaskSet().validPositions[pos]; 313 if (void 0 !== posMatch && null === posMatch.match.fn) { 314 var prevMatch = getMaskSet().validPositions[pos - 1], nextMatch = getMaskSet().validPositions[pos + 1]; 315 return void 0 !== prevMatch && void 0 !== nextMatch; 316 } 317 return !1; 318 } 319 var i, startPos = start, positionsClone = $.extend(!0, {}, getMaskSet().validPositions), needsValidation = !1; 320 for (getMaskSet().p = start, i = end - 1; i >= startPos; i--) void 0 !== getMaskSet().validPositions[i] && (nocheck === !0 || !IsEnclosedStatic(i) && opts.canClearPosition(getMaskSet(), i, getLastValidPosition(), str
320ict, opts) !== !1) && delete getMaskSet().validPositions[i]; 321 for (resetMaskSet(!0), i = startPos + 1; i <= getLastValidPosition(); ) { 322 for (;void 0 !== getMaskSet().validPositions[startPos]; ) startPos++; 323 var s = getMaskSet().validPositions[startPos]; 324 if (startPos > i && (i = startPos + 1), void 0 === getMaskSet().validPositions[i] && isMask(i) || void 0 !== s) i++; else { 325 var t = getTestTemplate(i); 326 needsValidation === !1 && positionsClone[startPos] && positionsClone[startPos].match.def === t.match.def ? (getMaskSet().validPositions[startPos] = $.extend(!0, {}, positionsClone[startPos]), 327 getMaskSet().validPositions[startPos].input = t.input, delete getMaskSet().validPositions[i], 328 i++) : positionCanMatchDefinition(startPos, t.match.def) ? isValid(startPos, t.input || getPlaceholder(i), !0) !== !1 && (delete getMaskSet().validPositions[i], 329 i++, needsValidation = !0) : isMask(i) || (i++, startPos--), startPos++; 330 } 331 } 332 resetMaskSet(!0); 333 } 334 function getTestTemplate(pos, ndxIntlzr, tstPs) { 335 var testPos = getMaskSet().validPositions[pos]; 336 if (void 0 === testPos) for (var testPositions = getTests(pos, ndxIntlzr, tstPs), lvp = getLastValidPosition(), lvTest = getMaskSet().validPositions[lvp] || getTests(0)[0], lvTestAltArr = void 0 !== lvTest.alternation ? lvTest.locator[lvTest.alternation].toString().split(",") : [], ndx = 0; ndx < testPositions.length && (testPos = testPositions[ndx], 337 !(testPos.match && (opts.greedy && testPos.match.optionalQuantifier !== !0 || (testPos.match.optionality === !1 || testPos.match.newBlockMarker === !1) && testPos.match.optionalQuantifier !== !0) && (void 0 === lvTest.alternation || lvTest.alternation !== testPos.alternation || void 0 !== testPos.locator[lvTest.alternation] && checkAlternationMatch(testPos.locator[lvTest.alternation].toString().split(","), lvTestAltArr)))); ndx++) ; 338 return testPos; 339 } 340 function getTest(pos) { 341 return getMaskSet().validPositions[pos] ? getMaskSet().validPositions[pos].match : getTests(pos)[0].match; 342 } 343 function positionCanMatchDefinition(pos, def) { 344 for (var valid = !1, tests = getTests(pos), tndx = 0; tndx < tests.length; tndx++) if (tests[tndx].match && tests[tndx].match.def === def) { 345 valid = !0; 346 break; 347 } 348 return valid; 349 } 350 function selectBestMatch(pos, alternateNdx) { 351 var bestMatch, indexPos; 352 return (getMaskSet().tests[pos] || getMaskSet().validPositions[pos]) && $.each(getMaskSet().tests[pos] || [ getMaskSet().validPositions[pos] ], function(ndx, lmnt) { 353 var ndxPos = lmnt.alternation ? lmnt.locator[lmnt.alternation].toString().indexOf(alternateNdx) : -1; 354 (void 0 === indexPos || indexPos > ndxPos) && -1 !== ndxPos && (bestMatch = lmnt, 355 indexPos = ndxPos); 356 }), bestMatch; 357 } 358 function getTests(pos, ndxIntlzr, tstPs) { 359 function resolveTestFromToken(maskToken, ndxInitializer, loopNdx, quantifierRecurse) { 360 function handleMatch(match, loopNdx, quantifierRecurse) { 361 function isFirstMatch(latestMatch, tokenGroup) { 362 var firstMatch = 0 === $.inArray(latestMatch, tokenGroup.matches); 363 return firstMatch || $.each(tokenGroup.matches, function(ndx, match) { 364 return match.isQuantifier === !0 && (firstMatch = isFirstMatch(latestMatch, tokenGroup.matches[ndx - 1])) ? !1 : void 0; 365 }), firstMatch; 366 } 367 function resolveNdxInitializer(pos, alternateNdx) { 368 var bestMatch = selectBestMatch(pos, alternateNdx); 369 return bestMatch ? bestMatch.locator.slice(bestMatch.alternation + 1) : []; 370 } 371 if (testPos > 1e4) 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; 372 if (testPos === pos && void 0 === match.matches) return matches.push({ 373 match: match, 374 locator: loopNdx.reverse(), 375 cd: cacheDependency 376 }), !0; 377 if (void 0 !== match.matches) { 378 if (match.isGroup && quantifierRecurse !== match) { 379 if (match = handleMatch(maskToken.matches[$.inArray(match, maskToken.matches) + 1], loopNdx)) return !0; 380 } else if (match.isOptional) { 381 var optionalToken = match; 382 if (match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse)) { 383 if (latestMatch = matches[matches.length - 1].match, !isFirstMatch(latestMatch, optionalToken)) return !0; 384 insertStop = !0, testPos = pos; 385 } 386 } else if (match.isAlternator) { 387 var maltMatches, alternateToken = match, malternateMatches = [], currentMatches = matches.slice(), loopNdxCnt = loopNdx.length, altIndex = ndxInitializer.length > 0 ? ndxInitializer.shift() : -1; 388 if (-1 === altIndex || "string" == typeof altIndex) { 389 var amndx, currentPos = testPos, ndxInitializerClone = ndxInitializer.slice(), altIndexArr = []; 390 if ("string" == typeof altIndex) altIndexArr = altIndex.split(","); else for (amndx = 0;
390 amndx < alternateToken.matches.length; amndx++) altIndexArr.push(amndx); 391 for (var ndx = 0; ndx < altIndexArr.length; ndx++) { 392 if (amndx = parseInt(altIndexArr[ndx]), matches = [], ndxInitializer = resolveNdxInitializer(testPos, amndx), 393 match = handleMatch(alternateToken.matches[amndx] || maskToken.matches[amndx], [ amndx ].concat(loopNdx), quantifierRecurse) || match, 394 match !== !0 && void 0 !== match && altIndexArr[altIndexArr.length - 1] < alternateToken.matches.length) { 395 var ntndx = $.inArray(match, maskToken.matches) + 1; 396 maskToken.matches.length > ntndx && (match = handleMatch(maskToken.matches[ntndx], [ ntndx ].concat(loopNdx.slice(1, loopNdx.length)), quantifierRecurse), 397 match && (altIndexArr.push(ntndx.toString()), $.each(matches, function(ndx, lmnt) { 398 lmnt.alternation = loopNdx.length - 1; 399 }))); 400 } 401 maltMatches = matches.slice(), testPos = currentPos, matches = []; 402 for (var i = 0; i < ndxInitializerClone.length; i++) ndxInitializer[i] = ndxInitializerClone[i]; 403 for (var ndx1 = 0; ndx1 < maltMatches.length; ndx1++) { 404 var altMatch = maltMatches[ndx1]; 405 altMatch.alternation = altMatch.alternation || loopNdxCnt; 406 for (var ndx2 = 0; ndx2 < malternateMatches.length; ndx2++) { 407 var altMatch2 = malternateMatches[ndx2]; 408 if (altMatch.match.def === altMatch2.match.def && ("string" != typeof altIndex || -1 !== $.inArray(altMatch.locator[altMatch.alternation].toString(), altIndexArr))) { 409 altMatch.match.mask === altMatch2.match.mask && (maltMatches.splice(ndx1, 1), ndx1--), 410 -1 === altMatch2.locator[altMatch.alternation].toString().indexOf(altMatch.locator[altMatch.alternation]) && (altMatch2.locator[altMatch.alternation] = altMatch2.locator[altMatch.alternation] + "," + altMatch.locator[altMatch.alternation], 411 altMatch2.alternation = altMatch.alternation); 412 break; 413 } 414 } 415 } 416 malternateMatches = malternateMatches.concat(maltMatches); 417 } 418 "string" == typeof altIndex && (malternateMatches = $.map(malternateMatches, function(lmnt, ndx) { 419 if (isFinite(ndx)) { 420 var mamatch, alternation = lmnt.alternation, altLocArr = lmnt.locator[alternation].toString().split(","); 421 lmnt.locator[alternation] = void 0, lmnt.alternation = void 0; 422 for (var alndx = 0; alndx < altLocArr.length; alndx++) mamatch = -1 !== $.inArray(altLocArr[alndx], altIndexArr), 423 mamatch && (void 0 !== lmnt.locator[alternation] ? (lmnt.locator[alternation] += ",", 424 lmnt.locator[alternation] += altLocArr[alndx]) : lmnt.locator[alternation] = parseInt(altLocArr[alndx]), 425 lmnt.alternation = alternation); 426 if (void 0 !== lmnt.locator[alternation]) return lmnt; 427 } 428 })), matches = currentMatches.concat(malternateMatches), testPos = pos, insertStop = matches.length > 0; 429 } else match = handleMatch(alternateToken.matches[altIndex] || maskToken.matches[altIndex], [ altIndex ].concat(loopNdx), quantifierRecurse); 430 if (match) return !0; 431 } else if (match.isQuantifier && quantifierRecurse !== maskToken.matches[$.inArray(match, maskToken.matches) - 1]) for (var qt = match, qndx = ndxInitializer.length > 0 ? ndxInitializer.shift() : 0; qndx < (isNaN(qt.quantifier.max) ? qndx + 1 : qt.quantifier.max) && pos >= testPos; qndx++) { 432 var tokenGroup = maskToken.matches[$.inArray(qt, maskToken.matches) - 1]; 433 if (match = handleMatch(tokenGroup, [ qndx ].concat(loopNdx), tokenGroup)) { 434 if (latestMatch = matches[matches.length - 1].match, latestMatch.optionalQuantifier = qndx > qt.quantifier.min - 1, 435 isFirstMatch(latestMatch, tokenGroup)) { 436 if (qndx > qt.quantifier.min - 1) { 437 insertStop = !0, testPos = pos; 438 break; 439 } 440 return !0; 441 } 442 return !0; 443 } 444 } else if (match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse)) return !0; 445 } else testPos++; 446 } 447 for (var tndx = ndxInitializer.length > 0 ? ndxInitializer.shift() : 0; tndx < maskToken.matches.length; tndx++) if (maskToken.matches[tndx].isQuantifier !== !0) { 448 var match = handleMatch(maskToken.matches[tndx], [ tndx ].concat(loopNdx), quantifierRecurse); 449 if (match && testPos === pos) return match; 450 if (testPos > pos) break; 451 } 452 } 453 function mergeLocators(tests) { 454 var locator = []; 455 return $.isArray(tests) || (tests = [ tests ]), void 0 === tests[0].alternation ? locator = tests[0].locator.slice() : $.each(tests, function(ndx, tst) { 456 if ("" !== tst.def) if (0 === locator.length) locator = t
456st.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]); 457 }), locator; 458 } 459 var latestMatch, maskTokens = getMaskSet().maskToken, testPos = ndxIntlzr ? tstPs : 0, ndxInitializer = ndxIntlzr || [ 0 ], matches = [], insertStop = !1, cacheDependency = ndxIntlzr ? ndxIntlzr.join("") : ""; 460 if (pos > -1) { 461 if (void 0 === ndxIntlzr) { 462 for (var test, previousPos = pos - 1; void 0 === (test = getMaskSet().validPositions[previousPos] || getMaskSet().tests[previousPos]) && previousPos > -1; ) previousPos--; 463 void 0 !== test && previousPos > -1 && (ndxInitializer = mergeLocators(test), cacheDependency = ndxInitializer.join(""), 464 testPos = previousPos); 465 } 466 if (getMaskSet().tests[pos] && getMaskSet().tests[pos][0].cd === cacheDependency) return getMaskSet().tests[pos]; 467 for (var mtndx = ndxInitializer.shift(); mtndx < maskTokens.length; mtndx++) { 468 var match = resolveTestFromToken(maskTokens[mtndx], ndxInitializer, [ mtndx ]); 469 if (match && testPos === pos || testPos > pos) break; 470 } 471 } 472 return (0 === matches.length || insertStop) && matches.push({ 473 match: { 474 fn: null, 475 cardinality: 0, 476 optionality: !0, 477 casing: null, 478 def: "" 479 }, 480 locator: [] 481 }), getMaskSet().tests[pos] = $.extend(!0, [], matches), getMaskSet().tests[pos]; 482 } 483 function getBufferTemplate() { 484 return void 0 === getMaskSet()._buffer && (getMaskSet()._buffer = getMaskTemplate(!1, 1)), 485 getMaskSet()._buffer; 486 } 487 function getBuffer(noCache) { 488 if (void 0 === getMaskSet().buffer || noCache === !0) { 489 if (noCache === !0) for (var testNdx in getMaskSet().tests) void 0 === getMaskSet().validPositions[testNdx] && delete getMaskSet().tests[testNdx]; 490 getMaskSet().buffer = getMaskTemplate(!0, getLastValidPosition(), !0); 491 } 492 return getMaskSet().buffer; 493 } 494 function refreshFromBuffer(start, end, buffer) { 495 var i; 496 if (buffer = buffer, start === !0) resetMaskSet(), start = 0, end = buffer.length; else for (i = start; end > i; i++) delete getMaskSet().validPositions[i], 497 delete getMaskSet().tests[i]; 498 for (i = start; end > i; i++) resetMaskSet(!0), buffer[i] !== opts.skipOptionalPartCharacter && isValid(i, buffer[i], !0, !0); 499 } 500 function casing(elem, test) { 501 switch (test.casing) { 502 case "upper": 503 elem = elem.toUpperCase(); 504 break; 505 506 case "lower": 507 elem = elem.toLowerCase(); 508 } 509 return elem; 510 } 511 function checkAlternationMatch(altArr1, altArr2) { 512 for (var altArrC = opts.greedy ? altArr2 : altArr2.slice(0, 1), isMatch = !1, alndx = 0; alndx < altArr1.length; alndx++) if (-1 !== $.inArray(altArr1[alndx], altArrC)) { 513 isMatch = !0; 514 break; 515 } 516 return isMatch; 517 } 518 function isValid(pos, c, strict, fromSetValid) { 519 function isSelection(posObj) { 520 return isRTL ? posObj.begin - posObj.end > 1 || posObj.begin - posObj.end === 1 && opts.insertMode : posObj.end - posObj.begin > 1 || posObj.end - posObj.begin === 1 && opts.insertMode; 521 } 522 function _isValid(position, c, strict, fromSetValid) { 523 var rslt = !1; 524 return $.each(getTests(position), function(ndx, tst) { 525 for (var test = tst.match, loopend = c ? 1 : 0, chrs = "", i = test.cardinality; i > loopend; i--) chrs += getBufferElement(position - (i - 1)); 526 if (c && (chrs += c), getBuffer(!0), rslt = null != test.fn ? test.fn.test(chrs, getMaskSet(), position, strict, opts, isSelection(pos)) : c !== test.def && c !== opts.skipOptionalPartCharacter || "" === test.def ? !1 : { 527 c: test.placeholder || test.def, 528 pos: position 529 }, rslt !== !1) { 530 var elem = void 0 !== rslt.c ? rslt.c : c; 531 elem = elem === opts.skipOptionalPartCharacter && null === test.fn ? test.placeholder || test.def : elem;
532 var validatedPos = position, possibleModifiedBuffer = getBuffer(); 533 if (void 0 !== rslt.remove && ($.isArray(rslt.remove) || (rslt.remove = [ rslt.remove ]), 534 $.each(rslt.remove.sort(function(a, b) { 535 return b - a; 536 }), function(ndx, lmnt) { 537 stripValidPositions(lmnt, lmnt + 1, !0); 538 })), void 0 !== rslt.insert && ($.isArray(rslt.insert) || (rslt.insert = [ rslt.insert ]), 539 $.each(rslt.insert.sort(function(a, b) { 540 return a - b; 541 }), function(ndx, lmnt) { 542 isValid(lmnt.pos, lmnt.c, !1, fromSetValid); 543 })), rslt.refreshFromBuffer) { 544 var refresh = rslt.refreshFromBuffer; 545 if (strict = !0, refreshFromBuffer(refresh === !0 ? refresh : refresh.start, refresh.end, possibleModifiedBuffer), 546 void 0 === rslt.pos && void 0 === rslt.c) return rslt.pos = getLastValidPosition(), 547 !1; 548 if (validatedPos = void 0 !== rslt.pos ? rslt.pos : position, validatedPos !== position) return rslt = $.extend(rslt, isValid(validatedPos, elem, !0, fromSetValid)), 549 !1; 550 } else if (rslt !== !0 && void 0 !== rslt.pos && rslt.pos !== position && (validatedPos = rslt.pos, 551 refreshFromBuffer(position, validatedPos, getBuffer().slice()), validatedPos !== position)) return rslt = $.extend(rslt, isValid(validatedPos, elem, !0)), 552 !1; 553 return rslt !== !0 && void 0 === rslt.pos && void 0 === rslt.c ? !1 : (ndx > 0 && resetMaskSet(!0), 554 setValidPosition(validatedPos, $.extend({}, tst, { 555 input: casing(elem, test) 556 }), fromSetValid, isSelection(pos)) || (rslt = !1), !1); 557 } 558 }), rslt; 559 } 560 function alternate(pos, c, strict, fromSetValid) { 561 for (var lastAlt, alternation, isValidRslt, altPos, i, validPos, validPsClone = $.extend(!0, {}, getMaskSet().validPositions), testsClone = $.extend(!0, {}, getMaskSet().tests), lAlt = getLastValidPosition(); lAlt >= 0 && (altPos = getMaskSet().validPositions[lAlt], 562 !altPos || void 0 === altPos.alternation || (lastAlt = lAlt, alternation = getMaskSet().validPositions[lastAlt].alternation, 563 getTestTemplate(lastAlt).locator[altPos.alternation] === altPos.locator[altPos.alternation])); lAlt--) ; 564 if (void 0 !== alternation) { 565 lastAlt = parseInt(lastAlt); 566 for (var decisionPos in getMaskSet().validPositions) if (decisionPos = parseInt(decisionPos), 567 altPos = getMaskSet().validPositions[decisionPos], decisionPos >= lastAlt && void 0 !== altPos.alternation) { 568 var altNdxs; 569 0 === lastAlt ? (altNdxs = [], $.each(getMaskSet().tests[lastAlt], function(ndx, test) { 570 void 0 !== test.locator[alternation] && (altNdxs = altNdxs.concat(test.locator[alternation].toString().split(","))); 571 })) : altNdxs = getMaskSet().validPositions[lastAlt].locator[alternation].toString().split(","); 572 var decisionTaker = void 0 !== altPos.locator[alternation] ? altPos.locator[alternation] : altNdxs[0]; 573 decisionTaker.length > 0 && (decisionTaker = decisionTaker.split(",")[0]); 574 for (var mndx = 0; mndx < altNdxs.length; mndx++) { 575 var validInputs = [], staticInputsBeforePos = 0, staticInputsBeforePosAlternate = 0; 576 if (decisionTaker < altNdxs[mndx]) { 577 for (var possibilityPos, possibilities, dp = decisionPos; dp >= 0; dp--) if (possibilityPos = getMaskSet().validPositions[dp], 578 void 0 !== possibilityPos) { 579 var bestMatch = selectBestMatch(dp, altNdxs[mndx]); 580 getMaskSet().validPositions[dp].match.def !== bestMatch.match.def && (validInputs.push(getMaskSet().validPositions[dp].input), 581 getMaskSet().validPositions[dp] = bestMatch, getMaskSet().validPositions[dp].input = getPlaceholder(dp), 582 null === getMaskSet().validPositions[dp].match.fn && staticInputsBeforePosAlternate++, 583 possibilityPos = bestMatch), possibilities = possibilityPos.locator[alternation], 584 possibilityPos.locator[alternation] = parseInt(altNdxs[mndx]); 585 break; 586 } 587 if (decisionTaker !== possibilityPos.locator[alternation]) { 588 for (i = decisionPos + 1; i < getLastValidPosition(void 0, !0) + 1; i++) validPos = getMaskSet().validPositions[i], 589 validPos && null != validPos.match.fn ? val
589idInputs.push(validPos.input) : pos > i && staticInputsBeforePos++, 590 delete getMaskSet().validPositions[i], delete getMaskSet().tests[i]; 591 for (resetMaskSet(!0), opts.keepStatic = !opts.keepStatic, isValidRslt = !0; validInputs.length > 0; ) { 592 var input = validInputs.shift(); 593 if (input !== opts.skipOptionalPartCharacter && !(isValidRslt = isValid(getLastValidPosition(void 0, !0) + 1, input, !1, fromSetValid))) break; 594 } 595 if (possibilityPos.alternation = alternation, possibilityPos.locator[alternation] = possibilities, 596 isValidRslt) { 597 var targetLvp = getLastValidPosition(pos) + 1; 598 for (i = decisionPos + 1; i < getLastValidPosition() + 1; i++) validPos = getMaskSet().validPositions[i], 599 (void 0 === validPos || null == validPos.match.fn) && pos > i && staticInputsBeforePosAlternate++; 600 pos += staticInputsBeforePosAlternate - staticInputsBeforePos, isValidRslt = isValid(pos > targetLvp ? targetLvp : pos, c, strict, fromSetValid); 601 } 602 if (opts.keepStatic = !opts.keepStatic, isValidRslt) return isValidRslt; 603 resetMaskSet(), getMaskSet().validPositions = $.extend(!0, {}, validPsClone), getMaskSet().tests = $.extend(!0, {}, testsClone); 604 } 605 } 606 } 607 break; 608 } 609 } 610 return !1; 611 } 612 function trackbackAlternations(originalPos, newPos) { 613 for (var vp = getMaskSet().validPositions[newPos], targetLocator = vp.locator, tll = targetLocator.length, ps = originalPos; newPos > ps; ps++) if (void 0 === getMaskSet().validPositions[ps] && !isMask(ps, !0)) { 614 var tests = getTests(ps), bestMatch = tests[0], equality = -1; 615 $.each(tests, function(ndx, tst) { 616 for (var i = 0; tll > i && (void 0 !== tst.locator[i] && checkAlternationMatch(tst.locator[i].toString().split(","), targetLocator[i].toString().split(","))); i++) i > equality && (equality = i, 617 bestMatch = tst); 618 }), setValidPosition(ps, $.extend({}, bestMatch, { 619 input: bestMatch.match.placeholder || bestMatch.match.def 620 }), !0); 621 } 622 } 623 strict = strict === !0; 624 var maskPos = pos; 625 void 0 !== pos.begin && (maskPos = isRTL && !isSelection(pos) ? pos.end : pos.begin); 626 for (var result = !1, positionsClone = $.extend(!0, {}, getMaskSet().validPositions), pndx = maskPos - 1; pndx > -1 && !getMaskSet().validPositions[pndx]; pndx--) ; 627 var testTemplate; 628 for (pndx++; maskPos > pndx; pndx++) void 0 === getMaskSet().validPositions[pndx] && (opts.jitMasking === !1 || opts.jitMasking > pndx) && ((testTemplate = getTestTemplate(pndx)).match.def === opts.radixPointDefinitionSymbol || !isMask(pndx, !0) || $.inArray(opts.radixPoint, getBuffer()) < pndx && testTemplate.match.fn && testTemplate.match.fn.test(getPlaceholder(pndx), getMaskSet(), pndx, !1, opts)) && _isValid(getLastValidPosition(pndx, !0) + 1, testTemplate.match.placeholder || (null == testTemplate.match.fn ? testTemplate.match.def : "" !== getPlaceholder(pndx) ? getPlaceholder(pndx) : getBuffer()[pndx]), !0, fromSetValid); 629 if (isSelection(pos) && (handleRemove(void 0, Inputmask.keyCode.DELETE, pos), maskPos = getMaskSet().p), 630 maskPos < getMaskLength() && (result = _isValid(maskPos, c, strict, fromSetValid), 631 (!strict || fromSetValid === !0) && result === !1)) { 632 var currentPosValid = getMaskSet().validPositions[maskPos]; 633 if (!currentPosValid || null !== currentPosValid.match.fn || currentPosValid.match.def !== c && c !== opts.skipOptionalPartCharacter) { 634 if ((opts.insertMode || void 0 === getMaskSet().validPositions[seekNext(maskPos)]) && !isMask(maskPos, !0)) { 635 var staticChar = getTestTemplate(maskPos).match; 636 staticChar = staticChar.placeholder || staticChar.def, _isValid(maskPos, staticChar, strict, fromSetValid); 637 for (var nPos = maskPos + 1, snPos = seekNext(maskPos); snPos >= nPos; nPos++) if (result = _isValid(nPos, c, strict, fromSetValid), 638 result !== !1) { 639 trackbackAlternations(maskPos, nPos), maskPos = nPos; 640 break; 641 } 642 } 643 } else result = { 644 caret: seekNext(maskPos) 645 }; 646 } 647 return result === !1 && opts.keepStatic && (result = alternate(maskPos, c, strict, fromSetValid)), 648 result === !0 && (result = { 649 pos: maskPos 650 }), $.isFunction(opts.postValidation) && result !== !1 && !strict && fromSetValid !== !0 && (result = opts.postValidation(getBuffer(!0), result, opts) ? result : !1), 651 void 0 === result.pos && (result.pos = maskPos), result === !1 && (resetMaskSet(!0), 652 getMaskSet().validPositions = $.extend(!0, {}, positionsClone)), result; 653 } 654 function isMask(pos, strict) { 655 var test; 656 if (strict ? (test = getTestTemplate(pos).match, "" === test.def && (test = getTest(pos))) : test = getTest(pos), 657 null != test.fn) return test.fn; 658 if (strict !== !0 && pos > -1 && !opts.keepStatic && void 0 === getMaskSet().validPositions[pos]) { 659 var tests = getTests(pos); 660 return tests.length > 2; 661 } 662 return !1; 663 } 664 function getMaskLength() { 665 var maskLength; 666 maxLength = void 0 !== el ? el.maxLength : void 0, -1 === maxLength && (maxLength = void 0); 667 var pos, lvp = getLastValidPosition(), testPos = getMaskSet().validPositions[lvp], ndxIntlzr = void 0 !== testPos ? testPos.locator.slice() : void 0; 668 for (pos = lvp + 1; void 0 === testPos || null !== testPos.match.fn || null === testPos.match.fn && "" !== testPos.match.def; pos++) testPos = getTestTemplate(pos, ndxIntlzr, pos - 1), 669 ndxIntlzr = testPos.locator.slice(); 670 var lastTest = getTest(pos - 1); 671 return maskLength = "" !== lastTest.def ? pos : pos - 1, void 0 === maxLength || maxLength > maskLength ? maskLength : maxLength; 672 } 673 function seekNext(pos, newBlock) { 674 var maskL = getMaskLength(); 675 if (pos >= maskL) return maskL; 676 for (var position = pos; ++position < maskL && (newBlock === !0 && (getTest(position).newBlockMarker !== !0 || !isMask(position)) || newBlock !== !0 && !isMask(position) && (opts.nojumps !== !0 || opts.nojumpsThreshold > position)); ) ; 677 return position; 678 } 679 function seekPrevious(pos, newBlock) { 680 var position = pos; 681 if (0 >= position) return 0; 682 for (;
vendor: 16,269 bytes, lines 682-908
682--position > 0 && (newBlock === !0 && getTest(position).newBlockMarker !== !0 || newBlock !== !0 && !isMask(position)); ) ; 683 return position; 684 } 685 function getBufferElement(position) { 686 return void 0 === getMaskSet().validPositions[position] ? getPlaceholder(position) : getMaskSet().validPositions[position].input; 687 } 688 function writeBuffer(input, buffer, caretPos, event, triggerInputEvent) { 689 if (event && $.isFunction(opts.onBeforeWrite)) { 690 var result = opts.onBeforeWrite(event, buffer, caretPos, opts); 691 if (result) { 692 if (result.refreshFromBuffer) { 693 var refresh = result.refreshFromBuffer; 694 refreshFromBuffer(refresh === !0 ? refresh : refresh.start, refresh.end, result.buffer || buffer), 695 buffer = getBuffer(!0); 696 } 697 void 0 !== caretPos && (caretPos = void 0 !== result.caret ? result.caret : caretPos); 698 } 699 } 700 input.inputmask._valueSet(buffer.join("")), void 0 === caretPos || void 0 !== event && "blur" === event.type || caret(input, caretPos), 701 triggerInputEvent === !0 && (skipInputEvent = !0, $(input).trigger("input")); 702 } 703 function getPlaceholder(pos, test) { 704 if (test = test || getTest(pos), void 0 !== test.placeholder) return test.placeholder; 705 if (null === test.fn) { 706 if (pos > -1 && !opts.keepStatic && void 0 === getMaskSet().validPositions[pos]) { 707 var prevTest, tests = getTests(pos), staticAlternations = []; 708 if (tests.length > 2) for (var i = 0; i < tests.length; i++) if (tests[i].match.optionality !== !0 && tests[i].match.optionalQuantifier !== !0 && (null === tests[i].match.fn || void 0 === prevTest || tests[i].match.fn.test(prevTest.match.def, getMaskSet(), pos, !0, opts) !== !1) && (staticAlternations.push(tests[i]), 709 null === tests[i].match.fn && (prevTest = tests[i]), staticAlternations.length > 1)) return opts.placeholder.charAt(pos % opts.placeholder.length); 710 } 711 return test.def; 712 } 713 return opts.placeholder.charAt(pos % opts.placeholder.length); 714 } 715 function checkVal(input, writeOut, strict, nptvl) { 716 function isTemplateMatch() { 717 var isMatch = !1, charCodeNdx = getBufferTemplate().slice(initialNdx, seekNext(initialNdx)).join("").indexOf(charCodes); 718 if (-1 !== charCodeNdx && !isMask(initialNdx)) { 719 isMatch = !0; 720 for (var bufferTemplateArr = getBufferTemplate().slice(initialNdx, initialNdx + charCodeNdx), i = 0; i < bufferTemplateArr.length; i++) if (" " !== bufferTemplateArr[i]) { 721 isMatch = !1; 722 break; 723 } 724 } 725 return isMatch; 726 } 727 var result, inputValue = nptvl.slice(), charCodes = "", initialNdx = 0; 728 if (resetMaskSet(), getMaskSet().p = seekNext(-1), !strict) if (opts.autoUnmask !== !0) { 729 var staticInput = getBufferTemplate().slice(0, seekNext(-1)).join(""), matches = inputValue.join("").match(new RegExp("^" + Inputmask.escapeRegex(staticInput), "g")); 730 matches && matches.length > 0 && (inputValue.splice(0, matches.length * staticInput.length), 731 initialNdx = seekNext(initialNdx)); 732 } else initialNdx = seekNext(initialNdx); 733 $.each(inputValue, function(ndx, charCode) { 734 if (void 0 !== charCode) { 735 var keypress = new $.Event("keypress"); 736 keypress.which = charCode.charCodeAt(0), charCodes += charCode; 737 var lvp = getLastValidPosition(void 0, !0), lvTest = getMaskSet().validPositions[lvp], nextTest = getTestTemplate(lvp + 1, lvTest ? lvTest.locator.slice() : void 0, lvp); 738 if (!isTemplateMatch() || strict || opts.autoUnmask) { 739 var pos = strict ? ndx : null == nextTest.match.fn && nextTest.match.optionality && lvp + 1 < getMaskSet().p ? lvp + 1 : getMaskSet().p; 740 result = keypressEvent.call(input, keypress, !0, !1, strict, pos), initialNdx = pos + 1, 741 charCodes = ""; 742 } else result = keypressEvent.call(input, keypress, !0, !1, !0, lvp + 1); 743 if (!strict && $.isFunction(opts.onBeforeWrite) && (result = opts.onBeforeWrite(keypress, getBuffer(), result.forwardPosition, opts), 744 result && result.refreshFromBuffer)) { 745 var refresh = result.refreshFromBuffer; 746 refreshFromBuffer(refresh === !0 ? refresh : refresh.start, refresh.end, result.buffer), 747 resetMaskSet(!0), result.caret && (getMaskSet().p = result.caret); 748 } 749 } 750 }), writeOut && writeBuffer(input, getBuffer(), document.activeElement === input ? seekNext(getLastValidPosition(0)) : void 0, new $.Event("checkval")); 751 } 752 function unmaskedvalue(input) { 753 if (input && void 0 === input.inputmask) return input.value; 754 var umValue = [], vps = getMaskSet().validPositions; 755 for (var pndx in vps) vps[pndx].match && null != vps[pndx].match.fn && umValue.push(vps[pndx].input); 756 var unmaskedValue = 0 === umValue.length ? null : (isRTL ? umValue.reverse() : umValue).join(""); 757 if (null !== unmaskedValue) { 758 var bufferValue = (isRTL ? getBuffer().slice().reverse() : getBuffer()).join(""); 759 $.isFunction(opts.onUnMask) && (unmaskedValue = opts.onUnMask(bufferValue, unmaskedValue, opts) || unmaskedValue); 760 } 761 return unmaskedValue; 762 } 763 function caret(input, begin, end, notranslate) { 764 function translatePosition(pos) { 765 if (notranslate !== !0 && isRTL && "number" == typeof pos && (!opts.greedy || "" !== opts.placeholder)) { 766 var bffrLght = getBuffer().join("").length; 767 pos = bffrLght - pos; 768 } 769 return pos; 770 } 771 var range; 772 if ("number" != typeof begin) return input.setSelectionRange ? (begin = input.selectionStart, 773 end = input.selectionEnd) : window.getSelection ? (range = window.getSelection().getRangeAt(0), 774 (range.commonAncestorContainer.parentNode === input || range.commonAncestorContainer === input) && (begin = range.startOffset, 775 end = range.endOffset)) : document.selection && document.selection.createRange && (range = document.selection.createRange(), 776 begin = 0 - range.duplicate().moveStart("character", -input.inputmask._valueGet().length), 777 end = begin + range.text.length), { 778 begin: translatePosition(begin), 779 end: translatePosition(end) 780 }; 781 begin = translatePosition(begin), end = translatePosition(end), end = "number" == typeof end ? end : begin; 782 var scrollCalc = parseInt(((input.ownerDocument.defaultView || window).getComputedStyle ? (input.ownerDocument.defaultView || window).getComputedStyle(input, null) : input.currentStyle).fontSize) * end; 783 if (input.scrollLeft = scrollCalc > input.scrollWidth ? scrollCalc : 0, mobile || opts.insertMode !== !1 || begin !== end || end++, 784 input.setSelectionRange) input.selectionStart = begin, input.selectionEnd = end; else if (window.getSelection) { 785 if (range = document.createRange(), void 0 === input.firstChild || null === input.firstChild) { 786 var textNode = document.createTextNode(""); 787 input.appendChild(textNode); 788 } 789 range.setStart(input.firstChild, begin < input.inputmask._valueGet().length ? begin : input.inputmask._valueGet().length), 790 range.setEnd(input.firstChild, end < input.inputmask._valueGet().length ? end : input.inputmask._valueGet().length), 791 range.collapse(!0); 792 var sel = window.getSelection(); 793 sel.removeAllRanges(), sel.addRange(range); 794 } else input.createTextRange && (range = input.createTextRange(), range.collapse(!0), 795 range.moveEnd("character", end), range.moveStart("character", begin), range.select()); 796 } 797 function determineLastRequiredPosition(returnDefinition) { 798 var pos, testPos, buffer = getBuffer(), bl = buffer.length, lvp = getLastValidPosition(), positions = {}, lvTest = getMaskSet().validPositions[lvp], ndxIntlzr = void 0 !== lvTest ? lvTest.locator.slice() : void 0; 799 for (pos = lvp + 1; pos < buffer.length; pos++) testPos = getTestTemplate(pos, ndxIntlzr, pos - 1), 800 ndxIntlzr = testPos.locator.slice(), positions[pos] = $.extend(!0, {}, testPos); 801 var lvTestAlt = lvTest && void 0 !== lvTest.alternation ? lvTest.locator[lvTest.alternation] : void 0; 802 for (pos = bl - 1; pos > lvp && (testPos = positions[pos], (testPos.match.optionality || testPos.match.optionalQuantifier || lvTestAlt && (lvTestAlt !== positions[pos].locator[lvTest.alternation] && null != testPos.match.fn || null === testPos.match.fn && 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--; 803 return returnDefinition ? { 804 l: bl, 805 def: positions[bl] ? positions[bl].match : void 0 806 } : bl; 807 } 808 function clearOptionalTail(buffer) { 809 for (var rl = determineLastRequiredPosition(), lmib = buffer.length - 1; lmib > rl && !isMask(lmib); lmib--) ; 810 return buffer.splice(rl, lmib + 1 - rl), buffer; 811 } 812 function isComplete(buffer) { 813 if ($.isFunction(opts.isComplete)) return opts.isComplete(buffer, opts); 814 if ("*" === opts.repeat) return void 0; 815 var complete = !1, lrp = determineLastRequiredPosition(!0), aml = seekPrevious(lrp.l); 816 if (void 0 === lrp.def || lrp.def.newBlockMarker || lrp.def.optionality || lrp.def.optionalQuantifier) { 817 complete = !0; 818 for (var i = 0; aml >= i; i++) { 819 var test = getTestTemplate(i).match; 820 if (null !== test.fn && void 0 === getMaskSet().validPositions[i] && test.optionality !== !0 && test.optionalQuantifier !== !0 || null === test.fn && buffer[i] !== getPlaceholder(i, test)) { 821 complete = !1; 822 break; 823 } 824 } 825 } 826 return complete; 827 } 828 function patchValueProperty(npt) { 829 function patchValhook(type) { 830 if ($.valHooks && (void 0 === $.valHooks[type] || $.valHooks[type].inputmaskpatch !== !0)) { 831 var valhookGet = $.valHooks[type] && $.valHooks[type].get ? $.valHooks[type].get : function(elem) { 832 return elem.value; 833 }, valhookSet = $.valHooks[type] && $.valHooks[type].set ? $.valHooks[type].set : function(elem, value) { 834 return elem.value = value, elem; 835 }; 836 $.valHooks[type] = { 837 get: function(elem) { 838 if (elem.inputmask) { 839 if (elem.inputmask.opts.autoUnmask) return elem.inputmask.unmaskedvalue(); 840 var result = valhookGet(elem); 841 return -1 !== getLastValidPosition(void 0, void 0, elem.inputmask.maskset.validPositions) || opts.nullable !== !0 ? result : ""; 842 } 843 return valhookGet(elem); 844 }, 845 set: function(elem, value) { 846 var result, $elem = $(elem); 847 return result = valhookSet(elem, value), elem.inputmask && $elem.trigger("setvalue"), 848 result; 849 }, 850 inputmaskpatch: !0 851 }; 852 } 853 } 854 function getter() { 855 return this.inputmask ? this.inputmask.opts.autoUnmask ? this.inputmask.unmaskedvalue() : -1 !== getLastValidPosition() || opts.nullable !== !0 ? document.activeElement === this && opts.clearMaskOnLostFocus ? (isRTL ? clearOptionalTail(getBuffer().slice()).reverse() : clearOptionalTail(getBuffer().slice())).join("") : valueGet.call(this) : "" : valueGet.call(this); 856 } 857 function setter(value) { 858 valueSet.call(this, value), this.inputmask && $(this).trigger("setvalue"); 859 } 860 function installNativeValueSetFallback(npt) { 861 EventRuler.on(npt, "mouseenter", function(event) { 862 var $input = $(this), input = this, value = input.inputmask._valueGet(); 863 value !== getBuffer().join("") && $input.trigger("setvalue"); 864 }); 865 } 866 var valueGet, valueSet; 867 if (!npt.inputmask.__valueGet) { 868 if (Object.getOwnPropertyDescriptor) { 869 "function" != typeof Object.getPrototypeOf && (Object.getPrototypeOf = "object" == typeof "test".__proto__ ? function(object) { 870 return object.__proto__; 871 } : function(object) { 872 return object.constructor.prototype; 873 }); 874 var valueProperty = Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(npt), "value") : void 0; 875 valueProperty && valueProperty.get && valueProperty.set ? (valueGet = valueProperty.get, 876 valueSet = valueProperty.set, Object.defineProperty(npt, "value", { 877 get: getter, 878 set: setter, 879 configurable: !0 880 })) : "INPUT" !== npt.tagName && (valueGet = function() { 881 return this.textContent; 882 }, valueSet = function(value) { 883 this.textContent = value; 884 }, Object.defineProperty(npt, "value", { 885 get: getter, 886 set: setter, 887 configurable: !0 888 })); 889 } else document.__lookupGetter__ && npt.__lookupGetter__("value") && (valueGet = npt.__lookupGetter__("value"), 890 valueSet = npt.__lookupSetter__("value"), npt.__defineGetter__("value", getter), 891 npt.__defineSetter__("value", setter)); 892 npt.inputmask.__valueGet = valueGet, npt.inputmask._valueGet = function(overruleRTL) { 893 return isRTL && overruleRTL !== !0 ? valueGet.call(this.el).split("").reverse().join("") : valueGet.call(this.el); 894 }, npt.inputmask.__valueSet = valueSet, npt.inputmask._valueSet = function(value, overruleRTL) { 895 valueSet.call(this.el, null === value || void 0 === value ? "" : overruleRTL !== !0 && isRTL ? value.split("").reverse().join("") : value); 896 }, void 0 === valueGet && (valueGet = function() { 897 return this.value; 898 }, valueSet = function(value) { 899 this.value = value; 900 }, patchValhook(npt.type), installNativeValueSetFallback(npt)); 901 } 902 } 903 function handleRemove(input, k, pos, strict) { 904 function generalize() { 905 if (opts.keepStatic) { 906 resetMaskSet(!0); 907 var lastAlt, validInputs = [], positionsClone = $.extend(!0, {}, getMaskSet().validPositions); 908 for (lastAlt = getLastValidPosition(); lastAlt >= 0; lastAlt--) {
909 var validPos = getMaskSet().validPositions[lastAlt]; 910 if (validPos && (null != validPos.match.fn && validInputs.push(validPos.input), 911 delete getMaskSet().validPositions[lastAlt], void 0 !== validPos.alternation && validPos.locator[validPos.alternation] === getTestTemplate(lastAlt).locator[validPos.alternation])) break; 912 } 913 if (lastAlt > -1) for (;validInputs.length > 0; ) { 914 getMaskSet().p = seekNext(getLastValidPosition()); 915 var keypress = new $.Event("keypress"); 916 keypress.which = validInputs.pop().charCodeAt(0), keypressEvent.call(input, keypress, !0, !1, !1, getMaskSet().p); 917 } else getMaskSet().validPositions = $.extend(!0, {}, positionsClone); 918 } 919 } 920 if ((opts.numericInput || isRTL) && (k === Inputmask.keyCode.BACKSPACE ? k = Inputmask.keyCode.DELETE : k === Inputmask.keyCode.DELETE && (k = Inputmask.keyCode.BACKSPACE), 921 isRTL)) { 922 var pend = pos.end; 923 pos.end = pos.begin, pos.begin = pend; 924 } 925 k === Inputmask.keyCode.BACKSPACE && (pos.end - pos.begin < 1 || opts.insertMode === !1) ? (pos.begin = seekPrevious(pos.begin), 926 void 0 === getMaskSet().validPositions[pos.begin] || getMaskSet().validPositions[pos.begin].input !== opts.groupSeparator && getMaskSet().validPositions[pos.begin].input !== opts.radixPoint || pos.begin--) : k === Inputmask.keyCode.DELETE && pos.begin === pos.end && (pos.end = isMask(pos.end) ? pos.end + 1 : seekNext(pos.end) + 1, 927 void 0 === getMaskSet().validPositions[pos.begin] || getMaskSet().validPositions[pos.begin].input !== opts.groupSeparator && getMaskSet().validPositions[pos.begin].input !== opts.radixPoint || pos.end++), 928 stripValidPositions(pos.begin, pos.end, !1, strict), strict !== !0 && generalize(); 929 var lvp = getLastValidPosition(pos.begin); 930 lvp < pos.begin ? (-1 === lvp && resetMaskSet(), getMaskSet().p = seekNext(lvp)) : strict !== !0 && (getMaskSet().p = pos.begin); 931 } 932 function keydownEvent(e) { 933 var input = this, $input = $(input), k = e.keyCode, pos = caret(input); 934 if (k === Inputmask.keyCode.BACKSPACE || k === Inputmask.keyCode.DELETE || iphone && k === Inputmask.keyCode.BACKSPACE_SAFARI || e.ctrlKey && k === Inputmask.keyCode.X && !isInputEventSupported("cut")) e.preventDefault(), 935 handleRemove(input, k, pos), writeBuffer(input, getBuffer(), getMaskSet().p, e, undoValue !== getBuffer().join("")), 936 input.inputmask._valueGet() === getBufferTemplate().join("") ? $input.trigger("cleared") : isComplete(getBuffer()) === !0 && $input.trigger("complete"), 937 opts.showTooltip && (input.title = opts.tooltip || getMaskSet().mask); else if (k === Inputmask.keyCode.END || k === Inputmask.keyCode.PAGE_DOWN) { 938 e.preventDefault(); 939 var caretPos = seekNext(getLastValidPosition()); 940 opts.insertMode || caretPos !== getMaskLength() || e.shiftKey || caretPos--, caret(input, e.shiftKey ? pos.begin : caretPos, caretPos, !0); 941 } else k === Inputmask.keyCode.HOME && !e.shiftKey || k === Inputmask.keyCode.PAGE_UP ? (e.preventDefault(), 942 caret(input, 0, e.shiftKey ? pos.begin : 0, !0)) : (opts.undoOnEscape && k === Inputmask.keyCode.ESCAPE || 90 === k && e.ctrlKey) && e.altKey !== !0 ? (checkVal(input, !0, !1, undoValue.split("")), 943 $input.trigger("click")) : k !== Inputmask.keyCode.INSERT || e.shiftKey || e.ctrlKey ? opts.tabThrough === !0 && k === Inputmask.keyCode.TAB ? (e.shiftKey === !0 ? (null === getTest(pos.begin).fn && (pos.begin = seekNext(pos.begin)), 944 pos.end = seekPrevious(pos.begin, !0), pos.begin = seekPrevious(pos.end, !0)) : (pos.begin = seekNext(pos.begin, !0), 945 pos.end = seekNext(pos.begin, !0), pos.end < getMaskLength() && pos.end--), pos.begin < getMaskLength() && (e.preventDefault(), 946 caret(input, pos.begin, pos.end))) : opts.insertMode !== !1 || e.shiftKey || (k === Inputmask.keyCode.RIGHT ? setTimeout(function() { 947 var caretPos = caret(input); 948 caret(input, caretPos.begin); 949 }, 0) : k === Inputmask.keyCode.LEFT && setTimeout(function() { 950 var caretPos = caret(input); 951 caret(input, isRTL ? caretPos.begin + 1 : caretPos.begin - 1); 952 }, 0)) : (opts.insertMode = !opts.insertMode, caret(input, opts.insertMode || pos.begin !== getMaskLength() ? pos.begin : pos.begin - 1)); 953 opts.onKeyDown.call(this, e, getBuffer(), caret(input).begin, opts), ignorable = -1 !== $.inArray(k, opts.ignorables); 954 } 955 function keypressEvent(e, checkval, writeOut, strict, ndx) { 956 var input = this, $input = $(input), k = e.which || e.charCode || e.keyCode; 957 if (!(checkval === !0 || e.ctrlKey && e.altKey) && (e.ctrlKey || e.metaKey || ignorable)) return k === Inputmask.keyCode.ENTER && undoValue !== getBuffer().join("") && (undoValue = getBuffer().join(""), 958 setTimeout(function() { 959 $input.trigger("change"); 960 }, 0)), !0; 961 if (k) { 962 46 === k && e.shiftKey === !1 && "," === opts.radixPoint && (k = 44); 963 var forwardPosition, pos = checkval ? { 964 begin: ndx, 965 end: ndx 966 } : caret(input), c = String.fromCharCode(k); 967 getMaskSet().writeOutBuffer = !0; 968 var valResult = isValid(pos, c, strict); 969 if (valResult !== !1) { 970 var p = valResult.pos; 971 if (resetMaskSet(!0), void 0 !== valResult.caret) forwardPosition = valResult.caret; else { 972 var vps = getMaskSet().validPositions; 973 forwardPosition = !opts.keepStatic && (void 0 !== vps[p + 1] && getTests(p + 1, vps[p].locator.slice(), p).length > 1 || void 0 !== vps[p].alternation) ? p + 1 : seekNext(p); 974 } 975 getMaskSet().p = forwardPosition; 976 } 977 if (writeOut !== !1) { 978 var self = this; 979 if (setTimeout(function() { 980 opts.onKeyValidation.call(self, k, valResult, opts); 981 }, 0), getMaskSet().writeOutBuffer && valResult !== !1) { 982 var buffer = getBuffer(); 983 writeBuffer(input, buffer, opts.numericInput && void 0 === valResult.caret ? seekPrevious(forwardPosition) : forwardPosition, e, checkval !== !0), 984 checkval !== !0 && setTimeout(function() { 985 isComplete(buffer) === !0 && $input.trigger("complete"); 986 }, 0); 987 } 988 } 989 if (opts.showTooltip && (input.title = opts.tooltip || getMaskSet().mask), e.preventDefault(), 990 checkval) return valResult.forwardPosition = forwardPosition, valResult; 991 } 992 } 993 function pasteEvent(e) { 994 var tempValue, input = this, ev = e.originalEvent || e, $input = $(input), inputValue = input.inputmask._valueGet(!0), caretPos = caret(input); 995 isRTL && (tempValue = caretPos.end, caretPos.end = caretPos.begin, caretPos.begin = tempValue); 996 var valueBeforeCaret = inputValue.substr(0, caretPos.begin), valueAfterCaret = inputValue.substr(caretPos.end, inputValue.length); 997 valueBeforeCaret === (isRTL ? getBufferTemplate().reverse() : getBufferTemplate()).slice(0, caretPos.begin).join("") && (valueBeforeCaret = ""), 998 valueAfterCaret === (isRTL ? getBufferTemplate().reverse() : getBufferTemplate()).slice(caretPos.end).join("") && (valueAfterCaret = ""), 999 isRTL && (tempValue = valueBeforeCaret, valueBeforeCaret = valueAfterCaret, valueAfterCaret = tempValue), 1000 window.clipboardData && window.clipboardData.getData ? inputValue = valueBeforeCaret + window.clipboardData.getData("Text") + valueAfterCaret : ev.clipboardData && ev.clipboardData.getData && (inputValue = valueBeforeCaret + ev.clipboardData.getData("text/plain") + valueAfterCaret); 1001 var pasteValue = inputValue; 1002 if ($.isFunction(opts.onBeforePaste)) { 1003 if (pasteValue = opts.onBeforePaste(inputValue, opts), pasteValue === !1) return e.preventDefault(); 1004 pasteValue || (pasteValue = inputValue); 1005 } 1006 return checkVal(input, !1, !1, isRTL ? pasteValue.split("").reverse() : pasteValue.toString().split("")), 1007 writeBuffer(input, getBuffer(), seekNext(getLastValidPosition()), e, !0), isComplete(getBuffer()) === !0 && $input.trigger("complete"), 1008 e.preventDefault(); 1009 } 1010 function inputFallBackEvent(e) { 1011 var input = this, inputValue = input.inputmask._valueGet(); 1012 if (getBuffer().join("") !== inputValue) { 1013 var caretPos = caret(input); 1014 if (inputValue = inputValue.replace(new RegExp("(" + Inputmask.escapeRegex(getBufferTemplate().join("")) + ")*"), ""), 1015 iemobile) { 1016 var inputChar = inputValue.replace(getBuffer().join(""), ""); 1017 if (1 === inputChar.length) { 1018 var keypress = new $.Event("keypress"); 1019 return keypress.which = inputChar.charCodeAt(0), keypressEvent.call(input, keypress, !0, !0, !1, getMaskSet().validPositions[caretPos.begin - 1] ? caretPos.begin : caretPos.begin - 1), 1020 !1; 1021 } 1022 } 1023 if (caretPos.begin > inputValue.length && (caret(input, inputValue.length), caretPos = caret(input)), 1024 getBuffer().length - inputValue.length !== 1 || inputValue.charAt(caretPos.begin) === getBuffer()[caretPos.begin] || inputValue.charAt(caretPos.begin + 1) === getBuffer()[caretPos.begin] || isMask(caretPos.begin)) { 1025 for (var lvp = getLastValidPosition() + 1, bufferTemplate = getBuffer().slice(lvp).join(""); null === inputValue.match(Inputmask.escapeRegex(bufferTemplate) + "$"); ) bufferTemplate = bufferTemplate.slice(1); 1026 inputValue = inputValue.replace(bufferTemplate, ""), inputValue = inputValue.split(""), 1027 checkVal(input, !0, !1, inputValue), isComplete(getBuffer()) === !0 && $(input).trigger("complete"); 1028 } else e.keyCode = Inputmask.keyCode.BACKSPACE, keydownEvent.call(input, e); 1029 e.preventDefault(); 1030 } 1031 } 1032 function setValueEvent(e) { 1033 var input = this, value = input.inputmask._valueGet(); 1034 checkVal(input, !0, !1, ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(value, opts) || value : value).split("")), 1035 undoValue = getBuffer().join(""), (opts.clearMaskOnLostFocus || opts.clearIncomplete) && input.inputmask._valueGet() === getBufferTemplate().join("") && input.inputmask._valueSet(""); 1036 } 1037 function focusEvent(e) { 1038 var input = this, nptValue = input.inputmask._valueGet(); 1039 opts.showMaskOnFocus && (!opts.showMaskOnHover || opts.showMaskOnHover && "" === nptValue) ? input.inputmask._valueGet() !== getBuffer().join("") && writeBuffer(input, getBuffer(), seekNext(getLastValidPosition())) : mouseEnter === !1 && caret(input, seekNext(getLastValidPosition())), 1040 opts.positionCaretOnTab === !0 && setTimeout(function() { 1041 caret(input, seekNext(getLastValidPosition())); 1042 }, 0), undoValue = getBuffer().join(""); 1043 } 1044 function mouseleaveEvent(e) { 1045 var input = this; 1046 if (mouseEnter = !1, opts.clearMaskOnLostFocus && document.activeElement !== input) { 1047 var buffer = getBuffer().slice(), nptValue = input.inputmask._valueGet(); 1048 nptValue !== input.getAttribute("placeholder") && "" !== nptValue && (-1 === getLastValidPosition() && nptValue === getBufferTemplate().join("") ? buffer = [] : clearOptionalTail(buffer), 1049 writeBuffer(input, buffer)); 1050 } 1051 } 1052 function clickEvent(e) { 1053 function doRadixFocus(clickPos) { 1054 if (opts.radixFocus && "" !== opts.radixPoint) { 1055 var vps = getMaskSet().validPositions; 1056 if (void 0 === vps[clickPos] || vps[clickPos].input === getPlaceholder(clickPos)) { 1057 if (clickPos < seekNext(-1)) return !0; 1058 var radixPos = $.inArray(opts.radixPoint, getBuffer()); 1059 if (-1 !== radixPos) { 1060 for (var vp in vps) if (vp > radixPos && vps[vp].input !== getPlaceholder(vp)) return !1; 1061 return !0; 1062 } 1063 } 1064 } 1065 return !1; 1066 } 1067 var input = this; 1068 setTimeout(function() { 1069 if (document.activeElement === input) { 1070 var selectedCaret = caret(input); 1071 if (selectedCaret.begin === selectedCaret.end) if (doRadixFocus(selectedCaret.begin)) caret(input, opts.numericInput ? seekNext($.inArray(opts.radixPoint, getBuffer())) : $.inArray(opts.radixPoint, getBuffer())); else { 1072 var clickPosition = selectedCaret.begin, lvclickPosition = getLastValidPosition(clickPosition, !0), lastPosition = seekNext(lvclickPosition); 1073 if (lastPosition > clickPosition) caret(input, isMask(clickPosition) || isMask(clickPosition - 1) ? clickPosition : seekNext(clickPosition)); else { 1074 var placeholder = getPlaceholder(lastPosition); 1075 ("" !== placeholder && getBuffer()[lastPosition] !== placeholder || !isMask(lastPosition, !0) && getTest(lastPosition).def === placeholder) && (lastPosition = seekNext(lastPosition)), 1076 caret(input, lastPosition); 1077 } 1078 } 1079 } 1080 }, 0); 1081 } 1082 function dblclickEvent(e) { 1083 var input = this; 1084 setTimeout(function() { 1085 caret(input, 0, seekNext(getLastValidPosition())); 1086 }, 0); 1087 } 1088 function cutEvent(e) { 1089 var input = this, $input = $(input), pos = caret(input), ev = e.originalEvent || e, clipboardData = window.clipboardData || ev.clipboardData, clipData = isRTL ? getBuffer().slice(pos.end, pos.begin) : getBuffer().slice(pos.begin, pos.end); 1090 clipboardData.setData("text", isRTL ? clipData.reverse().join("") : clip
1090Data.join("")), 1091 document.execCommand && document.execCommand("copy"), handleRemove(input, Inputmask.keyCode.DELETE, pos), 1092 writeBuffer(input, getBuffer(), getMaskSet().p, e, undoValue !== getBuffer().join("")), 1093 input.inputmask._valueGet() === getBufferTemplate().join("") && $input.trigger("cleared"), 1094 opts.showTooltip && (input.title = opts.tooltip || getMaskSet().mask); 1095 } 1096 function blurEvent(e) { 1097 var $input = $(this), input = this; 1098 if (input.inputmask) { 1099 var nptValue = input.inputmask._valueGet(), buffer = getBuffer().slice(); 1100 undoValue !== buffer.join("") && setTimeout(function() { 1101 $input.trigger("change"), undoValue = buffer.join(""); 1102 }, 0), "" !== nptValue && (opts.clearMaskOnLostFocus && (-1 === getLastValidPosition() && nptValue === getBufferTemplate().join("") ? buffer = [] : clearOptionalTail(buffer)), 1103 isComplete(buffer) === !1 && (setTimeout(function() { 1104 $input.trigger("incomplete"); 1105 }, 0), opts.clearIncomplete && (resetMaskSet(), buffer = opts.clearMaskOnLostFocus ? [] : getBufferTemplate().slice())), 1106 writeBuffer(input, buffer, void 0, e)); 1107 } 1108 } 1109 function mouseenterEvent(e) { 1110 var input = this; 1111 mouseEnter = !0, document.activeElement !== input && opts.showMaskOnHover && input.inputmask._valueGet() !== getBuffer().join("") && writeBuffer(input, getBuffer()); 1112 } 1113 function submitEvent(e) { 1114 undoValue !== getBuffer().join("") && $el.trigger("change"), opts.clearMaskOnLostFocus && -1 === getLastValidPosition() && el.inputmask._valueGet && el.inputmask._valueGet() === getBufferTemplate().join("") && el.inputmask._valueSet(""), 1115 opts.removeMaskOnSubmit && (el.inputmask._valueSet(el.inputmask.unmaskedvalue(), !0), 1116 setTimeout(function() { 1117 writeBuffer(el, getBuffer()); 1118 }, 0)); 1119 } 1120 function resetEvent(e) { 1121 setTimeout(function() { 1122 $el.trigger("setvalue"); 1123 }, 0); 1124 } 1125 function mask(elem) { 1126 if (el = elem, $el = $(el), opts.showTooltip && (el.title = opts.tooltip || getMaskSet().mask), 1127 ("rtl" === el.dir || opts.rightAlign) && (el.style.textAlign = "right"), ("rtl" === el.dir || opts.numericInput) && (el.dir = "ltr", 1128 el.removeAttribute("dir"), el.inputmask.isRTL = !0, isRTL = !0), EventRuler.off(el), 1129 patchValueProperty(el), isElementTypeSupported(el, opts) && (EventRuler.on(el, "submit", submitEvent), 1130 EventRuler.on(el, "reset", resetEvent), EventRuler.on(el, "mouseenter", mouseenterEvent), 1131 EventRuler.on(el, "blur", blurEvent), EventRuler.on(el, "focus", focusEvent), EventRuler.on(el, "mouseleave", mouseleaveEvent), 1132 EventRuler.on(el, "click", clickEvent), EventRuler.on(el, "dblclick", dblclickEvent), 1133 EventRuler.on(el, "paste", pasteEvent), EventRuler.on(el, "dragdrop", pasteEvent), 1134 EventRuler.on(el, "drop", pasteEvent), EventRuler.on(el, "cut", cutEvent), EventRuler.on(el, "complete", opts.oncomplete), 1135 EventRuler.on(el, "incomplete", opts.onincomplete), EventRuler.on(el, "cleared", opts.oncleared), 1136 EventRuler.on(el, "keydown", keydownEvent), EventRuler.on(el, "keypress", keypressEvent), 1137 EventRuler.on(el, "input", inputFallBackEvent)), EventRuler.on(el, "setvalue", setValueEvent), 1138 "" !== el.inputmask._valueGet() || opts.clearMaskOnLostFocus === !1 || document.activeElement === el) { 1139 var initialValue = $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(el.inputmask._valueGet(), opts) || el.inputmask._valueGet() : el.inputmask._valueGet(); 1140 checkVal(el, !0, !1, initialValue.split("")); 1141 var buffer = getBuffer().slice(); 1142 undoValue = buffer.join(""), isComplete(buffer) === !1 && opts.clearIncomplete && resetMaskSet(), 1143 opts.clearMaskOnLostFocus && document.activeElement !== el && (-1 === getLastValidPosition() ? buffer = [] : clearOptionalTail(buffer)), 1144 writeBuffer(el, buffer), document.activeElement === el && caret(el, seekNext(getLastValidPosition())); 1145 } 1146 }
1147 var undoValue, el, $el, maxLength, valueBuffer, isRTL = !1, skipKeyPressEvent = !1, skipInputEvent = !1, ignorable = !1, mouseEnter = !0, EventRuler = { 1148 on: function(input, eventName, eventHandler) { 1149 var ev = function(e) { 1150 if (void 0 === this.inputmask && "FORM" !== this.nodeName) { 1151 var imOpts = $.data(this, "_inputmask_opts"); 1152 imOpts ? new Inputmask(imOpts).mask(this) : EventRuler.off(this); 1153 } else { 1154 if ("setvalue" === e.type || !(this.disabled || this.readOnly && !("keydown" === e.type && e.ctrlKey && 67 === e.keyCode || opts.tabThrough === !1 && e.keyCode === Inputmask.keyCode.TAB))) { 1155 switch (e.type) { 1156 case "input": 1157 if (skipInputEvent === !0) return skipInputEvent = !1, e.preventDefault(); 1158 break; 1159 1160 case "keydown": 1161 skipKeyPressEvent = !1, skipInputEvent = !1; 1162 break; 1163 1164 case "keypress": 1165 if (skipKeyPressEvent === !0) return e.preventDefault(); 1166 skipKeyPressEvent = !0; 1167 break; 1168 1169 case "click": 1170 if (iemobile) { 1171 var that = this; 1172 return setTimeout(function() { 1173 eventHandler.apply(that, arguments); 1174 }, 0), !1; 1175 } 1176 } 1177 var returnVal = eventHandler.apply(this, arguments); 1178 return returnVal === !1 && (e.preventDefault(), e.stopPropagation()), returnVal; 1179 } 1180 e.preventDefault(); 1181 } 1182 }; 1183 input.inputmask.events[eventName] = input.inputmask.events[eventName] || [], input.inputmask.events[eventName].push(ev), 1184 -1 !== $.inArray(eventName, [ "submit", "reset" ]) ? null != input.form && $(input.form).bind(eventName, ev) : $(input).bind(eventName, ev); 1185 }, 1186 off: function(input, event) { 1187 if (input.inputmask && input.inputmask.events) { 1188 var events; 1189 event ? (events = [], events[event] = input.inputmask.events[event]) : events = input.inputmask.events, 1190 $.each(events, function(eventName, evArr) { 1191 for (;evArr.length > 0; ) { 1192 var ev = evArr.pop(); 1193 -1 !== $.inArray(eventName, [ "submit", "reset" ]) ? null != input.form && $(input.form).unbind(eventName, ev) : $(input).unbind(eventName, ev); 1194 } 1195 delete input.inputmask.events[eventName]; 1196 }); 1197 } 1198 } 1199 }; 1200 if (void 0 !== actionObj) switch (actionObj.action) { 1201 case "isComplete": 1202 return el = actionObj.el, isComplete(getBuffer()); 1203 1204 case "unmaskedvalue": 1205 return el = actionObj.el, void 0 !== el && void 0 !== el.inputmask ? (maskset = el.inputmask.maskset, 1206 opts = el.inputmask.opts, isRTL = el.inputmask.isRTL) : (valueBuffer = actionObj.value, 1207 opts.numericInput && (isRTL = !0), valueBuffer = ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(valueBuffer, opts) || valueBuffer : valueBuffer).split(""), 1208 checkVal(void 0, !1, !1, isRTL ? valueBuffer.reverse() : valueBuffer), $.isFunction(opts.onBeforeWrite) && opts.onBeforeWrite(void 0, getBuffer(), 0, opts)), 1209 unmaskedvalue(el); 1210 1211 case "mask": 1212 el = actionObj.el, maskset = el.inputmask.maskset, opts = el.inputmask.opts, isRTL = el.inputmask.isRTL, 1213 undoValue = getBuffer().join(""), mask(el); 1214 break; 1215 1216 case "format": 1217 return opts.numericInput && (isRTL = !0), valueBuffer = ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(actionObj.value, opts) || actionObj.value : actionObj.value).split(""), 1218 checkVal(void 0, !1, !1, isRTL ? valueBuffer.reverse() : valueBuffer), $.isFunction(opts.onBeforeWrite) && opts.onBeforeWrite(void 0, getBuffer(), 0, opts), 1219 actionObj.metadata ? { 1220 value: isRTL ? getBuffer().slice().reverse().join("") : getBuffer().join(""), 1221 metadata: maskScope({ 1222 action: "getmetadata" 1223 }, maskset, opts) 1224 } : isRTL ? getBuffer().slice().reverse().join("") : getBuffer().join(""); 1225 1226 case "isValid": 1227 opts.numericInput && (isRTL = !0), actionObj.value ? (valueBuffer = actionObj.value.split(""), 1228 checkVal(void 0, !1, !0, isRTL ? valueBuffer.reverse() : valueBuffer)) : actionObj.value = getBuffer().join(""); 1229 for (var buffer = getBuffer(), rl = determineLastRequiredPosition(), lmib = buffer.length - 1; lmib > rl && !isMask(lmib); lmib--) ; 1230 return buffer.splice(rl, lmib + 1 - rl), isComplete(buffer) && actionObj.value === getBuffer().join(""); 1231 1232 case "getemptymask": 1233 return getBufferTemplate().join(""); 1234 1235 case "remove": 1236 el = actionObj.el, $el = $(el), maskset = el.inputmask.maskset, opts = el.inputmask.opts, 1237 el.inputmask._valueSet(unmaskedvalue(el)), EventRuler.off(el); 1238 var valueProperty;
1239 Object.getOwnPropertyDescriptor && Object.getPrototypeOf ? (valueProperty = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(el), "value"), 1240 valueProperty && el.inputmask.__valueGet && Object.defineProperty(el, "value", { 1241 get: el.inputmask.__valueGet, 1242 set: el.inputmask.__valueSet, 1243 configurable: !0 1244 })) : document.__lookupGetter__ && el.__lookupGetter__("value") && el.inputmask.__valueGet && (el.__defineGetter__("value", el.inputmask.__valueGet), 1245 el.__defineSetter__("value", el.inputmask.__valueSet)), el.inputmask = void 0; 1246 break; 1247 1248 case "getmetadata": 1249 if ($.isArray(maskset.metadata)) { 1250 for (var alternation, lvp = getLastValidPosition(void 0, !0), firstAlt = lvp; firstAlt >= 0; firstAlt--) if (getMaskSet().validPositions[firstAlt] && void 0 !== getMaskSet().validPositions[firstAlt].alternation) { 1251 alternation = getMaskSet().validPositions[firstAlt].alternation; 1252 break; 1253 } 1254 return void 0 !== alternation ? maskset.metadata[getMaskSet().validPositions[firstAlt].locator[alternation]] : []; 1255 } 1256 return maskset.metadata; 1257 } 1258 } 1259 Inputmask.prototype = { 1260 defaults: { 1261 placeholder: "_", 1262 optionalmarker: { 1263 start: "[", 1264 end: "]" 1265 }, 1266 quantifiermarker: { 1267 start: "{", 1268 end: "}" 1269 }, 1270 groupmarker: { 1271 start: "(", 1272 end: ")" 1273 }, 1274 alternatormarker: "|", 1275 escapeChar: "\\", 1276 mask: null, 1277 oncomplete: $.noop, 1278 onincomplete: $.noop, 1279 oncleared: $.noop, 1280 repeat: 0, 1281 greedy: !0, 1282 autoUnmask: !1, 1283 removeMaskOnSubmit: !1, 1284 clearMaskOnLostFocus: !0, 1285 insertMode: !0, 1286 clearIncomplete: !1, 1287 aliases: {}, 1288 alias: null, 1289 onKeyDown: $.noop, 1290 onBeforeMask: null, 1291 onBeforePaste: function(pastedValue, opts) { 1292 return $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(pastedValue, opts) : pastedValue; 1293 }, 1294 onBeforeWrite: null, 1295 onUnMask: null, 1296 showMaskOnFocus: !0, 1297 showMaskOnHover: !0, 1298 onKeyValidation: $.noop, 1299 skipOptionalPartCharacter: " ", 1300 showTooltip: !1, 1301 tooltip: void 0, 1302 numericInput: !1, 1303 rightAlign: !1, 1304 undoOnEscape: !0, 1305 radixPoint: "", 1306 radixPointDefinitionSymbol: void 0, 1307 groupSeparator: "", 1308 radixFocus: !1, 1309 nojumps: !1, 1310 nojumpsThreshold: 0, 1311 keepStatic: null, 1312 positionCaretOnTab: !1, 1313 tabThrough: !1, 1314 supportsInputType: [ "text", "tel", "password" ], 1315 definitions: { 1316 "9": { 1317 validator: "[0-9]", 1318 cardinality: 1, 1319 definitionSymbol: "*" 1320 }, 1321 a: { 1322 validator: "[A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]", 1323 cardinality: 1, 1324 definitionSymbol: "*" 1325 }, 1326 "*": { 1327 validator: "[0-9A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]", 1328 cardinality: 1 1329 } 1330 }, 1331 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 ], 1332 isComplete: null, 1333 canClearPosition: $.noop, 1334 postValidation: null, 1335 staticDefinitionSymbol: void 0, 1336 jitMasking: !1, 1337 nullable: !0 1338 }, 1339 masksCache: {}, 1340 mask: function(elems) { 1341 var that = this; 1342 return "string" == typeof elems && (elems = document.getElementById(elems) || document.querySelectorAll(elems)), 1343 elems = elems.nodeName ? [ elems ] : elems, $.each(elems, function(ndx, el) { 1344 var scopedOpts = $.extend(!0, {}, that.opts); 1345 importAttributeOptions(el, scopedOpts, $.extend(!0, {}, that.userOptions)); 1346 var maskset = generateMaskSet(scopedOpts, that.noMasksCache); 1347 void 0 !== maskset && (void 0 !== el.inputmask && el.inputmask.remove(), el.inputmask = new Inputmask(), 1348 el.inputmask.opts = scopedOpts, el.inputmask.noMasksCache = that.noMasksCache, el.
1348inputmask.userOptions = $.extend(!0, {}, that.userOptions), 1349 el.inputmask.el = el, el.inputmask.maskset = maskset, el.inputmask.isRTL = !1, $.data(el, "_inputmask_opts", scopedOpts), 1350 maskScope({ 1351 action: "mask", 1352 el: el 1353 })); 1354 }), elems && elems[0] ? elems[0].inputmask || this : this; 1355 }, 1356 option: function(options, noremask) { 1357 return "string" == typeof options ? this.opts[options] : "object" == typeof options ? ($.extend(this.userOptions, options), 1358 this.el && noremask !== !0 && this.mask(this.el), this) : void 0; 1359 }, 1360 unmaskedvalue: function(value) { 1361 return maskScope({ 1362 action: "unmaskedvalue", 1363 el: this.el, 1364 value: value 1365 }, this.el && this.el.inputmask ? this.el.inputmask.maskset : generateMaskSet(this.opts, this.noMasksCache), this.opts); 1366 }, 1367 remove: function() { 1368 return this.el ? (maskScope({ 1369 action: "remove", 1370 el: this.el 1371 }), this.el.inputmask = void 0, this.el) : void 0; 1372 }, 1373 getemptymask: function() { 1374 return maskScope({ 1375 action: "getemptymask" 1376 }, this.maskset || generateMaskSet(this.opts, this.noMasksCache), this.opts); 1377 }, 1378 hasMaskedValue: function() { 1379 return !this.opts.autoUnmask; 1380 }, 1381 isComplete: function() { 1382 return maskScope({ 1383 action: "isComplete", 1384 el: this.el 1385 }, this.maskset || generateMaskSet(this.opts, this.noMasksCache), this.opts); 1386 }, 1387 getmetadata: function() { 1388 return maskScope({ 1389 action: "getmetadata" 1390 }, this.maskset || generateMaskSet(this.opts, this.noMasksCache), this.opts); 1391 }, 1392 isValid: function(value) { 1393 return maskScope({ 1394 action: "isValid", 1395 value: value 1396 }, this.maskset || generateMaskSet(this.opts, this.noMasksCache), this.opts); 1397 }, 1398 format: function(value, metadata) { 1399 return maskScope({ 1400 action: "format", 1401 value: value, 1402 metadata: metadata 1403 }, this.maskset || generateMaskSet(this.opts, this.noMasksCache), this.opts); 1404 } 1405 }, Inputmask.extendDefaults = function(options) { 1406 $.extend(!0, Inputmask.prototype.defaults, options); 1407 }, Inputmask.extendDefinitions = function(definition) { 1408 $.extend(!0, Inputmask.prototype.defaults.definitions, definition); 1409 }, Inputmask.extendAliases = function(alias) { 1410 $.extend(!0, Inputmask.prototype.defaults.aliases, alias); 1411 }, Inputmask.format = function(value, options, metadata) { 1412 return Inputmask(options).format(value, metadata); 1413 }, Inputmask.unmask = function(value, options) { 1414 return Inputmask(options).unmaskedvalue(value); 1415 }, Inputmask.isValid = function(value, options) { 1416 return Inputmask(options).isValid(value); 1417 }, Inputmask.remove = function(elems) { 1418 $.each(elems, function(ndx, el) { 1419 el.inputmask && el.inputmask.remove(); 1420 }); 1421 }, Inputmask.escapeRegex = function(str) { 1422 var specials = [ "/", ".", "*", "+", "?", "|", "(", ")", "[", "]", "{", "}", "\\", "$", "^" ]; 1423 return str.replace(new RegExp("(\\" + specials.join("|\\") + ")", "gim"), "\\$1"); 1424 }, Inputmask.keyCode = { 1425 ALT: 18, 1426 BACKSPACE: 8, 1427 BACKSPACE_SAFARI: 127, 1428 CAPS_LOCK: 20, 1429 COMMA: 188, 1430 COMMAND: 91, 1431 COMMAND_LEFT: 91, 1432 COMMAND_RIGHT: 93, 1433 CONTROL: 17, 1434 DELETE: 46, 1435 DOWN: 40, 1436 END: 35, 1437 ENTER: 13, 1438 ESCAPE: 27, 1439 HOME: 36, 1440 INSERT: 45, 1441 LEFT: 37, 1442 MENU: 93, 1443 NUMPAD_ADD: 107, 1444 NUMPAD_DECIMAL: 110, 1445 NUMPAD_DIVIDE: 111, 1446 NUMPAD_ENTER: 108, 1447 NUMPAD_MULTIPLY: 106, 1448 NUMPAD_SUBTRACT: 109, 1449 PAGE_DOWN: 34, 1450 PAGE_UP: 33, 1451 PERIOD: 190, 1452 RIGHT: 39, 1453 SHIFT: 16, 1454 SPACE: 32, 1455 TAB: 9, 1456 UP: 38, 1457 WINDOWS: 91, 1458 X: 88 1459 }; 1460 var ua = navigator.userAgent, mobile = /mobile/i.test(ua), iemobile = /iemobile/i.test(ua), iphone = /iphone/i.test(ua) && !iemobile; 1461 /android.*safari.*/i.test(ua) && !iemobile; 1462 return window.Inputmask = Inputmask, Inputmask; 1463}(gKweri), function($, Inputmask) { 1464 return void 0 === $.fn.inputmask && ($.fn.inputmask = function(fn, options) { 1465 var nptmask, input = this[0]; 1466 if (void 0 === options && (options = {}), "string" == typeof fn) switch (fn) { 1467 case "unmaskedvalue": 1468 return input && input.inputmask ? input.inputmask.unmaskedvalue() : $(input).val(); 1469 1470 case "remove": 1471 return this.each(function() { 1472 this.inputmask && this.inputmask.remove(); 1473 }); 1474 1475 case "getemptymask": 1476 return input && input.inputmask ? input.inputmask.getemptymask() : ""; 1477 1478 case "hasMaskedValue": 1479 return input && input.inputmask ? input.inputmask.hasMaskedValue() : !1; 1480 1481 case "isComplete": 1482 return input && input.inputmask ? input.inputmask.isComplete() : !0; 1483 1484 case "getmetadata": 1485 return input && input.inputmask ? input.inputmask.getmetadata() : void 0; 1486 1487 case "setvalue": 1488 $(input).val(options), input && void 0 !== input.inputmask && $(input).triggerHandler("setvalue"); 1489 break; 1490 1491 case "option": 1492 if ("string" != typeof options) return this.each(function() { 1493 return void 0 !== this.inputmask ? this.inputmask.option(options) : void 0; 1494 }); 1495 if (input && void 0 !== input.inputmask) return input.inputmask.option(options); 1496 break; 1497 1498 default: 1499 return options.alias = fn, nptmask = new Inputmask(options), this.each(function() { 1500 nptmask.mask(this); 1501 }); 1502 } else { 1503 if ("object" == typeof fn) return nptmask = new Inputmask(fn), void 0 === fn.mask && void 0 === fn.alias ? this.each(function() { 1504 return void 0 !== this.inputmask ? this.inputmask.option(fn) : void nptmask.mask(this); 1505 }) : this.each(function() { 1506 nptmask.mask(this); 1507 }); 1508 if (void 0 === fn) return this.each(function() { 1509 nptmask = new Inputmask(options), nptmask.mask(this); 1510 }); 1511 } 1512 }), $.fn.inputmask; 1513}(gKweri, Inputmask), function($, Inputmask) { 1514 return Inputmask.extendDefinitions({ 1515 h: { 1516 validator: "[01][0-9]|2[0-3]", 1517 cardinality: 2, 1518 prevalidator: [ { 1519 validator: "[0-2]", 1520 cardinality: 1 1521 } ] 1522 }, 1523 s: { 1524 validator: "[0-5][0-9]", 1525 cardinality: 2, 1526 prevalidator: [ { 1527 validator: "[0-5]", 1528 cardinality: 1 1529 } ] 1530 }, 1531 d: { 1532 validator: "0[1-9]|[12][0-9]|3[01]", 1533 cardinality: 2, 1534 prevalidator: [ { 1535 validator: "[0-3]", 1536 cardinality: 1 1537 } ] 1538 }, 1539 m: { 1540 validator: "0[1-9]|1[012]", 1541 cardinality: 2, 1542 prevalidator: [ { 1543 validator: "[01]", 1544 cardinality: 1 1545 } ] 1546 }, 1547 y: { 1548 validator: "(19|20)\\d{2}", 1549 cardinality: 4, 1550 prevalidator: [ { 1551 validator: "[12]", 1552 cardinality: 1 1553 }, { 1554 validator: "(19|20)", 1555 cardinality: 2 1556 }, { 1557 validator: "(19|20)\\d", 1558 cardinality: 3 1559 } ] 1560 } 1561 }), Inputmask.extendAliases({ 1562 "dd/mm/yyyy": { 1563 mask: "1/2/y", 1564 placeholder: "dd/mm/yyyy", 1565 regex: { 1566 val1pre: new RegExp("[0-3]"),
1567 val1: new RegExp("0[1-9]|[12][0-9]|3[01]"), 1568 val2pre: function(separator) { 1569 var escapedSeparator = Inputmask.escapeRegex.call(this, separator); 1570 return new RegExp("((0[1-9]|[12][0-9]|3[01])" + escapedSeparator + "[01])"); 1571 }, 1572 val2: function(separator) { 1573 var escapedSeparator = Inputmask.escapeRegex.call(this, separator); 1574 return new RegExp("((0[1-9]|[12][0-9])" + escapedSeparator + "(0[1-9]|1[012]))|(30" + escapedSeparator + "(0[13-9]|1[012]))|(31" + escapedSeparator + "(0[13578]|1[02]))"); 1575 } 1576 }, 1577 leapday: "29/02/", 1578 separator: "/", 1579 yearrange: { 1580 minyear: 1900, 1581 maxyear: 2099 1582 }, 1583 isInYearRange: function(chrs, minyear, maxyear) { 1584 if (isNaN(chrs)) return !1; 1585 var enteredyear = parseInt(chrs.concat(minyear.toString().slice(chrs.length))), enteredyear2 = parseInt(chrs.concat(maxyear.toString().slice(chrs.length))); 1586 return (isNaN(enteredyear) ? !1 : enteredyear >= minyear && maxyear >= enteredyear) || (isNaN(enteredyear2) ? !1 : enteredyear2 >= minyear && maxyear >= enteredyear2); 1587 }, 1588 determinebaseyear: function(minyear, maxyear, hint) { 1589 var currentyear = new Date().getFullYear(); 1590 if (minyear > currentyear) return minyear; 1591 if (currentyear > maxyear) { 1592 for (var maxYearPrefix = maxyear.toString().slice(0, 2), maxYearPostfix = maxyear.toString().slice(2, 4); maxYearPrefix + hint > maxyear; ) maxYearPrefix--; 1593 var maxxYear = maxYearPrefix + maxYearPostfix; 1594 return minyear > maxxYear ? minyear : maxxYear; 1595 } 1596 if (currentyear >= minyear && maxyear >= currentyear) { 1597 for (var currentYearPrefix = currentyear.toString().slice(0, 2); currentYearPrefix + hint > maxyear; ) currentYearPrefix--; 1598 var currentYearAndHint = currentYearPrefix + hint; 1599 return minyear > currentYearAndHint ? minyear : currentYearAndHint; 1600 } 1601 return currentyear; 1602 }, 1603 onKeyDown: function(e, buffer, caretPos, opts) { 1604 var $input = $(this); 1605 if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) { 1606 var today = new Date(); 1607 $input.val(today.getDate().toString() + (today.getMonth() + 1).toString() + today.getFullYear().toString()), 1608 $input.trigger("setvalue"); 1609 } 1610 }, 1611 getFrontValue: function(mask, buffer, opts) { 1612 for (var start = 0, length = 0, i = 0; i < mask.length && "2" !== mask.charAt(i); i++) { 1613 var definition = opts.definitions[mask.charAt(i)]; 1614 definition ? (start += length, length = definition.cardinality) : length++; 1615 } 1616 return buffer.join("").substr(start, length); 1617 }, 1618 definitions: { 1619 "1": { 1620 validator: function(chrs, maskset, pos, strict, opts) { 1621 var isValid = opts.regex.val1.test(chrs); 1622 return strict || isValid || chrs.charAt(1) !== opts.separator && -1 === "-./".indexOf(chrs.charAt(1)) || !(isValid = opts.regex.val1.test("0" + chrs.charAt(0))) ? isValid : (maskset.buffer[pos - 1] = "0", 1623 { 1624 refreshFromBuffer: { 1625 start: pos - 1, 1626 end: pos 1627 }, 1628 pos: pos, 1629 c: chrs.charAt(0) 1630 }); 1631 }, 1632 cardinality: 2, 1633 prevalidator: [ { 1634 validator: function(chrs, maskset, pos, strict, opts) { 1635 var pchrs = chrs; 1636 isNaN(maskset.buffer[pos + 1]) || (pchrs += maskset.buffer[pos + 1]); 1637 var isValid = 1 === pchrs.length ? opts.regex.val1pre.test(pchrs) : opts.regex.val1.test(pchrs); 1638 if (!strict && !isValid) { 1639 if (isValid = opts.regex.val1.test(chrs + "0")) return maskset.buffer[pos] = chrs, 1640 maskset.buffer[++pos] = "0", { 1641 pos: pos, 1642 c: "0" 1643 }; 1644 if (isValid = opts.regex.val1.test("0" + chrs)) return maskset.buffer[pos] = "0", 1645 pos++, { 1646 pos: pos 1647 }; 1648 } 1649 return isValid; 1650 }, 1651 cardinality: 1 1652 } ] 1653 }, 1654 "2": { 1655 validator: function(chrs, maskset, pos, strict, opts) { 1656 var frontValue = opts.getFrontValue(maskset.mask, maskset.buffer, opts); 1657 -1 !== frontValue.indexOf(opts.placeholder[0]) && (frontValue = "01" + opts.separator); 1658 var isValid = opts.regex.val2(opts.separator).test(frontValue + chrs); 1659 if (!strict && !isValid && (chrs.charAt(1) === opts.separator || -1 !== "-./".indexOf(chrs.charAt(1))) && (isValid = opts.regex.val2(opts.separator).test(frontValue + "0" + chrs.charAt(0)))) return maskset.buffer[pos - 1] = "0", 1660 { 1661 refreshFromBuffer: { 1662 start: pos - 1, 1663 end: pos 1664 }, 1665 pos: pos, 1666 c: chrs.charAt(0) 1667 }; 1668 if (opts.mask.indexOf("2") === opts.mask.length - 1 && isValid) { 1669 var dayMonthValue = maskset.buffer.join("").substr(4, 4) + chrs; 1670 if (dayMonthValue !== opts.leapday) return !0; 1671 var year = parseInt(maskset.buffer.join("").substr(0, 4), 10); 1672 return year % 4 === 0 ? year % 100 === 0 ? year % 400 === 0 ? !0 : !1 : !0 : !1; 1673 } 1674 return isValid; 1675 }, 1676 cardinality: 2, 1677 prevalidator: [ { 1678 validator: function(chrs, maskset, pos, strict, opts) { 1679 isNaN(maskset.buffer[pos + 1]) || (chrs += maskset.buffer[pos + 1]); 1680 var frontValue = opts.getFrontValue(maskset.mask, maskset.buffer, opts); 1681 -1 !== frontValue.indexOf(opts.placeholder[0]) && (frontValue = "01" + opts.separator); 1682 var isValid = 1 === chrs.length ? opts.regex.val2pre(opts.separator).test(frontValue + chrs) : opts.regex.val2(opts.separator).test(frontValue + chrs); 1683 return strict || isValid || !(isValid = opts.regex.val2(opts.separator).test(frontValue + "0" + chrs)) ? isValid : (maskset.buffer[pos] = "0", 1684 pos++, { 1685 pos: pos 1686 }); 1687 }, 1688 cardinality: 1 1689 } ] 1690 }, 1691 y: { 1692 validator: function(chrs, maskset, pos, strict, opts) { 1693 if (opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) { 1694 var dayMonthValue = maskset.buffer.join("").substr(0, 6); 1695 if (dayMonthValue !== opts.leapday) return !0; 1696 var year = parseInt(chrs, 10); 1697 return year % 4 === 0 ? year % 100 === 0 ? year % 400 === 0 ? !0 : !1 : !0 : !1; 1698 } 1699 return !1; 1700 }, 1701 cardinality: 4, 1702 prevalidator: [ { 1703 validator: function(chrs, maskset, pos, strict, opts) { 1704 var isValid = opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear); 1705 if (!strict && !isValid) { 1706 var yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs + "0").toString().slice(0, 1); 1707 if (isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos++] = yearPrefix.charAt(0), 1708 { 1709 pos: pos 1710 }; 1711 if (yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs + "0").toString().slice(0, 2), 1712 isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos++] = yearPrefix.charAt(0), 1713 maskset.buffer[pos++] = yearPrefix.charAt(1), { 1714 pos: pos 1715 }; 1716 } 1717 return isValid; 1718 }, 1719 cardinality: 1 1720 }, { 1721 validator: function(chrs, maskset, pos, strict, opts) { 1722 var isValid = opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear); 1723 if (!strict && !isValid) { 1724 var yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs).toString().slice(0, 2); 1725 if (isValid = opts.isInYearRange(chrs[0] + yearPrefix[1] + chrs[1], opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos++] = yearPrefix.charAt(1), 1726 { 1727 pos: pos 1728 }; 1729 if (yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs).toString().slice(0, 2), 1730 opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) { 1731 var dayMonthValue = maskset.buffer.join("").substr(0, 6); 1732 if (dayMonthValue !== opts.leapday) isValid = !0; else { 1733 var year = parseInt(chrs, 10); 1734 isValid = year % 4 === 0 ? year % 100 === 0 ? year % 400 === 0 ? !0 : !1 : !0 : !1; 1735 } 1736 } else isValid = !1; 1737 if (isValid) return maskset.buffer[pos - 1] = yearPrefix.charAt(0), maskset.buffer[pos++] = yearPrefix.charAt(1), 1738 maskset.buffer[pos++] = chrs.charAt(0), { 1739 refreshFromBuffer: { 1740 start: pos - 3, 1741 end: pos 1742 }, 1743 pos: pos 1744 }; 1745 } 1746 return isValid; 1747 }, 1748 cardinality: 2 1749 }, { 1750 validator: function(chrs, maskset, pos, strict, opts) { 1751 return opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear); 1752 }, 1753 cardinality: 3 1754 } ] 1755 } 1756 }, 1757 insertMode: !1, 1758 autoUnmask: !1 1759 }, 1760 "mm/dd/yyyy": { 1761 placeholder: "mm/dd/yyyy", 1762 alias: "dd/mm/yyyy", 1763 regex: { 1764 val2pre: function(separator) { 1765 var escapedSeparator = Inputmask.escapeRegex.call(this, separator); 1766 return new RegExp("((0[13-9]|1[012])" + escapedSeparator + "[0-3])|(02" + escapedSeparator + "[0-2])"); 1767 }, 1768 val2: function(separator) { 1769 var escapedSeparator = Inputmask.escapeRegex.call(this, separator); 1770 return new RegExp("((0[1-9]|1[012])" + escapedSeparator + "(0[1-9]|[12][0-9]))|((0[13-9]|1[012])" + escapedSeparator + "30)|((0[13578]|1[02])" + escapedSeparator + "31)"); 1771 }, 1772 val1pre: new RegExp("[01]"),
vendor: 7,565 bytes, lines 1773-1947
1773 val1: new RegExp("0[1-9]|1[012]") 1774 }, 1775 leapday: "02/29/", 1776 onKeyDown: function(e, buffer, caretPos, opts) { 1777 var $input = $(this); 1778 if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) { 1779 var today = new Date(); 1780 $input.val((today.getMonth() + 1).toString() + today.getDate().toString() + today.getFullYear().toString()), 1781 $input.trigger("setvalue"); 1782 } 1783 } 1784 }, 1785 "yyyy/mm/dd": { 1786 mask: "y/1/2", 1787 placeholder: "yyyy/mm/dd", 1788 alias: "mm/dd/yyyy", 1789 leapday: "/02/29", 1790 onKeyDown: function(e, buffer, caretPos, opts) { 1791 var $input = $(this); 1792 if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) { 1793 var today = new Date(); 1794 $input.val(today.getFullYear().toString() + (today.getMonth() + 1).toString() + today.getDate().toString()), 1795 $input.trigger("setvalue"); 1796 } 1797 } 1798 }, 1799 "dd.mm.yyyy": { 1800 mask: "1.2.y", 1801 placeholder: "dd.mm.yyyy", 1802 leapday: "29.02.", 1803 separator: ".", 1804 alias: "dd/mm/yyyy" 1805 }, 1806 "dd-mm-yyyy": { 1807 mask: "1-2-y", 1808 placeholder: "dd-mm-yyyy", 1809 leapday: "29-02-", 1810 separator: "-", 1811 alias: "dd/mm/yyyy" 1812 }, 1813 "mm.dd.yyyy": { 1814 mask: "1.2.y", 1815 placeholder: "mm.dd.yyyy", 1816 leapday: "02.29.", 1817 separator: ".", 1818 alias: "mm/dd/yyyy" 1819 }, 1820 "mm-dd-yyyy": { 1821 mask: "1-2-y", 1822 placeholder: "mm-dd-yyyy", 1823 leapday: "02-29-", 1824 separator: "-", 1825 alias: "mm/dd/yyyy" 1826 }, 1827 "yyyy.mm.dd": { 1828 mask: "y.1.2", 1829 placeholder: "yyyy.mm.dd", 1830 leapday: ".02.29", 1831 separator: ".", 1832 alias: "yyyy/mm/dd" 1833 }, 1834 "yyyy-mm-dd": { 1835 mask: "y-1-2", 1836 placeholder: "yyyy-mm-dd", 1837 leapday: "-02-29", 1838 separator: "-", 1839 alias: "yyyy/mm/dd" 1840 }, 1841 datetime: { 1842 mask: "1/2/y h:s", 1843 placeholder: "dd/mm/yyyy hh:mm", 1844 alias: "dd/mm/yyyy", 1845 regex: { 1846 hrspre: new RegExp("[012]"), 1847 hrs24: new RegExp("2[0-4]|1[3-9]"), 1848 hrs: new RegExp("[01][0-9]|2[0-4]"), 1849 ampm: new RegExp("^[a|p|A|P][m|M]"), 1850 mspre: new RegExp("[0-5]"), 1851 ms: new RegExp("[0-5][0-9]") 1852 }, 1853 timeseparator: ":", 1854 hourFormat: "24", 1855 definitions: { 1856 h: { 1857 validator: function(chrs, maskset, pos, strict, opts) { 1858 if ("24" === opts.hourFormat && 24 === parseInt(chrs, 10)) return maskset.buffer[pos - 1] = "0", 1859 maskset.buffer[pos] = "0", { 1860 refreshFromBuffer: { 1861 start: pos - 1, 1862 end: pos 1863 }, 1864 c: "0" 1865 }; 1866 var isValid = opts.regex.hrs.test(chrs); 1867 if (!strict && !isValid && (chrs.charAt(1) === opts.timeseparator || -1 !== "-.:".indexOf(chrs.charAt(1))) && (isValid = opts.regex.hrs.test("0" + chrs.charAt(0)))) return maskset.buffer[pos - 1] = "0", 1868 maskset.buffer[pos] = chrs.charAt(0), pos++, { 1869 refreshFromBuffer: { 1870 start: pos - 2, 1871 end: pos 1872 }, 1873 pos: pos, 1874 c: opts.timeseparator 1875 }; 1876 if (isValid && "24" !== opts.hourFormat && opts.regex.hrs24.test(chrs)) { 1877 var tmp = parseInt(chrs, 10); 1878 return 24 === tmp ? (maskset.buffer[pos + 5] = "a", maskset.buffer[pos + 6] = "m") : (maskset.buffer[pos + 5] = "p", 1879 maskset.buffer[pos + 6] = "m"), tmp -= 12, 10 > tmp ? (maskset.buffer[pos] = tmp.toString(), 1880 maskset.buffer[pos - 1] = "0") : (maskset.buffer[pos] = tmp.toString().charAt(1), 1881 maskset.buffer[pos - 1] = tmp.toString().charAt(0)), { 1882 refreshFromBuffer: { 1883 start: pos - 1, 1884 end: pos + 6 1885 }, 1886 c: maskset.buffer[pos] 1887 }; 1888 } 1889 return isValid; 1890 }, 1891 cardinality: 2, 1892 prevalidator: [ { 1893 validator: function(chrs, maskset, pos, strict, opts) { 1894 var isValid = opts.regex.hrspre.test(chrs); 1895 return strict || isValid || !(isValid = opts.regex.hrs.test("0" + chrs)) ? isValid : (maskset.buffer[pos] = "0", 1896 pos++, { 1897 pos: pos 1898 }); 1899 }, 1900 cardinality: 1 1901 } ] 1902 }, 1903 s: { 1904 validator: "[0-5][0-9]", 1905 cardinality: 2, 1906 prevalidator: [ { 1907 validator: function(chrs, maskset, pos, strict, opts) { 1908 var isValid = opts.regex.mspre.test(chrs); 1909 return strict || isValid || !(isValid = opts.regex.ms.test("0" + chrs)) ? isValid : (maskset.buffer[pos] = "0", 1910 pos++, { 1911 pos: pos 1912 }); 1913 }, 1914 cardinality: 1 1915 } ] 1916 }, 1917 t: { 1918 validator: function(chrs, maskset, pos, strict, opts) { 1919 return opts.regex.ampm.test(chrs + "m"); 1920 }, 1921 casing: "lower", 1922 cardinality: 1 1923 } 1924 }, 1925 insertMode: !1, 1926 autoUnmask: !1 1927 }, 1928 datetime12: { 1929 mask: "1/2/y h:s t\\m", 1930 placeholder: "dd/mm/yyyy hh:mm xm", 1931 alias: "datetime", 1932 hourFormat: "12" 1933 }, 1934 "mm/dd/yyyy hh:mm xm": { 1935 mask: "1/2/y h:s t\\m", 1936 placeholder: "mm/dd/yyyy hh:mm xm", 1937 alias: "datetime12", 1938 regex: { 1939 val2pre: function(separator) { 1940 var escapedSeparator = Inputmask.escapeRegex.call(this, separator); 1941 return new RegExp("((0[13-9]|1[012])" + escapedSeparator + "[0-3])|(02" + escapedSeparator + "[0-2])"); 1942 }, 1943 val2: function(separator) { 1944 var escapedSeparator = Inputmask.escapeRegex.call(this, separator); 1945 return new RegExp("((0[1-9]|1[012])" + escapedSeparator + "(0[1-9]|[12][0-9]))|((0[13-9]|1[012])" + escapedSeparator + "30)|((0[13578]|1[02])" + escapedSeparator + "31)"); 1946 }, 1947 val1pre: new RegExp("[01]"),
vendor: 4,871 bytes, lines 1948-2085
1948 val1: new RegExp("0[1-9]|1[012]") 1949 }, 1950 leapday: "02/29/", 1951 onKeyDown: function(e, buffer, caretPos, opts) { 1952 var $input = $(this); 1953 if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) { 1954 var today = new Date(); 1955 $input.val((today.getMonth() + 1).toString() + today.getDate().toString() + today.getFullYear().toString()), 1956 $input.trigger("setvalue"); 1957 } 1958 } 1959 }, 1960 "hh:mm t": { 1961 mask: "h:s t\\m", 1962 placeholder: "hh:mm xm", 1963 alias: "datetime", 1964 hourFormat: "12" 1965 }, 1966 "h:s t": { 1967 mask: "h:s t\\m", 1968 placeholder: "hh:mm xm", 1969 alias: "datetime", 1970 hourFormat: "12" 1971 }, 1972 "hh:mm:ss": { 1973 mask: "h:s:s", 1974 placeholder: "hh:mm:ss", 1975 alias: "datetime", 1976 autoUnmask: !1 1977 }, 1978 "hh:mm": { 1979 mask: "h:s", 1980 placeholder: "hh:mm", 1981 alias: "datetime", 1982 autoUnmask: !1 1983 }, 1984 date: { 1985 alias: "dd/mm/yyyy" 1986 }, 1987 "mm/yyyy": { 1988 mask: "1/y", 1989 placeholder: "mm/yyyy", 1990 leapday: "donotuse", 1991 separator: "/", 1992 alias: "mm/dd/yyyy" 1993 }, 1994 shamsi: { 1995 regex: { 1996 val2pre: function(separator) { 1997 var escapedSeparator = Inputmask.escapeRegex.call(this, separator); 1998 return new RegExp("((0[1-9]|1[012])" + escapedSeparator + "[0-3])"); 1999 }, 2000 val2: function(separator) { 2001 var escapedSeparator = Inputmask.escapeRegex.call(this, separator); 2002 return new RegExp("((0[1-9]|1[012])" + escapedSeparator + "(0[1-9]|[12][0-9]))|((0[1-9]|1[012])" + escapedSeparator + "30)|((0[1-6])" + escapedSeparator + "31)"); 2003 }, 2004 val1pre: new RegExp("[01]"), 2005 val1: new RegExp("0[1-9]|1[012]") 2006 }, 2007 yearrange: { 2008 minyear: 1300, 2009 maxyear: 1499 2010 }, 2011 mask: "y/1/2", 2012 leapday: "/12/30", 2013 placeholder: "yyyy/mm/dd", 2014 alias: "mm/dd/yyyy", 2015 clearIncomplete: !0 2016 } 2017 }), Inputmask; 2018}(gKweri, Inputmask), function($, Inputmask) { 2019 return Inputmask.extendDefinitions({ 2020 A: { 2021 validator: "[A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]", 2022 cardinality: 1, 2023 casing: "upper" 2024 }, 2025 "&": { 2026 validator: "[0-9A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]", 2027 cardinality: 1, 2028 casing: "upper" 2029 }, 2030 "#": { 2031 validator: "[0-9A-Fa-f]", 2032 cardinality: 1, 2033 casing: "upper" 2034 } 2035 }), Inputmask.extendAliases({ 2036 url: { 2037 definitions: { 2038 i: { 2039 validator: ".", 2040 cardinality: 1 2041 } 2042 }, 2043 mask: "(\\http://)|(\\http\\s://)|(ftp://)|(ftp\\s://)i{+}", 2044 insertMode: !1, 2045 autoUnmask: !1 2046 }, 2047 ip: { 2048 mask: "i[i[i]].i[i[i]].i[i[i]].i[i[i]]", 2049 definitions: { 2050 i: { 2051 validator: function(chrs, maskset, pos, strict, opts) { 2052 return pos - 1 > -1 && "." !== maskset.buffer[pos - 1] ? (chrs = maskset.buffer[pos - 1] + chrs, 2053 chrs = pos - 2 > -1 && "." !== maskset.buffer[pos - 2] ? maskset.buffer[pos - 2] + chrs : "0" + chrs) : chrs = "00" + chrs, 2054 new RegExp("25[0-5]|2[0-4][0-9]|[01][0-9][0-9]").test(chrs); 2055 }, 2056 cardinality: 1 2057 } 2058 }, 2059 onUnMask: function(maskedValue, unmaskedValue, opts) { 2060 return maskedValue; 2061 } 2062 }, 2063 email: { 2064 mask: "*{1,64}[.*{1,64}][.*{1,64}][.*{1,63}]@-{1,63}.-{1,63}[.-{1,63}][.-{1,63}]", 2065 greedy: !1, 2066 onBeforePaste: function(pastedValue, opts) { 2067 return pastedValue = pastedValue.toLowerCase(), pastedValue.replace("mailto:", ""); 2068 }, 2069 definitions: { 2070 "*": { 2071 validator: "[0-9A-Za-z!#$%&'*+/=?^_`{|}~-]", 2072 cardinality: 1, 2073 casing: "lower" 2074 }, 2075 "-": { 2076 validator: "[0-9A-Za-z-]", 2077 cardinality: 1, 2078 casing: "lower" 2079 } 2080 }, 2081 onUnMask: function(maskedValue, unmaskedValue, opts) { 2082 return maskedValue; 2083 } 2084 }, 2085 mac: {
2086 mask: "##:##:##:##:##:##" 2087 }, 2088 vin: { 2089 mask: "V{13}9{4}", 2090 definitions: { 2091 V: { 2092 validator: "[A-HJ-NPR-Za-hj-npr-z\\d]", 2093 cardinality: 1, 2094 casing: "upper" 2095 } 2096 }, 2097 clearIncomplete: !0, 2098 autoUnmask: !0 2099 } 2100 }), Inputmask; 2101}(gKweri, Inputmask), function($, Inputmask) { 2102 return Inputmask.extendAliases({ 2103 numeric: { 2104 mask: function(opts) { 2105 function autoEscape(txt) { 2106 for (var escapedTxt = "", i = 0; i < txt.length; i++) escapedTxt += opts.definitions[txt.charAt(i)] || opts.optionalmarker.start === txt.charAt(i) || opts.optionalmarker.end === txt.charAt(i) || opts.quantifiermarker.start === txt.charAt(i) || opts.quantifiermarker.end === txt.charAt(i) || opts.groupmarker.start === txt.charAt(i) || opts.groupmarker.end === txt.charAt(i) || opts.alternatormarker === txt.charAt(i) ? "\\" + txt.charAt(i) : txt.charAt(i); 2107 return escapedTxt; 2108 } 2109 if (0 !== opts.repeat && isNaN(opts.integerDigits) && (opts.integerDigits = opts.repeat), 2110 opts.repeat = 0, opts.groupSeparator === opts.radixPoint && ("." === opts.radixPoint ? opts.groupSeparator = "," : "," === opts.radixPoint ? opts.groupSeparator = "." : opts.groupSeparator = ""), 2111 " " === opts.groupSeparator && (opts.skipOptionalPartCharacter = void 0), opts.autoGroup = opts.autoGroup && "" !== opts.groupSeparator, 2112 opts.autoGroup && ("string" == typeof opts.groupSize && isFinite(opts.groupSize) && (opts.groupSize = parseInt(opts.groupSize)), 2113 isFinite(opts.integerDigits))) { 2114 var seps = Math.floor(opts.integerDigits / opts.groupSize), mod = opts.integerDigits % opts.groupSize; 2115 opts.integerDigits = parseInt(opts.integerDigits) + (0 === mod ? seps - 1 : seps), 2116 opts.integerDigits < 1 && (opts.integerDigits = "*"); 2117 } 2118 opts.placeholder.length > 1 && (opts.placeholder = opts.placeholder.charAt(0)), 2119 opts.radixFocus = opts.radixFocus && "" !== opts.placeholder && opts.integerOptional === !0, 2120 opts.definitions[";"] = opts.definitions["~"], opts.definitions[";"].definitionSymbol = "~", 2121 opts.numericInput === !0 && (opts.radixFocus = !1, opts.digitsOptional = !1, isNaN(opts.digits) && (opts.digits = 2), 2122 opts.decimalProtect = !1); 2123 var mask = autoEscape(opts.prefix); 2124 return mask += "[+]", mask += opts.integerOptional === !0 ? "~{1," + opts.integerDigits + "}" : "~{" + opts.integerDigits + "}", 2125 void 0 !== opts.digits && (isNaN(opts.digits) || parseInt(opts.digits) > 0) && (opts.decimalProtect && (opts.radixPointDefinitionSymbol = ":"), 2126 mask += opts.digitsOptional ? "[" + (opts.decimalProtect ? ":" : opts.radixPoint) + ";{1," + opts.digits + "}]" : (opts.decimalProtect ? ":" : opts.radixPoint) + ";{" + opts.digits + "}"), 2127 mask += "[-]", mask += autoEscape(opts.suffix), opts.greedy = !1, null !== opts.min && (opts.min = opts.min.toString().replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""), 2128 "," === opts.radixPoint && (opts.min = opts.min.replace(opts.radixPoint, "."))), 2129 null !== opts.max && (opts.max = opts.max.toString().replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""), 2130 "," === opts.radixPoint && (opts.max = opts.max.replace(opts.radixPoint, "."))), 2131 mask; 2132 }, 2133 placeholder: "", 2134 greedy: !1, 2135 digits: "*", 2136 digitsOptional: !0, 2137 radixPoint: ".", 2138 radixFocus: !0, 2139 groupSize: 3, 2140 groupSeparator: "", 2141 autoGroup: !1, 2142 allowPlus: !0, 2143 allowMinus: !0, 2144 negationSymbol: { 2145 front: "-", 2146 back: "" 2147 }, 2148 integerDigits: "+", 2149 integerOptional: !0, 2150 prefix: "", 2151 suffix: "", 2152 rightAlign: !0, 2153 decimalProtect: !0, 2154 min: null, 2155 max: null, 2156 step: 1, 2157 insertMode: !0, 2158 autoUnmask: !1, 2159 unmaskAsNumber: !1, 2160 postFormat: function(buffer, pos, opts) { 2161 opts.numericInput === !0 && (buffer = buffer.reverse(), isFinite(pos) && (pos = buffer.join("").length - pos - 1)); 2162 var i, l, suffixStripped = !1; 2163 buffer.length >= opts.suffix.length && buffer.join("").indexOf(opts.suffix) === buffer.length - opts.suffix.length && (buffer.length = buffer.length - opts.suffix.length, 2164 suffixStripped = !0), pos = pos >= buffer.length ? buffer.length - 1 : pos < opts.prefix.length ? opts.prefix.length : pos; 2165 var needsRefresh = !1, charAtPos = buffer[pos], cbuf = buffer.slice(); 2166 charAtPos === opts.groupSeparator && (cbuf.splice(pos--, 1), charAtPos = cbuf[pos]
2166), 2167 charAtPos !== opts.radixPoint && charAtPos !== opts.negationSymbol.front && charAtPos !== opts.negationSymbol.back && (cbuf[pos] = "?"); 2168 var bufVal = cbuf.join(""), bufValOrigin = bufVal; 2169 if (bufVal.length > 0 && opts.autoGroup || -1 !== bufVal.indexOf(opts.groupSeparator)) { 2170 var escapedGroupSeparator = Inputmask.escapeRegex(opts.groupSeparator); 2171 needsRefresh = 0 === bufVal.indexOf(opts.groupSeparator), bufVal = bufVal.replace(new RegExp(escapedGroupSeparator, "g"), ""); 2172 var radixSplit = bufVal.split(opts.radixPoint); 2173 if (bufVal = "" === opts.radixPoint ? bufVal : radixSplit[0], bufVal !== opts.prefix + "?0" && bufVal.length >= opts.groupSize + opts.prefix.length) for (var reg = new RegExp("([-+]?[\\d?]+)([\\d?]{" + opts.groupSize + "})"); reg.test(bufVal) && "" !== opts.groupSeparator; ) bufVal = bufVal.replace(reg, "$1" + opts.groupSeparator + "$2"), 2174 bufVal = bufVal.replace(opts.groupSeparator + opts.groupSeparator, opts.groupSeparator); 2175 "" !== opts.radixPoint && radixSplit.length > 1 && (bufVal += opts.radixPoint + radixSplit[1]); 2176 } 2177 for (needsRefresh = bufValOrigin !== bufVal, buffer.length = bufVal.length, i = 0, 2178 l = bufVal.length; l > i; i++) buffer[i] = bufVal.charAt(i); 2179 var newPos = $.inArray("?", buffer); 2180 if (-1 === newPos && (newPos = $.inArray(charAtPos, buffer)), buffer[newPos] = charAtPos, 2181 !needsRefresh && suffixStripped) for (i = 0, l = opts.suffix.length; l > i; i++) buffer.push(opts.suffix.charAt(i)); 2182 return newPos = opts.numericInput && isFinite(pos) ? buffer.join("").length - newPos - 1 : newPos, 2183 opts.numericInput && (buffer = buffer.reverse(), $.inArray(opts.radixPoint, buffer) < newPos && buffer.join("").length - opts.suffix.length !== newPos && (newPos -= 1)), 2184 { 2185 pos: newPos, 2186 refreshFromBuffer: needsRefresh, 2187 buffer: buffer 2188 }; 2189 }, 2190 onBeforeWrite: function(e, buffer, caretPos, opts) { 2191 var rslt; 2192 if (e && ("blur" === e.type || "checkval" === e.type || "keydown" === e.type)) { 2193 var maskedValue = opts.numericInput ? buffer.slice().reverse().join("") : buffer.join(""), processValue = maskedValue.replace(opts.prefix, ""); 2194 processValue = processValue.replace(opts.suffix, ""), processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""), 2195 "," === opts.radixPoint && (processValue = processValue.replace(opts.radixPoint, ".")); 2196 var isNegative = processValue.match(new RegExp("[-" + Inputmask.escapeRegex(opts.negationSymbol.front) + "]", "g")); 2197 if (isNegative = null !== isNegative && 1 === isNegative.length, processValue = processValue.replace(new RegExp("[-" + Inputmask.escapeRegex(opts.negationSymbol.front) + "]", "g"), ""), 2198 processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.negationSymbol.back) + "$"), ""), 2199 isNaN(opts.placeholder) && (processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.placeholder), "g"), "")), 2200 processValue = processValue === opts.negationSymbol.front ? processValue + "0" : processValue, 2201 "" !== processValue && isFinite(processValue)) { 2202 var floatValue = parseFloat(processValue), signedFloatValue = isNegative ? -1 * floatValue : floatValue; 2203 if (null !== opts.min && isFinite(opts.min) && signedFloatValue < parseFloat(opts.min) ? (floatValue = Math.abs(opts.min), 2204 isNegative = opts.min < 0, maskedValue = void 0) : null !== opts.max && isFinite(opts.max) && signedFloatValue > parseFloat(opts.max) && (floatValue = Math.abs(opts.max), 2205 isNegative = opts.max < 0, maskedValue = void 0), processValue = floatValue.toString().replace(".", opts.radixPoint).split(""), 2206 isFinite(opts.digits)) { 2207 var radixPosition = $.inArray(opts.radixPoint, processValue), rpb = $.inArray(opts.radixPoint, maskedValue); 2208 -1 === radixPosition && (processValue.push(opts.radixPoint), radixPosition = processValue.length - 1); 2209 for (var i = 1; i <= opts.digits; i++) opts.digitsOptional || void 0 !== processValue[radixPosition + i] && processValue[radixPosition + i] !== opts.placeholder.charAt(0) ? -1 !== rpb && void 0 !== maskedValue[rpb + i] && (processValue[radixPosition + i] = processValue[radixPosition + i] || maskedValue[rpb + i]) : processValue[radixPosition + i] = "0"; 2210 processValue[processValue.length - 1] === opts.radixPoint && delete processValue[processValue.length - 1]; 2211 } 2212 if (floatValue.toString() !== processValue && floatValue.toString() + "." !== processValue || isNegative) return !isNegative || 0 === floatValue && "blur" === e.type || (processValue.unshift(opts.negationSymbol.front), 2213 processValue.push(opts.negationSymbol.back)), processValue = (opts.prefix + processValue.join("")).split(""), 2214 opts.numericInput && (processValue = processValue.reverse()), rslt = opts.postFormat(processValue, opts.numericInput ? caretPos : caretPos - 1, opts), 2215 rslt.buffer && (rslt.refreshFromBuffer = rslt.buffer.join("") !== buffer.join("")), 2216 rslt; 2217 } 2218 } 2219 return opts.autoGroup ? (rslt = opts.postFormat(buffer, opts.numericInput ? caretPos : caretPos - 1, opts), 2220 rslt.caret = caretPos <= opts.prefix.length ? rslt.pos : rslt.pos + 1, rslt)
2220: void 0; 2221 }, 2222 regex: { 2223 integerPart: function(opts) { 2224 return new RegExp("[" + Inputmask.escapeRegex(opts.negationSymbol.front) + "+]?\\d+"); 2225 }, 2226 integerNPart: function(opts) { 2227 return new RegExp("[\\d" + Inputmask.escapeRegex(opts.groupSeparator) + Inputmask.escapeRegex(opts.placeholder.charAt(0)) + "]+"); 2228 } 2229 }, 2230 signHandler: function(chrs, maskset, pos, strict, opts) { 2231 if (!strict && opts.allowMinus && "-" === chrs || opts.allowPlus && "+" === chrs) { 2232 var matchRslt = maskset.buffer.join("").match(opts.regex.integerPart(opts)); 2233 if (matchRslt && matchRslt[0].length > 0) return maskset.buffer[matchRslt.index] === ("-" === chrs ? "+" : opts.negationSymbol.front) ? "-" === chrs ? "" !== opts.negationSymbol.back ? { 2234 pos: matchRslt.index, 2235 c: opts.negationSymbol.front, 2236 remove: matchRslt.index, 2237 caret: pos, 2238 insert: { 2239 pos: maskset.buffer.length - opts.suffix.length - 1, 2240 c: opts.negationSymbol.back 2241 } 2242 } : { 2243 pos: matchRslt.index, 2244 c: opts.negationSymbol.front, 2245 remove: matchRslt.index, 2246 caret: pos 2247 } : "" !== opts.negationSymbol.back ? { 2248 pos: matchRslt.index, 2249 c: "+", 2250 remove: [ matchRslt.index, maskset.buffer.length - opts.suffix.length - 1 ], 2251 caret: pos 2252 } : { 2253 pos: matchRslt.index, 2254 c: "+", 2255 remove: matchRslt.index, 2256 caret: pos 2257 } : maskset.buffer[matchRslt.index] === ("-" === chrs ? opts.negationSymbol.front : "+") ? "-" === chrs && "" !== opts.negationSymbol.back ? { 2258 remove: [ matchRslt.index, maskset.buffer.length - opts.suffix.length - 1 ], 2259 caret: pos - 1 2260 } : { 2261 remove: matchRslt.index, 2262 caret: pos - 1 2263 } : "-" === chrs ? "" !== opts.negationSymbol.back ? { 2264 pos: matchRslt.index, 2265 c: opts.negationSymbol.front, 2266 caret: pos + 1, 2267 insert: { 2268 pos: maskset.buffer.length - opts.suffix.length, 2269 c: opts.negationSymbol.back 2270 } 2271 } : { 2272 pos: matchRslt.index, 2273 c: opts.negationSymbol.front, 2274 caret: pos + 1 2275 } : { 2276 pos: matchRslt.index, 2277 c: chrs, 2278 caret: pos + 1 2279 }; 2280 } 2281 return !1; 2282 }, 2283 radixHandler: function(chrs, maskset, pos, strict, opts) { 2284 if (!strict && opts.numericInput !== !0 && chrs === opts.radixPoint && void 0 !== opts.digits && (isNaN(opts.digits) || parseInt(opts.digits) > 0)) { 2285 var radixPos = $.inArray(opts.radixPoint, maskset.buffer), integerValue = maskset.buffer.join("").match(opts.regex.integerPart(opts)); 2286 if (-1 !== radixPos && maskset.validPositions[radixPos]) return maskset.validPositions[radixPos - 1] ? { 2287 caret: radixPos + 1 2288 } : { 2289 pos: integerValue.index, 2290 c: integerValue[0], 2291 caret: radixPos + 1 2292 }; 2293 if (!integerValue || "0" === integerValue[0] && integerValue.index + 1 !== pos) return maskset.buffer[integerValue ? integerValue.index : pos] = "0", 2294 { 2295 pos: (integerValue ? integerValue.index : pos) + 1, 2296 c: opts.radixPoint 2297 }; 2298 } 2299 return !1; 2300 }, 2301 leadingZeroHandler: function(chrs, maskset, pos, strict, opts, isSelection) { 2302 if (!strict) if (opts.numericInput === !0) { 2303 var buffer = maskset.buffer.slice("").reverse(), char = buffer[opts.prefix.length]; 2304 if ("0" === char && void 0 === maskset.validPositions[pos - 1]) return { 2305 pos: pos, 2306 remove: buffer.length - opts.prefix.length - 1 2307 }; 2308 } else { 2309 var radixPosition = $.inArray(opts.radixPoint, maskset.buffer), matchRslt = maskset.buffer.slice(0, -1 !== radixPosition ? radixPosition : void 0).join("").match(opts.regex.integerNPart(opts)); 2310 if (matchRslt && (-1 === radixPosition || radixPosition >= pos)) { 2311 var decimalPart = -1 === radixPosition ? 0 : parseInt(maskset.buffer.slice(radixPosition + 1).join("")); 2312 if (0 === matchRslt[0].indexOf("" !== opts.placeholder ? opts.placeholder.charAt(0) : "0") && (matchRslt.index + 1 === pos || isSelection !== !0 && 0 === decimalPart)) return maskset.buffer.splice(matchRslt.index, 1), 2313 { 2314 pos: matchRslt.index, 2315 remove: matchRslt.index 2316 }; 2317 if ("0" === chrs && pos <= matchRslt.index && matchRslt[0] !== opts.groupSeparator) return !1; 2318 } 2319 } 2320 return !0; 2321 }, 2322 definitions: { 2323 "~": { 2324 validator: function(chrs, maskset, pos, strict, opts, isSelection) { 2325 var isValid = opts.signHandler(chrs, maskset, pos, strict, opts); 2326 if (!isValid && (isValid = opts.radixHandler(chrs, maskset, pos, strict, opts), 2327 !isValid && (isValid = strict ? new RegExp("[0-9" + Inputmask.escapeRegex(opts.groupSeparator) + "]").test(chrs) : new RegExp("[0-9]").test(chrs), 2328 isValid === !0 && (isValid = opts.leadingZeroHandler(chrs, maskset, pos, strict, opts, isSelection), 2329 isValid === !0)))) { 2330 var radixPosition = $.inArray(opts.radixPoint, maskset.buffer);
2331 isValid = -1 !== radixPosition && (opts.digitsOptional === !1 || maskset.validPositions[pos]) && opts.numericInput !== !0 && pos > radixPosition && !strict ? { 2332 pos: pos, 2333 remove: pos 2334 } : { 2335 pos: pos 2336 }; 2337 } 2338 return isValid; 2339 }, 2340 cardinality: 1 2341 }, 2342 "+": { 2343 validator: function(chrs, maskset, pos, strict, opts) { 2344 var isValid = opts.signHandler(chrs, maskset, pos, strict, opts); 2345 return !isValid && (strict && opts.allowMinus && chrs === opts.negationSymbol.front || opts.allowMinus && "-" === chrs || opts.allowPlus && "+" === chrs) && (isValid = strict || "-" !== chrs ? !0 : "" !== opts.negationSymbol.back ? { 2346 pos: pos, 2347 c: "-" === chrs ? opts.negationSymbol.front : "+", 2348 caret: pos + 1, 2349 insert: { 2350 pos: maskset.buffer.length, 2351 c: opts.negationSymbol.back 2352 } 2353 } : { 2354 pos: pos, 2355 c: "-" === chrs ? opts.negationSymbol.front : "+", 2356 caret: pos + 1 2357 }), isValid; 2358 }, 2359 cardinality: 1, 2360 placeholder: "" 2361 }, 2362 "-": { 2363 validator: function(chrs, maskset, pos, strict, opts) { 2364 var isValid = opts.signHandler(chrs, maskset, pos, strict, opts); 2365 return !isValid && strict && opts.allowMinus && chrs === opts.negationSymbol.back && (isValid = !0), 2366 isValid; 2367 }, 2368 cardinality: 1, 2369 placeholder: "" 2370 }, 2371 ":": { 2372 validator: function(chrs, maskset, pos, strict, opts) { 2373 var isValid = opts.signHandler(chrs, maskset, pos, strict, opts); 2374 if (!isValid) { 2375 var radix = "[" + Inputmask.escapeRegex(opts.radixPoint) + "]"; 2376 isValid = new RegExp(radix).test(chrs), isValid && maskset.validPositions[pos] && maskset.validPositions[pos].match.placeholder === opts.radixPoint && (isValid = { 2377 caret: pos + 1 2378 }); 2379 } 2380 return isValid ? { 2381 c: opts.radixPoint 2382 } : isValid; 2383 }, 2384 cardinality: 1, 2385 placeholder: function(opts) { 2386 return opts.radixPoint; 2387 } 2388 } 2389 }, 2390 onUnMask: function(maskedValue, unmaskedValue, opts) { 2391 var processValue = maskedValue.replace(opts.prefix, ""); 2392 return processValue = processValue.replace(opts.suffix, ""), processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""), 2393 opts.unmaskAsNumber ? ("" !== opts.radixPoint && -1 !== processValue.indexOf(opts.radixPoint) && (processValue = processValue.replace(Inputmask.escapeRegex.call(this, opts.radixPoint), ".")), 2394 Number(processValue)) : processValue; 2395 }, 2396 isComplete: function(buffer, opts) { 2397 var maskedValue = buffer.join(""), bufClone = buffer.slice(); 2398 if (opts.postFormat(bufClone, 0, opts), bufClone.join("") !== maskedValue) return !1; 2399 var processValue = maskedValue.replace(opts.prefix, ""); 2400 return processValue = processValue.replace(opts.suffix, ""), processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""), 2401 "," === opts.radixPoint && (processValue = processValue.replace(Inputmask.escapeRegex(opts.radixPoint), ".")), 2402 isFinite(processValue); 2403 }, 2404 onBeforeMask: function(initialValue, opts) { 2405 if ("" !== opts.radixPoint && isFinite(initialValue)) initialValue = initialValue.toString().replace(".", opts.radixPoint); else { 2406 var kommaMatches = initialValue.match(/,/g), dotMatches = initialValue.match(/\./g); 2407 dotMatches && kommaMatches ? dotMatches.length > kommaMatches.length ? (initialValue = initialValue.replace(/\./g, ""), 2408 initialValue = initialValue.replace(",", opts.radixPoint)) : kommaMatches.length > dotMatches.length ? (initialValue = initialValue.replace(/,/g, ""), 2409 initialValue = initialValue.replace(".", opts.radixPoint)) : initialValue = initialValue.indexOf(".") < initialValue.indexOf(",") ? initialValue.replace(/\./g, "") : initialValue = initialValue.replace(/,/g, "") : initialValue = initialValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""); 2410 } 2411 if (0 === opts.digits && (-1 !== initialValue.indexOf(".") ? initialValue = initialValue.substring(0, initialValue.indexOf(".")) : -1 !== initialValue.indexOf(",") && (initialValue = initialValue.substring(0, initialValue.indexOf(",")))), 2412 "" !== opts.radixPoint && isFinite(opts.digits) && -1 !== initialValue.indexOf(opts.radixPoint)) { 2413 var valueParts = initialValue.split(opts.radixPoint), decPart = valueParts[1].match(new RegExp("\\d*"))[0]; 2414 if (parseInt(opts.digits) < decPart.toString().length) { 2415 var digitsFactor = Math.pow(10, parseInt(opts.digits)); 2416 initialValue = initialValue.replace(Inputmask.escapeRegex(opts.radixPoint), "."), 2417 initialValue = Math.round(parseFloat(initialValue) * digitsFactor) / digitsFactor, 2418 initialValue = initialValue.toString().replace(".", opts.radixPoint); 2419 } 2420 } 2421 return initialValue.toString(); 2422 }, 2423 canClearPosition: function(maskset, position, lvp, strict, opts) { 2424 var positionInput = maskset.validPositions[position].input, canClear = positionInput !== opts.radixPoint || null !== maskset.validPositions[position].match.fn && opts.decimalProtect === !1 || isFinite(positionInput) || position === lvp || positionInput === opts.groupSeparator || positionInput === opts.negationSymbol.front || positionInput === opts.negationSymbol.back; 2425 return canClear; 2426 }, 2427 onKeyDown: function(e, buffer, caretPos, opts) { 2428 var $input = $(this); 2429 if (e.ctrlKey) switch (e.keyCode) { 2430 case Inputmask.keyCode.UP: 2431 $input.val(parseFloat(this.inputmask.unmaskedvalue()) + parseInt(opts.step)), $input.trigger("setvalue"); 2432 break; 2433 2434 case Inputmask.keyCode.DOWN: 2435 $input.val(parseFloat(this.inputmask.unmaskedvalue()) - parseInt(opts.step)), $input.trigger("setvalue"); 2436 } 2437 } 2438 }, 2439 currency: { 2440 prefix: "$ ", 2441 groupSeparator: ",", 2442 alias: "numeric", 2443 placeholder: "0", 2444 autoGroup: !0, 2445 digits: 2, 2446 digitsOptional: !1, 2447 clearMaskOnLostFocus: !1 2448 },
2449 decimal: { 2450 alias: "numeric" 2451 }, 2452 integer: { 2453 alias: "numeric", 2454 digits: 0, 2455 radixPoint: "" 2456 }, 2457 percentage: { 2458 alias: "numeric", 2459 digits: 2, 2460 radixPoint: ".", 2461 placeholder: "0", 2462 autoGroup: !1, 2463 min: 0, 2464 max: 100, 2465 suffix: " %", 2466 allowPlus: !1, 2467 allowMinus: !1 2468 } 2469 }), Inputmask; 2470}(gKweri, Inputmask), function($, Inputmask) { 2471 return Inputmask.extendAliases({ 2472 phone: { 2473 url: "phone-codes/phone-codes.js", 2474 countrycode: "", 2475 phoneCodeCache: {}, 2476 mask: function(opts) { 2477 if (void 0 === opts.phoneCodeCache[opts.url]) { 2478 var maskList = []; 2479 opts.definitions["#"] = opts.definitions[9], $.ajax({ 2480 url: opts.url, 2481 async: !1, 2482 type: "get", 2483 dataType: "json", 2484 success: function(response) { 2485 maskList = response; 2486 }, 2487 error: function(xhr, ajaxOptions, thrownError) { 2488 alert(thrownError + " - " + opts.url); 2489 } 2490 }), opts.phoneCodeCache[opts.url] = maskList.sort(function(a, b) { 2491 return (a.mask || a) < (b.mask || b) ? -1 : 1; 2492 }); 2493 } 2494 return opts.phoneCodeCache[opts.url]; 2495 }, 2496 keepStatic: !1, 2497 nojumps: !0, 2498 nojumpsThreshold: 1, 2499 onBeforeMask: function(value, opts) { 2500 var processedValue = value.replace(/^0{1,2}/, "").replace(/[\s]/g, ""); 2501 return (processedValue.indexOf(opts.countrycode) > 1 || -1 === processedValue.indexOf(opts.countrycode)) && (processedValue = "+" + opts.countrycode + processedValue), 2502 processedValue; 2503 } 2504 }, 2505 phonebe: { 2506 alias: "phone", 2507 url: "phone-codes/phone-be.js", 2508 countrycode: "32", 2509 nojumpsThreshold: 4 2510 } 2511 }), Inputmask; 2512}(gKweri, Inputmask), function($, Inputmask) { 2513 return Inputmask.extendAliases({ 2514 Regex: { 2515 mask: "r", 2516 greedy: !1, 2517 repeat: "*", 2518 regex: null, 2519 regexTokens: null, 2520 tokenizer: /\[\^?]?(?:[^\\\]]+|\\[\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, 2521 quantifierFilter: /[0-9]+[^,]/, 2522 isComplete: function(buffer, opts) { 2523 return new RegExp(opts.regex).test(buffer.join("")); 2524 }, 2525 definitions: { 2526 r: { 2527 validator: function(chrs, maskset, pos, strict, opts) { 2528 function RegexToken(isGroup, isQuantifier) { 2529 this.matches = [], this.isGroup = isGroup || !1, this.isQuantifier = isQuantifier || !1, 2530 this.quantifier = { 2531 min: 1, 2532 max: 1 2533 }, this.repeaterPart = void 0; 2534 } 2535 function analyseRegex() { 2536 var match, m, currentToken = new RegexToken(), opengroups = []; 2537 for (opts.regexTokens = []; match = opts.tokenizer.exec(opts.regex); ) switch (m = match[0], 2538 m.charAt(0)) { 2539 case "(": 2540 opengroups.push(new RegexToken(!0)); 2541 break; 2542 2543 case ")": 2544 groupToken = opengroups.pop(), opengroups.length > 0 ? opengroups[opengroups.length - 1].matches.push(groupToken) : currentToken.matches.push(groupToken); 2545 break; 2546 2547 case "{": 2548 case "+": 2549 case "*": 2550 var quantifierToken = new RegexToken(!1, !0); 2551 m = m.replace(/[{}]/g, ""); 2552 var mq = m.split(","), mq0 = isNaN(mq[0]) ? mq[0] : parseInt(mq[0]), mq1 = 1 === mq.length ? mq0 : isNaN(mq[1]) ? mq[1] : parseInt(mq[1]); 2553 if (quantifierToken.quantifier = { 2554 min: mq0, 2555 max: mq1 2556 }, opengroups.length > 0) { 2557 var matches = opengroups[opengroups.length - 1].matches; 2558 match = matches.pop(), match.isGroup || (groupToken = new RegexToken(!0), groupToken.matches.push(match), 2559 match = groupToken), matches.push(match), matches.push(quantifierToken); 2560 } else match = currentToken.matches.pop(), match.isGroup || (groupToken = new RegexToken(!0), 2561 groupToken.matches.push(match), match = groupToken), currentToken.matches.push(match), 2562 currentToken.matches.push(quantifierToken); 2563 break; 2564 2565 default: 2566 opengroups.length > 0 ? opengroups[opengroups.length - 1].matches.push(m) : currentToken.matches.push(m); 2567 } 2568 currentToken.matches.length > 0 && opts.regexTokens.push(currentToken); 2569 } 2570 function validateRegexToken(token, fromGroup) { 2571 var isvalid = !1; 2572 fromGroup && (regexPart += "(", openGroupCount++); 2573 for (var mndx = 0; mndx < token.matches.length; mndx++) { 2574 var matchToken = token.matches[mndx]; 2575 if (matchToken.isGroup === !0) isvalid = validateRegexToken(matchToken, !0); else if (matchToken.isQuantifier === !0) { 2576 var crrntndx = $.inArray(matchToken, token.matches), matchGroup = token.matches[crrntndx - 1], regexPartBak = regexPart; 2577 if (isNaN(matchToken.quantifier.max)) { 2578 for (;matchToken.repeaterPart && matchToken.repeaterPart !== regexPart && matchToken.repeaterPart.length > regexPart.length && !(isvalid = validateRegexToken(matchGroup, !0)); ) ; 2579 isvalid = isvalid || validateRegexToken(matchGroup, !0), isvalid && (matchToken.repeaterPart = regexPart), 2580 regexPart = regexPartBak + matchToken.quantifier.max; 2581 } else { 2582 for (var i = 0, qm = matchToken.quantifier.max - 1; qm > i && !(isvalid = validateRegexToken(matchGroup, !0)); i++) ; 2583 regexPart = regexPartBak + "{" + matchToken.quantifier.min + "," + matchToken.quantifier.max + "}"; 2584 } 2585 } else if (void 0 !== matchToken.matches) for (var k = 0; k < matchToken.length && !(isvalid = validateRegexToken(matchToken[k], fromGroup)); k++) ; else { 2586 var testExp; 2587 if ("[" == matchToken.charAt(0)) { 2588 testExp = regexPart, testExp += matchToken; 2589 for (var j = 0; openGroupCount > j; j++) testExp += ")"; 2590 var exp = new RegExp("^(" + testExp + ")$"); 2591 isvalid = exp.test(bufferStr); 2592 } else for (var l = 0, tl = matchToken.length; tl > l; l++) if ("\\" !== matchToken.charAt(l)) { 2593 testExp = regexPart, testExp += matchToken.substr(0, l + 1), testExp = testExp.replace(/\|$/, ""); 2594 for (var j = 0; openGroupCount > j; j++) testExp += ")"; 2595 var exp = new RegExp("^(" + testExp + ")$"); 2596 if (isvalid = exp.test(bufferStr)) break; 2597 } 2598 regexPart += matchToken; 2599 } 2600 if (isvalid) break; 2601 } 2602 return fromGroup && (regexPart += ")", openGroupCount--), isvalid; 2603 } 2604 var bufferStr, groupToken, cbuffer = maskset.buffer.slice(), regexPart = "", isValid = !1, openGroupCount = 0; 2605 null === opts.regexTokens && analyseRegex(), cbuffer.splice(pos, 0, chrs), bufferStr = cbuffer.join(""); 2606 for (var i = 0; i < opts.regexTokens.length; i++) { 2607 var regexToken = opts.regexTokens[i]; 2608 if (isValid = validateRegexToken(regexToken, regexToken.isGroup)) break; 2609 } 2610 return isValid; 2611 }, 2612 cardinality: 1 2613 } 2614 } 2615 } 2616 }), Inputmask; 2617}(gKweri, Inputmask);
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.