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
@@ -1,4 +1,4 @@
1
- /* Tabulator v5.5.2 (c) Oliver Folkerd 2023 */
1
+ /* Tabulator v5.5.3 (c) Oliver Folkerd 2024 */
2
2
  (function (global, factory) {
3
3
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
4
4
  typeof define === 'function' && define.amd ? define(factory) :
@@ -1712,6 +1712,25 @@
1712
1712
  };
1713
1713
  }
1714
1714
 
1715
+ static retrieveNestedData(separator, field, data){
1716
+ var structure = separator ? field.split(separator) : [field],
1717
+ length = structure.length,
1718
+ output;
1719
+
1720
+ for(let i = 0; i < length; i++){
1721
+
1722
+ data = data[structure[i]];
1723
+
1724
+ output = data;
1725
+
1726
+ if(!data){
1727
+ break;
1728
+ }
1729
+ }
1730
+
1731
+ return output;
1732
+ }
1733
+
1715
1734
  static deepClone(obj, clone, list = []){
1716
1735
  var objectProto = {}.__proto__,
1717
1736
  arrayProto = [].__proto__;
@@ -2979,7 +2998,7 @@
2979
2998
  var matches = [];
2980
2999
 
2981
3000
  Object.keys(this.columnsByField).forEach((field) => {
2982
- var fieldRoot = field.split(".")[0];
3001
+ var fieldRoot = this.table.options.nestedFieldSeparator ? field.split(this.table.options.nestedFieldSeparator)[0] : field;
2983
3002
  if(fieldRoot === root){
2984
3003
  matches.push(this.columnsByField[field]);
2985
3004
  }
@@ -5334,7 +5353,7 @@
5334
5353
  refreshPipelines(handler, stage, index, renderInPosition){
5335
5354
  this.dispatch("data-refreshing");
5336
5355
 
5337
- if(!handler){
5356
+ if(!handler || !this.activeRowsPipeline[0]){
5338
5357
  this.activeRowsPipeline[0] = this.rows.slice(0);
5339
5358
  }
5340
5359
 
@@ -5344,7 +5363,6 @@
5344
5363
  //handle case where all data needs refreshing
5345
5364
 
5346
5365
  case "dataPipeline":
5347
-
5348
5366
  for(let i = index; i < this.dataPipeline.length; i++){
5349
5367
  let result = this.dataPipeline[i].handler(this.activeRowsPipeline[i].slice(0));
5350
5368
 
@@ -9096,7 +9114,7 @@
9096
9114
  ajaxParams = ajaxParams.call(this.table);
9097
9115
  }
9098
9116
 
9099
- params = Object.assign(params, ajaxParams);
9117
+ params = Object.assign(Object.assign({}, ajaxParams), params);
9100
9118
  }
9101
9119
 
9102
9120
  return params;
@@ -13746,21 +13764,24 @@
13746
13764
  if(newRow){
13747
13765
  cell.getElement().firstChild.blur();
13748
13766
 
13749
- if(newRow === true){
13750
- newRow = this.table.addRow({});
13751
- }else {
13752
- if(typeof newRow == "function"){
13753
- newRow = this.table.addRow(newRow(cell.row.getComponent()));
13767
+ if(!this.invalidEdit){
13768
+
13769
+ if(newRow === true){
13770
+ newRow = this.table.addRow({});
13754
13771
  }else {
13755
- newRow = this.table.addRow(Object.assign({}, newRow));
13772
+ if(typeof newRow == "function"){
13773
+ newRow = this.table.addRow(newRow(cell.row.getComponent()));
13774
+ }else {
13775
+ newRow = this.table.addRow(Object.assign({}, newRow));
13776
+ }
13756
13777
  }
13757
- }
13758
-
13759
- newRow.then(() => {
13760
- setTimeout(() => {
13761
- cell.getComponent().navigateNext();
13778
+
13779
+ newRow.then(() => {
13780
+ setTimeout(() => {
13781
+ cell.getComponent().navigateNext();
13782
+ });
13762
13783
  });
13763
- });
13784
+ }
13764
13785
  }
13765
13786
  }
13766
13787
  }
@@ -14016,7 +14037,7 @@
14016
14037
  this.cancelEdit();
14017
14038
  }
14018
14039
  }
14019
-
14040
+
14020
14041
  rowEditableCheck(row){
14021
14042
  row.getCells().forEach((cell) => {
14022
14043
  if(cell.column.modules.edit && typeof cell.column.modules.edit.check === "function"){
@@ -14203,7 +14224,7 @@
14203
14224
 
14204
14225
  allowEdit(cell) {
14205
14226
  var check = cell.column.modules.edit ? true : false;
14206
-
14227
+
14207
14228
  if(cell.column.modules.edit){
14208
14229
  switch(typeof cell.column.modules.edit.check){
14209
14230
  case "function":
@@ -14211,17 +14232,17 @@
14211
14232
  check = cell.column.modules.edit.check(cell.getComponent());
14212
14233
  }
14213
14234
  break;
14214
-
14235
+
14215
14236
  case "string":
14216
14237
  check = !!cell.row.data[cell.column.modules.edit.check];
14217
14238
  break;
14218
-
14239
+
14219
14240
  case "boolean":
14220
14241
  check = cell.column.modules.edit.check;
14221
14242
  break;
14222
14243
  }
14223
14244
  }
14224
-
14245
+
14225
14246
  return check;
14226
14247
  }
14227
14248
 
@@ -14233,7 +14254,7 @@
14233
14254
  cellEditor, component, params;
14234
14255
 
14235
14256
  //prevent editing if another cell is refusing to leave focus (eg. validation fail)
14236
-
14257
+
14237
14258
  if(this.currentCell){
14238
14259
  if(!this.invalidEdit && this.currentCell !== cell){
14239
14260
  this.cancelEdit();
@@ -16138,7 +16159,8 @@
16138
16159
  if(label){
16139
16160
  if(formatterParams.urlField){
16140
16161
  data = cell.getData();
16141
- value = data[formatterParams.urlField];
16162
+
16163
+ value = Helpers.retrieveNestedData(this.table.options.nestedFieldSeparator, formatterParams.urlField, data);
16142
16164
  }
16143
16165
 
16144
16166
  if(formatterParams.url){
@@ -21642,7 +21664,7 @@
21642
21664
 
21643
21665
  userSetPageToRow(row){
21644
21666
  if(this.table.options.pagination){
21645
- row = this.rowManager.findRow(row);
21667
+ row = this.table.rowManager.findRow(row);
21646
21668
 
21647
21669
  if(row){
21648
21670
  return this.setPageToRow(row);
@@ -22582,7 +22604,7 @@
22582
22604
  }
22583
22605
 
22584
22606
  setColumnLayout(layout){
22585
- this.table.columnManager.setColumns(this.mergeDefinition(this.table.options.columns, layout));
22607
+ this.table.columnManager.setColumns(this.mergeDefinition(this.table.options.columns, layout, true));
22586
22608
  return true;
22587
22609
  }
22588
22610
 
@@ -22648,7 +22670,7 @@
22648
22670
  }
22649
22671
 
22650
22672
  //merge old and new column definitions
22651
- mergeDefinition(oldCols, newCols){
22673
+ mergeDefinition(oldCols, newCols, mergeAllNew){
22652
22674
  var output = [];
22653
22675
 
22654
22676
  newCols = newCols || [];
@@ -22658,7 +22680,9 @@
22658
22680
  keys;
22659
22681
 
22660
22682
  if(from){
22661
- if(this.config.columns === true || this.config.columns == undefined){
22683
+ if(mergeAllNew){
22684
+ keys = Object.keys(column);
22685
+ }else if(this.config.columns === true || this.config.columns == undefined){
22662
22686
  keys = Object.keys(from);
22663
22687
  keys.push("width");
22664
22688
  }else {