{"version":3,"file":"kendo.numerictextbox.min.js","sources":["kendo.numerictextbox.js"],"sourcesContent":["(function(f, define) {\n define('kendo.numerictextbox',[ \"kendo.core\", \"kendo.userevents\", \"kendo.floatinglabel\", \"kendo.html.button\" ], f);\n})(function() {\n\nvar __meta__ = {\n id: \"numerictextbox\",\n name: \"NumericTextBox\",\n category: \"web\",\n description: \"The NumericTextBox widget can format and display numeric, percentage or currency textbox.\",\n depends: [ \"core\", \"userevents\", \"floatinglabel\", \"html.button\" ]\n};\n\n(function($, undefined) {\n var kendo = window.kendo,\n caret = kendo.caret,\n keys = kendo.keys,\n html = kendo.html,\n ui = kendo.ui,\n Widget = ui.Widget,\n activeElement = kendo._activeElement,\n extractFormat = kendo._extractFormat,\n parse = kendo.parseFloat,\n placeholderSupported = kendo.support.placeholder,\n getCulture = kendo.getCulture,\n CHANGE = \"change\",\n DISABLED = \"disabled\",\n READONLY = \"readonly\",\n INPUT = \"k-input-inner\",\n SPIN = \"spin\",\n ns = \".kendoNumericTextBox\",\n TOUCHEND = \"touchend\",\n MOUSELEAVE = \"mouseleave\" + ns,\n HOVEREVENTS = \"mouseenter\" + ns + \" \" + MOUSELEAVE,\n FOCUSED = \"k-focus\",\n HOVER = \"k-hover\",\n FOCUS = \"focus\",\n POINT = \".\",\n SYMBOL = \"symbol\",\n CLASS_ICON = \"k-icon\",\n LABELCLASSES = \"k-label k-input-label\",\n SELECTED = \"k-selected\",\n STATEDISABLED = \"k-disabled\",\n STATEINVALID = \"k-invalid\",\n ARIA_DISABLED = \"aria-disabled\",\n INTEGER_REGEXP = /^(-)?(\\d*)$/,\n NULL = null,\n isPlainObject = $.isPlainObject,\n extend = $.extend;\n\n var NumericTextBox = Widget.extend({\n init: function(element, options) {\n var that = this,\n isStep = options && options.step !== undefined,\n min, max, step, value, disabled;\n var inputType;\n\n Widget.fn.init.call(that, element, options);\n\n options = that.options;\n element = that.element\n .on(\"focusout\" + ns, that._focusout.bind(that))\n .attr(\"role\", \"spinbutton\");\n\n options.placeholder = options.placeholder || element.attr(\"placeholder\");\n\n min = that.min(element.attr(\"min\"));\n max = that.max(element.attr(\"max\"));\n step = that._parse(element.attr(\"step\"));\n\n if (options.min === NULL && min !== NULL) {\n options.min = min;\n }\n\n if (options.max === NULL && max !== NULL) {\n options.max = max;\n }\n\n if (!isStep && step !== NULL) {\n options.step = step;\n }\n\n that._initialOptions = extend({}, options);\n\n inputType = element.attr(\"type\");\n\n that._reset();\n that._wrapper();\n that._arrows();\n that._validation();\n that._input();\n\n if (!kendo.support.mobileOS) {\n that._text.on(FOCUS + ns, that._click.bind(that));\n } else {\n that._text.on(TOUCHEND + ns + \" \" + FOCUS + ns, function() {\n if (kendo.support.browser.edge) {\n that._text.one(FOCUS + ns, function() {\n that._focusin();\n });\n } else {\n that._focusin();\n }\n that.selectValue();\n });\n }\n\n element.attr(\"aria-valuemin\", options.min !== NULL ? options.min * options.factor : options.min)\n .attr(\"aria-valuemax\", options.max !== NULL ? options.max * options.factor : options.max);\n\n options.format = extractFormat(options.format);\n\n value = options.value;\n\n if (value == NULL) {\n if (inputType == \"number\") {\n value = parseFloat(element.val());\n } else {\n value = element.val();\n }\n }\n\n that.value(value);\n\n disabled = !options.enable || element.is(\"[disabled]\") || $(that.element).parents(\"fieldset\").is(':disabled');\n\n if (disabled) {\n that.enable(false);\n } else {\n that.readonly(element.is(\"[readonly]\"));\n }\n\n that.angular(\"compile\", function() {\n return {\n elements: that._text.get()\n };\n });\n\n that._label();\n that._ariaLabel(that._text);\n that._applyCssClasses();\n\n kendo.notify(that);\n },\n\n options: {\n name: \"NumericTextBox\",\n decimals: NULL,\n enable: true,\n restrictDecimals: false,\n min: NULL,\n max: NULL,\n value: NULL,\n step: 1,\n round: true,\n culture: \"\",\n format: \"n\",\n spinners: true,\n placeholder: \"\",\n selectOnFocus: false,\n factor: 1,\n upArrowText: \"Increase value\",\n downArrowText: \"Decrease value\",\n label: null,\n size: \"medium\",\n fillMode: \"solid\",\n rounded: \"medium\"\n },\n events: [\n CHANGE,\n SPIN\n ],\n\n _editable: function(options) {\n var that = this,\n element = that.element,\n disable = options.disable,\n readonly = options.readonly,\n text = that._text.add(element),\n wrapper = that.wrapper.off(HOVEREVENTS);\n\n that._toggleText(true);\n\n that._upArrowEventHandler.unbind(\"press\");\n that._downArrowEventHandler.unbind(\"press\");\n element\n .off(\"keydown\" + ns)\n .off(\"keyup\" + ns)\n .off(\"input\" + ns)\n .off(\"paste\" + ns);\n\n if (that._inputLabel) {\n that._inputLabel.off(ns);\n }\n\n if (!readonly && !disable) {\n wrapper\n .removeClass(STATEDISABLED)\n .on(HOVEREVENTS, that._toggleHover);\n\n text.prop(DISABLED, false)\n .prop(READONLY, false)\n .attr(ARIA_DISABLED, false);\n\n that._upArrowEventHandler.bind(\"press\", function(e) {\n e.preventDefault();\n that._spin(1);\n that._upArrow.addClass(SELECTED);\n });\n\n that._downArrowEventHandler.bind(\"press\", function(e) {\n e.preventDefault();\n that._spin(-1);\n that._downArrow.addClass(SELECTED);\n });\n\n that.element\n .on(\"keydown\" + ns, that._keydown.bind(that))\n .on(\"keyup\" + ns, that._keyup.bind(that))\n .on(\"paste\" + ns, that._paste.bind(that))\n .on(\"input\" + ns, that._inputHandler.bind(that));\n\n if (that._inputLabel) {\n that._inputLabel.on(\"click\" + ns, that.focus.bind(that));\n }\n\n } else {\n wrapper\n .addClass(disable ? STATEDISABLED : \"\")\n .removeClass(disable ? \"\" : STATEDISABLED);\n\n text.attr(DISABLED, disable)\n .attr(READONLY, readonly)\n .attr(ARIA_DISABLED, disable);\n }\n },\n\n readonly: function(readonly) {\n var that = this;\n\n this._editable({\n readonly: readonly === undefined ? true : readonly,\n disable: false\n });\n\n if (that.floatingLabel) {\n that.floatingLabel.readonly(readonly === undefined ? true : readonly);\n }\n },\n\n enable: function(enable) {\n var that = this;\n\n this._editable({\n readonly: false,\n disable: !(enable = enable === undefined ? true : enable)\n });\n\n if (that.floatingLabel) {\n that.floatingLabel.enable(enable = enable === undefined ? true : enable);\n }\n },\n\n setOptions: function(options) {\n var that = this;\n Widget.fn.setOptions.call(that, options);\n\n that.wrapper.toggleClass(\"k-expand-padding\", !that.options.spinners);\n that._text.prop(\"placeholder\", that.options.placeholder);\n that._placeholder(that.options.placeholder);\n that.element.attr({\n \"aria-valuemin\": that.options.min !== NULL ? that.options.min * that.options.factor : that.options.min,\n \"aria-valuemax\": that.options.max !== NULL ? that.options.max * that.options.factor : that.options.max\n });\n\n that.options.format = extractFormat(that.options.format);\n that._upArrowEventHandler.destroy();\n that._downArrowEventHandler.destroy();\n that._arrowsWrap.remove();\n that._arrows();\n\n that._applyCssClasses();\n\n if (options.value !== undefined) {\n that.value(options.value);\n }\n },\n\n destroy: function() {\n var that = this;\n\n if (that._inputLabel) {\n that._inputLabel.off(ns);\n\n if (that.floatingLabel) {\n that.floatingLabel.destroy();\n }\n }\n\n that.element\n .add(that._text)\n .add(that._upArrow)\n .add(that._downArrow)\n .off(ns);\n\n that._upArrowEventHandler.destroy();\n that._downArrowEventHandler.destroy();\n\n if (that._form) {\n that._form.off(\"reset\", that._resetHandler);\n }\n\n Widget.fn.destroy.call(that);\n },\n\n min: function(value) {\n return this._option(\"min\", value);\n },\n\n max: function(value) {\n return this._option(\"max\", value);\n },\n\n step: function(value) {\n return this._option(\"step\", value);\n },\n\n value: function(value) {\n var that = this, adjusted;\n\n if (value === undefined) {\n return that._value;\n }\n\n value = that._parse(value);\n adjusted = that._adjust(value);\n\n if (value !== adjusted) {\n return;\n }\n\n that._update(value);\n that._old = that._value;\n },\n\n focus: function() {\n this._focusin();\n },\n\n _adjust: function(value) {\n var that = this,\n options = that.options,\n min = options.min,\n max = options.max;\n\n if (value === NULL) {\n return value;\n }\n\n if (min !== NULL && value < min) {\n value = min;\n } else if (max !== NULL && value > max) {\n value = max;\n }\n\n return value;\n },\n\n _arrows: function() {\n var that = this,\n arrows,\n _release = function() {\n clearTimeout( that._spinning );\n arrows.removeClass(SELECTED);\n },\n options = that.options,\n spinners = options.spinners,\n element = that.element;\n\n arrows = element.siblings(\".k-icon-button\");\n\n if (!arrows[0]) {\n arrows = $(buttonHtml(\"increase\", options.upArrowText, options) + buttonHtml(\"decrease\", options.downArrowText, options))\n .appendTo(that.wrapper);\n\n that._arrowsWrap = arrows.wrapAll('').parent();\n }\n\n if (!spinners) {\n arrows.parent().toggle(spinners);\n that.wrapper.addClass(\"k-expand-padding\");\n }\n\n that._upArrow = arrows.eq(0);\n that._upArrowEventHandler = new kendo.UserEvents(that._upArrow, { release: _release });\n that._downArrow = arrows.eq(1);\n that._downArrowEventHandler = new kendo.UserEvents(that._downArrow, { release: _release });\n },\n\n _validation: function() {\n var that = this;\n var element = that.element;\n\n that._validationIcon = $(\"\").insertAfter(element);\n },\n\n _blur: function() {\n var that = this;\n\n that._toggleText(true);\n\n that._change(that.element.val());\n },\n\n _click: function(e) {\n var that = this;\n\n clearTimeout(that._focusing);\n that._focusing = setTimeout(function() {\n var input = e.target,\n idx = caret(input)[0],\n value = input.value.substring(0, idx),\n format = that._format(that.options.format),\n group = format[\",\"],\n result, groupRegExp, extractRegExp,\n caretPosition = 0;\n\n if (group) {\n groupRegExp = new RegExp(\"\\\\\" + group, \"g\");\n extractRegExp = new RegExp(\"(-)?(\" + format[SYMBOL] + \")?([\\\\d\\\\\" + group + \"]+)(\\\\\" + format[POINT] + \")?(\\\\d+)?\");\n }\n\n if (extractRegExp) {\n result = extractRegExp.exec(value);\n }\n\n if (result) {\n caretPosition = result[0].replace(groupRegExp, \"\").length;\n\n if (value.indexOf(\"(\") != -1 && that._value < 0) {\n caretPosition++;\n }\n }\n\n that._focusin();\n\n caret(that.element[0], caretPosition);\n that.selectValue();\n });\n },\n\n selectValue: function() {\n if (this.options.selectOnFocus) {\n this.element[0].select();\n }\n },\n\n _getFactorValue: function(value) {\n var that = this,\n factor = that.options.factor;\n\n if (factor && factor !== 1) {\n value = kendo.parseFloat(value);\n if (value !== null) {\n value = value / factor;\n }\n }\n\n return value;\n },\n\n _change: function(value) {\n var that = this;\n\n value = that._getFactorValue(value);\n that._update(value);\n value = that._value;\n\n if (that._old != value) {\n that._old = value;\n\n if (!that._typing) {\n // trigger the DOM change event so any subscriber gets notified\n that.element.trigger(CHANGE);\n }\n\n that.trigger(CHANGE);\n }\n\n that._typing = false;\n },\n\n _culture: function(culture) {\n return culture || getCulture(this.options.culture);\n },\n\n _focusin: function() {\n var that = this;\n that.wrapper.addClass(FOCUSED);\n that._toggleText(false);\n that.element[0].focus();\n },\n\n _focusout: function() {\n var that = this;\n\n clearTimeout(that._focusing);\n that.wrapper.removeClass(FOCUSED).removeClass(HOVER);\n that._blur();\n that._removeInvalidState();\n },\n\n _format: function(format, culture) {\n var numberFormat = this._culture(culture).numberFormat;\n\n format = format.toLowerCase();\n\n if (format.indexOf(\"c\") > -1) {\n numberFormat = numberFormat.currency;\n } else if (format.indexOf(\"p\") > -1) {\n numberFormat = numberFormat.percent;\n }\n\n return numberFormat;\n },\n\n _input: function() {\n var that = this,\n options = that.options,\n element = that.element.addClass(INPUT).show()[0],\n accessKey = element.accessKey,\n wrapper = that.wrapper,\n inputs = wrapper.find(POINT + INPUT),\n text;\n\n text = inputs.first();\n\n if (text.length < 2) {\n text = $('')\n .attr(kendo.attr(\"validate\"), false)\n .insertBefore(element);\n }\n\n try {\n element.setAttribute(\"type\", \"text\");\n } catch (e) {\n element.type = \"text\";\n }\n\n text[0].title = element.title;\n text[0].tabIndex = element.tabIndex;\n text[0].style.cssText = element.style.cssText;\n text.prop(\"placeholder\", options.placeholder);\n\n if (accessKey) {\n text.attr(\"accesskey\", accessKey);\n element.accessKey = \"\";\n }\n\n\n that._text = text.addClass(element.className)\n .attr({\n \"role\": \"spinbutton\",\n \"aria-valuemin\": options.min !== NULL ? options.min * options.factor : options.min,\n \"aria-valuemax\": options.max !== NULL ? options.max * options.factor : options.max,\n \"autocomplete\": \"off\"\n });\n },\n\n _keydown: function(e) {\n var that = this,\n key = e.keyCode;\n\n if (key === keys.NUMPAD_DOT) {\n that._numPadDot = true;\n }\n\n if (key == keys.DOWN) {\n that._step(-1);\n return;\n } else if (key == keys.UP) {\n that._step(1);\n return;\n } else if (key == keys.ENTER) {\n that._change(that.element.val());\n return;\n }\n\n if (key != keys.TAB) {\n that._typing = true;\n }\n that._cachedCaret = caret(that.element);\n },\n\n _keyup: function() {\n this._removeInvalidState();\n },\n\n _inputHandler: function() {\n var element = this.element;\n var value = element.val();\n var min = this.options.min;\n var numberFormat = this._format(this.options.format);\n var decimalSeparator = numberFormat[POINT];\n var minInvalid = (min !== null && min >= 0 && value.charAt(0) === \"-\");\n\n if (this._numPadDot && decimalSeparator !== POINT) {\n value = value.replace(POINT, decimalSeparator);\n this.element.val(value);\n this._numPadDot = false;\n }\n\n if (this._isPasted && this._parse(value)) {\n value = this._parse(value)\n .toString()\n .replace(POINT, numberFormat[POINT]);\n }\n\n if (this._numericRegex(numberFormat).test(value) && !minInvalid) {\n this._oldText = value;\n } else {\n this._blinkInvalidState();\n this.element.val(this._oldText);\n if (this._cachedCaret) {\n caret(element, this._cachedCaret[0]);\n this._cachedCaret = null;\n }\n }\n\n this._isPasted = false;\n },\n\n _blinkInvalidState: function() {\n var that = this;\n\n that._addInvalidState();\n clearTimeout(that._invalidStateTimeout);\n that._invalidStateTimeout = setTimeout(that._removeInvalidState.bind(that), 100);\n },\n\n _addInvalidState: function() {\n var that = this;\n\n that.wrapper.addClass(STATEINVALID);\n that._validationIcon.removeClass('k-hidden');\n },\n\n _removeInvalidState: function() {\n var that = this;\n\n that.wrapper.removeClass(STATEINVALID);\n that._validationIcon.addClass('k-hidden');\n that._invalidStateTimeout = null;\n },\n\n _numericRegex: function(numberFormat) {\n var that = this;\n var separator = numberFormat[POINT];\n var precision = that.options.decimals;\n var fractionRule = \"*\";\n\n if (separator === POINT) {\n separator = \"\\\\\" + separator;\n }\n\n if (precision === NULL) {\n precision = numberFormat.decimals;\n }\n\n if (precision === 0 && that.options.restrictDecimals) {\n return INTEGER_REGEXP;\n }\n\n if (that.options.restrictDecimals) {\n fractionRule = \"{0,\" + precision + \"}\";\n }\n\n if (that._separator !== separator) {\n that._separator = separator;\n that._floatRegExp = new RegExp(\"^(-)?(((\\\\d+(\" + separator + \"\\\\d\" + fractionRule + \")?)|(\" + separator + \"\\\\d\" + fractionRule + \")))?$\");\n }\n\n return that._floatRegExp;\n },\n\n _paste: function(e) {\n var that = this;\n var element = e.target;\n var value = element.value;\n var numberFormat = that._format(that.options.format);\n\n that._isPasted = true;\n\n setTimeout(function() {\n var result = that._parse(element.value);\n\n if (result === NULL) {\n that._update(value);\n } else {\n element.value = result.toString().replace(POINT, numberFormat[POINT]);\n if (that._adjust(result) !== result || !that._numericRegex(numberFormat).test(element.value)) {\n value = that._getFactorValue(element.value);\n that._update(value);\n }\n }\n });\n },\n\n _option: function(option, value) {\n var that = this,\n element = that.element,\n options = that.options;\n\n if (value === undefined) {\n return options[option];\n }\n\n value = that._parse(value);\n\n if (!value && option === \"step\") {\n return;\n }\n\n options[option] = value;\n element\n .add(that._text)\n .attr(\"aria-value\" + option, value);\n\n element.attr(option, value);\n },\n\n _spin: function(step, timeout) {\n var that = this;\n\n timeout = timeout || 500;\n\n clearTimeout( that._spinning );\n that._spinning = setTimeout(function() {\n that._spin(step, 50);\n }, timeout );\n\n that._step(step);\n },\n\n _step: function(step) {\n var that = this,\n element = that.element,\n originalValue = that._value,\n value = that._parse(element.val()) || 0,\n precision = that.options.decimals || 2;\n\n if (activeElement() != element[0]) {\n that._focusin();\n }\n\n if (that.options.factor && value) {\n value = value / that.options.factor;\n }\n\n value = +(value + that.options.step * step).toFixed(precision);\n value = that._adjust(value);\n that._update(value);\n that._typing = false;\n\n if (originalValue !== value) {\n that.trigger(SPIN);\n }\n },\n\n _toggleHover: function(e) {\n $(e.currentTarget).toggleClass(HOVER, e.type === \"mouseenter\");\n },\n\n _toggleText: function(toggle) {\n var that = this;\n\n that._text.toggle(toggle);\n if (toggle) {\n that._text.removeAttr(\"aria-hidden\");\n } else {\n that._text.attr(\"aria-hidden\", \"true\");\n }\n that.element.toggle(!toggle);\n },\n\n _parse: function(value, culture) {\n return parse(value, this._culture(culture), this.options.format);\n },\n\n _round: function(value, precision) {\n var rounder = this.options.round ? kendo._round : truncate;\n\n return rounder(value, precision);\n },\n\n _update: function(value) {\n var that = this,\n options = that.options,\n factor = options.factor,\n format = options.format,\n decimals = options.decimals,\n culture = that._culture(),\n numberFormat = that._format(format, culture),\n originalValue,\n isNotNull;\n\n if (decimals === NULL) {\n decimals = numberFormat.decimals;\n }\n\n value = that._parse(value, culture);\n\n isNotNull = value !== NULL;\n\n if (isNotNull) {\n value = parseFloat(that._round(value, decimals), 10);\n }\n\n that._value = value = that._adjust(value);\n that._placeholder(kendo.toString(value, format, culture));\n\n if (isNotNull) {\n if (factor) {\n value = parseFloat(that._round(value * factor, decimals), 10);\n }\n value = value.toString();\n if (value.indexOf(\"e\") !== -1) {\n value = that._round(+value, decimals);\n }\n originalValue = value;\n value = value.replace(POINT, numberFormat[POINT]);\n } else {\n value = null;\n originalValue = null;\n }\n\n that.element.val(value);\n that._oldText = value;\n that.element.add(that._text).attr(\"aria-valuenow\", originalValue);\n },\n\n _placeholder: function(value) {\n var input = this._text;\n\n input.val(value);\n if (!placeholderSupported && !value) {\n input.val(this.options.placeholder);\n }\n\n input.attr(\"title\", this.element.attr(\"title\") || input.val());\n },\n\n _label: function() {\n var that = this;\n var element = that.element;\n var options = that.options;\n var id = element.attr(\"id\");\n var floating;\n var labelText;\n\n if (options.label !== null) {\n floating = isPlainObject(options.label) ? options.label.floating : false;\n labelText = isPlainObject(options.label) ? options.label.content : options.label;\n\n if (floating) {\n that._floatingLabelContainer = that.wrapper.wrap(\"\").parent();\n that.floatingLabel = new kendo.ui.FloatingLabel(that._floatingLabelContainer, { widget: that });\n }\n\n if (kendo.isFunction(labelText)) {\n labelText = labelText.call(that);\n }\n\n if (!labelText) {\n labelText = \"\";\n }\n\n if (!id) {\n id = options.name + \"_\" + kendo.guid();\n element.attr(\"id\", id);\n }\n\n that._inputLabel = $(\"'\").insertBefore(that.wrapper);\n\n if ((that.element.attr(\"disabled\") === undefined) && (that.element.attr(\"readonly\") === undefined)) {\n that._inputLabel.on(\"click\" + ns, that.focus.bind(that));\n }\n }\n },\n\n _wrapper: function() {\n var that = this,\n element = that.element,\n DOMElement = element[0],\n wrapper;\n\n wrapper = element.parents(\".k-numerictextbox\");\n\n if (!wrapper.is(\"span.k-numerictextbox\")) {\n wrapper = element.hide().wrap(\"\").parent();\n }\n\n wrapper[0].style.cssText = DOMElement.style.cssText;\n DOMElement.style.width = \"\";\n that.wrapper = wrapper.addClass(\"k-numerictextbox k-input\")\n .addClass(DOMElement.className)\n .removeClass('input-validation-error')\n .css(\"display\", \"\");\n },\n\n _reset: function() {\n var that = this,\n element = that.element,\n formId = element.attr(\"form\"),\n form = formId ? $(\"#\" + formId) : element.closest(\"form\");\n\n if (form[0]) {\n that._resetHandler = function() {\n setTimeout(function() {\n that.value(element[0].value);\n that.max(that._initialOptions.max);\n that.min(that._initialOptions.min);\n });\n };\n\n that._form = form.on(\"reset\", that._resetHandler);\n }\n }\n });\n\n kendo.cssProperties.registerPrefix(\"NumericTextBox\", \"k-input-\");\n\n kendo.cssProperties.registerValues(\"NumericTextBox\", [{\n prop: \"rounded\",\n values: kendo.cssProperties.roundedValues.concat([['full', 'full']])\n }]);\n\n function buttonHtml(direction, text, options) {\n var className = direction === \"increase\" ? \"arrow-n\" : \"arrow-s\";\n var dir = direction === \"increase\" ? \"increase\" : \"decrease\";\n\n return html.renderButton('', extend({}, options, {\n icon: className,\n shape: null,\n rounded: null\n }));\n }\n\n function truncate(value, precision) {\n var parts = parseFloat(value, 10).toString().split(POINT);\n\n if (parts[1]) {\n parts[1] = parts[1].substring(0, precision);\n }\n\n return parts.join(POINT);\n\n }\n\n ui.plugin(NumericTextBox);\n})(window.kendo.jQuery);\n\nreturn window.kendo;\n\n}, typeof define == 'function' && define.amd ? define : function(a1, a2, a3) { (a3 || a2)(); });\n\n"],"names":["define","__meta__","id","name","category","description","depends","$","window","kendo","jQuery","undefined","caret","keys","html","ui","Widget","activeElement","_activeElement","extractFormat","_extractFormat","parse","parseFloat","placeholderSupported","support","placeholder","getCulture","CHANGE","DISABLED","READONLY","INPUT","SPIN","ns","TOUCHEND","MOUSELEAVE","HOVEREVENTS","FOCUSED","HOVER","FOCUS","POINT","SYMBOL","CLASS_ICON","LABELCLASSES","SELECTED","STATEDISABLED","STATEINVALID","ARIA_DISABLED","INTEGER_REGEXP","NULL","isPlainObject","extend","NumericTextBox","init","element","options","that","this","isStep","step","min","max","value","disabled","inputType","fn","call","on","_focusout","bind","attr","_parse","_initialOptions","_reset","_wrapper","_arrows","_validation","_input","mobileOS","_text","_click","browser","edge","one","_focusin","selectValue","factor","format","val","enable","is","parents","readonly","angular","elements","get","_label","_ariaLabel","_applyCssClasses","notify","decimals","restrictDecimals","round","culture","spinners","selectOnFocus","upArrowText","downArrowText","label","size","fillMode","rounded","events","_editable","disable","text","add","wrapper","off","_toggleText","_upArrowEventHandler","unbind","_downArrowEventHandler","_inputLabel","removeClass","_toggleHover","prop","e","preventDefault","_spin","_upArrow","addClass","_downArrow","_keydown","_keyup","_paste","_inputHandler","focus","floatingLabel","setOptions","toggleClass","_placeholder","aria-valuemin","aria-valuemax","destroy","_arrowsWrap","remove","_form","_resetHandler","_option","adjusted","_value","_adjust","_update","_old","arrows","_release","clearTimeout","_spinning","siblings","buttonHtml","appendTo","wrapAll","parent","toggle","eq","UserEvents","release","_validationIcon","insertAfter","_blur","_change","_focusing","setTimeout","input","target","idx","substring","_format","group","result","groupRegExp","extractRegExp","caretPosition","RegExp","exec","replace","length","indexOf","select","_getFactorValue","_typing","trigger","_culture","_removeInvalidState","numberFormat","toLowerCase","currency","percent","show","accessKey","inputs","find","first","insertBefore","setAttribute","type","title","tabIndex","style","cssText","className","role","autocomplete","key","keyCode","NUMPAD_DOT","_numPadDot","DOWN","_step","UP","ENTER","TAB","_cachedCaret","decimalSeparator","minInvalid","charAt","_isPasted","toString","_numericRegex","test","_oldText","_blinkInvalidState","_addInvalidState","_invalidStateTimeout","separator","precision","fractionRule","_separator","_floatRegExp","option","timeout","originalValue","toFixed","currentTarget","removeAttr","_round","rounder","truncate","isNotNull","floating","labelText","content","_floatingLabelContainer","wrap","FloatingLabel","widget","isFunction","guid","DOMElement","hide","width","css","formId","form","closest","direction","dir","renderButton","icon","shape","parts","split","join","cssProperties","registerPrefix","registerValues","values","roundedValues","concat","plugin","amd","a1","a2","a3"],"mappings":"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"}