| Path : /var/www/html/mini-moneyexchange/public/assets/libs/inputmask/dist/inputmask/ |
|
B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H |
| Current File : //var/www/html/mini-moneyexchange/public/assets/libs/inputmask/dist/inputmask/inputmask.js |
/*!
* inputmask.js
* https://github.com/RobinHerbots/Inputmask
* Copyright (c) 2010 - 2017 Robin Herbots
* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
* Version: 3.3.11
*/
!(function (factory) {
"function" == typeof define && define.amd
? define(
[
"./dependencyLibs/inputmask.dependencyLib",
"./global/window",
"./global/document",
],
factory
)
: "object" == typeof exports
? (module.exports = factory(
require("./dependencyLibs/inputmask.dependencyLib"),
require("./global/window"),
require("./global/document")
))
: (window.Inputmask = factory(
window.dependencyLib || jQuery,
window,
document
));
})(function ($, window, document, undefined) {
function Inputmask(alias, options, internal) {
if (!(this instanceof Inputmask))
return new Inputmask(alias, options, internal);
(this.el = undefined),
(this.events = {}),
(this.maskset = undefined),
(this.refreshValue = !1),
!0 !== internal &&
($.isPlainObject(alias)
? (options = alias)
: ((options = options || {}).alias = alias),
(this.opts = $.extend(!0, {}, this.defaults, options)),
(this.noMasksCache = options && options.definitions !== undefined),
(this.userOptions = options || {}),
(this.isRTL = this.opts.numericInput),
resolveAlias(this.opts.alias, options, this.opts));
}
function resolveAlias(aliasStr, options, opts) {
var aliasDefinition = Inputmask.prototype.aliases[aliasStr];
return aliasDefinition
? (aliasDefinition.alias &&
resolveAlias(aliasDefinition.alias, undefined, opts),
$.extend(!0, opts, aliasDefinition),
$.extend(!0, opts, options),
!0)
: (null === opts.mask && (opts.mask = aliasStr), !1);
}
function generateMaskSet(opts, nocache) {
function generateMask(mask, metadata, opts) {
var regexMask = !1;
if (
((null !== mask && "" !== mask) ||
((regexMask = null !== opts.regex)
? (mask = (mask = opts.regex).replace(/^(\^)(.*)(\$)$/, "$2"))
: ((regexMask = !0), (mask = ".*"))),
1 === mask.length &&
!1 === opts.greedy &&
0 !== opts.repeat &&
(opts.placeholder = ""),
opts.repeat > 0 || "*" === opts.repeat || "+" === opts.repeat)
) {
var repeatStart =
"*" === opts.repeat ? 0 : "+" === opts.repeat ? 1 : opts.repeat;
mask =
opts.groupmarker.start +
mask +
opts.groupmarker.end +
opts.quantifiermarker.start +
repeatStart +
"," +
opts.repeat +
opts.quantifiermarker.end;
}
var masksetDefinition,
maskdefKey = regexMask
? "regex_" + opts.regex
: opts.numericInput
? mask.split("").reverse().join("")
: mask;
return (
Inputmask.prototype.masksCache[maskdefKey] === undefined ||
!0 === nocache
? ((masksetDefinition = {
mask: mask,
maskToken: Inputmask.prototype.analyseMask(mask, regexMask, opts),
validPositions: {},
_buffer: undefined,
buffer: undefined,
tests: {},
metadata: metadata,
maskLength: undefined,
}),
!0 !== nocache &&
((Inputmask.prototype.masksCache[maskdefKey] = masksetDefinition),
(masksetDefinition = $.extend(
!0,
{},
Inputmask.prototype.masksCache[maskdefKey]
))))
: (masksetDefinition = $.extend(
!0,
{},
Inputmask.prototype.masksCache[maskdefKey]
)),
masksetDefinition
);
}
if (
($.isFunction(opts.mask) && (opts.mask = opts.mask(opts)),
$.isArray(opts.mask))
) {
if (opts.mask.length > 1) {
opts.keepStatic = null === opts.keepStatic || opts.keepStatic;
var altMask = opts.groupmarker.start;
return (
$.each(
opts.numericInput ? opts.mask.reverse() : opts.mask,
function (ndx, msk) {
altMask.length > 1 &&
(altMask +=
opts.groupmarker.end +
opts.alternatormarker +
opts.groupmarker.start),
msk.mask === undefined || $.isFunction(msk.mask)
? (altMask += msk)
: (altMask += msk.mask);
}
),
(altMask += opts.groupmarker.end),
generateMask(altMask, opts.mask, opts)
);
}
opts.mask = opts.mask.pop();
}
return opts.mask &&
opts.mask.mask !== undefined &&
!$.isFunction(opts.mask.mask)
? generateMask(opts.mask.mask, opts.mask, opts)
: generateMask(opts.mask, opts.mask, opts);
}
function maskScope(actionObj, maskset, opts) {
function getMaskTemplate(baseOnInput, minimalPos, includeMode) {
minimalPos = minimalPos || 0;
var ndxIntlzr,
test,
testPos,
maskTemplate = [],
pos = 0,
lvp = getLastValidPosition();
do {
!0 === baseOnInput && getMaskSet().validPositions[pos]
? ((test = (testPos = getMaskSet().validPositions[pos]).match),
(ndxIntlzr = testPos.locator.slice()),
maskTemplate.push(
!0 === includeMode
? testPos.input
: !1 === includeMode
? test.nativeDef
: getPlaceholder(pos, test)
))
: ((test = (testPos = getTestTemplate(pos, ndxIntlzr, pos - 1))
.match),
(ndxIntlzr = testPos.locator.slice()),
(!1 === opts.jitMasking ||
pos < lvp ||
("number" == typeof opts.jitMasking &&
isFinite(opts.jitMasking) &&
opts.jitMasking > pos)) &&
maskTemplate.push(
!1 === includeMode ? test.nativeDef : getPlaceholder(pos, test)
)),
pos++;
} while (((maxLength === undefined || pos < maxLength) && (null !== test.fn || "" !== test.def)) || minimalPos > pos);
return (
"" === maskTemplate[maskTemplate.length - 1] && maskTemplate.pop(),
(getMaskSet().maskLength = pos + 1),
maskTemplate
);
}
function getMaskSet() {
return maskset;
}
function resetMaskSet(soft) {
var maskset = getMaskSet();
(maskset.buffer = undefined),
!0 !== soft && ((maskset.validPositions = {}), (maskset.p = 0));
}
function getLastValidPosition(closestTo, strict, validPositions) {
var before = -1,
after = -1,
valids = validPositions || getMaskSet().validPositions;
closestTo === undefined && (closestTo = -1);
for (var posNdx in valids) {
var psNdx = parseInt(posNdx);
valids[psNdx] &&
(strict || !0 !== valids[psNdx].generatedInput) &&
(psNdx <= closestTo && (before = psNdx),
psNdx >= closestTo && (after = psNdx));
}
return (-1 !== before && closestTo - before > 1) || after < closestTo
? before
: after;
}
function stripValidPositions(start, end, nocheck, strict) {
var i,
startPos = start,
positionsClone = $.extend(!0, {}, getMaskSet().validPositions),
needsValidation = !1;
for (getMaskSet().p = start, i = end - 1; i >= startPos; i--)
getMaskSet().validPositions[i] !== undefined &&
((!0 !== nocheck &&
((!getMaskSet().validPositions[i].match.optionality &&
(function (pos) {
var posMatch = getMaskSet().validPositions[pos];
if (posMatch !== undefined && null === posMatch.match.fn) {
var prevMatch = getMaskSet().validPositions[pos - 1],
nextMatch = getMaskSet().validPositions[pos + 1];
return prevMatch !== undefined && nextMatch !== undefined;
}
return !1;
})(i)) ||
!1 ===
opts.canClearPosition(
getMaskSet(),
i,
getLastValidPosition(),
strict,
opts
))) ||
delete getMaskSet().validPositions[i]);
for (resetMaskSet(!0), i = startPos + 1; i <= getLastValidPosition(); ) {
for (; getMaskSet().validPositions[startPos] !== undefined; )
startPos++;
if (
(i < startPos && (i = startPos + 1),
getMaskSet().validPositions[i] === undefined && isMask(i))
)
i++;
else {
var t = getTestTemplate(i);
!1 === needsValidation &&
positionsClone[startPos] &&
positionsClone[startPos].match.def === t.match.def
? ((getMaskSet().validPositions[startPos] = $.extend(
!0,
{},
positionsClone[startPos]
)),
(getMaskSet().validPositions[startPos].input = t.input),
delete getMaskSet().validPositions[i],
i++)
: positionCanMatchDefinition(startPos, t.match.def)
? !1 !== isValid(startPos, t.input || getPlaceholder(i), !0) &&
(delete getMaskSet().validPositions[i],
i++,
(needsValidation = !0))
: isMask(i) || (i++, startPos--),
startPos++;
}
}
resetMaskSet(!0);
}
function determineTestTemplate(tests, guessNextBest) {
for (
var testPos,
testPositions = tests,
lvp = getLastValidPosition(),
lvTest = getMaskSet().validPositions[lvp] || getTests(0)[0],
lvTestAltArr =
lvTest.alternation !== undefined
? lvTest.locator[lvTest.alternation].toString().split(",")
: [],
ndx = 0;
ndx < testPositions.length &&
(!(
(testPos = testPositions[ndx]).match &&
((opts.greedy && !0 !== testPos.match.optionalQuantifier) ||
((!1 === testPos.match.optionality ||
!1 === testPos.match.newBlockMarker) &&
!0 !== testPos.match.optionalQuantifier)) &&
(lvTest.alternation === undefined ||
lvTest.alternation !== testPos.alternation ||
(testPos.locator[lvTest.alternation] !== undefined &&
checkAlternationMatch(
testPos.locator[lvTest.alternation].toString().split(","),
lvTestAltArr
)))
) ||
(!0 === guessNextBest &&
(null !== testPos.match.fn ||
/[0-9a-bA-Z]/.test(testPos.match.def))));
ndx++
);
return testPos;
}
function getTestTemplate(pos, ndxIntlzr, tstPs) {
return (
getMaskSet().validPositions[pos] ||
determineTestTemplate(
getTests(pos, ndxIntlzr ? ndxIntlzr.slice() : ndxIntlzr, tstPs)
)
);
}
function getTest(pos) {
return getMaskSet().validPositions[pos]
? getMaskSet().validPositions[pos]
: getTests(pos)[0];
}
function positionCanMatchDefinition(pos, def) {
for (
var valid = !1, tests = getTests(pos), tndx = 0;
tndx < tests.length;
tndx++
)
if (tests[tndx].match && tests[tndx].match.def === def) {
valid = !0;
break;
}
return valid;
}
function getTests(pos, ndxIntlzr, tstPs) {
function resolveTestFromToken(
maskToken,
ndxInitializer,
loopNdx,
quantifierRecurse
) {
function handleMatch(match, loopNdx, quantifierRecurse) {
function isFirstMatch(latestMatch, tokenGroup) {
var firstMatch = 0 === $.inArray(latestMatch, tokenGroup.matches);
return (
firstMatch ||
$.each(tokenGroup.matches, function (ndx, match) {
if (
!0 === match.isQuantifier &&
(firstMatch = isFirstMatch(
latestMatch,
tokenGroup.matches[ndx - 1]
))
)
return !1;
}),
firstMatch
);
}
function resolveNdxInitializer(pos, alternateNdx, targetAlternation) {
var bestMatch, indexPos;
if (
getMaskSet().validPositions[pos - 1] &&
targetAlternation &&
getMaskSet().tests[pos]
)
for (
var vpAlternation =
getMaskSet().validPositions[pos - 1].locator,
tpAlternation = getMaskSet().tests[pos][0].locator,
i = 0;
i < targetAlternation;
i++
)
if (vpAlternation[i] !== tpAlternation[i])
return vpAlternation.slice(targetAlternation + 1);
return (
(getMaskSet().tests[pos] || getMaskSet().validPositions[pos]) &&
$.each(
getMaskSet().tests[pos] || [getMaskSet().validPositions[pos]],
function (ndx, lmnt) {
var alternation =
targetAlternation !== undefined
? targetAlternation
: lmnt.alternation,
ndxPos =
lmnt.locator[alternation] !== undefined
? lmnt.locator[alternation]
.toString()
.indexOf(alternateNdx)
: -1;
(indexPos === undefined || ndxPos < indexPos) &&
-1 !== ndxPos &&
((bestMatch = lmnt), (indexPos = ndxPos));
}
),
bestMatch
? bestMatch.locator.slice(
(targetAlternation !== undefined
? targetAlternation
: bestMatch.alternation) + 1
)
: targetAlternation !== undefined
? resolveNdxInitializer(pos, alternateNdx)
: undefined
);
}
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
);
if (testPos === pos && match.matches === undefined)
return (
matches.push({
match: match,
locator: loopNdx.reverse(),
cd: cacheDependency,
}),
!0
);
if (match.matches !== undefined) {
if (match.isGroup && quantifierRecurse !== match) {
if (
(match = handleMatch(
maskToken.matches[$.inArray(match, maskToken.matches) + 1],
loopNdx
))
)
return !0;
} else if (match.isOptional) {
var optionalToken = match;
if (
(match = resolveTestFromToken(
match,
ndxInitializer,
loopNdx,
quantifierRecurse
))
) {
if (
((latestMatch = matches[matches.length - 1].match),
!isFirstMatch(latestMatch, optionalToken))
)
return !0;
(insertStop = !0), (testPos = pos);
}
} else if (match.isAlternator) {
var maltMatches,
alternateToken = match,
malternateMatches = [],
currentMatches = matches.slice(),
loopNdxCnt = loopNdx.length,
altIndex =
ndxInitializer.length > 0 ? ndxInitializer.shift() : -1;
if (-1 === altIndex || "string" == typeof altIndex) {
var amndx,
currentPos = testPos,
ndxInitializerClone = ndxInitializer.slice(),
altIndexArr = [];
if ("string" == typeof altIndex)
altIndexArr = altIndex.split(",");
else
for (
amndx = 0;
amndx < alternateToken.matches.length;
amndx++
)
altIndexArr.push(amndx);
for (var ndx = 0; ndx < altIndexArr.length; ndx++) {
if (
((amndx = parseInt(altIndexArr[ndx])),
(matches = []),
(ndxInitializer =
resolveNdxInitializer(testPos, amndx, loopNdxCnt) ||
ndxInitializerClone.slice()),
!0 !==
(match =
handleMatch(
alternateToken.matches[amndx] ||
maskToken.matches[amndx],
[amndx].concat(loopNdx),
quantifierRecurse
) || match) &&
match !== undefined &&
altIndexArr[altIndexArr.length - 1] <
alternateToken.matches.length)
) {
var ntndx = $.inArray(match, maskToken.matches) + 1;
maskToken.matches.length > ntndx &&
(match = handleMatch(
maskToken.matches[ntndx],
[ntndx].concat(loopNdx.slice(1, loopNdx.length)),
quantifierRecurse
)) &&
(altIndexArr.push(ntndx.toString()),
$.each(matches, function (ndx, lmnt) {
lmnt.alternation = loopNdx.length - 1;
}));
}
(maltMatches = matches.slice()),
(testPos = currentPos),
(matches = []);
for (var ndx1 = 0; ndx1 < maltMatches.length; ndx1++) {
var altMatch = maltMatches[ndx1],
dropMatch = !1;
altMatch.alternation = altMatch.alternation || loopNdxCnt;
for (
var ndx2 = 0;
ndx2 < malternateMatches.length;
ndx2++
) {
var altMatch2 = malternateMatches[ndx2];
if (
"string" != typeof altIndex ||
-1 !==
$.inArray(
altMatch.locator[altMatch.alternation].toString(),
altIndexArr
)
) {
if (
(function (source, target) {
return (
source.match.nativeDef ===
target.match.nativeDef ||
source.match.def === target.match.nativeDef ||
source.match.nativeDef === target.match.def
);
})(altMatch, altMatch2)
) {
(dropMatch = !0),
altMatch.alternation === altMatch2.alternation &&
-1 ===
altMatch2.locator[altMatch2.alternation]
.toString()
.indexOf(
altMatch.locator[altMatch.alternation]
) &&
((altMatch2.locator[altMatch2.alternation] =
altMatch2.locator[altMatch2.alternation] +
"," +
altMatch.locator[altMatch.alternation]),
(altMatch2.alternation = altMatch.alternation)),
altMatch.match.nativeDef === altMatch2.match.def &&
((altMatch.locator[altMatch.alternation] =
altMatch2.locator[altMatch2.alternation]),
malternateMatches.splice(
malternateMatches.indexOf(altMatch2),
1,
altMatch
));
break;
}
if (altMatch.match.def === altMatch2.match.def) {
dropMatch = !1;
break;
}
if (
(function (source, target) {
return (
null === source.match.fn &&
null !== target.match.fn &&
target.match.fn.test(
source.match.def,
getMaskSet(),
pos,
!1,
opts,
!1
)
);
})(altMatch, altMatch2) ||
(function (source, target) {
return (
null !== source.match.fn &&
null !== target.match.fn &&
target.match.fn.test(
source.match.def.replace(/[\[\]]/g, ""),
getMaskSet(),
pos,
!1,
opts,
!1
)
);
})(altMatch, altMatch2)
) {
altMatch.alternation === altMatch2.alternation &&
-1 ===
altMatch.locator[altMatch.alternation]
.toString()
.indexOf(
altMatch2.locator[altMatch2.alternation]
.toString()
.split("")[0]
) &&
((altMatch.na =
altMatch.na ||
altMatch.locator[
altMatch.alternation
].toString()),
-1 ===
altMatch.na.indexOf(
altMatch.locator[altMatch.alternation]
.toString()
.split("")[0]
) &&
(altMatch.na =
altMatch.na +
"," +
altMatch.locator[altMatch2.alternation]
.toString()
.split("")[0]),
(dropMatch = !0),
(altMatch.locator[altMatch.alternation] =
altMatch2.locator[altMatch2.alternation]
.toString()
.split("")[0] +
"," +
altMatch.locator[altMatch.alternation]),
malternateMatches.splice(
malternateMatches.indexOf(altMatch2),
0,
altMatch
));
break;
}
}
}
dropMatch || malternateMatches.push(altMatch);
}
}
"string" == typeof altIndex &&
(malternateMatches = $.map(
malternateMatches,
function (lmnt, ndx) {
if (isFinite(ndx)) {
var alternation = lmnt.alternation,
altLocArr = lmnt.locator[alternation]
.toString()
.split(",");
(lmnt.locator[alternation] = undefined),
(lmnt.alternation = undefined);
for (var alndx = 0; alndx < altLocArr.length; alndx++)
-1 !== $.inArray(altLocArr[alndx], altIndexArr) &&
(lmnt.locator[alternation] !== undefined
? ((lmnt.locator[alternation] += ","),
(lmnt.locator[alternation] += altLocArr[alndx]))
: (lmnt.locator[alternation] = parseInt(
altLocArr[alndx]
)),
(lmnt.alternation = alternation));
if (lmnt.locator[alternation] !== undefined)
return lmnt;
}
}
)),
(matches = currentMatches.concat(malternateMatches)),
(testPos = pos),
(insertStop = matches.length > 0),
(match = malternateMatches.length > 0),
(ndxInitializer = ndxInitializerClone.slice());
} else
match = handleMatch(
alternateToken.matches[altIndex] ||
maskToken.matches[altIndex],
[altIndex].concat(loopNdx),
quantifierRecurse
);
if (match) return !0;
} 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) &&
testPos <= pos;
qndx++
) {
var tokenGroup =
maskToken.matches[$.inArray(qt, maskToken.matches) - 1];
if (
(match = handleMatch(
tokenGroup,
[qndx].concat(loopNdx),
tokenGroup
))
) {
if (
((latestMatch = matches[matches.length - 1].match),
(latestMatch.optionalQuantifier =
qndx > qt.quantifier.min - 1),
isFirstMatch(latestMatch, tokenGroup))
) {
if (qndx > qt.quantifier.min - 1) {
(insertStop = !0), (testPos = pos);
break;
}
return !0;
}
return !0;
}
}
else if (
(match = resolveTestFromToken(
match,
ndxInitializer,
loopNdx,
quantifierRecurse
))
)
return !0;
} else testPos++;
}
for (
var tndx = ndxInitializer.length > 0 ? ndxInitializer.shift() : 0;
tndx < maskToken.matches.length;
tndx++
)
if (!0 !== maskToken.matches[tndx].isQuantifier) {
var match = handleMatch(
maskToken.matches[tndx],
[tndx].concat(loopNdx),
quantifierRecurse
);
if (match && testPos === pos) return match;
if (testPos > pos) break;
}
}
function filterTests(tests) {
if (
opts.keepStatic &&
pos > 0 &&
tests.length >
1 + ("" === tests[tests.length - 1].match.def ? 1 : 0) &&
!0 !== tests[0].match.optionality &&
!0 !== tests[0].match.optionalQuantifier &&
null === tests[0].match.fn &&
!/[0-9a-bA-Z]/.test(tests[0].match.def)
) {
if (getMaskSet().validPositions[pos - 1] === undefined)
return [determineTestTemplate(tests)];
if (
getMaskSet().validPositions[pos - 1].alternation ===
tests[0].alternation
)
return [determineTestTemplate(tests)];
if (getMaskSet().validPositions[pos - 1])
return [determineTestTemplate(tests)];
}
return tests;
}
var latestMatch,
maskTokens = getMaskSet().maskToken,
testPos = ndxIntlzr ? tstPs : 0,
ndxInitializer = ndxIntlzr ? ndxIntlzr.slice() : [0],
matches = [],
insertStop = !1,
cacheDependency = ndxIntlzr ? ndxIntlzr.join("") : "";
if (pos > -1) {
if (ndxIntlzr === undefined) {
for (
var test, previousPos = pos - 1;
(test =
getMaskSet().validPositions[previousPos] ||
getMaskSet().tests[previousPos]) === undefined &&
previousPos > -1;
)
previousPos--;
test !== undefined &&
previousPos > -1 &&
((ndxInitializer = (function (tests) {
var locator = [];
return (
$.isArray(tests) || (tests = [tests]),
tests.length > 0 &&
(tests[0].alternation === undefined
? 0 ===
(locator = determineTestTemplate(
tests.slice()
).locator.slice()).length &&
(locator = tests[0].locator.slice())
: $.each(tests, function (ndx, tst) {
if ("" !== tst.def)
if (0 === locator.length)
locator = tst.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]);
})),
locator
);
})(test)),
(cacheDependency = ndxInitializer.join("")),
(testPos = previousPos));
}
if (
getMaskSet().tests[pos] &&
getMaskSet().tests[pos][0].cd === cacheDependency
)
return filterTests(getMaskSet().tests[pos]);
for (
var mtndx = ndxInitializer.shift();
mtndx < maskTokens.length &&
!(
(resolveTestFromToken(maskTokens[mtndx], ndxInitializer, [mtndx]) &&
testPos === pos) ||
testPos > pos
);
mtndx++
);
}
return (
(0 === matches.length || insertStop) &&
matches.push({
match: {
fn: null,
cardinality: 0,
optionality: !0,
casing: null,
def: "",
placeholder: "",
},
locator: [],
cd: cacheDependency,
}),
ndxIntlzr !== undefined && getMaskSet().tests[pos]
? filterTests($.extend(!0, [], matches))
: ((getMaskSet().tests[pos] = $.extend(!0, [], matches)),
filterTests(getMaskSet().tests[pos]))
);
}
function getBufferTemplate() {
return (
getMaskSet()._buffer === undefined &&
((getMaskSet()._buffer = getMaskTemplate(!1, 1)),
getMaskSet().buffer === undefined &&
(getMaskSet().buffer = getMaskSet()._buffer.slice())),
getMaskSet()._buffer
);
}
function getBuffer(noCache) {
return (
(getMaskSet().buffer !== undefined && !0 !== noCache) ||
(getMaskSet().buffer = getMaskTemplate(
!0,
getLastValidPosition(),
!0
)),
getMaskSet().buffer
);
}
function refreshFromBuffer(start, end, buffer) {
var i, p;
if (!0 === start) resetMaskSet(), (start = 0), (end = buffer.length);
else for (i = start; i < end; i++) delete getMaskSet().validPositions[i];
for (p = start, i = start; i < end; i++)
if ((resetMaskSet(!0), buffer[i] !== opts.skipOptionalPartCharacter)) {
var valResult = isValid(p, buffer[i], !0, !0);
!1 !== valResult &&
(resetMaskSet(!0),
(p =
valResult.caret !== undefined
? valResult.caret
: valResult.pos + 1));
}
}
function casing(elem, test, pos) {
switch (opts.casing || test.casing) {
case "upper":
elem = elem.toUpperCase();
break;
case "lower":
elem = elem.toLowerCase();
break;
case "title":
var posBefore = getMaskSet().validPositions[pos - 1];
elem =
0 === pos ||
(posBefore &&
posBefore.input === String.fromCharCode(Inputmask.keyCode.SPACE))
? elem.toUpperCase()
: elem.toLowerCase();
break;
default:
if ($.isFunction(opts.casing)) {
var args = Array.prototype.slice.call(arguments);
args.push(getMaskSet().validPositions),
(elem = opts.casing.apply(this, args));
}
}
return elem;
}
function checkAlternationMatch(altArr1, altArr2, na) {
for (
var naNdx,
altArrC = opts.greedy ? altArr2 : altArr2.slice(0, 1),
isMatch = !1,
naArr = na !== undefined ? na.split(",") : [],
i = 0;
i < naArr.length;
i++
)
-1 !== (naNdx = altArr1.indexOf(naArr[i])) && altArr1.splice(naNdx, 1);
for (var alndx = 0; alndx < altArr1.length; alndx++)
if (-1 !== $.inArray(altArr1[alndx], altArrC)) {
isMatch = !0;
break;
}
return isMatch;
}
function isValid(
pos,
c,
strict,
fromSetValid,
fromAlternate,
validateOnly
) {
function isSelection(posObj) {
var selection = isRTL
? posObj.begin - posObj.end > 1 || posObj.begin - posObj.end == 1
: posObj.end - posObj.begin > 1 || posObj.end - posObj.begin == 1;
return selection &&
0 === posObj.begin &&
posObj.end === getMaskSet().maskLength
? "full"
: selection;
}
function _isValid(position, c, strict) {
var rslt = !1;
return (
$.each(getTests(position), function (ndx, tst) {
for (
var test = tst.match,
loopend = c ? 1 : 0,
chrs = "",
i = test.cardinality;
i > loopend;
i--
)
chrs += getBufferElement(position - (i - 1));
if (
(c && (chrs += c),
getBuffer(!0),
!1 !==
(rslt =
null != test.fn
? test.fn.test(
chrs,
getMaskSet(),
position,
strict,
opts,
isSelection(pos)
)
: (c === test.def ||
c === opts.skipOptionalPartCharacter) &&
"" !== test.def && {
c: getPlaceholder(position, test, !0) || test.def,
pos: position,
}))
) {
var elem = rslt.c !== undefined ? rslt.c : c;
elem =
elem === opts.skipOptionalPartCharacter && null === test.fn
? getPlaceholder(position, test, !0) || test.def
: elem;
var validatedPos = position,
possibleModifiedBuffer = getBuffer();
if (
(rslt.remove !== undefined &&
($.isArray(rslt.remove) || (rslt.remove = [rslt.remove]),
$.each(
rslt.remove.sort(function (a, b) {
return b - a;
}),
function (ndx, lmnt) {
stripValidPositions(lmnt, lmnt + 1, !0);
}
)),
rslt.insert !== undefined &&
($.isArray(rslt.insert) || (rslt.insert = [rslt.insert]),
$.each(
rslt.insert.sort(function (a, b) {
return a - b;
}),
function (ndx, lmnt) {
isValid(lmnt.pos, lmnt.c, !0, fromSetValid);
}
)),
rslt.refreshFromBuffer)
) {
var refresh = rslt.refreshFromBuffer;
if (
(refreshFromBuffer(
!0 === refresh ? refresh : refresh.start,
refresh.end,
possibleModifiedBuffer
),
rslt.pos === undefined && rslt.c === undefined)
)
return (rslt.pos = getLastValidPosition()), !1;
if (
(validatedPos =
rslt.pos !== undefined ? rslt.pos : position) !== position
)
return (
(rslt = $.extend(
rslt,
isValid(validatedPos, elem, !0, fromSetValid)
)),
!1
);
} else if (
!0 !== rslt &&
rslt.pos !== undefined &&
rslt.pos !== position &&
((validatedPos = rslt.pos),
refreshFromBuffer(position, validatedPos, getBuffer().slice()),
validatedPos !== position)
)
return (
(rslt = $.extend(rslt, isValid(validatedPos, elem, !0))), !1
);
return (
(!0 === rslt ||
rslt.pos !== undefined ||
rslt.c !== undefined) &&
(ndx > 0 && resetMaskSet(!0),
setValidPosition(
validatedPos,
$.extend({}, tst, {
input: casing(elem, test, validatedPos),
}),
fromSetValid,
isSelection(pos)
) || (rslt = !1),
!1)
);
}
}),
rslt
);
}
function setValidPosition(pos, validTest, fromSetValid, isSelection) {
if (
isSelection ||
(opts.insertMode &&
getMaskSet().validPositions[pos] !== undefined &&
fromSetValid === undefined)
) {
var i,
positionsClone = $.extend(!0, {}, getMaskSet().validPositions),
lvp = getLastValidPosition(undefined, !0);
for (i = pos; i <= lvp; i++) delete getMaskSet().validPositions[i];
getMaskSet().validPositions[pos] = $.extend(!0, {}, validTest);
var j,
valid = !0,
vps = getMaskSet().validPositions,
needsValidation = !1,
initialLength = getMaskSet().maskLength;
for (i = j = pos; i <= lvp; i++) {
var t = positionsClone[i];
if (t !== undefined)
for (
var posMatch = j;
posMatch < getMaskSet().maskLength &&
((null === t.match.fn &&
vps[i] &&
(!0 === vps[i].match.optionalQuantifier ||
!0 === vps[i].match.optionality)) ||
null != t.match.fn);
) {
if (
(posMatch++,
!1 === needsValidation &&
positionsClone[posMatch] &&
positionsClone[posMatch].match.def === t.match.def)
)
(getMaskSet().validPositions[posMatch] = $.extend(
!0,
{},
positionsClone[posMatch]
)),
(getMaskSet().validPositions[posMatch].input = t.input),
fillMissingNonMask(posMatch),
(j = posMatch),
(valid = !0);
else if (positionCanMatchDefinition(posMatch, t.match.def)) {
var result = isValid(posMatch, t.input, !0, !0);
(valid = !1 !== result),
(j =
result.caret || result.insert
? getLastValidPosition()
: posMatch),
(needsValidation = !0);
} else if (
!(valid = !0 === t.generatedInput) &&
posMatch >= getMaskSet().maskLength - 1
)
break;
if (
(getMaskSet().maskLength < initialLength &&
(getMaskSet().maskLength = initialLength),
valid)
)
break;
}
if (!valid) break;
}
if (!valid)
return (
(getMaskSet().validPositions = $.extend(!0, {}, positionsClone)),
resetMaskSet(!0),
!1
);
} else getMaskSet().validPositions[pos] = $.extend(!0, {}, validTest);
return resetMaskSet(!0), !0;
}
function fillMissingNonMask(maskPos) {
for (
var pndx = maskPos - 1;
pndx > -1 && !getMaskSet().validPositions[pndx];
pndx--
);
var testTemplate, testsFromPos;
for (pndx++; pndx < maskPos; pndx++)
getMaskSet().validPositions[pndx] === undefined &&
(!1 === opts.jitMasking || opts.jitMasking > pndx) &&
("" ===
(testsFromPos = getTests(
pndx,
getTestTemplate(pndx - 1).locator,
pndx - 1
).slice())[testsFromPos.length - 1].match.def &&
testsFromPos.pop(),
(testTemplate = determineTestTemplate(testsFromPos)) &&
(testTemplate.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
))) &&
!1 !==
(result = _isValid(
pndx,
getPlaceholder(pndx, testTemplate.match, !0) ||
(null == testTemplate.match.fn
? testTemplate.match.def
: "" !== getPlaceholder(pndx)
? getPlaceholder(pndx)
: getBuffer()[pndx]),
!0
)) &&
(getMaskSet().validPositions[result.pos || pndx].generatedInput =
!0));
}
strict = !0 === strict;
var maskPos = pos;
pos.begin !== undefined &&
(maskPos = isRTL && !isSelection(pos) ? pos.end : pos.begin);
var result = !0,
positionsClone = $.extend(!0, {}, getMaskSet().validPositions);
if (
($.isFunction(opts.preValidation) &&
!strict &&
!0 !== fromSetValid &&
!0 !== validateOnly &&
(result = opts.preValidation(
getBuffer(),
maskPos,
c,
isSelection(pos),
opts
)),
!0 === result)
) {
if (
(fillMissingNonMask(maskPos),
isSelection(pos) &&
(handleRemove(undefined, Inputmask.keyCode.DELETE, pos, !0, !0),
(maskPos = getMaskSet().p)),
maskPos < getMaskSet().maskLength &&
(maxLength === undefined || maskPos < maxLength) &&
((result = _isValid(maskPos, c, strict)),
(!strict || !0 === fromSetValid) &&
!1 === result &&
!0 !== validateOnly))
) {
var currentPosValid = getMaskSet().validPositions[maskPos];
if (
!currentPosValid ||
null !== currentPosValid.match.fn ||
(currentPosValid.match.def !== c &&
c !== opts.skipOptionalPartCharacter)
) {
if (
(opts.insertMode ||
getMaskSet().validPositions[seekNext(maskPos)] === undefined) &&
!isMask(maskPos, !0)
)
for (
var nPos = maskPos + 1, snPos = seekNext(maskPos);
nPos <= snPos;
nPos++
)
if (!1 !== (result = _isValid(nPos, c, strict))) {
!(function (originalPos, newPos) {
var vp = getMaskSet().validPositions[newPos];
if (vp)
for (
var targetLocator = vp.locator,
tll = targetLocator.length,
ps = originalPos;
ps < newPos;
ps++
)
if (
getMaskSet().validPositions[ps] === undefined &&
!isMask(ps, !0)
) {
var tests = getTests(ps).slice(),
bestMatch = determineTestTemplate(tests, !0),
equality = -1;
"" === tests[tests.length - 1].match.def &&
tests.pop(),
$.each(tests, function (ndx, tst) {
for (var i = 0; i < tll; i++) {
if (
tst.locator[i] === undefined ||
!checkAlternationMatch(
tst.locator[i].toString().split(","),
targetLocator[i].toString().split(","),
tst.na
)
) {
var targetAI = targetLocator[i],
bestMatchAI = bestMatch.locator[i],
tstAI = tst.locator[i];
targetAI - bestMatchAI >
Math.abs(targetAI - tstAI) &&
(bestMatch = tst);
break;
}
equality < i &&
((equality = i), (bestMatch = tst));
}
}),
((bestMatch = $.extend({}, bestMatch, {
input:
getPlaceholder(ps, bestMatch.match, !0) ||
bestMatch.match.def,
})).generatedInput = !0),
setValidPosition(ps, bestMatch, !0),
(getMaskSet().validPositions[newPos] = undefined),
_isValid(newPos, vp.input, !0);
}
})(maskPos, result.pos !== undefined ? result.pos : nPos),
(maskPos = nPos);
break;
}
} else
result = {
caret: seekNext(maskPos),
};
}
!1 === result &&
opts.keepStatic &&
!strict &&
!0 !== fromAlternate &&
(result = (function (pos, c, strict) {
var lastAlt,
alternation,
altPos,
prevAltPos,
i,
validPos,
altNdxs,
decisionPos,
validPsClone = $.extend(!0, {}, getMaskSet().validPositions),
isValidRslt = !1,
lAltPos = getLastValidPosition();
for (
prevAltPos = getMaskSet().validPositions[lAltPos];
lAltPos >= 0;
lAltPos--
)
if (
(altPos = getMaskSet().validPositions[lAltPos]) &&
altPos.alternation !== undefined
) {
if (
((lastAlt = lAltPos),
(alternation =
getMaskSet().validPositions[lastAlt].alternation),
prevAltPos.locator[altPos.alternation] !==
altPos.locator[altPos.alternation])
)
break;
prevAltPos = altPos;
}
if (alternation !== undefined) {
decisionPos = parseInt(lastAlt);
var decisionTaker =
prevAltPos.locator[prevAltPos.alternation || alternation] !==
undefined
? prevAltPos.locator[prevAltPos.alternation || alternation]
: altNdxs[0];
decisionTaker.length > 0 &&
(decisionTaker = decisionTaker.split(",")[0]);
var possibilityPos = getMaskSet().validPositions[decisionPos],
prevPos = getMaskSet().validPositions[decisionPos - 1];
$.each(
getTests(
decisionPos,
prevPos ? prevPos.locator : undefined,
decisionPos - 1
),
function (ndx, test) {
altNdxs = test.locator[alternation]
? test.locator[alternation].toString().split(",")
: [];
for (var mndx = 0; mndx < altNdxs.length; mndx++) {
var validInputs = [],
staticInputsBeforePos = 0,
staticInputsBeforePosAlternate = 0,
verifyValidInput = !1;
if (
decisionTaker < altNdxs[mndx] &&
(test.na === undefined ||
-1 === $.inArray(altNdxs[mndx], test.na.split(",")) ||
-1 === $.inArray(decisionTaker.toString(), altNdxs))
) {
getMaskSet().validPositions[decisionPos] = $.extend(
!0,
{},
test
);
var possibilities =
getMaskSet().validPositions[decisionPos].locator;
for (
getMaskSet().validPositions[decisionPos].locator[
alternation
] = parseInt(altNdxs[mndx]),
null == test.match.fn
? (possibilityPos.input !== test.match.def &&
((verifyValidInput = !0),
!0 !== possibilityPos.generatedInput &&
validInputs.push(possibilityPos.input)),
staticInputsBeforePosAlternate++,
(getMaskSet().validPositions[
decisionPos
].generatedInput = !/[0-9a-bA-Z]/.test(
test.match.def
)),
(getMaskSet().validPositions[decisionPos].input =
test.match.def))
: (getMaskSet().validPositions[decisionPos].input =
possibilityPos.input),
i = decisionPos + 1;
i < getLastValidPosition(undefined, !0) + 1;
i++
)
(validPos = getMaskSet().validPositions[i]) &&
!0 !== validPos.generatedInput &&
/[0-9a-bA-Z]/.test(validPos.input)
? validInputs.push(validPos.input)
: i < pos && staticInputsBeforePos++,
delete getMaskSet().validPositions[i];
for (
verifyValidInput &&
validInputs[0] === test.match.def &&
validInputs.shift(),
resetMaskSet(!0),
isValidRslt = !0;
validInputs.length > 0;
) {
var input = validInputs.shift();
if (
input !== opts.skipOptionalPartCharacter &&
!(isValidRslt = isValid(
getLastValidPosition(undefined, !0) + 1,
input,
!1,
fromSetValid,
!0
))
)
break;
}
if (isValidRslt) {
getMaskSet().validPositions[decisionPos].locator =
possibilities;
var targetLvp = getLastValidPosition(pos) + 1;
for (
i = decisionPos + 1;
i < getLastValidPosition() + 1;
i++
)
((validPos = getMaskSet().validPositions[i]) ===
undefined ||
null == validPos.match.fn) &&
i <
pos +
(staticInputsBeforePosAlternate -
staticInputsBeforePos) &&
staticInputsBeforePosAlternate++;
isValidRslt = isValid(
(pos +=
staticInputsBeforePosAlternate -
staticInputsBeforePos) > targetLvp
? targetLvp
: pos,
c,
strict,
fromSetValid,
!0
);
}
if (isValidRslt) return !1;
resetMaskSet(),
(getMaskSet().validPositions = $.extend(
!0,
{},
validPsClone
));
}
}
}
);
}
return isValidRslt;
})(maskPos, c, strict)),
!0 === result &&
(result = {
pos: maskPos,
});
}
if (
$.isFunction(opts.postValidation) &&
!1 !== result &&
!strict &&
!0 !== fromSetValid &&
!0 !== validateOnly
) {
var postResult = opts.postValidation(getBuffer(!0), result, opts);
if (postResult.refreshFromBuffer && postResult.buffer) {
var refresh = postResult.refreshFromBuffer;
refreshFromBuffer(
!0 === refresh ? refresh : refresh.start,
refresh.end,
postResult.buffer
);
}
result = !0 === postResult ? result : postResult;
}
return (
result && result.pos === undefined && (result.pos = maskPos),
(!1 !== result && !0 !== validateOnly) ||
(resetMaskSet(!0),
(getMaskSet().validPositions = $.extend(!0, {}, positionsClone))),
result
);
}
function isMask(pos, strict) {
var test = getTestTemplate(pos).match;
if (("" === test.def && (test = getTest(pos).match), null != test.fn))
return test.fn;
if (!0 !== strict && pos > -1) {
var tests = getTests(pos);
return (
tests.length > 1 + ("" === tests[tests.length - 1].match.def ? 1 : 0)
);
}
return !1;
}
function seekNext(pos, newBlock) {
var maskL = getMaskSet().maskLength;
if (pos >= maskL) return maskL;
var position = pos;
for (
getTests(maskL + 1).length > 1 &&
(getMaskTemplate(!0, maskL + 1, !0), (maskL = getMaskSet().maskLength));
++position < maskL &&
((!0 === newBlock &&
(!0 !== getTest(position).match.newBlockMarker ||
!isMask(position))) ||
(!0 !== newBlock && !isMask(position)));
);
return position;
}
function seekPrevious(pos, newBlock) {
var tests,
position = pos;
if (position <= 0) return 0;
for (
;
--position > 0 &&
((!0 === newBlock && !0 !== getTest(position).match.newBlockMarker) ||
(!0 !== newBlock &&
!isMask(position) &&
((tests = getTests(position)).length < 2 ||
(2 === tests.length && "" === tests[1].match.def))));
);
return position;
}
function getBufferElement(position) {
return getMaskSet().validPositions[position] === undefined
? getPlaceholder(position)
: getMaskSet().validPositions[position].input;
}
function writeBuffer(input, buffer, caretPos, event, triggerInputEvent) {
if (event && $.isFunction(opts.onBeforeWrite)) {
var result = opts.onBeforeWrite.call(
inputmask,
event,
buffer,
caretPos,
opts
);
if (result) {
if (result.refreshFromBuffer) {
var refresh = result.refreshFromBuffer;
refreshFromBuffer(
!0 === refresh ? refresh : refresh.start,
refresh.end,
result.buffer || buffer
),
(buffer = getBuffer(!0));
}
caretPos !== undefined &&
(caretPos = result.caret !== undefined ? result.caret : caretPos);
}
}
input !== undefined &&
(input.inputmask._valueSet(buffer.join("")),
caretPos === undefined || (event !== undefined && "blur" === event.type)
? renderColorMask(input, caretPos, 0 === buffer.length)
: android && event && "input" === event.type
? setTimeout(function () {
caret(input, caretPos);
}, 0)
: caret(input, caretPos),
!0 === triggerInputEvent &&
((skipInputEvent = !0), $(input).trigger("input")));
}
function getPlaceholder(pos, test, returnPL) {
if (
(test = test || getTest(pos).match).placeholder !== undefined ||
!0 === returnPL
)
return $.isFunction(test.placeholder)
? test.placeholder(opts)
: test.placeholder;
if (null === test.fn) {
if (pos > -1 && getMaskSet().validPositions[pos] === undefined) {
var prevTest,
tests = getTests(pos),
staticAlternations = [];
if (
tests.length >
1 + ("" === tests[tests.length - 1].match.def ? 1 : 0)
)
for (var i = 0; i < tests.length; i++)
if (
!0 !== tests[i].match.optionality &&
!0 !== tests[i].match.optionalQuantifier &&
(null === tests[i].match.fn ||
prevTest === undefined ||
!1 !==
tests[i].match.fn.test(
prevTest.match.def,
getMaskSet(),
pos,
!0,
opts
)) &&
(staticAlternations.push(tests[i]),
null === tests[i].match.fn && (prevTest = tests[i]),
staticAlternations.length > 1 &&
/[0-9a-bA-Z]/.test(staticAlternations[0].match.def))
)
return opts.placeholder.charAt(pos % opts.placeholder.length);
}
return test.def;
}
return opts.placeholder.charAt(pos % opts.placeholder.length);
}
function checkVal(input, writeOut, strict, nptvl, initiatingEvent) {
function isTemplateMatch(ndx, charCodes) {
return (
-1 !==
getBufferTemplate()
.slice(ndx, seekNext(ndx))
.join("")
.indexOf(charCodes) &&
!isMask(ndx) &&
getTest(ndx).match.nativeDef ===
charCodes.charAt(charCodes.length - 1)
);
}
var inputValue = nptvl.slice(),
charCodes = "",
initialNdx = -1,
result = undefined;
if ((resetMaskSet(), strict || !0 === opts.autoUnmask))
initialNdx = seekNext(initialNdx);
else {
var staticInput = getBufferTemplate().slice(0, seekNext(-1)).join(""),
matches = inputValue
.join("")
.match(new RegExp("^" + Inputmask.escapeRegex(staticInput), "g"));
matches &&
matches.length > 0 &&
(inputValue.splice(0, matches.length * staticInput.length),
(initialNdx = seekNext(initialNdx)));
}
if (
(-1 === initialNdx
? ((getMaskSet().p = seekNext(initialNdx)), (initialNdx = 0))
: (getMaskSet().p = initialNdx),
$.each(inputValue, function (ndx, charCode) {
if (charCode !== undefined)
if (
getMaskSet().validPositions[ndx] === undefined &&
inputValue[ndx] === getPlaceholder(ndx) &&
isMask(ndx, !0) &&
!1 === isValid(ndx, inputValue[ndx], !0, undefined, undefined, !0)
)
getMaskSet().p++;
else {
var keypress = new $.Event("_checkval");
(keypress.which = charCode.charCodeAt(0)),
(charCodes += charCode);
var lvp = getLastValidPosition(undefined, !0),
lvTest = getMaskSet().validPositions[lvp],
nextTest = getTestTemplate(
lvp + 1,
lvTest ? lvTest.locator.slice() : undefined,
lvp
);
if (
!isTemplateMatch(initialNdx, charCodes) ||
strict ||
opts.autoUnmask
) {
var pos = strict
? ndx
: null == nextTest.match.fn &&
nextTest.match.optionality &&
lvp + 1 < getMaskSet().p
? lvp + 1
: getMaskSet().p;
(result = EventHandlers.keypressEvent.call(
input,
keypress,
!0,
!1,
strict,
pos
)),
(initialNdx = pos + 1),
(charCodes = "");
} else
result = EventHandlers.keypressEvent.call(
input,
keypress,
!0,
!1,
!0,
lvp + 1
);
if (
!1 !== result &&
!strict &&
$.isFunction(opts.onBeforeWrite)
) {
var origResult = result;
if (
((result = opts.onBeforeWrite.call(
inputmask,
keypress,
getBuffer(),
result.forwardPosition,
opts
)),
(result = $.extend(origResult, result)) &&
result.refreshFromBuffer)
) {
var refresh = result.refreshFromBuffer;
refreshFromBuffer(
!0 === refresh ? refresh : refresh.start,
refresh.end,
result.buffer
),
resetMaskSet(!0),
result.caret &&
((getMaskSet().p = result.caret),
(result.forwardPosition = result.caret));
}
}
}
}),
writeOut)
) {
var caretPos = undefined;
document.activeElement === input &&
result &&
(caretPos = opts.numericInput
? seekPrevious(result.forwardPosition)
: result.forwardPosition),
writeBuffer(
input,
getBuffer(),
caretPos,
initiatingEvent || new $.Event("checkval"),
initiatingEvent && "input" === initiatingEvent.type
);
}
}
function unmaskedvalue(input) {
if (input) {
if (input.inputmask === undefined) return input.value;
input.inputmask &&
input.inputmask.refreshValue &&
EventHandlers.setValueEvent.call(input);
}
var umValue = [],
vps = getMaskSet().validPositions;
for (var pndx in vps)
vps[pndx].match &&
null != vps[pndx].match.fn &&
umValue.push(vps[pndx].input);
var unmaskedValue =
0 === umValue.length
? ""
: (isRTL ? umValue.reverse() : umValue).join("");
if ($.isFunction(opts.onUnMask)) {
var bufferValue = (
isRTL ? getBuffer().slice().reverse() : getBuffer()
).join("");
unmaskedValue = opts.onUnMask.call(
inputmask,
bufferValue,
unmaskedValue,
opts
);
}
return unmaskedValue;
}
function caret(input, begin, end, notranslate) {
function translatePosition(pos) {
return (
!0 === notranslate ||
!isRTL ||
"number" != typeof pos ||
(opts.greedy && "" === opts.placeholder) ||
(pos = getBuffer().join("").length - pos),
pos
);
}
var range;
if (begin === undefined)
return (
input.setSelectionRange
? ((begin = input.selectionStart), (end = input.selectionEnd))
: window.getSelection
? ((range = window.getSelection().getRangeAt(0))
.commonAncestorContainer.parentNode !== input &&
range.commonAncestorContainer !== input) ||
((begin = range.startOffset), (end = range.endOffset))
: document.selection &&
document.selection.createRange &&
(end =
(begin =
0 -
(range = document.selection.createRange())
.duplicate()
.moveStart(
"character",
-input.inputmask._valueGet().length
)) + range.text.length),
{
begin: translatePosition(begin),
end: translatePosition(end),
}
);
if (
(begin.begin !== undefined &&
((end = begin.end), (begin = begin.begin)),
"number" == typeof begin)
) {
(begin = translatePosition(begin)),
(end =
"number" == typeof (end = translatePosition(end)) ? end : begin);
var scrollCalc =
parseInt(
((input.ownerDocument.defaultView || window).getComputedStyle
? (input.ownerDocument.defaultView || window).getComputedStyle(
input,
null
)
: input.currentStyle
).fontSize
) * end;
if (
((input.scrollLeft = scrollCalc > input.scrollWidth ? scrollCalc : 0),
mobile || !1 !== opts.insertMode || begin !== end || end++,
input.setSelectionRange)
)
(input.selectionStart = begin), (input.selectionEnd = end);
else if (window.getSelection) {
if (
((range = document.createRange()),
input.firstChild === undefined || null === input.firstChild)
) {
var textNode = document.createTextNode("");
input.appendChild(textNode);
}
range.setStart(
input.firstChild,
begin < input.inputmask._valueGet().length
? begin
: input.inputmask._valueGet().length
),
range.setEnd(
input.firstChild,
end < input.inputmask._valueGet().length
? end
: input.inputmask._valueGet().length
),
range.collapse(!0);
var sel = window.getSelection();
sel.removeAllRanges(), sel.addRange(range);
} else
input.createTextRange &&
((range = input.createTextRange()).collapse(!0),
range.moveEnd("character", end),
range.moveStart("character", begin),
range.select());
renderColorMask(input, {
begin: begin,
end: end,
});
}
}
function determineLastRequiredPosition(returnDefinition) {
var pos,
testPos,
buffer = getBuffer(),
bl = buffer.length,
lvp = getLastValidPosition(),
positions = {},
lvTest = getMaskSet().validPositions[lvp],
ndxIntlzr = lvTest !== undefined ? lvTest.locator.slice() : undefined;
for (pos = lvp + 1; pos < buffer.length; pos++)
(ndxIntlzr = (testPos = getTestTemplate(
pos,
ndxIntlzr,
pos - 1
)).locator.slice()),
(positions[pos] = $.extend(!0, {}, testPos));
var lvTestAlt =
lvTest && lvTest.alternation !== undefined
? lvTest.locator[lvTest.alternation]
: undefined;
for (
pos = bl - 1;
pos > lvp &&
((testPos = positions[pos]).match.optionality ||
(testPos.match.optionalQuantifier && testPos.match.newBlockMarker) ||
(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--;
return returnDefinition
? {
l: bl,
def: positions[bl] ? positions[bl].match : undefined,
}
: bl;
}
function clearOptionalTail(buffer) {
for (
var validPos,
rl = determineLastRequiredPosition(),
bl = buffer.length,
lv = getMaskSet().validPositions[getLastValidPosition()];
rl < bl &&
!isMask(rl, !0) &&
(validPos =
lv !== undefined
? getTestTemplate(rl, lv.locator.slice(""), lv)
: getTest(rl)) &&
!0 !== validPos.match.optionality &&
((!0 !== validPos.match.optionalQuantifier &&
!0 !== validPos.match.newBlockMarker) ||
(rl + 1 === bl &&
"" ===
(lv !== undefined
? getTestTemplate(rl + 1, lv.locator.slice(""), lv)
: getTest(rl + 1)
).match.def));
)
rl++;
for (
;
(validPos = getMaskSet().validPositions[rl - 1]) &&
validPos &&
validPos.match.optionality &&
validPos.input === opts.skipOptionalPartCharacter;
)
rl--;
return buffer.splice(rl), buffer;
}
function isComplete(buffer) {
if ($.isFunction(opts.isComplete)) return opts.isComplete(buffer, opts);
if ("*" === opts.repeat) return undefined;
var complete = !1,
lrp = determineLastRequiredPosition(!0),
aml = seekPrevious(lrp.l);
if (
lrp.def === undefined ||
lrp.def.newBlockMarker ||
lrp.def.optionality ||
lrp.def.optionalQuantifier
) {
complete = !0;
for (var i = 0; i <= aml; i++) {
var test = getTestTemplate(i).match;
if (
(null !== test.fn &&
getMaskSet().validPositions[i] === undefined &&
!0 !== test.optionality &&
!0 !== test.optionalQuantifier) ||
(null === test.fn && buffer[i] !== getPlaceholder(i, test))
) {
complete = !1;
break;
}
}
}
return complete;
}
function handleRemove(input, k, pos, strict, fromIsValid) {
if (
(opts.numericInput || isRTL) &&
(k === Inputmask.keyCode.BACKSPACE
? (k = Inputmask.keyCode.DELETE)
: k === Inputmask.keyCode.DELETE && (k = Inputmask.keyCode.BACKSPACE),
isRTL)
) {
var pend = pos.end;
(pos.end = pos.begin), (pos.begin = pend);
}
k === Inputmask.keyCode.BACKSPACE &&
(pos.end - pos.begin < 1 || !1 === opts.insertMode)
? ((pos.begin = seekPrevious(pos.begin)),
getMaskSet().validPositions[pos.begin] !== undefined &&
getMaskSet().validPositions[pos.begin].input ===
opts.groupSeparator &&
pos.begin--)
: k === Inputmask.keyCode.DELETE &&
pos.begin === pos.end &&
((pos.end =
isMask(pos.end, !0) &&
getMaskSet().validPositions[pos.end] &&
getMaskSet().validPositions[pos.end].input !== opts.radixPoint
? pos.end + 1
: seekNext(pos.end) + 1),
getMaskSet().validPositions[pos.begin] !== undefined &&
getMaskSet().validPositions[pos.begin].input ===
opts.groupSeparator &&
pos.end++),
stripValidPositions(pos.begin, pos.end, !1, strict),
!0 !== strict &&
(function () {
if (opts.keepStatic) {
for (
var validInputs = [],
lastAlt = getLastValidPosition(-1, !0),
positionsClone = $.extend(
!0,
{},
getMaskSet().validPositions
),
prevAltPos = getMaskSet().validPositions[lastAlt];
lastAlt >= 0;
lastAlt--
) {
var altPos = getMaskSet().validPositions[lastAlt];
if (altPos) {
if (
(!0 !== altPos.generatedInput &&
/[0-9a-bA-Z]/.test(altPos.input) &&
validInputs.push(altPos.input),
delete getMaskSet().validPositions[lastAlt],
altPos.alternation !== undefined &&
altPos.locator[altPos.alternation] !==
prevAltPos.locator[altPos.alternation])
)
break;
prevAltPos = altPos;
}
}
if (lastAlt > -1)
for (
getMaskSet().p = seekNext(getLastValidPosition(-1, !0));
validInputs.length > 0;
) {
var keypress = new $.Event("keypress");
(keypress.which = validInputs.pop().charCodeAt(0)),
EventHandlers.keypressEvent.call(
input,
keypress,
!0,
!1,
!1,
getMaskSet().p
);
}
else
getMaskSet().validPositions = $.extend(!0, {}, positionsClone);
}
})();
var lvp = getLastValidPosition(pos.begin, !0);
if (lvp < pos.begin) getMaskSet().p = seekNext(lvp);
else if (
!0 !== strict &&
((getMaskSet().p = pos.begin), !0 !== fromIsValid)
)
for (
;
getMaskSet().p < lvp &&
getMaskSet().validPositions[getMaskSet().p] === undefined;
)
getMaskSet().p++;
}
function initializeColorMask(input) {
function findCaretPos(clientx) {
var caretPos,
e = document.createElement("span");
for (var style in computedStyle)
isNaN(style) &&
-1 !== style.indexOf("font") &&
(e.style[style] = computedStyle[style]);
(e.style.textTransform = computedStyle.textTransform),
(e.style.letterSpacing = computedStyle.letterSpacing),
(e.style.position = "absolute"),
(e.style.height = "auto"),
(e.style.width = "auto"),
(e.style.visibility = "hidden"),
(e.style.whiteSpace = "nowrap"),
document.body.appendChild(e);
var itl,
inputText = input.inputmask._valueGet(),
previousWidth = 0;
for (
caretPos = 0, itl = inputText.length;
caretPos <= itl;
caretPos++
) {
if (
((e.innerHTML += inputText.charAt(caretPos) || "_"),
e.offsetWidth >= clientx)
) {
var offset1 = clientx - previousWidth,
offset2 = e.offsetWidth - clientx;
(e.innerHTML = inputText.charAt(caretPos)),
(caretPos =
(offset1 -= e.offsetWidth / 3) < offset2
? caretPos - 1
: caretPos);
break;
}
previousWidth = e.offsetWidth;
}
return document.body.removeChild(e), caretPos;
}
var computedStyle = (
input.ownerDocument.defaultView || window
).getComputedStyle(input, null),
template = document.createElement("div");
(template.style.width = computedStyle.width),
(template.style.textAlign = computedStyle.textAlign),
((colorMask = document.createElement("div")).className =
"im-colormask"),
input.parentNode.insertBefore(colorMask, input),
input.parentNode.removeChild(input),
colorMask.appendChild(template),
colorMask.appendChild(input),
(input.style.left = template.offsetLeft + "px"),
$(input).on("click", function (e) {
return (
caret(input, findCaretPos(e.clientX)),
EventHandlers.clickEvent.call(input, [e])
);
}),
$(input).on("keydown", function (e) {
e.shiftKey ||
!1 === opts.insertMode ||
setTimeout(function () {
renderColorMask(input);
}, 0);
});
}
function renderColorMask(input, caretPos, clear) {
function handleStatic() {
isStatic || (null !== test.fn && testPos.input !== undefined)
? isStatic &&
((null !== test.fn && testPos.input !== undefined) ||
"" === test.def) &&
((isStatic = !1), (maskTemplate += "</span>"))
: ((isStatic = !0), (maskTemplate += "<span class='im-static'>"));
}
function handleCaret(force) {
(!0 !== force && pos !== caretPos.begin) ||
document.activeElement !== input ||
(maskTemplate +=
"<span class='im-caret' style='border-right-width: 1px;border-right-style: solid;'></span>");
}
var test,
testPos,
ndxIntlzr,
maskTemplate = "",
isStatic = !1,
pos = 0;
if (colorMask !== undefined) {
var buffer = getBuffer();
if (
(caretPos === undefined
? (caretPos = caret(input))
: caretPos.begin === undefined &&
(caretPos = {
begin: caretPos,
end: caretPos,
}),
!0 !== clear)
) {
var lvp = getLastValidPosition();
do {
handleCaret(),
getMaskSet().validPositions[pos]
? ((testPos = getMaskSet().validPositions[pos]),
(test = testPos.match),
(ndxIntlzr = testPos.locator.slice()),
handleStatic(),
(maskTemplate += buffer[pos]))
: ((testPos = getTestTemplate(pos, ndxIntlzr, pos - 1)),
(test = testPos.match),
(ndxIntlzr = testPos.locator.slice()),
(!1 === opts.jitMasking ||
pos < lvp ||
("number" == typeof opts.jitMasking &&
isFinite(opts.jitMasking) &&
opts.jitMasking > pos)) &&
(handleStatic(),
(maskTemplate += getPlaceholder(pos, test)))),
pos++;
} while (
((maxLength === undefined || pos < maxLength) &&
(null !== test.fn || "" !== test.def)) ||
lvp > pos ||
isStatic
);
-1 === maskTemplate.indexOf("im-caret") && handleCaret(!0),
isStatic && handleStatic();
}
var template = colorMask.getElementsByTagName("div")[0];
(template.innerHTML = maskTemplate),
input.inputmask.positionColorMask(input, template);
}
}
(maskset = maskset || this.maskset), (opts = opts || this.opts);
var undoValue,
$el,
maxLength,
colorMask,
inputmask = this,
el = this.el,
isRTL = this.isRTL,
skipKeyPressEvent = !1,
skipInputEvent = !1,
ignorable = !1,
mouseEnter = !1,
EventRuler = {
on: function (input, eventName, eventHandler) {
var ev = function (e) {
if (this.inputmask === undefined && "FORM" !== this.nodeName) {
var imOpts = $.data(this, "_inputmask_opts");
imOpts ? new Inputmask(imOpts).mask(this) : EventRuler.off(this);
} else {
if (
"setvalue" === e.type ||
"FORM" === this.nodeName ||
!(
this.disabled ||
(this.readOnly &&
!(
("keydown" === e.type && e.ctrlKey && 67 === e.keyCode) ||
(!1 === opts.tabThrough &&
e.keyCode === Inputmask.keyCode.TAB)
))
)
) {
switch (e.type) {
case "input":
if (!0 === skipInputEvent)
return (skipInputEvent = !1), e.preventDefault();
break;
case "keydown":
(skipKeyPressEvent = !1), (skipInputEvent = !1);
break;
case "keypress":
if (!0 === skipKeyPressEvent) return e.preventDefault();
skipKeyPressEvent = !0;
break;
case "click":
if (iemobile || iphone) {
var that = this,
args = arguments;
return (
setTimeout(function () {
eventHandler.apply(that, args);
}, 0),
!1
);
}
}
var returnVal = eventHandler.apply(this, arguments);
return (
!1 === returnVal && (e.preventDefault(), e.stopPropagation()),
returnVal
);
}
e.preventDefault();
}
};
(input.inputmask.events[eventName] =
input.inputmask.events[eventName] || []),
input.inputmask.events[eventName].push(ev),
-1 !== $.inArray(eventName, ["submit", "reset"])
? null !== input.form && $(input.form).on(eventName, ev)
: $(input).on(eventName, ev);
},
off: function (input, event) {
if (input.inputmask && input.inputmask.events) {
var events;
event
? ((events = [])[event] = input.inputmask.events[event])
: (events = input.inputmask.events),
$.each(events, function (eventName, evArr) {
for (; evArr.length > 0; ) {
var ev = evArr.pop();
-1 !== $.inArray(eventName, ["submit", "reset"])
? null !== input.form && $(input.form).off(eventName, ev)
: $(input).off(eventName, ev);
}
delete input.inputmask.events[eventName];
});
}
},
},
EventHandlers = {
keydownEvent: function (e) {
var input = this,
$input = $(input),
k = e.keyCode,
pos = caret(input);
if (
k === Inputmask.keyCode.BACKSPACE ||
k === Inputmask.keyCode.DELETE ||
(iphone && k === Inputmask.keyCode.BACKSPACE_SAFARI) ||
(e.ctrlKey &&
k === Inputmask.keyCode.X &&
!(function (eventName) {
var el = document.createElement("input"),
evName = "on" + eventName,
isSupported = evName in el;
return (
isSupported ||
(el.setAttribute(evName, "return;"),
(isSupported = "function" == typeof el[evName])),
(el = null),
isSupported
);
})("cut"))
)
e.preventDefault(),
handleRemove(input, k, pos),
writeBuffer(
input,
getBuffer(!0),
getMaskSet().p,
e,
input.inputmask._valueGet() !== getBuffer().join("")
),
input.inputmask._valueGet() === getBufferTemplate().join("")
? $input.trigger("cleared")
: !0 === isComplete(getBuffer()) && $input.trigger("complete");
else if (
k === Inputmask.keyCode.END ||
k === Inputmask.keyCode.PAGE_DOWN
) {
e.preventDefault();
var caretPos = seekNext(getLastValidPosition());
opts.insertMode ||
caretPos !== getMaskSet().maskLength ||
e.shiftKey ||
caretPos--,
caret(input, e.shiftKey ? pos.begin : caretPos, caretPos, !0);
} else
(k === Inputmask.keyCode.HOME && !e.shiftKey) ||
k === Inputmask.keyCode.PAGE_UP
? (e.preventDefault(),
caret(input, 0, e.shiftKey ? pos.begin : 0, !0))
: ((opts.undoOnEscape && k === Inputmask.keyCode.ESCAPE) ||
(90 === k && e.ctrlKey)) &&
!0 !== e.altKey
? (checkVal(input, !0, !1, undoValue.split("")),
$input.trigger("click"))
: k !== Inputmask.keyCode.INSERT || e.shiftKey || e.ctrlKey
? !0 === opts.tabThrough && k === Inputmask.keyCode.TAB
? (!0 === e.shiftKey
? (null === getTest(pos.begin).match.fn &&
(pos.begin = seekNext(pos.begin)),
(pos.end = seekPrevious(pos.begin, !0)),
(pos.begin = seekPrevious(pos.end, !0)))
: ((pos.begin = seekNext(pos.begin, !0)),
(pos.end = seekNext(pos.begin, !0)),
pos.end < getMaskSet().maskLength && pos.end--),
pos.begin < getMaskSet().maskLength &&
(e.preventDefault(), caret(input, pos.begin, pos.end)))
: e.shiftKey ||
(!1 === opts.insertMode &&
(k === Inputmask.keyCode.RIGHT
? setTimeout(function () {
var caretPos = caret(input);
caret(input, caretPos.begin);
}, 0)
: k === Inputmask.keyCode.LEFT &&
setTimeout(function () {
var caretPos = caret(input);
caret(
input,
isRTL ? caretPos.begin + 1 : caretPos.begin - 1
);
}, 0)))
: ((opts.insertMode = !opts.insertMode),
caret(
input,
opts.insertMode || pos.begin !== getMaskSet().maskLength
? pos.begin
: pos.begin - 1
));
opts.onKeyDown.call(this, e, getBuffer(), caret(input).begin, opts),
(ignorable = -1 !== $.inArray(k, opts.ignorables));
},
keypressEvent: function (e, checkval, writeOut, strict, ndx) {
var input = this,
$input = $(input),
k = e.which || e.charCode || e.keyCode;
if (
!(!0 === checkval || (e.ctrlKey && e.altKey)) &&
(e.ctrlKey || e.metaKey || ignorable)
)
return (
k === Inputmask.keyCode.ENTER &&
undoValue !== getBuffer().join("") &&
((undoValue = getBuffer().join("")),
setTimeout(function () {
$input.trigger("change");
}, 0)),
!0
);
if (k) {
46 === k &&
!1 === e.shiftKey &&
"" !== opts.radixPoint &&
(k = opts.radixPoint.charCodeAt(0));
var forwardPosition,
pos = checkval
? {
begin: ndx,
end: ndx,
}
: caret(input),
c = String.fromCharCode(k);
getMaskSet().writeOutBuffer = !0;
var valResult = isValid(pos, c, strict);
if (
(!1 !== valResult &&
(resetMaskSet(!0),
(forwardPosition =
valResult.caret !== undefined
? valResult.caret
: checkval
? valResult.pos + 1
: seekNext(valResult.pos)),
(getMaskSet().p = forwardPosition)),
!1 !== writeOut &&
(setTimeout(function () {
opts.onKeyValidation.call(input, k, valResult, opts);
}, 0),
getMaskSet().writeOutBuffer && !1 !== valResult))
) {
var buffer = getBuffer();
writeBuffer(
input,
buffer,
opts.numericInput && valResult.caret === undefined
? seekPrevious(forwardPosition)
: forwardPosition,
e,
!0 !== checkval
),
!0 !== checkval &&
setTimeout(function () {
!0 === isComplete(buffer) && $input.trigger("complete");
}, 0);
}
if ((e.preventDefault(), checkval))
return (
!1 !== valResult &&
(valResult.forwardPosition = forwardPosition),
valResult
);
}
},
pasteEvent: function (e) {
var tempValue,
input = this,
ev = e.originalEvent || e,
$input = $(input),
inputValue = input.inputmask._valueGet(!0),
caretPos = caret(input);
isRTL &&
((tempValue = caretPos.end),
(caretPos.end = caretPos.begin),
(caretPos.begin = tempValue));
var valueBeforeCaret = inputValue.substr(0, caretPos.begin),
valueAfterCaret = inputValue.substr(
caretPos.end,
inputValue.length
);
if (
(valueBeforeCaret ===
(isRTL ? getBufferTemplate().reverse() : getBufferTemplate())
.slice(0, caretPos.begin)
.join("") && (valueBeforeCaret = ""),
valueAfterCaret ===
(isRTL ? getBufferTemplate().reverse() : getBufferTemplate())
.slice(caretPos.end)
.join("") && (valueAfterCaret = ""),
isRTL &&
((tempValue = valueBeforeCaret),
(valueBeforeCaret = valueAfterCaret),
(valueAfterCaret = tempValue)),
window.clipboardData && window.clipboardData.getData)
)
inputValue =
valueBeforeCaret +
window.clipboardData.getData("Text") +
valueAfterCaret;
else {
if (!ev.clipboardData || !ev.clipboardData.getData) return !0;
inputValue =
valueBeforeCaret +
ev.clipboardData.getData("text/plain") +
valueAfterCaret;
}
var pasteValue = inputValue;
if ($.isFunction(opts.onBeforePaste)) {
if (
!1 ===
(pasteValue = opts.onBeforePaste.call(
inputmask,
inputValue,
opts
))
)
return e.preventDefault();
pasteValue || (pasteValue = inputValue);
}
return (
checkVal(
input,
!1,
!1,
isRTL
? pasteValue.split("").reverse()
: pasteValue.toString().split("")
),
writeBuffer(
input,
getBuffer(),
seekNext(getLastValidPosition()),
e,
undoValue !== getBuffer().join("")
),
!0 === isComplete(getBuffer()) && $input.trigger("complete"),
e.preventDefault()
);
},
inputFallBackEvent: function (e) {
var input = this,
inputValue = input.inputmask._valueGet();
if (getBuffer().join("") !== inputValue) {
var caretPos = caret(input);
if (
!1 ===
(function (input, inputValue, caretPos) {
if (
("." === inputValue.charAt(caretPos.begin - 1) &&
"" !== opts.radixPoint &&
(((inputValue = inputValue.split(""))[caretPos.begin - 1] =
opts.radixPoint.charAt(0)),
(inputValue = inputValue.join(""))),
inputValue.charAt(caretPos.begin - 1) === opts.radixPoint &&
inputValue.length > getBuffer().length)
) {
var keypress = new $.Event("keypress");
return (
(keypress.which = opts.radixPoint.charCodeAt(0)),
EventHandlers.keypressEvent.call(
input,
keypress,
!0,
!0,
!1,
caretPos.begin - 1
),
!1
);
}
})(input, inputValue, caretPos)
)
return !1;
if (
((inputValue = inputValue.replace(
new RegExp(
"(" +
Inputmask.escapeRegex(getBufferTemplate().join("")) +
")*"
),
""
)),
!1 ===
(function (input, inputValue, caretPos) {
if (iemobile) {
var inputChar = inputValue.replace(
getBuffer().join(""),
""
);
if (1 === inputChar.length) {
var keypress = new $.Event("keypress");
return (
(keypress.which = inputChar.charCodeAt(0)),
EventHandlers.keypressEvent.call(
input,
keypress,
!0,
!0,
!1,
getMaskSet().validPositions[caretPos.begin - 1]
? caretPos.begin
: caretPos.begin - 1
),
!1
);
}
}
})(input, inputValue, caretPos))
)
return !1;
caretPos.begin > inputValue.length &&
(caret(input, inputValue.length), (caretPos = caret(input)));
var buffer = getBuffer().join(""),
frontPart = inputValue.substr(0, caretPos.begin),
backPart = inputValue.substr(caretPos.begin),
frontBufferPart = buffer.substr(0, caretPos.begin),
backBufferPart = buffer.substr(caretPos.begin),
selection = caretPos,
entries = "",
isEntry = !1;
if (frontPart !== frontBufferPart) {
selection.begin = 0;
for (
var fpl = (isEntry = frontPart.length >= frontBufferPart.length)
? frontPart.length
: frontBufferPart.length,
i = 0;
frontPart.charAt(i) === frontBufferPart.charAt(i) && i < fpl;
i++
)
selection.begin++;
isEntry &&
(entries += frontPart.slice(selection.begin, selection.end));
}
backPart !== backBufferPart &&
(backPart.length > backBufferPart.length
? isEntry && (selection.end = selection.begin)
: backPart.length < backBufferPart.length
? (selection.end += backBufferPart.length - backPart.length)
: backPart.charAt(0) !== backBufferPart.charAt(0) &&
selection.end++),
writeBuffer(input, getBuffer(), selection),
entries.length > 0
? $.each(entries.split(""), function (ndx, entry) {
var keypress = new $.Event("keypress");
(keypress.which = entry.charCodeAt(0)),
(ignorable = !1),
EventHandlers.keypressEvent.call(input, keypress);
})
: (selection.begin === selection.end - 1 &&
caret(
input,
seekPrevious(selection.begin + 1),
selection.end
),
(e.keyCode = Inputmask.keyCode.DELETE),
EventHandlers.keydownEvent.call(input, e)),
e.preventDefault();
}
},
setValueEvent: function (e) {
this.inputmask.refreshValue = !1;
var input = this,
value = input.inputmask._valueGet(!0);
$.isFunction(opts.onBeforeMask) &&
(value = opts.onBeforeMask.call(inputmask, value, opts) || value),
(value = value.split("")),
checkVal(input, !0, !1, isRTL ? value.reverse() : value),
(undoValue = getBuffer().join("")),
(opts.clearMaskOnLostFocus || opts.clearIncomplete) &&
input.inputmask._valueGet() === getBufferTemplate().join("") &&
input.inputmask._valueSet("");
},
focusEvent: function (e) {
var input = this,
nptValue = input.inputmask._valueGet();
opts.showMaskOnFocus &&
(!opts.showMaskOnHover ||
(opts.showMaskOnHover && "" === nptValue)) &&
(input.inputmask._valueGet() !== getBuffer().join("")
? writeBuffer(
input,
getBuffer(),
seekNext(getLastValidPosition())
)
: !1 === mouseEnter &&
caret(input, seekNext(getLastValidPosition()))),
!0 === opts.positionCaretOnTab &&
!1 === mouseEnter &&
"" !== nptValue &&
(writeBuffer(input, getBuffer(), caret(input)),
EventHandlers.clickEvent.apply(input, [e, !0])),
(undoValue = getBuffer().join(""));
},
mouseleaveEvent: function (e) {
var input = this;
if (
((mouseEnter = !1),
opts.clearMaskOnLostFocus && document.activeElement !== input)
) {
var buffer = getBuffer().slice(),
nptValue = input.inputmask._valueGet();
nptValue !== input.getAttribute("placeholder") &&
"" !== nptValue &&
(-1 === getLastValidPosition() &&
nptValue === getBufferTemplate().join("")
? (buffer = [])
: clearOptionalTail(buffer),
writeBuffer(input, buffer));
}
},
clickEvent: function (e, tabbed) {
function doRadixFocus(clickPos) {
if ("" !== opts.radixPoint) {
var vps = getMaskSet().validPositions;
if (
vps[clickPos] === undefined ||
vps[clickPos].input === getPlaceholder(clickPos)
) {
if (clickPos < seekNext(-1)) return !0;
var radixPos = $.inArray(opts.radixPoint, getBuffer());
if (-1 !== radixPos) {
for (var vp in vps)
if (radixPos < vp && vps[vp].input !== getPlaceholder(vp))
return !1;
return !0;
}
}
}
return !1;
}
var input = this;
setTimeout(function () {
if (document.activeElement === input) {
var selectedCaret = caret(input);
if (
(tabbed &&
(isRTL
? (selectedCaret.end = selectedCaret.begin)
: (selectedCaret.begin = selectedCaret.end)),
selectedCaret.begin === selectedCaret.end)
)
switch (opts.positionCaretOnClick) {
case "none":
break;
case "radixFocus":
if (doRadixFocus(selectedCaret.begin)) {
var radixPos = getBuffer()
.join("")
.indexOf(opts.radixPoint);
caret(
input,
opts.numericInput ? seekNext(radixPos) : radixPos
);
break;
}
default:
var clickPosition = selectedCaret.begin,
lvclickPosition = getLastValidPosition(clickPosition, !0),
lastPosition = seekNext(lvclickPosition);
if (clickPosition < lastPosition)
caret(
input,
isMask(clickPosition, !0) ||
isMask(clickPosition - 1, !0)
? clickPosition
: seekNext(clickPosition)
);
else {
var lvp = getMaskSet().validPositions[lvclickPosition],
tt = getTestTemplate(
lastPosition,
lvp ? lvp.match.locator : undefined,
lvp
),
placeholder = getPlaceholder(lastPosition, tt.match);
if (
("" !== placeholder &&
getBuffer()[lastPosition] !== placeholder &&
!0 !== tt.match.optionalQuantifier &&
!0 !== tt.match.newBlockMarker) ||
(!isMask(lastPosition, !0) &&
tt.match.def === placeholder)
) {
var newPos = seekNext(lastPosition);
(clickPosition >= newPos ||
clickPosition === lastPosition) &&
(lastPosition = newPos);
}
caret(input, lastPosition);
}
}
}
}, 0);
},
dblclickEvent: function (e) {
var input = this;
setTimeout(function () {
caret(input, 0, seekNext(getLastValidPosition()));
}, 0);
},
cutEvent: function (e) {
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);
clipboardData.setData(
"text",
isRTL ? clipData.reverse().join("") : clipData.join("")
),
document.execCommand && document.execCommand("copy"),
handleRemove(input, Inputmask.keyCode.DELETE, pos),
writeBuffer(
input,
getBuffer(),
getMaskSet().p,
e,
undoValue !== getBuffer().join("")
),
input.inputmask._valueGet() === getBufferTemplate().join("") &&
$input.trigger("cleared");
},
blurEvent: function (e) {
var $input = $(this),
input = this;
if (input.inputmask) {
var nptValue = input.inputmask._valueGet(),
buffer = getBuffer().slice();
"" !== nptValue &&
(opts.clearMaskOnLostFocus &&
(-1 === getLastValidPosition() &&
nptValue === getBufferTemplate().join("")
? (buffer = [])
: clearOptionalTail(buffer)),
!1 === isComplete(buffer) &&
(setTimeout(function () {
$input.trigger("incomplete");
}, 0),
opts.clearIncomplete &&
(resetMaskSet(),
(buffer = opts.clearMaskOnLostFocus
? []
: getBufferTemplate().slice()))),
writeBuffer(input, buffer, undefined, e)),
undoValue !== getBuffer().join("") &&
((undoValue = buffer.join("")), $input.trigger("change"));
}
},
mouseenterEvent: function (e) {
var input = this;
(mouseEnter = !0),
document.activeElement !== input &&
opts.showMaskOnHover &&
input.inputmask._valueGet() !== getBuffer().join("") &&
writeBuffer(input, getBuffer());
},
submitEvent: function (e) {
undoValue !== getBuffer().join("") && $el.trigger("change"),
opts.clearMaskOnLostFocus &&
-1 === getLastValidPosition() &&
el.inputmask._valueGet &&
el.inputmask._valueGet() === getBufferTemplate().join("") &&
el.inputmask._valueSet(""),
opts.removeMaskOnSubmit &&
(el.inputmask._valueSet(el.inputmask.unmaskedvalue(), !0),
setTimeout(function () {
writeBuffer(el, getBuffer());
}, 0));
},
resetEvent: function (e) {
(el.inputmask.refreshValue = !0),
setTimeout(function () {
$el.trigger("setvalue");
}, 0);
},
};
Inputmask.prototype.positionColorMask = function (input, template) {
input.style.left = template.offsetLeft + "px";
};
var valueBuffer;
if (actionObj !== undefined)
switch (actionObj.action) {
case "isComplete":
return (el = actionObj.el), isComplete(getBuffer());
case "unmaskedvalue":
return (
(el !== undefined && actionObj.value === undefined) ||
((valueBuffer = actionObj.value),
(valueBuffer = (
$.isFunction(opts.onBeforeMask)
? opts.onBeforeMask.call(inputmask, valueBuffer, opts) ||
valueBuffer
: valueBuffer
).split("")),
checkVal(
undefined,
!1,
!1,
isRTL ? valueBuffer.reverse() : valueBuffer
),
$.isFunction(opts.onBeforeWrite) &&
opts.onBeforeWrite.call(
inputmask,
undefined,
getBuffer(),
0,
opts
)),
unmaskedvalue(el)
);
case "mask":
!(function (elem) {
EventRuler.off(elem);
var isSupported = (function (input, opts) {
var elementType = input.getAttribute("type"),
isSupported =
("INPUT" === input.tagName &&
-1 !== $.inArray(elementType, opts.supportsInputType)) ||
input.isContentEditable ||
"TEXTAREA" === input.tagName;
if (!isSupported)
if ("INPUT" === input.tagName) {
var el = document.createElement("input");
el.setAttribute("type", elementType),
(isSupported = "text" === el.type),
(el = null);
} else isSupported = "partial";
return (
!1 !== isSupported
? (function (npt) {
function getter() {
return this.inputmask
? this.inputmask.opts.autoUnmask
? this.inputmask.unmaskedvalue()
: -1 !== getLastValidPosition() ||
!0 !== opts.nullable
? document.activeElement === this &&
opts.clearMaskOnLostFocus
? (isRTL
? clearOptionalTail(
getBuffer().slice()
).reverse()
: clearOptionalTail(getBuffer().slice())
).join("")
: valueGet.call(this)
: ""
: valueGet.call(this);
}
function setter(value) {
valueSet.call(this, value),
this.inputmask && $(this).trigger("setvalue");
}
var valueGet, valueSet;
if (!npt.inputmask.__valueGet) {
if (!0 !== opts.noValuePatching) {
if (Object.getOwnPropertyDescriptor) {
"function" != typeof Object.getPrototypeOf &&
(Object.getPrototypeOf =
"object" == typeof "test".__proto__
? function (object) {
return object.__proto__;
}
: function (object) {
return object.constructor.prototype;
});
var valueProperty = Object.getPrototypeOf
? Object.getOwnPropertyDescriptor(
Object.getPrototypeOf(npt),
"value"
)
: undefined;
valueProperty &&
valueProperty.get &&
valueProperty.set
? ((valueGet = valueProperty.get),
(valueSet = valueProperty.set),
Object.defineProperty(npt, "value", {
get: getter,
set: setter,
configurable: !0,
}))
: "INPUT" !== npt.tagName &&
((valueGet = function () {
return this.textContent;
}),
(valueSet = function (value) {
this.textContent = value;
}),
Object.defineProperty(npt, "value", {
get: getter,
set: setter,
configurable: !0,
}));
} else
document.__lookupGetter__ &&
npt.__lookupGetter__("value") &&
((valueGet = npt.__lookupGetter__("value")),
(valueSet = npt.__lookupSetter__("value")),
npt.__defineGetter__("value", getter),
npt.__defineSetter__("value", setter));
(npt.inputmask.__valueGet = valueGet),
(npt.inputmask.__valueSet = valueSet);
}
(npt.inputmask._valueGet = function (overruleRTL) {
return isRTL && !0 !== overruleRTL
? valueGet
.call(this.el)
.split("")
.reverse()
.join("")
: valueGet.call(this.el);
}),
(npt.inputmask._valueSet = function (
value,
overruleRTL
) {
valueSet.call(
this.el,
null === value || value === undefined
? ""
: !0 !== overruleRTL && isRTL
? value.split("").reverse().join("")
: value
);
}),
valueGet === undefined &&
((valueGet = function () {
return this.value;
}),
(valueSet = function (value) {
this.value = value;
}),
(function (type) {
if (
$.valHooks &&
($.valHooks[type] === undefined ||
!0 !== $.valHooks[type].inputmaskpatch)
) {
var valhookGet =
$.valHooks[type] && $.valHooks[type].get
? $.valHooks[type].get
: function (elem) {
return elem.value;
},
valhookSet =
$.valHooks[type] && $.valHooks[type].set
? $.valHooks[type].set
: function (elem, value) {
return (elem.value = value), elem;
};
$.valHooks[type] = {
get: function (elem) {
if (elem.inputmask) {
if (elem.inputmask.opts.autoUnmask)
return elem.inputmask.unmaskedvalue();
var result = valhookGet(elem);
return -1 !==
getLastValidPosition(
undefined,
undefined,
elem.inputmask.maskset.validPositions
) || !0 !== opts.nullable
? result
: "";
}
return valhookGet(elem);
},
set: function (elem, value) {
var result,
$elem = $(elem);
return (
(result = valhookSet(elem, value)),
elem.inputmask &&
$elem.trigger("setvalue"),
result
);
},
inputmaskpatch: !0,
};
}
})(npt.type),
(function (npt) {
EventRuler.on(
npt,
"mouseenter",
function (event) {
var $input = $(this);
this.inputmask._valueGet() !==
getBuffer().join("") &&
$input.trigger("setvalue");
}
);
})(npt));
}
})(input)
: (input.inputmask = undefined),
isSupported
);
})(elem, opts);
if (
!1 !== isSupported &&
((el = elem),
($el = $(el)),
-1 ===
(maxLength = el !== undefined ? el.maxLength : undefined) &&
(maxLength = undefined),
!0 === opts.colorMask && initializeColorMask(el),
android &&
(el.hasOwnProperty("inputmode") &&
((el.inputmode = opts.inputmode),
el.setAttribute("inputmode", opts.inputmode)),
"rtfm" === opts.androidHack &&
(!0 !== opts.colorMask && initializeColorMask(el),
(el.type = "password"))),
!0 === isSupported &&
(EventRuler.on(el, "submit", EventHandlers.submitEvent),
EventRuler.on(el, "reset", EventHandlers.resetEvent),
EventRuler.on(el, "mouseenter", EventHandlers.mouseenterEvent),
EventRuler.on(el, "blur", EventHandlers.blurEvent),
EventRuler.on(el, "focus", EventHandlers.focusEvent),
EventRuler.on(el, "mouseleave", EventHandlers.mouseleaveEvent),
!0 !== opts.colorMask &&
EventRuler.on(el, "click", EventHandlers.clickEvent),
EventRuler.on(el, "dblclick", EventHandlers.dblclickEvent),
EventRuler.on(el, "paste", EventHandlers.pasteEvent),
EventRuler.on(el, "dragdrop", EventHandlers.pasteEvent),
EventRuler.on(el, "drop", EventHandlers.pasteEvent),
EventRuler.on(el, "cut", EventHandlers.cutEvent),
EventRuler.on(el, "complete", opts.oncomplete),
EventRuler.on(el, "incomplete", opts.onincomplete),
EventRuler.on(el, "cleared", opts.oncleared),
android || !0 === opts.inputEventOnly
? el.removeAttribute("maxLength")
: (EventRuler.on(el, "keydown", EventHandlers.keydownEvent),
EventRuler.on(el, "keypress", EventHandlers.keypressEvent)),
EventRuler.on(el, "compositionstart", $.noop),
EventRuler.on(el, "compositionupdate", $.noop),
EventRuler.on(el, "compositionend", $.noop),
EventRuler.on(el, "keyup", $.noop),
EventRuler.on(el, "input", EventHandlers.inputFallBackEvent),
EventRuler.on(el, "beforeinput", $.noop)),
EventRuler.on(el, "setvalue", EventHandlers.setValueEvent),
(undoValue = getBufferTemplate().join("")),
"" !== el.inputmask._valueGet(!0) ||
!1 === opts.clearMaskOnLostFocus ||
document.activeElement === el)
) {
var initialValue = $.isFunction(opts.onBeforeMask)
? opts.onBeforeMask.call(
inputmask,
el.inputmask._valueGet(!0),
opts
) || el.inputmask._valueGet(!0)
: el.inputmask._valueGet(!0);
"" !== initialValue &&
checkVal(
el,
!0,
!1,
isRTL
? initialValue.split("").reverse()
: initialValue.split("")
);
var buffer = getBuffer().slice();
(undoValue = buffer.join("")),
!1 === isComplete(buffer) &&
opts.clearIncomplete &&
resetMaskSet(),
opts.clearMaskOnLostFocus &&
document.activeElement !== el &&
(-1 === getLastValidPosition()
? (buffer = [])
: clearOptionalTail(buffer)),
writeBuffer(el, buffer),
document.activeElement === el &&
caret(el, seekNext(getLastValidPosition()));
}
})(el);
break;
case "format":
return (
(valueBuffer = (
$.isFunction(opts.onBeforeMask)
? opts.onBeforeMask.call(inputmask, actionObj.value, opts) ||
actionObj.value
: actionObj.value
).split("")),
checkVal(
undefined,
!0,
!1,
isRTL ? valueBuffer.reverse() : valueBuffer
),
actionObj.metadata
? {
value: isRTL
? getBuffer().slice().reverse().join("")
: getBuffer().join(""),
metadata: maskScope.call(
this,
{
action: "getmetadata",
},
maskset,
opts
),
}
: isRTL
? getBuffer().slice().reverse().join("")
: getBuffer().join("")
);
case "isValid":
actionObj.value
? ((valueBuffer = actionObj.value.split("")),
checkVal(
undefined,
!0,
!0,
isRTL ? valueBuffer.reverse() : valueBuffer
))
: (actionObj.value = getBuffer().join(""));
for (
var buffer = getBuffer(),
rl = determineLastRequiredPosition(),
lmib = buffer.length - 1;
lmib > rl && !isMask(lmib);
lmib--
);
return (
buffer.splice(rl, lmib + 1 - rl),
isComplete(buffer) && actionObj.value === getBuffer().join("")
);
case "getemptymask":
return getBufferTemplate().join("");
case "remove":
if (el && el.inputmask) {
($el = $(el)),
el.inputmask._valueSet(
opts.autoUnmask ? unmaskedvalue(el) : el.inputmask._valueGet(!0)
),
EventRuler.off(el);
Object.getOwnPropertyDescriptor && Object.getPrototypeOf
? Object.getOwnPropertyDescriptor(
Object.getPrototypeOf(el),
"value"
) &&
el.inputmask.__valueGet &&
Object.defineProperty(el, "value", {
get: el.inputmask.__valueGet,
set: el.inputmask.__valueSet,
configurable: !0,
})
: document.__lookupGetter__ &&
el.__lookupGetter__("value") &&
el.inputmask.__valueGet &&
(el.__defineGetter__("value", el.inputmask.__valueGet),
el.__defineSetter__("value", el.inputmask.__valueSet)),
(el.inputmask = undefined);
}
return el;
case "getmetadata":
if ($.isArray(maskset.metadata)) {
var maskTarget = getMaskTemplate(!0, 0, !1).join("");
return (
$.each(maskset.metadata, function (ndx, mtdt) {
if (mtdt.mask === maskTarget) return (maskTarget = mtdt), !1;
}),
maskTarget
);
}
return maskset.metadata;
}
}
var ua = navigator.userAgent,
mobile = /mobile/i.test(ua),
iemobile = /iemobile/i.test(ua),
iphone = /iphone/i.test(ua) && !iemobile,
android = /android/i.test(ua) && !iemobile;
return (
(Inputmask.prototype = {
dataAttribute: "data-inputmask",
defaults: {
placeholder: "_",
optionalmarker: {
start: "[",
end: "]",
},
quantifiermarker: {
start: "{",
end: "}",
},
groupmarker: {
start: "(",
end: ")",
},
alternatormarker: "|",
escapeChar: "\\",
mask: null,
regex: null,
oncomplete: $.noop,
onincomplete: $.noop,
oncleared: $.noop,
repeat: 0,
greedy: !0,
autoUnmask: !1,
removeMaskOnSubmit: !1,
clearMaskOnLostFocus: !0,
insertMode: !0,
clearIncomplete: !1,
alias: null,
onKeyDown: $.noop,
onBeforeMask: null,
onBeforePaste: function (pastedValue, opts) {
return $.isFunction(opts.onBeforeMask)
? opts.onBeforeMask.call(this, pastedValue, opts)
: pastedValue;
},
onBeforeWrite: null,
onUnMask: null,
showMaskOnFocus: !0,
showMaskOnHover: !0,
onKeyValidation: $.noop,
skipOptionalPartCharacter: " ",
numericInput: !1,
rightAlign: !1,
undoOnEscape: !0,
radixPoint: "",
radixPointDefinitionSymbol: undefined,
groupSeparator: "",
keepStatic: null,
positionCaretOnTab: !0,
tabThrough: !1,
supportsInputType: ["text", "tel", "password"],
ignorables: [
8, 9, 13, 19, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 93, 112,
113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 0, 229,
],
isComplete: null,
canClearPosition: $.noop,
preValidation: null,
postValidation: null,
staticDefinitionSymbol: undefined,
jitMasking: !1,
nullable: !0,
inputEventOnly: !1,
noValuePatching: !1,
positionCaretOnClick: "lvp",
casing: null,
inputmode: "verbatim",
colorMask: !1,
androidHack: !1,
importDataAttributes: !0,
},
definitions: {
9: {
validator: "[0-91-9]",
cardinality: 1,
definitionSymbol: "*",
},
a: {
validator: "[A-Za-zА-яЁёÀ-ÿµ]",
cardinality: 1,
definitionSymbol: "*",
},
"*": {
validator: "[0-91-9A-Za-zА-яЁёÀ-ÿµ]",
cardinality: 1,
},
},
aliases: {},
masksCache: {},
mask: function (elems) {
function importAttributeOptions(npt, opts, userOptions, dataAttribute) {
function importOption(option, optionData) {
null !==
(optionData =
optionData !== undefined
? optionData
: npt.getAttribute(dataAttribute + "-" + option)) &&
("string" == typeof optionData &&
(0 === option.indexOf("on")
? (optionData = window[optionData])
: "false" === optionData
? (optionData = !1)
: "true" === optionData && (optionData = !0)),
(userOptions[option] = optionData));
}
if (!0 === opts.importDataAttributes) {
var option,
dataoptions,
optionData,
p,
attrOptions = npt.getAttribute(dataAttribute);
if (
(attrOptions &&
"" !== attrOptions &&
((attrOptions = attrOptions.replace(new RegExp("'", "g"), '"')),
(dataoptions = JSON.parse("{" + attrOptions + "}"))),
dataoptions)
) {
optionData = undefined;
for (p in dataoptions)
if ("alias" === p.toLowerCase()) {
optionData = dataoptions[p];
break;
}
}
importOption("alias", optionData),
userOptions.alias &&
resolveAlias(userOptions.alias, userOptions, opts);
for (option in opts) {
if (dataoptions) {
optionData = undefined;
for (p in dataoptions)
if (p.toLowerCase() === option.toLowerCase()) {
optionData = dataoptions[p];
break;
}
}
importOption(option, optionData);
}
}
return (
$.extend(!0, opts, userOptions),
("rtl" === npt.dir || opts.rightAlign) &&
(npt.style.textAlign = "right"),
("rtl" === npt.dir || opts.numericInput) &&
((npt.dir = "ltr"),
npt.removeAttribute("dir"),
(opts.isRTL = !0)),
opts
);
}
var that = this;
return (
"string" == typeof elems &&
(elems =
document.getElementById(elems) ||
document.querySelectorAll(elems)),
(elems = elems.nodeName ? [elems] : elems),
$.each(elems, function (ndx, el) {
var scopedOpts = $.extend(!0, {}, that.opts);
importAttributeOptions(
el,
scopedOpts,
$.extend(!0, {}, that.userOptions),
that.dataAttribute
);
var maskset = generateMaskSet(scopedOpts, that.noMasksCache);
maskset !== undefined &&
(el.inputmask !== undefined &&
((el.inputmask.opts.autoUnmask = !0), el.inputmask.remove()),
(el.inputmask = new Inputmask(undefined, undefined, !0)),
(el.inputmask.opts = scopedOpts),
(el.inputmask.noMasksCache = that.noMasksCache),
(el.inputmask.userOptions = $.extend(!0, {}, that.userOptions)),
(el.inputmask.isRTL =
scopedOpts.isRTL || scopedOpts.numericInput),
(el.inputmask.el = el),
(el.inputmask.maskset = maskset),
$.data(el, "_inputmask_opts", scopedOpts),
maskScope.call(el.inputmask, {
action: "mask",
}));
}),
elems && elems[0] ? elems[0].inputmask || this : this
);
},
option: function (options, noremask) {
return "string" == typeof options
? this.opts[options]
: "object" == typeof options
? ($.extend(this.userOptions, options),
this.el && !0 !== noremask && this.mask(this.el),
this)
: void 0;
},
unmaskedvalue: function (value) {
return (
(this.maskset =
this.maskset || generateMaskSet(this.opts, this.noMasksCache)),
maskScope.call(this, {
action: "unmaskedvalue",
value: value,
})
);
},
remove: function () {
return maskScope.call(this, {
action: "remove",
});
},
getemptymask: function () {
return (
(this.maskset =
this.maskset || generateMaskSet(this.opts, this.noMasksCache)),
maskScope.call(this, {
action: "getemptymask",
})
);
},
hasMaskedValue: function () {
return !this.opts.autoUnmask;
},
isComplete: function () {
return (
(this.maskset =
this.maskset || generateMaskSet(this.opts, this.noMasksCache)),
maskScope.call(this, {
action: "isComplete",
})
);
},
getmetadata: function () {
return (
(this.maskset =
this.maskset || generateMaskSet(this.opts, this.noMasksCache)),
maskScope.call(this, {
action: "getmetadata",
})
);
},
isValid: function (value) {
return (
(this.maskset =
this.maskset || generateMaskSet(this.opts, this.noMasksCache)),
maskScope.call(this, {
action: "isValid",
value: value,
})
);
},
format: function (value, metadata) {
return (
(this.maskset =
this.maskset || generateMaskSet(this.opts, this.noMasksCache)),
maskScope.call(this, {
action: "format",
value: value,
metadata: metadata,
})
);
},
analyseMask: function (mask, regexMask, opts) {
function MaskToken(isGroup, isOptional, isQuantifier, isAlternator) {
(this.matches = []),
(this.openGroup = isGroup || !1),
(this.alternatorGroup = !1),
(this.isGroup = isGroup || !1),
(this.isOptional = isOptional || !1),
(this.isQuantifier = isQuantifier || !1),
(this.isAlternator = isAlternator || !1),
(this.quantifier = {
min: 1,
max: 1,
});
}
function insertTestDefinition(mtoken, element, position) {
position = position !== undefined ? position : mtoken.matches.length;
var prevMatch = mtoken.matches[position - 1];
if (regexMask)
0 === element.indexOf("[") ||
(escaped && /\\d|\\s|\\w]/i.test(element)) ||
"." === element
? mtoken.matches.splice(position++, 0, {
fn: new RegExp(element, opts.casing ? "i" : ""),
cardinality: 1,
optionality: mtoken.isOptional,
newBlockMarker:
prevMatch === undefined || prevMatch.def !== element,
casing: null,
def: element,
placeholder: undefined,
nativeDef: element,
})
: (escaped && (element = element[element.length - 1]),
$.each(element.split(""), function (ndx, lmnt) {
(prevMatch = mtoken.matches[position - 1]),
mtoken.matches.splice(position++, 0, {
fn: null,
cardinality: 0,
optionality: mtoken.isOptional,
newBlockMarker:
prevMatch === undefined ||
(prevMatch.def !== lmnt && null !== prevMatch.fn),
casing: null,
def: opts.staticDefinitionSymbol || lmnt,
placeholder:
opts.staticDefinitionSymbol !== undefined
? lmnt
: undefined,
nativeDef: lmnt,
});
})),
(escaped = !1);
else {
var maskdef =
(opts.definitions ? opts.definitions[element] : undefined) ||
Inputmask.prototype.definitions[element];
if (maskdef && !escaped) {
for (
var prevalidators = maskdef.prevalidator,
prevalidatorsL = prevalidators ? prevalidators.length : 0,
i = 1;
i < maskdef.cardinality;
i++
) {
var prevalidator =
prevalidatorsL >= i ? prevalidators[i - 1] : [],
validator = prevalidator.validator,
cardinality = prevalidator.cardinality;
mtoken.matches.splice(position++, 0, {
fn: validator
? "string" == typeof validator
? new RegExp(validator, opts.casing ? "i" : "")
: new (function () {
this.test = validator;
})()
: new RegExp("."),
cardinality: cardinality || 1,
optionality: mtoken.isOptional,
newBlockMarker:
prevMatch === undefined ||
prevMatch.def !== (maskdef.definitionSymbol || element),
casing: maskdef.casing,
def: maskdef.definitionSymbol || element,
placeholder: maskdef.placeholder,
nativeDef: element,
}),
(prevMatch = mtoken.matches[position - 1]);
}
mtoken.matches.splice(position++, 0, {
fn: maskdef.validator
? "string" == typeof maskdef.validator
? new RegExp(maskdef.validator, opts.casing ? "i" : "")
: new (function () {
this.test = maskdef.validator;
})()
: new RegExp("."),
cardinality: maskdef.cardinality,
optionality: mtoken.isOptional,
newBlockMarker:
prevMatch === undefined ||
prevMatch.def !== (maskdef.definitionSymbol || element),
casing: maskdef.casing,
def: maskdef.definitionSymbol || element,
placeholder: maskdef.placeholder,
nativeDef: element,
});
} else
mtoken.matches.splice(position++, 0, {
fn: null,
cardinality: 0,
optionality: mtoken.isOptional,
newBlockMarker:
prevMatch === undefined ||
(prevMatch.def !== element && null !== prevMatch.fn),
casing: null,
def: opts.staticDefinitionSymbol || element,
placeholder:
opts.staticDefinitionSymbol !== undefined
? element
: undefined,
nativeDef: element,
}),
(escaped = !1);
}
}
function verifyGroupMarker(maskToken) {
maskToken &&
maskToken.matches &&
$.each(maskToken.matches, function (ndx, token) {
var nextToken = maskToken.matches[ndx + 1];
(nextToken === undefined ||
nextToken.matches === undefined ||
!1 === nextToken.isQuantifier) &&
token &&
token.isGroup &&
((token.isGroup = !1),
regexMask ||
(insertTestDefinition(token, opts.groupmarker.start, 0),
!0 !== token.openGroup &&
insertTestDefinition(token, opts.groupmarker.end))),
verifyGroupMarker(token);
});
}
function defaultCase() {
if (openenings.length > 0) {
if (
((currentOpeningToken = openenings[openenings.length - 1]),
insertTestDefinition(currentOpeningToken, m),
currentOpeningToken.isAlternator)
) {
alternator = openenings.pop();
for (var mndx = 0; mndx < alternator.matches.length; mndx++)
alternator.matches[mndx].isGroup = !1;
openenings.length > 0
? (currentOpeningToken =
openenings[openenings.length - 1]).matches.push(alternator)
: currentToken.matches.push(alternator);
}
} else insertTestDefinition(currentToken, m);
}
function reverseTokens(maskToken) {
maskToken.matches = maskToken.matches.reverse();
for (var match in maskToken.matches)
if (maskToken.matches.hasOwnProperty(match)) {
var intMatch = parseInt(match);
if (
maskToken.matches[match].isQuantifier &&
maskToken.matches[intMatch + 1] &&
maskToken.matches[intMatch + 1].isGroup
) {
var qt = maskToken.matches[match];
maskToken.matches.splice(match, 1),
maskToken.matches.splice(intMatch + 1, 0, qt);
}
maskToken.matches[match].matches !== undefined
? (maskToken.matches[match] = reverseTokens(
maskToken.matches[match]
))
: (maskToken.matches[match] = (function (st) {
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),
st
);
})(maskToken.matches[match]));
}
return maskToken;
}
var match,
m,
openingToken,
currentOpeningToken,
alternator,
lastMatch,
groupToken,
tokenizer =
/(?:[?*+]|\{[0-9\+\*]+(?:,[0-9\+\*]*)?\})|[^.?*+^${[]()|\\]+|./g,
regexTokenizer =
/\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g,
escaped = !1,
currentToken = new MaskToken(),
openenings = [],
maskTokens = [];
for (
regexMask &&
((opts.optionalmarker.start = undefined),
(opts.optionalmarker.end = undefined));
(match = regexMask
? regexTokenizer.exec(mask)
: tokenizer.exec(mask));
) {
if (((m = match[0]), regexMask))
switch (m.charAt(0)) {
case "?":
m = "{0,1}";
break;
case "+":
case "*":
m = "{" + m + "}";
}
if (escaped) defaultCase();
else
switch (m.charAt(0)) {
case opts.escapeChar:
(escaped = !0), regexMask && defaultCase();
break;
case opts.optionalmarker.end:
case opts.groupmarker.end:
if (
((openingToken = openenings.pop()),
(openingToken.openGroup = !1),
openingToken !== undefined)
)
if (openenings.length > 0) {
if (
((currentOpeningToken =
openenings[openenings.length - 1]).matches.push(
openingToken
),
currentOpeningToken.isAlternator)
) {
alternator = openenings.pop();
for (
var mndx = 0;
mndx < alternator.matches.length;
mndx++
)
(alternator.matches[mndx].isGroup = !1),
(alternator.matches[mndx].alternatorGroup = !1);
openenings.length > 0
? (currentOpeningToken =
openenings[openenings.length - 1]).matches.push(
alternator
)
: currentToken.matches.push(alternator);
}
} else currentToken.matches.push(openingToken);
else defaultCase();
break;
case opts.optionalmarker.start:
openenings.push(new MaskToken(!1, !0));
break;
case opts.groupmarker.start:
openenings.push(new MaskToken(!0));
break;
case opts.quantifiermarker.start:
var quantifier = new MaskToken(!1, !1, !0),
mq = (m = m.replace(/[{}]/g, "")).split(","),
mq0 = isNaN(mq[0]) ? mq[0] : parseInt(mq[0]),
mq1 =
1 === mq.length
? mq0
: isNaN(mq[1])
? mq[1]
: parseInt(mq[1]);
if (
(("*" !== mq1 && "+" !== mq1) || (mq0 = "*" === mq1 ? 0 : 1),
(quantifier.quantifier = {
min: mq0,
max: mq1,
}),
openenings.length > 0)
) {
var matches = openenings[openenings.length - 1].matches;
(match = matches.pop()).isGroup ||
((groupToken = new MaskToken(!0)).matches.push(match),
(match = groupToken)),
matches.push(match),
matches.push(quantifier);
} else
(match = currentToken.matches.pop()).isGroup ||
(regexMask &&
null === match.fn &&
"." === match.def &&
(match.fn = new RegExp(
match.def,
opts.casing ? "i" : ""
)),
(groupToken = new MaskToken(!0)).matches.push(match),
(match = groupToken)),
currentToken.matches.push(match),
currentToken.matches.push(quantifier);
break;
case opts.alternatormarker:
if (openenings.length > 0) {
var subToken = (currentOpeningToken =
openenings[openenings.length - 1]).matches[
currentOpeningToken.matches.length - 1
];
lastMatch =
currentOpeningToken.openGroup &&
(subToken.matches === undefined ||
(!1 === subToken.isGroup && !1 === subToken.isAlternator))
? openenings.pop()
: currentOpeningToken.matches.pop();
} else lastMatch = currentToken.matches.pop();
if (lastMatch.isAlternator) openenings.push(lastMatch);
else if (
(lastMatch.alternatorGroup
? ((alternator = openenings.pop()),
(lastMatch.alternatorGroup = !1))
: (alternator = new MaskToken(!1, !1, !1, !0)),
alternator.matches.push(lastMatch),
openenings.push(alternator),
lastMatch.openGroup)
) {
lastMatch.openGroup = !1;
var alternatorGroup = new MaskToken(!0);
(alternatorGroup.alternatorGroup = !0),
openenings.push(alternatorGroup);
}
break;
default:
defaultCase();
}
}
for (; openenings.length > 0; )
(openingToken = openenings.pop()),
currentToken.matches.push(openingToken);
return (
currentToken.matches.length > 0 &&
(verifyGroupMarker(currentToken), maskTokens.push(currentToken)),
(opts.numericInput || opts.isRTL) && reverseTokens(maskTokens[0]),
maskTokens
);
},
}),
(Inputmask.extendDefaults = function (options) {
$.extend(!0, Inputmask.prototype.defaults, options);
}),
(Inputmask.extendDefinitions = function (definition) {
$.extend(!0, Inputmask.prototype.definitions, definition);
}),
(Inputmask.extendAliases = function (alias) {
$.extend(!0, Inputmask.prototype.aliases, alias);
}),
(Inputmask.format = function (value, options, metadata) {
return Inputmask(options).format(value, metadata);
}),
(Inputmask.unmask = function (value, options) {
return Inputmask(options).unmaskedvalue(value);
}),
(Inputmask.isValid = function (value, options) {
return Inputmask(options).isValid(value);
}),
(Inputmask.remove = function (elems) {
$.each(elems, function (ndx, el) {
el.inputmask && el.inputmask.remove();
});
}),
(Inputmask.escapeRegex = function (str) {
var specials = [
"/",
".",
"*",
"+",
"?",
"|",
"(",
")",
"[",
"]",
"{",
"}",
"\\",
"$",
"^",
];
return str.replace(
new RegExp("(\\" + specials.join("|\\") + ")", "gim"),
"\\$1"
);
}),
(Inputmask.keyCode = {
ALT: 18,
BACKSPACE: 8,
BACKSPACE_SAFARI: 127,
CAPS_LOCK: 20,
COMMA: 188,
COMMAND: 91,
COMMAND_LEFT: 91,
COMMAND_RIGHT: 93,
CONTROL: 17,
DELETE: 46,
DOWN: 40,
END: 35,
ENTER: 13,
ESCAPE: 27,
HOME: 36,
INSERT: 45,
LEFT: 37,
MENU: 93,
NUMPAD_ADD: 107,
NUMPAD_DECIMAL: 110,
NUMPAD_DIVIDE: 111,
NUMPAD_ENTER: 108,
NUMPAD_MULTIPLY: 106,
NUMPAD_SUBTRACT: 109,
PAGE_DOWN: 34,
PAGE_UP: 33,
PERIOD: 190,
RIGHT: 39,
SHIFT: 16,
SPACE: 32,
TAB: 9,
UP: 38,
WINDOWS: 91,
X: 88,
}),
Inputmask
);
});