"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/api"),n=require("primereact/componentbase"),r=require("primereact/csstransition"),o=require("primereact/hooks"),i=require("primereact/portal"),a=require("primereact/utils"),u=require("primereact/icons/angleright"),c=require("primereact/ripple");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var m=s(e),f=l(t);function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);nr.height?r.height-c+"px":"0px",i.current.style.left=parseInt(n.left,10)+u+o>r.width-a.DomHandler.calculateScrollbarWidth()?-1*o+"px":u+"px"}};o.useUpdateEffect((function(){l&&y()}));var x=function(t){return"".concat(e.menuId,"_").concat(t.key)},g=function(e,t,n){return e&&e.item?a.ObjectUtils.getItemValue(e.item[t],n):void 0},h=function(t){return e.activeItemPath&&e.activeItemPath.some((function(e){return e.key===t.key}))},I=function(e){return!1!==g(e,"visible")},E=function(e){return g(e,"disabled")},O=function(t){return e.focusedItemId===x(t)},k=function(e){return a.ObjectUtils.isNotEmpty(e.items)},S=function(t){return t-e.model.slice(0,t).filter((function(e){return I(e)&&g(e,"separator")})).length+1};m.useImperativeHandle(t,(function(){return{props:e,getElement:function(){return i.current}}}));var j=function(t){var r=e.id+"_separator_"+t,o=n({id:r,className:f("separator"),role:"separator"},s("separator",{hostName:e.hostName}));return m.createElement("li",d({},o,{key:r}))},D=function(t,n){return k(t)?m.createElement(P,{id:e.id+"_"+n,role:"menu",menuId:e.menuId,focusedItemId:e.focusedItemId,activeItemPath:e.activeItemPath,level:e.level+1,hostName:e.hostName,ariaLabelledby:x(t),menuProps:e.menuProps,model:t.items,resetMenu:!h(t),onLeafClick:e.onLeafClick,onItemClick:e.onItemClick,onItemMouseEnter:e.onItemMouseEnter,isMobileMode:e.isMobileMode,submenuIcon:e.submenuIcon,ptm:s,cx:f}):null},N=function(t,r){if(!I(t))return null;var o=t.item,i=h(t),l=E(t),s=O(t),y=k(t),P=x(t),j=n({className:f("icon")},p(t,"icon",r)),N=a.IconUtils.getJSXIcon(o.icon,w({},j),{props:e.menuProps}),H=n({className:f("submenuIcon")},p(t,"submenuIcon",r)),M=n({className:f("label")},p(t,"label",r)),U=g(t,"items")&&a.IconUtils.getJSXIcon(e.submenuIcon||m.createElement(u.AngleRightIcon,H),w({},H),{props:e.menuProps}),C=o.label&&m.createElement("span",M,o.label),L=D(t,r),K=n({href:o.url||"#",tabIndex:-1,className:f("action",{item:o}),target:o.target},p(t,"action",r)),T=m.createElement("a",K,N,C,U,m.createElement(c.Ripple,null));if(o.template){var R={className:"p-menuitem-link",labelClassName:"p-menuitem-text",iconClassName:"p-menuitem-icon",submenuIconClassName:f("submenuIcon"),element:T,props:e,active:i};T=a.ObjectUtils.getJSXElement(o.template,o,R)}var A=n({onClick:function(e){return v(e,t)},onMouseEnter:function(e){return b(e,t)},className:f("content")},p(t,"content",r)),_=n({id:P,role:"menuitem","aria-label":o.label,"aria-disabled":l,"aria-expanded":y?i:void 0,"aria-haspopup":y&&!o.url?"menu":void 0,"aria-level":e.level+1,"aria-setsize":e.model.filter((function(e){return I(e)&&!g(e,"separator")})).length,"aria-posinset":S(r),"data-p-highlight":i,"data-p-focused":s,"data-p-disabled":l,className:f("menuitem",{item:o,active:i,focused:s,disabled:E(o)}),style:o.style},p(t,"menuitem",r));return m.createElement("li",d({},_,{key:P}),m.createElement("div",A,T),L)},H=e.model?e.model.map((function(e,t){return!1===e.visible?null:e.separator?j(t):N(e,t)})):null,M=n({className:f("menu",{menuProps:e}),onFocus:e.onFocus,onBlur:e.onBlur,onKeyDown:e.onKeyDown,"aria-label":e.ariaLabel,"aria-labelledby":e.ariaLabelledby,"aria-orientation":"vertical","aria-activedescendant":e.ariaActivedescendant,tabIndex:e.tabIndex,role:e.role},s("menu",{hostName:e.hostName})),U=n({classNames:f("submenuTransition"),in:l,timeout:{enter:0,exit:0},unmountOnExit:!0,onEnter:function(){y()}},s("menu.transition",{hostName:e.hostName}));return m.createElement(r.CSSTransition,d({nodeRef:i},U),m.createElement("ul",d({ref:i},M),H))})));function j(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function D(e){for(var t=1;t ul {\n max-height: ").concat(s.scrollHeight,";\n overflow: ").concat(s.scrollHeight?"auto":"",";\n }\n\n .p-contextmenu[").concat(e,"] .p-submenu-list {\n position: relative;\n }\n\n .p-contextmenu[").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-contextmenu[").concat(e,"] .p-menuitem-active > .p-menuitem-link > .p-submenu-icon {\n transform: rotate(-180deg);\n }\n\n .p-contextmenu[").concat(e,'] .p-submenu-icon:before {\n content: "\\e930";\n }\n}\n');ce.current.innerHTML=t}},xe=function(){ce.current=a.DomHandler.removeInlineStyle(ce.current)},ge=function(e){B([]),q({index:-1,level:0,parentKey:""}),e.stopPropagation(),e.preventDefault(),ie.current=e,x?E(!0):(g(!0),s.onShow&&s.onShow(ie.current)),Promise.resolve().then((function(){oe.current&&a.DomHandler.focus(oe.current.getElement())}))},he=function(e){ie.current=e,g(!1),E(!1),B([]),q({index:-1,level:0,parentKey:""}),s.onHide&&s.onHide(ie.current)},Ie=function(){a.DomHandler.addStyles(re.current,{position:"absolute"}),s.autoZIndex&&a.ZIndexUtils.set("menu",re.current,l&&l.autoZIndex||f.default.autoZIndex,s.baseZIndex||l&&l.zIndex.menu||f.default.zIndex.menu),Se(ie.current),H&&s.breakpoint&&(re.current.setAttribute(H,""),ye())},Ee=function(){De()},Oe=function(){Ne(),a.ZIndexUtils.clear(re.current)},ke=function(){a.ZIndexUtils.clear(re.current),xe()},Se=function(e){if(e){var t=e.pageX+1,n=e.pageY+1,r=re.current.offsetParent?re.current.offsetWidth:a.DomHandler.getHiddenElementOuterWidth(re.current),o=re.current.offsetParent?re.current.offsetHeight:a.DomHandler.getHiddenElementOuterHeight(re.current),i=a.DomHandler.getViewport();t+r-document.body.scrollLeft>i.width&&(t-=r),n+o-document.body.scrollTop>i.height&&(n-=o),t2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",o=[];return e&&e.forEach((function(e,i){var a=(""!==r?r+"_":"")+i,u={item:e,index:i,level:t,separator:e.separator,key:a,parent:n,parentKey:r};u.items=we(e.items,t+1,u,a),o.push(u)})),o}),[]),Pe=function(e){j(!0),he(e),e.stopPropagation()},je=function(e){return re&&re.current&&!(re.current.isSameNode(e.target)||re.current.contains(e.target))},De=function(){be(),me()},Ne=function(){ve(),fe()};o.useMountEffect((function(){var e=a.UniqueComponentId();!b&&v(e),s.global&&de(),s.breakpoint&&!H&&M(e)})),o.useUpdateEffect((function(){s.global&&de()}),[s.global]),o.useUpdateEffect((function(){return H&&re.current&&(re.current.setAttribute(H,""),ye()),function(){xe()}}),[H,s.breakpoint]),o.useUpdateEffect((function(){x?(g(!1),E(!1),j(!0)):I||x||!w||ge(ie.current)}),[I]),m.useEffect((function(){var e=we(s.model||[],0,null,"");V(e)}),[s.model,we]),o.useUpdateEffect((function(){var e=-1!==_.index?"".concat(b).concat(a.ObjectUtils.isNotEmpty(_.parentKey)?"_"+_.parentKey:"","_").concat(_.index):null;Q(e)}),[_]),o.useUpdateEffect((function(){var e=W&&W.find((function(e){return e.key===_.parentKey}));Y(e?e.items:z)}),[W,_]),o.useUpdateEffect((function(){if(T){var e=-1!==_.index?ot(_.index):st();Ye(e),B(W.filter((function(e){return e.parentKey!==_.parentKey}))),R(!1)}}),[T]),o.useUnmountEffect((function(){a.ZIndexUtils.clear(re.current)})),m.useImperativeHandle(u,(function(){return{props:s,show:ge,hide:he,getElement:function(){return re.current}}}));var He,Me,Ue=function(e){L(!0),q(-1!==_.index?_:{index:-1,level:0,parentKey:""}),s.onFocus&&s.onFocus(e)},Ce=function(e){L(!1),q({index:-1,level:0,parentKey:""}),ae.current="",ae.current="",s.onBlur&&s.onBlur(e)},Le=function(e){var t=e.metaKey||e.ctrlKey;switch(e.code){case"ArrowDown":Ae(e);break;case"ArrowUp":_e(e);break;case"ArrowLeft":qe(e);break;case"ArrowRight":Ze(e);break;case"Home":We(e);break;case"End":Be(e);break;case"Space":ze(e);break;case"Enter":case"NumpadEnter":Fe(e);break;case"Escape":Ve(e);break;case"Tab":Xe(e);break;case"PageDown":case"PageUp":case"Backspace":case"ShiftLeft":case"ShiftRight":break;default:!t&&a.ObjectUtils.isPrintableCharacter(e.key)&&Je(e,e.key)}},Ke=function(e){var t=e.processedItem,n=e.isFocus,r=e.updateState,o=void 0===r||r;if(!a.ObjectUtils.isEmpty(t)){var i=t.index,u=t.key,c=t.level,l=t.parentKey,s=a.ObjectUtils.isNotEmpty(t.items),m=W.filter((function(e){return e.parentKey!==l&&e.parentKey!==u}));s&&o&&(m.push(t),g(!0)),q({index:i,level:c,parentKey:l}),B(m),n&&a.DomHandler.focus(oe.current.getElement())}},Te=function(e){var t=e.processedItem,n=et(t);if(at(t)){var r=t.index,o=t.key,i=t.level,u=t.parentKey;B(W.filter((function(e){return o!==e.key&&o.startsWith(e.key)}))),q({index:r,level:i,parentKey:u}),a.DomHandler.focus(oe.current.getElement())}else n?Ke(e):he()},Re=function(e){Ke(e)},Ae=function(e){var t=-1!==_.index?ot(_.index):st();Ye(t),e.preventDefault()},_e=function(e){if(e.altKey){if(-1!==_.index){var t=J[_.index];!et(t)&&Ke({originalEvent:e,processedItem:t})}e.preventDefault()}else{var n=-1!==_.index?it(_.index):mt();Ye(n),e.preventDefault()}},qe=function(e){var t=J[_.index],n=W.find((function(e){return e.key===t.parentKey}));a.ObjectUtils.isEmpty(t.parent)||(q({index:-1,parentKey:n?n.parentKey:""}),ae.current="",setTimeout((function(){return R(!0)}),0)),e.preventDefault()},Ze=function(e){var t=J[_.index];et(t)&&(Ke({originalEvent:e,processedItem:t}),q({index:-1,parentKey:t.key}),ae.current="",setTimeout((function(){return R(!0)}),0)),e.preventDefault()},We=function(e){Ye(ct()),e.preventDefault()},Be=function(e){Ye(lt()),e.preventDefault()},Fe=function(e){if(-1!==_.index){var t=a.DomHandler.findSingle(oe.current.getElement(),'li[id="'.concat("".concat(G),'"]')),n=t&&a.DomHandler.findSingle(t,'a[data-pc-section="action"]');n?n.click():t&&t.click(),!et(J[_.index])&&q(D(D({},_),{},{index:st()}))}e.preventDefault()},ze=function(e){Fe(e)},Ve=function(e){he(),q({focusedItemInfo:_,index:st()}),e.preventDefault()},Xe=function(e){if(-1!==_.index){var t=J[_.index];!et(t)&&Ke({originalEvent:e,processedItem:t})}he()},Je=function(e,t){ae.current=ae.current||""+t;var n=-1,r=!1;return-1!==(n=-1!==_.index?-1===(n=J.slice(_.index).findIndex((function(e){return rt(e)})))?J.slice(0,_.index).findIndex((function(e){return rt(e)})):n+_.index:J.findIndex((function(e){return rt(e)})))&&(r=!0),-1===n&&-1===_.index&&(n=st()),-1!==n&&Ye(n),ue.current&&clearTimeout(ue.current),ue.current=setTimeout((function(){ae.current="",ue.current=null}),500),r},Ye=function(e){_.index!==e&&(q(D(D({},_),{},{index:e})),$e())},$e=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1,t=-1!==e?"".concat(b,"_").concat(e):G,n=a.DomHandler.findSingle(oe.current.getElement(),'li[id="'.concat(t,'"]'));n&&n.scrollIntoView&&n.scrollIntoView({block:"nearest",inline:"start"})},Ge=function(e,t){return e?a.ObjectUtils.getItemValue(e[t]):void 0},Qe=function(e){return e?Ge(e.item,"label"):void 0},et=function(e){return e&&a.ObjectUtils.isNotEmpty(e.items)},tt=function(e){return Ge(e,"separator")},nt=function(e){return!!e&&!Ge(e.item,"disabled")&&!tt(e.item)},rt=function(e){return nt(e)&&Qe(e).toLocaleLowerCase().startsWith(ae.current.toLocaleLowerCase())},ot=function(e){var t=e-1?t+e+1:e},it=function(e){var t=e>0?a.ObjectUtils.findLastIndex(J.slice(0,e),(function(e){return nt(e)})):-1;return t>-1?t:e},at=function(e){return W&&W.some((function(t){return t.key===e.key}))},ut=function(e){return nt(e)&&at(e)},ct=function(){return J.findIndex((function(e){return nt(e)}))},lt=function(){return a.ObjectUtils.findLastIndex(J,(function(e){return nt(e)}))},st=function(){var e=ft();return e<0?ct():e},mt=function(){var e=ft();return e<0?lt():e},ft=function(){return J.findIndex((function(e){return ut(e)}))},dt=(He=c({id:s.id,className:a.classNames(s.className,ne("root",{context:l})),style:s.style,onClick:function(e){j(!1)},onMouseEnter:function(e){j(!1)}},k.getOtherProps(s),te("root")),Me=c({classNames:ne("transition"),in:x,timeout:{enter:250,exit:0},options:s.transitionOptions,unmountOnExit:!0,onEnter:Ie,onEntered:Ee,onExit:Oe,onExited:ke},te("transition")),m.createElement(r.CSSTransition,d({nodeRef:re},Me),m.createElement("div",d({ref:re},He),m.createElement(P,{ref:oe,ariaLabel:s.ariaLabel,ariaLabelledby:s.ariaLabelledby,activeItemPath:W,hostName:"ContextMenu",id:b+"_list",role:"menubar",tabIndex:s.tabIndex||0,ariaActivedescendant:C?G:void 0,menuId:b,focusedItemId:C?G:void 0,menuProps:s,model:z,level:0,root:!0,onItemClick:Te,onItemMouseEnter:Re,onFocus:Ue,onBlur:Ce,onKeyDown:Le,resetMenu:w,onLeafClick:Pe,isMobileMode:le,submenuIcon:s.submenuIcon,ptm:te,cx:ne}))));return m.createElement(i.Portal,{element:dt,appendTo:s.appendTo})})));N.displayName="ContextMenu",exports.ContextMenu=N;