tabulator-tables 5.1.0 → 5.1.1

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 (64) hide show
  1. package/bower.json +1 -1
  2. package/build/rollup.js +2 -1
  3. package/dist/css/tabulator.css +15 -8
  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 +15 -8
  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 +15 -8
  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_bulma.css +15 -8
  16. package/dist/css/tabulator_bulma.css.map +1 -1
  17. package/dist/css/tabulator_bulma.min.css +1 -1
  18. package/dist/css/tabulator_bulma.min.css.map +1 -1
  19. package/dist/css/tabulator_materialize.css +15 -8
  20. package/dist/css/tabulator_materialize.css.map +1 -1
  21. package/dist/css/tabulator_materialize.min.css +1 -1
  22. package/dist/css/tabulator_materialize.min.css.map +1 -1
  23. package/dist/css/tabulator_midnight.css +15 -8
  24. package/dist/css/tabulator_midnight.css.map +1 -1
  25. package/dist/css/tabulator_midnight.min.css +1 -1
  26. package/dist/css/tabulator_midnight.min.css.map +1 -1
  27. package/dist/css/tabulator_modern.css +15 -8
  28. package/dist/css/tabulator_modern.css.map +1 -1
  29. package/dist/css/tabulator_modern.min.css +1 -1
  30. package/dist/css/tabulator_modern.min.css.map +1 -1
  31. package/dist/css/tabulator_semanticui.css +15 -8
  32. package/dist/css/tabulator_semanticui.css.map +1 -1
  33. package/dist/css/tabulator_semanticui.min.css +1 -1
  34. package/dist/css/tabulator_semanticui.min.css.map +1 -1
  35. package/dist/css/tabulator_simple.css +15 -8
  36. package/dist/css/tabulator_simple.css.map +1 -1
  37. package/dist/css/tabulator_simple.min.css +1 -1
  38. package/dist/css/tabulator_simple.min.css.map +1 -1
  39. package/dist/css/tabulator_site.css +15 -8
  40. package/dist/css/tabulator_site.css.map +1 -1
  41. package/dist/css/tabulator_site.min.css +1 -1
  42. package/dist/css/tabulator_site.min.css.map +1 -1
  43. package/dist/js/tabulator.js +124 -66
  44. package/dist/js/tabulator.js.map +1 -1
  45. package/dist/js/tabulator.min.js +2 -2
  46. package/dist/js/tabulator.min.js.map +1 -1
  47. package/dist/js/tabulator_esm.js +380 -329
  48. package/dist/js/tabulator_esm.js.map +1 -1
  49. package/dist/js/tabulator_esm.min.js +2 -2
  50. package/dist/js/tabulator_esm.min.js.map +1 -1
  51. package/package.json +1 -1
  52. package/src/js/core/FooterManager.js +14 -2
  53. package/src/js/core/RowManager.js +312 -279
  54. package/src/js/core/column/ColumnComponent.js +2 -0
  55. package/src/js/core/tools/InteractionMonitor.js +31 -23
  56. package/src/js/modules/ColumnCalcs/ColumnCalcs.js +2 -2
  57. package/src/js/modules/DataTree/DataTree.js +0 -1
  58. package/src/js/modules/Edit/Edit.js +2 -2
  59. package/src/js/modules/GroupRows/GroupComponent.js +1 -1
  60. package/src/js/modules/Import/Import.js +1 -3
  61. package/src/js/modules/Page/Page.js +5 -3
  62. package/src/js/modules/ResponsiveLayout/ResponsiveLayout.js +4 -4
  63. package/src/js/modules/SelectRow/SelectRow.js +1 -1
  64. package/src/scss/tabulator.scss +17 -12
@@ -1,4 +1,4 @@
1
- /* Tabulator v5.1.0 (c) Oliver Folkerd 2022 */
1
+ /* Tabulator v5.1.1 (c) Oliver Folkerd 2022 */
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) :
@@ -438,7 +438,6 @@
438
438
  return CoreFeature;
439
439
  }();
440
440
 
441
- //public column object
442
441
  var ColumnComponent = /*#__PURE__*/function () {
443
442
  function ColumnComponent(column) {
444
443
  _classCallCheck(this, ColumnComponent);
@@ -1091,7 +1090,7 @@
1091
1090
  return Cell;
1092
1091
  }(CoreFeature);
1093
1092
 
1094
- var Column$1 = /*#__PURE__*/function (_CoreFeature) {
1093
+ var Column = /*#__PURE__*/function (_CoreFeature) {
1095
1094
  _inherits(Column, _CoreFeature);
1096
1095
 
1097
1096
  var _super = _createSuper(Column);
@@ -2164,7 +2163,7 @@
2164
2163
  return Column;
2165
2164
  }(CoreFeature);
2166
2165
 
2167
- Column$1.defaultOptionList = defaultColumnOptions;
2166
+ Column.defaultOptionList = defaultColumnOptions;
2168
2167
 
2169
2168
  var Helpers = /*#__PURE__*/function () {
2170
2169
  function Helpers() {
@@ -3236,7 +3235,7 @@
3236
3235
  }, {
3237
3236
  key: "_addColumn",
3238
3237
  value: function _addColumn(definition, before, nextToColumn) {
3239
- var column = new Column$1(definition, this),
3238
+ var column = new Column(definition, this),
3240
3239
  colEl = column.getElement(),
3241
3240
  index = nextToColumn ? this.findColumnIndex(nextToColumn) : nextToColumn;
3242
3241
 
@@ -3311,7 +3310,7 @@
3311
3310
  key: "findColumn",
3312
3311
  value: function findColumn(subject) {
3313
3312
  if (_typeof(subject) == "object") {
3314
- if (subject instanceof Column$1) {
3313
+ if (subject instanceof Column) {
3315
3314
  //subject is column element
3316
3315
  return subject;
3317
3316
  } else if (subject instanceof ColumnComponent) {
@@ -4957,6 +4956,10 @@
4957
4956
 
4958
4957
  _this.heightFixer = _this.createTableElement(); //table element
4959
4958
 
4959
+ _this.placeholder = null; //placeholder element
4960
+
4961
+ _this.placeholderContents = null; //placeholder element
4962
+
4960
4963
  _this.firstRender = false; //handle first render
4961
4964
 
4962
4965
  _this.renderMode = "virtual"; //current rendering mode
@@ -5010,6 +5013,21 @@
5010
5013
  el.classList.add("tabulator-table");
5011
5014
  el.setAttribute("role", "rowgroup");
5012
5015
  return el;
5016
+ }
5017
+ }, {
5018
+ key: "initializePlaceholder",
5019
+ value: function initializePlaceholder() {
5020
+ //configure placeholder element
5021
+ if (typeof this.table.options.placeholder == "string") {
5022
+ var el = document.createElement("div");
5023
+ el.classList.add("tabulator-placeholder");
5024
+ var contents = document.createElement("div");
5025
+ contents.classList.add("tabulator-placeholder-contents");
5026
+ contents.innerHTML = this.table.options.placeholder;
5027
+ el.appendChild(contents);
5028
+ this.placeholderContents = contents;
5029
+ this.placeholder = el;
5030
+ }
5013
5031
  } //return containing element
5014
5032
 
5015
5033
  }, {
@@ -5038,6 +5056,7 @@
5038
5056
  value: function initialize() {
5039
5057
  var _this2 = this;
5040
5058
 
5059
+ this.initializePlaceholder();
5041
5060
  this.initializeRenderer(); //initialize manager
5042
5061
 
5043
5062
  this.element.appendChild(this.tableElement);
@@ -5055,7 +5074,9 @@
5055
5074
  _this2.dispatch("scroll-horizontal", left, leftDir);
5056
5075
 
5057
5076
  _this2.dispatchExternal("scrollHorizontal", left, leftDir);
5058
- } //handle verical scrolling
5077
+
5078
+ _this2._positionPlaceholder();
5079
+ } //handle vertical scrolling
5059
5080
 
5060
5081
 
5061
5082
  if (_this2.scrollTop != top) {
@@ -5237,7 +5258,6 @@
5237
5258
  key: "addRow",
5238
5259
  value: function addRow(data, pos, index, blockRedraw) {
5239
5260
  var row = this.addRowActual(data, pos, index, blockRedraw);
5240
- this.dispatch("row-added", row, data, pos, index);
5241
5261
  return row;
5242
5262
  } //add multiple rows
5243
5263
 
@@ -5616,42 +5636,12 @@
5616
5636
 
5617
5637
  return;
5618
5638
  } else {
5619
- this.dispatch("data-refeshing");
5620
-
5621
- if (!handler) {
5622
- this.activeRowsPipeline[0] = this.rows.slice(0);
5623
- } //cascade through data refresh stages
5624
-
5625
-
5626
- switch (stage) {
5627
- case "all": //handle case where alldata needs refreshing
5628
-
5629
- case "dataPipeline":
5630
- for (var i = index; i < this.dataPipeline.length; i++) {
5631
- var result = this.dataPipeline[i].handler(this.activeRowsPipeline[i].slice(0));
5632
- this.activeRowsPipeline[i + 1] = result || this.activeRowsPipeline[i].slice(0);
5633
- }
5634
-
5635
- this.setActiveRows(this.activeRowsPipeline[this.dataPipeline.length]);
5636
- this.regenerateRowNumbers();
5637
-
5638
- case "display":
5639
- index = 0;
5640
- this.resetDisplayRows();
5641
-
5642
- case "displayPipeline":
5643
- for (var _i = index; _i < this.displayPipeline.length; _i++) {
5644
- var _result = this.displayPipeline[_i].handler((_i ? this.getDisplayRows(_i - 1) : this.activeRows).slice(0), renderInPosition);
5645
-
5646
- this.setDisplayRows(_result || this.getDisplayRows(_i - 1).slice(0), _i);
5647
- }
5648
-
5649
- }
5650
-
5651
5639
  if (Helpers.elVisible(this.element)) {
5652
5640
  if (renderInPosition) {
5653
- this.reRenderInPosition();
5641
+ this.reRenderInPosition(this.refreshPipelines.bind(this, handler, stage, index, renderInPosition));
5654
5642
  } else {
5643
+ this.refreshPipelines(handler, stage, index, renderInPosition);
5644
+
5655
5645
  if (!handler) {
5656
5646
  this.table.columnManager.renderer.renderColumns();
5657
5647
  }
@@ -5662,10 +5652,47 @@
5662
5652
  this.table.columnManager.redraw(true);
5663
5653
  }
5664
5654
  }
5655
+ } else {
5656
+ this.refreshPipelines(handler, stage, index, renderInPosition);
5665
5657
  }
5666
5658
 
5667
5659
  this.dispatch("data-refreshed");
5668
5660
  }
5661
+ }
5662
+ }, {
5663
+ key: "refreshPipelines",
5664
+ value: function refreshPipelines(handler, stage, index, renderInPosition) {
5665
+ this.dispatch("data-refreshing");
5666
+
5667
+ if (!handler) {
5668
+ this.activeRowsPipeline[0] = this.rows.slice(0);
5669
+ } //cascade through data refresh stages
5670
+
5671
+
5672
+ switch (stage) {
5673
+ case "all": //handle case where alldata needs refreshing
5674
+
5675
+ case "dataPipeline":
5676
+ for (var i = index; i < this.dataPipeline.length; i++) {
5677
+ var result = this.dataPipeline[i].handler(this.activeRowsPipeline[i].slice(0));
5678
+ this.activeRowsPipeline[i + 1] = result || this.activeRowsPipeline[i].slice(0);
5679
+ }
5680
+
5681
+ this.setActiveRows(this.activeRowsPipeline[this.dataPipeline.length]);
5682
+ this.regenerateRowNumbers();
5683
+
5684
+ case "display":
5685
+ index = 0;
5686
+ this.resetDisplayRows();
5687
+
5688
+ case "displayPipeline":
5689
+ for (var _i = index; _i < this.displayPipeline.length; _i++) {
5690
+ var _result = this.displayPipeline[_i].handler((_i ? this.getDisplayRows(_i - 1) : this.activeRows).slice(0), renderInPosition);
5691
+
5692
+ this.setDisplayRows(_result || this.getDisplayRows(_i - 1).slice(0), _i);
5693
+ }
5694
+
5695
+ }
5669
5696
  } //regenerate row numbers for row number formatter if in use
5670
5697
 
5671
5698
  }, {
@@ -5766,7 +5793,7 @@
5766
5793
  break;
5767
5794
 
5768
5795
  case "visible":
5769
- rows = this.getVisibleRows(true);
5796
+ rows = this.getVisibleRows(false, true);
5770
5797
  break;
5771
5798
 
5772
5799
  default:
@@ -5858,7 +5885,7 @@
5858
5885
  }, {
5859
5886
  key: "renderEmptyScroll",
5860
5887
  value: function renderEmptyScroll() {
5861
- if (this.table.options.placeholder) {
5888
+ if (this.placeholder) {
5862
5889
  this.tableElement.style.display = "none";
5863
5890
  } else {
5864
5891
  this.tableElement.style.minWidth = this.table.columnManager.getWidth() + "px"; // this.tableElement.style.minHeight = "1px";
@@ -5879,17 +5906,27 @@
5879
5906
  }, {
5880
5907
  key: "_showPlaceholder",
5881
5908
  value: function _showPlaceholder() {
5882
- if (this.table.options.placeholder) {
5883
- this.table.options.placeholder.setAttribute("tabulator-render-mode", this.renderMode);
5884
- this.getElement().appendChild(this.table.options.placeholder);
5885
- this.table.options.placeholder.style.width = this.table.columnManager.getWidth() + "px";
5909
+ if (this.placeholder) {
5910
+ this.placeholder.setAttribute("tabulator-render-mode", this.renderMode);
5911
+ this.getElement().appendChild(this.placeholder);
5912
+
5913
+ this._positionPlaceholder();
5886
5914
  }
5887
5915
  }
5888
5916
  }, {
5889
5917
  key: "_clearPlaceholder",
5890
5918
  value: function _clearPlaceholder() {
5891
- if (this.table.options.placeholder && this.table.options.placeholder.parentNode) {
5892
- this.table.options.placeholder.parentNode.removeChild(this.table.options.placeholder);
5919
+ if (this.placeholder && this.placeholder.parentNode) {
5920
+ this.placeholder.parentNode.removeChild(this.placeholder);
5921
+ }
5922
+ }
5923
+ }, {
5924
+ key: "_positionPlaceholder",
5925
+ value: function _positionPlaceholder() {
5926
+ if (this.placeholder && this.placeholder.parentNode) {
5927
+ this.placeholder.style.width = this.table.columnManager.getWidth() + "px";
5928
+ this.placeholderContents.style.width = this.table.rowManager.element.clientWidth + "px";
5929
+ this.placeholderContents.style.marginLeft = this.scrollLeft + "px";
5893
5930
  }
5894
5931
  }
5895
5932
  }, {
@@ -5942,6 +5979,8 @@
5942
5979
  }
5943
5980
  }
5944
5981
  }
5982
+
5983
+ this._positionPlaceholder();
5945
5984
  } //renitialize all rows
5946
5985
 
5947
5986
  }, {
@@ -6029,6 +6068,8 @@
6029
6068
  _this.active = false;
6030
6069
  _this.element = _this.createElement(); //containing element
6031
6070
 
6071
+ _this.containerElement = _this.createContainerElement(); //containing element
6072
+
6032
6073
  _this.external = false;
6033
6074
  _this.links = [];
6034
6075
 
@@ -6049,6 +6090,14 @@
6049
6090
  el.classList.add("tabulator-footer");
6050
6091
  return el;
6051
6092
  }
6093
+ }, {
6094
+ key: "createContainerElement",
6095
+ value: function createContainerElement() {
6096
+ var el = document.createElement("div");
6097
+ el.classList.add("tabulator-footer-contents");
6098
+ this.element.appendChild(el);
6099
+ return el;
6100
+ }
6052
6101
  }, {
6053
6102
  key: "initializeElement",
6054
6103
  value: function initializeElement() {
@@ -6079,7 +6128,7 @@
6079
6128
  key: "append",
6080
6129
  value: function append(element, parent) {
6081
6130
  this.activate(parent);
6082
- this.element.appendChild(element);
6131
+ this.containerElement.appendChild(element);
6083
6132
  this.table.rowManager.adjustTableSize();
6084
6133
  }
6085
6134
  }, {
@@ -6417,6 +6466,10 @@
6417
6466
  component = rows.find(function (row) {
6418
6467
  return row.getElement() === target;
6419
6468
  });
6469
+
6470
+ if (targets["row"].parentNode && targets["row"].parentNode.closest(".tabulator-row")) {
6471
+ targets[key] = false;
6472
+ }
6420
6473
  }
6421
6474
 
6422
6475
  break;
@@ -6430,10 +6483,12 @@
6430
6483
 
6431
6484
  case "cell":
6432
6485
  if (listener.components.includes("cell")) {
6433
- if (targets["row"]) {
6486
+ if (targets["row"] instanceof Row) {
6434
6487
  component = targets["row"].findCell(target);
6435
6488
  } else {
6436
- console.warn("Event Target Lookup Error - The row this cell is attached to cannot be found, has the table been reinitialized without being destroyed first?");
6489
+ if (targets["row"]) {
6490
+ console.warn("Event Target Lookup Error - The row this cell is attached to cannot be found, has the table been reinitialized without being destroyed first?");
6491
+ }
6437
6492
  }
6438
6493
  }
6439
6494
 
@@ -9842,7 +9897,7 @@
9842
9897
  }, {
9843
9898
  key: "initialize",
9844
9899
  value: function initialize() {
9845
- this.genColumn = new Column$1({
9900
+ this.genColumn = new Column({
9846
9901
  field: "value"
9847
9902
  }, this);
9848
9903
  this.subscribe("cell-value-changed", this.cellValueChanged.bind(this));
@@ -10154,7 +10209,7 @@
10154
10209
  data.push(row.getData());
10155
10210
 
10156
10211
  if (_this3.table.options.dataTree && _this3.table.options.dataTreeChildColumnCalcs) {
10157
- if (row.modules.dataTree.open) {
10212
+ if (row.modules.dataTree && row.modules.dataTree.open) {
10158
10213
  var children = _this3.rowsToData(_this3.table.modules.dataTree.getFilteredTreeChildren(row));
10159
10214
 
10160
10215
  data = data.concat(children);
@@ -10958,7 +11013,6 @@
10958
11013
  }, {
10959
11014
  key: "redrawNeeded",
10960
11015
  value: function redrawNeeded(data) {
10961
- console.log("needed?", data);
10962
11016
  return (this.field ? typeof data[this.field] !== "undefined" : false) || (this.elementField ? typeof data[this.elementField] !== "undefined" : false);
10963
11017
  }
10964
11018
  }]);
@@ -13336,7 +13390,7 @@
13336
13390
  this.subscribe("column-layout", this.initializeColumnCheck.bind(this));
13337
13391
  this.subscribe("column-delete", this.columnDeleteCheck.bind(this));
13338
13392
  this.subscribe("row-deleting", this.rowDeleteCheck.bind(this));
13339
- this.subscribe("data-refeshing", this.cancelEdit.bind(this));
13393
+ this.subscribe("data-refreshing", this.cancelEdit.bind(this));
13340
13394
  this.subscribe("keybinding-nav-prev", this.navigatePrev.bind(this, undefined));
13341
13395
  this.subscribe("keybinding-nav-next", this.keybindingNavigateNext.bind(this));
13342
13396
  this.subscribe("keybinding-nav-left", this.navigateLeft.bind(this, undefined));
@@ -13356,7 +13410,8 @@
13356
13410
  if (cell) {
13357
13411
  if (!this.navigateNext(cell, e)) {
13358
13412
  if (newRow) {
13359
- // cell.getElement().firstChild.blur();
13413
+ cell.getElement().firstChild.blur();
13414
+
13360
13415
  if (newRow === true) {
13361
13416
  newRow = this.table.addRow({});
13362
13417
  } else {
@@ -16960,7 +17015,7 @@
16960
17015
  if (typeof target[name] !== "undefined") {
16961
17016
  return target[name];
16962
17017
  } else {
16963
- return target._group.table.componentFunctionBinder.handle("row", target._group, name);
17018
+ return target._group.groupManager.table.componentFunctionBinder.handle("row", target._group, name);
16964
17019
  }
16965
17020
  }
16966
17021
  });
@@ -18886,7 +18941,6 @@
18886
18941
  key: "structureData",
18887
18942
  value: function structureData(parsedData) {
18888
18943
  var data = [];
18889
- console.log("structure", parsedData);
18890
18944
 
18891
18945
  if (Array.isArray(parsedData) && parsedData.length && Array.isArray(parsedData[0])) {
18892
18946
  if (this.table.options.autoColumns) {
@@ -19268,7 +19322,7 @@
19268
19322
  if (this.columnSubscribers[action]) {
19269
19323
  if (component instanceof Cell) {
19270
19324
  callback = component.column.definition[action];
19271
- } else if (component instanceof Column$1) {
19325
+ } else if (component instanceof Column) {
19272
19326
  callback = component.definition[action];
19273
19327
  }
19274
19328
 
@@ -22051,9 +22105,11 @@
22051
22105
  margin = this.table.options.progressiveLoadScrollMargin || this.table.rowManager.element.clientHeight * 2;
22052
22106
 
22053
22107
  if (this.table.rowManager.element.scrollHeight <= this.table.rowManager.element.clientHeight + margin) {
22054
- setTimeout(function () {
22055
- _this6.nextPage();
22056
- });
22108
+ if (this.page < this.max) {
22109
+ setTimeout(function () {
22110
+ _this6.nextPage();
22111
+ });
22112
+ }
22057
22113
  }
22058
22114
 
22059
22115
  break;
@@ -23593,6 +23649,8 @@
23593
23649
  }, {
23594
23650
  key: "initializeResponsivity",
23595
23651
  value: function initializeResponsivity() {
23652
+ var _this2 = this;
23653
+
23596
23654
  var columns = [];
23597
23655
  this.mode = this.table.options.responsiveLayout;
23598
23656
  this.collapseFormatter = this.table.options.responsiveLayoutCollapseFormatter || this.formatCollapsedData;
@@ -23605,8 +23663,8 @@
23605
23663
  column.modules.responsive.index = i;
23606
23664
  columns.push(column);
23607
23665
 
23608
- if (!column.visible && self.mode === "collapse") {
23609
- self.hiddenColumns.push(column);
23666
+ if (!column.visible && _this2.mode === "collapse") {
23667
+ _this2.hiddenColumns.push(column);
23610
23668
  }
23611
23669
  }
23612
23670
  }
@@ -23965,7 +24023,7 @@
23965
24023
  this.subscribe("rows-retrieve", this.rowRetrieve.bind(this));
23966
24024
 
23967
24025
  if (this.table.options.selectable && !this.table.options.selectablePersistence) {
23968
- this.subscribe("data-refeshing", this.deselectRows.bind(this));
24026
+ this.subscribe("data-refreshing", this.deselectRows.bind(this));
23969
24027
  }
23970
24028
  }
23971
24029
  }