12345 |
- /*
- All material copyright ESRI, All Rights Reserved, unless otherwise specified.
- See https://js.arcgis.com/4.25/esri/copyright.txt for details.
- */
- import{_ as e}from"../chunks/tslib.es6.js";import{property as i}from"../core/accessorSupport/decorators/property.js";import"../core/arrayUtils.js";import{cast as s}from"../core/accessorSupport/decorators/cast.js";import{subclass as t}from"../core/accessorSupport/decorators/subclass.js";import r from"./Widget.js";import l from"./BuildingExplorer/BuildingExplorerViewModel.js";import o from"./BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesTree.js";import n from"./BuildingExplorer/BuildingLevelPicker/BuildingLevelPicker.js";import a from"./BuildingExplorer/BuildingPhasePicker/BuildingPhasePicker.js";import{Heading as d}from"./support/Heading.js";import{classes as p}from"./support/widgetUtils.js";import{messageBundle as c}from"./support/decorators/messageBundle.js";import{tsx as g}from"./support/jsxFactory.js";const u={levels:!0,phases:!0,disciplines:!0},h="esri-building-explorer",m={esriWidget:"esri-widget",esriWidgetDisabled:"esri-widget--disabled",esriIconLoadingIndicator:"esri-icon-loading-indicator",esriRotating:"esri-rotating",widgetIcon:"esri-icon-organization",base:`${h} esri-widget--panel`,panelError:`${h}__panel--error`,loadingContainer:`${h}__loading-container`,content:`${h}__content`,section:`${h}__section`,levels:`${h}__levels`,phases:`${h}__phases`,disciplines:`${h}__disciplines`};let v=class extends r{constructor(e,i){super(e,i),this._defaultViewModel=new l,this.viewModel=this._defaultViewModel,this.visibleElements={...u},this.headingLevel=3,this.iconClass=m.widgetIcon,this.messages=null,this.messagesCommon=null,this.toggleSiblingsVisibility=!1}destroy(){this.viewModel!==this._defaultViewModel&&this._defaultViewModel.destroy()}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get layers(){return this.viewModel.layers}set layers(e){this.viewModel.layers=e}_castVisibleElements(e){return{...u,...e}}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}render(){const e=this.viewModel,i="disabled"===e.state||!e.isSupported;return g("div",{key:this,class:p(m.esriWidget,m.base,{[m.esriWidgetDisabled]:i}),"aria-label":this.messages.widgetLabel},this._renderContent())}_renderContent(){const e=this.viewModel,i=this.messages;if(!e.isSupported)return g("p",{class:m.panelError},i.unsupported);if(!e.layers.length)return g("p",{class:m.panelError},i.noData);switch(e.state){case"loading":return this._renderLoadingIndicator();case"ready":return g("div",{key:"content",class:m.content},this._renderLevelPickerSection(),this._renderPhasePickerSection(),this._renderDisciplinesSection());case"failed":return g("p",{class:m.panelError},i.failed);default:return null}}_renderLoadingIndicator(){const e=this.messagesCommon.loading;return g("div",{key:"loading-container",role:"presentation",class:m.loadingContainer,"aria-label":e,title:e},g("span",{"aria-hidden":"true",class:p(m.esriIconLoadingIndicator,m.esriRotating)}))}_renderLevelPickerSection(){const e=this.viewModel.level,i="ready"===e.state,s=e.allowedValues.length>1;if(!this.visibleElements.levels||!i||!s)return null;const t=this.messages?.level;return g("div",{key:"levels",class:p(m.section,m.levels)},g(d,{level:this.headingLevel},t?.title),g(n,{vm:e,messages:t}))}_renderPhasePickerSection(){const e=this.viewModel.phase,i="ready"===e.state,s=e.allowedValues.length>1;if(!this.visibleElements.phases||!i||!s)return null;const t=this.messages.phase;return g("div",{key:"phases",class:p(m.section,m.phases)},g(d,{level:this.headingLevel},t.title),g(a,{vm:e,messages:t}))}_renderDisciplinesSection(){const e=this.viewModel.disciplines,i="ready"===e.state,s=e.root.hasChildren;if(!this.visibleElements.disciplines||!i||!s)return null;const t=this.messages?.disciplines;return g("div",{key:"disciplines",class:p(m.section,m.disciplines)},g(d,{level:this.headingLevel},t.title),g(o,{vm:e,messages:t,toggleSiblingsVisibility:this.toggleSiblingsVisibility}))}};e([i({type:l})],v.prototype,"viewModel",void 0),e([i()],v.prototype,"view",null),e([i()],v.prototype,"layers",null),e([i()],v.prototype,"visibleElements",void 0),e([s("visibleElements")],v.prototype,"_castVisibleElements",null),e([i()],v.prototype,"headingLevel",void 0),e([i()],v.prototype,"iconClass",void 0),e([i()],v.prototype,"label",null),e([i(),c("esri/widgets/BuildingExplorer/t9n/BuildingExplorer")],v.prototype,"messages",void 0),e([i(),c("esri/t9n/common")],v.prototype,"messagesCommon",void 0),e([i({nonNullable:!0})],v.prototype,"toggleSiblingsVisibility",void 0),e([i()],v.prototype,"uiStrings",void 0),v=e([t("esri.widgets.BuildingExplorer")],v);const y=v;export{y as default};
|