tabulator-tables 5.6.1 → 6.0.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 (167) hide show
  1. package/bower.json +1 -1
  2. package/build/{Bundler.js → Bundler.mjs} +8 -6
  3. package/build/rollup.mjs +9 -0
  4. package/dist/css/tabulator.css +62 -0
  5. package/dist/css/tabulator.css.map +1 -1
  6. package/dist/css/tabulator.min.css +1 -1
  7. package/dist/css/tabulator.min.css.map +1 -1
  8. package/dist/css/tabulator_bootstrap3.css +72 -0
  9. package/dist/css/tabulator_bootstrap3.css.map +1 -1
  10. package/dist/css/tabulator_bootstrap3.min.css +1 -1
  11. package/dist/css/tabulator_bootstrap3.min.css.map +1 -1
  12. package/dist/css/tabulator_bootstrap4.css +78 -0
  13. package/dist/css/tabulator_bootstrap4.css.map +1 -1
  14. package/dist/css/tabulator_bootstrap4.min.css +1 -1
  15. package/dist/css/tabulator_bootstrap4.min.css.map +1 -1
  16. package/dist/css/tabulator_bootstrap5.css +78 -0
  17. package/dist/css/tabulator_bootstrap5.css.map +1 -1
  18. package/dist/css/tabulator_bootstrap5.min.css +1 -1
  19. package/dist/css/tabulator_bootstrap5.min.css.map +1 -1
  20. package/dist/css/tabulator_bulma.css +84 -0
  21. package/dist/css/tabulator_bulma.css.map +1 -1
  22. package/dist/css/tabulator_bulma.min.css +1 -1
  23. package/dist/css/tabulator_bulma.min.css.map +1 -1
  24. package/dist/css/tabulator_materialize.css +77 -0
  25. package/dist/css/tabulator_materialize.css.map +1 -1
  26. package/dist/css/tabulator_materialize.min.css +1 -1
  27. package/dist/css/tabulator_materialize.min.css.map +1 -1
  28. package/dist/css/tabulator_midnight.css +72 -0
  29. package/dist/css/tabulator_midnight.css.map +1 -1
  30. package/dist/css/tabulator_midnight.min.css +1 -1
  31. package/dist/css/tabulator_midnight.min.css.map +1 -1
  32. package/dist/css/tabulator_modern.css +82 -0
  33. package/dist/css/tabulator_modern.css.map +1 -1
  34. package/dist/css/tabulator_modern.min.css +1 -1
  35. package/dist/css/tabulator_modern.min.css.map +1 -1
  36. package/dist/css/tabulator_semanticui.css +74 -0
  37. package/dist/css/tabulator_semanticui.css.map +1 -1
  38. package/dist/css/tabulator_semanticui.min.css +1 -1
  39. package/dist/css/tabulator_semanticui.min.css.map +1 -1
  40. package/dist/css/tabulator_simple.css +75 -0
  41. package/dist/css/tabulator_simple.css.map +1 -1
  42. package/dist/css/tabulator_simple.min.css +1 -1
  43. package/dist/css/tabulator_simple.min.css.map +1 -1
  44. package/dist/css/tabulator_site.css +85 -0
  45. package/dist/css/tabulator_site.css.map +1 -1
  46. package/dist/css/tabulator_site.min.css +1 -1
  47. package/dist/css/tabulator_site.min.css.map +1 -1
  48. package/dist/js/tabulator.js +3882 -2809
  49. package/dist/js/tabulator.js.map +1 -1
  50. package/dist/js/tabulator.min.js +2 -2
  51. package/dist/js/tabulator.min.js.map +1 -1
  52. package/dist/js/tabulator_esm.js +3843 -2768
  53. package/dist/js/tabulator_esm.js.map +1 -1
  54. package/dist/js/tabulator_esm.min.js +2 -2
  55. package/dist/js/tabulator_esm.min.js.map +1 -1
  56. package/package.json +17 -17
  57. package/src/js/builds/esm.js +2 -0
  58. package/src/js/core/ColumnManager.js +15 -0
  59. package/src/js/core/Module.js +2 -4
  60. package/src/js/core/RowManager.js +1 -1
  61. package/src/js/core/Tabulator.js +34 -21
  62. package/src/js/core/TabulatorFull.js +15 -5
  63. package/src/js/core/cell/Cell.js +4 -0
  64. package/src/js/core/column/Column.js +228 -217
  65. package/src/js/core/column/ColumnComponent.js +1 -3
  66. package/src/js/core/defaults/options.js +1 -0
  67. package/src/js/core/modules/optional.js +2 -1
  68. package/src/js/core/row/Row.js +23 -11
  69. package/src/js/core/tools/DataLoader.js +1 -1
  70. package/src/js/core/tools/ModuleBinder.js +123 -75
  71. package/src/js/core/tools/TableRegistry.js +58 -55
  72. package/src/js/modules/Accessor/Accessor.js +7 -8
  73. package/src/js/modules/Accessor/defaults/accessors.js +5 -1
  74. package/src/js/modules/Ajax/Ajax.js +10 -12
  75. package/src/js/modules/Clipboard/Clipboard.js +10 -10
  76. package/src/js/modules/Clipboard/defaults/pasteActions.js +0 -43
  77. package/src/js/modules/Clipboard/defaults/pasteParsers.js +0 -55
  78. package/src/js/modules/Clipboard/extensions/extensions.js +9 -0
  79. package/src/js/modules/Clipboard/extensions/keybindings/actions.js +9 -0
  80. package/src/js/modules/Clipboard/extensions/keybindings/bindings.js +3 -0
  81. package/src/js/modules/ColumnCalcs/CalcComponent.js +2 -4
  82. package/src/js/modules/ColumnCalcs/ColumnCalcs.js +16 -18
  83. package/src/js/modules/Comms/Comms.js +5 -8
  84. package/src/js/modules/DataTree/DataTree.js +11 -11
  85. package/src/js/modules/Download/Download.js +9 -11
  86. package/src/js/modules/Edit/Edit.js +47 -15
  87. package/src/js/modules/Edit/List.js +12 -12
  88. package/src/js/modules/Edit/defaults/editors/time.js +0 -2
  89. package/src/js/modules/Edit/defaults/editors.js +0 -4
  90. package/src/js/modules/Export/Export.js +70 -62
  91. package/src/js/modules/Export/ExportColumn.js +2 -4
  92. package/src/js/modules/Export/ExportRow.js +2 -4
  93. package/src/js/modules/Export/defaults/columnLookups.js +3 -0
  94. package/src/js/modules/Export/defaults/rowLookups.js +18 -0
  95. package/src/js/modules/Filter/Filter.js +7 -9
  96. package/src/js/modules/Format/Format.js +7 -9
  97. package/src/js/modules/Format/defaults/formatters.js +0 -4
  98. package/src/js/modules/FrozenColumns/FrozenColumns.js +8 -6
  99. package/src/js/modules/FrozenRows/FrozenRows.js +4 -6
  100. package/src/js/modules/GroupRows/Group.js +2 -4
  101. package/src/js/modules/GroupRows/GroupComponent.js +2 -4
  102. package/src/js/modules/GroupRows/GroupRows.js +4 -6
  103. package/src/js/modules/History/History.js +10 -10
  104. package/src/js/modules/History/extensions/extensions.js +9 -0
  105. package/src/js/modules/History/extensions/keybindings/actions.js +27 -0
  106. package/src/js/modules/History/extensions/keybindings/bindings.js +4 -0
  107. package/src/js/modules/HtmlTableImport/HtmlTableImport.js +4 -6
  108. package/src/js/modules/Import/Import.js +7 -9
  109. package/src/js/modules/Import/defaults/importers/array.js +2 -4
  110. package/src/js/modules/Import/defaults/importers/csv.js +2 -4
  111. package/src/js/modules/Interaction/Interaction.js +4 -6
  112. package/src/js/modules/Keybindings/Keybindings.js +8 -10
  113. package/src/js/modules/Keybindings/defaults/actions.js +5 -71
  114. package/src/js/modules/Keybindings/defaults/bindings.js +0 -16
  115. package/src/js/modules/Layout/Layout.js +7 -9
  116. package/src/js/modules/Localize/Localize.js +7 -9
  117. package/src/js/modules/Menu/Menu.js +7 -9
  118. package/src/js/modules/MoveColumns/MoveColumns.js +6 -8
  119. package/src/js/modules/MoveRows/MoveRows.js +13 -45
  120. package/src/js/modules/MoveRows/defaults/receivers.js +30 -0
  121. package/src/js/modules/MoveRows/defaults/senders.js +5 -0
  122. package/src/js/modules/Mutator/Mutator.js +7 -9
  123. package/src/js/modules/Page/Page.js +7 -9
  124. package/src/js/modules/Persistence/Persistence.js +10 -12
  125. package/src/js/modules/Popup/Popup.js +4 -8
  126. package/src/js/modules/Print/Print.js +4 -6
  127. package/src/js/modules/ReactiveData/ReactiveData.js +4 -9
  128. package/src/js/modules/ResizeColumns/ResizeColumns.js +91 -53
  129. package/src/js/modules/ResizeRows/ResizeRows.js +41 -8
  130. package/src/js/modules/ResizeTable/ResizeTable.js +4 -6
  131. package/src/js/modules/ResponsiveLayout/ResponsiveLayout.js +15 -9
  132. package/src/js/modules/ResponsiveLayout/extensions/extensions.js +9 -0
  133. package/src/js/modules/SelectRange/Range.js +22 -10
  134. package/src/js/modules/SelectRange/RangeComponent.js +2 -4
  135. package/src/js/modules/SelectRange/SelectRange.js +58 -28
  136. package/src/js/modules/SelectRange/extensions/clipboard/pasteActions.js +45 -0
  137. package/src/js/modules/SelectRange/extensions/clipboard/pasteParsers.js +57 -0
  138. package/src/js/modules/SelectRange/extensions/export/columnLookups.js +11 -0
  139. package/src/js/modules/SelectRange/extensions/export/rowLookups.js +5 -0
  140. package/src/js/modules/SelectRange/extensions/extensions.js +21 -0
  141. package/src/js/modules/SelectRange/extensions/keybindings/actions.js +38 -0
  142. package/src/js/modules/SelectRange/extensions/keybindings/bindings.js +14 -0
  143. package/src/js/modules/SelectRow/SelectRow.js +12 -12
  144. package/src/js/modules/SelectRow/extensions/extensions.js +9 -0
  145. package/src/js/modules/Sort/Sort.js +16 -13
  146. package/src/js/modules/Spreadsheet/GridCalculator.js +64 -0
  147. package/src/js/modules/Spreadsheet/Sheet.js +243 -0
  148. package/src/js/modules/Spreadsheet/SheetComponent.js +59 -0
  149. package/src/js/modules/Spreadsheet/Spreadsheet.js +309 -0
  150. package/src/js/modules/Tooltip/Tooltip.js +6 -8
  151. package/src/js/modules/Validate/Validate.js +7 -9
  152. package/src/scss/tabulator.scss +79 -3
  153. package/src/scss/themes/bootstrap/tabulator_bootstrap3.scss +14 -0
  154. package/src/scss/themes/bootstrap/tabulator_bootstrap4.scss +18 -0
  155. package/src/scss/themes/bootstrap/tabulator_bootstrap5.scss +18 -0
  156. package/src/scss/themes/bulma/tabulator_bulma.scss +24 -0
  157. package/src/scss/themes/materialize/tabulator_materialize.scss +18 -0
  158. package/src/scss/themes/semanticui/tabulator_semanticui.scss +14 -0
  159. package/src/scss/themes/tabulator_midnight.scss +34 -21
  160. package/src/scss/themes/tabulator_modern.scss +23 -0
  161. package/src/scss/themes/tabulator_simple.scss +15 -0
  162. package/src/scss/themes/tabulator_site.scss +25 -0
  163. package/build/rollup.js +0 -6
  164. package/src/js/modules/Edit/defaults/editors/autocomplete.js +0 -12
  165. package/src/js/modules/Edit/defaults/editors/select.js +0 -10
  166. /package/src/js/modules/{Format/defaults → ResponsiveLayout/extensions}/formatters/responsiveCollapse.js +0 -0
  167. /package/src/js/modules/{Format/defaults → SelectRow/extensions}/formatters/rowSelection.js +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tabulator-tables",
3
- "version": "5.6.1",
3
+ "version": "6.0.1",
4
4
  "description": "Interactive table generation JavaScript library",
5
5
  "style": "dist/css/tabulator.css",
6
6
  "main": "dist/js/tabulator.js",
@@ -12,12 +12,12 @@
12
12
  "scripts": {
13
13
  "lint": "eslint src --fix",
14
14
  "prebuild": "eslint src --fix",
15
- "build": "rollup -c build/rollup.js",
16
- "dev": "rollup -c build/rollup.js -w --environment TARGET:dev",
17
- "dev:css": "rollup -c build/rollup.js -w --environment TARGET:css",
18
- "dev:esm": "rollup -c build/rollup.js -w --environment TARGET:esm",
19
- "dev:umd": "rollup -c build/rollup.js -w --environment TARGET:umd",
20
- "dev:wrappers": "rollup -c build/rollup.js -w --environment TARGET:wrappers"
15
+ "build": "rollup -c build/rollup.mjs",
16
+ "dev": "rollup -c build/rollup.mjs -w --environment TARGET:dev",
17
+ "dev:css": "rollup -c build/rollup.mjs -w --environment TARGET:css",
18
+ "dev:esm": "rollup -c build/rollup.mjs -w --environment TARGET:esm",
19
+ "dev:umd": "rollup -c build/rollup.mjs -w --environment TARGET:umd",
20
+ "dev:wrappers": "rollup -c build/rollup.mjs -w --environment TARGET:wrappers "
21
21
  },
22
22
  "repository": {
23
23
  "type": "git",
@@ -49,17 +49,17 @@
49
49
  },
50
50
  "homepage": "https://tabulator.info/",
51
51
  "devDependencies": {
52
- "@rollup/plugin-node-resolve": "^11.0.1",
53
- "eslint": "^8.10.0",
54
- "eslint-plugin-only-warn": "^1.0.3",
55
- "fs-extra": "^9.0.1",
56
- "globby": "^11.0.2",
52
+ "@rollup/plugin-node-resolve": "^15.2.3",
53
+ "@rollup/plugin-terser": "^0.4.4",
54
+ "eslint": "^8.57.0",
55
+ "eslint-plugin-only-warn": "^1.1.0",
56
+ "fs-extra": "^11.2.0",
57
+ "globby": "^14.0.1",
57
58
  "node-sass": "^9.0.0",
58
- "postcss": "^8.2.4",
59
+ "postcss": "^8.4.35",
59
60
  "postcss-prettify": "^0.3.4",
60
- "rollup": "^2.36.1",
61
- "rollup-plugin-license": "^2.2.0",
62
- "rollup-plugin-postcss": "^4.0.0",
63
- "rollup-plugin-terser": "^7.0.2"
61
+ "rollup": "^4.12.1",
62
+ "rollup-plugin-license": "^3.3.1",
63
+ "rollup-plugin-postcss": "^4.0.2"
64
64
  }
65
65
  }
@@ -7,6 +7,8 @@ export {default as ColumnComponent} from '../core/column/ColumnComponent.js';
7
7
  export {default as RowComponent} from '../core/row/RowComponent.js';
8
8
  export {default as GroupComponent} from '../modules/GroupRows/GroupComponent.js';
9
9
  export {default as CalcComponent} from '../modules/ColumnCalcs/CalcComponent.js';
10
+ export {default as RangeComponent} from '../modules/SelectRange/RangeComponent.js';
11
+ export {default as SheetComponent} from '../modules/Spreadsheet/SheetComponent.js';
10
12
 
11
13
  export {default as PseudoRow} from '../core/row/PseudoRow.js';
12
14
 
@@ -17,6 +17,7 @@ export default class ColumnManager extends CoreFeature {
17
17
  this.blockHozScrollEvent = false;
18
18
  this.headersElement = null;
19
19
  this.contentsElement = null;
20
+ this.rowHeader = null;
20
21
  this.element = null ; //containing element
21
22
  this.columns = []; // column definition object
22
23
  this.columnsByIndex = []; //columns by index
@@ -247,6 +248,13 @@ export default class ColumnManager extends CoreFeature {
247
248
  this.columnsByField = {};
248
249
 
249
250
  this.dispatch("columns-loading");
251
+
252
+ if(this.table.options.rowHeader){
253
+ this.rowHeader = new Column(this.table.options.rowHeader === true ? {} : this.table.options.rowHeader, this, true);
254
+ this.columns.push(this.rowHeader);
255
+ this.headersElement.appendChild(this.rowHeader.getElement());
256
+ this.rowHeader.columnRendered();
257
+ }
250
258
 
251
259
  cols.forEach((def, i) => {
252
260
  this._addColumn(def);
@@ -265,6 +273,13 @@ export default class ColumnManager extends CoreFeature {
265
273
  var column = new Column(definition, this),
266
274
  colEl = column.getElement(),
267
275
  index = nextToColumn ? this.findColumnIndex(nextToColumn) : nextToColumn;
276
+
277
+ //prevent adding of rows in front of row header
278
+ if(before && this.rowHeader && (!nextToColumn || nextToColumn === this.rowHeader)){
279
+ before = false;
280
+ nextToColumn = this.rowHeader;
281
+ index = 0;
282
+ }
268
283
 
269
284
  if(nextToColumn && index > -1){
270
285
  var topColumn = nextToColumn.getTopColumn();
@@ -1,7 +1,7 @@
1
1
  import CoreFeature from './CoreFeature.js';
2
2
  import Popup from './tools/Popup.js';
3
3
 
4
- class Module extends CoreFeature{
4
+ export default class Module extends CoreFeature{
5
5
 
6
6
  constructor(table, name){
7
7
  super(table);
@@ -137,6 +137,4 @@ class Module extends CoreFeature{
137
137
  return this.table.alertManager.clear();
138
138
  }
139
139
 
140
- }
141
-
142
- export default Module;
140
+ }
@@ -194,7 +194,7 @@ export default class RowManager extends CoreFeature{
194
194
 
195
195
  getRowFromPosition(position){
196
196
  return this.getDisplayRows().find((row) => {
197
- return row.getPosition() === position && row.isDisplayed();
197
+ return row.type === "row" && row.getPosition() === position && row.isDisplayed();
198
198
  });
199
199
  }
200
200
 
@@ -15,17 +15,32 @@ import InternalEventBus from './tools/InternalEventBus.js';
15
15
 
16
16
  import DeprecationAdvisor from './tools/DeprecationAdvisor.js';
17
17
 
18
- import TableRegistry from './tools/TableRegistry.js';
19
18
  import ModuleBinder from './tools/ModuleBinder.js';
20
19
 
21
20
  import OptionsList from './tools/OptionsList.js';
22
21
 
23
22
  import Alert from './tools/Alert.js';
24
23
 
25
- class Tabulator {
26
-
27
- constructor(element, options){
28
-
24
+ class Tabulator extends ModuleBinder{
25
+
26
+ //default setup options
27
+ static defaultOptions = defaultOptions;
28
+
29
+ static extendModule(){
30
+ Tabulator.initializeModuleBinder();
31
+ Tabulator._extendModule(...arguments);
32
+ }
33
+
34
+ static registerModule(){
35
+ Tabulator.initializeModuleBinder();
36
+ Tabulator._registerModule(...arguments);
37
+ }
38
+
39
+ constructor(element, options, modules){
40
+ super();
41
+
42
+ Tabulator.initializeModuleBinder(modules);
43
+
29
44
  this.options = {};
30
45
 
31
46
  this.columnManager = null; // hold Column Manager
@@ -65,7 +80,7 @@ class Tabulator {
65
80
  });
66
81
  }
67
82
 
68
- TableRegistry.register(this); //register table for inter-device communication
83
+ this.constructor.registry.register(this); //register table for inter-device communication
69
84
  }
70
85
 
71
86
  initializeElement(element){
@@ -94,7 +109,7 @@ class Tabulator {
94
109
  this.dataLoader = new DataLoader(this);
95
110
  this.alertManager = new Alert(this);
96
111
 
97
- this.bindModules();
112
+ this._bindModules();
98
113
 
99
114
  this.options = this.optionsList.generate(Tabulator.defaultOptions, options);
100
115
 
@@ -115,7 +130,7 @@ class Tabulator {
115
130
 
116
131
  //convert deprecated functionality to new functions
117
132
  _mapDeprecatedFunctionality(){
118
- //all previously deprecated functionality removed in the 5.0 release
133
+ //all previously deprecated functionality removed in the 6.0 release
119
134
  }
120
135
 
121
136
  _clearSelection(){
@@ -145,12 +160,14 @@ class Tabulator {
145
160
  this._buildElement();
146
161
 
147
162
  this._initializeTable();
148
-
149
- this._loadInitialData();
150
-
163
+
151
164
  this.initialized = true;
152
165
 
153
- this.externalEvents.dispatch("tableBuilt");
166
+ this._loadInitialData()
167
+ .finally(() => {
168
+ this.eventBus.dispatch("table-initialized");
169
+ this.externalEvents.dispatch("tableBuilt");
170
+ });
154
171
  }
155
172
 
156
173
  _rtlCheck(){
@@ -276,8 +293,10 @@ class Tabulator {
276
293
  }
277
294
 
278
295
  _loadInitialData(){
279
- this.dataLoader.load(this.options.data);
280
- this.columnManager.verticalAlignHeaders();
296
+ return this.dataLoader.load(this.options.data)
297
+ .finally(() => {
298
+ this.columnManager.verticalAlignHeaders();
299
+ });
281
300
  }
282
301
 
283
302
  //deconstructor
@@ -286,7 +305,7 @@ class Tabulator {
286
305
 
287
306
  this.destroyed = true;
288
307
 
289
- TableRegistry.deregister(this); //deregister table from inter-device communication
308
+ this.constructor.registry.deregister(this); //deregister table from inter-device communication
290
309
 
291
310
  this.eventBus.dispatch("table-destroy");
292
311
 
@@ -887,10 +906,4 @@ class Tabulator {
887
906
  }
888
907
  }
889
908
 
890
- //default setup options
891
- Tabulator.defaultOptions = defaultOptions;
892
-
893
- //bind modules and static functionality
894
- new ModuleBinder(Tabulator);
895
-
896
909
  export default Tabulator;
@@ -1,11 +1,21 @@
1
1
  //tabulator with all modules installed
2
2
  import {default as Tabulator} from './Tabulator.js';
3
- import * as modules from '../core/modules/optional.js';
4
- import ModuleBinder from './tools/ModuleBinder.js';
3
+ import * as allModules from '../core/modules/optional.js';
5
4
 
6
- class TabulatorFull extends Tabulator {}
5
+ class TabulatorFull extends Tabulator {
6
+ static extendModule(){
7
+ Tabulator.initializeModuleBinder(allModules);
8
+ Tabulator._extendModule(...arguments);
9
+ }
7
10
 
8
- //bind modules and static functionality
9
- new ModuleBinder(TabulatorFull, modules);
11
+ static registerModule(){
12
+ Tabulator.initializeModuleBinder(allModules);
13
+ Tabulator._registerModule(...arguments);
14
+ }
15
+
16
+ constructor(element, options, modules){
17
+ super(element, options, allModules);
18
+ }
19
+ }
10
20
 
11
21
  export default TabulatorFull;
@@ -43,6 +43,10 @@ export default class Cell extends CoreFeature{
43
43
  this.element = document.createElement('div');
44
44
  this.element.className = "tabulator-cell";
45
45
  this.element.setAttribute("role", "gridcell");
46
+
47
+ if(this.column.isRowHeader){
48
+ this.element.classList.add("tabulator-row-header");
49
+ }
46
50
  }
47
51
 
48
52
  _configureCell(){