/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
import{a as o}from"./XF5N3NI5.js";import"./UBPOT5V3.js";import"./ISFTCFSJ.js";import{b as d}from"./2I5LGZNX.js";import{G as n,h as l,i as e,l as a,q as t}from"./FFF5HUPM.js";import"./EXBEKVP5.js";var h=l`:host{display:block}`,s=class extends n{constructor(){super(...arguments),this.buttonType="button",this.disabled=!1,this.ids=[],this.showDeleteCount=!0,this._confirmDelete=!1,this._deleteEndabled=!1,this._supportsDelete=!1,this._translations=o({name:"delete-button",blocking:!0}),this.editsComplete=t(),this.deleteClicked=t()}static{this.properties={deleteDialog:1,buttonType:1,disabled:5,icon:1,ids:0,layer:0,showDeleteCount:5,_confirmDelete:16,_deleteEndabled:16,_supportsDelete:16,_translations:16}}static{this.styles=h}willUpdate(i){i.has("ids")&&(this.hasUpdated||this.ids?.length>0)&&this.idsWatchHandler(),i.has("layer")&&this.layerWatchHandler()}async idsWatchHandler(){this._setDeleteEnabled()}async layerWatchHandler(){this._setDeleteEnabled()}render(){return e`${this.buttonType==="button"?e`<calcite-button appearance=outline .disabled=${!this._deleteEndabled} id=solutions-delete kind=danger @click=${()=>this._delete()} width=full>${this.showDeleteCount?this._translations.deleteCount?.replace("{{n}}",this.ids?.length.toString()):this._translations.delete}</calcite-button>`:e`<calcite-action .disabled=${!this._deleteEndabled} id=${this.icon??a} @click=${()=>this._delete()} scale=s .text=${this._translations.delete}><calcite-button appearance=transparent aria-hidden=true .iconStart=${this.icon} kind=danger>${this._translations.delete}</calcite-button></calcite-action>`}${this._deleteMessage()}<calcite-tooltip placement=bottom .referenceElement=${this.buttonType==="button"?"solutions-delete":this.icon}><span>${this._translations.delete}</span></calcite-tooltip>`}loaded(){this._setDeleteEnabled()}_setDeleteEnabled(){this._supportsDelete=!!(this.layer?.editingEnabled&&this.layer?.capabilities?.operations?.supportsDelete),this._deleteEndabled=!this.disabled||this._supportsDelete&&this.ids?.length>0}_delete(){this.deleteClicked.emit(),this._confirmDelete=!0}_deleteMessage(){return this.deleteDialog?this.deleteDialog:e`<delete-dialog id=solution-delete-dialog .ids=${this.ids} .layer=${this.layer} @deleteDialogClose=${()=>this._confirmDelete=!1} .open=${this._confirmDelete}></delete-dialog>`}};d("delete-button",s);export{s as DeleteButton};
