/** * Kendo UI v2016.1.112 (http://www.telerik.com/kendo-ui) * Copyright 2016 Telerik AD. All rights reserved. * * Kendo UI commercial licenses may be obtained at * http://www.telerik.com/purchase/license-agreement/kendo-ui-complete * If you do not own a commercial license, this file shall be governed by the trial license terms. */ (function (f, define) { define('kendo.mobile.buttongroup', ['kendo.core'], f); }(function () { var __meta__ = { id: 'mobile.buttongroup', name: 'ButtonGroup', category: 'mobile', description: 'The Kendo mobile ButtonGroup widget is a linear set of grouped buttons.', depends: ['core'] }; (function ($, undefined) { var kendo = window.kendo, ui = kendo.mobile.ui, Widget = ui.Widget, ACTIVE = 'km-state-active', DISABLE = 'km-state-disabled', SELECT = 'select', SELECTOR = 'li:not(.' + ACTIVE + ')'; function createBadge(value) { return $('' + value + ''); } var ButtonGroup = Widget.extend({ init: function (element, options) { var that = this; Widget.fn.init.call(that, element, options); that.element.addClass('km-buttongroup').find('li').each(that._button); that.element.on(that.options.selectOn, SELECTOR, '_select'); that._enable = true; that.select(that.options.index); if (!that.options.enable) { that._enable = false; that.wrapper.addClass(DISABLE); } }, events: [SELECT], options: { name: 'ButtonGroup', selectOn: 'down', index: -1, enable: true }, current: function () { return this.element.find('.' + ACTIVE); }, select: function (li) { var that = this, index = -1; if (li === undefined || li === -1 || !that._enable || $(li).is('.' + DISABLE)) { return; } that.current().removeClass(ACTIVE); if (typeof li === 'number') { index = li; li = $(that.element[0].children[li]); } else if (li.nodeType) { li = $(li); index = li.index(); } li.addClass(ACTIVE); that.selectedIndex = index; }, badge: function (item, value) { var buttongroup = this.element, badge; if (!isNaN(item)) { item = buttongroup.children().get(item); } item = buttongroup.find(item); badge = $(item.children('.km-badge')[0] || createBadge(value).appendTo(item)); if (value || value === 0) { badge.html(value); return this; } if (value === false) { badge.empty().remove(); return this; } return badge.html(); }, enable: function (enable) { var wrapper = this.wrapper; if (typeof enable == 'undefined') { enable = true; } if (enable) { wrapper.removeClass(DISABLE); } else { wrapper.addClass(DISABLE); } this._enable = this.options.enable = enable; }, _button: function () { var button = $(this).addClass('km-button'), icon = kendo.attrValue(button, 'icon'), badge = kendo.attrValue(button, 'badge'), span = button.children('span'), image = button.find('img').addClass('km-image'); if (!span[0]) { span = button.wrapInner('').children('span'); } span.addClass('km-text'); if (!image[0] && icon) { button.prepend($('')); } if (badge || badge === 0) { createBadge(badge).appendTo(button); } }, _select: function (e) { if (e.which > 1 || e.isDefaultPrevented() || !this._enable) { return; } this.select(e.currentTarget); this.trigger(SELECT, { index: this.selectedIndex }); } }); ui.plugin(ButtonGroup); }(window.kendo.jQuery)); return window.kendo; }, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) { (a3 || a2)(); }));