tabulator-tables 5.4.4 → 5.5.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/build/Bundler.js +7 -3
- package/dist/css/tabulator.css +85 -48
- 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 +94 -53
- 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 +111 -68
- 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 +115 -70
- 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 +100 -57
- 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 +109 -69
- 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 +95 -54
- 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 +101 -57
- 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 +138 -77
- 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 +85 -48
- 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 +93 -52
- 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/jquery_wrapper.js +10 -2
- package/dist/js/tabulator.js +507 -237
- 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 +507 -237
- 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 +3 -2
- package/src/js/builds/jquery_wrapper.js +10 -2
- package/src/js/core/ColumnManager.js +15 -0
- package/src/js/core/RowManager.js +59 -41
- package/src/js/core/cell/CellComponent.js +5 -3
- package/src/js/core/column/ColumnComponent.js +2 -2
- package/src/js/core/rendering/renderers/BasicHorizontal.js +12 -5
- package/src/js/core/rendering/renderers/BasicVertical.js +49 -28
- package/src/js/core/rendering/renderers/VirtualDomHorizontal.js +6 -1
- package/src/js/core/rendering/renderers/VirtualDomVertical.js +87 -30
- package/src/js/core/row/Row.js +9 -3
- package/src/js/core/row/RowComponent.js +2 -2
- package/src/js/core/tools/DataLoader.js +44 -36
- package/src/js/modules/ColumnCalcs/defaults/calculations.js +7 -0
- package/src/js/modules/DataTree/DataTree.js +5 -2
- package/src/js/modules/Download/defaults/downloaders/xlsx.js +5 -2
- package/src/js/modules/Edit/Edit.js +2 -3
- package/src/js/modules/Edit/List.js +14 -3
- package/src/js/modules/Edit/defaults/editors/date.js +1 -1
- package/src/js/modules/Edit/defaults/editors/datetime.js +1 -1
- package/src/js/modules/Edit/defaults/editors/input.js +1 -1
- package/src/js/modules/Edit/defaults/editors/number.js +1 -1
- package/src/js/modules/Edit/defaults/editors/range.js +1 -1
- package/src/js/modules/Edit/defaults/editors/textarea.js +1 -1
- package/src/js/modules/Edit/defaults/editors/tickCross.js +1 -1
- package/src/js/modules/Edit/defaults/editors/time.js +1 -1
- package/src/js/modules/Export/Export.js +3 -0
- package/src/js/modules/Filter/Filter.js +11 -0
- package/src/js/modules/Format/Format.js +3 -0
- package/src/js/modules/Format/defaults/formatters/money.js +9 -2
- package/src/js/modules/FrozenColumns/FrozenColumns.js +1 -1
- package/src/js/modules/GroupRows/Group.js +27 -10
- package/src/js/modules/GroupRows/GroupComponent.js +4 -0
- package/src/js/modules/History/defaults/redoers.js +4 -2
- package/src/js/modules/History/defaults/undoers.js +6 -2
- package/src/js/modules/Interaction/Interaction.js +12 -0
- package/src/js/modules/Persistence/Persistence.js +15 -1
- package/src/js/modules/ResponsiveLayout/ResponsiveLayout.js +3 -0
- package/src/js/modules/SelectRow/SelectRow.js +82 -54
- package/src/scss/tabulator.scss +87 -50
- package/src/scss/themes/bootstrap/tabulator_bootstrap3.scss +9 -5
- package/src/scss/themes/bootstrap/tabulator_bootstrap4.scss +27 -19
- package/src/scss/themes/bootstrap/tabulator_bootstrap5.scss +29 -19
- package/src/scss/themes/bulma/tabulator_bulma.scss +15 -9
- package/src/scss/themes/materialize/tabulator_materialize.scss +15 -11
- package/src/scss/themes/materialize/variables.scss +1 -1
- package/src/scss/themes/semanticui/tabulator_semanticui.scss +53 -28
- package/src/scss/themes/semanticui/variables_table.scss +1 -1
- package/src/scss/themes/tabulator_midnight.scss +10 -6
- package/src/scss/themes/tabulator_modern.scss +16 -8
- package/src/scss/themes/tabulator_site.scss +8 -4
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export default function(cell, formatterParams, onRendered){
|
|
2
2
|
var floatVal = parseFloat(cell.getValue()),
|
|
3
3
|
sign = "",
|
|
4
|
-
number, integer, decimal, rgx;
|
|
4
|
+
number, integer, decimal, rgx, value;
|
|
5
5
|
|
|
6
6
|
var decimalSym = formatterParams.decimal || ".";
|
|
7
7
|
var thousandSym = formatterParams.thousand || ",";
|
|
@@ -33,5 +33,12 @@ export default function(cell, formatterParams, onRendered){
|
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
value = integer + decimal;
|
|
37
|
+
|
|
38
|
+
if(sign === true){
|
|
39
|
+
value = "(" + value + ")";
|
|
40
|
+
return after ? value + symbol : symbol + value;
|
|
41
|
+
}else{
|
|
42
|
+
return after ? sign + value + symbol : sign + symbol + value;
|
|
43
|
+
}
|
|
37
44
|
}
|
|
@@ -71,7 +71,7 @@ class Group{
|
|
|
71
71
|
this.arrowElement = document.createElement("div");
|
|
72
72
|
this.arrowElement.classList.add("tabulator-group-toggle");
|
|
73
73
|
this.arrowElement.appendChild(arrow);
|
|
74
|
-
|
|
74
|
+
|
|
75
75
|
//setup movable rows
|
|
76
76
|
if(this.groupManager.table.options.movableRows !== false && this.groupManager.table.modExists("moveRow")){
|
|
77
77
|
this.groupManager.table.modules.moveRow.initializeGroupHeader(this);
|
|
@@ -94,9 +94,15 @@ class Group{
|
|
|
94
94
|
toggleElement = this.groupManager.table.options.groupToggleElement == "arrow" ? this.arrowElement : this.element;
|
|
95
95
|
|
|
96
96
|
toggleElement.addEventListener("click", (e) => {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
97
|
+
if(this.groupManager.table.options.groupToggleElement === "arrow"){
|
|
98
|
+
e.stopPropagation();
|
|
99
|
+
e.stopImmediatePropagation();
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
//allow click event to propagate before toggling visibility
|
|
103
|
+
setTimeout(() => {
|
|
104
|
+
this.toggleVisibility();
|
|
105
|
+
});
|
|
100
106
|
});
|
|
101
107
|
}
|
|
102
108
|
}
|
|
@@ -217,7 +223,7 @@ class Group{
|
|
|
217
223
|
if(el.parentNode){
|
|
218
224
|
el.parentNode.removeChild(el);
|
|
219
225
|
}
|
|
220
|
-
|
|
226
|
+
|
|
221
227
|
if(!this.groupManager.blockRedraw){
|
|
222
228
|
this.generateGroupHeaderContents();
|
|
223
229
|
|
|
@@ -342,6 +348,7 @@ class Group{
|
|
|
342
348
|
}
|
|
343
349
|
return count;
|
|
344
350
|
}
|
|
351
|
+
|
|
345
352
|
|
|
346
353
|
toggleVisibility(){
|
|
347
354
|
if(this.visible){
|
|
@@ -466,12 +473,18 @@ class Group{
|
|
|
466
473
|
return output;
|
|
467
474
|
}
|
|
468
475
|
|
|
469
|
-
getRows(component){
|
|
476
|
+
getRows(component, includeChildren){
|
|
470
477
|
var output = [];
|
|
471
478
|
|
|
472
|
-
this.
|
|
473
|
-
|
|
474
|
-
|
|
479
|
+
if(includeChildren && this.groupList.length){
|
|
480
|
+
this.groupList.forEach((group) => {
|
|
481
|
+
output = output.concat(group.getRows(component, includeChildren));
|
|
482
|
+
});
|
|
483
|
+
}else{
|
|
484
|
+
this.rows.forEach(function(row){
|
|
485
|
+
output.push(component ? row.getComponent() : row);
|
|
486
|
+
});
|
|
487
|
+
}
|
|
475
488
|
|
|
476
489
|
return output;
|
|
477
490
|
}
|
|
@@ -479,7 +492,9 @@ class Group{
|
|
|
479
492
|
generateGroupHeaderContents(){
|
|
480
493
|
var data = [];
|
|
481
494
|
|
|
482
|
-
this.
|
|
495
|
+
var rows = this.getRows(false, true);
|
|
496
|
+
|
|
497
|
+
rows.forEach(function(row){
|
|
483
498
|
data.push(row.getData());
|
|
484
499
|
});
|
|
485
500
|
|
|
@@ -584,6 +599,8 @@ class Group{
|
|
|
584
599
|
clearCellHeight(){}
|
|
585
600
|
|
|
586
601
|
deinitializeHeight(){}
|
|
602
|
+
|
|
603
|
+
rendered(){}
|
|
587
604
|
|
|
588
605
|
//////////////// Object Generation /////////////////
|
|
589
606
|
getComponent(){
|
|
@@ -19,7 +19,9 @@ export default {
|
|
|
19
19
|
},
|
|
20
20
|
|
|
21
21
|
rowMove: function(action){
|
|
22
|
-
this.table.rowManager.moveRowActual(action.component, this.table.rowManager.
|
|
23
|
-
|
|
22
|
+
this.table.rowManager.moveRowActual(action.component, this.table.rowManager.getRowFromPosition(action.data.posTo), action.data.after);
|
|
23
|
+
|
|
24
|
+
this.table.rowManager.regenerateRowPositions();
|
|
25
|
+
this.table.rowManager.reRenderInPosition();
|
|
24
26
|
},
|
|
25
27
|
};
|
|
@@ -19,7 +19,11 @@ export default {
|
|
|
19
19
|
},
|
|
20
20
|
|
|
21
21
|
rowMove: function(action){
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
var after = (action.data.posFrom - action.data.posTo) > 0;
|
|
23
|
+
|
|
24
|
+
this.table.rowManager.moveRowActual(action.component, this.table.rowManager.getRowFromPosition(action.data.posFrom), after);
|
|
25
|
+
|
|
26
|
+
this.table.rowManager.regenerateRowPositions();
|
|
27
|
+
this.table.rowManager.reRenderInPosition();
|
|
24
28
|
},
|
|
25
29
|
};
|
|
@@ -134,8 +134,20 @@ class Interaction extends Module{
|
|
|
134
134
|
|
|
135
135
|
this.subscribe("column-init", this.initializeColumn.bind(this));
|
|
136
136
|
this.subscribe("cell-dblclick", this.cellContentsSelectionFixer.bind(this));
|
|
137
|
+
this.subscribe("scroll-horizontal", this.clearTouchWatchers.bind(this));
|
|
138
|
+
this.subscribe("scroll-vertical", this.clearTouchWatchers.bind(this));
|
|
137
139
|
}
|
|
138
140
|
|
|
141
|
+
clearTouchWatchers(){
|
|
142
|
+
var types = Object.values(this.touchWatchers);
|
|
143
|
+
|
|
144
|
+
types.forEach((type) => {
|
|
145
|
+
for(let key in type){
|
|
146
|
+
type[key] = null;
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
|
|
139
151
|
cellContentsSelectionFixer(e, cell){
|
|
140
152
|
var range;
|
|
141
153
|
|
|
@@ -88,6 +88,7 @@ class Persistence extends Module{
|
|
|
88
88
|
this.config = {
|
|
89
89
|
sort:this.table.options.persistence === true || this.table.options.persistence.sort,
|
|
90
90
|
filter:this.table.options.persistence === true || this.table.options.persistence.filter,
|
|
91
|
+
headerFilter:this.table.options.persistence === true || this.table.options.persistence.headerFilter,
|
|
91
92
|
group:this.table.options.persistence === true || this.table.options.persistence.group,
|
|
92
93
|
page:this.table.options.persistence === true || this.table.options.persistence.page,
|
|
93
94
|
columns:this.table.options.persistence === true ? ["title", "width", "visible"] : this.table.options.persistence.columns,
|
|
@@ -138,6 +139,7 @@ class Persistence extends Module{
|
|
|
138
139
|
this.subscribe("table-redraw", this.tableRedraw.bind(this));
|
|
139
140
|
|
|
140
141
|
this.subscribe("filter-changed", this.eventSave.bind(this, "filter"));
|
|
142
|
+
this.subscribe("filter-changed", this.eventSave.bind(this, "headerFilter"));
|
|
141
143
|
this.subscribe("sort-changed", this.eventSave.bind(this, "sort"));
|
|
142
144
|
this.subscribe("group-changed", this.eventSave.bind(this, "group"));
|
|
143
145
|
this.subscribe("page-changed", this.eventSave.bind(this, "page"));
|
|
@@ -157,7 +159,7 @@ class Persistence extends Module{
|
|
|
157
159
|
}
|
|
158
160
|
|
|
159
161
|
tableBuilt(){
|
|
160
|
-
var sorters, filters;
|
|
162
|
+
var sorters, filters, headerFilters;
|
|
161
163
|
|
|
162
164
|
if(this.config.sort){
|
|
163
165
|
sorters = this.load("sort");
|
|
@@ -174,6 +176,14 @@ class Persistence extends Module{
|
|
|
174
176
|
this.table.options.initialFilter = filters;
|
|
175
177
|
}
|
|
176
178
|
}
|
|
179
|
+
if(this.config.headerFilter){
|
|
180
|
+
headerFilters = this.load("headerFilter");
|
|
181
|
+
|
|
182
|
+
if(!headerFilters === false){
|
|
183
|
+
this.table.options.initialHeaderFilter = headerFilters;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
177
187
|
}
|
|
178
188
|
|
|
179
189
|
tableRedraw(force){
|
|
@@ -334,6 +344,10 @@ class Persistence extends Module{
|
|
|
334
344
|
data = this.table.modules.filter.getFilters();
|
|
335
345
|
break;
|
|
336
346
|
|
|
347
|
+
case "headerFilter":
|
|
348
|
+
data = this.table.modules.filter.getHeaderFilters();
|
|
349
|
+
break;
|
|
350
|
+
|
|
337
351
|
case "sort":
|
|
338
352
|
data = this.validateSorters(this.table.modules.sort.getSort());
|
|
339
353
|
break;
|
|
@@ -194,7 +194,7 @@ class SelectRow extends Module{
|
|
|
194
194
|
}
|
|
195
195
|
|
|
196
196
|
checkRowSelectability(row){
|
|
197
|
-
if(row.type === "row"){
|
|
197
|
+
if(row && row.type === "row"){
|
|
198
198
|
return this.table.options.selectableCheck.call(this.table, row.getComponent());
|
|
199
199
|
}
|
|
200
200
|
|
|
@@ -214,48 +214,44 @@ class SelectRow extends Module{
|
|
|
214
214
|
|
|
215
215
|
//select a number of rows
|
|
216
216
|
selectRows(rows){
|
|
217
|
-
var
|
|
217
|
+
var changes = [],
|
|
218
|
+
rowMatch, change;
|
|
218
219
|
|
|
219
220
|
switch(typeof rows){
|
|
220
221
|
case "undefined":
|
|
221
|
-
this.table.rowManager.rows
|
|
222
|
-
this._selectRow(row, true, true);
|
|
223
|
-
});
|
|
224
|
-
|
|
225
|
-
this._rowSelectionChanged();
|
|
222
|
+
rowMatch = this.table.rowManager.rows;
|
|
226
223
|
break;
|
|
227
224
|
|
|
228
225
|
case "string":
|
|
229
226
|
rowMatch = this.table.rowManager.findRow(rows);
|
|
230
227
|
|
|
231
|
-
if(rowMatch){
|
|
232
|
-
this._selectRow(rowMatch, true, true);
|
|
233
|
-
this._rowSelectionChanged();
|
|
234
|
-
}else{
|
|
228
|
+
if(!rowMatch){
|
|
235
229
|
rowMatch = this.table.rowManager.getRows(rows);
|
|
236
|
-
|
|
237
|
-
rowMatch.forEach((row) => {
|
|
238
|
-
this._selectRow(row, true, true);
|
|
239
|
-
});
|
|
240
|
-
|
|
241
|
-
if(rowMatch.length){
|
|
242
|
-
this._rowSelectionChanged();
|
|
243
|
-
}
|
|
244
230
|
}
|
|
245
231
|
break;
|
|
246
232
|
|
|
247
233
|
default:
|
|
248
|
-
|
|
249
|
-
rows.forEach((row) => {
|
|
250
|
-
this._selectRow(row, true, true);
|
|
251
|
-
});
|
|
252
|
-
|
|
253
|
-
this._rowSelectionChanged();
|
|
254
|
-
}else{
|
|
255
|
-
this._selectRow(rows, false, true);
|
|
256
|
-
}
|
|
234
|
+
rowMatch = rows;
|
|
257
235
|
break;
|
|
258
236
|
}
|
|
237
|
+
|
|
238
|
+
if(Array.isArray(rowMatch)){
|
|
239
|
+
if(rowMatch.length){
|
|
240
|
+
rowMatch.forEach((row) => {
|
|
241
|
+
change = this._selectRow(row, true, true);
|
|
242
|
+
|
|
243
|
+
if(change){
|
|
244
|
+
changes.push(change);
|
|
245
|
+
}
|
|
246
|
+
});
|
|
247
|
+
|
|
248
|
+
this._rowSelectionChanged(false, changes);
|
|
249
|
+
}
|
|
250
|
+
}else{
|
|
251
|
+
if(rowMatch){
|
|
252
|
+
this._selectRow(rowMatch, false, true);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
259
255
|
}
|
|
260
256
|
|
|
261
257
|
//select an individual row
|
|
@@ -293,7 +289,9 @@ class SelectRow extends Module{
|
|
|
293
289
|
|
|
294
290
|
this.dispatchExternal("rowSelected", row.getComponent());
|
|
295
291
|
|
|
296
|
-
this._rowSelectionChanged(silent);
|
|
292
|
+
this._rowSelectionChanged(silent, row);
|
|
293
|
+
|
|
294
|
+
return row;
|
|
297
295
|
}
|
|
298
296
|
}else{
|
|
299
297
|
if(!silent){
|
|
@@ -308,39 +306,51 @@ class SelectRow extends Module{
|
|
|
308
306
|
|
|
309
307
|
//deselect a number of rows
|
|
310
308
|
deselectRows(rows, silent){
|
|
311
|
-
var
|
|
312
|
-
|
|
309
|
+
var changes = [],
|
|
310
|
+
rowMatch, change;
|
|
313
311
|
|
|
314
|
-
|
|
312
|
+
switch(typeof rows){
|
|
313
|
+
case "undefined":
|
|
314
|
+
rowMatch = Object.assign([], this.selectedRows);
|
|
315
|
+
break;
|
|
315
316
|
|
|
316
|
-
|
|
317
|
+
case "string":
|
|
318
|
+
rowMatch = this.table.rowManager.findRow(rows);
|
|
317
319
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
320
|
+
if(!rowMatch){
|
|
321
|
+
rowMatch = this.table.rowManager.getRows(rows);
|
|
322
|
+
}
|
|
323
|
+
break;
|
|
321
324
|
|
|
322
|
-
|
|
323
|
-
|
|
325
|
+
default:
|
|
326
|
+
rowMatch = rows;
|
|
327
|
+
break;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
if(Array.isArray(rowMatch)){
|
|
331
|
+
if(rowMatch.length){
|
|
332
|
+
rowMatch.forEach((row) => {
|
|
333
|
+
change = this._deselectRow(row, true, true);
|
|
334
|
+
|
|
335
|
+
if(change){
|
|
336
|
+
changes.push(change);
|
|
337
|
+
}
|
|
338
|
+
});
|
|
339
|
+
|
|
340
|
+
this._rowSelectionChanged(silent, [], changes);
|
|
324
341
|
}
|
|
325
|
-
|
|
326
342
|
}else{
|
|
327
|
-
if(
|
|
328
|
-
|
|
329
|
-
self._deselectRow(row, true);
|
|
330
|
-
});
|
|
331
|
-
|
|
332
|
-
self._rowSelectionChanged(silent);
|
|
333
|
-
}else{
|
|
334
|
-
self._deselectRow(rows, silent);
|
|
343
|
+
if(rowMatch){
|
|
344
|
+
this._deselectRow(rowMatch, silent, true);
|
|
335
345
|
}
|
|
336
|
-
}
|
|
346
|
+
}
|
|
337
347
|
}
|
|
338
348
|
|
|
339
349
|
//deselect an individual row
|
|
340
350
|
_deselectRow(rowInfo, silent){
|
|
341
351
|
var self = this,
|
|
342
352
|
row = self.table.rowManager.findRow(rowInfo),
|
|
343
|
-
index;
|
|
353
|
+
index, element;
|
|
344
354
|
|
|
345
355
|
if(row){
|
|
346
356
|
index = self.selectedRows.findIndex(function(selectedRow){
|
|
@@ -348,8 +358,13 @@ class SelectRow extends Module{
|
|
|
348
358
|
});
|
|
349
359
|
|
|
350
360
|
if(index > -1){
|
|
361
|
+
|
|
362
|
+
element = row.getElement();
|
|
363
|
+
|
|
364
|
+
if(element){
|
|
365
|
+
element.classList.remove("tabulator-selected");
|
|
366
|
+
}
|
|
351
367
|
|
|
352
|
-
row.getElement().classList.remove("tabulator-selected");
|
|
353
368
|
if(!row.modules.select){
|
|
354
369
|
row.modules.select = {};
|
|
355
370
|
}
|
|
@@ -366,7 +381,9 @@ class SelectRow extends Module{
|
|
|
366
381
|
|
|
367
382
|
this.dispatchExternal("rowDeselected", row.getComponent());
|
|
368
383
|
|
|
369
|
-
self._rowSelectionChanged(silent);
|
|
384
|
+
self._rowSelectionChanged(silent, undefined, row);
|
|
385
|
+
|
|
386
|
+
return row;
|
|
370
387
|
}
|
|
371
388
|
}else{
|
|
372
389
|
if(!silent){
|
|
@@ -386,7 +403,6 @@ class SelectRow extends Module{
|
|
|
386
403
|
}
|
|
387
404
|
|
|
388
405
|
getSelectedRows(){
|
|
389
|
-
|
|
390
406
|
var rows = [];
|
|
391
407
|
|
|
392
408
|
this.selectedRows.forEach(function(row){
|
|
@@ -396,7 +412,7 @@ class SelectRow extends Module{
|
|
|
396
412
|
return rows;
|
|
397
413
|
}
|
|
398
414
|
|
|
399
|
-
_rowSelectionChanged(silent){
|
|
415
|
+
_rowSelectionChanged(silent, selected = [], deselected = []){
|
|
400
416
|
if(this.headerCheckboxElement){
|
|
401
417
|
if(this.selectedRows.length === 0){
|
|
402
418
|
this.headerCheckboxElement.checked = false;
|
|
@@ -411,7 +427,19 @@ class SelectRow extends Module{
|
|
|
411
427
|
}
|
|
412
428
|
|
|
413
429
|
if(!silent){
|
|
414
|
-
|
|
430
|
+
if(!Array.isArray(selected)){
|
|
431
|
+
selected = [selected];
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
selected = selected.map(row => row.getComponent());
|
|
435
|
+
|
|
436
|
+
if(!Array.isArray(deselected)){
|
|
437
|
+
deselected = [deselected];
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
deselected = deselected.map(row => row.getComponent());
|
|
441
|
+
|
|
442
|
+
this.dispatchExternal("rowSelectionChanged", this.getSelectedData(), this.getSelectedRows(), selected, deselected);
|
|
415
443
|
}
|
|
416
444
|
}
|
|
417
445
|
|