/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
import{a as p}from"./D7WOEWO3.js";import{a as c}from"./TLYY3J5P.js";import"./WGGFNK4Z.js";import{c as h}from"./EH5Y2TRK.js";import"./UANLRLKZ.js";import{l as m,u as f,y as l}from"./DVG3NA3H.js";import"./OAOQ5BXS.js";import{G as u,S as r,g as o,h as n}from"./PGOMURMZ.js";var d=o`:host{display:flex;line-height:var(--calcite-font-line-height-fixed-lg)}ul{margin:0;display:inline-flex;block-size:100%;align-items:center;padding:0}:host([layout=vertical]) ul{display:flex;inline-size:100%;flex-direction:column}:host([hidden]){display:none}[hidden]{display:none}`,a=class extends u{constructor(){super(),this.attributeWatch=h(["role"],this.handleGlobalAttributesChanged),this.menuItems=[],this.messages=p(),this.focusSetter=c()(this),this.layout="horizontal",this.listen("calciteInternalMenuItemKeyEvent",this.calciteInternalNavMenuItemKeyEvent)}static{this.properties={label:1,layout:[3,{},{reflect:!0}],messageOverrides:[0,{},{attribute:!1}]}}static{this.shadowRootOptions={mode:"open",delegatesFocus:!0}}static{this.styles=d}async setFocus(e){return this.focusSetter(()=>this.menuItems[0],e)}willUpdate(e){e.has("layout")&&(this.hasUpdated||this.layout!=="horizontal")&&this.setMenuItemLayout(this.menuItems,this.layout)}handleGlobalAttributesChanged(){this.requestUpdate(),this.setMenuItemLayout(this.menuItems,this.layout)}calciteInternalNavMenuItemKeyEvent(e){let t=e.target,s=e.detail.children,i=e.detail.event.key;e.stopPropagation(),i==="ArrowDown"?t.layout==="vertical"?l(this.menuItems,t,"next",!1,!1):e.detail.isSubmenuOpen&&s[0].setFocus():i==="ArrowUp"?this.layout==="vertical"?l(this.menuItems,t,"previous",!1,!1):e.detail.isSubmenuOpen&&s[s.length-1].setFocus():i==="ArrowRight"?this.layout==="horizontal"?l(this.menuItems,t,"next",!1,!1):e.detail.isSubmenuOpen&&s[0].setFocus():i==="ArrowLeft"?this.layout==="horizontal"?l(this.menuItems,t,"previous",!1,!1):e.detail.isSubmenuOpen&&this.focusParentElement(e.target):i==="Escape"&&this.focusParentElement(e.target),e.preventDefault()}handleMenuSlotChange(e){this.menuItems=f(e),this.setMenuItemLayout(this.menuItems,this.layout)}focusParentElement(e){let t=e.parentElement;t&&(m(t),t.open=!1)}setMenuItemLayout(e,t){e.forEach(s=>{s.layout=t,this.getEffectiveRole()==="menubar"&&(s.isTopLevelItem=!0,s.topLevelMenuLayout=this.layout)})}getEffectiveRole(){return this.el.role||"menubar"}render(){return n`<ul .ariaLabel=${this.label} .role=${this.getEffectiveRole()}><slot @slotchange=${this.handleMenuSlotChange}></slot></ul>`}};r("calcite-menu",a);export{a as Menu};
