From a3902acfb3277a638674810a984410b9785229fb Mon Sep 17 00:00:00 2001 From: dtbuild Date: Fri, 4 Oct 2024 11:00:16 +0000 Subject: [PATCH] 3b7323e2e9630694696b3ca338c2e646420b4648 Fix: Ensure that all confirmation messages quote the state name Fix: If Ajax loading a state, it wasn't possible to then update it Fix: Hide the "include" checkbox title if there are no checkboxes to show Fix: List of state buttons was only showing if the state restore button was the first in the collection Dev: createButton callback option - not yet publically documented Dev: createState callback option - also not yet publically documented 1df5de850c73211093120aa18b201de84aae9b3f Merge branch 'master' of github.com:DataTables/StateRestore Sync to source repo @1df5de850c73211093120aa18b201de84aae9b3f --- datatables.json | 2 +- js/StateRestore.js | 10 ++++--- js/StateRestoreCollection.js | 28 ++++++++++++++----- js/dataTables.stateRestore.js | 43 +++++++++++++++++++++--------- js/dataTables.stateRestore.min.js | 2 +- js/dataTables.stateRestore.min.mjs | 4 +-- js/dataTables.stateRestore.mjs | 43 +++++++++++++++++++++--------- js/index.js | 5 ++-- 8 files changed, 94 insertions(+), 43 deletions(-) diff --git a/datatables.json b/datatables.json index 636f1ea..3e4dbff 100644 --- a/datatables.json +++ b/datatables.json @@ -18,5 +18,5 @@ ], "src-repo": "http://github.com/DataTables/StateRestore", "last-tag": "1.4.1", - "last-sync": "169b120d2ff1068804e727c6e89738deddfb620c" + "last-sync": "1df5de850c73211093120aa18b201de84aae9b3f" } \ No newline at end of file diff --git a/js/StateRestore.js b/js/StateRestore.js index 2530c90..eb3b2ad 100644 --- a/js/StateRestore.js +++ b/js/StateRestore.js @@ -26,7 +26,7 @@ var StateRestore = /** @class */ (function () { dt: table, identifier: identifier, isPreDefined: isPreDefined, - savedState: null, + savedState: state, tableId: state && state.stateRestore ? state.stateRestore.tableId : undefined }; this.dom = { @@ -750,13 +750,13 @@ var StateRestore = /** @class */ (function () { duplicateError: 'A state with this name already exists.', emptyError: 'Name cannot be empty.', emptyStates: 'No saved states', - removeConfirm: 'Are you sure you want to remove %s?', + removeConfirm: 'Are you sure you want to remove "%s"?', removeError: 'Failed to remove state.', removeJoiner: ' and ', removeSubmit: 'Remove', removeTitle: 'Remove State', renameButton: 'Rename', - renameLabel: 'New Name for %s:', + renameLabel: 'New Name for "%s":', renameTitle: 'Rename State' }, modalCloseButton: true, @@ -797,7 +797,9 @@ var StateRestore = /** @class */ (function () { searchBuilder: false, searchPanes: false, select: false - } + }, + createButton: null, + createState: null }; return StateRestore; }()); diff --git a/js/StateRestoreCollection.js b/js/StateRestoreCollection.js index 2637f6f..fd02e0b 100644 --- a/js/StateRestoreCollection.js +++ b/js/StateRestoreCollection.js @@ -428,10 +428,18 @@ var StateRestoreCollection = /** @class */ (function () { that._collectionRebuild(); }; var loadedState = preDefined[state]; - var newState = new StateRestore(this_1.s.dt, $.extend(true, {}, this_1.c, loadedState.c !== undefined ? - { saveState: loadedState.c.saveState } : - undefined, true), state, loadedState, true, successCallback); - newState.s.savedState = loadedState; + var stateConfig = $.extend(true, {}, this_1.c, loadedState.c !== undefined ? + { + saveState: loadedState.c.saveState, + remove: loadedState.c.remove, + rename: loadedState.c.rename, + save: loadedState.c.save + } : + undefined, true); + if (this_1.c.createState) { + this_1.c.createState(stateConfig, loadedState); + } + var newState = new StateRestore(this_1.s.dt, stateConfig, state, loadedState, true, successCallback); $(this_1.s.dt.table().node()).on('dtsr-modal-inserted', function () { newState.dom.confirmation.one('dtsr-remove', function () { return _this._removeCallback(newState.s.identifier); }); newState.dom.confirmation.one('dtsr-rename', function () { return _this._collectionRebuild(); }); @@ -517,7 +525,7 @@ var StateRestoreCollection = /** @class */ (function () { if (split.includes('removeState') && (!this.c.remove || !state.c.remove)) { split.splice(split.indexOf('removeState'), 1); } - stateButtons.push({ + var buttonConfig = { _stateRestore: state, attr: { title: state.s.identifier @@ -528,7 +536,11 @@ var StateRestoreCollection = /** @class */ (function () { extend: 'stateRestore', text: StateRestore.entityEncode(state.s.identifier), popoverTitle: StateRestore.entityEncode(state.s.identifier) - }); + }; + if (this.c.createButton) { + this.c.createButton(buttonConfig, state.s.savedState); + } + stateButtons.push(buttonConfig); } } button.collectionRebuild(stateButtons); @@ -1024,7 +1036,9 @@ var StateRestoreCollection = /** @class */ (function () { searchBuilder: false, searchPanes: false, select: false - } + }, + createButton: null, + createState: null }; return StateRestoreCollection; }()); diff --git a/js/dataTables.stateRestore.js b/js/dataTables.stateRestore.js index 23c5242..b13d65b 100644 --- a/js/dataTables.stateRestore.js +++ b/js/dataTables.stateRestore.js @@ -79,7 +79,7 @@ var DataTable = $.fn.dataTable; dt: table, identifier: identifier, isPreDefined: isPreDefined, - savedState: null, + savedState: state, tableId: state && state.stateRestore ? state.stateRestore.tableId : undefined }; this.dom = { @@ -803,13 +803,13 @@ var DataTable = $.fn.dataTable; duplicateError: 'A state with this name already exists.', emptyError: 'Name cannot be empty.', emptyStates: 'No saved states', - removeConfirm: 'Are you sure you want to remove %s?', + removeConfirm: 'Are you sure you want to remove "%s"?', removeError: 'Failed to remove state.', removeJoiner: ' and ', removeSubmit: 'Remove', removeTitle: 'Remove State', renameButton: 'Rename', - renameLabel: 'New Name for %s:', + renameLabel: 'New Name for "%s":', renameTitle: 'Rename State' }, modalCloseButton: true, @@ -850,7 +850,9 @@ var DataTable = $.fn.dataTable; searchBuilder: false, searchPanes: false, select: false - } + }, + createButton: null, + createState: null }; return StateRestore; }()); @@ -1284,10 +1286,18 @@ var DataTable = $.fn.dataTable; that._collectionRebuild(); }; var loadedState = preDefined[state]; - var newState = new StateRestore(this_1.s.dt, $$1.extend(true, {}, this_1.c, loadedState.c !== undefined ? - { saveState: loadedState.c.saveState } : - undefined, true), state, loadedState, true, successCallback); - newState.s.savedState = loadedState; + var stateConfig = $$1.extend(true, {}, this_1.c, loadedState.c !== undefined ? + { + saveState: loadedState.c.saveState, + remove: loadedState.c.remove, + rename: loadedState.c.rename, + save: loadedState.c.save + } : + undefined, true); + if (this_1.c.createState) { + this_1.c.createState(stateConfig, loadedState); + } + var newState = new StateRestore(this_1.s.dt, stateConfig, state, loadedState, true, successCallback); $$1(this_1.s.dt.table().node()).on('dtsr-modal-inserted', function () { newState.dom.confirmation.one('dtsr-remove', function () { return _this._removeCallback(newState.s.identifier); }); newState.dom.confirmation.one('dtsr-rename', function () { return _this._collectionRebuild(); }); @@ -1373,7 +1383,7 @@ var DataTable = $.fn.dataTable; if (split.includes('removeState') && (!this.c.remove || !state.c.remove)) { split.splice(split.indexOf('removeState'), 1); } - stateButtons.push({ + var buttonConfig = { _stateRestore: state, attr: { title: state.s.identifier @@ -1384,7 +1394,11 @@ var DataTable = $.fn.dataTable; extend: 'stateRestore', text: StateRestore.entityEncode(state.s.identifier), popoverTitle: StateRestore.entityEncode(state.s.identifier) - }); + }; + if (this.c.createButton) { + this.c.createButton(buttonConfig, state.s.savedState); + } + stateButtons.push(buttonConfig); } } button.collectionRebuild(stateButtons); @@ -1880,7 +1894,9 @@ var DataTable = $.fn.dataTable; searchBuilder: false, searchPanes: false, select: false - } + }, + createButton: null, + createState: null }; return StateRestoreCollection; }()); @@ -2147,8 +2163,9 @@ var DataTable = $.fn.dataTable; 0; }); var button = dt.button('SaveStateRestore:name'); - var stateButtons = button[0] !== undefined && button[0].inst.c.buttons[0].buttons !== undefined ? - button[0].inst.c.buttons[0].buttons : + var buttonIndex = parseInt(button.index()); + var stateButtons = button[0] !== undefined && button[0].inst.c.buttons[buttonIndex].buttons !== undefined ? + button[0].inst.c.buttons[buttonIndex].buttons : []; // remove any states from the previous rebuild - if they are still there they will be added later for (var i = 0; i < stateButtons.length; i++) { diff --git a/js/dataTables.stateRestore.min.js b/js/dataTables.stateRestore.min.js index e2bd867..b0c375e 100644 --- a/js/dataTables.stateRestore.min.js +++ b/js/dataTables.stateRestore.min.js @@ -1,4 +1,4 @@ /*! StateRestore 1.4.1 * © SpryMedia Ltd - datatables.net/license */ -!function(s){var o,i;"function"==typeof define&&define.amd?define(["jquery","datatables.net"],function(e){return s(e,window,document)}):"object"==typeof exports?(o=require("jquery"),i=function(e,t){t.fn.dataTable||require("datatables.net")(e,t)},"undefined"==typeof window?module.exports=function(e,t){return e=e||window,t=t||o(e),i(e,t),s(t,0,e.document)}:(i(window,o),module.exports=s(o,window,window.document))):s(jQuery,window,document)}(function(y,e,g){"use strict";var u,m,p,a,k,s,t,c=y.fn.dataTable;function n(e,t,s,o,i,a){if(void 0===o&&(o=void 0),void 0===i&&(i=!1),void 0===a&&(a=function(){return null}),!m||!m.versionCheck||!m.versionCheck("1.10.0"))throw new Error("StateRestore requires DataTables 1.10 or newer");if(!m.Buttons)throw new Error("StateRestore requires Buttons");e=new m.Api(e);this.classes=u.extend(!0,{},n.classes),this.c=u.extend(!0,{},n.defaults,t),this.s={dt:e,identifier:s,isPreDefined:i,savedState:null,tableId:o&&o.stateRestore?o.stateRestore.tableId:void 0},this.dom={background:u('
'),closeButton:u('
×
'),confirmation:u('
'),confirmationButton:u('
"),creation:p('
'),creationForm:p('
'),creationTitle:p('

'+this.s.dt.i18n("stateRestore.creationModal.title",this.c.i18n.creationModal.title)+"

"),dtContainer:p(this.s.dt.table().container()),duplicateError:p(''+this.s.dt.i18n("stateRestore.duplicateError",this.c.i18n.duplicateError)+""),emptyError:p(''+this.s.dt.i18n("stateRestore.emptyError",this.c.i18n.emptyError)+""),lengthToggle:p('
'+this.s.dt.i18n("stateRestore.creationModal.length",this.c.i18n.creationModal.length)+"
"),nameInputRow:p('
'),orderToggle:p('
'+this.s.dt.i18n("stateRestore.creationModal.order",this.c.i18n.creationModal.order)+"
"),pagingToggle:p('
'+this.s.dt.i18n("stateRestore.creationModal.paging",this.c.i18n.creationModal.paging)+"
"),removeContents:p('
'),removeTitle:p('

'+this.s.dt.i18n("stateRestore.removeTitle",this.c.i18n.removeTitle)+"

"),scrollerToggle:p('
'+this.s.dt.i18n("stateRestore.creationModal.scroller",this.c.i18n.creationModal.scroller)+"
"),searchBuilderToggle:p('
'+this.s.dt.i18n("stateRestore.creationModal.searchBuilder",this.c.i18n.creationModal.searchBuilder)+"
"),searchPanesToggle:p('
'+this.s.dt.i18n("stateRestore.creationModal.searchPanes",this.c.i18n.creationModal.searchPanes)+"
"),searchToggle:p('
'+this.s.dt.i18n("stateRestore.creationModal.search",this.c.i18n.creationModal.search)+"
"),selectToggle:p('
'+this.s.dt.i18n("stateRestore.creationModal.select",this.c.i18n.creationModal.select)+"
")},(e.settings()[0]._stateRestore=this)._searchForStates(),this._addPreDefined(this.c.preDefined),i={action:"load"},"function"==typeof this.c.ajax?s=function(){"function"==typeof o.c.ajax&&o.c.ajax.call(o.s.dt,i,function(e){return o._addPreDefined(e)})}:"string"==typeof this.c.ajax&&(s=function(){p.ajax({data:i,dataType:"json",success:function(e){o._addPreDefined(e)},type:"POST",url:o.c.ajax})}),"function"==typeof s&&(this.s.dt.settings()[0]._bInitComplete?s():this.s.dt.one("preInit.dtsr",function(){s()})),this.s.dt.on("destroy.dtsr",function(){o.destroy()}),this.s.dt.on("draw.dtsr buttons-action.dtsr",function(){return o.findActive()}),this}function o(e,t){l(e,new c.StateRestoreCollection(e,t.config))}function l(e,t){var s=e.stateRestore.states(),o=e.button("SaveStateRestore:name"),i=[];if(o[0])for(var a=o.index().split("-"),i=o[0].inst.c.buttons,n=0;n'+e.i18n("stateRestore.emptyStates",t.c.i18n.emptyStates)+"");else for(var c=0,l=s;c'+i.s.dt.i18n("stateRestore.removeConfirm",i.c.i18n.removeConfirm).replace(/%s/g,i.s.identifier)+"
"),i.dom.confirmation.trigger("dtsr-rename"),i.dom.background.click(),i.dom.confirmation.remove(),u(g).unbind("keyup",function(e){return i._keyupFunction(e)}),i.dom.confirmationButton.off("click")}e={action:"rename",stateRestore:((e={})[i.s.identifier]=s,e)};if(i.c.ajax)"string"==typeof i.c.ajax&&i.s.dt.settings()[0]._bInitComplete?u.ajax({data:e,success:t,type:"POST",url:i.c.ajax}):"function"==typeof i.c.ajax&&i.c.ajax.call(i.s.dt,e,t);else try{localStorage.removeItem("DataTables_stateRestore_"+i.s.identifier+"_"+location.pathname+(i.s.tableId?"_"+i.s.tableId:"")),t()}catch(e){return i.dom.confirmation.children("."+i.classes.modalError).remove(),i.dom.confirmation.append(i.dom.removeError),!1}return!0};if(null!==s){if(o.includes(s))throw new Error(this.s.dt.i18n("stateRestore.duplicateError",this.c.i18n.duplicateError));if(0===s.length)throw new Error(this.s.dt.i18n("stateRestore.emptyError",this.c.i18n.emptyError));this.dom.confirmation.appendTo(this.dom.dtContainer),u(this.s.dt.table().node()).trigger("dtsr-modal-inserted"),e(),this.dom.confirmation.remove()}else this.dom.renameInput.val(this.s.identifier),this.dom.renameContents.append(this.dom.renameInput),this._newModal(this.dom.renameTitle,this.s.dt.i18n("stateRestore.renameButton",this.c.i18n.renameButton),e,this.dom.renameContents)}},n.prototype.save=function(e,t,s){var o,i=this;if(void 0===s&&(s=!0),this.c.save){if(this.s.dt.state.save(),void 0===e)o=this.s.dt.state();else{if("object"!=typeof e)return;o=e}if(o.stateRestore?(o.stateRestore.isPreDefined=this.s.isPreDefined,o.stateRestore.state=this.s.identifier,o.stateRestore.tableId=this.s.tableId):o.stateRestore={isPreDefined:this.s.isPreDefined,state:this.s.identifier,tableId:this.s.tableId},this.s.savedState=o,this.c.saveState.order||(this.s.savedState.order=void 0),this.c.saveState.search||(this.s.savedState.search=void 0),this.c.saveState.columns&&this.s.savedState.columns)for(var a=0,n=this.s.savedState.columns.length;a/g,">").replace(/"/g,"""):e},n.prototype._deepCompare=function(e,t){if(null!==e||null!==t){if(null===e||null===t)return!1;var s,o,i=[e,t],a=[Object.keys(e).sort(),Object.keys(t).sort()];for(a[0].includes("scroller")&&(s=a[0].indexOf("start"))&&a[0].splice(s,1),a[1].includes("scroller")&&(s=a[1].indexOf("start"))&&a[1].splice(s,1),o=0;o
').append(this.dom.confirmationButton)).appendTo(this.dom.dtContainer),u(this.s.dt.table().node()).trigger("dtsr-modal-inserted"),o.children("input")),a=((0'+this.s.dt.i18n("stateRestore.emptyStates",this.c.i18n.emptyStates)+"";if(0===this.s.states.length)t.includes(i)||t.push(i);else{for(;t.includes(i);)t.splice(t.indexOf(i),1);this.s.states=this.s.states.sort(function(e,t){e=e.s.identifier,t=t.s.identifier;return t'+t+"")),e=(this.dom.confirmation.empty().append(this.dom.confirmationTitleRow).append(o).append(p('
').append(n)).appendTo(this.dom.dtContainer),p(this.s.dt.table().node()).trigger("dtsr-modal-inserted"),o.children("input")),r=((0'),closeButton:u('
×
'),confirmation:u('
'),confirmationButton:u('
"),creation:p('
'),creationForm:p('
'),creationTitle:p('

'+this.s.dt.i18n("stateRestore.creationModal.title",this.c.i18n.creationModal.title)+"

"),dtContainer:p(this.s.dt.table().container()),duplicateError:p(''+this.s.dt.i18n("stateRestore.duplicateError",this.c.i18n.duplicateError)+""),emptyError:p(''+this.s.dt.i18n("stateRestore.emptyError",this.c.i18n.emptyError)+""),lengthToggle:p('
'+this.s.dt.i18n("stateRestore.creationModal.length",this.c.i18n.creationModal.length)+"
"),nameInputRow:p('
'),orderToggle:p('
'+this.s.dt.i18n("stateRestore.creationModal.order",this.c.i18n.creationModal.order)+"
"),pagingToggle:p('
'+this.s.dt.i18n("stateRestore.creationModal.paging",this.c.i18n.creationModal.paging)+"
"),removeContents:p('
'),removeTitle:p('

'+this.s.dt.i18n("stateRestore.removeTitle",this.c.i18n.removeTitle)+"

"),scrollerToggle:p('
'+this.s.dt.i18n("stateRestore.creationModal.scroller",this.c.i18n.creationModal.scroller)+"
"),searchBuilderToggle:p('
'+this.s.dt.i18n("stateRestore.creationModal.searchBuilder",this.c.i18n.creationModal.searchBuilder)+"
"),searchPanesToggle:p('
'+this.s.dt.i18n("stateRestore.creationModal.searchPanes",this.c.i18n.creationModal.searchPanes)+"
"),searchToggle:p('
'+this.s.dt.i18n("stateRestore.creationModal.search",this.c.i18n.creationModal.search)+"
"),selectToggle:p('
'+this.s.dt.i18n("stateRestore.creationModal.select",this.c.i18n.creationModal.select)+"
")},(e.settings()[0]._stateRestore=this)._searchForStates(),this._addPreDefined(this.c.preDefined),i={action:"load"},"function"==typeof this.c.ajax?s=function(){"function"==typeof o.c.ajax&&o.c.ajax.call(o.s.dt,i,function(e){return o._addPreDefined(e)})}:"string"==typeof this.c.ajax&&(s=function(){p.ajax({data:i,dataType:"json",success:function(e){o._addPreDefined(e)},type:"POST",url:o.c.ajax})}),"function"==typeof s&&(this.s.dt.settings()[0]._bInitComplete?s():this.s.dt.one("preInit.dtsr",function(){s()})),this.s.dt.on("destroy.dtsr",function(){o.destroy()}),this.s.dt.on("draw.dtsr buttons-action.dtsr",function(){return o.findActive()}),this}function o(e,t){l(e,new c.StateRestoreCollection(e,t.config))}function l(e,t){var s=e.stateRestore.states(),o=e.button("SaveStateRestore:name"),i=[];if(o[0])for(var a=o.index().split("-"),i=o[0].inst.c.buttons,n=0;n'+e.i18n("stateRestore.emptyStates",t.c.i18n.emptyStates)+"");else for(var c=0,l=s;c'+i.s.dt.i18n("stateRestore.removeConfirm",i.c.i18n.removeConfirm).replace(/%s/g,i.s.identifier)+"
"),i.dom.confirmation.trigger("dtsr-rename"),i.dom.background.click(),i.dom.confirmation.remove(),u(g).unbind("keyup",function(e){return i._keyupFunction(e)}),i.dom.confirmationButton.off("click")}e={action:"rename",stateRestore:((e={})[i.s.identifier]=s,e)};if(i.c.ajax)"string"==typeof i.c.ajax&&i.s.dt.settings()[0]._bInitComplete?u.ajax({data:e,success:t,type:"POST",url:i.c.ajax}):"function"==typeof i.c.ajax&&i.c.ajax.call(i.s.dt,e,t);else try{localStorage.removeItem("DataTables_stateRestore_"+i.s.identifier+"_"+location.pathname+(i.s.tableId?"_"+i.s.tableId:"")),t()}catch(e){return i.dom.confirmation.children("."+i.classes.modalError).remove(),i.dom.confirmation.append(i.dom.removeError),!1}return!0};if(null!==s){if(o.includes(s))throw new Error(this.s.dt.i18n("stateRestore.duplicateError",this.c.i18n.duplicateError));if(0===s.length)throw new Error(this.s.dt.i18n("stateRestore.emptyError",this.c.i18n.emptyError));this.dom.confirmation.appendTo(this.dom.dtContainer),u(this.s.dt.table().node()).trigger("dtsr-modal-inserted"),e(),this.dom.confirmation.remove()}else this.dom.renameInput.val(this.s.identifier),this.dom.renameContents.append(this.dom.renameInput),this._newModal(this.dom.renameTitle,this.s.dt.i18n("stateRestore.renameButton",this.c.i18n.renameButton),e,this.dom.renameContents)}},n.prototype.save=function(e,t,s){var o,i=this;if(void 0===s&&(s=!0),this.c.save){if(this.s.dt.state.save(),void 0===e)o=this.s.dt.state();else{if("object"!=typeof e)return;o=e}if(o.stateRestore?(o.stateRestore.isPreDefined=this.s.isPreDefined,o.stateRestore.state=this.s.identifier,o.stateRestore.tableId=this.s.tableId):o.stateRestore={isPreDefined:this.s.isPreDefined,state:this.s.identifier,tableId:this.s.tableId},this.s.savedState=o,this.c.saveState.order||(this.s.savedState.order=void 0),this.c.saveState.search||(this.s.savedState.search=void 0),this.c.saveState.columns&&this.s.savedState.columns)for(var a=0,n=this.s.savedState.columns.length;a/g,">").replace(/"/g,"""):e},n.prototype._deepCompare=function(e,t){if(null!==e||null!==t){if(null===e||null===t)return!1;var s,o,i=[e,t],a=[Object.keys(e).sort(),Object.keys(t).sort()];for(a[0].includes("scroller")&&(s=a[0].indexOf("start"))&&a[0].splice(s,1),a[1].includes("scroller")&&(s=a[1].indexOf("start"))&&a[1].splice(s,1),o=0;o
').append(this.dom.confirmationButton)).appendTo(this.dom.dtContainer),u(this.s.dt.table().node()).trigger("dtsr-modal-inserted"),o.children("input")),a=((0'+this.s.dt.i18n("stateRestore.emptyStates",this.c.i18n.emptyStates)+"";if(0===this.s.states.length)t.includes(i)||t.push(i);else{for(;t.includes(i);)t.splice(t.indexOf(i),1);this.s.states=this.s.states.sort(function(e,t){e=e.s.identifier,t=t.s.identifier;return t'+t+"")),e=(this.dom.confirmation.empty().append(this.dom.confirmationTitleRow).append(o).append(p('
').append(n)).appendTo(this.dom.dtContainer),p(this.s.dt.table().node()).trigger("dtsr-modal-inserted"),o.children("input")),r=((0'+a.s.dt.i18n("stateRestore.removeConfirm",a.c.i18n.removeConfirm).replace(/%s/g,a.s.identifier)+"
"),a.dom.confirmation.trigger("dtsr-rename"),a.dom.background.click(),a.dom.confirmation.remove(),u(document).unbind("keyup",function(e){return a._keyupFunction(e)}),a.dom.confirmationButton.off("click")}e={action:"rename",stateRestore:((e={})[a.s.identifier]=s,e)};if(a.c.ajax)"string"==typeof a.c.ajax&&a.s.dt.settings()[0]._bInitComplete?u.ajax({data:e,success:t,type:"POST",url:a.c.ajax}):"function"==typeof a.c.ajax&&a.c.ajax.call(a.s.dt,e,t);else try{localStorage.removeItem("DataTables_stateRestore_"+a.s.identifier+"_"+location.pathname+(a.s.tableId?"_"+a.s.tableId:"")),t()}catch(e){return a.dom.confirmation.children("."+a.classes.modalError).remove(),a.dom.confirmation.append(a.dom.removeError),!1}return!0};if(null!==s){if(o.includes(s))throw new Error(this.s.dt.i18n("stateRestore.duplicateError",this.c.i18n.duplicateError));if(0===s.length)throw new Error(this.s.dt.i18n("stateRestore.emptyError",this.c.i18n.emptyError));this.dom.confirmation.appendTo(this.dom.dtContainer),u(this.s.dt.table().node()).trigger("dtsr-modal-inserted"),e(),this.dom.confirmation.remove()}else this.dom.renameInput.val(this.s.identifier),this.dom.renameContents.append(this.dom.renameInput),this._newModal(this.dom.renameTitle,this.s.dt.i18n("stateRestore.renameButton",this.c.i18n.renameButton),e,this.dom.renameContents)}},n.prototype.save=function(e,t,s){var o,a=this;if(void 0===s&&(s=!0),this.c.save){if(this.s.dt.state.save(),void 0===e)o=this.s.dt.state();else{if("object"!=typeof e)return;o=e}if(o.stateRestore?(o.stateRestore.isPreDefined=this.s.isPreDefined,o.stateRestore.state=this.s.identifier,o.stateRestore.tableId=this.s.tableId):o.stateRestore={isPreDefined:this.s.isPreDefined,state:this.s.identifier,tableId:this.s.tableId},this.s.savedState=o,this.c.saveState.order||(this.s.savedState.order=void 0),this.c.saveState.search||(this.s.savedState.search=void 0),this.c.saveState.columns&&this.s.savedState.columns)for(var i=0,n=this.s.savedState.columns.length;i/g,">").replace(/"/g,"""):e},n.prototype._deepCompare=function(e,t){if(null!==e||null!==t){if(null===e||null===t)return!1;var s,o,a=[e,t],i=[Object.keys(e).sort(),Object.keys(t).sort()];for(i[0].includes("scroller")&&(s=i[0].indexOf("start"))&&i[0].splice(s,1),i[1].includes("scroller")&&(s=i[1].indexOf("start"))&&i[1].splice(s,1),o=0;o').append(this.dom.confirmationButton)).appendTo(this.dom.dtContainer),u(this.s.dt.table().node()).trigger("dtsr-modal-inserted"),o.children("input")),i=((0'),closeButton:u('
×
'),confirmation:u('
'),confirmationButton:u('")),e=(this.dom.confirmation.empty().append(this.dom.confirmationTitleRow).append(o).append(g('
').append(n)).appendTo(this.dom.dtContainer),g(this.s.dt.table().node()).trigger("dtsr-modal-inserted"),o.children("input")),r=((0'+a.s.dt.i18n("stateRestore.removeConfirm",a.c.i18n.removeConfirm).replace(/%s/g,a.s.identifier)+"
"),a.dom.confirmation.trigger("dtsr-rename"),a.dom.background.click(),a.dom.confirmation.remove(),u(document).unbind("keyup",function(e){return a._keyupFunction(e)}),a.dom.confirmationButton.off("click")}e={action:"rename",stateRestore:((e={})[a.s.identifier]=s,e)};if(a.c.ajax)"string"==typeof a.c.ajax&&a.s.dt.settings()[0]._bInitComplete?u.ajax({data:e,success:t,type:"POST",url:a.c.ajax}):"function"==typeof a.c.ajax&&a.c.ajax.call(a.s.dt,e,t);else try{localStorage.removeItem("DataTables_stateRestore_"+a.s.identifier+"_"+location.pathname+(a.s.tableId?"_"+a.s.tableId:"")),t()}catch(e){return a.dom.confirmation.children("."+a.classes.modalError).remove(),a.dom.confirmation.append(a.dom.removeError),!1}return!0};if(null!==s){if(o.includes(s))throw new Error(this.s.dt.i18n("stateRestore.duplicateError",this.c.i18n.duplicateError));if(0===s.length)throw new Error(this.s.dt.i18n("stateRestore.emptyError",this.c.i18n.emptyError));this.dom.confirmation.appendTo(this.dom.dtContainer),u(this.s.dt.table().node()).trigger("dtsr-modal-inserted"),e(),this.dom.confirmation.remove()}else this.dom.renameInput.val(this.s.identifier),this.dom.renameContents.append(this.dom.renameInput),this._newModal(this.dom.renameTitle,this.s.dt.i18n("stateRestore.renameButton",this.c.i18n.renameButton),e,this.dom.renameContents)}},n.prototype.save=function(e,t,s){var o,a=this;if(void 0===s&&(s=!0),this.c.save){if(this.s.dt.state.save(),void 0===e)o=this.s.dt.state();else{if("object"!=typeof e)return;o=e}if(o.stateRestore?(o.stateRestore.isPreDefined=this.s.isPreDefined,o.stateRestore.state=this.s.identifier,o.stateRestore.tableId=this.s.tableId):o.stateRestore={isPreDefined:this.s.isPreDefined,state:this.s.identifier,tableId:this.s.tableId},this.s.savedState=o,this.c.saveState.order||(this.s.savedState.order=void 0),this.c.saveState.search||(this.s.savedState.search=void 0),this.c.saveState.columns&&this.s.savedState.columns)for(var i=0,n=this.s.savedState.columns.length;i/g,">").replace(/"/g,"""):e},n.prototype._deepCompare=function(e,t){if(null!==e||null!==t){if(null===e||null===t)return!1;var s,o,a=[e,t],i=[Object.keys(e).sort(),Object.keys(t).sort()];for(i[0].includes("scroller")&&(s=i[0].indexOf("start"))&&i[0].splice(s,1),i[1].includes("scroller")&&(s=i[1].indexOf("start"))&&i[1].splice(s,1),o=0;o').append(this.dom.confirmationButton)).appendTo(this.dom.dtContainer),u(this.s.dt.table().node()).trigger("dtsr-modal-inserted"),o.children("input")),i=((0'),closeButton:u('
×
'),confirmation:u('
'),confirmationButton:u('")),e=(this.dom.confirmation.empty().append(this.dom.confirmationTitleRow).append(o).append(g('
').append(n)).appendTo(this.dom.dtContainer),g(this.s.dt.table().node()).trigger("dtsr-modal-inserted"),o.children("input")),r=((0'),checkboxInputRow:g('
'),closeButton:g('
x
'),colReorderToggle:g('
'+this.s.dt.i18n("stateRestore.creationModal.colReorder",this.c.i18n.creationModal.colReorder)+"
"),columnsSearchToggle:g('
'+this.s.dt.i18n("stateRestore.creationModal.columns.search",this.c.i18n.creationModal.columns.search)+"
"),columnsVisibleToggle:g('
'+this.s.dt.i18n("stateRestore.creationModal.columns.visible",this.c.i18n.creationModal.columns.visible)+"
"),confirmation:g('
'),confirmationTitleRow:g('
'),createButtonRow:g('
"),creation:g('
'),creationForm:g('
'),creationTitle:g('

'+this.s.dt.i18n("stateRestore.creationModal.title",this.c.i18n.creationModal.title)+"

"),dtContainer:g(this.s.dt.table().container()),duplicateError:g(''+this.s.dt.i18n("stateRestore.duplicateError",this.c.i18n.duplicateError)+""),emptyError:g(''+this.s.dt.i18n("stateRestore.emptyError",this.c.i18n.emptyError)+""),lengthToggle:g('
'+this.s.dt.i18n("stateRestore.creationModal.length",this.c.i18n.creationModal.length)+"
"),nameInputRow:g('
'),orderToggle:g('
'+this.s.dt.i18n("stateRestore.creationModal.order",this.c.i18n.creationModal.order)+"
"),pagingToggle:g('
'+this.s.dt.i18n("stateRestore.creationModal.paging",this.c.i18n.creationModal.paging)+"
"),removeContents:g('
'),removeTitle:g('

'+this.s.dt.i18n("stateRestore.removeTitle",this.c.i18n.removeTitle)+"

"),scrollerToggle:g('
'+this.s.dt.i18n("stateRestore.creationModal.scroller",this.c.i18n.creationModal.scroller)+"
"),searchBuilderToggle:g('
'+this.s.dt.i18n("stateRestore.creationModal.searchBuilder",this.c.i18n.creationModal.searchBuilder)+"
"),searchPanesToggle:g('
'+this.s.dt.i18n("stateRestore.creationModal.searchPanes",this.c.i18n.creationModal.searchPanes)+"
"),searchToggle:g('
'+this.s.dt.i18n("stateRestore.creationModal.search",this.c.i18n.creationModal.search)+"
"),selectToggle:g('
'+this.s.dt.i18n("stateRestore.creationModal.select",this.c.i18n.creationModal.select)+"
")},(e.settings()[0]._stateRestore=this)._searchForStates(),this._addPreDefined(this.c.preDefined),a={action:"load"},"function"==typeof this.c.ajax?s=function(){"function"==typeof o.c.ajax&&o.c.ajax.call(o.s.dt,a,function(e){return o._addPreDefined(e)})}:"string"==typeof this.c.ajax&&(s=function(){g.ajax({data:a,dataType:"json",success:function(e){o._addPreDefined(e)},type:"POST",url:o.c.ajax})}),"function"==typeof s&&(this.s.dt.settings()[0]._bInitComplete?s():this.s.dt.one("preInit.dtsr",function(){s()})),this.s.dt.on("destroy.dtsr",function(){o.destroy()}),this.s.dt.on("draw.dtsr buttons-action.dtsr",function(){return o.findActive()}),this}e=$,m=(u=e).fn.dataTable,e=$,i=(g=e).fn.dataTable,$.fn.dataTable.StateRestore=y,$.fn.DataTable.StateRestore=y,$.fn.dataTable.StateRestoreCollection=s,$.fn.DataTable.StateRestoreCollection=s;var e=DataTable.Api.register;function o(e,t){c(e,new DataTable.StateRestoreCollection(e,t.config))}function c(e,t){var s=e.stateRestore.states(),o=e.button("SaveStateRestore:name"),a=[];if(o[0])for(var i=o.index().split("-"),a=o[0].inst.c.buttons,n=0;n'+e.i18n("stateRestore.emptyStates",t.c.i18n.emptyStates)+"");else for(var c=0,l=s;c'),checkboxInputRow:g('
'),closeButton:g('
x
'),colReorderToggle:g('
'+this.s.dt.i18n("stateRestore.creationModal.colReorder",this.c.i18n.creationModal.colReorder)+"
"),columnsSearchToggle:g('
'+this.s.dt.i18n("stateRestore.creationModal.columns.search",this.c.i18n.creationModal.columns.search)+"
"),columnsVisibleToggle:g('
'+this.s.dt.i18n("stateRestore.creationModal.columns.visible",this.c.i18n.creationModal.columns.visible)+"
"),confirmation:g('
'),confirmationTitleRow:g('
'),createButtonRow:g('
"),creation:g('
'),creationForm:g('
'),creationTitle:g('

'+this.s.dt.i18n("stateRestore.creationModal.title",this.c.i18n.creationModal.title)+"

"),dtContainer:g(this.s.dt.table().container()),duplicateError:g(''+this.s.dt.i18n("stateRestore.duplicateError",this.c.i18n.duplicateError)+""),emptyError:g(''+this.s.dt.i18n("stateRestore.emptyError",this.c.i18n.emptyError)+""),lengthToggle:g('
'+this.s.dt.i18n("stateRestore.creationModal.length",this.c.i18n.creationModal.length)+"
"),nameInputRow:g('
'),orderToggle:g('
'+this.s.dt.i18n("stateRestore.creationModal.order",this.c.i18n.creationModal.order)+"
"),pagingToggle:g('
'+this.s.dt.i18n("stateRestore.creationModal.paging",this.c.i18n.creationModal.paging)+"
"),removeContents:g('
'),removeTitle:g('

'+this.s.dt.i18n("stateRestore.removeTitle",this.c.i18n.removeTitle)+"

"),scrollerToggle:g('
'+this.s.dt.i18n("stateRestore.creationModal.scroller",this.c.i18n.creationModal.scroller)+"
"),searchBuilderToggle:g('
'+this.s.dt.i18n("stateRestore.creationModal.searchBuilder",this.c.i18n.creationModal.searchBuilder)+"
"),searchPanesToggle:g('
'+this.s.dt.i18n("stateRestore.creationModal.searchPanes",this.c.i18n.creationModal.searchPanes)+"
"),searchToggle:g('
'+this.s.dt.i18n("stateRestore.creationModal.search",this.c.i18n.creationModal.search)+"
"),selectToggle:g('
'+this.s.dt.i18n("stateRestore.creationModal.select",this.c.i18n.creationModal.select)+"
")},(e.settings()[0]._stateRestore=this)._searchForStates(),this._addPreDefined(this.c.preDefined),a={action:"load"},"function"==typeof this.c.ajax?s=function(){"function"==typeof o.c.ajax&&o.c.ajax.call(o.s.dt,a,function(e){return o._addPreDefined(e)})}:"string"==typeof this.c.ajax&&(s=function(){g.ajax({data:a,dataType:"json",success:function(e){o._addPreDefined(e)},type:"POST",url:o.c.ajax})}),"function"==typeof s&&(this.s.dt.settings()[0]._bInitComplete?s():this.s.dt.one("preInit.dtsr",function(){s()})),this.s.dt.on("destroy.dtsr",function(){o.destroy()}),this.s.dt.on("draw.dtsr buttons-action.dtsr",function(){return o.findActive()}),this}e=$,m=(u=e).fn.dataTable,e=$,i=(g=e).fn.dataTable,$.fn.dataTable.StateRestore=y,$.fn.DataTable.StateRestore=y,$.fn.dataTable.StateRestoreCollection=s,$.fn.DataTable.StateRestoreCollection=s;var e=DataTable.Api.register;function o(e,t){c(e,new DataTable.StateRestoreCollection(e,t.config))}function c(e,t){var s=e.stateRestore.states(),o=e.button("SaveStateRestore:name"),a=[];if(o[0])for(var i=o.index().split("-"),a=o[0].inst.c.buttons,n=0;n'+e.i18n("stateRestore.emptyStates",t.c.i18n.emptyStates)+"");else for(var c=0,l=s;c