{"version":3,"file":"kendo.inputgroupbase.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendoinputgroupbase","js","this","$","undefined$1","kendo","window","ui","Widget","extend","CHANGE","FOCUS","SELECT","DOT","DISABLED","REQUIRED","InputGroupBase","init","element","options","that","fn","call","_iterateMarkupItems","_parseItems","items","_wrapper","value","_attachEvents","name","events","ITEM_TEMPLATE","NS","groupStyles","destroy","each","i","input","widget","widgetInstance","off","item","index","_indexIsPresent","get","wrapper","find","enable","shouldEnable","_disabledOnElements","enableItem","jQuery","is","closest","on","_focusHandler","bind","_changeHandler","_clickHandler","e","target","trigger","preventDefault","stopPropagation","_targetForPreventedChange","_dataValRequired","disabled","inputs","attr","addClass","prop","removeClass","isNaN","length","_initializeItem","itemElement","_preInitItem","_initItem","_postInitItem","label","list","append","val","id","rounded","inputRounded","size","inputSize","remove","COMPONENT","labelAfter","after","attributes","cssClass","enabled","validation","children","_markupItem","el","querySelector","hasAttribute","_parseItem","_items","encoded","labelPosition","guid","inputName","push","forEach","_validationSettings","validationAttributes","required","removeAttr","Object","keys","itemElements","layout","vertical","horizontal","plugin"],"sources":["kendo.inputgroupbase.js"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.core.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.core'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendoinputgroupbase = global.kendoinputgroupbase || {}, global.kendoinputgroupbase.js = factory()));\n})(this, (function () {\n var __meta__ = {\n id: \"inputgroupbase\",\n name: \"InputGroupBase\",\n category: \"web\",\n description: \"The InputGroupBase component.\",\n depends: [ \"core\" ]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n ui = kendo.ui,\n Widget = ui.Widget,\n extend = $.extend,\n CHANGE = \"change\",\n FOCUS = \"focus\",\n CLICK = \"click\",\n SELECT = \"select\",\n DOT = \".\",\n DISABLED = \"disabled\",\n VERTICAL = \"vertical\",\n REQUIRED = \"required\",\n AFTER = \"after\";\n\n var InputGroupBase = Widget.extend({\n init: function(element, options) {\n var that = this;\n\n Widget.fn.init.call(that, element, options);\n\n that.options = extend({}, that.options, options);\n\n that._iterateMarkupItems();\n\n that._parseItems(that.options.items);\n\n that._wrapper();\n\n that.value(that.options.value);\n\n that._attachEvents();\n },\n\n options: {\n name: \"InputGroupBase\"\n },\n\n events: [\n CHANGE,\n FOCUS,\n SELECT\n ],\n\n ITEM_TEMPLATE: '',\n NS: \".kendoInputGroupBase\",\n\n groupStyles: {},\n\n destroy: function() {\n var that = this,\n inputs = this.items();\n\n inputs.each(function(i, input) {\n var widget = kendo.widgetInstance($(input));\n\n if (widget) {\n widget.destroy();\n }\n });\n\n that.element.off(that.NS);\n Widget.fn.destroy.call(that);\n },\n\n item: function(index) {\n if (this._indexIsPresent(index)) {\n return $(this.items().get(index));\n }\n },\n\n items: function() {\n return this.wrapper.find(DOT + this.groupStyles.input);\n },\n\n enable: function(shouldEnable) {\n var items;\n\n if (shouldEnable !== false && shouldEnable !== true) {\n return;\n }\n\n items = this.element.find(DOT + this.groupStyles.item);\n\n this._disabledOnElements(items, !shouldEnable);\n },\n\n enableItem: function(shouldEnable, item) {\n if (shouldEnable !== false && shouldEnable !== true) {\n return;\n }\n\n if (this._indexIsPresent(item)) {\n item = $(this.element.find(DOT + this.groupStyles.item).get(item));\n } else if (item instanceof jQuery) {\n if (item.is(\"input\")) {\n item = item.closest(DOT + this.groupStyles.item);\n } else if (!item.is(\"li\")) {\n return;\n }\n } else {\n return;\n }\n\n this._disabledOnElements(item, !shouldEnable);\n },\n\n value: function() {\n return false;\n },\n\n _attachEvents: function() {\n var that = this;\n\n that.element\n .on(FOCUS + that.NS, DOT + that.groupStyles.input, that._focusHandler.bind(that))\n .on(CHANGE + that.NS, DOT + that.groupStyles.input, that._changeHandler.bind(that))\n .on(CLICK + that.NS, DOT + that.groupStyles.input, that._clickHandler.bind(that));\n },\n\n _clickHandler: function(e) {\n var target = $(e.target);\n\n if (this.trigger(SELECT, {\n target: target\n })) {\n e.preventDefault();\n e.stopPropagation();\n\n this._targetForPreventedChange = e.target;\n }\n },\n\n _changeHandler: function() {\n return false;\n },\n\n _dataValRequired: function() {\n return false;\n },\n\n _disabledOnElements: function(items, disabled) {\n var inputs = items.find(\"input\");\n\n if (disabled) {\n inputs.attr(DISABLED, \"\");\n items.addClass(this.groupStyles.disabled);\n } else {\n inputs.prop(DISABLED, false);\n items.removeClass(this.groupStyles.disabled);\n }\n },\n\n _focusHandler: function(e) {\n var target = $(e.target);\n\n this.trigger(FOCUS, {\n target: target\n });\n },\n\n _indexIsPresent: function(index) {\n return !isNaN(index) && index !== null && index !== true && index !== false && this.wrapper.find(DOT + this.groupStyles.input).length > index;\n },\n\n _initializeItem: function(item, index) {\n var itemElement = $(this.wrapper.find(DOT + this.groupStyles.item).get(index) || this.ITEM_TEMPLATE);\n\n this._preInitItem(item, itemElement);\n this._initItem(item, itemElement);\n this._postInitItem(item, itemElement);\n },\n\n _preInitItem: function(item, itemElement) {\n var label = itemElement.find(DOT + this.groupStyles.label),\n input = itemElement.find(DOT + this.groupStyles.input);\n\n if (itemElement.closest(DOT + this.groupStyles.list).length === 0) {\n this.element.append(itemElement);\n }\n\n if (item.value !== null && item.value !== undefined$1) {\n input.val(item.value);\n }\n if (item.id) {\n input.attr(\"id\", item.id);\n label.attr(\"for\", item.id);\n }\n },\n\n _initItem: function(item, itemElement) {\n var label = itemElement.find(DOT + this.groupStyles.label),\n input = itemElement.find(DOT + this.groupStyles.input),\n options = $.extend({}, item, {\n rounded: this.options.inputRounded,\n size: this.options.inputSize\n });\n\n delete options.name;\n\n if (!!item.label && label.length > 0) {\n label.remove();\n }\n\n input[this.COMPONENT](options);\n },\n\n _postInitItem: function(item, itemElement) {\n var label = itemElement.find(DOT + this.groupStyles.label),\n input = itemElement.find(DOT + this.groupStyles.input);\n\n if (item.name) {\n input.attr(\"name\", item.name);\n }\n if (!item.labelAfter) {\n label.after(input);\n }\n if (item.attributes) {\n itemElement.attr(item.attributes);\n }\n if (item.cssClass) {\n itemElement.addClass(item.cssClass);\n }\n if (!item.enabled) {\n this._disabledOnElements(itemElement, true);\n }\n if (item.validation) {\n input.attr(item.validation);\n }\n },\n\n _iterateMarkupItems: function() {\n var element = this.element;\n\n if (element.children(\"li\").length > 0) {\n element.find(\"li\").each(this._markupItem.bind(this));\n }\n },\n\n _markupItem: function(i, el) {\n var input = el.querySelector(\"input\");\n\n if (input.hasAttribute(\"disabled\")) {\n $(el).addClass(this.groupStyles.disabled);\n }\n },\n\n _parseItem: function(item, index) {\n var options = this.options,\n items = this._items;\n\n if (typeof item === \"string\" || typeof item === \"number\") {\n item = {\n value: item,\n label: item\n };\n }\n if (item.encoded !== false) {\n item.encoded = true;\n }\n if (options.labelPosition === AFTER) {\n item.labelAfter = true;\n }\n if (item.enabled === undefined$1) {\n item.enabled = options.enabled;\n }\n if (!item.id) {\n item.id = kendo.guid();\n }\n\n item.name = options.inputName || this.element.attr(\"name\") || this.element.attr(\"id\");\n\n if (items.length > index) {\n items[index] = extend({}, items[index], item);\n } else {\n items.push(item);\n }\n },\n\n _parseItems: function(items) {\n if (!this._items) {\n this._items = [];\n }\n if (items) {\n items.forEach(this._parseItem.bind(this));\n }\n },\n\n _validationSettings: function() {\n var wrapper = this.wrapper,\n items = this._items,\n validationAttributes = {},\n setValidation = function(item) {\n item.validation = validationAttributes;\n },\n createItem = function() {\n items.push({});\n };\n\n if (wrapper.is(\"[required]\")) {\n validationAttributes.required = REQUIRED;\n wrapper.prop(REQUIRED, false);\n }\n if (wrapper.is(\"[data-val=true]\")) {\n validationAttributes[\"data-val\"] = \"true\";\n wrapper.removeAttr(\"data-val\");\n }\n if (wrapper.is(\"[data-val-required]\")) {\n this._dataValRequired(validationAttributes);\n wrapper.removeAttr(\"data-val-required\");\n }\n if (wrapper.is(\"[data-val-server]\")) {\n validationAttributes[\"data-val-server\"] = wrapper.attr(\"data-val-server\");\n }\n if (Object.keys(validationAttributes).length > 0 && (!items || items.length === 0)) {\n wrapper.find(\"li\").each(createItem);\n }\n\n items.forEach(setValidation);\n },\n\n _wrapper: function() {\n var wrapper = this.wrapper = this.element,\n items = this._items,\n itemElements = wrapper.find(\"li\"),\n inputs = wrapper.find(\"input\");\n\n wrapper.addClass(this.groupStyles.list);\n\n if (this.options.layout === VERTICAL) {\n wrapper.addClass(this.groupStyles.vertical);\n } else {\n wrapper.addClass(this.groupStyles.horizontal);\n }\n\n if (itemElements.length > 0 && inputs.length > 0) {\n itemElements.addClass(this.groupStyles.item);\n inputs.addClass(this.groupStyles.input);\n wrapper.find(\"label\").addClass(this.groupStyles.label);\n }\n\n this._validationSettings();\n\n items.forEach(this._initializeItem.bind(this));\n }\n });\n\n ui.plugin(InputGroupBase);\n })(window.kendo.jQuery);\n var kendo$1 = kendo;\n\n return kendo$1;\n\n}));\n"]}