{"version":3,"file":"kendo.buttongroup.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendobuttongroup","js","this","$","undefined$1","kendo","window","ui","Widget","ToggleButton","Button","keys","NS","KBUTTON","SELECTED","DISABLED","SELECT","ARIA_DISABLED","DOT","NONE","SINGLE","MULTIPLE","FOCUS","ButtonGroup","extend","init","element","options","that","fn","call","wrapper","selectedIndices","_buttons","_renderItems","items","addClass","EMPTY","attr","_enable","enable","enabled","forEach","b","selection","select","index","_attachEvents","events","name","preventKeyNav","size","rounded","fillMode","themeColor","badge","item","value","badgeEl","button","isNaN","find","getKendoToggleButton","getKendoButton","validValue","_badge","text","htmlEncode","destroy","empty","remove","current","off","each","i","el","component","toggleClass","focused","hasClass","is","removeAttr","trigger","nodeType","length","idx","toggle","_toggleIndex","_resetIndexes","_addButton","selected","btn","bind","_select","on","_keyDown","e","buttonGroup","focusableItems","focusedElement","currentIndex","isRtl","support","keyCode","LEFT","RIGHT","eq","preventDefault","_decorateButtons","buttons","groupOptions","children","image","disabled","attrValue","icon","push","encoded","url","html","attributes","appendTo","indices","target","indexOf","splice","plugin","jQuery"],"sources":["kendo.buttongroup.js"],"mappings":"CAAA,SAAWA,EAAQC,GACI,iBAAZC,SAA0C,oBAAXC,OAAyBA,OAAOD,QAAUD,EAAQG,QAAQ,iBAAkBA,QAAQ,yBAA0BA,QAAQ,oBAC1I,mBAAXC,QAAyBA,OAAOC,IAAMD,OAAO,CAAC,iBAAkB,yBAA0B,oBAAqBJ,KACrHD,EAA+B,oBAAfO,WAA6BA,WAAaP,GAAUQ,MAAcC,iBAAmBT,EAAOS,kBAAoB,CAAC,EAAGT,EAAOS,iBAAiBC,GAAKT,IACrK,CAJD,CAIGU,MAAM,WAgWL,OAvVA,SAAUC,EAAGC,GACT,IAAIC,EAAQC,OAAOD,MACfE,EAAKF,EAAME,GACXC,EAASD,EAAGC,OACZC,EAAeF,EAAGE,aAClBC,EAASH,EAAGG,OACZC,EAAON,EAAMM,KACbC,EAAK,oBAELC,EAAU,WACVC,EAAW,aACXC,EAAW,aAEXC,EAAS,SAETC,EAAgB,gBAEhBC,EAAM,IACNC,EAAO,OACPC,EAAS,SACTC,EAAW,WAEXC,EAAQ,QAERC,EAAcf,EAAOgB,OAAO,CAC5BC,KAAM,SAASC,EAASC,GACpB,IAAIC,EAAO1B,KAEXM,EAAOqB,GAAGJ,KAAKK,KAAKF,EAAMF,EAASC,GAEnCC,EAAKG,QAAUH,EAAKF,QAEpBE,EAAKI,gBAAkB,GAEvBJ,EAAKK,SAAWL,EAAKM,aAAaN,EAAKD,QAAQQ,OAE/CP,EAAKF,QACAU,SAASC,wCACTC,KAAK,OAAQ,SAElBV,EAAKW,SAAU,EAEVX,EAAKD,QAAQa,QAAWZ,EAAKD,QAAQc,UACtCb,EAAKW,SAAU,EACfX,EAAKF,QACIY,KAAKrB,GAAe,GACpBmB,SAASrB,GAElBa,EAAKK,SAASS,SAASC,IACnBA,EAAEH,QAAO,EAAM,KAInBZ,EAAKD,QAAQiB,YAAczB,GAC3BS,EAAKiB,OAAOjB,EAAKD,QAAQmB,OAG7BlB,EAAKmB,eACT,EAEAC,OAAQ,CACJhC,GAGJW,QAAS,CACLsB,KAAM,cACNL,UAAWxB,EACX0B,OAAQ,EACRN,QAAQ,EACRC,SAAS,EACTS,eAAe,EACfC,KAAM,SACNC,QAAS,SACTC,SAAU,QACVC,WAAY,QAGhBC,MAAO,SAASC,EAAMC,GAClB,IAIIF,EAAOG,EAHPhC,EADOxB,KACQwB,QACfiC,EAAUC,MAAMJ,GAA8B9B,EAAQmC,KAAKL,GAAMM,wBAA0BpC,EAAQmC,KAAKL,GAAMO,iBAFvG7D,KAEsB+B,SAASuB,GACtCQ,EAAaP,GAAmB,IAAVA,EAG1B,GAAKE,EAAL,CAMA,KAFAJ,EAAQI,EAAOJ,QAEDS,EAEV,OADAL,EAAOM,OAAO,CAAEC,KAAM7D,EAAM8D,WAAWV,KAChCpD,EAAM8D,WAAWV,GAG5B,GAAIO,EACAT,EAAMW,KAAK7D,EAAM8D,WAAWV,SACzB,IAAc,IAAVA,EAKP,OAJAE,EAAOJ,MAAQ,KACfG,EAAUH,EAAM7B,QAChB6B,EAAMa,eACNV,EAAQW,QAAQC,SAIpB,OAAOf,EAAQA,EAAMW,OAAS,IAnB9B,CAoBJ,EAEAK,QAAS,WACL,OAAOrE,KAAKwB,QAAQmC,KAAK3C,EAAMJ,EACnC,EAEAsD,QAAS,WACL,IAAIxC,EAAO1B,KAEX0B,EAAKF,QAAQ8C,IAAI5D,GAEjBgB,EAAKF,QAAQmC,KAAK3C,EAAML,GAAS4D,MAAK,SAASC,EAAGC,GAC9C,IAAIC,EAAYzE,EAAEwE,GAAIb,wBAA0B3D,EAAEwE,GAAIZ,iBAElDa,GACAA,EAAUR,SAElB,IAEA5D,EAAOqB,GAAGuC,QAAQtC,KAAKF,EAC3B,EAEAY,OAAQ,SAASA,QACQ,IAAVA,IACPA,GAAS,GAGbtC,KAAKwB,QACIY,KAAKrB,GAAgBuB,GACrBqC,YAAY9D,GAAWyB,GAEhCtC,KAAK+B,SAASS,SAASC,IACnB,IAAImC,EAAUnC,EAAEjB,QAAQqD,SA9HvB,YA8H2CpC,EAAEjB,QAAQsD,GAAG,UAEzDrC,EAAEH,OAAOA,GAELsC,GACAnC,EAAEjB,QAAQuD,WAAW,YAAY7C,SAAS,WAAW8C,QAAQ,QACjE,IAGJhF,KAAKqC,QAAUrC,KAAKyB,QAAQa,OAASA,CACzC,EAEAK,OAAQ,SAAS8B,GACb,IAAI/C,EAAO1B,KAEP4C,GAAS,EAET5C,KAAKyB,QAAQiB,YAAczB,GA3J3C,YA2JmDwD,IAA8B,IAARA,IAKzD7B,EADc,iBAAP6B,EACCA,EACDA,EAAGQ,UACVR,EAAKxE,EAAEwE,IACI7B,QAEH6B,EAAG7B,QAGNlB,EAAKK,SAASa,KAMnBlB,EAAKD,QAAQiB,YAAcvB,EACvBsD,EAAGS,OAAS,EACZT,EAAGF,MAAK,CAACC,EAAGhD,KACR,IAAI2D,EAAMlF,EAAEuB,GAASoB,QAErBlB,EAAKK,SAASoD,GAAKC,SACnB1D,EAAK2D,aAAaF,EAAI,KAG1BzD,EAAKK,SAASa,GAAOwC,SACrB1D,EAAK2D,aAAazC,IAGtBlB,EAAK4D,cAAc1C,IAE3B,EAEA2C,WAAY,SAASd,EAAIhD,GACrB,GAAIzB,KAAKyB,QAAQiB,YAAczB,EAG3B,cAFOQ,EAAQ+D,SAER,IAAIhF,EAAOiE,EAAIhD,GAEtB,IAAIgE,EAAM,IAAIlF,EAAakE,EAAIhD,GAI/B,OAFAgE,EAAIC,KAlLH,SAkLgB1F,KAAK2F,QAAQD,KAAK1F,KAAMyE,IAElCgB,CAEf,EAEA5C,cAAe,WACN7C,KAAKyB,QAAQuB,eACdhD,KAAKwB,QAAQoE,GAjMX,UAiMwBlF,EAAIV,KAAK6F,SAASH,KAAK1F,MAEzD,EAEA6F,SAAU,SAASC,GACf,IACIC,EAAc9F,EADPD,KACcwB,SACrBwE,EAAiBD,EAAYpC,KAAK3C,EAAML,GACxCsF,EAAiBF,EAAYpC,KAAK,UAClCuC,EAAeF,EAAepD,MAAMqD,GACpCE,EAAQhG,EAAMiG,QAAQD,MALfnG,KAK0BwB,SAGhCsE,EAAEO,UAAY5F,EAAK6F,OAASH,GAAWL,EAAEO,UAAY5F,EAAK8F,OAASJ,IACrC,IAAjBD,EAAqBF,EAAeQ,GAAGR,EAAed,OAAS,GAAKjF,EAAE+F,EAAeE,EAAe,KACtGlB,QAAQ5D,GACpB0E,EAAEW,mBACMX,EAAEO,UAAY5F,EAAK6F,MAAQH,GAAWL,EAAEO,UAAY5F,EAAK8F,QAAUJ,MAC7DD,EAAe,IAAMF,EAAed,OAASc,EAAeQ,GAAG,GAAKvG,EAAE+F,EAAeE,EAAe,KACtGlB,QAAQ5D,GACpB0E,EAAEW,iBAEV,EAEAC,iBAAkB,SAASC,GACnBA,EAAQzB,SACRjF,EAAE0G,EAAQ,GAAGnF,SAASU,SAAS,iBAC/BjC,EAAE0G,EAAQA,EAAQzB,OAAS,GAAG1D,SAASU,SAAS,eAExD,EAEAF,aAAc,SAASC,GACnB,IAAIP,EAAO1B,KACP4G,EAAelF,EAAKD,QACpBoF,EAAWnF,EAAKF,QAAQqF,WACxBF,EAAU,GA0Bd,OAxBIE,EAAS3B,OAAS,GAClB2B,EAAStC,MAAK,SAAS3B,GACnB,IAAI6B,EAAKxE,EAAED,MACP8G,EAAQrC,EAAGd,KAAK,OAAOzB,SAAS,WAChC6E,EAAWtC,EAAGK,GAAG,eAAiBL,EAAGI,SAAShE,GAC9CY,EAAU,CACN4B,MAAOlD,EAAM6G,UAAUvC,EAAI,SAC3BwC,KAAOH,EAAM,GAAmC,KAA9B3G,EAAM6G,UAAUvC,EAAI,QACtCsC,SAAUA,EACVvB,UAAWuB,GAAWtC,EAAGK,GAAG9D,EAAMJ,GAClCqC,KAAM2D,EAAa3D,KACnBC,QAAS0D,EAAa1D,QACtBC,SAAUyD,EAAazD,SACvBC,WAAYwD,EAAaxD,YAGjCuD,EAAQO,KAAKxF,EAAK6D,WAAWd,EAAIhD,IAE7BA,EAAQ+D,UACR9D,EAAKI,gBAAgBoF,KAAKtE,EAElC,IAGCX,GAKLA,EAAMO,SAAQ,SAASc,EAAMV,GACzB,IAAIoB,EAAOV,EAAKU,MAAwB,IAAjBV,EAAK6D,QAAoB7D,EAAKU,KAAO7D,EAAM8D,WAAWX,EAAKU,MAAQ,GACtFS,EAAKnB,EAAK8D,IAAMnH,EAAE,WAAaqD,EAAK8D,IAAM,KAAOnH,EAAE,YAEvDwE,EAAG4C,KAAKrD,GAEJV,EAAKgE,YACL7C,EAAGrC,KAAKkB,EAAKgE,YAGjBhE,EAAOrD,EAAEqB,OAAO,CAAC,EAAGgC,EAAM,CACtBL,KAAM2D,EAAa3D,KACnBC,QAAS0D,EAAa1D,QACtBC,SAAUyD,EAAazD,SACvBC,WAAYwD,EAAaxD,aAG7BqB,EAAG8C,SAAS7F,EAAKF,SACjBmF,EAAQO,KAAKxF,EAAK6D,WAAWd,EAAInB,IAE7BA,EAAKkC,UACL9D,EAAKI,gBAAgBoF,KAAKtE,EAElC,IAEAlB,EAAKgF,iBAAiBC,GAEfA,IA/BHjF,EAAKgF,iBAAiBC,GACfA,EA+Bf,EAEArB,cAAe,SAAS1C,GACpB5C,KAAK8B,gBAAkB,GACvB9B,KAAK+B,SAASS,SAASC,IACnBA,EAAE2C,QAAO,EAAM,IAGnBpF,KAAK+B,SAASa,GAAOwC,QAAO,GAC5BpF,KAAK8B,gBAAgBoF,KAAKtE,EAC9B,EAEA+C,QAAS,SAASlC,GACd,IAAIf,EAAY1C,KAAKyB,QAAQiB,UACzBE,EAAQa,EAAOb,QAEd5C,KAAKqC,UAAWoB,EAAOqB,GAAG9D,EAAMH,KAIjC6B,IAAcvB,EACdnB,KAAKqF,aAAazC,GACXF,IAAcxB,GACrBlB,KAAKsF,cAAc1C,GAGvB5C,KAAKgF,QAAQlE,EAAQ,CAAE0G,QAASxH,KAAK8B,gBAAiB2F,OAAQhE,IAClE,EAEA4B,aAAc,SAASzC,IAC0B,IAAzC5C,KAAK8B,gBAAgB4F,QAAQ9E,GAC7B5C,KAAK8B,gBAAgBoF,KAAKtE,GAE1B5C,KAAK8B,gBAAgB6F,OAAO3H,KAAK8B,gBAAgB4F,QAAQ9E,GAAQ,EAEzE,IAGJvC,EAAGuH,OAAOvG,EACb,CApVD,CAoVGjB,OAAOD,MAAM0H,QACF1H,KAIjB","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.core.js'), require('kendo.togglebutton.js'), require('kendo.button.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.core', 'kendo.togglebutton', 'kendo.button'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendobuttongroup = global.kendobuttongroup || {}, global.kendobuttongroup.js = factory()));\n})(this, (function () {\n var __meta__ = {\n id: \"buttongroup\",\n name: \"ButtonGroup\",\n category: \"web\",\n description: \"The Kendo ButtonGroup widget is a linear set of grouped buttons.\",\n depends: [ \"core\", \"togglebutton\", \"button\" ]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo;\n var ui = kendo.ui;\n var Widget = ui.Widget;\n var ToggleButton = ui.ToggleButton;\n var Button = ui.Button;\n var keys = kendo.keys;\n var NS = \".kendoButtonGroup\";\n var KBUTTONGROUP = \"k-button-group k-button-group-solid\";\n var KBUTTON = \"k-button\";\n var SELECTED = \"k-selected\";\n var DISABLED = \"k-disabled\";\n var KFOCUS = \"k-focus\";\n var SELECT = \"select\";\n var KEYDOWN = \"keydown\";\n var ARIA_DISABLED = \"aria-disabled\";\n var EMPTY = \" \";\n var DOT = \".\";\n var NONE = \"none\";\n var SINGLE = \"single\";\n var MULTIPLE = \"multiple\";\n var TOGGLE = \"toggle\";\n var FOCUS = \"focus\";\n\n var ButtonGroup = Widget.extend({\n init: function(element, options) {\n var that = this;\n\n Widget.fn.init.call(that, element, options);\n\n that.wrapper = that.element;\n\n that.selectedIndices = [];\n\n that._buttons = that._renderItems(that.options.items);\n\n that.element\n .addClass(EMPTY + KBUTTONGROUP)\n .attr(\"role\", \"group\");\n\n that._enable = true;\n\n if (!that.options.enable || !that.options.enabled) {\n that._enable = false;\n that.element\n .attr(ARIA_DISABLED, true)\n .addClass(DISABLED);\n\n that._buttons.forEach((b) => {\n b.enable(false);\n });\n }\n\n if (that.options.selection !== NONE) {\n that.select(that.options.index);\n }\n\n that._attachEvents();\n },\n\n events: [\n SELECT\n ],\n\n options: {\n name: \"ButtonGroup\",\n selection: SINGLE,\n index: -1,\n enable: true,\n enabled: true,\n preventKeyNav: false,\n size: \"medium\",\n rounded: \"medium\",\n fillMode: \"solid\",\n themeColor: \"base\"\n },\n\n badge: function(item, value) {\n var that = this,\n element = that.element,\n button = !isNaN(item) ? that._buttons[item] : element.find(item).getKendoToggleButton() || element.find(item).getKendoButton(),\n validValue = value || value === 0,\n badge, badgeEl;\n\n if (!button) {\n return;\n }\n\n badge = button.badge;\n\n if (!badge && validValue) {\n button._badge({ text: kendo.htmlEncode(value) });\n return kendo.htmlEncode(value);\n }\n\n if (validValue) {\n badge.text(kendo.htmlEncode(value));\n } else if (value === false) {\n button.badge = null;\n badgeEl = badge.element;\n badge.destroy();\n badgeEl.empty().remove();\n return;\n }\n\n return badge ? badge.text() : null;\n },\n\n current: function() {\n return this.element.find(DOT + SELECTED);\n },\n\n destroy: function() {\n var that = this;\n\n that.element.off(NS);\n\n that.element.find(DOT + KBUTTON).each(function(i, el) {\n var component = $(el).getKendoToggleButton() || $(el).getKendoButton();\n\n if (component) {\n component.destroy();\n }\n });\n\n Widget.fn.destroy.call(that);\n },\n\n enable: function(enable) {\n if (typeof enable == \"undefined\") {\n enable = true;\n }\n\n this.element\n .attr(ARIA_DISABLED, !enable)\n .toggleClass(DISABLED, !enable);\n\n this._buttons.forEach((b) => {\n var focused = b.element.hasClass(KFOCUS) || b.element.is(\":focus\");\n\n b.enable(enable);\n\n if (focused) {\n b.element.removeAttr(\"disabled\").addClass(\"k-focus\").trigger(\"focus\");\n }\n });\n\n this._enable = this.options.enable = enable;\n },\n\n select: function(el) {\n var that = this,\n button,\n index = -1;\n\n if (this.options.selection === NONE || el === undefined$1 || el === -1) {\n return;\n }\n\n if (typeof el === \"number\") {\n index = el;\n } else if (el.nodeType) {\n el = $(el);\n index = el.index();\n } else {\n index = el.index();\n }\n\n button = that._buttons[index];\n\n if (!button) {\n return;\n }\n\n if (that.options.selection === MULTIPLE) {\n if (el.length > 1) {\n el.each((i, element) => {\n var idx = $(element).index();\n\n that._buttons[idx].toggle();\n that._toggleIndex(idx);\n });\n } else {\n that._buttons[index].toggle();\n that._toggleIndex(index);\n }\n } else {\n that._resetIndexes(index);\n }\n },\n\n _addButton: function(el, options) {\n if (this.options.selection === NONE) {\n delete options.selected;\n\n return new Button(el, options);\n } else {\n var btn = new ToggleButton(el, options);\n\n btn.bind(TOGGLE, this._select.bind(this, el));\n\n return btn;\n }\n },\n\n _attachEvents: function() {\n if (!this.options.preventKeyNav) {\n this.element.on(KEYDOWN + NS, this._keyDown.bind(this));\n }\n },\n\n _keyDown: function(e) {\n var that = this,\n buttonGroup = $(that.element),\n focusableItems = buttonGroup.find(DOT + KBUTTON),\n focusedElement = buttonGroup.find(\":focus\"),\n currentIndex = focusableItems.index(focusedElement),\n isRtl = kendo.support.isRtl(that.element),\n itemToFocus;\n\n if ((e.keyCode === keys.LEFT && !isRtl) || (e.keyCode === keys.RIGHT && isRtl)) {\n itemToFocus = currentIndex === 0 ? focusableItems.eq(focusableItems.length - 1) : $(focusableItems[currentIndex - 1]);\n itemToFocus.trigger(FOCUS);\n e.preventDefault();\n } else if ((e.keyCode === keys.LEFT && isRtl) || (e.keyCode === keys.RIGHT && !isRtl)) {\n itemToFocus = currentIndex + 1 === focusableItems.length ? focusableItems.eq(0) : $(focusableItems[currentIndex + 1]);\n itemToFocus.trigger(FOCUS);\n e.preventDefault();\n }\n },\n\n _decorateButtons: function(buttons) {\n if (buttons.length) {\n $(buttons[0].element).addClass(\"k-group-start\");\n $(buttons[buttons.length - 1].element).addClass(\"k-group-end\");\n }\n },\n\n _renderItems: function(items) {\n var that = this,\n groupOptions = that.options,\n children = that.element.children(),\n buttons = [];\n\n if (children.length > 0) {\n children.each(function(index) {\n var el = $(this),\n image = el.find(\"img\").addClass(\"k-image\"),\n disabled = el.is(\"[disabled]\") || el.hasClass(DISABLED),\n options = {\n badge: kendo.attrValue(el, \"badge\"),\n icon: !image[0] ? kendo.attrValue(el, \"icon\") : null,\n disabled: disabled,\n selected: !disabled ? el.is(DOT + SELECTED) : false,\n size: groupOptions.size,\n rounded: groupOptions.rounded,\n fillMode: groupOptions.fillMode,\n themeColor: groupOptions.themeColor\n };\n\n buttons.push(that._addButton(el, options));\n\n if (options.selected) {\n that.selectedIndices.push(index);\n }\n });\n }\n\n if (!items) {\n that._decorateButtons(buttons);\n return buttons;\n }\n\n items.forEach(function(item, index) {\n var text = item.text ? item.encoded === false ? item.text : kendo.htmlEncode(item.text) : \"\",\n el = item.url ? $(\"\") : $(\"