jquery.inputmask.js 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /*
  2. Input Mask plugin for jquery
  3. http://github.com/RobinHerbots/jquery.inputmask
  4. Copyright (c) 2010 - 2013 Robin Herbots
  5. Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
  6. Version: 2.6.0
  7. */
  8. (function(c){void 0===c.fn.inputmask&&(c.inputmask={defaults:{placeholder:"_",optionalmarker:{start:"[",end:"]"},quantifiermarker:{start:"{",end:"}"},groupmarker:{start:"(",end:")"},escapeChar:"\\",mask:null,oncomplete:c.noop,onincomplete:c.noop,oncleared:c.noop,repeat:0,greedy:!0,autoUnmask:!1,clearMaskOnLostFocus:!0,insertMode:!0,clearIncomplete:!1,aliases:{},onKeyUp:c.noop,onKeyDown:c.noop,showMaskOnFocus:!0,showMaskOnHover:!0,onKeyValidation:c.noop,skipOptionalPartCharacter:" ",showTooltip:!1,
  9. numericInput:!1,isNumeric:!1,radixPoint:"",skipRadixDance:!1,rightAlignNumerics:!0,definitions:{9:{validator:"[0-9]",cardinality:1},a:{validator:"[A-Za-z\u0410-\u044f\u0401\u0451]",cardinality:1},"*":{validator:"[A-Za-z\u0410-\u044f\u0401\u04510-9]",cardinality:1}},keyCode:{ALT:18,BACKSPACE:8,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,
  10. 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},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],getMaskLength:function(c,H,G,w,v){v=c.length;H||("*"==G?v=w.length+1:1<G&&(v+=c.length*(G-1)));return v}},escapeRegex:function(c){return c.replace(RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\)","gim"),"\\$1")}},c.fn.inputmask=function(D,
  11. H){function G(a){var c=document.createElement("input");a="on"+a;var d=a in c;d||(c.setAttribute(a,"return;"),d="function"==typeof c[a]);return d}function w(f,h){var d=a.aliases[f];return d?(d.alias&&w(d.alias),c.extend(!0,a,d),c.extend(!0,a,h),!0):!1}function v(f){a.numericInput&&(f=f.split("").reverse().join(""));var h=!1,d=0,k=a.greedy,l=a.repeat;"*"==l&&(k=!1);1==f.length&&!1==k&&0!=l&&(a.placeholder="");f=c.map(f.split(""),function(c,g){var n=[];if(c==a.escapeChar)h=!0;else if(c!=a.optionalmarker.start&&
  12. c!=a.optionalmarker.end||h){var f=a.definitions[c];if(f&&!h)for(var b=0;b<f.cardinality;b++)n.push(a.placeholder.charAt((d+b)%a.placeholder.length));else n.push(c),h=!1;d+=n.length;return n}});for(var g=f.slice(),X=1;X<l&&k;X++)g=g.concat(f.slice());return{mask:g,repeat:l,greedy:k}}function O(f){a.numericInput&&(f=f.split("").reverse().join(""));var h=!1,d=!1,k=!1;return c.map(f.split(""),function(c,g){var f=[];if(c==a.escapeChar)d=!0;else{if(c!=a.optionalmarker.start||d){if(c!=a.optionalmarker.end||
  13. d){var e=a.definitions[c];if(e&&!d){for(var x=e.prevalidator,n=x?x.length:0,p=1;p<e.cardinality;p++){var b=n>=p?x[p-1]:[],E=b.validator,b=b.cardinality;f.push({fn:E?"string"==typeof E?RegExp(E):new function(){this.test=E}:/./,cardinality:b?b:1,optionality:h,newBlockMarker:!0==h?k:!1,offset:0,casing:e.casing,def:e.definitionSymbol||c});!0==h&&(k=!1)}f.push({fn:e.validator?"string"==typeof e.validator?RegExp(e.validator):new function(){this.test=e.validator}:/./,cardinality:e.cardinality,optionality:h,
  14. newBlockMarker:k,offset:0,casing:e.casing,def:e.definitionSymbol||c})}else f.push({fn:null,cardinality:0,optionality:h,newBlockMarker:k,offset:0,casing:null,def:c}),d=!1;k=!1;return f}h=!1}else h=!0;k=!0}})}function S(){function f(c){function d(a,c,g){this.matches=[];this.isGroup=a||!1;this.isOptional=c||!1;this.isQuantifier=g||!1;this.mask;this.quantifier={min:1,max:1}}function f(c,d,g){var b=a.definitions[d];g=void 0!=g?g:c.matches.length;if(b&&!p){for(var h=b.prevalidator,e=h?h.length:0,l=1;l<
  15. b.cardinality;l++){var k=e>=l?h[l-1]:[],n=k.validator,k=k.cardinality;c.matches.splice(g++,0,{fn:n?"string"==typeof n?RegExp(n):new function(){this.test=n}:/./,cardinality:k?k:1,optionality:c.isOptional,casing:b.casing,def:b.definitionSymbol||d})}c.matches.splice(g++,0,{fn:b.validator?"string"==typeof b.validator?RegExp(b.validator):new function(){this.test=b.validator}:/./,cardinality:b.cardinality,optionality:c.isOptional,casing:b.casing,def:b.definitionSymbol||d})}else c.matches.splice(g++,0,{fn:null,
  16. cardinality:0,optionality:c.isOptional,casing:null,def:d}),p=!1}a.numericInput&&(c=c.split("").reverse().join(""));var h=/(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[]()|\\]+|./g,p=!1,b=new d,k,l,m=[];for(g=[];k=h.exec(c);)switch(l=k[0],l.charAt(0)){case a.optionalmarker.end:case a.groupmarker.end:k=m.pop();0<m.length?m[m.length-1].matches.push(k):(g.push(k),b=k);break;case a.optionalmarker.start:!b.isGroup&&0<b.matches.length&&g.push(b);b=new d(!1,!0);m.push(b);break;case a.groupmarker.start:!b.isGroup&&
  17. 0<b.matches.length&&g.push(b);b=new d(!0);m.push(b);break;case a.quantifiermarker.start:k=new d(!1,!1,!0);"*"==l?k.quantifier={min:0,max:"*"}:"*"==l?k.quantifier={min:1,max:"+"}:(l=l.replace(/[{}]/g,""),l=l.split(","),k.quantifier=1==l.length?{min:l[0],max:l[0]}:{min:l[0],max:l[1]});0<m.length?m[m.length-1].matches.push(k):b.matches.push(k);break;case a.escapeChar:p=!0;break;default:0<m.length?f(m[m.length-1],l):(b.isGroup?(b.isGroup=!1,f(b,a.groupmarker.start,0),f(b,a.groupmarker.end),g.pop()):b.isOptional&&
  18. (b=new d),f(b,l))}0<b.matches.length&&g.push(b);if(0<a.repeat||"*"==a.repeat||"+"==a.repeat)c=new d(!0),h=new d(!1,!1,!0),h.quantifier="*"==a.repeat?{min:0,max:"*"}:"+"==a.repeat?{min:1,max:"+"}:{min:a.greedy?a.repeat:1,max:a.repeat},1<g.length?(c.matches=g,c.matches.push(h),g=[c]):g[0].matches.push(h);console.log(JSON.stringify(g));return g}function h(c){var d=c.length;for(i=0;i<d&&c.charAt(i)!=a.optionalmarker.start;i++);var g=[c.substring(0,i)];i<d&&g.push(c.substring(i+1,d));return g}function d(g,
  19. e,m){var n=0,p=0,b=e.length;for(i=0;i<b&&!(e.charAt(i)==a.optionalmarker.start&&n++,e.charAt(i)==a.optionalmarker.end&&p++,0<n&&n==p);i++);n=[e.substring(0,i)];i<b&&n.push(e.substring(i+1,b));p=h(n[0]);1<p.length?(e=g+p[0]+(a.optionalmarker.start+p[1]+a.optionalmarker.end)+(1<n.length?n[1]:""),-1==c.inArray(e,l)&&""!=e&&(l.push(e),b=v(e),k.push({mask:e,maskToken:f(e),_buffer:b.mask,buffer:b.mask.slice(),tests:O(e),tests2:{},lastValidPosition:-1,greedy:b.greedy,repeat:b.repeat,metadata:m})),e=g+p[0]+
  20. (1<n.length?n[1]:""),-1==c.inArray(e,l)&&""!=e&&(l.push(e),b=v(e),k.push({mask:e,maskToken:f(e),_buffer:b.mask,buffer:b.mask.slice(),tests:O(e),tests2:{},lastValidPosition:-1,greedy:b.greedy,repeat:b.repeat,metadata:m})),1<h(p[1]).length&&d(g+p[0],p[1]+n[1],m),1<n.length&&1<h(n[1]).length&&(d(g+p[0]+(a.optionalmarker.start+p[1]+a.optionalmarker.end),n[1],m),d(g+p[0],n[1],m))):(e=g+n,-1==c.inArray(e,l)&&""!=e&&(l.push(e),b=v(e),k.push({mask:e,maskToken:f(e),validPositions:[],_buffer:b.mask,buffer:b.mask.slice(),
  21. tests:O(e),tests2:{},lastValidPosition:-1,greedy:b.greedy,repeat:b.repeat,metadata:m})))}var k=[],l=[],g=[];c.isFunction(a.mask)&&(a.mask=a.mask.call(this,a));c.isArray(a.mask)?c.each(a.mask,function(a,c){void 0!=c.mask?d("",c.mask.toString(),c):d("",c.toString())}):d("",a.mask.toString());return a.greedy?k:k.sort(function(a,c){return a.mask.length-c.mask.length})}function L(f,h){function d(){return f[h]}function k(a){console.log("testing pos "+a);if(void 0!=a){var c=d().maskToken,g=0,b,h=function(c,
  22. d){function N(b){if(g==a&&void 0==b.matches)return console.log(">>> "+JSON.stringify(b)),b;if(void 0!=b.matches)if(b.isGroup)console.log("isGroup");else if(b.isOptional)console.log("isOptional");else if(b.isQuantifier){console.log("isQuantifier "+JSON.stringify(c));for(var l=b,k=l.quantifier.min;k<l.quantifier.max;k++){if(b=N(c.matches[f-1]))return console.log("quantifier match ;-) "+JSON.stringify(b)+" - "+g),b;console.log("quantifier nomatch ;-) "+JSON.stringify(b)+" - "+g)}}else{if(b=h(b,d))return b}else g++}
  23. for(var f=0;f<c.matches.length;f++){var l=N(c.matches[f]);if(l&&g==a)return b.push(f),l}};if(d().tests2[a])return console.log("tests2 cache hit"),d().tests2[a];for(var f=0;f<c.length;f++){b=[f];var l=h(c[f]);if(l&&g==a)return console.log(JSON.stringify(b)+" - "+JSON.stringify(l)),d().tests2[a]=l}return{fn:null,cardinality:0,optionality:!0,casing:null,def:""}}return d().tests}function l(){return d()._buffer}function g(){return d().buffer}function m(s,N,l){function M(c,d,s){for(var b=d?1:0,t="",ca=
  24. g(),A=k(c).cardinality;A>b;A--)t+=z(ca,c-(A-1),!0);d&&(t+=d);return null!=k(c).fn?k(c).fn.test(t,ca,c,s,a):d==I(c)||d==a.skipOptionalPartCharacter?{refresh:!0,c:I(c),pos:c}:!1}if(l=!0===l){var e=M(s,N,l);!0===e&&(e={pos:s});return e}var q=[],e=!1,u=h,U=g().slice(),T=d().lastValidPosition;b(s);var B=[];c.each(f,function(a,c){if("object"==typeof c){h=a;var b=s,f=d().lastValidPosition,t;if(f==T){if(1<b-T)for(f=-1==f?0:f;f<b&&(t=M(f,U[f],!0),!1!==t);f++)E(g(),f,U[f],!0),!0===t&&(t={pos:f}),t=t.pos||f,
  25. d().lastValidPosition<t&&(d().lastValidPosition=t);if(!x(b)&&!M(b,N,l)){f=p(b)-b;for(t=0;t<f&&!1===M(++b,N,l);t++);B.push(h)}}(d().lastValidPosition>=T||h==u)&&0<=b&&b<n()&&(e=M(b,N,l),!1!==e&&(!0===e&&(e={pos:b}),t=e.pos||b,d().lastValidPosition<t&&(d().lastValidPosition=t)),q.push({activeMasksetIndex:a,result:e}))}});var w=function(a,b){var l=!1;c.each(b,function(d,b){if(l=-1==c.inArray(b.activeMasksetIndex,a)&&!1!==b.result)return!1});if(l)b=c.map(b,function(d,b){if(-1==c.inArray(d.activeMasksetIndex,
  26. a))return d;f[d.activeMasksetIndex].lastValidPosition=T});else{var e=-1,t=-1;c.each(b,function(d,b){-1!=c.inArray(b.activeMasksetIndex,a)&&!1!==b.result&(-1==e||e>b.result.pos)&&(e=b.result.pos,t=b.activeMasksetIndex)});b=c.map(b,function(b,A){if(-1!=c.inArray(b.activeMasksetIndex,a)){if(b.result.pos==e)return b;if(!1!==b.result){h=b.activeMasksetIndex;for(var r=s;r<e;r++)if(rsltValid=M(r,f[t].buffer[r],!0),!1===rsltValid){d().lastValidPosition=e-1;break}else E(g(),r,f[t].buffer[r],!0),d().lastValidPosition=
  27. r;rsltValid=M(e,N,!0);!1!==rsltValid&&(E(g(),e,N,!0),d().lastValidPosition=e);return b}}})}return b}(B,q);h=u;return w}function e(){var a=h,b={activeMasksetIndex:0,lastValidPosition:-1,next:-1};c.each(f,function(a,c){"object"==typeof c&&(h=a,d().lastValidPosition>b.lastValidPosition?(b.activeMasksetIndex=a,b.lastValidPosition=d().lastValidPosition,b.next=p(d().lastValidPosition)):d().lastValidPosition==b.lastValidPosition&&(-1==b.next||b.next>p(d().lastValidPosition))&&(b.activeMasksetIndex=a,b.lastValidPosition=
  28. d().lastValidPosition,b.next=p(d().lastValidPosition)))});h=-1!=b.lastValidPosition&&f[a].lastValidPosition==b.lastValidPosition?a:b.activeMasksetIndex;a!=h&&(D(g(),p(b.lastValidPosition),n()),d().writeOutBuffer=!0);q.data("_inputmask").activeMasksetIndex=h}function x(a){a=k(a);return void 0!=a?a.fn:!1}function n(){return a.getMaskLength(l(),d().greedy,d().repeat,g(),a)}function p(a){var c=n();if(a>=c)return c;for(;++a<c&&!x(a););return a}function b(a){if(0>=a)return 0;for(;0<--a&&!x(a););return a}
  29. function E(a,c,b,d){d&&(c=v(a,c));d=k(c);var g=b;if(void 0!=g&&void 0!=d)switch(d.casing){case "upper":g=b.toUpperCase();break;case "lower":g=b.toLowerCase()}a[c]=g}function z(a,c,b){b&&(c=v(a,c));return a[c]}function v(a,c){for(var b;void 0==a[c]&&a.length<n();)for(b=0;void 0!==l()[b];)a.push(l()[b++]);return c}function K(a,c,b){a._valueSet(c.join(""));void 0!=b&&u(a,b)}function D(a,c,b,d){for(var g=n();c<b&&c<g;c++)!0===d?x(c)||E(a,c,""):E(a,c,I(c))}function C(a){E(g(),a,I(a))}function I(c){return x(c)?
  30. a.placeholder.charAt(c%a.placeholder.length):z(l(),c%k().length)}function w(a,g,e,k,m){k=void 0!=k?k.slice():G(a._valueGet()).split("");c.each(f,function(a,c){"object"==typeof c&&(c.buffer=c._buffer.slice(),c.lastValidPosition=-1,c.p=-1)});!0!==e&&(h=0);g&&a._valueSet("");n();c.each(k,function(f,h){if(!0===m){var k=d().p,k=-1==k?k:b(k),n=-1==k?f:p(k);-1==c.inArray(h,l().slice(k+1,n))&&c(a).trigger("_keypress",[!0,h.charCodeAt(0),g,e,f])}else c(a).trigger("_keypress",[!0,h.charCodeAt(0),g,e,f])});
  31. !0===e&&-1!=d().p&&(d().lastValidPosition=b(d().p))}function H(a){return c.inputmask.escapeRegex.call(this,a)}function G(a){return a.replace(RegExp("("+H(l().join(""))+")*$"),"")}function L(a){var c=g(),b=c.slice(),d;for(d=b.length-1;0<=d;d--)if(k(d).optionality)if(x(d)&&m(d,c[d],!0))break;else b.pop();else break;K(a,b)}function O(a,b){if(!k()||!0!==b&&a.hasClass("hasDatepicker"))return a[0]._valueGet();var d=c.map(g(),function(a,c){return x(c)&&m(c,a,!0)?a:null});return(B?d.reverse():d).join("")}
  32. function P(c){!B||"number"!=typeof c||a.greedy&&""==a.placeholder||(c=g().length-c);return c}function u(b,d,g){var f=b.jquery&&0<b.length?b[0]:b;if("number"==typeof d)d=P(d),g=P(g),c(b).is(":visible")&&(g="number"==typeof g?g:d,f.scrollLeft=f.scrollWidth,!1==a.insertMode&&d==g&&g++,f.setSelectionRange?(f.selectionStart=d,f.selectionEnd=da?d:g):f.createTextRange&&(b=f.createTextRange(),b.collapse(!0),b.moveEnd("character",g),b.moveStart("character",d),b.select()));else{if(!c(b).is(":visible"))return{begin:0,
  33. end:0};f.setSelectionRange?(d=f.selectionStart,g=f.selectionEnd):document.selection&&document.selection.createRange&&(b=document.selection.createRange(),d=0-b.duplicate().moveStart("character",-1E5),g=d+b.text.length);d=P(d);g=P(g);return{begin:d,end:g}}}function V(d){if("*"!=a.repeat){var g=!1,e=0,l=h;c.each(f,function(a,c){if("object"==typeof c){h=a;var f=b(n());if(c.lastValidPosition>=e&&c.lastValidPosition==f){for(var l=!0,k=0;k<=f;k++){var m=x(k);if(m&&(void 0==d[k]||d[k]==I(k))||!m&&d[k]!=I(k)){l=
  34. !1;break}}if(g=g||l)return!1}e=c.lastValidPosition}});h=l;return g}}var B=!1,Q=g().join(""),q,S;this.unmaskedvalue=function(a,c){B=a.data("_inputmask").isRTL;return O(a,c)};this.isComplete=function(a){return V(a)};this.mask=function(s){function v(a){a=c._data(a).events;c.each(a,function(a,b){c.each(b,function(a,c){if("inputmask"==c.namespace&&"setvalue"!=c.type&&"_keypress"!=c.type){var b=c.handler;c.handler=function(a){if(this.readOnly||this.disabled)a.preventDefault;else return b.apply(this,arguments)}}})})}
  35. function H(a){var b;Object.getOwnPropertyDescriptor&&(b=Object.getOwnPropertyDescriptor(a,"value"));if(b&&b.get){if(!a._valueGet){var d=b.get,g=b.set;a._valueGet=function(){return B?d.call(this).split("").reverse().join(""):d.call(this)};a._valueSet=function(a){g.call(this,B?a.split("").reverse().join(""):a)};Object.defineProperty(a,"value",{get:function(){var a=c(this),b=c(this).data("_inputmask"),g=b.masksets,f=b.activeMasksetIndex;return b&&b.opts.autoUnmask?a.inputmask("unmaskedvalue"):d.call(this)!=
  36. g[f]._buffer.join("")?d.call(this):""},set:function(a){g.call(this,a);c(this).triggerHandler("setvalue.inputmask")}})}}else if(document.__lookupGetter__&&a.__lookupGetter__("value"))a._valueGet||(d=a.__lookupGetter__("value"),g=a.__lookupSetter__("value"),a._valueGet=function(){return B?d.call(this).split("").reverse().join(""):d.call(this)},a._valueSet=function(a){g.call(this,B?a.split("").reverse().join(""):a)},a.__defineGetter__("value",function(){var a=c(this),b=c(this).data("_inputmask"),g=b.masksets,
  37. f=b.activeMasksetIndex;return b&&b.opts.autoUnmask?a.inputmask("unmaskedvalue"):d.call(this)!=g[f]._buffer.join("")?d.call(this):""}),a.__defineSetter__("value",function(a){g.call(this,a);c(this).triggerHandler("setvalue.inputmask")}));else if(a._valueGet||(a._valueGet=function(){return B?this.value.split("").reverse().join(""):this.value},a._valueSet=function(a){this.value=B?a.split("").reverse().join(""):a}),void 0==c.valHooks.text||!0!=c.valHooks.text.inputmaskpatch)d=c.valHooks.text&&c.valHooks.text.get?
  38. c.valHooks.text.get:function(a){return a.value},g=c.valHooks.text&&c.valHooks.text.set?c.valHooks.text.set:function(a,c){a.value=c;return a},c.extend(c.valHooks,{text:{get:function(a){var b=c(a);if(b.data("_inputmask")){if(b.data("_inputmask").opts.autoUnmask)return b.inputmask("unmaskedvalue");a=d(a);b=b.data("_inputmask");return a!=b.masksets[b.activeMasksetIndex]._buffer.join("")?a:""}return d(a)},set:function(a,b){var d=c(a),f=g(a,b);d.data("_inputmask")&&d.triggerHandler("setvalue.inputmask");
  39. return f},inputmaskpatch:!0}})}function M(a,c,f,r){var e=g();if(!1!==r)for(;!x(a)&&0<=a-1;)a--;for(r=a;r<c&&r<n();r++)if(x(r)){C(r);var h=p(r),q=z(e,h);if(q!=I(h))if(h<n()&&!1!==m(r,q,!0)&&k(r).def==k(h).def)E(e,r,q,!0),h<c&&C(h);else if(x(r))break}else C(r);void 0!=f&&E(e,b(c),f);if(!1==d().greedy){c=G(e.join("")).split("");e.length=c.length;r=0;for(f=e.length;r<f;r++)e[r]=c[r];0==e.length&&(d().buffer=l().slice())}return a}function O(a,c,f){var e=g();if(z(e,a,!0)!=I(a))for(var h=b(c);h>a&&0<=h;h--)if(x(h)){var n=
  40. b(h),p=z(e,n);if(p!=I(n))if(!1!==m(n,p,!0)&&k()[h%k().length].def==k()[n%k().length].def)E(e,h,p,!0),C(n);else break}else C(h);void 0!=f&&z(e,a)==I(a)&&E(e,a,f);a=e.length;if(!1==d().greedy){f=G(e.join("")).split("");e.length=f.length;h=0;for(n=e.length;h<n;h++)e[h]=f[h];0==e.length&&(d().buffer=l().slice())}return c-(a-e.length)}function aa(c,b,e){if(a.numericInput||B){switch(b){case a.keyCode.BACKSPACE:b=a.keyCode.DELETE;break;case a.keyCode.DELETE:b=a.keyCode.BACKSPACE}if(B){var h=e.end;e.end=
  41. e.begin;e.begin=h}}h=!0;e.begin==e.end?(h=b==a.keyCode.BACKSPACE?e.begin-1:e.begin,a.isNumeric&&""!=a.radixPoint&&g()[h]==a.radixPoint&&(e.begin=g().length-1==h?e.begin:b==a.keyCode.BACKSPACE?h:p(h),e.end=e.begin),h=!1,b==a.keyCode.BACKSPACE?e.begin--:b==a.keyCode.DELETE&&e.end++):1!=e.end-e.begin||a.insertMode||(h=!1,b==a.keyCode.BACKSPACE&&e.begin--);D(g(),e.begin,e.end);var l=n();if(!1==a.greedy)M(e.begin,l,void 0,!B&&b==a.keyCode.BACKSPACE&&!h);else{for(var k=e.begin,m=e.begin;m<e.end;m++)if(x(m)||
  42. !h)k=M(e.begin,l,void 0,!B&&b==a.keyCode.BACKSPACE&&!h);h||(e.begin=k)}b=p(-1);D(g(),e.begin,e.end,!0);w(c,!1,void 0==f[1]||b>=e.end,g());d().lastValidPosition<b?(d().lastValidPosition=-1,d().p=b):d().p=e.begin}function ba(b){W=!1;var f=this,h=c(f),k=b.keyCode,m=u(f);k==a.keyCode.BACKSPACE||k==a.keyCode.DELETE||fa&&127==k||b.ctrlKey&&88==k?(b.preventDefault(),88==k&&(Q=g().join("")),aa(f,k,m),e(),K(f,g(),d().p),f._valueGet()==l().join("")&&h.trigger("cleared"),a.showTooltip&&h.prop("title",d().mask)):
  43. k==a.keyCode.END||k==a.keyCode.PAGE_DOWN?setTimeout(function(){var c=p(d().lastValidPosition);a.insertMode||c!=n()||b.shiftKey||c--;u(f,b.shiftKey?m.begin:c,c)},0):k==a.keyCode.HOME&&!b.shiftKey||k==a.keyCode.PAGE_UP?u(f,0,b.shiftKey?m.begin:0):k==a.keyCode.ESCAPE||90==k&&b.ctrlKey?(w(f,!0,!1,Q.split("")),h.click()):k!=a.keyCode.INSERT||b.shiftKey||b.ctrlKey?!1!=a.insertMode||b.shiftKey||(k==a.keyCode.RIGHT?setTimeout(function(){var a=u(f);u(f,a.begin)},0):k==a.keyCode.LEFT&&setTimeout(function(){var a=
  44. u(f);u(f,a.begin-1)},0)):(a.insertMode=!a.insertMode,u(f,a.insertMode||m.begin!=n()?m.begin:m.begin-1));h=u(f);!0===a.onKeyDown.call(this,b,g(),a)&&u(f,h.begin,h.end);$=-1!=c.inArray(k,a.ignorables)}function U(k,l,A,r,q,s){if(void 0==A&&W)return!1;W=!0;var x=c(this);k=k||window.event;A=A||k.which||k.charCode||k.keyCode;if((!k.ctrlKey||!k.altKey)&&(k.ctrlKey||k.metaKey||$)&&!0!==l)return!0;if(A){!0!==l&&46==A&&!1==k.shiftKey&&","==a.radixPoint&&(A=44);var y,w,v=String.fromCharCode(A);l?(A=q?s:d().lastValidPosition+
  45. 1,y={begin:A,end:A}):y=u(this);s=B?1<y.begin-y.end||1==y.begin-y.end&&a.insertMode:1<y.end-y.begin||1==y.end-y.begin&&a.insertMode;var C=h;s&&(h=C,c.each(f,function(a,c){"object"==typeof c&&(h=a,d().undoBuffer=g().join(""))}),aa(this,a.keyCode.DELETE,y),a.insertMode||c.each(f,function(a,c){"object"==typeof c&&(h=a,O(y.begin,n()),d().lastValidPosition=p(d().lastValidPosition))}),h=C);var D=g().join("").indexOf(a.radixPoint);a.isNumeric&&!0!==l&&-1!=D&&(a.greedy&&y.begin<=D?(y.begin=b(y.begin),y.end=
  46. y.begin):v==a.radixPoint&&(y.begin=D,y.end=y.begin));var F=y.begin;A=m(F,v,q);!0===q&&(A=[{activeMasksetIndex:h,result:A}]);var J=-1;c.each(A,function(c,f){h=f.activeMasksetIndex;d().writeOutBuffer=!0;var e=f.result;if(!1!==e){var k=!1,l=g();!0!==e&&(k=e.refresh,F=void 0!=e.pos?e.pos:F,v=void 0!=e.c?e.c:v);if(!0!==k){if(!0==a.insertMode){e=n();for(l=l.slice();z(l,e,!0)!=I(e)&&e>=F;)e=0==e?-1:b(e);e>=F?(O(F,n(),v),l=d().lastValidPosition,e=p(l),e!=n()&&l>=F&&z(g(),e,!0)!=I(e)&&(d().lastValidPosition=
  47. e)):d().writeOutBuffer=!1}else E(l,F,v,!0);if(-1==J||J>p(F))J=p(F)}else!q&&(l=F<n()?F+1:F,-1==J||J>l)&&(J=l);J>d().p&&(d().p=J)}});!0!==q&&(h=C,e());if(!1!==r&&(c.each(A,function(a,c){if(c.activeMasksetIndex==h)return w=c,!1}),void 0!=w)){var H=this;setTimeout(function(){a.onKeyValidation.call(H,w.result,a)},0);if(d().writeOutBuffer&&!1!==w.result){var G=g();r=l?void 0:a.numericInput?F>D?b(J):v==a.radixPoint?J-1:b(J-1):J;K(this,G,r);!0!==l&&setTimeout(function(){!0===V(G)&&x.trigger("complete")},
  48. 0)}else s&&(d().buffer=d().undoBuffer.split(""))}a.showTooltip&&x.prop("title",d().mask);k.preventDefault()}}function T(b){var d=c(this),e=b.keyCode,f=g();ea&&e==a.keyCode.BACKSPACE&&S==this._valueGet()&&ba.call(this,b);a.onKeyUp.call(this,b,f,a);e==a.keyCode.TAB&&a.showMaskOnFocus&&(d.hasClass("focus.inputmask")&&0==this._valueGet().length?(f=l().slice(),K(this,f),u(this,0),Q=g().join("")):(K(this,f),f.join("")==l().join("")&&-1!=c.inArray(a.radixPoint,f)?(u(this,P(0)),d.click()):u(this,P(0),P(n()))))}
  49. q=c(s);if(q.is(":input")){q.data("_inputmask",{masksets:f,activeMasksetIndex:h,opts:a,isRTL:!1});a.showTooltip&&q.prop("title",d().mask);d().greedy=d().greedy?d().greedy:0==d().repeat;if(null!=q.attr("maxLength")){var R=q.prop("maxLength");-1<R&&c.each(f,function(a,c){"object"==typeof c&&"*"==c.repeat&&(c.repeat=R)});n()>=R&&-1<R&&(R<l().length&&(l().length=R),!1==d().greedy&&(d().repeat=Math.round(R/l().length)),q.prop("maxLength",2*n()))}H(s);var W=!1,$=!1;a.numericInput&&(a.isNumeric=a.numericInput);
  50. ("rtl"==s.dir||a.numericInput&&a.rightAlignNumerics||a.isNumeric&&a.rightAlignNumerics)&&q.css("text-align","right");if("rtl"==s.dir||a.numericInput){s.dir="ltr";q.removeAttr("dir");var Y=q.data("_inputmask");Y.isRTL=!0;q.data("_inputmask",Y);B=!0}q.unbind(".inputmask");q.removeClass("focus.inputmask");q.closest("form").bind("submit",function(){Q!=g().join("")&&q.change()}).bind("reset",function(){setTimeout(function(){q.trigger("setvalue")},0)});q.bind("mouseenter.inputmask",function(){!c(this).hasClass("focus.inputmask")&&
  51. a.showMaskOnHover&&this._valueGet()!=g().join("")&&K(this,g())}).bind("blur.inputmask",function(){var b=c(this),d=this._valueGet(),e=g();b.removeClass("focus.inputmask");Q!=g().join("")&&b.change();a.clearMaskOnLostFocus&&""!=d&&(d==l().join("")?this._valueSet(""):L(this));!1===V(e)&&(b.trigger("incomplete"),a.clearIncomplete&&(c.each(f,function(a,c){"object"==typeof c&&(c.buffer=c._buffer.slice(),c.lastValidPosition=-1)}),h=0,a.clearMaskOnLostFocus?this._valueSet(""):(e=l().slice(),K(this,e))))}).bind("focus.inputmask",
  52. function(){var b=c(this),e=this._valueGet();a.showMaskOnFocus&&!b.hasClass("focus.inputmask")&&(!a.showMaskOnHover||a.showMaskOnHover&&""==e)&&this._valueGet()!=g().join("")&&K(this,g(),p(d().lastValidPosition));b.addClass("focus.inputmask");Q=g().join("")}).bind("mouseleave.inputmask",function(){var b=c(this);a.clearMaskOnLostFocus&&(b.hasClass("focus.inputmask")||this._valueGet()==b.attr("placeholder")||(this._valueGet()==l().join("")||""==this._valueGet()?this._valueSet(""):L(this)))}).bind("click.inputmask",
  53. function(){var b=this;setTimeout(function(){var e=u(b),f=g();if(e.begin==e.end){var e=a.isRTL?P(e.begin):e.begin,h=d().lastValidPosition,f=a.isNumeric?!1===a.skipRadixDance&&""!=a.radixPoint&&-1!=c.inArray(a.radixPoint,f)?a.numericInput?p(c.inArray(a.radixPoint,f)):c.inArray(a.radixPoint,f):p(h):p(h);e<f?x(e)?u(b,e):u(b,p(e)):u(b,f)}},0)}).bind("dblclick.inputmask",function(){var a=this;setTimeout(function(){u(a,0,p(d().lastValidPosition))},0)}).bind(ga+".inputmask dragdrop.inputmask drop.inputmask",
  54. function(a){var b=this,d=c(b);if("propertychange"==a.type&&b._valueGet().length<=n())return!0;setTimeout(function(){w(b,!0,!1,void 0,!0);!0===V(g())&&d.trigger("complete");d.click()},0)}).bind("setvalue.inputmask",function(){w(this,!0);Q=g().join("");this._valueGet()==l().join("")&&this._valueSet("")}).bind("_keypress.inputmask",U).bind("complete.inputmask",a.oncomplete).bind("incomplete.inputmask",a.onincomplete).bind("cleared.inputmask",a.oncleared).bind("keyup.inputmask",T);ea?q.bind("input.inputmask",
  55. function(a){a=c(this);S=g().join("");w(this,!1,!1);K(this,g());!0===V(g())&&a.trigger("complete");a.click()}):q.bind("keydown.inputmask",ba).bind("keypress.inputmask",U);w(s,!0,!1);Q=g().join("");var Z;try{Z=document.activeElement}catch(da){}Z===s?(q.addClass("focus.inputmask"),u(s,p(d().lastValidPosition))):a.clearMaskOnLostFocus?g().join("")==l().join("")?s._valueSet(""):L(s):K(s,g());v(s)}};return this}var a=c.extend(!0,{},c.inputmask.defaults,H),C=null!==navigator.userAgent.match(/msie 10/i),
  56. fa=null!==navigator.userAgent.match(/iphone/i),da=null!==navigator.userAgent.match(/android.*safari.*/i),ea=null!==navigator.userAgent.match(/android.*chrome.*/i),ga=G("paste")&&!C?"paste":G("input")?"input":"propertychange",m,z=0;if("string"===typeof D)switch(D){case "mask":w(a.alias,H);m=S();if(0==m.length)break;return this.each(function(){L(c.extend(!0,{},m),0).mask(this)});case "unmaskedvalue":return C=c(this),C.data("_inputmask")?(m=C.data("_inputmask").masksets,z=C.data("_inputmask").activeMasksetIndex,
  57. a=C.data("_inputmask").opts,L(m,z).unmaskedvalue(C)):C.val();case "remove":return this.each(function(){var f=c(this);if(f.data("_inputmask")){m=f.data("_inputmask").masksets;z=f.data("_inputmask").activeMasksetIndex;a=f.data("_inputmask").opts;this._valueSet(L(m,z).unmaskedvalue(f,!0));f.removeData("_inputmask");f.unbind(".inputmask");f.removeClass("focus.inputmask");var h;Object.getOwnPropertyDescriptor&&(h=Object.getOwnPropertyDescriptor(this,"value"));h&&h.get?this._valueGet&&Object.defineProperty(this,
  58. "value",{get:this._valueGet,set:this._valueSet}):document.__lookupGetter__&&this.__lookupGetter__("value")&&this._valueGet&&(this.__defineGetter__("value",this._valueGet),this.__defineSetter__("value",this._valueSet));try{delete this._valueGet,delete this._valueSet}catch(d){this._valueSet=this._valueGet=void 0}}});case "getemptymask":return this.data("_inputmask")?(m=this.data("_inputmask").masksets,z=this.data("_inputmask").activeMasksetIndex,m[z]._buffer.join("")):"";case "hasMaskedValue":return this.data("_inputmask")?
  59. !this.data("_inputmask").opts.autoUnmask:!1;case "isComplete":return m=this.data("_inputmask").masksets,z=this.data("_inputmask").activeMasksetIndex,a=this.data("_inputmask").opts,L(m,z).isComplete(this[0]._valueGet().split(""));case "getmetadata":if(this.data("_inputmask"))return m=this.data("_inputmask").masksets,z=this.data("_inputmask").activeMasksetIndex,m[z].metadata;return;default:w(D,H)||(a.mask=D);m=S();if(0==m.length)break;return this.each(function(){L(c.extend(!0,{},m),z).mask(this)})}else{if("object"==
  60. typeof D)return a=c.extend(!0,{},c.inputmask.defaults,D),w(a.alias,D),m=S(),0==m.length?this:this.each(function(){L(c.extend(!0,{},m),z).mask(this)});if(void 0==D)return this.each(function(){var f=c(this).attr("data-inputmask");if(f&&""!=f)try{var f=f.replace(RegExp("'","g"),'"'),h=c.parseJSON("{"+f+"}");c.extend(!0,h,H);a=c.extend(!0,{},c.inputmask.defaults,h);w(a.alias,h);a.alias=void 0;c(this).inputmask(a)}catch(d){}})}return this})})(jQuery);