{"version":3,"file":"kendo.dropdownbutton.min.js","names":["factory","define","amd","$","kendo","Widget","NS","ui","keys","extend","html","outerWidth","ARIA_DISABLED","ARIA_LABEL","ARIA_EXPANDED","DISABLED","DISABLEDSTATE","CLICK","OPEN","CLOSE","FOCUS","cssClasses","DropDownButton","window","jQuery","_outerWidth","init","element","options","that","this","enabled","prop","fn","call","wrapper","_mainButton","_renderMenu","_enable","_aria","_attachEvents","notify","_applyCssClasses","name","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"],"sources":["kendo.dropdownbutton.js"],"mappings":"CAAA,SAAWA,GACW,mBAAXC,QAAyBA,OAAOC,IAAMD,OAAO,CAAC,wBAAyB,yBAA0BD,GACxGA,IAFJ,EAGG,WACC,IAQUG,EACFC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAMAC,EAEAC,EACAC,EAEAC,EACAC,EAEAC,EAEAC,EACAC,EAEAC,EAEAC,EAIAC,EAjCEnB,EA+QPoB,OAAOnB,MAAMoB,OA9QRpB,EAAQmB,OAAOnB,MACfC,EAASD,EAAMG,GAAGF,OAClBC,EAAK,uBACLC,EAAKH,EAAMG,GACXC,EAAOJ,EAAMI,KACbC,EAASN,EAAEM,OACXC,EAAON,EAAMM,KACbC,EAAaP,EAAMqB,YAMnBb,EAAgB,gBAEhBC,EAAa,aACbC,EAAgB,gBAEhBC,EAAW,WACXC,EAAgB,aAEhBC,EAAQ,QAERC,EAAO,OACPC,EAAQ,QAERC,EAAQ,QAERC,EACY,gBAGZC,EAAiBjB,EAAOI,OAAO,CAC/BiB,KAAM,SAASC,EAASC,GACpB,IAAIC,EAAOC,KAEXF,EAAQG,SAA8B,IAApBH,EAAQG,UAAsB5B,EAAEwB,GAASK,KAAKjB,GAChEV,EAAO4B,GAAGP,KAAKQ,KAAKL,EAAMF,EAASC,GAEnCC,EAAKM,QAAUN,EAAKF,QAEpBE,EAAKO,cACLP,EAAKQ,cAELR,EAAKS,QAAQT,EAAKD,QAAQG,SAE1BF,EAAKU,QAELV,EAAKW,gBAELpC,EAAMqC,OAAOZ,GAEbA,EAAKa,oBAGTd,QAAS,CACLe,KAAM,iBACNZ,SAAS,EACTa,MAAO,GACPC,QAAS,SACTC,KAAM,SACNC,SAAU,QACVC,WAAY,OACZC,KAAM,KACNC,MAAO,KACPC,SAAU,CACNC,YAAa,mBAIrBC,OAAQ,CACJpC,EACAC,EACAC,GAGJiB,YAAa,WACT,IAAIP,EAAOC,KACPF,EAAUnB,EAAO,GAAIoB,EAAKD,QAAS,CAC/B0B,KAAMzB,EAAKF,QAAQ4B,KAAK,SAAW,kBAGpC3B,EAAQ4B,MAEf3B,EAAKF,QAAQ8B,SAASpC,GAEtBX,EAAKgD,aAAa7B,EAAKF,QAASC,IAGpCW,MAAO,WACH,IAAIV,EAAOC,KACPH,EAAUE,EAAKF,QACfgC,EAAO9B,EAAK8B,KAEhBhC,EAAQ4B,KAlFI,gBAkFgBI,EAAO,OAAS,MAC5ChC,EAAQ4B,KAAKzC,GAAe6C,GAAe,MAC3ChC,EAAQ4B,KAlFI,gBAkFgBI,EAAOA,EAAKC,KAAKL,KAtF5C,MAsFuD,MAEnD5B,EAAQ4B,KAAK1C,IACdc,EAAQ4B,KAAK1C,EAAYc,EAAQkC,OAAS,IAAMhC,EAAKD,QAAQuB,SAASC,cAI9Ef,YAAa,WACT,IAAIR,EAAOC,KACPF,EAAUnB,EAAO,GAAIoB,EAAKD,SAC1B+B,EAAOxD,EAAE,sBAENyB,EAAQ4B,aACR5B,EAAQe,KAEVf,EAAQgB,MAAMkB,SAInBjC,EAAK8B,KAAOA,EAAKI,SAASC,SAASC,MAAMC,gBAAgBzD,EAAO,CAC5D0D,WAAYtC,EAAKF,QACjByC,aAAcvC,EAAKF,QACnB0C,SAAUxC,EAAKyC,gBAAgBC,KAAK1C,GACpC2C,UAAW3C,EAAK4C,iBAAiBF,KAAK1C,GACtC6C,UAAW7C,EAAK8C,OAAOJ,KAAK1C,IAC7BD,IAAUgD,KAAK,qBAGtBN,gBAAiB,SAASO,GACtB,IAAIhD,EAAOC,KACPgD,EAAgBnE,EAAWkB,EAAKF,SAEXE,EAAKkD,QAAQ7D,EAAM,CAAE8D,OAAQnD,EAAKF,UAEvDkD,EAAGI,kBAIPJ,EAAGK,OAAOC,iBAAiBL,GAC3BjD,EAAKF,QAAQ4B,KAAKzC,GAAe,KAGrC2D,iBAAkB,SAASI,GACvB,IAAIhD,EAAOC,KACcD,EAAKkD,QAAQ5D,EAAO,CAAE6D,OAAQnD,EAAKF,UAGxDkD,EAAGI,kBAIPpD,EAAKF,QAAQ4B,KAAKzC,GAAe,GACjCe,EAAKF,QAAQoD,QAAQ3D,KAGzBoB,cAAe,WACX,IAAIX,EAAOC,KAEXD,EAAKF,QAAQyD,GApIP,UAoIoB9E,EAAIuB,EAAKwD,SAASd,KAAK1C,KAGrD8C,OAAQ,SAASE,GACb,IACIS,EAAKT,EAAGS,GACRN,EAASH,EAAGG,OACZO,EAAgBV,EAAGU,cAHZzD,KAKN6B,KAAK6B,QALC1D,KAONiD,QAAQ9D,EAAO,CAAEqE,GAAIA,EAAIN,OAAQA,EAAQO,cAAeA,KAGjEF,SAAU,SAASR,IACJ/C,KAEFH,QAAQ8D,GAAGC,gBAAyBb,EAAGc,UAAYnF,EAAKoF,OAASf,EAAGc,UAAYnF,EAAKqF,UAC1FhB,EAAGI,kBAIXa,MAAO,WACQhE,KACNH,QAAQoD,QAAQ3D,IAGzBkB,QAAS,SAASyD,EAAQC,GACtBlE,KAAKH,QACAsE,YAAYjF,GAAgB+E,GAE7BA,EACAjE,KAAKH,QAAQuE,WAAWtF,GAExBkB,KAAKH,QAAQ4B,KAAK3C,GAAgBmF,GAGjCC,GACDlE,KAAKH,QAAQ4B,KAAKxC,GAAWgF,IAIrCA,OAAQ,SAASA,EAAQI,EAAUH,GAC/B,IAAInE,EAAOC,UAtMvB,IAwMgBiE,IACAA,GAAS,GAGTI,GAAYA,EAASrC,OACrBjC,EAAK8B,KAAKoC,OAAOA,EAAQI,IAI7BtE,EAAKD,QAAQG,QAAUgE,EAEvBlE,EAAKS,QAAQyD,EAAQC,GACrBnE,EAAK8B,KAAKoC,OAAOA,KAGrBK,KAAM,SAASD,GAGPA,GAAYA,EAASrC,QAFdhC,KAGF6B,KAAKyC,KAAKD,IAIvBE,KAAM,SAASF,GAGPA,GAAYA,EAASrC,QAFdhC,KAGF6B,KAAK0C,KAAKF,IAIvBG,KAAM,WACFxE,KAAK6B,KAAK4C,OAAOD,QAGrBd,MAAO,WACH1D,KAAK6B,KAAK4C,OAAOf,SAGrB5C,MAAO,WACH,OAAOd,KAAK6B,KAAKf,SAGrB4D,WAAY,SAAS5E,GACjB,IAAIC,EAAOC,KAEXzB,EAAO4B,GAAGuE,WAAWtE,KAAKL,EAAMD,IAE5BA,EAAQsB,OAAStB,EAAQgB,OAAShB,EAAQkB,QAC1CjB,EAAK8B,KAAK8C,UACV5E,EAAKQ,eAGTR,EAAKO,cAELP,EAAKU,SAGTkE,QAAS,WACL,IAAI5E,EAAOC,KAEXD,EAAK8B,KAAK8C,UAEV5E,EAAKF,QAAQ+E,IAAIpG,GAEjBD,EAAO4B,GAAGwE,QAAQvE,KAAKL,MAI/BtB,EAAGoG,OAAOrF","sourcesContent":["(function (factory) {\n typeof define === 'function' && define.amd ? define(['kendo.html.button', 'kendo.button.menu'], factory) :\n factory();\n})((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 };\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 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);\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\n}));\n"]}