AUI.add("liferay-menu",function(f){var n=Liferay.Util,u=["tl","bl"],v={left:"r",right:"l"},w={left:"l",right:"r"},x={left:"l",right:"r"},y={left:"r",right:"l"},z={down:"t",up:"b"},A={down:"b",up:"t"},t={},B=/\bdirection-(down|left|right|up)\b/,C=/max-display-items-(\d+)/,h=function a(){this._handles=[];a._INSTANCE||(a._INSTANCE=this)};h.prototype={_closeActiveMenu:function(){if(this._activeMenu){var a=this._handles;f.Array.invoke(a,"detach");a.length=0;(a=this._overlay)&&a.hide();a=this._activeTrigger;
this._activeTrigger=this._activeMenu=null;a.attr({"aria-expanded":!1});a.hasClass("lfr-extended")?a.removeClass("btn-primary"):(a.get("parentNode").removeClass("open"),(a=a.ancestor(".portlet"))&&a.removeClass("open"))}},_getAlignPoints:f.cached(function(a){var c=u,d="r",b="l",e=v,g=x;"rtl"===(Liferay.Language.direction[themeDisplay.getLanguageId()]||"ltr")&&(d="l",b="r",e=w,g=y);-1===a.indexOf("auto")&&(a=(a=a.match(B))&&a[1]||"auto","down"!=a&&(c=[(z[a]||"t")+(e[a]||d),(A[a]||"t")+(g[a]||b)]));
return c}),_getMenu:function(a){var c=this,d=c._overlay;d?d.set("align.node",a):(d=(new (f.Component.create({AUGMENTS:[f.WidgetCssClass,f.WidgetPosition,f.WidgetStdMod,f.WidgetModality,f.WidgetPositionAlign,f.WidgetPositionConstrain,f.WidgetStack],CSS_PREFIX:"overlay",EXTENDS:f.Widget,NAME:"overlay"}))({align:{node:a,points:u},constrain:!0,hideClass:!1,preventOverlap:!0,zIndex:Liferay.zIndex.MENU})).render(),Liferay.once("beforeScreenFlip",function(){d.destroy();c._overlay=null}),c._overlay=d);var b=
a.getData("menuListContainer"),e=a.getData("menu"),g=a.getData("menuHeight"),p=e&&t[e.guid()];p&&p.reset();if(!e||!b){b=a.next("ul");var l=b.all("li");e=f.Node.create('\x3cdiv class\x3d"open" /\x3e');b.placeBefore(e);l.last().addClass("last");e.append(b);a.setData("menuListContainer",b);a.setData("menu",e);c._setARIARoles(a,e,b);a.hasClass("select")&&b.delegate("click",function(k){k=k.currentTarget;var q=k.one("i"),m=a.one("i");q&&m&&(q=q.attr("class"),m.attr("class",q));k=k.one(".lfr-icon-menu-text");
m=a.one(".lfr-icon-menu-text");k&&m&&m.setContent(k.text())},"li")}d.setStdModContent(f.WidgetStdMod.BODY,e);g||(g=c._getMenuHeight(a,e,l||b.all("li")),a.setData("menuHeight",g),"auto"!==g&&b.setStyle("maxHeight",g));c._getFocusManager();return e},_getMenuHeight:function(a,c,d){var b=a.attr("className");c="auto";if(-1===b.indexOf("lfr-menu-expanded")&&(b=(b=C.exec(b))&&parseInt(b[1],10))&&d.size()>b)for(this._getLiveSearch(a,a.getData("menu")),c=0,a=d.slice(0,b).get("offsetHeight"),d=a.length-1;0<=
d;d--)c+=a[d];return c},_positionActiveMenu:function(){var a=this._activeMenu,c=this._activeTrigger;if(a){var d=c.attr("className"),b=this._overlay,e=b.get("align"),g=a.one("ul"),p=g.get("offsetHeight");g=g.get("offsetWidth");var l=!1;e.points=this._getAlignPoints(d);a.addClass("lfr-icon-menu-open");if(n.isPhone()||n.isTablet())b.hide(),l=!0;b.setAttrs({align:e,centered:!1,height:p,modal:l,width:g});n.isPhone()||n.isTablet()||(a=b.bodyNode.focusManager)&&a.focus(0);b.show();-1<d.indexOf("lfr-extended")?
c.addClass("btn-primary"):(c.get("parentNode").addClass("open"),(c=c.ancestor(".portlet"))&&c.addClass("open"))}},_setARIARoles:function(a,c){var d=c.all("a").filter(':not([aria-haspopup\x3d"dialog"]'),b=c.one(".lfr-menu-list-search-container");c=c.one("ul");var e="menuitem",g="menu";b&&(e="option",g="listbox");0<d.size()&&(c.setAttribute("role",g),d.set("role",e));a.attr({"aria-haspopup":!0});c.setAttribute("aria-labelledby",a.guid())}};h.handleFocus=function(a){if(a=f.one(a))a.delegate("mouseenter",
f.rbind(h._targetLink,a,"focus"),"li"),a.delegate("mouseleave",f.rbind(h._targetLink,a,"blur"),"li")};var r=[];h.register=function(a){if(a=document.getElementById(a))h._INSTANCE||new h,r.push(a),h._registerTask()};h._registerTask=f.debounce(function(){r.length&&(f.all(r).on(["click","keydown"],f.bind("_registerMenu",h)),r.length=0)},100);h._targetLink=function(a,c){if(a=a.currentTarget.one("a"))a[c]()};Liferay.provide(h,"_getFocusManager",function(){var a=h._INSTANCE,c=a._focusManager;if(!c){var d=
a._overlay.bodyNode;d.plug(f.Plugin.NodeFocusManager,{circular:!0,descendants:"li:not(.hide) a,input",focusClass:"focus",keys:{next:"down:40",previous:"down:38"}});d.on("key",function(){var b=a._activeTrigger;b&&(a._closeActiveMenu(),b.focus())},"down:27,9");c=d.focusManager;d.delegate("mouseenter",function(b){c.get("focused")&&c.focus(b.currentTarget.one("a"))},"li");c.after("activeDescendantChange",function(b){if(b=c.get("descendants").item(b.newVal)){var e=d.one("ul");e&&e.setAttribute("aria-activedescendant",
b.guid())}});a._focusManager=c;Liferay.once("beforeScreenFlip",function(){a._focusManager=null})}c.refresh()},["node-focusmanager"],!0);Liferay.provide(h,"_getLiveSearch",function(a,c){a=c.guid();var d=t[a];if(!d){c=c.one("ul");var b=[];c.all("li").each(function(e){b.push({name:e.one(".taglib-text-icon").text().trim(),node:e})});d=new Liferay.MenuFilter({content:c,menu:h._INSTANCE,minQueryLength:0,queryDelay:0,resultFilters:"phraseMatch",resultTextLocator:"name",source:b});d.get("inputNode").swallowEvent("click");
t[a]=d}},["liferay-menu-filter"],!0);Liferay.provide(h,"_registerMenu",function(a){var c=a.key||a.keyCode;if("keydown"!==a.type||c===f.Event.KeyMap.SPACE){var d=h._INSTANCE;c=d._handles;var b=a.currentTarget,e=d._activeTrigger;if(e)if(e!=b)e.removeClass("btn-primary"),e.get("parentNode").removeClass("open"),(e=e.ancestor(".portlet"))&&e.removeClass("open");else return;b.hasClass("disabled")||(e=d._getMenu(b),d._activeMenu=e,d._activeTrigger=b,b.attr({"aria-expanded":!0}),c.length||(b=b.getData("menuListContainer"),
f.Event.defineOutside("touchend"),c.push(f.getWin().on("resize",f.debounce(d._positionActiveMenu,200,d)),f.getDoc().on("click",d._closeActiveMenu,d),b.on("touchendoutside",function(g){g.preventDefault();d._closeActiveMenu()},d),Liferay.on("dropdownShow",function(g){"LiferayMenu"!==g.src&&d._closeActiveMenu()})),(b=f.DD&&f.DD.DDM)&&c.push(b.on("ddm:start",d._closeActiveMenu,d))),d._positionActiveMenu(),Liferay.fire("dropdownShow",{src:"LiferayMenu"}),a.halt())}},"aui-widget-cssclass event-outside event-touch widget widget-modality widget-position widget-position-align widget-position-constrain widget-stack widget-stdmod".split(" "));
Liferay.Menu=h},"",{requires:["array-invoke","aui-debounce","aui-node","portal-available-languages"]});
