@ntlab/ntjs-assets 2.100.0 → 2.101.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/js/DataTables/DataTables/js/dataTables.js +110 -122
- package/assets/js/DataTables/DataTables/js/dataTables.min.js +2 -2
- package/assets/js/DataTables/Extensions/AutoFill/js/autoFill.bootstrap5.min.js +1 -1
- package/assets/js/DataTables/Extensions/AutoFill/js/autoFill.dataTables.min.js +1 -1
- package/assets/js/DataTables/Extensions/AutoFill/js/dataTables.autoFill.js +6 -4
- package/assets/js/DataTables/Extensions/AutoFill/js/dataTables.autoFill.min.js +2 -2
- package/assets/js/DataTables/Extensions/Buttons/css/buttons.bootstrap5.css +56 -39
- package/assets/js/DataTables/Extensions/Buttons/css/buttons.bootstrap5.min.css +1 -1
- package/assets/js/DataTables/Extensions/Buttons/js/buttons.bootstrap5.js +14 -6
- package/assets/js/DataTables/Extensions/Buttons/js/buttons.bootstrap5.min.js +1 -1
- package/assets/js/DataTables/Extensions/Buttons/js/buttons.html5.js +8 -3
- package/assets/js/DataTables/Extensions/Buttons/js/buttons.html5.min.js +1 -1
- package/assets/js/DataTables/Extensions/Buttons/js/buttons.print.js +0 -16
- package/assets/js/DataTables/Extensions/Buttons/js/buttons.print.min.js +1 -1
- package/assets/js/DataTables/Extensions/Buttons/js/dataTables.buttons.js +15 -8
- package/assets/js/DataTables/Extensions/Buttons/js/dataTables.buttons.min.js +2 -2
- package/assets/js/DataTables/Extensions/DateTime/css/dataTables.dateTime.css +123 -131
- package/assets/js/DataTables/Extensions/DateTime/css/dataTables.dateTime.min.css +1 -1
- package/assets/js/DataTables/Extensions/DateTime/js/dataTables.dateTime.js +45 -16
- package/assets/js/DataTables/Extensions/DateTime/js/dataTables.dateTime.min.js +2 -2
- package/assets/js/DataTables/Extensions/FixedColumns/css/fixedColumns.bootstrap5.css +13 -17
- package/assets/js/DataTables/Extensions/FixedColumns/css/fixedColumns.bootstrap5.min.css +1 -1
- package/assets/js/DataTables/Extensions/FixedColumns/css/fixedColumns.dataTables.css +13 -17
- package/assets/js/DataTables/Extensions/FixedColumns/css/fixedColumns.dataTables.min.css +1 -1
- package/assets/js/DataTables/Extensions/FixedColumns/js/FixedColumns.js +1 -1
- package/assets/js/DataTables/Extensions/FixedColumns/js/dataTables.fixedColumns.js +4 -4
- package/assets/js/DataTables/Extensions/FixedColumns/js/dataTables.fixedColumns.min.js +2 -2
- package/assets/js/DataTables/Extensions/FixedColumns/js/fixedColumns.bootstrap5.min.js +1 -1
- package/assets/js/DataTables/Extensions/FixedColumns/js/fixedColumns.dataTables.min.js +1 -1
- package/assets/js/DataTables/Extensions/FixedColumns/js/index.js +3 -3
- package/assets/js/DataTables/Extensions/RowGroup/js/dataTables.rowGroup.js +30 -12
- package/assets/js/DataTables/Extensions/RowGroup/js/dataTables.rowGroup.min.js +2 -2
- package/assets/js/DataTables/Extensions/SearchBuilder/js/dataTables.searchBuilder.js +16 -9
- package/assets/js/DataTables/Extensions/SearchBuilder/js/dataTables.searchBuilder.min.js +2 -2
- package/assets/js/DataTables/Extensions/StateRestore/js/StateRestore.js +19 -12
- package/assets/js/DataTables/Extensions/StateRestore/js/StateRestoreCollection.js +81 -12
- package/assets/js/DataTables/Extensions/StateRestore/js/dataTables.stateRestore.js +105 -28
- package/assets/js/DataTables/Extensions/StateRestore/js/dataTables.stateRestore.min.js +2 -2
- package/assets/js/DataTables/Extensions/StateRestore/js/index.js +5 -4
- package/assets/js/DataTables/Extensions/StateRestore/js/stateRestore.bootstrap5.min.js +1 -1
- package/assets/js/DataTables/Extensions/StateRestore/js/stateRestore.dataTables.min.js +1 -1
- package/assets/js/cdn.json +8 -8
- package/package.json +1 -1
|
@@ -26,7 +26,7 @@ var StateRestore = /** @class */ (function () {
|
|
|
26
26
|
dt: table,
|
|
27
27
|
identifier: identifier,
|
|
28
28
|
isPreDefined: isPreDefined,
|
|
29
|
-
savedState:
|
|
29
|
+
savedState: state,
|
|
30
30
|
tableId: state && state.stateRestore ? state.stateRestore.tableId : undefined
|
|
31
31
|
};
|
|
32
32
|
this.dom = {
|
|
@@ -476,13 +476,6 @@ var StateRestore = /** @class */ (function () {
|
|
|
476
476
|
}
|
|
477
477
|
}
|
|
478
478
|
}
|
|
479
|
-
// If the state is predefined there is no need to save it over ajax or to local storage
|
|
480
|
-
if (this.s.isPreDefined) {
|
|
481
|
-
if (passedSuccessCallback) {
|
|
482
|
-
passedSuccessCallback.call(this);
|
|
483
|
-
}
|
|
484
|
-
return;
|
|
485
|
-
}
|
|
486
479
|
var ajaxData = {
|
|
487
480
|
action: 'save',
|
|
488
481
|
stateRestore: (_a = {},
|
|
@@ -549,6 +542,12 @@ var StateRestore = /** @class */ (function () {
|
|
|
549
542
|
* @returns boolean indicating if the objects match
|
|
550
543
|
*/
|
|
551
544
|
StateRestore.prototype._deepCompare = function (state1, state2) {
|
|
545
|
+
if (state1 === null && state2 === null) {
|
|
546
|
+
return true;
|
|
547
|
+
}
|
|
548
|
+
else if (state1 === null || state2 === null) {
|
|
549
|
+
return false;
|
|
550
|
+
}
|
|
552
551
|
// Put keys and states into arrays as this makes the later code easier to work
|
|
553
552
|
var states = [state1, state2];
|
|
554
553
|
var keys = [Object.keys(state1).sort(), Object.keys(state2).sort()];
|
|
@@ -625,6 +624,12 @@ var StateRestore = /** @class */ (function () {
|
|
|
625
624
|
}
|
|
626
625
|
// If the type is an object then further deep comparisons are required
|
|
627
626
|
if (typeof states[0][keys[0][i]] === 'object') {
|
|
627
|
+
// Arrays must be the same length to be matched
|
|
628
|
+
if (Array.isArray(states[0][keys[0][i]]) && Array.isArray(states[1][keys[1][i]])) {
|
|
629
|
+
if (states[0][keys[0][i]].length !== states[1][keys[0][i]].length) {
|
|
630
|
+
return false;
|
|
631
|
+
}
|
|
632
|
+
}
|
|
628
633
|
if (!this._deepCompare(states[0][keys[0][i]], states[1][keys[1][i]])) {
|
|
629
634
|
return false;
|
|
630
635
|
}
|
|
@@ -701,7 +706,7 @@ var StateRestore = /** @class */ (function () {
|
|
|
701
706
|
});
|
|
702
707
|
$(document).on('keyup', function (e) { return _this._keyupFunction(e); });
|
|
703
708
|
};
|
|
704
|
-
StateRestore.version = '1.4.
|
|
709
|
+
StateRestore.version = '1.4.2';
|
|
705
710
|
StateRestore.classes = {
|
|
706
711
|
background: 'dtsr-background',
|
|
707
712
|
closeButton: 'dtsr-popover-close',
|
|
@@ -745,13 +750,13 @@ var StateRestore = /** @class */ (function () {
|
|
|
745
750
|
duplicateError: 'A state with this name already exists.',
|
|
746
751
|
emptyError: 'Name cannot be empty.',
|
|
747
752
|
emptyStates: 'No saved states',
|
|
748
|
-
removeConfirm: 'Are you sure you want to remove %s?',
|
|
753
|
+
removeConfirm: 'Are you sure you want to remove "%s"?',
|
|
749
754
|
removeError: 'Failed to remove state.',
|
|
750
755
|
removeJoiner: ' and ',
|
|
751
756
|
removeSubmit: 'Remove',
|
|
752
757
|
removeTitle: 'Remove State',
|
|
753
758
|
renameButton: 'Rename',
|
|
754
|
-
renameLabel: 'New Name for %s:',
|
|
759
|
+
renameLabel: 'New Name for "%s":',
|
|
755
760
|
renameTitle: 'Rename State'
|
|
756
761
|
},
|
|
757
762
|
modalCloseButton: true,
|
|
@@ -792,7 +797,9 @@ var StateRestore = /** @class */ (function () {
|
|
|
792
797
|
searchBuilder: false,
|
|
793
798
|
searchPanes: false,
|
|
794
799
|
select: false
|
|
795
|
-
}
|
|
800
|
+
},
|
|
801
|
+
createButton: null,
|
|
802
|
+
createState: null
|
|
796
803
|
};
|
|
797
804
|
return StateRestore;
|
|
798
805
|
}());
|
|
@@ -180,6 +180,7 @@ var StateRestoreCollection = /** @class */ (function () {
|
|
|
180
180
|
ajaxFunction = function () {
|
|
181
181
|
$.ajax({
|
|
182
182
|
data: ajaxData,
|
|
183
|
+
dataType: 'json',
|
|
183
184
|
success: function (data) {
|
|
184
185
|
_this._addPreDefined(data);
|
|
185
186
|
},
|
|
@@ -426,11 +427,19 @@ var StateRestoreCollection = /** @class */ (function () {
|
|
|
426
427
|
that.s.states.push(this);
|
|
427
428
|
that._collectionRebuild();
|
|
428
429
|
};
|
|
429
|
-
var loadedState = preDefined[state];
|
|
430
|
-
var
|
|
431
|
-
{
|
|
432
|
-
|
|
433
|
-
|
|
430
|
+
var loadedState = this_1._fixTypes(preDefined[state]);
|
|
431
|
+
var stateConfig = $.extend(true, {}, this_1.c, loadedState.c !== undefined ?
|
|
432
|
+
{
|
|
433
|
+
saveState: loadedState.c.saveState,
|
|
434
|
+
remove: loadedState.c.remove,
|
|
435
|
+
rename: loadedState.c.rename,
|
|
436
|
+
save: loadedState.c.save
|
|
437
|
+
} :
|
|
438
|
+
undefined, true);
|
|
439
|
+
if (this_1.c.createState) {
|
|
440
|
+
this_1.c.createState(stateConfig, loadedState);
|
|
441
|
+
}
|
|
442
|
+
var newState = new StateRestore(this_1.s.dt, stateConfig, state, loadedState, true, successCallback);
|
|
434
443
|
$(this_1.s.dt.table().node()).on('dtsr-modal-inserted', function () {
|
|
435
444
|
newState.dom.confirmation.one('dtsr-remove', function () { return _this._removeCallback(newState.s.identifier); });
|
|
436
445
|
newState.dom.confirmation.one('dtsr-rename', function () { return _this._collectionRebuild(); });
|
|
@@ -516,7 +525,7 @@ var StateRestoreCollection = /** @class */ (function () {
|
|
|
516
525
|
if (split.includes('removeState') && (!this.c.remove || !state.c.remove)) {
|
|
517
526
|
split.splice(split.indexOf('removeState'), 1);
|
|
518
527
|
}
|
|
519
|
-
|
|
528
|
+
var buttonConfig = {
|
|
520
529
|
_stateRestore: state,
|
|
521
530
|
attr: {
|
|
522
531
|
title: state.s.identifier
|
|
@@ -527,7 +536,11 @@ var StateRestoreCollection = /** @class */ (function () {
|
|
|
527
536
|
extend: 'stateRestore',
|
|
528
537
|
text: StateRestore.entityEncode(state.s.identifier),
|
|
529
538
|
popoverTitle: StateRestore.entityEncode(state.s.identifier)
|
|
530
|
-
}
|
|
539
|
+
};
|
|
540
|
+
if (this.c.createButton) {
|
|
541
|
+
this.c.createButton(buttonConfig, state.s.savedState);
|
|
542
|
+
}
|
|
543
|
+
stateButtons.push(buttonConfig);
|
|
531
544
|
}
|
|
532
545
|
}
|
|
533
546
|
button.collectionRebuild(stateButtons);
|
|
@@ -689,6 +702,7 @@ var StateRestoreCollection = /** @class */ (function () {
|
|
|
689
702
|
});
|
|
690
703
|
// Append all of the toggles that are to be inserted
|
|
691
704
|
var checkboxesEl = this.dom.checkboxInputRow
|
|
705
|
+
.css('display', togglesToInsert.length ? 'block' : 'none')
|
|
692
706
|
.appendTo(this.dom.creationForm)
|
|
693
707
|
.find('div.dtsr-input')
|
|
694
708
|
.empty();
|
|
@@ -783,6 +797,59 @@ var StateRestoreCollection = /** @class */ (function () {
|
|
|
783
797
|
// Need to save the state before the focus is lost when the modal is interacted with
|
|
784
798
|
this.s.dt.state.save();
|
|
785
799
|
};
|
|
800
|
+
/**
|
|
801
|
+
* Make sure the data for a state contains the expected data types
|
|
802
|
+
*
|
|
803
|
+
* @param state State
|
|
804
|
+
*/
|
|
805
|
+
StateRestoreCollection.prototype._fixTypes = function (state) {
|
|
806
|
+
var i;
|
|
807
|
+
var fixNum = function (d, prop) {
|
|
808
|
+
var val = d[prop];
|
|
809
|
+
if (val !== undefined) {
|
|
810
|
+
d[prop] = typeof val === 'number' ? val : parseInt(val);
|
|
811
|
+
}
|
|
812
|
+
};
|
|
813
|
+
var fixBool = function (d, prop) {
|
|
814
|
+
var val = d[prop];
|
|
815
|
+
if (val !== undefined) {
|
|
816
|
+
d[prop] = typeof val !== 'string'
|
|
817
|
+
? val
|
|
818
|
+
: val === 'true'
|
|
819
|
+
? true
|
|
820
|
+
: false;
|
|
821
|
+
}
|
|
822
|
+
};
|
|
823
|
+
fixNum(state, 'start');
|
|
824
|
+
fixNum(state, 'length');
|
|
825
|
+
fixNum(state, 'time');
|
|
826
|
+
if (state.order) {
|
|
827
|
+
for (i = 0; i < state.order.length; i++) {
|
|
828
|
+
fixNum(state.order[i], 0);
|
|
829
|
+
}
|
|
830
|
+
}
|
|
831
|
+
if (state.search) {
|
|
832
|
+
fixBool(state.search, 'caseInsensitive');
|
|
833
|
+
fixBool(state.search, 'regex');
|
|
834
|
+
fixBool(state.search, 'smart');
|
|
835
|
+
fixBool(state.search, 'visible');
|
|
836
|
+
fixBool(state.search, 'return');
|
|
837
|
+
}
|
|
838
|
+
if (state.columns) {
|
|
839
|
+
for (i = 0; i < state.columns.length; i++) {
|
|
840
|
+
fixBool(state.columns[i], 'caseInsensitive');
|
|
841
|
+
fixBool(state.columns[i], 'regex');
|
|
842
|
+
fixBool(state.columns[i], 'smart');
|
|
843
|
+
fixBool(state.columns[i], 'visible');
|
|
844
|
+
}
|
|
845
|
+
}
|
|
846
|
+
if (state.colReorder) {
|
|
847
|
+
for (i = 0; i < state.colReorder.length; i++) {
|
|
848
|
+
fixNum(state.colReorder, i);
|
|
849
|
+
}
|
|
850
|
+
}
|
|
851
|
+
return state;
|
|
852
|
+
};
|
|
786
853
|
/**
|
|
787
854
|
* This callback is called when a state is removed.
|
|
788
855
|
* This removes the state from storage and also strips it's button from the container
|
|
@@ -875,10 +942,10 @@ var StateRestoreCollection = /** @class */ (function () {
|
|
|
875
942
|
var _this = this;
|
|
876
943
|
var keys = Object.keys(localStorage);
|
|
877
944
|
var _loop_2 = function (key) {
|
|
878
|
-
//
|
|
879
|
-
if (key.
|
|
880
|
-
key.
|
|
881
|
-
'_' + this_2.s.dt.table().node().id
|
|
945
|
+
// Check if the key belongs to this page / table
|
|
946
|
+
if (key.startsWith('DataTables_stateRestore_') &&
|
|
947
|
+
(key.endsWith(location.pathname) ||
|
|
948
|
+
key.endsWith(location.pathname + '_' + this_2.s.dt.table().node().id))) {
|
|
882
949
|
var loadedState_1 = JSON.parse(localStorage.getItem(key));
|
|
883
950
|
if (loadedState_1.stateRestore.isPreDefined ||
|
|
884
951
|
(loadedState_1.stateRestore.tableId &&
|
|
@@ -1022,7 +1089,9 @@ var StateRestoreCollection = /** @class */ (function () {
|
|
|
1022
1089
|
searchBuilder: false,
|
|
1023
1090
|
searchPanes: false,
|
|
1024
1091
|
select: false
|
|
1025
|
-
}
|
|
1092
|
+
},
|
|
1093
|
+
createButton: null,
|
|
1094
|
+
createState: null
|
|
1026
1095
|
};
|
|
1027
1096
|
return StateRestoreCollection;
|
|
1028
1097
|
}());
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! StateRestore 1.4.
|
|
1
|
+
/*! StateRestore 1.4.2
|
|
2
2
|
* © SpryMedia Ltd - datatables.net/license
|
|
3
3
|
*/
|
|
4
4
|
|
|
@@ -79,7 +79,7 @@ var DataTable = $.fn.dataTable;
|
|
|
79
79
|
dt: table,
|
|
80
80
|
identifier: identifier,
|
|
81
81
|
isPreDefined: isPreDefined,
|
|
82
|
-
savedState:
|
|
82
|
+
savedState: state,
|
|
83
83
|
tableId: state && state.stateRestore ? state.stateRestore.tableId : undefined
|
|
84
84
|
};
|
|
85
85
|
this.dom = {
|
|
@@ -529,13 +529,6 @@ var DataTable = $.fn.dataTable;
|
|
|
529
529
|
}
|
|
530
530
|
}
|
|
531
531
|
}
|
|
532
|
-
// If the state is predefined there is no need to save it over ajax or to local storage
|
|
533
|
-
if (this.s.isPreDefined) {
|
|
534
|
-
if (passedSuccessCallback) {
|
|
535
|
-
passedSuccessCallback.call(this);
|
|
536
|
-
}
|
|
537
|
-
return;
|
|
538
|
-
}
|
|
539
532
|
var ajaxData = {
|
|
540
533
|
action: 'save',
|
|
541
534
|
stateRestore: (_a = {},
|
|
@@ -602,6 +595,12 @@ var DataTable = $.fn.dataTable;
|
|
|
602
595
|
* @returns boolean indicating if the objects match
|
|
603
596
|
*/
|
|
604
597
|
StateRestore.prototype._deepCompare = function (state1, state2) {
|
|
598
|
+
if (state1 === null && state2 === null) {
|
|
599
|
+
return true;
|
|
600
|
+
}
|
|
601
|
+
else if (state1 === null || state2 === null) {
|
|
602
|
+
return false;
|
|
603
|
+
}
|
|
605
604
|
// Put keys and states into arrays as this makes the later code easier to work
|
|
606
605
|
var states = [state1, state2];
|
|
607
606
|
var keys = [Object.keys(state1).sort(), Object.keys(state2).sort()];
|
|
@@ -678,6 +677,12 @@ var DataTable = $.fn.dataTable;
|
|
|
678
677
|
}
|
|
679
678
|
// If the type is an object then further deep comparisons are required
|
|
680
679
|
if (typeof states[0][keys[0][i]] === 'object') {
|
|
680
|
+
// Arrays must be the same length to be matched
|
|
681
|
+
if (Array.isArray(states[0][keys[0][i]]) && Array.isArray(states[1][keys[1][i]])) {
|
|
682
|
+
if (states[0][keys[0][i]].length !== states[1][keys[0][i]].length) {
|
|
683
|
+
return false;
|
|
684
|
+
}
|
|
685
|
+
}
|
|
681
686
|
if (!this._deepCompare(states[0][keys[0][i]], states[1][keys[1][i]])) {
|
|
682
687
|
return false;
|
|
683
688
|
}
|
|
@@ -754,7 +759,7 @@ var DataTable = $.fn.dataTable;
|
|
|
754
759
|
});
|
|
755
760
|
$$2(document).on('keyup', function (e) { return _this._keyupFunction(e); });
|
|
756
761
|
};
|
|
757
|
-
StateRestore.version = '1.4.
|
|
762
|
+
StateRestore.version = '1.4.2';
|
|
758
763
|
StateRestore.classes = {
|
|
759
764
|
background: 'dtsr-background',
|
|
760
765
|
closeButton: 'dtsr-popover-close',
|
|
@@ -798,13 +803,13 @@ var DataTable = $.fn.dataTable;
|
|
|
798
803
|
duplicateError: 'A state with this name already exists.',
|
|
799
804
|
emptyError: 'Name cannot be empty.',
|
|
800
805
|
emptyStates: 'No saved states',
|
|
801
|
-
removeConfirm: 'Are you sure you want to remove %s?',
|
|
806
|
+
removeConfirm: 'Are you sure you want to remove "%s"?',
|
|
802
807
|
removeError: 'Failed to remove state.',
|
|
803
808
|
removeJoiner: ' and ',
|
|
804
809
|
removeSubmit: 'Remove',
|
|
805
810
|
removeTitle: 'Remove State',
|
|
806
811
|
renameButton: 'Rename',
|
|
807
|
-
renameLabel: 'New Name for %s:',
|
|
812
|
+
renameLabel: 'New Name for "%s":',
|
|
808
813
|
renameTitle: 'Rename State'
|
|
809
814
|
},
|
|
810
815
|
modalCloseButton: true,
|
|
@@ -845,7 +850,9 @@ var DataTable = $.fn.dataTable;
|
|
|
845
850
|
searchBuilder: false,
|
|
846
851
|
searchPanes: false,
|
|
847
852
|
select: false
|
|
848
|
-
}
|
|
853
|
+
},
|
|
854
|
+
createButton: null,
|
|
855
|
+
createState: null
|
|
849
856
|
};
|
|
850
857
|
return StateRestore;
|
|
851
858
|
}());
|
|
@@ -1031,6 +1038,7 @@ var DataTable = $.fn.dataTable;
|
|
|
1031
1038
|
ajaxFunction = function () {
|
|
1032
1039
|
$$1.ajax({
|
|
1033
1040
|
data: ajaxData,
|
|
1041
|
+
dataType: 'json',
|
|
1034
1042
|
success: function (data) {
|
|
1035
1043
|
_this._addPreDefined(data);
|
|
1036
1044
|
},
|
|
@@ -1277,11 +1285,19 @@ var DataTable = $.fn.dataTable;
|
|
|
1277
1285
|
that.s.states.push(this);
|
|
1278
1286
|
that._collectionRebuild();
|
|
1279
1287
|
};
|
|
1280
|
-
var loadedState = preDefined[state];
|
|
1281
|
-
var
|
|
1282
|
-
{
|
|
1283
|
-
|
|
1284
|
-
|
|
1288
|
+
var loadedState = this_1._fixTypes(preDefined[state]);
|
|
1289
|
+
var stateConfig = $$1.extend(true, {}, this_1.c, loadedState.c !== undefined ?
|
|
1290
|
+
{
|
|
1291
|
+
saveState: loadedState.c.saveState,
|
|
1292
|
+
remove: loadedState.c.remove,
|
|
1293
|
+
rename: loadedState.c.rename,
|
|
1294
|
+
save: loadedState.c.save
|
|
1295
|
+
} :
|
|
1296
|
+
undefined, true);
|
|
1297
|
+
if (this_1.c.createState) {
|
|
1298
|
+
this_1.c.createState(stateConfig, loadedState);
|
|
1299
|
+
}
|
|
1300
|
+
var newState = new StateRestore(this_1.s.dt, stateConfig, state, loadedState, true, successCallback);
|
|
1285
1301
|
$$1(this_1.s.dt.table().node()).on('dtsr-modal-inserted', function () {
|
|
1286
1302
|
newState.dom.confirmation.one('dtsr-remove', function () { return _this._removeCallback(newState.s.identifier); });
|
|
1287
1303
|
newState.dom.confirmation.one('dtsr-rename', function () { return _this._collectionRebuild(); });
|
|
@@ -1367,7 +1383,7 @@ var DataTable = $.fn.dataTable;
|
|
|
1367
1383
|
if (split.includes('removeState') && (!this.c.remove || !state.c.remove)) {
|
|
1368
1384
|
split.splice(split.indexOf('removeState'), 1);
|
|
1369
1385
|
}
|
|
1370
|
-
|
|
1386
|
+
var buttonConfig = {
|
|
1371
1387
|
_stateRestore: state,
|
|
1372
1388
|
attr: {
|
|
1373
1389
|
title: state.s.identifier
|
|
@@ -1378,7 +1394,11 @@ var DataTable = $.fn.dataTable;
|
|
|
1378
1394
|
extend: 'stateRestore',
|
|
1379
1395
|
text: StateRestore.entityEncode(state.s.identifier),
|
|
1380
1396
|
popoverTitle: StateRestore.entityEncode(state.s.identifier)
|
|
1381
|
-
}
|
|
1397
|
+
};
|
|
1398
|
+
if (this.c.createButton) {
|
|
1399
|
+
this.c.createButton(buttonConfig, state.s.savedState);
|
|
1400
|
+
}
|
|
1401
|
+
stateButtons.push(buttonConfig);
|
|
1382
1402
|
}
|
|
1383
1403
|
}
|
|
1384
1404
|
button.collectionRebuild(stateButtons);
|
|
@@ -1540,6 +1560,7 @@ var DataTable = $.fn.dataTable;
|
|
|
1540
1560
|
});
|
|
1541
1561
|
// Append all of the toggles that are to be inserted
|
|
1542
1562
|
var checkboxesEl = this.dom.checkboxInputRow
|
|
1563
|
+
.css('display', togglesToInsert.length ? 'block' : 'none')
|
|
1543
1564
|
.appendTo(this.dom.creationForm)
|
|
1544
1565
|
.find('div.dtsr-input')
|
|
1545
1566
|
.empty();
|
|
@@ -1634,6 +1655,59 @@ var DataTable = $.fn.dataTable;
|
|
|
1634
1655
|
// Need to save the state before the focus is lost when the modal is interacted with
|
|
1635
1656
|
this.s.dt.state.save();
|
|
1636
1657
|
};
|
|
1658
|
+
/**
|
|
1659
|
+
* Make sure the data for a state contains the expected data types
|
|
1660
|
+
*
|
|
1661
|
+
* @param state State
|
|
1662
|
+
*/
|
|
1663
|
+
StateRestoreCollection.prototype._fixTypes = function (state) {
|
|
1664
|
+
var i;
|
|
1665
|
+
var fixNum = function (d, prop) {
|
|
1666
|
+
var val = d[prop];
|
|
1667
|
+
if (val !== undefined) {
|
|
1668
|
+
d[prop] = typeof val === 'number' ? val : parseInt(val);
|
|
1669
|
+
}
|
|
1670
|
+
};
|
|
1671
|
+
var fixBool = function (d, prop) {
|
|
1672
|
+
var val = d[prop];
|
|
1673
|
+
if (val !== undefined) {
|
|
1674
|
+
d[prop] = typeof val !== 'string'
|
|
1675
|
+
? val
|
|
1676
|
+
: val === 'true'
|
|
1677
|
+
? true
|
|
1678
|
+
: false;
|
|
1679
|
+
}
|
|
1680
|
+
};
|
|
1681
|
+
fixNum(state, 'start');
|
|
1682
|
+
fixNum(state, 'length');
|
|
1683
|
+
fixNum(state, 'time');
|
|
1684
|
+
if (state.order) {
|
|
1685
|
+
for (i = 0; i < state.order.length; i++) {
|
|
1686
|
+
fixNum(state.order[i], 0);
|
|
1687
|
+
}
|
|
1688
|
+
}
|
|
1689
|
+
if (state.search) {
|
|
1690
|
+
fixBool(state.search, 'caseInsensitive');
|
|
1691
|
+
fixBool(state.search, 'regex');
|
|
1692
|
+
fixBool(state.search, 'smart');
|
|
1693
|
+
fixBool(state.search, 'visible');
|
|
1694
|
+
fixBool(state.search, 'return');
|
|
1695
|
+
}
|
|
1696
|
+
if (state.columns) {
|
|
1697
|
+
for (i = 0; i < state.columns.length; i++) {
|
|
1698
|
+
fixBool(state.columns[i], 'caseInsensitive');
|
|
1699
|
+
fixBool(state.columns[i], 'regex');
|
|
1700
|
+
fixBool(state.columns[i], 'smart');
|
|
1701
|
+
fixBool(state.columns[i], 'visible');
|
|
1702
|
+
}
|
|
1703
|
+
}
|
|
1704
|
+
if (state.colReorder) {
|
|
1705
|
+
for (i = 0; i < state.colReorder.length; i++) {
|
|
1706
|
+
fixNum(state.colReorder, i);
|
|
1707
|
+
}
|
|
1708
|
+
}
|
|
1709
|
+
return state;
|
|
1710
|
+
};
|
|
1637
1711
|
/**
|
|
1638
1712
|
* This callback is called when a state is removed.
|
|
1639
1713
|
* This removes the state from storage and also strips it's button from the container
|
|
@@ -1726,10 +1800,10 @@ var DataTable = $.fn.dataTable;
|
|
|
1726
1800
|
var _this = this;
|
|
1727
1801
|
var keys = Object.keys(localStorage);
|
|
1728
1802
|
var _loop_2 = function (key) {
|
|
1729
|
-
//
|
|
1730
|
-
if (key.
|
|
1731
|
-
key.
|
|
1732
|
-
'_' + this_2.s.dt.table().node().id
|
|
1803
|
+
// Check if the key belongs to this page / table
|
|
1804
|
+
if (key.startsWith('DataTables_stateRestore_') &&
|
|
1805
|
+
(key.endsWith(location.pathname) ||
|
|
1806
|
+
key.endsWith(location.pathname + '_' + this_2.s.dt.table().node().id))) {
|
|
1733
1807
|
var loadedState_1 = JSON.parse(localStorage.getItem(key));
|
|
1734
1808
|
if (loadedState_1.stateRestore.isPreDefined ||
|
|
1735
1809
|
(loadedState_1.stateRestore.tableId &&
|
|
@@ -1873,12 +1947,14 @@ var DataTable = $.fn.dataTable;
|
|
|
1873
1947
|
searchBuilder: false,
|
|
1874
1948
|
searchPanes: false,
|
|
1875
1949
|
select: false
|
|
1876
|
-
}
|
|
1950
|
+
},
|
|
1951
|
+
createButton: null,
|
|
1952
|
+
createState: null
|
|
1877
1953
|
};
|
|
1878
1954
|
return StateRestoreCollection;
|
|
1879
1955
|
}());
|
|
1880
1956
|
|
|
1881
|
-
/*! StateRestore 1.4.
|
|
1957
|
+
/*! StateRestore 1.4.2
|
|
1882
1958
|
* © SpryMedia Ltd - datatables.net/license
|
|
1883
1959
|
*/
|
|
1884
1960
|
setJQuery$1($);
|
|
@@ -2140,8 +2216,9 @@ var DataTable = $.fn.dataTable;
|
|
|
2140
2216
|
0;
|
|
2141
2217
|
});
|
|
2142
2218
|
var button = dt.button('SaveStateRestore:name');
|
|
2143
|
-
var
|
|
2144
|
-
|
|
2219
|
+
var buttonIndex = parseInt(button.index());
|
|
2220
|
+
var stateButtons = button[0] !== undefined && button[0].inst.c.buttons[buttonIndex].buttons !== undefined ?
|
|
2221
|
+
button[0].inst.c.buttons[buttonIndex].buttons :
|
|
2145
2222
|
[];
|
|
2146
2223
|
// remove any states from the previous rebuild - if they are still there they will be added later
|
|
2147
2224
|
for (var i = 0; i < stateButtons.length; i++) {
|