tabulator-tables 5.0.6 → 5.0.7

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.
package/bower.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "tabulator",
3
3
  "main": "dist/js/tabulator.js",
4
- "version": "5.0.6",
4
+ "version": "5.0.7",
5
5
  "description": "Interactive table generation JavaScript library",
6
6
  "keywords": [
7
7
  "table",
package/build/rollup.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import Bundler from "./Bundler.js";
2
2
 
3
- var bundler = new Bundler("5.0.6", process.env.TARGET);
3
+ var bundler = new Bundler("5.0.7", process.env.TARGET);
4
4
 
5
5
  module.exports = bundler.bundle();
@@ -1,4 +1,4 @@
1
- /* Tabulator v5.0.6 (c) Oliver Folkerd 2021 */
1
+ /* Tabulator v5.0.7 (c) Oliver Folkerd 2021 */
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) :
@@ -731,7 +731,7 @@
731
731
  return CellComponent;
732
732
  }();
733
733
 
734
- var Cell$1 = /*#__PURE__*/function (_CoreFeature) {
734
+ var Cell = /*#__PURE__*/function (_CoreFeature) {
735
735
  _inherits(Cell, _CoreFeature);
736
736
 
737
737
  var _super = _createSuper(Cell);
@@ -2015,7 +2015,7 @@
2015
2015
  }, {
2016
2016
  key: "generateCell",
2017
2017
  value: function generateCell(row) {
2018
- var cell = new Cell$1(this, row);
2018
+ var cell = new Cell(this, row);
2019
2019
  this.cells.push(cell);
2020
2020
  return cell;
2021
2021
  }
@@ -3198,8 +3198,9 @@
3198
3198
  index = nextToColumn ? this.findColumnIndex(nextToColumn) : nextToColumn;
3199
3199
 
3200
3200
  if (nextToColumn && index > -1) {
3201
- var parentIndex = this.columns.indexOf(nextToColumn.getTopColumn());
3202
- var nextEl = nextToColumn.getElement();
3201
+ var topColumn = nextToColumn.getTopColumn();
3202
+ var parentIndex = this.columns.indexOf(topColumn);
3203
+ var nextEl = topColumn.getElement();
3203
3204
 
3204
3205
  if (before) {
3205
3206
  this.columns.splice(parentIndex, 0, column);
@@ -3565,13 +3566,11 @@
3565
3566
 
3566
3567
  _this6.dispatch("column-add", definition, before, nextToColumn);
3567
3568
 
3568
- _this6.redraw(true);
3569
-
3570
3569
  if (_this6.layoutMode() != "fitColumns") {
3571
3570
  column.reinitializeWidth();
3572
3571
  }
3573
3572
 
3574
- _this6.verticalAlignHeaders();
3573
+ _this6.redraw(true);
3575
3574
 
3576
3575
  _this6.table.rowManager.reinitialize();
3577
3576
 
@@ -3747,7 +3746,7 @@
3747
3746
  return RowComponent;
3748
3747
  }();
3749
3748
 
3750
- var Row$1 = /*#__PURE__*/function (_CoreFeature) {
3749
+ var Row = /*#__PURE__*/function (_CoreFeature) {
3751
3750
  _inherits(Row, _CoreFeature);
3752
3751
 
3753
3752
  var _super = _createSuper(Row);
@@ -5033,7 +5032,7 @@
5033
5032
  var _this3 = this;
5034
5033
 
5035
5034
  if (_typeof(subject) == "object") {
5036
- if (subject instanceof Row$1) {
5035
+ if (subject instanceof Row) {
5037
5036
  //subject is row element
5038
5037
  return subject;
5039
5038
  } else if (subject instanceof RowComponent$1) {
@@ -5123,7 +5122,7 @@
5123
5122
  this.dispatch("data-processing", data);
5124
5123
  data.forEach(function (def, i) {
5125
5124
  if (def && _typeof(def) === "object") {
5126
- var row = new Row$1(def, _this5);
5125
+ var row = new Row(def, _this5);
5127
5126
 
5128
5127
  _this5.rows.push(row);
5129
5128
  } else {
@@ -5256,7 +5255,7 @@
5256
5255
  }, {
5257
5256
  key: "addRowActual",
5258
5257
  value: function addRowActual(data, pos, index, blockRedraw) {
5259
- var row = data instanceof Row$1 ? data : new Row$1(data || {}, this),
5258
+ var row = data instanceof Row ? data : new Row(data || {}, this),
5260
5259
  top = this.findAddRowPos(pos),
5261
5260
  allIndex = -1,
5262
5261
  activeIndex,
@@ -5408,7 +5407,7 @@
5408
5407
  nextRow = this.getDisplayRows()[index + 1];
5409
5408
  }
5410
5409
 
5411
- if (nextRow && (!(nextRow instanceof Row$1) || nextRow.type != "row")) {
5410
+ if (nextRow && (!(nextRow instanceof Row) || nextRow.type != "row")) {
5412
5411
  return this.nextDisplayRow(nextRow, rowOnly);
5413
5412
  }
5414
5413
 
@@ -5424,7 +5423,7 @@
5424
5423
  prevRow = this.getDisplayRows()[index - 1];
5425
5424
  }
5426
5425
 
5427
- if (rowOnly && prevRow && (!(prevRow instanceof Row$1) || prevRow.type != "row")) {
5426
+ if (rowOnly && prevRow && (!(prevRow instanceof Row) || prevRow.type != "row")) {
5428
5427
  return this.prevDisplayRow(prevRow, rowOnly);
5429
5428
  }
5430
5429
 
@@ -6185,8 +6184,7 @@
6185
6184
  if (listener.components.length) {
6186
6185
  if (!listener.handler) {
6187
6186
  listener.handler = this.track.bind(this, key);
6188
- this.el.addEventListener(key, listener.handler);
6189
- console.log("add", key); // this.el.addEventListener(key, listener.handler, {passive: true})
6187
+ this.el.addEventListener(key, listener.handler); // this.el.addEventListener(key, listener.handler, {passive: true})
6190
6188
  }
6191
6189
  } else {
6192
6190
  if (listener.handler) {
@@ -8168,7 +8166,11 @@
8168
8166
  }, {
8169
8167
  key: "replaceData",
8170
8168
  value: function replaceData(data, params, config) {
8171
- return this.dataLoader.load(data, params, config, true, true);
8169
+ if (this.initialized) {
8170
+ return this.dataLoader.load(data, params, config, true, true);
8171
+ } else {
8172
+ console.warn("replaceData failed - table not yet initialized. Please wait for the `tableBuilt` event before calling this function.");
8173
+ }
8172
8174
  } //update table data
8173
8175
 
8174
8176
  }, {
@@ -8177,59 +8179,68 @@
8177
8179
  var _this3 = this;
8178
8180
 
8179
8181
  var responses = 0;
8180
- return new Promise(function (resolve, reject) {
8181
- _this3.dataLoader.blockActiveLoad();
8182
8182
 
8183
- if (typeof data === "string") {
8184
- data = JSON.parse(data);
8185
- }
8183
+ if (this.initialized) {
8184
+ return new Promise(function (resolve, reject) {
8185
+ _this3.dataLoader.blockActiveLoad();
8186
8186
 
8187
- if (data) {
8188
- data.forEach(function (item) {
8189
- var row = _this3.rowManager.findRow(item[_this3.options.index]);
8187
+ if (typeof data === "string") {
8188
+ data = JSON.parse(data);
8189
+ }
8190
8190
 
8191
- if (row) {
8192
- responses++;
8193
- row.updateData(item).then(function () {
8194
- responses--;
8191
+ if (data) {
8192
+ data.forEach(function (item) {
8193
+ var row = _this3.rowManager.findRow(item[_this3.options.index]);
8195
8194
 
8196
- if (!responses) {
8197
- resolve();
8198
- }
8199
- });
8200
- }
8201
- });
8202
- } else {
8203
- console.warn("Update Error - No data provided");
8204
- reject("Update Error - No data provided");
8205
- }
8206
- });
8195
+ if (row) {
8196
+ responses++;
8197
+ row.updateData(item).then(function () {
8198
+ responses--;
8199
+
8200
+ if (!responses) {
8201
+ resolve();
8202
+ }
8203
+ });
8204
+ }
8205
+ });
8206
+ } else {
8207
+ console.warn("Update Error - No data provided");
8208
+ reject("Update Error - No data provided");
8209
+ }
8210
+ });
8211
+ } else {
8212
+ console.warn("updateData failed - table not yet initialized. Please wait for the `tableBuilt` event before calling this function.");
8213
+ }
8207
8214
  }
8208
8215
  }, {
8209
8216
  key: "addData",
8210
8217
  value: function addData(data, pos, index) {
8211
8218
  var _this4 = this;
8212
8219
 
8213
- return new Promise(function (resolve, reject) {
8214
- _this4.dataLoader.blockActiveLoad();
8220
+ if (this.initialized) {
8221
+ return new Promise(function (resolve, reject) {
8222
+ _this4.dataLoader.blockActiveLoad();
8215
8223
 
8216
- if (typeof data === "string") {
8217
- data = JSON.parse(data);
8218
- }
8224
+ if (typeof data === "string") {
8225
+ data = JSON.parse(data);
8226
+ }
8219
8227
 
8220
- if (data) {
8221
- _this4.rowManager.addRows(data, pos, index).then(function (rows) {
8222
- var output = [];
8223
- rows.forEach(function (row) {
8224
- output.push(row.getComponent());
8228
+ if (data) {
8229
+ _this4.rowManager.addRows(data, pos, index).then(function (rows) {
8230
+ var output = [];
8231
+ rows.forEach(function (row) {
8232
+ output.push(row.getComponent());
8233
+ });
8234
+ resolve(output);
8225
8235
  });
8226
- resolve(output);
8227
- });
8228
- } else {
8229
- console.warn("Update Error - No data provided");
8230
- reject("Update Error - No data provided");
8231
- }
8232
- });
8236
+ } else {
8237
+ console.warn("Update Error - No data provided");
8238
+ reject("Update Error - No data provided");
8239
+ }
8240
+ });
8241
+ } else {
8242
+ console.warn("addData failed - table not yet initialized. Please wait for the `tableBuilt` event before calling this function.");
8243
+ }
8233
8244
  } //update table data
8234
8245
 
8235
8246
  }, {
@@ -8239,44 +8250,49 @@
8239
8250
 
8240
8251
  var rows = [],
8241
8252
  responses = 0;
8242
- return new Promise(function (resolve, reject) {
8243
- _this5.dataLoader.blockActiveLoad();
8244
8253
 
8245
- if (typeof data === "string") {
8246
- data = JSON.parse(data);
8247
- }
8254
+ if (this.initialized) {
8255
+ return new Promise(function (resolve, reject) {
8256
+ _this5.dataLoader.blockActiveLoad();
8248
8257
 
8249
- if (data) {
8250
- data.forEach(function (item) {
8251
- var row = _this5.rowManager.findRow(item[_this5.options.index]);
8258
+ if (typeof data === "string") {
8259
+ data = JSON.parse(data);
8260
+ }
8252
8261
 
8253
- responses++;
8262
+ if (data) {
8263
+ data.forEach(function (item) {
8264
+ var row = _this5.rowManager.findRow(item[_this5.options.index]);
8254
8265
 
8255
- if (row) {
8256
- row.updateData(item).then(function () {
8257
- responses--;
8258
- rows.push(row.getComponent());
8266
+ responses++;
8259
8267
 
8260
- if (!responses) {
8261
- resolve(rows);
8262
- }
8263
- });
8264
- } else {
8265
- _this5.rowManager.addRows(item).then(function (newRows) {
8266
- responses--;
8267
- rows.push(newRows[0].getComponent());
8268
+ if (row) {
8269
+ row.updateData(item).then(function () {
8270
+ responses--;
8271
+ rows.push(row.getComponent());
8268
8272
 
8269
- if (!responses) {
8270
- resolve(rows);
8271
- }
8272
- });
8273
- }
8274
- });
8275
- } else {
8276
- console.warn("Update Error - No data provided");
8277
- reject("Update Error - No data provided");
8278
- }
8279
- });
8273
+ if (!responses) {
8274
+ resolve(rows);
8275
+ }
8276
+ });
8277
+ } else {
8278
+ _this5.rowManager.addRows(item).then(function (newRows) {
8279
+ responses--;
8280
+ rows.push(newRows[0].getComponent());
8281
+
8282
+ if (!responses) {
8283
+ resolve(rows);
8284
+ }
8285
+ });
8286
+ }
8287
+ });
8288
+ } else {
8289
+ console.warn("Update Error - No data provided");
8290
+ reject("Update Error - No data provided");
8291
+ }
8292
+ });
8293
+ } else {
8294
+ console.warn("updateOrAddData failed - table not yet initialized. Please wait for the `tableBuilt` event before calling this function.");
8295
+ }
8280
8296
  } //get row object
8281
8297
 
8282
8298
  }, {
@@ -8354,13 +8370,17 @@
8354
8370
  }, {
8355
8371
  key: "addRow",
8356
8372
  value: function addRow(data, pos, index) {
8357
- if (typeof data === "string") {
8358
- data = JSON.parse(data);
8359
- }
8373
+ if (this.initialized) {
8374
+ if (typeof data === "string") {
8375
+ data = JSON.parse(data);
8376
+ }
8360
8377
 
8361
- return this.rowManager.addRows(data, pos, index).then(function (rows) {
8362
- return rows[0].getComponent();
8363
- });
8378
+ return this.rowManager.addRows(data, pos, index).then(function (rows) {
8379
+ return rows[0].getComponent();
8380
+ });
8381
+ } else {
8382
+ console.warn("addRow failed - table not yet initialized. Please wait for the `tableBuilt` event before calling this function.");
8383
+ }
8364
8384
  } //update a row if it exitsts otherwise create it
8365
8385
 
8366
8386
  }, {
@@ -8428,7 +8448,11 @@
8428
8448
  }, {
8429
8449
  key: "getRows",
8430
8450
  value: function getRows(active) {
8431
- return this.rowManager.getComponents(active);
8451
+ if (this.initialized) {
8452
+ return this.rowManager.getComponents(active);
8453
+ } else {
8454
+ console.warn("getRows failed - table not yet initialized. Please wait for the `tableBuilt` event before calling this function.");
8455
+ }
8432
8456
  } //get position of row in table
8433
8457
 
8434
8458
  }, {
@@ -8585,8 +8609,12 @@
8585
8609
  }, {
8586
8610
  key: "redraw",
8587
8611
  value: function redraw(force) {
8588
- this.columnManager.redraw(force);
8589
- this.rowManager.redraw(force);
8612
+ if (this.initialized) {
8613
+ this.columnManager.redraw(force);
8614
+ this.rowManager.redraw(force);
8615
+ } else {
8616
+ console.warn("redraw failed - table not yet initialized. Please wait for the `tableBuilt` event before calling this function.");
8617
+ }
8590
8618
  }
8591
8619
  }, {
8592
8620
  key: "setHeight",
@@ -10043,7 +10071,7 @@
10043
10071
  this.table.modules.mutator.disable();
10044
10072
  }
10045
10073
 
10046
- row = new Row$1(rowData, this, "calc");
10074
+ row = new Row(rowData, this, "calc");
10047
10075
 
10048
10076
  if (this.table.modExists("mutator")) {
10049
10077
  this.table.modules.mutator.enable();
@@ -10084,7 +10112,7 @@
10084
10112
 
10085
10113
  _this4.genColumn.definition.cssClass = column.definition.cssClass; //generate cell and assign to correct column
10086
10114
 
10087
- var cell = new Cell$1(_this4.genColumn, row);
10115
+ var cell = new Cell(_this4.genColumn, row);
10088
10116
  cell.getElement();
10089
10117
  cell.column = column;
10090
10118
  cell.setWidth();
@@ -10518,7 +10546,7 @@
10518
10546
  var config, children;
10519
10547
  output.push(row);
10520
10548
 
10521
- if (row instanceof Row$1) {
10549
+ if (row instanceof Row) {
10522
10550
  row.create();
10523
10551
  config = row.modules.dataTree.children;
10524
10552
 
@@ -10583,7 +10611,7 @@
10583
10611
  }
10584
10612
 
10585
10613
  childArray.forEach(function (childData) {
10586
- var childRow = new Row$1(childData || {}, _this6.table.rowManager);
10614
+ var childRow = new Row(childData || {}, _this6.table.rowManager);
10587
10615
  childRow.create();
10588
10616
  childRow.modules.dataTree.index = row.modules.dataTree.index + 1;
10589
10617
  childRow.modules.dataTree.parent = row;
@@ -10657,7 +10685,7 @@
10657
10685
  }
10658
10686
 
10659
10687
  children.forEach(function (childRow) {
10660
- if (childRow instanceof Row$1) {
10688
+ if (childRow instanceof Row) {
10661
10689
  output.push(childRow);
10662
10690
  }
10663
10691
  });
@@ -10730,7 +10758,7 @@
10730
10758
  var match = false;
10731
10759
 
10732
10760
  if (_typeof(subject) == "object") {
10733
- if (subject instanceof Row$1) {
10761
+ if (subject instanceof Row) {
10734
10762
  //subject is row element
10735
10763
  match = subject.data;
10736
10764
  } else if (subject instanceof RowComponent) {
@@ -10739,7 +10767,7 @@
10739
10767
  } else if (typeof HTMLElement !== "undefined" && subject instanceof HTMLElement) {
10740
10768
  if (parent.modules.dataTree) {
10741
10769
  match = parent.modules.dataTree.children.find(function (childRow) {
10742
- return childRow instanceof Row$1 ? childRow.element === subject : false;
10770
+ return childRow instanceof Row ? childRow.element === subject : false;
10743
10771
  });
10744
10772
 
10745
10773
  if (match) {
@@ -10783,7 +10811,7 @@
10783
10811
  }
10784
10812
 
10785
10813
  config.children.forEach(function (childRow) {
10786
- if (childRow instanceof Row$1) {
10814
+ if (childRow instanceof Row) {
10787
10815
  output.push(component ? childRow.getComponent() : childRow);
10788
10816
 
10789
10817
  if (recurse) {
@@ -14586,6 +14614,8 @@
14586
14614
  _this.prevHeaderFilterChangeCheck = "{}";
14587
14615
  _this.changed = false; //has filtering changed since last render
14588
14616
 
14617
+ _this.tableInitialized = false;
14618
+
14589
14619
  _this.registerTableOption("filterMode", "local"); //local or remote filtering
14590
14620
 
14591
14621
 
@@ -14684,6 +14714,8 @@
14684
14714
  }
14685
14715
  });
14686
14716
  }
14717
+
14718
+ this.tableInitialized = true;
14687
14719
  }
14688
14720
  }, {
14689
14721
  key: "remoteFilterParams",
@@ -15152,10 +15184,12 @@
15152
15184
  }, {
15153
15185
  key: "refreshFilter",
15154
15186
  value: function refreshFilter() {
15155
- if (this.table.options.filterMode === "remote") {
15156
- this.reloadData();
15157
- } else {
15158
- this.refreshData();
15187
+ if (this.tableInitialized) {
15188
+ if (this.table.options.filterMode === "remote") {
15189
+ this.reloadData();
15190
+ } else {
15191
+ this.refreshData();
15192
+ }
15159
15193
  } //TODO - Persist left position of row manager
15160
15194
  // left = this.scrollLeft;
15161
15195
  // this.scrollHorizontal(left);
@@ -16739,7 +16773,11 @@
16739
16773
 
16740
16774
  if (index > -1) {
16741
16775
  var rowEl = row.getElement();
16742
- rowEl.parentNode.removeChild(rowEl);
16776
+
16777
+ if (rowEl.parentNode) {
16778
+ rowEl.parentNode.removeChild(rowEl);
16779
+ }
16780
+
16743
16781
  this.rows.splice(index, 1);
16744
16782
  }
16745
16783
  }
@@ -17577,6 +17615,30 @@
17577
17615
  _createClass(GroupRows, [{
17578
17616
  key: "initialize",
17579
17617
  value: function initialize() {
17618
+ if (this.table.options.groupBy) {
17619
+ this.configureGroupSetup();
17620
+
17621
+ if (this.table.options.groupUpdateOnCellEdit) {
17622
+ this.subscribe("cell-value-updated", this.cellUpdated.bind(this));
17623
+ this.subscribe("row-data-changed", this.reassignRowToGroup.bind(this), 0);
17624
+ }
17625
+
17626
+ this.subscribe("row-deleting", this.rowDeleting.bind(this));
17627
+ this.subscribe("row-deleted", this.rowsUpdated.bind(this));
17628
+ this.subscribe("scroll-horizontal", this.scrollHeaders.bind(this));
17629
+ this.subscribe("rows-wipe", this.wipe.bind(this));
17630
+ this.subscribe("rows-added", this.rowsUpdated.bind(this));
17631
+ this.subscribe("row-moving", this.rowMoving.bind(this));
17632
+ this.subscribe("row-adding-index", this.rowAddingIndex.bind(this));
17633
+ this.subscribe("rows-sample", this.rowSample.bind(this));
17634
+ this.subscribe("render-virtual-fill", this.virtualRenderFill.bind(this));
17635
+ this.registerDisplayHandler(this.displayHandler, 20);
17636
+ this.initialized = true;
17637
+ }
17638
+ }
17639
+ }, {
17640
+ key: "configureGroupSetup",
17641
+ value: function configureGroupSetup() {
17580
17642
  var _this2 = this;
17581
17643
 
17582
17644
  if (this.table.options.groupBy) {
@@ -17666,23 +17728,6 @@
17666
17728
  if (groupHeader) {
17667
17729
  this.headerGenerator = Array.isArray(groupHeader) ? groupHeader : [groupHeader];
17668
17730
  }
17669
-
17670
- if (this.table.options.groupUpdateOnCellEdit) {
17671
- this.subscribe("cell-value-updated", this.cellUpdated.bind(this));
17672
- this.subscribe("row-data-changed", this.reassignRowToGroup.bind(this), 0);
17673
- }
17674
-
17675
- this.subscribe("row-deleting", this.rowDeleting.bind(this));
17676
- this.subscribe("row-deleted", this.rowsUpdated.bind(this));
17677
- this.subscribe("scroll-horizontal", this.scrollHeaders.bind(this));
17678
- this.subscribe("rows-wipe", this.wipe.bind(this));
17679
- this.subscribe("rows-added", this.rowsUpdated.bind(this));
17680
- this.subscribe("row-moving", this.rowMoving.bind(this));
17681
- this.subscribe("row-adding-index", this.rowAddingIndex.bind(this));
17682
- this.subscribe("rows-sample", this.rowSample.bind(this));
17683
- this.subscribe("render-virtual-fill", this.virtualRenderFill.bind(this));
17684
- this.registerDisplayHandler(this.displayHandler, 20);
17685
- this.initialized = true;
17686
17731
  }
17687
17732
  }
17688
17733
  }, {
@@ -17744,23 +17789,23 @@
17744
17789
  key: "setGroupBy",
17745
17790
  value: function setGroupBy(groups) {
17746
17791
  this.table.options.groupBy = groups;
17747
- this.initialize();
17748
- this.refreshData(false, "display");
17792
+ this.configureGroupSetup();
17793
+ this.refreshData();
17749
17794
  this.trackChanges();
17750
17795
  }
17751
17796
  }, {
17752
17797
  key: "setGroupValues",
17753
17798
  value: function setGroupValues(groupValues) {
17754
17799
  this.table.options.groupValues = groupValues;
17755
- this.initialize();
17756
- this.refreshData(false, "display");
17800
+ this.configureGroupSetup();
17801
+ this.refreshData();
17757
17802
  this.trackChanges();
17758
17803
  }
17759
17804
  }, {
17760
17805
  key: "setGroupStartOpen",
17761
17806
  value: function setGroupStartOpen(values) {
17762
17807
  this.table.options.groupStartOpen = values;
17763
- this.initialize();
17808
+ this.configureGroupSetup();
17764
17809
 
17765
17810
  if (this.table.options.groupBy) {
17766
17811
  this.refreshData();
@@ -17773,7 +17818,7 @@
17773
17818
  key: "setGroupHeader",
17774
17819
  value: function setGroupHeader(values) {
17775
17820
  this.table.options.groupHeader = values;
17776
- this.initialize();
17821
+ this.configureGroupSetup();
17777
17822
 
17778
17823
  if (this.table.options.groupBy) {
17779
17824
  this.refreshData();
@@ -17856,7 +17901,7 @@
17856
17901
  }, {
17857
17902
  key: "getRows",
17858
17903
  value: function getRows(rows) {
17859
- if (this.groupIDLookups.length) {
17904
+ if (this.table.options.groupBy && this.groupIDLookups.length) {
17860
17905
  this.dispatchExternal("dataGrouping");
17861
17906
  this.generateGroups(rows);
17862
17907
 
@@ -18217,7 +18262,7 @@
18217
18262
  }
18218
18263
  }
18219
18264
 
18220
- this.history.action("rowDelete", row, {
18265
+ this.action("rowDelete", row, {
18221
18266
  data: row.getData(),
18222
18267
  pos: !index,
18223
18268
  index: index
@@ -18833,7 +18878,7 @@
18833
18878
  callback;
18834
18879
 
18835
18880
  if (this.columnSubscribers[action]) {
18836
- if (component instanceof Cell$1) {
18881
+ if (component instanceof Cell) {
18837
18882
  callback = component.column.definition[action];
18838
18883
  } else if (component instanceof Column$1) {
18839
18884
  callback = component.definition[action];
@@ -19722,7 +19767,9 @@
19722
19767
  }, {
19723
19768
  key: "startMove",
19724
19769
  value: function startMove(e, column) {
19725
- var element = column.getElement();
19770
+ var element = column.getElement(),
19771
+ headerElement = this.table.columnManager.getElement(),
19772
+ headersElement = this.table.columnManager.getHeadersElement();
19726
19773
  this.moving = column;
19727
19774
  this.startX = (this.touchMove ? e.touches[0].pageX : e.pageX) - Helpers.elOffset(element).left;
19728
19775
  this.table.element.classList.add("tabulator-block-select"); //create placeholder
@@ -19736,7 +19783,7 @@
19736
19783
  this.hoverElement.classList.add("tabulator-moving");
19737
19784
  this.table.columnManager.getElement().appendChild(this.hoverElement);
19738
19785
  this.hoverElement.style.left = "0";
19739
- this.hoverElement.style.bottom = "0";
19786
+ this.hoverElement.style.bottom = headerElement.clientHeight - headersElement.offsetHeight + "px";
19740
19787
 
19741
19788
  if (!this.touchMove) {
19742
19789
  this._bindMouseMove();
@@ -19776,7 +19823,7 @@
19776
19823
  column.getCells().forEach(function (cell, i) {
19777
19824
  var cellEl = cell.getElement(true);
19778
19825
 
19779
- if (cellEl.parentNode) {
19826
+ if (cellEl.parentNode && movingCells[i]) {
19780
19827
  cellEl.parentNode.insertBefore(movingCells[i].getElement(), cellEl.nextSibling);
19781
19828
  }
19782
19829
  });
@@ -19784,7 +19831,7 @@
19784
19831
  column.getCells().forEach(function (cell, i) {
19785
19832
  var cellEl = cell.getElement(true);
19786
19833
 
19787
- if (cellEl.parentNode) {
19834
+ if (cellEl.parentNode && movingCells[i]) {
19788
19835
  cellEl.parentNode.insertBefore(movingCells[i].getElement(), cellEl);
19789
19836
  }
19790
19837
  });
@@ -23329,7 +23376,7 @@
23329
23376
  this.subscribe("row-init", this.initializeRow.bind(this));
23330
23377
  this.subscribe("row-deleting", this.rowDeleted.bind(this));
23331
23378
  this.subscribe("rows-wipe", this.clearSelectionData.bind(this));
23332
- this.subscribe("rows-retrieve", this.clearSelectionData.bind(this));
23379
+ this.subscribe("rows-retrieve", this.rowRetrieve.bind(this));
23333
23380
 
23334
23381
  if (this.table.options.selectable && this.table.options.selectablePersistence) {
23335
23382
  this.subscribe("data-refeshing", this.deselectRows.bind(this));