/* COPYRIGHT Esri - https://js.arcgis.com/1.2/LICENSE.txt */
import{a as v}from"./XN2LWKJE.js";import"./4BPRM7CL.js";import"./NIL6NWG5.js";import{b as T}from"./ODCCVHGI.js";import{F as n,G as h,H as b,J as a,h as w,i as r,l as m,r as y}from"./42WFQ3AX.js";import"./3QPJ2JCA.js";export default $arcgis.t(([C,x])=>{var I=w`/** @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;
}

.display-none {
  display: none;
}

.display-flex {
  display: flex;
}

.margin-top-1-2 {
  margin-top: 0.5rem;
}

.margin-left-1-2 {
  margin-left: 0.5rem;
}

.margin-right-1-2 {
  margin-right: 0.5rem;
}

.square-32 {
  width: 32px;
  height: 32px;
}

.square-40 {
  width: 40px;
  height: 40px;
}

.square-48 {
  width: 48px;
  height: 48px;
}

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

.box-shadow {
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

.margin-bottom-1-2 {
  margin-bottom: 0.5rem;
}

.danger-icon-color {
  --calcite-icon-color: var(--calcite-color-status-danger);
}`,_=class extends b{constructor(){super(),this.enabledLayerIds=[],this.enableLegend=!1,this.enableLayerList=!1,this.enableFloorFilter=!1,this.enableFullscreen=!1,this.enableSearch=!1,this.enableBasemap=!1,this.enableHome=!1,this.enableSingleExpand=!1,this.zoomToolsSize="m",this.layout="vertical",this.mapWidgetsSize="m",this.enableMapPicker=!1,this.enableMapLayerPicker=!1,this.position="top-leading",this.stackTools=!0,this.enableSelectionTool=!1,this.toolOrder=["home","legend","search","fullscreen","floorfilter","layers-list","selectiontool","map-picker","map-layer-picker"],this.selectionTools=["rectangle-select","lasso-select","clear-selection"],this.mapInfos=[],this.defaultLayerId="",this.isMobile=!1,this.selectedFeaturesIds=[],this.selectedWebMapId="",this.showOnlyUpdatableLayers=!1,this.visibilityIcon="eyeball",this._hasFloorInfo=!1,this._translations=v({name:"map-tools",blocking:!0}),this._showTools=!0,this._showBasemapWidget=!1,this._showFloorFilter=!1,this._showFullscreen=!1,this._showLegendWidget=!1,this._showSearchWidget=!1,this._showLayersListWidget=!1,this._rectangleSelectionToolActive=!1,this._lassoSelectionToolActive=!1,this._showEllipsisTools=!0,this._ellipsisTools=[],this._isValidWebMap=!0,this._showSelectionTools=!1,this._basemapElement=n(),this._floorFilterElement=n(),this._fullscreenElement=n(),this._layerListWidgetElement=n(),this._legendElement=n(),this._searchElement=n(),this._widgets=[],this._selectionToolElement=n(),this._mapTools=[],this._mapTool=n(),this.clearSelection=y(),this.listenOn(window,"mapChanged",this.mapChanged),this.listenOn(window,"layerSelectionChange",this._layerSelectionChange)}static{this.properties={basemapConfig:[0,{},{attribute:!1}],enabledLayerIds:[0,{},{attribute:!1}],enableLegend:[5,{},{type:Boolean}],enableLayerList:[5,{},{type:Boolean}],enableFloorFilter:[5,{},{type:Boolean}],enableFullscreen:[5,{},{type:Boolean}],enableSearch:[5,{},{type:Boolean}],enableBasemap:[5,{},{type:Boolean}],enableHome:[5,{},{type:Boolean}],enableSingleExpand:[5,{},{type:Boolean}],zoomToolsSize:1,layout:1,mapView:[0,{},{attribute:!1}],mapWidgetsSize:1,enableMapPicker:[5,{},{type:Boolean}],enableMapLayerPicker:[5,{},{type:Boolean}],position:1,searchConfiguration:[0,{},{attribute:!1}],stackTools:[5,{},{type:Boolean}],enableSelectionTool:[5,{},{type:Boolean}],toolOrder:[0,{},{attribute:!1}],selectionTools:[0,{},{attribute:!1}],selectedLayer:[0,{},{attribute:!1}],mapInfos:[0,{},{attribute:!1}],defaultLayerId:1,isMobile:[5,{},{type:Boolean}],parentComponentHeight:[9,{},{type:Number}],parentComponentWidth:[9,{},{type:Number}],selectedFeaturesIds:[0,{},{attribute:!1}],selectedWebMapId:1,showOnlyUpdatableLayers:[5,{},{type:Boolean}],mapInfo:[0,{},{attribute:!1}],visibilityIcon:1,_hasFloorInfo:[16,{},{state:!0}],_translations:[16,{},{state:!0}],_showTools:[16,{},{state:!0}],_showBasemapWidget:[16,{},{state:!0}],_showFloorFilter:[16,{},{state:!0}],_showFullscreen:[16,{},{state:!0}],_showLegendWidget:[16,{},{state:!0}],_showSearchWidget:[16,{},{state:!0}],_showLayersListWidget:[16,{},{state:!0}],_rectangleSelectionToolActive:[16,{},{state:!0}],_lassoSelectionToolActive:[16,{},{state:!0}],_showEllipsisTools:[16,{},{state:!0}],_ellipsisTools:[16,{},{state:!0}],_isValidWebMap:[16,{},{state:!0}],_showSelectionTools:[16,{},{state:!0}]}}static{this.styles=I}willUpdate(t){t.has("mapView")&&this.mapViewWatchHandler(),t.has("parentComponentWidth")&&this.parentComponentWidth&&this.parentComponentWidthWatchHandler(this.parentComponentWidth),t.has("_showBasemapWidget")&&(this.hasUpdated||this._showBasemapWidget!==!1)&&this._showBasemapWidgetWatchHandler(this._showBasemapWidget),t.has("_showLayersListWidget")&&(this.hasUpdated||this._showLayersListWidget!==!1)&&this._showLayersListWidgetWatchHandler(this._showLayersListWidget),t.has("_showFloorFilter")&&(this.hasUpdated||this._showFloorFilter!==!1)&&this._showFloorFilterWatchHandler(this._showFloorFilter),t.has("_showFullscreen")&&(this.hasUpdated||this._showFullscreen!==!1)&&this._showFullscreenWatchHandler(this._showFullscreen),t.has("_showLegendWidget")&&(this.hasUpdated||this._showLegendWidget!==!1)&&this._showLegendWidgetWatchHandler(this._showLegendWidget),t.has("_showSearchWidget")&&(this.hasUpdated||this._showSearchWidget!==!1)&&this._showSearchWidgetWatchHandler(this._showSearchWidget)}async mapViewWatchHandler(){await this.mapView?.when(()=>{this.enableHome&&this._initHome(),this.parentComponentWidth&&this._updateTools(this.parentComponentWidth)})}async parentComponentWidthWatchHandler(t){this._updateTools(t)}async _showBasemapWidgetWatchHandler(t){let e=this._basemapElement.value?this._basemapElement.value.basemapWidget:void 0,s=document.dir==="rtl"?"rtl":"ltr";e&&(t?(this.mapView?.ui.add(e,{position:this.position,index:1}),e.container?.style.setProperty("direction",s)):this.mapView?.ui.remove(e))}async _showLayersListWidgetWatchHandler(t){let e=this._layerListWidgetElement.value?this._layerListWidgetElement.value.layerListWidget:void 0,s=document.dir==="rtl"?"rtl":"ltr";e&&(t?(this.mapView?.ui.add(e,{position:this.position,index:1}),e.container?.style.setProperty("direction",s)):this.mapView?.ui.remove(e))}async _showFloorFilterWatchHandler(t){let e=this._floorFilterElement.value?this._floorFilterElement.value.floorFilterWidget:void 0,s=document.dir==="rtl"?"rtl":"ltr";e&&(t?(this.mapView?.ui.add(e,{position:this.position,index:1}),e.container?.style.setProperty("direction",s)):this.mapView?.ui.remove(e))}async _showFullscreenWatchHandler(t){let e=this._fullscreenElement.value?this._fullscreenElement.value.fullscreenWidget:void 0;e&&(t?e.viewModel.state==="ready"&&e.viewModel.enter():e.viewModel.state==="active"&&e.viewModel.exit())}async _showLegendWidgetWatchHandler(t){let e=this._legendElement.value?this._legendElement.value.legendWidget:void 0,s=document.dir==="rtl"?"rtl":"ltr";e&&(t?(this.mapView?.ui.add(e,{position:this.position,index:1}),e.container?.style.setProperty("direction",s)):this.mapView?.ui.remove(e))}async _showSearchWidgetWatchHandler(t){let e=this._searchElement.value?this._searchElement.value.searchWidget:void 0,s=document.dir==="rtl"?"rtl":"ltr";e&&(t?(this.mapView?.ui.add(e,{position:this.position,index:1}),e.container?.style.setProperty("direction",s)):this.mapView?.ui.remove(e))}async mapChanged(t){let e=t.detail.isValid;this._isValidWebMap=e,this._showTools||this._toggleTools()}async _layerSelectionChange(t){this._showTools||this._toggleTools()}async load(){this._mapTools=[...this.toolOrder]}render(){this._setZoomToolsSize();let t=this.layout==="horizontal"?"display-flex":"",e=this._getToggleIcon(),s=!this._showTools&&!this._showSelectionTools?"display-none":t,o=this._showEllipsisTools?"":"display-none",l=this._showSearchWidget?"":"display-none",i=this._showBasemapWidget?"":"display-none",c=this._showLegendWidget?"":"display-none",d=this._showFloorFilter?"":"display-none",p=this._showFullscreen?"":"display-none",f=this._showLayersListWidget?"":"display-none",W=this._showTools?this._translations.collapse:this._translations.expand,L=!this.enableBasemap&&!this.enableFullscreen&&!this.enableLegend&&!this.enableLayerList&&!this.enableSearch&&!this.enableMapPicker&&!this.enableMapLayerPicker?"display-none":"",S=document.dir==="rtl"?"margin-right-1-2":"margin-left-1-2",F=this.enableSingleExpand?this.layout==="horizontal"?S:"margin-top-1-2":"",$=this._ellipsisTools.length>0&&this._showTools?"":"display-none",u=this.stackTools&&this._ellipsisTools.length===0?"box-shadow":"",E=this._showSelectionTools?this.selectionTools:this._mapTools;return r`<div class=${`${L} ${t}`}>${this.enableSingleExpand?r`<div class=${a(u)}>${this._getActionGroup(e,!1,W||"",()=>this._toggleTools())}</div>`:void 0}<div class=${`${F} ${u} ${s}`}>${this._getMapWidgets(E)}</div><div><div class=${a($)}>${this._getActionGroup("ellipsis",!1,"",()=>this._toggleEllipsisTools())}<div class=${a(o)}>${this._getMapWidgets(this._ellipsisTools)}</div></div></div></div><map-basemap-gallery .basemapConfig=${this.basemapConfig} class=${a(i)} .mapView=${this.mapView} ${h(this._basemapElement)}></map-basemap-gallery><map-search class=${a(l)} .mapView=${this.mapView} result-graphic-enabled .searchConfiguration=${this.searchConfiguration} ${h(this._searchElement)}></map-search><map-legend class=${a(c)} .mapView=${this.mapView} ${h(this._legendElement)}></map-legend><map-fullscreen class=${a(p)} .mapView=${this.mapView} @fullscreenStateChange=${g=>this._fullscreenStateChange(g.detail)} ${h(this._fullscreenElement)}></map-fullscreen><layer-list-widget class=${a(f)} .mapView=${this.mapView} @fullscreenStateChange=${g=>this._fullscreenStateChange(g.detail)} .visibilityIcon=${this.visibilityIcon} ${h(this._layerListWidgetElement)}></layer-list-widget><map-floor-filter class=${a(d)} .enabled=${this.enableFloorFilter} .mapView=${this.mapView} ${h(this._floorFilterElement)}></map-floor-filter><selection-tool .mapView=${this.mapView} @drawingComplete=${()=>{this._rectangleSelectionToolActive=!1,this._lassoSelectionToolActive=!1}} .selectedLayerId=${this.selectedLayer?.id} ${h(this._selectionToolElement)}></selection-tool>${this.enableMapPicker&&r`<map-picker class=mapPickerClass .height=${(this.parentComponentHeight??0)-25} id=map-picker .mapInfos=${this.mapInfos} reference-element=map .selectedWebMapId=${this.selectedWebMapId} show-map-list-in-popover></map-picker>`||""}${this.enableMapLayerPicker&&this.selectedLayer&&r`<map-layer-picker appearance=transparent .defaultLayerId=${this.defaultLayerId} .enabledLayerIds=${this.enabledLayerIds} .height=${(this.parentComponentHeight??0)-25} .isMobile=${this.isMobile} .mapView=${this.mapView} .showOnlyUpdatableLayers=${this.showOnlyUpdatableLayers} reference-element=layers scale=s .selectedIds=${this.selectedLayer?[this.selectedLayer.id]:[]} show-layers-list-in-popover show-tables type=dropdown></map-layer-picker>`||""}`}_initHome(){this.enableHome&&(this._homeWidget=new x({view:this.mapView}))}_setZoomToolsSize(){let t=document.getElementsByClassName("esri-zoom")[0]?.children[0],e=document.getElementsByClassName("esri-zoom")[0]?.children[1];if(t&&e){let s=this.zoomToolsSize==="s"?"32px":this.zoomToolsSize==="m"?"40px":"48px";t.style.width=s,t.style.height=s,e.style.width=s,e.style.height=s}if(this.layout==="horizontal"){let s=document.dir||"ltr",o=s==="ltr"?"esri-ui-top-left":"esri-ui-top-right",l=s==="ltr"?0:this.parentComponentWidth-62,i=s==="ltr"?this._showTools?"ltr":"rtl":this._showTools?"rtl":"ltr";document.getElementsByClassName(o)[0]?.firstElementChild?.tagName==="MAP-TOOLS"&&!this._showTools&&(i=s),document.getElementsByClassName("esri-zoom")[0]?.setAttribute("style",`position: absolute; top: 50px; left: ${l}px`),this._showSelectionTools||document.getElementsByClassName(o)[0]?.setAttribute("style",`flex-direction: row; gap: 5px; align-items: flex-start; direction: ${i} !important; z-index: 1;`)}}_getToggleIcon(){let t=document.dir||"ltr";return this.layout==="horizontal"?t==="ltr"?this._showTools?"chevrons-left":"chevrons-right":this._showTools?"chevrons-right":"chevrons-left":this._showTools?"chevrons-up":"chevrons-down"}_updateTools(t){let e=this._showSelectionTools?JSON.parse(JSON.stringify(this.selectionTools)):JSON.parse(JSON.stringify(this.toolOrder));this._hasFloorInfo=this.mapView?.map?.floorInfo;let s=e.indexOf("floorfilter");s>-1&&!this._hasFloorInfo&&e.splice(s,1);let o=40,l=110;this.isMobile&&(this.enableMapPicker||this.enableMapLayerPicker)&&(l=160);let i=Math.ceil((t-l)/o)-1;i&&i!==e.length-1?(this._mapTools=e.slice(0,i),this._ellipsisTools=e.slice(i,e.length)):(this._mapTools=e,this._ellipsisTools=[])}_getMapWidgets(t){let e=this._showFullscreen?"full-screen-exit":"full-screen",s=this._showFullscreen?this._translations.exitFullscreen:this._translations.enterFullscreen,o=this._isValidWebMap?"map":"exclamation-mark-triangle",l=this.selectedLayer===void 0?"exclamation-mark-triangle":"layers";return t.map(i=>{switch(i){case"legend":return this.enableLegend&&this.enableSingleExpand?this._getActionGroup("legend",!1,this._translations.legend,()=>this._showLegend()):this.enableLegend?this._getWidget(i,this._legendElement.value?.legendWidget,!0):void 0;case"search":return this.enableSearch&&this.enableSingleExpand?this._getActionGroup("magnifying-glass",!1,this._translations.search,()=>this._search()):this.enableSearch?this._getWidget(i,this._searchElement.value?.searchWidget,!0):void 0;case"fullscreen":return this.enableFullscreen&&this.enableSingleExpand?this._getActionGroup(e,!1,s||"",()=>this._expand()):this.enableFullscreen?this._getWidget(i,this._fullscreenElement.value?.fullscreenWidget,!1):void 0;case"basemap":return this.enableBasemap&&this.enableSingleExpand?this._getActionGroup("basemap",!1,this._translations.basemap,()=>this._toggleBasemapPicker()):this.enableBasemap?this._getWidget(i,this._basemapElement.value?.basemapWidget,!0):void 0;case"layers-list":return this.enableLayerList&&this.enableSingleExpand?this._getActionGroup("layers",!1,this._translations.layers||"",()=>this._toggleLayerListWidget()):this.enableLayerList?this._getWidget(i,this._layerListWidgetElement.value?.layerListWidget,!0):void 0;case"floorfilter":return this.enableFloorFilter&&this._hasFloorInfo&&this.enableSingleExpand?this._getActionGroup("urban-model",!1,this._translations.floorFilter,()=>this._toggleFloorFilter()):this.enableFloorFilter&&this._hasFloorInfo?this._getWidget(i,this._floorFilterElement.value?.floorFilterWidget,!0):void 0;case"selectiontool":return this.enableSelectionTool&&this.selectedLayer?this._getActionGroup("cursor-selection",!1,this._translations.selectionTools,this._onSelectionToolClick,!1):void 0;case"rectangle-select":return this.enableSelectionTool&&this.selectedLayer?this._getActionGroup("cursor-marquee",!1,this._translations.selectByRectangle,()=>this._toggleSelectionTool("rectangle"),!1,this._rectangleSelectionToolActive):void 0;case"lasso-select":return this.enableSelectionTool&&this.selectedLayer?this._getActionGroup("lasso-select",!1,this._translations.selectByLasso,()=>this._toggleSelectionTool("freehandPolygon"),!1,this._lassoSelectionToolActive):void 0;case"clear-selection":return this.selectedLayer&&this.selectedFeaturesIds.length>0?this._getActionGroup("erase",!1,this._translations.clearSelection,()=>this.clearSelection.emit()):void 0;case"home":return this.enableHome?this._getActionGroup("home",!1,this._translations.defaultMapView,()=>this._homeWidget?.go()):void 0;case"map-picker":return this.enableMapPicker?this._getActionGroup(o,!1,"",()=>{},!this._isValidWebMap):void 0;case"map-layer-picker":return this.enableMapLayerPicker&&this._isValidWebMap?this._getActionGroup(l,!1,"",()=>{},this.selectedLayer===void 0):void 0;default:return""}})}_fullscreenStateChange(t){t==="ready"&&this._showFullscreen?this._showFullscreen=!1:t==="active"&&!this._showFullscreen&&(this._showFullscreen=!0)}_getActionGroup(t,e,s,o,l,i){let c=this.mapWidgetsSize==="s"?"square-32":this.mapWidgetsSize==="m"?"square-40":"square-48",d=this.stackTools?"":"margin-bottom-1-2",p=this.stackTools?"":"box-shadow";return r`<div><calcite-action alignment=center appearance=solid .indicator=${i} class=${`map-actions ${c} ${d} border-bottom ${p} ${l?"danger-icon-color":""}`} .disabled=${e} .icon=${t} id=${t??m} @click=${o} scale=s text ${h(this._mapTool)}><calcite-icon icon=chevron-up scale=s slot=icon></calcite-icon></calcite-action>${!this.isMobile&&s&&r`<calcite-tooltip .placement=${this.layout==="vertical"?"auto":"bottom"} reference-element=${t??m}><span>${s}</span></calcite-tooltip>`||""}</div>`}_getWidget(t,e,s){if(this._widgets.indexOf(t)<0&&this.mapView&&e){let o=this.toolOrder.indexOf(t),l=new C({view:this.mapView,content:e}),i=this.enableHome?2:1;this.mapView.ui.add(s?l:e,{position:this.position,index:o>-1?o+i:1}),this._widgets.push(t)}}_showLegend(){this._showLegendWidget=!this._showLegendWidget,this._showTools=!1,this._toggleEllipsisTools()}_search(){this._showSearchWidget=!this._showSearchWidget,this._showTools=!1,this._toggleEllipsisTools()}_toggleBasemapPicker(){this._showBasemapWidget=!this._showBasemapWidget,this._showTools=!1,this._toggleEllipsisTools()}_toggleLayerListWidget(){this._showLayersListWidget=!this._showLayersListWidget,this._showTools=!1,this._toggleEllipsisTools()}_toggleFloorFilter(){this._showFloorFilter=!this._showFloorFilter,this._showTools=!1,this._toggleEllipsisTools()}_onSelectionToolClick(){this._showSelectionTools=!this._showSelectionTools,this._showTools=!1,this._toggleEllipsisTools()}_toggleSelectionTool(t){t==="rectangle"?(this._lassoSelectionToolActive=!1,this._rectangleSelectionToolActive=!this._rectangleSelectionToolActive):t==="freehandPolygon"&&(this._rectangleSelectionToolActive=!1,this._lassoSelectionToolActive=!this._lassoSelectionToolActive),this._selectionToolElement.value?.toggleSelectionTool(t,this._rectangleSelectionToolActive||this._lassoSelectionToolActive)}_expand(){this._showFullscreen=!this._showFullscreen}_toggleTools(){this._showTools||(this._showSelectionTools=!1,this._showBasemapWidget=!1,this._showLayersListWidget=!1,this._showSearchWidget=!1,this._showLegendWidget=!1,this._showFloorFilter=!1),this._rectangleSelectionToolActive?this._toggleSelectionTool("rectangle"):this._lassoSelectionToolActive&&this._toggleSelectionTool("freehandPolygon"),this._showTools=!this._showTools,this._toggleEllipsisTools(),this._updateTools(this.parentComponentWidth)}_toggleEllipsisTools(){this._showEllipsisTools=!this._showEllipsisTools}};T("map-tools",_);return _},"widgets/Expand","widgets/Home")