| 123456789101112131415161718192021222324252627282930313233343536373839 |
- /*
- Input Mask plugin for jquery
- 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: 1.3.11
- */
- (function(e){void 0==e.fn.inputmask&&(e.inputmask={defaults:{placeholder:"_",optionalmarker:{start:"[",end:"]"},escapeChar:"\\",mask:null,oncomplete:e.noop,onincomplete:e.noop,oncleared:e.noop,repeat:0,greedy:!0,autoUnmask:!1,clearMaskOnLostFocus:!0,insertMode:!0,clearIncomplete:!1,aliases:{},onKeyUp:e.noop,onKeyDown:e.noop,showMaskOnFocus:!0,showMaskOnHover:!0,onKeyValidation:e.noop,numericInput:!1,radixPoint:"",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,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:[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(e,B,t){var E=e.length;!B&&1<t&&(E+=e.length*(t-1));return E}},val:e.fn.val,escapeRegex:function(e){return e.replace(RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\)","gim"),"\\$1")}},e.fn.inputmask=function(u,B){function t(f,c){var b=a.aliases[f];return b?(b.alias&&t(b.alias),e.extend(!0,a,b),e.extend(!0,a,c),!0):!1}function E(){var f=!1,c=0,b=a.mask.toString();1==b.length&&!1==a.greedy&&(a.placeholder=
- "");for(var b=e.map(b.split(""),function(b){var e=[];if(b==a.escapeChar)f=true;else if(b!=a.optionalmarker.start&&b!=a.optionalmarker.end||f){var j=a.definitions[b];if(j&&!f)for(b=0;b<j.cardinality;b++)e.push(C(c+b));else{e.push(b);f=false}c=c+e.length;return e}}),L=b.slice(),j=1;j<a.repeat&&a.greedy;j++)L=L.concat(b.slice());return L}function I(){var f=!1,c=!1,b=!1;return e.map(a.mask.toString().split(""),function(e){var j=[];if(e==a.escapeChar)c=!0;else if(e==a.optionalmarker.start&&!c)b=f=!0;else if(e==
- a.optionalmarker.end&&!c)f=!1,b=!0;else{var g=a.definitions[e];if(g&&!c){for(var h=g.prevalidator,l=h?h.length:0,m=1;m<g.cardinality;m++){var k=l>=m?h[m-1]:[],d=k.validator,k=k.cardinality;j.push({fn:d?"string"==typeof d?RegExp(d):new function(){this.test=d}:/./,cardinality:k?k:1,optionality:f,newBlockMarker:!0==f?b:!1,offset:0,casing:g.casing,def:e});!0==f&&(b=!1)}j.push({fn:g.validator?"string"==typeof g.validator?RegExp(g.validator):new function(){this.test=g.validator}:/./,cardinality:g.cardinality,
- optionality:f,newBlockMarker:b,offset:0,casing:g.casing,def:e})}else j.push({fn:null,cardinality:0,optionality:f,newBlockMarker:b,offset:0,casing:null,def:e}),c=!1;b=!1;return j}})}function D(f,c,b,e){var j=!1;if(0<=f&&f<o(b)){for(var g=f%h.length,l=c?1:0,n="",m=h[g].cardinality;m>l;m--)n+=x(b,g-(m-1));c&&(n+=c);j=null!=h[g].fn?h[g].fn.test(n,b,f,e,a):!1}setTimeout(function(){a.onKeyValidation.call(this,j,a)},0);return j}function w(f){f=h[f%h.length];return void 0!=f?f.fn:!1}function C(f){return a.placeholder.charAt(f%
- a.placeholder.length)}function o(f){return a.getMaskLength(g,a.greedy,a.repeat,f,a)}function y(f,a){var b=o(f);if(a>=b)return b;for(var e=a;++e<b&&!w(e););return e}function M(f,a){var b=a;if(0>=b)return 0;for(;0<--b&&!w(b););return b}function G(a,c,b){var e=h[c%h.length],j=b;if(void 0!=j)switch(e.casing){case "upper":j=b.toUpperCase();break;case "lower":j=b.toLowerCase()}a[c]=j}function x(a,c,b){b&&(c=Q(a,c));return a[c]}function Q(a,c,b){if(b)for(;0>c&&a.length<o(a);){b=g.length-1;for(c=g.length;void 0!==
- g[b];)a.unshift(g[b--])}else for(;void 0==a[c]&&a.length<o(a);)for(b=0;void 0!==g[b];)a.push(g[b++]);return c}function z(a,c,b){a._valueSet(c.join(""));void 0!=b&&(N?setTimeout(function(){l(a,b)},100):l(a,b))}function R(a,c,b){for(var e=o(a);c<b&&c<e;c++)G(a,c,x(g.slice(),c))}function J(a,c){G(a,c,x(g,c%h.length))}function q(f,c,b,L){var j=e(f).data("inputmask").isRTL,l=O(f._valueGet(),j).split(""),q=o(c);if(j){var n=l.reverse();n.length=q;for(var m=0;m<q;m++){var k=(q-(m+1))%h.length;null==h[k].fn&&
- n[m]!=x(g,k)?(n.splice(m,0,x(g,k)),n.length=q):n[m]=n[m]||x(g,k)}l=n.reverse()}R(c,0,c.length);c.length=g.length;for(var d=n=-1,v,u=l.length,k=0==u?q:-1,m=0;m<u;m++)for(var r=d+1;r<q;r++)if(w(r)){var t=l[m];!1!==(v=D(r,t,c,!b))?(!0!==v&&(r=void 0!=v.pos?v.pos:r,t=void 0!=v.c?v.c:t),G(c,r,t),n=d=r):(J(c,r),t==C(r)&&(k=d=r));break}else if(J(c,r),n==d&&(n=r),d=r,l[m]==x(c,r))break;if(!1==a.greedy)for(m=O(c.join(""),j).split("");c.length!=m.length;)j?c.shift():c.pop();b&&z(f,c);return j?a.numericInput?
- ""!=a.radixPoint&&-1!=e.inArray(a.radixPoint,c)&&!0!==L?e.inArray(a.radixPoint,c):y(c,q):y(c,k):y(c,n)}function S(a){return e.inputmask.escapeRegex.call(this,a)}function O(a,c){return c?a.replace(RegExp("^("+S(g.join(""))+")*"),""):a.replace(RegExp("("+S(g.join(""))+")*$"),"")}function T(a,c){q(a,c,!1);var b=c.slice(),g,j;if(e(a).data("inputmask").isRTL)for(j=0;j<=b.length-1;j++)if(g=j%h.length,h[g].optionality)if(!w(j)||!D(j,c[j],c,!0))b.splice(0,1);else break;else break;else for(j=b.length-1;0<=
- j;j--)if(g=j%h.length,h[g].optionality)if(!w(j)||!D(j,c[j],c,!0))b.pop();else break;else break;z(a,b)}function U(a,c){var b=a[0];if(h&&(!0===c||!a.hasClass("hasDatepicker"))){var l=g.slice();q(b,l);return e.map(l,function(a,c){return w(c)&&D(c,a,l,!0)?a:null}).join("")}return b._valueGet()}function l(f,c,b){var g=f.jquery&&0<f.length?f[0]:f;if("number"==typeof c){if(e(f).is(":visible")){b="number"==typeof b?b:c;!1==a.insertMode&&c==b&&b++;if(g.setSelectionRange)g.setSelectionRange(c,b);else if(g.createTextRange){var j=
- g.createTextRange();j.collapse(!0);j.moveEnd("character",b);j.moveStart("character",c);j.select()}g.focus()}}else{if(!e(f).is(":visible"))return{begin:0,end:0};f=N?j:null;j=null;null==f&&(g.setSelectionRange?(c=g.selectionStart,b=g.selectionEnd):document.selection&&document.selection.createRange&&(j=document.selection.createRange(),c=0-j.duplicate().moveStart("character",-1E5),b=c+j.text.length),f={begin:c,end:b});return f}}function P(a){for(var c=!0,a=a._valueGet(),b=a.length,e=0;e<b;e++)if(w(e)&&
- a.charAt(e)==C(e)){c=!1;break}return c}function K(f){function c(a){a=e._data(a).events;e.each(a,function(a,d){e.each(d,function(a,d){if("inputmask"==d.namespace){var c=d.handler;d.handler=function(){return this.readOnly||this.disabled?!1:c.apply(this,arguments)}}})})}function b(a){var d;Object.getOwnPropertyDescriptor&&(d=Object.getOwnPropertyDescriptor(a,"value"));if(d&&d.get)a._valueGet||(a._valueGet=d.get,a._valueSet=d.set,Object.defineProperty(a,"value",{get:function(){var a=e(this),d=e(this).data("inputmask");
- return d&&d.autoUnmask?a.inputmask("unmaskedvalue"):this._valueGet()!=d._buffer.join("")?this._valueGet():""},set:function(a){this._valueSet(a);e(this).triggerHandler("setvalue.inputmask")}}));else if(document.__lookupGetter__&&a.__lookupGetter__("value"))a._valueGet||(a._valueGet=a.__lookupGetter__("value"),a._valueSet=a.__lookupSetter__("value"),a.__defineGetter__("value",function(){var a=e(this),d=e(this).data("inputmask");return d&&d.autoUnmask?a.inputmask("unmaskedvalue"):this._valueGet()!=d._buffer.join("")?
- this._valueGet():""}),a.__defineSetter__("value",function(a){this._valueSet(a);e(this).triggerHandler("setvalue.inputmask")}));else if(a._valueGet||(a._valueGet=function(){return this.value},a._valueSet=function(a){this.value=a}),!0!=e.fn.val.inputmaskpatch)e.fn.val=function(){if(arguments.length==0){var a=e(this);if(a.data("inputmask")){if(a.data("inputmask").autoUnmask)return a.inputmask("unmaskedvalue");var d=e.inputmask.val.apply(a);return d!=a.data("inputmask")._buffer.join("")?d:""}return e.inputmask.val.apply(a)}var c=
- arguments;return this.each(function(){var a=e(this),d=e.inputmask.val.apply(a,c);a.data("inputmask")&&a.triggerHandler("setvalue.inputmask");return d})},e.extend(e.fn.val,{inputmaskpatch:!0})}function t(d,c){if(a.numericInput&&""!=a.radixPoint){var b=d._valueGet().indexOf(a.radixPoint);A=c.begin<=b||c.end<=b||-1==b}}function j(a,c,b){for(;!w(a)&&0<=a-1;)a--;for(var e=a;e<c&&e<o(d);e++)if(w(e)){J(d,e);var f=y(d,e),i=x(d,f);if(i!=C(f))if(f<o(d)&&!1!==D(e,i,d,!0)&&h[e%h.length].def==h[f%h.length].def)G(d,
- e,x(d,f)),J(d,f);else{if(w(e))break}else if(void 0==b)break}else J(d,e);void 0!=b&&G(d,A?c:M(d,c),b);d=O(d.join(""),A).split("");0==d.length&&(d=g.slice());return a}function u(a,c,e,b){for(;a<=c&&a<o(d);a++)if(w(a)){var f=x(d,a);G(d,a,e);if(f!=C(a))if(e=y(d,a),e<o(d))if(!1!==D(e,f,d,!0)&&h[a%h.length].def==h[e%h.length].def)e=f;else if(w(e))break;else e=f;else break;else if(!0!==b)break}else J(d,a);b=d.length;d=O(d.join(""),A).split("");0==d.length&&(d=g.slice());return c-(b-d.length)}function E(c){r=
- !1;var b=this,f=c.keyCode,h=l(b);t(b,h);if(f==a.keyCode.BACKSPACE||f==a.keyCode.DELETE||V&&127==f){var s=o(d);if(0==h.begin&&h.end==s)d=g.slice(),z(b,d),l(b,q(b,d,!1));else if(1<h.end-h.begin||1==h.end-h.begin&&a.insertMode)R(d,h.begin,h.end),z(b,d),l(A?q(b,d,!1):h.begin);else{var i=h.begin;f==a.keyCode.DELETE?(i<F&&(i=F),i<s&&(a.numericInput&&""!=a.radixPoint&&d[i]==a.radixPoint?(i=d.length-1==i?i:y(d,i),i=j(i,s)):A?(i=u(F,i,C(i),!0),i=y(d,i)):i=j(i,s),z(b,d,i))):f==a.keyCode.BACKSPACE&&i>F&&(i-=
- 1,a.numericInput&&""!=a.radixPoint&&d[i]==a.radixPoint?(i=u(F,d.length-1==i?i:i-1,C(i),!0),i++):A?(i=u(F,i,C(i),!0),i=d[i+1]==a.radixPoint?i+1:y(d,i)):i=j(i,s),z(b,d,i))}b._valueGet()==g.join("")&&e(b).trigger("cleared");c.preventDefault()}else f==a.keyCode.END||f==a.keyCode.PAGE_DOWN?setTimeout(function(){var e=q(b,d,!1,!0);!a.insertMode&&(e==o(d)&&!c.shiftKey)&&e--;l(b,c.shiftKey?h.begin:e,e)},0):f==a.keyCode.HOME||f==a.keyCode.PAGE_UP?l(b,0,c.shiftKey?h.begin:0):f==a.keyCode.ESCAPE?(b._valueSet(B),
- l(b,0,q(b,d))):f==a.keyCode.INSERT?(a.insertMode=!a.insertMode,l(b,!a.insertMode&&h.begin==o(d)?h.begin-1:h.begin)):c.ctrlKey&&88==f?setTimeout(function(){l(b,q(b,d,!0))},0):a.insertMode||(f==a.keyCode.RIGHT?(s=h.begin==h.end?h.end+1:h.end,s=s<o(d)?s:h.end,l(b,c.shiftKey?h.begin:s,c.shiftKey?s+1:s)):f==a.keyCode.LEFT&&(s=h.begin-1,s=0<s?s:0,l(b,s,c.shiftKey?h.end:s)));a.onKeyDown.call(this,c,d,a);I=-1!=e.inArray(f,a.ignorables)}function n(c){if(r)return!1;r=!0;var b=this,f=e(b),c=c||window.event,
- g=c.which||c.charCode||c.keyCode,h=String.fromCharCode(g);if(a.numericInput&&h==a.radixPoint){var i=b._valueGet().indexOf(a.radixPoint);l(b,y(d,-1!=i?i:o(d)))}if(c.ctrlKey||c.altKey||c.metaKey||I)return!0;if(g){f.trigger("input");var k=l(b),m=o(d),g=!0;R(d,k.begin,k.end);if(A){var i=M(d,k.end),p;if(!1!==(p=D(i==m||x(d,i)==a.radixPoint?M(d,i):i,h,d,!1))){!0!==p&&(i=void 0!=p.pos?p.pos:i,h=void 0!=p.c?p.c:h);m=o(d);p=F;if(!0==a.insertMode){if(!0==a.greedy)for(var n=d.slice();x(n,p,!0)!=C(p)&&p<=i;)p=
- p==m?m+1:y(d,p);p<=i&&(a.greedy||d.length<m)?(d[F]!=C(F)&&d.length<m&&(n=Q(d,-1,A),0!=k.end&&(i+=n),m=d.length),j(p,i,h)):g=!1}else G(d,i,h);g&&(z(b,d,a.numericInput?i+1:i),setTimeout(function(){P(b)&&f.trigger("complete")},0))}else N&&z(b,d,k.begin)}else if(i=y(d,k.begin-1),Q(d,i,A),!1!==(p=D(i,h,d,!1))){!0!==p&&(i=void 0!=p.pos?p.pos:i,h=void 0!=p.c?p.c:h);if(!0==a.insertMode){k=o(d);for(n=d.slice();x(n,k,!0)!=C(k)&&k>=i;)k=0==k?-1:M(d,k);k>=i?u(i,d.length,h):g=!1}else G(d,i,h);g&&(h=y(d,i),z(b,
- d,h),setTimeout(function(){P(b)&&f.trigger("complete")},0))}else N&&z(b,d,k.begin);c.preventDefault()}}function m(c){var b=e(this),f=c.keyCode;a.onKeyUp.call(this,c,d,a);f==a.keyCode.TAB&&(b.hasClass("focus.inputmask")&&0==this._valueGet().length&&a.showMaskOnFocus)&&(d=g.slice(),z(this,d),A||l(this,0),B=this._valueGet())}var k=e(f);if(k.is(":input")){var d=g.slice();a.greedy=a.greedy?a.greedy:0==a.repeat;var v=k.prop("maxLength");o(d)>v&&-1<v&&(v<g.length&&(g.length=v),!1==a.greedy&&(a.repeat=Math.round(v/
- g.length)),k.prop("maxLength",2*o(d)));k.data("inputmask",{tests:h,_buffer:g,greedy:a.greedy,repeat:a.repeat,autoUnmask:a.autoUnmask,definitions:a.definitions,isRTL:!1});b(f);var B=f._valueGet(),r=!1,I=!1,H=-1,F=y(d,-1);M(d,o(d));var A=!1;if("rtl"==f.dir||a.numericInput)f.dir="ltr",k.css("text-align","right"),k.removeAttr("dir"),v=k.data("inputmask"),v.isRTL=!0,k.data("inputmask",v),A=!0;k.unbind(".inputmask");k.removeClass("focus.inputmask");k.bind("mouseenter.inputmask",function(){if(!e(this).hasClass("focus.inputmask")&&
- a.showMaskOnHover){var c=this._valueGet().length;c<d.length&&(0==c&&(d=g.slice()),z(this,d))}}).bind("blur.inputmask",function(){var c=e(this),b=this._valueGet();c.removeClass("focus.inputmask");b!=B&&c.change();a.clearMaskOnLostFocus&&""!=b&&(b==g.join("")?this._valueSet(""):T(this,d));P(this)||(c.trigger("incomplete"),a.clearIncomplete&&(a.clearMaskOnLostFocus?this._valueSet(""):(d=g.slice(),z(this,d))))}).bind("focus.inputmask",function(){var c=e(this),b=this._valueGet();if(a.showMaskOnFocus&&
- !c.hasClass("focus.inputmask")&&(!a.showMaskOnHover||a.showMaskOnHover&&""==b))b=b.length,b<d.length&&(0==b&&(d=g.slice()),l(this,q(this,d,!0)));c.addClass("focus.inputmask");B=this._valueGet()}).bind("mouseleave.inputmask",function(){var c=e(this);a.clearMaskOnLostFocus&&(c.hasClass("focus.inputmask")||(this._valueGet()==g.join("")||""==this._valueGet()?this._valueSet(""):T(this,d)))}).bind("click.inputmask",function(){var a=this;setTimeout(function(){var c=l(a);if(c.begin==c.end){var b=c.begin;
- H=q(a,d,!1);t(a,c);A?l(a,b>H&&(!1!==D(b,d[b],d,!0)||!w(b))?b:H):l(a,b<H&&(!1!==D(b,d[b],d,!0)||!w(b))?b:H)}},0)}).bind("dblclick.inputmask",function(){var a=this;setTimeout(function(){l(a,0,H)},0)}).bind("keydown.inputmask",E).bind("keypress.inputmask",n).bind("keyup.inputmask",m).bind(W+".inputmask dragdrop.inputmask drop.inputmask",function(){var a=this;setTimeout(function(){l(a,q(a,d,!0))},0)}).bind("setvalue.inputmask",function(){B=this._valueGet();q(this,d,!0);this._valueGet()==g.join("")&&this._valueSet("")}).bind("complete.inputmask",
- a.oncomplete).bind("incomplete.inputmask",a.onincomplete).bind("cleared.inputmask",a.oncleared);var H=q(f,d,!0),K;try{K=document.activeElement}catch(S){}K===f?(k.addClass("focus.inputmask"),l(f,H)):a.clearMaskOnLostFocus&&(f._valueGet()==g.join("")?f._valueSet(""):T(f,d));c(f)}}var a=e.extend(!0,{},e.inputmask.defaults,B),W=function(a){var c=document.createElement("input"),a="on"+a,b=a in c;b||(c.setAttribute(a,"return;"),b="function"==typeof c[a]);return b}("paste")?"paste":"input",V=null!=navigator.userAgent.match(/iphone/i),
- N=null!=navigator.userAgent.match(/android.*mobile safari.*/i);if("string"==typeof u)switch(u){case "mask":t(a.alias,B);var g=E(),h=I();return this.each(function(){K(this)});case "unmaskedvalue":return h=this.data("inputmask").tests,g=this.data("inputmask")._buffer,a.greedy=this.data("inputmask").greedy,a.repeat=this.data("inputmask").repeat,a.definitions=this.data("inputmask").definitions,U(this);case "remove":return this.each(function(){var f=e(this),c=this;setTimeout(function(){if(f.data("inputmask")){h=
- f.data("inputmask").tests;g=f.data("inputmask")._buffer;a.greedy=f.data("inputmask").greedy;a.repeat=f.data("inputmask").repeat;a.definitions=f.data("inputmask").definitions;c._valueSet(U(f,!0));f.removeData("inputmask");f.unbind(".inputmask");f.removeClass("focus.inputmask");var b;Object.getOwnPropertyDescriptor&&(b=Object.getOwnPropertyDescriptor(c,"value"));b&&b.get?c._valueGet&&Object.defineProperty(c,"value",{get:c._valueGet,set:c._valueSet}):document.__lookupGetter__&&c.__lookupGetter__("value")&&
- c._valueGet&&(c.__defineGetter__("value",c._valueGet),c.__defineSetter__("value",c._valueSet));delete c._valueGet;delete c._valueSet}},0)});case "getemptymask":return this.data("inputmask")?this.data("inputmask")._buffer.join(""):"";case "hasMaskedValue":return this.data("inputmask")?!this.data("inputmask").autoUnmask:!1;case "isComplete":return h=this.data("inputmask").tests,g=this.data("inputmask")._buffer,a.greedy=this.data("inputmask").greedy,a.repeat=this.data("inputmask").repeat,a.definitions=
- this.data("inputmask").definitions,P(this[0]);default:return t(u,B)||(a.mask=u),g=E(),h=I(),this.each(function(){K(this)})}else{if("object"==typeof u)return a=e.extend(!0,{},e.inputmask.defaults,u),t(a.alias,u),g=E(),h=I(),this.each(function(){K(this)});if(void 0==u)return this.each(function(){var f=e(this).attr("data-inputmask");if(f&&""!=f)try{var f=f.replace(RegExp("'","g"),'"'),c=e.parseJSON("{"+f+"}");a=e.extend(!0,{},e.inputmask.defaults,c);t(a.alias,c);a.alias=void 0;e(this).inputmask(a)}catch(b){}})}return this})})(jQuery);
|