/* COPYRIGHT Esri - https://js.arcgis.com/5.0/LICENSE.txt */
import{a as d}from"./TPRPYUVX.js";import{b as c}from"./3LEJ44U2.js";import"./36I27Q5R.js";import"./GDPFKW75.js";import{H as r,L as o,h as a,i as t}from"./46DQNAMV.js";import"./OR4HXHSY.js";export default $arcgis.t(([g,p,{on:m}])=>{var v=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)}`,s=class extends r{constructor(){super(),this._messages=d({name:"instant-apps-selection-toolbar",blocking:!0}),this._selectionCount=0,this.disabled=!1,this.selectionManager=new g,this.selectionToolbarViewModel=new p({selectionManager:this.selectionManager})}static{this.properties={_selectionCount:16,view:0,selectionManager:0,selectionToolbarViewModel:0,selectedCount:32,sources:0,enabledTool:3,readyToSelect:39,continuousSelectionEnabled:5,disabled:5}}static{this.styles=v}get#e(){return this.disabled||this.selectionToolbarViewModel.state==="disabled"}set view(e){this.selectionManager.view=e,this.selectionToolbarViewModel.view=e}get view(){return this.selectionManager.view}get selectedCount(){return this._selectionCount}set sources(e){this.selectionManager.sources=e,this.selectionToolbarViewModel.sources=e}get sources(){return this.selectionManager.sources}get readyToSelect(){return!this.#e&&!!this.view&&!!this.sources?.length}set continuousSelectionEnabled(e){this.selectionToolbarViewModel.continuousSelectionEnabled=e}get continuousSelectionEnabled(){return this.selectionToolbarViewModel.continuousSelectionEnabled}clearSelection(){this.selectionManager.clear()}async getSelectedFeatures(){return this.selectionManager.getSelectedFeatures(null,{returnGeometry:!0})}load(){this.manager.onLifecycle(()=>m(()=>this.selectionManager,"selection-change",()=>{this._selectionCount=this.selectionManager.count}))}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,i,u){let l=this.enabledTool===e,h={pressed:l},b=this._getSelectButtonClickEventHandler(e),n=`${e}-action`;return t`<calcite-action id=${n??o} .aria=${h} .active=${l} alignment=center .text=${i} @click=${b} .disabled=${this.disabled}><calcite-icon .icon=${u}></calcite-icon></calcite-action><calcite-tooltip .referenceElement=${n}><span>${i}</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()}`}};c("instant-apps-selection-toolbar",s);return s},"views/SelectionManager","widgets/support/SelectionToolbar/SelectionToolbarViewModel","core/reactiveUtils")