tabulator-tables 5.5.2 → 5.5.3

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 (63) hide show
  1. package/bower.json +1 -1
  2. package/dist/css/tabulator.css +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  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 +52 -28
  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 +52 -28
  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 +4 -3
  55. package/src/js/core/ColumnManager.js +1 -1
  56. package/src/js/core/RowManager.js +1 -2
  57. package/src/js/core/tools/Helpers.js +19 -0
  58. package/src/js/modules/Ajax/Ajax.js +1 -1
  59. package/src/js/modules/Edit/Edit.js +21 -18
  60. package/src/js/modules/Format/defaults/formatters/link.js +5 -1
  61. package/src/js/modules/Page/Page.js +1 -1
  62. package/src/js/modules/Persistence/Persistence.js +5 -3
  63. package/src/scss/tabulator.scss +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tabulator-tables",
3
- "version": "5.5.2",
3
+ "version": "5.5.3",
4
4
  "description": "Interactive table generation JavaScript library",
5
5
  "style": "dist/css/tabulator.css",
6
6
  "main": "dist/js/tabulator.js",
@@ -54,7 +54,6 @@
54
54
  "eslint-plugin-only-warn": "^1.0.3",
55
55
  "fs-extra": "^9.0.1",
56
56
  "globby": "^11.0.2",
57
- "node-sass": "^7.0.3",
58
57
  "postcss": "^8.2.4",
59
58
  "postcss-prettify": "^0.3.4",
60
59
  "rollup": "^2.36.1",
@@ -62,5 +61,7 @@
62
61
  "rollup-plugin-postcss": "^4.0.0",
63
62
  "rollup-plugin-terser": "^7.0.2"
64
63
  },
65
- "dependencies": {}
64
+ "dependencies": {
65
+ "node-sass": "^9.0.0"
66
+ }
66
67
  }
@@ -387,7 +387,7 @@ export default class ColumnManager extends CoreFeature {
387
387
  var matches = [];
388
388
 
389
389
  Object.keys(this.columnsByField).forEach((field) => {
390
- var fieldRoot = field.split(".")[0];
390
+ var fieldRoot = this.table.options.nestedFieldSeparator ? field.split(this.table.options.nestedFieldSeparator)[0] : field;
391
391
  if(fieldRoot === root){
392
392
  matches.push(this.columnsByField[field]);
393
393
  }
@@ -714,7 +714,7 @@ export default class RowManager extends CoreFeature{
714
714
  refreshPipelines(handler, stage, index, renderInPosition){
715
715
  this.dispatch("data-refreshing");
716
716
 
717
- if(!handler){
717
+ if(!handler || !this.activeRowsPipeline[0]){
718
718
  this.activeRowsPipeline[0] = this.rows.slice(0);
719
719
  }
720
720
 
@@ -724,7 +724,6 @@ export default class RowManager extends CoreFeature{
724
724
  //handle case where all data needs refreshing
725
725
 
726
726
  case "dataPipeline":
727
-
728
727
  for(let i = index; i < this.dataPipeline.length; i++){
729
728
  let result = this.dataPipeline[i].handler(this.activeRowsPipeline[i].slice(0));
730
729
 
@@ -13,6 +13,25 @@ export default class Helpers{
13
13
  };
14
14
  }
15
15
 
16
+ static retrieveNestedData(separator, field, data){
17
+ var structure = separator ? field.split(separator) : [field],
18
+ length = structure.length,
19
+ output;
20
+
21
+ for(let i = 0; i < length; i++){
22
+
23
+ data = data[structure[i]];
24
+
25
+ output = data;
26
+
27
+ if(!data){
28
+ break;
29
+ }
30
+ }
31
+
32
+ return output;
33
+ }
34
+
16
35
  static deepClone(obj, clone, list = []){
17
36
  var objectProto = {}.__proto__,
18
37
  arrayProto = [].__proto__;
@@ -57,7 +57,7 @@ class Ajax extends Module{
57
57
  ajaxParams = ajaxParams.call(this.table);
58
58
  }
59
59
 
60
- params = Object.assign(params, ajaxParams);
60
+ params = Object.assign(Object.assign({}, ajaxParams), params);
61
61
  }
62
62
 
63
63
  return params;
@@ -78,21 +78,24 @@ class Edit extends Module{
78
78
  if(newRow){
79
79
  cell.getElement().firstChild.blur();
80
80
 
81
- if(newRow === true){
82
- newRow = this.table.addRow({});
83
- }else{
84
- if(typeof newRow == "function"){
85
- newRow = this.table.addRow(newRow(cell.row.getComponent()));
81
+ if(!this.invalidEdit){
82
+
83
+ if(newRow === true){
84
+ newRow = this.table.addRow({});
86
85
  }else{
87
- newRow = this.table.addRow(Object.assign({}, newRow));
86
+ if(typeof newRow == "function"){
87
+ newRow = this.table.addRow(newRow(cell.row.getComponent()));
88
+ }else{
89
+ newRow = this.table.addRow(Object.assign({}, newRow));
90
+ }
88
91
  }
89
- }
90
-
91
- newRow.then(() => {
92
- setTimeout(() => {
93
- cell.getComponent().navigateNext();
92
+
93
+ newRow.then(() => {
94
+ setTimeout(() => {
95
+ cell.getComponent().navigateNext();
96
+ });
94
97
  });
95
- });
98
+ }
96
99
  }
97
100
  }
98
101
  }
@@ -348,7 +351,7 @@ class Edit extends Module{
348
351
  this.cancelEdit();
349
352
  }
350
353
  }
351
-
354
+
352
355
  rowEditableCheck(row){
353
356
  row.getCells().forEach((cell) => {
354
357
  if(cell.column.modules.edit && typeof cell.column.modules.edit.check === "function"){
@@ -535,7 +538,7 @@ class Edit extends Module{
535
538
 
536
539
  allowEdit(cell) {
537
540
  var check = cell.column.modules.edit ? true : false;
538
-
541
+
539
542
  if(cell.column.modules.edit){
540
543
  switch(typeof cell.column.modules.edit.check){
541
544
  case "function":
@@ -543,17 +546,17 @@ class Edit extends Module{
543
546
  check = cell.column.modules.edit.check(cell.getComponent());
544
547
  }
545
548
  break;
546
-
549
+
547
550
  case "string":
548
551
  check = !!cell.row.data[cell.column.modules.edit.check];
549
552
  break;
550
-
553
+
551
554
  case "boolean":
552
555
  check = cell.column.modules.edit.check;
553
556
  break;
554
557
  }
555
558
  }
556
-
559
+
557
560
  return check;
558
561
  }
559
562
 
@@ -565,7 +568,7 @@ class Edit extends Module{
565
568
  cellEditor, component, params;
566
569
 
567
570
  //prevent editing if another cell is refusing to leave focus (eg. validation fail)
568
-
571
+
569
572
  if(this.currentCell){
570
573
  if(!this.invalidEdit && this.currentCell !== cell){
571
574
  this.cancelEdit();
@@ -1,3 +1,6 @@
1
+ import Helpers from '../../../../core/tools/Helpers.js';
2
+
3
+
1
4
  export default function(cell, formatterParams, onRendered){
2
5
  var value = cell.getValue(),
3
6
  urlPrefix = formatterParams.urlPrefix || "",
@@ -37,7 +40,8 @@ export default function(cell, formatterParams, onRendered){
37
40
  if(label){
38
41
  if(formatterParams.urlField){
39
42
  data = cell.getData();
40
- value = data[formatterParams.urlField];
43
+
44
+ value = Helpers.retrieveNestedData(this.table.options.nestedFieldSeparator, formatterParams.urlField, data);
41
45
  }
42
46
 
43
47
  if(formatterParams.url){
@@ -178,7 +178,7 @@ class Page extends Module{
178
178
 
179
179
  userSetPageToRow(row){
180
180
  if(this.table.options.pagination){
181
- row = this.rowManager.findRow(row);
181
+ row = this.table.rowManager.findRow(row);
182
182
 
183
183
  if(row){
184
184
  return this.setPageToRow(row);
@@ -201,7 +201,7 @@ class Persistence extends Module{
201
201
  }
202
202
 
203
203
  setColumnLayout(layout){
204
- this.table.columnManager.setColumns(this.mergeDefinition(this.table.options.columns, layout));
204
+ this.table.columnManager.setColumns(this.mergeDefinition(this.table.options.columns, layout, true));
205
205
  return true;
206
206
  }
207
207
 
@@ -267,7 +267,7 @@ class Persistence extends Module{
267
267
  }
268
268
 
269
269
  //merge old and new column definitions
270
- mergeDefinition(oldCols, newCols){
270
+ mergeDefinition(oldCols, newCols, mergeAllNew){
271
271
  var output = [];
272
272
 
273
273
  newCols = newCols || [];
@@ -277,7 +277,9 @@ class Persistence extends Module{
277
277
  keys;
278
278
 
279
279
  if(from){
280
- if(this.config.columns === true || this.config.columns == undefined){
280
+ if(mergeAllNew){
281
+ keys = Object.keys(column);
282
+ }else if(this.config.columns === true || this.config.columns == undefined){
281
283
  keys = Object.keys(from);
282
284
  keys.push("width");
283
285
  }else{
@@ -578,7 +578,7 @@ $footerActiveColor:#d00 !default; //footer bottom active text color
578
578
  opacity:.5;
579
579
  }
580
580
 
581
- &:not(.disabled){
581
+ &:not(disabled){
582
582
  @media (hover:hover) and (pointer:fine){
583
583
  &:hover{
584
584
  cursor:pointer;