{"version":3,"file":"kendo.button.menu.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendobutton","menu","js","this","$","undefined$1","kendo","window","Widget","ui","NS","keys","encode","htmlEncode","extend","DOT","ID","NEXT","DISABLEDSTATE","ARIA_DISABLED","TABINDEX","CLICK","MENU_CLICK","OPEN","CLOSE","KEYDOWN","FOCUS","DIRECTIONS","down","origin","position","up","cssClasses","baseItem","text","icon","url","attributes","enabled","hidden","id","imageUrl","spriteCssClass","IMAGE_TEMPLATE","SPRITE_TEMPLATE","ICON_TEMPLATE","TEXT_TEMPLATE","ITEM_TEMPLATE","LINK_TEMPLATE","target","findFocusableSibling","element","dir","getSibling","fn","next","prev","getter","first","last","candidate","call","focusable","length","parent","find","is","ButtonMenu","init","options","that","mainButton","_clickHandlers","_renderList","_initPopup","_attachEvents","_applyCssClasses","list","name","direction","items","size","events","popup","addClass","attr","guid","appendTo","forEach","_renderListItem","bind","item","menuItem","attributesId","enable","_renderItemButton","click","class","data","isFunction","append","_hide","itemTemplate","template","_popup","Popup","anchor","isRtl","_isRtl","toggleTarget","copyAnchorStyles","animation","open","_popupOpenHandler","close","_popupCloseHandler","activate","_popupExpandHandler","ev","trigger","preventDefault","adjustPopupWidth","width","css","on","_click","listItemKeydown","_keydown","parents","altKey","keyCode","DOWN","li","ESC","TAB","UP","SPACEBAR","ENTER","HOME","filter","END","closest","type","originalEvent","toggle","toggleClass","removeAttr","hide","show","children","destroyPopup","destroy","off","remove","cssProperties","registerPrefix","plugin","jQuery"],"sources":["kendo.button.menu.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.popup.js'), require('kendo.icons.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.core', 'kendo.popup', 'kendo.icons'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendobutton = global.kendobutton || {}, global.kendobutton.menu = global.kendobutton.menu || {}, global.kendobutton.menu.js = factory()));\n})(this, (function () {\n var __meta__ = {\n id: \"button.menu\",\n name: \"ButtonMenu\",\n category: \"web\",\n description: \"The popup Menu list part of the SplitButton and the DropDownButton\",\n depends: [\"core\", \"popup\", \"icons\"]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n Widget = kendo.ui.Widget,\n NS = \".kendoButtonMenu\",\n ui = kendo.ui,\n keys = kendo.keys,\n encode = kendo.htmlEncode,\n extend = $.extend,\n\n DOT = \".\",\n ID = \"id\",\n NEXT = \"next\",\n PREV = \"prev\",\n DISABLEDSTATE = \"k-disabled\",\n HIDDEN = \"k-hidden\",\n\n ARIA_DISABLED = \"aria-disabled\",\n ROLE_MENU = \"menu\",\n ROLE_MENU_ITEM = \"menuitem\",\n TABINDEX = \"tabindex\",\n\n CLICK = \"click\",\n MENU_CLICK = \"menuClick\",\n OPEN = \"menuOpen\",\n CLOSE = \"menuClose\",\n KEYDOWN = \"keydown\",\n FOCUS = \"focus\",\n\n DIRECTIONS = {\n \"down\": {\n origin: \"bottom left\",\n position: \"top left\"\n },\n \"up\": {\n origin: \"top left\",\n position: \"bottom left\"\n }\n };\n\n var cssClasses = {\n popup: \"k-menu-popup\",\n list: \"k-menu-group\",\n listItem: \"k-item k-menu-item\",\n menuItem: \"k-menu-item\",\n itemText: \"k-menu-link-text\",\n item: \"k-link k-menu-link\",\n sprite: \"k-sprite\",\n image: \"k-image\",\n icon: \"k-icon\"\n };\n\n var baseItem = {\n text: null,\n icon: null,\n url: null,\n attributes: null,\n enabled: true,\n hidden: false,\n id: null,\n imageUrl: null,\n spriteCssClass: null\n };\n\n var IMAGE_TEMPLATE = ({ imageUrl }) => `${imageUrl ? `\"icon\"` : ''}`;\n var SPRITE_TEMPLATE = ({ spriteCssClass }) => `${spriteCssClass ? `` : ''}`;\n var ICON_TEMPLATE = ({ icon }) => `${icon ? kendo.ui.icon(encode(icon)) : ''}`;\n var TEXT_TEMPLATE = ({ text }) => `${text ? `${encode(text)}` : ''}`;\n\n var ITEM_TEMPLATE = ({ imageUrl, spriteCssClass, icon, text }) => `` +\n `${IMAGE_TEMPLATE({ imageUrl })}` +\n `${SPRITE_TEMPLATE({ spriteCssClass })}` +\n `${ICON_TEMPLATE({ icon })}` +\n `${TEXT_TEMPLATE({ text })}` +\n ``;\n\n var LINK_TEMPLATE = ({ url, imageUrl, spriteCssClass, icon, text, attributes }) => `` +\n `${IMAGE_TEMPLATE({ imageUrl })}` +\n `${SPRITE_TEMPLATE({ spriteCssClass })}` +\n `${ICON_TEMPLATE({ icon })}` +\n `${TEXT_TEMPLATE({ text })}` +\n ``;\n\n function findFocusableSibling(element, dir) {\n var getSibling = dir === NEXT ? $.fn.next : $.fn.prev;\n var getter = dir === NEXT ? $.fn.first : $.fn.last;\n var candidate = getSibling.call(element);\n var focusable = \":kendoFocusable\";\n\n if (!candidate.length) {\n candidate = getter.call(element.parent().find(DOT + cssClasses.menuItem));\n }\n\n if (candidate.is(focusable) || !candidate.length) {\n return candidate;\n }\n\n if (candidate.find(focusable).length) {\n return getter.call(candidate.find(focusable));\n }\n\n return findFocusableSibling(candidate, dir);\n }\n\n var ButtonMenu = Widget.extend({\n init: function(element, options) {\n var that = this;\n\n\n Widget.fn.init.call(that, element, options);\n\n that.mainButton = options.mainButton;\n that._clickHandlers = {};\n\n that._renderList();\n\n that._initPopup();\n\n that._attachEvents();\n\n that._applyCssClasses(that.list);\n },\n\n options: {\n name: \"ButtonMenu\",\n direction: \"down\",\n element: null,\n items: [],\n size: \"medium\",\n },\n\n events: [\n MENU_CLICK,\n OPEN,\n CLOSE\n ],\n\n _renderList: function() {\n var that = this,\n items = that.options.items,\n popup = that.element.addClass(cssClasses.popup),\n id = that.mainButton.attr(ID) || kendo.guid(),\n list = $(\"\").addClass(cssClasses.list);\n\n that.list = list.appendTo(popup);\n\n that.list.attr(ID, id + \"_buttonmenu\");\n\n items.forEach(that._renderListItem.bind(that));\n },\n\n _renderListItem: function(item) {\n var that = this,\n attributesId = item.attributes ? item.attributes.id : null,\n id, menuItem;\n\n item = extend({}, baseItem, item, {\n enabled: item.enable && item.enabled // backward compatibility: support both enable and enabled options.\n });\n\n id = item.id || attributesId || kendo.guid();\n menuItem = $(\"
  • \" + that._renderItemButton(item) + \"
  • \");\n\n if (item.click) {\n that._clickHandlers[id] = item.click;\n }\n\n if (item.attributes) {\n delete item.attributes.target;\n\n if (item.attributes.class) {\n menuItem.addClass(item.attributes.class);\n delete item.attributes.class;\n }\n\n menuItem.attr(item.attributes);\n }\n\n if (item.data && kendo.isFunction(item.data)) {\n menuItem.data(item.data(item));\n }\n\n that.list.append(menuItem);\n\n that.enable(item.enabled, menuItem);\n that._hide(item.hidden, menuItem);\n },\n\n _renderItemButton: function(item) {\n var that = this,\n options = that.options;\n\n if (options.itemTemplate) {\n return kendo.template(options.itemTemplate)(item);\n }\n\n if (item.url) {\n return kendo.template(LINK_TEMPLATE)(item);\n } else {\n return kendo.template(ITEM_TEMPLATE)(item);\n }\n },\n\n _initPopup: function() {\n var that = this,\n options = that.options,\n direction = options.direction || \"down\";\n\n that._popup = new ui.Popup(that.element, extend({}, options.popup, {\n anchor: that.mainButton,\n isRtl: that._isRtl,\n toggleTarget: options.toggleTarget,\n copyAnchorStyles: false,\n animation: options.animation,\n open: that._popupOpenHandler.bind(that),\n close: that._popupCloseHandler.bind(that),\n activate: that._popupExpandHandler.bind(that)\n }, DIRECTIONS[direction]));\n },\n\n _popupOpenHandler: function(ev) {\n var that = this;\n\n var isDefaultPrevented = that.trigger(OPEN);\n\n if (isDefaultPrevented) {\n ev.preventDefault();\n return;\n }\n\n that.list.find(DOT + cssClasses.menuItem).attr(TABINDEX, 0);\n },\n\n _popupCloseHandler: function(ev) {\n var that = this,\n isDefaultPrevented = that.trigger(CLOSE);\n\n if (isDefaultPrevented) {\n ev.preventDefault();\n }\n\n that.list.find(DOT + cssClasses.menuItem).attr(TABINDEX, -1);\n },\n\n _popupExpandHandler: function() {\n var that = this;\n\n that.list.find(\":kendoFocusable\").first().trigger(FOCUS);\n },\n\n adjustPopupWidth: function(width) {\n var that = this;\n\n that.element.css({\n \"min-width\": width\n });\n },\n\n _attachEvents: function() {\n var that = this;\n\n that.list\n .on(CLICK + NS, DOT + cssClasses.menuItem, that._click.bind(that))\n .on(KEYDOWN + NS, DOT + cssClasses.menuItem, that.listItemKeydown.bind(that));\n\n that.mainButton\n .on(KEYDOWN + NS, that._keydown.bind(that));\n },\n\n _keydown: function(ev) {\n var that = this;\n\n if ($(ev.target).is(DOT + DISABLEDSTATE) || $(ev.target).parents(DOT + DISABLEDSTATE).length) {\n return;\n }\n\n if (ev.altKey && ev.keyCode === keys.DOWN) {\n that._popup.open();\n ev.preventDefault();\n return;\n }\n },\n\n listItemKeydown: function(ev) {\n var that = this,\n li = $(ev.target);\n\n ev.preventDefault();\n\n if (ev.keyCode === keys.ESC || ev.keyCode === keys.TAB || (ev.altKey && ev.keyCode === keys.UP)) {\n that._popup.close();\n that.mainButton.trigger(FOCUS);\n } else if (ev.keyCode === keys.DOWN) {\n findFocusableSibling(li, NEXT).trigger(FOCUS);\n } else if (ev.keyCode === keys.UP) {\n findFocusableSibling(li, PREV).trigger(FOCUS);\n } else if (!li.is(DOT + DISABLEDSTATE) && (ev.keyCode === keys.SPACEBAR || ev.keyCode === keys.ENTER)) {\n li.trigger(CLICK);\n } else if (ev.keyCode === keys.HOME) {\n that.list.find(\":kendoFocusable\")\n .filter(DOT + cssClasses.menuItem)\n .first().trigger(FOCUS);\n } else if (ev.keyCode === keys.END) {\n that.list.find(\":kendoFocusable\")\n .filter(DOT + cssClasses.menuItem)\n .last().trigger(FOCUS);\n }\n },\n\n _click: function(ev) {\n var that = this,\n target = $(ev.target).closest(DOT + cssClasses.menuItem),\n id = target.attr(ID);\n\n if (that._clickHandlers[id]) {\n that._clickHandlers[id](ev);\n }\n\n that.trigger(MENU_CLICK, { id: id, target: target, type: \"menu-click\", originalEvent: ev });\n },\n\n toggle: function() {\n this._popup.toggle();\n },\n\n enable: function(enable, items) {\n var that = this;\n\n if (!items || !items.length) {\n items = that.items();\n } else {\n items = that.list.find(items);\n }\n\n items.toggleClass(DISABLEDSTATE, !enable);\n\n if (enable) {\n items.removeAttr(ARIA_DISABLED);\n } else {\n items.attr(ARIA_DISABLED, !enable);\n }\n },\n\n\n _hide: function(hidden, items) {\n var that = this;\n\n if (!items || !items.length) {\n items = that.items();\n } else {\n items = that.list.find(items);\n }\n\n items.toggleClass(HIDDEN, hidden);\n },\n\n hide: function(items) {\n this._hide(true, items);\n },\n\n show: function(items) {\n this._hide(false, items);\n },\n\n close: function() {\n this._popup.close();\n },\n\n items: function() {\n return this.list.children(DOT + cssClasses.menuItem);\n },\n\n destroyPopup: function() {\n var that = this;\n\n if (that._popup) {\n that._popup.destroy();\n that._popup = null;\n\n that.list.off(NS);\n that.list.remove();\n that.list = null;\n }\n },\n\n destroy: function() {\n var that = this;\n\n delete that._clickHandlers;\n\n that.destroyPopup();\n that.mainButton.off(NS);\n Widget.fn.destroy.call(that);\n }\n });\n\n kendo.cssProperties.registerPrefix(\"ButtonMenu\", \"k-menu-group-\");\n\n ui.plugin(ButtonMenu);\n\n })(window.kendo.jQuery);\n var kendo$1 = kendo;\n\n return kendo$1;\n\n}));\n"]}