@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 6.01 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
*/
import{_ as t}from"../chunks/tslib.es6.js";import{property as e}from"../core/accessorSupport/decorators/property.js";import"../core/has.js";import"../core/Logger.js";import"../core/RandomLCG.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import i from"./Widget.js";import{loadCalciteComponents as s}from"./support/componentsUtils.js";import"./support/widgetUtils.js";import{messageBundle as n}from"./support/decorators/messageBundle.js";import{tsx as c}from"./support/jsxFactory.js";import r from"./UtilityNetworkValidateTopology/UtilityNetworkValidateTopologyViewModel.js";const a="esri-un-validate-topology",l={container:`${a}__container`,content:`${a}__content`,controlsContainer:`${a}__controls-container`,statusIconError:`${a}__status-icon-error`,statusIconSuccess:`${a}__status-icon-success`,statusIconContainer:`${a}__status-icon-container`};let d=class extends i{constructor(t,e){super(t,e),this.messages=null,this.viewModel=new r}loadDependencies(){return s({action:()=>import("@esri/calcite-components/dist/components/calcite-action"),block:()=>import("@esri/calcite-components/dist/components/calcite-block"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon"),notice:()=>import("@esri/calcite-components/dist/components/calcite-notice"),option:()=>import("@esri/calcite-components/dist/components/calcite-option"),select:()=>import("@esri/calcite-components/dist/components/calcite-select"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip")})}get extentToValidate(){return this.viewModel.extentToValidate}set extentToValidate(t){this.viewModel.extentToValidate=t}get icon(){return"check-circle"}set icon(t){this._overrideIfSome("icon",t)}get label(){return this.messages?.label??""}set label(t){this._overrideIfSome("label",t)}get utilityNetwork(){return this.viewModel.utilityNetwork}set utilityNetwork(t){this.viewModel.utilityNetwork=t}get view(){return this.viewModel.view}set view(t){this.viewModel.view=t}render(){const{viewModel:t}=this;return"disabled"===t.state?c("div",{class:l.container},c("calcite-block",{class:l.content,collapsible:!1,expanded:!0,heading:this.label},this._renderLoadErrorStatusIcon(),this._renderLoadErrorsNotices())):c("div",{class:l.container},c("calcite-block",{class:l.content,collapsible:!0,expanded:!1,heading:this.label},this._renderStatusIcon(),this._renderValidateTopologyAction(),this._renderControls()))}_extentOptionSelectChange(t){this.extentToValidate=t.currentTarget.value}_getLoadErrorMessagesAsNotices(t,e){return c("calcite-notice",{closable:!1,key:"error-notice-"+e,kind:"warning",open:!0,scale:"s"},c("div",{slot:"message"},t))}_handleValidateTopologyAction(){this.viewModel.validateTopology().catch((()=>{}))}_renderControls(){const{viewModel:t}=this;return"failed"===t.state?c("div",{class:l.controlsContainer},this._renderExtentOptionSelect(),this._renderStatusNotice()):this._renderExtentOptionSelect()}_renderExtentOptionSelect(){const{messages:t,viewModel:e}=this;return c("div",{key:"selectExtentDiv"},c("calcite-select",{bind:this,disabled:"loading"===e.state||"executing"===e.state,label:t.input.extentToValidate,onCalciteSelectChange:this._extentOptionSelectChange},c("calcite-option",{value:"current"},t.input.currentExtent),c("calcite-option",{value:"entire"},t.input.entireExtent)))}_renderLoadErrorsNotices(){const{viewModel:t}=this;return c("div",{class:l.controlsContainer,key:"loadErrorsDiv"},t.loadErrors.items.map(this._getLoadErrorMessagesAsNotices))}_renderLoadErrorStatusIcon(){return c("div",{class:l.statusIconContainer,key:"statusDiv",slot:"control"},c("calcite-icon",{class:l.statusIconError,icon:"exclamation-mark-triangle",scale:"s"}))}_renderStatusIcon(){const{messages:t,viewModel:e}=this,o=`${this.id}-validation-status-action`,i=`${this.id}-error-status-icon`,s=`${this.id}-success-status-icon`,n=t=>{setTimeout((()=>{t.textContent=""}),3500)};return"executing"===e.state?c("div",{key:"statusDivExecuting",slot:"control"},c("calcite-action",{id:o,loading:!0,text:t.status.executing}),c("calcite-tooltip",{overlayPositioning:"fixed",referenceElement:o},c("span",null,t.status.executing))):"success"===e.state?c("div",{afterCreate:n,class:l.statusIconContainer,key:"statusDivSuccess",slot:"control"},c("calcite-icon",{class:l.statusIconSuccess,icon:"check-circle",id:s,scale:"s"}),c("calcite-tooltip",{referenceElement:s},c("span",null,t.status.success))):"failed"===e.state?c("div",{class:l.statusIconContainer,key:"statusDivFailed",slot:"control"},c("calcite-icon",{class:l.statusIconError,icon:"exclamation-mark-triangle",id:i,scale:"s"}),c("calcite-tooltip",{referenceElement:i},c("span",null,e.executionError))):c("div",{class:l.statusIconContainer,key:"statusDiv",slot:"control"})}_renderStatusNotice(){const{viewModel:t}=this;return c("div",{key:"executionErrorDiv"},c("calcite-notice",{closable:!0,kind:"warning",open:!0,scale:"s"},c("div",{slot:"message"},t.executionError)))}_renderValidateTopologyAction(){const{messages:t,viewModel:e}=this,o=`${this.id}-validation-action`;return c("div",{key:"actionDiv",slot:"control"},c("calcite-action",{bind:this,disabled:"executing"===e.state,icon:"play-f",id:o,loading:"loading"===e.state,onclick:this._handleValidateTopologyAction,text:t.input.validateTopology}),c("calcite-tooltip",{referenceElement:o},c("span",null,"loading"===e.state?t.status.loading:t.input.validateTopology)))}};t([e()],d.prototype,"extentToValidate",null),t([e()],d.prototype,"icon",null),t([e()],d.prototype,"label",null),t([e(),n("esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology")],d.prototype,"messages",void 0),t([e()],d.prototype,"utilityNetwork",null),t([e()],d.prototype,"view",null),t([e({type:r})],d.prototype,"viewModel",void 0),d=t([o("esri.widgets.UtilityNetworkValidateTopology")],d);const p=d;export{p as default};