LineOfSight.js 4.0 KB

12345
  1. /*
  2. All material copyright ESRI, All Rights Reserved, unless otherwise specified.
  3. See https://js.arcgis.com/4.25/esri/copyright.txt for details.
  4. */
  5. import{_ as e}from"../chunks/tslib.es6.js";import{ignoreAbortErrors as t}from"../core/promiseUtils.js";import{property as s}from"../core/accessorSupport/decorators/property.js";import"../core/arrayUtils.js";import"../core/accessorSupport/ensureType.js";import{subclass as i}from"../core/accessorSupport/decorators/subclass.js";import n from"./Widget.js";import o from"./LineOfSight/LineOfSightViewModel.js";import{accessibleHandler as r}from"./support/decorators/accessibleHandler.js";import{messageBundle as l}from"./support/decorators/messageBundle.js";import{tsx as a}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const u={button:"esri-button",buttonDisabled:"esri-button--disabled",widgetIcon:"esri-icon-line-of-sight",base:"esri-line-of-sight esri-widget esri-widget--panel",container:"esri-line-of-sight__container",actionSection:"esri-line-of-sight__actions",hint:"esri-line-of-sight__hint",hintText:"esri-line-of-sight__hint-text",panelError:"esri-line-of-sight__panel--error",newAnalysisButton:"esri-line-of-sight__new-analysis-button esri-button--primary",secondaryButton:"esri-line-of-sight__secondary-button esri-button--secondary"},d={newAnalysisButton:"esri-line-of-sight__new-button",continueButton:"esri-line-of-sight__continue-button",doneButton:"esri-line-of-sight__done-button"};let p=class extends n{constructor(e,t){super(e,t),this.iconClass=u.widgetIcon,this.messages=null,this.viewModel=new o}get active(){return this.viewModel.active}get analysis(){return this.viewModel.analysis}set analysis(e){this.viewModel.analysis=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 a("div",{class:u.base,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()),a("div",{class:u.container},e,a("div",{class:u.actionSection},t))}_renderUnsupportedMessage(){return a("div",{class:u.panelError,key:"esri-line-of-sight__unsupported"},a("p",null,this.messages.unsupported))}_renderHint(){return a("div",{class:u.hint,key:"esri-line-of-sight__hint"},a("p",{class:u.hintText},this.messages.hint))}_renderNewAnalysisButton(){return this._renderButton(this._onNewAnalysis,this.messages.newAnalysis,u.newAnalysisButton,d.newAnalysisButton)}_renderDoneButton(){return this._renderButton(this._onDone,this.messages.done,u.secondaryButton,d.doneButton)}_renderContinueButton(){return this._renderButton(this._onContinue,this.messages.continueAnalysis,u.secondaryButton,d.newAnalysisButton)}_renderButton(e,t,s,i){const n="disabled"===this.viewModel.state;return a("button",{disabled:n,class:this.classes(s,u.button,n&&u.buttonDisabled),bind:this,onclick:e,key:i,type:"button","data-id":i},t)}_onNewAnalysis(){t(this.viewModel.start())}_onDone(){this.viewModel.stop()}_onContinue(){this.viewModel.continue()}get test(){return{IDS:d,projector:this._projector}}};e([s()],p.prototype,"active",null),e([s({constructOnly:!0,nonNullable:!0})],p.prototype,"analysis",null),e([s()],p.prototype,"iconClass",void 0),e([s()],p.prototype,"label",null),e([s(),l("esri/widgets/LineOfSight/t9n/LineOfSight")],p.prototype,"messages",void 0),e([s()],p.prototype,"view",null),e([s({type:o})],p.prototype,"viewModel",void 0),e([s()],p.prototype,"visible",null),e([r()],p.prototype,"_onNewAnalysis",null),e([r()],p.prototype,"_onDone",null),e([r()],p.prototype,"_onContinue",null),p=e([i("esri.widgets.LineOfSight")],p);const h=p;export{h as default};