@refinitiv-ui/efx-grid 6.0.91 → 6.0.92

Sign up to get free protection for your applications and to get access to all the features.
Files changed (151) hide show
  1. package/lib/column-dragging/es6/ColumnDragging.d.ts +1 -1
  2. package/lib/column-dragging/es6/ColumnDragging.js +144 -34
  3. package/lib/core/dist/core.js +2410 -2621
  4. package/lib/core/dist/core.min.js +1 -1
  5. package/lib/core/es6/data/ColumnStats.js +14 -14
  6. package/lib/core/es6/data/DataCache.js +118 -118
  7. package/lib/core/es6/data/DataTable.d.ts +3 -1
  8. package/lib/core/es6/data/DataTable.js +208 -190
  9. package/lib/core/es6/data/DataView.d.ts +1 -1
  10. package/lib/core/es6/data/DataView.js +291 -291
  11. package/lib/core/es6/data/Segment.js +79 -79
  12. package/lib/core/es6/data/SegmentCollection.js +81 -81
  13. package/lib/core/es6/data/WrappedView.js +41 -41
  14. package/lib/core/es6/grid/Core.js +635 -635
  15. package/lib/core/es6/grid/ILayoutGrid.js +1 -1
  16. package/lib/core/es6/grid/LayoutGrid.js +183 -183
  17. package/lib/core/es6/grid/VirtualizedLayoutGrid.js +91 -91
  18. package/lib/core/es6/grid/components/Cell.js +29 -29
  19. package/lib/core/es6/grid/components/CellFloatingPanel.js +11 -11
  20. package/lib/core/es6/grid/components/CellSpan.js +7 -7
  21. package/lib/core/es6/grid/components/CellSpans.js +36 -34
  22. package/lib/core/es6/grid/components/Column.js +40 -40
  23. package/lib/core/es6/grid/components/ElementWrapper.js +17 -17
  24. package/lib/core/es6/grid/components/HScrollbar.js +31 -31
  25. package/lib/core/es6/grid/components/Scrollbar.js +77 -77
  26. package/lib/core/es6/grid/components/StretchedCells.js +49 -49
  27. package/lib/core/es6/grid/components/VScrollbar.js +11 -11
  28. package/lib/core/es6/grid/components/VirtualItems.js +3 -3
  29. package/lib/core/es6/grid/event/EventDispatcher.js +9 -9
  30. package/lib/core/es6/grid/event/EventListeners.js +4 -4
  31. package/lib/core/es6/grid/plugins/SortableTitlePlugin.js +186 -186
  32. package/lib/core/es6/grid/util/Conflator.js +4 -4
  33. package/lib/core/es6/grid/util/Reverter.js +1 -1
  34. package/lib/core/es6/grid/util/SectionSettings.js +20 -20
  35. package/lib/core/es6/grid/util/SelectionList.js +23 -23
  36. package/lib/core/es6/grid/util/TrackLayout.js +74 -74
  37. package/lib/core/es6/grid/util/Virtualizer.js +15 -15
  38. package/lib/core/es6/grid/util/util.js +20 -20
  39. package/lib/core/es6/index.d.ts +0 -2
  40. package/lib/core/es6/index.js +0 -3
  41. package/lib/grid/index.js +1 -1
  42. package/lib/rt-grid/dist/rt-grid.js +193 -70
  43. package/lib/rt-grid/dist/rt-grid.min.js +1 -1
  44. package/lib/rt-grid/es6/Grid.js +46 -30
  45. package/lib/rt-grid/es6/RowDefinition.d.ts +2 -1
  46. package/lib/rt-grid/es6/RowDefinition.js +74 -16
  47. package/lib/tr-grid-cell-selection/es6/CellSelection.js +56 -1
  48. package/lib/tr-grid-column-grouping/es6/ColumnGrouping.d.ts +3 -1
  49. package/lib/tr-grid-column-grouping/es6/ColumnGrouping.js +29 -1
  50. package/lib/tr-grid-util/es6/CellPainter.js +94 -93
  51. package/lib/tr-grid-util/es6/Conflator.js +4 -4
  52. package/lib/tr-grid-util/es6/CoralItems.js +6 -6
  53. package/lib/tr-grid-util/es6/DateTime.js +39 -39
  54. package/lib/tr-grid-util/es6/Deferred.js +5 -5
  55. package/lib/tr-grid-util/es6/Delay.js +1 -1
  56. package/lib/tr-grid-util/es6/Dom.js +26 -26
  57. package/lib/tr-grid-util/es6/DragUI.js +17 -17
  58. package/lib/tr-grid-util/es6/ElementObserver.js +12 -12
  59. package/lib/tr-grid-util/es6/ElementWrapper.js +2 -2
  60. package/lib/tr-grid-util/es6/ElfDate.js +4 -4
  61. package/lib/tr-grid-util/es6/ElfUtil.js +37 -37
  62. package/lib/tr-grid-util/es6/EventDispatcher.js +12 -12
  63. package/lib/tr-grid-util/es6/ExpanderIcon.js +6 -6
  64. package/lib/tr-grid-util/es6/ExpressionParser.js +43 -43
  65. package/lib/tr-grid-util/es6/Ext.js +6 -6
  66. package/lib/tr-grid-util/es6/FieldFormatter.js +17 -17
  67. package/lib/tr-grid-util/es6/FilterBuilder.js +57 -57
  68. package/lib/tr-grid-util/es6/FilterOperators.d.ts +12 -1
  69. package/lib/tr-grid-util/es6/FilterOperators.js +13 -2
  70. package/lib/tr-grid-util/es6/GridPlugin.js +86 -86
  71. package/lib/tr-grid-util/es6/GroupDefinitions.js +90 -90
  72. package/lib/tr-grid-util/es6/Icon.js +4 -4
  73. package/lib/tr-grid-util/es6/MouseDownTrait.js +6 -6
  74. package/lib/tr-grid-util/es6/MultiTableManager.js +68 -68
  75. package/lib/tr-grid-util/es6/NumberFormatter.js +22 -22
  76. package/lib/tr-grid-util/es6/PercentBar.js +17 -17
  77. package/lib/tr-grid-util/es6/Perf.js +5 -5
  78. package/lib/tr-grid-util/es6/Popup.js +42 -42
  79. package/lib/tr-grid-util/es6/RangeBar.js +5 -5
  80. package/lib/tr-grid-util/es6/RequestQueue.js +5 -5
  81. package/lib/tr-grid-util/es6/RowPainter.js +23 -23
  82. package/lib/tr-grid-util/es6/SubTable.js +94 -94
  83. package/lib/tr-grid-util/es6/Table.js +51 -51
  84. package/lib/tr-grid-util/es6/TextHighlighter.js +49 -49
  85. package/lib/tr-grid-util/es6/TickCodes.js +2 -2
  86. package/lib/tr-grid-util/es6/Timer.js +2 -2
  87. package/lib/tr-grid-util/es6/TouchProxy.js +7 -7
  88. package/lib/tr-grid-util/es6/Util.js +50 -50
  89. package/lib/tr-grid-util/es6/formula/ADCService.js +2 -2
  90. package/lib/tr-grid-util/es6/formula/ADCSubscription.js +19 -19
  91. package/lib/tr-grid-util/es6/formula/AdFinService.js +2 -2
  92. package/lib/tr-grid-util/es6/formula/AdFinSubscription.js +19 -19
  93. package/lib/tr-grid-util/es6/formula/Engine.js +56 -56
  94. package/lib/tr-grid-util/es6/formula/Formula.js +62 -62
  95. package/lib/tr-grid-util/es6/formula/IntervalSubscription.js +3 -3
  96. package/lib/tr-grid-util/es6/formula/Realtime.js +15 -15
  97. package/lib/tr-grid-util/es6/formula/RealtimeService.js +15 -15
  98. package/lib/tr-grid-util/es6/formula/TSIService.js +2 -2
  99. package/lib/tr-grid-util/es6/formula/TSISubscription.js +104 -104
  100. package/lib/tr-grid-util/es6/formula/VariableToken.js +20 -20
  101. package/lib/tr-grid-util/es6/formula/functions/AdFin.js +10 -10
  102. package/lib/tr-grid-util/es6/formula/functions/Excel.js +1 -1
  103. package/lib/tr-grid-util/es6/formula/functions/Info.js +2 -2
  104. package/lib/tr-grid-util/es6/formula/functions/Internal.js +5 -5
  105. package/lib/tr-grid-util/es6/formula/functions/Logic.js +5 -5
  106. package/lib/tr-grid-util/es6/formula/functions/Math.js +46 -46
  107. package/lib/tr-grid-util/es6/formula/functions/Statistics.js +27 -27
  108. package/lib/tr-grid-util/es6/formula/functions/Text.js +19 -19
  109. package/lib/tr-grid-util/es6/index.js +1 -1
  110. package/lib/tr-grid-util/es6/jet/Adc.js +36 -36
  111. package/lib/tr-grid-util/es6/jet/CollectionDict.js +11 -11
  112. package/lib/tr-grid-util/es6/jet/DataGenerator.js +95 -95
  113. package/lib/tr-grid-util/es6/jet/DataSet.js +1 -1
  114. package/lib/tr-grid-util/es6/jet/MockArchive.js +5 -5
  115. package/lib/tr-grid-util/es6/jet/MockJET.js +1 -1
  116. package/lib/tr-grid-util/es6/jet/MockQuotes.js +13 -13
  117. package/lib/tr-grid-util/es6/jet/MockQuotes2.js +100 -100
  118. package/lib/tr-grid-util/es6/jet/MockRTK.js +4 -4
  119. package/lib/tr-grid-util/es6/jet/MockUtil.js +2 -2
  120. package/lib/tr-grid-util/es6/jet/index.js +1 -1
  121. package/lib/tr-grid-util/es6/jet/mockDataAPI.js +15 -15
  122. package/lib/tr-grid-util/es6/locale/translation-de.js +1 -1
  123. package/lib/tr-grid-util/es6/locale/translation-en.js +1 -1
  124. package/lib/tr-grid-util/es6/locale/translation-ja.js +1 -1
  125. package/lib/tr-grid-util/es6/locale/translation-zh-hant.js +1 -1
  126. package/lib/tr-grid-util/es6/locale/translation-zh.js +1 -1
  127. package/lib/tr-grid-util/es6/locale/translation.js +1 -1
  128. package/lib/types/es6/ColumnDragging.d.ts +1 -1
  129. package/lib/types/es6/ColumnGrouping.d.ts +3 -1
  130. package/lib/types/es6/Core/data/DataTable.d.ts +4 -0
  131. package/lib/types/es6/Core/data/DataView.d.ts +2 -0
  132. package/lib/types/es6/Core/data/SegmentCollection.d.ts +2 -0
  133. package/lib/types/es6/Core/index.d.ts +0 -2
  134. package/lib/types/es6/RealtimeGrid/RowDefinition.d.ts +2 -1
  135. package/lib/versions.json +4 -4
  136. package/package.json +1 -1
  137. package/lib/core/es6/grid/util/ElementFrameWork.d.ts +0 -18
  138. package/lib/core/es6/grid/util/ElementFrameWork.js +0 -227
  139. package/lib/core/es6/grid/util/HttpRequest.d.ts +0 -53
  140. package/lib/core/es6/grid/util/HttpRequest.js +0 -371
  141. package/lib/core/es6/grid/util/PercentBar.d.ts +0 -43
  142. package/lib/core/es6/grid/util/PercentBar.js +0 -390
  143. package/lib/core/es6/grid/util/PercentBarRenderer.d.ts +0 -41
  144. package/lib/core/es6/grid/util/PercentBarRenderer.js +0 -316
  145. package/lib/core/es6/grid/util/RangeBar.d.ts +0 -25
  146. package/lib/core/es6/grid/util/RangeBar.js +0 -255
  147. package/lib/types/es6/Core/grid/util/ElementFrameWork.d.ts +0 -18
  148. package/lib/types/es6/Core/grid/util/HttpRequest.d.ts +0 -53
  149. package/lib/types/es6/Core/grid/util/PercentBar.d.ts +0 -43
  150. package/lib/types/es6/Core/grid/util/PercentBarRenderer.d.ts +0 -41
  151. package/lib/types/es6/Core/grid/util/RangeBar.d.ts +0 -25
@@ -57,8 +57,8 @@ import { Conflator } from "../../../tr-grid-util/es6/Conflator.js";
57
57
  * @param {DataTable|DataView=} source
58
58
  * @see {@link DataTable}
59
59
  */
60
- var DataView = function(source) {
61
- var t = this; // For file minification
60
+ let DataView = function(source) {
61
+ let t = this; // For file minification
62
62
  t._groupFilterLogic = t._groupFilterLogic.bind(t);
63
63
  t._internalGroupSortingLogic = t._internalGroupSortingLogic.bind(t);
64
64
 
@@ -331,7 +331,7 @@ DataView.prototype.dispose = function() {
331
331
  }
332
332
 
333
333
  if(this._columnStats) {
334
- for(var field in this._columnStats) {
334
+ for(let field in this._columnStats) {
335
335
  this._columnStats[field].dispose();
336
336
  }
337
337
  this._columnStats = null;
@@ -361,12 +361,12 @@ DataView.prototype.getRowData = function(rid) {
361
361
  * @return {!Array}
362
362
  */
363
363
  DataView.prototype.getColumnData = function(cid, inclNonDataRow) {
364
- var rids = this.getAllRowIds(true, inclNonDataRow);
364
+ let rids = this.getAllRowIds(true, inclNonDataRow);
365
365
 
366
- var rows = [];
367
- var len = rids.length;
368
- for(var r = 0; r < len; ++r) {
369
- var rowData = this._dt.getRowData(rids[r]);
366
+ let rows = [];
367
+ let len = rids.length;
368
+ for(let r = 0; r < len; ++r) {
369
+ let rowData = this._dt.getRowData(rids[r]);
370
370
  if(rowData) {
371
371
  rows.push(rowData[cid]);
372
372
  } else if(inclNonDataRow) {
@@ -401,11 +401,11 @@ DataView.prototype._toRowId = function(rowRef) {
401
401
  * @return {!Array.<string>}
402
402
  */
403
403
  DataView.prototype._toRowIds = function(rowRefs) {
404
- var rowCount = Array.isArray(rowRefs) ? rowRefs.length : 0;
405
- var ary = new Array(rowCount);
406
- var rids = this._getRids();
407
- for(var r = 0; r < rowCount; ++r) {
408
- var rowRef = rowRefs[r];
404
+ let rowCount = Array.isArray(rowRefs) ? rowRefs.length : 0;
405
+ let ary = new Array(rowCount);
406
+ let rids = this._getRids();
407
+ for(let r = 0; r < rowCount; ++r) {
408
+ let rowRef = rowRefs[r];
409
409
  if(typeof rowRef === "number") {
410
410
  this._rebuildRowIdsFromChildren();
411
411
  ary[r] = rids[rowRef] || "";
@@ -429,7 +429,7 @@ DataView.prototype.getAllRowIds = function(shallowCopy, inclNonDataRow) {
429
429
  this._rebuildRowIdsFromChildren();
430
430
 
431
431
  // WARNING: this._pageView can contain non-data rows (group header rows), even if inclNonDataRow flag is false
432
- var rids = (inclNonDataRow) ? this._getRids() : (this._pageView || this._rids);
432
+ let rids = (inclNonDataRow) ? this._getRids() : (this._pageView || this._rids);
433
433
 
434
434
  return (shallowCopy) ? rids : rids.slice(0); // Fastest way to clone an array is Array.slice()
435
435
  };
@@ -441,7 +441,7 @@ DataView.prototype.getAllRowIds = function(shallowCopy, inclNonDataRow) {
441
441
  */
442
442
  DataView.prototype.getVisibleRowIds = function(shallowCopy) {
443
443
  this._rebuildRowIdsFromChildren();
444
- var rids = this._getRids();
444
+ let rids = this._getRids();
445
445
  return shallowCopy ? rids : rids.slice(0); // Fastest way to clone an array
446
446
  };
447
447
  /** Return all data rows that is filtered and sorted, excluding header rows or paging. This method ignores pagination.
@@ -561,7 +561,7 @@ DataView.prototype.setColumnData = function(cid, valueList, opt_ridList) {
561
561
  * @fires DataView#dataChanged
562
562
  */
563
563
  DataView.prototype.setDataAt = function(rowIndex, cid, value) {
564
- var rid = this.getRowId(rowIndex);
564
+ let rid = this.getRowId(rowIndex);
565
565
  if(rid && this._dt) {
566
566
  return this._dt.setData(rid, cid, value);
567
567
  }
@@ -576,7 +576,7 @@ DataView.prototype.setDataAt = function(rowIndex, cid, value) {
576
576
  * @fires DataView#dataChanged
577
577
  */
578
578
  DataView.prototype.setRowDataAt = function(rowIndex, values, opt_eventArg) {
579
- var rid = this.getRowId(rowIndex);
579
+ let rid = this.getRowId(rowIndex);
580
580
  return this.setRowData(rid, values, opt_eventArg);
581
581
  };
582
582
 
@@ -588,7 +588,7 @@ DataView.prototype.setRowDataAt = function(rowIndex, values, opt_eventArg) {
588
588
  */
589
589
  DataView.prototype.insertRow = function(rowRef, opt_values, opt_rid) { // Data changed event may be dispatched
590
590
  this._rebuildRowIdsFromChildren(); // TODO: Check if we need to rebuild row ids
591
- var nextRid = this._toRowId(rowRef);
591
+ let nextRid = this._toRowId(rowRef);
592
592
 
593
593
  if(this._dt) {
594
594
  return this._dt.insertRow(nextRid, opt_values, opt_rid);
@@ -626,10 +626,10 @@ DataView.prototype.removeRows = function(rowRefs) {
626
626
  * move(ary, 1, 0); // [1, 0, 2] Move index 1 to the position before index 0
627
627
  */
628
628
  DataView.prototype.moveRow = function(fromRef, toRef) {
629
- var toRid = this._toRowId(toRef);
629
+ let toRid = this._toRowId(toRef);
630
630
 
631
- var fromIndices = /** @type{!Array.<number|string>} */(Array.isArray(fromRef) ? fromRef : [fromRef]);
632
- var fromRids = this._toRowIds(fromIndices);
631
+ let fromIndices = /** @type{!Array.<number|string>} */(Array.isArray(fromRef) ? fromRef : [fromRef]);
632
+ let fromRids = this._toRowIds(fromIndices);
633
633
 
634
634
  if(this._dt.hasSegmentation()) {
635
635
  this.synchronizeRowOrder();
@@ -731,14 +731,14 @@ DataView.prototype.sort = function (cid, opt_sortOrder, sortLogics, noOptimizati
731
731
  return;
732
732
  }
733
733
 
734
- var compMap = this.getSortingLogics();
735
- var sortingDefs = this._sortingDefs;
736
- var curSortLen = sortingDefs.length;
734
+ let compMap = this.getSortingLogics();
735
+ let sortingDefs = this._sortingDefs;
736
+ let curSortLen = sortingDefs.length;
737
737
 
738
738
  if (Array.isArray(sortLogics)) {
739
- for(var c = sortLogics.length; --c >= 0;) {
739
+ for(let c = sortLogics.length; --c >= 0;) {
740
740
  if (typeof sortLogics[c] !== "function") {
741
- var columnId = Array.isArray(cid) ? cid[c] : cid;
741
+ let columnId = Array.isArray(cid) ? cid[c] : cid;
742
742
  sortLogics[c] = compMap[columnId] || compMap["_default"];
743
743
  }
744
744
  }
@@ -759,7 +759,7 @@ DataView.prototype.sort = function (cid, opt_sortOrder, sortLogics, noOptimizati
759
759
  return;
760
760
  }
761
761
 
762
- var change = false;
762
+ let change = false;
763
763
 
764
764
  if (this._groupMembers || sortingDefs.length <= 0 || noOptimization) {
765
765
  change = true;
@@ -786,8 +786,8 @@ DataView.prototype.sortOnce = function(cid, opt_sortOrder) {
786
786
  * customLogic = function(a, b, sortOrder) {
787
787
  * return (a - b) * sortOrder; // for numeric comparison
788
788
  * };
789
- * var dt = new DataTable();
790
- * var dv = new DataView(dt);
789
+ * let dt = new DataTable();
790
+ * let dv = new DataView(dt);
791
791
  * dv.setSortingLogic(customLogic);
792
792
  * dv.sort("Column id", "ascending");
793
793
  */
@@ -840,7 +840,7 @@ DataView.prototype.hideRow = function(rId, hidden) {
840
840
  */
841
841
  DataView.prototype.hideRows = function(rowRefs, hidden) {
842
842
  hidden = hidden !== false;
843
- var hiddenRids = this._hiddenRids;
843
+ let hiddenRids = this._hiddenRids;
844
844
 
845
845
  if(hidden){
846
846
  if(!hiddenRids) {
@@ -850,11 +850,11 @@ DataView.prototype.hideRows = function(rowRefs, hidden) {
850
850
  return; // All rows are visible
851
851
  }
852
852
 
853
- var rids = this._toRowIds(rowRefs);
854
- var dirty = false;
853
+ let rids = this._toRowIds(rowRefs);
854
+ let dirty = false;
855
855
 
856
- for(var i = rids.length; --i >= 0;) {
857
- var rid = rids[i];
856
+ for(let i = rids.length; --i >= 0;) {
857
+ let rid = rids[i];
858
858
  if(rid) { // undefined, null, and an empty string value are not a valid row id
859
859
  if(hidden) {
860
860
  if(!hiddenRids[rid]) {
@@ -870,8 +870,8 @@ DataView.prototype.hideRows = function(rowRefs, hidden) {
870
870
 
871
871
  if(dirty) {
872
872
  if(!hidden) {
873
- var hasHiddenRow = false;
874
- for(var key in hiddenRids) { // eslint-disable-line
873
+ let hasHiddenRow = false;
874
+ for(let key in hiddenRids) { // eslint-disable-line
875
875
  hasHiddenRow = true;
876
876
  break;
877
877
  }
@@ -924,8 +924,8 @@ DataView.prototype.hasHiddenRow = function(){
924
924
  * });
925
925
  */
926
926
  DataView.prototype.filterIn = function(cid, value, opt_filteringOut) {
927
- var newLogic = this._getFilterLogic(cid, value);
928
- var filteringOut = (opt_filteringOut === true);
927
+ let newLogic = this._getFilterLogic(cid, value);
928
+ let filteringOut = (opt_filteringOut === true);
929
929
  if(this._userFilter === newLogic && typeof cid !== "function") {
930
930
  if(!newLogic || filteringOut === this._filteringOut) {
931
931
  return false; // Nothing to update
@@ -962,8 +962,8 @@ DataView.prototype.filterOut = function(cid, value) {
962
962
  * @fires DataView#dataChanged
963
963
  */
964
964
  DataView.prototype.filterInOnce = function(cid, value, opt_filteringOut) {
965
- var checker = this._getFilterLogic(cid, value);
966
- var removalMap = {};
965
+ let checker = this._getFilterLogic(cid, value);
966
+ let removalMap = {};
967
967
  if(!this._getRemovalMap(
968
968
  removalMap,
969
969
  checker,
@@ -972,9 +972,9 @@ DataView.prototype.filterInOnce = function(cid, value, opt_filteringOut) {
972
972
  return;
973
973
  }
974
974
 
975
- var firstChange = this._removeRowIds(removalMap);
975
+ let firstChange = this._removeRowIds(removalMap);
976
976
 
977
- var pageIndexChanged = this._updatePageCount();
977
+ let pageIndexChanged = this._updatePageCount();
978
978
  if(pageIndexChanged || this._transformView(firstChange)) {
979
979
  this._dispatchGlobalChange();
980
980
  } else {
@@ -997,15 +997,15 @@ DataView.prototype.filterOutOnce = function(cid, value) {
997
997
  * @return {number}
998
998
  */
999
999
  DataView.prototype._removeRowIds = function(removalMap) {
1000
- var firstChange = DataView._removeArrayItems(this._rids, removalMap);
1000
+ let firstChange = DataView._removeArrayItems(this._rids, removalMap);
1001
1001
  if(this._groupView) {
1002
1002
  firstChange = DataView._removeArrayItems(this._groupView, removalMap);
1003
1003
  }
1004
1004
 
1005
1005
  if(this._groupMembers) {
1006
- var len = this._groupList.length;
1007
- for(var i = 0; i < len; ++i) {
1008
- var groupId = this._groupList[i];
1006
+ let len = this._groupList.length;
1007
+ for(let i = 0; i < len; ++i) {
1008
+ let groupId = this._groupList[i];
1009
1009
  this._groupMembers[groupId]._removeRowIds(removalMap);
1010
1010
  }
1011
1011
  }
@@ -1040,7 +1040,7 @@ DataView.prototype.disablePageCorrection = function(opt_disable) {
1040
1040
  * @fires DataView#dataChanged
1041
1041
  */
1042
1042
  DataView.prototype.setPage = function (pageIndex) {
1043
- var result = this._setPage(pageIndex);
1043
+ let result = this._setPage(pageIndex);
1044
1044
  if(result) {
1045
1045
  this._dispatchGlobalChange();
1046
1046
  }
@@ -1190,7 +1190,7 @@ DataView.prototype.groupBy = function (cid, opt_predefinedGroups) {
1190
1190
 
1191
1191
  if(this._groupCriteria) {
1192
1192
  if(this._groupList && this._groupList.length > 0) { // Dispose any existing member
1193
- for(var key in this._groupMembers) {
1193
+ for(let key in this._groupMembers) {
1194
1194
  this._groupMembers[key].dispose(); // Clear everything in the data view
1195
1195
  }
1196
1196
  this._groupMembers = {}; // Clear all members
@@ -1202,10 +1202,10 @@ DataView.prototype.groupBy = function (cid, opt_predefinedGroups) {
1202
1202
  this._setPredefinedGroups(opt_predefinedGroups);
1203
1203
  }
1204
1204
 
1205
- var i, len;
1205
+ let i, len;
1206
1206
  if(cid && this._groupLevel === 0) { // Sub group cannot be re-group without its parent noticing it
1207
1207
  this._groupCriteria = [];
1208
- var ary;
1208
+ let ary;
1209
1209
  if(!Array.isArray(cid)) {
1210
1210
  ary = [cid];
1211
1211
  } else {
@@ -1213,7 +1213,7 @@ DataView.prototype.groupBy = function (cid, opt_predefinedGroups) {
1213
1213
  }
1214
1214
  len = ary.length;
1215
1215
  for(i = 0; i < len; ++i) {
1216
- var criteria = ary[i];
1216
+ let criteria = ary[i];
1217
1217
  if(typeof criteria === "string") {
1218
1218
  this._groupCriteria.push(this._defaultGroupCriteria.bind(this, criteria));
1219
1219
  } else if(criteria) {
@@ -1276,9 +1276,9 @@ DataView.prototype.addGroup = function (value) {
1276
1276
  if(!isArray(value)) {
1277
1277
  this._addGroup(value);
1278
1278
  } else {
1279
- var ary = /** @type{Array} */(value);
1280
- var len = ary.length;
1281
- for(var i = 0; i < len; ++i) {
1279
+ let ary = /** @type{Array} */(value);
1280
+ let len = ary.length;
1281
+ for(let i = 0; i < len; ++i) {
1282
1282
  this._addGroup(ary[i]);
1283
1283
  }
1284
1284
  }
@@ -1300,8 +1300,8 @@ DataView.prototype.sortGroups = function (compare) {
1300
1300
  }
1301
1301
 
1302
1302
  this._groupList.sort(this._internalGroupSortingLogic);
1303
- for(var i = this._groupList.length; --i >= 0;){
1304
- var groupId = this._groupList[i];
1303
+ for(let i = this._groupList.length; --i >= 0;){
1304
+ let groupId = this._groupList[i];
1305
1305
  this._groupMembers[groupId].sortGroups(this._groupSortingLogic);
1306
1306
  }
1307
1307
  this._groupViewDirty = true;
@@ -1315,14 +1315,14 @@ DataView.prototype.sortGroups = function (compare) {
1315
1315
  * @param {number} destIndex
1316
1316
  */
1317
1317
  DataView.prototype.moveGroup = function (groupRef, destIndex) {
1318
- var movedGroup = this.getGroup(groupRef);
1318
+ let movedGroup = this.getGroup(groupRef);
1319
1319
  if(!movedGroup) {
1320
1320
  return; // Cannot find the given group
1321
1321
  }
1322
1322
 
1323
- var parentGroup = movedGroup.getDataSource();
1324
- var groupId = movedGroup.getGroupId();
1325
- var curGroupIndex = parentGroup._groupList.indexOf(groupId);
1323
+ let parentGroup = movedGroup.getDataSource();
1324
+ let groupId = movedGroup.getGroupId();
1325
+ let curGroupIndex = parentGroup._groupList.indexOf(groupId);
1326
1326
  if(curGroupIndex === destIndex || curGroupIndex + 1 === destIndex) {
1327
1327
  return; // Nothing is needed to be moved
1328
1328
  }
@@ -1360,11 +1360,11 @@ DataView.prototype._setPredefinedGroups = function (predefinedGroups) {
1360
1360
  }
1361
1361
 
1362
1362
  if(this._preDefGroups) {
1363
- this._preDefGroups.length = 0; // Remove all predefined groups in all members (this var is shared)
1363
+ this._preDefGroups.length = 0; // Remove all predefined groups in all members (this let is shared)
1364
1364
  }
1365
- var is2D = false;
1365
+ let is2D = false;
1366
1366
  if(predefinedGroups) {
1367
- for(var i = predefinedGroups.length; --i >= 0;) {
1367
+ for(let i = predefinedGroups.length; --i >= 0;) {
1368
1368
  if(Array.isArray(predefinedGroups[i])) {
1369
1369
  is2D = true;
1370
1370
  break;
@@ -1402,8 +1402,8 @@ DataView.prototype.addFooter = function (opt_num) {
1402
1402
  this._footerRowIds = [];
1403
1403
  }
1404
1404
 
1405
- for(var i = 0; i < opt_num; ++i) {
1406
- var footerRowId = this._groupRowId + "_footer" + (this._footerRowIds.length || "");
1405
+ for(let i = 0; i < opt_num; ++i) {
1406
+ let footerRowId = this._groupRowId + "_footer" + (this._footerRowIds.length || "");
1407
1407
  this._footerRowIds.push(footerRowId);
1408
1408
  this._groupRows[footerRowId] = this;
1409
1409
  }
@@ -1417,8 +1417,8 @@ DataView.prototype.addFooter = function (opt_num) {
1417
1417
  */
1418
1418
  DataView.prototype.removeFooter = function () {
1419
1419
  if(this._footerRowIds) {
1420
- var len = this._footerRowIds.length;
1421
- for(var i = 0; i < len; ++i) {
1420
+ let len = this._footerRowIds.length;
1421
+ for(let i = 0; i < len; ++i) {
1422
1422
  delete this._groupRows[this._footerRowIds[i]];
1423
1423
  }
1424
1424
  this._footerRowIds = null;
@@ -1462,7 +1462,7 @@ DataView.prototype.getGroup = function (groupRef) {
1462
1462
  if(!this._groupMembers) {
1463
1463
  return null;
1464
1464
  }
1465
- var groupId;
1465
+ let groupId;
1466
1466
  if(typeof groupRef === "number") {
1467
1467
  groupId = this._groupList[groupRef];
1468
1468
  if(!groupId) {
@@ -1473,13 +1473,13 @@ DataView.prototype.getGroup = function (groupRef) {
1473
1473
  }
1474
1474
 
1475
1475
  // Search immediate child groups by group Id
1476
- var dv = this._groupMembers[groupId];
1476
+ let dv = this._groupMembers[groupId];
1477
1477
  if(dv) {
1478
1478
  return dv;
1479
1479
  }
1480
1480
 
1481
1481
  // A group cannot be found by group Id. It is now assumed to be row id
1482
- var rowId = groupId;
1482
+ let rowId = groupId;
1483
1483
  dv = this._groupRows[rowId]; // Groups of any level will be searched
1484
1484
  if(dv) {
1485
1485
  return dv;
@@ -1495,10 +1495,10 @@ DataView.prototype.getGroup = function (groupRef) {
1495
1495
  */
1496
1496
  DataView.prototype._getGroupByContentRowId = function (rowId) {
1497
1497
  if(this._groupMembers) {
1498
- for (var i = 0; i < this._groupList.length; i++) {
1499
- var groupId = this._groupList[i];
1500
- var grp = this._groupMembers[groupId];
1501
- var childGroup = grp._getGroupByContentRowId(rowId);
1498
+ for (let i = 0; i < this._groupList.length; i++) {
1499
+ let groupId = this._groupList[i];
1500
+ let grp = this._groupMembers[groupId];
1501
+ let childGroup = grp._getGroupByContentRowId(rowId);
1502
1502
  if(childGroup) {
1503
1503
  return childGroup;
1504
1504
  }
@@ -1518,10 +1518,10 @@ DataView.prototype._getGroupByContentRowId = function (rowId) {
1518
1518
  DataView.prototype.getAllGroups = function (out_ary) {
1519
1519
  if(!out_ary) { out_ary = []; }
1520
1520
  if(this._groupMembers) {
1521
- var len = this._groupList.length;
1522
- for(var i = 0; i < len; ++i) {
1523
- var groupId = this._groupList[i];
1524
- var grp = this._groupMembers[groupId];
1521
+ let len = this._groupList.length;
1522
+ for(let i = 0; i < len; ++i) {
1523
+ let groupId = this._groupList[i];
1524
+ let grp = this._groupMembers[groupId];
1525
1525
  out_ary.push(grp);
1526
1526
  grp.getAllGroups(out_ary);
1527
1527
  }
@@ -1564,7 +1564,7 @@ DataView.prototype.getGroupRowId = function () {
1564
1564
  */
1565
1565
  DataView.prototype.getFooterRowIndex = function (rid) {
1566
1566
  if(this._footerRowIds) {
1567
- for(var i = this._footerRowIds.length; --i >= 0;) {
1567
+ for(let i = this._footerRowIds.length; --i >= 0;) {
1568
1568
  if(this._footerRowIds[i] === rid) {
1569
1569
  return i;
1570
1570
  }
@@ -1604,17 +1604,17 @@ DataView.prototype.getGroupLevel = function (rowRef) {
1604
1604
  if(rowRef != null && this._groupRows) {
1605
1605
  if(typeof rowRef === 'number'){ // TODO: Change logic to acquire row id from row index instead
1606
1606
  this._rebuildRowIdsFromChildren();
1607
- var rids = this._getRids(); // TODO : Should include hidden rows
1608
- var rid = rids[rowRef];
1607
+ let rids = this._getRids(); // TODO : Should include hidden rows
1608
+ let rid = rids[rowRef];
1609
1609
  while(rid) {
1610
- var dv = this._groupRows[rid];
1610
+ let dv = this._groupRows[rid];
1611
1611
  if(dv) {
1612
1612
  return dv._groupLevel;
1613
1613
  }
1614
1614
  rid = rids[--rowRef];
1615
1615
  }
1616
1616
  } else {
1617
- var currentGroup = this.getGroup(rowRef); // Slow becuase recursive
1617
+ let currentGroup = this.getGroup(rowRef); // Slow becuase recursive
1618
1618
  if(currentGroup) {
1619
1619
  return currentGroup._groupLevel;
1620
1620
  }
@@ -1633,8 +1633,8 @@ DataView.prototype.getGroupLevel = function (rowRef) {
1633
1633
  */
1634
1634
  DataView.prototype.enableColumnStats = function(cid, opt_enabled, opt_refId) {
1635
1635
  if (!cid) { return null; }
1636
- var enabled = opt_enabled !== false;
1637
- var cs = this._columnStats[cid];
1636
+ let enabled = opt_enabled !== false;
1637
+ let cs = this._columnStats[cid];
1638
1638
  if(enabled) {
1639
1639
  if(!cs) {
1640
1640
  cs = new ColumnStats(this, cid);
@@ -1650,8 +1650,8 @@ DataView.prototype.enableColumnStats = function(cid, opt_enabled, opt_refId) {
1650
1650
  }
1651
1651
  }
1652
1652
  if(this._groupMembers) {
1653
- for(var i = this._groupList.length; --i >= 0;) {
1654
- var groupId = this._groupList[i];
1653
+ for(let i = this._groupList.length; --i >= 0;) {
1654
+ let groupId = this._groupList[i];
1655
1655
  this._groupMembers[groupId].enableColumnStats(cid, opt_enabled, opt_refId);
1656
1656
  }
1657
1657
  }
@@ -1671,7 +1671,7 @@ DataView.prototype.getColumnStats = function(cid) {
1671
1671
  * @returns {boolean}
1672
1672
  */
1673
1673
  DataView.prototype.hide = function(opt_hidden) {
1674
- var val = opt_hidden !== false;
1674
+ let val = opt_hidden !== false;
1675
1675
  if(this._hidden === val) {
1676
1676
  return false;
1677
1677
  }
@@ -1743,7 +1743,7 @@ DataView.prototype._setCollapse = function(collapsed) {
1743
1743
  * @param {boolean=} opt_collapsed
1744
1744
  */
1745
1745
  DataView.prototype.collapse = function(opt_collapsed) {
1746
- var dirty = this._setCollapse(opt_collapsed !== false);
1746
+ let dirty = this._setCollapse(opt_collapsed !== false);
1747
1747
 
1748
1748
  if(dirty) {
1749
1749
  if (this._shared.contentAsHeader) {
@@ -1762,12 +1762,12 @@ DataView.prototype.collapse = function(opt_collapsed) {
1762
1762
  * @param {boolean=} opt_collapsed
1763
1763
  */
1764
1764
  DataView.prototype.collapseAllGroups = function(opt_collapsed) {
1765
- var grpList = this.getAllGroups();
1766
- var len = grpList.length;
1765
+ let grpList = this.getAllGroups();
1766
+ let len = grpList.length;
1767
1767
  if(len) {
1768
- var collapsed = (opt_collapsed !== false);
1769
- for(var i = 0; i < len; ++i) {
1770
- var grpItem = grpList[i];
1768
+ let collapsed = (opt_collapsed !== false);
1769
+ for(let i = 0; i < len; ++i) {
1770
+ let grpItem = grpList[i];
1771
1771
  grpItem._setCollapse(collapsed);
1772
1772
  }
1773
1773
  this._requestRebuildingRowIds(false);
@@ -1846,7 +1846,7 @@ DataView.prototype.getGroupColor = function() {
1846
1846
  DataView.prototype._getFirstHiddenRids = function() {
1847
1847
  if(this._shared.contentAsHeader) {
1848
1848
  if(this._showOnlyFirstMember) {
1849
- var rids = this._rids;
1849
+ let rids = this._rids;
1850
1850
  if (Array.isArray(rids) && rids.length) {
1851
1851
  return [rids[0]]; // Get only the first member of rids
1852
1852
  }
@@ -1874,8 +1874,8 @@ DataView.prototype.getVisibleRowCount = function() {
1874
1874
  * @return {boolean}
1875
1875
  */
1876
1876
  DataView.prototype.isRowDataInGroup = function (rowData, groupID) {
1877
- var criteria = this._groupCriteria;
1878
- var level = this._groupLevel;
1877
+ let criteria = this._groupCriteria;
1878
+ let level = this._groupLevel;
1879
1879
 
1880
1880
  // Because self is a leaf group, only check against self.
1881
1881
  if (!groupID || groupID === this.getGroupId()) {
@@ -1883,7 +1883,7 @@ DataView.prototype.isRowDataInGroup = function (rowData, groupID) {
1883
1883
  }
1884
1884
 
1885
1885
  // Check against self and all sub groups within self
1886
- for (var i = level; i < criteria.length; i++) {
1886
+ for (let i = level; i < criteria.length; i++) {
1887
1887
  if (criteria[i](rowData).indexOf(groupID) >= 0) {
1888
1888
  return true;
1889
1889
  }
@@ -1898,7 +1898,7 @@ DataView.prototype.isRowDataInGroup = function (rowData, groupID) {
1898
1898
  * @return {boolean}
1899
1899
  */
1900
1900
  DataView.prototype.isRowIdInGroup = function (rowId, groupID) {
1901
- var rowData = this.getRowData(rowId);
1901
+ let rowData = this.getRowData(rowId);
1902
1902
  if(rowData) {
1903
1903
  return this.isRowDataInGroup(rowData, groupID);
1904
1904
  }
@@ -1932,25 +1932,25 @@ DataView.prototype.addRowExpansion = function(rid, count) {
1932
1932
  }
1933
1933
  }
1934
1934
 
1935
- var rowIndex = this._rids.indexOf(rid);
1935
+ let rowIndex = this._rids.indexOf(rid);
1936
1936
  if(rowIndex < 0) {
1937
1937
  // The given row id must be normal row. header and expansion row are not in the this._rids list
1938
1938
  return;
1939
1939
  }
1940
1940
 
1941
- var expCount = 0;
1941
+ let expCount = 0;
1942
1942
  if(this._expansionMap) {
1943
1943
  expCount = this._expansionMap[rid] || 0;
1944
1944
  } else {
1945
1945
  this._expansionMap = {};
1946
1946
  this._expansionChildren = {};
1947
1947
  }
1948
- var totalChild = expCount + count;
1948
+ let totalChild = expCount + count;
1949
1949
  this._expansionMap[rid] = totalChild;
1950
1950
 
1951
1951
  // create _expansionChildren mapping
1952
1952
 
1953
- for (var i = expCount; i < totalChild; i++) {
1953
+ for (let i = expCount; i < totalChild; i++) {
1954
1954
  this._expansionChildren[DataView._getDataViewExpansionId(rid, i)] = rid;
1955
1955
  }
1956
1956
 
@@ -1964,7 +1964,7 @@ DataView.prototype.addRowExpansion = function(rid, count) {
1964
1964
  }
1965
1965
 
1966
1966
  if(this._updateExpansionView()) {
1967
- var e = {}; // Slow
1967
+ let e = {}; // Slow
1968
1968
  e["rid"] = rid;
1969
1969
  e["type"] = "inserted";
1970
1970
  e["nextRid"] = this._rids[rowIndex + 1];
@@ -1980,13 +1980,13 @@ DataView.prototype.removeRowExpansion = function(rid) {
1980
1980
  if(!this._expansionMap) {
1981
1981
  return;
1982
1982
  }
1983
- var expCount = this._expansionMap[rid];
1983
+ let expCount = this._expansionMap[rid];
1984
1984
  if(!expCount) {
1985
1985
  return;
1986
1986
  }
1987
1987
 
1988
- var rids = new Array(expCount);
1989
- for (var i = 0; i < expCount; ++i) {
1988
+ let rids = new Array(expCount);
1989
+ for (let i = 0; i < expCount; ++i) {
1990
1990
  rids[i] = DataView._getDataViewExpansionId(rid, i);
1991
1991
  delete this._expansionChildren[rids[i]];
1992
1992
  }
@@ -2011,7 +2011,7 @@ DataView.prototype.removeRowExpansion = function(rid) {
2011
2011
  * @param {number=} count=1
2012
2012
  */
2013
2013
  DataView.prototype.toggleRowExpansion = function(rowRef, force, count) {
2014
- var rid = this._toRowId(rowRef);
2014
+ let rid = this._toRowId(rowRef);
2015
2015
 
2016
2016
  if(force != null) {
2017
2017
  force = force === true;
@@ -2047,17 +2047,17 @@ DataView.prototype.getRowsWithExpansion = function(from, to) {
2047
2047
  if(!this._expansionMap) {
2048
2048
  return [];
2049
2049
  }
2050
- var rids = this._expansionView;
2051
- var len = rids.length;
2050
+ let rids = this._expansionView;
2051
+ let len = rids.length;
2052
2052
  if(to == null) { to = len; }
2053
2053
  else if(to > len) { to = len; }
2054
2054
 
2055
2055
  if(!(from > 0)) { from = 0; } // Handle NaN, undefined, null, and other invalid value
2056
2056
 
2057
- var entryCount = this._expansionCount;
2058
- var out_ary = new Array(len);
2059
- for(var i = from; i < to; ++i) {
2060
- var rid = rids[i];
2057
+ let entryCount = this._expansionCount;
2058
+ let out_ary = new Array(len);
2059
+ for(let i = from; i < to; ++i) {
2060
+ let rid = rids[i];
2061
2061
  if(this._expansionMap[rid]) {
2062
2062
  out_ary[i] = rid;
2063
2063
  if(--entryCount <= 0) {
@@ -2074,10 +2074,10 @@ DataView.prototype.getRowsWithExpansion = function(from, to) {
2074
2074
  * @return {Array.<string>} object mapping of rowIndex and parentRowId
2075
2075
  */
2076
2076
  DataView.prototype.getExpansionParents = function (from, to) {
2077
- var parentMapping = [];
2077
+ let parentMapping = [];
2078
2078
  if (this._expansionMap) {
2079
- var rids = this._expansionView;
2080
- var len = rids.length;
2079
+ let rids = this._expansionView;
2080
+ let len = rids.length;
2081
2081
 
2082
2082
  // Handle NaN, undefined, null, and other invalid values
2083
2083
  if (to == null || to > len) {
@@ -2087,7 +2087,7 @@ DataView.prototype.getExpansionParents = function (from, to) {
2087
2087
  from = 0;
2088
2088
  }
2089
2089
 
2090
- for (var i = from; i < to; ++i) {
2090
+ for (let i = from; i < to; ++i) {
2091
2091
  parentMapping[i] = this._expansionChildren[rids[i]] || "";
2092
2092
  }
2093
2093
  }
@@ -2147,7 +2147,7 @@ DataView.prototype.getRowExpansionCount = function(rowId) {
2147
2147
  */
2148
2148
  DataView.prototype.getRowExpansionId = function(rid, idx) {
2149
2149
  if(this._expansionMap) {
2150
- var expCount = this._expansionMap[rid] || 0;
2150
+ let expCount = this._expansionMap[rid] || 0;
2151
2151
  if(!idx) {
2152
2152
  idx = 0;
2153
2153
  }
@@ -2165,7 +2165,7 @@ DataView.prototype.getRowExpansionId = function(rid, idx) {
2165
2165
  */
2166
2166
  DataView.prototype.getRowExpansionIndex = function(rid) {
2167
2167
  if(rid) {
2168
- var matches = rid.match(/_ex(\d+)$/);
2168
+ let matches = rid.match(/_ex(\d+)$/);
2169
2169
  if(matches) {
2170
2170
  return +matches[1]; // TODO: Check for NaN value
2171
2171
  }
@@ -2176,7 +2176,7 @@ DataView.prototype.getRowExpansionIndex = function(rid) {
2176
2176
  * @return {boolean}
2177
2177
  */
2178
2178
  DataView.prototype._updateExpansionView = function() {
2179
- var expMap = this._expansionMap;
2179
+ let expMap = this._expansionMap;
2180
2180
  if(expMap) {
2181
2181
  if(!this._expansionCount || this._expansionCount < 0) {
2182
2182
  this._expansionCount = 0;
@@ -2186,22 +2186,22 @@ DataView.prototype._updateExpansionView = function() {
2186
2186
  return true;
2187
2187
  }
2188
2188
 
2189
- var rids = this._pageView || this._groupView || this._rids;
2190
- var rowLen = rids.length;
2191
- var origLen = this._expansionView ? this._expansionView.length : 0;
2189
+ let rids = this._pageView || this._groupView || this._rids;
2190
+ let rowLen = rids.length;
2191
+ let origLen = this._expansionView ? this._expansionView.length : 0;
2192
2192
  if(!this._expansionView) {
2193
2193
  this._expansionView = new Array(rowLen);
2194
2194
  } else {
2195
2195
  this._expansionView.length = rowLen;
2196
2196
  }
2197
- var entryCount = this._expansionCount;
2198
- for(var i = 0, j = 0; i < rowLen; ++i) {
2199
- var rid = rids[i];
2197
+ let entryCount = this._expansionCount;
2198
+ for(let i = 0, j = 0; i < rowLen; ++i) {
2199
+ let rid = rids[i];
2200
2200
  this._expansionView[j++] = rid;
2201
2201
  if(entryCount) {
2202
- var expCount = expMap[rid] || 0;
2202
+ let expCount = expMap[rid] || 0;
2203
2203
  if(expCount) {
2204
- for(var k = 0; k < expCount; ++k) {
2204
+ for(let k = 0; k < expCount; ++k) {
2205
2205
  this._expansionView[j++] = DataView._getDataViewExpansionId(rid, k);
2206
2206
  }
2207
2207
  --entryCount;
@@ -2219,7 +2219,7 @@ DataView.prototype._updateExpansionView = function() {
2219
2219
  * @return {boolean}
2220
2220
  */
2221
2221
  DataView.prototype._transformView = function(firstChange) {
2222
- var dirty = this._updatePaginationView(firstChange);
2222
+ let dirty = this._updatePaginationView(firstChange);
2223
2223
  dirty |= this._updateExpansionView();
2224
2224
  return dirty ? true : false;
2225
2225
  };
@@ -2234,12 +2234,12 @@ DataView.prototype.searchAll = function(searchLogic, opt_out) {
2234
2234
  if(!opt_out) { opt_out = []; }
2235
2235
 
2236
2236
  this._rebuildRowIdsFromChildren();
2237
- var rids = this._getRids();
2238
- var len = rids.length;
2237
+ let rids = this._getRids();
2238
+ let len = rids.length;
2239
2239
 
2240
- for(var i = 0; i < len; ++i) {
2241
- var rid = rids[i];
2242
- var row = this._dt.getRowData(rid);
2240
+ for(let i = 0; i < len; ++i) {
2241
+ let rid = rids[i];
2242
+ let row = this._dt.getRowData(rid);
2243
2243
  if(row) {
2244
2244
  if(searchLogic(row)) {
2245
2245
  opt_out.push(rid);
@@ -2256,8 +2256,8 @@ DataView.prototype.searchAll = function(searchLogic, opt_out) {
2256
2256
  */
2257
2257
  DataView.prototype.searchPrev = function(rowRef, searchLogic) {
2258
2258
  this._rebuildRowIdsFromChildren();
2259
- var rids = this._getRids();
2260
- var rowIndex = -1;
2259
+ let rids = this._getRids();
2260
+ let rowIndex = -1;
2261
2261
  if(typeof rowRef === "number") {
2262
2262
  if(this._dt.getRowData(rids[rowRef])) {
2263
2263
  rowIndex = rowRef;
@@ -2266,8 +2266,8 @@ DataView.prototype.searchPrev = function(rowRef, searchLogic) {
2266
2266
  rowIndex = rids.indexOf(rowRef);
2267
2267
  }
2268
2268
 
2269
- var foundAt = -1;
2270
- var len = rids.length;
2269
+ let foundAt = -1;
2270
+ let len = rids.length;
2271
2271
  if(rowIndex > 0) {
2272
2272
  foundAt = this._searchRow(rids, searchLogic, rowIndex - 1, -1, -1);
2273
2273
  if(foundAt >= 0) {
@@ -2290,8 +2290,8 @@ DataView.prototype.searchPrev = function(rowRef, searchLogic) {
2290
2290
  */
2291
2291
  DataView.prototype.searchNext = function(rowRef, searchLogic) {
2292
2292
  this._rebuildRowIdsFromChildren();
2293
- var rids = this._getRids();
2294
- var rowIndex = -1;
2293
+ let rids = this._getRids();
2294
+ let rowIndex = -1;
2295
2295
  if(typeof rowRef === "number") {
2296
2296
  if(this._dt.getRowData(rids[rowRef])) {
2297
2297
  rowIndex = rowRef;
@@ -2303,8 +2303,8 @@ DataView.prototype.searchNext = function(rowRef, searchLogic) {
2303
2303
  return -1;
2304
2304
  }
2305
2305
 
2306
- var foundAt = -1;
2307
- var len = rids.length;
2306
+ let foundAt = -1;
2307
+ let len = rids.length;
2308
2308
  if(rowIndex < len - 1) {
2309
2309
  foundAt = this._searchRow(rids, searchLogic, rowIndex + 1, len, 1);
2310
2310
  if(foundAt >= 0) {
@@ -2330,8 +2330,8 @@ DataView.prototype.searchNext = function(rowRef, searchLogic) {
2330
2330
  */
2331
2331
  DataView.prototype._searchRow = function(rids, searchLogic, start, end, inc) {
2332
2332
  while(start !== end) {
2333
- var rid = rids[start];
2334
- var row = this._dt.getRowData(rid);
2333
+ let rid = rids[start];
2334
+ let row = this._dt.getRowData(rid);
2335
2335
  if(row) {
2336
2336
  if(searchLogic(row)) {
2337
2337
  return start;
@@ -2348,15 +2348,15 @@ DataView.prototype._searchRow = function(rids, searchLogic, start, end, inc) {
2348
2348
  * @return {boolean} True if there is any change
2349
2349
  */
2350
2350
  DataView.prototype.stall = function(opt_bool) {
2351
- var newBool = opt_bool !== false;
2352
- var curBool = this._shared.stalledRids ? true : false;
2351
+ let newBool = opt_bool !== false;
2352
+ let curBool = this._shared.stalledRids ? true : false;
2353
2353
  if(curBool === newBool) { return false; }
2354
2354
  if(newBool) {
2355
- var srs = {};
2355
+ let srs = {};
2356
2356
  this._shared.stalledRids = srs;
2357
- var rids = this._getRids();
2357
+ let rids = this._getRids();
2358
2358
 
2359
- for(var i = rids.length; --i >= 0;) {
2359
+ for(let i = rids.length; --i >= 0;) {
2360
2360
  srs[rids[i]] = 1;
2361
2361
  }
2362
2362
  } else {
@@ -2372,7 +2372,7 @@ DataView.prototype.stall = function(opt_bool) {
2372
2372
  */
2373
2373
  DataView.prototype.enableAutoGroupRemoval = function(opt_bool) {
2374
2374
  opt_bool = opt_bool !== false;
2375
- var autoGroupRemoval = this._shared.autoGroupRemoval ? true : false;
2375
+ let autoGroupRemoval = this._shared.autoGroupRemoval ? true : false;
2376
2376
  if(autoGroupRemoval !== opt_bool) {
2377
2377
  this._shared.autoGroupRemoval = opt_bool;
2378
2378
  this._triggerGroupRefreshing();
@@ -2387,7 +2387,7 @@ DataView.prototype.enableAutoGroupRemoval = function(opt_bool) {
2387
2387
  */
2388
2388
  DataView.prototype.enableAutoGroupHiding = function(opt_bool) {
2389
2389
  opt_bool = opt_bool !== false;
2390
- var autoGroupHiding = this._shared.autoGroupHiding ? true : false;
2390
+ let autoGroupHiding = this._shared.autoGroupHiding ? true : false;
2391
2391
  if(autoGroupHiding !== opt_bool) {
2392
2392
  this._shared.autoGroupHiding = opt_bool;
2393
2393
  this._triggerGroupRefreshing();
@@ -2411,7 +2411,7 @@ DataView.prototype.synchronizeRowOrder = function() {
2411
2411
  * @return {boolean} Return true if there is any change
2412
2412
  */
2413
2413
  DataView.prototype.setSegmentSeparator = function(rowRef, enabled) {
2414
- var rowId = "";
2414
+ let rowId = "";
2415
2415
  if(typeof rowRef === "number") {
2416
2416
  rowId = this.getRowId(rowRef);
2417
2417
  } else if(typeof rowRef === "string") {
@@ -2462,7 +2462,7 @@ DataView.prototype.getSegment = function(rid) {
2462
2462
  /**
2463
2463
  * @public
2464
2464
  * @param {string} rid Row id of a segment child
2465
- * @return {string} Returns null if a segment cannot be found
2465
+ * @return {Segment} Returns null if a segment cannot be found
2466
2466
  */
2467
2467
  DataView.prototype.getSegmentParent = function(rid) {
2468
2468
  return this._dt.getSegmentParent(rid);
@@ -2490,9 +2490,9 @@ DataView.prototype.getSegmentParentRowId = function(rid) {
2490
2490
  */
2491
2491
  DataView.prototype.collapseSegment = function(rowRef, collapsed) {
2492
2492
  collapsed = collapsed !== false;
2493
- var segments = this._dt._getSegmentSeparators();
2493
+ let segments = this._dt._getSegmentSeparators();
2494
2494
  if(segments) {
2495
- var segmentRid = this._toRowId(rowRef);
2495
+ let segmentRid = this._toRowId(rowRef);
2496
2496
 
2497
2497
  if(segments.collapseSegment(segmentRid, collapsed)) {
2498
2498
  this._refreshAndNotify(); // dispatch global change event
@@ -2515,7 +2515,7 @@ DataView.prototype.expandSegment = function(rowRef, expanded) {
2515
2515
  * @return {boolean} Return true if there is any change
2516
2516
  */
2517
2517
  DataView.prototype.expandAllSegments = function() {
2518
- var segments = this._dt._getSegmentSeparators();
2518
+ let segments = this._dt._getSegmentSeparators();
2519
2519
  if(segments) {
2520
2520
  if(segments.expandAllSegments()) {
2521
2521
  this._refreshAndNotify();
@@ -2534,7 +2534,7 @@ DataView.prototype.setSegmentCollapsingLogic = function() {};
2534
2534
  * @return {boolean} Return true if only the given row is a collapsed segment separator
2535
2535
  */
2536
2536
  DataView.prototype.isSegmentCollapsed = function(rowRef) {
2537
- var segments = this._dt._getSegmentSeparators();
2537
+ let segments = this._dt._getSegmentSeparators();
2538
2538
  if(segments) {
2539
2539
  return segments.isCollapsedSegment(this._toRowId(rowRef));
2540
2540
  }
@@ -2561,8 +2561,8 @@ DataView.prototype.fillSegments = function() {
2561
2561
  */
2562
2562
  DataView.prototype.addSegmentChild = function(segmentRef, rowRef, dataId) {
2563
2563
  if(this._dt._getSegmentSeparators()) {
2564
- var segmentId = this._toRowId(segmentRef);
2565
- var rowId = this._toRowId(rowRef);
2564
+ let segmentId = this._toRowId(segmentRef);
2565
+ let rowId = this._toRowId(rowRef);
2566
2566
  return this._dt.addSegmentChild(segmentId, rowId, dataId);
2567
2567
  }
2568
2568
  return false;
@@ -2575,8 +2575,8 @@ DataView.prototype.addSegmentChild = function(segmentRef, rowRef, dataId) {
2575
2575
  */
2576
2576
  DataView.prototype.addSegmentChildren = function(segmentRef, rowRefs, dataIds) {
2577
2577
  if(this._dt._getSegmentSeparators()) {
2578
- var segmentId = this._toRowId(segmentRef);
2579
- var rowIds = this._toRowIds(rowRefs);
2578
+ let segmentId = this._toRowId(segmentRef);
2579
+ let rowIds = this._toRowIds(rowRefs);
2580
2580
  return this._dt.addSegmentChildren(segmentId, rowIds, dataIds);
2581
2581
  }
2582
2582
  return false;
@@ -2588,8 +2588,8 @@ DataView.prototype.addSegmentChildren = function(segmentRef, rowRefs, dataIds) {
2588
2588
  */
2589
2589
  DataView.prototype.removeSegmentChild = function(segmentRef, rowRef) {
2590
2590
  if(this._dt._getSegmentSeparators()) {
2591
- var segmentId = this._toRowId(segmentRef);
2592
- var rowId = this._toRowId(rowRef);
2591
+ let segmentId = this._toRowId(segmentRef);
2592
+ let rowId = this._toRowId(rowRef);
2593
2593
  return this._dt.removeSegmentChild(segmentId, rowId); // TODO: Handle the case where a child is remove from its collapsed parent. Child should be made visible
2594
2594
  }
2595
2595
  return false;
@@ -2601,8 +2601,8 @@ DataView.prototype.removeSegmentChild = function(segmentRef, rowRef) {
2601
2601
  */
2602
2602
  DataView.prototype.removeSegmentChildren = function(segmentRef, rowRefs) {
2603
2603
  if(this._dt._getSegmentSeparators()) {
2604
- var segmentId = this._toRowId(segmentRef);
2605
- var rowIds = this._toRowIds(rowRefs);
2604
+ let segmentId = this._toRowId(segmentRef);
2605
+ let rowIds = this._toRowIds(rowRefs);
2606
2606
  return this._dt.removeSegmentChildren(segmentId, rowIds); // TODO: Handle the case where a child is remove from its collapsed parent. Child should be made visible
2607
2607
  }
2608
2608
  return false;
@@ -2727,15 +2727,15 @@ DataView.prototype.wrapView = function (wrapSize) {
2727
2727
  */
2728
2728
  DataView.prototype._updateWrapCount = function () {
2729
2729
  this._wrapTimerId = 0;
2730
- var wrapSize = this._wrapSize;
2730
+ let wrapSize = this._wrapSize;
2731
2731
 
2732
- var i;
2733
- var views = this._wrappedViews;
2734
- var viewCount = views ? views.length : 0;
2735
- var targetCount = 0;
2732
+ let i;
2733
+ let views = this._wrappedViews;
2734
+ let viewCount = views ? views.length : 0;
2735
+ let targetCount = 0;
2736
2736
  if(wrapSize) {
2737
- var rids = this.getVisibleRowIds(true);
2738
- var rowCount = rids.length;
2737
+ let rids = this.getVisibleRowIds(true);
2738
+ let rowCount = rids.length;
2739
2739
  targetCount = Math.ceil(rowCount / wrapSize);
2740
2740
  if(viewCount < targetCount) {
2741
2741
  if(!views) {
@@ -2777,7 +2777,7 @@ DataView.prototype._updateWrapCount = function () {
2777
2777
  */
2778
2778
  DataView.prototype.dump = function(opt_options) {
2779
2779
  this._rebuildRowIdsFromChildren();
2780
- var rids = this._getRids();
2780
+ let rids = this._getRids();
2781
2781
 
2782
2782
  return DataCache.constructTable(this.getMultipleRowData(rids), opt_options, rids);
2783
2783
  };
@@ -2795,7 +2795,7 @@ DataView.prototype.dump = function(opt_options) {
2795
2795
  //}
2796
2796
  dv.log({"rowCount": 10}); // Showing 10 records
2797
2797
  dv.log({"getter": function(rowData, colName){
2798
- var complexData = rowData[colName];
2798
+ let complexData = rowData[colName];
2799
2799
  return complextData.someProperty;
2800
2800
  }});
2801
2801
  */
@@ -2832,13 +2832,13 @@ DataView.prototype._updateRowIds = function(opt_rowIds) {
2832
2832
  this._dispatch("beforeFiltering", {});
2833
2833
 
2834
2834
  this._excludedRids = {};
2835
- var exclusionCount = 0;
2835
+ let exclusionCount = 0;
2836
2836
  exclusionCount += DataView._copyObjectKeys(this._excludedRids, this._hiddenRids);
2837
2837
 
2838
2838
  // Segment separators should not be filtered out (hidden)
2839
- var segments = this._dt._getSegmentSeparators();
2840
- var segmentIds = segments ? segments.getSegments() : null;
2841
- var userRemoval = this._getRemovalMap(
2839
+ let segments = this._dt._getSegmentSeparators();
2840
+ let segmentIds = segments ? segments.getSegments() : null;
2841
+ let userRemoval = this._getRemovalMap(
2842
2842
  this._excludedRids,
2843
2843
  this._userFilter,
2844
2844
  this._filteringOut,
@@ -2867,8 +2867,8 @@ DataView.prototype._updateRowIds = function(opt_rowIds) {
2867
2867
  if(this._groupMembers) { // Has grouping
2868
2868
  this._populateGroups(); // View will be properly re-populate inside _populateGroups()
2869
2869
  } else { // No grouping
2870
- var pageIndexChanged = this._updatePageCount();
2871
- var sorted = this._sort();
2870
+ let pageIndexChanged = this._updatePageCount();
2871
+ let sorted = this._sort();
2872
2872
  if(!sorted && !pageIndexChanged) {
2873
2873
  this._transformView();
2874
2874
  }
@@ -2880,19 +2880,19 @@ DataView.prototype._updateRowIds = function(opt_rowIds) {
2880
2880
  DataView.prototype._onDataChanged = function (e) {
2881
2881
  if (this._conflator.conflate(e)) return;
2882
2882
 
2883
- var events = this._conflator.popAllData() || [e];
2883
+ let events = this._conflator.popAllData() || [e];
2884
2884
 
2885
2885
  // process all events
2886
- var eventsCount = events.length;
2886
+ let eventsCount = events.length;
2887
2887
  if (eventsCount === 1) {
2888
- var event = events[0];
2888
+ let event = events[0];
2889
2889
  if (event["globalChange"]) {
2890
2890
  this._updateRowIds(); // Reset all row ids and perform sorting
2891
2891
  this._dispatchDataChange(event);
2892
2892
  return;
2893
2893
  }
2894
2894
 
2895
- var type = event["type"];
2895
+ let type = event["type"];
2896
2896
  if (type === "inserted") {
2897
2897
  this._onRowInserted(event);
2898
2898
  } else if (type === "removed") {
@@ -2903,8 +2903,8 @@ DataView.prototype._onDataChanged = function (e) {
2903
2903
  } else {
2904
2904
  // multi event should occur globalchange
2905
2905
  this._updateRowIds(); // Reset all row ids and perform sorting
2906
- var positionChangeOnly = true;
2907
- for (var i = 0; i < eventsCount; i++) {
2906
+ let positionChangeOnly = true;
2907
+ for (let i = 0; i < eventsCount; i++) {
2908
2908
  if (!events[i].positionChangeOnly) {
2909
2909
  positionChangeOnly = false;
2910
2910
  break;
@@ -2930,21 +2930,21 @@ DataView.prototype._onRowInserted = function(e) { // onInsert
2930
2930
  return 0;
2931
2931
  }
2932
2932
 
2933
- var ret = 0;
2933
+ let ret = 0;
2934
2934
  if(this._groupMembers) {
2935
- var gids = this._resolveGroupId(e["rowData"]);
2936
- var groupLen = gids.length;
2935
+ let gids = this._resolveGroupId(e["rowData"]);
2936
+ let groupLen = gids.length;
2937
2937
  if(groupLen > 1) {
2938
2938
  // activate multi-group row mode
2939
2939
  this._shared.multiGroupRow = true;
2940
2940
  }
2941
- var gid;
2942
- for(var i = 0; i < groupLen; i++) {
2941
+ let gid;
2942
+ for(let i = 0; i < groupLen; i++) {
2943
2943
  gid = gids[i];
2944
2944
  if(this._groupMembers[gid]) { // Insert to existing member
2945
2945
  ret = this._groupMembers[gid]._onRowInserted(e);
2946
2946
  } else {
2947
- var member = this._addGroup(gid);
2947
+ let member = this._addGroup(gid);
2948
2948
  if(member) {
2949
2949
  e["globalChange"] = true;
2950
2950
  member._onRowInserted(e);
@@ -2961,23 +2961,23 @@ DataView.prototype._onRowInserted = function(e) { // onInsert
2961
2961
  return ret; // the view is hidden and there is no need to be updated
2962
2962
  }
2963
2963
 
2964
- var rid = e["rid"];
2965
- var rowData = e["rowData"];
2964
+ let rid = e["rid"];
2965
+ let rowData = e["rowData"];
2966
2966
 
2967
2967
  if(!this._isAllowedInGroup(rid, rowData)) {
2968
2968
  return ret;
2969
2969
  }
2970
2970
 
2971
- var nextRid = /** @type{string} */(e["nextRid"]);
2972
- var rowIndex;
2971
+ let nextRid = /** @type{string} */(e["nextRid"]);
2972
+ let rowIndex;
2973
2973
  if(this.isSorting() && !e["segmentChanged"]) {
2974
2974
  rowIndex = this._addDataRow(rid);
2975
2975
  } else {
2976
2976
  rowIndex = this._addDataRow(rid, nextRid, e["fallback"]);
2977
2977
  }
2978
2978
 
2979
- var pageIndexChanged = this._updatePageCount();
2980
- var sorted = this._sort();
2979
+ let pageIndexChanged = this._updatePageCount();
2980
+ let sorted = this._sort();
2981
2981
  if(sorted) {
2982
2982
  e["globalChange"] = true; // Notify parent
2983
2983
  }
@@ -3017,12 +3017,12 @@ DataView.prototype._onRowRemoved = function(e) { // onRemove
3017
3017
  return 1; // may not be a correct number
3018
3018
  }
3019
3019
 
3020
- var removeCount = 0;
3021
- var rids = e["rids"];
3022
- var i;
3020
+ let removeCount = 0;
3021
+ let rids = e["rids"];
3022
+ let i;
3023
3023
  if(this._groupMembers) {
3024
- var rowData = e["rowData"];
3025
- var groupIds, groupId;
3024
+ let rowData = e["rowData"];
3025
+ let groupIds, groupId;
3026
3026
  if(!rids && rowData) {
3027
3027
  groupIds = this._resolveGroupId(rowData);
3028
3028
  for(i = 0; i < groupIds.length; i++) {
@@ -3038,7 +3038,7 @@ DataView.prototype._onRowRemoved = function(e) { // onRemove
3038
3038
  this._groupViewDirty = true;
3039
3039
  }
3040
3040
  } else {
3041
- var len = this._groupList.length;
3041
+ let len = this._groupList.length;
3042
3042
  for(i = 0; i < len; ++i) {
3043
3043
  groupId = this._groupList[i];
3044
3044
  removeCount += this._groupMembers[groupId]._onRowRemoved(e);
@@ -3046,9 +3046,9 @@ DataView.prototype._onRowRemoved = function(e) { // onRemove
3046
3046
  }
3047
3047
  }
3048
3048
 
3049
- var firstModifiedIndex = NaN;
3050
- var removedRids = null;
3051
- var rid, at;
3049
+ let firstModifiedIndex = NaN;
3050
+ let removedRids = null;
3051
+ let rid, at;
3052
3052
 
3053
3053
  // TODO: Change removal mechanism to object map based logic to speed up the process
3054
3054
  removeCount = 0;
@@ -3076,7 +3076,7 @@ DataView.prototype._onRowRemoved = function(e) { // onRemove
3076
3076
  }
3077
3077
  if(removeCount > 0) {
3078
3078
  // No sorting is required, since no order should be changed during the removal
3079
- var pageIndexChanged = this._updatePageCount();
3079
+ let pageIndexChanged = this._updatePageCount();
3080
3080
  if(pageIndexChanged || this._transformView(firstModifiedIndex)) {
3081
3081
  this._dispatchGlobalChange();
3082
3082
  } else {
@@ -3098,9 +3098,9 @@ DataView.prototype._onRowRemoved = function(e) { // onRemove
3098
3098
  * @return {number}
3099
3099
  */
3100
3100
  DataView.prototype._onRowUpdated = function(e) { // onUpdate
3101
- var rid = e["rid"];
3102
- var rowData = e["rowData"];
3103
- var i, gid;
3101
+ let rid = e["rid"];
3102
+ let rowData = e["rowData"];
3103
+ let i, gid;
3104
3104
  if(this.isRowFiltered(rid, rowData)) { // The row is qualified but it is filtered out
3105
3105
  if(this._onRowRemoved(e)) {
3106
3106
  return 1;
@@ -3109,8 +3109,8 @@ DataView.prototype._onRowUpdated = function(e) { // onUpdate
3109
3109
  }
3110
3110
 
3111
3111
  if(this._groupMembers) {
3112
- var flags = [];
3113
- var len = this._groupList.length;
3112
+ let flags = [];
3113
+ let len = this._groupList.length;
3114
3114
  for(i = 0; i < len; ++i) {
3115
3115
  gid = this._groupList[i];
3116
3116
  flags[this._groupMembers[gid]._onRowUpdated(e)] = true;
@@ -3121,7 +3121,7 @@ DataView.prototype._onRowUpdated = function(e) { // onUpdate
3121
3121
  }
3122
3122
 
3123
3123
  // conclude flag
3124
- var processingFlag = 0;
3124
+ let processingFlag = 0;
3125
3125
  if(flags[2]) {
3126
3126
  processingFlag = 2;
3127
3127
  } else if(flags[1]) {
@@ -3150,7 +3150,7 @@ DataView.prototype._onRowUpdated = function(e) { // onUpdate
3150
3150
 
3151
3151
  this._groupViewDirty = true; // Adding row to sub-group both single and multiple-group require parent group to rebuild rows
3152
3152
 
3153
- var groupLen = this._resolveGroupId(rowData).length;
3153
+ let groupLen = this._resolveGroupId(rowData).length;
3154
3154
  if(groupLen > 1) {
3155
3155
  // activate multi-group row mode
3156
3156
  this._shared.multiGroupRow = true;
@@ -3158,17 +3158,17 @@ DataView.prototype._onRowUpdated = function(e) { // onUpdate
3158
3158
  }
3159
3159
  }
3160
3160
  } else { // This is the root node
3161
- var noNewGroup = (flags[1] && flags[2]) || flags[4];
3161
+ let noNewGroup = (flags[1] && flags[2]) || flags[4];
3162
3162
  if(this._shared.multiGroupRow || !noNewGroup) {
3163
3163
  // 0 - updated data from non-existing group to new group
3164
3164
  // 1 - updated data from existing group to new group
3165
3165
  // 2 - updated data from a non-existing group to existing group
3166
3166
  // 3 - updated data from a existing group to another existing group
3167
3167
  // 4 - updated data with in a single group and no group member changed
3168
- var gids = this._resolveGroupId(rowData);
3168
+ let gids = this._resolveGroupId(rowData);
3169
3169
  for(i = 0; i < gids.length; i++) {
3170
3170
  gid = gids[i];
3171
- var member = this._addGroup(gid); // Add header row
3171
+ let member = this._addGroup(gid); // Add header row
3172
3172
  if(member) {
3173
3173
  member._onRowInserted(e);
3174
3174
  processingFlag = 1;
@@ -3196,7 +3196,7 @@ DataView.prototype._onRowUpdated = function(e) { // onUpdate
3196
3196
 
3197
3197
  // recursive task for leaf group
3198
3198
  if(this._isAllowedInGroup(rid, rowData)) {
3199
- var newRowIndex = this._rids.indexOf(rid);
3199
+ let newRowIndex = this._rids.indexOf(rid);
3200
3200
  if(newRowIndex < 0) { // The row is qualified to be in the group, but not in the current view, so insert the row
3201
3201
  this._onRowInserted(e);
3202
3202
  return 2;
@@ -3223,8 +3223,8 @@ DataView.prototype._onRowUpdated = function(e) { // onUpdate
3223
3223
  */
3224
3224
  DataView.prototype._onGroupAdded = function(e) {
3225
3225
  if(!this._hidden) {
3226
- var newGroup = /** @type{DataView} */(e["newGroup"]);
3227
- var rid = newGroup.getGroupRowId();
3226
+ let newGroup = /** @type{DataView} */(e["newGroup"]);
3227
+ let rid = newGroup.getGroupRowId();
3228
3228
  this._groupView.push(rid); // Add header row
3229
3229
  this._groupViewDirty = true;
3230
3230
  this._dispatch("groupAdded", e);
@@ -3278,7 +3278,7 @@ DataView.prototype._onRefreshTimeout = function() {
3278
3278
  * @return {number}
3279
3279
  */
3280
3280
  DataView.prototype._addDataRow = function(rid, opt_nextRid, opt_fallback) {
3281
- var rowIndex = this._getRowIndex(this._rids, opt_nextRid, opt_fallback);
3281
+ let rowIndex = this._getRowIndex(this._rids, opt_nextRid, opt_fallback);
3282
3282
  this._insertItems(this._rids, rowIndex, rid);
3283
3283
  if(this._groupView) {
3284
3284
  if(this._groupMembers) {
@@ -3320,7 +3320,7 @@ DataView.prototype._getRowIndex = function(rids, opt_nextRid, opt_fallback) {
3320
3320
  return -1;
3321
3321
  }
3322
3322
 
3323
- var rowIndex = this._rids.indexOf(opt_nextRid);
3323
+ let rowIndex = this._rids.indexOf(opt_nextRid);
3324
3324
  if(rowIndex >= 0) {
3325
3325
  return rowIndex;
3326
3326
  }
@@ -3336,7 +3336,7 @@ DataView.prototype._getRowIndex = function(rids, opt_nextRid, opt_fallback) {
3336
3336
  * @returns {number}
3337
3337
  */
3338
3338
  DataView.prototype._removeDataRow = function(rid) {
3339
- var at = DataView._removeArrayItem(this._rids, rid);
3339
+ let at = DataView._removeArrayItem(this._rids, rid);
3340
3340
  if(this._groupView && at >= 0) {
3341
3341
  at = DataView._removeArrayItem(this._groupView, rid);
3342
3342
  }
@@ -3348,7 +3348,7 @@ DataView.prototype._removeDataRow = function(rid) {
3348
3348
  * @return {number} Index of the removed item
3349
3349
  */
3350
3350
  DataView._removeArrayItem = function(ary, item) {
3351
- var at = ary.indexOf(item);
3351
+ let at = ary.indexOf(item);
3352
3352
  if(at >= 0) {
3353
3353
  ary.splice(at, 1);
3354
3354
  }
@@ -3361,9 +3361,9 @@ DataView._removeArrayItem = function(ary, item) {
3361
3361
  * @return {number} First item index that is being removed. NaN if no item is removed
3362
3362
  */
3363
3363
  DataView._removeArrayItems = function(ary, items) {
3364
- var f = NaN;
3365
- var c = 0;
3366
- for(var i = ary.length; --i >= 0;) {
3364
+ let f = NaN;
3365
+ let c = 0;
3366
+ for(let i = ary.length; --i >= 0;) {
3367
3367
  if (items[ary[i]]) {
3368
3368
  ++c;
3369
3369
  } else if(c) {
@@ -3385,9 +3385,9 @@ DataView._removeArrayItems = function(ary, items) {
3385
3385
  */
3386
3386
  DataView._copyObjectKeys = function(baseObj, masterObj) {
3387
3387
  if(masterObj) {
3388
- var count = 0;
3388
+ let count = 0;
3389
3389
 
3390
- for(var key in masterObj) {
3390
+ for(let key in masterObj) {
3391
3391
  baseObj[key] = 1;
3392
3392
  ++count; // WARNING: duplicated key can be counted more than once
3393
3393
  }
@@ -3404,8 +3404,8 @@ DataView._copyObjectKeys = function(baseObj, masterObj) {
3404
3404
  DataView.prototype._isAllowedInGroup = function(rid, rowData) {
3405
3405
  // Check if it the row is belong to this group branch
3406
3406
  if(this._groupLevel > 0) {
3407
- var dv = this;
3408
- for(var i = this._groupLevel; --i >= 0;) {
3407
+ let dv = this;
3408
+ for(let i = this._groupLevel; --i >= 0;) {
3409
3409
  if(!dv._groupFilterLogic(rid, rowData)) {
3410
3410
  return false;
3411
3411
  }
@@ -3455,10 +3455,10 @@ DataView.prototype._sort = function() {
3455
3455
  }
3456
3456
 
3457
3457
  if(this._dt._getSegmentSeparators() || this.isSorting()) {
3458
- var rids = this._rids;
3459
- var dataRows = this._dt.getMultipleRowData(rids);
3460
- var segmentValues = this._dt.getSegmentValues(rids, true); // WARNING: This does not work well for hidden/filtered rows
3461
- var change = DataTable._performMultiLevelSorting(dataRows, this._sortingDefs, segmentValues);
3458
+ let rids = this._rids;
3459
+ let dataRows = this._dt.getMultipleRowData(rids);
3460
+ let segmentValues = this._dt.getSegmentValues(rids, true); // WARNING: This does not work well for hidden/filtered rows
3461
+ let change = DataTable._performMultiLevelSorting(dataRows, this._sortingDefs, segmentValues);
3462
3462
 
3463
3463
  if(change) {
3464
3464
  this._rids = DataTable._reorderItems(rids, change); // Group view should be changed after this
@@ -3489,11 +3489,11 @@ DataView.prototype._getRemovalMap = function(removalMap, checker, filteringOut,
3489
3489
  return 0;
3490
3490
  }
3491
3491
 
3492
- var rids = this._rids; // Make local variable to speed up the process
3493
- var dt = this._dt;
3494
- var count = 0;
3495
- var rid, i, values;
3496
- var len = rids.length;
3492
+ let rids = this._rids; // Make local variable to speed up the process
3493
+ let dt = this._dt;
3494
+ let count = 0;
3495
+ let rid, i, values;
3496
+ let len = rids.length;
3497
3497
 
3498
3498
  if(exceptions) {
3499
3499
  for(i = len; --i >= 0;) {
@@ -3534,14 +3534,14 @@ DataView.prototype._getRemovalMap = function(removalMap, checker, filteringOut,
3534
3534
  * @returns {number} Number of rids that would be filtered out
3535
3535
  */
3536
3536
  DataView.prototype._getEmptySegments = function(removalMap, segmentRids) {
3537
- var segments = this._dt._getSegmentSeparators();
3538
- var count = 0;
3539
- for(var segmentId in segmentRids) {
3540
- var segment = segments.getSegment(segmentId);
3537
+ let segments = this._dt._getSegmentSeparators();
3538
+ let count = 0;
3539
+ for(let segmentId in segmentRids) {
3540
+ let segment = segments.getSegment(segmentId);
3541
3541
  if(segment) {
3542
- var chdr = segment.getChildren();
3543
- var emptySegment = true;
3544
- for(var childId in chdr) {
3542
+ let chdr = segment.getChildren();
3543
+ let emptySegment = true;
3544
+ for(let childId in chdr) {
3545
3545
  if(!removalMap[childId]) {
3546
3546
  emptySegment = false;
3547
3547
  break;
@@ -3603,23 +3603,23 @@ DataView.prototype._setPage = function (pageIndex) {
3603
3603
  * @return {boolean} Return true if there is any change, otherwise false
3604
3604
  */
3605
3605
  DataView.prototype._updatePaginationView = function(firstChange) {
3606
- var dirty = false;
3606
+ let dirty = false;
3607
3607
  if(this._pageView) {
3608
3608
  if(!firstChange) { firstChange = 0; }
3609
3609
 
3610
- var pageStart = this._pageSize * (this._pageIndex - 1);
3610
+ let pageStart = this._pageSize * (this._pageIndex - 1);
3611
3611
 
3612
- var pageEnd = this._pageSize + pageStart;
3612
+ let pageEnd = this._pageSize + pageStart;
3613
3613
  if(firstChange < pageEnd) { // The change happens before current page
3614
- var rids = this._groupView || this._rids;
3614
+ let rids = this._groupView || this._rids;
3615
3615
  if (pageEnd > rids.length) { // Shrink view if the last page is not a full page
3616
3616
  pageEnd = rids.length;
3617
3617
  }
3618
3618
 
3619
3619
  // Populate the page
3620
- var ridsLen = pageEnd - pageStart;
3620
+ let ridsLen = pageEnd - pageStart;
3621
3621
  this._pageView.length = (ridsLen >= 0) ? ridsLen : 0;
3622
- for(var i = pageStart; i < pageEnd; ++i) {
3622
+ for(let i = pageStart; i < pageEnd; ++i) {
3623
3623
  this._pageView[i - pageStart] = rids[i];
3624
3624
  }
3625
3625
  dirty = true;
@@ -3635,10 +3635,10 @@ DataView.prototype._updatePaginationView = function(firstChange) {
3635
3635
  * @fires DataView#pageIndexChanged
3636
3636
  */
3637
3637
  DataView.prototype._updatePageCount = function () {
3638
- var lastPageIndex = 1;
3638
+ let lastPageIndex = 1;
3639
3639
  if (this._pageSize > 0) {
3640
- var rows = this._groupView || this._rids;
3641
- var rowCount = (rows.length > 0) ? rows.length : 0;
3640
+ let rows = this._groupView || this._rids;
3641
+ let rowCount = (rows.length > 0) ? rows.length : 0;
3642
3642
  lastPageIndex = Math.ceil(rowCount / this._pageSize);
3643
3643
  }
3644
3644
  if(this._lastPageIndex !== lastPageIndex) {
@@ -3665,7 +3665,7 @@ DataView.prototype._dispatchRowRemoved = function(rid) {
3665
3665
  */
3666
3666
  DataView.prototype._dispatchMultiRowRemoved = function(rids) {
3667
3667
  if(rids) {
3668
- var count = rids.length;
3668
+ let count = rids.length;
3669
3669
  if(count === 1) {
3670
3670
  this._dispatchRowRemoved(rids[0]);
3671
3671
  } else if(count > 1) {
@@ -3704,11 +3704,11 @@ DataView.prototype._setParent = function (source) {
3704
3704
  if(this._parent && this._dt !== this._parent) { // Copy shared member from parent data view
3705
3705
  this._shared = this._parent._shared;
3706
3706
 
3707
- var cids = this._parent._columnStats;
3707
+ let cids = this._parent._columnStats;
3708
3708
  if(cids) {
3709
- for(var cid in cids) {
3710
- var cs = this.enableColumnStats(cid);
3711
- var pcs = this._parent.getColumnStats(cid);
3709
+ for(let cid in cids) {
3710
+ let cs = this.enableColumnStats(cid);
3711
+ let pcs = this._parent.getColumnStats(cid);
3712
3712
  if(cs && pcs) {
3713
3713
  cs.setColumnDataGetter(pcs.getColumnDataGetter());
3714
3714
  }
@@ -3720,18 +3720,18 @@ DataView.prototype._setParent = function (source) {
3720
3720
  /** @private
3721
3721
  */
3722
3722
  DataView.prototype._populateGroups = function () {
3723
- var initialRids = this._rids;
3724
- var i, len, member;
3723
+ let initialRids = this._rids;
3724
+ let i, len, member;
3725
3725
  this._rids = [];
3726
3726
 
3727
3727
  // Collect members of each group from the available data
3728
- var groupId, groupIds, groupLen;
3729
- var ridMap = {};
3730
- var groupList = [];
3728
+ let groupId, groupIds, groupLen;
3729
+ let ridMap = {};
3730
+ let groupList = [];
3731
3731
  len = initialRids.length;
3732
3732
  for(i = 0; i < len; ++i) {
3733
- var rid = initialRids[i];
3734
- var rowData = this._dt.getRowData(rid);
3733
+ let rid = initialRids[i];
3734
+ let rowData = this._dt.getRowData(rid);
3735
3735
  if(rowData) {
3736
3736
  groupIds = this._resolveGroupId(rowData);
3737
3737
  groupLen = groupIds.length;
@@ -3739,9 +3739,9 @@ DataView.prototype._populateGroups = function () {
3739
3739
  // activate multi-group row mode
3740
3740
  this._shared.multiGroupRow = true;
3741
3741
  }
3742
- for(var j = 0; j < groupLen; j++) {
3742
+ for(let j = 0; j < groupLen; j++) {
3743
3743
  groupId = groupIds[j];
3744
- var groupedRids = ridMap[groupId];
3744
+ let groupedRids = ridMap[groupId];
3745
3745
  if(groupedRids) {
3746
3746
  groupedRids.push(rid);
3747
3747
  } else {
@@ -3767,7 +3767,7 @@ DataView.prototype._populateGroups = function () {
3767
3767
  }
3768
3768
  }
3769
3769
  // Remove any non existing predefined groups
3770
- var preDefGroups = null;
3770
+ let preDefGroups = null;
3771
3771
  if(this._preDefGroups && this._groupLevel < this._preDefGroups.length) {
3772
3772
  preDefGroups = this._preDefGroups[this._groupLevel];
3773
3773
  }
@@ -3796,7 +3796,7 @@ DataView.prototype._populateGroups = function () {
3796
3796
  if(preDefGroups) {
3797
3797
  len = preDefGroups.length;
3798
3798
  for(i = 0; i < len; ++i) {
3799
- var pdg = this._addGroup(preDefGroups[i]);
3799
+ let pdg = this._addGroup(preDefGroups[i]);
3800
3800
  if(pdg) {
3801
3801
  pdg._predefinedGroup = true;
3802
3802
  }
@@ -3825,7 +3825,7 @@ DataView.prototype._populateGroups = function () {
3825
3825
  * @param {string} groupId
3826
3826
  */
3827
3827
  DataView.prototype._removeGroupMember = function (groupIndex, groupId) {
3828
- var member = this._groupMembers[groupId];
3828
+ let member = this._groupMembers[groupId];
3829
3829
  if(member) {
3830
3830
  this._groupList.splice(groupIndex, 1);
3831
3831
  delete this._groupMembers[groupId];
@@ -3839,7 +3839,7 @@ DataView.prototype._removeGroupMember = function (groupIndex, groupId) {
3839
3839
  * @return {Array.<string>}
3840
3840
  */
3841
3841
  DataView.prototype._defaultGroupCriteria = function(cid, values) {
3842
- var val = values[cid];
3842
+ let val = values[cid];
3843
3843
  if(Array.isArray(val)) {
3844
3844
  return val.map(function(data) { // TODO: this is very slow
3845
3845
  return data + "";
@@ -3854,7 +3854,7 @@ DataView.prototype._defaultGroupCriteria = function(cid, values) {
3854
3854
  * @return {boolean}
3855
3855
  */
3856
3856
  DataView.prototype._groupFilterLogic = function(rid, values) {
3857
- var gids = this._groupCriteria[this._groupLevel - 1](values); // TODO: this is very slow
3857
+ let gids = this._groupCriteria[this._groupLevel - 1](values); // TODO: this is very slow
3858
3858
  return gids.indexOf(this._groupId) >= 0;
3859
3859
  };
3860
3860
 
@@ -3864,8 +3864,8 @@ DataView.prototype._groupFilterLogic = function(rid, values) {
3864
3864
  * @return {number}
3865
3865
  */
3866
3866
  DataView.prototype._internalGroupSortingLogic = function(strA, strB) {
3867
- var dvA = this._groupMembers[strA];
3868
- var dvB = this._groupMembers[strB];
3867
+ let dvA = this._groupMembers[strA];
3868
+ let dvB = this._groupMembers[strB];
3869
3869
 
3870
3870
  return this._groupSortingLogic(strA, strB, dvA, dvB);
3871
3871
  };
@@ -3875,18 +3875,18 @@ DataView.prototype._internalGroupSortingLogic = function(strA, strB) {
3875
3875
  * @return {DataView} Newly added group member. If it already exists, this method returns null.
3876
3876
  */
3877
3877
  DataView.prototype._addGroup = function (value) {
3878
- var groupId = value + "";
3878
+ let groupId = value + "";
3879
3879
  if(!groupId) {
3880
3880
  // window.console.log("WARNING: Group Id cannot be an empty string");
3881
3881
  return null;
3882
3882
  }
3883
- var member = this._groupMembers[groupId];
3883
+ let member = this._groupMembers[groupId];
3884
3884
  if(member) {
3885
3885
  return null;
3886
3886
  }
3887
- var parentGrpRowId = this._groupRowId || "_grp";
3888
- var newGrpRowId = parentGrpRowId + "_" + groupId;
3889
- var arg;
3887
+ let parentGrpRowId = this._groupRowId || "_grp";
3888
+ let newGrpRowId = parentGrpRowId + "_" + groupId;
3889
+ let arg;
3890
3890
  if(this._hasListener("beforeGroupAdded")) {
3891
3891
  arg = {
3892
3892
  "dataView": this, // parent
@@ -3901,7 +3901,7 @@ DataView.prototype._addGroup = function (value) {
3901
3901
  }
3902
3902
  }
3903
3903
  member = new DataView();
3904
- var collapsed = this._shared.defaultCollapse;
3904
+ let collapsed = this._shared.defaultCollapse;
3905
3905
  if(collapsed != null) {
3906
3906
  member._collapsed = collapsed;
3907
3907
  }
@@ -3980,10 +3980,10 @@ DataView.prototype._rebuildRowIdsFromChildren = function () {
3980
3980
  this._rids.length = 0;
3981
3981
  if(this._groupView) { this._groupView.length = 0; }
3982
3982
  if(!this._hidden) {
3983
- var grpLen = this._groupList.length;
3984
- for(var i = 0; i < grpLen; ++i) { // Re-distribute this object content to all of its group members
3985
- var gid = this._groupList[i];
3986
- var member = this._groupMembers[gid];
3983
+ let grpLen = this._groupList.length;
3984
+ for(let i = 0; i < grpLen; ++i) { // Re-distribute this object content to all of its group members
3985
+ let gid = this._groupList[i];
3986
+ let member = this._groupMembers[gid];
3987
3987
  member._rebuildRowIdsFromChildren();
3988
3988
 
3989
3989
  Util.pushArrayItems(this._rids, member._rids);
@@ -3993,7 +3993,7 @@ DataView.prototype._rebuildRowIdsFromChildren = function () {
3993
3993
  this._groupView.push(member._groupRowId); // Add header row
3994
3994
  }
3995
3995
  if(!member._collapsed) { // WARNING: This gives different value from isCollapsed() method
3996
- var rids = member._getFirstHiddenRids() || member._groupView || member._rids;
3996
+ let rids = member._getFirstHiddenRids() || member._groupView || member._rids;
3997
3997
  Util.pushArrayItems(this._groupView, rids);
3998
3998
  Util.pushArrayItems(this._groupView, member._footerRowIds);
3999
3999
  }
@@ -4018,7 +4018,7 @@ DataView.prototype._resolveGroupId = function (rowData) {
4018
4018
  /** @private
4019
4019
  */
4020
4020
  DataView.prototype._markColumnStatsDirty = function() {
4021
- for(var cid in this._columnStats) {
4021
+ for(let cid in this._columnStats) {
4022
4022
  this._columnStats[cid].markDirty();
4023
4023
  }
4024
4024
  };