tabulator-tables 5.5.1 → 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 (68) hide show
  1. package/LICENSE +1 -1
  2. package/bower.json +1 -1
  3. package/dist/css/tabulator.css +3 -3
  4. package/dist/css/tabulator.css.map +1 -1
  5. package/dist/css/tabulator.min.css +1 -1
  6. package/dist/css/tabulator.min.css.map +1 -1
  7. package/dist/css/tabulator_bootstrap3.css +3 -3
  8. package/dist/css/tabulator_bootstrap3.css.map +1 -1
  9. package/dist/css/tabulator_bootstrap3.min.css +1 -1
  10. package/dist/css/tabulator_bootstrap3.min.css.map +1 -1
  11. package/dist/css/tabulator_bootstrap4.css +3 -3
  12. package/dist/css/tabulator_bootstrap4.css.map +1 -1
  13. package/dist/css/tabulator_bootstrap4.min.css +1 -1
  14. package/dist/css/tabulator_bootstrap4.min.css.map +1 -1
  15. package/dist/css/tabulator_bootstrap5.css +3 -3
  16. package/dist/css/tabulator_bootstrap5.css.map +1 -1
  17. package/dist/css/tabulator_bootstrap5.min.css +1 -1
  18. package/dist/css/tabulator_bootstrap5.min.css.map +1 -1
  19. package/dist/css/tabulator_bulma.css +3 -3
  20. package/dist/css/tabulator_bulma.css.map +1 -1
  21. package/dist/css/tabulator_bulma.min.css +1 -1
  22. package/dist/css/tabulator_bulma.min.css.map +1 -1
  23. package/dist/css/tabulator_materialize.css +3 -3
  24. package/dist/css/tabulator_materialize.css.map +1 -1
  25. package/dist/css/tabulator_materialize.min.css +1 -1
  26. package/dist/css/tabulator_materialize.min.css.map +1 -1
  27. package/dist/css/tabulator_midnight.css +3 -3
  28. package/dist/css/tabulator_midnight.css.map +1 -1
  29. package/dist/css/tabulator_midnight.min.css +1 -1
  30. package/dist/css/tabulator_midnight.min.css.map +1 -1
  31. package/dist/css/tabulator_modern.css +3 -3
  32. package/dist/css/tabulator_modern.css.map +1 -1
  33. package/dist/css/tabulator_modern.min.css +1 -1
  34. package/dist/css/tabulator_modern.min.css.map +1 -1
  35. package/dist/css/tabulator_semanticui.css +3 -3
  36. package/dist/css/tabulator_semanticui.css.map +1 -1
  37. package/dist/css/tabulator_semanticui.min.css +1 -1
  38. package/dist/css/tabulator_semanticui.min.css.map +1 -1
  39. package/dist/css/tabulator_simple.css +3 -3
  40. package/dist/css/tabulator_simple.css.map +1 -1
  41. package/dist/css/tabulator_simple.min.css +1 -1
  42. package/dist/css/tabulator_simple.min.css.map +1 -1
  43. package/dist/css/tabulator_site.css +3 -3
  44. package/dist/css/tabulator_site.css.map +1 -1
  45. package/dist/css/tabulator_site.min.css +1 -1
  46. package/dist/css/tabulator_site.min.css.map +1 -1
  47. package/dist/js/tabulator.js +65 -30
  48. package/dist/js/tabulator.js.map +1 -1
  49. package/dist/js/tabulator.min.js +2 -2
  50. package/dist/js/tabulator.min.js.map +1 -1
  51. package/dist/js/tabulator_esm.js +65 -30
  52. package/dist/js/tabulator_esm.js.map +1 -1
  53. package/dist/js/tabulator_esm.min.js +2 -2
  54. package/dist/js/tabulator_esm.min.js.map +1 -1
  55. package/package.json +4 -3
  56. package/src/js/core/ColumnManager.js +1 -1
  57. package/src/js/core/RowManager.js +1 -2
  58. package/src/js/core/tools/Helpers.js +19 -0
  59. package/src/js/modules/Ajax/Ajax.js +1 -1
  60. package/src/js/modules/Edit/Edit.js +21 -18
  61. package/src/js/modules/Format/defaults/formatters/link.js +5 -1
  62. package/src/js/modules/HtmlTableImport/HtmlTableImport.js +2 -2
  63. package/src/js/modules/Keybindings/defaults/bindings.js +1 -1
  64. package/src/js/modules/Layout/Layout.js +10 -0
  65. package/src/js/modules/Page/Page.js +1 -1
  66. package/src/js/modules/Persistence/Persistence.js +5 -3
  67. package/src/js/modules/ResizeColumns/ResizeColumns.js +1 -0
  68. package/src/scss/tabulator.scss +3 -3
@@ -1,4 +1,4 @@
1
- /* Tabulator v5.5.1 (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
 
@@ -7414,6 +7432,16 @@
7414
7432
  }
7415
7433
 
7416
7434
  this.table.element.setAttribute("tabulator-layout", this.mode);
7435
+ this.subscribe("column-init", this.initializeColumn.bind(this));
7436
+ }
7437
+
7438
+ initializeColumn(column){
7439
+ if(column.definition.widthGrow){
7440
+ column.definition.widthGrow = Number(column.definition.widthGrow);
7441
+ }
7442
+ if(column.definition.widthShrink){
7443
+ column.definition.widthShrink = Number(column.definition.widthShrink);
7444
+ }
7417
7445
  }
7418
7446
 
7419
7447
  getMode(){
@@ -9086,7 +9114,7 @@
9086
9114
  ajaxParams = ajaxParams.call(this.table);
9087
9115
  }
9088
9116
 
9089
- params = Object.assign(params, ajaxParams);
9117
+ params = Object.assign(Object.assign({}, ajaxParams), params);
9090
9118
  }
9091
9119
 
9092
9120
  return params;
@@ -13736,21 +13764,24 @@
13736
13764
  if(newRow){
13737
13765
  cell.getElement().firstChild.blur();
13738
13766
 
13739
- if(newRow === true){
13740
- newRow = this.table.addRow({});
13741
- }else {
13742
- if(typeof newRow == "function"){
13743
- newRow = this.table.addRow(newRow(cell.row.getComponent()));
13767
+ if(!this.invalidEdit){
13768
+
13769
+ if(newRow === true){
13770
+ newRow = this.table.addRow({});
13744
13771
  }else {
13745
- 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
+ }
13746
13777
  }
13747
- }
13748
-
13749
- newRow.then(() => {
13750
- setTimeout(() => {
13751
- cell.getComponent().navigateNext();
13778
+
13779
+ newRow.then(() => {
13780
+ setTimeout(() => {
13781
+ cell.getComponent().navigateNext();
13782
+ });
13752
13783
  });
13753
- });
13784
+ }
13754
13785
  }
13755
13786
  }
13756
13787
  }
@@ -14006,7 +14037,7 @@
14006
14037
  this.cancelEdit();
14007
14038
  }
14008
14039
  }
14009
-
14040
+
14010
14041
  rowEditableCheck(row){
14011
14042
  row.getCells().forEach((cell) => {
14012
14043
  if(cell.column.modules.edit && typeof cell.column.modules.edit.check === "function"){
@@ -14193,7 +14224,7 @@
14193
14224
 
14194
14225
  allowEdit(cell) {
14195
14226
  var check = cell.column.modules.edit ? true : false;
14196
-
14227
+
14197
14228
  if(cell.column.modules.edit){
14198
14229
  switch(typeof cell.column.modules.edit.check){
14199
14230
  case "function":
@@ -14201,17 +14232,17 @@
14201
14232
  check = cell.column.modules.edit.check(cell.getComponent());
14202
14233
  }
14203
14234
  break;
14204
-
14235
+
14205
14236
  case "string":
14206
14237
  check = !!cell.row.data[cell.column.modules.edit.check];
14207
14238
  break;
14208
-
14239
+
14209
14240
  case "boolean":
14210
14241
  check = cell.column.modules.edit.check;
14211
14242
  break;
14212
14243
  }
14213
14244
  }
14214
-
14245
+
14215
14246
  return check;
14216
14247
  }
14217
14248
 
@@ -14223,7 +14254,7 @@
14223
14254
  cellEditor, component, params;
14224
14255
 
14225
14256
  //prevent editing if another cell is refusing to leave focus (eg. validation fail)
14226
-
14257
+
14227
14258
  if(this.currentCell){
14228
14259
  if(!this.invalidEdit && this.currentCell !== cell){
14229
14260
  this.cancelEdit();
@@ -16128,7 +16159,8 @@
16128
16159
  if(label){
16129
16160
  if(formatterParams.urlField){
16130
16161
  data = cell.getData();
16131
- value = data[formatterParams.urlField];
16162
+
16163
+ value = Helpers.retrieveNestedData(this.table.options.nestedFieldSeparator, formatterParams.urlField, data);
16132
16164
  }
16133
16165
 
16134
16166
  if(formatterParams.url){
@@ -19043,7 +19075,7 @@
19043
19075
  }
19044
19076
 
19045
19077
  if(!col.field) {
19046
- col.field = header.textContent.trim().toLowerCase().replace(" ", "_");
19078
+ col.field = header.textContent.trim().toLowerCase().replaceAll(" ", "_");
19047
19079
  }
19048
19080
 
19049
19081
  width = header.getAttribute("width");
@@ -19701,7 +19733,7 @@
19701
19733
  scrollToEnd:35,
19702
19734
  undo:["ctrl + 90", "meta + 90"],
19703
19735
  redo:["ctrl + 89", "meta + 89"],
19704
- copyToClipboard:["ctrl + 67", "meta + 89"],
19736
+ copyToClipboard:["ctrl + 67", "meta + 67"],
19705
19737
  };
19706
19738
 
19707
19739
  var defaultActions = {
@@ -21632,7 +21664,7 @@
21632
21664
 
21633
21665
  userSetPageToRow(row){
21634
21666
  if(this.table.options.pagination){
21635
- row = this.rowManager.findRow(row);
21667
+ row = this.table.rowManager.findRow(row);
21636
21668
 
21637
21669
  if(row){
21638
21670
  return this.setPageToRow(row);
@@ -22572,7 +22604,7 @@
22572
22604
  }
22573
22605
 
22574
22606
  setColumnLayout(layout){
22575
- this.table.columnManager.setColumns(this.mergeDefinition(this.table.options.columns, layout));
22607
+ this.table.columnManager.setColumns(this.mergeDefinition(this.table.options.columns, layout, true));
22576
22608
  return true;
22577
22609
  }
22578
22610
 
@@ -22638,7 +22670,7 @@
22638
22670
  }
22639
22671
 
22640
22672
  //merge old and new column definitions
22641
- mergeDefinition(oldCols, newCols){
22673
+ mergeDefinition(oldCols, newCols, mergeAllNew){
22642
22674
  var output = [];
22643
22675
 
22644
22676
  newCols = newCols || [];
@@ -22648,7 +22680,9 @@
22648
22680
  keys;
22649
22681
 
22650
22682
  if(from){
22651
- 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){
22652
22686
  keys = Object.keys(from);
22653
22687
  keys.push("width");
22654
22688
  }else {
@@ -23713,6 +23747,7 @@
23713
23747
  if(cell.modules.resize && cell.modules.resize.handleEl){
23714
23748
  if(frozenOffset){
23715
23749
  cell.modules.resize.handleEl.style[column.modules.frozen.position] = frozenOffset;
23750
+ cell.modules.resize.handleEl.style["z-index"] = 11;
23716
23751
  }
23717
23752
 
23718
23753
  cell.element.after(cell.modules.resize.handleEl);