{"version":3,"sources":["kendo.inputgroupbase.js"],"names":["f","define","$","undefined","kendo","window","ui","Widget","extend","proxy","CHANGE","FOCUS","CLICK","SELECT","DOT","DISABLED","VERTICAL","AFTER","InputGroupBase","init","element","options","that","this","fn","call","_iterateMarkupItems","_parseItems","items","_wrapper","value","_attachEvents","name","events","ITEM_TEMPLATE","NS","groupStyles","destroy","off","item","index","_indexIsPresent","get","wrapper","find","input","enable","shouldEnable","_disabledOnElements","enableItem","jQuery","is","closest","on","_focusHandler","_changeHandler","_clickHandler","e","target","trigger","preventDefault","stopPropagation","_targetForPreventedChange","_dataValRequired","disabled","inputs","attr","addClass","removeAttr","removeClass","isNaN","length","_initializeItem","itemElement","label","val","id","encoded","text","html","labelAfter","after","attributes","cssClass","enabled","validation","list","append","children","each","_markupItem","i","el","querySelector","hasAttribute","_parseItem","_items","labelPosition","guid","inputName","push","forEach","_validationSettings","validationAttributes","setValidation","createItem","required","Object","keys","itemElements","layout","vertical","horizontal","plugin","amd","a1","a2","a3"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;CAwBC,SAAUA,EAAGC,QACVA,OAAO,wBAAyB,cAAeD,IACjD,WA4OE,MApOC,UAAUE,EAAGC,GAAb,GACOC,GAAQC,OAAOD,MAAOE,EAAKF,EAAME,GAAIC,EAASD,EAAGC,OAAQC,EAASN,EAAEM,OAAQC,EAAQP,EAAEO,MAAOC,EAAS,SAAUC,EAAQ,QAASC,EAAQ,QAASC,EAAS,SAAUC,EAAM,IAAKC,EAAW,WAAYC,EAAW,WAAYC,EAAQ,QACtOC,EAAiBX,EAAOC,QACxBW,KAAM,SAAUC,EAASC,GACrB,GAAIC,GAAOC,IACXhB,GAAOiB,GAAGL,KAAKM,KAAKH,EAAMF,EAASC,GACnCC,EAAKD,QAAUb,KAAWc,EAAKD,QAASA,GACxCC,EAAKI,sBACLJ,EAAKK,YAAYL,EAAKD,QAAQO,OAC9BN,EAAKO,WACLP,EAAKQ,MAAMR,EAAKD,QAAQS,OACxBR,EAAKS,iBAETV,SAAWW,KAAM,kBACjBC,QACIvB,EACAC,EACAE,GAEJqB,cAAe,GACfC,GAAI,uBACJC,eACAC,QAAS,WACL,GAAIf,GAAOC,IACXD,GAAKF,QAAQkB,IAAIhB,EAAKa,IACtB5B,EAAOiB,GAAGa,QAAQZ,KAAKH,IAE3BiB,KAAM,SAAUC,GACZ,GAAIjB,KAAKkB,gBAAgBD,GACrB,MAAOtC,GAAEqB,KAAKK,QAAQc,IAAIF,KAGlCZ,MAAO,WACH,MAAOL,MAAKoB,QAAQC,KAAK9B,EAAMS,KAAKa,YAAYS,QAEpDC,OAAQ,SAAUC,GACd,GAAInB,EACAmB,MAAiB,GAASA,KAAiB,IAG/CnB,EAAQL,KAAKH,QAAQwB,KAAK9B,EAAMS,KAAKa,YAAYG,MACjDhB,KAAKyB,oBAAoBpB,GAAQmB,KAErCE,WAAY,SAAUF,EAAcR,GAChC,GAAIQ,KAAiB,GAASA,KAAiB,EAA/C,CAGA,GAAIxB,KAAKkB,gBAAgBF,GACrBA,EAAOrC,EAAEqB,KAAKH,QAAQwB,KAAK9B,EAAMS,KAAKa,YAAYG,MAAMG,IAAIH,QACzD,CAAA,KAAIA,YAAgBW,SAOvB,MANA,IAAIX,EAAKY,GAAG,SACRZ,EAAOA,EAAKa,QAAQtC,EAAMS,KAAKa,YAAYG,UACxC,KAAKA,EAAKY,GAAG,MAChB,OAKR5B,KAAKyB,oBAAoBT,GAAOQ,KAEpCjB,MAAO,WACH,OAAO,GAEXC,cAAe,WACX,GAAIT,GAAOC,IACXD,GAAKF,QAAQiC,GAAG1C,EAAQW,EAAKa,GAAIrB,EAAMQ,EAAKc,YAAYS,MAAOpC,EAAMa,EAAKgC,cAAehC,IAAO+B,GAAG3C,EAASY,EAAKa,GAAIrB,EAAMQ,EAAKc,YAAYS,MAAOpC,EAAMa,EAAKiC,eAAgBjC,IAAO+B,GAAGzC,EAAQU,EAAKa,GAAIrB,EAAMQ,EAAKc,YAAYS,MAAOpC,EAAMa,EAAKkC,cAAelC,KAErQkC,cAAe,SAAUC,GACrB,GAAIC,GAASxD,EAAEuD,EAAEC,OACbnC,MAAKoC,QAAQ9C,GAAU6C,OAAQA,MAC/BD,EAAEG,iBACFH,EAAEI,kBACFtC,KAAKuC,0BAA4BL,EAAEC,SAG3CH,eAAgB,WACZ,OAAO,GAEXQ,iBAAkB,WACd,OAAO,GAEXf,oBAAqB,SAAUpB,EAAOoC,GAClC,GAAIC,GAASrC,EAAMgB,KAAK,QACpBoB,IACAC,EAAOC,KAAKnD,EAAU,IACtBa,EAAMuC,SAAS5C,KAAKa,YAAY4B,YAEhCC,EAAOG,WAAWrD,GAClBa,EAAMyC,YAAY9C,KAAKa,YAAY4B,YAG3CV,cAAe,SAAUG,GACrB,GAAIC,GAASxD,EAAEuD,EAAEC,OACjBnC,MAAKoC,QAAQhD,GAAS+C,OAAQA,KAElCjB,gBAAiB,SAAUD,GACvB,OAAQ8B,MAAM9B,IAAoB,OAAVA,GAAkBA,KAAU,GAAQA,KAAU,GAASjB,KAAKoB,QAAQC,KAAK9B,EAAMS,KAAKa,YAAYS,OAAO0B,OAAS/B,GAE5IgC,gBAAiB,SAAUjC,EAAMC,GAC7B,GAAIiC,GAAcvE,EAAEqB,KAAKoB,QAAQC,KAAK9B,EAAMS,KAAKa,YAAYG,MAAMG,IAAIF,IAAUjB,KAAKW,eAAgBwC,EAAQD,EAAY7B,KAAK9B,EAAMS,KAAKa,YAAYsC,OAAQ7B,EAAQ4B,EAAY7B,KAAK9B,EAAMS,KAAKa,YAAYS,MAC1MN,GAAKT,OACLe,EAAM8B,IAAIpC,EAAKT,OAEfS,EAAKP,MACLa,EAAMqB,KAAK,OAAQ3B,EAAKP,MAExBO,EAAKqC,KACL/B,EAAMqB,KAAK,KAAM3B,EAAKqC,IACtBF,EAAMR,KAAK,MAAO3B,EAAKqC,KAEvBrC,EAAKmC,QACDnC,EAAKsC,QACLH,EAAMI,KAAKvC,EAAKmC,OAEhBA,EAAMK,KAAKxC,EAAKmC,QAGnBnC,EAAKyC,YACNN,EAAMO,MAAMpC,GAEZN,EAAK2C,YACLT,EAAYP,KAAK3B,EAAK2C,YAEtB3C,EAAK4C,UACLV,EAAYN,SAAS5B,EAAK4C,UAEzB5C,EAAK6C,SACN7D,KAAKyB,oBAAoByB,GAAa,GAEtClC,EAAK8C,YACLxC,EAAMqB,KAAK3B,EAAK8C,YAE4C,IAA5DZ,EAAYrB,QAAQtC,EAAMS,KAAKa,YAAYkD,MAAMf,QACjDhD,KAAKH,QAAQmE,OAAOd,IAG5B/C,oBAAqB,WACjB,GAAIN,GAAUG,KAAKH,OACfA,GAAQoE,SAAS,MAAMjB,OAAS,GAChCnD,EAAQwB,KAAK,MAAM6C,KAAKhF,EAAMc,KAAKmE,YAAanE,QAGxDmE,YAAa,SAAUC,EAAGC,GACtB,GAAI/C,GAAQ+C,EAAGC,cAAc,QACzBhD,GAAMiD,aAAa,aACnB5F,EAAE0F,GAAIzB,SAAS5C,KAAKa,YAAY4B,WAGxC+B,WAAY,SAAUxD,EAAMC,GACxB,GAAInB,GAAUE,KAAKF,QAASO,EAAQL,KAAKyE,MACrB,iBAATzD,KACPA,GACIT,MAAOS,EACPmC,MAAOnC,IAGXA,EAAKsC,WAAY,IACjBtC,EAAKsC,SAAU,GAEfxD,EAAQ4E,gBAAkBhF,IAC1BsB,EAAKyC,YAAa,GAElBzC,EAAK6C,UAAYjF,IACjBoC,EAAK6C,QAAU/D,EAAQ+D,SAEtB7C,EAAKqC,KACNrC,EAAKqC,GAAKxE,EAAM8F,QAEpB3D,EAAKP,KAAOX,EAAQ8E,WAAa5E,KAAKH,QAAQ8C,KAAK,SAAW3C,KAAKH,QAAQ8C,KAAK,MAC5EtC,EAAM2C,OAAS/B,EACfZ,EAAMY,GAAShC,KAAWoB,EAAMY,GAAQD,GAExCX,EAAMwE,KAAK7D,IAGnBZ,YAAa,SAAUC,GACdL,KAAKyE,SACNzE,KAAKyE,WAELpE,GACAA,EAAMyE,QAAQ5F,EAAMc,KAAKwE,WAAYxE,QAG7C+E,oBAAqB,WACjB,GAAI3D,GAAUpB,KAAKoB,QAASf,EAAQL,KAAKyE,OAAQO,KAA2BC,EAAgB,SAAUjE,GAC9FA,EAAK8C,WAAakB,GACnBE,EAAa,WACZ7E,EAAMwE,SAEVzD,GAAQQ,GAAG,gBACXoD,EAAqBG,SAAW,WAChC/D,EAAQyB,WAAW,aAEnBzB,EAAQQ,GAAG,qBACXoD,EAAqB,YAAc,OACnC5D,EAAQyB,WAAW,aAEnBzB,EAAQQ,GAAG,yBACX5B,KAAKwC,iBAAiBwC,GACtB5D,EAAQyB,WAAW,sBAEnBzB,EAAQQ,GAAG,uBACXoD,EAAqB,mBAAqB5D,EAAQuB,KAAK,oBAEvDyC,OAAOC,KAAKL,GAAsBhC,OAAS,KAAO3C,GAA0B,IAAjBA,EAAM2C,SACjE5B,EAAQC,KAAK,MAAM6C,KAAKgB,GAE5B7E,EAAMyE,QAAQG,IAElB3E,SAAU,WACN,GAAIc,GAAUpB,KAAKoB,QAAUpB,KAAKH,QAASQ,EAAQL,KAAKyE,OAAQa,EAAelE,EAAQC,KAAK,MAAOqB,EAAStB,EAAQC,KAAK,QACzHD,GAAQwB,SAAS5C,KAAKa,YAAYkD,MAE9B3C,EAAQwB,SADR5C,KAAKF,QAAQyF,SAAW9F,EACPO,KAAKa,YAAY2E,SAEjBxF,KAAKa,YAAY4E,YAElCH,EAAatC,OAAS,GAAKN,EAAOM,OAAS,IAC3CsC,EAAa1C,SAAS5C,KAAKa,YAAYG,MACvC0B,EAAOE,SAAS5C,KAAKa,YAAYS,OACjCF,EAAQC,KAAK,SAASuB,SAAS5C,KAAKa,YAAYsC,QAEpDnD,KAAK+E,sBACL1E,EAAMyE,QAAQ5F,EAAMc,KAAKiD,gBAAiBjD,SAGlDjB,GAAG2G,OAAO/F,IACZb,OAAOD,MAAM8C,QACR7C,OAAOD,OACE,kBAAVH,SAAwBA,OAAOiH,IAAMjH,OAAS,SAAUkH,EAAIC,EAAIC,IACrEA,GAAMD","file":"kendo.inputgroupbase.min.js","sourcesContent":["/*!\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n*/\n(function (f, define) {\n define('kendo.inputgroupbase', ['kendo.core'], f);\n}(function () {\n var __meta__ = {\n id: 'inputgroupbase',\n name: 'InputGroupBase',\n category: 'web',\n description: 'The InputGroupBase component.',\n depends: ['core']\n };\n (function ($, undefined) {\n var kendo = window.kendo, ui = kendo.ui, Widget = ui.Widget, extend = $.extend, proxy = $.proxy, CHANGE = 'change', FOCUS = 'focus', CLICK = 'click', SELECT = 'select', DOT = '.', DISABLED = 'disabled', VERTICAL = 'vertical', AFTER = 'after';\n var InputGroupBase = Widget.extend({\n init: function (element, options) {\n var that = this;\n Widget.fn.init.call(that, element, options);\n that.options = extend({}, that.options, options);\n that._iterateMarkupItems();\n that._parseItems(that.options.items);\n that._wrapper();\n that.value(that.options.value);\n that._attachEvents();\n },\n options: { name: 'InputGroupBase' },\n events: [\n CHANGE,\n FOCUS,\n SELECT\n ],\n ITEM_TEMPLATE: '',\n NS: '.kendoInputGroupBase',\n groupStyles: {},\n destroy: function () {\n var that = this;\n that.element.off(that.NS);\n Widget.fn.destroy.call(that);\n },\n item: function (index) {\n if (this._indexIsPresent(index)) {\n return $(this.items().get(index));\n }\n },\n items: function () {\n return this.wrapper.find(DOT + this.groupStyles.input);\n },\n enable: function (shouldEnable) {\n var items;\n if (shouldEnable !== false && shouldEnable !== true) {\n return;\n }\n items = this.element.find(DOT + this.groupStyles.item);\n this._disabledOnElements(items, !shouldEnable);\n },\n enableItem: function (shouldEnable, item) {\n if (shouldEnable !== false && shouldEnable !== true) {\n return;\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 this._disabledOnElements(item, !shouldEnable);\n },\n value: function () {\n return false;\n },\n _attachEvents: function () {\n var that = this;\n that.element.on(FOCUS + that.NS, DOT + that.groupStyles.input, proxy(that._focusHandler, that)).on(CHANGE + that.NS, DOT + that.groupStyles.input, proxy(that._changeHandler, that)).on(CLICK + that.NS, DOT + that.groupStyles.input, proxy(that._clickHandler, that));\n },\n _clickHandler: function (e) {\n var target = $(e.target);\n if (this.trigger(SELECT, { target: target })) {\n e.preventDefault();\n e.stopPropagation();\n this._targetForPreventedChange = e.target;\n }\n },\n _changeHandler: function () {\n return false;\n },\n _dataValRequired: function () {\n return false;\n },\n _disabledOnElements: function (items, disabled) {\n var inputs = items.find('input');\n if (disabled) {\n inputs.attr(DISABLED, '');\n items.addClass(this.groupStyles.disabled);\n } else {\n inputs.removeAttr(DISABLED);\n items.removeClass(this.groupStyles.disabled);\n }\n },\n _focusHandler: function (e) {\n var target = $(e.target);\n this.trigger(FOCUS, { target: target });\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 _initializeItem: function (item, index) {\n var itemElement = $(this.wrapper.find(DOT + this.groupStyles.item).get(index) || this.ITEM_TEMPLATE), label = itemElement.find(DOT + this.groupStyles.label), input = itemElement.find(DOT + this.groupStyles.input);\n if (item.value) {\n input.val(item.value);\n }\n if (item.name) {\n input.attr('name', item.name);\n }\n if (item.id) {\n input.attr('id', item.id);\n label.attr('for', item.id);\n }\n if (item.label) {\n if (item.encoded) {\n label.text(item.label);\n } else {\n label.html(item.label);\n }\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 if (itemElement.closest(DOT + this.groupStyles.list).length === 0) {\n this.element.append(itemElement);\n }\n },\n _iterateMarkupItems: function () {\n var element = this.element;\n if (element.children('li').length > 0) {\n element.find('li').each(proxy(this._markupItem, this));\n }\n },\n _markupItem: function (i, el) {\n var input = el.querySelector('input');\n if (input.hasAttribute('disabled')) {\n $(el).addClass(this.groupStyles.disabled);\n }\n },\n _parseItem: function (item, index) {\n var options = this.options, items = this._items;\n if (typeof item === 'string') {\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) {\n item.enabled = options.enabled;\n }\n if (!item.id) {\n item.id = kendo.guid();\n }\n item.name = options.inputName || this.element.attr('name') || this.element.attr('id');\n if (items.length > index) {\n items[index] = extend({}, items[index], item);\n } else {\n items.push(item);\n }\n },\n _parseItems: function (items) {\n if (!this._items) {\n this._items = [];\n }\n if (items) {\n items.forEach(proxy(this._parseItem, this));\n }\n },\n _validationSettings: function () {\n var wrapper = this.wrapper, items = this._items, validationAttributes = {}, setValidation = function (item) {\n item.validation = validationAttributes;\n }, createItem = function () {\n items.push({});\n };\n if (wrapper.is('[required]')) {\n validationAttributes.required = 'required';\n wrapper.removeAttr('required');\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 items.forEach(setValidation);\n },\n _wrapper: function () {\n var wrapper = this.wrapper = this.element, items = this._items, itemElements = wrapper.find('li'), inputs = wrapper.find('input');\n wrapper.addClass(this.groupStyles.list);\n if (this.options.layout === VERTICAL) {\n wrapper.addClass(this.groupStyles.vertical);\n } else {\n wrapper.addClass(this.groupStyles.horizontal);\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 this._validationSettings();\n items.forEach(proxy(this._initializeItem, this));\n }\n });\n ui.plugin(InputGroupBase);\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));"]}