|
@@ -3,7 +3,7 @@
|
|
|
* https://github.com/RobinHerbots/jquery.inputmask
|
|
* https://github.com/RobinHerbots/jquery.inputmask
|
|
|
* Copyright (c) 2010 - 2016 Robin Herbots
|
|
* Copyright (c) 2010 - 2016 Robin Herbots
|
|
|
* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
|
|
* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
|
|
|
-* Version: 3.3.4-64
|
|
|
|
|
|
|
+* Version: 3.3.4-92
|
|
|
*/
|
|
*/
|
|
|
!function($) {
|
|
!function($) {
|
|
|
function Inputmask(alias, options) {
|
|
function Inputmask(alias, options) {
|
|
@@ -86,10 +86,11 @@
|
|
|
if ($.isFunction(opts.mask) && (opts.mask = opts.mask(opts)), $.isArray(opts.mask)) {
|
|
if ($.isFunction(opts.mask) && (opts.mask = opts.mask(opts)), $.isArray(opts.mask)) {
|
|
|
if (opts.mask.length > 1) {
|
|
if (opts.mask.length > 1) {
|
|
|
opts.keepStatic = null === opts.keepStatic || opts.keepStatic;
|
|
opts.keepStatic = null === opts.keepStatic || opts.keepStatic;
|
|
|
- var altMask = "(";
|
|
|
|
|
|
|
+ var altMask = opts.groupmarker.start;
|
|
|
return $.each(opts.numericInput ? opts.mask.reverse() : opts.mask, function(ndx, msk) {
|
|
return $.each(opts.numericInput ? opts.mask.reverse() : opts.mask, function(ndx, msk) {
|
|
|
- altMask.length > 1 && (altMask += ")|("), altMask += void 0 === msk.mask || $.isFunction(msk.mask) ? msk : msk.mask;
|
|
|
|
|
- }), altMask += ")", generateMask(altMask, opts.mask, opts);
|
|
|
|
|
|
|
+ altMask.length > 1 && (altMask += opts.groupmarker.end + opts.alternatormarker + opts.groupmarker.start),
|
|
|
|
|
+ altMask += void 0 === msk.mask || $.isFunction(msk.mask) ? msk : msk.mask;
|
|
|
|
|
+ }), altMask += opts.groupmarker.end, generateMask(altMask, opts.mask, opts);
|
|
|
}
|
|
}
|
|
|
opts.mask = opts.mask.pop();
|
|
opts.mask = opts.mask.pop();
|
|
|
}
|
|
}
|
|
@@ -136,7 +137,7 @@
|
|
|
return !1;
|
|
return !1;
|
|
|
}
|
|
}
|
|
|
var i, startPos = start, positionsClone = $.extend(!0, {}, getMaskSet().validPositions), needsValidation = !1;
|
|
var i, startPos = start, positionsClone = $.extend(!0, {}, getMaskSet().validPositions), needsValidation = !1;
|
|
|
- for (getMaskSet().p = start, i = end - 1; i >= startPos; i--) void 0 !== getMaskSet().validPositions[i] && (nocheck === !0 || !IsEnclosedStatic(i) && opts.canClearPosition(getMaskSet(), i, getLastValidPosition(), strict, opts) !== !1) && delete getMaskSet().validPositions[i];
|
|
|
|
|
|
|
+ for (getMaskSet().p = start, i = end - 1; i >= startPos; i--) void 0 !== getMaskSet().validPositions[i] && (nocheck !== !0 && (!getMaskSet().validPositions[i].match.optionality && IsEnclosedStatic(i) || opts.canClearPosition(getMaskSet(), i, getLastValidPosition(), strict, opts) === !1) || delete getMaskSet().validPositions[i]);
|
|
|
for (resetMaskSet(!0), i = startPos + 1; i <= getLastValidPosition(); ) {
|
|
for (resetMaskSet(!0), i = startPos + 1; i <= getLastValidPosition(); ) {
|
|
|
for (;void 0 !== getMaskSet().validPositions[startPos]; ) startPos++;
|
|
for (;void 0 !== getMaskSet().validPositions[startPos]; ) startPos++;
|
|
|
var s = getMaskSet().validPositions[startPos];
|
|
var s = getMaskSet().validPositions[startPos];
|
|
@@ -953,7 +954,7 @@
|
|
|
var clickPosition = selectedCaret.begin, lvclickPosition = getLastValidPosition(clickPosition, !0), lastPosition = seekNext(lvclickPosition);
|
|
var clickPosition = selectedCaret.begin, lvclickPosition = getLastValidPosition(clickPosition, !0), lastPosition = seekNext(lvclickPosition);
|
|
|
if (clickPosition < lastPosition) caret(input, isMask(clickPosition) || isMask(clickPosition - 1) ? clickPosition : seekNext(clickPosition)); else {
|
|
if (clickPosition < lastPosition) caret(input, isMask(clickPosition) || isMask(clickPosition - 1) ? clickPosition : seekNext(clickPosition)); else {
|
|
|
var placeholder = getPlaceholder(lastPosition);
|
|
var placeholder = getPlaceholder(lastPosition);
|
|
|
- ("" !== placeholder && getBuffer()[lastPosition] !== placeholder && getTest(lastPosition).match.optionalQuantifier !== !0 || !isMask(lastPosition, !0) && getTest(lastPosition).match.def === placeholder) && (lastPosition = seekNext(lastPosition)),
|
|
|
|
|
|
|
+ ("" !== placeholder && getBuffer()[lastPosition] !== placeholder && getTest(lastPosition).match.optionalQuantifier !== !0 || !isMask(lastPosition) && getTest(lastPosition).match.def === placeholder) && (lastPosition = seekNext(lastPosition)),
|
|
|
caret(input, lastPosition);
|
|
caret(input, lastPosition);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -2574,23 +2575,43 @@
|
|
|
}
|
|
}
|
|
|
}), Inputmask;
|
|
}), Inputmask;
|
|
|
}(jQuery, Inputmask), function($, Inputmask) {
|
|
}(jQuery, Inputmask), function($, Inputmask) {
|
|
|
|
|
+ function maskSort(a, b) {
|
|
|
|
|
+ var maska = (a.mask || a).replace(/#/g, "9").replace(/\)/, "9").replace(/[+()#-]/g, ""), maskb = (b.mask || b).replace(/#/g, "9").replace(/\)/, "9").replace(/[+()#-]/g, ""), maskas = (a.mask || a).split("#")[0], maskbs = (b.mask || b).split("#")[0];
|
|
|
|
|
+ return 0 === maskbs.indexOf(maskas) ? -1 : 0 === maskas.indexOf(maskbs) ? 1 : maska.localeCompare(maskb);
|
|
|
|
|
+ }
|
|
|
var analyseMaskBase = Inputmask.analyseMask;
|
|
var analyseMaskBase = Inputmask.analyseMask;
|
|
|
return Inputmask.analyseMask = function(mask, opts) {
|
|
return Inputmask.analyseMask = function(mask, opts) {
|
|
|
|
|
+ function reduceVariations(masks, previousVariation, previousmaskGroup) {
|
|
|
|
|
+ previousVariation = previousVariation || "", previousmaskGroup = previousmaskGroup || maskGroups,
|
|
|
|
|
+ "" !== previousVariation && (previousmaskGroup[previousVariation] = {});
|
|
|
|
|
+ for (var variation = "", maskGroup = previousmaskGroup[previousVariation] || previousmaskGroup, i = masks.length - 1; i >= 0; i--) mask = masks[i].mask || masks[i],
|
|
|
|
|
+ variation = mask.substr(0, 1), maskGroup[variation] = maskGroup[variation] || [],
|
|
|
|
|
+ maskGroup[variation].unshift(mask.substr(1)), masks.splice(i, 1);
|
|
|
|
|
+ for (var ndx in maskGroup) maskGroup[ndx].length > 1e3 && reduceVariations(maskGroup[ndx].slice(), ndx, maskGroup);
|
|
|
|
|
+ }
|
|
|
|
|
+ function rebuild(maskGroup) {
|
|
|
|
|
+ var mask = "", submasks = [];
|
|
|
|
|
+ for (var ndx in maskGroup) $.isArray(maskGroup[ndx]) ? 1 === maskGroup[ndx].length ? submasks.push(ndx + maskGroup[ndx]) : submasks.push(ndx + opts.groupmarker.start + maskGroup[ndx].join(opts.groupmarker.end + opts.alternatormarker + opts.groupmarker.start) + opts.groupmarker.end) : submasks.push(ndx + rebuild(maskGroup[ndx]));
|
|
|
|
|
+ return mask += 1 === submasks.length ? submasks[0] : opts.groupmarker.start + submasks.join(opts.groupmarker.end + opts.alternatormarker + opts.groupmarker.start) + opts.groupmarker.end;
|
|
|
|
|
+ }
|
|
|
|
|
+ var maskGroups = {};
|
|
|
|
|
+ opts.phoneCodes && opts.phoneCodes.length > 500 && (mask = mask.substr(1, mask.length - 2),
|
|
|
|
|
+ reduceVariations(mask.split(opts.groupmarker.end + opts.alternatormarker + opts.groupmarker.start)),
|
|
|
|
|
+ mask = rebuild(maskGroups)), console.log(mask);
|
|
|
var mt = analyseMaskBase.call(this, mask, opts);
|
|
var mt = analyseMaskBase.call(this, mask, opts);
|
|
|
return mt;
|
|
return mt;
|
|
|
}, Inputmask.extendAliases({
|
|
}, Inputmask.extendAliases({
|
|
|
abstractphone: {
|
|
abstractphone: {
|
|
|
|
|
+ groupmarker: {
|
|
|
|
|
+ start: "<",
|
|
|
|
|
+ end: ">"
|
|
|
|
|
+ },
|
|
|
countrycode: "",
|
|
countrycode: "",
|
|
|
phoneCodes: [],
|
|
phoneCodes: [],
|
|
|
mask: function(opts) {
|
|
mask: function(opts) {
|
|
|
- opts.definitions = {
|
|
|
|
|
|
|
+ return opts.definitions = {
|
|
|
"#": opts.definitions[9]
|
|
"#": opts.definitions[9]
|
|
|
- };
|
|
|
|
|
- var masks = opts.phoneCodes.sort(function(a, b) {
|
|
|
|
|
- var maska = (a.mask || a).replace(/#/g, "9").replace(/[\)]/, "9").replace(/[\+\(\)#-]/g, ""), maskb = (b.mask || b).replace(/#/g, "9").replace(/[\)]/, "9").replace(/[\+\(\)#-]/g, ""), maskas = (a.mask || a).split("#")[0], maskbs = (b.mask || b).split("#")[0];
|
|
|
|
|
- return 0 === maskbs.indexOf(maskas) ? -1 : 0 === maskas.indexOf(maskbs) ? 1 : maska.localeCompare(maskb);
|
|
|
|
|
- });
|
|
|
|
|
- return masks;
|
|
|
|
|
|
|
+ }, opts.phoneCodes.sort(maskSort);
|
|
|
},
|
|
},
|
|
|
keepStatic: !0,
|
|
keepStatic: !0,
|
|
|
onBeforeMask: function(value, opts) {
|
|
onBeforeMask: function(value, opts) {
|