UNPKG

@progress/kendo-ui

Version:

This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.

1 lines 5.71 kB
module.exports=function(n){var i={};function r(e){if(i[e])return i[e].exports;var t=i[e]={exports:{},id:e,loaded:!1};return n[e].call(t.exports,t,t.exports,r),t.loaded=!0,t.exports}return r.m=n,r.c=i,r.p="",r(0)}({0:function(e,t,n){e.exports=n(1090)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1051:function(e,t){e.exports=require("./kendo.core")},1052:function(e,t){e.exports=require("./kendo.popup")},1090:function(e,t,n){var i;n(3),n=[n(1051),n(1052)],void 0===(t="function"==typeof(i=function(){var e={id:"button.menu",name:"ButtonMenu",category:"web",description:"The popup Menu list part of the SplitButton and the DropDownButton",depends:["core","popup"]},o=window.kendo.jQuery,n=void 0,s=window.kendo,i=s.ui.Widget,t=".kendoButtonMenu",c=s.ui,r=s.keys,f=o.extend,l=".",a="id",m="next",g="prev",u="k-disabled",k="k-hidden",h="aria-disabled",v="menu",_="menuitem",y="tabindex",C="click",b="menuClick",x="menuOpen",w="menuClose",I="keydown",p="focus",d={popup:"k-menu-popup",list:"k-group k-menu-group k-reset",listItem:"k-item k-menu-item",menuItem:"k-menu-item",itemText:"k-menu-link-text",item:"k-link k-menu-link",sprite:"k-sprite",image:"k-image",icon:"k-icon"},B={text:null,icon:null,url:null,attributes:null,enabled:true,hidden:false,id:null,imageUrl:null,spriteCssClass:null},E='#if(imageUrl){#<img alt="icon" class="'+d.image+'" src="#:imageUrl#" />#}#',H='#if(spriteCssClass){#<span class="'+d.sprite+' #:spriteCssClass#"></span>#}#',P='#if(icon){#<span class="'+d.icon+' k-i-#:icon#"></span>#}#',T='#if(text){#<span class="'+d.itemText+'">#:text#</span>#}#',D='<span class="'+d.item+'">'+E+H+P+T+"</span>",M='<a href="#:url#" class="'+d.item+'">'+E+H+P+T+"</a>";function O(e,t){var n=t===m?o.fn.next:o.fn.prev;var i=t===m?o.fn.first:o.fn.last;var r=n.call(e);var s=":kendoFocusable";if(!r.length)r=i.call(e.parent().find(l+d.menuItem));if(r.is(s)||!r.length)return r;if(r.find(s).length)return i.call(r.find(s));return O(r,t)}var A=i.extend({init:function(e,t){var n=this;i.fn.init.call(n,e,t);n.mainButton=t.mainButton;n._clickHandlers={};n._renderList();n._initPopup();n._attachEvents();n._applyCssClasses(n.list)},options:{name:"ButtonMenu",element:null,items:[],size:"medium"},events:[b,x,w],_renderList:function(){var e=this,t=e.options.items,n=e.element.addClass(d.popup),i=e.mainButton.attr(a)||s.guid(),r=o('<ul role="'+v+'"></ul>').addClass(d.list);e.list=r.appendTo(n);e.list.attr(a,i+"_buttonmenu");t.forEach(e._renderListItem.bind(e))},_renderListItem:function(e){var t=this,n,i;e=f({},B,e,{enabled:e.enable&&e.enabled});n=e.id||s.guid();i=o('<li id="'+n+'" role="'+_+'" class="'+d.listItem+'">'+t._renderItemButton(e)+"</li>");if(e.click)t._clickHandlers[n]=e.click;if(e.attributes)i.attr(e.attributes);if(e.data&&s.isFunction(e.data))i.data(e.data(e));t.list.append(i);t.enable(e.enabled,i);t._hide(e.hidden,i)},_renderItemButton:function(e){var t=this,n=t.options;if(n.itemTemplate)return s.template(n.itemTemplate)(e);if(e.url)return s.template(M)(e);else return s.template(D)(e)},_initPopup:function(){var e=this,t=e.options;e._popup=new c.Popup(e.element,f({},t.popup,{anchor:e.mainButton,isRtl:e._isRtl,toggleTarget:t.toggleTarget,copyAnchorStyles:false,animation:t.animation,open:e._popupOpenHandler.bind(e),close:e._popupCloseHandler.bind(e),activate:e._popupExpandHandler.bind(e)}))},_popupOpenHandler:function(e){var t=this;var n=t.trigger(x);if(n){e.preventDefault();return}t.list.find(l+d.menuItem).attr(y,0)},_popupCloseHandler:function(e){var t=this,n=t.trigger(w);if(n)e.preventDefault();t.list.find(l+d.menuItem).attr(y,-1)},_popupExpandHandler:function(){var e=this;e.list.find(":kendoFocusable").first().trigger(p)},adjustPopupWidth:function(e){var t=this;t.element.addClass("k-split-wrapper");t.element.css({"min-width":e})},_attachEvents:function(){var e=this;e.list.on(C+t,l+d.menuItem,e._click.bind(e)).on(I+t,l+d.menuItem,e.listItemKeydown.bind(e));e.mainButton.on(I+t,e._keydown.bind(e))},_keydown:function(e){var t=this;if(o(e.target).is(l+u)||o(e.target).parents(l+u).length)return;if(e.altKey&&e.keyCode===r.DOWN){t._popup.open();e.preventDefault();return}},listItemKeydown:function(e){var t=this,n=o(e.target);e.preventDefault();if(e.keyCode===r.ESC||e.keyCode===r.TAB||e.altKey&&e.keyCode===r.UP){t._popup.close();t.mainButton.trigger(p)}else if(e.keyCode===r.DOWN)O(n,m).trigger(p);else if(e.keyCode===r.UP)O(n,g).trigger(p);else if(!n.is(l+u)&&(e.keyCode===r.SPACEBAR||e.keyCode===r.ENTER))n.trigger(C);else if(e.keyCode===r.HOME)t.list.find(":kendoFocusable").filter(l+d.menuItem).first().trigger(p);else if(e.keyCode===r.END)t.list.find(":kendoFocusable").filter(l+d.menuItem).last().trigger(p)},_click:function(e){var t=this,n=o(e.target).closest(l+d.menuItem),i=n.attr(a);if(t._clickHandlers[i])t._clickHandlers[i](e);t.trigger(b,{id:i,target:n,type:"menu-click",originalEvent:e})},toggle:function(){this._popup.toggle()},enable:function(e,t){var n=this;if(!t||!t.length)t=n.items();else t=n.list.find(t);t.toggleClass(u,!e);if(e)t.removeAttr(h);else t.attr(h,!e)},_hide:function(e,t){var n=this;if(!t||!t.length)t=n.items();else t=n.list.find(t);t.toggleClass(k,e)},hide:function(e){this._hide(true,e)},show:function(e){this._hide(false,e)},close:function(){this._popup.close()},items:function(){return this.list.children(l+d.menuItem)},destroyPopup:function(){var e=this;if(e._popup){e._popup.destroy();e._popup=null;e.list.off(t);e.list.remove();e.list=null}},destroy:function(){var e=this;delete e._clickHandlers;e.destroyPopup();e.mainButton.off(t);i.fn.destroy.call(e)}});return s.cssProperties.registerPrefix("ButtonMenu","k-menu-group-"),c.plugin(A),window.kendo})?i.apply(t,n):i)||(e.exports=t)}});