{"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","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.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}));"]}