{"version":3,"file":"kendo.textbox.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendotextbox","js","this","$","undefined$1","kendo","window","Widget","ui","isPlainObject","NS","CHANGE","DISABLED","READONLY","INPUT","INPUT_EV","FOCUSED","STATEDISABLED","NOCLICKCLASS","ARIA_DISABLED","TextBox","extend","init","element","options","that","fn","call","value","val","readonly","Boolean","attr","enable","placeholder","_wrapper","_label","_editable","disable","addClass","icon","_icon","notify","_applyCssClasses","events","name","label","rounded","size","fillMode","_value","floatingLabel","refresh","focus","destroy","off","style","width","removeClass","setOptions","_inputLabel","remove","_floatingLabelContainer","unwrap","deepExtend","wrapper","toggleClass","prop","on","_focusin","bind","_focusout","_change","_input","prepend","iconClass","e","newValue","trigger","originalEvent","floating","labelText","id","content","wrap","parent","FloatingLabel","widget","isFunction","guid","insertBefore","DOMElement","cssText","className","cssProperties","registerPrefix","registerValues","values","roundedValues","concat","plugin","jQuery"],"sources":["kendo.textbox.js"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.core.js'), require('kendo.floatinglabel.js'), require('kendo.icons.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.core', 'kendo.floatinglabel', 'kendo.icons'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendotextbox = global.kendotextbox || {}, global.kendotextbox.js = factory()));\n})(this, (function () {\n var __meta__ = {\n id: \"textbox\",\n name: \"TextBox\",\n category: \"web\",\n description: \"The TextBox widget enables you to style and provide a floating label functionality to input elements\",\n depends: [\"core\", \"floatinglabel\", \"icons\"]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n Widget = kendo.ui.Widget,\n ui = kendo.ui,\n isPlainObject = $.isPlainObject,\n NS = \".kendoTextBox\",\n CHANGE = \"change\",\n DISABLED = \"disabled\",\n READONLY = \"readonly\",\n INPUT = \"k-input-inner\",\n INPUT_EV = \"input\",\n FOCUSED = \"k-focus\",\n LABELCLASSES = \"k-label k-input-label\",\n STATEDISABLED = \"k-disabled\",\n NOCLICKCLASS = \"k-no-click\",\n ARIA_DISABLED = \"aria-disabled\";\n\n var TextBox = Widget.extend({\n init: function(element, options) {\n var that = this;\n\n Widget.fn.init.call(that, element, options);\n options = $.extend(true, {}, options);\n\n that.options.value = options.value || that.element.val();\n that.options.readonly = options.readonly !== undefined$1 ? options.readonly : Boolean(that.element.attr(\"readonly\"));\n that.options.enable = options.enable !== undefined$1 ? options.enable : !(Boolean(that.element.attr(\"disabled\")));\n that.options.placeholder = options.placeholder || that.element.attr(\"placeholder\");\n\n that.value(that.options.value);\n that._wrapper();\n that._label();\n that._editable({\n readonly: that.options.readonly,\n disable: !(that.options.enable)\n });\n\n that.element\n .addClass(INPUT)\n .attr(\"placeholder\", that.options.placeholder)\n .attr(\"autocomplete\", \"off\");\n\n if (options.icon) {\n that._icon();\n }\n\n kendo.notify(that);\n that._applyCssClasses();\n },\n\n events: [\n CHANGE,\n INPUT_EV\n ],\n\n options: {\n name: 'TextBox',\n value: '',\n readonly: false,\n enable: true,\n placeholder: '',\n label: null,\n rounded: \"medium\",\n size: \"medium\",\n fillMode: \"solid\",\n icon: null\n },\n\n value: function(value) {\n var that = this;\n\n if (value === undefined$1) {\n return that._value;\n }\n\n that._value = value;\n that.element.val(value);\n\n if (that.floatingLabel) {\n that.floatingLabel.refresh();\n }\n },\n\n readonly: function(readonly) {\n var that = this;\n\n this._editable({\n readonly: readonly === undefined$1 ? true : readonly,\n disable: false\n });\n\n if (that.floatingLabel) {\n that.floatingLabel.readonly(readonly === undefined$1 ? 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$1 ? true : enable)\n });\n\n if (that.floatingLabel) {\n that.floatingLabel.enable(enable = enable === undefined$1 ? true : enable);\n }\n },\n\n focus: function() {\n var that = this;\n\n that.element[0].focus();\n },\n\n destroy: function() {\n var that = this;\n\n if (that.floatingLabel) {\n that.floatingLabel.destroy();\n }\n\n that.element.off(NS);\n that.element[0].style.width = \"\";\n that.element.removeClass(INPUT);\n Widget.fn.destroy.call(that);\n },\n\n setOptions: function(options) {\n this.destroy();\n\n if (this._inputLabel) {\n this._inputLabel.remove();\n this._inputLabel = null;\n }\n\n if (this._floatingLabelContainer) {\n this.floatingLabel.destroy();\n this.floatingLabel = null;\n this.element.unwrap();\n this.element.unwrap();\n this._floatingLabelContainer = null;\n } else {\n this.element.unwrap();\n }\n\n kendo.deepExtend(this.options, options);\n this.init(this.element, this.options);\n },\n\n _editable: function(options) {\n var that = this;\n var element = that.element;\n var wrapper = that.wrapper;\n var disable = options.disable;\n var readonly = options.readonly;\n\n element.off(NS);\n\n if (!readonly && !disable) {\n element.prop(DISABLED, false)\n .prop(READONLY, false)\n .attr(ARIA_DISABLED, false);\n\n wrapper.removeClass(STATEDISABLED)\n .removeClass(NOCLICKCLASS);\n\n element.on(\"focusin\" + NS, that._focusin.bind(that));\n element.on(\"focusout\" + NS, that._focusout.bind(that));\n element.on(\"change\" + NS, that._change.bind(that));\n element.on(INPUT_EV + NS, that._input.bind(that));\n } else {\n element.attr(DISABLED, disable)\n .attr(READONLY, readonly)\n .attr(ARIA_DISABLED, disable);\n\n wrapper.toggleClass(STATEDISABLED, disable)\n .toggleClass(NOCLICKCLASS, readonly);\n }\n },\n\n _icon: function() {\n this.wrapper.prepend(kendo.ui.icon({ icon: this.options.icon, iconClass: \"k-input-icon\" }));\n },\n\n _input: function(e) {\n var that = this;\n var newValue = that.element.val();\n\n that.trigger(INPUT_EV, { value: newValue, originalEvent: e });\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 },\n\n _focusin: function() {\n var that = this;\n\n that.wrapper.addClass(FOCUSED);\n },\n\n _focusout: function() {\n var that = this;\n\n that.wrapper.removeClass(FOCUSED);\n },\n\n _change: function(e) {\n var that = this;\n var newValue = that.element.val();\n\n that._value = newValue;\n\n that.trigger(CHANGE, { value: newValue, originalEvent: e });\n },\n\n _wrapper: function() {\n var that = this;\n var element = that.element;\n var DOMElement = element[0];\n var wrapper;\n\n wrapper = element.wrap(\"\").parent();\n wrapper[0].style.cssText = DOMElement.style.cssText;\n DOMElement.style.width = \"100%\";\n that.wrapper = wrapper.addClass(DOMElement.className).removeClass('input-validation-error');\n }\n });\n\n kendo.cssProperties.registerPrefix(\"TextBox\", \"k-input-\");\n\n kendo.cssProperties.registerValues(\"TextBox\", [{\n prop: \"rounded\",\n values: kendo.cssProperties.roundedValues.concat([['full', 'full']])\n }]);\n\n ui.plugin(TextBox);\n })(window.kendo.jQuery);\n var kendo$1 = kendo;\n\n return kendo$1;\n\n}));\n"]}