"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),n=require("primereact/api"),t=require("primereact/componentbase"),r=require("primereact/csstransition"),a=require("primereact/hooks"),i=require("primereact/icons/chevrondown"),o=require("primereact/icons/chevronright"),l=require("primereact/utils"),c=require("primereact/ripple");function u(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 s=u(e);function m(){return m=Object.assign?Object.assign.bind():function(e){for(var n=1;ne.length)&&(n=e.length);for(var t=0,r=Array(n);t0?l.ObjectUtils.findLast(k.slice(0,n),(function(e){return W(e)})):void 0)||e},Z=function(e,n){D.current=(D.current||"")+n;var t=null,r=!1;if(l.ObjectUtils.isNotEmpty(d)){var a=k.findIndex((function(e){return e.key===d.key}));t=k.slice(a).find((function(e){return V(e)})),t=l.ObjectUtils.isEmpty(t)?k.slice(0,a).find((function(e){return V(e)})):t}else t=k.find((function(e){return V(e)}));return l.ObjectUtils.isNotEmpty(t)&&(r=!0),l.ObjectUtils.isEmpty(t)&&l.ObjectUtils.isEmpty(d)&&(t=Y()),l.ObjectUtils.isNotEmpty(t)&&ee({originalEvent:e,processedItem:t,allowHeaderFocus:!1}),w&&clearTimeout(w.current),w.current=setTimeout((function(){D.current="",w.currentt=null}),500),r},ee=function(n){var t=n.originalEvent,r=n.processedItem,a=n.focusOnNext,i=n.selfCheck,o=n.allowHeaderFocus,c=void 0===o||o;l.ObjectUtils.isNotEmpty(d)&&d.key!==r.key?(p(r),ne()):c&&e.onHeaderFocus&&e.onHeaderFocus({originalEvent:t,focusOnNext:a,selfCheck:i})},ne=function(){var e=l.DomHandler.findSingle(R(),'li[id="'.concat("".concat(b),'"]'));e&&e.scrollIntoView&&e.scrollIntoView({block:"nearest",inline:"start"})},te=function(n,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=t||0===r&&e.model;if(!a)return null;for(var i=0;i1&&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]:"",a=[];return e&&e.forEach((function(e,i){var o=e.key?e.key:(""!==r?r+"_":"")+i,l={item:e,index:i,level:n,key:o,parent:t,parentKey:r};l.items=re(e.items,n+1,l,o),a.push(l)})),a},ae=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return e&&e.forEach((function(e){z(e)&&(n.push(e),ae(e.items,n))})),n};return s.useEffect((function(){var n=re(e.model);x(n)}),[e.model]),s.useEffect((function(){var e=ae(I);P(e)}),[I,g]),s.useEffect((function(){var n;n=Object.entries(e.expandedKeys||{}).reduce((function(e,n){var t=E(n,2);if(t[1]){var r=te(t[0]);r&&e.push(r)}return e}),[]),h(n)}),[e.expandedKeys]),n=function(){var n=l.ObjectUtils.isNotEmpty(d)?"".concat(e.panelId,"_").concat(d.key):null;v(n)},t=[e.panelId,d],r=s.useRef(!1),s.useEffect((function(){if(r.current)return n&&n();r.current=!0}),t),s.createElement(N,{hostName:"PanelMenu",id:e.panelId+"_list",ref:C,role:"tree",tabIndex:-1,ariaActivedescendant:c?b:void 0,panelId:e.panelId,focusedItemId:c?b:void 0,model:I,activeItemPath:g,menuProps:e.menuProps,onFocus:function(e){u(!0)},onBlur:function(){u(!1),p(null),D.current=""},onKeyDown:function(e){var n=e.metaKey||e.ctrlKey;switch(e.code){case"ArrowDown":_(e);break;case"ArrowUp":q(e);break;case"ArrowLeft":M(e);break;case"ArrowRight":L(e);break;case"Home":F(e);break;case"End":J(e);break;case"Space":B(e);break;case"Enter":case"NumpadEnter":X(e);break;case"Escape":case"Tab":case"PageDown":case"PageUp":case"Backspace":case"ShiftLeft":case"ShiftRight":break;default:!n&&l.ObjectUtils.isPrintableCharacter(e.key)&&Z(e,e.key)}},onItemToggle:function(n){var t=n.processedItem,r=n.expanded;if(e.expandedKeys)e.onToggle&&e.onToggle({item:t.item,expanded:r});else{var a=g.filter((function(e){return e.parentKey!==t.parentKey}));r&&a.push(t),h(a)}t.item&&(t.item=S(S({},t.item),{},{expanded:r})),l.DomHandler.focus(R()),p(t)},level:0,className:i("submenu"),expandIcon:e.expandIcon,collapseIcon:e.collapseIcon,root:!0,ptm:a,cx:i})}));function D(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 w(e){for(var n=1;n1&&void 0!==arguments[1]&&arguments[1]?e:e.nextElementSibling,'[data-pc-section="header"]');return n?l.DomHandler.getAttribute(n,"data-p-disabled")?W(n.parentElement):n:null},Y=function(e){var n=l.DomHandler.findSingle(arguments.length>1&&void 0!==arguments[1]&&arguments[1]?e:e.previousElementSibling,'[data-pc-section="header"]');return n?l.DomHandler.getAttribute(n,"data-p-disabled")?Y(n.parentElement):n:null},$=function(){return W(S.current.firstElementChild,!0)},G=function(){return Y(S.current.lastElementChild,!0)},Q=function(e){var n=e.originalEvent,t=e.focusOnNext,r=e.selfCheck,a=n.currentTarget.closest('[data-pc-section="panel"]'),i=r?l.DomHandler.findSingle(a,'[data-pc-section="header"]'):t?W(a):Y(a);i?ne(n,i):t?B(n):V(n)},Z=function(e,n){if(!R(n)){var t=!A(n),r=g&&l.ObjectUtils.equals(n,g)?null:n;if(h(r),p.multiple){var a=x;x.some((function(e){return l.ObjectUtils.equals(n,e)}))?a=x.filter((function(e){return!l.ObjectUtils.equals(n,e)})):a.push(n),j(a)}ee({item:n,expanded:t}),t&&e?p.onOpen&&p.onOpen({originalEvent:e,item:n}):p.onClose&&p.onClose({originalEvent:e,item:n})}},ee=function(e){var n=e.item,t=e.expanded,r=void 0!==t&&t;if(p.expandedKeys){var a=w({},p.expandedKeys);r?a[n.key]=!0:delete a[n.key],p.onExpandedKeysChange&&p.onExpandedKeysChange(a)}},ne=function(e,n){n&&l.DomHandler.focus(n)},te=function(e,n,t){return C(n,{context:{active:A(e),focused:_(e),disabled:R(e),index:t}})};s.useImperativeHandle(c,(function(){return{props:p,getElement:function(){return S.current}}})),a.useMountEffect((function(){!b&&v(l.UniqueComponentId())})),s.useEffect((function(){k(!0),p.model&&p.model.forEach((function(e){e.expanded&&Z(null,e)}))}),[p.model]);var re=function(){k(!1)},ae=p.model?p.model.map((function(e,n){if(!T(e))return null;var t=e.id||b+"_"+n,a=A(e),c=l.classNames("p-menuitem-icon",e.icon),d=u({className:U("headerIcon",{item:e})},te(e,"headerIcon",n)),f=l.IconUtils.getJSXIcon(e.icon,w({},d),{props:p}),v=u({className:U("headerSubmenuIcon")},te(e,"headerSubmenuIcon",n)),y=e.items&&l.IconUtils.getJSXIcon(a?p.collapseIcon||s.createElement(i.ChevronDownIcon,v):p.expandIcon||s.createElement(o.ChevronRightIcon,v)),g=u({className:U("headerLabel")},te(e,"headerLabel",n)),h=e.label&&s.createElement("span",g,e.label),O=s.createRef(),E=u({href:e.url||"#",tabIndex:"-1",className:U("headerAction")},te(e,"headerAction",n)),I=s.createElement("a",E,y,f,h);e.template&&(I=l.ObjectUtils.getJSXElement(e.template,e,{onClick:function(n){return H(n,e)},className:"p-panelmenu-header-link",labelClassName:"p-menuitem-text",submenuIconClassName:"p-panelmenu-icon",iconClassName:c,element:I,props:p,leaf:!e.items,active:a}));var x=u({id:(null==e?void 0:e.id)||q(n),className:U("panel",{item:e}),style:e.style},te(e,"panel",n)),j=u({id:M(null==e?void 0:e.id,n),className:U("header",{active:a,item:e}),"aria-label":e.label,"aria-expanded":a,"aria-disabled":e.disabled,"aria-controls":L(null==e?void 0:e.id,n),tabIndex:e.disabled?null:"0",onClick:function(n){return H(n,e)},onKeyDown:function(n){return F(n,e)},"data-p-disabled":e.disabled,"data-p-highlight":a,role:"button",style:e.style},te(e,"header",n)),N=u({className:U("headerContent")},te(e,"headerContent",n)),k=u({className:U("menuContent")},te(e,"menuContent",n)),S=u({className:U("toggleableContent",{active:a}),role:"region","aria-labelledby":M(null==e?void 0:e.id,n)},te(e,"toggleableContent",n)),D=u({classNames:U("transition"),timeout:{enter:1e3,exit:450},onEnter:re,in:a,unmountOnExit:!0,options:p.transitionOptions},te(e,"transition",n));return s.createElement("div",m({},x,{key:t}),s.createElement("div",j,s.createElement("div",N,I)),s.createElement(r.CSSTransition,m({nodeRef:O},D),s.createElement("div",m({id:L(null==e?void 0:e.id,n),ref:O},S),s.createElement("div",k,s.createElement(P,{panelId:(null==e?void 0:e.id)||q(n),menuProps:p,onToggle:ee,onHeaderFocus:Q,level:0,model:e.items,expandedKeys:p.expandedKeys,className:"p-panelmenu-root-submenu",submenuIcon:p.submenuIcon,ptm:C,cx:U})))))})):null,ie=u({ref:S,className:l.classNames(p.className,U("root")),id:p.id,style:p.style},I.getOtherProps(p),C("root"));return s.createElement("div",ie,ae)})));C.displayName="PanelMenu",exports.PanelMenu=C;