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.
Files changed (101) hide show
  1. package/bower.json +1 -1
  2. package/dist/css/tabulator.css +72 -2
  3. package/dist/css/tabulator.css.map +1 -1
  4. package/dist/css/tabulator.min.css +1 -1
  5. package/dist/css/tabulator.min.css.map +1 -1
  6. package/dist/css/tabulator_bootstrap3.css +72 -2
  7. package/dist/css/tabulator_bootstrap3.css.map +1 -1
  8. package/dist/css/tabulator_bootstrap3.min.css +1 -1
  9. package/dist/css/tabulator_bootstrap3.min.css.map +1 -1
  10. package/dist/css/tabulator_bootstrap4.css +72 -2
  11. package/dist/css/tabulator_bootstrap4.css.map +1 -1
  12. package/dist/css/tabulator_bootstrap4.min.css +1 -1
  13. package/dist/css/tabulator_bootstrap4.min.css.map +1 -1
  14. package/dist/css/tabulator_bootstrap5.css +72 -2
  15. package/dist/css/tabulator_bootstrap5.css.map +1 -1
  16. package/dist/css/tabulator_bootstrap5.min.css +1 -1
  17. package/dist/css/tabulator_bootstrap5.min.css.map +1 -1
  18. package/dist/css/tabulator_bulma.css +72 -2
  19. package/dist/css/tabulator_bulma.css.map +1 -1
  20. package/dist/css/tabulator_bulma.min.css +1 -1
  21. package/dist/css/tabulator_bulma.min.css.map +1 -1
  22. package/dist/css/tabulator_materialize.css +72 -2
  23. package/dist/css/tabulator_materialize.css.map +1 -1
  24. package/dist/css/tabulator_materialize.min.css +1 -1
  25. package/dist/css/tabulator_materialize.min.css.map +1 -1
  26. package/dist/css/tabulator_midnight.css +72 -2
  27. package/dist/css/tabulator_midnight.css.map +1 -1
  28. package/dist/css/tabulator_midnight.min.css +1 -1
  29. package/dist/css/tabulator_midnight.min.css.map +1 -1
  30. package/dist/css/tabulator_modern.css +72 -2
  31. package/dist/css/tabulator_modern.css.map +1 -1
  32. package/dist/css/tabulator_modern.min.css +1 -1
  33. package/dist/css/tabulator_modern.min.css.map +1 -1
  34. package/dist/css/tabulator_semanticui.css +72 -2
  35. package/dist/css/tabulator_semanticui.css.map +1 -1
  36. package/dist/css/tabulator_semanticui.min.css +1 -1
  37. package/dist/css/tabulator_semanticui.min.css.map +1 -1
  38. package/dist/css/tabulator_simple.css +72 -2
  39. package/dist/css/tabulator_simple.css.map +1 -1
  40. package/dist/css/tabulator_simple.min.css +1 -1
  41. package/dist/css/tabulator_simple.min.css.map +1 -1
  42. package/dist/css/tabulator_site.css +74 -4
  43. package/dist/css/tabulator_site.css.map +1 -1
  44. package/dist/css/tabulator_site.min.css +1 -1
  45. package/dist/css/tabulator_site.min.css.map +1 -1
  46. package/dist/js/tabulator.js +1868 -245
  47. package/dist/js/tabulator.js.map +1 -1
  48. package/dist/js/tabulator.min.js +2 -2
  49. package/dist/js/tabulator.min.js.map +1 -1
  50. package/dist/js/tabulator_esm.js +1948 -323
  51. package/dist/js/tabulator_esm.js.map +1 -1
  52. package/dist/js/tabulator_esm.min.js +2 -2
  53. package/dist/js/tabulator_esm.min.js.map +1 -1
  54. package/package.json +2 -2
  55. package/src/js/core/ColumnManager.js +4 -0
  56. package/src/js/core/CoreFeature.js +2 -2
  57. package/src/js/core/RowManager.js +12 -6
  58. package/src/js/core/Tabulator.js +2 -1
  59. package/src/js/core/TabulatorFull.js +1 -1
  60. package/src/js/core/column/Column.js +10 -0
  61. package/src/js/core/modules/optional.js +2 -1
  62. package/src/js/core/rendering/renderers/BasicVertical.js +4 -2
  63. package/src/js/core/rendering/renderers/VirtualDomHorizontal.js +1 -1
  64. package/src/js/core/row/PseudoRow.js +2 -0
  65. package/src/js/core/tools/Alert.js +4 -0
  66. package/src/js/core/tools/DeprecationAdvisor.js +5 -1
  67. package/src/js/core/tools/Helpers.js +1 -1
  68. package/src/js/core/tools/InteractionMonitor.js +3 -3
  69. package/src/js/modules/Clipboard/Clipboard.js +5 -3
  70. package/src/js/modules/Clipboard/defaults/pasteActions.js +49 -6
  71. package/src/js/modules/Clipboard/defaults/pasteParsers.js +69 -14
  72. package/src/js/modules/ColumnCalcs/ColumnCalcs.js +7 -1
  73. package/src/js/modules/Edit/Edit.js +71 -25
  74. package/src/js/modules/Edit/defaults/editors/datetime.js +1 -1
  75. package/src/js/modules/Edit/defaults/editors/time.js +3 -1
  76. package/src/js/modules/Export/Export.js +38 -18
  77. package/src/js/modules/Format/defaults/formatters/rowSelection.js +2 -2
  78. package/src/js/modules/Format/defaults/formatters/rownum.js +5 -1
  79. package/src/js/modules/FrozenColumns/FrozenColumns.js +11 -11
  80. package/src/js/modules/FrozenRows/FrozenRows.js +6 -1
  81. package/src/js/modules/History/History.js +2 -2
  82. package/src/js/modules/History/defaults/redoers.js +4 -0
  83. package/src/js/modules/History/defaults/undoers.js +4 -0
  84. package/src/js/modules/Keybindings/defaults/actions.js +38 -1
  85. package/src/js/modules/Keybindings/defaults/bindings.js +16 -1
  86. package/src/js/modules/Menu/Menu.js +3 -1
  87. package/src/js/modules/MoveColumns/MoveColumns.js +5 -0
  88. package/src/js/modules/Popup/Popup.js +1 -1
  89. package/src/js/modules/ResizeTable/ResizeTable.js +3 -3
  90. package/src/js/modules/SelectRange/Range.js +354 -0
  91. package/src/js/modules/SelectRange/RangeComponent.js +93 -0
  92. package/src/js/modules/SelectRange/SelectRange.js +870 -0
  93. package/src/js/modules/SelectRow/SelectRow.js +46 -26
  94. package/src/js/modules/Sort/Sort.js +111 -105
  95. package/src/js/modules/Validate/defaults/validators.js +11 -0
  96. package/src/scss/tabulator.scss +95 -13
  97. package/src/scss/themes/bulma/tabulator_bulma.scss +7 -0
  98. package/src/scss/themes/materialize/tabulator_materialize.scss +7 -1
  99. package/src/scss/themes/tabulator_midnight.scss +13 -0
  100. package/src/scss/themes/tabulator_modern.scss +9 -0
  101. 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("selectable", "highlight"); //highlight rows on hover
15
- this.registerTableOption("selectableRangeMode", "drag"); //highlight rows on hover
16
- this.registerTableOption("selectableRollingSelection", true); //roll selection once maximum number of selectable rows is reached
17
- this.registerTableOption("selectablePersistence", true); // maintain selection when table view is updated
18
- this.registerTableOption("selectableCheck", function(data, row){return true;}); //check whether row is selectable
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
- if(this.table.options.selectable !== false){
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.selectable && !this.table.options.selectablePersistence){
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
- element.classList.add("tabulator-selectable");
86
- element.classList.remove("tabulator-unselectable");
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.selectable !== true && !this.isRowSelected(row)){
164
- if(this.selectedRows.length < this.table.options.selectable){
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.selectable !== true){
177
- if(toggledRows.length > this.table.options.selectable){
178
- toggledRows = toggledRows.slice(0, this.table.options.selectable);
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.selectableCheck.call(this.table, row.getComponent());
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.selectable) && this.table.options.selectable !== true && !force){
261
- if(this.selectedRows.length >= this.table.options.selectable){
262
- if(this.table.options.selectableRollingSelection){
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);