/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
import{a as u}from"./BM4VSEDV.js";import{b as d}from"./HVT2WBVC.js";import"./UBPOT5V3.js";import"./ISFTCFSJ.js";import{G as c,K as o,h as a,i as t,q as r}from"./FFF5HUPM.js";import"./EXBEKVP5.js";export default $arcgis.t(([p,m,{on:w}])=>{var T=a`:host{--default-width: auto;--width: var(--default-width);--padding: 10px;--border-style: 1px solid var(--calcite-color-border-1);--calcite-button-height: 48px;--calcite-icon-color: var(--calcite-color-text-3);display:block;width:var(--width);background:var(--background-color, var(--calcite-color-foreground-1));color:var(--calcite-color-text-1);font-size:var(--calcite-font-size--1);padding:var(--padding);box-sizing:border-box;>*{border:var(--border-style)}}[role=group]{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:var(--calcite-button-height)}.selection-count{display:flex;align-items:center;justify-content:space-between;padding-inline-start:var(--padding);margin-block-start:var(--padding)}`,i=class extends c{constructor(){super(),this._messages=u({name:"instant-apps-selection-toolbar",blocking:!0}),this._selectionCount=0,this.disabled=!1,this.selectionChange=r(),this.selectionManager=new p,this.selectionToolbarViewModel=new m({selectionManager:this.selectionManager})}static{this.properties={_selectionCount:16,view:0,selectionManager:0,selectionToolbarViewModel:0,selectedCount:32,sources:0,enabledTool:3,readyToSelect:39,continuousSelectionEnabled:5,selectionOperationType:1,toolbarState:32,layerViewPreferenceEnabled:5,disabled:5}}static{this.styles=T}get#e(){return this.disabled||this.selectionToolbarViewModel.state==="disabled"}get view(){return this.selectionManager.view}set view(e){this.selectionManager.view=e,this.selectionToolbarViewModel.view=e}get selectedCount(){return this._selectionCount}get sources(){return this.selectionManager.sources}set sources(e){this.selectionManager.sources=e,this.selectionToolbarViewModel.sources=e}get readyToSelect(){return!this.#e&&!!this.view&&!!this.sources?.length&&!!this.selectionManager&&!!this.selectionToolbarViewModel}get continuousSelectionEnabled(){return this.selectionToolbarViewModel.continuousSelectionEnabled}set continuousSelectionEnabled(e){this.selectionToolbarViewModel.continuousSelectionEnabled=e}get selectionOperationType(){return this.selectionToolbarViewModel.defaultOperationType}set selectionOperationType(e){this.selectionToolbarViewModel.defaultOperationType=e}get toolbarState(){return this.selectionToolbarViewModel?.state}get layerViewPreferenceEnabled(){return this.selectionToolbarViewModel.layerViewPreferenceEnabled}set layerViewPreferenceEnabled(e){this.layerViewPreferenceEnabled=e}clearSelection(){this.selectionManager.clear()}getSelectedFeatures(){return this.selectionManager.getSelectedFeatures(null,{returnGeometry:!0})}load(){this.manager.onLifecycle(()=>w(()=>this.selectionManager,"selection-change",e=>{this._selectionCount=this.selectionManager.count,this.selectionChange.emit(e)}))}willUpdate(e){e.has("enabledTool")&&this.readyToSelect&&(this.enabledTool?this.selectionToolbarViewModel.activateTool(this.enabledTool):this.selectionToolbarViewModel.cancel())}_getSelectButtonClickEventHandler(e){return()=>{this.enabledTool===e?this.enabledTool=null:this.enabledTool=e}}_renderSelectionButton(e,l,h){let s=this.enabledTool===e,b={pressed:s},g=this._getSelectButtonClickEventHandler(e),n=`${e}-action`;return t`<calcite-action id=${n??o} .aria=${b} .active=${s} alignment=center .text=${l} @click=${g} .disabled=${this.disabled}><calcite-icon .icon=${h}></calcite-icon></calcite-action><calcite-tooltip .referenceElement=${n}><span>${l}</span></calcite-tooltip>`}_renderSelectionCount(){if(this._selectionCount>0){let e=this._selectionCount===1?this._messages.labels.singleFeatureSelected:this._messages.labels.multipleFeaturesSelected.replace("{number}",String(this._selectionCount));return t`<div class="selection-count"><span>${e}</span><calcite-button appearance=transparent .label=${this._messages.labels.deselectFeatures} @click=${this.clearSelection}><calcite-icon icon=x></calcite-icon></calcite-button></div>`}return null}render(){return t`<div role=group aria-label=${this._messages.labels.groupLabel??o}>${this._renderSelectionButton("point",this._messages.labels.selectCursor,"cursor")}${this._renderSelectionButton("rectangle",this._messages.labels.selectMarquee,"cursor-marquee")}${this._renderSelectionButton("lasso",this._messages.labels.selectLasso,"lasso-select")}</div>${this._renderSelectionCount()}`}};d("instant-apps-selection-toolbar",i);return i},"views/SelectionManager","widgets/support/SelectionToolbar/SelectionToolbarViewModel","core/reactiveUtils")