tabulator-tables 5.0.1 → 5.0.6

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 (59) hide show
  1. package/bower.json +1 -1
  2. package/build/rollup.js +1 -1
  3. package/dist/css/tabulator_bootstrap3.css +9 -0
  4. package/dist/css/tabulator_bootstrap3.css.map +1 -1
  5. package/dist/css/tabulator_bootstrap3.min.css +1 -1
  6. package/dist/css/tabulator_bootstrap3.min.css.map +1 -1
  7. package/dist/css/tabulator_bootstrap4.css +0 -4
  8. package/dist/css/tabulator_bootstrap4.css.map +1 -1
  9. package/dist/css/tabulator_bootstrap4.min.css +1 -1
  10. package/dist/css/tabulator_bootstrap4.min.css.map +1 -1
  11. package/dist/css/tabulator_bulma.css +5 -1
  12. package/dist/css/tabulator_bulma.css.map +1 -1
  13. package/dist/css/tabulator_bulma.min.css +1 -1
  14. package/dist/css/tabulator_bulma.min.css.map +1 -1
  15. package/dist/css/tabulator_semanticui.css +11 -2
  16. package/dist/css/tabulator_semanticui.css.map +1 -1
  17. package/dist/css/tabulator_semanticui.min.css +1 -1
  18. package/dist/css/tabulator_semanticui.min.css.map +1 -1
  19. package/dist/js/tabulator.js +295 -176
  20. package/dist/js/tabulator.js.map +1 -1
  21. package/dist/js/tabulator.min.js +2 -2
  22. package/dist/js/tabulator.min.js.map +1 -1
  23. package/dist/js/tabulator_esm.js +252 -153
  24. package/dist/js/tabulator_esm.js.map +1 -1
  25. package/dist/js/tabulator_esm.min.js +2 -2
  26. package/dist/js/tabulator_esm.min.js.map +1 -1
  27. package/package.json +1 -1
  28. package/src/js/core/ColumnManager.js +12 -12
  29. package/src/js/core/FooterManager.js +2 -2
  30. package/src/js/core/RowManager.js +6 -5
  31. package/src/js/core/Tabulator.js +64 -29
  32. package/src/js/core/column/Column.js +2 -2
  33. package/src/js/core/rendering/renderers/VirtualDomVertical.js +4 -0
  34. package/src/js/core/row/Row.js +4 -1
  35. package/src/js/core/tools/DataLoader.js +1 -1
  36. package/src/js/core/tools/ExternalEventBus.js +3 -2
  37. package/src/js/core/tools/Helpers.js +24 -7
  38. package/src/js/core/tools/InteractionMonitor.js +1 -0
  39. package/src/js/core/tools/ModuleBinder.js +1 -1
  40. package/src/js/modules/Accessor/Accessor.js +1 -1
  41. package/src/js/modules/Ajax/defaults/contentTypeFormatters.js +22 -1
  42. package/src/js/modules/DataTree/DataTree.js +1 -1
  43. package/src/js/modules/Edit/Edit.js +7 -6
  44. package/src/js/modules/Edit/defaults/editors/progress.js +2 -2
  45. package/src/js/modules/Filter/Filter.js +1 -1
  46. package/src/js/modules/Format/defaults/formatters/money.js +8 -1
  47. package/src/js/modules/FrozenColumns/FrozenColumns.js +21 -0
  48. package/src/js/modules/GroupRows/Group.js +2 -0
  49. package/src/js/modules/GroupRows/GroupRows.js +4 -6
  50. package/src/js/modules/History/defaults/redoers.js +1 -0
  51. package/src/js/modules/History/defaults/undoers.js +1 -0
  52. package/src/js/modules/HtmlTableImport/HtmlTableImport.js +4 -22
  53. package/src/js/modules/Page/Page.js +2 -2
  54. package/src/js/modules/ReactiveData/ReactiveData.js +28 -27
  55. package/src/js/modules/ResponsiveLayout/ResponsiveLayout.js +5 -1
  56. package/src/scss/themes/bootstrap/tabulator_bootstrap3.scss +9 -0
  57. package/src/scss/themes/bootstrap/tabulator_bootstrap4.scss +0 -4
  58. package/src/scss/themes/bulma/tabulator_bulma.scss +5 -1
  59. package/src/scss/themes/semanticui/tabulator_semanticui.scss +12 -7
@@ -1,4 +1,4 @@
1
- /* Tabulator v5.0.1 (c) Oliver Folkerd 2021 */
1
+ /* Tabulator v5.0.6 (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) :
@@ -1786,8 +1786,7 @@
1786
1786
  this.reinitializeWidth();
1787
1787
  }
1788
1788
 
1789
- this.table.columnManager._verticalAlignHeaders();
1790
-
1789
+ this.table.columnManager.verticalAlignHeaders();
1791
1790
  this.dispatch("column-show", this, responsiveToggle);
1792
1791
 
1793
1792
  if (!silent) {
@@ -1810,8 +1809,7 @@
1810
1809
  if (this.visible) {
1811
1810
  this.visible = false;
1812
1811
  this.element.style.display = "none";
1813
-
1814
- this.table.columnManager._verticalAlignHeaders();
1812
+ this.table.columnManager.verticalAlignHeaders();
1815
1813
 
1816
1814
  if (this.parent.isGroup) {
1817
1815
  this.parent.checkColumnVisibility();
@@ -2144,7 +2142,7 @@
2144
2142
 
2145
2143
  Column$1.defaultOptionList = defaultOptions$1;
2146
2144
 
2147
- var Helpers$1 = /*#__PURE__*/function () {
2145
+ var Helpers = /*#__PURE__*/function () {
2148
2146
  function Helpers() {
2149
2147
  _classCallCheck(this, Helpers);
2150
2148
  }
@@ -2165,17 +2163,42 @@
2165
2163
  }
2166
2164
  }, {
2167
2165
  key: "deepClone",
2168
- value: function deepClone(obj) {
2169
- var clone = Object.assign(Array.isArray(obj) ? [] : {}, obj);
2166
+ value: function deepClone(obj, clone) {
2167
+ var _this = this;
2170
2168
 
2171
- for (var i in obj) {
2172
- if (obj[i] != null && _typeof(obj[i]) === "object") {
2173
- if (obj[i] instanceof Date) {
2174
- clone[i] = new Date(obj[i]);
2169
+ var list = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
2170
+ var objectProto = {}.__proto__,
2171
+ arrayProto = [].__proto__;
2172
+
2173
+ if (!clone) {
2174
+ clone = Object.assign(Array.isArray(obj) ? [] : {}, obj);
2175
+ }
2176
+
2177
+ var _loop = function _loop() {
2178
+ var subject = obj[i],
2179
+ match = void 0,
2180
+ copy = void 0;
2181
+
2182
+ if (subject != null && _typeof(subject) === "object" && (subject.__proto__ === objectProto || subject.__proto__ === arrayProto)) {
2183
+ match = list.findIndex(function (item) {
2184
+ return item.subject === subject;
2185
+ });
2186
+
2187
+ if (match > -1) {
2188
+ clone[i] = list[match].copy;
2175
2189
  } else {
2176
- clone[i] = this.deepClone(obj[i]);
2190
+ copy = Object.assign(Array.isArray(subject) ? [] : {}, subject);
2191
+ list.unshift({
2192
+ subject: subject,
2193
+ copy: copy
2194
+ });
2195
+ clone[i] = _this.deepClone(subject, copy, list);
2177
2196
  }
2178
2197
  }
2198
+ };
2199
+
2200
+ for (var i in obj) {
2201
+ _loop();
2179
2202
  }
2180
2203
 
2181
2204
  return clone;
@@ -2389,8 +2412,8 @@
2389
2412
 
2390
2413
 
2391
2414
  if (!ifVisible) {
2392
- if (Helpers$1.elVisible(rowEl)) {
2393
- offset = Helpers$1.elOffset(rowEl).top - Helpers$1.elOffset(_this2.elementVertical).top;
2415
+ if (Helpers.elVisible(rowEl)) {
2416
+ offset = Helpers.elOffset(rowEl).top - Helpers.elOffset(_this2.elementVertical).top;
2394
2417
 
2395
2418
  if (offset > 0 && offset < _this2.elementVertical.clientHeight - rowEl.offsetHeight) {
2396
2419
  return false;
@@ -3007,6 +3030,7 @@
3007
3030
  value: function createHeadersElement() {
3008
3031
  var el = document.createElement("div");
3009
3032
  el.classList.add("tabulator-headers");
3033
+ el.setAttribute("role", "row");
3010
3034
  return el;
3011
3035
  }
3012
3036
  }, {
@@ -3014,6 +3038,7 @@
3014
3038
  value: function createHeaderElement() {
3015
3039
  var el = document.createElement("div");
3016
3040
  el.classList.add("tabulator-header");
3041
+ el.setAttribute("role", "rowgroup");
3017
3042
 
3018
3043
  if (!this.table.options.headerVisible) {
3019
3044
  el.classList.add("tabulator-header-hidden");
@@ -3191,10 +3216,9 @@
3191
3216
  this.columns.push(column);
3192
3217
  this.headersElement.appendChild(column.getElement());
3193
3218
  }
3194
-
3195
- column.columnRendered();
3196
3219
  }
3197
3220
 
3221
+ column.columnRendered();
3198
3222
  return column;
3199
3223
  }
3200
3224
  }, {
@@ -3219,8 +3243,8 @@
3219
3243
  } //ensure column headers take up the correct amount of space in column groups
3220
3244
 
3221
3245
  }, {
3222
- key: "_verticalAlignHeaders",
3223
- value: function _verticalAlignHeaders() {
3246
+ key: "verticalAlignHeaders",
3247
+ value: function verticalAlignHeaders() {
3224
3248
  var _this3 = this;
3225
3249
 
3226
3250
  var minHeight = 0;
@@ -3376,8 +3400,7 @@
3376
3400
  to.element.parentNode.insertBefore(to.element, from.element);
3377
3401
  }
3378
3402
 
3379
- this._verticalAlignHeaders();
3380
-
3403
+ this.verticalAlignHeaders();
3381
3404
  this.table.rowManager.reinitialize();
3382
3405
  }
3383
3406
  }, {
@@ -3548,7 +3571,7 @@
3548
3571
  column.reinitializeWidth();
3549
3572
  }
3550
3573
 
3551
- _this6._verticalAlignHeaders();
3574
+ _this6.verticalAlignHeaders();
3552
3575
 
3553
3576
  _this6.table.rowManager.reinitialize();
3554
3577
 
@@ -3582,19 +3605,18 @@
3582
3605
  this.columns.splice(index, 1);
3583
3606
  }
3584
3607
 
3585
- this._verticalAlignHeaders();
3586
-
3608
+ this.verticalAlignHeaders();
3587
3609
  this.redraw();
3588
3610
  } //redraw columns
3589
3611
 
3590
3612
  }, {
3591
3613
  key: "redraw",
3592
3614
  value: function redraw(force) {
3593
- if (force) {
3594
- if (Helpers$1.elVisible(this.element)) {
3595
- this._verticalAlignHeaders();
3596
- }
3615
+ if (Helpers.elVisible(this.element)) {
3616
+ this.verticalAlignHeaders();
3617
+ }
3597
3618
 
3619
+ if (force) {
3598
3620
  this.table.rowManager.resetScroll();
3599
3621
  this.table.rowManager.reinitialize();
3600
3622
  }
@@ -3848,6 +3870,11 @@
3848
3870
  this.normalizeHeight(true);
3849
3871
  }
3850
3872
  }
3873
+ }, {
3874
+ key: "deinitializeHeight",
3875
+ value: function deinitializeHeight() {
3876
+ this.heightInitialized = false;
3877
+ }
3851
3878
  }, {
3852
3879
  key: "reinitialize",
3853
3880
  value: function reinitialize(children) {
@@ -3963,7 +3990,7 @@
3963
3990
  value: function updateData(updatedData) {
3964
3991
  var _this2 = this;
3965
3992
 
3966
- var visible = this.element && Helpers$1.elVisible(this.element),
3993
+ var visible = this.element && Helpers.elVisible(this.element),
3967
3994
  tempData = {},
3968
3995
  newRowData;
3969
3996
  return new Promise(function (resolve, reject) {
@@ -4247,14 +4274,14 @@
4247
4274
  }, {
4248
4275
  key: "scrollToRowNearestTop",
4249
4276
  value: function scrollToRowNearestTop(row) {
4250
- var rowTop = Helpers$1.elOffset(row.getElement()).top;
4277
+ var rowTop = Helpers.elOffset(row.getElement()).top;
4251
4278
  return !(Math.abs(this.elementVertical.scrollTop - rowTop) > Math.abs(this.elementVertical.scrollTop + this.elementVertical.clientHeight - rowTop));
4252
4279
  }
4253
4280
  }, {
4254
4281
  key: "scrollToRow",
4255
4282
  value: function scrollToRow(row) {
4256
4283
  var rowEl = row.getElement();
4257
- this.elementVertical.scrollTop = Helpers$1.elOffset(rowEl).top - Helpers$1.elOffset(this.elementVertical).top + this.elementVertical.scrollTop;
4284
+ this.elementVertical.scrollTop = Helpers.elOffset(rowEl).top - Helpers.elOffset(this.elementVertical).top + this.elementVertical.scrollTop;
4258
4285
  }
4259
4286
  }, {
4260
4287
  key: "visibleRows",
@@ -4365,6 +4392,10 @@
4365
4392
  }
4366
4393
  }
4367
4394
 
4395
+ rows.forEach(function (row) {
4396
+ row.deinitializeHeight();
4397
+ });
4398
+
4368
4399
  if (callback) {
4369
4400
  callback();
4370
4401
  }
@@ -4530,7 +4561,7 @@
4530
4561
  position -= topPad;
4531
4562
  }
4532
4563
 
4533
- if (rowsCount && Helpers$1.elVisible(this.elementVertical)) {
4564
+ if (rowsCount && Helpers.elVisible(this.elementVertical)) {
4534
4565
  this.vDomTop = position;
4535
4566
  this.vDomBottom = position - 1;
4536
4567
 
@@ -4926,6 +4957,7 @@
4926
4957
  var el = document.createElement("div");
4927
4958
  el.classList.add("tabulator-tableholder");
4928
4959
  el.setAttribute("tabindex", 0);
4960
+ el.setAttribute("role", "rowgroup");
4929
4961
  return el;
4930
4962
  }
4931
4963
  }, {
@@ -4933,6 +4965,7 @@
4933
4965
  value: function createTableElement() {
4934
4966
  var el = document.createElement("div");
4935
4967
  el.classList.add("tabulator-table");
4968
+ el.setAttribute("role", "rowgroup");
4936
4969
  return el;
4937
4970
  } //return containing element
4938
4971
 
@@ -5065,7 +5098,7 @@
5065
5098
  });
5066
5099
  }
5067
5100
  } else {
5068
- if (_this4.table.options.autoColumns && columnsChanged) {
5101
+ if (_this4.table.options.autoColumns && columnsChanged && _this4.table.initialized) {
5069
5102
  _this4.table.columnManager.generateColumnsFromRowData(data);
5070
5103
  }
5071
5104
 
@@ -5192,7 +5225,7 @@
5192
5225
  _this6.dispatch("row-added", row, data, pos, index);
5193
5226
  });
5194
5227
 
5195
- _this6.reRenderInPosition();
5228
+ _this6.refreshActiveData(false, false, true);
5196
5229
 
5197
5230
  _this6.regenerateRowNumbers();
5198
5231
 
@@ -5572,7 +5605,7 @@
5572
5605
 
5573
5606
  }
5574
5607
 
5575
- if (Helpers$1.elVisible(this.element)) {
5608
+ if (Helpers.elVisible(this.element)) {
5576
5609
  if (renderInPosition) {
5577
5610
  this.reRenderInPosition();
5578
5611
  } else {
@@ -5747,9 +5780,9 @@
5747
5780
  this.dispatchExternal("renderStarted");
5748
5781
  this.element.scrollTop = 0;
5749
5782
 
5750
- if (this.displayRowsCount) {
5751
- this._clearTable();
5783
+ this._clearTable();
5752
5784
 
5785
+ if (this.displayRowsCount) {
5753
5786
  this.renderer.renderRows();
5754
5787
 
5755
5788
  if (this.firstRender) {
@@ -5957,7 +5990,9 @@
5957
5990
 
5958
5991
  _createClass(FooterManager, [{
5959
5992
  key: "initialize",
5960
- value: function initialize() {}
5993
+ value: function initialize() {
5994
+ this.initializeElement();
5995
+ }
5961
5996
  }, {
5962
5997
  key: "createElement",
5963
5998
  value: function createElement() {
@@ -5967,7 +6002,7 @@
5967
6002
  }
5968
6003
  }, {
5969
6004
  key: "initializeElement",
5970
- value: function initializeElement(element) {
6005
+ value: function initializeElement() {
5971
6006
  if (this.table.options.footerElement) {
5972
6007
  switch (_typeof(this.table.options.footerElement)) {
5973
6008
  case "string":
@@ -6150,7 +6185,8 @@
6150
6185
  if (listener.components.length) {
6151
6186
  if (!listener.handler) {
6152
6187
  listener.handler = this.track.bind(this, key);
6153
- this.el.addEventListener(key, listener.handler); // this.el.addEventListener(key, listener.handler, {passive: true})
6188
+ this.el.addEventListener(key, listener.handler);
6189
+ console.log("add", key); // this.el.addEventListener(key, listener.handler, {passive: true})
6154
6190
  }
6155
6191
  } else {
6156
6192
  if (listener.handler) {
@@ -6445,7 +6481,7 @@
6445
6481
  _this2.hideLoader();
6446
6482
 
6447
6483
  if (rowData !== false) {
6448
- _this2.dispatchExternal("dataLoaded", data);
6484
+ _this2.dispatchExternal("dataLoaded", rowData);
6449
6485
 
6450
6486
  _this2.table.rowManager.setData(rowData, replace, !replace);
6451
6487
  }
@@ -6562,9 +6598,10 @@
6562
6598
  }(CoreFeature);
6563
6599
 
6564
6600
  var ExternalEventBus = /*#__PURE__*/function () {
6565
- function ExternalEventBus(optionsList, debug) {
6601
+ function ExternalEventBus(table, optionsList, debug) {
6566
6602
  _classCallCheck(this, ExternalEventBus);
6567
6603
 
6604
+ this.table = table;
6568
6605
  this.events = {};
6569
6606
  this.optionsList = optionsList || {};
6570
6607
  this.subscriptionNotifiers = {};
@@ -6650,7 +6687,7 @@
6650
6687
 
6651
6688
  if (this.events[key]) {
6652
6689
  this.events[key].forEach(function (callback, i) {
6653
- var callResult = callback.apply(_this, args);
6690
+ var callResult = callback.apply(_this.table, args);
6654
6691
 
6655
6692
  if (!i) {
6656
6693
  result = callResult;
@@ -7381,7 +7418,7 @@
7381
7418
  _createClass(Localize, [{
7382
7419
  key: "initialize",
7383
7420
  value: function initialize() {
7384
- this.langList = Helpers$1.deepClone(Localize.langs);
7421
+ this.langList = Helpers.deepClone(Localize.langs);
7385
7422
 
7386
7423
  if (this.table.options.columnDefaults.headerFilterPlaceholder !== false) {
7387
7424
  this.setHeaderFilterPlaceholder(this.table.options.columnDefaults.headerFilterPlaceholder);
@@ -7476,7 +7513,7 @@
7476
7513
 
7477
7514
  this.locale = desiredLocale; //load default lang template
7478
7515
 
7479
- this.lang = Helpers$1.deepClone(this.langList["default"] || {});
7516
+ this.lang = Helpers.deepClone(this.langList["default"] || {});
7480
7517
 
7481
7518
  if (desiredLocale != "default") {
7482
7519
  traverseLang(this.langList[desiredLocale], this.lang);
@@ -7654,7 +7691,7 @@
7654
7691
 
7655
7692
  tabulator.extendModule = function (name, property, values) {
7656
7693
  if (tabulator.moduleBindings[name]) {
7657
- var source = tabulator.moduleBindings[name].prototype[property];
7694
+ var source = tabulator.moduleBindings[name][property];
7658
7695
 
7659
7696
  if (source) {
7660
7697
  if (_typeof(values) == "object") {
@@ -7754,6 +7791,8 @@
7754
7791
 
7755
7792
  this.rtl = false; //check if the table is in RTL mode
7756
7793
 
7794
+ this.originalElement = null; //hold original table element if it has been replaced
7795
+
7757
7796
  this.componentFunctionBinder = new ComponentFuctionBinder(this); //bind component functions
7758
7797
 
7759
7798
  this.dataLoader = false; //bind component functions
@@ -7812,36 +7851,13 @@
7812
7851
 
7813
7852
  this._mapDepricatedFunctionality();
7814
7853
 
7815
- this.externalEvents = new ExternalEventBus(this.options, this.options.debugEventsExternal);
7854
+ this.externalEvents = new ExternalEventBus(this, this.options, this.options.debugEventsExternal);
7816
7855
  this.eventBus = new InternalEventBus(this.options.debugEventsInternal);
7817
7856
  this.interactionMonitor = new InteractionManager(this);
7818
7857
  this.dataLoader.initialize();
7819
7858
  this.columnManager.initialize();
7820
7859
  this.rowManager.initialize();
7821
7860
  this.footerManager.initialize();
7822
- }
7823
- }, {
7824
- key: "rtlCheck",
7825
- value: function rtlCheck() {
7826
- var style = window.getComputedStyle(this.element);
7827
-
7828
- switch (this.options.textDirection) {
7829
- case "auto":
7830
- if (style.direction !== "rtl") {
7831
- break;
7832
- }
7833
-
7834
- case "rtl":
7835
- this.element.classList.add("tabulator-rtl");
7836
- this.rtl = true;
7837
- break;
7838
-
7839
- case "ltr":
7840
- this.element.classList.add("tabulator-ltr");
7841
-
7842
- default:
7843
- this.rtl = false;
7844
- }
7845
7861
  } //convert depricated functionality to new functions
7846
7862
 
7847
7863
  }, {
@@ -7874,13 +7890,40 @@
7874
7890
  value: function _create() {
7875
7891
  this.externalEvents.dispatch("tableBuilding");
7876
7892
  this.eventBus.dispatch("table-building");
7877
- this.rtlCheck();
7893
+
7894
+ this._rtlCheck();
7878
7895
 
7879
7896
  this._buildElement();
7880
7897
 
7898
+ this._initializeTable();
7899
+
7881
7900
  this._loadInitialData();
7882
7901
 
7883
7902
  this.initialized = true;
7903
+ this.externalEvents.dispatch("tableBuilt");
7904
+ }
7905
+ }, {
7906
+ key: "_rtlCheck",
7907
+ value: function _rtlCheck() {
7908
+ var style = window.getComputedStyle(this.element);
7909
+
7910
+ switch (this.options.textDirection) {
7911
+ case "auto":
7912
+ if (style.direction !== "rtl") {
7913
+ break;
7914
+ }
7915
+
7916
+ case "rtl":
7917
+ this.element.classList.add("tabulator-rtl");
7918
+ this.rtl = true;
7919
+ break;
7920
+
7921
+ case "ltr":
7922
+ this.element.classList.add("tabulator-ltr");
7923
+
7924
+ default:
7925
+ this.rtl = false;
7926
+ }
7884
7927
  } //clear pointers to objects in default config object
7885
7928
 
7886
7929
  }, {
@@ -7897,7 +7940,26 @@
7897
7940
  key: "_buildElement",
7898
7941
  value: function _buildElement() {
7899
7942
  var element = this.element,
7900
- options = this.options;
7943
+ options = this.options,
7944
+ newElement;
7945
+
7946
+ if (element.tagName === "TABLE") {
7947
+ this.originalElement = this.element;
7948
+ newElement = document.createElement("div"); //transfer attributes to new element
7949
+
7950
+ var attributes = element.attributes; // loop through attributes and apply them on div
7951
+
7952
+ for (var i in attributes) {
7953
+ if (_typeof(attributes[i]) == "object") {
7954
+ newElement.setAttribute(attributes[i].name, attributes[i].value);
7955
+ }
7956
+ } // replace table with div element
7957
+
7958
+
7959
+ element.parentNode.replaceChild(newElement, element);
7960
+ this.element = element = newElement;
7961
+ }
7962
+
7901
7963
  element.classList.add("tabulator");
7902
7964
  element.setAttribute("role", "grid"); //empty element
7903
7965
 
@@ -7922,7 +7984,13 @@
7922
7984
  options.maxHeight = isNaN(options.maxHeight) ? options.maxHeight : options.maxHeight + "px";
7923
7985
  element.style.maxHeight = options.maxHeight;
7924
7986
  }
7987
+ } //initialize core systems and modules
7925
7988
 
7989
+ }, {
7990
+ key: "_initializeTable",
7991
+ value: function _initializeTable() {
7992
+ var element = this.element,
7993
+ options = this.options;
7926
7994
  this.columnManager.initialize();
7927
7995
  this.rowManager.initialize();
7928
7996
 
@@ -7952,7 +8020,7 @@
7952
8020
  this.footerManager.activate();
7953
8021
  }
7954
8022
 
7955
- if (options.autoColumns && this.options.data) {
8023
+ if (options.autoColumns && options.data) {
7956
8024
  this.columnManager.generateColumnsFromRowData(this.options.data);
7957
8025
  } //initialize regular modules
7958
8026
 
@@ -7965,7 +8033,6 @@
7965
8033
 
7966
8034
  this.columnManager.setColumns(options.columns);
7967
8035
  this.eventBus.dispatch("table-built");
7968
- this.externalEvents.dispatch("tableBuilt");
7969
8036
  }
7970
8037
  }, {
7971
8038
  key: "_loadInitialData",
@@ -8380,7 +8447,11 @@
8380
8447
  }, {
8381
8448
  key: "setColumns",
8382
8449
  value: function setColumns(definition) {
8383
- this.columnManager.setColumns(definition);
8450
+ if (this.initialized) {
8451
+ this.columnManager.setColumns(definition);
8452
+ } else {
8453
+ console.warn("setColumns failed - table not yet initialized. To set initial data please use the 'columns' property in the table constructor.");
8454
+ }
8384
8455
  }
8385
8456
  }, {
8386
8457
  key: "getColumns",
@@ -8633,6 +8704,8 @@
8633
8704
  }, {
8634
8705
  key: "initializeColumn",
8635
8706
  value: function initializeColumn(column) {
8707
+ var _this2 = this;
8708
+
8636
8709
  var match = false,
8637
8710
  config = {};
8638
8711
  this.allowedTypes.forEach(function (type) {
@@ -8640,7 +8713,7 @@
8640
8713
  accessor;
8641
8714
 
8642
8715
  if (column.definition[key]) {
8643
- accessor = this.lookupAccessor(column.definition[key]);
8716
+ accessor = _this2.lookupAccessor(column.definition[key]);
8644
8717
 
8645
8718
  if (accessor) {
8646
8719
  match = true;
@@ -8685,7 +8758,7 @@
8685
8758
  var key = "accessor" + (type.charAt(0).toUpperCase() + type.slice(1)),
8686
8759
  rowComponent = row.getComponent(); //clone data object with deep copy to isolate internal data from returned result
8687
8760
 
8688
- var data = Helpers$1.deepClone(row.data || {});
8761
+ var data = Helpers.deepClone(row.data || {});
8689
8762
  this.table.columnManager.traverse(function (column) {
8690
8763
  var value, accessor, params, colCompnent;
8691
8764
 
@@ -8846,6 +8919,28 @@
8846
8919
  });
8847
8920
  }
8848
8921
 
8922
+ function generateParamsList$1(data, prefix) {
8923
+ var output = [];
8924
+ prefix = prefix || "";
8925
+
8926
+ if (Array.isArray(data)) {
8927
+ data.forEach(function (item, i) {
8928
+ output = output.concat(generateParamsList$1(item, prefix ? prefix + "[" + i + "]" : i));
8929
+ });
8930
+ } else if (_typeof(data) === "object") {
8931
+ for (var key in data) {
8932
+ output = output.concat(generateParamsList$1(data[key], prefix ? prefix + "[" + key + "]" : key));
8933
+ }
8934
+ } else {
8935
+ output.push({
8936
+ key: prefix,
8937
+ value: data
8938
+ });
8939
+ }
8940
+
8941
+ return output;
8942
+ }
8943
+
8849
8944
  var defaultContentTypeFormatters = {
8850
8945
  "json": {
8851
8946
  headers: {
@@ -8858,7 +8953,7 @@
8858
8953
  "form": {
8859
8954
  headers: {},
8860
8955
  body: function body(url, config, params) {
8861
- var output = this.generateParamsList(params),
8956
+ var output = generateParamsList$1(params),
8862
8957
  form = new FormData();
8863
8958
  output.forEach(function (item) {
8864
8959
  form.append(item.key, item.value);
@@ -10704,7 +10799,7 @@
10704
10799
  key: "checkForRestyle",
10705
10800
  value: function checkForRestyle(cell) {
10706
10801
  if (!cell.row.cells.indexOf(cell)) {
10707
- cell.row.reinitialize();
10802
+ this.layoutRow(cell.row);
10708
10803
  }
10709
10804
  }
10710
10805
  }, {
@@ -12004,7 +12099,7 @@
12004
12099
  parseItems(editorParams.values || [], initialDisplayValue);
12005
12100
  }
12006
12101
 
12007
- var offset = Helpers$1.elOffset(cellEl);
12102
+ var offset = Helpers.elOffset(cellEl);
12008
12103
  listEl.style.minWidth = cellEl.offsetWidth + "px";
12009
12104
  listEl.style.top = offset.top + cellEl.offsetHeight + "px";
12010
12105
  listEl.style.left = offset.left + "px";
@@ -12460,7 +12555,7 @@
12460
12555
  listEl.removeChild(listEl.firstChild);
12461
12556
  }
12462
12557
 
12463
- var offset = Helpers$1.elOffset(cellEl);
12558
+ var offset = Helpers.elOffset(cellEl);
12464
12559
  listEl.style.minWidth = cellEl.offsetWidth + "px";
12465
12560
  listEl.style.top = offset.top + cellEl.offsetHeight + "px";
12466
12561
  listEl.style.left = offset.left + "px";
@@ -12767,9 +12862,11 @@
12767
12862
 
12768
12863
  //draggable progress bar
12769
12864
  function progress (cell, onRendered, success, cancel, editorParams) {
12865
+ var _element$getElementsB, _element$getElementsB2;
12866
+
12770
12867
  var element = cell.getElement(),
12771
- max = typeof editorParams.max === "undefined" ? element.getElementsByTagName("div")[0].getAttribute("max") || 100 : editorParams.max,
12772
- min = typeof editorParams.min === "undefined" ? element.getElementsByTagName("div")[0].getAttribute("min") || 0 : editorParams.min,
12868
+ max = typeof editorParams.max === "undefined" ? ((_element$getElementsB = element.getElementsByTagName("div")[0]) === null || _element$getElementsB === void 0 ? void 0 : _element$getElementsB.getAttribute("max")) || 100 : editorParams.max,
12869
+ min = typeof editorParams.min === "undefined" ? ((_element$getElementsB2 = element.getElementsByTagName("div")[0]) === null || _element$getElementsB2 === void 0 ? void 0 : _element$getElementsB2.getAttribute("min")) || 0 : editorParams.min,
12773
12870
  percent = (max - min) / 100,
12774
12871
  value = cell.getValue() || 0,
12775
12872
  handle = document.createElement("div"),
@@ -13162,7 +13259,7 @@
13162
13259
  nextCell = this.findNextEditableCell(prevRow, prevRow.cells.length);
13163
13260
 
13164
13261
  if (nextCell) {
13165
- nextCell.edit();
13262
+ nextCell.getComponent().edit();
13166
13263
  return true;
13167
13264
  }
13168
13265
  }
@@ -13194,7 +13291,7 @@
13194
13291
  nextCell = this.findNextEditableCell(nextRow, -1);
13195
13292
 
13196
13293
  if (nextCell) {
13197
- nextCell.edit();
13294
+ nextCell.getComponent().edit();
13198
13295
  return true;
13199
13296
  }
13200
13297
  }
@@ -13219,7 +13316,7 @@
13219
13316
  nextCell = this.findPrevEditableCell(cell.row, index);
13220
13317
 
13221
13318
  if (nextCell) {
13222
- nextCell.edit();
13319
+ nextCell.getComponent().edit();
13223
13320
  return true;
13224
13321
  }
13225
13322
  }
@@ -13242,7 +13339,7 @@
13242
13339
  nextCell = this.findNextEditableCell(cell.row, index);
13243
13340
 
13244
13341
  if (nextCell) {
13245
- nextCell.edit();
13342
+ nextCell.getComponent().edit();
13246
13343
  return true;
13247
13344
  }
13248
13345
  }
@@ -13265,7 +13362,7 @@
13265
13362
  nextRow = this.table.rowManager.prevDisplayRow(cell.row, true);
13266
13363
 
13267
13364
  if (nextRow) {
13268
- nextRow.cells[index].edit();
13365
+ nextRow.cells[index].getComponent().edit();
13269
13366
  return true;
13270
13367
  }
13271
13368
  }
@@ -13288,7 +13385,7 @@
13288
13385
  nextRow = this.table.rowManager.nextDisplayRow(cell.row, true);
13289
13386
 
13290
13387
  if (nextRow) {
13291
- nextRow.cells[index].edit();
13388
+ nextRow.cells[index].getComponent().edit();
13292
13389
  return true;
13293
13390
  }
13294
13391
  }
@@ -15440,12 +15537,14 @@
15440
15537
 
15441
15538
  function money (cell, formatterParams, onRendered) {
15442
15539
  var floatVal = parseFloat(cell.getValue()),
15540
+ sign = "",
15443
15541
  number,
15444
15542
  integer,
15445
15543
  decimal,
15446
15544
  rgx;
15447
15545
  var decimalSym = formatterParams.decimal || ".";
15448
15546
  var thousandSym = formatterParams.thousand || ",";
15547
+ var negativeSign = formatterParams.negativeSign || "-";
15449
15548
  var symbol = formatterParams.symbol || "";
15450
15549
  var after = !!formatterParams.symbolAfter;
15451
15550
  var precision = typeof formatterParams.precision !== "undefined" ? formatterParams.precision : 2;
@@ -15454,6 +15553,11 @@
15454
15553
  return this.emptyToSpace(this.sanitizeHTML(cell.getValue()));
15455
15554
  }
15456
15555
 
15556
+ if (floatVal < 0) {
15557
+ floatVal = Math.abs(floatVal);
15558
+ sign = negativeSign;
15559
+ }
15560
+
15457
15561
  number = precision !== false ? floatVal.toFixed(precision) : floatVal;
15458
15562
  number = String(number).split(".");
15459
15563
  integer = number[0];
@@ -15464,7 +15568,7 @@
15464
15568
  integer = integer.replace(rgx, "$1" + thousandSym + "$2");
15465
15569
  }
15466
15570
 
15467
- return after ? integer + decimal + symbol : symbol + integer + decimal;
15571
+ return after ? sign + integer + decimal + symbol : sign + symbol + integer + decimal;
15468
15572
  }
15469
15573
 
15470
15574
  function link (cell, formatterParams, onRendered) {
@@ -16371,29 +16475,52 @@
16371
16475
  if (this.table.modules.columnCalcs.botInitialized && this.table.modules.columnCalcs.botRow) {
16372
16476
  this.layoutRow(this.table.modules.columnCalcs.botRow);
16373
16477
  }
16478
+
16479
+ if (this.table.modExists("groupRows")) {
16480
+ this.layoutGroupCalcs(this.table.modules.groupRows.getGroups());
16481
+ }
16374
16482
  }
16483
+ }
16484
+ }, {
16485
+ key: "layoutGroupCalcs",
16486
+ value: function layoutGroupCalcs(groups) {
16487
+ var _this3 = this;
16488
+
16489
+ groups.forEach(function (group) {
16490
+ if (group.calcs.top) {
16491
+ _this3.layoutRow(group.calcs.top);
16492
+ }
16493
+
16494
+ if (group.calcs.bottom) {
16495
+ _this3.layoutRow(group.calcs.bottom);
16496
+ }
16497
+
16498
+ if (group.groupList && group.groupList.length) {
16499
+ _this3.layoutGroupCalcs(group.groupList && group.groupList);
16500
+ }
16501
+ });
16375
16502
  } //calculate column positions and layout headers
16376
16503
 
16377
16504
  }, {
16378
16505
  key: "layoutColumnPosition",
16379
16506
  value: function layoutColumnPosition(allCells) {
16380
- var _this3 = this;
16507
+ var _this4 = this;
16381
16508
 
16382
16509
  var leftParents = [];
16383
16510
  this.leftColumns.forEach(function (column, i) {
16384
- column.modules.frozen.margin = _this3._calcSpace(_this3.leftColumns, i) + _this3.table.columnManager.scrollLeft + "px";
16511
+ column.modules.frozen.margin = _this4._calcSpace(_this4.leftColumns, i) + _this4.table.columnManager.scrollLeft + "px";
16385
16512
 
16386
- if (i == _this3.leftColumns.length - 1) {
16513
+ if (i == _this4.leftColumns.length - 1) {
16387
16514
  column.modules.frozen.edge = true;
16388
16515
  } else {
16389
16516
  column.modules.frozen.edge = false;
16390
16517
  }
16391
16518
 
16392
16519
  if (column.parent.isGroup) {
16393
- var parentEl = _this3.getColGroupParentElement(column);
16520
+ var parentEl = _this4.getColGroupParentElement(column);
16394
16521
 
16395
16522
  if (!leftParents.includes(parentEl)) {
16396
- _this3.layoutElement(parentEl, column);
16523
+ _this4.layoutElement(parentEl, column);
16397
16524
 
16398
16525
  leftParents.push(parentEl);
16399
16526
  }
@@ -16402,33 +16529,33 @@
16402
16529
  parentEl.classList.add("tabulator-frozen-" + column.modules.frozen.position);
16403
16530
  }
16404
16531
  } else {
16405
- _this3.layoutElement(column.getElement(), column);
16532
+ _this4.layoutElement(column.getElement(), column);
16406
16533
  }
16407
16534
 
16408
16535
  if (allCells) {
16409
16536
  column.cells.forEach(function (cell) {
16410
- _this3.layoutElement(cell.getElement(true), column);
16537
+ _this4.layoutElement(cell.getElement(true), column);
16411
16538
  });
16412
16539
  }
16413
16540
  });
16414
16541
  this.rightColumns.forEach(function (column, i) {
16415
- column.modules.frozen.margin = _this3.rightPadding - _this3._calcSpace(_this3.rightColumns, i + 1) + "px";
16542
+ column.modules.frozen.margin = _this4.rightPadding - _this4._calcSpace(_this4.rightColumns, i + 1) + "px";
16416
16543
 
16417
- if (i == _this3.rightColumns.length - 1) {
16544
+ if (i == _this4.rightColumns.length - 1) {
16418
16545
  column.modules.frozen.edge = true;
16419
16546
  } else {
16420
16547
  column.modules.frozen.edge = false;
16421
16548
  }
16422
16549
 
16423
16550
  if (column.parent.isGroup) {
16424
- _this3.layoutElement(_this3.getColGroupParentElement(column), column);
16551
+ _this4.layoutElement(_this4.getColGroupParentElement(column), column);
16425
16552
  } else {
16426
- _this3.layoutElement(column.getElement(), column);
16553
+ _this4.layoutElement(column.getElement(), column);
16427
16554
  }
16428
16555
 
16429
16556
  if (allCells) {
16430
16557
  column.cells.forEach(function (cell) {
16431
- _this3.layoutElement(cell.getElement(true), column);
16558
+ _this4.layoutElement(cell.getElement(true), column);
16432
16559
  });
16433
16560
  }
16434
16561
  });
@@ -16442,14 +16569,14 @@
16442
16569
  }, {
16443
16570
  key: "layout",
16444
16571
  value: function layout() {
16445
- var _this4 = this;
16572
+ var _this5 = this;
16446
16573
 
16447
16574
  if (this.active) {
16448
16575
  //calculate row padding
16449
16576
  this.calcMargins();
16450
16577
  this.table.rowManager.getDisplayRows().forEach(function (row) {
16451
16578
  if (row.type === "row") {
16452
- _this4.layoutRow(row);
16579
+ _this5.layoutRow(row);
16453
16580
  }
16454
16581
  });
16455
16582
  this.layoutCalcRows(); //calculate left columns
@@ -16461,7 +16588,7 @@
16461
16588
  }, {
16462
16589
  key: "layoutRow",
16463
16590
  value: function layoutRow(row) {
16464
- var _this5 = this;
16591
+ var _this6 = this;
16465
16592
 
16466
16593
  var rowEl = row.getElement();
16467
16594
  rowEl.style.paddingLeft = this.leftMargin;
@@ -16469,14 +16596,14 @@
16469
16596
  var cell = row.getCell(column);
16470
16597
 
16471
16598
  if (cell) {
16472
- _this5.layoutElement(cell.getElement(true), column);
16599
+ _this6.layoutElement(cell.getElement(true), column);
16473
16600
  }
16474
16601
  });
16475
16602
  this.rightColumns.forEach(function (column) {
16476
16603
  var cell = row.getCell(column);
16477
16604
 
16478
16605
  if (cell) {
16479
- _this5.layoutElement(cell.getElement(true), column);
16606
+ _this6.layoutElement(cell.getElement(true), column);
16480
16607
  }
16481
16608
  });
16482
16609
  }
@@ -17320,7 +17447,7 @@
17320
17447
  this.initialized = false;
17321
17448
  this.height = 0;
17322
17449
 
17323
- if (Helpers$1.elVisible(this.element)) {
17450
+ if (Helpers.elVisible(this.element)) {
17324
17451
  this.initialize(true);
17325
17452
  }
17326
17453
  }
@@ -17354,7 +17481,10 @@
17354
17481
  value: function setCellHeight() {}
17355
17482
  }, {
17356
17483
  key: "clearCellHeight",
17357
- value: function clearCellHeight() {} //////////////// Object Generation /////////////////
17484
+ value: function clearCellHeight() {}
17485
+ }, {
17486
+ key: "deinitializeHeight",
17487
+ value: function deinitializeHeight() {} //////////////// Object Generation /////////////////
17358
17488
 
17359
17489
  }, {
17360
17490
  key: "getComponent",
@@ -17727,13 +17857,11 @@
17727
17857
  key: "getRows",
17728
17858
  value: function getRows(rows) {
17729
17859
  if (this.groupIDLookups.length) {
17730
- if (!Object.keys(this.groups).length) {
17731
- this.dispatchExternal("dataGrouping");
17732
- this.generateGroups(rows);
17860
+ this.dispatchExternal("dataGrouping");
17861
+ this.generateGroups(rows);
17733
17862
 
17734
- if (this.subscribedExternal("dataGrouped")) {
17735
- this.dispatchExternal("dataGrouped", this.getGroups(true));
17736
- }
17863
+ if (this.subscribedExternal("dataGrouped")) {
17864
+ this.dispatchExternal("dataGrouped", this.getGroups(true));
17737
17865
  }
17738
17866
 
17739
17867
  return this.updateGroupRows();
@@ -17969,6 +18097,7 @@
17969
18097
  var defaultUndoers = {
17970
18098
  cellEdit: function cellEdit(action) {
17971
18099
  action.component.setValueProcessData(action.data.oldValue);
18100
+ action.component.cellRendered();
17972
18101
  },
17973
18102
  rowAdd: function rowAdd(action) {
17974
18103
  action.component.deleteActual();
@@ -17991,6 +18120,7 @@
17991
18120
  var defaultRedoers = {
17992
18121
  cellEdit: function cellEdit(action) {
17993
18122
  action.component.setValueProcessData(action.data.newValue);
18123
+ action.component.cellRendered();
17994
18124
  },
17995
18125
  rowAdd: function rowAdd(action) {
17996
18126
  var newRow = this.table.rowManager.addRowActual(action.data.data, action.data.pos, action.data.index);
@@ -18222,19 +18352,19 @@
18222
18352
  _createClass(HtmlTableImport, [{
18223
18353
  key: "initialize",
18224
18354
  value: function initialize() {
18225
- this.subscribe("table-building", this.tableElementCheck.bind(this));
18355
+ this.tableElementCheck();
18226
18356
  }
18227
18357
  }, {
18228
18358
  key: "tableElementCheck",
18229
18359
  value: function tableElementCheck() {
18230
- if (this.table.element.tagName === "TABLE") {
18360
+ if (this.table.originalElement && this.table.originalElement.tagName === "TABLE") {
18231
18361
  this.parseTable();
18232
18362
  }
18233
18363
  }
18234
18364
  }, {
18235
18365
  key: "parseTable",
18236
18366
  value: function parseTable() {
18237
- var element = this.table.element,
18367
+ var element = this.table.originalElement,
18238
18368
  options = this.table.options,
18239
18369
  columns = options.columns,
18240
18370
  headers = element.getElementsByTagName("th"),
@@ -18272,24 +18402,10 @@
18272
18402
 
18273
18403
 
18274
18404
  data.push(item);
18275
- } //create new element
18276
-
18277
-
18278
- var newElement = document.createElement("div"); //transfer attributes to new element
18279
-
18280
- var attributes = element.attributes; // loop through attributes and apply them on div
18281
-
18282
- for (var i in attributes) {
18283
- if (_typeof(attributes[i]) == "object") {
18284
- newElement.setAttribute(attributes[i].name, attributes[i].value);
18285
- }
18286
- } // replace table with div element
18287
-
18405
+ }
18288
18406
 
18289
- element.parentNode.replaceChild(newElement, element);
18290
18407
  options.data = data;
18291
18408
  this.dispatchExternal("htmlImported");
18292
- this.table.element = newElement;
18293
18409
  } //extract tabulator attribute options
18294
18410
 
18295
18411
  }, {
@@ -18369,7 +18485,7 @@
18369
18485
 
18370
18486
  header.attributes; // //check for tablator inline options
18371
18487
 
18372
- this._extractOptions(header, col, Column.prototype.defaultOptionList);
18488
+ this._extractOptions(header, col, Column$1.prototype.defaultOptionList);
18373
18489
 
18374
18490
  this.fieldIndex[index] = col.field;
18375
18491
 
@@ -19341,7 +19457,7 @@
19341
19457
  y = touch ? e.touches[0].pageY : e.pageY;
19342
19458
  this.positionReversedX = false;
19343
19459
  } else {
19344
- parentOffset = Helpers$1.elOffset(parentEl);
19460
+ parentOffset = Helpers.elOffset(parentEl);
19345
19461
  x = parentOffset.left + parentEl.offsetWidth;
19346
19462
  y = parentOffset.top - 1;
19347
19463
  }
@@ -19481,7 +19597,7 @@
19481
19597
 
19482
19598
  config.mousemove = function (e) {
19483
19599
  if (column.parent === self.moving.parent) {
19484
- if ((self.touchMove ? e.touches[0].pageX : e.pageX) - Helpers$1.elOffset(colEl).left + self.table.columnManager.element.scrollLeft > column.getWidth() / 2) {
19600
+ if ((self.touchMove ? e.touches[0].pageX : e.pageX) - Helpers.elOffset(colEl).left + self.table.columnManager.element.scrollLeft > column.getWidth() / 2) {
19485
19601
  if (self.toCol !== column || !self.toColAfter) {
19486
19602
  colEl.parentNode.insertBefore(self.placeholderElement, colEl.nextSibling);
19487
19603
  self.moveColumn(column, true);
@@ -19608,7 +19724,7 @@
19608
19724
  value: function startMove(e, column) {
19609
19725
  var element = column.getElement();
19610
19726
  this.moving = column;
19611
- this.startX = (this.touchMove ? e.touches[0].pageX : e.pageX) - Helpers$1.elOffset(element).left;
19727
+ this.startX = (this.touchMove ? e.touches[0].pageX : e.pageX) - Helpers.elOffset(element).left;
19612
19728
  this.table.element.classList.add("tabulator-block-select"); //create placeholder
19613
19729
 
19614
19730
  this.placeholderElement.style.width = column.getWidth() + "px";
@@ -19706,7 +19822,7 @@
19706
19822
 
19707
19823
  var columnHolder = this.table.columnManager.getElement(),
19708
19824
  scrollLeft = columnHolder.scrollLeft,
19709
- xPos = (this.touchMove ? e.touches[0].pageX : e.pageX) - Helpers$1.elOffset(columnHolder).left + scrollLeft,
19825
+ xPos = (this.touchMove ? e.touches[0].pageX : e.pageX) - Helpers.elOffset(columnHolder).left + scrollLeft,
19710
19826
  scrollPos;
19711
19827
  this.hoverElement.style.left = xPos - this.startX + "px";
19712
19828
 
@@ -19830,7 +19946,7 @@
19830
19946
 
19831
19947
 
19832
19948
  config.mousemove = function (e) {
19833
- if (e.pageY - Helpers$1.elOffset(group.element).top + self.table.rowManager.element.scrollTop > group.getHeight() / 2) {
19949
+ if (e.pageY - Helpers.elOffset(group.element).top + self.table.rowManager.element.scrollTop > group.getHeight() / 2) {
19834
19950
  if (self.toRow !== group || !self.toRowAfter) {
19835
19951
  var rowEl = group.getElement();
19836
19952
  rowEl.parentNode.insertBefore(self.placeholderElement, rowEl.nextSibling);
@@ -19865,7 +19981,7 @@
19865
19981
  config.mousemove = function (e) {
19866
19982
  var rowEl = row.getElement();
19867
19983
 
19868
- if (e.pageY - Helpers$1.elOffset(rowEl).top + self.table.rowManager.element.scrollTop > row.getHeight() / 2) {
19984
+ if (e.pageY - Helpers.elOffset(rowEl).top + self.table.rowManager.element.scrollTop > row.getHeight() / 2) {
19869
19985
  if (self.toRow !== row || !self.toRowAfter) {
19870
19986
  rowEl.parentNode.insertBefore(self.placeholderElement, rowEl.nextSibling);
19871
19987
  self.moveRow(row, true);
@@ -20710,6 +20826,8 @@
20710
20826
  this.size = Math.floor(this.table.rowManager.getElement().clientHeight / testElRow.offsetHeight);
20711
20827
  this.table.rowManager.getTableElement().removeChild(testElRow);
20712
20828
  }
20829
+
20830
+ this.generatePageSizeSelectList();
20713
20831
  }
20714
20832
  }, {
20715
20833
  key: "initialLoadComplete",
@@ -20964,7 +21082,6 @@
20964
21082
 
20965
21083
  this.page = this.table.options.paginationInitialPage;
20966
21084
  this.count = this.table.options.paginationButtonCount;
20967
- this.generatePageSizeSelectList();
20968
21085
  } //set default values
20969
21086
 
20970
21087
 
@@ -22040,10 +22157,8 @@
22040
22157
  }, {
22041
22158
  key: "watchData",
22042
22159
  value: function watchData(data) {
22043
- var _arguments = arguments,
22044
- _this2 = this;
22045
-
22046
- var version;
22160
+ var self = this,
22161
+ version;
22047
22162
  this.currentVersion++;
22048
22163
  version = this.currentVersion;
22049
22164
  this.unwatchData();
@@ -22054,15 +22169,15 @@
22054
22169
  enumerable: false,
22055
22170
  configurable: true,
22056
22171
  value: function value() {
22057
- var args = Array.from(_arguments);
22172
+ var args = Array.from(arguments);
22058
22173
 
22059
- if (!_this2.blocked && version === _this2.currentVersion) {
22174
+ if (!self.blocked && version === self.currentVersion) {
22060
22175
  args.forEach(function (arg) {
22061
- _this2.table.rowManager.addRowActual(arg, false);
22176
+ self.table.rowManager.addRowActual(arg, false);
22062
22177
  });
22063
22178
  }
22064
22179
 
22065
- return _this2.origFuncs.push.apply(data, _arguments);
22180
+ return self.origFuncs.push.apply(data, arguments);
22066
22181
  }
22067
22182
  }); //override array unshift function
22068
22183
 
@@ -22071,15 +22186,15 @@
22071
22186
  enumerable: false,
22072
22187
  configurable: true,
22073
22188
  value: function value() {
22074
- var args = Array.from(_arguments);
22189
+ var args = Array.from(arguments);
22075
22190
 
22076
- if (!_this2.blocked && version === _this2.currentVersion) {
22191
+ if (!self.blocked && version === self.currentVersion) {
22077
22192
  args.forEach(function (arg) {
22078
- _this2.table.rowManager.addRowActual(arg, true);
22193
+ self.table.rowManager.addRowActual(arg, true);
22079
22194
  });
22080
22195
  }
22081
22196
 
22082
- return _this2.origFuncs.unshift.apply(data, _arguments);
22197
+ return self.origFuncs.unshift.apply(data, arguments);
22083
22198
  }
22084
22199
  }); //override array shift function
22085
22200
 
@@ -22090,9 +22205,9 @@
22090
22205
  value: function value() {
22091
22206
  var row;
22092
22207
 
22093
- if (!_this2.blocked && version === _this2.currentVersion) {
22094
- if (_this2.data.length) {
22095
- row = _this2.table.rowManager.getRowFromDataObject(_this2.data[0]);
22208
+ if (!self.blocked && version === self.currentVersion) {
22209
+ if (self.data.length) {
22210
+ row = self.table.rowManager.getRowFromDataObject(self.data[0]);
22096
22211
 
22097
22212
  if (row) {
22098
22213
  row.deleteActual();
@@ -22100,7 +22215,7 @@
22100
22215
  }
22101
22216
  }
22102
22217
 
22103
- return _this2.origFuncs.shift.call(data);
22218
+ return self.origFuncs.shift.call(data);
22104
22219
  }
22105
22220
  }); //override array pop function
22106
22221
 
@@ -22111,9 +22226,9 @@
22111
22226
  value: function value() {
22112
22227
  var row;
22113
22228
 
22114
- if (!_this2.blocked && version === _this2.currentVersion) {
22115
- if (_this2.data.length) {
22116
- row = _this2.table.rowManager.getRowFromDataObject(_this2.data[_this2.data.length - 1]);
22229
+ if (!self.blocked && version === self.currentVersion) {
22230
+ if (self.data.length) {
22231
+ row = self.table.rowManager.getRowFromDataObject(self.data[self.data.length - 1]);
22117
22232
 
22118
22233
  if (row) {
22119
22234
  row.deleteActual();
@@ -22121,7 +22236,7 @@
22121
22236
  }
22122
22237
  }
22123
22238
 
22124
- return _this2.origFuncs.pop.call(data);
22239
+ return self.origFuncs.pop.call(data);
22125
22240
  }
22126
22241
  }); //override array splice function
22127
22242
 
@@ -22130,25 +22245,25 @@
22130
22245
  enumerable: false,
22131
22246
  configurable: true,
22132
22247
  value: function value() {
22133
- var args = Array.from(_arguments),
22248
+ var args = Array.from(arguments),
22134
22249
  start = args[0] < 0 ? data.length + args[0] : args[0],
22135
22250
  end = args[1],
22136
22251
  newRows = args[2] ? args.slice(2) : false,
22137
22252
  startRow;
22138
22253
 
22139
- if (!_this2.blocked && version === _this2.currentVersion) {
22254
+ if (!self.blocked && version === self.currentVersion) {
22140
22255
  //add new rows
22141
22256
  if (newRows) {
22142
- startRow = data[start] ? _this2.table.rowManager.getRowFromDataObject(data[start]) : false;
22257
+ startRow = data[start] ? self.table.rowManager.getRowFromDataObject(data[start]) : false;
22143
22258
 
22144
22259
  if (startRow) {
22145
22260
  newRows.forEach(function (rowData) {
22146
- _this2.table.rowManager.addRowActual(rowData, true, startRow, true);
22261
+ self.table.rowManager.addRowActual(rowData, true, startRow, true);
22147
22262
  });
22148
22263
  } else {
22149
22264
  newRows = newRows.slice().reverse();
22150
22265
  newRows.forEach(function (rowData) {
22151
- _this2.table.rowManager.addRowActual(rowData, true, false, true);
22266
+ self.table.rowManager.addRowActual(rowData, true, false, true);
22152
22267
  });
22153
22268
  }
22154
22269
  } //delete removed rows
@@ -22157,7 +22272,7 @@
22157
22272
  if (end !== 0) {
22158
22273
  var oldRows = data.slice(start, typeof args[1] === "undefined" ? args[1] : start + end);
22159
22274
  oldRows.forEach(function (rowData, i) {
22160
- var row = _this2.table.rowManager.getRowFromDataObject(rowData);
22275
+ var row = self.table.rowManager.getRowFromDataObject(rowData);
22161
22276
 
22162
22277
  if (row) {
22163
22278
  row.deleteActual(i !== oldRows.length - 1);
@@ -22166,11 +22281,11 @@
22166
22281
  }
22167
22282
 
22168
22283
  if (newRows || end !== 0) {
22169
- _this2.table.rowManager.reRenderInPosition();
22284
+ self.table.rowManager.reRenderInPosition();
22170
22285
  }
22171
22286
  }
22172
22287
 
22173
- return _this2.origFuncs.splice.apply(data, _arguments);
22288
+ return self.origFuncs.splice.apply(data, arguments);
22174
22289
  }
22175
22290
  });
22176
22291
  }
@@ -22207,7 +22322,7 @@
22207
22322
  }, {
22208
22323
  key: "watchTreeChildren",
22209
22324
  value: function watchTreeChildren(row) {
22210
- var _arguments2 = arguments;
22325
+ var _arguments = arguments;
22211
22326
  var childField = row.getData()[this.table.options.dataTreeChildField],
22212
22327
  origFuncs = {};
22213
22328
 
@@ -22223,7 +22338,7 @@
22223
22338
  enumerable: false,
22224
22339
  configurable: true,
22225
22340
  value: function value() {
22226
- var result = origFuncs.push.apply(childField, _arguments2);
22341
+ var result = origFuncs.push.apply(childField, _arguments);
22227
22342
  rebuildTree();
22228
22343
  return result;
22229
22344
  }
@@ -22233,7 +22348,7 @@
22233
22348
  enumerable: false,
22234
22349
  configurable: true,
22235
22350
  value: function value() {
22236
- var result = origFuncs.unshift.apply(childField, _arguments2);
22351
+ var result = origFuncs.unshift.apply(childField, _arguments);
22237
22352
  rebuildTree();
22238
22353
  return result;
22239
22354
  }
@@ -22263,7 +22378,7 @@
22263
22378
  enumerable: false,
22264
22379
  configurable: true,
22265
22380
  value: function value() {
22266
- var result = origFuncs.splice.apply(childField, _arguments2);
22381
+ var result = origFuncs.splice.apply(childField, _arguments);
22267
22382
  rebuildTree();
22268
22383
  return result;
22269
22384
  }
@@ -22273,7 +22388,7 @@
22273
22388
  }, {
22274
22389
  key: "watchKey",
22275
22390
  value: function watchKey(row, data, key) {
22276
- var _this3 = this;
22391
+ var _this2 = this;
22277
22392
 
22278
22393
  var props = Object.getOwnPropertyDescriptor(data, key),
22279
22394
  value = data[key],
@@ -22282,7 +22397,7 @@
22282
22397
  set: function set(newValue) {
22283
22398
  value = newValue;
22284
22399
 
22285
- if (!_this3.blocked && version === _this3.currentVersion) {
22400
+ if (!_this2.blocked && version === _this2.currentVersion) {
22286
22401
  var update = {};
22287
22402
  update[key] = newValue;
22288
22403
  row.updateData(update);
@@ -23072,6 +23187,10 @@
23072
23187
 
23073
23188
  if (column.definition.title && column.field) {
23074
23189
  if (column.modules.format && self.table.options.responsiveLayoutCollapseUseFormatters) {
23190
+ var onRendered = function onRendered(callback) {
23191
+ callback();
23192
+ };
23193
+
23075
23194
  mockCellComponent = {
23076
23195
  value: false,
23077
23196
  data: {},
@@ -23094,7 +23213,7 @@
23094
23213
  output.push({
23095
23214
  field: column.field,
23096
23215
  title: column.definition.title,
23097
- value: column.modules.format.formatter.call(self.table.modules.format, mockCellComponent, column.modules.format.params)
23216
+ value: column.modules.format.formatter.call(self.table.modules.format, mockCellComponent, column.modules.format.params, onRendered)
23098
23217
  });
23099
23218
  } else {
23100
23219
  output.push({