"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),n=require("primereact/api"),t=require("primereact/componentbase"),r=require("primereact/csstransition"),i=require("primereact/hooks"),o=require("primereact/overlayservice"),u=require("primereact/portal"),a=require("primereact/utils"),c=require("primereact/icons/angleright"),l=require("primereact/ripple");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function p(e){if(e&&e.__esModule)return e;var n=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:function(){return e[t]}})}})),n.default=e,Object.freeze(n)}var m=p(e),d=s(n);function f(){return f=Object.assign?Object.assign.bind():function(e){for(var n=1;ne.length)&&(n=e.length);for(var t=0,r=Array(n);t .p-submenu-list {\n display: block;\n left: 100%;\n top: 0;\n }\n\n .p-tieredmenu .p-menuitem-active > .p-submenu-list-flipped {\n left: -100%;\n }\n}\n",inlineStyles:{submenu:function(e){var n=e.subProps;return{display:!n.root&&n.parentActive?"block":"none"}}}}});function j(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function D(e){for(var n=1;nr.height?r.height-u+"px":"0px",parseInt(n.left,10)+o+i>r.width-a.DomHandler.calculateScrollbarWidth()&&a.DomHandler.addClass(t.current,"p-submenu-list-flipped")}},b=function(n,t){var r=t.item;x(t)?n.preventDefault():(r.command&&r.command({originalEvent:n,item:r}),e.onItemClick&&e.onItemClick({originalEvent:n,processedItem:t}),r.url||(n.preventDefault(),n.stopPropagation()))},v=function(n){return n.item&&n.item.id?n.item.id:"".concat(e.menuId,"_").concat(n.key)},y=function(e,n,t){return e&&e.item?a.ObjectUtils.getItemValue(e.item[n],t):void 0},g=function(n){return e.activeItemPath.some((function(e){return e.key===n.key}))},h=function(e){return!1!==y(e,"visible")},x=function(e){return y(e,"disabled")},I=function(n){return e.focusedItemId===v(n)},O=function(e){return a.ObjectUtils.isNotEmpty(e.items)},E=function(n,t){e.onItemMouseEnter&&e.onItemMouseEnter({originalEvent:n,processedItem:t})},k=function(n){return n-e.model.slice(0,n).filter((function(e){return h(e)&&y(e,"separator")})).length+1};i.useUpdateEffect((function(){e.root||!e.parentActive||e.isMobileMode||d()}),[e.parentActive]),m.useImperativeHandle(n,(function(){return{getElement:function(){return t.current}}}));var S=function(n){var t="separator_"+n,i=r({className:u("separator"),role:"separator"},o("separator",{hostName:e.hostName}));return m.createElement("li",f({},i,{key:t}))},j=function(n,t){return O(n)?m.createElement(w,{id:e.id+"_"+t,menuProps:e.menuProps,model:n.items,menuId:e.menuId,ariaLabelledby:v(n),focusedItemId:e.focusedItemId,activeItemPath:e.activeItemPath,level:e.level+1,onItemClick:e.onItemClick,popup:e.popup,onItemMouseEnter:e.onItemMouseEnter,parentActive:g(n),isMobileMode:e.isMobileMode,submenuIcon:e.submenuIcon,ptm:e.ptm,cx:u,sx:s}):null},P=function(n,t){if(!1===h(n))return null;var i=n.item,o=y(n,"style"),s=y(n,"className"),d=y(n,"icon"),S=y(n,"target"),w=y(n,"url"),P=v(n),N=I(n),H=g(n),M=x(n),K=O(n),U=a.classNames("p-menuitem-link"),C=a.classNames("p-menuitem-icon",d),T=r({className:a.classNames(i.icon,"p-menuitem-icon","icon")},p(n,"icon")),_=a.IconUtils.getJSXIcon(d,D({},T),{props:e.menuProps}),A=r({className:u("label")},p(n,"label")),L=i.label&&m.createElement("span",A,i.label),R=r({className:u("submenuIcon")},p(n,"submenuIcon")),q=K&&a.IconUtils.getJSXIcon(e.submenuIcon||m.createElement(c.AngleRightIcon,R),D({},R),{props:e.menuProps}),B=j(n,t),W=r({href:w||"#",tabIndex:"-1",onFocus:function(e){return e.stopPropagation()},className:u("action"),target:S},p(n,"action")),Z=m.createElement("a",W,_,L,q,m.createElement(l.Ripple,null));i.template&&(Z=a.ObjectUtils.getJSXElement(i.template,i,{className:U,labelClassName:"p-menuitem-text",iconClassName:C,submenuIconClassName:"p-submenu-icon",element:Z,props:e,active:H,disabled:M}));var F=r({onClick:function(e){return b(e,n)},onMouseEnter:function(e){return E(e,n)},className:u("content")},p(n,"content")),z=r({id:P,"aria-label":i.label,"aria-disabled":M,"aria-expanded":K?H:void 0,"aria-haspopup":K&&!w?"menu":void 0,"aria-setsize":e.model.filter((function(e){return h(e)&&!y(e,"separator")})).length,"aria-posinset":k(t),"data-p-highlight":H,"data-p-disabled":M,"data-p-visited":N,className:u("menuitem",{itemClassName:s,active:H,focused:N,disabled:M}),style:o,onMouseEnter:function(e){return E(e,i)},role:"menuitem"},p(n,"menuitem"));return m.createElement("li",f({},z,{key:P}),m.createElement("div",F,Z),B)},N=e.model?e.model.map((function(e,n){return!1===e.visible?null:y(e,"separator")?S(n):P(e,n)})):null,H=e.root?"menu":"submenu",M=r({ref:t,id:e.id,tabIndex:e.tabIndex,onFocus:e.onFocus,onBlur:e.onBlur,onKeyDown:e.onKeyDown,className:u(H,{subProps:e}),style:s(H,{subProps:e}),role:e.root?"menubar":"menu","aria-label":e.ariaLabel,"aria-labelledby":e.ariaLabelledby,"aria-orientation":e.ariaOrientation,"aria-activedescendant":e.focusedItemId},o(H,{hostName:e.hostName}));return m.createElement("ul",M,N)})));function P(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function N(e){for(var n=1;n-1?n+e+1:e},Xe=function(e){var n=e>0?a.ObjectUtils.findLastIndex(Z.slice(0,e),(function(e){return We(e)})):-1;return n>-1?n:e},Ye=function(){return Z.findIndex((function(e){return Ze(e)}))},$e=function(){var e=Ye();return e<0?ze():e},Ge=function(){var e=Ye();return e<0?Ve():e},Qe=function(e){ce.current=(ce.current||"")+e;var n=-1,t=!1;return-1!==(n=-1!==C.index?-1===(n=Z.slice(C.index).findIndex((function(e){return Be(e)})))?Z.slice(0,C.index).findIndex((function(e){return Be(e)})):n+C.index:Z.findIndex((function(e){return Be(e)})))&&(t=!0),-1===n&&-1===C.index&&(n=$e()),-1!==n&&en(n),le.current&&clearTimeout(le),le.current=setTimeout((function(){ce.current="",le.current=null}),500),t},en=function(e){C.index!==e&&(T(N(N({},C),{},{index:e})),nn())},nn=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1,n=-1!==e?"".concat(v,"_").concat(e):M,t=a.DomHandler.findSingle(_e(),'li[id="'.concat(n,'"]'));t&&t.scrollIntoView&&t.scrollIntoView({block:"nearest",inline:"start"})},tn=m.useCallback((function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",i=[];return e&&e.forEach((function(e,o){var u=(""!==r?r+"_":"")+o,a={item:e,index:o,level:n,key:u,parent:t,parentKey:r};a.items=tn(e.items,n+1,a,u),i.push(a)})),i}),[]),rn=function(){if(!ae.current){ae.current=a.DomHandler.createInlineStyle(s&&s.nonce||d.default.nonce,s&&s.styleContainer);var e="".concat(Y),n="\n@media screen and (max-width: ".concat(p.breakpoint,") {\n .p-tieredmenu[").concat(e,"] > ul {\n max-height: ").concat(p.scrollHeight,";\n overflow: ").concat(p.scrollHeight?"auto":"",";\n }\n\n .p-tieredmenu[").concat(e,"] .p-submenu-list {\n position: relative;\n }\n\n .p-tieredmenu[").concat(e,"] .p-menuitem-active > .p-submenu-list {\n left: 0;\n box-shadow: none;\n border-radius: 0;\n padding: 0 0 0 calc(var(--inline-spacing) * 2); /* @todo */\n }\n\n .p-tieredmenu[").concat(e,"] .p-menuitem-active > .p-menuitem-link > .p-submenu-icon {\n transform: rotate(-180deg);\n }\n\n .p-tieredmenu[").concat(e,'] .p-submenu-icon:before {\n content: "\\e930";\n }\n\n ').concat(p.popup?"":".p-tieredmenu[".concat(e,"] { width: 100%; }"),"\n}\n");ae.current.innerHTML=n}},on=function(){ae.current=a.DomHandler.removeInlineStyle(ae.current)},un=function(){var e;p.autoZIndex&&a.ZIndexUtils.set("menu",re.current,s&&s.autoZIndex||d.default.autoZIndex,p.baseZIndex||s&&s.zIndex.menu||d.default.zIndex.menu),a.DomHandler.addStyles(re.current,{position:"absolute",top:"0",left:"0"}),e=a.DomHandler.getOuterWidth(oe.current)>a.DomHandler.getOuterWidth(re.current),a.DomHandler.alignOverlay(re.current,oe.current,p.appendTo,e),a.DomHandler.focus(ie.current.getElement()),nn(),Y&&p.breakpoint&&(re.current.setAttribute(Y,""),rn())},an=function(){me(),be()},cn=function(){oe.current=null,de(),ve()},ln=function(){a.ZIndexUtils.clear(re.current),on()};i.useMountEffect((function(){var e=a.UniqueComponentId();!v&&y(e),p.breakpoint&&!Y&&$(e)})),m.useEffect((function(){var e=tn(p.model||[]);B(e)}),[p.model,tn]),i.useUpdateEffect((function(){var e=O.find((function(e){return e.key===C.parentKey}));F(e?e.items:q)}),[O,C,q]),i.useUpdateEffect((function(){var e=-1!==C.index?"".concat(v).concat(a.ObjectUtils.isNotEmpty(C.parentKey)?"_"+C.parentKey:"","_").concat(C.index):null;K(e)}),[C]),i.useUpdateEffect((function(){p.popup||(a.ObjectUtils.isNotEmpty(O)?(me(),be()):(de(),ve()))}),[O]),i.useUpdateEffect((function(){if(V){var e=-1!==C.index?Je(C.index):$e();en(e),E(O.filter((function(e){return e.parentKey!==C.parentKey}))),J(!1)}}),[V]),i.useUpdateEffect((function(){return Y&&re.current&&(re.current.setAttribute(Y,""),rn()),function(){on()}}),[Y,p.breakpoint]),i.useUnmountEffect((function(){a.ZIndexUtils.clear(re.current)})),m.useImperativeHandle(c,(function(){return{props:p,toggle:ge,show:he,hide:xe,getElement:function(){return re.current}}}));var sn,pn,mn=(sn=l({ref:re,id:p.id,className:a.classNames(p.className,ne("root")),style:p.style,onClick:ye},S.getOtherProps(p),ee("root")),pn=l({classNames:ne("transition"),in:h,timeout:{enter:120,exit:100},options:p.transitionOptions,unmountOnExit:!0,onEnter:un,onEntered:an,onExit:cn,onExited:ln},ee("transition")),m.createElement(r.CSSTransition,f({nodeRef:re},pn),m.createElement("div",sn,m.createElement(w,{id:v+"_list",ref:ie,hostName:"TieredMenu",menuProps:p,tabIndex:0,model:q,ariaLabel:p.ariaLabel,ariaLabelledBy:p.ariaLabelledBy,ariaOrientation:"vertical",ariaActiveDescendant:D?M:void 0,menuId:v,level:0,focusedItemId:M,activeItemPath:O,onFocus:Ie,onBlur:Oe,onKeyDown:Ee,onItemClick:Se,onItemMouseEnter:je,root:!0,popup:p.popup,onHide:xe,isMobileMode:se,submenuIcon:p.submenuIcon,ptm:ee,cx:ne,sx:te}))));return p.popup?m.createElement(u.Portal,{element:mn,appendTo:p.appendTo}):mn})));H.displayName="TieredMenu",exports.TieredMenu=H;