{"version":3,"file":"kendo.dropdownbutton.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendodropdownbutton","js","this","$","undefined$1","kendo","window","Widget","ui","NS","keys","extend","html","outerWidth","_outerWidth","ARIA_DISABLED","ARIA_LABEL","ARIA_EXPANDED","DISABLED","DISABLEDSTATE","CLICK","OPEN","CLOSE","FOCUS","cssClasses","DropDownButton","init","element","options","that","enabled","prop","fn","call","wrapper","_mainButton","_renderMenu","_enable","_aria","_attachEvents","notify","_applyCssClasses","name","direction","items","rounded","size","fillMode","themeColor","icon","popup","messages","labelSuffix","events","type","attr","click","addClass","renderButton","menu","list","text","length","appendTo","document","body","kendoButtonMenu","mainButton","toggleTarget","menuOpen","menuOpenHandler","bind","menuClose","menuCloseHandler","menuClick","_click","data","ev","computedWidth","trigger","target","preventDefault","sender","adjustPopupWidth","on","_keydown","id","originalEvent","close","is","DOT","keyCode","ENTER","SPACEBAR","focus","enable","soft","toggleClass","removeAttr","menuItem","hide","show","open","_popup","setOptions","destroy","off","plugin","jQuery"],"sources":["kendo.dropdownbutton.js"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.html.button.js'), require('kendo.button.menu.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.html.button', 'kendo.button.menu'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendodropdownbutton = global.kendodropdownbutton || {}, global.kendodropdownbutton.js = factory()));\n})(this, (function () {\n var __meta__ = {\n id: \"dropdownbutton\",\n name: \"DropDownButton\",\n category: \"web\",\n description: \"The DropDownButton allows the user to execute an action from a drop-down list.\",\n depends: [\"button.menu\", \"html.button\"]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n Widget = kendo.ui.Widget,\n NS = \".kendoDropDownButton\",\n ui = kendo.ui,\n keys = kendo.keys,\n extend = $.extend,\n html = kendo.html,\n outerWidth = kendo._outerWidth,\n\n DOT = \".\",\n ID = \"id\",\n\n ARIA_HASPOPUP = \"aria-haspopup\",\n ARIA_DISABLED = \"aria-disabled\",\n ARIA_CONTROLS = \"aria-controls\",\n ARIA_LABEL = \"aria-label\",\n ARIA_EXPANDED = \"aria-expanded\",\n\n DISABLED = \"disabled\",\n DISABLEDSTATE = \"k-disabled\",\n\n CLICK = \"click\",\n KEYDOWN = \"keydown\",\n OPEN = \"open\",\n CLOSE = \"close\",\n\n FOCUS = \"focus\";\n\n var cssClasses = {\n menuButton: \"k-menu-button\",\n dropdownButton: \"k-dropdown-button\"\n };\n\n var DropDownButton = Widget.extend({\n init: function(element, options) {\n var that = this;\n\n options.enabled = options.enabled !== false && !$(element).prop(DISABLED);\n Widget.fn.init.call(that, element, options);\n\n that.wrapper = that.element;\n\n that._mainButton();\n that._renderMenu();\n\n that._enable(that.options.enabled);\n\n that._aria();\n\n that._attachEvents();\n\n kendo.notify(that);\n\n that._applyCssClasses();\n },\n\n options: {\n name: \"DropDownButton\",\n direction: \"down\",\n enabled: true,\n items: [],\n rounded: \"medium\",\n size: \"medium\",\n fillMode: \"solid\",\n themeColor: \"base\",\n icon: null,\n popup: null,\n messages: {\n labelSuffix: \"dropdownbutton\"\n }\n },\n\n events: [\n CLICK,\n OPEN,\n CLOSE\n ],\n\n _mainButton: function() {\n var that = this,\n options = extend({}, that.options, {\n type: that.element.attr(\"type\") || \"button\"\n });\n\n delete options.click;\n\n that.element.addClass(cssClasses.menuButton).addClass(cssClasses.dropdownButton);\n\n html.renderButton(that.element, options);\n },\n\n _aria: function() {\n var that = this,\n element = that.element,\n menu = that.menu;\n\n element.attr(ARIA_HASPOPUP, menu ? \"menu\" : null);\n element.attr(ARIA_EXPANDED, menu ? false : null);\n element.attr(ARIA_CONTROLS, menu ? menu.list.attr(ID) : null);\n\n if (!element.attr(ARIA_LABEL)) {\n element.attr(ARIA_LABEL, element.text() + \" \" + that.options.messages.labelSuffix);\n }\n },\n\n _renderMenu: function() {\n var that = this,\n options = extend({}, that.options),\n menu = $(\"
\");\n\n delete options.click;\n delete options.name;\n\n if (!options.items.length) {\n return;\n }\n\n that.menu = menu.appendTo(document.body).kendoButtonMenu(extend({\n mainButton: that.element,\n toggleTarget: that.element,\n menuOpen: that.menuOpenHandler.bind(that),\n menuClose: that.menuCloseHandler.bind(that),\n menuClick: that._click.bind(that)\n }, options)).data(\"kendoButtonMenu\");\n },\n\n menuOpenHandler: function(ev) {\n var that = this,\n computedWidth = outerWidth(that.element);\n\n var isDefaultPrevented = that.trigger(OPEN, { target: that.element });\n if (isDefaultPrevented) {\n ev.preventDefault();\n return;\n }\n\n ev.sender.adjustPopupWidth(computedWidth);\n that.element.attr(ARIA_EXPANDED, true);\n },\n\n menuCloseHandler: function(ev) {\n var that = this,\n isDefaultPrevented = that.trigger(CLOSE, { target: that.element });\n\n if (isDefaultPrevented) {\n ev.preventDefault();\n return;\n }\n\n that.element.attr(ARIA_EXPANDED, false);\n that.element.trigger(FOCUS);\n },\n\n _attachEvents: function() {\n var that = this;\n\n that.element.on(KEYDOWN + NS, that._keydown.bind(that));\n },\n\n _click: function(ev) {\n var that = this,\n id = ev.id,\n target = ev.target,\n originalEvent = ev.originalEvent;\n\n that.menu.close();\n\n that.trigger(CLICK, { id: id, target: target, originalEvent: originalEvent });\n },\n\n _keydown: function(ev) {\n var that = this;\n\n if (that.element.is(DOT + DISABLEDSTATE) && (ev.keyCode === keys.ENTER || ev.keyCode === keys.SPACEBAR)) {\n ev.preventDefault();\n }\n },\n\n focus: function() {\n var that = this;\n that.element.trigger(FOCUS);\n },\n\n _enable: function(enable, soft) {\n this.element\n .toggleClass(DISABLEDSTATE, !enable);\n\n if (enable) {\n this.element.removeAttr(ARIA_DISABLED);\n } else {\n this.element.attr(ARIA_DISABLED, !enable);\n }\n\n if (!soft) {\n this.element.attr(DISABLED, !enable);\n }\n },\n\n enable: function(enable, menuItem, soft) {\n var that = this;\n\n if (enable === undefined$1) {\n enable = true;\n }\n\n if (menuItem && menuItem.length) {\n that.menu.enable(enable, menuItem);\n return;\n }\n\n that.options.enabled = enable;\n\n that._enable(enable, soft);\n that.menu.enable(enable);\n },\n\n hide: function(menuItem) {\n var that = this;\n\n if (menuItem && menuItem.length) {\n that.menu.hide(menuItem);\n }\n },\n\n show: function(menuItem) {\n var that = this;\n\n if (menuItem && menuItem.length) {\n that.menu.show(menuItem);\n }\n },\n\n open: function() {\n this.menu._popup.open();\n },\n\n close: function() {\n this.menu._popup.close();\n },\n\n items: function() {\n return this.menu.items();\n },\n\n setOptions: function(options) {\n var that = this;\n\n Widget.fn.setOptions.call(that, options);\n\n if (options.popup || options.items || options.size) {\n that.menu.destroy();\n that._renderMenu();\n }\n\n that._mainButton();\n\n that._aria();\n },\n\n destroy: function() {\n var that = this;\n\n that.menu.destroy();\n\n that.element.off(NS);\n\n Widget.fn.destroy.call(that);\n }\n });\n\n ui.plugin(DropDownButton);\n\n })(window.kendo.jQuery);\n var kendo$1 = kendo;\n\n return kendo$1;\n\n}));\n"]}