/*! StateRestore 2.1.1 for DataTables
 * Copyright (c) SpryMedia Ltd - datatables.net/license/plus
 *
 * SVG icons: ISC License
 * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2022 as part of Feather (MIT).
 * All other copyright (c) for Lucide are held by Lucide Contributors 2022.
 */
import DataTable,{util,Dom,Api}from"datatables.net";let stateManipulators={cardView:{available:t=>!!t.cardView,remove:t=>{delete t.cardView},text:t=>t.i18n("stateRestore.option.cardView","Card view mode")},columnVisibility:{available:t=>!(!t.columns||!t.columns.length||"boolean"!=typeof t.columns[0].visible),remove:t=>{t.columns.forEach(t=>{delete t.visible})},text:t=>t.i18n("stateRestore.option.columnVisibility","Column visibility")},columnSearch:{available:t=>!(!t.columns||!t.columns.length||void 0===t.columns[0].search),remove:t=>{t.columns.forEach(t=>{delete t.search})},text:t=>t.i18n("stateRestore.option.columnSearch","Search (Columns)")},columnControl:{available:t=>!!t.columnControl,remove:t=>{delete t.columnControl},text:t=>t.i18n("stateRestore.option.columnControl","Search (Column Control)")},columnOrder:{available:t=>!!t.colReorder,remove:t=>{delete t.colReorder},text:t=>t.i18n("stateRestore.option.columnOrder","Column ordering")},order:{available:t=>void 0!==t.order,remove:t=>{delete t.order},text:t=>t.i18n("stateRestore.option.order","Ordering")},pageStart:{available:t=>void 0!==t.start,remove:t=>{delete t.start},text:t=>t.i18n("stateRestore.option.pageStart","Paging position")},pageLength:{available:t=>void 0!==t.length,remove:t=>{delete t.length},text:t=>t.i18n("stateRestore.option.pageLength","Paging length")},scroller:{available:t=>void 0!==t.scroller,remove:t=>{delete t.scroller},text:t=>t.i18n("stateRestore.option.scroller","Scroller position")},search:{available:t=>void 0!==t.search,remove:t=>{delete t.search,delete t.searchGroups},text:t=>t.i18n("stateRestore.option.search","Search (global)")},searchBuilder:{available:t=>void 0!==t.searchBuilder,remove:t=>{delete t.searchBuilder},text:t=>t.i18n("stateRestore.option.searchBuilder","Search (SearchBuilder)")},searchPanes:{available:t=>void 0!==t.searchPanes,remove:t=>{delete t.searchPanes},text:t=>t.i18n("stateRestore.option.searchBuilder","Search (SearchPanes)")},select:{available:t=>void 0!==t.select,remove:t=>{delete t.select},text:t=>t.i18n("stateRestore.option.searchBuilder","Row selection")}},ajax={read:function(s,o){return new Promise((e,a)=>{var t=util.object.assignDeep({method:"post",dataType:"json",data:{action:"state-read",path:window.location.pathname,table:s.table().node().id}},o.ajax(),{success:t=>{t.error?a():(t=t.data.map(t=>{var e=Object.assign({},t);if("object"==typeof t.state)return t.state;try{return e.state=JSON.parse(t.state),e}catch(t){}return null}).filter(t=>!!t),e(t))},error:()=>{o.error("Error in JSON response"),e([])}});DataTable.ajax(t)})},create:function(s,o,r){return new Promise((e,t)=>{var a;o.isStatic?(o.id||(o.id=r.randomId()),r.storeAdd(o)):(a=util.object.assignDeep({method:"post",dataType:"json",data:{action:"state-create",isDefault:o.isDefault,isSharedOut:o.isSharedOut,name:o.name,path:window.location.pathname,state:JSON.stringify(o.state),table:s.table().node().id}},r.ajax(),{success:t=>{if(!t.error&&t.data&&1===t.data.length){t=t.data[0];"object"==typeof t.state&&(r.storeAdd(t),e(!0));try{t.state=JSON.parse(t.state),r.storeAdd(t),e(!0)}catch(t){e(!1)}}else e(!1)},error:()=>{r.error("Error in JSON response"),e(!1)}}),DataTable.ajax(a))})},edit:async function(s,o,r,i){return new Promise((e,t)=>{var a;o.isStatic?(o.id||(o.id=i.randomId()),i.storeReplace(o,r)):(a=util.object.assignDeep({method:"post",dataType:"json",data:{action:"state-edit",id:o.id,isDefault:r.isDefault,isSharedOut:r.isSharedOut,name:r.name,path:window.location.pathname,state:JSON.stringify(r.state),table:s.table().node().id}},i.ajax(),{success:t=>{if(!t.error&&t.data&&1===t.data.length){t=t.data[0];"object"==typeof t.state&&(i.storeReplace(o,t),e(!0));try{t.state=JSON.parse(t.state),i.storeReplace(o,t),e(!0)}catch(t){e(!1)}}else e(!1)},error:()=>{i.error("Error in JSON response"),e(!1)}}),DataTable.ajax(a))})},remove:async function(o,r,i){return new Promise((e,t)=>{let a=r.filter(t=>!t.isStatic&&!t.isSharedIn).map(t=>t.id);var s;a.length&&(s=util.object.assignDeep({method:"post",dataType:"json",data:{action:"state-remove",ids:a,path:window.location.pathname,table:o.table().node().id}},i.ajax(),{success:t=>{t.error?i.error(t.error):a.forEach(e=>{var t=r.find(t=>t.id===e);t&&i.storeRemove(t)}),e(!0)},error:()=>{i.error("Error in JSON response"),e(!1)}}),DataTable.ajax(s))})}};function localStorageName(t){return"dtsr-"+location.pathname+"-"+t.table().node().id}let local={read:async function(a){var t=localStorageName(a),t=localStorage.getItem(t);if(t)try{return JSON.parse(t)}catch(t){return[]}let s=[],e=Object.keys(localStorage);return e.forEach(t=>{if(t.startsWith("DataTables_stateRestore_")&&(t.endsWith(location.pathname)||t.endsWith(location.pathname+"_"+a.table().node().id)))try{var e=JSON.parse(localStorage.getItem(t));s.push({id:null,isDefault:!1,isSharedIn:!1,isSharedOut:!1,isStatic:!1,name:t.replace(/^DataTables_stateRestore_/,"").replace(location.pathname,""),state:e})}catch(t){}}),s},create:async function(t,e,a){return e.id||(e.id=a.randomId()),a.storeAdd(e),localStorage.setItem(localStorageName(t),JSON.stringify(a.storeGet())),!0},edit:async function(t,e,a,s){return s.storeReplace(e,a),e.isStatic||localStorage.setItem(localStorageName(t),JSON.stringify(s.storeGet())),!0},remove:async function(t,e,a){for(let t=0;t<e.length;t++)a.storeRemove(e[t]);return localStorage.setItem(localStorageName(t),JSON.stringify(a.storeGet())),!0}};if(!DataTable||!DataTable.versionCheck||!DataTable.versionCheck("3"))throw"DataTables StateRestore requires DataTables 3 or newer";let _modal,_modalCloseButton,_modalBackground;function assertModal(){_modal||(_modal=Dom.c("div").classAdd("dtsb-modal"),_modalCloseButton=Dom.c("button").classAdd("dtsb-modal-close").attr("type","button").html("&times;"),_modalBackground=Dom.c("div").classAdd("dtsb-modal-background"))}class States{static modalClean(){assertModal(),Dom.s(document).off("keyup.dtsr"),_modal.empty().classRemove(States.classes.modal.table),_modalCloseButton.off("click"),_modalBackground.off("click")}static modalClose(){assertModal(),_modal.remove(),_modalBackground.remove()}static modal(t,e,a,s){assertModal(),_modal.classAdd(a),_modalCloseButton.on("click",()=>{s()}),Dom.s(document).on("keyup.dtsr",t=>{t.stopPropagation(),27===t.keyCode&&s()}),_modal.append(Dom.c("div").classAdd("dtsb-modal-header").text(t).append(_modalCloseButton)).append(Dom.c("div").classAdd("dtsb-modal-body").append(e)).appendTo("body"),_modalBackground.on("click",()=>{s()}).appendTo("body"),_modal.find("input, button").filter(":not(.dtsb-modal-close)").eq(0).focus()}add(t,e=null,a=!1,s=!1){a?this.s.store.push({id:null,isDefault:s,isSharedIn:!1,isSharedOut:!1,isStatic:a,name:e||this._nextName(),state:t}):this.c.canCreate&&this._stateUserInput(this.s.dt.i18n("stateRestore.create.title","Save new state"),this.s.dt.i18n("stateRestore.create.info",""),{id:null,isDefault:s,isSharedIn:!1,isSharedOut:!1,isStatic:a,name:e||this._nextName(),state:t},async t=>{await this.s.storage.create(this.s.dt,t,this)&&(this.s.dt.trigger("stateRestore",["create",t]),this.modalClose())})}ajax(){return"string"==typeof this.c.ajax?{url:this.c.ajax}:this.c.ajax}can(t){switch(t){case"create":return this.c.canCreate;case"default":return this.c.defaults;case"share":return this.c.sharing;default:return!1}}getDefault(){var t=this.s.store.find(t=>t.isDefault);return t?t.state:null}isCurrent(e){var a=this.s.dt.state(),s=Object.keys(e);for(let t=0;t<s.length;t++){var o=s[t];if("time"!==o&&!this._isEqual(e[o],a[o]))return!1}return!0}loaded(t){this.s.loading?this.s.whenLoaded.push(t):t()}edit(a,s,t=0){if(-1!==this.s.store.indexOf(a)){var o=util.object.assignDeep({},a);let t=this.s.dt.i18n("stateRestore.edit.title","Edit state"),e=this.s.dt.i18n("stateRestore.edit.info","");s&&s.state&&(t=this.s.dt.i18n("stateRestore.replace.title","Replace state"),e=this.s.dt.i18n("stateRestore.replace.info","Replace the currently saved state with the table's current state.")),util.object.assign(o,s),this._stateUserInput(t,e,o,async t=>{await this.s.storage.edit(this.s.dt,a,t,this)&&(this.s.dt.trigger("stateRestore",["edit",t]),this.modalClose())})}}error(t){alert(t)}modal(t,e,a=!1){this.s.modalLayers.push({title:t,body:e,wide:a}),States.modalClean(),States.modal(t,e,a?this.classes.modal.table:this.classes.modal.form,()=>{this.modalClose()})}modalClose(){var t;States.modalClean(),this.s.modalLayers.pop(),this.s.modalLayers.length?(t=this.s.modalLayers[this.s.modalLayers.length-1],States.modal(t.title,t.body,t.wide?this.classes.modal.table:"",()=>{this.modalClose()})):States.modalClose()}randomId(){return Array.from(crypto.getRandomValues(new Uint8Array(16)),t=>t.toString(16).padStart(2,"0")).join("")}remove(t,a=!1){let s=Array.isArray(t)?t:[t];if(0!==s.length)if(a)this.s.storage.remove(this.s.dt,s,this);else{t=Dom.c("div").classAdd(this.classes.removeMessage).text(this.s.dt.i18n("stateRestore.remove.message",{_:"Are you sure you wish to remove the following states:",1:"Are you sure you wish to remove the following state:"},s.length)),a=Dom.c("form").appendTo(t);let e=Dom.c("ul").appendTo(a);s.forEach(t=>{e.append(Dom.c("li").text(t.name))}),a.append(this._submitButton(this.s.dt.i18n("stateRestore.remove.button","Delete"))),a.on("submit",async t=>{t.preventDefault(),t.stopPropagation(),await this.s.storage.remove(this.s.dt,s,this)&&(this.s.dt.trigger("stateRestore",["remove"]),this.modalClose())}),this.modal(this.s.dt.i18n("stateRestore.title.remove","Delete state"),t)}}storeGet(t=!1){return t?this.s.store:this.s.store.filter(t=>!t.isStatic)}storeAdd(t){this.s.store.push(t)}storeRemove(t){var e=this.s.store,a=e.indexOf(t);t.isStatic||-1!==a&&e.splice(a,1)}storeReplace(t,e){var a=this.s.store,s=a.indexOf(t);t.isStatic||-1!==s&&a.splice(s,1,e)}constructor(t){var t=new DataTable.Api(t),e=t.init().stateRestore,e=(DataTable.plus("2026-09-25"),this.c=util.object.assignDeep({},States.defaults,DataTable.defaults.stateRestore,e),e||(this.c.defaults=!1),this.c.ajax||(this.c.sharing=!1),this.c.newName||(this.c.newName=t.i18n("stateRestore.newName","State #")),this.s={dt:t,loading:!1,modalLayers:[],store:[],storage:this.c.ajax?ajax:local,whenLoaded:[]},this.classes=util.object.assignDeep({},States.classes),this.s.dt.settings()[0]);e._states||((e._states=this)._addPredefined(this.c.predefined),this.s.dt.on("xhr.dtsr",(t,e,a)=>{a&&a.stateRestore&&this._addPredefined(a.stateRestore)}),this._load())}async _addPredefined(e){Array.isArray(e)?e.forEach(t=>{this.add(t.state,t.name,!0,t.isDefault||!1)}):Object.keys(e).forEach(t=>{this.add(e[t],t,!0,!1)})}async _load(){this.s.loading=!0;var t=await this.s.storage.read(this.s.dt,this);this.s.store.push(...t),this.s.loading=!1,this.s.dt.trigger("stateRestore",["loaded"]),this.s.whenLoaded.forEach(t=>t()),this.s.whenLoaded.length=0}_field(t,e,a,s,o="text"){var r=this.classes.field,i=Dom.c("div").classAdd(r.container),t=(Dom.c("label").attr("for","dtsr-"+a).classAdd(r.label).text(t).appendTo(i),Dom.c("div").classAdd(r.value).appendTo(i));return"text"===o?Dom.c("input").attr("id","dtsr-"+a).attr("type","text").attr("name",a).attr("autocomplete","off").val(s).classAdd(r.input.text).appendTo(t):"checkbox"===o&&Dom.c("input").attr("id","dtsr-"+a).attr("type","checkbox").attr("name",a).prop("checked",s).classAdd(r.input.checkbox).appendTo(t),e&&Dom.c("div").classAdd(r.info).text(e).appendTo(t),Dom.c("div").classAdd(r.error).appendTo(t),i}_fieldCheckboxes(t,e){let a=this.classes.field;var s=Dom.c("div").classAdd(a.container);Dom.c("label").classAdd(a.label).text(t).appendTo(s);let o=Dom.c("div").classAdd(a.value).appendTo(s);return e.forEach((t,e)=>{Dom.c("div").classAdd(this.classes.field.checkboxOption).appendTo(o).append(Dom.c("input").attr("type","checkbox").attr("id",t.name).attr("name",t.name).prop("checked",t.value).classAdd(a.input.checkbox).appendTo(o)).append(Dom.c("label").text(t.label).attr("for",t.name))}),s}_isEqual(t,e){if(!Object.is(t,e)){if("object"!=typeof t||null===t||"object"!=typeof e||null===e)return!1;if(Array.isArray(t)!==Array.isArray(e))return!1;var a;for(a of Object.keys(t))if(!Object.prototype.hasOwnProperty.call(e,a)||!this._isEqual(t[a],e[a]))return!1}return!0}_nextName(){let e=new RegExp("^"+this.c.newName.replace("#","(\\d?)")+"$"),a=[];this.s.store.forEach(t=>{t=t.name.match(e);t&&t[1]&&a.push(parseInt(t[1]))}),a.sort((t,e)=>e-t);var t=a.length?(a[0]+1).toString():"1";return this.c.newName.replace("#",t)}_stateUserInput(t,e,a,s){let o=Dom.c("div");var r,i,n=Dom.c("form").classAdd(this.classes.form).appendTo(o),l=this.s.dt,d=(e&&n.append(Dom.c("p").text(e)),n.append(this._field(l.i18n("stateRestore.state.name","Name:"),l.i18n("stateRestore.state.nameInfo",""),"name",a.name)),this.c.defaults&&n.append(this._field(l.i18n("stateRestore.state.defaults","Default:"),l.i18n("stateRestore.state.defaultsInfo","The state that is selected as the default will be used automatically when the page is loaded."),"default",a.isDefault,"checkbox")),this.c.sharing&&n.append(this._field(l.i18n("stateRestore.state.share","Share:"),l.i18n("stateRestore.state.shareInfo","Other users of the system will be able to use states that you share. They will not be able to edit the state."),"share",a.isSharedOut,"checkbox")),[]);for([r,i]of Object.entries(stateManipulators))null===this.c.include[r]&&d.push({name:r,label:i.text(l),value:!0});d.length&&(d.sort((t,e)=>t.name.localeCompare(e.name)),n.append(this._fieldCheckboxes(l.i18n("stateRestore.state.properties","State properties:"),d))),n.append(this._submitButton(l.i18n("stateRestore.state.save","Save"))),n.on("submit",t=>{t.preventDefault(),this._stateUserInputProcess(a,o,s)}),this.modal(t,o)}_stateUserInputProcess(e,t,a){var s=t.find("input[name=name]"),o=s.parent().find("div."+this.classes.field.error),r=t.find("input[name=default]"),i=t.find("input[name=share]");if(s.val()){e.name=s.val(),o.empty(),r.length&&(e.isDefault=r.prop("checked"),e.isDefault)&&this.s.store.filter(t=>t!==e).forEach(t=>t.isDefault=!1),i.length&&(e.isSharedOut=i.prop("checked"));var n,l,d=this.c.include;for([n,l]of Object.entries(stateManipulators))null===d[n]?t.find(`input[name="${n}"]`).prop("checked")||l.remove(e.state):!1===d[n]&&l.remove(e.state);a(e)}else o.text(this.s.dt.i18n("stateRestore.state.nameRequired","A name is required for the state"))}_submitButton(t){return Dom.c("div").classAdd("dtsb-modal-buttons").append(Dom.c("button").classAdd(this.classes.modal.button).text(t))}}function wrap(t){return'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">'+t+"</svg>"}States.classes={field:{checkboxOption:"",container:"dtsb-field",error:"dtsb-field-error",info:"dtsb-field-info",label:"dtsb-field-label",value:"dtsb-field-value",input:{checkbox:"dtsb-field-input",text:"dtsb-field-input"}},form:"",modal:{button:"dtsb-modal-button",table:"dtsb-modal_wide",form:""},removeMessage:"dtsb-remove-message",table:{table:"display",button:"dtsb-button"}},States.defaults={ajax:null,canCreate:!0,defaults:!0,include:{cardView:!0,columnVisibility:!0,columnSearch:!0,columnControl:!0,columnOrder:!0,order:!0,pageStart:!1,pageLength:!0,scroller:!1,search:!0,searchBuilder:!0,searchPanes:!0,select:!1},newName:null,sharing:!0,predefined:[]},States.manipulators=stateManipulators,States.version="2.1.1";let icons={shareIn:wrap('<path d="m10 16 4-4-4-4"/><path d="M3 12h11"/><path d="M3 8V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-3"/>'),shareOut:wrap('<path d="M10 12h11"/><path d="m17 16 4-4-4-4"/><path d="M21 6.344V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-1.344"/>'),tick:wrap('<path d="M20 6 9 17l-5-5"/>')};function setup(t,e){var a=t.settings()[0];if(!DataTable.select)throw new Error("The Select extension is required for StateRestore's table view");a._statesTable||(a._statesTable=new StateTable(t,e)),a._statesTable.display()}class StateTable{display(){this.s.states.modal("Saved states",Dom.s(this.s.statesDt.table().container()),!0)}constructor(e,t){var a=e.settings()[0];a._states||new States(e);let s=a._states;a=Dom.c("table").classAdd(States.classes.table.table);let o=new DataTable(a[0],{columns:this._columns(s,e),layout:{topStart:{buttons:this._buttons(s,e)}},paging:!1,select:{style:"os",selector:"td:first-child"},order:[[1,"asc"]],scrollY:300,scrollCollapse:!0,rowId:"id",language:{entries:e.i18n("stateRestore.table.entries",{_:"states",1:"state"},!1)}});this.s={hostButton:t,hostDt:e,states:s,statesDt:o},o.on("click","tbody button",function(){var t=o.row(this.closest("tr")).data();e.state(t.state).draw(!1)}),s.loaded(()=>{o.clear().rows.add(s.storeGet(!0).slice()).draw()}),e.on("stateRestore",()=>{o.clear().rows.add(s.storeGet(!0).slice()).draw()}).on("draw",()=>{o.rows().invalidate().draw()})}_buttons(e,a){var t=[];e.can("create")&&t.push({text:a.i18n("stateRestore.button.create","Create state"),action:()=>{e.add(a.state())}});let s=t=>{var e=this.s.statesDt.rows({selected:!0}).data().toArray();return t?e.filter(t=>!t.isSharedIn&&!t.isStatic):e};return t.push({text:a.i18n("stateRestore.button.edit","Edit"),action:()=>{this.s.states.edit(s(!0)[0])},init:function(t){this.disable(),t.on("select deselect",()=>{this.enable(1===s(!0).length&&1===s(!1).length)})}}),t.push({extend:"selectedSingle",text:a.i18n("stateRestore.button.replace","Replace"),action:()=>{var t=s(!0)[0];e.edit(t,{state:a.state()})},init:function(t){this.disable(),t.on("select deselect",()=>{this.enable(1===s(!0).length&&1===s(!1).length)})}}),t.push({extend:"selectedSingle",text:a.i18n("stateRestore.button.duplicate","Copy"),action:()=>{var t=s(!1)[0];e.add(t.state,t.name+a.i18n("stateRestore.copyName"," (copy)"))}}),t.push({text:a.i18n("stateRestore.button.remove","Delete"),action:()=>{var t=s(!0);this.s.states.remove(t)},init:function(t){this.disable(),t.on("select deselect",()=>{this.enable(0!==s(!0).length&&s(!0).length===s(!1).length)})}}),t}_columns(e,t){var a=[{orderable:!1,render:DataTable.render.select()},{title:t.i18n("stateRestore.table.name","Name"),data:"name"},{title:t.i18n("stateRestore.table.active","Active"),data:null,className:"dt-center",render:t=>e.isCurrent(t.state)?icons.tick:""}];return e.can("default")&&a.push({title:t.i18n("stateRestore.table.default","Default"),data:"isDefault",className:"dt-center",render:t=>t?icons.tick:""}),e.can("share")&&a.push({title:t.i18n("stateRestore.table.share","Share"),data:null,className:"dt-center",render:t=>t.isSharedIn?icons.shareIn:t.isSharedOut?icons.shareOut:""}),a.push({data:null,defaultContent:'<button class="'+States.classes.table.button+'">'+t.i18n("stateRestore.table.load","Load")+"</button>",orderable:!1}),a}}let buttonCounter=0;DataTable.ext.buttons.stateCreate={action(t,e,a,s){e.settings()[0]._states.add(e.state())},init(t,e,a){var s=t.settings()[0];s._states||new States(t),s._states.can("create")||this.disable()},text:t=>t.i18n("stateRestore.button.create","Create state")},DataTable.ext.buttons.statesRemoveAll={action(t,e,a,s){var e=e.settings()[0]._states,o=e.storeGet().filter(t=>!t.isSharedIn);e.remove(o)},init(t,e,a){var s=t.settings()[0];s._states||new States(t);let o=s._states;t.on("stateRestore",()=>{this.enable(0<o.storeGet().length)}),this.enable(0<o.storeGet().length)},text:t=>t.i18n("stateRestore.button.statesRemoveAll","Remove all states")},DataTable.ext.buttons.statesList={extend:"collection",autoClose:!0,action(t,s,e,a,o){let r=s.settings()[0]._states,i=[];a.buttons&&a.buttons.length&&a.buttons.forEach(t=>i.push(t)),r.storeGet(!0).length?r.storeGet(!0).forEach(a=>{let e=".dtst-"+buttonCounter++;var t=[];a.isSharedIn||a.isStatic?r.can("create")&&t.push({text:s.i18n("stateRestore.button.duplicate","Copy"),action:()=>{r.add(a.state,a.name+s.i18n("stateRestore.copyName"," (copy)"))}}):(t.push({text:s.i18n("stateRestore.button.edit","Edit"),action:()=>{r.edit(a)}}),t.push({text:s.i18n("stateRestore.button.replace","Replace"),action:()=>{r.edit(a,{state:s.state()})}}),t.push({text:s.i18n("stateRestore.button.remove","Delete"),action:()=>{r.remove(a)}})),i.push({action:(t,e)=>{e.state(a.state).draw(!1)},popoverTitle:util.escapeHtml(a.name),split:t,init:function(t){t.on("draw"+e,()=>{this.active(r.isCurrent(a.state))}),this.active(r.isCurrent(a.state))},destroy:function(t){t.off("draw"+e)},text:util.escapeHtml(a.name)})}):i.push({extend:"spacer",text:s.i18n("stateRestore.button.empty","No saved states"),style:"empty"}),s.button(e).collectionRebuild(i),DataTable.ext.buttons.collection.action.call(this,t,s,e,a,o)},buttons:[],text:t=>t.i18n("stateRestore.button.statesList","Saved states")},DataTable.ext.buttons.statesTable={autoClose:!0,action(t,e,a,s,o){setup(e,a)},buttons:[],text:t=>t.i18n("stateRestore.button.statesTable","Saved states")},DataTable.ext.buttons.createState=DataTable.ext.buttons.stateCreate,DataTable.ext.buttons.savedStates=DataTable.ext.buttons.statesList,DataTable.ext.buttons.removeAllStates=DataTable.ext.buttons.statesRemoveAll,Dom.on("options.dt.stateRestore",function(t,e){if("dt"===t.namespace&&(e.stateRestore||DataTable.defaults.stateRestore)){let s=e.stateSave||DataTable.defaults.stateSave;e.stateSave=!0,e.stateLoadCallback=(t,e)=>{let a=t._states||new States(t);setTimeout(async()=>{a.loaded(()=>{var t=a.getDefault();e(t||{},!0)})},10),t.features.stateSave=s}}}),Api.register("stateRestore()",function(){return this}),Api.register("stateRestore.activeStates()",function(){let e=this.context[0]._states;return e?this.inst(this.context,e.storeGet().filter(t=>e.isCurrent(t.state))):this}),Api.register("stateRestore.state()",function(e){var t=this.inst(this.context),a=this.context[0]._states;return a&&(t._stateSelected=a.storeGet().find(t=>e===t.id)),t}),Api.register("stateRestore.add()",function(t){var e=this.context[0]._states;return e&&e.add(this.state(),t,!1,!1),this}),Api.register("stateRestore.state().details()",function(){return this._stateSelected||null}),Api.register("stateRestore.state().load()",function(){var t=this._stateSelected;return t&&this.state(t.state).draw(!1),this}),Api.register("stateRestore.state().remove()",function(t=!1){var e=this.context[0]._states,a=this._stateSelected;e&&a&&e.remove(a,t)}),Api.register("stateRestore.state().isActive()",function(){var t=this.context[0]._states,e=this._stateSelected;return!(!t||!e)&&t.isCurrent(e)}),Api.register("stateRestore.state().rename()",function(t){var e=this.context[0]._states,a=this._stateSelected;return e&&a&&t&&e.edit(a,{name:t},!0),this}),Api.register("stateRestore.state().edit()",function(){var t=this.context[0]._states,e=this._stateSelected;return t&&e&&t.edit(e),this}),Api.register("stateRestore.state().save()",function(t=!1){var e=this.context[0]._states,a=this._stateSelected;return e&&a&&e.edit(a,{state:this.state()},t),this}),Api.register("stateRestore.states()",function(t){var a=this.inst(this.context),s=this.context[0]._states;if(s){let e=t?Array.isArray(t)?t:[t]:s.storeGet(!0).map(t=>t.id);a._statesSelected=s.storeGet().filter(t=>e.includes(t.id))}return a}),Api.register("stateRestore.states().details()",function(){return this._statesSelected||[]}),Api.register("stateRestore.states().remove()",function(t=!1){var e=this.context[0]._states,a=this._statesSelected;return e&&a&&e.remove(a,t),this}),DataTable.StateRestore=States;export default DataTable;