/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.24/esri/copyright.txt for details. */ 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 n from"./Widget.js";import r from"./LineOfSight/LineOfSightViewModel.js";import{accessibleHandler as l}from"./support/decorators/accessibleHandler.js";import{messageBundle as a}from"./support/decorators/messageBundle.js";import{tsx as d}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"},p={newAnalysisButton:"esri-line-of-sight__new-button",continueButton:"esri-line-of-sight__continue-button",doneButton:"esri-line-of-sight__done-button"};let c=class extends n{constructor(e,t){super(e,t),this.iconClass=u.widgetIcon,this.label=void 0,this.messages=null,this.view=null,this.viewModel=new r}get analysis(){return this.viewModel.analysis}set analysis(e){this.viewModel.analysis=e}render(){return d("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()),d("div",{class:u.container},e,d("div",{class:u.actionSection},t))}_renderUnsupportedMessage(){return d("div",{class:u.panelError,key:"esri-line-of-sight__unsupported"},d("p",null,this.messages.unsupported))}_renderHint(){return d("div",{class:u.hint,key:"esri-line-of-sight__hint"},d("p",{class:u.hintText},this.messages.hint))}_renderNewAnalysisButton(){return this._renderButton(this._onNewAnalysis,this.messages.newAnalysis,u.newAnalysisButton,p.newAnalysisButton)}_renderDoneButton(){return this._renderButton(this._onDone,this.messages.done,u.secondaryButton,p.doneButton)}_renderContinueButton(){return this._renderButton(this._onContinue,this.messages.continueAnalysis,u.secondaryButton,p.newAnalysisButton)}_renderButton(e,t,s,i){const o="disabled"===this.viewModel.state;return d("button",{disabled:o,class:this.classes(s,u.button,o&&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:p,projector:this._projector}}};e([s("viewModel.active")],c.prototype,"active",void 0),e([i({constructOnly:!0,nonNullable:!0})],c.prototype,"analysis",null),e([i()],c.prototype,"iconClass",void 0),e([i({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],c.prototype,"label",void 0),e([i(),a("esri/widgets/LineOfSight/t9n/LineOfSight")],c.prototype,"messages",void 0),e([s("viewModel.view")],c.prototype,"view",void 0),e([i({type:r})],c.prototype,"viewModel",void 0),e([s("viewModel.visible")],c.prototype,"visible",void 0),e([l()],c.prototype,"_onNewAnalysis",null),e([l()],c.prototype,"_onDone",null),e([l()],c.prototype,"_onContinue",null),c=e([o("esri.widgets.LineOfSight")],c);const h=c;export{h as default};