UNPKG

@progress/kendo-ui

Version:

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

3 lines (2 loc) 14.2 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("kendo.core.js"),require("kendo.userevents.js"),require("kendo.floatinglabel.js"),require("kendo.html.button.js"),require("kendo.icons.js"),require("kendo.prefix-suffix-containers.chunk.js")):"function"==typeof define&&define.amd?define(["exports","kendo.core.min","kendo.userevents","kendo.floatinglabel","kendo.html.button","kendo.icons","kendo.prefix-suffix-containers.chunk"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.Numerictextbox={}),e.kendo._globals.Core,e.kendo._globals.Userevents,e.kendo._globals.Floatinglabel,e.kendo._globals.HtmlButton,e.kendo._globals.Icons,e.kendo._globals.PrefixSuffixContainersChunk)}(this,(function(e,t,n,a,o,i,r){!function(e,t){var n=window.kendo,a=n.caret,o=n.keys,i=n.html,l=n.ui,s=l.Widget,u=n._activeElement,d=n._extractFormat,p=n.parseFloat,c=n.support.placeholder,_=n.getCulture,f="change",m="disabled",v="readonly",b="k-input-inner",h="spin",x=".kendoNumericTextBox",g="mouseenter"+x+" "+("mouseleave"+x),w="k-focus",k="k-hover",y="focus",T=".",C="k-selected",A="k-disabled",L="k-invalid",E="aria-disabled",H=/^(-)?(\d*)$/,j=null,I=e.isPlainObject,O=e.extend,S=s.extend({init:function(a,o){var i,l,u,p,c,_=this,f=o&&o.step!==t;s.fn.init.call(_,a,o),o=_.options,a=_.element.on("focusout"+x,_._focusout.bind(_)).attr("role","spinbutton"),o.placeholder=o.placeholder||a.attr("placeholder"),o.inputMode=o.inputMode||a.attr("inputmode")||"text",i=_.min(a.attr("min")),l=_.max(a.attr("max")),u=_._parse(a.attr("step")),o.min===j&&i!==j&&(o.min=i),o.max===j&&l!==j&&(o.max=l),f||u===j||(o.step=u),_._initialOptions=O({},o),c=a.attr("type"),_._reset(),_._wrapper(),_._arrows(),_._validation(),_._input(),n.support.mobileOS?_._text.on("touchend"+x+" "+y+x,(function(){n.support.browser.edge?_._text.one(y+x,(function(){_._focusin()})):_._focusin(),_.selectValue()})):_._text.on(y+x,_._click.bind(_)),a.attr("aria-valuemin",o.min!==j?o.min*o.factor:o.min).attr("aria-valuemax",o.max!==j?o.max*o.factor:o.max),o.format=d(o.format),(p=o.value)==j&&(p="number"==c?parseFloat(a.val()):a.val()),_.value(p),!o.enable||a.is("[disabled]")||e(_.element).parents("fieldset").is(":disabled")?_.enable(!1):_.readonly(a.is("[readonly]")),_._label(),_._ariaLabel(_._text),_._applyCssClasses(),r.a({widget:_,wrapper:_.wrapper,options:_.options,prefixInsertBefore:_._text,suffixInsertAfter:_._validationIcon}),_.floatingLabel&&_.floatingLabel.refresh(),n.notify(_)},options:{name:"NumericTextBox",decimals:j,autoAdjust:!0,enable:!0,restrictDecimals:!1,min:j,max:j,value:j,step:1,round:!0,culture:"",format:"n",spinners:!0,placeholder:"",selectOnFocus:!1,factor:1,upArrowText:"Increase value",downArrowText:"Decrease value",label:null,size:"medium",fillMode:"solid",rounded:"medium",prefixOptions:{separator:!0},suffixOptions:{separator:!0}},events:[f,h],_editable:function(e){var t=this,n=t.element,a=e.disable,o=e.readonly,i=t._text.add(n),r=t.wrapper.off(g);t._toggleText(!0),t._upArrowEventHandler.unbind("press"),t._downArrowEventHandler.unbind("press"),n.off("keydown"+x).off("keyup"+x).off("input"+x).off("paste"+x),t._inputLabel&&t._inputLabel.off(x),o||a?(r.addClass(a?A:"").removeClass(a?"":A),i.attr(m,a).attr(v,o).attr(E,a)):(r.removeClass(A).on(g,t._toggleHover),i.prop(m,!1).prop(v,!1).attr(E,!1),t._upArrowEventHandler.bind("press",(function(e){e.preventDefault(),t._spin(1),t._upArrow.addClass(C)})),t._downArrowEventHandler.bind("press",(function(e){e.preventDefault(),t._spin(-1),t._downArrow.addClass(C)})),t.element.on("keydown"+x,t._keydown.bind(t)).on("keyup"+x,t._keyup.bind(t)).on("paste"+x,t._paste.bind(t)).on("input"+x,t._inputHandler.bind(t)),t._inputLabel&&t._inputLabel.on("click"+x,t.focus.bind(t)))},readonly:function(e){this._editable({readonly:e===t||e,disable:!1}),this.floatingLabel&&this.floatingLabel.readonly(e===t||e)},enable:function(e){this._editable({readonly:!1,disable:!(e=e===t||e)}),this.floatingLabel&&this.floatingLabel.enable(e=e===t||e)},setOptions:function(e){var n=this;s.fn.setOptions.call(n,e),n._text.prop("placeholder",n.options.placeholder),n._placeholder(n.options.placeholder),n.element.attr({"aria-valuemin":n.options.min!==j?n.options.min*n.options.factor:n.options.min,"aria-valuemax":n.options.max!==j?n.options.max*n.options.factor:n.options.max}),n.options.format=d(n.options.format),n._upArrowEventHandler.destroy(),n._upArrowEventHandler=null,n._downArrowEventHandler.destroy(),n._downArrowEventHandler=null,n._arrowsWrap.remove(),n._arrows(),n._applyCssClasses(),n._inputLabel&&(n._inputLabel.off(x),n._inputLabel.remove(),n.floatingLabel&&(n.floatingLabel.destroy(),n._floatingLabelContainer&&n.wrapper.unwrap())),n._label(),e.enable!==t||e.readonly!==t?n._editable({readonly:e.readonly,disable:!e.enable}):n._editable({readonly:n.element.attr("readonly")!==t?Boolean(n.element.attr("readonly")):n.options.readonly,disable:n.element.attr("disabled")!==t?Boolean(n.element.attr("disabled")):!n.options.enable}),e.value!==t?n.value(e.value):n._value!==t&&n.value(n._value)},destroy:function(){var e=this;e._inputLabel&&(e._inputLabel.off(x),e.floatingLabel&&e.floatingLabel.destroy()),e.element.add(e._text).add(e._upArrow).add(e._downArrow).off(x),e._upArrowEventHandler.destroy(),e._downArrowEventHandler.destroy(),e._form&&e._form.off("reset",e._resetHandler),s.fn.destroy.call(e)},min:function(e){return this._option("min",e)},max:function(e){return this._option("max",e)},step:function(e){return this._option("step",e)},value:function(e){var n=this;if(e===t)return n._value;(e=n._parse(e))!==n._adjust(e)&&(e=j),n._update(e),n._old=n._value,n.floatingLabel&&n.floatingLabel.refresh()},focus:function(){this._focusin(),this.selectValue()},_adjust:function(e){let t=this.options,n=t.min,a=t.max,o=t.autoAdjust;return e!==j&&o?(n!==j&&e<n?e=n:a!==j&&e>a&&(e=a),e):e},_arrows:function(){var t,a=this,o=function(){clearTimeout(a._spinning),t.removeClass(C)},i=a.options,r=i.spinners,l=a.element;(t=l.siblings(".k-icon-button"))[0]||(t=e(F("increase",i.upArrowText,i)+F("decrease",i.downArrowText,i)).appendTo(a.wrapper),a._arrowsWrap=t.wrapAll('<span class="k-input-spinner k-spin-button"/>').parent()),r||t.parent().toggle(r),a._upArrow=t.eq(0),a._upArrowEventHandler=new n.UserEvents(a._upArrow,{release:o}),a._downArrow=t.eq(1),a._downArrowEventHandler=new n.UserEvents(a._downArrow,{release:o})},_validation:function(){var t=this.element;this._validationIcon=e(n.ui.icon({icon:"exclamation-circle",iconClass:"k-input-validation-icon k-hidden"})).insertAfter(t)},_blur:function(){var e=this;e._toggleText(!0),e._change(e.element.val())},_click:function(e){var t=this;clearTimeout(t._focusing),t._focusing=setTimeout((function(){var n,o,i,r=e.target,l=a(r)[0],s=r.value.substring(0,l),u=t._format(t.options.format),d=u[","],p=0;d&&(o=new RegExp("\\"+d,"g"),i=new RegExp("(-)?("+u.symbol+")?([\\d\\"+d+"]+)(\\"+u[T]+")?(\\d+)?")),i&&(n=i.exec(s)),n&&(p=n[0].replace(o,"").length,-1!=s.indexOf("(")&&t._value<0&&p++),t._focusin(),a(t.element[0],p),t.selectValue()}))},selectValue:function(){this.options.selectOnFocus&&this.element[0].select()},_getFactorValue:function(e){var t=this.options.factor;return t&&1!==t&&null!==(e=n.parseFloat(e))&&(e/=t),e},_change:function(e){var t=this;e=t._getFactorValue(e),t._update(e),e=t._value,t._old!=e&&(t._old=e,t._typing||t.element.trigger(f),t.trigger(f)),t._typing=!1},_culture:function(e){return e||_(this.options.culture)},_focusin:function(){var e=this;e.wrapper.addClass(w),e._toggleText(!1),e.element.trigger("focus")},_focusout:function(){var e=this;clearTimeout(e._focusing),e.wrapper.removeClass(w).removeClass(k),e._blur(),e._removeInvalidState()},_format:function(e,t){var n=this._culture(t).numberFormat;return(e=e.toLowerCase()).indexOf("c")>-1?n=n.currency:e.indexOf("p")>-1&&(n=n.percent),n},_input:function(){var t,a=this,o=a.options,i=a.element.addClass(b).show()[0],r=i.accessKey,l=a.wrapper.find(T+b);a.element.attr("inputmode",o.inputMode),(t=l.first()).length<2&&(t=e('<input type="text"/>').attr(n.attr("validate"),"false").insertBefore(i));try{i.setAttribute("type","text")}catch(e){i.type="text"}t[0].title=i.title,t[0].tabIndex=i.tabIndex,t[0].style.cssText=i.style.cssText,t.prop("placeholder",o.placeholder),r&&(t.attr("accesskey",r),i.accessKey=""),a._text=t.addClass(i.className).attr({role:"spinbutton","aria-valuemin":o.min!==j?o.min*o.factor:o.min,"aria-valuemax":o.max!==j?o.max*o.factor:o.max,autocomplete:"off"})},_keydown:function(e){var t=this,n=e.keyCode;n===o.NUMPAD_DOT&&(t._numPadDot=!0),n!=o.DOWN?n!=o.UP?n!=o.ENTER?(n!=o.TAB&&(t._typing=!0),t._cachedCaret=a(t.element)):t._change(t.element.val()):t._step(1):t._step(-1)},_keyup:function(){this._removeInvalidState()},_inputHandler:function(){var e=this.element,t=e.val(),n=this.options.min,o=this._format(this.options.format),i=o[T],r=null!==n&&n>=0&&"-"===t.charAt(0);this._numPadDot&&i!==T&&(t=t.replace(T,i),this.element.val(t),this._numPadDot=!1),this._isPasted&&this._parse(t)&&(t=this._parse(t).toString().replace(T,o[T])),this._numericRegex(o).test(t)&&!r?this._oldText=t:(this._blinkInvalidState(),this.element.val(this._oldText),this._cachedCaret&&(a(e,this._cachedCaret[0]),this._cachedCaret=null)),this._isPasted=!1},_blinkInvalidState:function(){var e=this;e._addInvalidState(),clearTimeout(e._invalidStateTimeout),e._invalidStateTimeout=setTimeout(e._removeInvalidState.bind(e),100)},_addInvalidState:function(){this.wrapper.addClass(L),this._validationIcon.removeClass("k-hidden")},_removeInvalidState:function(){var e=this;e.wrapper.removeClass(L),e._validationIcon.addClass("k-hidden"),e._invalidStateTimeout=null},_numericRegex:function(e){var t=this,n=e[T],a=t.options.decimals,o="*";return n===T&&(n="\\"+n),a===j&&(a=e.decimals),0===a&&t.options.restrictDecimals?H:(t.options.restrictDecimals&&(o="{0,"+a+"}"),t._separator===n&&t._oldPrecision===a||(t._separator=n,t._floatRegExp=new RegExp("^(-)?(((\\d+("+n+"\\d"+o+")?)|("+n+"\\d"+o+")))?$"),t._oldPrecision=a),t._floatRegExp)},_paste:function(e){var t=this,n=e.target,a=n.value,o=t._format(t.options.format);t._isPasted=!0,setTimeout((function(){var e=t._parse(n.value);e===j?t._update(a):(n.value=e.toString().replace(T,o[T]),t._adjust(e)===e&&t._numericRegex(o).test(n.value)||(a=t._getFactorValue(n.value),t._update(a)))}))},_option:function(e,n){var a=this,o=a.element,i=a.options;if(n===t)return i[e];((n=a._parse(n))||"step"!==e)&&(i[e]=n,o.add(a._text).attr("aria-value"+e,n),o.attr(e,n))},_spin:function(e,t){var n=this;t=t||500,clearTimeout(n._spinning),n._spinning=setTimeout((function(){n._spin(e,50)}),t),n._step(e)},_step:function(e){var t=this,n=t.element,a=t._value,o=t._parse(n.val())||0,i=t.options.decimals||2;u()!=n[0]&&t._focusin(),t.options.factor&&o&&(o/=t.options.factor),o=+(o+t.options.step*e).toFixed(i),o=t._adjust(o),t._update(o),t._typing=!1,a!==o&&t.trigger(h)},_toggleHover:function(t){e(t.currentTarget).toggleClass(k,"mouseenter"===t.type)},_toggleText:function(e){var t=this;t._text.toggle(e),e?t._text.removeAttr("aria-hidden"):t._text.attr("aria-hidden","true"),t.element.toggle(!e)},_parse:function(e,t){return p(e,this._culture(t),this.options.format)},_round:function(e,t){return(this.options.round?n._round:P)(e,t)},_update:function(e){var t,a,o=this,i=o.options,r=i.factor,l=i.format,s=i.decimals,u=o._culture(),d=o._format(l,u);s===j&&(s=d.decimals),(a=(e=o._parse(e,u))!==j)&&(e=parseFloat(o._round(e,s),10)),o._value=e=o._adjust(e),o._placeholder(n.toString(e,l,u)),a?(r&&(e=parseFloat(o._round(e*r,s),10)),-1!==(e=e.toString()).indexOf("e")&&(e=o._round(+e,s)),t=e,e=e.replace(T,d[T])):(e=null,t=null),o.element.val(e),o._oldText=e,o.element.add(o._text).attr("aria-valuenow",t)},_placeholder:function(e){var t=this._text;t.val(e),c||e||t.val(this.options.placeholder),t.attr("title",this.element.attr("title")||t.val())},_label:function(){var a,o,i=this,r=i.element,l=i.options,s=r.attr("id");null!==l.label&&(a=!!I(l.label)&&l.label.floating,o=I(l.label)?l.label.content:l.label,a&&(i._floatingLabelContainer=i.wrapper.wrap("<span></span>").parent(),i.floatingLabel=new n.ui.FloatingLabel(i._floatingLabelContainer,{widget:i})),n.isFunction(o)&&(o=o.call(i)),o||(o=""),s||(s=l.name+"_"+n.guid(),r.attr("id",s)),i._inputLabel=e("<label class='"+(a?"k-floating-label":"k-label k-input-label")+"' for='"+s+"'>"+o+"</label>'")[a?"insertAfter":"insertBefore"](i.wrapper),i.element.attr("disabled")===t&&i.element.attr("readonly")===t&&i._inputLabel.on("click"+x,i.focus.bind(i)))},_wrapper:function(){var e,t=this.element,n=t[0];(e=t.parents(".k-numerictextbox")).is("span.k-numerictextbox")||(e=t.hide().wrap("<span/>").parent()),e[0].style.cssText=n.style.cssText,n.style.width="",this.wrapper=e.addClass("k-numerictextbox k-input").addClass(n.className).removeClass("input-validation-error").css("display","")},_reset:function(){var t=this,n=t.element,a=n.attr("form"),o=a?e("#"+a):n.closest("form");o[0]&&(t._resetHandler=function(){setTimeout((function(){t.value(n[0].value),t.max(t._initialOptions.max),t.min(t._initialOptions.min)}))},t._form=o.on("reset",t._resetHandler))}});function F(e,t,n){var a="increase"===e?"caret-alt-up":"caret-alt-down",o="increase"===e?"increase":"decrease";return i.renderButton('<button role="button" tabindex="-1" unselectable="on" class="k-spinner-'+o+'" aria-label="'+t+'" title="'+t+'"></button>',O({},n,{icon:a,shape:null,rounded:null}))}function P(e,t){var n=parseFloat(e,10).toString().split(T);return n[1]&&(n[1]=n[1].substring(0,t)),n.join(T)}n.cssProperties.registerPrefix("NumericTextBox","k-input-"),n.cssProperties.registerValues("NumericTextBox",[{prop:"rounded",values:n.cssProperties.roundedValues.concat([["full","full"]])}]),l.plugin(S)}(window.kendo.jQuery);var l=kendo;e.__meta__={id:"numerictextbox",name:"NumericTextBox",category:"web",description:"The NumericTextBox widget can format and display numeric, percentage or currency textbox.",depends:["core","userevents","floatinglabel","html.button","icons","prefix-suffix-containers.chunk"]},e.default=l,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=kendo.numerictextbox.min.js.map