{"version":3,"sources":["kendo.buttongroup.js"],"names":["f","define","$","undefined","createBadge","value","item","kendo","htmlEncode","appendTo","window","ui","Widget","keys","proxy","template","NS","KWIDGET","KBUTTONGROUP","KBUTTON","KBUTTONICONTEXT","KBUTTONICON","ACTIVE","FOCUSED","DISABLED","SELECT","CLICK","KEYDOWN","FOCUS","BLUR","MOUSEDOWN","templates","attr","image","icon","empty","ButtonGroup","extend","init","element","options","that","this","fn","call","wrapper","items","_renderItems","selectedIndices","addClass","children","each","_updateClasses","bind","_enable","enable","select","index","on","_click","_focus","_keyDown","preventFocus","find","removeClass","events","name","selection","current","forEach","renderedItem","imageUrl","iconClass","text","encoded","attributes","selected","length","first","focus","e","itemToFocus","buttonGroup","focusableItems","focusedElement","currentIndex","isRtl","support","keyCode","LEFT","RIGHT","eq","preventDefault","ENTER","SPACEBAR","_select","button","ariaPressed","nodeType","toggleClass","indexOf","push","splice","trigger","indices","badge","buttongroup","isNaN","validValue","html","remove","destroy","off","attrValue","isEmpty","is","hasClass","removeAttr","prepend","contents","filter","trim","nodeValue","target","closest","isDefaultPrevented","plugin","jQuery","amd","a1","a2","a3"],"mappings":"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","file":"kendo.buttongroup.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.buttongroup', ['kendo.core'], f);\n}(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']\n };\n (function ($, undefined) {\n var kendo = window.kendo;\n var ui = kendo.ui;\n var Widget = ui.Widget;\n var keys = kendo.keys;\n var proxy = $.proxy;\n var template = kendo.template;\n var NS = '.kendoButtonGroup';\n var KWIDGET = 'k-widget';\n var KBUTTONGROUP = 'k-button-group';\n var KBUTTON = 'k-button';\n var KBUTTONICONTEXT = 'k-button-icontext';\n var KBUTTONICON = 'k-button-icon';\n var ACTIVE = 'k-state-active';\n var FOCUSED = 'k-state-focused';\n var DISABLED = 'k-state-disabled';\n var SELECT = 'select';\n var CLICK = 'click';\n var KEYDOWN = 'keydown';\n var FOCUS = 'focus';\n var BLUR = 'blur';\n var MOUSEDOWN = 'mousedown';\n var templates = {\n item: template('' + '#= icon(iconClass) #' + '#= image(item) #' + '#= text #' + ''),\n image: template('\"icon\"'),\n icon: template(''),\n empty: template('')\n };\n function createBadge(value, item) {\n if (value === undefined) {\n return;\n }\n $('' + kendo.htmlEncode(value) + '').appendTo(item);\n }\n var ButtonGroup = Widget.extend({\n init: function (element, options) {\n var that = this;\n Widget.fn.init.call(that, element, options);\n that.wrapper = that.element;\n if (that.options.items) {\n that._renderItems(that.options.items);\n }\n that.selectedIndices = [];\n that.element.addClass(KWIDGET + ' ' + KBUTTONGROUP).attr('role', 'group').attr('tabindex', that.element.attr('tabindex') || '0').children().each(function () {\n var item = $(this);\n that._updateClasses.bind(that)(item);\n });\n that._enable = true;\n if (!that.options.enable) {\n that._enable = false;\n that.element.attr('aria-disabled', true).addClass(DISABLED);\n }\n that.select(that.options.index);\n that.element.on(CLICK + NS, '.' + KBUTTON, proxy(that._click, that)).on(FOCUS + NS, proxy(that._focus, that)).on(KEYDOWN + NS, proxy(that._keyDown, that)).on(BLUR + NS, function () {\n that.preventFocus = false;\n that.element.find('.' + KBUTTON).removeClass(FOCUSED);\n }).on(MOUSEDOWN + NS, function () {\n that.preventFocus = true;\n });\n },\n events: [SELECT],\n options: {\n name: 'ButtonGroup',\n selection: 'single',\n index: -1,\n enable: true\n },\n current: function () {\n return this.element.find('.' + ACTIVE);\n },\n _renderItems: function (items) {\n var that = this;\n items.forEach(function (item) {\n var renderedItem = $(templates.item({\n image: item.imageUrl ? templates.image : templates.empty,\n icon: !item.imageUrl && (item.iconClass || item.icon) ? templates.icon : templates.empty,\n iconClass: item.iconClass || 'k-icon k-i-' + item.icon,\n item: item,\n text: item.text ? item.encoded === false ? item.text : kendo.htmlEncode(item.text) : ''\n }));\n if (item.attributes) {\n renderedItem.attr(item.attributes);\n }\n if (item.selected) {\n renderedItem.addClass(ACTIVE);\n }\n if (item.iconClass || item.icon || item.imageUrl) {\n renderedItem.addClass(item.text ? 'k-button-icontext' : 'k-button-icon');\n }\n renderedItem.appendTo(that.element);\n });\n },\n _focus: function () {\n var element = $(this.element);\n if (this.preventFocus) {\n return;\n }\n if (element.find('.' + ACTIVE).length) {\n element.find('.' + ACTIVE).first().focus().addClass(FOCUSED);\n } else {\n element.children().first().focus().addClass(FOCUSED);\n }\n },\n _keyDown: function (e) {\n var that = this;\n var buttonGroup = $(that.element);\n var focusableItems = buttonGroup.find('.' + KBUTTON);\n var focusedElement = buttonGroup.find('.' + FOCUSED);\n var currentIndex = focusableItems.index(focusedElement);\n var isRtl = kendo.support.isRtl(that.element);\n var itemToFocus;\n if (e.keyCode === keys.LEFT && !isRtl || e.keyCode === keys.RIGHT && isRtl) {\n focusedElement.removeClass(FOCUSED);\n itemToFocus = currentIndex === 0 ? focusableItems.eq(focusableItems.length - 1) : $(focusableItems[currentIndex - 1]);\n itemToFocus.focus().addClass(FOCUSED);\n e.preventDefault();\n } else if (e.keyCode === keys.LEFT && isRtl || e.keyCode === keys.RIGHT && !isRtl) {\n focusedElement.removeClass(FOCUSED);\n itemToFocus = currentIndex + 1 === focusableItems.length ? focusableItems.eq(0) : $(focusableItems[currentIndex + 1]);\n itemToFocus.focus().addClass(FOCUSED);\n e.preventDefault();\n } else if (e.keyCode === keys.ENTER || e.keyCode === keys.SPACEBAR) {\n that._select(focusedElement);\n e.preventDefault();\n }\n },\n select: function (button) {\n var that = this, ariaPressed, index = -1;\n if (button === undefined || button === -1) {\n return;\n }\n that.element.find('.' + KBUTTON).removeClass(FOCUSED);\n if (typeof button === 'number') {\n index = button;\n button = that.element.children().eq(button);\n } else if (button.nodeType) {\n button = $(button);\n index = button.index();\n }\n if (that.options.selection === 'multiple') {\n ariaPressed = button.attr('aria-pressed') === 'true';\n button.attr('aria-pressed', !ariaPressed).toggleClass(ACTIVE);\n if (that.selectedIndices.indexOf(index) === -1) {\n that.selectedIndices.push(index);\n } else {\n that.selectedIndices.splice(that.selectedIndices.indexOf(index), 1);\n }\n } else {\n that.selectedIndices = [];\n that.current().attr('aria-pressed', false).removeClass(ACTIVE);\n button.attr('aria-pressed', true).addClass(ACTIVE);\n that.selectedIndices.push(index);\n }\n that.trigger(SELECT, { indices: that.selectedIndices });\n },\n badge: function (item, value) {\n var buttongroup = this.element;\n var button = !isNaN(item) ? buttongroup.children().eq(item) : buttongroup.find(item);\n var validValue = value || value === 0;\n var badge;\n if (!button.length) {\n return;\n }\n badge = button.children('.k-badge').eq(0);\n if (!badge.length && validValue) {\n createBadge(kendo.htmlEncode(value), button);\n return kendo.htmlEncode(value);\n }\n if (validValue) {\n badge.html(kendo.htmlEncode(value));\n } else if (value === false) {\n badge.empty().remove();\n return;\n }\n return badge.html();\n },\n enable: function (enable) {\n if (typeof enable == 'undefined') {\n enable = true;\n }\n this.element.attr('aria-disabled', !enable).toggleClass(DISABLED, !enable);\n this._enable = this.options.enable = enable;\n },\n destroy: function () {\n var that = this;\n that.element.off(NS);\n Widget.fn.destroy.call(that);\n },\n _updateClasses: function (button) {\n var icon = kendo.attrValue(button, 'icon');\n var badge = kendo.attrValue(button, 'badge');\n var image = button.find('img').addClass('k-image');\n var isEmpty = true;\n button.attr('aria-pressed', false).attr('role', 'button').addClass(KBUTTON);\n if (button.is('[disabled]') || button.hasClass(DISABLED)) {\n button.addClass(DISABLED).attr('aria-disabled', true).removeAttr('disabled');\n }\n if (button.is('.' + ACTIVE)) {\n button.removeClass(ACTIVE);\n if (!button.hasClass(DISABLED) && this.options.selection === 'single' || this.options.selection === 'multiple') {\n this.select(button[0]);\n }\n }\n if (!image[0] && icon) {\n button.prepend($(templates.icon('k-icon k-i-' + icon)));\n }\n button.contents().filter(function () {\n return !$(this).hasClass('k-icon') && !$(this).hasClass('k-image');\n }).each(function () {\n if (this.nodeType == 1 || this.nodeType == 3 && $.trim(this.nodeValue).length > 0) {\n isEmpty = false;\n }\n });\n if (image[0] || icon) {\n button.addClass(isEmpty ? KBUTTONICON : KBUTTONICONTEXT);\n }\n if (badge || badge === 0) {\n createBadge(badge, button);\n }\n },\n _click: function (e) {\n var target = $(e.target).closest('.' + KBUTTON);\n if (e.isDefaultPrevented()) {\n return;\n }\n this._select(target);\n },\n _select: function (target) {\n var button = target;\n this.element.find('.' + KBUTTON).removeClass(FOCUSED);\n if (!this._enable || button.is('.' + DISABLED)) {\n button.addClass(FOCUSED);\n return;\n }\n this.select(target[0]);\n button.addClass(FOCUSED);\n }\n });\n ui.plugin(ButtonGroup);\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));"]}