jquery.inputmask.js 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /*
  2. Input Mask plugin for jquery
  3. http://github.com/RobinHerbots/jquery.inputmask
  4. Copyright (c) 2010 - 2014 Robin Herbots
  5. Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
  6. Version: 3.0.69
  7. */
  8. (function(g){"function"===typeof define&&define.amd?define(["jquery"],g):g(jQuery)})(function(g){if(void 0===g.fn.inputmask){var U=function(g){var h=document.createElement("input");g="on"+g;var c=g in h;c||(h.setAttribute(g,"return;"),c="function"==typeof h[g]);return c},E=function(e,h,c){return(e=c.aliases[e])?(e.alias&&E(e.alias,void 0,c),g.extend(!0,c,e),g.extend(!0,c,h),!0):!1},Q=function(e,h){function c(c){function g(c,h,e,f){this.matches=[];this.isGroup=c||!1;this.isOptional=h||!1;this.isQuantifier=
  9. e||!1;this.isAlternator=f||!1;this.quantifier={min:1,max:1}}function h(c,g,f){var m=e.definitions[g],q=0==c.matches.length;f=void 0!=f?f:c.matches.length;if(m&&!r){for(var G=m.prevalidator,u=G?G.length:0,n=1;n<m.cardinality;n++){var t=u>=n?G[n-1]:[],p=t.validator,t=t.cardinality;c.matches.splice(f++,0,{fn:p?"string"==typeof p?RegExp(p):new function(){this.test=p}:/./,cardinality:t?t:1,optionality:c.isOptional,newBlockMarker:q,casing:m.casing,def:m.definitionSymbol||g,placeholder:m.placeholder,mask:g})}c.matches.splice(f++,
  10. 0,{fn:m.validator?"string"==typeof m.validator?RegExp(m.validator):new function(){this.test=m.validator}:/./,cardinality:m.cardinality,optionality:c.isOptional,newBlockMarker:q,casing:m.casing,def:m.definitionSymbol||g,placeholder:m.placeholder,mask:g})}else c.matches.splice(f++,0,{fn:null,cardinality:0,optionality:c.isOptional,newBlockMarker:q,casing:null,def:g,placeholder:void 0,mask:g}),r=!1}for(var q=/(?:[?*+]|\{[0-9\+\*]+(?:,[0-9\+\*]*)?\})\??|[^.?*+^${[]()|\\]+|./g,r=!1,n=new g,f,t=[],z=[],
  11. u,m;f=q.exec(c);)switch(f=f[0],f.charAt(0)){case e.optionalmarker.end:case e.groupmarker.end:f=t.pop();if(0<t.length){if(u=t[t.length-1],u.matches.push(f),u.isAlternator){f=t.pop();for(u=0;u<f.matches.length;u++)f.matches[u].isGroup=!1;0<t.length?(u=t[t.length-1],u.matches.push(f)):n.matches.push(f)}}else n.matches.push(f);break;case e.optionalmarker.start:t.push(new g(!1,!0));break;case e.groupmarker.start:t.push(new g(!0));break;case e.quantifiermarker.start:u=new g(!1,!1,!0);f=f.replace(/[{}]/g,
  12. "");m=f.split(",");f=isNaN(m[0])?m[0]:parseInt(m[0]);m=1==m.length?f:isNaN(m[1])?m[1]:parseInt(m[1]);if("*"==m||"+"==m)f="*"==m?0:1;u.quantifier={min:f,max:m};if(0<t.length){m=t[t.length-1].matches;f=m.pop();if(!f.isGroup){var x=new g(!0);x.matches.push(f);f=x}m.push(f);m.push(u)}else f=n.matches.pop(),f.isGroup||(x=new g(!0),x.matches.push(f),f=x),n.matches.push(f),n.matches.push(u);break;case e.escapeChar:r=!0;break;case e.alternatormarker:0<t.length?(u=t[t.length-1],m=u.matches.pop()):m=n.matches.pop();
  13. m.isAlternator?t.push(m):(f=new g(!1,!1,!1,!0),f.matches.push(m),t.push(f));break;default:if(0<t.length){if(u=t[t.length-1],0<u.matches.length&&(m=u.matches[u.matches.length-1],m.isGroup&&(m.isGroup=!1,h(m,e.groupmarker.start,0),h(m,e.groupmarker.end))),h(u,f),u.isAlternator){f=t.pop();for(u=0;u<f.matches.length;u++)f.matches[u].isGroup=!1;0<t.length?(u=t[t.length-1],u.matches.push(f)):n.matches.push(f)}}else 0<n.matches.length&&(m=n.matches[n.matches.length-1],m.isGroup&&(m.isGroup=!1,h(m,e.groupmarker.start,
  14. 0),h(m,e.groupmarker.end))),h(n,f)}0<n.matches.length&&(m=n.matches[n.matches.length-1],m.isGroup&&(m.isGroup=!1,h(m,e.groupmarker.start,0),h(m,e.groupmarker.end)),z.push(n));return z}function x(h,q){if(e.numericInput&&!0!==e.multi){h=h.split("").reverse();for(var r=0;r<h.length;r++)h[r]==e.optionalmarker.start?h[r]=e.optionalmarker.end:h[r]==e.optionalmarker.end?h[r]=e.optionalmarker.start:h[r]==e.groupmarker.start?h[r]=e.groupmarker.end:h[r]==e.groupmarker.end&&(h[r]=e.groupmarker.start);h=h.join("")}if(void 0!=
  15. h&&""!=h){if(0<e.repeat||"*"==e.repeat||"+"==e.repeat)h=e.groupmarker.start+h+e.groupmarker.end+e.quantifiermarker.start+("*"==e.repeat?0:"+"==e.repeat?1:e.repeat)+","+e.repeat+e.quantifiermarker.end;void 0==g.inputmask.masksCache[h]&&(g.inputmask.masksCache[h]={mask:h,maskToken:c(h),validPositions:{},_buffer:void 0,buffer:void 0,tests:{},metadata:q});return g.extend(!0,{},g.inputmask.masksCache[h])}}var z=[];g.isFunction(e.mask)&&(e.mask=e.mask.call(this,e));if(g.isArray(e.mask))if(h)g.each(e.mask,
  16. function(c,g){void 0!=g.mask?z.push(x(g.mask.toString(),g)):z.push(x(g.toString()))});else{var r=!1,q="(";g.each(e.mask,function(c,g){1<q.length&&(q+=")|(");void 0!=g.mask?(r=!0,q+=g.mask.toString()):q+=g.toString()});q+=")";z=x(q,r?e.mask:void 0)}else 1==e.mask.length&&!1==e.greedy&&0!=e.repeat&&(e.placeholder=""),z=void 0!=e.mask.mask?x(e.mask.mask.toString(),e.mask):x(e.mask.toString());return z},ja="function"===typeof ScriptEngineMajorVersion?ScriptEngineMajorVersion():10<=(new Function("/*@cc_on return @_jscript_version; @*/"))(),
  17. w=navigator.userAgent,ka=null!==w.match(/iphone/i),la=null!==w.match(/android.*safari.*/i),ma=null!==w.match(/android.*chrome.*/i),na=null!==w.match(/android.*firefox.*/i),oa=/Kindle/i.test(w)||/Silk/i.test(w)||/KFTT/i.test(w)||/KFOT/i.test(w)||/KFJWA/i.test(w)||/KFJWI/i.test(w)||/KFSOWI/i.test(w)||/KFTHWA/i.test(w)||/KFTHWI/i.test(w)||/KFAPWA/i.test(w)||/KFAPWI/i.test(w),Y=U("paste")?"paste":U("input")?"input":"propertychange",L=function(e,h,c){function x(a,b,d){b=b||0;var g=[],f,l=0,e;do{if(!0===
  18. a&&h.validPositions[l]){var C=h.validPositions[l];e=C.match;f=C.locator.slice();g.push(null==e.fn?e.def:!0===d?C.input:e.placeholder||c.placeholder.charAt(l%c.placeholder.length))}else f=b>l?M(l,f,l-1)[0]:w(l,f,l-1),e=f.match,f=f.locator.slice(),g.push(null==e.fn?e.def:void 0!=e.placeholder?e.placeholder:c.placeholder.charAt(l%c.placeholder.length));l++}while((void 0==N||l-1<N)&&null!=e.fn||null==e.fn&&""!=e.def||b>=l);g.pop();return g}function z(a){var b=h;b.buffer=void 0;b.tests={};!0!==a&&(b._buffer=
  19. void 0,b.validPositions={},b.p=-1)}function r(a){var b=-1,d=h.validPositions;void 0==a&&(a=-1);var c=b,g;for(g in d){var e=parseInt(g);if(-1==a||null!=d[e].match.fn)e<a&&(c=e),e>=a&&(b=e)}return 1<a-c||b<a?c:b}function q(a,b,d){if(c.insertMode&&void 0!=h.validPositions[a]&&void 0==d){d=g.extend(!0,{},h.validPositions);var e=r(),f;for(f=a;f<=e;f++)delete h.validPositions[f];h.validPositions[a]=b;b=!0;for(f=a;f<=e;f++){a=d[f];if(void 0!=a){var l=null==a.match.fn?f+1:D(f);b=L(l,a.match.def)?b&&!1!==
  20. u(l,a.input,!0,!0):!1}if(!b)break}if(!b)return h.validPositions=g.extend(!0,{},d),!1}else h.validPositions[a]=b;return!0}function G(a,b){var d,c=a;for(d=a;d<b;d++)delete h.validPositions[d];for(d=b;d<=r();){var g=h.validPositions[d],e=h.validPositions[c];void 0!=g&&void 0==e?(L(c,g.match.def)&&!1!==u(c,g.input,!0)&&(delete h.validPositions[d],d++),c++):d++}for(d=r();0<d&&(void 0==h.validPositions[d]||null==h.validPositions[d].match.fn);)delete h.validPositions[d],d--;z(!0)}function w(a,b,d){a=M(a,
  21. b,d);var e;b=r();b=h.validPositions[b]||M(0)[0];d=void 0!=b.alternation?b.locator[b.alternation].split(","):[];for(var f=0;f<a.length&&(e=a[f],!c.greedy&&(!e.match||!1!==e.match.optionality&&!1!==e.match.newBlockMarker||!0===e.match.optionalQuantifier||void 0!=b.alternation&&(void 0==e.locator[b.alternation]||-1!=g.inArray(e.locator[b.alternation].toString(),d))));f++);return e}function E(a){return h.validPositions[a]?h.validPositions[a].match:M(a)[0].match}function L(a,b){for(var c=!1,g=M(a),h=0;h<
  22. g.length;h++)if(g[h].match&&g[h].match.def==b){c=!0;break}return c}function M(a,b,d){function e(b,d,f,m){function I(f,m,s){if(1E4<l)return alert("jquery.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. "+h.mask),!0;if(l==a&&void 0==f.matches)return v.push({match:f,locator:m.reverse()}),!0;if(void 0!=f.matches)if(f.isGroup&&!0!==s){if(f=I(b.matches[q+1],m))return!0}else if(f.isOptional){var k=f;if(f=e(f,
  23. d,m,s))f=v[v.length-1].match,(f=0==g.inArray(f,k.matches))&&(C=!0),l=a}else if(f.isAlternator){var k=f,r=[],u,t=v.slice(),p=m.length,n=0<d.length?d.shift():-1;if(-1==n||"string"==typeof n){var x=l,z=d.slice(),aa;"string"==typeof n&&(aa=n.split(","));for(var w=0;w<k.matches.length;w++){v=[];f=I(k.matches[w],[w].concat(m),s)||f;u=v.slice();l=x;v=[];for(var y=0;y<z.length;y++)d[y]=z[y];for(y=0;y<u.length;y++)for(var G=u[y],A=0;A<r.length;A++){var ea=r[A];if(G.match.mask==ea.match.mask&&("string"!=typeof n||
  24. -1!=g.inArray(G.locator[p].toString(),aa))){r.splice(A,1);G.locator[p]=ea.locator[p]+","+G.locator[p];G.alternation=p;break}}r=r.concat(u)}"string"==typeof n&&(r=g.map(r,function(a,b){if(isFinite(b)){var d=a.locator[p].toString().split(","),c;a.locator[p]="";for(var f=0;f<d.length;f++)if(c=-1!=g.inArray(d[f],aa))""!=a.locator[p]&&(a.locator[p]+=","),a.locator[p]+=d[f];if(""!=a.locator[p])return a}}));v=t.concat(r);C=!0}else f=I(k.matches[n],[n].concat(m),s);if(f)return!0}else if(f.isQuantifier&&!0!==
  25. s)for(k=f,c.greedy=c.greedy&&isFinite(k.quantifier.max),s=0<d.length&&!0!==s?d.shift():0;s<(isNaN(k.quantifier.max)?s+1:k.quantifier.max)&&l<=a;s++){if(r=b.matches[g.inArray(k,b.matches)-1],f=I(r,[s].concat(m),!0))if(f=v[v.length-1].match,f.optionalQuantifier=s>k.quantifier.min-1,f=0==g.inArray(f,r.matches))if(s>k.quantifier.min-1){C=!0;l=a;break}else return!0;else return!0}else{if(f=e(f,d,m,s))return!0}else l++}for(var q=0<d.length?d.shift():0;q<b.matches.length;q++)if(!0!==b.matches[q].isQuantifier){var s=
  26. I(b.matches[q],[q].concat(f),m);if(s&&l==a)return s;if(l>a)break}}var f=h.maskToken,l=b?d:0;d=b||[0];var v=[],C=!1;if(void 0==b){b=a-1;for(var m;void 0==(m=h.validPositions[b])&&-1<b;)b--;if(void 0!=m&&-1<b)l=b,d=m.locator.slice();else{for(b=a-1;void 0==(m=h.tests[b])&&-1<b;)b--;void 0!=m&&-1<b&&(l=b,d=m[0].locator.slice())}}for(b=d.shift();b<f.length&&!(e(f[b],d,[b])&&l==a||l>a);b++);(0==v.length||C)&&v.push({match:{fn:null,cardinality:0,optionality:!0,casing:null,def:""},locator:[]});h.tests[a]=
  27. g.extend(!0,[],v);return h.tests[a]}function n(){void 0==h._buffer&&(h._buffer=x(!1,1));return h._buffer}function f(){void 0==h.buffer&&(h.buffer=x(!0,r(),!0));return h.buffer}function t(a,b){var d=f().slice();if(!0===a)z(),a=0,b=d.length;else for(var g=a;g<b;g++)delete h.validPositions[g],delete h.tests[g];for(g=a;g<b;g++)d[g]!=c.skipOptionalPartCharacter&&u(g,d[g],!0,!0)}function Q(a,b){switch(b.casing){case "upper":a=a.toUpperCase();break;case "lower":a=a.toLowerCase()}return a}function u(a,b,
  28. d,e){function I(a,b,d,e){var l=!1;g.each(M(a),function(C,m){var v=m.match,k=b?1:0,B="";f();for(var s=v.cardinality;s>k;s--)B+=void 0==h.validPositions[a-(s-1)]?V(a-(s-1)):h.validPositions[a-(s-1)].input;b&&(B+=b);l=null!=v.fn?v.fn.test(B,h,a,d,c):b!=v.def&&b!=c.skipOptionalPartCharacter||""==v.def?!1:{c:v.def,pos:a};if(!1!==l){k=void 0!=l.c?l.c:b;k=k==c.skipOptionalPartCharacter&&null===v.fn?v.def:k;B=a;void 0!=l.remove&&G(l.remove,l.remove+1);if(l.refreshFromBuffer){B=l.refreshFromBuffer;d=!0;t(!0===
  29. B?B:B.start,B.end);if(void 0==l.pos&&void 0==l.c)return l.pos=r(),!1;B=void 0!=l.pos?l.pos:a;if(B!=a)return l=g.extend(l,u(B,k,!0)),!1}else if(!0!==l&&void 0!=l.pos&&l.pos!=a&&(B=l.pos,t(a,B),B!=a))return l=g.extend(l,u(B,k,!0)),!1;if(!0!=l&&void 0==l.pos&&void 0==l.c)return!1;0<C&&z(!0);q(B,g.extend({},m,{input:Q(k,v)}),e)||(l=!1);return!1}});return l}d=!0===d;for(var l=f(),v=a-1;-1<v&&(!h.validPositions[v]||null!=h.validPositions[v].fn);v--)if((!m(v)||l[v]!=V(v))&&1<M(v).length){I(v,l[v],!0);break}if(a>=
  30. S()){var C=!1;if(c.keepStatic){var l=h.validPositions,s,k;for(s in l)if(void 0!=l[s].alternation){k=l[s].alternation;break}for(var p in l)if(parseInt(p)>parseInt(s)&&void 0===l[p].alternation){var v=l[p],n=v.locator[k];s=l[s].locator[k].split(",");if("0"==n){for(C=0;C<s.length;C++)if(n!=s[C]){v=l[O(p)];v.locator[k]=s[C];break}h.buffer.splice(p,1);l=f().slice();for(s=p;s<r()+1;s++)delete h.validPositions[s],delete h.tests[s];z(!0);for(s=p;s<l.length;s++)l[s]!=c.skipOptionalPartCharacter&&u(r()+1,l[s],
  31. !1,!0);v.locator[k]=n;C=!0;break}break}}if(!C)return!1}k=I(a,b,d,e);if(!d&&!1===k)if((p=h.validPositions[a])&&null==p.match.fn&&(p.match.def==b||b==c.skipOptionalPartCharacter))k={caret:D(a)};else if((c.insertMode||void 0==h.validPositions[D(a)])&&!m(a))for(p=a+1,v=D(a);p<=v;p++)if(k=I(p,b,d,e),!1!==k){a=p;break}!0===k&&(k={pos:a});return k}function m(a){a=E(a);return null!=a.fn?a.fn:!1}function S(){var a;N=k.prop("maxLength");-1==N&&(N=void 0);if(!1==c.greedy){var b;b=r();a=h.validPositions[b];var d=
  32. void 0!=a?a.locator.slice():void 0;for(b+=1;void 0==a||null!=a.match.fn||null==a.match.fn&&""!=a.match.def;b++)a=w(b,d,b-1),d=a.locator.slice();a=b}else a=f().length;return void 0==N||a<N?a:N}function D(a){var b=S();if(a>=b)return b;for(;++a<b&&!m(a)&&(!0!==c.nojumps||c.nojumpsThreshold>a););return a}function O(a){if(0>=a)return 0;for(;0<--a&&!m(a););return a}function F(a,b,d){a._valueSet(b.join(""));void 0!=d&&p(a,d)}function V(a,b){b=b||E(a);return b.placeholder||(null==b.fn?b.def:c.placeholder.charAt(a%
  33. c.placeholder.length))}function R(a,b,d,e,k){e=void 0!=e?e.slice():ia(a._valueGet()).split("");z();b&&a._valueSet("");g.each(e,function(b,c){if(!0===k){var f=h.p,f=-1==f?f:O(f),e=-1==f?b:D(f);-1==g.inArray(c,n().slice(f+1,e))&&W.call(a,void 0,!0,c.charCodeAt(0),!1,d,b)}else W.call(a,void 0,!0,c.charCodeAt(0),!1,d,b),d=d||0<b&&b>h.p});b&&(b=c.onKeyPress.call(this,void 0,f(),0,c),Z(a,b),F(a,f(),g(a).is(":focus")?D(r(0)):void 0))}function U(a){return g.inputmask.escapeRegex.call(this,a)}function ia(a){return a.replace(RegExp("("+
  34. U(n().join(""))+")*$"),"")}function da(a){if(a.data("_inputmask")&&!a.hasClass("hasDatepicker")){var b=[],d=h.validPositions,e;for(e in d)d[e].match&&null!=d[e].match.fn&&b.push(d[e].input);b=(A?b.reverse():b).join("");d=(A?f().reverse():f()).join("");g.isFunction(c.onUnMask)&&(b=c.onUnMask.call(a,d,b,c));return b}return a[0]._valueGet()}function P(a){!A||"number"!=typeof a||c.greedy&&""==c.placeholder||(a=f().length-a);return a}function p(a,b,d){a=a.jquery&&0<a.length?a[0]:a;if("number"==typeof b){b=
  35. P(b);d=P(d);d="number"==typeof d?d:b;var f=g(a).data("_inputmask")||{};f.caret={begin:b,end:d};g(a).data("_inputmask",f);g(a).is(":visible")&&(a.scrollLeft=a.scrollWidth,!1==c.insertMode&&b==d&&d++,a.setSelectionRange?(a.selectionStart=b,a.selectionEnd=d):a.createTextRange&&(a=a.createTextRange(),a.collapse(!0),a.moveEnd("character",d),a.moveStart("character",b),a.select()))}else return f=g(a).data("_inputmask"),!g(a).is(":visible")&&f&&void 0!=f.caret?(b=f.caret.begin,d=f.caret.end):a.setSelectionRange?
  36. (b=a.selectionStart,d=a.selectionEnd):document.selection&&document.selection.createRange&&(a=document.selection.createRange(),b=0-a.duplicate().moveStart("character",-1E5),d=b+a.text.length),b=P(b),d=P(d),{begin:b,end:d}}function ba(a){var b=f(),d=b.length,c,e=r(),l={},k=h.validPositions[e],m=void 0!=k?k.locator.slice():void 0,s;for(c=e+1;c<b.length;c++)s=w(c,m,c-1),m=s.locator.slice(),l[c]=g.extend(!0,{},s);m=k&&void 0!=k.alternation?k.locator[k.alternation].split(","):[];for(c=d-1;c>e;c--)if(s=
  37. l[c].match,(s.optionality||s.optionalQuantifier||k&&void 0!=k.alternation&&void 0!=l[c].locator[k.alternation]&&-1!=g.inArray(l[c].locator[k.alternation].toString(),m))&&b[c]==V(c,s))d--;else break;return a?{l:d,def:l[d]?l[d].match:void 0}:d}function ca(a){var b=f().slice(),c=ba();b.length=c;F(a,b)}function T(a){if(g.isFunction(c.isComplete))return c.isComplete.call(k,a,c);if("*"!=c.repeat){var b=!1,d=ba(!0),f=O(d.l);if(r()==f&&(void 0==d.def||d.def.newBlockMarker||d.def.optionalQuantifier))for(b=
  38. !0,d=0;d<=f;d++){var e=m(d);if(e&&(void 0==a[d]||a[d]==V(d))||!e&&a[d]!=V(d)){b=!1;break}}return b}}function pa(a){a=g._data(a).events;g.each(a,function(a,c){g.each(c,function(a,b){if("inputmask"==b.namespace&&"setvalue"!=b.type){var c=b.handler;b.handler=function(a){if(this.readOnly||this.disabled)a.preventDefault;else return c.apply(this,arguments)}}})})}function qa(a){function b(a){if(void 0==g.valHooks[a]||!0!=g.valHooks[a].inputmaskpatch){var b=g.valHooks[a]&&g.valHooks[a].get?g.valHooks[a].get:
  39. function(a){return a.value},c=g.valHooks[a]&&g.valHooks[a].set?g.valHooks[a].set:function(a,b){a.value=b;return a};g.valHooks[a]={get:function(a){var c=g(a);if(c.data("_inputmask")){if(c.data("_inputmask").opts.autoUnmask)return c.inputmask("unmaskedvalue");a=b(a);c=(c=c.data("_inputmask").maskset._buffer)?c.join(""):"";return a!=c?a:""}return b(a)},set:function(a,b){var d=g(a),f=d.data("_inputmask");f?(f=c(a,g.isFunction(f.opts.onBeforeMask)?f.opts.onBeforeMask.call(y,b,f.opts):b),d.triggerHandler("setvalue.inputmask")):
  40. f=c(a,b);return f},inputmaskpatch:!0}}}function c(){var a=g(this),b=g(this).data("_inputmask");return b?b.opts.autoUnmask?a.inputmask("unmaskedvalue"):l.call(this)!=n().join("")?l.call(this):"":l.call(this)}function e(a){var b=g(this).data("_inputmask");b?(k.call(this,g.isFunction(b.opts.onBeforeMask)?b.opts.onBeforeMask.call(y,a,b.opts):a),g(this).triggerHandler("setvalue.inputmask")):k.call(this,a)}function h(a){g(a).bind("mouseenter.inputmask",function(a){a=g(this);var b=this._valueGet();""!=b&&
  41. b!=f().join("")&&a.trigger("setvalue")});if(a=g._data(a).events.mouseover){for(var b=a[a.length-1],c=a.length-1;0<c;c--)a[c]=a[c-1];a[0]=b}}var l,k;a._valueGet||(Object.getOwnPropertyDescriptor&&Object.getOwnPropertyDescriptor(a,"value"),document.__lookupGetter__&&a.__lookupGetter__("value")?(l=a.__lookupGetter__("value"),k=a.__lookupSetter__("value"),a.__defineGetter__("value",c),a.__defineSetter__("value",e)):(l=function(){return a.value},k=function(b){a.value=b},b(a.type),h(a)),a._valueGet=function(){return A?
  42. l.call(this).split("").reverse().join(""):l.call(this)},a._valueSet=function(a){k.call(this,A?a.split("").reverse().join(""):a)})}function fa(a,b,d){if(c.numericInput||A)b==c.keyCode.BACKSPACE?b=c.keyCode.DELETE:b==c.keyCode.DELETE&&(b=c.keyCode.BACKSPACE),A&&(a=d.end,d.end=d.begin,d.begin=a);b==c.keyCode.BACKSPACE&&1>=d.end-d.begin?d.begin=O(d.begin):b==c.keyCode.DELETE&&d.begin==d.end&&d.end++;G(d.begin,d.end);b=r(d.begin);h.p=b<d.begin?D(b):d.begin}function Z(a,b,c){if(b&&b.refreshFromBuffer){var g=
  43. b.refreshFromBuffer;t(!0===g?g:g.start,g.end);z(!0);void 0!=c&&(F(a,f()),p(a,b.caret||c.begin,b.caret||c.end))}}function ga(a){X=!1;var b=this,d=g(b),e=a.keyCode,k=p(b);e==c.keyCode.BACKSPACE||e==c.keyCode.DELETE||ka&&127==e||a.ctrlKey&&88==e?(a.preventDefault(),88==e&&(J=f().join("")),fa(b,e,k),F(b,f(),h.p),b._valueGet()==n().join("")&&d.trigger("cleared"),c.showTooltip&&d.prop("title",h.mask)):e==c.keyCode.END||e==c.keyCode.PAGE_DOWN?setTimeout(function(){var d=D(r());c.insertMode||d!=S()||a.shiftKey||
  44. d--;p(b,a.shiftKey?k.begin:d,d)},0):e==c.keyCode.HOME&&!a.shiftKey||e==c.keyCode.PAGE_UP?p(b,0,a.shiftKey?k.begin:0):e==c.keyCode.ESCAPE||90==e&&a.ctrlKey?(R(b,!0,!1,J.split("")),d.click()):e!=c.keyCode.INSERT||a.shiftKey||a.ctrlKey?!1!=c.insertMode||a.shiftKey||(e==c.keyCode.RIGHT?setTimeout(function(){var a=p(b);p(b,a.begin)},0):e==c.keyCode.LEFT&&setTimeout(function(){var a=p(b);p(b,A?a.begin+1:a.begin-1)},0)):(c.insertMode=!c.insertMode,p(b,c.insertMode||k.begin!=S()?k.begin:k.begin-1));var d=
  45. p(b),l=c.onKeyDown.call(this,a,f(),d.begin,c);Z(b,l,d);$=-1!=g.inArray(e,c.ignorables)}function W(a,b,d,e,k,l){if(void 0==d&&X)return!1;X=!0;var m=g(this);a=a||window.event;d=b?d:a.which||a.charCode||a.keyCode;if(!(!0===b||a.ctrlKey&&a.altKey)&&(a.ctrlKey||a.metaKey||$))return!0;if(d){!0!==b&&46==d&&!1==a.shiftKey&&","==c.radixPoint&&(d=44);var n,s;d=String.fromCharCode(d);b?(l=k?l:r()+1,n={begin:l,end:l}):n=p(this);if(l=A?1<n.begin-n.end||1==n.begin-n.end&&c.insertMode:1<n.end-n.begin||1==n.end-
  46. n.begin&&c.insertMode)h.undoPositions=g.extend(!0,{},h.validPositions),fa(this,c.keyCode.DELETE,n),c.insertMode||(c.insertMode=!c.insertMode,q(n.begin,k),c.insertMode=!c.insertMode),l=!c.multi;h.writeOutBuffer=!0;n=A&&!l?n.end:n.begin;var t=u(n,d,k);!1!==t&&(!0!==t&&(n=void 0!=t.pos?t.pos:n,d=void 0!=t.c?t.c:d),z(!0),void 0!=t.caret?s=t.caret:(k=h.validPositions,s=!c.keepStatic&&(void 0!=k[n+1]&&1<M(n+1,k[n].locator.slice(),n).length||void 0!=k[n].alternation)?n+1:D(n)),h.p=s);if(!1!==e){var y=this;
  47. setTimeout(function(){c.onKeyValidation.call(y,t,c)},0);if(h.writeOutBuffer&&!1!==t){var x=f();F(this,x,b?void 0:c.numericInput?O(s):s);!0!==b&&setTimeout(function(){!0===T(x)&&m.trigger("complete");K=!0;m.trigger("input")},0)}else l&&(h.buffer=void 0,h.validPositions=h.undoPositions)}else l&&(h.buffer=void 0,h.validPositions=h.undoPositions);c.showTooltip&&m.prop("title",h.mask);a&&!0!=b&&(a.preventDefault?a.preventDefault():a.returnValue=!1,b=p(this),a=c.onKeyPress.call(this,a,f(),b.begin,c),Z(this,
  48. a,b))}}function ra(a){var b=g(this),d=a.keyCode,e=f(),h=p(this);a=c.onKeyUp.call(this,a,e,h.begin,c);Z(this,a,h);d==c.keyCode.TAB&&c.showMaskOnFocus&&(b.hasClass("focus-inputmask")&&0==this._valueGet().length?(z(),e=f(),F(this,e),p(this,0),J=f().join("")):(F(this,e),p(this,P(0),P(S()))))}function ha(a){if(!0===K&&"input"==a.type)return K=!1,!0;var b=g(this),d=this._valueGet();if("propertychange"==a.type&&this._valueGet().length<=S())return!0;"paste"==a.type&&(window.clipboardData&&window.clipboardData.getData?
  49. d=window.clipboardData.getData("Text"):a.originalEvent&&a.originalEvent.clipboardData&&a.originalEvent.clipboardData.getData&&(d=a.originalEvent.clipboardData.getData("text/plain")));a=g.isFunction(c.onBeforePaste)?c.onBeforePaste.call(this,d,c):d;R(this,!0,!1,a.split(""),!0);b.click();!0===T(f())&&b.trigger("complete");return!1}function sa(a){if(!0===K&&"input"==a.type)return K=!1,!0;var b=p(this),d=this._valueGet(),d=d.replace(RegExp("("+U(n().join(""))+")*"),"");b.begin>d.length&&(p(this,d.length),
  50. b=p(this));1!=f().length-d.length||d.charAt(b.begin)==f()[b.begin]||d.charAt(b.begin+1)==f()[b.begin]||m(b.begin)||(a.keyCode=c.keyCode.BACKSPACE,ga.call(this,a));a.preventDefault()}function ta(a){if(!0===K&&"input"==a.type)return K=!1,!0;var b=p(this),d=this._valueGet();p(this,b.begin-1);var e=g.Event("keypress");e.which=d.charCodeAt(b.begin-1);$=X=!1;W.call(this,e,void 0,void 0,!1);b=h.p;F(this,f(),c.numericInput?O(b):b);a.preventDefault()}function ua(a){K=!0;var b=this;setTimeout(function(){p(b,
  51. p(b).begin-1);var d=g.Event("keypress");d.which=a.originalEvent.data.charCodeAt(0);$=X=!1;W.call(b,d,void 0,void 0,!1);d=h.p;F(b,f(),c.numericInput?O(d):d)},0);!0===K;return!1}function va(a){k=g(a);if(k.is(":input")&&"number"!=k.attr("type")){k.data("_inputmask",{maskset:h,opts:c,isRTL:!1});c.showTooltip&&k.prop("title",h.mask);("rtl"==a.dir||c.rightAlign)&&k.css("text-align","right");if("rtl"==a.dir||c.numericInput){a.dir="ltr";k.removeAttr("dir");var b=k.data("_inputmask");b.isRTL=!0;k.data("_inputmask",
  52. b);A=!0}k.unbind(".inputmask");k.removeClass("focus-inputmask");k.closest("form").bind("submit",function(){J!=f().join("")&&k.change();c.autoUnmask&&c.removeMaskOnSubmit&&k.inputmask("remove")}).bind("reset",function(){setTimeout(function(){k.trigger("setvalue")},0)});k.bind("mouseenter.inputmask",function(){!g(this).hasClass("focus-inputmask")&&c.showMaskOnHover&&this._valueGet()!=f().join("")&&F(this,f())}).bind("blur.inputmask",function(){var a=g(this);if(a.data("_inputmask")){var b=this._valueGet(),
  53. d=f();a.removeClass("focus-inputmask");J!=f().join("")&&a.change();c.clearMaskOnLostFocus&&""!=b&&(b==n().join("")?this._valueSet(""):ca(this));!1===T(d)&&(a.trigger("incomplete"),c.clearIncomplete&&(z(),c.clearMaskOnLostFocus?this._valueSet(""):(d=n().slice(),F(this,d))))}}).bind("focus.inputmask",function(){var a=g(this),b=this._valueGet();c.showMaskOnFocus&&!a.hasClass("focus-inputmask")&&(!c.showMaskOnHover||c.showMaskOnHover&&""==b)&&this._valueGet()!=f().join("")&&F(this,f(),D(r()));a.addClass("focus-inputmask");
  54. J=f().join("")}).bind("mouseleave.inputmask",function(){var a=g(this);c.clearMaskOnLostFocus&&(a.hasClass("focus-inputmask")||this._valueGet()==a.attr("placeholder")||(this._valueGet()==n().join("")||""==this._valueGet()?this._valueSet(""):ca(this)))}).bind("click.inputmask",function(){var a=this;g(a).is(":focus")&&setTimeout(function(){var b=p(a);if(b.begin==b.end){var b=A?P(b.begin):b.begin,c=r(b),c=D(c);b<c?m(b)?p(a,b):p(a,D(b)):p(a,c)}},0)}).bind("dblclick.inputmask",function(){var a=this;setTimeout(function(){p(a,
  55. 0,D(r()))},0)}).bind(Y+".inputmask dragdrop.inputmask drop.inputmask",ha).bind("setvalue.inputmask",function(){R(this,!0);J=f().join("")}).bind("complete.inputmask",c.oncomplete).bind("incomplete.inputmask",c.onincomplete).bind("cleared.inputmask",c.oncleared);k.bind("keydown.inputmask",ga).bind("keypress.inputmask",W).bind("keyup.inputmask",ra).bind("compositionupdate.inputmask",ua);"paste"===Y&&k.bind("input.inputmask",ta);if(la||na||ma||oa)"input"==Y&&k.unbind(Y+".inputmask"),k.bind("input.inputmask",
  56. sa);ja&&k.bind("input.inputmask",ha);qa(a);b=g.isFunction(c.onBeforeMask)?c.onBeforeMask.call(a,a._valueGet(),c):a._valueGet();R(a,!0,!1,b.split(""),!0);J=f().join("");var d;try{d=document.activeElement}catch(e){}!1===T(f())&&c.clearIncomplete&&z();c.clearMaskOnLostFocus?f().join("")==n().join("")?a._valueSet(""):ca(a):F(a,f());d===a&&(k.addClass("focus-inputmask"),p(a,D(r())));pa(a)}}var A=!1,J,k,X=!1,K=!1,$=!1,N;if(void 0!=e)switch(e.action){case "isComplete":return k=g(e.el),h=k.data("_inputmask").maskset,
  57. c=k.data("_inputmask").opts,T(e.buffer);case "unmaskedvalue":return k=e.$input,h=k.data("_inputmask").maskset,c=k.data("_inputmask").opts,A=e.$input.data("_inputmask").isRTL,da(e.$input);case "mask":J=f().join("");va(e.el);break;case "format":k=g({});k.data("_inputmask",{maskset:h,opts:c,isRTL:c.numericInput});c.numericInput&&(A=!0);var H=e.value.split("");R(k,!1,!1,A?H.reverse():H,!0);c.onKeyPress.call(this,void 0,f(),0,c);return A?f().reverse().join(""):f().join("");case "isValid":k=g({});k.data("_inputmask",
  58. {maskset:h,opts:c,isRTL:c.numericInput});c.numericInput&&(A=!0);H=e.value.split("");R(k,!1,!0,A?H.reverse():H);var H=f(),wa=ba();H.length=wa;return T(H)&&e.value==H.join("");case "getemptymask":return k=g(e.el),h=k.data("_inputmask").maskset,c=k.data("_inputmask").opts,n();case "remove":var y=e.el;k=g(y);h=k.data("_inputmask").maskset;c=k.data("_inputmask").opts;y._valueSet(da(k));k.unbind(".inputmask");k.removeClass("focus-inputmask");k.removeData("_inputmask");Object.getOwnPropertyDescriptor&&(H=
  59. Object.getOwnPropertyDescriptor(y,"value"));H&&H.get?y._valueGet&&Object.defineProperty(y,"value",{get:y._valueGet,set:y._valueSet}):document.__lookupGetter__&&y.__lookupGetter__("value")&&y._valueGet&&(y.__defineGetter__("value",y._valueGet),y.__defineSetter__("value",y._valueSet));try{delete y._valueGet,delete y._valueSet}catch(xa){y._valueGet=void 0,y._valueSet=void 0}}};g.inputmask={defaults:{placeholder:"_",optionalmarker:{start:"[",end:"]"},quantifiermarker:{start:"{",end:"}"},groupmarker:{start:"(",
  60. end:")"},alternatormarker:"|",escapeChar:"\\",mask:null,oncomplete:g.noop,onincomplete:g.noop,oncleared:g.noop,repeat:0,greedy:!0,autoUnmask:!1,removeMaskOnSubmit:!0,clearMaskOnLostFocus:!0,insertMode:!0,clearIncomplete:!1,aliases:{},alias:null,onKeyUp:g.noop,onKeyPress:g.noop,onKeyDown:g.noop,onBeforeMask:void 0,onBeforePaste:void 0,onUnMask:void 0,showMaskOnFocus:!0,showMaskOnHover:!0,onKeyValidation:g.noop,skipOptionalPartCharacter:" ",showTooltip:!1,numericInput:!1,rightAlign:!1,radixPoint:"",
  61. nojumps:!1,nojumpsThreshold:0,keepStatic:!1,definitions:{9:{validator:"[0-9]",cardinality:1,definitionSymbol:"*"},a:{validator:"[A-Za-z\u0410-\u044f\u0401\u0451\u00c0-\u00ff\u00b5]",cardinality:1,definitionSymbol:"*"},"*":{validator:"[0-9A-Za-z\u0410-\u044f\u0401\u0451\u00c0-\u00ff\u00b5]",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,
  62. 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},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],isComplete:void 0},masksCache:{},escapeRegex:function(e){return e.replace(RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\)","gim"),"\\$1")},format:function(e,h){var c=g.extend(!0,{},g.inputmask.defaults,
  63. h);E(c.alias,h,c);return L({action:"format",value:e},Q(c),c)},isValid:function(e,h){var c=g.extend(!0,{},g.inputmask.defaults,h);E(c.alias,h,c);return L({action:"isValid",value:e},Q(c),c)}};g.fn.inputmask=function(e,h,c,x,z){function r(c,e){var h=g(c),q;for(q in e){var n=h.data("inputmask-"+q.toLowerCase());void 0!=n&&(e[q]=n)}return e}c=c||L;x=x||"_inputmask";var q=g.extend(!0,{},g.inputmask.defaults,h),w;if("string"===typeof e)switch(e){case "mask":return E(q.alias,h,q),w=Q(q,c!==L),0==w.length?
  64. this:this.each(function(){c({action:"mask",el:this},g.extend(!0,{},w),r(this,q))});case "unmaskedvalue":return e=g(this),e.data(x)?c({action:"unmaskedvalue",$input:e}):e.val();case "remove":return this.each(function(){g(this).data(x)&&c({action:"remove",el:this})});case "getemptymask":return this.data(x)?c({action:"getemptymask",el:this}):"";case "hasMaskedValue":return this.data(x)?!this.data(x).opts.autoUnmask:!1;case "isComplete":return this.data(x)?c({action:"isComplete",buffer:this[0]._valueGet().split(""),
  65. el:this}):!0;case "getmetadata":if(this.data(x))return w=this.data(x).maskset,w.metadata;break;case "_detectScope":return E(q.alias,h,q),void 0==z||E(z,h,q)||-1!=g.inArray(z,"mask unmaskedvalue remove getemptymask hasMaskedValue isComplete getmetadata _detectScope".split(" "))||(q.mask=z),g.isFunction(q.mask)&&(q.mask=q.mask.call(this,q)),g.isArray(q.mask);default:return E(q.alias,h,q),E(e,h,q)||(q.mask=e),w=Q(q,c!==L),void 0==w?this:this.each(function(){c({action:"mask",el:this},g.extend(!0,{},w),
  66. r(this,q))})}else{if("object"==typeof e)return q=g.extend(!0,{},g.inputmask.defaults,e),E(q.alias,e,q),w=Q(q,c!==L),void 0==w?this:this.each(function(){c({action:"mask",el:this},g.extend(!0,{},w),r(this,q))});if(void 0==e)return this.each(function(){var e=g(this).attr("data-inputmask");if(e&&""!=e)try{var e=e.replace(RegExp("'","g"),'"'),r=g.parseJSON("{"+e+"}");g.extend(!0,r,h);q=g.extend(!0,{},g.inputmask.defaults,r);E(q.alias,r,q);q.alias=void 0;g(this).inputmask("mask",q,c)}catch(w){}})}}}});