@esri/calcite-components
Version:
Web Components for Esri's Calcite Design System.
3 lines (2 loc) • 6.97 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
import{a as w}from"./PDBGWRDU.js";import{c as y,d as A}from"./GAR2IMZ3.js";import{a as g}from"./ENDXE7YY.js";import"./DNYAPW4C.js";import{a as b}from"./LHBACKJ5.js";import"./RRXOB3GM.js";import{c as v}from"./G52BPUIA.js";import{a as x}from"./D7Q3AXKP.js";import"./RH6ZIP65.js";import{e as m}from"./YJF4NBEX.js";import"./TQRVWHPS.js";import{u as f,y as o}from"./KDWR7M23.js";import"./OAOQ5BXS.js";import{G as u,H as c,S as h,g as p,h as s,p as i}from"./C4ZX7VYR.js";var k={actionGroupEnd:"action-group--end",container:"container"},C={expandTooltip:"expand-tooltip"},D=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-pad-gap: var(--calcite-action-pad-items-space, var(--calcite-spacing-xxs));--calcite-internal-action-pad-padding: var(--calcite-spacing-xxs)}:host([scale=m]){--calcite-internal-action-pad-gap: var(--calcite-action-pad-items-space, var(--calcite-spacing-sm));--calcite-internal-action-pad-padding: var(--calcite-spacing-sm)}:host([scale=l]){--calcite-internal-action-pad-gap: var(--calcite-action-pad-items-space, var(--calcite-space-sm-plus));--calcite-internal-action-pad-padding: var(--calcite-spacing-sm-plus)}:host{display:block} in{0%{opacity:0}to{opacity:1}}:host{animation:in var(--calcite-internal-animation-timing-slow) ease-in-out;border-radius:var(--calcite-action-pad-corner-radius, .125rem);background:transparent}:host([expanded][layout=vertical]) .container{max-inline-size:var(--calcite-action-pad-expanded-max-width, auto)}:host([layout=vertical]) ::slotted(calcite-action-group:not(:last-of-type)){border-block-end-width:1px;padding-block-end:var(--calcite-internal-action-pad-padding)}.container{display:inline-flex;flex-direction:column;overflow:hidden;--tw-shadow: 0 6px 20px -4px rgba(0, 0, 0, .1), 0 4px 12px -2px rgba(0, 0, 0, .08);--tw-shadow-colored: 0 6px 20px -4px var(--tw-shadow-color), 0 4px 12px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);border-radius:calc(var(--calcite-action-pad-corner-radius, .125rem) * 2);background-color:var(--calcite-action-background-color, var(--calcite-color-foreground-1));gap:var(--calcite-internal-action-pad-gap);padding:var(--calcite-internal-action-pad-padding)}.action-group--bottom{flex-grow:1;justify-content:flex-end;padding-block-end:0px}:host([layout=horizontal]) .container{flex-direction:row}:host([layout=horizontal]) .container .action-group--bottom{padding:0}:host([layout=horizontal]) .container ::slotted(calcite-action-group:not(:last-of-type)){border-inline-end-width:1px;padding-inline-end:var(--calcite-internal-action-pad-padding)}:host([hidden]){display:none}[hidden]{display:none}`,r=class extends u{constructor(){super(),this.actions=[],this.direction=m(),this.mutationObserver=g("mutation",()=>this.mutationObserverHandler()),this.toggleExpand=()=>{this.expanded=!this.expanded,this.calciteActionPadToggle.emit()},this.messages=b({blocking:!0}),this.focusSetter=x()(this),this.expandDisabled=!1,this.expanded=!1,this.layout="vertical",this.overlayPositioning="absolute",this.scale="m",this.selectionAppearance="neutral",this.calciteActionPadCollapse=i({cancelable:!1}),this.calciteActionPadExpand=i({cancelable:!1}),this.calciteActionPadToggle=i({cancelable:!1}),this.listen("calciteActionMenuOpen",this.actionMenuOpenHandler),this.listen("keydown",this.handleKeyDown)}static{this.properties={expandTooltip:[16,{},{state:!0}],actionsEndGroupLabel:1,expandDisabled:[7,{},{reflect:!0,type:Boolean}],expanded:[7,{},{reflect:!0,type:Boolean}],layout:[3,{},{reflect:!0}],messageOverrides:[0,{},{attribute:!1}],overlayPositioning:[3,{},{reflect:!0}],position:[3,{},{reflect:!0}],scale:[3,{},{reflect:!0}],selectionAppearance:[3,{},{reflect:!0}]}}static{this.shadowRootOptions={mode:"open",delegatesFocus:!0}}static{this.styles=D}async setFocus(t){return this.focusSetter(()=>this.el,t)}connectedCallback(){super.connectedCallback(),this.updateActions(),this.mutationObserver?.observe(this.el,{childList:!0,subtree:!0})}async load(){w.deprecated("component",{component:this,name:"action-pad",removalVersion:5,suggested:"action-bar"})}willUpdate(t){t.has("expanded")&&this.hasUpdated&&y({el:this.el,expanded:this.expanded}),t.has("layout")&&(this.hasUpdated||this.layout!=="vertical")&&this.updateGroups(),t.has("expanded")&&this.hasUpdated&&(this.expanded?this.calciteActionPadExpand.emit():this.calciteActionPadCollapse.emit()),t.has("selectionAppearance")&&(this.hasUpdated||this.selectionAppearance!=="neutral")&&this.updateActions()}disconnectedCallback(){super.disconnectedCallback(),this.mutationObserver?.disconnect()}actionMenuOpenHandler(t){if(t.target.menuOpen){let a=t.composedPath();this.actionGroups?.forEach(e=>{a.includes(e)||(e.menuOpen=!1)})}}updateGroups(){let t=Array.from(this.el.querySelectorAll("calcite-action-group"));this.actionGroups=t,this.setGroupLayout(t)}setGroupLayout(t){t.forEach(a=>a.layout=this.layout)}handleDefaultSlotChange(){this.updateGroups(),this.queryAndStoreActions(),this.updateActions()}handleTooltipSlotChange(t){let a=f(t).filter(e=>e?.matches("calcite-tooltip"));this.expandTooltip=a[0]}handleKeyDown(t){this.queryAndStoreActions();let a=this.actions.filter(n=>!n.disabled),e=document.activeElement;if(v(e))switch(t.key){case"ArrowRight":case"ArrowDown":o(a,e,"next",!0),t.preventDefault();break;case"ArrowLeft":case"ArrowUp":o(a,e,"previous",!0),t.preventDefault();break;case"Home":o(a,e,"first",!0),t.preventDefault();break;case"End":o(a,e,"last",!0),t.preventDefault();break;case"Tab":this.updateTabIndexOfItems(e);break}}updateActions(){this.actions.forEach(t=>{t.selectionAppearance=this.selectionAppearance})}updateTabIndexOfItems(t){this.actions.forEach(a=>{a.tabIndex=t!==a?-1:0})}queryAndStoreActions(){this.actions=Array.from(this.el.querySelectorAll("calcite-action"))}mutationObserverHandler(){this.updateGroups(),this.queryAndStoreActions(),this.updateActions()}renderBottomActionGroup(){let{expanded:t,expandDisabled:a,messages:e,el:n,position:E,toggleExpand:T,scale:l,layout:S,actionsEndGroupLabel:G,overlayPositioning:O}=this,d=a?null:A({collapseLabel:e.collapseLabel,collapseText:e.collapse,direction:this.direction,el:n,expandLabel:e.expandLabel,expandText:e.expand,expanded:t,position:E,scale:l,toggle:T,tooltip:this.expandTooltip});return d?s`<calcite-action-group class=${c(k.actionGroupEnd)} .label=${G} .layout=${S} .overlayPositioning=${O} .scale=${l}><slot name=${C.expandTooltip} =${this.handleTooltipSlotChange}></slot>${d}</calcite-action-group>`:null}render(){return s`<div class=${c(k.container)}><slot =${this.handleDefaultSlotChange}></slot>${this.renderBottomActionGroup()}</div>`}};h("calcite-action-pad",r);export{r as ActionPad};