demo20230512/Scripts/kendo/2014.2.716/kendo.numerictextbox.min.js
2023-05-12 10:20:28 +08:00

16 lines
8.3 KiB
JavaScript

/**
* Copyright 2014 Telerik AD
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
!function(e,define){define(["./kendo.core.min","./kendo.userevents.min"],e)}(function(){return function(e,t){function n(e,t){return'<span unselectable="on" class="k-link"><span unselectable="on" class="k-icon k-i-arrow-'+e+'" title="'+t+'">'+t+"</span></span>"}var i=window.kendo,r=i.caret,a=i.keys,o=i.ui,s=o.Widget,l=i._activeElement,u=i._extractFormat,c=i.parseFloat,d=i.support.placeholder,f=i.getCulture,p=i._round,h="change",g="disabled",m="readonly",v="k-input",_="spin",y=".kendoNumericTextBox",w="touchend",b="mouseleave"+y,k="mouseenter"+y+" "+b,x="k-state-default",C="k-state-focused",T="k-state-hover",F="focus",S=".",D="k-state-selected",E="k-state-disabled",M="aria-disabled",A="aria-readonly",I=/^(-)?(\d*)$/,H=null,z=e.proxy,O=s.extend({init:function(e,n){var r,a,o,l,c,d=this,f=n&&n.step!==t;s.fn.init.call(d,e,n),n=d.options,e=d.element.on("focusout"+y,z(d._focusout,d)).attr("role","spinbutton"),n.placeholder=n.placeholder||e.attr("placeholder"),d._reset(),d._wrapper(),d._arrows(),d._input(),i.support.mobileOS?d._text.on(w+y+" "+F+y,function(t){d._toggleText(!1),t.type===F&&e.focus()}):d._text.on(F+y,z(d._click,d)),r=d.min(e.attr("min")),a=d.max(e.attr("max")),o=d._parse(e.attr("step")),n.min===H&&r!==H&&(n.min=r),n.max===H&&a!==H&&(n.max=a),f||o===H||(n.step=o),e.attr("aria-valuemin",n.min).attr("aria-valuemax",n.max),n.format=u(n.format),l=n.value,d.value(l!==H?l:e.val()),c=e.is("[disabled]"),c?d.enable(!1):d.readonly(e.is("[readonly]")),i.notify(d)},options:{name:"NumericTextBox",decimals:H,min:H,max:H,value:H,step:1,culture:"",format:"n",spinners:!0,placeholder:"",upArrowText:"Increase value",downArrowText:"Decrease value"},events:[h,_],_editable:function(e){var t=this,n=t.element,i=e.disable,r=e.readonly,a=t._text.add(n),o=t._inputWrapper.off(k);t._toggleText(!0),t._upArrowEventHandler.unbind("press"),t._downArrowEventHandler.unbind("press"),n.off("keydown"+y).off("keypress"+y).off("paste"+y),r||i?(o.addClass(i?E:x).removeClass(i?x:E),a.attr(g,i).attr(m,r).attr(M,i).attr(A,r)):(o.addClass(x).removeClass(E).on(k,t._toggleHover),a.removeAttr(g).removeAttr(m).attr(M,!1).attr(A,!1),t._upArrowEventHandler.bind("press",function(e){e.preventDefault(),t._spin(1),t._upArrow.addClass(D)}),t._downArrowEventHandler.bind("press",function(e){e.preventDefault(),t._spin(-1),t._downArrow.addClass(D)}),t.element.on("keydown"+y,z(t._keydown,t)).on("keypress"+y,z(t._keypress,t)).on("paste"+y,z(t._paste,t)))},readonly:function(e){this._editable({readonly:e===t?!0:e,disable:!1})},enable:function(e){this._editable({readonly:!1,disable:!(e=e===t?!0:e)})},destroy:function(){var e=this;e.element.add(e._text).add(e._upArrow).add(e._downArrow).add(e._inputWrapper).off(y),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,i=this;return e===t?i._value:(e=i._parse(e),n=i._adjust(e),e===n&&(i._update(e),i._old=i._value),t)},focus:function(){this._focusin()},_adjust:function(e){var t=this,n=t.options,i=n.min,r=n.max;return e===H?e:(i!==H&&i>e?e=i:r!==H&&e>r&&(e=r),e)},_arrows:function(){var t,r=this,a=function(){clearTimeout(r._spinning),t.removeClass(D)},o=r.options,s=o.spinners,l=r.element;t=l.siblings(".k-icon"),t[0]||(t=e(n("n",o.upArrowText)+n("s",o.downArrowText)).insertAfter(l),t.wrapAll('<span class="k-select"/>')),s||(t.parent().toggle(s),r._inputWrapper.addClass("k-expand-padding")),r._upArrow=t.eq(0),r._upArrowEventHandler=new i.UserEvents(r._upArrow,{release:a}),r._downArrow=t.eq(1),r._downArrowEventHandler=new i.UserEvents(r._downArrow,{release:a})},_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,a,o=e.target,s=r(o)[0],l=o.value.substring(0,s),u=t._format(t.options.format),c=u[","],d=0;c&&(i=RegExp("\\"+c,"g"),a=RegExp("([\\d\\"+c+"]+)(\\"+u[S]+")?(\\d+)?")),a&&(n=a.exec(l)),n&&(d=n[0].replace(i,"").length,-1!=l.indexOf("(")&&0>t._value&&d++),t._focusin(),r(t.element[0],d)})},_change:function(e){var t=this;t._update(e),e=t._value,t._old!=e&&(t._old=e,t.trigger(h),t.element.trigger(h))},_culture:function(e){return e||f(this.options.culture)},_focusin:function(){var e=this;e._inputWrapper.addClass(C),e._toggleText(!1),e.element[0].focus()},_focusout:function(){var e=this;clearTimeout(e._focusing),e._inputWrapper.removeClass(C).removeClass(T),e._blur()},_format:function(e,t){var n=this._culture(t).numberFormat;return e=e.toLowerCase(),e.indexOf("c")>-1?n=n.currency:e.indexOf("p")>-1&&(n=n.percent),n},_input:function(){var t,n=this,i="k-formatted-value",r=n.element.addClass(v).show()[0],a=r.accessKey,o=n.wrapper;t=o.find(S+i),t[0]||(t=e('<input type="text"/>').insertBefore(r).addClass(i));try{r.setAttribute("type","text")}catch(s){r.type="text"}t[0].tabIndex=r.tabIndex,t[0].style.cssText=r.style.cssText,t.prop("placeholder",n.options.placeholder),a&&(t.attr("accesskey",a),r.accessKey=""),n._text=t.addClass(r.className)},_keydown:function(e){var t=this,n=e.keyCode;t._key=n,n==a.DOWN?t._step(-1):n==a.UP?t._step(1):n==a.ENTER&&t._change(t.element.val())},_keypress:function(e){var t,n,i,o,s,l,u,c,d,f,p;0===e.which||e.ctrlKey||e.keyCode===a.BACKSPACE||e.keyCode===a.ENTER||(t=this,n=t.options.min,i=t.element,o=r(i),s=o[0],l=o[1],u=String.fromCharCode(e.which),c=t._format(t.options.format),d=t._key===a.NUMPAD_DOT,f=i.val(),d&&(u=c[S]),f=f.substring(0,s)+u+f.substring(l),p=t._numericRegex(c).test(f),p&&d?(i.val(f),r(i,s+u.length),e.preventDefault()):(null!==n&&n>=0&&"-"===f.charAt(0)||!p)&&e.preventDefault(),t._key=0)},_numericRegex:function(e){var t=this,n=e[S],i=t.options.decimals;return n===S&&(n="\\"+n),i===H&&(i=e.decimals),0===i?I:(t._separator!==n&&(t._separator=n,t._floatRegExp=RegExp("^(-)?(((\\d+("+n+"\\d*)?)|("+n+"\\d*)))?$")),t._floatRegExp)},_paste:function(e){var t=this,n=e.target,i=n.value;setTimeout(function(){t._parse(n.value)===H&&t._update(i)})},_option:function(e,n){var i=this,r=i.options;return n===t?r[e]:(n=i._parse(n),(n||"step"!==e)&&(r[e]=n,i.element.attr("aria-value"+e,n).attr(e,n)),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,i=t._parse(n.val())||0;l()!=n[0]&&t._focusin(),i+=t.options.step*e,t._update(t._adjust(i)),t.trigger(_)},_toggleHover:function(t){e(t.currentTarget).toggleClass(T,"mouseenter"===t.type)},_toggleText:function(e){var t=this;t._text.toggle(e),t.element.toggle(!e)},_parse:function(e,t){return c(e,this._culture(t),this.options.format)},_update:function(e){var t,n=this,r=n.options,a=r.format,o=r.decimals,s=n._culture(),l=n._format(a,s);o===H&&(o=l.decimals),e=n._parse(e,s),t=e!==H,t&&(e=parseFloat(p(e,o))),n._value=e=n._adjust(e),n._placeholder(i.toString(e,a,s)),t?(e=""+e,-1!==e.indexOf("e")&&(e=p(+e,o)),e=e.replace(S,l[S])):e="",n.element.val(e).attr("aria-valuenow",e)},_placeholder:function(e){this._text.val(e),d||e||this._text.val(this.options.placeholder)},_wrapper:function(){var t,n=this,i=n.element,r=i[0];t=i.parents(".k-numerictextbox"),t.is("span.k-numerictextbox")||(t=i.hide().wrap('<span class="k-numeric-wrap k-state-default" />').parent(),t=t.wrap("<span/>").parent()),t[0].style.cssText=r.style.cssText,r.style.width="",n.wrapper=t.addClass("k-widget k-numerictextbox").addClass(r.className).css("display",""),n._inputWrapper=e(t[0].firstChild)},_reset:function(){var t=this,n=t.element,i=n.attr("form"),r=i?e("#"+i):n.closest("form");r[0]&&(t._resetHandler=function(){setTimeout(function(){t.value(n[0].value)})},t._form=r.on("reset",t._resetHandler))}});o.plugin(O)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t){t()});