/** * 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.button', ['kendo.core'], f); }(function () { var __meta__ = { id: 'button', name: 'Button', category: 'web', description: 'The Button widget displays styled buttons.', depends: ['core'] }; (function ($, undefined) { var kendo = window.kendo, Widget = kendo.ui.Widget, proxy = $.proxy, keys = kendo.keys, CLICK = 'click', KBUTTON = 'k-button', KBUTTONICON = 'k-button-icon', KBUTTONICONTEXT = 'k-button-icontext', NS = '.kendoButton', DISABLED = 'disabled', DISABLEDSTATE = 'k-state-disabled', FOCUSEDSTATE = 'k-state-focused', SELECTEDSTATE = 'k-state-selected'; var Button = Widget.extend({ init: function (element, options) { var that = this; Widget.fn.init.call(that, element, options); element = that.wrapper = that.element; options = that.options; element.addClass(KBUTTON).attr('role', 'button'); options.enable = options.enable && !element.attr(DISABLED); that.enable(options.enable); that._tabindex(); that._graphics(); element.on(CLICK + NS, proxy(that._click, that)).on('focus' + NS, proxy(that._focus, that)).on('blur' + NS, proxy(that._blur, that)).on('keydown' + NS, proxy(that._keydown, that)).on('keyup' + NS, proxy(that._keyup, that)); kendo.notify(that); }, destroy: function () { var that = this; that.wrapper.off(NS); Widget.fn.destroy.call(that); }, events: [CLICK], options: { name: 'Button', icon: '', spriteCssClass: '', imageUrl: '', enable: true }, _isNativeButton: function () { return this.element.prop('tagName').toLowerCase() == 'button'; }, _click: function (e) { if (this.options.enable) { if (this.trigger(CLICK, { event: e })) { e.preventDefault(); } } }, _focus: function () { if (this.options.enable) { this.element.addClass(FOCUSEDSTATE); } }, _blur: function () { this.element.removeClass(FOCUSEDSTATE); }, _keydown: function (e) { var that = this; if (!that._isNativeButton()) { if (e.keyCode == keys.ENTER || e.keyCode == keys.SPACEBAR) { if (e.keyCode == keys.SPACEBAR) { e.preventDefault(); if (that.options.enable) { that.element.addClass(SELECTEDSTATE); } } that._click(e); } } }, _keyup: function () { this.element.removeClass(SELECTEDSTATE); }, _graphics: function () { var that = this, element = that.element, options = that.options, icon = options.icon, spriteCssClass = options.spriteCssClass, imageUrl = options.imageUrl, span, img, isEmpty; if (spriteCssClass || imageUrl || icon) { isEmpty = true; element.contents().not('span.k-sprite').not('span.k-icon').not('img.k-image').each(function (idx, el) { if (el.nodeType == 1 || el.nodeType == 3 && $.trim(el.nodeValue).length > 0) { isEmpty = false; } }); if (isEmpty) { element.addClass(KBUTTONICON); } else { element.addClass(KBUTTONICONTEXT); } } if (icon) { span = element.children('span.k-icon').first(); if (!span[0]) { span = $('').prependTo(element); } span.addClass('k-i-' + icon); } else if (spriteCssClass) { span = element.children('span.k-sprite').first(); if (!span[0]) { span = $('').prependTo(element); } span.addClass(spriteCssClass); } else if (imageUrl) { img = element.children('img.k-image').first(); if (!img[0]) { img = $('icon').prependTo(element); } img.attr('src', imageUrl); } }, enable: function (enable) { var that = this, element = that.element; if (enable === undefined) { enable = true; } enable = !!enable; that.options.enable = enable; element.toggleClass(DISABLEDSTATE, !enable).attr('aria-disabled', !enable).attr(DISABLED, !enable); try { element.blur(); } catch (err) { } } }); kendo.ui.plugin(Button); }(window.kendo.jQuery)); return window.kendo; }, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) { (a3 || a2)(); }));