/* COPYRIGHT Esri - https://js.arcgis.com/1.2/LICENSE.txt */
import{a as d}from"./6S75SIVV.js";import"./5IZMQFRP.js";import"./FOQPGXXA.js";import{b as o}from"./ABSRNM72.js";import{H as n,h as l,i as e,l as a,r as t}from"./5CQPQ7AE.js";import"./3QPJ2JCA.js";var r=l`/** @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;
}`,i=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=d({name:"delete-button",blocking:!0}),this.editsComplete=t(),this.deleteClicked=t()}static{this.properties={deleteDialog:1,buttonType:1,disabled:[5,{},{type:Boolean}],icon:1,ids:[0,{},{attribute:!1}],layer:[0,{},{attribute:!1}],showDeleteCount:[5,{},{type:Boolean}],_confirmDelete:[16,{},{state:!0}],_deleteEndabled:[16,{},{state:!0}],_supportsDelete:[16,{},{state:!0}],_translations:[16,{},{state:!0}]}}static{this.styles=r}willUpdate(s){s.has("ids")&&(this.hasUpdated||this.ids?.length>0)&&this.idsWatchHandler(),s.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 appearance=solid .disabled=${!this._deleteEndabled} id=${this.icon??a} @click=${()=>this._delete()} scale=s .text=${this._translations.delete}><calcite-button appearance=transparent .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>`}};o("delete-button",i);export{i as DeleteButton};
