tabulator-tables 5.2.7 → 5.3.2

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 (214) hide show
  1. package/.eslintignore +3 -0
  2. package/.eslintrc.js +28 -0
  3. package/.github/workflows/bad-files-check.yml +39 -0
  4. package/.github/workflows/lint-and-test.yml +31 -0
  5. package/README.md +3 -3
  6. package/bower.json +1 -1
  7. package/build/Bundler.js +77 -77
  8. package/dist/css/tabulator.css +12 -7
  9. package/dist/css/tabulator.css.map +1 -1
  10. package/dist/css/tabulator.min.css +1 -1
  11. package/dist/css/tabulator.min.css.map +1 -1
  12. package/dist/css/tabulator_bootstrap3.css +12 -7
  13. package/dist/css/tabulator_bootstrap3.css.map +1 -1
  14. package/dist/css/tabulator_bootstrap3.min.css +1 -1
  15. package/dist/css/tabulator_bootstrap3.min.css.map +1 -1
  16. package/dist/css/tabulator_bootstrap4.css +12 -7
  17. package/dist/css/tabulator_bootstrap4.css.map +1 -1
  18. package/dist/css/tabulator_bootstrap4.min.css +1 -1
  19. package/dist/css/tabulator_bootstrap4.min.css.map +1 -1
  20. package/dist/css/tabulator_bootstrap5.css +12 -7
  21. package/dist/css/tabulator_bootstrap5.css.map +1 -1
  22. package/dist/css/tabulator_bootstrap5.min.css +1 -1
  23. package/dist/css/tabulator_bootstrap5.min.css.map +1 -1
  24. package/dist/css/tabulator_bulma.css +12 -7
  25. package/dist/css/tabulator_bulma.css.map +1 -1
  26. package/dist/css/tabulator_bulma.min.css +1 -1
  27. package/dist/css/tabulator_bulma.min.css.map +1 -1
  28. package/dist/css/tabulator_materialize.css +12 -7
  29. package/dist/css/tabulator_materialize.css.map +1 -1
  30. package/dist/css/tabulator_materialize.min.css +1 -1
  31. package/dist/css/tabulator_materialize.min.css.map +1 -1
  32. package/dist/css/tabulator_midnight.css +12 -7
  33. package/dist/css/tabulator_midnight.css.map +1 -1
  34. package/dist/css/tabulator_midnight.min.css +1 -1
  35. package/dist/css/tabulator_midnight.min.css.map +1 -1
  36. package/dist/css/tabulator_modern.css +12 -7
  37. package/dist/css/tabulator_modern.css.map +1 -1
  38. package/dist/css/tabulator_modern.min.css +1 -1
  39. package/dist/css/tabulator_modern.min.css.map +1 -1
  40. package/dist/css/tabulator_semanticui.css +12 -7
  41. package/dist/css/tabulator_semanticui.css.map +1 -1
  42. package/dist/css/tabulator_semanticui.min.css +1 -1
  43. package/dist/css/tabulator_semanticui.min.css.map +1 -1
  44. package/dist/css/tabulator_simple.css +12 -7
  45. package/dist/css/tabulator_simple.css.map +1 -1
  46. package/dist/css/tabulator_simple.min.css +1 -1
  47. package/dist/css/tabulator_simple.min.css.map +1 -1
  48. package/dist/css/tabulator_site.css +12 -7
  49. package/dist/css/tabulator_site.css.map +1 -1
  50. package/dist/css/tabulator_site.min.css +1 -1
  51. package/dist/css/tabulator_site.min.css.map +1 -1
  52. package/dist/js/jquery_wrapper.js +37 -37
  53. package/dist/js/tabulator.js +1551 -793
  54. package/dist/js/tabulator.js.map +1 -1
  55. package/dist/js/tabulator.min.js +2 -2
  56. package/dist/js/tabulator.min.js.map +1 -1
  57. package/dist/js/tabulator_esm.js +4300 -3581
  58. package/dist/js/tabulator_esm.js.map +1 -1
  59. package/dist/js/tabulator_esm.min.js +2 -2
  60. package/dist/js/tabulator_esm.min.js.map +1 -1
  61. package/package.json +4 -1
  62. package/src/js/builds/jquery_wrapper.js +37 -37
  63. package/src/js/core/ColumnManager.js +270 -232
  64. package/src/js/core/CoreFeature.js +16 -2
  65. package/src/js/core/FooterManager.js +10 -10
  66. package/src/js/core/Module.js +8 -8
  67. package/src/js/core/RowManager.js +139 -156
  68. package/src/js/core/Tabulator.js +88 -74
  69. package/src/js/core/TabulatorFull.js +1 -1
  70. package/src/js/core/cell/Cell.js +15 -16
  71. package/src/js/core/cell/CellComponent.js +2 -2
  72. package/src/js/core/column/Column.js +81 -68
  73. package/src/js/core/column/ColumnComponent.js +4 -4
  74. package/src/js/core/column/defaults/options.js +1 -1
  75. package/src/js/core/defaults/options.js +4 -2
  76. package/src/js/core/rendering/Renderer.js +19 -19
  77. package/src/js/core/rendering/renderers/BasicHorizontal.js +1 -2
  78. package/src/js/core/rendering/renderers/BasicVertical.js +1 -1
  79. package/src/js/core/rendering/renderers/VirtualDomHorizontal.js +42 -58
  80. package/src/js/core/rendering/renderers/VirtualDomVertical.js +31 -22
  81. package/src/js/core/row/Row.js +32 -8
  82. package/src/js/core/row/RowComponent.js +8 -4
  83. package/src/js/core/tools/Alert.js +44 -45
  84. package/src/js/core/tools/ComponentFunctionBinder.js +4 -2
  85. package/src/js/core/tools/DataLoader.js +3 -3
  86. package/src/js/core/tools/DeprecationAdvisor.js +47 -0
  87. package/src/js/core/tools/ExternalEventBus.js +5 -5
  88. package/src/js/core/tools/InteractionMonitor.js +41 -39
  89. package/src/js/core/tools/InternalEventBus.js +5 -5
  90. package/src/js/core/tools/ModuleBinder.js +6 -6
  91. package/src/js/core/tools/OptionsList.js +4 -4
  92. package/src/js/core/tools/Popup.js +211 -202
  93. package/src/js/modules/Accessor/Accessor.js +16 -16
  94. package/src/js/modules/Accessor/defaults/accessors.js +1 -1
  95. package/src/js/modules/Ajax/Ajax.js +7 -7
  96. package/src/js/modules/Ajax/defaults/loaderPromise.js +19 -19
  97. package/src/js/modules/Ajax/defaults/urlGenerator.js +1 -1
  98. package/src/js/modules/Clipboard/Clipboard.js +23 -23
  99. package/src/js/modules/Clipboard/defaults/pasteParsers.js +0 -2
  100. package/src/js/modules/ColumnCalcs/CalcComponent.js +2 -2
  101. package/src/js/modules/ColumnCalcs/ColumnCalcs.js +55 -51
  102. package/src/js/modules/ColumnCalcs/defaults/calculations.js +1 -1
  103. package/src/js/modules/DataTree/DataTree.js +24 -15
  104. package/src/js/modules/Download/Download.js +15 -8
  105. package/src/js/modules/Download/defaults/downloaders/csv.js +28 -28
  106. package/src/js/modules/Download/defaults/downloaders/html.js +2 -2
  107. package/src/js/modules/Download/defaults/downloaders/json.js +14 -14
  108. package/src/js/modules/Download/defaults/downloaders/jsonLines.js +1 -1
  109. package/src/js/modules/Download/defaults/downloaders/pdf.js +17 -19
  110. package/src/js/modules/Download/defaults/downloaders/xlsx.js +2 -2
  111. package/src/js/modules/Edit/Edit.js +219 -201
  112. package/src/js/modules/Edit/List.js +1026 -1006
  113. package/src/js/modules/Edit/defaults/editors/autocomplete.js +3 -3
  114. package/src/js/modules/Edit/defaults/editors/date.js +110 -0
  115. package/src/js/modules/Edit/defaults/editors/datetime.js +97 -0
  116. package/src/js/modules/Edit/defaults/editors/input.js +7 -7
  117. package/src/js/modules/Edit/defaults/editors/list.js +2 -2
  118. package/src/js/modules/Edit/defaults/editors/number.js +12 -12
  119. package/src/js/modules/Edit/defaults/editors/progress.js +11 -11
  120. package/src/js/modules/Edit/defaults/editors/range.js +5 -5
  121. package/src/js/modules/Edit/defaults/editors/select.js +3 -3
  122. package/src/js/modules/Edit/defaults/editors/star.js +9 -9
  123. package/src/js/modules/Edit/defaults/editors/textarea.js +97 -92
  124. package/src/js/modules/Edit/defaults/editors/tickCross.js +1 -3
  125. package/src/js/modules/Edit/defaults/editors/time.js +98 -0
  126. package/src/js/modules/Edit/defaults/editors.js +8 -2
  127. package/src/js/modules/Edit/inputMask.js +19 -26
  128. package/src/js/modules/Export/Export.js +69 -65
  129. package/src/js/modules/Filter/Filter.js +88 -95
  130. package/src/js/modules/Format/Format.js +24 -26
  131. package/src/js/modules/Format/defaults/formatters/buttonCross.js +1 -1
  132. package/src/js/modules/Format/defaults/formatters/buttonTick.js +1 -1
  133. package/src/js/modules/Format/defaults/formatters/color.js +1 -1
  134. package/src/js/modules/Format/defaults/formatters/datetime.js +7 -7
  135. package/src/js/modules/Format/defaults/formatters/datetimediff.js +7 -7
  136. package/src/js/modules/Format/defaults/formatters/handle.js +1 -1
  137. package/src/js/modules/Format/defaults/formatters/html.js +1 -1
  138. package/src/js/modules/Format/defaults/formatters/image.js +9 -9
  139. package/src/js/modules/Format/defaults/formatters/link.js +10 -10
  140. package/src/js/modules/Format/defaults/formatters/lookup.js +1 -1
  141. package/src/js/modules/Format/defaults/formatters/money.js +1 -1
  142. package/src/js/modules/Format/defaults/formatters/plaintext.js +1 -1
  143. package/src/js/modules/Format/defaults/formatters/progress.js +41 -42
  144. package/src/js/modules/Format/defaults/formatters/responsiveCollapse.js +3 -3
  145. package/src/js/modules/Format/defaults/formatters/rowSelection.js +1 -1
  146. package/src/js/modules/Format/defaults/formatters/rownum.js +9 -2
  147. package/src/js/modules/Format/defaults/formatters/star.js +1 -1
  148. package/src/js/modules/Format/defaults/formatters/textarea.js +1 -1
  149. package/src/js/modules/Format/defaults/formatters/tickCross.js +1 -1
  150. package/src/js/modules/Format/defaults/formatters/traffic.js +14 -14
  151. package/src/js/modules/FrozenColumns/FrozenColumns.js +6 -8
  152. package/src/js/modules/FrozenRows/FrozenRows.js +37 -7
  153. package/src/js/modules/GroupRows/Group.js +7 -7
  154. package/src/js/modules/GroupRows/GroupComponent.js +2 -2
  155. package/src/js/modules/GroupRows/GroupRows.js +34 -11
  156. package/src/js/modules/History/History.js +2 -2
  157. package/src/js/modules/HtmlTableImport/HtmlTableImport.js +3 -6
  158. package/src/js/modules/Import/Import.js +158 -159
  159. package/src/js/modules/Import/defaults/importers/array.js +5 -0
  160. package/src/js/modules/Import/defaults/importers/csv.js +49 -49
  161. package/src/js/modules/Import/defaults/importers/json.js +6 -6
  162. package/src/js/modules/Import/defaults/importers.js +2 -0
  163. package/src/js/modules/Interaction/Interaction.js +42 -43
  164. package/src/js/modules/Keybindings/Keybindings.js +14 -14
  165. package/src/js/modules/Keybindings/defaults/actions.js +1 -2
  166. package/src/js/modules/Layout/Layout.js +4 -5
  167. package/src/js/modules/Layout/defaults/modes/fitColumns.js +13 -16
  168. package/src/js/modules/Layout/defaults/modes/fitData.js +6 -4
  169. package/src/js/modules/Layout/defaults/modes/fitDataGeneral.js +2 -2
  170. package/src/js/modules/Layout/defaults/modes/fitDataStretch.js +2 -2
  171. package/src/js/modules/Localize/Localize.js +7 -7
  172. package/src/js/modules/Menu/Menu.js +8 -11
  173. package/src/js/modules/MoveColumns/MoveColumns.js +3 -6
  174. package/src/js/modules/MoveRows/MoveRows.js +30 -36
  175. package/src/js/modules/Mutator/Mutator.js +9 -9
  176. package/src/js/modules/Page/Page.js +73 -80
  177. package/src/js/modules/Page/defaults/pageCounters/pages.js +2 -2
  178. package/src/js/modules/Page/defaults/pageCounters/rows.js +1 -1
  179. package/src/js/modules/Persistence/Persistence.js +40 -44
  180. package/src/js/modules/Persistence/defaults/readers.js +1 -1
  181. package/src/js/modules/Popup/Popup.js +4 -5
  182. package/src/js/modules/Print/Print.js +2 -2
  183. package/src/js/modules/ReactiveData/ReactiveData.js +178 -115
  184. package/src/js/modules/ResizeColumns/ResizeColumns.js +3 -3
  185. package/src/js/modules/ResizeRows/ResizeRows.js +1 -1
  186. package/src/js/modules/ResizeTable/ResizeTable.js +77 -46
  187. package/src/js/modules/ResponsiveLayout/ResponsiveLayout.js +3 -5
  188. package/src/js/modules/SelectRow/SelectRow.js +26 -28
  189. package/src/js/modules/Sort/Sort.js +113 -85
  190. package/src/js/modules/Sort/defaults/sorters/alphanum.js +1 -1
  191. package/src/js/modules/Sort/defaults/sorters/array.js +24 -28
  192. package/src/js/modules/Sort/defaults/sorters/boolean.js +1 -1
  193. package/src/js/modules/Sort/defaults/sorters/date.js +1 -1
  194. package/src/js/modules/Sort/defaults/sorters/datetime.js +13 -13
  195. package/src/js/modules/Sort/defaults/sorters/exists.js +1 -1
  196. package/src/js/modules/Sort/defaults/sorters/number.js +1 -1
  197. package/src/js/modules/Sort/defaults/sorters/string.js +7 -7
  198. package/src/js/modules/Sort/defaults/sorters/time.js +1 -1
  199. package/src/js/modules/Tooltip/Tooltip.js +5 -7
  200. package/src/js/modules/Validate/Validate.js +10 -13
  201. package/src/js/modules/Validate/defaults/validators.js +8 -3
  202. package/src/scss/tabulator.scss +28 -17
  203. package/src/scss/themes/bootstrap/functions4.scss +1 -1
  204. package/src/scss/themes/bootstrap/tabulator_bootstrap3.scss +8 -8
  205. package/src/scss/themes/bootstrap/tabulator_bootstrap4.scss +8 -8
  206. package/src/scss/themes/bootstrap/tabulator_bootstrap5.scss +8 -8
  207. package/src/scss/themes/bulma/tabulator_bulma.scss +7 -7
  208. package/src/scss/themes/materialize/tabulator_materialize.scss +6 -6
  209. package/src/scss/themes/materialize/variables.scss +1 -1
  210. package/src/scss/themes/semanticui/tabulator_semanticui.scss +7 -7
  211. package/src/scss/themes/tabulator_midnight.scss +7 -7
  212. package/src/scss/themes/tabulator_modern.scss +14 -14
  213. package/src/scss/themes/tabulator_simple.scss +8 -8
  214. package/src/scss/themes/tabulator_site.scss +15 -15
@@ -1,5 +1,5 @@
1
- export default function(list, options, setFileContents){
2
- var delimiter = options && options.delimiter ? options.delimiter : ",",
1
+ export default function(list, options = {}, setFileContents){
2
+ var delimiter = options.delimiter ? options.delimiter : ",",
3
3
  fileContents = [],
4
4
  headers = [];
5
5
 
@@ -8,42 +8,42 @@ export default function(list, options, setFileContents){
8
8
 
9
9
  switch(row.type){
10
10
  case "group":
11
- console.warn("Download Warning - CSV downloader cannot process row groups");
12
- break;
11
+ console.warn("Download Warning - CSV downloader cannot process row groups");
12
+ break;
13
13
 
14
14
  case "calc":
15
- console.warn("Download Warning - CSV downloader cannot process column calculations");
16
- break;
15
+ console.warn("Download Warning - CSV downloader cannot process column calculations");
16
+ break;
17
17
 
18
18
  case "header":
19
- row.columns.forEach((col, i) => {
20
- if(col && col.depth === 1){
21
- headers[i] = typeof col.value == "undefined" || col.value === null ? "" : ('"' + String(col.value).split('"').join('""') + '"');
22
- }
23
- });
24
- break;
19
+ row.columns.forEach((col, i) => {
20
+ if(col && col.depth === 1){
21
+ headers[i] = typeof col.value == "undefined" || col.value === null ? "" : ('"' + String(col.value).split('"').join('""') + '"');
22
+ }
23
+ });
24
+ break;
25
25
 
26
26
  case "row":
27
- row.columns.forEach((col) => {
27
+ row.columns.forEach((col) => {
28
28
 
29
- if(col){
29
+ if(col){
30
30
 
31
- switch(typeof col.value){
32
- case "object":
33
- col.value = col.value !== null ? JSON.stringify(col.value) : "";
34
- break;
31
+ switch(typeof col.value){
32
+ case "object":
33
+ col.value = col.value !== null ? JSON.stringify(col.value) : "";
34
+ break;
35
35
 
36
- case "undefined":
37
- col.value = "";
38
- break;
39
- }
36
+ case "undefined":
37
+ col.value = "";
38
+ break;
39
+ }
40
40
 
41
- item.push('"' + String(col.value).split('"').join('""') + '"');
42
- }
43
- });
41
+ item.push('"' + String(col.value).split('"').join('""') + '"');
42
+ }
43
+ });
44
44
 
45
- fileContents.push(item.join(delimiter));
46
- break;
45
+ fileContents.push(item.join(delimiter));
46
+ break;
47
47
  }
48
48
  });
49
49
 
@@ -58,4 +58,4 @@ export default function(list, options, setFileContents){
58
58
  }
59
59
 
60
60
  setFileContents(fileContents, "text/csv");
61
- };
61
+ }
@@ -1,5 +1,5 @@
1
1
  export default function(list, options, setFileContents){
2
2
  if(this.modExists("export", true)){
3
- setFileContents(this.modules.export.genereateHTMLTable(list), "text/html");
3
+ setFileContents(this.modules.export.generateHTMLTable(list), "text/html");
4
4
  }
5
- };
5
+ }
@@ -6,29 +6,29 @@ export default function(list, options, setFileContents){
6
6
 
7
7
  switch(row.type){
8
8
  case "header":
9
- break;
9
+ break;
10
10
 
11
11
  case "group":
12
- console.warn("Download Warning - JSON downloader cannot process row groups");
13
- break;
12
+ console.warn("Download Warning - JSON downloader cannot process row groups");
13
+ break;
14
14
 
15
15
  case "calc":
16
- console.warn("Download Warning - JSON downloader cannot process column calculations");
17
- break;
16
+ console.warn("Download Warning - JSON downloader cannot process column calculations");
17
+ break;
18
18
 
19
19
  case "row":
20
- row.columns.forEach((col) => {
21
- if(col){
22
- item[col.component.getTitleDownload() || col.component.getField()] = col.value;
23
- }
24
- });
25
-
26
- fileContents.push(item);
27
- break;
20
+ row.columns.forEach((col) => {
21
+ if(col){
22
+ item[col.component.getTitleDownload() || col.component.getField()] = col.value;
23
+ }
24
+ });
25
+
26
+ fileContents.push(item);
27
+ break;
28
28
  }
29
29
  });
30
30
 
31
31
  fileContents = JSON.stringify(fileContents, null, '\t');
32
32
 
33
33
  setFileContents(fileContents, "application/json");
34
- };
34
+ }
@@ -29,4 +29,4 @@ export default function (list, options, setFileContents) {
29
29
  });
30
30
 
31
31
  setFileContents(fileContents.join("\n"), "application/x-ndjson");
32
- };
32
+ }
@@ -1,4 +1,4 @@
1
- export default function(list, options, setFileContents){
1
+ export default function(list, options = {}, setFileContents){
2
2
  var header = [],
3
3
  body = [],
4
4
  autoTableParams = {},
@@ -15,7 +15,7 @@ export default function(list, options, setFileContents){
15
15
  fillColor: 232,
16
16
  },
17
17
  jsPDFParams = options.jsPDF || {},
18
- title = options && options.title ? options.title : "";
18
+ title = options.title ? options.title : "";
19
19
 
20
20
  if(!jsPDFParams.orientation){
21
21
  jsPDFParams.orientation = options.orientation || "landscape";
@@ -27,24 +27,22 @@ export default function(list, options, setFileContents){
27
27
 
28
28
  //parse row list
29
29
  list.forEach((row) => {
30
- var item = {};
31
-
32
30
  switch(row.type){
33
31
  case "header":
34
- header.push(parseRow(row));
35
- break;
32
+ header.push(parseRow(row));
33
+ break;
36
34
 
37
35
  case "group":
38
- body.push(parseRow(row, rowGroupStyles));
39
- break;
36
+ body.push(parseRow(row, rowGroupStyles));
37
+ break;
40
38
 
41
39
  case "calc":
42
- body.push(parseRow(row, rowCalcStyles));
43
- break;
40
+ body.push(parseRow(row, rowCalcStyles));
41
+ break;
44
42
 
45
43
  case "row":
46
- body.push(parseRow(row));
47
- break;
44
+ body.push(parseRow(row));
45
+ break;
48
46
  }
49
47
  });
50
48
 
@@ -57,12 +55,12 @@ export default function(list, options, setFileContents){
57
55
  if(col){
58
56
  switch(typeof col.value){
59
57
  case "object":
60
- col.value = col.value !== null ? JSON.stringify(col.value) : "";
61
- break;
58
+ col.value = col.value !== null ? JSON.stringify(col.value) : "";
59
+ break;
62
60
 
63
61
  case "undefined":
64
- col.value = "";
65
- break;
62
+ col.value = "";
63
+ break;
66
64
  }
67
65
 
68
66
  cell = {
@@ -86,7 +84,7 @@ export default function(list, options, setFileContents){
86
84
  //configure PDF
87
85
  var doc = new jspdf.jsPDF(jsPDFParams); //set document to landscape, better for most tables
88
86
 
89
- if(options && options.autoTable){
87
+ if(options.autoTable){
90
88
  if(typeof options.autoTable === "function"){
91
89
  autoTableParams = options.autoTable(doc) || {};
92
90
  }else{
@@ -105,9 +103,9 @@ export default function(list, options, setFileContents){
105
103
 
106
104
  doc.autoTable(autoTableParams);
107
105
 
108
- if(options && options.documentProcessing){
106
+ if(options.documentProcessing){
109
107
  options.documentProcessing(doc);
110
108
  }
111
109
 
112
110
  setFileContents(doc.output("arraybuffer"), "application/pdf");
113
- };
111
+ }
@@ -89,10 +89,10 @@ export default function(list, options, setFileContents){
89
89
  var buf = new ArrayBuffer(s.length);
90
90
  var view = new Uint8Array(buf);
91
91
  for (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
92
- return buf;
92
+ return buf;
93
93
  }
94
94
 
95
95
  output = XLSX.write(workbook, {bookType:'xlsx', bookSST:true, type: 'binary'});
96
96
 
97
97
  setFileContents(s2ab(output), "application/octet-stream");
98
- };
98
+ }