vendor: 8,519 bytes, line 1
1import{K as v,W as o,O as u,P as l,Q as c,R as x,T as I}from"./signal.CNCfU7Hw.js";import{n as d}from"./ref.D1KjxGgY.js";import{g as p}from"./array.bGYQmELK.js";import{t as b}from"./dom.CLWNH6N5.js";import{g as M}from"./guid.LcV_DAvu.js";import{i as B}from"./key.Cyh_1epf.js";import{i as A}from"./resources.hhcMonml.js";import{u as $}from"./useSetFocus.DmdLAgUP.js";import{I as r,S as h,a as y,C as m}from"./resources2.D84mrebB.js";import"./directive-helpers.DS6Yk2X1.js";import"./index.B3LrT0DQ.js";import"./proxyExports-CXEnG2Az.Ci2qtAtz.js";import"./index.DV2a7jmW.js";import"./index.Lhiybazs.js";import"./component.DaY1qw_V.js";const w=x`:host([scale=s]){--calcite-internal-action-menu-gap: var(--calcite-action-menu-items-space, var(--calcite-spacing-xxs));--calcite-internal-action-menu-padding: var(--calcite-spacing-xxs)}:host([scale=m]){--calcite-internal-action-menu-gap: var(--calcite-action-menu-items-space, var(--calcite-spacing-sm));--calcite-internal-action-menu-padding: var(--calcite-spacing-sm)}:host([scale=l]){--calcite-internal-action-menu-gap: var(--calcite-action-menu-items-space, var(--calcite-spacing-sm-plus));--calcite-internal-action-menu-padding: var(--calcite-spacing-sm-plus)}:host{box-sizing:border-box;display:flex;flex-direction:column;font-size:var(--calcite-font-size-relative-lg)}::slotted(calcite-action-group:not(:last-of-type)){border-block-end-width:var(--calcite-border-width-sm);padding-block-end:var(--calcite-internal-action-menu-padding)}.default-trigger{position:relative;block-size:100%;flex:0 1 auto;align-self:stretch}slot[name=trigger]::slotted(calcite-action),calcite-action::slotted([slot=trigger]){position:relative;block-size:100%;flex:0 1 auto;align-self:stretch}.menu{display:flex;max-block-size:45vh;flex-direction:column;flex-wrap:nowrap;overflow-y:auto;overflow-x:hidden;outline:2px solid transparent;outline-offset:2px;gap:var(--calcite-internal-action-menu-gap);padding:var(--calcite-internal-action-menu-padding)}:host([hidden]){display:none}[hidden]{display:none}`,D=["ArrowUp","ArrowDown","End","Home"];class C extends v{constructor(){super(...arguments),this.guid=M(),this.actionElements=[],this.menuButtonClick=()=>{this.toggleOpen()},this.menuButtonId=r.button(this.guid),this.menuButtonKeyDown=e=>{const{key:t}=e,{actionElements:n,activeMenuItemIndex:i,open:a}=this;if(n.length){if(B(t)){if(e.preventDefault(),!a){this.toggleOpen();return}const s=n[i];s?s.click():this.toggleOpen(!1)}if(t==="Tab"){this.open=!1;return}if(t==="Escape"){this.toggleOpen(!1),e.preventDefault();return}this.handleActionNavigation(e,t,n)}},this.menuId=r.menu(this.guid),this._open=!1,this.updateAction=(e,t)=>{const{guid:n,activeMenuItemIndex:i}=this,a=r.action(n,t);e.tabIndex=-1,e.setAttribute("role","menuitem"),e.id||(e.id=a),e.activeDescendant=t===i},this.focusSetter=$()(this),this.mouseDownHandler=e=>{e.composedPath().some(A)&&(this.activeMenuItemIndex=this.actionElements?.findIndex(t=>t===e.target))},this.activeMenuItemIndex=-1,this.appearance="solid",this.expanded=!1,this.overlayPositioning="absolute",this.placement="auto",this.topLayerDisabled=!1,this.scale="m",this.calciteActionMenuCollapse=o({cancelable:!1}),this.calciteActionMenuExpand=o({cancelable:!1}),this.calciteActionMenuOpen=o({cancelable:!1})}static{this.properties={activeMenuItemIndex:[16,{},{state:!0}],menuButtonEl:[16,{},{state:!0}],appearance:[3,{},{reflect:!0}],expanded:[7,{},{reflect:!0,type:Boolean}],flipPlacements:[0,{},{attribute:!1}],label:1,open:[7,{},{reflect:!0,type:Boolean}],overlayPositioning:[3,{},{reflect:!0}],placement:[3,{},{reflect:!0}],topLayerDisabled:[7,{},{reflect:!0,type:Boolean}],scale:[3,{},{reflect:!0}]}}static{this.styles=w}get open(){return this._open}set open(e){const t=this._open;e!==t&&(this._open=e,this.openHandler(e))}async setFocus(e){return this.focusSetter(()=>this.menuButtonEl,e)}connectedCallback(){super.connectedCallback(),this.connectMenuButtonEl(),this.listen("mousedown",this.mouseDownHandler)}willUpdate(e){e.has("expanded")&&(this.hasUpdated||this.expanded!==!1)&&this.expandedHandler(),e.has("activeMenuItemIndex")&&(this.hasUpdated||this.activeMenuItemIndex!==-1)&&this.updateActions(this.actionElements),e.has("expanded")&&this.hasUpdated&&(this.expanded?this.calciteActionMenuExpand.emit():this.calciteActionMenuCollapse.emit())}disconnectedCallback(){super.disconnectedCallback(),this.disconnectMenuButtonEl()}expandedHandler(){this.open=!1,this.setTooltipReferenceElement()}openHandler(e){this.menuButtonEl&&(this.menuButtonEl.active=e,this.menuButtonEl.aria={expanded:e}),this.popoverEl&&(this.popoverEl.open=e),this.activeMenuItemIndex=this.open?0:-1,this.calciteActionMenuOpen.emit(),this.setTooltipReferenceElement()}connectMenuButtonEl(){const{menuButtonId:e,menuId:t,open:n,label:i}=this,a=this.slottedMenuButtonEl||this.defaultMenuButtonEl;this.menuButtonEl!==a&&(this.disconnectMenuButtonEl(),this.menuButtonEl=a,this.setTooltipReferenceElement(),a&&(a.active=n,a.setAttribute("aria-controls",t),a.setAttribute("aria-expanded",b(n)),a.setAttribute("aria-haspopup","true"),a.id||(a.id=e),a.label||(a.label=i),a.text||(a.text=i),a.addEventListener("click",this.menuButtonClick),a.addEventListener("keydown",this.menuButtonKeyDown)))}disconnectMenuButtonEl(){const{menuButtonEl:e}=this;e&&(e.removeEventListener("click",this.menuButtonClick),e.removeEventListener("keydown",this.menuButtonKeyDown),this.menuButtonEl=null)}setMenuButtonEl(e){const t=e.target.assignedElements({flatten:!0}).filter(n=>n?.matches("calcite-action"));this.slottedMenuButtonEl=t[0],this.connectMenuButtonEl()}setDefaultMenuButtonEl(e){this.defaultMenuButtonEl=e,this.connectMenuButtonEl()}setPopoverEl(e){e&&(this.popoverEl=e,e.open=this.open)}handleCalciteActionClick(e){this.actionElements?.some(t=>e.composedPath().includes(t))&&(this.open=!1,this.setFocus())}updateTooltip(e){const t=e.target.assignedElements({flatten:!0}).filter(n=>n?.matches("calcite-tooltip"));this.tooltipEl=t[0],this.setTooltipReferenceElement()}setTooltipReferenceElement(){const{tooltipEl:e,expanded:t,menuButtonEl:n,open:i}=this;e&&(e.referenceElement=!t&&!i?n:null)}updateActions(e){e?.forEach(this.updateAction)}async handleDefaultSlotChange(e){const t=e.target.assignedElements({flatten:!0}).reduce((n,i)=>i?.matches("calcite-action")?(n.push(i),n):i?.matches("calcite-action-group")?n.concat(Array.from(i.querySelectorAll("calcite-action"))):n,[]);await this.componentOnReady(),this.actionElements=t.filter(n=>!n.disabled&&!n.hidden)}isValidKey(e,t){return!!t.find(n=>n===e)}handleActionNavigation(e,t,n){if(!this.isValidKey(t,D))return;if(e.preventDefault(),!this.open){this.toggleOpen(),(t==="Home"||t==="ArrowDown")&&(this.activeMenuItemIndex=0),(t==="End"||t==="ArrowUp")&&(this.activeMenuItemIndex=n.length-1);return}t==="Home"&&(this.activeMenuItemIndex=0),t==="End"&&(this.activeMenuItemIndex=n.length-1);const i=this.activeMenuItemIndex;t==="ArrowUp"&&(this.activeMenuItemIndex=p(Math.max(i-1,-1),n.length)),t==="ArrowDown"&&(this.activeMenuItemIndex=p(i+1,n.length))}toggleOpen(e=!this.open){this.open=e}handlePopoverOpen(e){e.stopPropagation(),this.open=!0,this.setFocus()}handlePopoverClose(e){e.stopPropagation(),this.open=!1}renderMenuButton(){const{appearance:e,label:t,scale:n,expanded:i}=this;return l`<slot name=${h.trigger} @slotchange=${this.setMenuButtonEl}><calcite-action .appearance=${e} .aria=${{expanded:i}} class=${u(m.defaultTrigger)} .icon=${y.menu} .scale=${n} .text=${t} .textEnabled=${i} ${d(this.setDefaultMenuButtonEl)}></calcite-action></slot>`}renderMenuItems(){const{actionElements:e,activeMenuItemIndex:t,menuId:n,menuButtonEl:i,label:a,placement:s,overlayPositioning:f,flipPlacements:g}=this,E=e[t]?.id||null;return l`<calcite-popover auto-close .flipPlacements=${g} focus-trap-disabled .label=${a} offset-distance=0 @calcitePopoverClose=${this.handlePopoverClose} @calcitePopoverOpen=${this.handlePopoverOpen} .overlayPositioning=${f} .placement=${s} pointer-disabled .referenceElement=${i} .scale=${this.scale} .topLayerDisabled=${this.topLayerDisabled} trigger-disabled ${d(this.setPopoverEl)}><div aria-activedescendant=${E??c} aria-labelledby=${i?.id??c} class=${u(m.menu)} id=${n??c} @click=${this.handleCalciteActionClick} role=menu tabindex=-1><slot @slotchange=${this.handleDefaultSlotChange}></slot></div></calcite-popover>`}render(){return l`${this.renderMenuButton()}${this.renderMenuItems()}<slot name=${h.tooltip} @slotchange=${this.updateTooltip}></slot>`}}I("calcite-action-menu",C);export{C as ActionMenu};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.