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