@refinitiv-ui/efx-grid 6.0.93 → 6.0.94

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. package/lib/formatters/es6/CoralButtonFormatter.d.ts +0 -2
  2. package/lib/formatters/es6/CoralButtonFormatter.js +9 -4
  3. package/lib/formatters/es6/CoralCheckboxFormatter.js +10 -5
  4. package/lib/formatters/es6/CoralComboBoxFormatter.js +13 -12
  5. package/lib/formatters/es6/CoralIconFormatter.d.ts +0 -2
  6. package/lib/formatters/es6/CoralIconFormatter.js +9 -4
  7. package/lib/formatters/es6/CoralInputFormatter.js +9 -4
  8. package/lib/formatters/es6/CoralRadioButtonFormatter.d.ts +0 -2
  9. package/lib/formatters/es6/CoralRadioButtonFormatter.js +20 -15
  10. package/lib/formatters/es6/CoralSelectFormatter.js +12 -7
  11. package/lib/formatters/es6/CoralToggleFormatter.js +4 -4
  12. package/lib/formatters/es6/DuplexEmeraldDateTimePickerFormatter.js +20 -20
  13. package/lib/formatters/es6/EFButtonFormatter.d.ts +0 -2
  14. package/lib/formatters/es6/EFButtonFormatter.js +9 -4
  15. package/lib/formatters/es6/EFCheckboxFormatter.js +10 -5
  16. package/lib/formatters/es6/EFComboBoxFormatter.js +17 -7
  17. package/lib/formatters/es6/EFDateTimePickerFormatter.js +11 -6
  18. package/lib/formatters/es6/EFIconFormatter.d.ts +0 -2
  19. package/lib/formatters/es6/EFIconFormatter.js +9 -4
  20. package/lib/formatters/es6/EFNumberFieldFormatter.js +9 -4
  21. package/lib/formatters/es6/EFRadioButtonFormatter.d.ts +0 -2
  22. package/lib/formatters/es6/EFRadioButtonFormatter.js +25 -15
  23. package/lib/formatters/es6/EFSelectFormatter.js +17 -7
  24. package/lib/formatters/es6/EFTextFieldFormatter.js +4 -4
  25. package/lib/formatters/es6/EFToggleFormatter.js +4 -4
  26. package/lib/formatters/es6/EmeraldDateTimePickerFormatter.js +6 -6
  27. package/lib/formatters/es6/FormatterBuilder.js +32 -32
  28. package/lib/formatters/es6/NumericInputFormatter.js +7 -7
  29. package/lib/formatters/es6/PercentBarFormatter.js +5 -5
  30. package/lib/formatters/es6/SimpleImageFormatter.js +3 -3
  31. package/lib/formatters/es6/SimpleInputFormatter.js +4 -4
  32. package/lib/formatters/es6/SimpleLinkFormatter.js +4 -4
  33. package/lib/formatters/es6/SimpleTickerFormatter.js +5 -5
  34. package/lib/formatters/es6/SimpleToggleFormatter.js +16 -16
  35. package/lib/formatters/es6/TextFormatter.js +4 -4
  36. package/lib/grid/index.js +1 -1
  37. package/lib/tr-grid-cell-selection/es6/CellSelection.js +1 -1
  38. package/lib/tr-grid-row-dragging/es6/RowDragging.js +1 -1
  39. package/lib/tr-grid-row-grouping/es6/RowGrouping.js +139 -137
  40. package/lib/tr-grid-row-selection/es6/RowSelection.js +260 -279
  41. package/lib/tr-grid-util/es6/DragUI.js +1 -1
  42. package/lib/types/es6/ColumnGrouping.d.ts +1 -2
  43. package/lib/versions.json +6 -6
  44. package/package.json +1 -1
@@ -126,8 +126,8 @@ import { injectCss, prettifyCss } from "../../tr-grid-util/es6/Util.js";
126
126
  * @extends {GridPlugin}
127
127
  * @param {RowGroupingPlugin~Options=} options Extension's configuration object
128
128
  */
129
- var RowGroupingPlugin = function (options) {
130
- var t = this;
129
+ let RowGroupingPlugin = function (options) {
130
+ let t = this;
131
131
  t._onColumnIndexChanged = t._onColumnIndexChanged.bind(t);
132
132
  t._getRowsForContentAsHeader = t._getRowsForContentAsHeader.bind(t);
133
133
  t._onPostSectionDataBinding = t._onPostSectionDataBinding.bind(t);
@@ -298,7 +298,7 @@ RowGroupingPlugin.prototype._criteriaGetter = null;
298
298
  * @return {Array.<string>}
299
299
  */
300
300
  RowGroupingPlugin._defaultCriteriaGetter = function (field, dvRowData) {
301
- var val = dvRowData[field];
301
+ let val = dvRowData[field];
302
302
  return RowGroupingPlugin._toArrayOfString(val);
303
303
  };
304
304
  /** @private
@@ -308,8 +308,8 @@ RowGroupingPlugin._defaultCriteriaGetter = function (field, dvRowData) {
308
308
  * @return {Array.<string>}
309
309
  */
310
310
  RowGroupingPlugin._rowDefCriteriaGetter = function (field, dvRowData) {
311
- var rowData = /** @type{Object} */(dvRowData.ROW_DEF.getRowData());
312
- var val = rowData[field];
311
+ let rowData = /** @type{Object} */(dvRowData.ROW_DEF.getRowData());
312
+ let val = rowData[field];
313
313
  return RowGroupingPlugin._toArrayOfString(val);
314
314
  };
315
315
  /** @private
@@ -332,8 +332,8 @@ RowGroupingPlugin._toArrayOfString = function (data) {
332
332
  */
333
333
  RowGroupingPlugin.prototype._findCheckboxColumnIndexFromConfig = function (columns) {
334
334
  if (!Array.isArray(columns)) return -1;
335
- var index = -1, c = columns.length;
336
- for (var i = 0; i < c; i++) {
335
+ let index = -1, c = columns.length;
336
+ for (let i = 0; i < c; i++) {
337
337
  if (columns[i].checkboxColumn) {
338
338
  index = i;
339
339
  break;
@@ -408,7 +408,7 @@ RowGroupingPlugin.prototype.initialize = function (host, options) {
408
408
 
409
409
  this.config(options);
410
410
 
411
- var enabled = this._colorTag != null ? this._colorTag : ElfUtil.isHaloTheme();
411
+ let enabled = this._colorTag != null ? this._colorTag : ElfUtil.isHaloTheme();
412
412
  RowPainter.disableColorTag(host, enabled === false);
413
413
 
414
414
  if (this._predefinedColors != null) {
@@ -424,7 +424,7 @@ RowGroupingPlugin.prototype.initialize = function (host, options) {
424
424
  * @param {Object=} host core grid object
425
425
  */
426
426
  RowGroupingPlugin.prototype.unload = function (host) {
427
- var at = this._hosts.indexOf(host);
427
+ let at = this._hosts.indexOf(host);
428
428
  if (at < 0) {
429
429
  return;
430
430
  }
@@ -457,7 +457,7 @@ RowGroupingPlugin.prototype.unload = function (host) {
457
457
  RowGroupingPlugin.prototype.config = function (options) {
458
458
  if (!options) { return; }
459
459
 
460
- var option = options.rowGrouping;
460
+ let option = options.rowGrouping;
461
461
  if (option) {
462
462
  if (option.autoGroupRemoval != null) {
463
463
  this._autoGroupRemoval = !!option.autoGroupRemoval;
@@ -499,11 +499,11 @@ RowGroupingPlugin.prototype.config = function (options) {
499
499
  option.groupFooterBinding = option.footerBinding;
500
500
  }
501
501
  if (option.hiddenArrow != null) {
502
- var hiddenOption = option.hiddenArrow;
502
+ let hiddenOption = option.hiddenArrow;
503
503
  if (Array.isArray(hiddenOption)) {
504
- var len = hiddenOption.length;
504
+ let len = hiddenOption.length;
505
505
  this._hiddenArrow = {};
506
- for (var i = 0; i < len; i++) {
506
+ for (let i = 0; i < len; i++) {
507
507
  this._hiddenArrow[hiddenOption[i]] = true;
508
508
  }
509
509
  } else if (typeof hiddenOption === "number") {
@@ -519,7 +519,7 @@ RowGroupingPlugin.prototype.config = function (options) {
519
519
  if (option.clickableCell != null) {
520
520
  this._clickableCell = !!option.clickableCell;
521
521
  }
522
- var indentSize = option.indentSize;
522
+ let indentSize = option.indentSize;
523
523
  if (indentSize != null) {
524
524
  if (typeof indentSize === "boolean") {
525
525
  if (indentSize) {
@@ -529,7 +529,7 @@ RowGroupingPlugin.prototype.config = function (options) {
529
529
  } // TODO: Handle default case
530
530
  } else if (typeof indentSize === "number") {
531
531
  this._indentSizes = new Array(5);
532
- for (var j = 0; j < 5; j++) {
532
+ for (let j = 0; j < 5; j++) {
533
533
  this._indentSizes[j] = indentSize * j;
534
534
  }
535
535
  } else if (Array.isArray(indentSize)) {
@@ -578,7 +578,7 @@ RowGroupingPlugin.prototype.config = function (options) {
578
578
  });
579
579
 
580
580
  if (this._fixedDisplayColumn < 0) {
581
- var checkboxColumnIndex = this._findCheckboxColumnIndexFromConfig(options.columns);
581
+ let checkboxColumnIndex = this._findCheckboxColumnIndexFromConfig(options.columns);
582
582
  if (checkboxColumnIndex >= 0) { // has checkbox column
583
583
  /** 27/04/21
584
584
  * NOTE:: checkbox column could be
@@ -604,9 +604,9 @@ RowGroupingPlugin.prototype.config = function (options) {
604
604
  * @return {!Object}
605
605
  */
606
606
  RowGroupingPlugin.prototype.getConfigObject = function (gridOptions) {
607
- var obj = gridOptions || {};
607
+ let obj = gridOptions || {};
608
608
 
609
- var extOptions = obj.rowGrouping;
609
+ let extOptions = obj.rowGrouping;
610
610
  if(!extOptions) {
611
611
  extOptions = obj.rowGrouping = {};
612
612
  }
@@ -619,7 +619,7 @@ RowGroupingPlugin.prototype.getConfigObject = function (gridOptions) {
619
619
  if(this._predefinedGroups) {
620
620
  extOptions.predefinedGroups = this._predefinedGroups;
621
621
  }
622
- var criterion = this._criteria.filter(isNonFunction);
622
+ let criterion = this._criteria.filter(isNonFunction);
623
623
  if(criterion.length) {
624
624
  extOptions.groupBy = criterion;
625
625
  }
@@ -637,8 +637,8 @@ RowGroupingPlugin.prototype.getConfigObject = function (gridOptions) {
637
637
  if(this._hiddenArrow === true) {
638
638
  extOptions.hiddenArrow = true;
639
639
  } else {
640
- var hiddenArrows = extOptions.hiddenArrow = [];
641
- for(var key in this._hiddenArrow) {
640
+ let hiddenArrows = extOptions.hiddenArrow = [];
641
+ for(let key in this._hiddenArrow) {
642
642
  hiddenArrows.push(+key);
643
643
  }
644
644
  }
@@ -668,7 +668,7 @@ RowGroupingPlugin.prototype.getConfigObject = function (gridOptions) {
668
668
  extOptions.predefinedColors = this._predefinedColors;
669
669
  }
670
670
 
671
- var defaultCollapse = this.getDefaultCollapse();
671
+ let defaultCollapse = this.getDefaultCollapse();
672
672
  if(defaultCollapse != null) {
673
673
  extOptions.defaultCollapse = defaultCollapse;
674
674
  }
@@ -687,12 +687,12 @@ RowGroupingPlugin.prototype.getColumnMenu = function (colIndex, config) {
687
687
  config = {};
688
688
  }
689
689
 
690
- var menus = config.menus;
690
+ let menus = config.menus;
691
691
  if (!menus) {
692
692
  menus = config.menus = [];
693
693
  }
694
694
 
695
- var menu = menus[0];
695
+ let menu = menus[0];
696
696
  if (!menu) {
697
697
  menu = menus[0] = {
698
698
  menuItems: []
@@ -700,9 +700,9 @@ RowGroupingPlugin.prototype.getColumnMenu = function (colIndex, config) {
700
700
  }
701
701
 
702
702
  // Menu items for this extension
703
- var field = this._getField(colIndex);
704
- var isGrouping = this.hasGroupingCriteria();
705
- var extMenuItems = [{
703
+ let field = this._getField(colIndex);
704
+ let isGrouping = this.hasGroupingCriteria();
705
+ let extMenuItems = [{
706
706
  indexScore: 200,
707
707
  label: "Group",
708
708
  group: "FREQUENTLY_USED",
@@ -751,10 +751,10 @@ RowGroupingPlugin.prototype.getColumnMenu = function (colIndex, config) {
751
751
  * @param {Object} predefinedColors Predefined color object map
752
752
  */
753
753
  RowGroupingPlugin.prototype._injectStyles = function(predefinedColors) {
754
- var prefix = ".tr-grid." + RowGroupingPlugin._controlClass + " .tr-lg .cell";
755
- var css = [];
756
- var value;
757
- for (var className in predefinedColors) {
754
+ let prefix = ".tr-grid." + RowGroupingPlugin._controlClass + " .tr-lg .cell";
755
+ let css = [];
756
+ let value;
757
+ for (let className in predefinedColors) {
758
758
  css.push(prefix + "." + className + "::before");
759
759
  value = predefinedColors[className]["backgroundColor"];
760
760
  if (value) {
@@ -762,7 +762,7 @@ RowGroupingPlugin.prototype._injectStyles = function(predefinedColors) {
762
762
  }
763
763
  }
764
764
 
765
- var host = this._hosts[0];
765
+ let host = this._hosts[0];
766
766
 
767
767
  if (this._styleTag) {
768
768
  if (this._styleTag.parentNode) {
@@ -777,7 +777,7 @@ RowGroupingPlugin.prototype._injectStyles = function(predefinedColors) {
777
777
  * @param {Object} e
778
778
  */
779
779
  RowGroupingPlugin.prototype._onItemGroupColumnClicked = function (e) {
780
- var field = this._getField(e.currentTarget.value.colIndex);
780
+ let field = this._getField(e.currentTarget.value.colIndex);
781
781
  this._addGroup(field);
782
782
  this._hideColumnMenu();
783
783
  };
@@ -786,7 +786,7 @@ RowGroupingPlugin.prototype._onItemGroupColumnClicked = function (e) {
786
786
  * @param {Object} e
787
787
  */
788
788
  RowGroupingPlugin.prototype._onItemUnGroupColumnClicked = function (e) {
789
- var field = this._getField(e.currentTarget.value.colIndex);
789
+ let field = this._getField(e.currentTarget.value.colIndex);
790
790
  this._ungroup(field);
791
791
  this._hideColumnMenu();
792
792
  };
@@ -810,8 +810,8 @@ RowGroupingPlugin.prototype._onItemCollapseAllClicked = function (e) {
810
810
  /** @private
811
811
  */
812
812
  RowGroupingPlugin.prototype._hideColumnMenu = function () {
813
- var host = this._hosts[0];
814
- var columnMenuExt = host.getPlugin('ColumnMenuPlugin');
813
+ let host = this._hosts[0];
814
+ let columnMenuExt = host.getPlugin('ColumnMenuPlugin');
815
815
  if (columnMenuExt) columnMenuExt.hide();
816
816
  };
817
817
 
@@ -819,8 +819,8 @@ RowGroupingPlugin.prototype._hideColumnMenu = function () {
819
819
  * @param {string} field
820
820
  */
821
821
  RowGroupingPlugin.prototype._addGroup = function (field) {
822
- var criteria = this.getGroupingCriteria();
823
- var index = criteria.indexOf(field);
822
+ let criteria = this.getGroupingCriteria();
823
+ let index = criteria.indexOf(field);
824
824
  if (index < 0) {
825
825
  criteria.push(field);
826
826
  }
@@ -832,8 +832,8 @@ RowGroupingPlugin.prototype._addGroup = function (field) {
832
832
  * @param {string} field
833
833
  */
834
834
  RowGroupingPlugin.prototype._ungroup = function (field) {
835
- var criteria = this.getGroupingCriteria();
836
- var index = criteria.indexOf(field);
835
+ let criteria = this.getGroupingCriteria();
836
+ let index = criteria.indexOf(field);
837
837
  if (index >= 0) {
838
838
  criteria.splice(index, 1);
839
839
  }
@@ -900,7 +900,7 @@ RowGroupingPlugin.prototype._applyGrouping = function () {
900
900
  return;
901
901
  }
902
902
 
903
- var dv = this.getDataView();
903
+ let dv = this.getDataView();
904
904
  if (!dv) {
905
905
  return;
906
906
  }
@@ -936,7 +936,7 @@ RowGroupingPlugin.prototype._applyGrouping = function () {
936
936
  * @return {Object} DataView instance
937
937
  */
938
938
  RowGroupingPlugin.prototype.getDataView = function () {
939
- var host = this._hosts[0];
939
+ let host = this._hosts[0];
940
940
  if (host) {
941
941
  return host.getDataSource();
942
942
  }
@@ -949,10 +949,10 @@ RowGroupingPlugin.prototype.getDataView = function () {
949
949
  * The two first parameters passed to the function are group value that separates group. <br>
950
950
  * The two last parameters passed to the function are data views of corresponding group.
951
951
  * @example
952
- * var compare = function(grpA, grpB, dataViewA, dataViewB) {
952
+ * let compare = function(grpA, grpB, dataViewA, dataViewB) {
953
953
  * return (grpA <= grpB) ? -1 : 1;
954
954
  * }
955
- * var dstp = new RowGroupingExtension();
955
+ * let dstp = new RowGroupingExtension();
956
956
  * dstp.setGroupSortingLogic(compare);
957
957
  */
958
958
  RowGroupingPlugin.prototype.setGroupSortingLogic = function (sortFunction) {
@@ -986,7 +986,7 @@ RowGroupingPlugin.prototype.setPredefinedGroups = function (predefinedGroups) {
986
986
  }
987
987
  this._predefinedGroups = predefinedGroups;
988
988
 
989
- var dv = this.getDataView();
989
+ let dv = this.getDataView();
990
990
  if (dv) {
991
991
  dv.setPredefinedGroups(this._predefinedGroups);
992
992
  }
@@ -1006,7 +1006,7 @@ RowGroupingPlugin.prototype.setPredefinedColors = function(predefinedColors) {
1006
1006
  * @param {boolean} collapse Predefined color object map
1007
1007
  */
1008
1008
  RowGroupingPlugin.prototype.setDefaultCollapse = function(collapse) {
1009
- var dv = this.getDataView();
1009
+ let dv = this.getDataView();
1010
1010
  if (dv) {
1011
1011
  dv.setDefaultCollapse(collapse);
1012
1012
  }
@@ -1017,14 +1017,14 @@ RowGroupingPlugin.prototype.setDefaultCollapse = function(collapse) {
1017
1017
  * @param {string} groupColor color name from predefinedColors
1018
1018
  */
1019
1019
  RowGroupingPlugin.prototype.setGroupColor = function(groupRef, groupColor) {
1020
- var dv = this.getDataView();
1020
+ let dv = this.getDataView();
1021
1021
  if(!dv) {
1022
1022
  return;
1023
1023
  }
1024
- var grp = dv.getGroup(groupRef);
1024
+ let grp = dv.getGroup(groupRef);
1025
1025
  if(grp) {
1026
1026
  grp.setGroupColor(groupColor);
1027
- var host = this._hosts[0];
1027
+ let host = this._hosts[0];
1028
1028
  if(host) {
1029
1029
  host.requestRowRefresh();
1030
1030
  }
@@ -1035,7 +1035,7 @@ RowGroupingPlugin.prototype.setGroupColor = function(groupRef, groupColor) {
1035
1035
  * @return {boolean}
1036
1036
  */
1037
1037
  RowGroupingPlugin.prototype.getDefaultCollapse = function() {
1038
- var dv = this.getDataView();
1038
+ let dv = this.getDataView();
1039
1039
  if (dv) {
1040
1040
  return dv.getDefaultCollapse();
1041
1041
  }
@@ -1048,7 +1048,7 @@ RowGroupingPlugin.prototype.getDefaultCollapse = function() {
1048
1048
  RowGroupingPlugin.prototype.sortGroups = function () {
1049
1049
  this._sortingTimer = 0;
1050
1050
  if (this._groupSortFunction) {
1051
- var dv = this.getDataView();
1051
+ let dv = this.getDataView();
1052
1052
  if (dv) {
1053
1053
  dv.sortGroups(this._groupSortFunction);
1054
1054
  }
@@ -1075,8 +1075,8 @@ RowGroupingPlugin.prototype._onPostSectionDataBinding = function (e) {
1075
1075
  * @return {number}
1076
1076
  */
1077
1077
  RowGroupingPlugin._standardGroupSortFunction = function (valA, valB) {
1078
- var strA = "" + valA;
1079
- var strB = "" + valB;
1078
+ let strA = "" + valA;
1079
+ let strB = "" + valB;
1080
1080
  if (strA < strB) {
1081
1081
  return -1;
1082
1082
  }
@@ -1095,7 +1095,7 @@ RowGroupingPlugin.prototype._isArrowHidden = function(dv) {
1095
1095
  if (this._hiddenArrow === true) {
1096
1096
  return true;
1097
1097
  } else { // Object map
1098
- var lvl = dv.getGroupLevel();
1098
+ let lvl = dv.getGroupLevel();
1099
1099
  if (this._hiddenArrow[lvl]) {
1100
1100
  return true;
1101
1101
  }
@@ -1110,7 +1110,7 @@ RowGroupingPlugin.prototype._isArrowHidden = function(dv) {
1110
1110
  */
1111
1111
  RowGroupingPlugin.prototype._hasGroupHeader = function (settings) {
1112
1112
  if (settings && settings.getType() === "content") {
1113
- var dv = settings.getDataSource();
1113
+ let dv = settings.getDataSource();
1114
1114
  if (dv) {
1115
1115
  return dv.hasGroup();
1116
1116
  }
@@ -1122,20 +1122,20 @@ RowGroupingPlugin.prototype._hasGroupHeader = function (settings) {
1122
1122
  * @param {number} colIndex
1123
1123
  */
1124
1124
  RowGroupingPlugin.prototype._clearSectionStyles = function (colIndex) {
1125
- var host = this._hosts[0];
1125
+ let host = this._hosts[0];
1126
1126
  if (!host || !(colIndex >= 0)) {
1127
1127
  return;
1128
1128
  }
1129
1129
  // TODO: Optimize by checking isHeaderColumn flag
1130
1130
 
1131
- var sections = host.getAllSections("content");
1132
- var rowPainter = this._rowPainter;
1133
- for (var i = sections.length; --i >= 0;) {
1134
- var section = sections[i];
1131
+ let sections = host.getAllSections("content");
1132
+ let rowPainter = this._rowPainter;
1133
+ for (let i = sections.length; --i >= 0;) {
1134
+ let section = sections[i];
1135
1135
 
1136
- var fi = section.getFirstIndexInView();
1137
- var li = section.getLastIndexInView();
1138
- for (var r = fi; r <= li; r++) {
1136
+ let fi = section.getFirstIndexInView();
1137
+ let li = section.getLastIndexInView();
1138
+ for (let r = fi; r <= li; r++) {
1139
1139
  rowPainter.removeAllStyles(section, colIndex, r);
1140
1140
  }
1141
1141
  }
@@ -1146,8 +1146,8 @@ RowGroupingPlugin.prototype._clearSectionStyles = function (colIndex) {
1146
1146
  * @return {number} headerColumn index, return -1 = not found
1147
1147
  */
1148
1148
  RowGroupingPlugin.prototype._getHeaderColumnIndex = function () {
1149
- var colCount = this.getColumnCount();
1150
- for (var columnIndex = 0; columnIndex < colCount; columnIndex++) {
1149
+ let colCount = this.getColumnCount();
1150
+ for (let columnIndex = 0; columnIndex < colCount; columnIndex++) {
1151
1151
  if (this._getColumnOption(columnIndex, "isHeaderColumn")) {
1152
1152
  return columnIndex;
1153
1153
  }
@@ -1159,7 +1159,7 @@ RowGroupingPlugin.prototype._getHeaderColumnIndex = function () {
1159
1159
  * @param {Object} e
1160
1160
  */
1161
1161
  RowGroupingPlugin.prototype._onGroupCriteriaChanged = function (e) {
1162
- var dv = e.sender;
1162
+ let dv = e.sender;
1163
1163
 
1164
1164
  if (dv.hasGroup()) {
1165
1165
  if (this._fixedDisplayColumn < 0 // no fixed index
@@ -1184,7 +1184,7 @@ RowGroupingPlugin.prototype._onGroupAdded = function (e) {
1184
1184
  if (this._footerRows) {
1185
1185
  e.newGroup.addFooter(this._footerRows);
1186
1186
  }
1187
- var newGroup = e.newGroup;
1187
+ let newGroup = e.newGroup;
1188
1188
  // WARNING: contentAsHeader mode is overwrite arrow hidden to boolean
1189
1189
  if(!this._contentAsHeader && newGroup.disableCollapsing) {
1190
1190
  if(this._isArrowHidden(newGroup)) {
@@ -1192,10 +1192,10 @@ RowGroupingPlugin.prototype._onGroupAdded = function (e) {
1192
1192
  }
1193
1193
  }
1194
1194
 
1195
- var groupColors = this._groupColors;
1196
- var groupColor;
1195
+ let groupColors = this._groupColors;
1196
+ let groupColor;
1197
1197
  if(groupColors) { // Backward compatibility
1198
- var groupId = newGroup.getGroupId();
1198
+ let groupId = newGroup.getGroupId();
1199
1199
  groupColor = groupColors[groupId];
1200
1200
  if(groupColor) {
1201
1201
  newGroup.setGroupColor(groupColor);
@@ -1228,8 +1228,8 @@ RowGroupingPlugin.prototype._updateDisplayColumn = function () {
1228
1228
  if (this._shouldUpdateDisplayColumn) {
1229
1229
  this._shouldUpdateDisplayColumn = false;
1230
1230
 
1231
- var host = this._hosts[0];
1232
- var c, colCount = host.getColumnCount();
1231
+ let host = this._hosts[0];
1232
+ let c, colCount = host.getColumnCount();
1233
1233
  this._headerColumn = this._getHeaderColumnIndex();
1234
1234
 
1235
1235
  if (this._displayColumn < 0) {
@@ -1245,7 +1245,7 @@ RowGroupingPlugin.prototype._updateDisplayColumn = function () {
1245
1245
  }
1246
1246
  }
1247
1247
 
1248
- var tgtHeaderColumn = -1;
1248
+ let tgtHeaderColumn = -1;
1249
1249
  if (this._displayColumn >= 0) {
1250
1250
  for (c = this._displayColumn; c < colCount; ++c) {
1251
1251
  if (host.isColumnVisible(c)) {
@@ -1258,9 +1258,10 @@ RowGroupingPlugin.prototype._updateDisplayColumn = function () {
1258
1258
  }
1259
1259
 
1260
1260
  if (this._headerColumn !== tgtHeaderColumn) {
1261
+ let colData;
1261
1262
  this._clearSectionStyles(this._headerColumn);
1262
1263
  if (this._headerColumn >= 0) {
1263
- var colData = this._getColumnData(this._headerColumn);
1264
+ colData = this._getColumnData(this._headerColumn);
1264
1265
  if (colData) {
1265
1266
  colData.isHeaderColumn = false;
1266
1267
  }
@@ -1289,47 +1290,47 @@ RowGroupingPlugin.prototype._updateHeader = function (settings, firstRowIndex, l
1289
1290
  return;
1290
1291
  }
1291
1292
 
1292
- var headerColumn = this._updateDisplayColumn();
1293
+ let headerColumn = this._updateDisplayColumn();
1293
1294
  if (headerColumn < 0) {
1294
1295
  return;
1295
1296
  } else if (!this._getColumnOption(headerColumn, "isHeaderColumn")) {
1296
1297
  return; // Workaround: Newly inserted column doesn't have the flag
1297
1298
  }
1298
1299
 
1299
- var dataSource = settings.getDataSource();
1300
- var section = settings.getSection();
1301
- var fi = (firstRowIndex != null) ? firstRowIndex : section.getFirstIndexInView();
1302
- var li = (lastRowIndex != null) ? lastRowIndex : section.getLastIndexInView();
1303
- var rowsForContentHeader = this._getRowsForContentAsHeader();
1300
+ let dataSource = settings.getDataSource();
1301
+ let section = settings.getSection();
1302
+ let fi = (firstRowIndex != null) ? firstRowIndex : section.getFirstIndexInView();
1303
+ let li = (lastRowIndex != null) ? lastRowIndex : section.getLastIndexInView();
1304
+ let rowsForContentHeader = this._getRowsForContentAsHeader();
1304
1305
 
1305
- var maxColWidth = -1; // -1 means no limit
1306
- var colCell = section.getCell(headerColumn, 0, false);
1306
+ let maxColWidth = -1; // -1 means no limit
1307
+ let colCell = section.getCell(headerColumn, 0, false);
1307
1308
  if (!this._headerSpanning && colCell) {
1308
1309
  maxColWidth = colCell.getWidth() - 27; // Ensure padding will subtract icon width (25px for halo, 27px for solar)
1309
1310
  }
1310
1311
 
1311
- var colCount = section.getColumnCount();
1312
- var nonGroupListener = this.hasListener("nonGroupBinding");
1313
- var curGroupLevel = dataSource.getGroupLevel(fi);
1314
- var arg = {
1312
+ let colCount = section.getColumnCount();
1313
+ let nonGroupListener = this.hasListener("nonGroupBinding");
1314
+ let curGroupLevel = dataSource.getGroupLevel(fi);
1315
+ let arg = {
1315
1316
  section: section,
1316
1317
  colCount: colCount
1317
1318
  };
1318
- var currentGroup;
1319
- var needCal = this._autoGroupHiding || this._contentAsHeader;
1319
+ let currentGroup;
1320
+ let needCal = this._autoGroupHiding || this._contentAsHeader;
1320
1321
 
1321
- for (var c = 0; c < colCount; c++) {
1322
+ for (let c = 0; c < colCount; c++) {
1322
1323
  if(this._getColumnOption(c, "isCheckboxColumn")) {
1323
1324
  arg.checkboxColumnIndex = c;
1324
1325
  break;
1325
1326
  }
1326
1327
  }
1327
1328
 
1328
- var rowPainter = this._rowPainter;
1329
- for (var r = fi; r <= li; r++) {
1330
- var indentOffset = 0;
1331
- var rowId = dataSource.getRowId(r); // Slow
1332
- var cell = section.getCell(headerColumn, r, false); // Work only one row
1329
+ let rowPainter = this._rowPainter;
1330
+ for (let r = fi; r <= li; r++) {
1331
+ let indentOffset = 0;
1332
+ let rowId = dataSource.getRowId(r); // Slow
1333
+ let cell = section.getCell(headerColumn, r, false); // Work only one row
1333
1334
  if (!cell) { // There may be no header to be updated
1334
1335
  continue;
1335
1336
  }
@@ -1341,14 +1342,15 @@ RowGroupingPlugin.prototype._updateHeader = function (settings, firstRowIndex, l
1341
1342
  arg.rowData = this._rowGetter(dataSource.getRowData(rowId));
1342
1343
  arg.noIndent = false;
1343
1344
 
1344
- var contentHeaderGroup = rowsForContentHeader[rowId];
1345
- var groupView = dataSource.getGroupByRowId(rowId);
1345
+ let contentHeaderGroup = rowsForContentHeader[rowId];
1346
+ let groupView = dataSource.getGroupByRowId(rowId);
1347
+ let footerRow = false;
1346
1348
  if (groupView) { // Header Render
1347
1349
  currentGroup = groupView;
1348
1350
  curGroupLevel = groupView.getGroupLevel();
1349
1351
 
1350
1352
  arg.footerIndex = groupView.getFooterRowIndex(rowId);
1351
- var footerRow = arg.footerRow = (arg.footerIndex >= 0);
1353
+ footerRow = arg.footerRow = (arg.footerIndex >= 0);
1352
1354
  arg.groupId = groupView.getGroupId();
1353
1355
  arg.dataSource = groupView;
1354
1356
  arg.collapsed = groupView.isCollapsed();
@@ -1387,8 +1389,8 @@ RowGroupingPlugin.prototype._updateHeader = function (settings, firstRowIndex, l
1387
1389
 
1388
1390
  arg.groupLevel = curGroupLevel;
1389
1391
 
1390
- var rowLevel = 0;
1391
- var nonGroupRow = this._autoGroupHiding && currentGroup.getGroupValue() == null && curGroupLevel === 1 && !this._contentAsHeader;
1392
+ let rowLevel = 0;
1393
+ let nonGroupRow = this._autoGroupHiding && currentGroup.getGroupValue() == null && curGroupLevel === 1 && !this._contentAsHeader;
1392
1394
  arg.nonGroupRow = nonGroupRow;
1393
1395
 
1394
1396
  if (arg.noIndent || nonGroupRow) { // if user specific indent level, and if group hidden
@@ -1399,11 +1401,11 @@ RowGroupingPlugin.prototype._updateHeader = function (settings, firstRowIndex, l
1399
1401
  rowLevel = curGroupLevel + indentOffset; // content have indent more than header 1
1400
1402
  }
1401
1403
 
1402
- var indentSize = 0;
1404
+ let indentSize = 0;
1403
1405
  if(this._indentSizes) {
1404
1406
  indentSize = this._indentSizes[0];
1405
1407
  if(rowLevel > 0) {
1406
- var indentLimit = this._indentSizes.length;
1408
+ let indentLimit = this._indentSizes.length;
1407
1409
  indentSize = rowLevel < indentLimit ? this._indentSizes[rowLevel] : this._indentSizes[indentLimit - 1];
1408
1410
  }
1409
1411
  } else if(rowLevel > 0) {
@@ -1416,19 +1418,19 @@ RowGroupingPlugin.prototype._updateHeader = function (settings, firstRowIndex, l
1416
1418
  indentSize = maxColWidth;
1417
1419
  }
1418
1420
 
1419
- var groupColor;
1421
+ let groupColor;
1420
1422
  if(currentGroup.getGroupColor) {
1421
1423
  groupColor = currentGroup.getGroupColor();
1422
1424
  } else { // Backward compatibility
1423
1425
  if (this._groupColors) {
1424
1426
  // TODO: Need better method to find the first level parent's group id
1425
- var rootGroup = currentGroup ? currentGroup : dataSource.getGroup(rowId); // Slow
1427
+ let rootGroup = currentGroup ? currentGroup : dataSource.getGroup(rowId); // Slow
1426
1428
  if (curGroupLevel > 1) {
1427
- for (var i = curGroupLevel; i > 1; i--) {
1429
+ for (let i = curGroupLevel; i > 1; i--) {
1428
1430
  rootGroup = rootGroup.getDataSource();
1429
1431
  }
1430
1432
  }
1431
- var groupId = rootGroup.getGroupId();
1433
+ let groupId = rootGroup.getGroupId();
1432
1434
  groupColor = this._groupColors[groupId];
1433
1435
  }
1434
1436
  }
@@ -1457,13 +1459,13 @@ RowGroupingPlugin.prototype._updateHeader = function (settings, firstRowIndex, l
1457
1459
  RowGroupingPlugin.prototype._getRowsForContentAsHeader = function () {
1458
1460
  if (!this._contentAsHeader) return {};
1459
1461
 
1460
- var result = {};
1461
- var dv = this.getDataView();
1462
- var allGroups = dv.getAllGroups();
1463
- for (var grpId in allGroups) {
1464
- var grp = allGroups[grpId];
1462
+ let result = {};
1463
+ let dv = this.getDataView();
1464
+ let allGroups = dv.getAllGroups();
1465
+ for (let grpId in allGroups) {
1466
+ let grp = allGroups[grpId];
1465
1467
  if (!grp.hasGroup()) { // Deepest level group
1466
- var firstRowId = grp.getAllRowIds(true)[0]; // Prepare first row in group for contentAsHeader mode to use.
1468
+ let firstRowId = grp.getAllRowIds(true)[0]; // Prepare first row in group for contentAsHeader mode to use.
1467
1469
  if (firstRowId) {
1468
1470
  result[firstRowId] = grp;
1469
1471
  }
@@ -1493,13 +1495,13 @@ RowGroupingPlugin.prototype._onColumnIndexChanged = function (e) {
1493
1495
  RowGroupingPlugin.prototype.updateHeaders = function () {
1494
1496
  this._timerId = 0;
1495
1497
  this._shouldUpdateDisplayColumn = true;
1496
- var host = this._hosts[0];
1498
+ let host = this._hosts[0];
1497
1499
  if (!host || this._disabled) {
1498
1500
  return;
1499
1501
  }
1500
1502
 
1501
- var settingList = host.getAllSectionSettings("content");
1502
- for (var i = settingList.length; --i >= 0;) {
1503
+ let settingList = host.getAllSectionSettings("content");
1504
+ for (let i = settingList.length; --i >= 0;) {
1503
1505
  this._updateHeader(settingList[i]);
1504
1506
  }
1505
1507
  };
@@ -1509,10 +1511,10 @@ RowGroupingPlugin.prototype.updateHeaders = function () {
1509
1511
  * @param {boolean=} opt_collapsed=true
1510
1512
  */
1511
1513
  RowGroupingPlugin.prototype._collapseDataRowId = function (rowId, opt_collapsed) {
1512
- var dv = this.getDataView();
1514
+ let dv = this.getDataView();
1513
1515
  if (dv) {
1514
- var rowsForContentHeader = this._getRowsForContentAsHeader();
1515
- var grp = rowsForContentHeader[rowId];
1516
+ let rowsForContentHeader = this._getRowsForContentAsHeader();
1517
+ let grp = rowsForContentHeader[rowId];
1516
1518
  if (grp) {
1517
1519
  grp.collapse(opt_collapsed);
1518
1520
  }
@@ -1525,21 +1527,21 @@ RowGroupingPlugin.prototype._collapseDataRowId = function (rowId, opt_collapsed)
1525
1527
  RowGroupingPlugin.prototype._onCellClicked = function (e) {
1526
1528
  if (this._clickDisabled) { return; }
1527
1529
 
1528
- var changed = false;
1529
- var host = this._hosts[0];
1530
- var info = host.getRelativePosition(e);
1531
- var cellElem = info.cell ? info.cell.getElement() : null;
1530
+ let changed = false;
1531
+ let host = this._hosts[0];
1532
+ let info = host.getRelativePosition(e);
1533
+ let cellElem = info.cell ? info.cell.getElement() : null;
1532
1534
  if(!cellElem) {
1533
1535
  return;
1534
1536
  }
1535
1537
 
1536
- var collapsed = cellElem.classList.contains("closed");
1537
- var rowIndex = info.rowIndex;
1538
- var settings = info.sectionSettings;
1538
+ let collapsed = cellElem.classList.contains("closed");
1539
+ let rowIndex = info.rowIndex;
1540
+ let settings = info.sectionSettings;
1539
1541
 
1540
- var dv = settings.getDataSource();
1541
- var rowId = dv.getRowId(rowIndex);
1542
- var grpView = dv.getGroupByRowId(rowId);
1542
+ let dv = settings.getDataSource();
1543
+ let rowId = dv.getRowId(rowIndex);
1544
+ let grpView = dv.getGroupByRowId(rowId);
1543
1545
  if (grpView) {
1544
1546
  changed = true;
1545
1547
  if(grpView.isCollapsible && !grpView.isCollapsible()) { // Prevent applied styles
@@ -1565,10 +1567,10 @@ RowGroupingPlugin.prototype._onCellClicked = function (e) {
1565
1567
 
1566
1568
  /** @private */
1567
1569
  RowGroupingPlugin.prototype._updateCursor = function () {
1568
- var host = this._hosts[0]; // TODO: Make this work for multi-table
1570
+ let host = this._hosts[0]; // TODO: Make this work for multi-table
1569
1571
  if (host) {
1570
- var disableExpander = false;
1571
- var disableFolder = false;
1572
+ let disableExpander = false;
1573
+ let disableFolder = false;
1572
1574
  if (!this._clickableCell) {
1573
1575
  disableFolder = true;
1574
1576
  }
@@ -1612,7 +1614,7 @@ RowGroupingPlugin.prototype.expandAll = function (opt_expanded) {
1612
1614
  * @param {boolean=} opt_collapsed
1613
1615
  */
1614
1616
  RowGroupingPlugin.prototype.collapseAll = function (opt_collapsed) {
1615
- var dv = this.getDataView();
1617
+ let dv = this.getDataView();
1616
1618
  if (dv) {
1617
1619
  dv.collapseAllGroups(opt_collapsed);
1618
1620
  }
@@ -1630,9 +1632,9 @@ RowGroupingPlugin.prototype.expand = function (groupRowId, opt_expanded) {
1630
1632
  * @param {boolean=} opt_collapsed
1631
1633
  */
1632
1634
  RowGroupingPlugin.prototype.collapse = function (groupRowId, opt_collapsed) {
1633
- var dv = this.getDataView();
1635
+ let dv = this.getDataView();
1634
1636
  if (dv) {
1635
- var grp = dv.getGroup(groupRowId);
1637
+ let grp = dv.getGroup(groupRowId);
1636
1638
  if (grp) {
1637
1639
  grp.collapse(opt_collapsed);
1638
1640
  }
@@ -1652,7 +1654,7 @@ RowGroupingPlugin.prototype.disableClicking = function (opt_disabled) {
1652
1654
  * @returns {Array.<RowGroupingPlugin~GroupingState>}
1653
1655
  */
1654
1656
  RowGroupingPlugin.prototype.getGroupingStates = function () {
1655
- var dv = this.getDataView();
1657
+ let dv = this.getDataView();
1656
1658
 
1657
1659
  return dv.getAllGroups().map(function (group) {
1658
1660
  return {
@@ -1671,9 +1673,9 @@ RowGroupingPlugin.prototype.setGroupingStates = function (states) {
1671
1673
  states = JSON.parse(states);
1672
1674
  }
1673
1675
 
1674
- for (var i = 0; i < states.length; i++) {
1675
- var state = states[i];
1676
- var groupRowId = state.groupId == null ? i : state.groupId;
1676
+ for (let i = 0; i < states.length; i++) {
1677
+ let state = states[i];
1678
+ let groupRowId = state.groupId == null ? i : state.groupId;
1677
1679
  this.collapse(groupRowId, state.collapsed);
1678
1680
  }
1679
1681
  };