jquery.inputmask.js 24 KB

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