{"version":3,"file":"kendo.button.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendobutton","js","this","$","undefined$1","kendo","window","Widget","ui","html","keys","CLICK","MOUSEDOWN","support","mousedown","MOUSEUP","mouseup","NS","DISABLED","FOCUSEDSTATE","ACTIVESTATE","setDefaults","icon","iconClass","spriteCssClass","imageUrl","badge","Button","extend","init","element","options","that","fn","call","wrapper","renderButton","attr","enable","enabled","_tabindex","_badge","on","_click","bind","_focus","_blur","_keydown","_removeActive","_addActive","notify","destroy","off","events","name","size","shape","rounded","fillMode","themeColor","_isNativeButton","prop","toLowerCase","e","trigger","event","id","target","preventDefault","addClass","removeClass","setTimeout","keyCode","ENTER","SPACEBAR","toggleClass","err","badgeEelement","badgeOptions","constructor","Object","text","position","align","_classNames","appendTo","Badge","hasOwnProperty","defineProperty","get","defaults","button","cssProperties","registerPrefix","registerValues","values","fillModeValues","concat","roundedValues","plugin","jQuery"],"sources":["kendo.button.js"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.core.js'), require('kendo.badge.js'), require('kendo.html.button.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.core', 'kendo.badge', 'kendo.html.button'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendobutton = global.kendobutton || {}, global.kendobutton.js = factory()));\n})(this, (function () {\n var __meta__ = {\n id: \"button\",\n name: \"Button\",\n category: \"web\",\n description: \"The Button widget displays styled buttons.\",\n depends: [\"core\", \"badge\", \"html.button\"]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n Widget = kendo.ui.Widget,\n html = kendo.html,\n ui = kendo.ui,\n keys = kendo.keys,\n CLICK = \"click\",\n MOUSEDOWN = kendo.support.mousedown,\n MOUSEUP = kendo.support.mouseup,\n MOUSEOUT = \"mouseout\",\n NS = \".kendoButton\",\n DISABLED = \"disabled\",\n DISABLEDSTATE = \"k-disabled\",\n FOCUSEDSTATE = \"k-focus\",\n ACTIVESTATE = \"k-active\";\n\n var BUTTON_DEFAULTS = {\n icon: \"\",\n iconClass: \"\",\n spriteCssClass: \"\",\n imageUrl: \"\",\n badge: null\n };\n kendo.setDefaults(\"button\", BUTTON_DEFAULTS);\n\n var Button = Widget.extend({\n init: function(element, options) {\n var that = this;\n\n Widget.fn.init.call(that, element, options);\n\n element = that.wrapper = that.element;\n options = that.options;\n\n html.renderButton(element, $.extend({}, options));\n\n element.attr(\"role\", \"button\");\n\n options.enable = options.enable && options.enabled && !element.attr(DISABLED);\n that.enable(options.enable);\n\n if (options.enable) {\n that._tabindex();\n }\n\n that._badge();\n\n element\n .on(CLICK + NS, that._click.bind(that))\n .on(\"focus\" + NS, that._focus.bind(that))\n .on(\"blur\" + NS, that._blur.bind(that))\n .on(\"keydown\" + NS, that._keydown.bind(that))\n .on(\"keyup\" + NS, that._removeActive.bind(that))\n .on(MOUSEDOWN + NS, that._addActive.bind(that))\n .on(MOUSEUP + NS + \" \" + MOUSEOUT + NS, that._removeActive.bind(that));\n\n kendo.notify(that);\n },\n\n destroy: function() {\n var that = this;\n\n that.wrapper.off(NS);\n\n if (that.badge) {\n that.badge.destroy();\n }\n\n Widget.fn.destroy.call(that);\n },\n\n events: [\n CLICK\n ],\n\n options: {\n name: \"Button\",\n enable: true,\n enabled: true,\n icon: \"\",\n iconClass: \"\",\n spriteCssClass: \"\",\n imageUrl: \"\",\n badge: null,\n size: \"medium\",\n shape: \"rectangle\",\n rounded: \"medium\",\n fillMode: \"solid\",\n themeColor: \"base\"\n },\n\n _isNativeButton: function() {\n return this.element.prop(\"tagName\").toLowerCase() == \"button\";\n },\n\n _click: function(e) {\n if (this.options.enable) {\n if (this.trigger(CLICK, {\n event: e,\n id: this.element.attr(\"id\"),\n target: this.element\n })) {\n e.preventDefault();\n }\n }\n },\n\n _focus: function() {\n if (this.options.enable) {\n this.element.addClass(FOCUSEDSTATE);\n }\n },\n\n _blur: function() {\n var that = this;\n that.element.removeClass(FOCUSEDSTATE);\n setTimeout(function() {\n that.element.removeClass(ACTIVESTATE);\n });\n },\n\n _keydown: function(e) {\n var that = this;\n if (e.keyCode == keys.ENTER || e.keyCode == keys.SPACEBAR) {\n that._addActive();\n\n if (!that._isNativeButton()) {\n if (e.keyCode == keys.SPACEBAR) {\n e.preventDefault();\n }\n that._click(e);\n }\n }\n },\n\n _removeActive: function() {\n this.element.removeClass(ACTIVESTATE);\n },\n\n _addActive: function() {\n if (this.options.enable) {\n this.element.addClass(ACTIVESTATE);\n }\n },\n\n enable: function(enable) {\n var that = this,\n element = that.element;\n\n if (enable === undefined$1) {\n enable = true;\n }\n\n enable = !!enable;\n that.options.enable = enable;\n element.toggleClass(DISABLEDSTATE, !enable)\n .attr(\"aria-disabled\", !enable)\n .attr(DISABLED, !enable);\n\n if (enable) {\n that._tabindex();\n }\n\n // prevent 'Unspecified error' in IE when inside iframe\n try {\n element.trigger(\"blur\");\n } catch (err) {}\n },\n\n _badge: function(options) {\n var that = this;\n var badgeOptions = options || that.options.badge;\n var badgeEelement;\n\n if (badgeOptions === null || badgeOptions === undefined$1) {\n return;\n }\n\n if (badgeOptions.constructor !== Object) {\n badgeOptions = { text: badgeOptions };\n }\n\n if (badgeOptions.position === undefined$1 || badgeOptions.position === \"\") {\n badgeOptions.position = \"edge\";\n\n if (badgeOptions.align === undefined$1 || badgeOptions.align === \"\") {\n badgeOptions.align = \"top end\";\n }\n }\n\n badgeOptions._classNames = [\"k-button-badge\"];\n\n that.element.addClass(\"k-badge-container\");\n\n badgeEelement = $('').appendTo(that.element);\n that.badge = new ui.Badge(badgeEelement, badgeOptions);\n }\n });\n\n if (Button.fn.hasOwnProperty(\"defaults\") === false) {\n Object.defineProperty(Button.fn, \"defaults\", {\n get: function() {\n return kendo.defaults.button;\n }\n });\n }\n\n kendo.cssProperties.registerPrefix(\"Button\", \"k-button-\");\n\n kendo.cssProperties.registerValues(\"Button\", [{\n prop: \"fillMode\",\n values: kendo.cssProperties.fillModeValues.concat([\"link\"])\n }, {\n prop: \"rounded\",\n values: kendo.cssProperties.roundedValues.concat([['full', 'full']])\n }]);\n\n kendo.ui.plugin(Button);\n\n })(window.kendo.jQuery);\n var kendo$1 = kendo;\n\n return kendo$1;\n\n}));\n"]}