/* COPYRIGHT Esri - https://js.arcgis.com/1.2/LICENSE.txt */
import d from"./OIYMOLB7.js";import c from"./7BOA27L2.js";import"./5XHAT3I6.js";import"./DC5KIXAN.js";import"./4Q4PZB7R.js";import a from"./HUJP6DFF.js";import{a as m}from"./XN2LWKJE.js";import"./4BPRM7CL.js";import"./NIL6NWG5.js";import"./ED6SUP22.js";import"./E6P6PYNW.js";import"./IKKBLHLZ.js";import"./CUA2IUXX.js";import"./4UZDZNJD.js";import"./KOTG6W5Z.js";import"./6SC7YR5Y.js";import"./Z6NOHRUL.js";import"./GVM4XYEI.js";import"./NGDVSE4Z.js";import"./BTNJZZQQ.js";import"./ZYQ4P2ON.js";import"./5MKH4QDV.js";import"./3GWWHA4S.js";import"./3YYHZQJB.js";import"./JEJ23R3P.js";import"./TONS7KZJ.js";import"./Q62UEPOL.js";import"./44A5XEM4.js";import{b as w}from"./ODCCVHGI.js";import{H as g,J as i,K as b,h as u,i as s,l as _,r as l,u as f}from"./42WFQ3AX.js";import"./3QPJ2JCA.js";export default $arcgis.t(([E,o,,,y])=>{var F=u`@layer{
/** @license
 * Copyright 2025 Esri
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

:host {
  display: block;
  --calcite-label-margin-bottom: 0;
}

.padding-1-2 {
  padding: 0.5rem;
}

.display-none {
  display: none !important;
}

.display-flex {
  display: flex;
}

.position-absolute {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  overflow: auto;
}

.feature-node {
  position: relative !important;
}

.feature-node .esri-features__footer {
  display: none !important;
}

.button-container {
  justify-content: center;
  align-items: center;
}

.top-border {
  border-top: 1px solid var(--calcite-color-border-1);
}

.width-100 {
  width: 100%;
}

.esri-features__container {
  padding: 0.5rem !important;
  background-color: var(--calcite-color-foreground-1) !important;
  height: 100% !important;
}

.end-border {
  border-inline-end: 1px solid var(--calcite-color-border-1);
}

.font-bold {
  font-weight: bold;
}

.z-index-1 {
  z-index: 1;
}

.visibility-hidden {
  visibility: hidden;
  height: 0px;
}

.padding-inline-start-1 {
  padding-inline-start: 1rem;
}

.border-width-0 {
  border-width: 0px;
}

.pagination-action {
  position: relative;
  left: 3px;
}

.pagination-count {
  color: var(--calcite-color-brand);
  border-bottom: 1px solid var(--calcite-color-brand);
  font-weight: bold;
}
}`,d=class extends g{constructor(){super(),this.enableEditGeometry=!1,this.enableSnapping=!1,this.graphics=[],this.isLoading=!1,this.isMobile=!1,this.allowEditing=!1,this.highlightEnabled=!0,this.paginationEnabled=!0,this.position="absolute",this.showCloseBtn=!1,this._alertOpen=!1,this._count="",this._editRecordOpen=!1,this._isMultipleEdits=!1,this._mobileTitle="",this._showListView=!1,this._translations=m({name:"info-card",blocking:!0}),this._navigatedToRelatedFeature=!1,this._editEnabled=!1,this._featuresNodeId=`features-node${new Date().getMilliseconds().toString()}`,this.popupClosed=l(),this.clearSelection=l(),this.selectionChanged=l(),this.listenOn(window,"closeEdit",this.closeEdit),this.listenOn(window,"layerSelectionChange",this.layerSelectionChange),this.listenOn(window,"refreshGraphics",this.refreshGraphics),this.listenOn(window,"editMultipleFeatures",this.editMultipleFeatures),this.listenOn(window,"selectedLanguageUpdated",this.selectedLanguageUpdated),this.listenOn(window,"clearSelection",this._alertClosed)}static{this.properties={enableEditGeometry:[5,{},{type:Boolean}],enableSnapping:[5,{},{type:Boolean}],graphics:[0,{},{attribute:!1}],isLoading:[5,{},{type:Boolean}],isMobile:[5,{},{type:Boolean}],mapView:[0,{},{attribute:!1}],allowEditing:[5,{},{type:Boolean}],highlightEnabled:[5,{},{type:Boolean}],paginationEnabled:[5,{},{type:Boolean}],position:1,showCloseBtn:[5,{},{type:Boolean}],_alertOpen:[16,{},{state:!0}],_count:[16,{},{state:!0}],_editRecordOpen:[16,{},{state:!0}],_isMultipleEdits:[16,{},{state:!0}],_mobileTitle:[16,{},{state:!0}],_showListView:[16,{},{state:!0}],_translations:[16,{},{state:!0}],_navigatedToRelatedFeature:[16,{},{state:!0}]}}static{this.styles=F}static{this.shadowRootOptions=f}willUpdate(e){if(e.has("graphics")&&this.graphicsWatchHandler(),e.has("isMobile")&&this.isMobileWatchHandler(),e.has("mapView")&&this.mapViewWatchHandler(),e.has("_translations")){let t=this._translations._lang,a=e.get("_translations")?._lang;if(t&&a&&t!==a&&this._features){let r=[...this.graphics];this.graphics=[],this.graphics=r}}}async graphicsWatchHandler(){this._navigatedToRelatedFeature&&this._features&&(this._features.clear(),this._features.close(),this._count="",this._navigatedToRelatedFeature=!1),await this.setGraphics()}async isMobileWatchHandler(){await this._initFeaturesWidget()}async mapViewWatchHandler(){return await this._initFeaturesWidget()}async getSelectedFeature(){return this._features?.selectedFeature}async refresh(){await this.setGraphics()}async back(){this._features?.previous(),this._count=this._getCount()}async next(){this._features?.next(),this._count=this._getCount()}async toggleListView(){if(this._showListView=!this._showListView,this._features){let e=this._features.selectedFeatureIndex;this._features.open({features:this.graphics,featureMenuOpen:this._showListView}),this._features.selectedFeatureIndex=e}}async updateCurrentGraphic(e){this._features?.selectedFeatureWidget&&console.log(e)}async closeEdit(){this._editRecordOpen=!1,this._isMultipleEdits=!1}async layerSelectionChange(){this._showListView=!1,this._features?.viewModel&&(this._features.viewModel.featureMenuOpen=!1,this._features.close())}async refreshGraphics(e){this._navigatedToRelatedFeature||(this.graphics=[...e.detail])}async editMultipleFeatures(e){this._isMultipleEdits=!0,this._openEditRecord()}async selectedLanguageUpdated(e){this._features?.clear(),this._features?.close(),await this._initFeaturesWidget()}async load(){this._popupUtils=new y}async loaded(){this.graphics?.length>0&&await this.setGraphics()}render(){let e=this.isLoading?"":"display-none",t=this.isLoading||this._editRecordOpen?"visibility-hidden":"position-absolute",a=!this.isLoading&&this._editRecordOpen?"position-absolute":"display-none",r=!this.isLoading&&this._editRecordOpen||this._showListView?"display-none":"",h=this._features?.features&&this._features.features.length<2||this._navigatedToRelatedFeature,c=Number(this._features?.selectedFeature?.getObjectId()),v=Number.isNaN(c)?[]:[c],p=this._layer?.editingEnabled&&this._layer?.capabilities?.operations?.supportsDelete,$=this._relatedFeature?[this._relatedFeature]:this.graphics,x=this._navigatedToRelatedFeature?0:this._features?.selectedFeatureIndex,n=this.isMobile?"display-none":"";return s`<calcite-shell class="z-index-1" style=${b({position:this.position})}>${this._getHeader()}<calcite-loader class=${i(e)} .label=${this._translations.fetchingData}></calcite-loader><div class=${i("esri-widget feature-node "+t)} id=${this._featuresNodeId??_}></div><div class=${`${r} width-100`} slot=footer>${this.allowEditing?s`<div class="display-flex top-border padding-1-2"><calcite-button appearance=solid id=solutions-edit @click=${()=>this._openEditRecord()} width=full>${this._translations.edit}</calcite-button>${this.isMobile&&p?s`<delete-button class="padding-inline-start-1 width-100" id=solutions-delete .ids=${v} .layer=${this._layer} @editsComplete=${()=>this._closePopup()}></delete-button>`:void 0}<calcite-tooltip class=${i(n)} placement=bottom reference-element=solutions-edit><span>${this._translations.edit}</span></calcite-tooltip>${this.isMobile&&p?s`<calcite-tooltip class=${i(n)} placement=bottom reference-element=solutions-delete><span>${this._translations.delete}</span></calcite-tooltip>`:void 0}</div>`:""}${this.paginationEnabled&&!h&&s`<div class=${"display-flex padding-1-2 button-container top-border"}><div><calcite-button appearance=transparent .disabled=${h} icon-flip-rtl=both icon-start=chevron-left id=solutions-back @click=${()=>this._back()} width=full></calcite-button><calcite-tooltip class=${i(n)} placement=top reference-element=solutions-back><span>${this._translations.back}</span></calcite-tooltip></div><calcite-action appearance=solid class="pagination-action" icon-flip-rtl @click=${()=>this._toggleListView()} scale=s text text-enabled><span class="pagination-count">${this._count}</span></calcite-action><div><calcite-button appearance=transparent .disabled=${h} icon-flip-rtl=both icon-start=chevron-right id=solutions-next @click=${()=>this._next()} width=full></calcite-button><calcite-tooltip class=${i(n)} placement=top reference-element=solutions-next><span>${this._translations.next}</span></calcite-tooltip></div></div>`||""}</div><edit-card .allowMultipleEditing=${this._isMultipleEdits} class=${i(a)} .enableEditGeometry=${this.enableEditGeometry} .enableSnapping=${this.enableSnapping} .graphicIndex=${x} .graphics=${$} .mapView=${this.mapView} .open=${this._editRecordOpen}></edit-card><calcite-alert auto-close icon=layer-broken kind=warning label @calciteAlertClose=${()=>this._alertClosed()} .open=${this._alertOpen} placement=top><div slot=title>${this._translations.editDisabled}</div><div slot=message>${this._translations.enableEditing}</div></calcite-alert></calcite-shell>`}async setGraphics(){this._features||await this._initFeaturesWidget(),this.graphics.length>0?(this._layer=this.graphics[0]?.layer,this._editEnabled=!!(this._layer.editingEnabled&&this._layer.capabilities?.operations.supportsUpdate),this._mobileTitle=this.mapView?.map&&await this._popupUtils?.getPopupTitle(this.graphics[0],this.mapView.map)||"",this._features?.open({features:this.graphics})):(this._features?.clear(),this._features?.close()),this._count=this._getCount()}async _initFeaturesWidget(){return this.isMobile!==void 0?await this.mapView?.when(()=>{if(this._features)this._features.view=this.mapView,this._features.visibleElements.actionBar=!1,this._features.visibleElements.closeButton=!!this.showCloseBtn,this._features.visibleElements.heading=!this.isMobile;else if(this._features=new E({view:this.mapView,container:this._featuresNodeId,visibleElements:{actionBar:!1,closeButton:this.showCloseBtn,featureMenuHeading:!1,heading:!this.isMobile}}),this._features){this._features.viewModel.highlightEnabled=!!this.highlightEnabled,o.watch(()=>(this._features?.viewModel).featureMenuOpen,t=>{this._updateCount(),t||(this._showListView=t)}),o.watch(()=>this._features?.selectedFeatureIndex,t=>{t!==void 0&&t>-1&&this._features?.selectedFeature&&this.selectionChanged.emit({selectedFeature:[this._features.selectedFeature],selectedFeatureIndex:this._features.selectedFeatureIndex})}),o?.watch(()=>this._features.selectedDrillInFeature,t=>{t?(this._relatedFeature=t,this._navigatedToRelatedFeature=!0):(this._relatedFeature=void 0,this._navigatedToRelatedFeature=!1)});let e=this.el.querySelector("#"+this._featuresNodeId);this.listenOn(e,"calciteFlowItemClose",()=>{this.clearSelection.emit()})}}):Promise.resolve()}_getHeader(){return this.isMobile&&!this._editRecordOpen?s`<calcite-panel class="border-width-0" slot=header><calcite-action appearance=solid class="end-border" icon=chevron-left icon-flip-rtl @click=${()=>this._closePopup()} scale=s slot=header-actions-start text></calcite-action><span class="font-bold" slot=header-content>${this._mobileTitle}</span></calcite-panel>`:void 0}_closePopup(){this.popupClosed.emit()}_alertClosed(){this._alertOpen=!1}_openEditRecord(){this._editEnabled?this._editRecordOpen=!0:this._alertOpen=!0}async _back(){this._features?.previous(),await this._updateCount()}async _next(){this._features?.next(),await this._updateCount()}async _updateCount(){let e=this._features?.selectedFeatureIndex;this._popupUtils&&this.mapView&&this.mapView.map&&e!==void 0&&(this._mobileTitle=await this._popupUtils.getPopupTitle(this.graphics[e],this.mapView.map)),this._count=this._getCount()}_getCount(){let e=this._features?.viewModel&&(this._features?.viewModel.selectedFeatureIndex+1).toString()||"",t=this._features?.features?.length.toString()||"";return this._translations.indexOfTotal.replace("{{index}}",e).replace("{{total}}",t)||""}_toggleListView(){if(this._showListView=!this._showListView,this._features){let e=this._features.selectedFeatureIndex;this._features.open({features:this.graphics,featureMenuOpen:this._showListView}),this._features.selectedFeatureIndex=e}}};w("info-card",d);return d},"widgets/Features","core/reactiveUtils",a,c,d)