{"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","SELECTED","DISABLED","SELECT","ARIA_DISABLED","DOT","NONE","SINGLE","MULTIPLE","FOCUS","ButtonGroup","extend","init","element","options","that","fn","call","wrapper","selectedIndices","_buttons","_renderItems","items","addClass","KWIDGET","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","groupOptions","children","buttons","image","disabled","attrValue","icon","push","encoded","url","html","attributes","appendTo","indices","target","indexOf","splice","plugin","jQuery"],"sources":["kendo.buttongroup.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.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 KWIDGET = \"k-widget\";\n var KBUTTONGROUP = \"k-button-group\";\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(KWIDGET + 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(function (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(function (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(function (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 _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 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 ? $(\"\") : $(\"