UNPKG

kendo-ui-core

Version:
3 lines (2 loc) 5.71 kB
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("kendo.core.js"),require("kendo.popup.js"),require("kendo.icons.js")):"function"==typeof define&&define.amd?define(["kendo.core.min","kendo.popup.min","kendo.icons.min"],e):((t="undefined"!=typeof globalThis?globalThis:t||self).kendobutton=t.kendobutton||{},t.kendobutton.menu=t.kendobutton.menu||{},t.kendobutton.menu.js=e())}(this,(function(){return function(t,e){var n=window.kendo,i=n.ui.Widget,o=".kendoButtonMenu",s=n.ui,l=n.keys,r=n.htmlEncode,a=t.extend,u=".",d="id",p="next",c="k-disabled",f="aria-disabled",m="tabindex",g="click",k="menuClick",h="menuOpen",b="menuClose",_="keydown",C="focus",v={down:{origin:"bottom left",position:"top left"},up:{origin:"top left",position:"bottom left"}},y="k-menu-popup",x="k-group k-menu-group k-reset",w="k-item k-menu-item",B="k-menu-item",E="k-menu-link-text",H="k-link k-menu-link",P="k-sprite",T="k-image",U={text:null,icon:null,url:null,attributes:null,enabled:!0,hidden:!1,id:null,imageUrl:null,spriteCssClass:null},j=function(t){var e=t.imageUrl;return e?'<img alt="icon" class="'+T+'" src="'+r(e)+'" />':""},D=function(t){var e=t.spriteCssClass;return e?'<span class="'+P+" "+r(e)+'"></span>':""},I=function(t){var e=t.icon;return""+(e?n.ui.icon(r(e)):"")},O=function(t){var e=t.text;return e?'<span class="'+E+'">'+r(e)+"</span>":""},A=function(t){var e=t.imageUrl,n=t.spriteCssClass,i=t.icon,o=t.text;return'<span class="'+H+'">'+j({imageUrl:e})+D({spriteCssClass:n})+I({icon:i})+O({text:o})+"</span>"},F=function(t){var e=t.url,n=t.imageUrl,i=t.spriteCssClass,o=t.icon,s=t.text,l=t.attributes;return'<a href="'+r(e)+'" '+(l.target?'target="'+l.target+'"':"")+' class="'+H+'">'+j({imageUrl:n})+D({spriteCssClass:i})+I({icon:o})+O({text:s})+"</a>"};function K(e,n){var i=n===p?t.fn.next:t.fn.prev,o=n===p?t.fn.first:t.fn.last,s=i.call(e),l=":kendoFocusable";return s.length||(s=o.call(e.parent().find(u+B))),s.is(l)||!s.length?s:s.find(l).length?o.call(s.find(l)):K(s,n)}var L=i.extend({init:function(t,e){var n=this;i.fn.init.call(n,t,e),n.mainButton=e.mainButton,n._clickHandlers={},n._renderList(),n._initPopup(),n._attachEvents(),n._applyCssClasses(n.list)},options:{name:"ButtonMenu",direction:"down",element:null,items:[],size:"medium"},events:[k,h,b],_renderList:function(){var e=this,i=e.options.items,o=e.element.addClass(y),s=e.mainButton.attr(d)||n.guid(),l=t('<ul role="menu"></ul>').addClass(x);e.list=l.appendTo(o),e.list.attr(d,s+"_buttonmenu"),i.forEach(e._renderListItem.bind(e))},_renderListItem:function(e){var i,o,s=this,l=e.attributes?e.attributes.id:null;i=(e=a({},U,e,{enabled:e.enable&&e.enabled})).id||l||n.guid(),o=t('<li id="'+i+'" role="menuitem" class="'+w+'">'+s._renderItemButton(e)+"</li>"),e.click&&(s._clickHandlers[i]=e.click),e.attributes&&(delete e.attributes.target,e.attributes.class&&(o.addClass(e.attributes.class),delete e.attributes.class),o.attr(e.attributes)),e.data&&n.isFunction(e.data)&&o.data(e.data(e)),s.list.append(o),s.enable(e.enabled,o),s._hide(e.hidden,o)},_renderItemButton:function(t){var e=this.options;return e.itemTemplate?n.template(e.itemTemplate)(t):t.url?n.template(F)(t):n.template(A)(t)},_initPopup:function(){var t=this,e=t.options,n=e.direction||"down";t._popup=new s.Popup(t.element,a({},e.popup,{anchor:t.mainButton,isRtl:t._isRtl,toggleTarget:e.toggleTarget,copyAnchorStyles:!1,animation:e.animation,open:t._popupOpenHandler.bind(t),close:t._popupCloseHandler.bind(t),activate:t._popupExpandHandler.bind(t)},v[n]))},_popupOpenHandler:function(t){this.trigger(h)?t.preventDefault():this.list.find(u+B).attr(m,0)},_popupCloseHandler:function(t){this.trigger(b)&&t.preventDefault(),this.list.find(u+B).attr(m,-1)},_popupExpandHandler:function(){this.list.find(":kendoFocusable").first().trigger(C)},adjustPopupWidth:function(t){this.element.addClass("k-split-wrapper"),this.element.css({"min-width":t})},_attachEvents:function(){var t=this;t.list.on(g+o,u+B,t._click.bind(t)).on(_+o,u+B,t.listItemKeydown.bind(t)),t.mainButton.on(_+o,t._keydown.bind(t))},_keydown:function(e){if(!t(e.target).is(u+c)&&!t(e.target).parents(u+c).length)return e.altKey&&e.keyCode===l.DOWN?(this._popup.open(),void e.preventDefault()):void 0},listItemKeydown:function(e){var n=this,i=t(e.target);e.preventDefault(),e.keyCode===l.ESC||e.keyCode===l.TAB||e.altKey&&e.keyCode===l.UP?(n._popup.close(),n.mainButton.trigger(C)):e.keyCode===l.DOWN?K(i,p).trigger(C):e.keyCode===l.UP?K(i,"prev").trigger(C):i.is(u+c)||e.keyCode!==l.SPACEBAR&&e.keyCode!==l.ENTER?e.keyCode===l.HOME?n.list.find(":kendoFocusable").filter(u+B).first().trigger(C):e.keyCode===l.END&&n.list.find(":kendoFocusable").filter(u+B).last().trigger(C):i.trigger(g)},_click:function(e){var n=this,i=t(e.target).closest(u+B),o=i.attr(d);n._clickHandlers[o]&&n._clickHandlers[o](e),n.trigger(k,{id:o,target:i,type:"menu-click",originalEvent:e})},toggle:function(){this._popup.toggle()},enable:function(t,e){(e=e&&e.length?this.list.find(e):this.items()).toggleClass(c,!t),t?e.removeAttr(f):e.attr(f,!t)},_hide:function(t,e){(e=e&&e.length?this.list.find(e):this.items()).toggleClass("k-hidden",t)},hide:function(t){this._hide(!0,t)},show:function(t){this._hide(!1,t)},close:function(){this._popup.close()},items:function(){return this.list.children(u+B)},destroyPopup:function(){var t=this;t._popup&&(t._popup.destroy(),t._popup=null,t.list.off(o),t.list.remove(),t.list=null)},destroy:function(){var t=this;delete t._clickHandlers,t.destroyPopup(),t.mainButton.off(o),i.fn.destroy.call(t)}});n.cssProperties.registerPrefix("ButtonMenu","k-menu-group-"),s.plugin(L)}(window.kendo.jQuery),kendo})); //# sourceMappingURL=kendo.button.menu.min.js.map