tabulator-tables 5.5.4 → 5.6.1
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/bower.json +1 -1
- package/dist/css/tabulator.css +72 -2
- package/dist/css/tabulator.css.map +1 -1
- package/dist/css/tabulator.min.css +1 -1
- package/dist/css/tabulator.min.css.map +1 -1
- package/dist/css/tabulator_bootstrap3.css +72 -2
- package/dist/css/tabulator_bootstrap3.css.map +1 -1
- package/dist/css/tabulator_bootstrap3.min.css +1 -1
- package/dist/css/tabulator_bootstrap3.min.css.map +1 -1
- package/dist/css/tabulator_bootstrap4.css +72 -2
- package/dist/css/tabulator_bootstrap4.css.map +1 -1
- package/dist/css/tabulator_bootstrap4.min.css +1 -1
- package/dist/css/tabulator_bootstrap4.min.css.map +1 -1
- package/dist/css/tabulator_bootstrap5.css +72 -2
- package/dist/css/tabulator_bootstrap5.css.map +1 -1
- package/dist/css/tabulator_bootstrap5.min.css +1 -1
- package/dist/css/tabulator_bootstrap5.min.css.map +1 -1
- package/dist/css/tabulator_bulma.css +72 -2
- package/dist/css/tabulator_bulma.css.map +1 -1
- package/dist/css/tabulator_bulma.min.css +1 -1
- package/dist/css/tabulator_bulma.min.css.map +1 -1
- package/dist/css/tabulator_materialize.css +72 -2
- package/dist/css/tabulator_materialize.css.map +1 -1
- package/dist/css/tabulator_materialize.min.css +1 -1
- package/dist/css/tabulator_materialize.min.css.map +1 -1
- package/dist/css/tabulator_midnight.css +72 -2
- package/dist/css/tabulator_midnight.css.map +1 -1
- package/dist/css/tabulator_midnight.min.css +1 -1
- package/dist/css/tabulator_midnight.min.css.map +1 -1
- package/dist/css/tabulator_modern.css +72 -2
- package/dist/css/tabulator_modern.css.map +1 -1
- package/dist/css/tabulator_modern.min.css +1 -1
- package/dist/css/tabulator_modern.min.css.map +1 -1
- package/dist/css/tabulator_semanticui.css +72 -2
- package/dist/css/tabulator_semanticui.css.map +1 -1
- package/dist/css/tabulator_semanticui.min.css +1 -1
- package/dist/css/tabulator_semanticui.min.css.map +1 -1
- package/dist/css/tabulator_simple.css +72 -2
- package/dist/css/tabulator_simple.css.map +1 -1
- package/dist/css/tabulator_simple.min.css +1 -1
- package/dist/css/tabulator_simple.min.css.map +1 -1
- package/dist/css/tabulator_site.css +74 -4
- package/dist/css/tabulator_site.css.map +1 -1
- package/dist/css/tabulator_site.min.css +1 -1
- package/dist/css/tabulator_site.min.css.map +1 -1
- package/dist/js/tabulator.js +1868 -245
- package/dist/js/tabulator.js.map +1 -1
- package/dist/js/tabulator.min.js +2 -2
- package/dist/js/tabulator.min.js.map +1 -1
- package/dist/js/tabulator_esm.js +1948 -323
- package/dist/js/tabulator_esm.js.map +1 -1
- package/dist/js/tabulator_esm.min.js +2 -2
- package/dist/js/tabulator_esm.min.js.map +1 -1
- package/package.json +2 -2
- package/src/js/core/ColumnManager.js +4 -0
- package/src/js/core/CoreFeature.js +2 -2
- package/src/js/core/RowManager.js +12 -6
- package/src/js/core/Tabulator.js +2 -1
- package/src/js/core/TabulatorFull.js +1 -1
- package/src/js/core/column/Column.js +10 -0
- package/src/js/core/modules/optional.js +2 -1
- package/src/js/core/rendering/renderers/BasicVertical.js +4 -2
- package/src/js/core/rendering/renderers/VirtualDomHorizontal.js +1 -1
- package/src/js/core/row/PseudoRow.js +2 -0
- package/src/js/core/tools/Alert.js +4 -0
- package/src/js/core/tools/DeprecationAdvisor.js +5 -1
- package/src/js/core/tools/Helpers.js +1 -1
- package/src/js/core/tools/InteractionMonitor.js +3 -3
- package/src/js/modules/Clipboard/Clipboard.js +5 -3
- package/src/js/modules/Clipboard/defaults/pasteActions.js +49 -6
- package/src/js/modules/Clipboard/defaults/pasteParsers.js +69 -14
- package/src/js/modules/ColumnCalcs/ColumnCalcs.js +7 -1
- package/src/js/modules/Edit/Edit.js +71 -25
- package/src/js/modules/Edit/defaults/editors/datetime.js +1 -1
- package/src/js/modules/Edit/defaults/editors/time.js +3 -1
- package/src/js/modules/Export/Export.js +38 -18
- package/src/js/modules/Format/defaults/formatters/rowSelection.js +2 -2
- package/src/js/modules/Format/defaults/formatters/rownum.js +5 -1
- package/src/js/modules/FrozenColumns/FrozenColumns.js +11 -11
- package/src/js/modules/FrozenRows/FrozenRows.js +6 -1
- package/src/js/modules/History/History.js +2 -2
- package/src/js/modules/History/defaults/redoers.js +4 -0
- package/src/js/modules/History/defaults/undoers.js +4 -0
- package/src/js/modules/Keybindings/defaults/actions.js +38 -1
- package/src/js/modules/Keybindings/defaults/bindings.js +16 -1
- package/src/js/modules/Menu/Menu.js +3 -1
- package/src/js/modules/MoveColumns/MoveColumns.js +5 -0
- package/src/js/modules/Popup/Popup.js +1 -1
- package/src/js/modules/ResizeTable/ResizeTable.js +3 -3
- package/src/js/modules/SelectRange/Range.js +354 -0
- package/src/js/modules/SelectRange/RangeComponent.js +93 -0
- package/src/js/modules/SelectRange/SelectRange.js +870 -0
- package/src/js/modules/SelectRow/SelectRow.js +46 -26
- package/src/js/modules/Sort/Sort.js +111 -105
- package/src/js/modules/Validate/defaults/validators.js +11 -0
- package/src/scss/tabulator.scss +95 -13
- package/src/scss/themes/bulma/tabulator_bulma.scss +7 -0
- package/src/scss/themes/materialize/tabulator_materialize.scss +7 -1
- package/src/scss/themes/tabulator_midnight.scss +13 -0
- package/src/scss/themes/tabulator_modern.scss +9 -0
- package/src/scss/themes/tabulator_site.scss +13 -2
|
@@ -11,11 +11,11 @@ class SelectRow extends Module{
|
|
|
11
11
|
this.selectedRows = []; //hold selected rows
|
|
12
12
|
this.headerCheckboxElement = null; // hold header select element
|
|
13
13
|
|
|
14
|
-
this.registerTableOption("
|
|
15
|
-
this.registerTableOption("
|
|
16
|
-
this.registerTableOption("
|
|
17
|
-
this.registerTableOption("
|
|
18
|
-
this.registerTableOption("
|
|
14
|
+
this.registerTableOption("selectableRows", "highlight"); //highlight rows on hover
|
|
15
|
+
this.registerTableOption("selectableRowsRangeMode", "drag"); //highlight rows on hover
|
|
16
|
+
this.registerTableOption("selectableRowsRollingSelection", true); //roll selection once maximum number of selectable rows is reached
|
|
17
|
+
this.registerTableOption("selectableRowsPersistence", true); // maintain selection when table view is updated
|
|
18
|
+
this.registerTableOption("selectableRowsCheck", function(data, row){return true;}); //check whether row is selectable
|
|
19
19
|
|
|
20
20
|
this.registerTableFunction("selectRow", this.selectRows.bind(this));
|
|
21
21
|
this.registerTableFunction("deselectRow", this.deselectRows.bind(this));
|
|
@@ -31,17 +31,32 @@ class SelectRow extends Module{
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
initialize(){
|
|
34
|
-
|
|
34
|
+
|
|
35
|
+
this.deprecatedOptionsCheck();
|
|
36
|
+
|
|
37
|
+
if(this.table.options.selectableRows === "highlight" && this.table.options.selectableRange){
|
|
38
|
+
this.table.options.selectableRows = false;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
if(this.table.options.selectableRows !== false){
|
|
35
42
|
this.subscribe("row-init", this.initializeRow.bind(this));
|
|
36
43
|
this.subscribe("row-deleting", this.rowDeleted.bind(this));
|
|
37
44
|
this.subscribe("rows-wipe", this.clearSelectionData.bind(this));
|
|
38
45
|
this.subscribe("rows-retrieve", this.rowRetrieve.bind(this));
|
|
39
46
|
|
|
40
|
-
if(this.table.options.
|
|
47
|
+
if(this.table.options.selectableRows && !this.table.options.selectableRowsPersistence){
|
|
41
48
|
this.subscribe("data-refreshing", this.deselectRows.bind(this));
|
|
42
49
|
}
|
|
43
50
|
}
|
|
44
51
|
}
|
|
52
|
+
|
|
53
|
+
deprecatedOptionsCheck(){
|
|
54
|
+
this.deprecationCheck("selectable", "selectableRows", true);
|
|
55
|
+
this.deprecationCheck("selectableRollingSelection", "selectableRowsRollingSelection", true);
|
|
56
|
+
this.deprecationCheck("selectableRangeMode", "selectableRowsRangeMode", true);
|
|
57
|
+
this.deprecationCheck("selectablePersistence", "selectableRowsPersistence", true);
|
|
58
|
+
this.deprecationCheck("selectableCheck", "selectableRowsCheck", true);
|
|
59
|
+
}
|
|
45
60
|
|
|
46
61
|
rowRetrieve(type, prevValue){
|
|
47
62
|
return type === "selected" ? this.selectedRows : prevValue;
|
|
@@ -66,6 +81,7 @@ class SelectRow extends Module{
|
|
|
66
81
|
|
|
67
82
|
initializeRow(row){
|
|
68
83
|
var self = this,
|
|
84
|
+
selectable = self.checkRowSelectability(row),
|
|
69
85
|
element = row.getElement();
|
|
70
86
|
|
|
71
87
|
// trigger end of row selection
|
|
@@ -79,14 +95,14 @@ class SelectRow extends Module{
|
|
|
79
95
|
};
|
|
80
96
|
|
|
81
97
|
row.modules.select = {selected:false};
|
|
98
|
+
|
|
99
|
+
element.classList.toggle("tabulator-selectable", selectable);
|
|
100
|
+
element.classList.toggle("tabulator-unselectable", !selectable);
|
|
82
101
|
|
|
83
102
|
//set row selection class
|
|
84
|
-
if(self.checkRowSelectability(row)){
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
if(self.table.options.selectable && self.table.options.selectable != "highlight"){
|
|
89
|
-
if(self.table.options.selectableRangeMode === "click"){
|
|
103
|
+
if(self.checkRowSelectability(row)){
|
|
104
|
+
if(self.table.options.selectableRows && self.table.options.selectableRows != "highlight"){
|
|
105
|
+
if(self.table.options.selectableRowsRangeMode === "click"){
|
|
90
106
|
element.addEventListener("click", this.handleComplexRowClick.bind(this, row));
|
|
91
107
|
}else{
|
|
92
108
|
element.addEventListener("click", function(e){
|
|
@@ -135,10 +151,6 @@ class SelectRow extends Module{
|
|
|
135
151
|
});
|
|
136
152
|
}
|
|
137
153
|
}
|
|
138
|
-
|
|
139
|
-
}else{
|
|
140
|
-
element.classList.add("tabulator-unselectable");
|
|
141
|
-
element.classList.remove("tabulator-selectable");
|
|
142
154
|
}
|
|
143
155
|
}
|
|
144
156
|
|
|
@@ -160,8 +172,8 @@ class SelectRow extends Module{
|
|
|
160
172
|
toggledRows.forEach((toggledRow)=>{
|
|
161
173
|
if(toggledRow !== this.lastClickedRow){
|
|
162
174
|
|
|
163
|
-
if(this.table.options.
|
|
164
|
-
if(this.selectedRows.length < this.table.options.
|
|
175
|
+
if(this.table.options.selectableRows !== true && !this.isRowSelected(row)){
|
|
176
|
+
if(this.selectedRows.length < this.table.options.selectableRows){
|
|
165
177
|
this.toggleRow(toggledRow);
|
|
166
178
|
}
|
|
167
179
|
}else{
|
|
@@ -173,9 +185,9 @@ class SelectRow extends Module{
|
|
|
173
185
|
}else{
|
|
174
186
|
this.deselectRows(undefined, true);
|
|
175
187
|
|
|
176
|
-
if(this.table.options.
|
|
177
|
-
if(toggledRows.length > this.table.options.
|
|
178
|
-
toggledRows = toggledRows.slice(0, this.table.options.
|
|
188
|
+
if(this.table.options.selectableRows !== true){
|
|
189
|
+
if(toggledRows.length > this.table.options.selectableRows){
|
|
190
|
+
toggledRows = toggledRows.slice(0, this.table.options.selectableRows);
|
|
179
191
|
}
|
|
180
192
|
}
|
|
181
193
|
|
|
@@ -195,7 +207,7 @@ class SelectRow extends Module{
|
|
|
195
207
|
|
|
196
208
|
checkRowSelectability(row){
|
|
197
209
|
if(row && row.type === "row"){
|
|
198
|
-
return this.table.options.
|
|
210
|
+
return this.table.options.selectableRowsCheck.call(this.table, row.getComponent());
|
|
199
211
|
}
|
|
200
212
|
|
|
201
213
|
return false;
|
|
@@ -222,6 +234,10 @@ class SelectRow extends Module{
|
|
|
222
234
|
rowMatch = this.table.rowManager.rows;
|
|
223
235
|
break;
|
|
224
236
|
|
|
237
|
+
case "number":
|
|
238
|
+
rowMatch = this.table.rowManager.findRow(rows);
|
|
239
|
+
break;
|
|
240
|
+
|
|
225
241
|
case "string":
|
|
226
242
|
rowMatch = this.table.rowManager.findRow(rows);
|
|
227
243
|
|
|
@@ -257,9 +273,9 @@ class SelectRow extends Module{
|
|
|
257
273
|
//select an individual row
|
|
258
274
|
_selectRow(rowInfo, silent, force){
|
|
259
275
|
//handle max row count
|
|
260
|
-
if(!isNaN(this.table.options.
|
|
261
|
-
if(this.selectedRows.length >= this.table.options.
|
|
262
|
-
if(this.table.options.
|
|
276
|
+
if(!isNaN(this.table.options.selectableRows) && this.table.options.selectableRows !== true && !force){
|
|
277
|
+
if(this.selectedRows.length >= this.table.options.selectableRows){
|
|
278
|
+
if(this.table.options.selectableRowsRollingSelection){
|
|
263
279
|
this._deselectRow(this.selectedRows[0]);
|
|
264
280
|
}else{
|
|
265
281
|
return false;
|
|
@@ -313,6 +329,10 @@ class SelectRow extends Module{
|
|
|
313
329
|
case "undefined":
|
|
314
330
|
rowMatch = Object.assign([], this.selectedRows);
|
|
315
331
|
break;
|
|
332
|
+
|
|
333
|
+
case "number":
|
|
334
|
+
rowMatch = this.table.rowManager.findRow(rows);
|
|
335
|
+
break;
|
|
316
336
|
|
|
317
337
|
case "string":
|
|
318
338
|
rowMatch = this.table.rowManager.findRow(rows);
|