{"version":3,"file":"kendo.button.min.js","sources":["kendo.button.js"],"sourcesContent":["(function (f, define) {\n define('kendo.button',[\"./kendo.core\", \"./kendo.badge\", \"./kendo.html.button\"], f);\n})(function () {\n\n var __meta__ = { // jshint ignore:line\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) {\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 SELECTEDSTATE = \"k-selected\";\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, { event: e })) {\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(SELECTEDSTATE);\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(SELECTEDSTATE);\n },\n\n _addActive: function() {\n if (this.options.enable) {\n this.element.addClass(SELECTEDSTATE);\n }\n },\n\n enable: function(enable) {\n var that = this,\n element = that.element;\n\n if (enable === undefined) {\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() {\n var that = this;\n var badgeOptions = that.options.badge;\n var badgeEelement;\n\n if (badgeOptions === null || badgeOptions === undefined) {\n return;\n }\n\n if (badgeOptions.constructor !== Object) {\n badgeOptions = { text: badgeOptions };\n }\n\n if (badgeOptions.position === undefined || badgeOptions.position === \"\") {\n badgeOptions.position = \"edge\";\n\n if (badgeOptions.align === undefined || 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\n return window.kendo;\n\n}, typeof define == 'function' && define.amd ? define : function(a1, a2, a3){ (a3 || a2)(); });\n\n"],"names":["define","__meta__","id","name","category","description","depends","$","window","kendo","jQuery","undefined","Widget","ui","html","keys","CLICK","MOUSEDOWN","support","mousedown","MOUSEUP","mouseup","MOUSEOUT","NS","DISABLED","DISABLEDSTATE","FOCUSEDSTATE","SELECTEDSTATE","BUTTON_DEFAULTS","Button","setDefaults","icon","iconClass","spriteCssClass","imageUrl","badge","extend","init","element","options","that","this","fn","call","wrapper","renderButton","attr","enable","enabled","_tabindex","_badge","on","_click","bind","_focus","_blur","_keydown","_removeActive","_addActive","notify","destroy","off","events","size","shape","rounded","fillMode","themeColor","_isNativeButton","prop","toLowerCase","e","trigger","event","preventDefault","addClass","removeClass","setTimeout","keyCode","ENTER","SPACEBAR","toggleClass","err","badgeOptions","badgeEelement","constructor","Object","text","position","align","_classNames","appendTo","Badge","hasOwnProperty","defineProperty","get","defaults","button","cssProperties","registerPrefix","registerValues","values","fillModeValues","concat","roundedValues","plugin","amd","a1","a2","a3"],"mappings":"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"}