js-pkg
Version:
Npm package of Syncfusion.JavaScript.
11 lines (10 loc) • 31.3 kB
JavaScript
/*!
* filename: ej.maskedit.min.js
* version : 15.3.0.33
* Copyright Syncfusion Inc. 2001 - 2017. All rights reserved.
* Use of this code is subject to the terms of our license.
* A copy of the current license can be obtained at any time by e-mailing
* licensing@syncfusion.com. Any infringement will be prosecuted under
* applicable laws.
*/
(function(n){typeof define=="function"&&define.amd?define(["./../common/ej.core.min"],n):n()})(function(){(function(n,t,i){t.widget("ejMaskEdit","ej.MaskEdit",{element:null,model:null,validTags:["input"],_addToPersist:["value"],_setFirst:!1,type:"editor",angular:{require:["?ngModel","^?form","^?ngModelOptions"],requireFormatters:!0},defaults:{maskFormat:"",value:null,watermarkText:"",name:null,height:"",width:"",showError:!1,htmlAttributes:{},cssClass:"",customCharacter:null,inputMode:"text",readOnly:!1,textAlign:t.TextAlign.Left,hidePromptOnLeave:!1,showRoundedCorner:!1,enablePersistence:!1,enabled:!0,locale:"en-US",showPromptChar:!0,validationRules:null,validationMessage:null,keydown:null,keyup:null,keyPress:null,change:null,mouseover:null,mouseout:null,focusIn:null,focusOut:null,create:null,destroy:null},dataTypes:{maskFormat:"string",showError:"boolean",enabled:"boolean",customCharacter:"string",cssClass:"string",watermarkText:"string",showRoundedCorner:"boolean",showPromptChar:"boolean",inputMode:"enum",textAlign:"enum",hidePromptOnLeave:"boolean",readOnly:"boolean",validationRules:"data",validationMessage:"data",htmlAttributes:"data"},_setModel:function(n){for(var i in n)switch(i){case"value":t.isPlainObject(n[i])&&(n[i]=null);this._setValue(n[i]);this._initObjects();n[i]=this.get_UnstrippedValue();this._raiseEvents("change",!0);break;case"width":this._setWidth(n[i]);break;case"height":this._setHeight(n[i]);break;case"watermarkText":this.model.watermarkText=n[i];this._changeWatermark(n[i]);break;case"showRoundedCorner":this._roundedCorner(n[i]);break;case"showPromptChar":this._setShowPrompt(n[i]);break;case"validationRules":this.model.validationRules!=null&&(this._hiddenInput.rules("remove"),this.model.validationMessage=null);this.model.validationRules=n[i];this.model.validationRules!=null&&(this._initValidator(),this._setValidation());break;case"validationMessage":this.model.validationMessage=n[i];this.model.validationRules!=null&&this.model.validationMessage!=null&&(this._initValidator(),this._setValidation());break;case"textAlign":this._setTextAlign(n[i]);break;case"inputMode":this._setInputMode(n[i]);break;case"maskFormat":this.model.maskFormat=n[i];this._valueMapper();this._maskModel=this.model.maskFormat;this._setMask(n[i]);this._initObjects();n[i]=this.model.maskFormat;break;case"locale":this.model.value=this.get_StrippedValue();this.model.locale=n[i];this._setValue(this.model.value);this._initObjects();break;case"cssClass":this._setSkin(n[i]);break;case"readOnly":this._setReadOnly(n[i]);break;case"enabled":this.model.enabled=n[i];this._controlStatus(n[i]);break;case"htmlAttributes":this._addAttr(n[i]);break;case"hidePromptOnLeave":this.model.hidePromptOnLeave=n[i];this._textbox.value!=""&&(this.model.hidePromptOnLeave?(this._unStrippedMask=this._textbox.value,this._textbox.value=this.get_UnstrippedValue()):this._textbox.value=this._textbox.value.replace(/[ ]/g,"_"),this.model.value=this._textbox.value)}},observables:["value"],_destroy:function(){t.isNullOrUndefined(this._hiddenInput)||this.element.attr("name",this._hiddenInput.attr("name"));this._isWatermark&&this.element.removeAttr("placeholder");this.element.insertAfter(this.wrapper);t.isNullOrUndefined(this.wrapper)||this.wrapper.remove();this.model.textAlign&&this.element.css("text-align","");this.element.val("").removeClass(" e-mask e-input e-disable").empty();this.element.removeAttr("aria-invalid aria-disabled")},_init:function(n){if(this._options=n,this._tempMask=this.model.maskFormat,this.element.is("input")&&(this.element.is("input[type=text]")||this.element.is("input[type=password]")||!this.element.attr("type")))this._isWatermark="placeholder"in document.createElement("input"),this._setValues(),this._valueMapper(),this._renderControl(),this._initObjects(),this._wireEvents(),this._addAttr(this.model.htmlAttributes),this.model.validationRules!=null&&(this._initValidator(),this._setValidation());else return this._destroy(),!1;n&&n.value!=i&&this.model.value!==n.value&&this._trigger("_change",{value:this.get_UnstrippedValue(),unmaskedValue:this.get_StrippedValue()})},_initValidator:function(){this.element.closest("form").data("validator")||this.element.closest("form").validate()},_addAttr:function(i){var r=this;n.map(i,function(n,i){var u=i.toLowerCase();u=="class"?r.wrapper.addClass(n):u=="name"?r._hiddenInput.attr(i,n):u=="disabled"&&n=="disabled"?r.disable():u=="readonly"&&n=="readOnly"?r._setReadOnly(!0):u=="style"||u=="id"?r.wrapper.attr(i,n):t.isValidAttr(r.element[0],i)?r.element.attr(i,n):r.wrapper.attr(i,n)})},_setValidation:function(){var r,i,u,f;this._hiddenInput.rules("add",this.model.validationRules);r=this.element.closest("form").data("validator");r=r?r:this.element.closest("form").validate();name=this._hiddenInput.attr("name");r.settings.messages[name]={};for(i in this.model.validationRules)if(u=null,!t.isNullOrUndefined(this.model.validationRules[i])){if(t.isNullOrUndefined(this.model.validationRules.messages&&this.model.validationRules.messages[i])){r.settings.messages[name][i]=n.validator.messages[i];for(f in this.model.validationMessage)i==f?u=this.model.validationMessage[i]:""}else u=this.model.validationRules.messages[i];r.settings.messages[name][i]=u!=null?u:n.validator.messages[i]}},_setShowPrompt:function(n){this.model.showPromptChar=n;this._textbox.value=this.model.showPromptChar?this._unStrippedMask:this.get_UnstrippedValue()},_controlStatus:function(n){n!=!0?this.disable():this.enable()},_setValues:function(){this._unStrippedMask=null;this._charMap={"9":"[0-9 ]",a:"[A-Za-z0-9 ]",A:"[A-Za-z0-9]",N:"[0-9]","#":"[0-9]","&":"[^]+","<":"",">":"",C:this.model.customCharacter!=null?"["+this.model.customCharacter+"]":"[A-Za-z ]","?":"[A-Za-z]"}},_renderControl:function(){if(this.model.name=this.element.attr("name")!=null?this.element.attr("name"):this.model.name!=null?this.model.name:this.element[0].id,this.element.attr("name")!=null&&this.element.removeAttr("name"),this.wrapper=t.buildTag("span.e-mask e-widget "+this.model.cssClass),this.innerWrapper=t.buildTag("span.e-in-wrap e-box"),this.wrapper.append(this.innerWrapper).insertBefore(this.element),this.innerWrapper.append(this.element),this._hiddenInput=t.buildTag("input#"+this._id+"_hidden","",{},{type:"hidden"}).insertBefore(this.element),this._isWatermark||this.model.inputMode=="password"||(this._hiddenSpan=t.buildTag("span.e-input e-placeholder ").insertAfter(this.element),this._hiddenSpan.text(this.model.watermarkText),this._hiddenSpan.css("display","none"),this._hiddenSpan.bind("mousedown",n.proxy(this._OnFocusHandler,this))),t.isNullOrUndefined(this.model.value)&&this.element[0].value!=""&&(this.model.value=this.element[0].value),t.isNullOrUndefined(this.model.value)||(this.wrapper.addClass("e-valid"),typeof this.model.value=="number"&&(this.model.value=this.model.value.toString())),this._hiddenInput.attr({name:this.model.name,value:this.model.value}),this.element.attr({"aria-invalid":!1}).addClass("e-input"),this.model.maskFormat==""&&this.model.value==null){var i=this;setTimeout(function(){i.element.val()!=""&&(i.option("value",i.element.val()),i.previousValue=i.model.value,i._initObjects())},500)}else this.element.attr({value:this.model.value});t.isNullOrUndefined(this._options.inputMode)&&!t.isNullOrUndefined(this.element.attr("type"))?this.model.inputMode=this.element.attr("type"):this._setInputMode(this.model.inputMode);this._setWidth(this.model.width);this._setHeight(this.model.height);this._roundedCorner(this.model.showRoundedCorner);this._setTextAlign(this.model.textAlign);this._setReadOnly(this.model.readOnly);this._controlStatus(this.model.enabled);this.previousValue=this.model.value},_initObjects:function(){var t,n;if(this._textbox=this.element[0],this._keypressFlag=0,this._selectedTextKeyDown=0,this._keydownFlag=0,this.model.maskFormat.indexOf("\\")>=0){for(t=0,n=0;n<this.model.maskFormat.length;n++)this.model.maskFormat[n]=="\\"&&(t+=1);this._maskLength=this.model.maskFormat.length-t}else this._maskLength=this.model.maskFormat.length;this._maskModel=this.model.maskFormat.indexOf("\\")>=0?this.model.maskFormat:this.model.maskFormat.replace(/[9?CANa#&]/g,"_");this._changeMask(this.model.locale);(this._maskModel.indexOf("<")>=0||this._maskModel.indexOf(">")>=0)&&(this._maskModel=this._maskModel.replace(/[<>]/g,""),this.model.maskFormat=this.model.maskFormat.replace(/[<>]/g,""),this._valueMapper());this._validatedValue=this._maskModel;this.model.inputMode!="password"&&(this._setValue(this.model.value),this._setWaterMark());this.model.showError&&this.element.addClass("e-error").attr("aria-invalid","true")},_setWidth:function(n){this.wrapper.width(n)},_setHeight:function(n){this.wrapper.height(n)},_roundedCorner:function(n){n&&!this.innerWrapper.hasClass("e-corner")?this.innerWrapper.addClass("e-corner"):this.innerWrapper.hasClass("e-corner")&&this.innerWrapper.removeClass("e-corner")},_setTextAlign:function(n){n=="right"?(this.element.css("text-align",""),this.wrapper.addClass("e-rtl")):(this.wrapper.removeClass("e-rtl"),this.element.css("text-align",n))},_setInputMode:function(n){this.element.attr("type",n)},_setReadOnly:function(n){this.model.readOnly=n;n?this.element.attr("readonly",!0):this.element.removeAttr("readonly")},_setSkin:function(n){this.wrapper.removeClass(this.model.cssClass);this.wrapper.addClass(n)},_setWaterMark:function(){var i=this.model.showPromptChar?this._maskModel:this._maskModel!=""&&this._maskModel!=null?this._maskModel.replace(/[_]/g," "):this._maskModel;this._maskModel=this.model.maskFormat.indexOf("\\")>=0?this.model.maskFormat===""?null:this.model.maskFormat:n.trim(this.model.maskFormat.replace(/[9?CANa#&]/g,"_"))===""?null:this.model.maskFormat.replace(/[9?CANa#&]/g,"_");(this._maskModel!=""&&this._maskModel!=null&&this._textbox.value==i||i==""&&this._textbox.value==""&&this.model.inputMode!="password")&&(this._textbox.value="");this.model.watermarkText.length!=0||t.isNullOrUndefined(this.element.attr("placeholder"))||(this.model.watermarkText=this.element.attr("placeholder"));this.model.watermarkText&&(this._isWatermark?this.element.attr("placeholder",this.model.watermarkText):this._textbox.value?this._hiddenSpan.css("display","none").text(this.model.watermarkText):this._hiddenSpan.css("display","block").text(this.model.watermarkText));this.model.watermarkText||this._textbox.value||!this.model.maskFormat||(this.model.hidePromptOnLeave?(this._unStrippedMask=this._maskModel,this._textbox.value=this.get_UnstrippedValue()):this._textbox.value=i)},_changeWatermark:function(t){if(!this.model.enabled)return!1;var i=this.model.showPromptChar?this._maskModel:this._maskModel!=""&&this._maskModel!=null?this._maskModel.replace(/[_]/g," "):this._maskModel;(this._textbox.value==i||this._textbox.value==""||n.trim(this.get_StrippedValue())=="")&&this.model.inputMode!="password"&&(this._textbox.value="");this._isWatermark?this.element.attr("placeholder",t):this._hiddenSpan.text(t);!this.model.watermarkText&&n.trim(this.get_StrippedValue())==""&&this.model.maskFormat&&(this.model.hidePromptOnLeave?(this._unStrippedMask=this._maskModel,this._textbox.value=this.get_UnstrippedValue()):this._textbox.value=i)},_showAlert:function(){var t=this;this.element.addClass("e-error").attr("aria-invalid","true").animate({Opacity:1},700,null,function(){n(t._textbox).removeClass("e-error").attr("aria-invalid","false")})},_unMask:function(){for(var f="",n=0,t=0,r,o="_",s,h=this.model.value.toString(),u=h.replace(/[\(\)-]/g,""),e;n<this._rules.length;){if(r=u[t],s=this._rules[n],r==i)break;if(r===s||r===o?(f+=r===o?o:"",t+=1,n+=1):this._rules[n].rule!=i&&r.match(this._rules[n].rule)?(e=u.charCodeAt(t),this._validateChars(e,n)?(f+=u.charAt(t),n++,t++):n++):typeof s!="string"?r.match(this._rules[n].rule)?(e=u.charCodeAt(t),this._validateChars(e,n)&&(f+=u.charAt(t),n++,t++)):(t++,n++):n++,t>u.length)break}return f},_validateValue:function(){var b,v,o,e,w,c,n,f,y;if(!t.isNullOrUndefined(this.model.value)){var h=this.model.value,u=this._maskModel,r=f=0,s,a="_",p,l=this._unMask();if(this._isWatermark||this.model.inputMode=="password"||this._hiddenSpan.css("display","none"),this._maskLength==0)return this._textbox.value=h,this._setWaterMark(),!0;for(b=this.model.value.toString(),h=this.model.maskFormat.indexOf("\\")>=0||this.model.customCharacter!=null?this.model.value:this.model.value=b.replace(/[\(\)-]/g,"");r<this._rules.length;){if(s=l[f],p=this._rules[r],s==i)break;if(s===p||s===a?(s===a?a:"",o=u.substring(0,r),e=u.substring(r),u=o+s+e.substr(1,e.length),f+=1,r+=1):this._rules[r].rule!=i?(v=l.charCodeAt(f),this._validateChars(v,r)?(o=u.substring(0,r),e=u.substring(r),u=o+l.charAt(f)+e.substr(1,e.length),r++,f++):r++):typeof p!="string"?s.match(this._rules[r].rule)?(v=l.charCodeAt(f),this._validateChars(v,r)?(o=u.substring(0,r),e=u.substring(r),u=o+l.charAt(f)+e.substr(1,e.length),r++,f++):r++):(o=u.substring(0,r),e=u.substring(r),u=o+a+e.substr(1,e.length),f++,r++):r++,f>h.length)break}if(this.model.value)if(this._textbox.value=u,this.model.value=this.get_UnstrippedValue(),this.model.maskFormat.indexOf("\\")>=0||this.model.maskFormat.indexOf("&")>=0){for(this._textbox.value="",w=0,_pos=0;_pos<this.model.maskFormat.length;_pos++)this.model.maskFormat[_pos]=="\\"&&(w+=1);if(c=0,this.model.value.length==u.length-w)for(n=0;n<this.model.maskFormat.length;++n)this.model.maskFormat[n]=="\\"?c=c+1:this.model.maskFormat[n-1]=="\\"?this._textbox.value+=h[n-c]:this.model.maskFormat[n]=="\\"||(this._textbox.value+=h.length<=n-c?u[n].replace(/[9?CANa#&]/g,"_"):h[n-c].replace(/[9?CANa#&]/g,"_"));else for(this._textbox.value="",n=0;n<this.model.maskFormat.length;++n)this.model.maskFormat[n-1]=="\\"?this._textbox.value+=u[n]:this.model.maskFormat[n]=="\\"||(this._textbox.value+=u[n].replace(/[9?CANa#&]/g,"_"))}else this.model.hidePromptOnLeave?(this._unStrippedMask=u.replace(/[ ]/g,"_"),this._textbox.value=u):this._textbox.value=u;else if(this.model.maskFormat.indexOf("\\")>=0)for(n=0;n<this.model.maskFormat.length;++n)this.model.maskFormat[n-1]=="\\"?this._textbox.value+=this.model.maskFormat[n]:this.model.maskFormat[n]=="\\"||(this._textbox.value+=this.model.maskFormat[n].replace(/[9?CANa#&]/g,"_"));else this._textbox.value=this.model.maskFormat.replace(/[9?CANa#&]/g,"_");if(this._textbox.value!=i&&this.model.hidePromptOnLeave&&(this._unStrippedMask=this._textbox.value.replace(/[ ]/g,"_"),this._textbox.value=this.get_UnstrippedValue()),this._maskModel!=null&&(this._textbox.value.indexOf(">")>=0||this._textbox.value.indexOf("<")>=0)&&(this._textbox.value=this._textbox.value.replace(/[<>]/g,""),this._tempMask=this.model.maskFormat,this.model.maskFormat=this.model.maskFormat.replace(/[<>]/g,"")),this.model.showPromptChar||(this._textbox.value=this.get_UnstrippedValue()),this._tempMask!=null)for(f=0;f<this._textbox.value.length;f++)y=this._updateCasing(this._textbox.value[f],f),t.isNullOrUndefined(y)||(this._textbox.value=this._textbox.value.substring(0,f)+y+this._textbox.value.substring(f+y.length));this._setWaterMark()}},_selectionText:function(n,i){var r=t.isNullOrUndefined(this._maskModel)?"":this._maskModel.substring(n,i);return(this._textbox.value=this._textbox.value.substring(0,n)+r+this._textbox.value.substring(i),this._keydownFlag==1)?(this._setCaretPosition(n),n):this._keydownFlag==2?(this._setCaretPosition(i),i):n},_caretPosition:function(n){var t=0,i,r;return document.selection?(i=document.selection.createRange(),r=i.text.length,i.moveStart("character",-n.value.length),t=i.text.length-r,r!=0&&(t=this._selectionText(t,i.text.length),this._selectedTextKeyDown=1)):(n.selectionStart||n.selectionStart=="0")&&(t=n.selectionStart,n.selectionStart!=n.selectionEnd&&(this._keydownFlag&&(t=this._selectionText(n.selectionStart,n.selectionEnd)),this._selectedTextKeyDown=1)),t},_setCaretPosition:function(n){var t=this._textbox,i;window.navigator.appName=="Microsoft Internet Explorer"?t.createTextRange&&(i=t.createTextRange(),i.move("character",n),i.select()):t.selectionStart||t.selectionStart=="0"?(t.focus(),t.setSelectionRange(n,n)):t.focus()},_validateChars:function(t,i){var o=this._charMap,u=!1,f,r,e;return this.model.maskFormat.indexOf("\\")>=0?(_position=this._getCunrrentPos(i),f=this.model.maskFormat.substr(i+_position,1)):f=this.model.maskFormat.substr(i,1),r=this.model.customCharacter,e=String.fromCharCode(t),n.each(o,function(n,t){f==n&&(r!=null&&(n=="C"?t="["+r+"]":(n=="A"||n=="N"||n=="#")&&(t=t.replace("]","")+r+"]")),u=e.match(new RegExp(t))?!0:!1)}),u},_seekNext:function(){for(var n=this._caretPosition(this._textbox),r=n,u=!0,t,i;u;){if(n>=0&&n<this._maskLength){for(t=0,i=0;i<=n;i++)this.model.maskFormat[i]=="\\"&&(t+=1);if(this.model.maskFormat.charAt(n)!="C"&&(this.model.maskFormat.indexOf("\\")>=0?this.model.maskFormat.charAt(n+t)!="\\"&&this.model.maskFormat.charAt(n+t-1)!="\\"&&(this._charMap[this.model.maskFormat.charAt(n+t)]||(this._setCaretPosition(n),n++)):this._charMap[this.model.maskFormat.charAt(n)]||(this._setCaretPosition(n),n++),n!=r)){r=n;continue}}u=!1}return n},_seekBefore:function(){var n=this._caretPosition(this._textbox),i=--n,t=!0;for(this._selectedTextKeyDown==1&&(t=!1);t;){if(n>=0&&n<this._maskLength&&(this.model.maskFormat.charAt(n)!="C"&&(this._charMap[this.model.maskFormat.charAt(n)]||this._setCaretPosition(--n)),n!=i)){i=n;continue}t=!1}return n},_writeBuffer:function(n,t){var u,o,f,r,s,e;if(t<=this._maskLength){if(u=this._textbox.value,this._tempMask!=null&&(o=this._updateCasing(n,t)),n=o==i?n:o,f=u.substring(0,t),r=u.substring(t),this.model.maskFormat.indexOf("\\")>=0){for(s=0,e=0;e<=t;e++)this.model.maskFormat[e].indexOf("\\")>=0&&t!=0&&(s+=1);this._textbox.value=this.model.maskFormat[t+s].indexOf("\\")>=0?f+u[t]+r.substr(1,r.length):f+n+r.substr(1,r.length)}else this._textbox.value=f+n+r.substr(1,r.length);this._setCaretPosition(t+1)}},_updateCasing:function(n,t){for(var r,i=0;i<t+1;i++)(this._tempMask.substr(i,1)=="<"||this._tempMask.substr(i,1)==">")&&t++;for(r=t;r>-1;r--){if(this._tempMask.substr(r,1)=="<")return n.toLowerCase();if(this._tempMask.substr(r,1)==">")return n.toUpperCase()}},get_StrippedValue:function(){var u,o=this.model.maskFormat,f=null,e,i,t,r;if(u=this._textbox.value==""&&this.model.inputMode!="password"?this._maskModel:this._textbox.value,o.length==0)return u;for(e=0,i=0;i<o.length;i++)f=n.trim(f),this.model.maskFormat.indexOf("\\")>=0?this.model.maskFormat[i]=="\\"?e+=1:this.model.maskFormat[i-1]=="\\"?f+=this._textbox.value[i-e]:(t=o[i],r=null,"9?$a*".indexOf(t)!=-1?r=this._charMap[t]:t=="A"||t=="N"||t=="#"?r=this._charMap[t].replace("]","")+this.model.customCharacter+"]":t=="C"?r="["+this.model.customCharacter+"]":t=="&"&&(f+=u[i-e]),r&&u[i-e]&&u[i-e].match(new RegExp(r))&&(f+=u[i-e])):(t=o[i],r=null,"9?$a*".indexOf(t)!=-1?r=this._charMap[t]:t=="A"||t=="N"||t=="#"?r=this._charMap[t].replace("]","")+this.model.customCharacter+"]":t=="C"?r="["+this.model.customCharacter+"]":t=="&"&&(f+=u[i-e]),r&&u[i]&&u[i].match(new RegExp(r))&&(f+=u[i]));return f},get_UnstrippedValue:function(){var t=this._textbox.value==""&&this.model.inputMode!="password"?this._maskModel:this._textbox.value,r=null;return this.model.maskFormat.length==0?t:(t!=i&&(r=n.trim(t.replace(/[_]/g," "))==""?null:t.replace(/[_]/g," ")),r)},_setValue:function(i){(t.isNullOrUndefined(i)||n.trim(i)=="")&&(i=null);this.model.value=i;this._isWatermark||this.model.inputMode=="password"||this._hiddenSpan.css("display","none");t.isNullOrUndefined(this.model.maskFormat)||this.model.maskFormat==""?(this._textbox.value=t.isNullOrUndefined(i)?"":i,this._unStrippedMask=this._textbox.value):(this._validateValue(),t.isNullOrUndefined(this.model.value)&&(this._textbox.value=t.isNullOrUndefined(i)?"":i,this._unStrippedMask=this._maskModel));this._setWaterMark()},_valueMapper:function(){for(var u=[],i=0,o=this.model.maskFormat||"",s=o.split(""),f=0,n,r="",e,h=this._charMap,t;f<o.length;f++)if(n=s[f],e=h[n],e)u[i]={rule:e},r+="_",i+=1;else for(n==="\\"&&(idx+=1,n=s[idx]),n=n.split(""),t=0;t<n.length;t++)u[i]=n[t],r+=n[t],i+=1;this._rules=u;this._emptyMask=r;this._maskLength=r.length},_changeMask:function(n){var r,f,e,o,u,i;if(this._maskModel.length!=0){for(r=t.preferredCulture(n),u="",f=r.numberFormat[","],e=r.numberFormat.currency.symbol,o=r.numberFormat["."],i=0;i<this._maskModel.length;i++)u+=this._maskModel[i]==","?f:this._maskModel[i]=="."?o:this._maskModel[i]=="$"?e:this._maskModel[i];this._maskModel=u}},_setMask:function(i){this._maskLength=i.length;this.model.maskFormat=i;this._tempMask=this.model.maskFormat;this._maskModel=i.replace(/[9?CANa]/g,"_");(this._maskModel.indexOf("<")>=0||this._maskModel.indexOf(">")>=0)&&(this._maskModel=this._maskModel.replace(/[<>]/g,""),this.model.maskFormat=this.model.maskFormat.replace(/[<>]/g,""));t.isNullOrUndefined(this.model.maskFormat)||this.model.maskFormat==""?this.model.watermarkText||this._textbox.value==this._maskModel||(this.model.maskFormat?this.model.hidePromptOnLeave?(this._textbox.value=this._maskModel,this._unStrippedMask=this._textbox.value,this._textbox.value=this.get_UnstrippedValue()):this._textbox.value=this._maskModel:(unstripVal=this._unStrippedMask.replace(/[_]/g," "),this._textbox.value=this.model.customCharacter==null?n.trim(unstripVal.replace(/[\(\)-]/g,"")):n.trim(unstripVal),this._unStrippedMask=this._textbox.value)):this._validateValue()},enable:function(){this.element.disabled=!1;this.element.removeAttr("disabled").removeClass("e-disable").attr({"aria-disabled":!1});this.wrapper.find(".e-placeholder").length>0&&this.wrapper.find(".e-placeholder").removeAttr("disabled","disabled");this.wrapper.removeClass("e-disable-wrap");this.model.enabled=!0},disable:function(){this.element.disabled=!0;this.element.attr("disabled","disabled").addClass("e-disable").attr({"aria-disabled":!0});this.wrapper.find(".e-placeholder").length>0&&this.wrapper.find(".e-placeholder").attr("disabled","disabled");this.wrapper.addClass("e-disable-wrap");this.model.enabled=!1},clear:function(){this._textbox.value=this.model.maskFormat.replace(/[9?aCAN]/g,"_");this.model.value=this.get_StrippedValue()},_wireEvents:function(){this._on(this.element,"focus",this._OnFocusHandler);this._on(this.element,"blur",this._OnBlurHandler);this._on(this.element,"keydown",this._OnKeyDownHandler);this._on(this.element,"keypress",this._OnKeyPressHandler);this._on(this.element,"keyup",this._OnKeyUpHandler);this._on(this.element,"mouseover",this._OnMouseOverHandler);this._on(this.element,"mouseout",this._OnMouseOutHandler);this._on(this.element,"paste",this._OnPasteHandler);this._on(this.element,"cut",this._OnCutHandler)},_OnCutHandler:function(){var i=t.isNullOrUndefined(this._maskModel)?"":this._maskModel.substring(this._textbox.selectionStart,this._textbox.selectionEnd),r=this._textbox.value.substring(0,this._textbox.selectionStart),u=this._textbox.value.substring(this._textbox.selectionEnd),f=this._textbox.selectionStart,n=this;setTimeout(function(){n._textbox.value=r+i+u;n._setCaretPosition(f);n._raiseEvents("change")},0)},_OnPasteHandler:function(){var t=this;return setTimeout(function(){var i=n(t._textbox).val();t._setValue(i);t._raiseEvents("change")},0),!0},_OnFocusHandler:function(){this.wrapper.addClass("e-focus");var i=this.model.showPromptChar?this._maskModel:this._maskModel!=""&&this._maskModel!=null?this._maskModel.replace(/[_]/g," "):this._maskModel;this.model.readOnly||(this._focusValue=this.model.value,this._isWatermark||this.model.inputMode=="password"||this._hiddenSpan.css("display","none"),this._textbox.value==""&&this._maskModel!=""&&this.model.inputMode!="password"&&(this._textbox.value=this.model.maskFormat.indexOf("\\")>=0?this.model.watermarkText:t.isNullOrUndefined(this._maskModel)?"":i),this._maskModel!=null&&(this._textbox.value.indexOf("<")>=0||this._textbox.value.indexOf(">")>=0)&&(this._textbox.value=this._textbox.value.replace(/[<>]/g,""),this._maskModel=this._textbox.value,this._tempMask=this.model.maskFormat,this.model.maskFormat=this.model.maskFormat.replace(/[<>]/g,"")),this._textbox.value!=i&&this._unStrippedMask!=null&&this.model.hidePromptOnLeave&&(this._textbox.value=this._unStrippedMask),this.model.showPromptChar||(this._textbox.value=this.get_UnstrippedValue()),n.fn.selectRange=function(n,t){return this.each(function(){if(this.setSelectionRange)this.focus(),this.setSelectionRange(n,t);else if(this.createTextRange){var i=this.createTextRange();i.collapse(!0);i.moveEnd("character",t);i.moveStart("character",n);i.select()}})},this.model.maskFormat&&n(this.element).selectRange(0,0),this._raiseEvents("focusIn"))},_OnBlurHandler:function(){var f,r,n,u;if(this.wrapper.removeClass("e-focus"),this.model.value=this.get_StrippedValue(),f=[],r=[],(this._textbox.value.indexOf("_")!=-1||this._textbox.value.indexOf(" ")!=-1)&&!t.isNullOrUndefined(this.model.value)){for(n=0;n<this.model.maskFormat.length;n++)this.model.maskFormat[n]=="A"||this.model.maskFormat[n]=="?"?f.push(n):(this.model.maskFormat[n]=="9"||this.model.maskFormat[n]=="a"||this.model.maskFormat[n]=="C")&&r.push(n);for(n=0;n<f.length;n++)this._textbox.value[f[n]]==="_"&&(this._showAlert(),this.model.value=this._textbox.value);for(n=0;n<r.length;n++)if(this.model.value[r[n]]=="_"||this.model.value[r[n]]==" ")for(this.model.value=this.model.value.substr(0,r[n])+this.model.value.substr(r[n]+1,this.model.value.length),u=n;u<r.length;u++)r[u]=r[u]-1}this.model.value=this.model.value!=null?this.model.value.replace(/\s+/g,""):this.model.value;this._textbox.value!=i&&(this.model.watermarkText==""||this.model.watermarkText!=""&&this.model.value!="")&&(this.model.hidePromptOnLeave?(this._unStrippedMask=this._textbox.value,this._textbox.value=this.get_UnstrippedValue()):this._unStrippedMask=this._textbox.value);this.model.inputMode!="password"&&this._setWaterMark();this._raiseEvents("change");this._raiseEvents("focusOut")},_OnKeyDownHandler:function(n){var r,e,i;if(!this.model.readOnly){if(this._keypressFlag=0,this._raiseEvents("onKeyDown",null,{keyCode:n.keyCode,altKey:n.altKey,shiftKey:n.shiftKey,ctrlKey:n.ctrlKey,originalArgs:n}),this.element.removeClass("error"),this._maskLength==0)return!0;var u=n.keyCode?n.keyCode:n.charCode,o=String.fromCharCode(u),i=this._seekNext(),f=this.model.showPromptChar?"_":" ",e=t.browserInfo().name;if(e=="msie"&&this._textbox.value==""){if(this.model.maskFormat.indexOf("\\")>=0)for(r=0;r<this.model.maskFormat.length;++r)this.model.maskFormat[r-1]=="\\"?this._textbox.value+=this.model.maskFormat[r]:this.model.maskFormat[r]=="\\"||(this._textbox.value+=this.model.maskFormat[r].replace(/[9?CANa#&]/g,"_"));else this._textbox.value=this.model.maskFormat.replace(/[9?CANa#&]/g,"_");this._setCaretPosition(i)}if(u>=35&&u<=41&&(window.navigator.appCodeName=="Mozilla"||window.navigator.appCodeName=="opera")&&(this._keypressFlag=1),n.shiftKey&&(n.keyCode==35||n.keyCode==36||n.keyCode==37||n.keyCode==39||n.keyCode==46||n.keyCode==127)||n.ctrlKey&&(n.keyCode==86||n.keyCode==65||n.keyCode==67||n.keyCode==88)){this._keypressFlag=1;return}return u==8?this.model.inputMode!="password"?(this._keydownFlag=1,i=this._seekBefore(),this._selectedTextKeyDown?!this.model.showPromptChar&&this._selectedTextKeyDown&&(this._textbox.value=this.get_UnstrippedValue(),this._setCaretPosition(i+1)):(i>=0&&i<this._maskLength&&this._writeBuffer(f,i),this._setCaretPosition(i)),this._keydownFlag=0,this._selectedTextKeyDown=0,n.preventDefault(),!1):(this._keypressFlag=1,!0):n.keyCode==46||n.keyCode==127?this.model.inputMode!="password"?(this._keydownFlag=2,i=this._seekNext(),this._selectedTextKeyDown?!this.model.showPromptChar&&this._selectedTextKeyDown&&(this._textbox.value=this.get_UnstrippedValue(),this._setCaretPosition(i)):i>=0&&i<this._maskLength&&(_position=this._getCunrrentPos(i),this.model.maskFormat[i+_position]=="&"||this._writeBuffer(f,i)),this._keydownFlag=0,this._selectedTextKeyDown=0,n.preventDefault(),!1):(this._keypressFlag=1,!0):void 0}},_ErrorHandler:function(n){var t=this.model.showPromptChar?"_":" ";this._textbox.value==""&&(this._textbox.value=this.model.maskFormat.replace(/[9?$CANa*]/g,t));this._setCaretPosition(n);this._showAlert()},_getCunrrentPos:function(n){for(var t=0,i=0;i<=n+t;i++)this.model.maskFormat[i]=="\\"&&(t+=1);return t},_OnKeyPressHandler:function(n){if(!this.model.readOnly){if(this._raiseEvents("keyPress",null,{keyCode:n.keyCode,altKey:n.altKey,shiftKey:n.shiftKey,ctrlKey:n.ctrlKey,originalArgs:n}),this._maskLength==0)return!0;var r=n.keyCode?n.keyCode:n.charCode,f=String.fromCharCode(r),e=this.model.showPromptChar?"_":" ",i=this._seekNext(),u=t.browserInfo().name;if(this._validateChars(r,i)?(u=="mozilla"||u=="opera")&&(n.keyCode==35||n.keyCode==36||n.keyCode==37||n.keyCode==39)||(u=="mozilla"||u=="opera")&&n.ctrlKey&&(r==97||r==99||r==118||r==120)||(this._textbox.value==""&&(this._textbox.value=this.model.maskFormat.replace(/[9?$CANa*]/g,e)),this.model.maskFormat.indexOf("\\")>=0?i<this._maskLength&&this._writeBuffer(f,i):this._writeBuffer(f,i)):(u=="mozilla"||u=="opera")&&(n.keyCode==35||n.keyCode==36||n.keyCode==37||n.keyCode==39)||(u=="mozilla"||u=="opera")&&n.ctrlKey&&(r==97||r==99||r==118||r==120)||(this.model.maskFormat.indexOf("&")>=0||this.model.maskFormat.indexOf("\\")>=0?(_position=this._getCunrrentPos(i),this.model.maskFormat[i+_position]=="&"&&r==127||(this.model.maskFormat.indexOf("\\")>=0?i<this._maskLength&&(this._validateChars(r,i+_position)||this.model.maskFormat[i+_position-1]=="\\"?this._writeBuffer(f,i):this._ErrorHandler(i)):this._validateChars(r,i+_position)?this._writeBuffer(f,i):this._ErrorHandler(i))):this._ErrorHandler(i)),!this._keypressFlag&&r!=9)return this._keypressFlag=0,n.preventDefault(),!1;this._keypressFlag=0}},_OnKeyUpHandler:function(n){this._maskLength==0&&this._raiseEvents("change");this._raiseEvents("keyUp",null,{keyCode:n.keyCode,altKey:n.altKey,shiftKey:n.shiftKey,ctrlKey:n.ctrlKey,originalArgs:n});t.isNullOrUndefined(this.model.validationRules)||this._hiddenInput.valid()},_OnMouseOverHandler:function(){this._raiseEvents("mouseOver")},_OnMouseOutHandler:function(){this._raiseEvents("mouseOut")},_raiseEvents:function(i,r,u){var f,o=this.get_StrippedValue(),e=this.get_UnstrippedValue();if(this.model.value=e!==null?this.model.customCharacter==null&&n.trim(e.replace(/[\(\)-]/g,""))==""?null:e:null,i=="change")if(this.previousValue!=this.model.value)this.previousValue=this.model.value;else if(this._focusValue==this.model.value)return!1;f={value:e,unmaskedValue:o};i=="change"&&(f.isInteraction=!r);i=="change"&&(this._trigger("_change",f),t.isNullOrUndefined(this.model.value)?this.wrapper.removeClass("e-valid"):this.wrapper.addClass("e-valid"));u&&n.extend(!0,f,u);this._trigger(i,f);this._hiddenInput.val(o)},_OnValueChange:function(){this._textbox.value==""&&this._maskModel!=""&&(this._textbox.value=this._maskModel);this._setValue(this._textbox.value)}});t.InputMode={Password:"password",Text:"text"}})(jQuery,Syncfusion)});