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
  class CoreFeature{
3
3
 
4
4
  constructor(table){
@@ -154,6 +154,25 @@ class Helpers{
154
154
  };
155
155
  }
156
156
 
157
+ static retrieveNestedData(separator, field, data){
158
+ var structure = separator ? field.split(separator) : [field],
159
+ length = structure.length,
160
+ output;
161
+
162
+ for(let i = 0; i < length; i++){
163
+
164
+ data = data[structure[i]];
165
+
166
+ output = data;
167
+
168
+ if(!data){
169
+ break;
170
+ }
171
+ }
172
+
173
+ return output;
174
+ }
175
+
157
176
  static deepClone(obj, clone, list = []){
158
177
  var objectProto = {}.__proto__,
159
178
  arrayProto = [].__proto__;
@@ -975,7 +994,7 @@ class Ajax extends Module{
975
994
  ajaxParams = ajaxParams.call(this.table);
976
995
  }
977
996
 
978
- params = Object.assign(params, ajaxParams);
997
+ params = Object.assign(Object.assign({}, ajaxParams), params);
979
998
  }
980
999
 
981
1000
  return params;
@@ -7666,21 +7685,24 @@ class Edit$1 extends Module{
7666
7685
  if(newRow){
7667
7686
  cell.getElement().firstChild.blur();
7668
7687
 
7669
- if(newRow === true){
7670
- newRow = this.table.addRow({});
7671
- }else {
7672
- if(typeof newRow == "function"){
7673
- newRow = this.table.addRow(newRow(cell.row.getComponent()));
7688
+ if(!this.invalidEdit){
7689
+
7690
+ if(newRow === true){
7691
+ newRow = this.table.addRow({});
7674
7692
  }else {
7675
- newRow = this.table.addRow(Object.assign({}, newRow));
7693
+ if(typeof newRow == "function"){
7694
+ newRow = this.table.addRow(newRow(cell.row.getComponent()));
7695
+ }else {
7696
+ newRow = this.table.addRow(Object.assign({}, newRow));
7697
+ }
7676
7698
  }
7677
- }
7678
-
7679
- newRow.then(() => {
7680
- setTimeout(() => {
7681
- cell.getComponent().navigateNext();
7699
+
7700
+ newRow.then(() => {
7701
+ setTimeout(() => {
7702
+ cell.getComponent().navigateNext();
7703
+ });
7682
7704
  });
7683
- });
7705
+ }
7684
7706
  }
7685
7707
  }
7686
7708
  }
@@ -7936,7 +7958,7 @@ class Edit$1 extends Module{
7936
7958
  this.cancelEdit();
7937
7959
  }
7938
7960
  }
7939
-
7961
+
7940
7962
  rowEditableCheck(row){
7941
7963
  row.getCells().forEach((cell) => {
7942
7964
  if(cell.column.modules.edit && typeof cell.column.modules.edit.check === "function"){
@@ -8123,7 +8145,7 @@ class Edit$1 extends Module{
8123
8145
 
8124
8146
  allowEdit(cell) {
8125
8147
  var check = cell.column.modules.edit ? true : false;
8126
-
8148
+
8127
8149
  if(cell.column.modules.edit){
8128
8150
  switch(typeof cell.column.modules.edit.check){
8129
8151
  case "function":
@@ -8131,17 +8153,17 @@ class Edit$1 extends Module{
8131
8153
  check = cell.column.modules.edit.check(cell.getComponent());
8132
8154
  }
8133
8155
  break;
8134
-
8156
+
8135
8157
  case "string":
8136
8158
  check = !!cell.row.data[cell.column.modules.edit.check];
8137
8159
  break;
8138
-
8160
+
8139
8161
  case "boolean":
8140
8162
  check = cell.column.modules.edit.check;
8141
8163
  break;
8142
8164
  }
8143
8165
  }
8144
-
8166
+
8145
8167
  return check;
8146
8168
  }
8147
8169
 
@@ -8153,7 +8175,7 @@ class Edit$1 extends Module{
8153
8175
  cellEditor, component, params;
8154
8176
 
8155
8177
  //prevent editing if another cell is refusing to leave focus (eg. validation fail)
8156
-
8178
+
8157
8179
  if(this.currentCell){
8158
8180
  if(!this.invalidEdit && this.currentCell !== cell){
8159
8181
  this.cancelEdit();
@@ -10058,7 +10080,8 @@ function link(cell, formatterParams, onRendered){
10058
10080
  if(label){
10059
10081
  if(formatterParams.urlField){
10060
10082
  data = cell.getData();
10061
- value = data[formatterParams.urlField];
10083
+
10084
+ value = Helpers.retrieveNestedData(this.table.options.nestedFieldSeparator, formatterParams.urlField, data);
10062
10085
  }
10063
10086
 
10064
10087
  if(formatterParams.url){
@@ -12973,7 +12996,7 @@ class HtmlTableImport extends Module{
12973
12996
  }
12974
12997
 
12975
12998
  if(!col.field) {
12976
- col.field = header.textContent.trim().toLowerCase().replace(" ", "_");
12999
+ col.field = header.textContent.trim().toLowerCase().replaceAll(" ", "_");
12977
13000
  }
12978
13001
 
12979
13002
  width = header.getAttribute("width");
@@ -13631,7 +13654,7 @@ var defaultBindings = {
13631
13654
  scrollToEnd:35,
13632
13655
  undo:["ctrl + 90", "meta + 90"],
13633
13656
  redo:["ctrl + 89", "meta + 89"],
13634
- copyToClipboard:["ctrl + 67", "meta + 89"],
13657
+ copyToClipboard:["ctrl + 67", "meta + 67"],
13635
13658
  };
13636
13659
 
13637
13660
  var defaultActions = {
@@ -15562,7 +15585,7 @@ class Page extends Module{
15562
15585
 
15563
15586
  userSetPageToRow(row){
15564
15587
  if(this.table.options.pagination){
15565
- row = this.rowManager.findRow(row);
15588
+ row = this.table.rowManager.findRow(row);
15566
15589
 
15567
15590
  if(row){
15568
15591
  return this.setPageToRow(row);
@@ -16502,7 +16525,7 @@ class Persistence extends Module{
16502
16525
  }
16503
16526
 
16504
16527
  setColumnLayout(layout){
16505
- this.table.columnManager.setColumns(this.mergeDefinition(this.table.options.columns, layout));
16528
+ this.table.columnManager.setColumns(this.mergeDefinition(this.table.options.columns, layout, true));
16506
16529
  return true;
16507
16530
  }
16508
16531
 
@@ -16568,7 +16591,7 @@ class Persistence extends Module{
16568
16591
  }
16569
16592
 
16570
16593
  //merge old and new column definitions
16571
- mergeDefinition(oldCols, newCols){
16594
+ mergeDefinition(oldCols, newCols, mergeAllNew){
16572
16595
  var output = [];
16573
16596
 
16574
16597
  newCols = newCols || [];
@@ -16578,7 +16601,9 @@ class Persistence extends Module{
16578
16601
  keys;
16579
16602
 
16580
16603
  if(from){
16581
- if(this.config.columns === true || this.config.columns == undefined){
16604
+ if(mergeAllNew){
16605
+ keys = Object.keys(column);
16606
+ }else if(this.config.columns === true || this.config.columns == undefined){
16582
16607
  keys = Object.keys(from);
16583
16608
  keys.push("width");
16584
16609
  }else {
@@ -17643,6 +17668,7 @@ class ResizeColumns extends Module{
17643
17668
  if(cell.modules.resize && cell.modules.resize.handleEl){
17644
17669
  if(frozenOffset){
17645
17670
  cell.modules.resize.handleEl.style[column.modules.frozen.position] = frozenOffset;
17671
+ cell.modules.resize.handleEl.style["z-index"] = 11;
17646
17672
  }
17647
17673
 
17648
17674
  cell.element.after(cell.modules.resize.handleEl);
@@ -21564,7 +21590,7 @@ class ColumnManager extends CoreFeature {
21564
21590
  var matches = [];
21565
21591
 
21566
21592
  Object.keys(this.columnsByField).forEach((field) => {
21567
- var fieldRoot = field.split(".")[0];
21593
+ var fieldRoot = this.table.options.nestedFieldSeparator ? field.split(this.table.options.nestedFieldSeparator)[0] : field;
21568
21594
  if(fieldRoot === root){
21569
21595
  matches.push(this.columnsByField[field]);
21570
21596
  }
@@ -23364,7 +23390,7 @@ class RowManager extends CoreFeature{
23364
23390
  refreshPipelines(handler, stage, index, renderInPosition){
23365
23391
  this.dispatch("data-refreshing");
23366
23392
 
23367
- if(!handler){
23393
+ if(!handler || !this.activeRowsPipeline[0]){
23368
23394
  this.activeRowsPipeline[0] = this.rows.slice(0);
23369
23395
  }
23370
23396
 
@@ -23374,7 +23400,6 @@ class RowManager extends CoreFeature{
23374
23400
  //handle case where all data needs refreshing
23375
23401
 
23376
23402
  case "dataPipeline":
23377
-
23378
23403
  for(let i = index; i < this.dataPipeline.length; i++){
23379
23404
  let result = this.dataPipeline[i].handler(this.activeRowsPipeline[i].slice(0));
23380
23405
 
@@ -25003,6 +25028,16 @@ class Layout extends Module{
25003
25028
  }
25004
25029
 
25005
25030
  this.table.element.setAttribute("tabulator-layout", this.mode);
25031
+ this.subscribe("column-init", this.initializeColumn.bind(this));
25032
+ }
25033
+
25034
+ initializeColumn(column){
25035
+ if(column.definition.widthGrow){
25036
+ column.definition.widthGrow = Number(column.definition.widthGrow);
25037
+ }
25038
+ if(column.definition.widthShrink){
25039
+ column.definition.widthShrink = Number(column.definition.widthShrink);
25040
+ }
25006
25041
  }
25007
25042
 
25008
25043
  getMode(){