@esri/calcite-components
Version:
Web Components for Esri's Calcite Design System.
3 lines (2 loc) • 5.94 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.0/LICENSE.txt */
import{a as x}from"./RAIQ7SIP.js";import{a as u,b as A,c as y}from"./IT6LC2JX.js";import{a as b}from"./SQ6RHDDF.js";import{c as h}from"./ONZUNTVX.js";import{a as v}from"./3XLPUKLV.js";import"./3YEM2IPT.js";import"./QUTTHRH3.js";import"./MNIRD7Q7.js";import{t as f}from"./ZQBZ5QPB.js";import"./CIYXQ5G6.js";import{E as d,F as m,Q as g,g as p,h as l,p as r}from"./G7AHLVJ5.js";var O=p`:host{box-sizing:border-box;background-color:var(--calcite-color-foreground-1);color:var(--calcite-color-text-2);font-size:var(--calcite-font-size--1)}:host *{box-sizing:border-box}:host([scale=s]){--calcite-internal-action-group-gap: var(--calcite-spacing-xxs)}:host([scale=m]){--calcite-internal-action-group-gap: var(--calcite-spacing-sm)}:host([scale=l]){--calcite-internal-action-group-gap: var(--calcite-spacing-sm-plus)}:host{display:flex;flex-direction:column;padding:0;background-color:transparent;border-color:var(--calcite-action-group-border-color, var(--calcite-color-border-3));border-style:solid;border-width:0;gap:var(--calcite-internal-action-group-gap)}.container{display:flex;flex-grow:1;flex-direction:column;gap:inherit}:host([columns="1"]){--calcite-internal-action-group-columns: 1}:host([columns="2"]){--calcite-internal-action-group-columns: 2}:host([columns="3"]){--calcite-internal-action-group-columns: 3}:host([columns="4"]){--calcite-internal-action-group-columns: 4}:host([columns="5"]){--calcite-internal-action-group-columns: 5}:host([columns="6"]){--calcite-internal-action-group-columns: 6}:host(:first-child){padding-block-start:0px}:host([layout=horizontal]),:host([layout=horizontal]) .container{flex-direction:row}:host([layout=grid]){display:grid}:host([layout=grid]) .container{display:grid;place-content:stretch;background-color:transparent;gap:var(--calcite-action-group-gap, var(--calcite-internal-action-group-gap));grid-template-columns:repeat(var(--calcite-action-group-columns, var(--calcite-internal-action-group-columns, 3)),auto);padding:var(--calcite-action-group-gap, 1px)}:host([layout=horizontal]) ::slotted(calcite-action-group){border-inline-end:var(--calcite-size-px)}:host([hidden]){display:none}[hidden]{display:none}`,k=Object.defineProperty,S=(c,e,t,i)=>{for(var o=void 0,a=c.length-1,s;a>=0;a--)(s=c[a])&&(o=s(e,t,o)||o);return o&&k(e,t,o),o},n=class extends d{constructor(){super(),this.messages=b(),this.focusSetter=v()(this),this.hasMenuActions=!1,this.expanded=!1,this.layout="vertical",this.menuOpen=!1,this.overlayPositioning="absolute",this.scale="m",this.selectionMode="none",this.topLayerDisabled=!1,this.calciteActionGroupCollapse=r({cancelable:!1}),this.calciteActionGroupExpand=r({cancelable:!1}),this.listen("click",this.handleActionClick)}static{this.properties={hasMenuActions:[16,{},{state:!0}],columns:[11,{},{type:Number,reflect:!0}],expanded:[7,{},{reflect:!0,type:Boolean}],label:1,layout:[3,{},{reflect:!0}],menuFlipPlacements:[0,{},{attribute:!1}],menuOpen:[7,{},{reflect:!0,type:Boolean}],menuPlacement:[3,{},{reflect:!0}],messageOverrides:[0,{},{attribute:!1}],overlayPositioning:[3,{},{reflect:!0}],scale:[3,{},{reflect:!0}],selectionMode:[3,{},{reflect:!0}],topLayerDisabled:[7,{},{reflect:!0,type:Boolean}]}}static{this.shadowRootOptions={mode:"open",delegatesFocus:!0}}static{this.styles=O}async setFocus(e){return this.focusSetter(()=>this.el,e)}willUpdate(e){(this.hasUpdated||e.has("selectionMode"))&&(this.selectionMode!=="none"?this.setRoleOnActions():this.selectionMode==="none"&&this.clearActionAriaAttributes()),e.has("expanded")&&((this.hasUpdated||this.expanded!==!1)&&(this.menuOpen=!1),this.hasUpdated&&(this.expanded?this.calciteActionGroupExpand.emit():this.calciteActionGroupCollapse.emit()))}setActiveAction(e,t){if(this.selectionMode==="multiple"){t.active=!t.active,this.setActionAriaChecked(t,t.active);return}if(this.selectionMode==="single"){this.actions.forEach((i,o)=>{i.active=o===e&&!i.active,this.setActionAriaChecked(i,i.active)});return}if(this.selectionMode==="single-persist"){this.actions[e].active||this.actions.forEach((i,o)=>{i.active=o===e,this.setActionAriaChecked(i,i.active)});return}}setMenuOpen(e){this.menuOpen=!!e.currentTarget.open}handleMenuActionsSlotChange(e){this.hasMenuActions=f(e)}handleActionClick(e){let t=e.target;if(!t)return;let i=this.actions.indexOf(t);i===-1||this.selectionMode==="none"||this.setActiveAction(i,t)}setRoleOnActions(){this.actions.forEach(e=>{e.aria={...e.aria,role:this.selectionMode==="single"||this.selectionMode==="single-persist"?"radio":"checkbox"},this.setActionAriaChecked(e,e.active)})}setActionAriaChecked(e,t){e.aria={...e.aria,checked:t?"true":"false"}}clearActionAriaAttributes(){this.selectionMode==="none"&&this.actions.forEach(e=>{e.aria&&(e.aria.checked=void 0,e.aria.role=void 0,e.aria={...e.aria})})}renderMenu(){let{expanded:e,menuOpen:t,scale:i,layout:o,messages:a,overlayPositioning:s,hasMenuActions:M,menuFlipPlacements:$,menuPlacement:C}=this;return l`<calcite-action-menu .expanded=${e} .flipPlacements=${$??(o==="horizontal"?["top","bottom"]:["left","right"])} .hidden=${!M} .label=${a.more} =${this.setMenuOpen} .open=${t} .overlayPositioning=${s} .placement=${C??(o==="horizontal"?"bottom-start":"leading-start")} .scale=${i} .topLayerDisabled=${this.topLayerDisabled}><calcite-action .aria=${{expanded:e}} .icon=${A.menu} .scale=${i} slot=${h.trigger} .text=${a.more} .textEnabled=${e}></calcite-action><slot name=${u.menuActions} =${this.handleMenuActionsSlotChange}></slot><slot name=${u.menuTooltip} slot=${h.tooltip}></slot></calcite-action-menu>`}render(){return l`<div .ariaLabel=${this.label} class=${m(y.container)} .role=${this.selectionMode==="multiple"||this.selectionMode==="none"?"group":"radiogroup"}><slot></slot>${this.renderMenu()}</div>`}};S([x({selector:"calcite-action"})],n.prototype,"actions");g("calcite-action-group",n);export{n as ActionGroup};