@refinitiv-ui/efx-grid 6.0.92 → 6.0.94

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. package/lib/filter-dialog/lib/filter-dialog.js +1 -0
  2. package/lib/formatters/es6/CoralButtonFormatter.d.ts +0 -2
  3. package/lib/formatters/es6/CoralButtonFormatter.js +9 -4
  4. package/lib/formatters/es6/CoralCheckboxFormatter.js +10 -5
  5. package/lib/formatters/es6/CoralComboBoxFormatter.js +13 -12
  6. package/lib/formatters/es6/CoralIconFormatter.d.ts +0 -2
  7. package/lib/formatters/es6/CoralIconFormatter.js +9 -4
  8. package/lib/formatters/es6/CoralInputFormatter.js +9 -4
  9. package/lib/formatters/es6/CoralRadioButtonFormatter.d.ts +0 -2
  10. package/lib/formatters/es6/CoralRadioButtonFormatter.js +20 -15
  11. package/lib/formatters/es6/CoralSelectFormatter.js +12 -7
  12. package/lib/formatters/es6/CoralToggleFormatter.js +4 -4
  13. package/lib/formatters/es6/DuplexEmeraldDateTimePickerFormatter.js +20 -20
  14. package/lib/formatters/es6/EFButtonFormatter.d.ts +0 -2
  15. package/lib/formatters/es6/EFButtonFormatter.js +9 -4
  16. package/lib/formatters/es6/EFCheckboxFormatter.js +10 -5
  17. package/lib/formatters/es6/EFComboBoxFormatter.js +17 -7
  18. package/lib/formatters/es6/EFDateTimePickerFormatter.js +11 -6
  19. package/lib/formatters/es6/EFIconFormatter.d.ts +0 -2
  20. package/lib/formatters/es6/EFIconFormatter.js +9 -4
  21. package/lib/formatters/es6/EFNumberFieldFormatter.js +9 -4
  22. package/lib/formatters/es6/EFRadioButtonFormatter.d.ts +0 -2
  23. package/lib/formatters/es6/EFRadioButtonFormatter.js +25 -15
  24. package/lib/formatters/es6/EFSelectFormatter.js +17 -7
  25. package/lib/formatters/es6/EFTextFieldFormatter.js +4 -4
  26. package/lib/formatters/es6/EFToggleFormatter.js +4 -4
  27. package/lib/formatters/es6/EmeraldDateTimePickerFormatter.js +6 -6
  28. package/lib/formatters/es6/FormatterBuilder.js +32 -32
  29. package/lib/formatters/es6/NumericInputFormatter.js +7 -7
  30. package/lib/formatters/es6/PercentBarFormatter.js +5 -5
  31. package/lib/formatters/es6/SimpleImageFormatter.js +3 -3
  32. package/lib/formatters/es6/SimpleInputFormatter.js +4 -4
  33. package/lib/formatters/es6/SimpleLinkFormatter.js +4 -4
  34. package/lib/formatters/es6/SimpleTickerFormatter.js +5 -5
  35. package/lib/formatters/es6/SimpleToggleFormatter.js +16 -16
  36. package/lib/formatters/es6/TextFormatter.js +4 -4
  37. package/lib/grid/index.js +1 -1
  38. package/lib/tr-grid-cell-selection/es6/CellSelection.js +1 -1
  39. package/lib/tr-grid-checkbox/es6/Checkbox.js +268 -268
  40. package/lib/tr-grid-column-grouping/es6/ColumnGrouping.d.ts +1 -2
  41. package/lib/tr-grid-column-grouping/es6/ColumnGrouping.js +36 -36
  42. package/lib/tr-grid-column-stack/es6/ColumnStack.js +279 -279
  43. package/lib/tr-grid-conditional-coloring/es6/ConditionalColoring.js +227 -207
  44. package/lib/tr-grid-in-cell-editing/es6/InCellEditing.js +11 -11
  45. package/lib/tr-grid-row-dragging/es6/RowDragging.d.ts +1 -2
  46. package/lib/tr-grid-row-dragging/es6/RowDragging.js +120 -121
  47. package/lib/tr-grid-row-grouping/es6/RowGrouping.js +139 -137
  48. package/lib/tr-grid-row-selection/es6/RowSelection.js +260 -279
  49. package/lib/tr-grid-util/es6/CellPainter.js +2 -13
  50. package/lib/tr-grid-util/es6/DateTime.js +2 -2
  51. package/lib/tr-grid-util/es6/Delay.d.ts +3 -3
  52. package/lib/tr-grid-util/es6/Delay.js +13 -2
  53. package/lib/tr-grid-util/es6/DragUI.js +1 -1
  54. package/lib/tr-grid-util/es6/FilterBuilder.js +1 -2
  55. package/lib/tr-grid-util/es6/GridPlugin.js +0 -1
  56. package/lib/tr-grid-util/es6/MultiTableManager.js +4 -13
  57. package/lib/tr-grid-util/es6/NumberFormatter.js +1 -1
  58. package/lib/tr-grid-util/es6/TextHighlighter.js +3 -3
  59. package/lib/types/es6/ColumnGrouping.d.ts +1 -2
  60. package/lib/types/es6/RowDragging.d.ts +1 -2
  61. package/lib/versions.json +14 -14
  62. package/package.json +1 -1
@@ -70,9 +70,9 @@ import { preventDefault } from "../../tr-grid-util/es6/EventDispatcher.js";
70
70
  * @param {*} refB
71
71
  * @return {number}
72
72
  */
73
- var _indexSorter = function(indexMap, refA, refB) {
74
- var numA = indexMap[refA];
75
- var numB = indexMap[refB];
73
+ let _indexSorter = function(indexMap, refA, refB) {
74
+ let numA = indexMap[refA];
75
+ let numB = indexMap[refB];
76
76
  if(numA === numB) {
77
77
  return 0;
78
78
  }
@@ -90,7 +90,7 @@ var _indexSorter = function(indexMap, refA, refB) {
90
90
  * @param {*} refA
91
91
  * @return {boolean}
92
92
  */
93
- var _byValidIndex = function(indexMap, refA) {
93
+ let _byValidIndex = function(indexMap, refA) {
94
94
  return indexMap[refA] >= 0;
95
95
  };
96
96
 
@@ -99,11 +99,11 @@ var _byValidIndex = function(indexMap, refA) {
99
99
  * @param {Object} stackOpt
100
100
  * @return {boolean} Return true if there is any change
101
101
  */
102
- var _resolveActiveColumn = function(stackOpt) {
102
+ let _resolveActiveColumn = function(stackOpt) {
103
103
  if(stackOpt) {
104
- var children = stackOpt.children;
104
+ let children = stackOpt.children;
105
105
  if(children && children.length) {
106
- var activeColumn = stackOpt.activeColumn;
106
+ let activeColumn = stackOpt.activeColumn;
107
107
  if(!activeColumn || children.indexOf(activeColumn) < 0) {
108
108
  stackOpt.activeColumn = stackOpt.spreading ? children[children.length - 1] : children[0];
109
109
  return true;
@@ -116,7 +116,7 @@ var _resolveActiveColumn = function(stackOpt) {
116
116
  /** @constructor
117
117
  * @extends {GridPlugin}
118
118
  */
119
- var ColumnStackPlugin = function () {
119
+ let ColumnStackPlugin = function () {
120
120
  this._onPreSectionRender = this._onPreSectionRender.bind(this);
121
121
  this._onColumnRemoved = this._onColumnRemoved.bind(this);
122
122
  this._onColumnMoved = this._onColumnMoved.bind(this);
@@ -182,7 +182,7 @@ ColumnStackPlugin._runningId = 0;
182
182
  * @return {string}
183
183
  */
184
184
  ColumnStackPlugin.prototype._generateStackId = function() {
185
- var sid = "Stack" + ColumnStackPlugin._runningId++;
185
+ let sid = "Stack" + ColumnStackPlugin._runningId++;
186
186
  while(this._groupDefs.getGroup(sid)) {
187
187
  sid = "Stack" + ColumnStackPlugin._runningId++;
188
188
  }
@@ -211,7 +211,7 @@ ColumnStackPlugin.prototype.initialize = function (host, options) {
211
211
 
212
212
  if(options) {
213
213
  if(options["icons"]) {
214
- var icons = options["icons"]["columnStack"];
214
+ let icons = options["icons"]["columnStack"];
215
215
  if(icons) {
216
216
  this._stackIconName = icons["stack"];
217
217
  this._expandIconName = icons["expand"];
@@ -219,15 +219,15 @@ ColumnStackPlugin.prototype.initialize = function (host, options) {
219
219
  }
220
220
  }
221
221
 
222
- var opt = options["columnStack"];
222
+ let opt = options["columnStack"];
223
223
  if(opt && this._hosts.length === 1) {
224
- var menuElement = opt["menuElement"];
224
+ let menuElement = opt["menuElement"];
225
225
  if(menuElement && typeof menuElement === "object" && menuElement.nodeType === 1) {
226
226
  menuElement.addEventListener("item-trigger", this._onMenuItemClicked);
227
227
  this._menuElement = menuElement;
228
228
  }
229
229
 
230
- var menuItemClicked = opt["menuItemClicked"];
230
+ let menuItemClicked = opt["menuItemClicked"];
231
231
  if(typeof menuItemClicked === "function") {
232
232
  this._menuItemClicked = menuItemClicked;
233
233
  }
@@ -253,7 +253,7 @@ ColumnStackPlugin.prototype.initialize = function (host, options) {
253
253
  * @param {Object} host core grid object
254
254
  */
255
255
  ColumnStackPlugin.prototype.unload = function (host) {
256
- var at = this._hosts.indexOf(host);
256
+ let at = this._hosts.indexOf(host);
257
257
  if(at < 0) { return; }
258
258
  this._hosts.splice(at, 1);
259
259
 
@@ -311,7 +311,7 @@ ColumnStackPlugin._styles = prettifyCss([
311
311
  * @param {Object} grid core grid object
312
312
  */
313
313
  ColumnStackPlugin._applyThemeColor = function(grid) {
314
- if (!grid._columnStackingStyles) {
314
+ if(!grid._columnStackingStyles) {
315
315
  grid._columnStackingStyles = true;
316
316
  injectCss(ColumnStackPlugin._styles, grid.getElement());
317
317
  }
@@ -323,19 +323,19 @@ ColumnStackPlugin._applyThemeColor = function(grid) {
323
323
  ColumnStackPlugin.prototype.config = function (options) {
324
324
  if(!options) { return; }
325
325
 
326
- var columns = options["columns"];
326
+ let columns = options["columns"];
327
327
  if(!columns) {
328
328
  columns = [];
329
329
  }
330
330
 
331
- var i;
332
- var colCount = columns.length;
331
+ let i;
332
+ let colCount = columns.length;
333
333
 
334
- var columnStack = options.columnStack;
335
- var stackId = "";
336
- var stacks = {};
337
- var hasStack = false;
338
- var stackConfig = null;
334
+ let columnStack = options.columnStack;
335
+ let stackId = "";
336
+ let stacks = {};
337
+ let hasStack = false;
338
+ let stackConfig = null;
339
339
  if(columnStack) {
340
340
  this.addListener(columnStack, "clicked");
341
341
  this._usingField = false;
@@ -351,9 +351,9 @@ ColumnStackPlugin.prototype.config = function (options) {
351
351
  collapsed: columnStack.collapsed !== false,
352
352
  fields: columnStack.fields
353
353
  };
354
- } else if (columnStack.stacks && columnStack.stacks.length) {
354
+ } else if(columnStack.stacks && columnStack.stacks.length) {
355
355
  hasStack = true;
356
- var stackLen = columnStack.stacks.length;
356
+ let stackLen = columnStack.stacks.length;
357
357
  for(i = 0; i < stackLen; i++){
358
358
  stackConfig = columnStack.stacks[i];
359
359
  stackId = stackConfig.id || this._generateStackId();
@@ -370,16 +370,16 @@ ColumnStackPlugin.prototype.config = function (options) {
370
370
 
371
371
  if(!hasStack) {
372
372
  for(i = 0; i < colCount; ++i) {
373
- var column = columns[i];
374
- var stackOpt = column["stackId"] || column["stack"];
373
+ let column = columns[i];
374
+ let stackOpt = column["stackId"] || column["stack"];
375
375
  if(!stackOpt) {
376
376
  continue;
377
377
  }
378
378
 
379
379
  stackId = "";
380
- var spreading = false;
381
- var collapsed = true;
382
- var activeColumn = "";
380
+ let spreading = false;
381
+ let collapsed = true;
382
+ let activeColumn = "";
383
383
  if(typeof stackOpt === "string") {
384
384
  stackId = stackOpt;
385
385
  } else if(typeof stackOpt === "object") {
@@ -423,10 +423,10 @@ ColumnStackPlugin.prototype.config = function (options) {
423
423
  * @return {!Object}
424
424
  */
425
425
  ColumnStackPlugin.prototype.getConfigObject = function (gridOptions) {
426
- var obj = gridOptions || {};
426
+ let obj = gridOptions || {};
427
427
 
428
428
  // TODO: Handle the case where pendingStacks has not been applied
429
- var stackOptions = this.getStacks();
429
+ let stackOptions = this.getStacks();
430
430
 
431
431
  if(stackOptions.length) {
432
432
  obj.columnStack = {};
@@ -466,10 +466,10 @@ ColumnStackPlugin.prototype._toColumnId = function(colRef) {
466
466
  ColumnStackPlugin.prototype._applyUserConfigs = function(stacks) {
467
467
  if(stacks) {
468
468
  this.removeAllStacks(false); // No UI update
469
- for(var stackId in stacks) {
470
- var stack = stacks[stackId];
471
- var children = stack.children;
472
- var fields = stack.fields;
469
+ for(let stackId in stacks) {
470
+ let stack = stacks[stackId];
471
+ let children = stack.children;
472
+ let fields = stack.fields;
473
473
  if(fields) { // Convert all fields and indices to column Ids
474
474
  this._usingField = true;
475
475
  children = fields; // override children with fields
@@ -487,7 +487,7 @@ ColumnStackPlugin.prototype._applyUserConfigs = function(stacks) {
487
487
  */
488
488
  ColumnStackPlugin.prototype._getColumnStackOptions = function(colIndex) {
489
489
  if(colIndex >= 0 && colIndex < this.getColumnCount()) {
490
- var colId = this.getColumnId(colIndex);
490
+ let colId = this.getColumnId(colIndex);
491
491
  return this._groupDefs.getParentGroup(colId) || null;
492
492
  }
493
493
  return null;
@@ -496,7 +496,7 @@ ColumnStackPlugin.prototype._getColumnStackOptions = function(colIndex) {
496
496
  * @return {!Array.<number>} Sorted column indices
497
497
  */
498
498
  ColumnStackPlugin.prototype._getSelectedColumns = function() {
499
- var csp = this._getPlugin("ColumnSelectionPlugin");
499
+ let csp = this._getPlugin("ColumnSelectionPlugin");
500
500
  return (csp && csp.isEnabled()) ? csp.getSelectedColumns() : [];
501
501
  };
502
502
  /** Hide the specified column to prevent it from flashing when it is added as a member of the stack
@@ -510,8 +510,8 @@ ColumnStackPlugin.prototype._hideStackedColumns = function(stack, colRefs, activ
510
510
  return; // In spreading mode, columns in an expanded stack don't need to be hidden
511
511
  }
512
512
  // WARNING: activeIndex may not be valid
513
- var activeIndex = (typeof activeRef === "number") ? activeRef : this.getColumnIndex(stack.activeColumn);
514
- var colIndices = null;
513
+ let activeIndex = (typeof activeRef === "number") ? activeRef : this.getColumnIndex(stack.activeColumn);
514
+ let colIndices = null;
515
515
  if(typeof colRefs === "number") {
516
516
  colIndices = [colRefs];
517
517
  } else if(colIndices == null) {
@@ -519,9 +519,9 @@ ColumnStackPlugin.prototype._hideStackedColumns = function(stack, colRefs, activ
519
519
  } else {
520
520
  colIndices = colRefs;
521
521
  }
522
- var validCount = colIndices.length;
523
- for(var i = 0; i < validCount; ++i) {
524
- var colIndex = colIndices[i];
522
+ let validCount = colIndices.length;
523
+ for(let i = 0; i < validCount; ++i) {
524
+ let colIndex = colIndices[i];
525
525
  if(colIndex !== activeIndex) {
526
526
  this._setColumnVisibility(colIndex, false); // Hide a column
527
527
  }
@@ -533,8 +533,8 @@ ColumnStackPlugin.prototype._hideStackedColumns = function(stack, colRefs, activ
533
533
  */
534
534
  ColumnStackPlugin.prototype._setColumnVisibility = function(colIndex, shown) {
535
535
  if(colIndex >= 0) {
536
- var dirty = false;
537
- for(var g = this._hosts.length; --g >= 0;) {
536
+ let dirty = false;
537
+ for(let g = this._hosts.length; --g >= 0;) {
538
538
  dirty |= this._hosts[g].setColumnVisibility(colIndex, shown, 2);
539
539
  }
540
540
 
@@ -548,7 +548,7 @@ ColumnStackPlugin.prototype._requestFilterRefresh = function() {
548
548
  if(this._filterConflator.conflate()) {
549
549
  return;
550
550
  }
551
- var rfp = this._getPlugin("RowFilteringPlugin");
551
+ let rfp = this._getPlugin("RowFilteringPlugin");
552
552
  if(rfp && rfp["refresh"]) {
553
553
  rfp["refresh"]();
554
554
  }
@@ -557,7 +557,7 @@ ColumnStackPlugin.prototype._requestFilterRefresh = function() {
557
557
  * @param {Array} colRefs Array of column index, id, or field
558
558
  */
559
559
  ColumnStackPlugin.prototype._moveStackedColumns = function (colRefs) {
560
- var colIndices = this.getColumnIndices(colRefs);
560
+ let colIndices = this.getColumnIndices(colRefs);
561
561
  if(colIndices.length > 1) {
562
562
  this.reorderColumns(colIndices, colIndices[0]);
563
563
  }
@@ -575,19 +575,19 @@ ColumnStackPlugin.prototype._isIconAvailable = function() {
575
575
  * @param {Object} stackOpt
576
576
  */
577
577
  ColumnStackPlugin.prototype._updateIcon = function(colIndex, stackOpt) {
578
- var spreading = (stackOpt) ? stackOpt.spreading : false;
579
- var gridCount = this._hosts.length;
580
-
581
- for(var g = 0; g < gridCount; ++g) {
582
- var host = this._hosts[g];
583
- var tSect = host.getSection("title");
584
- var rowCount = tSect.getRowCount();
585
- var cell = tSect.getCell(colIndex, rowCount - 1, true);
578
+ let spreading = (stackOpt) ? stackOpt.spreading : false;
579
+ let gridCount = this._hosts.length;
580
+
581
+ for(let g = 0; g < gridCount; ++g) {
582
+ let host = this._hosts[g];
583
+ let tSect = host.getSection("title");
584
+ let rowCount = tSect.getRowCount();
585
+ let cell = tSect.getCell(colIndex, rowCount - 1, true);
586
586
  if(!cell) { continue; }
587
587
 
588
- var stackIcon = cell._stackIcon;
588
+ let stackIcon = cell._stackIcon;
589
589
  if(stackOpt) {
590
- var activeStackedColumn = this.isActiveStackedColumn(colIndex);
590
+ let activeStackedColumn = this.isActiveStackedColumn(colIndex);
591
591
  if(!stackIcon && activeStackedColumn) {
592
592
  if(spreading) {
593
593
  cell.addClass("grouping");
@@ -647,15 +647,15 @@ ColumnStackPlugin.prototype._updateUI = function() {
647
647
  }
648
648
 
649
649
  this._updating = true;
650
- var colCount = this.getColumnCount();
651
- var gridCount = this._hosts.length;
652
- var stackOpt, spreading;
653
- for(var c = 0; c < colCount; ++c) {
650
+ let colCount = this.getColumnCount();
651
+ let gridCount = this._hosts.length;
652
+ let stackOpt, spreading;
653
+ for(let c = 0; c < colCount; ++c) {
654
654
  stackOpt = this._getColumnStackOptions(c);
655
655
  spreading = (stackOpt) ? stackOpt.spreading : false;
656
656
  spreading = spreading === true;
657
- for(var g = 0; g < gridCount; ++g) {
658
- var host = this._hosts[g];
657
+ for(let g = 0; g < gridCount; ++g) {
658
+ let host = this._hosts[g];
659
659
  host.enableColumnClass(c, "grouped", spreading);
660
660
  }
661
661
 
@@ -681,20 +681,20 @@ ColumnStackPlugin.prototype._forceUpdateUI = function() {
681
681
  * @param {boolean} collapsed
682
682
  */
683
683
  ColumnStackPlugin.prototype._collapseMember = function(colIndex, collapsed) {
684
- var stackOpt = this._getColumnStackOptions(colIndex);
684
+ let stackOpt = this._getColumnStackOptions(colIndex);
685
685
  if(!stackOpt) {
686
686
  return;
687
687
  }
688
688
 
689
- for (var i = this._hosts.length; --i >= 0;) {
690
- var host = this._hosts[i];
689
+ for(let i = this._hosts.length; --i >= 0;) {
690
+ let host = this._hosts[i];
691
691
  host.enableColumnClass(colIndex, "collapsed", collapsed);
692
692
 
693
693
  if(this.isActiveStackedColumn(colIndex)) {
694
694
  host.setColumnVisibility(colIndex, true, 2);
695
- var tSect = host.getSection("title");
696
- var rowCount = tSect.getRowCount();
697
- var cell = tSect.getCell(colIndex, rowCount - 1, true);
695
+ let tSect = host.getSection("title");
696
+ let rowCount = tSect.getRowCount();
697
+ let cell = tSect.getCell(colIndex, rowCount - 1, true);
698
698
  if(collapsed) {
699
699
  if(stackOpt.collapsed !== collapsed || !stackOpt._origWidth) { // Prevent from getting width while column is collapsed
700
700
  stackOpt._origWidth = this._getColumnWidth(host, colIndex);
@@ -738,8 +738,8 @@ ColumnStackPlugin.prototype._collapseMember = function(colIndex, collapsed) {
738
738
  */
739
739
  ColumnStackPlugin.prototype._getColumnWidth = function(host, colIndex) {
740
740
  if(host) {
741
- var min = host.getMinimumColumnWidth(colIndex);
742
- var size = host.getColumnCustomLaneSize(colIndex);
741
+ let min = host.getMinimumColumnWidth(colIndex);
742
+ let size = host.getColumnCustomLaneSize(colIndex);
743
743
  return (size < min) ? min : size; // Column width cannot be smaller than min
744
744
  }
745
745
  return NaN;
@@ -749,7 +749,7 @@ ColumnStackPlugin.prototype._getColumnWidth = function(host, colIndex) {
749
749
  * @return {Array.<number>} Null if there is no column data
750
750
  */
751
751
  ColumnStackPlugin.prototype.getMemberIndices = function(colIndex) {
752
- var stackOpt = this._getColumnStackOptions(colIndex);
752
+ let stackOpt = this._getColumnStackOptions(colIndex);
753
753
  if(stackOpt) {
754
754
  return this.getColumnIndices(stackOpt.children);
755
755
  }
@@ -761,7 +761,7 @@ ColumnStackPlugin.prototype.getMemberIndices = function(colIndex) {
761
761
  * @return {Array.<number>} Null if it is non-grouped column
762
762
  */
763
763
  ColumnStackPlugin.prototype.collapseGroup = function(colIndex, collapsed) {
764
- var stackOpt = this._getColumnStackOptions(colIndex);
764
+ let stackOpt = this._getColumnStackOptions(colIndex);
765
765
  if(!stackOpt) {
766
766
  return null;
767
767
  }
@@ -771,9 +771,9 @@ ColumnStackPlugin.prototype.collapseGroup = function(colIndex, collapsed) {
771
771
 
772
772
  collapsed = collapsed !== false;
773
773
  if(stackOpt.collapsed !== collapsed) {
774
- var groupMembers = this.getColumnIndices(stackOpt.children);
774
+ let groupMembers = this.getColumnIndices(stackOpt.children);
775
775
  if(groupMembers) {
776
- for(var j = groupMembers.length; --j >= 0;) {
776
+ for(let j = groupMembers.length; --j >= 0;) {
777
777
  this._collapseMember(groupMembers[j], collapsed);
778
778
  }
779
779
  stackOpt.collapsed = collapsed;
@@ -799,8 +799,8 @@ ColumnStackPlugin.prototype.isColumnStackable = function(colIndices) {
799
799
  if(!colIndices) {
800
800
  return false;
801
801
  }
802
- var len = colIndices.length;
803
- for(var i = 0; i < len; ++i) {
802
+ let len = colIndices.length;
803
+ for(let i = 0; i < len; ++i) {
804
804
  if(this._getColumnStackOptions(colIndices[i])) {
805
805
  return false;
806
806
  }
@@ -816,8 +816,8 @@ ColumnStackPlugin.prototype.isColumnStacked = function(colIndices) {
816
816
  if(!colIndices) {
817
817
  colIndices = this._getSelectedColumns();
818
818
  }
819
- var len = colIndices.length;
820
- for(var i = 0; i < len; ++i) {
819
+ let len = colIndices.length;
820
+ for(let i = 0; i < len; ++i) {
821
821
  if(this._getColumnStackOptions(colIndices[i])) {
822
822
  return true;
823
823
  }
@@ -831,7 +831,7 @@ ColumnStackPlugin.prototype.isColumnStacked = function(colIndices) {
831
831
  * @see {@link ColumnStackPlugin#isColumnActive}
832
832
  */
833
833
  ColumnStackPlugin.prototype.isInactiveStackedColumn = function(colIndex) {
834
- var stackOpt = this._getColumnStackOptions(colIndex);
834
+ let stackOpt = this._getColumnStackOptions(colIndex);
835
835
  if(stackOpt) {
836
836
  return !this._isActiveStackedColumn(colIndex, stackOpt);
837
837
  }
@@ -865,7 +865,7 @@ ColumnStackPlugin.prototype._isActiveStackedColumn = function(colIndex, stackOpt
865
865
  * @return {boolean}
866
866
  */
867
867
  ColumnStackPlugin.prototype.isStackingMode = function(colIndex) {
868
- var stackOpt = this._getColumnStackOptions(colIndex);
868
+ let stackOpt = this._getColumnStackOptions(colIndex);
869
869
  if(stackOpt) {
870
870
  return stackOpt.spreading !== true;
871
871
  }
@@ -876,7 +876,7 @@ ColumnStackPlugin.prototype.isStackingMode = function(colIndex) {
876
876
  * @return {boolean}
877
877
  */
878
878
  ColumnStackPlugin.prototype.isCollapsingMode = function(colIndex) {
879
- var stackOpt = this._getColumnStackOptions(colIndex);
879
+ let stackOpt = this._getColumnStackOptions(colIndex);
880
880
  if(stackOpt) {
881
881
  return stackOpt.spreading === true;
882
882
  }
@@ -902,7 +902,7 @@ ColumnStackPlugin.prototype.isInCollection = ColumnStackPlugin.prototype.isColum
902
902
  * @return {boolean}
903
903
  */
904
904
  ColumnStackPlugin.prototype.isColumnCollapsed = function(colIndex) {
905
- var stackOpt = this._getColumnStackOptions(colIndex);
905
+ let stackOpt = this._getColumnStackOptions(colIndex);
906
906
  if(stackOpt) {
907
907
  return (stackOpt.spreading === true) && (stackOpt.collapsed === true);
908
908
  }
@@ -913,7 +913,7 @@ ColumnStackPlugin.prototype.isColumnCollapsed = function(colIndex) {
913
913
  * @return {boolean}
914
914
  */
915
915
  ColumnStackPlugin.prototype.isColumnActive = function(colIndex) {
916
- var stackOpt = this._getColumnStackOptions(colIndex);
916
+ let stackOpt = this._getColumnStackOptions(colIndex);
917
917
  if(stackOpt) {
918
918
  if(stackOpt.spreading) {
919
919
  if(!stackOpt.collapsed) {
@@ -933,9 +933,9 @@ ColumnStackPlugin.prototype.isColumnActive = function(colIndex) {
933
933
  * @return {string}
934
934
  */
935
935
  ColumnStackPlugin.prototype.getStackId = function(colRef) {
936
- var colIndex = (typeof colRef === "number") ? colRef : this.getColumnIndex(colRef);
936
+ let colIndex = (typeof colRef === "number") ? colRef : this.getColumnIndex(colRef);
937
937
  if(colIndex >= 0) {
938
- var stackOpt = this._getColumnStackOptions(colIndex);
938
+ let stackOpt = this._getColumnStackOptions(colIndex);
939
939
  if(stackOpt) {
940
940
  return stackOpt.id || "";
941
941
  }
@@ -949,8 +949,8 @@ ColumnStackPlugin.prototype.getStackId = function(colRef) {
949
949
  * @return {boolean} Return true if there is any change.
950
950
  */
951
951
  ColumnStackPlugin.prototype.stackColumns = function(colRefs, stackId, options) {
952
- var updateRequired = false;
953
- var sid = stackId;
952
+ let updateRequired = false;
953
+ let sid = stackId;
954
954
  if(sid) {
955
955
  if(this._removeStack(sid)) {
956
956
  // TODO: pinning state are removed and may need to be kept
@@ -964,7 +964,7 @@ ColumnStackPlugin.prototype.stackColumns = function(colRefs, stackId, options) {
964
964
  colRefs = this._getSelectedColumns();
965
965
  }
966
966
 
967
- var refCount = colRefs ? colRefs.length : 0;
967
+ let refCount = colRefs ? colRefs.length : 0;
968
968
  if(refCount < 2) {
969
969
  if(updateRequired) {
970
970
  this._updateUI();
@@ -976,11 +976,11 @@ ColumnStackPlugin.prototype.stackColumns = function(colRefs, stackId, options) {
976
976
  options = {};
977
977
  }
978
978
  // Clone user data
979
- var isSpreading = options.spreading === true;
980
- var isCollapsed = options.collapsed !== false;
981
- var activeColumn = options.activeColumn || ""; // field or id
979
+ let isSpreading = options.spreading === true;
980
+ let isCollapsed = options.collapsed !== false;
981
+ let activeColumn = options.activeColumn || ""; // field or id
982
982
  // WARNING: fields property in user option is ignored
983
- var stack = {};
983
+ let stack = {};
984
984
  stack.id = sid;
985
985
  stack.name = options.name || "";
986
986
  stack.spreading = isSpreading;
@@ -989,7 +989,7 @@ ColumnStackPlugin.prototype.stackColumns = function(colRefs, stackId, options) {
989
989
 
990
990
  // If grid is not initialized, add setting to pending stacks
991
991
  if(!this._initializedGrid) {
992
- var pendingStacks = this._pendingStacks;
992
+ let pendingStacks = this._pendingStacks;
993
993
  if(!pendingStacks) {
994
994
  pendingStacks = this._pendingStacks = {};
995
995
  }
@@ -998,7 +998,7 @@ ColumnStackPlugin.prototype.stackColumns = function(colRefs, stackId, options) {
998
998
  return false;
999
999
  }
1000
1000
 
1001
- var colIndices = this.getColumnIndices(colRefs); // WARNING: Invalid columns are filtered out
1001
+ let colIndices = this.getColumnIndices(colRefs); // WARNING: Invalid columns are filtered out
1002
1002
 
1003
1003
  // Prevent columns already in a stack from moving out to another stack
1004
1004
  if(!this.isColumnStackable(colIndices)) {
@@ -1009,10 +1009,10 @@ ColumnStackPlugin.prototype.stackColumns = function(colRefs, stackId, options) {
1009
1009
  }
1010
1010
 
1011
1011
  // WARNING: Invalid columns are filtered out
1012
- var children = colIndices.map(this._toColumnId); // All fields and indices from colRefs will be converted to column Ids
1012
+ let children = colIndices.map(this._toColumnId); // All fields and indices from colRefs will be converted to column Ids
1013
1013
  stack.children = children; // Note: children property now contains only valid column ids
1014
1014
 
1015
- var activeIndex = -1;
1015
+ let activeIndex = -1;
1016
1016
  if(activeColumn && typeof activeColumn === "string") {
1017
1017
  activeIndex = this.getColumnIndex(activeColumn);
1018
1018
  stack.activeColumn = activeColumn = this.getColumnId(activeIndex); // Convert field or invalid column id to a valid id
@@ -1031,13 +1031,13 @@ ColumnStackPlugin.prototype.stackColumns = function(colRefs, stackId, options) {
1031
1031
  this.reorderColumns(colIndices, colIndices[0]);
1032
1032
 
1033
1033
  // Update column selection
1034
- var validCount = colIndices.length;
1034
+ let validCount = colIndices.length;
1035
1035
  if(!isSpreading) {
1036
- var csp = this._getPlugin("ColumnSelectionPlugin");
1036
+ let csp = this._getPlugin("ColumnSelectionPlugin");
1037
1037
  if(csp && csp.isEnabled()){
1038
- var stackSelection = false;
1039
- for(var i = 0; i < validCount; ++i){
1040
- var colIndex = colIndices[i];
1038
+ let stackSelection = false;
1039
+ for(let i = 0; i < validCount; ++i){
1040
+ let colIndex = colIndices[i];
1041
1041
  if(colIndex === activeIndex){
1042
1042
  continue;
1043
1043
  }
@@ -1070,32 +1070,32 @@ ColumnStackPlugin.prototype._verifyColumnPinning = function(stack) {
1070
1070
  stack.leftPinned = false;
1071
1071
  stack.rightPinned = false;
1072
1072
 
1073
- var host = this._hosts[0];
1074
- var leftPinnedIndex = host.getFrozenColumnCount() - 1;
1075
- var rightPinnedIndex = host.getFirstPinnedRightIndex();
1076
- var colCount = this.getColumnCount();
1073
+ let host = this._hosts[0];
1074
+ let leftPinnedIndex = host.getFrozenColumnCount() - 1;
1075
+ let rightPinnedIndex = host.getFirstPinnedRightIndex();
1076
+ let colCount = this.getColumnCount();
1077
1077
 
1078
- if (leftPinnedIndex < 0 && rightPinnedIndex === colCount) {
1078
+ if(leftPinnedIndex < 0 && rightPinnedIndex === colCount) {
1079
1079
  return;
1080
1080
  }
1081
1081
 
1082
- var colIndices = this.getColumnIndices(stack.children);
1083
- var min = colIndices[0];
1084
- var max = colIndices[0];
1085
- for (var i = 1; i < colIndices.length; i++) {
1086
- var colIndex = colIndices[i];
1087
- if (colIndex > max) { max = colIndex; }
1088
- if (colIndex < min) { min = colIndex; }
1082
+ let colIndices = this.getColumnIndices(stack.children);
1083
+ let min = colIndices[0];
1084
+ let max = colIndices[0];
1085
+ for(let i = 1; i < colIndices.length; i++) {
1086
+ let colIndex = colIndices[i];
1087
+ if(colIndex > max) { max = colIndex; }
1088
+ if(colIndex < min) { min = colIndex; }
1089
1089
  }
1090
1090
 
1091
- if (min <= leftPinnedIndex) {
1091
+ if(min <= leftPinnedIndex) {
1092
1092
  stack.leftPinned = true;
1093
- if (max > leftPinnedIndex) {
1093
+ if(max > leftPinnedIndex) {
1094
1094
  this._freezeColumn(max, colCount - rightPinnedIndex);
1095
1095
  }
1096
- } else if (max >= rightPinnedIndex) {
1096
+ } else if(max >= rightPinnedIndex) {
1097
1097
  stack.rightPinned = true;
1098
- if (min < rightPinnedIndex) {
1098
+ if(min < rightPinnedIndex) {
1099
1099
  this._freezeColumn(leftPinnedIndex, colCount - min);
1100
1100
  }
1101
1101
  }
@@ -1106,8 +1106,8 @@ ColumnStackPlugin.prototype._verifyColumnPinning = function(stack) {
1106
1106
  * @param {number=} numRightColumn
1107
1107
  */
1108
1108
  ColumnStackPlugin.prototype._freezeColumn = function(frozenColIndex, numRightColumn) {
1109
- var hosts = this._hosts;
1110
- for (var i = 0; i < hosts.length; i++) {
1109
+ let hosts = this._hosts;
1110
+ for(let i = 0; i < hosts.length; i++) {
1111
1111
  hosts[i].freezeColumn(frozenColIndex, numRightColumn);
1112
1112
  }
1113
1113
  };
@@ -1121,7 +1121,7 @@ ColumnStackPlugin.prototype._freezeColumn = function(frozenColIndex, numRightCol
1121
1121
  ColumnStackPlugin.prototype.setStack = function(colRefs, activeColRef) {
1122
1122
  this.removeAllStacks();
1123
1123
 
1124
- var stackOptions = {};
1124
+ let stackOptions = {};
1125
1125
  if(activeColRef) {
1126
1126
  stackOptions.activeColumn = activeColRef;
1127
1127
  }
@@ -1137,9 +1137,9 @@ ColumnStackPlugin.prototype.setStack = function(colRefs, activeColRef) {
1137
1137
  ColumnStackPlugin.prototype.setStacks = function(stacks) {
1138
1138
  this.removeAllStacks();
1139
1139
 
1140
- var stackCount = stacks ? stacks.length : 0;
1141
- for(var i = 0; i < stackCount; ++i) {
1142
- var stack = stacks[i];
1140
+ let stackCount = stacks ? stacks.length : 0;
1141
+ for(let i = 0; i < stackCount; ++i) {
1142
+ let stack = stacks[i];
1143
1143
  if(stack) {
1144
1144
  if(stack.children) {
1145
1145
  this.stackColumns(stack.children, stack.id, stack);
@@ -1152,35 +1152,35 @@ ColumnStackPlugin.prototype.setStacks = function(stacks) {
1152
1152
  * @return {!Array.<ColumnStackPlugin~StackDefinition>} Array of stack definition objects
1153
1153
  */
1154
1154
  ColumnStackPlugin.prototype.getStacks = function() {
1155
- var stacks = this._groupDefs.getGroupMap();
1156
- var stackOptions = [];
1155
+ let stacks = this._groupDefs.getGroupMap();
1156
+ let stackOptions = [];
1157
1157
 
1158
- for (var stackKey in stacks) {
1159
- var stackOption = stacks[stackKey];
1160
- var stackId = stackOption.id;
1158
+ for(let stackKey in stacks) {
1159
+ let stackOption = stacks[stackKey];
1160
+ let stackId = stackOption.id;
1161
1161
 
1162
- var stackConfigObj = {
1162
+ let stackConfigObj = {
1163
1163
  id: stackId
1164
1164
  };
1165
- var name = stackOption.name;
1166
- var collapsed = stackOption.collapsed;
1167
- var spreading = stackOption.spreading;
1165
+ let name = stackOption.name;
1166
+ let collapsed = stackOption.collapsed;
1167
+ let spreading = stackOption.spreading;
1168
1168
 
1169
- if (name) {
1169
+ if(name) {
1170
1170
  stackConfigObj.name = name;
1171
1171
  }
1172
- if (collapsed !== true) {
1172
+ if(collapsed !== true) {
1173
1173
  stackConfigObj.collapsed = collapsed;
1174
1174
  }
1175
- if (spreading !== false) {
1175
+ if(spreading !== false) {
1176
1176
  stackConfigObj.spreading = spreading;
1177
1177
  }
1178
1178
 
1179
- if (this._usingField) {
1180
- var colIndices = this.getStackMemberIndices(stackId);
1181
- var memberCount = colIndices.length;
1182
- var fields = new Array(memberCount);
1183
- for(var i = 0; i < memberCount; ++i) {
1179
+ if(this._usingField) {
1180
+ let colIndices = this.getStackMemberIndices(stackId);
1181
+ let memberCount = colIndices.length;
1182
+ let fields = new Array(memberCount);
1183
+ for(let i = 0; i < memberCount; ++i) {
1184
1184
  fields[i] = this.getColumnField(colIndices[i]);
1185
1185
  }
1186
1186
  stackConfigObj.fields = fields;
@@ -1205,11 +1205,11 @@ ColumnStackPlugin.prototype.unstackColumns = function(colIndices) {
1205
1205
  colIndices = this._getSelectedColumns();
1206
1206
  }
1207
1207
 
1208
- var dirty = false;
1209
- var len = colIndices.length;
1210
- for(var i = 0; i < len; ++i) {
1211
- var colIndex = colIndices[i];
1212
- var stackOpt = this._getColumnStackOptions(colIndex);
1208
+ let dirty = false;
1209
+ let len = colIndices.length;
1210
+ for(let i = 0; i < len; ++i) {
1211
+ let colIndex = colIndices[i];
1212
+ let stackOpt = this._getColumnStackOptions(colIndex);
1213
1213
  if(stackOpt) {
1214
1214
  dirty = true;
1215
1215
  this._removeStack(stackOpt.id);
@@ -1226,15 +1226,15 @@ ColumnStackPlugin.prototype.unstackColumns = function(colIndices) {
1226
1226
  * @return {boolean} Returns true if there is any change
1227
1227
  */
1228
1228
  ColumnStackPlugin.prototype._removeStack = function(stackId) {
1229
- var stack = this._groupDefs.getGroup(stackId);
1229
+ let stack = this._groupDefs.getGroup(stackId);
1230
1230
  if(!stack) {
1231
1231
  return false;
1232
1232
  }
1233
1233
 
1234
- var colIndices = this.getColumnIndices(stack.children);
1235
- var len = colIndices.length;
1236
- for(var i = 0; i < len; ++i) {
1237
- var colIndex = colIndices[i]; // colIndex is guaranteed to be positive (verified)
1234
+ let colIndices = this.getColumnIndices(stack.children);
1235
+ let len = colIndices.length;
1236
+ for(let i = 0; i < len; ++i) {
1237
+ let colIndex = colIndices[i]; // colIndex is guaranteed to be positive (verified)
1238
1238
  if(stack.spreading && stack.collapsed) {
1239
1239
  this._collapseMember(colIndex, false);
1240
1240
  }
@@ -1260,10 +1260,10 @@ ColumnStackPlugin.prototype.removeStack = function(stackId) {
1260
1260
  * @return {boolean} true if at least one stacking removed
1261
1261
  */
1262
1262
  ColumnStackPlugin.prototype.removeAllStacks = function(enableUpdateUI) {
1263
- var groupIds = this._groupDefs.getGroupIds();
1264
- var groupCount = groupIds.length;
1263
+ let groupIds = this._groupDefs.getGroupIds();
1264
+ let groupCount = groupIds.length;
1265
1265
  if(groupCount) {
1266
- for(var i = 0; i < groupCount; ++i) {
1266
+ for(let i = 0; i < groupCount; ++i) {
1267
1267
  this._removeStack(groupIds[i]);
1268
1268
  }
1269
1269
  this._groupDefs.removeAllGroups(); // TODO: May not necessary
@@ -1280,22 +1280,22 @@ ColumnStackPlugin.prototype.removeAllStacks = function(enableUpdateUI) {
1280
1280
  * @return {boolean}
1281
1281
  */
1282
1282
  ColumnStackPlugin.prototype.setActiveColumn = function(activeColumn) {
1283
- var colIndex = this.getColumnIndex(activeColumn);
1283
+ let colIndex = this.getColumnIndex(activeColumn);
1284
1284
  if(colIndex < 0) {
1285
1285
  return false;
1286
1286
  }
1287
- var colCount = this.getColumnCount();
1287
+ let colCount = this.getColumnCount();
1288
1288
  if(colIndex >= colCount) {
1289
1289
  return false;
1290
1290
  }
1291
1291
 
1292
- var colId = this.getColumnId(colIndex);
1293
- var stack = this._groupDefs.getParentGroup(colId);
1292
+ let colId = this.getColumnId(colIndex);
1293
+ let stack = this._groupDefs.getParentGroup(colId);
1294
1294
  if(!stack) {
1295
1295
  return false;
1296
1296
  }
1297
- var chdr = stack.children;
1298
- var memberIndex = chdr.indexOf(colId);
1297
+ let chdr = stack.children;
1298
+ let memberIndex = chdr.indexOf(colId);
1299
1299
  if(memberIndex < 0) {
1300
1300
  return false;
1301
1301
  }
@@ -1309,13 +1309,13 @@ ColumnStackPlugin.prototype.setActiveColumn = function(activeColumn) {
1309
1309
  * @see {@link ColumnStackPlugin#setActiveColumn}
1310
1310
  */
1311
1311
  ColumnStackPlugin.prototype.swapColumn = function(colRef, swappingIndex) {
1312
- var colIndex = (typeof colRef === "number") ? colRef : this.getColumnIndex(colRef);
1312
+ let colIndex = (typeof colRef === "number") ? colRef : this.getColumnIndex(colRef);
1313
1313
 
1314
- var stackOpt = this._getColumnStackOptions(colIndex);
1314
+ let stackOpt = this._getColumnStackOptions(colIndex);
1315
1315
  if(!stackOpt) {
1316
1316
  return false; // Invalid column index
1317
1317
  }
1318
- var children = stackOpt.children;
1318
+ let children = stackOpt.children;
1319
1319
  if(!children) {
1320
1320
  return false; // Invalid column type
1321
1321
  }
@@ -1335,8 +1335,8 @@ ColumnStackPlugin.prototype._setActiveColumn = function(stack, newActiveColumn)
1335
1335
  return false; // The given index is already active stacked column
1336
1336
  }
1337
1337
 
1338
- var prevActiveColumnIndex = this.getColumnIndex(stack.activeColumn);
1339
- var newActiveColumnIndex = this.getColumnIndex(newActiveColumn);
1338
+ let prevActiveColumnIndex = this.getColumnIndex(stack.activeColumn);
1339
+ let newActiveColumnIndex = this.getColumnIndex(newActiveColumn);
1340
1340
  stack.activeColumn = newActiveColumn; // Change active column
1341
1341
 
1342
1342
  this._setColumnVisibility(newActiveColumnIndex, true);
@@ -1345,7 +1345,7 @@ ColumnStackPlugin.prototype._setActiveColumn = function(stack, newActiveColumn)
1345
1345
  this._updateIcon(prevActiveColumnIndex, stack);
1346
1346
  this._updateIcon(newActiveColumnIndex, stack);
1347
1347
 
1348
- var csp = this._getPlugin("ColumnSelectionPlugin");
1348
+ let csp = this._getPlugin("ColumnSelectionPlugin");
1349
1349
  if(csp && csp.isEnabled()) {
1350
1350
  csp.selectSingleColumn(newActiveColumnIndex);
1351
1351
  if(csp.dispatchSelectionChanged) {
@@ -1359,7 +1359,7 @@ ColumnStackPlugin.prototype._setActiveColumn = function(stack, newActiveColumn)
1359
1359
  * @param {Object} e
1360
1360
  */
1361
1361
  ColumnStackPlugin.prototype._onPreSectionRender = function (e) {
1362
- if (e["sectionType"] !== "title") {
1362
+ if(e["sectionType"] !== "title") {
1363
1363
  return;
1364
1364
  }
1365
1365
  this._forceUpdateUI();
@@ -1372,14 +1372,14 @@ ColumnStackPlugin.prototype._onColumnRemoved = function (e) {
1372
1372
  return;
1373
1373
  }
1374
1374
 
1375
- var colId = e.colId;
1376
- var stackOpt = this._groupDefs.getParentGroup(colId);
1375
+ let colId = e.colId;
1376
+ let stackOpt = this._groupDefs.getParentGroup(colId);
1377
1377
 
1378
1378
  if(!stackOpt) {
1379
1379
  return;
1380
1380
  }
1381
1381
  // update members
1382
- var children = stackOpt.children;
1382
+ let children = stackOpt.children;
1383
1383
  if(children.length <= 2) {
1384
1384
  this._removeStack(stackOpt.id);
1385
1385
  this._updateUI();
@@ -1399,18 +1399,18 @@ ColumnStackPlugin.prototype._onColumnMoved = function (e) {
1399
1399
  return; // during the reordering or resetting, there is no need to recalculate stacks
1400
1400
  }
1401
1401
 
1402
- var toIndex = e.toColIndex;
1403
- var colId = this.getColumnId(toIndex);
1404
- var stackOpt = this._groupDefs.getParentGroup(colId);
1402
+ let toIndex = e.toColIndex;
1403
+ let colId = this.getColumnId(toIndex);
1404
+ let stackOpt = this._groupDefs.getParentGroup(colId);
1405
1405
  if(!stackOpt) {
1406
1406
  return;
1407
1407
  }
1408
1408
 
1409
- var leftStackOpt = this._getColumnStackOptions(toIndex - 1);
1410
- var rightStackOpt = this._getColumnStackOptions(toIndex + 1);
1409
+ let leftStackOpt = this._getColumnStackOptions(toIndex - 1);
1410
+ let rightStackOpt = this._getColumnStackOptions(toIndex + 1);
1411
1411
 
1412
- var stackChange = true;
1413
- var dirty = false;
1412
+ let stackChange = true;
1413
+ let dirty = false;
1414
1414
  if(stackOpt) {
1415
1415
  // The move was within the same stack
1416
1416
  if(stackOpt === leftStackOpt || stackOpt === rightStackOpt) {
@@ -1446,8 +1446,8 @@ ColumnStackPlugin.prototype._onColumnAdded = function (e) {
1446
1446
  return;
1447
1447
  }
1448
1448
 
1449
- var colIndex = e.colIndex;
1450
- var stackOpt = this._isWithinStack(colIndex);
1449
+ let colIndex = e.colIndex;
1450
+ let stackOpt = this._isWithinStack(colIndex);
1451
1451
  if(stackOpt) {
1452
1452
  if(this._addRefToStack(stackOpt, colIndex)) {
1453
1453
  this._updateUI();
@@ -1468,7 +1468,7 @@ ColumnStackPlugin.prototype._onBeforeBatchOperation = function (e) {
1468
1468
  * @param {Object} e
1469
1469
  */
1470
1470
  ColumnStackPlugin.prototype._onAfterBatchOperation = function (e) {
1471
- var groups, groupCount, i, group;
1471
+ let groups, groupCount, i, group;
1472
1472
  if(e.batchType === "reset") {
1473
1473
  this._inResetting = false;
1474
1474
 
@@ -1500,9 +1500,9 @@ ColumnStackPlugin.prototype._onAfterBatchOperation = function (e) {
1500
1500
  * @return {Object} stackOption
1501
1501
  */
1502
1502
  ColumnStackPlugin.prototype._isWithinStack = function (colIndex) {
1503
- var leftStackOpt = this._getColumnStackOptions(colIndex - 1);
1503
+ let leftStackOpt = this._getColumnStackOptions(colIndex - 1);
1504
1504
  if(leftStackOpt) {
1505
- var rightStackOpt = this._getColumnStackOptions(colIndex + 1);
1505
+ let rightStackOpt = this._getColumnStackOptions(colIndex + 1);
1506
1506
  if(leftStackOpt === rightStackOpt) {
1507
1507
  return leftStackOpt;
1508
1508
  }
@@ -1516,14 +1516,14 @@ ColumnStackPlugin.prototype._isWithinStack = function (colIndex) {
1516
1516
  * @return {boolean}
1517
1517
  */
1518
1518
  ColumnStackPlugin.prototype._addRefToStack = function (stackOption, colIndex) {
1519
- var colId = this._toColumnId(colIndex);
1519
+ let colId = this._toColumnId(colIndex);
1520
1520
 
1521
1521
  this._hideStackedColumns(stackOption, colIndex);
1522
1522
 
1523
1523
  // Find a position to be placed in the stack
1524
- var rightColRef = this._toColumnId(colIndex + 1);
1525
- var children = stackOption.children;
1526
- var pos = children.indexOf(rightColRef); // WARNING This does not work for field
1524
+ let rightColRef = this._toColumnId(colIndex + 1);
1525
+ let children = stackOption.children;
1526
+ let pos = children.indexOf(rightColRef); // WARNING This does not work for field
1527
1527
  return this._groupDefs.addGroupChild(stackOption.id, colId, pos);
1528
1528
  };
1529
1529
  /** Remove unique ref of the specified index from the stack
@@ -1538,7 +1538,7 @@ ColumnStackPlugin.prototype._removeRefFromStack = function (stackOption, colId,
1538
1538
  return false;
1539
1539
  }
1540
1540
 
1541
- var isCollapsed = stackOption.spreading && stackOption.collapsed;
1541
+ let isCollapsed = stackOption.spreading && stackOption.collapsed;
1542
1542
  if(isCollapsed) {
1543
1543
  this._collapseMember(colIndex, false);
1544
1544
  } else {
@@ -1554,16 +1554,16 @@ ColumnStackPlugin.prototype._removeRefFromStack = function (stackOption, colId,
1554
1554
  * @param {boolean=} validate Remove invalid members and stack
1555
1555
  */
1556
1556
  ColumnStackPlugin.prototype._repositionMembers = function (stackOption, validate) {
1557
- var children = stackOption.children;
1558
- var refCount = children ? children.length : 0;
1559
-
1560
- var indexMap = {};
1561
- var prevIndex = -1;
1562
- var dirty = false;
1563
- var hasInvalid = false;
1564
- for(var i = 0; i < refCount; i++) {
1565
- var colRef = children[i];
1566
- var colIndex = this.getColumnIndex(colRef);
1557
+ let children = stackOption.children;
1558
+ let refCount = children ? children.length : 0;
1559
+
1560
+ let indexMap = {};
1561
+ let prevIndex = -1;
1562
+ let dirty = false;
1563
+ let hasInvalid = false;
1564
+ for(let i = 0; i < refCount; i++) {
1565
+ let colRef = children[i];
1566
+ let colIndex = this.getColumnIndex(colRef);
1567
1567
  indexMap[colRef] = colIndex;
1568
1568
  if(colIndex >= 0) {
1569
1569
  if(colIndex < prevIndex) {
@@ -1601,32 +1601,32 @@ ColumnStackPlugin.prototype._repositionMembers = function (stackOption, validate
1601
1601
  * @param {Object} e
1602
1602
  */
1603
1603
  ColumnStackPlugin.prototype._onStackButtonClicked = function(e) {
1604
- var elem = e.currentTarget;
1604
+ let elem = e.currentTarget;
1605
1605
  if(e.button) { // right click or middle click
1606
1606
  return;
1607
1607
  }
1608
1608
 
1609
- var grid = this.getRelativeGrid(e);
1610
- var pos = grid.getRelativePosition(e);
1611
- var colIndex = pos["colIndex"];
1612
- var colData = this._getColumnStackOptions(colIndex);
1609
+ let grid = this.getRelativeGrid(e);
1610
+ let pos = grid.getRelativePosition(e);
1611
+ let colIndex = pos["colIndex"];
1612
+ let colData = this._getColumnStackOptions(colIndex);
1613
1613
  if(!colData) { return; }
1614
1614
 
1615
1615
  e.stopPropagation();
1616
1616
 
1617
- var children = colData.children;
1618
- var colIndices = this.getColumnIndices(children);
1617
+ let children = colData.children;
1618
+ let colIndices = this.getColumnIndices(children);
1619
1619
  if(colData.spreading) {
1620
- var collapsed = !colData.collapsed;
1620
+ let collapsed = !colData.collapsed;
1621
1621
  this.collapseGroup(colIndex, collapsed);
1622
1622
  pos["menuData"] = null;
1623
1623
  pos["activeIndex"] = -1;
1624
1624
  pos["collapsed"] = collapsed;
1625
1625
  } else {
1626
- var activeIndex = children.indexOf(colData.activeColumn);
1627
- var len = children.length;
1628
- var menuData = new Array(len);
1629
- for(var i = len; --i >= 0;) {
1626
+ let activeIndex = children.indexOf(colData.activeColumn);
1627
+ let len = children.length;
1628
+ let menuData = new Array(len);
1629
+ for(let i = len; --i >= 0;) {
1630
1630
  menuData[i] = {
1631
1631
  value: i,
1632
1632
  selected: i === activeIndex,
@@ -1649,8 +1649,8 @@ ColumnStackPlugin.prototype._onStackButtonClicked = function(e) {
1649
1649
 
1650
1650
  if(this._menuElement && !colData.spreading) {
1651
1651
  // Populate stack member
1652
- var button = pos.event.srcElement;
1653
- var el = this._menuElement;
1652
+ let button = pos.event.srcElement;
1653
+ let el = this._menuElement;
1654
1654
  el.data = pos["menuData"];
1655
1655
  el.positionTarget = button;
1656
1656
  el.opened = true;
@@ -1662,9 +1662,9 @@ ColumnStackPlugin.prototype._onStackButtonClicked = function(e) {
1662
1662
  */
1663
1663
  ColumnStackPlugin.prototype._onMenuItemClicked = function(e) {
1664
1664
  if(e.detail) {
1665
- var selectedIndex = parseInt(e.detail.value, 0);
1666
- var menuData = this._menuElement.data[selectedIndex];
1667
- var colId = menuData.colId;
1665
+ let selectedIndex = parseInt(e.detail.value, 0);
1666
+ let menuData = this._menuElement.data[selectedIndex];
1667
+ let colId = menuData.colId;
1668
1668
  this.setActiveColumn(colId);
1669
1669
  }
1670
1670
  this._menuElement.opened = false;
@@ -1689,7 +1689,7 @@ ColumnStackPlugin.prototype.getStackMemberIndices = function(stackId) {
1689
1689
  */
1690
1690
  ColumnStackPlugin.prototype.getStackMemberIds = function(stackId) { // WARNING: This does not filter out invalid members
1691
1691
  if(stackId) {
1692
- var stack = this._groupDefs.getGroup(stackId);
1692
+ let stack = this._groupDefs.getGroup(stackId);
1693
1693
  if(stack){
1694
1694
  return stack.children;
1695
1695
  }
@@ -1706,9 +1706,9 @@ ColumnStackPlugin.prototype.getColumnIdsByIndex = function(colIndices) {
1706
1706
  if(!Array.isArray(colIndices)){
1707
1707
  colIndices = [colIndices];
1708
1708
  }
1709
- var colIds = [];
1710
- var colId;
1711
- for(var i = 0; i < colIndices.length; ++i) {
1709
+ let colIds = [];
1710
+ let colId;
1711
+ for(let i = 0; i < colIndices.length; ++i) {
1712
1712
  colId = this.getColumnId(colIndices[i]);
1713
1713
  colIds.push(colId);
1714
1714
  }
@@ -1724,9 +1724,9 @@ ColumnStackPlugin.prototype.getColumnIndicesByColumnIds = function(colIds) {
1724
1724
  if(!Array.isArray(colIds)){
1725
1725
  colIds = [colIds];
1726
1726
  }
1727
- var colIndices = [];
1728
- var colIndex;
1729
- for(var i = 0; i < colIds.length; ++i) {
1727
+ let colIndices = [];
1728
+ let colIndex;
1729
+ for(let i = 0; i < colIds.length; ++i) {
1730
1730
  colIndex = this.getColumnIndex(colIds[i]);
1731
1731
  colIndices.push(colIndex);
1732
1732
  }
@@ -1742,12 +1742,12 @@ ColumnStackPlugin.prototype.getColumnIdsByFields = function(fields) {
1742
1742
  if(!fields) {
1743
1743
  return [];
1744
1744
  }
1745
- var ary = Array.isArray(fields) ? fields : [fields];
1746
- var count = fields.length;
1747
- var outAry = new Array(count);
1748
- for(var i = 0; i < count; ++i) {
1749
- var ref = ary[i];
1750
- var colIndex = -1;
1745
+ let ary = Array.isArray(fields) ? fields : [fields];
1746
+ let count = fields.length;
1747
+ let outAry = new Array(count);
1748
+ for(let i = 0; i < count; ++i) {
1749
+ let ref = ary[i];
1750
+ let colIndex = -1;
1751
1751
  if(typeof ref === "number") {
1752
1752
  colIndex = ref;
1753
1753
  } else if(ref) {
@@ -1766,10 +1766,10 @@ ColumnStackPlugin.prototype.getColumnIdsByFields = function(fields) {
1766
1766
  * @param {string} stackId
1767
1767
  */
1768
1768
  ColumnStackPlugin.prototype.addColumnToStack = function(colRef, stackId) {
1769
- var colId = this._toColumnId(colRef);
1769
+ let colId = this._toColumnId(colRef);
1770
1770
 
1771
- var stack = this._groupDefs.getGroup(stackId);
1772
- var isColumnStackable = !this._groupDefs.getParentGroup(colId);
1771
+ let stack = this._groupDefs.getGroup(stackId);
1772
+ let isColumnStackable = !this._groupDefs.getParentGroup(colId);
1773
1773
 
1774
1774
  // if column not stackable or destination stack not exist, do nothing
1775
1775
  if(!isColumnStackable || !stack){
@@ -1782,17 +1782,17 @@ ColumnStackPlugin.prototype.addColumnToStack = function(colRef, stackId) {
1782
1782
  this._groupDefs.addGroupChild(stackId, colId);
1783
1783
 
1784
1784
  // To avoid state interference from Core Grid, keep the pin state before moving the columns
1785
- var host = this._hosts[0];
1786
- var leftPinnedIndex = host.getFrozenColumnCount() - 1;
1787
- var rightPinnedCount = host.getPinnedRightColumnCount();
1788
- var colIndex = this.getColumnIndex(colId);
1785
+ let host = this._hosts[0];
1786
+ let leftPinnedIndex = host.getFrozenColumnCount() - 1;
1787
+ let rightPinnedCount = host.getPinnedRightColumnCount();
1788
+ let colIndex = this.getColumnIndex(colId);
1789
1789
 
1790
1790
  // Pack stacked columns together
1791
1791
  this._moveStackedColumns(stack.children);
1792
1792
 
1793
1793
  // If an unpinned column is added to a pinned stack, the pinning position should be updated
1794
1794
  if(stack.leftPinned || stack.rightPinned) {
1795
- var colCount = this.getColumnCount();
1795
+ let colCount = this.getColumnCount();
1796
1796
  if(stack.leftPinned && colIndex > leftPinnedIndex) {
1797
1797
  leftPinnedIndex++;
1798
1798
  this._freezeColumn(leftPinnedIndex, rightPinnedCount);
@@ -1810,20 +1810,20 @@ ColumnStackPlugin.prototype.addColumnToStack = function(colRef, stackId) {
1810
1810
  * @param {number|string} colRef column field or column index
1811
1811
  */
1812
1812
  ColumnStackPlugin.prototype.removeColumnFromStack = function(colRef) {
1813
- var colIndex = (typeof colRef === "string") ? this.getColumnIndex(colRef) : colRef;
1813
+ let colIndex = (typeof colRef === "string") ? this.getColumnIndex(colRef) : colRef;
1814
1814
  if(colIndex < 0) {
1815
1815
  return;
1816
1816
  }
1817
1817
 
1818
- var colId = this.getColumnId(colIndex);
1819
- var stack = this._groupDefs.getParentGroup(colId);
1818
+ let colId = this.getColumnId(colIndex);
1819
+ let stack = this._groupDefs.getParentGroup(colId);
1820
1820
 
1821
1821
  if(!stack) {
1822
1822
  return;
1823
1823
  }
1824
1824
 
1825
- var children = stack.children;
1826
- var memberCount = children.length;
1825
+ let children = stack.children;
1826
+ let memberCount = children.length;
1827
1827
  if(memberCount <= 2) {
1828
1828
  if(memberCount === 2) {
1829
1829
  if(colId === children[0]) { // If the first column is removed from the stack, move it to the end of stack
@@ -1835,7 +1835,7 @@ ColumnStackPlugin.prototype.removeColumnFromStack = function(colRef) {
1835
1835
  return;
1836
1836
  }
1837
1837
 
1838
- var colIndices = this.getColumnIndices(children);
1838
+ let colIndices = this.getColumnIndices(children);
1839
1839
  this._removeRefFromStack(stack, colId, colIndex);
1840
1840
 
1841
1841
  this.moveColumnById(colIndex, colIndices[memberCount - 1] + 1); // This assumes that the column order is already in correct position
@@ -1849,23 +1849,23 @@ ColumnStackPlugin.prototype.removeColumnFromStack = function(colRef) {
1849
1849
  * @param {string} stackId
1850
1850
  */
1851
1851
  ColumnStackPlugin.prototype.reorderStackColumns = function(colRefs, stackId) {
1852
- var stack = this._groupDefs.getGroup(stackId);
1852
+ let stack = this._groupDefs.getGroup(stackId);
1853
1853
  if(!stack) {
1854
1854
  return;
1855
1855
  }
1856
1856
  if(!colRefs || !colRefs.length) {
1857
1857
  return; // Nothing to be reordered
1858
1858
  }
1859
- var colIndices = this.getColumnIndices(colRefs); // Slow
1859
+ let colIndices = this.getColumnIndices(colRefs); // Slow
1860
1860
  if(!colIndices.length) {
1861
1861
  return; // Given input has no valid column
1862
1862
  }
1863
1863
 
1864
- var curMemberIndices = this.getStackMemberIndices(stackId); // Slow
1865
- var memberCount = curMemberIndices.length;
1866
- var indexMap = {};
1867
- for(var i = 0; i < memberCount; ++i) {
1868
- var colIndex = curMemberIndices[i];
1864
+ let curMemberIndices = this.getStackMemberIndices(stackId); // Slow
1865
+ let memberCount = curMemberIndices.length;
1866
+ let indexMap = {};
1867
+ for(let i = 0; i < memberCount; ++i) {
1868
+ let colIndex = curMemberIndices[i];
1869
1869
  indexMap[colIndex] = colIndices.indexOf(colIndex);
1870
1870
  }
1871
1871
 
@@ -1897,7 +1897,7 @@ ColumnStackPlugin.prototype.getStackName = function(stackId) {
1897
1897
  * @return {string} active column id
1898
1898
  */
1899
1899
  ColumnStackPlugin.prototype.getActiveColumnId = function(stackId) {
1900
- var stack = this._groupDefs.getGroup(stackId);
1900
+ let stack = this._groupDefs.getGroup(stackId);
1901
1901
  if(stack){
1902
1902
  return stack.activeColumn || "";
1903
1903
  }
@@ -1918,7 +1918,7 @@ ColumnStackPlugin.prototype.getActiveColumnField = function(stackId) {
1918
1918
  * @return {number} active column index
1919
1919
  */
1920
1920
  ColumnStackPlugin.prototype.getActiveColumnIndex = function(stackId) {
1921
- var stack = this._groupDefs.getGroup(stackId);
1921
+ let stack = this._groupDefs.getGroup(stackId);
1922
1922
  if(stack){
1923
1923
  return this.getColumnIndex(stack.activeColumn);
1924
1924
  }
@@ -1974,7 +1974,7 @@ ColumnStackPlugin.prototype.moveColumnById = function(srcCol, destCol) {
1974
1974
  ColumnStackPlugin.prototype._updateActiveColumn = function(stackOpt) {
1975
1975
  if(_resolveActiveColumn(stackOpt)) {
1976
1976
  // TODO: Add a proper way to set visibility to activeColumn when activeColumn is changed
1977
- var activeColIndex = this.getColumnIndex(stackOpt.activeColumn);
1977
+ let activeColIndex = this.getColumnIndex(stackOpt.activeColumn);
1978
1978
  if(activeColIndex >= 0) {
1979
1979
  this._setColumnVisibility(activeColIndex, true);
1980
1980
  this._updateUI();
@@ -1991,7 +1991,7 @@ ColumnStackPlugin.prototype.hideStack = function(stackId, hidden) {
1991
1991
  if(!stackId){
1992
1992
  return;
1993
1993
  }
1994
- var stackOption = this._groupDefs.getGroup(stackId);
1994
+ let stackOption = this._groupDefs.getGroup(stackId);
1995
1995
  if(!stackOption){
1996
1996
  return;
1997
1997
  }
@@ -1999,9 +1999,9 @@ ColumnStackPlugin.prototype.hideStack = function(stackId, hidden) {
1999
1999
  if(hidden == null){
2000
2000
  hidden = true;
2001
2001
  }
2002
- var children = stackOption.children;
2003
- for(var i = 0; i < children.length; i++){
2004
- for(var g = this._hosts.length; --g >= 0;) {
2002
+ let children = stackOption.children;
2003
+ for(let i = 0; i < children.length; i++){
2004
+ for(let g = this._hosts.length; --g >= 0;) {
2005
2005
  this._hosts[g].hideColumn(this.getColumnIndex(children[i]), hidden);
2006
2006
  }
2007
2007
  }
@@ -2024,15 +2024,15 @@ ColumnStackPlugin.prototype.showStack = function(stackId) {
2024
2024
  * @return {boolean|null}
2025
2025
  */
2026
2026
  ColumnStackPlugin.prototype.isStackHidden = function(stackId) {
2027
- var stackOption = this._groupDefs.getGroup(stackId);
2028
- var host = this._host || this._hosts[0];
2027
+ let stackOption = this._groupDefs.getGroup(stackId);
2028
+ let host = this._host || this._hosts[0];
2029
2029
 
2030
2030
  if(!stackOption || !host){
2031
2031
  return null;
2032
2032
  }
2033
2033
 
2034
- var activeColIndex = this.getColumnIndex(stackOption.activeColumn);
2035
- var isVisible = host.isColumnVisible(activeColIndex);
2034
+ let activeColIndex = this.getColumnIndex(stackOption.activeColumn);
2035
+ let isVisible = host.isColumnVisible(activeColIndex);
2036
2036
 
2037
2037
  return !isVisible;
2038
2038
  };
@@ -2046,8 +2046,8 @@ ColumnStackPlugin.prototype.moveStack = function(stackId, destCol) {
2046
2046
  if(!stackId){
2047
2047
  return false;
2048
2048
  }
2049
- var colList = this.getStackMemberIds(stackId);
2050
- var dirty = this.reorderColumns(colList, destCol);
2049
+ let colList = this.getStackMemberIds(stackId);
2050
+ let dirty = this.reorderColumns(colList, destCol);
2051
2051
  return dirty;
2052
2052
  };
2053
2053
 
@@ -2060,19 +2060,19 @@ ColumnStackPlugin.prototype.pinStack = function(stackId, side) {
2060
2060
  return;
2061
2061
  }
2062
2062
 
2063
- var stack = this._groupDefs.getGroup(stackId);
2063
+ let stack = this._groupDefs.getGroup(stackId);
2064
2064
  if(!stack) {
2065
2065
  return;
2066
2066
  }
2067
2067
 
2068
- var host = this._hosts[0];
2069
- var leftPinnedIndex = host.getFrozenColumnCount() - 1;
2070
- var rightPinnedCount = host.getPinnedRightColumnCount();
2071
- var colCount = this.getColumnCount();
2072
- var colList = this.getStackMemberIds(stackId);
2073
- var len = colList.length;
2068
+ let host = this._hosts[0];
2069
+ let leftPinnedIndex = host.getFrozenColumnCount() - 1;
2070
+ let rightPinnedCount = host.getPinnedRightColumnCount();
2071
+ let colCount = this.getColumnCount();
2072
+ let colList = this.getStackMemberIds(stackId);
2073
+ let len = colList.length;
2074
2074
 
2075
- var dest;
2075
+ let dest;
2076
2076
  if(side === "right") {
2077
2077
  if(stack.rightPinned) {
2078
2078
  return;
@@ -2110,7 +2110,7 @@ ColumnStackPlugin.prototype.unpinStack = function(stackId, dest) {
2110
2110
  return;
2111
2111
  }
2112
2112
 
2113
- var stack = this._groupDefs.getGroup(stackId);
2113
+ let stack = this._groupDefs.getGroup(stackId);
2114
2114
  if(!stack) {
2115
2115
  return;
2116
2116
  }
@@ -2119,17 +2119,17 @@ ColumnStackPlugin.prototype.unpinStack = function(stackId, dest) {
2119
2119
  return;
2120
2120
  }
2121
2121
 
2122
- var host = this._hosts[0];
2123
- var leftPinnedCount = host.getFrozenColumnCount();
2124
- var rightPinnedCount = host.getPinnedRightColumnCount();
2125
- var colCount = this.getColumnCount();
2126
- var firstRightPinnedIndex = colCount - rightPinnedCount;
2127
- var colList = this.getStackMemberIds(stackId);
2128
- var len = colList.length;
2122
+ let host = this._hosts[0];
2123
+ let leftPinnedCount = host.getFrozenColumnCount();
2124
+ let rightPinnedCount = host.getPinnedRightColumnCount();
2125
+ let colCount = this.getColumnCount();
2126
+ let firstRightPinnedIndex = colCount - rightPinnedCount;
2127
+ let colList = this.getStackMemberIds(stackId);
2128
+ let len = colList.length;
2129
2129
 
2130
- var destId = null;
2130
+ let destId = null;
2131
2131
  if(dest != null) {
2132
- var destIdx = this.getColumnIndex(dest);
2132
+ let destIdx = this.getColumnIndex(dest);
2133
2133
  destId = this.getColumnId(destIdx);
2134
2134
  }
2135
2135