UNPKG

@progress/kendo-ui

Version:

This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.

290 lines (225 loc) 8.81 kB
module.exports = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) /******/ return installedModules[moduleId].exports; /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ exports: {}, /******/ id: moduleId, /******/ loaded: false /******/ }; /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ // Flag the module as loaded /******/ module.loaded = true; /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ // Load entry module and return exports /******/ return __webpack_require__(0); /******/ }) /************************************************************************/ /******/ ({ /***/ 0: /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(1027); /***/ }), /***/ 3: /***/ (function(module, exports) { module.exports = function() { throw new Error("define cannot be used indirect"); }; /***/ }), /***/ 1006: /***/ (function(module, exports) { module.exports = require("./kendo.core"); /***/ }), /***/ 1027: /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function(f, define){ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(1006) ], __WEBPACK_AMD_DEFINE_FACTORY__ = (f), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); })(function(){ var __meta__ = { // jshint ignore:line 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", MOUSEDOWN = kendo.support.mousedown, MOUSEUP = kendo.support.mouseup, 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-active"; 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); if (options.enable) { that._tabindex(); } that.iconElement(); 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._removeActive, that)) .on(MOUSEDOWN + NS, proxy(that._addActive, that)) .on(MOUSEUP + NS, proxy(that._removeActive, that)); kendo.notify(that); }, destroy: function() { var that = this; that.wrapper.off(NS); Widget.fn.destroy.call(that); }, events: [ CLICK ], options: { name: "Button", icon: "", iconClass: "", 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() { var that = this; that.element.removeClass(FOCUSEDSTATE); setTimeout(function() { that.element.removeClass(SELECTEDSTATE); }); }, _keydown: function(e) { var that = this; if (e.keyCode == keys.ENTER || e.keyCode == keys.SPACEBAR) { that._addActive(); if (!that._isNativeButton()) { if (e.keyCode == keys.SPACEBAR) { e.preventDefault(); } that._click(e); } } }, _removeActive: function() { this.element.removeClass(SELECTEDSTATE); }, _addActive: function() { if (this.options.enable) { this.element.addClass(SELECTEDSTATE); } }, iconElement: function() { var that = this, element = that.element, options = that.options, icon = options.icon, iconClass = options.iconClass, spriteCssClass = options.spriteCssClass, imageUrl = options.imageUrl, span, img, isEmpty; if (spriteCssClass || imageUrl || icon || iconClass) { isEmpty = true; element.contents().filter(function() { return (!$(this).hasClass("k-sprite") && !$(this).hasClass("k-icon") && !$(this).hasClass("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 (imageUrl) { img = element.children("img.k-image").first(); if (!img[0]) { img = $('<img alt="icon" class="k-image" />').prependTo(element); } img.attr("src", imageUrl); } else if (icon || iconClass) { span = element.children("span.k-icon").first(); if (!span[0]) { span = $('<span></span>').prependTo(element); } span.attr("class", icon ? "k-icon k-i-" + icon : iconClass); } else if (spriteCssClass) { span = element.children("span.k-sprite").first(); if (!span[0]) { span = $('<span class="k-sprite"></span>').prependTo(element); } span.addClass(spriteCssClass); } }, 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); if (enable) { that._tabindex(); } // prevent 'Unspecified error' in IE when inside iframe try { element.blur(); } catch (err) { } } }); kendo.ui.plugin(Button); })(window.kendo.jQuery); return window.kendo; }, __webpack_require__(3)); /***/ }) /******/ });