UNPKG

@progress/kendo-ui

Version:

This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.

1 lines 9.56 kB
module.exports=function(a){var n={};function i(e){if(n[e])return n[e].exports;var t=n[e]={exports:{},id:e,loaded:!1};return a[e].call(t.exports,t,t.exports,i),t.loaded=!0,t.exports}return i.m=a,i.c=n,i.p="",i(0)}({0:function(e,t,a){e.exports=a(1329)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1051:function(e,t){e.exports=require("./kendo.core")},1329:function(e,t,a){var n;a(3),a=[a(1051),a(1330)],void 0===(t="function"==typeof(n=function(){var e={id:"maskedtextbox",name:"MaskedTextBox",category:"web",description:"The MaskedTextBox widget allows to specify a mask type on an input field.",depends:["core","floatinglabel"]},s=window.kendo.jQuery,p=void 0,t=window,m=t.Math.min,_=t.kendo,h=_.caret,a=_.keys,d=_.ui,r=d.Widget,l=".kendoMaskedTextBox",f=s.isPlainObject,o=window.setTimeout,v="k-label k-input-label",c="k-disabled",g="k-invalid",k="k-focus",b="disabled",w="readonly",n="change",y="mouseup",i="drop",C="keydown",x="paste",I="input";function u(e){return e+l}var L=u(_.support.propertyChangeEvent?"propertychange":I);function P(e,t){var a=0;while(a<t.length){if(e[a]!==t[a])break;a++}return a}var E=r.extend({init:function(t,e){var a=this;var n;r.fn.init.call(a,t,e);a._rules=s.extend({},a.rules,a.options.rules);t=a.element;n=t[0];a._wrapper();a._tokenize();a._form();a.element.addClass("k-input-inner").attr("autocomplete","off").on("focus"+l,function(){var e=n.value;if(!e)n.value=a._old=a._emptyMask;else a._togglePrompt(true);a._oldValue=e;a.wrapper.addClass(k);a._timeoutId=o(function(){h(t,0,e?a._maskLength:0)})}).on("focusout"+l,function(){var e=t.val();clearTimeout(a._timeoutId);n.value=a._old="";if(e!==a._emptyMask)n.value=a._old=e;a.wrapper.removeClass(k);a._change();a._togglePrompt()});if(a.options.mask&&a.options.mask.length>0)a.element.attr("aria-placeholder",a.options.mask);var i=t.is("[disabled]")||s(a.element).parents("fieldset").is(":disabled");if(i)a.enable(false);else a.readonly(t.is("[readonly]"));a.value(a.options.value||t.val());a._validationIcon=s("<span class='k-input-validation-icon k-icon k-i-warning k-hidden'></span>").insertAfter(t);a._label();a._applyCssClasses();_.notify(a)},options:{name:"MaskedTextBox",clearPromptChar:false,unmaskOnPost:false,promptChar:"_",culture:"",rules:{},value:"",mask:"",label:null,size:"medium",fillMode:"solid",rounded:"medium"},events:[n],rules:{0:/\d/,9:/\d|\s/,"#":/\d|\s|\+|\-/,L:/[a-zA-Z]/,"?":/[a-zA-Z]|\s/,"&":/\S/,C:/./,A:/[a-zA-Z0-9]/,a:/[a-zA-Z0-9]|\s/},setOptions:function(e){var t=this;r.fn.setOptions.call(t,e);t._rules=s.extend({},t.rules,t.options.rules);t._tokenize();this._unbindInput();this._bindInput();t.value(t.element.val())},destroy:function(){var e=this;if(e.floatingLabel)e.floatingLabel.destroy();e.element.off(l);if(e._formElement){e._formElement.off("reset",e._resetHandler);e._formElement.off("submit",e._submitHandler)}r.fn.destroy.call(e)},raw:function(){var e=this._unmask(this.element.val(),0);return e.replace(new RegExp(T(this.options.promptChar),"g"),"")},value:function(e){var t=this.element;var a=this._emptyMask;if(e===p)return this.element.val();if(e===null)e="";if(!a){this._oldValue=e;t.val(e);return}e=this._unmask(e+"");t.val(e?a:"");this._mask(0,this._maskLength,e);this._unmaskedValue=null;e=t.val();this._oldValue=e;if(_._activeElement()!==t)if(e===a)t.val("");else this._togglePrompt()},_togglePrompt:function(e){var t=this.element[0];var a=t.value;if(this.options.clearPromptChar){if(!e)a=a.replace(new RegExp(T(this.options.promptChar),"g")," ");else a=this._oldValue;t.value=this._old=a}},readonly:function(e){var t=this;this._editable({readonly:e===p?true:e,disable:false});if(t.floatingLabel)t.floatingLabel.readonly(e===p?true:e)},enable:function(e){var t=this;this._editable({readonly:false,disable:!(e=e===p?true:e)});if(t.floatingLabel)t.floatingLabel.enable(e=e===p?true:e)},_bindInput:function(){var e=this;if(e._maskLength){if(e.options.$angular)e.element.off(I);e.element.on(u(C),e._keydown.bind(e)).on(u(i),e._drop.bind(e)).on(u(n),e._trackChange.bind(e)).on(L,e._inputHandler.bind(e));if(_.support.browser.msie){var t=_.support.browser.version;if(t>8&&t<11){var a=[u(y),u(i),u(C),u(x)].join(" ");e.element.on(a,e._legacyIEInputHandler.bind(e))}}}},_unbindInput:function(){var e=[L,u(C),u(y),u(i),u(x)].join(" ");this.element.off(e)},_editable:function(e){var t=this;var a=t.element;var n=t.wrapper;var i=e.disable;var r=e.readonly;t._unbindInput();if(!r&&!i){a.prop(b,false).prop(w,false);n.removeClass(c);t._bindInput()}else{a.attr(b,i).attr(w,r);n.toggleClass(c,i)}},_change:function(){var e=this;var t=e.value();if(t!==e._oldValue){e._oldValue=t;e.trigger(n);e.element.trigger(n)}else if(t===""&&e.__changing)e.element.trigger(n)},inputChange:function(e){var t=this;var a=t._old;var n=t.element[0];var i=n.value;var d=h(n);var r=d[1];var s=i.length-a.length;var l=_.support.mobileOS;if(t.__dropping&&s<0)return;if(s===-1&&l.android&&l.browser==="chrome")e=true;var o=m(r,P(i,a));var f=i.substring(o,r);n.value=i.substring(0,o)+t._emptyMask.substring(o);var u=t._mask(o,r,f);var p=t._trimStartPromptChars(i.substring(r),m(s,u-o));var v=t._unmask(p,a.length-p.length);t._mask(u,u,v);if(e)u=t._findCaretPosBackwards(o);h(n,u);t.__dropping=false},_trimStartPromptChars:function(e,t){var a=this.options.promptChar;while(t-- >0&&e.indexOf(a)===0)e=e.substring(1);return e},_findCaretPosBackwards:function(e){var t=this._find(e,true);if(t<e)t+=1;return t},_inputHandler:function(){if(_._activeElement()!==this.element[0])return;this.inputChange(this.__backward)},_legacyIEInputHandler:function(e){var t=this;var a=t.element[0];var n=a.value;var i=e.type;t.__pasting=i==="paste";o(function(){if(i==="mouseup"&&t.__pasting)return;if(a.value&&a.value!==n)t.inputChange(t.__backward)})},_trackChange:function(){var e=this;e.__changing=true;o(function(){e.__changing=false})},_form:function(){var e=this;var t=e.element;var a=t.attr("form");var n=a?s("#"+a):t.closest("form");if(n[0]){e._resetHandler=function(){o(function(){e.value(t[0].value)})};e._submitHandler=function(){e.element[0].value=e._old=e.raw()};if(e.options.unmaskOnPost)n.on("submit",e._submitHandler);e._formElement=n.on("reset",e._resetHandler)}},_keydown:function(e){var t=e.keyCode;this.__backward=t===a.BACKSPACE;if(t===a.ENTER)this._change()},_drop:function(){this.__dropping=true},_find:function(e,t){var a=this.element.val()||this._emptyMask;var n=1;if(t===true)n=-1;while(e>-1||e<=this._maskLength){if(a.charAt(e)!==this.tokens[e])return e;e+=n}return-1},_mask:function(e,t,a,d){var n=this.element[0];var i=n.value||this._emptyMask;var f=this.options.promptChar;var r;var s=0;var l;var o;var u;e=this._find(e,d);if(e>t)t=e;l=this._unmask(i.substring(t),t);a=this._unmask(a,e);r=a.length;if(a)l=l.replace(new RegExp("^_{0,"+r+"}"),"");a+=l;i=i.split("");o=a.charAt(s);while(e<this._maskLength){i[e]=o||f;o=a.charAt(++s);if(u===p&&s>r)u=e;e=this._find(e+1)}n.value=this._old=i.join("");if(_._activeElement()===n){if(u===p)u=this._maskLength;h(n,u)}return u},_unmask:function(e,t){if(!e)return"";if(this._unmaskedValue===e)return this._unmaskedValue;e=(e+"").split("");var a;var n;var i=0;var r=t||0;var s=this.options.promptChar;var l=e.length;var o=this.tokens.length;var u="";while(r<o){a=e[i];n=this.tokens[r];if(a===n||a===s){u+=a===s?s:"";i+=1;r+=1}else if(typeof n!=="string"){if(n&&n.test&&n.test(a)||_.isFunction(n)&&n(a)){u+=a;r+=1}else if(l===1)this._blinkInvalidState();i+=1}else r+=1;if(i>=l)break}this._unmaskedValue=u;return u},_label:function(){var e=this;var t=e.element;var a=e.options;var n=t.attr("id");var i;var r;if(a.label!==null){i=f(a.label)?a.label.floating:false;r=f(a.label)?a.label.content:a.label;if(i){e._floatingLabelContainer=e.wrapper.wrap("<span></span>").parent();e.floatingLabel=new _.ui.FloatingLabel(e._floatingLabelContainer,{widget:e})}if(_.isFunction(r))r=r.call(e);if(!r)r="";if(!n){n=a.name+"_"+_.guid();t.attr("id",n)}e._inputLabel=s("<label class='"+v+"' for='"+n+"'>"+r+"</label>'").insertBefore(e.wrapper)}},_wrapper:function(){var e=this;var t=e.element;var a=t[0];var n=t.wrap("<span class='k-input k-maskedtextbox'></span>").parent();n[0].style.cssText=a.style.cssText;a.style.width="100%";e.wrapper=n.addClass(a.className).removeClass("input-validation-error")},_blinkInvalidState:function(){var e=this;e._addInvalidState();clearTimeout(e._invalidStateTimeout);e._invalidStateTimeout=o(e._removeInvalidState.bind(e),100)},_addInvalidState:function(){var e=this;e.wrapper.addClass(g);e._validationIcon.removeClass("k-hidden")},_removeInvalidState:function(){var e=this;e.wrapper.removeClass(g);e._validationIcon.addClass("k-hidden");e._invalidStateTimeout=null},_tokenize:function(){var e=[];var t=0;var a=this.options.mask||"";var n=a.split("");var d=n.length;var i=0;var r;var s;var l="";var f=this.options.promptChar;var o=_.getCulture(this.options.culture).numberFormat;var p=this._rules;for(;i<d;i++){r=n[i];s=p[r];if(s){e[t]=s;l+=f;t+=1}else{if(r==="."||r===",")r=o[r];else if(r==="$")r=o.currency.symbol;else if(r==="\\"){i+=1;r=n[i]}r=r.split("");for(var u=0,v=r.length;u<v;u++){e[t]=r[u];l+=r[u];t+=1}}}this.tokens=e;this._emptyMask=l;this._maskLength=l.length}});function T(e){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}return _.cssProperties.registerPrefix("MaskedTextBox","k-input-"),_.cssProperties.registerValues("MaskedTextBox",[{prop:"rounded",values:_.cssProperties.roundedValues.concat([["full","full"]])}]),d.plugin(E),window.kendo})?n.apply(t,a):n)||(e.exports=t)},1330:function(e,t){e.exports=require("./kendo.floatinglabel")}});