@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 3.88 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.32/esri/copyright.txt for details.
*/
import{_ as e}from"../chunks/tslib.es6.js";import"../core/has.js";import{ignoreAbortErrors as t}from"../core/promiseUtils.js";import{property as s}from"../core/accessorSupport/decorators/property.js";import"../core/Logger.js";import"../core/RandomLCG.js";import{subclass as i}from"../core/accessorSupport/decorators/subclass.js";import n from"./Widget.js";import o from"./LineOfSight/LineOfSightViewModel.js";import{loadCalciteComponents as r}from"./support/componentsUtils.js";import{globalCss as l}from"./support/globalCss.js";import"./support/widgetUtils.js";import{messageBundle as a}from"./support/decorators/messageBundle.js";import{tsx as u}from"./support/jsxFactory.js";const d="esri-line-of-sight",p={base:d,actions:`${d}__actions`,container:`${d}__container`,error:`${d}__error`,hint:`${d}__hint`,hintText:`${d}__hint-text`,newAnalysisButton:`${d}__new-analysis-button`},c={newAnalysisButton:`${d}__new-button`,continueButton:`${d}__continue-button`,doneButton:`${d}__done-button`};let h=class extends n{constructor(e,s){super(e,s),this.messages=null,this.viewModel=new o,this._onNewAnalysis=()=>{t(this.viewModel.start())},this._onDone=()=>{this.viewModel.stop()},this._onContinue=()=>{this.viewModel.continue()}}loadDependencies(){return r({button:()=>import("@esri/calcite-components/dist/components/calcite-button")})}get active(){return this.viewModel.active}get analysis(){return this.viewModel.analysis}set analysis(e){this.viewModel.analysis=e}get icon(){return"line-of-sight"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get visible(){return this.viewModel.visible}set visible(e){this.viewModel.visible=e}render(){return u("div",{class:this.classes(p.base,l.widget,l.panel),role:"presentation"},this._renderContainerNode())}_renderContainerNode(){if(!this.visible)return null;if(!this.viewModel.supported)return this._renderUnsupportedMessage();let e=null;const t=[this._renderNewAnalysisButton()];return"creating"===this.viewModel.state?(e=this._renderHint(),t.unshift(this._renderDoneButton())):"created"===this.viewModel.state&&this.viewModel.targets.length>0&&t.unshift(this._renderContinueButton()),u("div",{class:p.container},e,u("div",{class:p.actions},t))}_renderUnsupportedMessage(){return u("div",{class:p.error,key:"esri-line-of-sight__unsupported"},u("p",null,this.messages.unsupported))}_renderHint(){return u("div",{class:p.hint,key:"esri-line-of-sight__hint"},u("p",{class:p.hintText},this.messages.hint))}_renderNewAnalysisButton(){return this._renderButton({className:p.newAnalysisButton,id:c.newAnalysisButton,label:this.messages.newAnalysis,onClick:this._onNewAnalysis,primary:!0})}_renderDoneButton(){return this._renderButton({id:c.doneButton,label:this.messages.done,onClick:this._onDone,primary:!1})}_renderContinueButton(){return this._renderButton({id:c.newAnalysisButton,label:this.messages.continueAnalysis,onClick:this._onContinue,primary:!1})}_renderButton({className:e,id:t,label:s,onClick:i,primary:n}){const o="disabled"===this.viewModel.state;return u("calcite-button",{appearance:n?"solid":"outline-fill",class:e,"data-id":t,disabled:o,key:t,onclick:i},s)}get test(){}};e([s()],h.prototype,"active",null),e([s({constructOnly:!0,nonNullable:!0})],h.prototype,"analysis",null),e([s()],h.prototype,"icon",null),e([s()],h.prototype,"label",null),e([s(),a("esri/widgets/LineOfSight/t9n/LineOfSight")],h.prototype,"messages",void 0),e([s()],h.prototype,"view",null),e([s({type:o})],h.prototype,"viewModel",void 0),e([s()],h.prototype,"visible",null),h=e([i("esri.widgets.LineOfSight")],h);const m=h;export{m as default};