Slice.js 4.6 KB

12345
  1. /*
  2. All material copyright ESRI, All Rights Reserved, unless otherwise specified.
  3. See https://js.arcgis.com/4.24/esri/copyright.txt for details.
  4. */
  5. import{_ as e}from"../chunks/tslib.es6.js";import{ignoreAbortErrors as t}from"../core/promiseUtils.js";import{aliasOf as s}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as i}from"../core/accessorSupport/decorators/property.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import l from"./Widget.js";import r from"./Slice/SliceViewModel.js";import{Heading as c}from"./support/Heading.js";import"./support/widgetUtils.js";import{messageBundle as n}from"./support/decorators/messageBundle.js";import{tsx as a}from"./support/jsxFactory.js";const d="esri-slice",u={buttonDisabled:"esri-button--disabled",layerIncludeButton:"esri-slice__cross",widgetIcon:"esri-icon-slice",base:`${d} esri-widget esri-widget--panel`,layerList:`${d}__settings`,layerListHeading:"esri-slice__settings-title",layerItem:`${d}__layer-item`,layerItemTitle:`${d}__layer-item__title`,container:`${d}__container`,actionSection:"esri-slice__actions",hint:`${d}__hint`,hintText:`${d}__hint-text`,panelError:`${d}__panel--error`,newSliceButton:`${d}__clear-button esri-button esri-button--primary`,excludeButton:`${d}__exclude-button esri-button esri-button--secondary`,cancelButton:`${d}__cancel-button esri-button esri-button--secondary`};let p=class extends l{constructor(e,t){super(e,t),this.headingLevel=3,this.iconClass=u.widgetIcon,this.label=void 0,this.messages=null,this.view=null,this.viewModel=new r}loadDependencies(){return Promise.all([import("@esri/calcite-components/dist/components/calcite-button.js"),import("@esri/calcite-components/dist/components/calcite-icon.js")])}get analysis(){return this.viewModel.analysis}set analysis(e){this.viewModel.analysis=e}render(){const e=this.viewModel.supported,t=this.viewModel.active,s="disabled"===this.viewModel.state,i="ready"===this.viewModel.state,o="slicing"===this.viewModel.state||"sliced"===this.viewModel.state,l="exclude"===this.viewModel.layersMode,{messages:r}=this,n=s&&u.buttonDisabled,d=t&&!o||l?null:a("button",{disabled:s,class:this.classes(u.newSliceButton,n),bind:this,onclick:this._onNewSliceClick,key:"esri-slice__clear",type:"button"},r.newSlice),p=o&&!l?a("button",{class:this.classes(u.excludeButton,n),bind:this,onclick:()=>{this.viewModel.enterExcludeLayerMode()},key:"esri-slice__exclude",type:"button"},r.excludeLayer):null,y=t&&l?a("button",{class:this.classes(u.cancelButton,n),bind:this,onclick:()=>{this.viewModel.exitExcludeLayerMode()},key:"esri-slice__cancel-exclude",type:"button"},r.cancel):null;let h=null;t&&(l?h=r.excludeHint:i&&(h=r.hint));const v=h?a("div",{class:u.hint,key:"esri-slice__hint"},a("p",{class:u.hintText},h)):null,m=this.excludedLayers?this.excludedLayers.toArray().map((e=>this._renderLayerItem({uid:e.uid,title:e.title,onClick:()=>(this.excludedLayers.remove(e),!1)}))):[];this.excludeGroundSurface&&m.push(this._renderLayerItem({uid:"ground",title:r.ground,onClick:()=>(this.excludeGroundSurface=!1,!1)}));const _=!l&&o&&m.length>0?a("div",{class:u.layerList,key:"esri-slice__settings"},a(c,{class:u.layerListHeading,level:this.headingLevel},r.excludedLayers),a("ul",null,m)):null,b=a("div",{class:u.panelError,key:"esri-slice__unsupported"},a("p",null,r.unsupported)),w=a("div",{class:u.actionSection},p,y,d),g=this.visible?a("div",{class:u.container},e?[v,_,w]:b):null;return a("div",{class:u.base,role:"presentation"},g)}_renderLayerItem(e){return a("li",{class:u.layerItem,key:e.uid},a("calcite-button",{appearance:"transparent",class:u.layerIncludeButton,"icon-start":"x",scale:"s",title:this.messages.includeLayer,bind:this,onclick:e.onClick}),a("div",{class:u.layerItemTitle},e.title))}_onNewSliceClick(){t(this.viewModel.start())}};e([s("viewModel.active")],p.prototype,"active",void 0),e([i({constructOnly:!0,nonNullable:!0})],p.prototype,"analysis",null),e([s("viewModel.excludedLayers")],p.prototype,"excludedLayers",void 0),e([s("viewModel.excludeGroundSurface")],p.prototype,"excludeGroundSurface",void 0),e([i()],p.prototype,"headingLevel",void 0),e([i()],p.prototype,"iconClass",void 0),e([i({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],p.prototype,"label",void 0),e([i(),n("esri/widgets/Slice/t9n/Slice")],p.prototype,"messages",void 0),e([s("viewModel.view")],p.prototype,"view",void 0),e([i({type:r})],p.prototype,"viewModel",void 0),e([s("viewModel.visible")],p.prototype,"visible",void 0),p=e([o("esri.widgets.Slice")],p);const y=p;export{y as default};