UNPKG

kendo-ui-core

Version:
3 lines (2 loc) 14.5 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("kendo.core.js"),require("kendo.userevents.js"),require("kendo.floatinglabel.js"),require("kendo.html.button.js"),require("kendo.icons.js")):"function"==typeof define&&define.amd?define(["kendo.core.min","kendo.userevents.min","kendo.floatinglabel.min","kendo.html.button.min","kendo.icons.min"],t):((e="undefined"!=typeof globalThis?globalThis:e||self).kendonumerictextbox=e.kendonumerictextbox||{},e.kendonumerictextbox.js=t())}(this,(function(){let e=kendo.jQuery;function t({widget:t,wrapper:n,options:a,prefixInsertBefore:o,suffixInsertAfter:i}){var r,l,s=a.prefixOptions,u=a.suffixOptions,p=s.template||s.icon,d=u.template||u.icon,c=(i=i||o,a.layoutFlow),_=c?"vertical"==c?"horizontal":"vertical":"horizontal",f=`<span class="k-input-separator k-input-separator-${"vertical"==c?"horizontal":"vertical"}"></span>`;s&&p&&((r=n.children(".k-input-prefix"))[0]||(r=e(`<span class="k-input-prefix k-input-prefix-${_}" />`),o?r.insertBefore(o):r.prependTo(n)),s.icon&&r.html(kendo.html.renderIcon({icon:s.icon})),s.template&&r.html(kendo.template(s.template)({})),s.separator&&e(f).insertAfter(r)),u&&d&&((l=n.children(".k-input-suffix"))[0]||(l=e(`<span class="k-input-suffix k-input-suffix-${_}" />`).appendTo(n),i?l.insertAfter(i):l.appendTo(n)),u.icon&&l.html(kendo.html.renderIcon({icon:u.icon})),u.template&&l.html(kendo.template(u.template)({})),u.separator&&e(f).insertBefore(l)),t._prefixContainer=r,t._suffixContainer=l}return function(e,n){var a=window.kendo,o=a.caret,i=a.keys,r=a.html,l=a.ui,s=l.Widget,u=a._activeElement,p=a._extractFormat,d=a.parseFloat,c=a.support.placeholder,_=a.getCulture,f="change",m="disabled",v="readonly",h="k-input-inner",b="spin",x=".kendoNumericTextBox",g="mouseenter"+x+" "+("mouseleave"+x),w="k-focus",k="k-hover",y="focus",T=".",A="k-selected",C="k-disabled",L="k-invalid",E="aria-disabled",I=/^(-)?(\d*)$/,H=null,O=e.isPlainObject,j=e.extend,F=s.extend({init:function(o,i){var r,l,u,d,c,_=this,f=i&&i.step!==n;s.fn.init.call(_,o,i),i=_.options,o=_.element.on("focusout"+x,_._focusout.bind(_)).attr("role","spinbutton"),i.placeholder=i.placeholder||o.attr("placeholder"),r=_.min(o.attr("min")),l=_.max(o.attr("max")),u=_._parse(o.attr("step")),i.min===H&&r!==H&&(i.min=r),i.max===H&&l!==H&&(i.max=l),f||u===H||(i.step=u),_._initialOptions=j({},i),c=o.attr("type"),_._reset(),_._wrapper(),_._arrows(),_._validation(),_._input(),a.support.mobileOS?_._text.on("touchend"+x+" "+y+x,(function(){a.support.browser.edge?_._text.one(y+x,(function(){_._focusin()})):_._focusin(),_.selectValue()})):_._text.on(y+x,_._click.bind(_)),o.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=p(i.format),(d=i.value)==H&&(d="number"==c?parseFloat(o.val()):o.val()),_.value(d),!i.enable||o.is("[disabled]")||e(_.element).parents("fieldset").is(":disabled")?_.enable(!1):_.readonly(o.is("[readonly]")),_._label(),_._ariaLabel(_._text),_._applyCssClasses(),t({widget:_,wrapper:_.wrapper,options:_.options,prefixInsertBefore:_._text,suffixInsertAfter:_._validationIcon}),_.floatingLabel&&_.floatingLabel.refresh(),a.notify(_)},options:{name:"NumericTextBox",decimals:H,autoAdjust:!0,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",prefixOptions:{separator:!0},suffixOptions:{separator:!0}},events:[f,b],_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?C:"").removeClass(a?"":C),i.attr(m,a).attr(v,o).attr(E,a)):(r.removeClass(C).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(A)})),t._downArrowEventHandler.bind("press",(function(e){e.preventDefault(),t._spin(-1),t._downArrow.addClass(A)})),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===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)},setOptions:function(e){var t=this;s.fn.setOptions.call(t,e),t._text.prop("placeholder",t.options.placeholder),t._placeholder(t.options.placeholder),t.element.attr({"aria-valuemin":t.options.min!==H?t.options.min*t.options.factor:t.options.min,"aria-valuemax":t.options.max!==H?t.options.max*t.options.factor:t.options.max}),t.options.format=p(t.options.format),t._upArrowEventHandler.destroy(),t._upArrowEventHandler=null,t._downArrowEventHandler.destroy(),t._downArrowEventHandler=null,t._arrowsWrap.remove(),t._arrows(),t._applyCssClasses(),t._inputLabel&&(t._inputLabel.off(x),t._inputLabel.remove(),t.floatingLabel&&(t.floatingLabel.destroy(),t._floatingLabelContainer&&t.wrapper.unwrap())),t._label(),e.enable!==n||e.readonly!==n?t._editable({readonly:e.readonly,disable:!e.enable}):t._editable({readonly:t.element.attr("readonly")!==n?Boolean(t.element.attr("readonly")):t.options.readonly,disable:t.element.attr("disabled")!==n?Boolean(t.element.attr("disabled")):!t.options.enable}),e.value!==n?t.value(e.value):t._value!==n&&t.value(t._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 t=this;if(e===n)return t._value;(e=t._parse(e))!==t._adjust(e)&&(e=H),t._update(e),t._old=t._value,t.floatingLabel&&t.floatingLabel.refresh()},focus:function(){this._focusin()},_adjust:function(e){let t=this.options,n=t.min,a=t.max,o=t.autoAdjust;return e!==H&&o?(n!==H&&e<n?e=n:a!==H&&e>a&&(e=a),e):e},_arrows:function(){var t,n=this,o=function(){clearTimeout(n._spinning),t.removeClass(A)},i=n.options,r=i.spinners,l=n.element;(t=l.siblings(".k-icon-button"))[0]||(t=e(S("increase",i.upArrowText,i)+S("decrease",i.downArrowText,i)).appendTo(n.wrapper),n._arrowsWrap=t.wrapAll('<span class="k-input-spinner k-spin-button"/>').parent()),r||t.parent().toggle(r),n._upArrow=t.eq(0),n._upArrowEventHandler=new a.UserEvents(n._upArrow,{release:o}),n._downArrow=t.eq(1),n._downArrowEventHandler=new a.UserEvents(n._downArrow,{release:o})},_validation:function(){var t=this.element;this._validationIcon=e(a.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,a,i,r=e.target,l=o(r)[0],s=r.value.substring(0,l),u=t._format(t.options.format),p=u[","],d=0;p&&(a=new RegExp("\\"+p,"g"),i=new RegExp("(-)?("+u.symbol+")?([\\d\\"+p+"]+)(\\"+u[T]+")?(\\d+)?")),i&&(n=i.exec(s)),n&&(d=n[0].replace(a,"").length,-1!=s.indexOf("(")&&t._value<0&&d++),t._focusin(),o(t.element[0],d),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=a.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[0].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,n=this,o=n.options,i=n.element.addClass(h).show()[0],r=i.accessKey;(t=n.wrapper.find(T+h).first()).length<2&&(t=e('<input type="text"/>').attr(a.attr("validate"),!1).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=""),n._text=t.addClass(i.className).attr({role:"spinbutton","aria-valuemin":o.min!==H?o.min*o.factor:o.min,"aria-valuemax":o.max!==H?o.max*o.factor:o.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=o(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,a=this._format(this.options.format),i=a[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,a[T])),this._numericRegex(a).test(t)&&!r?this._oldText=t:(this._blinkInvalidState(),this.element.val(this._oldText),this._cachedCaret&&(o(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===H&&(a=e.decimals),0===a&&t.options.restrictDecimals?I:(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===H?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,t){var a=this,o=a.element,i=a.options;if(t===n)return i[e];((t=a._parse(t))||"step"!==e)&&(i[e]=t,o.add(a._text).attr("aria-value"+e,t),o.attr(e,t))},_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(b)},_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 d(e,this._culture(t),this.options.format)},_round:function(e,t){return(this.options.round?a._round:P)(e,t)},_update:function(e){var t,n,o=this,i=o.options,r=i.factor,l=i.format,s=i.decimals,u=o._culture(),p=o._format(l,u);s===H&&(s=p.decimals),(n=(e=o._parse(e,u))!==H)&&(e=parseFloat(o._round(e,s),10)),o._value=e=o._adjust(e),o._placeholder(a.toString(e,l,u)),n?(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,p[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 t,o,i=this,r=i.element,l=i.options,s=r.attr("id");null!==l.label&&(t=!!O(l.label)&&l.label.floating,o=O(l.label)?l.label.content:l.label,t&&(i._floatingLabelContainer=i.wrapper.wrap("<span></span>").parent(),i.floatingLabel=new a.ui.FloatingLabel(i._floatingLabelContainer,{widget:i})),a.isFunction(o)&&(o=o.call(i)),o||(o=""),s||(s=l.name+"_"+a.guid(),r.attr("id",s)),i._inputLabel=e("<label class='"+(t?"k-floating-label":"k-label k-input-label")+"' for='"+s+"'>"+o+"</label>'")[t?"insertAfter":"insertBefore"](i.wrapper),i.element.attr("disabled")===n&&i.element.attr("readonly")===n&&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 S(e,t,n){var a="increase"===e?"caret-alt-up":"caret-alt-down",o="increase"===e?"increase":"decrease";return r.renderButton('<button role="button" tabindex="-1" unselectable="on" class="k-spinner-'+o+'" aria-label="'+t+'" title="'+t+'"></button>',j({},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)}a.cssProperties.registerPrefix("NumericTextBox","k-input-"),a.cssProperties.registerValues("NumericTextBox",[{prop:"rounded",values:a.cssProperties.roundedValues.concat([["full","full"]])}]),l.plugin(F)}(window.kendo.jQuery),kendo})); //# sourceMappingURL=kendo.numerictextbox.min.js.map