UNPKG

@arcgis/map-components

Version:
4 lines • 7.46 kB
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.33/esri/copyright.txt for details. v4.33.16 */ import h from"./SC2IQ5JR.js";import e from"./RL666STY.js";import"./FZ4DMONQ.js";import{a as C}from"./T76F7GZJ.js";import"./T2U7YMYT.js";import d from"./OZHVOZJR.js";import{a as k}from"./JYDXZCEV.js";import{a as g}from"./NFZIPMDZ.js";import c from"./6CVZUPDX.js";import a from"./LPU7W35B.js";import{e as S}from"./UN4H7E6L.js";import"./AMHKFE57.js";import"./PMTZ5QWJ.js";import{B as f,E as $,P as L,Q as s,S as b,U as w,j as v,k as l}from"./MWSR363G.js";export default $arcgis.t(([V,{property:y,subclass:B},{ignoreAbortErrors:D},{watch:H},,,M,,E])=>{var O=v`@layer{arcgis-slice{display:block}.arcgis-slice__container{display:flex;padding:var(--esri-widget-padding-y) var(--esri-widget-padding-x);overflow-y:auto;--layer-item-background: var(--calcite-color-foreground-2)}.arcgis-slice__error{color:var(--calcite-color-status-danger)}.arcgis-slice__container,.arcgis-slice__hint{display:flex;flex-direction:column;gap:var(--calcite-spacing-md)}.arcgis-slice__error,.arcgis-slice__hint{overflow:hidden;animation:arcgis-slice-fade-in .25s ease-in-out}.arcgis-slice__error p,.arcgis-slice__hint p{margin:0;padding:0}.arcgis-slice__hint:not(:has(*)){display:none}.arcgis-slice__layer-item{--calcite-color-foreground-2: var(--layer-item-background);--calcite-color-foreground-1: var(--layer-item-background)}.arcgis-slice__actions{display:flex;flex-flow:column;gap:var(--calcite-spacing-xxs);justify-content:center}.arcgis-slice__actions:not(:has(*)){display:none}@keyframes arcgis-slice-fade-in{0%{opacity:0}25%{opacity:0}to{opacity:1}}}`,I=Object.defineProperty,P=Object.getOwnPropertyDescriptor,o=(e,i,t,d)=>{for(var c=d>1?void 0:d?P(i,t):i,u=e.length-1,h;u>=0;u--)(h=e[u])&&(c=(d?h(i,t,c):h(c))||c);return d&&c&&I(i,t,c),c},m=new Set,n=class extends E{constructor(){super(...arguments),this.supportedViewType="3d",this.unsupportedErrorMessage="SliceViewModel is only supported in 3D views."}async pickLayerToExclude(){let e=this.analysisView;if(e){let i=super.start(t=>e.pickLayerToExclude(t));this._excludingLayers=i,i.finally(()=>{this._excludingLayers===i&&(this._excludingLayers=void 0)}),await i.catch()}}async place(e){await this.analysisView?.place(e)}clearAnalysis(){this.analysis.shape=null}initialize(){m.add(this)}destroy(){m.delete(this)}get state(){return this.disabled||!this.ready?"disabled":this._excludingLayers?"excludingLayer":this.operationState==="active"?"slicing":this.analysis.valid?"sliced":"ready"}get shape(){return this.analysis.shape}set shape(e){this.analysis.shape=e}get tiltEnabled(){return this.analysis.tiltEnabled}set tiltEnabled(e){this.analysis.tiltEnabled=e}get excludedLayers(){return this.analysis.excludedLayers}set excludedLayers(e){this.analysis.excludedLayers=e}get excludeGroundSurface(){return this.analysis.excludeGroundSurface}set excludeGroundSurface(e){this.analysis.excludeGroundSurface=e}async start(){m.forEach(e=>{e.view===this.view&&e!==this&&e.clear()}),this.clear(),await super.start()}onConnectToAnalysisView(e){e.active=!0}constructAnalysis(){return new V}};o([y()],n.prototype,"_excludingLayers",2);o([y({readOnly:!0})],n.prototype,"state",1);o([y()],n.prototype,"shape",1);o([y()],n.prototype,"tiltEnabled",1);o([y()],n.prototype,"excludedLayers",1);o([y()],n.prototype,"excludeGroundSurface",1);n=o([B("esri.components.Slice.SliceViewModel")],n);var r="arcgis-slice",a={base:r,actions:`${r}__actions`,cancelButton:`${r}__cancel-button`,container:`${r}__container`,error:`${r}__error`,excludeButton:`${r}__exclude-button`,hint:`${r}__hint`,hintText:`${r}__hint-text`,layerItem:`${r}__layer-item`,layerList:`${r}__layer-list`,layerListHeading:`${r}__layer-list-title`,newSliceButton:`${r}__clear-button`},j=M(n),x=class extends L{constructor(){super(...arguments),this.viewModel=j(this),this._messages=k(),this._onNewSliceClick=()=>{D(this.viewModel.start())},this.analysis=this.viewModel.analysis,this.autoDestroyDisabled=!1,this.excludeGroundSurface=this.viewModel.excludeGroundSurface,this.excludedLayers=this.viewModel.excludedLayers,this.headingLevel=3,this.icon="slice",this.position="bottom-left",this.shape=this.viewModel.shape,this.state=this.viewModel.state,this.tiltEnabled=this.viewModel.tiltEnabled,this.arcgisPropertyChange=S()("analysis","state"),this.arcgisReady=f()}static{this.properties={_hasVoxelLayers:16,analysis:0,autoDestroyDisabled:5,excludeGroundSurface:5,excludedLayers:0,headingLevel:9,icon:3,label:1,messageOverrides:0,position:1,referenceElement:1,shape:0,state:35,tiltEnabled:5}}static{this.shadowRootOptions=$}static{this.styles=O}get _hasVoxelLayers(){let i=this.viewModel?.view;return i!=null?i.allLayerViews.some(t=>t.type==="voxel-3d"):!1}async clear(){this.viewModel.clear()}async destroy(){await this.manager.destroy()}async start(){this.viewModel.start()}load(){this.manager.onLifecycle(()=>[H(()=>this._renderContainerNode(),()=>this.requestUpdate())])}render(){return l`<div class=${s({[a.base]:!0,[g.widget]:!0,[g.panel]:!0})} role=presentation>${this._renderContainerNode()}</div>`}_renderContainerNode(){let i=this._messages,{state:t,visible:d,supported:c}=this.viewModel,u=t==="slicing"||t==="excludingLayer";if(!d||!c)return null;c||l`<div class=${s(a.container)}><div class=${s(a.error)}><p>${this._messages.unsupported}</p></div></div>`;let{excludedLayers:h}=this.viewModel,_=this.excludeGroundSurface,T=h.length>0||_,p=t==="disabled";return l`<div class=${s(a.container)}><div class=${s(a.hint)}>${t==="excludingLayer"?l`<p class=${s(a.hintText)}>${i.excludeHint}</p>`:null}${t==="slicing"?l`<p class=${s(a.hintText)}>${this._hasVoxelLayers?i.voxelHint:i.hint}</p><p class=${s(a.hintText)}>${i.verticalHint}</p>`:null}</div>${!u&&T?l`<div class=${s(a.layerList)}>${C({class:a.layerListHeading,level:this.headingLevel,children:i.excludedLayers})}${N({layers:h.toArray(),excludeGroundSurface:_,onLayerClick:A=>{this.excludedLayers.remove(A)},onGroundClick:()=>{this.excludeGroundSurface=!1},listLabel:i.excludedLayers,layerActionLabel:i.includeLayer,groundItemTitle:i.ground})}</div>`:null}<div class=${s(a.actions)}>${u?null:l`<calcite-button class=${s(a.newSliceButton)} .disabled=${p} @click=${this._onNewSliceClick}>${i.newSlice}</calcite-button>`}${t==="sliced"?l`<calcite-button appearance=outline-fill class=${s(a.excludeButton)} .disabled=${p} @click=${()=>this.viewModel.pickLayerToExclude()}>${i.excludeLayer}</calcite-button>`:null}${t==="excludingLayer"?l`<calcite-button appearance=outline-fill class=${s(a.cancelButton)} .disabled=${p} @click=${()=>this.viewModel.stop()}>${i.cancel}</calcite-button>`:null}</div></div>`}};function G(e){return l`<calcite-list-item class=${s(a.layerItem)} data-testid=${`list-item-${e.uid}`} .label=${e.title??""}><calcite-action icon=x @click=${e.onClick} scale=s slot=actions-end .text=${e.actionLabel} title=${e.actionLabel??b}></calcite-action></calcite-list-item>`}function N(e){let i=e.layers.map(t=>G({uid:t.uid,title:t.title??"",onClick:()=>e.onLayerClick(t),actionLabel:e.layerActionLabel}));return e.excludeGroundSurface&&i.push(G({uid:"ground",title:e.groundItemTitle,onClick:e.onGroundClick,actionLabel:e.layerActionLabel})),l`<calcite-list .label=${e.listLabel} selection-mode=none>${i}</calcite-list>`}w("arcgis-slice",x);return x},"analysis/SliceAnalysis","core/accessorSupport/decorators","core/promiseUtils","core/reactiveUtils",a,c,d,e,h)