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) 12.7 kB
!function(e){"function"==typeof define&&define.amd?define(["kendo.core.min","kendo.userevents.min","kendo.floatinglabel.min","kendo.html.button.min","kendo.icons.min"],e):e()}((function(){!function(e,t){var n=window.kendo,a=n.caret,i=n.keys,o=n.html,r=n.ui,l=r.Widget,s=n._activeElement,u=n._extractFormat,d=n.parseFloat,p=n.support.placeholder,c=n.getCulture,_="change",f="disabled",m="readonly",v="k-input-inner",h="spin",b=".kendoNumericTextBox",g="mouseenter"+b+" mouseleave.kendoNumericTextBox",x="k-focus",w="k-hover",y="focus",k=".",T="k-selected",C="k-disabled",A="k-invalid",L="aria-disabled",E=/^(-)?(\d*)$/,H=null,S=e.isPlainObject,F=e.extend,O=l.extend({init:function(a,i){var o,r,s,d,p,c=this,_=i&&i.step!==t;l.fn.init.call(c,a,i),i=c.options,a=c.element.on("focusout"+b,c._focusout.bind(c)).attr("role","spinbutton"),i.placeholder=i.placeholder||a.attr("placeholder"),o=c.min(a.attr("min")),r=c.max(a.attr("max")),s=c._parse(a.attr("step")),i.min===H&&o!==H&&(i.min=o),i.max===H&&r!==H&&(i.max=r),_||s===H||(i.step=s),c._initialOptions=F({},i),p=a.attr("type"),c._reset(),c._wrapper(),c._arrows(),c._validation(),c._input(),n.support.mobileOS?c._text.on("touchend"+b+" "+y+b,(function(){n.support.browser.edge?c._text.one(y+b,(function(){c._focusin()})):c._focusin(),c.selectValue()})):c._text.on(y+b,c._click.bind(c)),a.attr("aria-valuemin",i.min!==H?i.min*i.factor:i.min).attr("aria-valuemax",i.max!==H?i.max*i.factor:i.max),i.format=u(i.format),(d=i.value)==H&&(d="number"==p?parseFloat(a.val()):a.val()),c.value(d),!i.enable||a.is("[disabled]")||e(c.element).parents("fieldset").is(":disabled")?c.enable(!1):c.readonly(a.is("[readonly]")),c.angular("compile",(function(){return{elements:c._text.get()}})),c._label(),c._ariaLabel(c._text),c._applyCssClasses(),n.notify(c)},options:{name:"NumericTextBox",decimals:H,enable:!0,restrictDecimals:!1,min:H,max:H,value:H,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"},events:[_,h],_editable:function(e){var t=this,n=t.element,a=e.disable,i=e.readonly,o=t._text.add(n),r=t.wrapper.off(g);t._toggleText(!0),t._upArrowEventHandler.unbind("press"),t._downArrowEventHandler.unbind("press"),n.off("keydown"+b).off("keyup"+b).off("input"+b).off("paste"+b),t._inputLabel&&t._inputLabel.off(b),i||a?(r.addClass(a?C:"").removeClass(a?"":C),o.attr(f,a).attr(m,i).attr(L,a)):(r.removeClass(C).on(g,t._toggleHover),o.prop(f,!1).prop(m,!1).attr(L,!1),t._upArrowEventHandler.bind("press",(function(e){e.preventDefault(),t._spin(1),t._upArrow.addClass(T)})),t._downArrowEventHandler.bind("press",(function(e){e.preventDefault(),t._spin(-1),t._downArrow.addClass(T)})),t.element.on("keydown"+b,t._keydown.bind(t)).on("keyup"+b,t._keyup.bind(t)).on("paste"+b,t._paste.bind(t)).on("input"+b,t._inputHandler.bind(t)),t._inputLabel&&t._inputLabel.on("click"+b,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;l.fn.setOptions.call(n,e),n.wrapper.toggleClass("k-expand-padding",!n.options.spinners),n._text.prop("placeholder",n.options.placeholder),n._placeholder(n.options.placeholder),n.element.attr({"aria-valuemin":n.options.min!==H?n.options.min*n.options.factor:n.options.min,"aria-valuemax":n.options.max!==H?n.options.max*n.options.factor:n.options.max}),n.options.format=u(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(b),n._inputLabel.remove(),n.floatingLabel&&(n.floatingLabel.destroy(),n._floatingLabelContainer&&n.wrapper.unwrap())),n._label(),n._editable({readonly:n.options.readonly,disable:!n.options.enable}),e.value!==t&&n.value(e.value)},destroy:function(){var e=this;e._inputLabel&&(e._inputLabel.off(b),e.floatingLabel&&e.floatingLabel.destroy()),e.element.add(e._text).add(e._upArrow).add(e._downArrow).off(b),e._upArrowEventHandler.destroy(),e._downArrowEventHandler.destroy(),e._form&&e._form.off("reset",e._resetHandler),l.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)&&(n._update(e),n._old=n._value,n.floatingLabel&&n.floatingLabel.refresh())},focus:function(){this._focusin()},_adjust:function(e){var t=this.options,n=t.min,a=t.max;return e===H||(n!==H&&e<n?e=n:a!==H&&e>a&&(e=a)),e},_arrows:function(){var t,a=this,i=function(){clearTimeout(a._spinning),t.removeClass(T)},o=a.options,r=o.spinners,l=a.element;(t=l.siblings(".k-icon-button"))[0]||(t=e(I("increase",o.upArrowText,o)+I("decrease",o.downArrowText,o)).appendTo(a.wrapper),a._arrowsWrap=t.wrapAll('<span class="k-input-spinner k-spin-button"/>').parent()),r||(t.parent().toggle(r),a.wrapper.addClass("k-expand-padding")),a._upArrow=t.eq(0),a._upArrowEventHandler=new n.UserEvents(a._upArrow,{release:i}),a._downArrow=t.eq(1),a._downArrowEventHandler=new n.UserEvents(a._downArrow,{release:i})},_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,i,o,r=e.target,l=a(r)[0],s=r.value.substring(0,l),u=t._format(t.options.format),d=u[","],p=0;d&&(i=new RegExp("\\"+d,"g"),o=new RegExp("(-)?("+u.symbol+")?([\\d\\"+d+"]+)(\\"+u["."]+")?(\\d+)?")),o&&(n=o.exec(s)),n&&(p=n[0].replace(i,"").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(_),t.trigger(_)),t._typing=!1},_culture:function(e){return e||c(this.options.culture)},_focusin:function(){var e=this;e.wrapper.addClass(x),e._toggleText(!1),e.element[0].focus()},_focusout:function(){var e=this;clearTimeout(e._focusing),e.wrapper.removeClass(x).removeClass(w),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,i=a.options,o=a.element.addClass(v).show()[0],r=o.accessKey;(t=a.wrapper.find(k+v).first()).length<2&&(t=e('<input type="text"/>').attr(n.attr("validate"),!1).insertBefore(o));try{o.setAttribute("type","text")}catch(e){o.type="text"}t[0].title=o.title,t[0].tabIndex=o.tabIndex,t[0].style.cssText=o.style.cssText,t.prop("placeholder",i.placeholder),r&&(t.attr("accesskey",r),o.accessKey=""),a._text=t.addClass(o.className).attr({role:"spinbutton","aria-valuemin":i.min!==H?i.min*i.factor:i.min,"aria-valuemax":i.max!==H?i.max*i.factor:i.max,autocomplete:"off"})},_keydown:function(e){var t=this,n=e.keyCode;n===i.NUMPAD_DOT&&(t._numPadDot=!0),n!=i.DOWN?n!=i.UP?n!=i.ENTER?(n!=i.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,i=this._format(this.options.format),o=i["."],r=null!==n&&n>=0&&"-"===t.charAt(0);this._numPadDot&&o!==k&&(t=t.replace(k,o),this.element.val(t),this._numPadDot=!1),this._isPasted&&this._parse(t)&&(t=this._parse(t).toString().replace(k,i["."])),this._numericRegex(i).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(A),this._validationIcon.removeClass("k-hidden")},_removeInvalidState:function(){var e=this;e.wrapper.removeClass(A),e._validationIcon.addClass("k-hidden"),e._invalidStateTimeout=null},_numericRegex:function(e){var t=this,n=e["."],a=t.options.decimals,i="*";return n===k&&(n="\\"+n),a===H&&(a=e.decimals),0===a&&t.options.restrictDecimals?E:(t.options.restrictDecimals&&(i="{0,"+a+"}"),t._separator!==n&&(t._separator=n,t._floatRegExp=new RegExp("^(-)?(((\\d+("+n+"\\d"+i+")?)|("+n+"\\d"+i+")))?$")),t._floatRegExp)},_paste:function(e){var t=this,n=e.target,a=n.value,i=t._format(t.options.format);t._isPasted=!0,setTimeout((function(){var e=t._parse(n.value);e===H?t._update(a):(n.value=e.toString().replace(k,i["."]),t._adjust(e)===e&&t._numericRegex(i).test(n.value)||(a=t._getFactorValue(n.value),t._update(a)))}))},_option:function(e,n){var a=this,i=a.element,o=a.options;if(n===t)return o[e];((n=a._parse(n))||"step"!==e)&&(o[e]=n,i.add(a._text).attr("aria-value"+e,n),i.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,i=t._parse(n.val())||0,o=t.options.decimals||2;s()!=n[0]&&t._focusin(),t.options.factor&&i&&(i/=t.options.factor),i=+(i+t.options.step*e).toFixed(o),i=t._adjust(i),t._update(i),t._typing=!1,a!==i&&t.trigger(h)},_toggleHover:function(t){e(t.currentTarget).toggleClass(w,"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 d(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,i=this,o=i.options,r=o.factor,l=o.format,s=o.decimals,u=i._culture(),d=i._format(l,u);s===H&&(s=d.decimals),(a=(e=i._parse(e,u))!==H)&&(e=parseFloat(i._round(e,s),10)),i._value=e=i._adjust(e),i._placeholder(n.toString(e,l,u)),a?(r&&(e=parseFloat(i._round(e*r,s),10)),-1!==(e=e.toString()).indexOf("e")&&(e=i._round(+e,s)),t=e,e=e.replace(k,d["."])):(e=null,t=null),i.element.val(e),i._oldText=e,i.element.add(i._text).attr("aria-valuenow",t)},_placeholder:function(e){var t=this._text;t.val(e),p||e||t.val(this.options.placeholder),t.attr("title",this.element.attr("title")||t.val())},_label:function(){var a,i,o=this,r=o.element,l=o.options,s=r.attr("id");null!==l.label&&(a=!!S(l.label)&&l.label.floating,i=S(l.label)?l.label.content:l.label,a&&(o._floatingLabelContainer=o.wrapper.wrap("<span></span>").parent(),o.floatingLabel=new n.ui.FloatingLabel(o._floatingLabelContainer,{widget:o})),n.isFunction(i)&&(i=i.call(o)),i||(i=""),s||(s=l.name+"_"+n.guid(),r.attr("id",s)),o._inputLabel=e("<label class='k-label k-input-label' for='"+s+"'>"+i+"</label>'").insertBefore(o.wrapper),o.element.attr("disabled")===t&&o.element.attr("readonly")===t&&o._inputLabel.on("click"+b,o.focus.bind(o)))},_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"),i=a?e("#"+a):n.closest("form");i[0]&&(t._resetHandler=function(){setTimeout((function(){t.value(n[0].value),t.max(t._initialOptions.max),t.min(t._initialOptions.min)}))},t._form=i.on("reset",t._resetHandler))}});function I(e,t,n){var a="increase"===e?"caret-alt-up":"caret-alt-down",i="increase"===e?"increase":"decrease";return o.renderButton('<button role="button" tabindex="-1" unselectable="on" class="k-spinner-'+i+'" aria-label="'+t+'" title="'+t+'"></button>',F({},n,{icon:a,shape:null,rounded:null}))}function P(e,t){var n=parseFloat(e,10).toString().split(k);return n[1]&&(n[1]=n[1].substring(0,t)),n.join(k)}n.cssProperties.registerPrefix("NumericTextBox","k-input-"),n.cssProperties.registerValues("NumericTextBox",[{prop:"rounded",values:n.cssProperties.roundedValues.concat([["full","full"]])}]),r.plugin(O)}(window.kendo.jQuery)})); //# sourceMappingURL=kendo.numerictextbox.min.js.map