tabulator-tables 5.2.1 → 5.2.4

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 (71) 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 +17 -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 +137 -80
  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 +110 -63
  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 +1 -1
  55. package/src/js/core/CoreFeature.js +2 -2
  56. package/src/js/core/RowManager.js +2 -0
  57. package/src/js/core/rendering/Renderer.js +2 -0
  58. package/src/js/core/tools/DataLoader.js +3 -3
  59. package/src/js/modules/DataTree/DataTree.js +17 -0
  60. package/src/js/modules/Edit/List.js +3 -3
  61. package/src/js/modules/Filter/Filter.js +1 -1
  62. package/src/js/modules/FrozenColumns/FrozenColumns.js +33 -41
  63. package/src/js/modules/GroupRows/GroupRows.js +4 -0
  64. package/src/js/modules/MoveColumns/MoveColumns.js +1 -1
  65. package/src/js/modules/Persistence/Persistence.js +1 -0
  66. package/src/js/modules/ResizeColumns/ResizeColumns.js +38 -7
  67. package/src/js/modules/Sort/Sort.js +1 -1
  68. package/src/js/modules/Sort/defaults/sorters/datetime.js +1 -1
  69. package/src/js/modules/Validate/Validate.js +3 -3
  70. package/src/scss/tabulator.scss +1 -1
  71. package/src/scss/themes/bootstrap/tabulator_bootstrap5.scss +20 -0
@@ -1,4 +1,4 @@
1
- /* Tabulator v5.2.1 (c) Oliver Folkerd 2022 */
1
+ /* Tabulator v5.2.4 (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) :
@@ -323,8 +323,8 @@
323
323
 
324
324
  _createClass(CoreFeature, [{
325
325
  key: "reloadData",
326
- value: function reloadData(data, silent) {
327
- return this.table.dataLoader.load(data, undefined, undefined, undefined, silent);
326
+ value: function reloadData(data, silent, columnsChanged) {
327
+ return this.table.dataLoader.load(data, undefined, undefined, undefined, silent, columnsChanged);
328
328
  } //////////////////////////////////////////
329
329
  ///////////// Localization ///////////////
330
330
  //////////////////////////////////////////
@@ -2442,6 +2442,8 @@
2442
2442
  _this2.elementVertical.scrollTop = _this2.elementVertical.scrollTop - _this2.elementVertical.clientHeight + rowEl.offsetHeight;
2443
2443
  }
2444
2444
 
2445
+ case "top":
2446
+ _this2.elementVertical.scrollTop = rowEl.offsetTop;
2445
2447
  break;
2446
2448
  }
2447
2449
 
@@ -5913,7 +5915,9 @@
5913
5915
  this.redrawBlockRenderInPosition = true;
5914
5916
  }
5915
5917
  } else {
5918
+ this.dispatchExternal("renderStarted");
5916
5919
  this.renderer.rerenderRows(callback);
5920
+ this.dispatchExternal("renderComplete");
5917
5921
  }
5918
5922
  }
5919
5923
  }, {
@@ -6687,7 +6691,7 @@
6687
6691
  value: function initialize() {}
6688
6692
  }, {
6689
6693
  key: "load",
6690
- value: function load(data, params, config, replace, silent) {
6694
+ value: function load(data, params, config, replace, silent, columnsChanged) {
6691
6695
  var _this2 = this;
6692
6696
 
6693
6697
  var requestNo = ++this.requestOrder;
@@ -6721,7 +6725,7 @@
6721
6725
  if (rowData !== false) {
6722
6726
  _this2.dispatchExternal("dataLoaded", rowData);
6723
6727
 
6724
- _this2.table.rowManager.setData(rowData, replace, !replace);
6728
+ _this2.table.rowManager.setData(rowData, replace, typeof columnsChanged === "undefined" ? !replace : columnsChanged);
6725
6729
  }
6726
6730
  } else {
6727
6731
  console.warn("Data Load Response Blocked - An active data load request was blocked by an attempt to change table data while the request was being made");
@@ -6748,7 +6752,7 @@
6748
6752
  data = [];
6749
6753
  }
6750
6754
 
6751
- this.table.rowManager.setData(data, replace, !replace);
6755
+ this.table.rowManager.setData(data, replace, typeof columnsChanged === "undefined" ? !replace : columnsChanged);
6752
6756
  return Promise.resolve();
6753
6757
  }
6754
6758
  }
@@ -10997,9 +11001,24 @@
10997
11001
  this.subscribe("edit-cancelled", this.cellValueChanged.bind(this));
10998
11002
  this.subscribe("column-moving-rows", this.columnMoving.bind(this));
10999
11003
  this.subscribe("table-built", this.initializeElementField.bind(this));
11004
+ this.subscribe("table-redrawing", this.tableRedrawing.bind(this));
11000
11005
  this.registerDisplayHandler(this.getRows.bind(this), 30);
11001
11006
  }
11002
11007
  }
11008
+ }, {
11009
+ key: "tableRedrawing",
11010
+ value: function tableRedrawing(force) {
11011
+ var _this2 = this;
11012
+
11013
+ var rows;
11014
+
11015
+ if (force) {
11016
+ rows = this.table.rowManager.getRows();
11017
+ rows.forEach(function (row) {
11018
+ _this2.reinitializeRowChildren(row);
11019
+ });
11020
+ }
11021
+ }
11003
11022
  }, {
11004
11023
  key: "initializeElementField",
11005
11024
  value: function initializeElementField() {
@@ -11014,11 +11033,11 @@
11014
11033
  }, {
11015
11034
  key: "columnMoving",
11016
11035
  value: function columnMoving() {
11017
- var _this2 = this;
11036
+ var _this3 = this;
11018
11037
 
11019
11038
  var rows = [];
11020
11039
  this.table.rowManager.rows.forEach(function (row) {
11021
- rows = rows.concat(_this2.getTreeChildren(row, false, true));
11040
+ rows = rows.concat(_this3.getTreeChildren(row, false, true));
11022
11041
  });
11023
11042
  return rows;
11024
11043
  }
@@ -11123,7 +11142,7 @@
11123
11142
  }, {
11124
11143
  key: "generateControlElement",
11125
11144
  value: function generateControlElement(row, el) {
11126
- var _this3 = this;
11145
+ var _this4 = this;
11127
11146
 
11128
11147
  var config = row.modules.dataTree,
11129
11148
  el = el || row.getCells()[0].getElement(),
@@ -11135,14 +11154,14 @@
11135
11154
  config.controlEl.addEventListener("click", function (e) {
11136
11155
  e.stopPropagation();
11137
11156
 
11138
- _this3.collapseRow(row);
11157
+ _this4.collapseRow(row);
11139
11158
  });
11140
11159
  } else {
11141
11160
  config.controlEl = this.expandEl.cloneNode(true);
11142
11161
  config.controlEl.addEventListener("click", function (e) {
11143
11162
  e.stopPropagation();
11144
11163
 
11145
- _this3.expandRow(row);
11164
+ _this4.expandRow(row);
11146
11165
  });
11147
11166
  }
11148
11167
 
@@ -11170,7 +11189,7 @@
11170
11189
  }, {
11171
11190
  key: "getRows",
11172
11191
  value: function getRows(rows) {
11173
- var _this4 = this;
11192
+ var _this5 = this;
11174
11193
 
11175
11194
  var output = [];
11176
11195
  rows.forEach(function (row, i) {
@@ -11182,7 +11201,7 @@
11182
11201
  config = row.modules.dataTree.children;
11183
11202
 
11184
11203
  if (!config.index && config.children !== false) {
11185
- children = _this4.getChildren(row);
11204
+ children = _this5.getChildren(row);
11186
11205
  children.forEach(function (child) {
11187
11206
  child.create();
11188
11207
  output.push(child);
@@ -11195,7 +11214,7 @@
11195
11214
  }, {
11196
11215
  key: "getChildren",
11197
11216
  value: function getChildren(row, allChildren) {
11198
- var _this5 = this;
11217
+ var _this6 = this;
11199
11218
 
11200
11219
  var config = row.modules.dataTree,
11201
11220
  children = [],
@@ -11219,7 +11238,7 @@
11219
11238
  children.forEach(function (child) {
11220
11239
  output.push(child);
11221
11240
 
11222
- var subChildren = _this5.getChildren(child);
11241
+ var subChildren = _this6.getChildren(child);
11223
11242
 
11224
11243
  subChildren.forEach(function (sub) {
11225
11244
  output.push(sub);
@@ -11232,7 +11251,7 @@
11232
11251
  }, {
11233
11252
  key: "generateChildren",
11234
11253
  value: function generateChildren(row) {
11235
- var _this6 = this;
11254
+ var _this7 = this;
11236
11255
 
11237
11256
  var children = [];
11238
11257
  var childArray = row.getData()[this.field];
@@ -11242,13 +11261,13 @@
11242
11261
  }
11243
11262
 
11244
11263
  childArray.forEach(function (childData) {
11245
- var childRow = new Row(childData || {}, _this6.table.rowManager);
11264
+ var childRow = new Row(childData || {}, _this7.table.rowManager);
11246
11265
  childRow.create();
11247
11266
  childRow.modules.dataTree.index = row.modules.dataTree.index + 1;
11248
11267
  childRow.modules.dataTree.parent = row;
11249
11268
 
11250
11269
  if (childRow.modules.dataTree.children) {
11251
- childRow.modules.dataTree.open = _this6.startOpen(childRow.getComponent(), childRow.modules.dataTree.index);
11270
+ childRow.modules.dataTree.open = _this7.startOpen(childRow.getComponent(), childRow.modules.dataTree.index);
11252
11271
  }
11253
11272
 
11254
11273
  children.push(childRow);
@@ -11302,6 +11321,11 @@
11302
11321
  value: function getTreeParent(row) {
11303
11322
  return row.modules.dataTree.parent ? row.modules.dataTree.parent.getComponent() : false;
11304
11323
  }
11324
+ }, {
11325
+ key: "getTreeParentRoot",
11326
+ value: function getTreeParentRoot(row) {
11327
+ return row.modules.dataTree.parent ? this.getTreeParentRoot(row.modules.dataTree.parent) : row;
11328
+ }
11305
11329
  }, {
11306
11330
  key: "getFilteredTreeChildren",
11307
11331
  value: function getFilteredTreeChildren(row) {
@@ -11389,7 +11413,7 @@
11389
11413
  }, {
11390
11414
  key: "findChildIndex",
11391
11415
  value: function findChildIndex(subject, parent) {
11392
- var _this7 = this;
11416
+ var _this8 = this;
11393
11417
 
11394
11418
  var match = false;
11395
11419
 
@@ -11416,7 +11440,7 @@
11416
11440
  } else {
11417
11441
  //subject should be treated as the index of the row
11418
11442
  match = parent.data[this.field].find(function (row) {
11419
- return row.data[_this7.table.options.index] == subject;
11443
+ return row.data[_this8.table.options.index] == subject;
11420
11444
  });
11421
11445
  }
11422
11446
 
@@ -11436,7 +11460,7 @@
11436
11460
  }, {
11437
11461
  key: "getTreeChildren",
11438
11462
  value: function getTreeChildren(row, component, recurse) {
11439
- var _this8 = this;
11463
+ var _this9 = this;
11440
11464
 
11441
11465
  var config = row.modules.dataTree,
11442
11466
  output = [];
@@ -11451,7 +11475,7 @@
11451
11475
  output.push(component ? childRow.getComponent() : childRow);
11452
11476
 
11453
11477
  if (recurse) {
11454
- output = output.concat(_this8.getTreeChildren(childRow, component, recurse));
11478
+ output = output.concat(_this9.getTreeChildren(childRow, component, recurse));
11455
11479
  }
11456
11480
  }
11457
11481
  });
@@ -12942,7 +12966,7 @@
12942
12966
  values = this._ajaxRequest(this.params.valuesURL, this.input.value);
12943
12967
  } else {
12944
12968
  if (typeof this.params.valuesLookup === "function") {
12945
- values = this.params.valuesLookup(cell, this.input.value);
12969
+ values = this.params.valuesLookup(this.cell, this.input.value);
12946
12970
  } else if (this.params.valuesLookup) {
12947
12971
  values = this._uniqueColumnValues(this.params.valuesLookupField);
12948
12972
  }
@@ -13490,7 +13514,7 @@
13490
13514
  this.actions.success(output);
13491
13515
 
13492
13516
  if (this.isFilter) {
13493
- this.initialValues = output;
13517
+ this.initialValues = output && !Array.isArray[output] ? [output] : output;
13494
13518
  }
13495
13519
  }
13496
13520
  }]);
@@ -15935,7 +15959,7 @@
15935
15959
  value: function refreshFilter() {
15936
15960
  if (this.tableInitialized) {
15937
15961
  if (this.table.options.filterMode === "remote") {
15938
- this.reloadData();
15962
+ this.reloadData(null, false, false);
15939
15963
  } else {
15940
15964
  this.refreshData(true);
15941
15965
  }
@@ -17189,7 +17213,6 @@
17189
17213
  _this.rightPadding = 0;
17190
17214
  _this.initializationMode = "left";
17191
17215
  _this.active = false;
17192
- _this.scrollEndTimer = false;
17193
17216
  _this.blocked = true;
17194
17217
 
17195
17218
  _this.registerColumnOption("frozen");
@@ -17296,21 +17319,12 @@
17296
17319
  }, {
17297
17320
  key: "scrollHorizontal",
17298
17321
  value: function scrollHorizontal() {
17299
- var _this3 = this;
17300
-
17301
- var rows;
17302
17322
 
17303
17323
  if (this.active) {
17304
- clearTimeout(this.scrollEndTimer);
17305
- rows = this.table.rowManager.getVisibleRows();
17306
17324
  this.calcMargins(true);
17307
17325
  this.layoutColumnPosition();
17308
17326
  this.layoutCalcRows();
17309
- rows.forEach(function (row) {
17310
- if (row.type === "row") {
17311
- _this3.layoutRow(row);
17312
- }
17313
- });
17327
+ this.reinitializeRows();
17314
17328
  }
17315
17329
  } //calculate margins for rows
17316
17330
 
@@ -17347,19 +17361,19 @@
17347
17361
  }, {
17348
17362
  key: "layoutGroupCalcs",
17349
17363
  value: function layoutGroupCalcs(groups) {
17350
- var _this4 = this;
17364
+ var _this3 = this;
17351
17365
 
17352
17366
  groups.forEach(function (group) {
17353
17367
  if (group.calcs.top) {
17354
- _this4.layoutRow(group.calcs.top);
17368
+ _this3.layoutRow(group.calcs.top);
17355
17369
  }
17356
17370
 
17357
17371
  if (group.calcs.bottom) {
17358
- _this4.layoutRow(group.calcs.bottom);
17372
+ _this3.layoutRow(group.calcs.bottom);
17359
17373
  }
17360
17374
 
17361
17375
  if (group.groupList && group.groupList.length) {
17362
- _this4.layoutGroupCalcs(group.groupList && group.groupList);
17376
+ _this3.layoutGroupCalcs(group.groupList && group.groupList);
17363
17377
  }
17364
17378
  });
17365
17379
  } //calculate column positions and layout headers
@@ -17367,7 +17381,7 @@
17367
17381
  }, {
17368
17382
  key: "layoutColumnPosition",
17369
17383
  value: function layoutColumnPosition(allCells) {
17370
- var _this5 = this;
17384
+ var _this4 = this;
17371
17385
 
17372
17386
  var leftParents = [];
17373
17387
  var leftMargin = 0;
@@ -17375,23 +17389,24 @@
17375
17389
  this.table.columnManager.headersElement.style.marginLeft = this.leftMargin;
17376
17390
  this.table.columnManager.element.style.paddingRight = this.rightMargin;
17377
17391
  this.leftColumns.forEach(function (column, i) {
17378
- column.modules.frozen.margin = leftMargin + _this5.table.columnManager.scrollLeft + "px";
17392
+ column.modules.frozen.marginValue = leftMargin + _this4.table.columnManager.scrollLeft;
17393
+ column.modules.frozen.margin = column.modules.frozen.marginValue + "px";
17379
17394
 
17380
17395
  if (column.visible) {
17381
17396
  leftMargin += column.getWidth();
17382
17397
  }
17383
17398
 
17384
- if (i == _this5.leftColumns.length - 1) {
17399
+ if (i == _this4.leftColumns.length - 1) {
17385
17400
  column.modules.frozen.edge = true;
17386
17401
  } else {
17387
17402
  column.modules.frozen.edge = false;
17388
17403
  }
17389
17404
 
17390
17405
  if (column.parent.isGroup) {
17391
- var parentEl = _this5.getColGroupParentElement(column);
17406
+ var parentEl = _this4.getColGroupParentElement(column);
17392
17407
 
17393
17408
  if (!leftParents.includes(parentEl)) {
17394
- _this5.layoutElement(parentEl, column);
17409
+ _this4.layoutElement(parentEl, column);
17395
17410
 
17396
17411
  leftParents.push(parentEl);
17397
17412
  }
@@ -17400,12 +17415,12 @@
17400
17415
  parentEl.classList.add("tabulator-frozen-" + column.modules.frozen.position);
17401
17416
  }
17402
17417
  } else {
17403
- _this5.layoutElement(column.getElement(), column);
17418
+ _this4.layoutElement(column.getElement(), column);
17404
17419
  }
17405
17420
 
17406
17421
  if (allCells) {
17407
17422
  column.cells.forEach(function (cell) {
17408
- _this5.layoutElement(cell.getElement(true), column);
17423
+ _this4.layoutElement(cell.getElement(true), column);
17409
17424
  });
17410
17425
  }
17411
17426
  });
@@ -17414,23 +17429,24 @@
17414
17429
  rightMargin += column.getWidth();
17415
17430
  }
17416
17431
 
17417
- column.modules.frozen.margin = _this5.rightPadding - rightMargin + "px";
17432
+ column.modules.frozen.marginValue = _this4.rightPadding - rightMargin;
17433
+ column.modules.frozen.margin = column.modules.frozen.marginValue + "px";
17418
17434
 
17419
- if (i == _this5.rightColumns.length - 1) {
17435
+ if (i == _this4.rightColumns.length - 1) {
17420
17436
  column.modules.frozen.edge = true;
17421
17437
  } else {
17422
17438
  column.modules.frozen.edge = false;
17423
17439
  }
17424
17440
 
17425
17441
  if (column.parent.isGroup) {
17426
- _this5.layoutElement(_this5.getColGroupParentElement(column), column);
17442
+ _this4.layoutElement(_this4.getColGroupParentElement(column), column);
17427
17443
  } else {
17428
- _this5.layoutElement(column.getElement(), column);
17444
+ _this4.layoutElement(column.getElement(), column);
17429
17445
  }
17430
17446
 
17431
17447
  if (allCells) {
17432
17448
  column.cells.forEach(function (cell) {
17433
- _this5.layoutElement(cell.getElement(true), column);
17449
+ _this4.layoutElement(cell.getElement(true), column);
17434
17450
  });
17435
17451
  }
17436
17452
  });
@@ -17444,35 +17460,37 @@
17444
17460
  }, {
17445
17461
  key: "layout",
17446
17462
  value: function layout() {
17447
- var _this6 = this;
17448
-
17449
- var visibleRows = [],
17450
- otherRows = [];
17451
-
17452
17463
  if (this.active && !this.blocked) {
17453
17464
  //calculate row padding
17454
17465
  this.calcMargins(); //calculate left columns
17455
17466
 
17456
17467
  this.layoutColumnPosition();
17457
- visibleRows = this.table.rowManager.getVisibleRows();
17458
- otherRows = this.table.rowManager.getDisplayRows().filter(function (row) {
17459
- return !visibleRows.includes(row);
17460
- });
17461
- otherRows.forEach(function (row) {
17462
- row.deinitialize();
17463
- });
17464
- visibleRows.forEach(function (row) {
17465
- if (row.type === "row") {
17466
- _this6.layoutRow(row);
17467
- }
17468
- });
17468
+ this.reinitializeRows();
17469
17469
  this.layoutCalcRows();
17470
17470
  }
17471
17471
  }
17472
+ }, {
17473
+ key: "reinitializeRows",
17474
+ value: function reinitializeRows() {
17475
+ var _this5 = this;
17476
+
17477
+ var visibleRows = this.table.rowManager.getVisibleRows();
17478
+ var otherRows = this.table.rowManager.getRows().filter(function (row) {
17479
+ return !visibleRows.includes(row);
17480
+ });
17481
+ otherRows.forEach(function (row) {
17482
+ row.deinitialize();
17483
+ });
17484
+ visibleRows.forEach(function (row) {
17485
+ if (row.type === "row") {
17486
+ _this5.layoutRow(row);
17487
+ }
17488
+ });
17489
+ }
17472
17490
  }, {
17473
17491
  key: "layoutRow",
17474
17492
  value: function layoutRow(row) {
17475
- var _this7 = this;
17493
+ var _this6 = this;
17476
17494
 
17477
17495
  // console.trace("row")
17478
17496
  var rowEl = row.getElement();
@@ -17486,14 +17504,14 @@
17486
17504
  var cell = row.getCell(column);
17487
17505
 
17488
17506
  if (cell) {
17489
- _this7.layoutElement(cell.getElement(true), column);
17507
+ _this6.layoutElement(cell.getElement(true), column);
17490
17508
  }
17491
17509
  });
17492
17510
  this.rightColumns.forEach(function (column) {
17493
17511
  var cell = row.getCell(column);
17494
17512
 
17495
17513
  if (cell) {
17496
- _this7.layoutElement(cell.getElement(true), column);
17514
+ _this6.layoutElement(cell.getElement(true), column);
17497
17515
  }
17498
17516
  });
17499
17517
  }
@@ -18819,6 +18837,11 @@
18819
18837
  key: "getRowGroup",
18820
18838
  value: function getRowGroup(row) {
18821
18839
  var match = false;
18840
+
18841
+ if (this.options("dataTree")) {
18842
+ row = this.table.modules.dataTree.getTreeParentRoot(row);
18843
+ }
18844
+
18822
18845
  this.groupList.forEach(function (group) {
18823
18846
  var result = group.getRowGroup(row);
18824
18847
 
@@ -20679,7 +20702,7 @@
20679
20702
  config = {},
20680
20703
  colEl;
20681
20704
 
20682
- if (!column.modules.frozen) {
20705
+ if (!column.modules.frozen && !column.isGroup) {
20683
20706
  colEl = column.getElement();
20684
20707
 
20685
20708
  config.mousemove = function (e) {
@@ -23245,6 +23268,7 @@
23245
23268
  if (_this3.config.columns === true || _this3.config.columns == undefined) {
23246
23269
  keys = Object.keys(colDef);
23247
23270
  keys.push("width");
23271
+ keys.push("visible");
23248
23272
  } else {
23249
23273
  keys = _this3.config.columns;
23250
23274
  }
@@ -24006,6 +24030,7 @@
24006
24030
  this.subscribe("column-moved", this.columnLayoutUpdated.bind(this));
24007
24031
  this.subscribe("column-hide", this.deInitializeColumn.bind(this));
24008
24032
  this.subscribe("column-show", this.columnLayoutUpdated.bind(this));
24033
+ this.subscribe("column-width", this.columnWidthUpdated.bind(this));
24009
24034
  this.subscribe("column-delete", this.deInitializeComponent.bind(this));
24010
24035
  this.subscribe("column-height", this.resizeHandle.bind(this));
24011
24036
  this.initialized = true;
@@ -24038,16 +24063,42 @@
24038
24063
  this.reinitializeColumn(prev);
24039
24064
  }
24040
24065
  }
24066
+ }, {
24067
+ key: "columnWidthUpdated",
24068
+ value: function columnWidthUpdated(column) {
24069
+ var _this2 = this;
24070
+
24071
+ if (column.modules.frozen) {
24072
+ if (this.table.modules.frozenColumns.leftColumns.includes(column)) {
24073
+ this.table.modules.frozenColumns.leftColumns.forEach(function (col) {
24074
+ _this2.reinitializeColumn(col);
24075
+ });
24076
+ } else if (this.table.modules.frozenColumns.rightColumns.includes(column)) {
24077
+ this.table.modules.frozenColumns.rightColumns.forEach(function (col) {
24078
+ _this2.reinitializeColumn(col);
24079
+ });
24080
+ }
24081
+ }
24082
+ }
24041
24083
  }, {
24042
24084
  key: "reinitializeColumn",
24043
24085
  value: function reinitializeColumn(column) {
24086
+ var frozenOffset = column.modules.frozen ? column.modules.frozen.marginValue + column.getWidth() + "px" : false;
24044
24087
  column.cells.forEach(function (cell) {
24045
24088
  if (cell.modules.resize && cell.modules.resize.handleEl) {
24089
+ if (frozenOffset) {
24090
+ cell.modules.resize.handleEl.style.left = frozenOffset;
24091
+ }
24092
+
24046
24093
  cell.element.after(cell.modules.resize.handleEl);
24047
24094
  }
24048
24095
  });
24049
24096
 
24050
24097
  if (column.modules.resize && column.modules.resize.handleEl) {
24098
+ if (frozenOffset) {
24099
+ column.modules.resize.handleEl.style.left = frozenOffset;
24100
+ }
24101
+
24051
24102
  column.element.after(column.modules.resize.handleEl);
24052
24103
  }
24053
24104
  }
@@ -24068,7 +24119,7 @@
24068
24119
  }
24069
24120
 
24070
24121
  if ((mode === true || mode == type) && this._checkResizability(nearestColumn)) {
24071
- var handle = document.createElement('div');
24122
+ var handle = document.createElement('span');
24072
24123
  handle.className = "tabulator-col-resize-handle";
24073
24124
  handle.addEventListener("click", function (e) {
24074
24125
  e.stopPropagation();
@@ -24096,6 +24147,12 @@
24096
24147
  self.table.externalEvents.dispatch("columnResized", nearestColumn.getComponent());
24097
24148
  }
24098
24149
  });
24150
+
24151
+ if (column.modules.frozen) {
24152
+ handle.style.position = "absolute";
24153
+ handle.style.left = column.modules.frozen.marginValue + column.getWidth() + "px";
24154
+ }
24155
+
24099
24156
  config.handleEl = handle;
24100
24157
 
24101
24158
  if (element.parentNode) {
@@ -24108,11 +24165,11 @@
24108
24165
  }, {
24109
24166
  key: "deInitializeColumn",
24110
24167
  value: function deInitializeColumn(column) {
24111
- var _this2 = this;
24168
+ var _this3 = this;
24112
24169
 
24113
24170
  this.deInitializeComponent(column);
24114
24171
  column.cells.forEach(function (cell) {
24115
- _this2.deInitializeComponent(cell);
24172
+ _this3.deInitializeComponent(cell);
24116
24173
  });
24117
24174
  }
24118
24175
  }, {
@@ -25445,7 +25502,7 @@
25445
25502
  if (DT.isDateTime(b)) {
25446
25503
  b = b;
25447
25504
  } else if (format === "iso") {
25448
- a = DT.fromISO(String(b));
25505
+ b = DT.fromISO(String(b));
25449
25506
  } else {
25450
25507
  b = DT.fromFormat(String(b), format);
25451
25508
  }
@@ -25834,7 +25891,7 @@
25834
25891
  key: "refreshSort",
25835
25892
  value: function refreshSort() {
25836
25893
  if (this.table.options.sortMode === "remote") {
25837
- this.reloadData();
25894
+ this.reloadData(null, false, false);
25838
25895
  } else {
25839
25896
  this.refreshData(true);
25840
25897
  } //TODO - Persist left position of row manager
@@ -26442,7 +26499,7 @@
26442
26499
 
26443
26500
  var invalid = [];
26444
26501
  column.cells.forEach(function (cell) {
26445
- if (!_this3.cellValidate(cell)) {
26502
+ if (_this3.cellValidate(cell) !== true) {
26446
26503
  invalid.push(cell.getComponent());
26447
26504
  }
26448
26505
  });
@@ -26458,7 +26515,7 @@
26458
26515
 
26459
26516
  var invalid = [];
26460
26517
  row.cells.forEach(function (cell) {
26461
- if (!_this4.cellValidate(cell)) {
26518
+ if (_this4.cellValidate(cell) !== true) {
26462
26519
  invalid.push(cell.getComponent());
26463
26520
  }
26464
26521
  });