tabulator-tables 5.6.0 → 6.0.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.
Files changed (168) 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 +67 -5
  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 +77 -5
  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 +83 -5
  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 +83 -5
  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 +89 -5
  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 +82 -5
  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 +77 -5
  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 +87 -5
  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 +79 -5
  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 +80 -5
  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 +90 -5
  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 +3865 -2755
  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 +3857 -2745
  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 +4 -6
  61. package/src/js/core/Tabulator.js +36 -23
  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 +231 -216
  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 +63 -21
  87. package/src/js/modules/Edit/List.js +12 -12
  88. package/src/js/modules/Edit/defaults/editors/datetime.js +1 -1
  89. package/src/js/modules/Edit/defaults/editors/time.js +1 -1
  90. package/src/js/modules/Edit/defaults/editors.js +0 -4
  91. package/src/js/modules/Export/Export.js +70 -62
  92. package/src/js/modules/Export/ExportColumn.js +2 -4
  93. package/src/js/modules/Export/ExportRow.js +2 -4
  94. package/src/js/modules/Export/defaults/columnLookups.js +3 -0
  95. package/src/js/modules/Export/defaults/rowLookups.js +18 -0
  96. package/src/js/modules/Filter/Filter.js +7 -9
  97. package/src/js/modules/Format/Format.js +7 -9
  98. package/src/js/modules/Format/defaults/formatters.js +0 -4
  99. package/src/js/modules/FrozenColumns/FrozenColumns.js +9 -6
  100. package/src/js/modules/FrozenRows/FrozenRows.js +4 -6
  101. package/src/js/modules/GroupRows/Group.js +2 -4
  102. package/src/js/modules/GroupRows/GroupComponent.js +2 -4
  103. package/src/js/modules/GroupRows/GroupRows.js +4 -6
  104. package/src/js/modules/History/History.js +10 -10
  105. package/src/js/modules/History/extensions/extensions.js +9 -0
  106. package/src/js/modules/History/extensions/keybindings/actions.js +27 -0
  107. package/src/js/modules/History/extensions/keybindings/bindings.js +4 -0
  108. package/src/js/modules/HtmlTableImport/HtmlTableImport.js +4 -6
  109. package/src/js/modules/Import/Import.js +7 -9
  110. package/src/js/modules/Import/defaults/importers/array.js +2 -4
  111. package/src/js/modules/Import/defaults/importers/csv.js +2 -4
  112. package/src/js/modules/Interaction/Interaction.js +4 -6
  113. package/src/js/modules/Keybindings/Keybindings.js +8 -10
  114. package/src/js/modules/Keybindings/defaults/actions.js +5 -71
  115. package/src/js/modules/Keybindings/defaults/bindings.js +0 -16
  116. package/src/js/modules/Layout/Layout.js +7 -9
  117. package/src/js/modules/Localize/Localize.js +7 -9
  118. package/src/js/modules/Menu/Menu.js +7 -9
  119. package/src/js/modules/MoveColumns/MoveColumns.js +6 -8
  120. package/src/js/modules/MoveRows/MoveRows.js +13 -45
  121. package/src/js/modules/MoveRows/defaults/receivers.js +30 -0
  122. package/src/js/modules/MoveRows/defaults/senders.js +5 -0
  123. package/src/js/modules/Mutator/Mutator.js +7 -9
  124. package/src/js/modules/Page/Page.js +7 -9
  125. package/src/js/modules/Persistence/Persistence.js +10 -12
  126. package/src/js/modules/Popup/Popup.js +4 -8
  127. package/src/js/modules/Print/Print.js +4 -6
  128. package/src/js/modules/ReactiveData/ReactiveData.js +4 -9
  129. package/src/js/modules/ResizeColumns/ResizeColumns.js +91 -53
  130. package/src/js/modules/ResizeRows/ResizeRows.js +41 -8
  131. package/src/js/modules/ResizeTable/ResizeTable.js +4 -6
  132. package/src/js/modules/ResponsiveLayout/ResponsiveLayout.js +15 -9
  133. package/src/js/modules/ResponsiveLayout/extensions/extensions.js +9 -0
  134. package/src/js/modules/SelectRange/Range.js +40 -21
  135. package/src/js/modules/SelectRange/RangeComponent.js +2 -4
  136. package/src/js/modules/SelectRange/SelectRange.js +88 -43
  137. package/src/js/modules/SelectRange/extensions/clipboard/pasteActions.js +45 -0
  138. package/src/js/modules/SelectRange/extensions/clipboard/pasteParsers.js +57 -0
  139. package/src/js/modules/SelectRange/extensions/export/columnLookups.js +11 -0
  140. package/src/js/modules/SelectRange/extensions/export/rowLookups.js +5 -0
  141. package/src/js/modules/SelectRange/extensions/extensions.js +21 -0
  142. package/src/js/modules/SelectRange/extensions/keybindings/actions.js +38 -0
  143. package/src/js/modules/SelectRange/extensions/keybindings/bindings.js +14 -0
  144. package/src/js/modules/SelectRow/SelectRow.js +12 -12
  145. package/src/js/modules/SelectRow/extensions/extensions.js +9 -0
  146. package/src/js/modules/Sort/Sort.js +16 -13
  147. package/src/js/modules/Spreadsheet/GridCalculator.js +64 -0
  148. package/src/js/modules/Spreadsheet/Sheet.js +243 -0
  149. package/src/js/modules/Spreadsheet/SheetComponent.js +59 -0
  150. package/src/js/modules/Spreadsheet/Spreadsheet.js +309 -0
  151. package/src/js/modules/Tooltip/Tooltip.js +6 -8
  152. package/src/js/modules/Validate/Validate.js +7 -9
  153. package/src/scss/tabulator.scss +86 -10
  154. package/src/scss/themes/bootstrap/tabulator_bootstrap3.scss +14 -0
  155. package/src/scss/themes/bootstrap/tabulator_bootstrap4.scss +18 -0
  156. package/src/scss/themes/bootstrap/tabulator_bootstrap5.scss +18 -0
  157. package/src/scss/themes/bulma/tabulator_bulma.scss +24 -0
  158. package/src/scss/themes/materialize/tabulator_materialize.scss +18 -0
  159. package/src/scss/themes/semanticui/tabulator_semanticui.scss +14 -0
  160. package/src/scss/themes/tabulator_midnight.scss +34 -21
  161. package/src/scss/themes/tabulator_modern.scss +23 -0
  162. package/src/scss/themes/tabulator_simple.scss +15 -0
  163. package/src/scss/themes/tabulator_site.scss +25 -0
  164. package/build/rollup.js +0 -6
  165. package/src/js/modules/Edit/defaults/editors/autocomplete.js +0 -12
  166. package/src/js/modules/Edit/defaults/editors/select.js +0 -10
  167. /package/src/js/modules/{Format/defaults → ResponsiveLayout/extensions}/formatters/responsiveCollapse.js +0 -0
  168. /package/src/js/modules/{Format/defaults → SelectRow/extensions}/formatters/rowSelection.js +0 -0
@@ -3,7 +3,15 @@ import Module from '../../core/Module.js';
3
3
  import ExportRow from './ExportRow.js';
4
4
  import ExportColumn from './ExportColumn.js';
5
5
 
6
- class Export extends Module{
6
+ import columnLookups from './defaults/columnLookups.js';
7
+ import rowLookups from './defaults/rowLookups.js';
8
+
9
+ export default class Export extends Module{
10
+
11
+ static moduleName = "export";
12
+
13
+ static columnLookups = columnLookups;
14
+ static rowLookups = rowLookups;
7
15
 
8
16
  constructor(table){
9
17
  super(table);
@@ -11,6 +19,7 @@ class Export extends Module{
11
19
  this.config = {};
12
20
  this.cloneTableStyle = true;
13
21
  this.colVisProp = "";
22
+ this.colVisPropAttach = "";
14
23
 
15
24
  this.registerTableOption("htmlOutputConfig", false); //html output config
16
25
 
@@ -22,32 +31,32 @@ class Export extends Module{
22
31
  this.registerTableFunction("getHtml", this.getHtml.bind(this));
23
32
  }
24
33
 
25
- ///////////////////////////////////
26
- ///////// Table Functions /////////
27
- ///////////////////////////////////
28
-
29
-
30
34
  ///////////////////////////////////
31
35
  ///////// Internal Logic //////////
32
36
  ///////////////////////////////////
33
37
 
34
38
  generateExportList(config, style, range, colVisProp){
39
+ var headers, body, columns, colLookup;
40
+
35
41
  this.cloneTableStyle = style;
36
42
  this.config = config || {};
37
43
  this.colVisProp = colVisProp;
44
+ this.colVisPropAttach = this.colVisProp.charAt(0).toUpperCase() + this.colVisProp.slice(1);
45
+
46
+ colLookup = Export.columnLookups[range];
47
+
48
+ if(colLookup){
49
+ columns = colLookup.call(this.table);
50
+ columns = columns.filter(col => this.columnVisCheck(col));
51
+ }
52
+
53
+ headers = this.config.columnHeaders !== false ? this.headersToExportRows(this.generateColumnGroupHeaders(columns)) : [];
38
54
 
39
- var headers, body;
40
-
41
- if (range === 'range') {
42
- var columns = this.table.modules.selectRange.selectedColumns();
43
- headers = this.config.columnHeaders !== false
44
- ? this.headersToExportRows(this.generateColumnGroupHeaders(columns))
45
- : [];
46
- body = this.bodyToExportRows(this.rowLookup(range), this.table.modules.selectRange.selectedColumns(true));
47
- } else {
48
- headers = this.config.columnHeaders !== false ? this.headersToExportRows(this.generateColumnGroupHeaders()) : [];
49
- body = this.bodyToExportRows(this.rowLookup(range));
55
+ if(columns){
56
+ columns = columns.map(col => col.getComponent());
50
57
  }
58
+
59
+ body = this.bodyToExportRows(this.rowLookup(range), columns);
51
60
 
52
61
  return headers.concat(body);
53
62
  }
@@ -59,7 +68,8 @@ class Export extends Module{
59
68
  }
60
69
 
61
70
  rowLookup(range){
62
- var rows = [];
71
+ var rows = [],
72
+ rowLookup;
63
73
 
64
74
  if(typeof range == "function"){
65
75
  range.call(this.table).forEach((row) =>{
@@ -70,32 +80,9 @@ class Export extends Module{
70
80
  }
71
81
  });
72
82
  }else{
73
- switch(range){
74
- case true:
75
- case "visible":
76
- rows = this.table.rowManager.getVisibleRows(false, true);
77
- break;
78
-
79
- case "all":
80
- rows = this.table.rowManager.rows;
81
- break;
82
-
83
- case "selected":
84
- rows = this.table.modules.selectRow.selectedRows;
85
- break;
83
+ rowLookup = Export.rowLookups[range] || Export.rowLookups["active"];
86
84
 
87
- case "range":
88
- rows = this.table.modules.selectRange.selectedRows();
89
- break;
90
-
91
- case "active":
92
- default:
93
- if(this.table.options.pagination){
94
- rows = this.table.rowManager.getDisplayRows(this.table.rowManager.displayRows.length - 2);
95
- }else{
96
- rows = this.table.rowManager.getDisplayRows();
97
- }
98
- }
85
+ rows = rowLookup.call(this.table);
99
86
  }
100
87
 
101
88
  return Object.assign([], rows);
@@ -116,13 +103,15 @@ class Export extends Module{
116
103
  }
117
104
  });
118
105
 
106
+
107
+
119
108
  return output;
120
109
  }
121
110
 
122
111
  processColumnGroup(column){
123
112
  var subGroups = column.columns,
124
113
  maxDepth = 0,
125
- title = column.definition["title" + (this.colVisProp.charAt(0).toUpperCase() + this.colVisProp.slice(1))] || column.definition.title;
114
+ title = column.definition["title" + (this.colVisPropAttach)] || column.definition.title;
126
115
 
127
116
  var groupData = {
128
117
  title:title,
@@ -165,12 +154,20 @@ class Export extends Module{
165
154
 
166
155
  columnVisCheck(column){
167
156
  var visProp = column.definition[this.colVisProp];
157
+
158
+ if(this.config.rowHeaders === false && column.isRowHeader){
159
+ return false;
160
+ }
168
161
 
169
162
  if(typeof visProp === "function"){
170
163
  visProp = visProp.call(this.table, column.getComponent());
171
164
  }
172
-
173
- return visProp !== false && (column.visible || (!column.visible && visProp));
165
+
166
+ if(visProp === false || visProp === true){
167
+ return visProp;
168
+ }
169
+
170
+ return column.visible && column.field;
174
171
  }
175
172
 
176
173
  headersToExportRows(columns){
@@ -313,7 +310,7 @@ class Export extends Module{
313
310
  headerEl = document.createElement("thead"),
314
311
  bodyEl = document.createElement("tbody"),
315
312
  styles = this.lookupTableStyles(),
316
- rowFormatter = this.table.options["rowFormatter" + (this.colVisProp.charAt(0).toUpperCase() + this.colVisProp.slice(1))],
313
+ rowFormatter = this.table.options["rowFormatter" + (this.colVisPropAttach)],
317
314
  setup = {};
318
315
 
319
316
  setup.rowFormatter = rowFormatter !== null ? rowFormatter : this.table.options.rowFormatter;
@@ -323,7 +320,7 @@ class Export extends Module{
323
320
  }
324
321
 
325
322
  //assign group header formatter
326
- setup.groupHeader = this.table.options["groupHeader" + (this.colVisProp.charAt(0).toUpperCase() + this.colVisProp.slice(1))];
323
+ setup.groupHeader = this.table.options["groupHeader" + (this.colVisPropAttach)];
327
324
 
328
325
  if(setup.groupHeader && !Array.isArray(setup.groupHeader)){
329
326
  setup.groupHeader = [setup.groupHeader];
@@ -332,8 +329,7 @@ class Export extends Module{
332
329
  table.classList.add("tabulator-print-table");
333
330
 
334
331
  this.mapElementStyles(this.table.columnManager.getHeadersElement(), headerEl, ["border-top", "border-left", "border-right", "border-bottom", "background-color", "color", "font-weight", "font-family", "font-size"]);
335
-
336
-
332
+
337
333
  if(list.length > 1000){
338
334
  console.warn("It may take a long time to render an HTML table with more than 1000 rows");
339
335
  }
@@ -387,6 +383,7 @@ class Export extends Module{
387
383
 
388
384
  if(styles.firstRow){
389
385
  styles.styleCells = styles.firstRow.getElementsByClassName("tabulator-cell");
386
+ styles.styleRowHeader = styles.firstRow.getElementsByClassName("tabulator-row-header")[0];
390
387
  styles.firstCell = styles.styleCells[0];
391
388
  styles.lastCell = styles.styleCells[styles.styleCells.length - 1];
392
389
  }
@@ -416,9 +413,9 @@ class Export extends Module{
416
413
  cellEl.classList.add(className);
417
414
  });
418
415
 
419
- this.mapElementStyles(column.component.getElement(), cellEl, ["text-align", "border-top", "border-left", "border-right", "border-bottom", "background-color", "color", "font-weight", "font-family", "font-size"]);
416
+ this.mapElementStyles(column.component.getElement(), cellEl, ["text-align", "border-left", "border-right", "background-color", "color", "font-weight", "font-family", "font-size"]);
420
417
  this.mapElementStyles(column.component._column.contentElement, cellEl, ["padding-top", "padding-left", "padding-right", "padding-bottom"]);
421
-
418
+
422
419
  if(column.component._column.visible){
423
420
  this.mapElementStyles(column.component.getElement(), cellEl, ["width"]);
424
421
  }else{
@@ -427,8 +424,16 @@ class Export extends Module{
427
424
  }
428
425
  }
429
426
 
430
- if(column.component._column.parent){
427
+ if(column.component._column.parent && column.component._column.parent.isGroup){
431
428
  this.mapElementStyles(column.component._column.parent.groupElement, cellEl, ["border-top"]);
429
+ }else{
430
+ this.mapElementStyles(column.component.getElement(), cellEl, ["border-top"]);
431
+ }
432
+
433
+ if(column.component._column.isGroup){
434
+ this.mapElementStyles(column.component.getElement(), cellEl, ["border-bottom"]);
435
+ }else{
436
+ this.mapElementStyles(this.table.columnManager.getElement(), cellEl, ["border-bottom"]);
432
437
  }
433
438
 
434
439
  rowEl.appendChild(cellEl);
@@ -493,7 +498,7 @@ class Export extends Module{
493
498
  table = this.table,
494
499
  index = table.columnManager.findColumnIndex(column),
495
500
  value = col.value,
496
- cellStyle;
501
+ cellStyle, styleProps;
497
502
 
498
503
  var cellWrapper = {
499
504
  modules:{},
@@ -552,11 +557,18 @@ class Export extends Module{
552
557
  }else{
553
558
  cellEl.innerHTML = value;
554
559
  }
555
-
556
- cellStyle = styles.styleCells && styles.styleCells[index] ? styles.styleCells[index] : styles.firstCell;
560
+
561
+ styleProps = ["padding-top", "padding-left", "padding-right", "padding-bottom", "border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size", "text-align"];
562
+
563
+ if(column.isRowHeader){
564
+ cellStyle = styles.styleRowHeader;
565
+ styleProps.push("background-color");
566
+ }else{
567
+ cellStyle = styles.styleCells && styles.styleCells[index] ? styles.styleCells[index] : styles.firstCell;
568
+ }
557
569
 
558
570
  if(cellStyle){
559
- this.mapElementStyles(cellStyle, cellEl, ["padding-top", "padding-left", "padding-right", "padding-bottom", "border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size", "text-align"]);
571
+ this.mapElementStyles(cellStyle, cellEl, styleProps);
560
572
 
561
573
  if(column.definition.align){
562
574
  cellEl.style.textAlign = column.definition.align;
@@ -630,7 +642,7 @@ class Export extends Module{
630
642
 
631
643
  if(window.getComputedStyle){
632
644
  var fromStyle = window.getComputedStyle(from);
633
-
645
+
634
646
  props.forEach(function(prop){
635
647
  if(!to.style[lookup[prop]]){
636
648
  to.style[lookup[prop]] = fromStyle.getPropertyValue(prop);
@@ -640,7 +652,3 @@ class Export extends Module{
640
652
  }
641
653
  }
642
654
  }
643
-
644
- Export.moduleName = "export";
645
-
646
- export default Export;
@@ -1,4 +1,4 @@
1
- class ExportColumn{
1
+ export default class ExportColumn{
2
2
  constructor(value, component, width, height, depth){
3
3
  this.value = value;
4
4
  this.component = component || false;
@@ -6,6 +6,4 @@ class ExportColumn{
6
6
  this.height = height;
7
7
  this.depth = depth;
8
8
  }
9
- }
10
-
11
- export default ExportColumn;
9
+ }
@@ -1,10 +1,8 @@
1
- class ExportRow{
1
+ export default class ExportRow{
2
2
  constructor(type, columns, component, indent){
3
3
  this.type = type;
4
4
  this.columns = columns;
5
5
  this.component = component || false;
6
6
  this.indent = indent || 0;
7
7
  }
8
- }
9
-
10
- export default ExportRow;
8
+ }
@@ -0,0 +1,3 @@
1
+ export default {
2
+
3
+ };
@@ -0,0 +1,18 @@
1
+ export default {
2
+ visible:function(){
3
+ return this.rowManager.getVisibleRows(false, true);
4
+ },
5
+ all:function(){
6
+ return this.rowManager.rows;
7
+ },
8
+ selected:function(){
9
+ return this.modules.selectRow.selectedRows;
10
+ },
11
+ active:function(){
12
+ if(this.options.pagination){
13
+ return this.rowManager.getDisplayRows(this.rowManager.displayRows.length - 2);
14
+ }else{
15
+ return this.rowManager.getDisplayRows();
16
+ }
17
+ },
18
+ };
@@ -2,7 +2,12 @@ import Module from '../../core/Module.js';
2
2
 
3
3
  import defaultFilters from './defaults/filters.js';
4
4
 
5
- class Filter extends Module{
5
+ export default class Filter extends Module{
6
+
7
+ static moduleName = "filter";
8
+
9
+ //load defaults
10
+ static filters = defaultFilters;
6
11
 
7
12
  constructor(table){
8
13
  super(table);
@@ -894,11 +899,4 @@ class Filter extends Module{
894
899
 
895
900
  return match;
896
901
  }
897
- }
898
-
899
- Filter.moduleName = "filter";
900
-
901
- //load defaults
902
- Filter.filters = defaultFilters;
903
-
904
- export default Filter;
902
+ }
@@ -2,7 +2,12 @@ import Module from '../../core/Module.js';
2
2
 
3
3
  import defaultFormatters from './defaults/formatters.js';
4
4
 
5
- class Format extends Module{
5
+ export default class Format extends Module{
6
+
7
+ static moduleName = "format";
8
+
9
+ //load defaults
10
+ static formatters = defaultFormatters;
6
11
 
7
12
  constructor(table){
8
13
  super(table);
@@ -206,11 +211,4 @@ class Format extends Module{
206
211
 
207
212
  return formatter;
208
213
  }
209
- }
210
-
211
- Format.moduleName = "format";
212
-
213
- //load defaults
214
- Format.formatters = defaultFormatters;
215
-
216
- export default Format;
214
+ }
@@ -16,8 +16,6 @@ import buttonTick from './formatters/buttonTick.js';
16
16
  import buttonCross from './formatters/buttonCross.js';
17
17
  import rownum from './formatters/rownum.js';
18
18
  import handle from './formatters/handle.js';
19
- import responsiveCollapse from './formatters/responsiveCollapse.js';
20
- import rowSelection from './formatters/rowSelection.js';
21
19
 
22
20
  export default {
23
21
  plaintext:plaintext,
@@ -38,6 +36,4 @@ export default {
38
36
  buttonCross:buttonCross,
39
37
  rownum:rownum,
40
38
  handle:handle,
41
- responsiveCollapse:responsiveCollapse,
42
- rowSelection:rowSelection,
43
39
  };
@@ -1,6 +1,8 @@
1
1
  import Module from '../../core/Module.js';
2
2
 
3
- class FrozenColumns extends Module{
3
+ export default class FrozenColumns extends Module{
4
+
5
+ static moduleName = "frozenColumns";
4
6
 
5
7
  constructor(table){
6
8
  super(table);
@@ -34,6 +36,7 @@ class FrozenColumns extends Module{
34
36
  this.subscribe("column-deleted", this.reinitializeColumns.bind(this));
35
37
  this.subscribe("column-hide", this.reinitializeColumns.bind(this));
36
38
  this.subscribe("column-show", this.reinitializeColumns.bind(this));
39
+ this.subscribe("columns-loaded", this.reinitializeColumns.bind(this));
37
40
 
38
41
  this.subscribe("table-redraw", this.layout.bind(this));
39
42
  this.subscribe("layout-refreshing", this.blockLayout.bind(this));
@@ -280,6 +283,10 @@ class FrozenColumns extends Module{
280
283
  this.table.columnManager.getContentsElement().style.width = "calc(100% - " + width + "px)";
281
284
  }
282
285
  }
286
+
287
+ getFrozenColumns(){
288
+ return this.leftColumns.concat(this.rightColumns);
289
+ }
283
290
 
284
291
  _calcSpace(columns, index){
285
292
  var width = 0;
@@ -292,8 +299,4 @@ class FrozenColumns extends Module{
292
299
 
293
300
  return width;
294
301
  }
295
- }
296
-
297
- FrozenColumns.moduleName = "frozenColumns";
298
-
299
- export default FrozenColumns;
302
+ }
@@ -1,6 +1,8 @@
1
1
  import Module from '../../core/Module.js';
2
2
 
3
- class FrozenRows extends Module{
3
+ export default class FrozenRows extends Module{
4
+
5
+ static moduleName = "frozenRows";
4
6
 
5
7
  constructor(table){
6
8
  super(table);
@@ -168,8 +170,4 @@ class FrozenRows extends Module{
168
170
  this.table.rowManager.styleRow(row, i);
169
171
  });
170
172
  }
171
- }
172
-
173
- FrozenRows.moduleName = "frozenRows";
174
-
175
- export default FrozenRows;
173
+ }
@@ -2,7 +2,7 @@ import Helpers from '../../core/tools/Helpers.js';
2
2
  import GroupComponent from './GroupComponent.js';
3
3
 
4
4
  //Group functions
5
- class Group{
5
+ export default class Group{
6
6
 
7
7
  constructor(groupManager, parent, level, key, field, generator, oldGroup){
8
8
  this.groupManager = groupManager;
@@ -610,6 +610,4 @@ class Group{
610
610
 
611
611
  return this.component;
612
612
  }
613
- }
614
-
615
- export default Group;
613
+ }
@@ -1,5 +1,5 @@
1
1
  //public group object
2
- class GroupComponent {
2
+ export default class GroupComponent {
3
3
  constructor (group){
4
4
  this._group = group;
5
5
  this.type = "GroupComponent";
@@ -66,6 +66,4 @@ class GroupComponent {
66
66
  getTable(){
67
67
  return this._group.groupManager.table;
68
68
  }
69
- }
70
-
71
- export default GroupComponent;
69
+ }
@@ -2,7 +2,9 @@ import Module from '../../core/Module.js';
2
2
 
3
3
  import Group from './Group.js';
4
4
 
5
- class GroupRows extends Module{
5
+ export default class GroupRows extends Module{
6
+
7
+ static moduleName = "groupRows";
6
8
 
7
9
  constructor(table){
8
10
  super(table);
@@ -633,8 +635,4 @@ class GroupRows extends Module{
633
635
  }
634
636
  }
635
637
 
636
- }
637
-
638
- GroupRows.moduleName = "groupRows";
639
-
640
- export default GroupRows;
638
+ }
@@ -4,8 +4,16 @@ import Cell from '../../core/cell/Cell.js';
4
4
 
5
5
  import defaultUndoers from './defaults/undoers.js';
6
6
  import defaultRedoers from './defaults/redoers.js';
7
+ import extensions from './extensions/extensions.js';
7
8
 
8
- class History extends Module{
9
+ export default class History extends Module{
10
+
11
+ static moduleName = "history";
12
+ static moduleExtensions = extensions;
13
+
14
+ //load defaults
15
+ static undoers = defaultUndoers;
16
+ static redoers = defaultRedoers;
9
17
 
10
18
  constructor(table){
11
19
  super(table);
@@ -161,12 +169,4 @@ class History extends Module{
161
169
  }
162
170
  });
163
171
  }
164
- }
165
-
166
- History.moduleName = "history";
167
-
168
- //load defaults
169
- History.undoers = defaultUndoers;
170
- History.redoers = defaultRedoers;
171
-
172
- export default History;
172
+ }
@@ -0,0 +1,9 @@
1
+ import bindings from './keybindings/bindings.js';
2
+ import actions from './keybindings/actions.js';
3
+
4
+ export default {
5
+ keybindings:{
6
+ bindings:bindings,
7
+ actions:actions
8
+ },
9
+ };
@@ -0,0 +1,27 @@
1
+ export default {
2
+ undo:function(e){
3
+ var cell = false;
4
+ if(this.table.options.history && this.table.modExists("history") && this.table.modExists("edit")){
5
+
6
+ cell = this.table.modules.edit.currentCell;
7
+
8
+ if(!cell){
9
+ e.preventDefault();
10
+ this.table.modules.history.undo();
11
+ }
12
+ }
13
+ },
14
+
15
+ redo:function(e){
16
+ var cell = false;
17
+ if(this.table.options.history && this.table.modExists("history") && this.table.modExists("edit")){
18
+
19
+ cell = this.table.modules.edit.currentCell;
20
+
21
+ if(!cell){
22
+ e.preventDefault();
23
+ this.table.modules.history.redo();
24
+ }
25
+ }
26
+ },
27
+ };
@@ -0,0 +1,4 @@
1
+ export default {
2
+ undo:["ctrl + 90", "meta + 90"],
3
+ redo:["ctrl + 89", "meta + 89"],
4
+ };
@@ -1,6 +1,8 @@
1
1
  import Module from '../../core/Module.js';
2
2
 
3
- class HtmlTableImport extends Module{
3
+ export default class HtmlTableImport extends Module{
4
+
5
+ static moduleName = "htmlTableImport";
4
6
 
5
7
  constructor(table){
6
8
  super(table);
@@ -175,8 +177,4 @@ class HtmlTableImport extends Module{
175
177
  this.table.options.columns.push(col);
176
178
  }
177
179
  }
178
- }
179
-
180
- HtmlTableImport.moduleName = "htmlTableImport";
181
-
182
- export default HtmlTableImport;
180
+ }
@@ -2,7 +2,12 @@ import Module from '../../core/Module.js';
2
2
 
3
3
  import defaultImporters from './defaults/importers.js';
4
4
 
5
- class Import extends Module{
5
+ export default class Import extends Module{
6
+
7
+ static moduleName = "import";
8
+
9
+ //load defaults
10
+ static importers = defaultImporters;
6
11
 
7
12
  constructor(table){
8
13
  super(table);
@@ -184,11 +189,4 @@ class Import extends Module{
184
189
  setData(data){
185
190
  return this.table.setData(data);
186
191
  }
187
- }
188
-
189
- Import.moduleName = "import";
190
-
191
- //load defaults
192
- Import.importers = defaultImporters;
193
-
194
- export default Import;
192
+ }
@@ -1,5 +1,3 @@
1
- function arrayImporter(input){
1
+ export default function (input){
2
2
  return input;
3
- }
4
-
5
- export default arrayImporter;
3
+ }
@@ -1,4 +1,4 @@
1
- function csvImporter(input){
1
+ export default function(input){
2
2
  var data = [],
3
3
  row = 0,
4
4
  col = 0,
@@ -58,6 +58,4 @@ function csvImporter(input){
58
58
  }
59
59
 
60
60
  return data;
61
- }
62
-
63
- export default csvImporter;
61
+ }
@@ -3,7 +3,9 @@ import Module from '../../core/Module.js';
3
3
  import Cell from '../../core/cell/Cell.js';
4
4
  import Column from '../../core/column/Column.js';
5
5
 
6
- class Interaction extends Module{
6
+ export default class Interaction extends Module{
7
+
8
+ static moduleName = "interaction";
7
9
 
8
10
  constructor(table){
9
11
  super(table);
@@ -330,8 +332,4 @@ class Interaction extends Module{
330
332
 
331
333
  this.dispatchExternal(action, e, componentObj);
332
334
  }
333
- }
334
-
335
- Interaction.moduleName = "interaction";
336
-
337
- export default Interaction;
335
+ }