|
|
@@ -3,7 +3,7 @@
|
|
|
* http://github.com/RobinHerbots/jquery.inputmask
|
|
|
* Copyright (c) 2010 - 2013 Robin Herbots
|
|
|
* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
|
|
|
-* Version: 2.2.57
|
|
|
+* Version: 2.2.58
|
|
|
*/
|
|
|
|
|
|
(function ($) {
|
|
|
@@ -642,8 +642,8 @@
|
|
|
var ml = getMaskLength();
|
|
|
$.each(inputValue, function (ndx, charCode) {
|
|
|
var index = isRTL ? (opts.numericInput ? ml : ml - ndx) : ndx;
|
|
|
- if (isMask(isRTL ? index - 1 : index)
|
|
|
- || (strict !== true && charCode != getBufferElement(getActiveBufferTemplate(), isRTL ? index - 1 : index, true))) {
|
|
|
+ if ((strict && isMask(isRTL ? index - 1 : index))
|
|
|
+ || $.inArray(charCode, getActiveBufferTemplate().slice(getActiveMaskSet()["lastValidPosition"] + 1, getActiveMaskSet()["p"])) == -1) {
|
|
|
$(input).trigger("keypress", [true, charCode.charCodeAt(0), writeOut, strict, index, isRTL]);
|
|
|
}
|
|
|
});
|
|
|
@@ -812,7 +812,7 @@
|
|
|
$input.unbind(".inputmask");
|
|
|
$input.removeClass('focus.inputmask');
|
|
|
//bind events
|
|
|
- $input.closest('form').bind("submit", function() { //trigger change on submit if any
|
|
|
+ $input.closest('form').bind("submit", function () { //trigger change on submit if any
|
|
|
if ($input[0]._valueGet() != getActiveMaskSet()["undoBuffer"]) {
|
|
|
$input.change();
|
|
|
}
|
|
|
@@ -1305,7 +1305,7 @@
|
|
|
var isSelection = (pos.end - pos.begin) > 1 || ((pos.end - pos.begin) == 1 && opts.insertMode);
|
|
|
if (isSelection) {
|
|
|
var initialIndex = activeMasksetIndex, redetermineLVP = false;
|
|
|
- $.each(masksets, function(ndx, lmnt) {
|
|
|
+ $.each(masksets, function (ndx, lmnt) {
|
|
|
activeMasksetIndex = ndx;
|
|
|
getActiveMaskSet()["undoBuffer"] = getActiveBuffer().join(''); //init undobuffer for recovery when not valid
|
|
|
var posend = pos.end < getMaskLength() ? pos.end : getMaskLength();
|
|
|
@@ -1329,7 +1329,7 @@
|
|
|
activeMasksetIndex = initialIndex;
|
|
|
checkVal(input, false, true, getActiveBuffer());
|
|
|
if (!opts.insertMode) { //preserve some space
|
|
|
- $.each(masksets, function(ndx, lmnt) {
|
|
|
+ $.each(masksets, function (ndx, lmnt) {
|
|
|
activeMasksetIndex = ndx;
|
|
|
isRTL ? shiftL(0, posend) : shiftR(pos.begin, ml, getPlaceHolder(pos.begin), true);
|
|
|
getActiveMaskSet()["lastValidPosition"] = isRTL ? seekPrevious(getActiveMaskSet()["lastValidPosition"]) : seekNext(getActiveMaskSet()["lastValidPosition"]);
|
|
|
@@ -1340,130 +1340,130 @@
|
|
|
}
|
|
|
|
|
|
if (isRTL) {
|
|
|
- var p = seekPrevious(pos.end);
|
|
|
- results = isValid(p, c, strict, isRTL);
|
|
|
- if (strict === true) results = [{ "activeMasksetIndex": activeMasksetIndex, "result": results }];
|
|
|
- $.each(results, function (index, result) {
|
|
|
- activeMasksetIndex = result["activeMasksetIndex"];
|
|
|
- getActiveMaskSet()["writeOutBuffer"] = true;
|
|
|
- var np = result["result"];
|
|
|
- if (np !== false) {
|
|
|
- var refresh = false, buffer = getActiveBuffer();
|
|
|
- if (np !== true) {
|
|
|
- refresh = np["refresh"]; //only rewrite buffer from isValid
|
|
|
- p = np.pos != undefined ? np.pos : p; //set new position from isValid
|
|
|
- c = np.c != undefined ? np.c : c; //set new char from isValid
|
|
|
- }
|
|
|
- if (refresh !== true) {
|
|
|
- var maskL = getMaskLength(); //update masklength to include possible groupSeparator offset
|
|
|
- var firstMaskPos = seekNext(-1), firstUnmaskedPosition = firstMaskPos;
|
|
|
- if (opts.insertMode == true) {
|
|
|
- if (getActiveMaskSet()['greedy'] == true) {
|
|
|
- var bfrClone = buffer.slice();
|
|
|
- while (getBufferElement(bfrClone, firstUnmaskedPosition, true) != getPlaceHolder(firstUnmaskedPosition) && firstUnmaskedPosition <= p) {
|
|
|
- firstUnmaskedPosition = firstUnmaskedPosition == maskL ? (maskL + 1) : seekNext(firstUnmaskedPosition);
|
|
|
- }
|
|
|
- }
|
|
|
- if (firstUnmaskedPosition <= p && (getActiveMaskSet()['greedy'] || (buffer.length < maskL || getBufferElement(buffer, p) == getPlaceHolder(p)))) {
|
|
|
- if (buffer[firstMaskPos] != getPlaceHolder(firstMaskPos) && buffer.length < maskL) {
|
|
|
- var offset = prepareBuffer(buffer, -1, isRTL);
|
|
|
- if ((isSelection ? pos.begin : pos.end) != 0) p = p + offset;
|
|
|
- maskL = buffer.length;
|
|
|
- }
|
|
|
- shiftL(firstUnmaskedPosition, p, c);
|
|
|
- } else getActiveMaskSet()["writeOutBuffer"] = false;
|
|
|
- } else setBufferElement(buffer, p, c, true, isRTL);
|
|
|
- }
|
|
|
- getActiveMaskSet()["p"] = p;
|
|
|
+ var p = seekPrevious(pos.end);
|
|
|
+ results = isValid(p, c, strict, isRTL);
|
|
|
+ if (strict === true) results = [{ "activeMasksetIndex": activeMasksetIndex, "result": results }];
|
|
|
+ $.each(results, function (index, result) {
|
|
|
+ activeMasksetIndex = result["activeMasksetIndex"];
|
|
|
+ getActiveMaskSet()["writeOutBuffer"] = true;
|
|
|
+ var np = result["result"];
|
|
|
+ if (np !== false) {
|
|
|
+ var refresh = false, buffer = getActiveBuffer();
|
|
|
+ if (np !== true) {
|
|
|
+ refresh = np["refresh"]; //only rewrite buffer from isValid
|
|
|
+ p = np.pos != undefined ? np.pos : p; //set new position from isValid
|
|
|
+ c = np.c != undefined ? np.c : c; //set new char from isValid
|
|
|
}
|
|
|
- });
|
|
|
- } else {
|
|
|
- var p = seekNext(pos.begin - 1);
|
|
|
- results = isValid(p, c, strict, isRTL);
|
|
|
- if (strict === true) results = [{ "activeMasksetIndex": activeMasksetIndex, "result": results }];
|
|
|
- $.each(results, function (index, result) {
|
|
|
- activeMasksetIndex = result["activeMasksetIndex"];
|
|
|
- getActiveMaskSet()["writeOutBuffer"] = true;
|
|
|
- var np = result["result"];
|
|
|
- if (np !== false) {
|
|
|
- var refresh = false, buffer = getActiveBuffer();
|
|
|
- if (np !== true) {
|
|
|
- refresh = np["refresh"]; //only rewrite buffer from isValid
|
|
|
- p = np.pos != undefined ? np.pos : p; //set new position from isValid
|
|
|
- c = np.c != undefined ? np.c : c; //set new char from isValid
|
|
|
- }
|
|
|
- if (refresh !== true) {
|
|
|
- if (opts.insertMode == true) {
|
|
|
- var lastUnmaskedPosition = getMaskLength();
|
|
|
+ if (refresh !== true) {
|
|
|
+ var maskL = getMaskLength(); //update masklength to include possible groupSeparator offset
|
|
|
+ var firstMaskPos = seekNext(-1), firstUnmaskedPosition = firstMaskPos;
|
|
|
+ if (opts.insertMode == true) {
|
|
|
+ if (getActiveMaskSet()['greedy'] == true) {
|
|
|
var bfrClone = buffer.slice();
|
|
|
- while (getBufferElement(bfrClone, lastUnmaskedPosition, true) != getPlaceHolder(lastUnmaskedPosition) && lastUnmaskedPosition >= p) {
|
|
|
- lastUnmaskedPosition = lastUnmaskedPosition == 0 ? -1 : seekPrevious(lastUnmaskedPosition);
|
|
|
+ while (getBufferElement(bfrClone, firstUnmaskedPosition, true) != getPlaceHolder(firstUnmaskedPosition) && firstUnmaskedPosition <= p) {
|
|
|
+ firstUnmaskedPosition = firstUnmaskedPosition == maskL ? (maskL + 1) : seekNext(firstUnmaskedPosition);
|
|
|
}
|
|
|
- if (lastUnmaskedPosition >= p)
|
|
|
- shiftR(p, buffer.length, c);
|
|
|
- else getActiveMaskSet()["writeOutBuffer"] = false;
|
|
|
- } else setBufferElement(buffer, p, c, true, isRTL);
|
|
|
- }
|
|
|
- getActiveMaskSet()["p"] = seekNext(p);
|
|
|
+ }
|
|
|
+ if (firstUnmaskedPosition <= p && (getActiveMaskSet()['greedy'] || (buffer.length < maskL || getBufferElement(buffer, p) == getPlaceHolder(p)))) {
|
|
|
+ if (buffer[firstMaskPos] != getPlaceHolder(firstMaskPos) && buffer.length < maskL) {
|
|
|
+ var offset = prepareBuffer(buffer, -1, isRTL);
|
|
|
+ if ((isSelection ? pos.begin : pos.end) != 0) p = p + offset;
|
|
|
+ maskL = buffer.length;
|
|
|
+ }
|
|
|
+ shiftL(firstUnmaskedPosition, p, c);
|
|
|
+ } else getActiveMaskSet()["writeOutBuffer"] = false;
|
|
|
+ } else setBufferElement(buffer, p, c, true, isRTL);
|
|
|
}
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- if (strict !== true) determineActiveMasksetIndex(isRTL);
|
|
|
- if (writeOut !== false) {
|
|
|
- $.each(results, function (ndx, rslt) {
|
|
|
- if (rslt["activeMasksetIndex"] == activeMasksetIndex) {
|
|
|
- result = rslt;
|
|
|
- return false;
|
|
|
+ getActiveMaskSet()["p"] = p;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ var p = seekNext(pos.begin - 1);
|
|
|
+ results = isValid(p, c, strict, isRTL);
|
|
|
+ if (strict === true) results = [{ "activeMasksetIndex": activeMasksetIndex, "result": results }];
|
|
|
+ $.each(results, function (index, result) {
|
|
|
+ activeMasksetIndex = result["activeMasksetIndex"];
|
|
|
+ getActiveMaskSet()["writeOutBuffer"] = true;
|
|
|
+ var np = result["result"];
|
|
|
+ if (np !== false) {
|
|
|
+ var refresh = false, buffer = getActiveBuffer();
|
|
|
+ if (np !== true) {
|
|
|
+ refresh = np["refresh"]; //only rewrite buffer from isValid
|
|
|
+ p = np.pos != undefined ? np.pos : p; //set new position from isValid
|
|
|
+ c = np.c != undefined ? np.c : c; //set new char from isValid
|
|
|
}
|
|
|
- });
|
|
|
- if (result != undefined) {
|
|
|
- var self = this;
|
|
|
- setTimeout(function () { opts.onKeyValidation.call(self, result["result"], opts); }, 0);
|
|
|
- if (getActiveMaskSet()["writeOutBuffer"] && result["result"] !== false) {
|
|
|
- var buffer = getActiveBuffer();
|
|
|
- writeBuffer(input, buffer, checkval ? undefined : (opts.numericInput ? seekNext(getActiveMaskSet()["p"]) : getActiveMaskSet()["p"]));
|
|
|
- setTimeout(function () { //timeout needed for IE
|
|
|
- if (isComplete(buffer))
|
|
|
- $input.trigger("complete");
|
|
|
- }, 0);
|
|
|
- } else {
|
|
|
- getActiveMaskSet()["buffer"] = getActiveMaskSet()["undoBuffer"].split('');
|
|
|
+ if (refresh !== true) {
|
|
|
+ if (opts.insertMode == true) {
|
|
|
+ var lastUnmaskedPosition = getMaskLength();
|
|
|
+ var bfrClone = buffer.slice();
|
|
|
+ while (getBufferElement(bfrClone, lastUnmaskedPosition, true) != getPlaceHolder(lastUnmaskedPosition) && lastUnmaskedPosition >= p) {
|
|
|
+ lastUnmaskedPosition = lastUnmaskedPosition == 0 ? -1 : seekPrevious(lastUnmaskedPosition);
|
|
|
+ }
|
|
|
+ if (lastUnmaskedPosition >= p)
|
|
|
+ shiftR(p, buffer.length, c);
|
|
|
+ else getActiveMaskSet()["writeOutBuffer"] = false;
|
|
|
+ } else setBufferElement(buffer, p, c, true, isRTL);
|
|
|
}
|
|
|
+ getActiveMaskSet()["p"] = seekNext(p);
|
|
|
}
|
|
|
- }
|
|
|
+ });
|
|
|
+ }
|
|
|
|
|
|
- if (opts.showTooltip) { //update tooltip
|
|
|
- $input.prop("title", getActiveMaskSet()["mask"]);
|
|
|
+ if (strict !== true) determineActiveMasksetIndex(isRTL);
|
|
|
+ if (writeOut !== false) {
|
|
|
+ $.each(results, function (ndx, rslt) {
|
|
|
+ if (rslt["activeMasksetIndex"] == activeMasksetIndex) {
|
|
|
+ result = rslt;
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (result != undefined) {
|
|
|
+ var self = this;
|
|
|
+ setTimeout(function () { opts.onKeyValidation.call(self, result["result"], opts); }, 0);
|
|
|
+ if (getActiveMaskSet()["writeOutBuffer"] && result["result"] !== false) {
|
|
|
+ var buffer = getActiveBuffer();
|
|
|
+ writeBuffer(input, buffer, checkval ? undefined : (opts.numericInput ? seekNext(getActiveMaskSet()["p"]) : getActiveMaskSet()["p"]));
|
|
|
+ setTimeout(function () { //timeout needed for IE
|
|
|
+ if (isComplete(buffer))
|
|
|
+ $input.trigger("complete");
|
|
|
+ }, 0);
|
|
|
+ } else {
|
|
|
+ getActiveMaskSet()["buffer"] = getActiveMaskSet()["undoBuffer"].split('');
|
|
|
+ }
|
|
|
}
|
|
|
- e.preventDefault();
|
|
|
}
|
|
|
+
|
|
|
+ if (opts.showTooltip) { //update tooltip
|
|
|
+ $input.prop("title", getActiveMaskSet()["mask"]);
|
|
|
+ }
|
|
|
+ e.preventDefault();
|
|
|
}
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- function keyupEvent(e) {
|
|
|
- var $input = $(this), input = this, k = e.keyCode, buffer = getActiveBuffer();
|
|
|
- opts.onKeyUp.call(this, e, buffer, opts); //extra stuff to execute on keyup
|
|
|
- if (k == opts.keyCode.TAB && $input.hasClass('focus.inputmask') && input._valueGet().length == 0 && opts.showMaskOnFocus) {
|
|
|
- buffer = getActiveBufferTemplate().slice();
|
|
|
- writeBuffer(input, buffer);
|
|
|
- if (!isRTL) caret(input, 0);
|
|
|
- getActiveMaskSet()["undoBuffer"] = input._valueGet();
|
|
|
- }
|
|
|
+ function keyupEvent(e) {
|
|
|
+ var $input = $(this), input = this, k = e.keyCode, buffer = getActiveBuffer();
|
|
|
+ opts.onKeyUp.call(this, e, buffer, opts); //extra stuff to execute on keyup
|
|
|
+ if (k == opts.keyCode.TAB && $input.hasClass('focus.inputmask') && input._valueGet().length == 0 && opts.showMaskOnFocus) {
|
|
|
+ buffer = getActiveBufferTemplate().slice();
|
|
|
+ writeBuffer(input, buffer);
|
|
|
+ if (!isRTL) caret(input, 0);
|
|
|
+ getActiveMaskSet()["undoBuffer"] = input._valueGet();
|
|
|
}
|
|
|
- };
|
|
|
- return this;
|
|
|
+ }
|
|
|
};
|
|
|
return this;
|
|
|
};
|
|
|
- }
|
|
|
- })(jQuery);
|
|
|
+ return this;
|
|
|
+ };
|
|
|
+ }
|
|
|
+})(jQuery);
|
|
|
/*
|
|
|
Input Mask plugin extensions
|
|
|
http://github.com/RobinHerbots/jquery.inputmask
|
|
|
Copyright (c) 2010 - 2013 Robin Herbots
|
|
|
Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
|
|
|
-Version: 2.2.57
|
|
|
+Version: 2.2.58
|
|
|
|
|
|
Optional extensions on the jquery.inputmask base
|
|
|
*/
|
|
|
@@ -1565,7 +1565,7 @@ Input Mask plugin extensions
|
|
|
http://github.com/RobinHerbots/jquery.inputmask
|
|
|
Copyright (c) 2010 - 2012 Robin Herbots
|
|
|
Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
|
|
|
-Version: 2.2.57
|
|
|
+Version: 2.2.58
|
|
|
|
|
|
Optional extensions on the jquery.inputmask base
|
|
|
*/
|
|
|
@@ -2034,7 +2034,7 @@ Input Mask plugin extensions
|
|
|
http://github.com/RobinHerbots/jquery.inputmask
|
|
|
Copyright (c) 2010 - 2013 Robin Herbots
|
|
|
Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
|
|
|
-Version: 2.2.57
|
|
|
+Version: 2.2.58
|
|
|
|
|
|
Optional extensions on the jquery.inputmask base
|
|
|
*/
|
|
|
@@ -2197,7 +2197,7 @@ Input Mask plugin extensions
|
|
|
http://github.com/RobinHerbots/jquery.inputmask
|
|
|
Copyright (c) 2010 - 2013 Robin Herbots
|
|
|
Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
|
|
|
-Version: 2.2.57
|
|
|
+Version: 2.2.58
|
|
|
|
|
|
Regex extensions on the jquery.inputmask base
|
|
|
Allows for using regular expressions as a mask
|