UNPKG

kendo-ui-core

Version:
3 lines (2 loc) 10 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("kendo.core.js"),require("kendo.floatinglabel.js"),require("kendo.icons.js")):"function"==typeof define&&define.amd?define(["kendo.core.min","kendo.floatinglabel.min","kendo.icons.min"],t):((e="undefined"!=typeof globalThis?globalThis:e||self).kendomaskedtextbox=e.kendomaskedtextbox||{},e.kendomaskedtextbox.js=t())}(this,(function(){let e=kendo.jQuery;function t({widget:t,wrapper:n,options:i,prefixInsertBefore:a,suffixInsertAfter:o}){var s,r,l=i.prefixOptions,u=i.suffixOptions,p=l.template||l.icon,d=u.template||u.icon,f=(o=o||a,i.layoutFlow),m=f?"vertical"==f?"horizontal":"vertical":"horizontal",h=`<span class="k-input-separator k-input-separator-${"vertical"==f?"horizontal":"vertical"}"></span>`;l&&p&&((s=n.children(".k-input-prefix"))[0]||(s=e(`<span class="k-input-prefix k-input-prefix-${m}" />`),a?s.insertBefore(a):s.prependTo(n)),l.icon&&s.html(kendo.html.renderIcon({icon:l.icon})),l.template&&s.html(kendo.template(l.template)({})),l.separator&&e(h).insertAfter(s)),u&&d&&((r=n.children(".k-input-suffix"))[0]||(r=e(`<span class="k-input-suffix k-input-suffix-${m}" />`).appendTo(n),o?r.insertAfter(o):r.appendTo(n)),u.icon&&r.html(kendo.html.renderIcon({icon:u.icon})),u.template&&r.html(kendo.template(u.template)({})),u.separator&&e(h).insertBefore(r)),t._prefixContainer=s,t._suffixContainer=r}return function(e,n){var i=window,a=i.Math.min,o=i.kendo,s=o.caret,r=o.keys,l=o.ui,u=l.Widget,p=".kendoMaskedTextBox",d=e.isPlainObject,f=window.setTimeout,m="k-disabled",h="k-invalid",_="k-focus",c="disabled",v="readonly",k="change",g="mouseup",b="drop",x="keydown",w="paste";function y(e){return e+p}var C=y(o.support.propertyChangeEvent?"propertychange":"input");var I=u.extend({init:function(n,i){var a,r=this;u.fn.init.call(r,n,i),r._rules=e.extend({},r.rules,r.options.rules),n=r.element,a=n[0],r._wrapper(),r._tokenize(),r._form(),r.element.addClass("k-input-inner").attr("autocomplete","off").on("focus"+p,(function(){var e=a.value;e?r._togglePrompt(!0):a.value=r._old=r._emptyMask,r._oldValue=e,r.wrapper.addClass(_),r._timeoutId=f((function(){s(n,0,e?r._maskLength:0)}))})).on("focusout"+p,(function(){var e=n.val();clearTimeout(r._timeoutId),a.value=r._old="",e!==r._emptyMask&&(a.value=r._old=e),r.wrapper.removeClass(_),r._change(),r._togglePrompt()})),r.options.mask&&r.options.mask.length>0&&r.element.attr("aria-placeholder",r.options.mask),n.is("[disabled]")||e(r.element).parents("fieldset").is(":disabled")?r.enable(!1):r.readonly(n.is("[readonly]")),r._validationIcon=e(o.ui.icon({icon:"exclamation-circle",iconClass:"k-input-validation-icon k-hidden"})).insertAfter(n),r.value(r.options.value||n.val()),r._label(),r._applyCssClasses(),t({widget:r,wrapper:r.wrapper,options:r.options,suffixInsertAfter:r._validationIcon}),r.floatingLabel&&r.floatingLabel.refresh(),o.notify(r)},options:{name:"MaskedTextBox",clearPromptChar:!1,unmaskOnPost:!1,promptChar:"_",culture:"",rules:{},value:"",mask:"",label:null,size:"medium",fillMode:"solid",rounded:"medium",prefixOptions:{separator:!0},suffixOptions:{separator:!0}},events:[k],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(t){var n=this;u.fn.setOptions.call(n,t),n._rules=e.extend({},n.rules,n.options.rules),n._tokenize(),this._unbindInput(),this._bindInput(),n.value(n.element.val())},destroy:function(){var e=this;e.floatingLabel&&e.floatingLabel.destroy(),e.element.off(p),e._formElement&&(e._formElement.off("reset",e._resetHandler),e._formElement.off("submit",e._submitHandler)),u.fn.destroy.call(e)},raw:function(){return this._unmask(this.element.val(),0).replace(new RegExp(L(this.options.promptChar),"g"),"")},value:function(e){var t=this.element,i=this._emptyMask;return e===n?this.element.val():(null===e&&(e=""),i?(e=this._unmask(e+""),t.val(e?i:""),this._mask(0,this._maskLength,e),this._unmaskedValue=null,e=t.val(),this._oldValue=e,o._activeElement()!==t&&(e===i?t.val(""):this._togglePrompt()),void(this.floatingLabel&&this.floatingLabel.refresh())):(this._oldValue=e,void t.val(e)))},_togglePrompt:function(e){var t=this.element[0],n=t.value;this.options.clearPromptChar&&(n=e?this._oldValue:n.replace(new RegExp(L(this.options.promptChar),"g")," "),t.value=this._old=n)},readonly:function(e){this._editable({readonly:e===n||e,disable:!1}),this.floatingLabel&&this.floatingLabel.readonly(e===n||e)},enable:function(e){this._editable({readonly:!1,disable:!(e=e===n||e)}),this.floatingLabel&&this.floatingLabel.enable(e=e===n||e)},_bindInput:function(){var e=this;if(e._maskLength&&(e.element.on(y(x),e._keydown.bind(e)).on(y(b),e._drop.bind(e)).on(y(k),e._trackChange.bind(e)).on(C,e._inputHandler.bind(e)),o.support.browser.msie)){var t=o.support.browser.version;if(t>8&&t<11){var n=[y(g),y(b),y(x),y(w)].join(" ");e.element.on(n,e._legacyIEInputHandler.bind(e))}}},_unbindInput:function(){var e=[C,y(x),y(g),y(b),y(w)].join(" ");this.element.off(e)},_editable:function(e){var t=this,n=t.element,i=t.wrapper,a=e.disable,o=e.readonly;t._unbindInput(),o||a?(n.attr(c,a).attr(v,o),i.toggleClass(m,a)):(n.prop(c,!1).prop(v,!1),i.removeClass(m),t._bindInput())},_change:function(){var e=this,t=e.value();t!==e._oldValue?(e._oldValue=t,e.trigger(k),e.element.trigger(k)):""===t&&e.__changing&&e.element.trigger(k)},inputChange:function(e){var t=this,n=t._old,i=t.element[0],r=i.value,l=s(i)[1],u=r.length-n.length,p=o.support.mobileOS;if(!(t.__dropping&&u<0)){-1===u&&p.android&&"chrome"===p.browser&&(e=!0);var d=a(l,function(e,t){for(var n=0;n<t.length&&e[n]===t[n];)n++;return n}(r,n)),f=r.substring(d,l);i.value=r.substring(0,d)+t._emptyMask.substring(d);var m=t._mask(d,l,f),h=t._trimStartPromptChars(r.substring(l),a(u,m-d)),_=t._unmask(h,n.length-h.length);t._mask(m,m,_),e&&(m=t._findCaretPosBackwards(d)),s(i,m),t.__dropping=!1}},_trimStartPromptChars:function(e,t){for(var n=this.options.promptChar;t-- >0&&0===e.indexOf(n);)e=e.substring(1);return e},_findCaretPosBackwards:function(e){var t=this._find(e,!0);return t<e&&(t+=1),t},_inputHandler:function(){o._activeElement()===this.element[0]&&this.inputChange(this.__backward)},_legacyIEInputHandler:function(e){var t=this,n=t.element[0],i=n.value,a=e.type;t.__pasting="paste"===a,f((function(){"mouseup"===a&&t.__pasting||n.value&&n.value!==i&&t.inputChange(t.__backward)}))},_trackChange:function(){var e=this;e.__changing=!0,f((function(){e.__changing=!1}))},_form:function(){var t=this,n=t.element,i=n.attr("form"),a=i?e("#"+i):n.closest("form");a[0]&&(t._resetHandler=function(){f((function(){t.value(n[0].value)}))},t._submitHandler=function(){t.element[0].value=t._old=t.raw()},t.options.unmaskOnPost&&a.on("submit",t._submitHandler),t._formElement=a.on("reset",t._resetHandler))},_keydown:function(e){var t=e.keyCode;this.__backward=t===r.BACKSPACE,t===r.ENTER&&this._change()},_drop:function(){this.__dropping=!0},_find:function(e,t){var n=this.element.val()||this._emptyMask,i=1;for(!0===t&&(i=-1);e>-1||e<=this._maskLength;){if(n.charAt(e)!==this.tokens[e])return e;e+=i}return-1},_mask:function(e,t,i,a){var r,l,u,p,d=this.element[0],f=d.value||this._emptyMask,m=this.options.promptChar,h=0;for((e=this._find(e,a))>t&&(t=e),l=this._unmask(f.substring(t),t),r=(i=this._unmask(i,e)).length,i&&(l=l.replace(new RegExp("^_{0,"+r+"}"),"")),i+=l,f=f.split(""),u=i.charAt(h);e<this._maskLength;)f[e]=u||m,u=i.charAt(++h),p===n&&h>r&&(p=e),e=this._find(e+1);return d.value=this._old=f.join(""),o._activeElement()===d&&(p===n&&(p=this._maskLength),s(d,p)),p},_unmask:function(e,t){if(!e)return"";if(this._unmaskedValue===e)return this._unmaskedValue;var n,i;e=(e+"").split("");for(var a=0,s=t||0,r=this.options.promptChar,l=e.length,u=this.tokens.length,p="";s<u&&((n=e[a])===(i=this.tokens[s])||n===r?(p+=n===r?r:"",a+=1,s+=1):"string"!=typeof i?(i&&i.test&&i.test(n)||o.isFunction(i)&&i(n)?(p+=n,s+=1):1===l&&this._blinkInvalidState(),a+=1):s+=1,!(a>=l)););return this._unmaskedValue=p,p},_label:function(){var t,n,i=this,a=i.element,s=i.options,r=a.attr("id");null!==s.label&&(t=!!d(s.label)&&s.label.floating,n=d(s.label)?s.label.content:s.label,t&&(i._floatingLabelContainer=i.wrapper.wrap("<span></span>").parent(),i.floatingLabel=new o.ui.FloatingLabel(i._floatingLabelContainer,{widget:i})),o.isFunction(n)&&(n=n.call(i)),n||(n=""),r||(r=s.name+"_"+o.guid(),a.attr("id",r)),i._inputLabel=e("<label class='"+(t?"k-floating-label":"k-label k-input-label")+"' for='"+r+"'>"+n+"</label>'")[t?"insertAfter":"insertBefore"](i.wrapper))},_wrapper:function(){var e=this.element,t=e[0],n=e.wrap("<span class='k-input k-maskedtextbox'></span>").parent();n[0].style.cssText=t.style.cssText,t.style.width="100%",this.wrapper=n.addClass(t.className).removeClass("input-validation-error")},_blinkInvalidState:function(){var e=this;e._addInvalidState(),clearTimeout(e._invalidStateTimeout),e._invalidStateTimeout=f(e._removeInvalidState.bind(e),100)},_addInvalidState:function(){this.wrapper.addClass(h),this._validationIcon.removeClass("k-hidden")},_removeInvalidState:function(){var e=this;e.wrapper.removeClass(h),e._validationIcon.addClass("k-hidden"),e._invalidStateTimeout=null},_tokenize:function(){for(var e,t,n=[],i=0,a=(this.options.mask||"").split(""),s=a.length,r=0,l="",u=this.options.promptChar,p=o.getCulture(this.options.culture).numberFormat,d=this._rules;r<s;r++)if(t=d[e=a[r]])n[i]=t,l+=u,i+=1;else{"."===e||","===e?e=p[e]:"$"===e?e=p.currency.symbol:"\\"===e&&(e=a[r+=1]);for(var f=0,m=(e=e.split("")).length;f<m;f++)n[i]=e[f],l+=e[f],i+=1}this.tokens=n,this._emptyMask=l,this._maskLength=l.length}});function L(e){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}o.cssProperties.registerPrefix("MaskedTextBox","k-input-"),o.cssProperties.registerValues("MaskedTextBox",[{prop:"rounded",values:o.cssProperties.roundedValues.concat([["full","full"]])}]),l.plugin(I)}(window.kendo.jQuery),kendo})); //# sourceMappingURL=kendo.maskedtextbox.min.js.map