|
|
@@ -251,12 +251,13 @@
|
|
|
return !0;
|
|
|
}
|
|
|
function stripValidPositions(start, end, nocheck, strict) {
|
|
|
- var i, s, startPos = start;
|
|
|
- void 0 != getMaskSet().validPositions[start] && getMaskSet().validPositions[start].input == opts.radixPoint && (end++,
|
|
|
+ var i, startPos = start;
|
|
|
+ getMaskSet().p = start, void 0 != getMaskSet().validPositions[start] && getMaskSet().validPositions[start].input == opts.radixPoint && (end++,
|
|
|
startPos++);
|
|
|
for (i = startPos; end > i; i++) void 0 != getMaskSet().validPositions[i] && (nocheck === !0 || 0 != opts.canClearPosition(getMaskSet(), i, getLastValidPosition(), strict, opts)) && delete getMaskSet().validPositions[i];
|
|
|
for (resetMaskSet(!0), i = startPos + 1; i <= getLastValidPosition(); ) {
|
|
|
- for (;void 0 != (s = getMaskSet().validPositions[startPos]); ) startPos++;
|
|
|
+ for (;void 0 != getMaskSet().validPositions[startPos]; ) startPos++;
|
|
|
+ var s = getMaskSet().validPositions[startPos];
|
|
|
startPos > i && (i = startPos + 1);
|
|
|
var t = getMaskSet().validPositions[i];
|
|
|
void 0 != t && void 0 == s ? (positionCanMatchDefinition(startPos, t.match.def) && isValid(startPos, t.input, !0) !== !1 && (delete getMaskSet().validPositions[i],
|
|
|
@@ -769,10 +770,12 @@
|
|
|
var pend = pos.end;
|
|
|
pos.end = pos.begin, pos.begin = pend;
|
|
|
}
|
|
|
- k == $.inputmask.keyCode.BACKSPACE && pos.end - pos.begin <= 1 ? pos.begin = seekPrevious(pos.begin) : k == $.inputmask.keyCode.DELETE && pos.begin == pos.end && pos.end++,
|
|
|
- stripValidPositions(pos.begin, pos.end, !1, strict), generalize();
|
|
|
- var lvp = getLastValidPosition(pos.begin);
|
|
|
- lvp < pos.begin ? (-1 == lvp && resetMaskSet(), getMaskSet().p = seekNext(lvp)) : getMaskSet().p = pos.begin;
|
|
|
+ if (k == $.inputmask.keyCode.BACKSPACE && pos.end - pos.begin <= 1 ? pos.begin = seekPrevious(pos.begin) : k == $.inputmask.keyCode.DELETE && pos.begin == pos.end && pos.end++,
|
|
|
+ stripValidPositions(pos.begin, pos.end, !1, strict), strict !== !0) {
|
|
|
+ generalize();
|
|
|
+ var lvp = getLastValidPosition(pos.begin);
|
|
|
+ lvp < pos.begin ? (-1 == lvp && resetMaskSet(), getMaskSet().p = seekNext(lvp)) : getMaskSet().p = pos.begin;
|
|
|
+ }
|
|
|
}
|
|
|
function keydownEvent(e) {
|
|
|
var input = this, $input = $(input), k = e.keyCode, pos = caret(input);
|
|
|
@@ -802,9 +805,9 @@
|
|
|
end: ndx
|
|
|
} : caret(input), c = String.fromCharCode(k), isSlctn = isSelection(pos.begin, pos.end);
|
|
|
isSlctn && (getMaskSet().undoPositions = $.extend(!0, {}, getMaskSet().validPositions),
|
|
|
- handleRemove(input, $.inputmask.keyCode.DELETE, pos, !0), opts.insertMode || (opts.insertMode = !opts.insertMode,
|
|
|
- setValidPosition(pos.begin, strict), opts.insertMode = !opts.insertMode), isSlctn = !opts.multi),
|
|
|
- getMaskSet().writeOutBuffer = !0;
|
|
|
+ handleRemove(input, $.inputmask.keyCode.DELETE, pos, !0), pos.begin = getMaskSet().p,
|
|
|
+ opts.insertMode || (opts.insertMode = !opts.insertMode, setValidPosition(pos.begin, strict),
|
|
|
+ opts.insertMode = !opts.insertMode), isSlctn = !opts.multi), getMaskSet().writeOutBuffer = !0;
|
|
|
var p = isRTL && !isSlctn ? pos.end : pos.begin, valResult = isValid(p, c, strict);
|
|
|
if (valResult !== !1) {
|
|
|
if (valResult !== !0 && (p = void 0 != valResult.pos ? valResult.pos : p, c = void 0 != valResult.c ? valResult.c : c),
|
|
|
@@ -2016,7 +2019,7 @@
|
|
|
initialValue;
|
|
|
},
|
|
|
canClearPosition: function(maskset, position, lvp, strict, opts) {
|
|
|
- var positionInput = maskset.validPositions[position].input, canClear = positionInput != opts.radixPoint && isFinite(positionInput) || position == lvp;
|
|
|
+ var positionInput = maskset.validPositions[position].input, canClear = positionInput != opts.radixPoint && isFinite(positionInput) || position == lvp || positionInput == opts.groupSeparator;
|
|
|
if (canClear && isFinite(positionInput)) {
|
|
|
if (!strict) for (var pos = position + 1; maskset.validPositions[pos] && (maskset.validPositions[pos].input == opts.groupSeparator || "0" == maskset.validPositions[pos].input); ) delete maskset.validPositions[pos],
|
|
|
pos++;
|
|
|
@@ -2026,7 +2029,7 @@
|
|
|
if (matchRslt && (-1 == radixPosition || radixPosition >= position)) if (0 == matchRslt[0].indexOf("0")) canClear = matchRslt.index != position || -1 == radixPosition; else {
|
|
|
var intPart = parseInt(matchRslt[0].replace(new RegExp($.inputmask.escapeRegex.call(this, opts.groupSeparator), "g"), ""));
|
|
|
-1 != radixPosition && 10 > intPart && "0" == opts.placeholder.charAt(0) && (maskset.validPositions[position].input = "0",
|
|
|
- canClear = !1);
|
|
|
+ maskset.p = opts.prefix.length + 1, canClear = !1);
|
|
|
}
|
|
|
}
|
|
|
return canClear;
|