@esri/calcite-components
Version:
Web Components for Esri's Calcite Design System.
3 lines (2 loc) • 8.54 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.0/LICENSE.txt */
import{a as n}from"./HXIMHC6U.js";import{t as s,u as i}from"./ZQBZ5QPB.js";import"./CIYXQ5G6.js";import{E as g,F as r,Q as u,g as f,h as a}from"./G7AHLVJ5.js";var b=f`: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{position:absolute;inset:0;display:flex;block-size:100%;inline-size:100%;flex-direction:column;overflow:hidden}.main{position:relative;display:flex;block-size:100%;inline-size:100%;flex:1 1 auto;flex-direction:row;justify-content:space-between;overflow:hidden}.content{display:flex;block-size:100%;inline-size:100%;flex-direction:column;flex-wrap:nowrap;overflow:auto;justify-content:space-between}.content ::slotted(calcite-panel),.content ::slotted(calcite-flow){flex:1 1 auto;align-self:stretch;max-block-size:unset}.content--behind{position:absolute;inset:0;border-width:0px;z-index:calc(var(--calcite-z-index) - 1);display:initial}.content--non-interactive{pointer-events:none;display:flex;block-size:100%;inline-size:100%;flex-direction:column;flex-wrap:nowrap}::slotted(calcite-shell-panel){inline-size:unset}::slotted(.header .heading){font-size:var(--calcite-font-size-relative-sm);line-height:var(--calcite-font-line-height-relative-snug);font-weight:var(--calcite-font-weight-normal)}slot[name=panel-start]::slotted(calcite-shell-panel),slot[name=panel-end]::slotted(calcite-shell-panel){position:relative;z-index:calc(var(--calcite-z-index) + 1)}slot[name=panel-end]::slotted(calcite-shell-panel){margin-inline-start:auto}::slotted(calcite-panel),::slotted(calcite-flow){border-width:var(--calcite-border-width-sm);border-color:var(--calcite-shell-border-color, var(--calcite-color-border-3));border-inline-start-width:var(--calcite-border-width-none);border-inline-end-width:var(--calcite-border-width-none);border-style:solid}slot[name=panel-top]::slotted(calcite-shell-panel:not([display-mode^=float])),slot[name=panel-bottom]::slotted(calcite-shell-panel:not([display-mode^=float])){border-color:var(--calcite-shell-border-color, var(--calcite-color-border-3));border-inline-start-width:var(--calcite-border-width-sm);border-inline-end-width:var(--calcite-border-width-sm)}.center-content{display:flex;flex-direction:column;justify-content:space-between;block-size:100%;inline-size:100%;min-inline-size:0}.content-bottom{justify-content:flex-end}::slotted(calcite-shell-panel){flex:none;align-self:stretch}::slotted(calcite-tip-manager){position:absolute;z-index:var(--calcite-z-index-toast);box-sizing:border-box} in-up{0%{opacity:0;transform:translate3D(0,5px,0)}to{opacity:1;transform:translateZ(0)}}::slotted(calcite-tip-manager){animation:in-up var(--calcite-internal-animation-timing-slow) ease-in-out;border-radius:.25rem;--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);inset-block-end:.5rem;inset-inline:var(--calcite-shell-tip-spacing, 26vw)}slot[name=panel-bottom]::slotted(calcite-shell-panel){margin-block-start:auto}slot[name=panel-top]::slotted(calcite-shell-panel){margin-block-end:auto}.position-wrapper{position:absolute;pointer-events:none;inset:0}:host([hidden]){display:none}[hidden]{display:none}`,o={main:"main",content:"content",contentBehind:"content--behind",contentBottom:"content-bottom",contentNonInteractive:"content--non-interactive",footer:"footer",positionedSlotWrapper:"positioned-slot-wrapper",contentBehindCenterContent:"center-content"},l={panelStart:"panel-start",panelEnd:"panel-end",panelTop:"panel-top",panelBottom:"panel-bottom",header:"header",footer:"footer",alerts:"alerts",sheets:"sheets",modals:"modals",dialogs:"dialogs"},h=class extends g{constructor(){super(),this.hasAlerts=!1,this.hasDialogs=!1,this.hasFooter=!1,this.hasHeader=!1,this.hasModals=!1,this.hasOnlyPanelBottom=!1,this.hasPanelBottom=!1,this.hasPanelTop=!1,this.hasSheets=!1,this.panelIsResizing=!1,this.contentBehind=!1,this.listen("calciteInternalShellPanelResizeStart",this.handleCalciteInternalShellPanelResizeStart),this.listen("calciteInternalShellPanelResizeEnd",this.handleCalciteInternalShellPanelResizeEnd)}static{this.properties={hasAlerts:[16,{},{state:!0}],hasDialogs:[16,{},{state:!0}],hasFooter:[16,{},{state:!0}],hasHeader:[16,{},{state:!0}],hasModals:[16,{},{state:!0}],hasOnlyPanelBottom:[16,{},{state:!0}],hasPanelBottom:[16,{},{state:!0}],hasPanelTop:[16,{},{state:!0}],hasSheets:[16,{},{state:!0}],panelIsResizing:[16,{},{state:!0}],contentBehind:[7,{},{reflect:!0,type:Boolean}]}}static{this.styles=b}willUpdate(t){(t.has("hasPanelTop")&&(this.hasUpdated||this.hasPanelTop!==!1)||t.has("hasPanelBottom")&&(this.hasUpdated||this.hasPanelBottom!==!1))&&(this.hasOnlyPanelBottom=!this.hasPanelTop&&this.hasPanelBottom)}handleCalciteInternalShellPanelResizeStart(t){this.panelIsResizing=!0,t.stopPropagation()}handleCalciteInternalShellPanelResizeEnd(t){this.panelIsResizing=!1,t.stopPropagation()}handleHeaderSlotChange(t){this.hasHeader=!!s(t)}handleFooterSlotChange(t){this.hasFooter=!!s(t)}handleAlertsSlotChange(t){this.hasAlerts=!!s(t),i(t).filter(e=>e?.matches("calcite-alert")).forEach(e=>{e.embedded=!0})}handleSheetsSlotChange(t){this.hasSheets=!!s(t),i(t).filter(e=>e?.matches("calcite-sheet")).forEach(e=>{e.embedded=!0})}handleModalsSlotChange(t){this.hasModals=!!s(t),i(t)?.filter(e=>e?.matches("calcite-modal")).forEach(e=>{e.embedded=!0})}handlePanelTopChange(t){this.hasPanelTop=s(t),i(t).filter(e=>e?.matches("calcite-shell-panel")).forEach(e=>{e.layout="horizontal",e.position="start"})}handlePanelBottomChange(t){this.hasPanelBottom=s(t),i(t).filter(e=>e?.matches("calcite-shell-panel")).forEach(e=>{e.layout="horizontal",e.position="end"})}handlePanelStartChange(t){i(t).filter(e=>e?.matches("calcite-shell-panel")).forEach(e=>{e.layout="vertical",e.position="start"})}handlePanelEndChange(t){i(t).filter(e=>e?.matches("calcite-shell-panel")).forEach(e=>{e.layout="vertical",e.position="end"})}handleDialogsSlotChange(t){this.hasDialogs=!!s(t),i(t).filter(e=>e?.matches("calcite-dialog")).forEach(e=>{e.embedded=!0})}renderHeader(){return a`<div .hidden=${!this.hasHeader}>${n("header",a`<slot name=${l.header} =${this.handleHeaderSlotChange}></slot>`)}</div>`}renderFooter(){return n("footer",a`<div class=${r(o.footer)} .hidden=${!this.hasFooter}><slot name=${l.footer} =${this.handleFooterSlotChange}></slot></div>`)}renderAlerts(){return a`<div .hidden=${!this.hasAlerts}>${n("alerts",a`<slot name=${l.alerts} =${this.handleAlertsSlotChange}></slot>`)}</div>`}renderSheets(){return a`<div .hidden=${!this.hasSheets}>${n("sheets",a`<slot name=${l.sheets} =${this.handleSheetsSlotChange}></slot>`)}</div>`}renderModals(){return a`<div .hidden=${!this.hasModals}>${n("modals",a`<slot name=${l.modals} =${this.handleModalsSlotChange}></slot>`)}</div>`}renderDialogs(){return a`<div .hidden=${!this.hasDialogs}>${n("dialogs",a`<slot name=${l.dialogs} =${this.handleDialogsSlotChange}></slot>`)}</div>`}renderContent(){let{panelIsResizing:t}=this,e=n("default-slot",a`<slot></slot>`),d=t?a`<div class=${r(o.contentNonInteractive)}>${e}</div>`:e,c=n("panel-bottom-slot",a`<slot name=${l.panelBottom} =${this.handlePanelBottomChange}></slot>`),p=n("panel-top-slot",a`<slot name=${l.panelTop} =${this.handlePanelTopChange}></slot>`),m="content-container";return this.contentBehind?[n(m,a`<div class=${r({[o.content]:!0,[o.contentBehind]:!0})}>${d}</div>`),a`<div class=${r({[o.contentBehindCenterContent]:!0,[o.contentBottom]:this.hasOnlyPanelBottom})}>${p}${c}</div>`]:[n(m,a`<div class=${r({[o.content]:!0,[o.contentBottom]:this.hasOnlyPanelBottom})}>${p}${d}${c}</div>`)]}renderMain(){return a`<div class=${r(o.main)}><slot name=${l.panelStart} =${this.handlePanelStartChange}></slot>${this.renderContent()}<slot name=${l.panelEnd} =${this.handlePanelEndChange}></slot></div>`}renderPositionedSlots(){return a`<div class=${r(o.positionedSlotWrapper)}>${this.renderAlerts()}${this.renderModals()}${this.renderDialogs()}${this.renderSheets()}</div>`}render(){return a`${this.renderHeader()}${this.renderMain()}${this.renderFooter()}${this.renderPositionedSlots()}`}};u("calcite-shell",h);export{h as Shell};