@refinitiv-ui/efx-grid 6.0.90 → 6.0.92

Sign up to get free protection for your applications and to get access to all the features.
Files changed (152) hide show
  1. package/lib/column-dragging/es6/ColumnDragging.d.ts +1 -1
  2. package/lib/column-dragging/es6/ColumnDragging.js +144 -34
  3. package/lib/core/dist/core.js +2446 -2625
  4. package/lib/core/dist/core.min.js +1 -1
  5. package/lib/core/es6/data/ColumnStats.js +14 -14
  6. package/lib/core/es6/data/DataCache.js +118 -118
  7. package/lib/core/es6/data/DataTable.d.ts +4 -0
  8. package/lib/core/es6/data/DataTable.js +219 -190
  9. package/lib/core/es6/data/DataView.d.ts +2 -0
  10. package/lib/core/es6/data/DataView.js +300 -292
  11. package/lib/core/es6/data/Segment.js +85 -83
  12. package/lib/core/es6/data/SegmentCollection.d.ts +2 -0
  13. package/lib/core/es6/data/SegmentCollection.js +91 -80
  14. package/lib/core/es6/data/WrappedView.js +41 -41
  15. package/lib/core/es6/grid/Core.js +635 -635
  16. package/lib/core/es6/grid/ILayoutGrid.js +1 -1
  17. package/lib/core/es6/grid/LayoutGrid.js +183 -183
  18. package/lib/core/es6/grid/VirtualizedLayoutGrid.js +91 -91
  19. package/lib/core/es6/grid/components/Cell.js +29 -29
  20. package/lib/core/es6/grid/components/CellFloatingPanel.js +11 -11
  21. package/lib/core/es6/grid/components/CellSpan.js +7 -7
  22. package/lib/core/es6/grid/components/CellSpans.js +36 -34
  23. package/lib/core/es6/grid/components/Column.js +40 -40
  24. package/lib/core/es6/grid/components/ElementWrapper.js +17 -17
  25. package/lib/core/es6/grid/components/HScrollbar.js +31 -31
  26. package/lib/core/es6/grid/components/Scrollbar.js +77 -77
  27. package/lib/core/es6/grid/components/StretchedCells.js +49 -49
  28. package/lib/core/es6/grid/components/VScrollbar.js +11 -11
  29. package/lib/core/es6/grid/components/VirtualItems.js +3 -3
  30. package/lib/core/es6/grid/event/EventDispatcher.js +9 -9
  31. package/lib/core/es6/grid/event/EventListeners.js +4 -4
  32. package/lib/core/es6/grid/plugins/SortableTitlePlugin.js +186 -186
  33. package/lib/core/es6/grid/util/Conflator.js +4 -4
  34. package/lib/core/es6/grid/util/Reverter.js +1 -1
  35. package/lib/core/es6/grid/util/SectionSettings.js +20 -20
  36. package/lib/core/es6/grid/util/SelectionList.js +23 -23
  37. package/lib/core/es6/grid/util/TrackLayout.js +74 -74
  38. package/lib/core/es6/grid/util/Virtualizer.js +15 -15
  39. package/lib/core/es6/grid/util/util.js +20 -20
  40. package/lib/core/es6/index.d.ts +0 -2
  41. package/lib/core/es6/index.js +0 -3
  42. package/lib/grid/index.js +1 -1
  43. package/lib/rt-grid/dist/rt-grid.js +193 -70
  44. package/lib/rt-grid/dist/rt-grid.min.js +1 -1
  45. package/lib/rt-grid/es6/Grid.js +46 -30
  46. package/lib/rt-grid/es6/RowDefinition.d.ts +2 -1
  47. package/lib/rt-grid/es6/RowDefinition.js +74 -16
  48. package/lib/tr-grid-cell-selection/es6/CellSelection.js +56 -1
  49. package/lib/tr-grid-column-grouping/es6/ColumnGrouping.d.ts +3 -1
  50. package/lib/tr-grid-column-grouping/es6/ColumnGrouping.js +29 -1
  51. package/lib/tr-grid-util/es6/CellPainter.js +94 -93
  52. package/lib/tr-grid-util/es6/Conflator.js +4 -4
  53. package/lib/tr-grid-util/es6/CoralItems.js +6 -6
  54. package/lib/tr-grid-util/es6/DateTime.js +39 -39
  55. package/lib/tr-grid-util/es6/Deferred.js +5 -5
  56. package/lib/tr-grid-util/es6/Delay.js +1 -1
  57. package/lib/tr-grid-util/es6/Dom.js +26 -26
  58. package/lib/tr-grid-util/es6/DragUI.js +17 -17
  59. package/lib/tr-grid-util/es6/ElementObserver.js +12 -12
  60. package/lib/tr-grid-util/es6/ElementWrapper.js +2 -2
  61. package/lib/tr-grid-util/es6/ElfDate.js +4 -4
  62. package/lib/tr-grid-util/es6/ElfUtil.js +37 -37
  63. package/lib/tr-grid-util/es6/EventDispatcher.js +12 -12
  64. package/lib/tr-grid-util/es6/ExpanderIcon.js +6 -6
  65. package/lib/tr-grid-util/es6/ExpressionParser.js +43 -43
  66. package/lib/tr-grid-util/es6/Ext.js +6 -6
  67. package/lib/tr-grid-util/es6/FieldFormatter.js +17 -17
  68. package/lib/tr-grid-util/es6/FilterBuilder.js +57 -57
  69. package/lib/tr-grid-util/es6/FilterOperators.d.ts +12 -1
  70. package/lib/tr-grid-util/es6/FilterOperators.js +13 -2
  71. package/lib/tr-grid-util/es6/GridPlugin.js +86 -86
  72. package/lib/tr-grid-util/es6/GroupDefinitions.js +90 -90
  73. package/lib/tr-grid-util/es6/Icon.js +4 -4
  74. package/lib/tr-grid-util/es6/MouseDownTrait.js +6 -6
  75. package/lib/tr-grid-util/es6/MultiTableManager.js +68 -68
  76. package/lib/tr-grid-util/es6/NumberFormatter.js +22 -22
  77. package/lib/tr-grid-util/es6/PercentBar.js +17 -17
  78. package/lib/tr-grid-util/es6/Perf.js +5 -5
  79. package/lib/tr-grid-util/es6/Popup.js +42 -42
  80. package/lib/tr-grid-util/es6/RangeBar.js +5 -5
  81. package/lib/tr-grid-util/es6/RequestQueue.js +5 -5
  82. package/lib/tr-grid-util/es6/RowPainter.js +23 -23
  83. package/lib/tr-grid-util/es6/SubTable.js +94 -94
  84. package/lib/tr-grid-util/es6/Table.js +51 -51
  85. package/lib/tr-grid-util/es6/TextHighlighter.js +49 -49
  86. package/lib/tr-grid-util/es6/TickCodes.js +2 -2
  87. package/lib/tr-grid-util/es6/Timer.js +2 -2
  88. package/lib/tr-grid-util/es6/TouchProxy.js +7 -7
  89. package/lib/tr-grid-util/es6/Util.js +50 -50
  90. package/lib/tr-grid-util/es6/formula/ADCService.js +2 -2
  91. package/lib/tr-grid-util/es6/formula/ADCSubscription.js +19 -19
  92. package/lib/tr-grid-util/es6/formula/AdFinService.js +2 -2
  93. package/lib/tr-grid-util/es6/formula/AdFinSubscription.js +19 -19
  94. package/lib/tr-grid-util/es6/formula/Engine.js +56 -56
  95. package/lib/tr-grid-util/es6/formula/Formula.js +62 -62
  96. package/lib/tr-grid-util/es6/formula/IntervalSubscription.js +3 -3
  97. package/lib/tr-grid-util/es6/formula/Realtime.js +15 -15
  98. package/lib/tr-grid-util/es6/formula/RealtimeService.js +15 -15
  99. package/lib/tr-grid-util/es6/formula/TSIService.js +2 -2
  100. package/lib/tr-grid-util/es6/formula/TSISubscription.js +104 -104
  101. package/lib/tr-grid-util/es6/formula/VariableToken.js +20 -20
  102. package/lib/tr-grid-util/es6/formula/functions/AdFin.js +10 -10
  103. package/lib/tr-grid-util/es6/formula/functions/Excel.js +1 -1
  104. package/lib/tr-grid-util/es6/formula/functions/Info.js +2 -2
  105. package/lib/tr-grid-util/es6/formula/functions/Internal.js +5 -5
  106. package/lib/tr-grid-util/es6/formula/functions/Logic.js +5 -5
  107. package/lib/tr-grid-util/es6/formula/functions/Math.js +46 -46
  108. package/lib/tr-grid-util/es6/formula/functions/Statistics.js +27 -27
  109. package/lib/tr-grid-util/es6/formula/functions/Text.js +19 -19
  110. package/lib/tr-grid-util/es6/index.js +1 -1
  111. package/lib/tr-grid-util/es6/jet/Adc.js +36 -36
  112. package/lib/tr-grid-util/es6/jet/CollectionDict.js +11 -11
  113. package/lib/tr-grid-util/es6/jet/DataGenerator.js +95 -95
  114. package/lib/tr-grid-util/es6/jet/DataSet.js +1 -1
  115. package/lib/tr-grid-util/es6/jet/MockArchive.js +5 -5
  116. package/lib/tr-grid-util/es6/jet/MockJET.js +1 -1
  117. package/lib/tr-grid-util/es6/jet/MockQuotes.js +13 -13
  118. package/lib/tr-grid-util/es6/jet/MockQuotes2.js +100 -100
  119. package/lib/tr-grid-util/es6/jet/MockRTK.js +4 -4
  120. package/lib/tr-grid-util/es6/jet/MockUtil.js +2 -2
  121. package/lib/tr-grid-util/es6/jet/index.js +1 -1
  122. package/lib/tr-grid-util/es6/jet/mockDataAPI.js +15 -15
  123. package/lib/tr-grid-util/es6/locale/translation-de.js +1 -1
  124. package/lib/tr-grid-util/es6/locale/translation-en.js +1 -1
  125. package/lib/tr-grid-util/es6/locale/translation-ja.js +1 -1
  126. package/lib/tr-grid-util/es6/locale/translation-zh-hant.js +1 -1
  127. package/lib/tr-grid-util/es6/locale/translation-zh.js +1 -1
  128. package/lib/tr-grid-util/es6/locale/translation.js +1 -1
  129. package/lib/types/es6/ColumnDragging.d.ts +1 -1
  130. package/lib/types/es6/ColumnGrouping.d.ts +3 -1
  131. package/lib/types/es6/Core/data/DataTable.d.ts +4 -0
  132. package/lib/types/es6/Core/data/DataView.d.ts +2 -0
  133. package/lib/types/es6/Core/data/SegmentCollection.d.ts +2 -0
  134. package/lib/types/es6/Core/index.d.ts +0 -2
  135. package/lib/types/es6/RealtimeGrid/RowDefinition.d.ts +2 -1
  136. package/lib/versions.json +4 -4
  137. package/package.json +1 -1
  138. package/lib/core/es6/grid/util/ElementFrameWork.d.ts +0 -18
  139. package/lib/core/es6/grid/util/ElementFrameWork.js +0 -227
  140. package/lib/core/es6/grid/util/HttpRequest.d.ts +0 -53
  141. package/lib/core/es6/grid/util/HttpRequest.js +0 -371
  142. package/lib/core/es6/grid/util/PercentBar.d.ts +0 -43
  143. package/lib/core/es6/grid/util/PercentBar.js +0 -390
  144. package/lib/core/es6/grid/util/PercentBarRenderer.d.ts +0 -41
  145. package/lib/core/es6/grid/util/PercentBarRenderer.js +0 -316
  146. package/lib/core/es6/grid/util/RangeBar.d.ts +0 -25
  147. package/lib/core/es6/grid/util/RangeBar.js +0 -255
  148. package/lib/types/es6/Core/grid/util/ElementFrameWork.d.ts +0 -18
  149. package/lib/types/es6/Core/grid/util/HttpRequest.d.ts +0 -53
  150. package/lib/types/es6/Core/grid/util/PercentBar.d.ts +0 -43
  151. package/lib/types/es6/Core/grid/util/PercentBarRenderer.d.ts +0 -41
  152. package/lib/types/es6/Core/grid/util/RangeBar.d.ts +0 -25
@@ -44,8 +44,8 @@ import { isEmptyObject } from "../../../../tr-grid-util/es6/Util.js";
44
44
  * @extends {EventDispatcher}
45
45
  * @param {SortableTitlePlugin.Options=} options
46
46
  */
47
- var SortableTitlePlugin = function (options) { // TODO: Extract SortableTitlePlugin to grid extension.
48
- var _t = this;
47
+ let SortableTitlePlugin = function (options) { // TODO: Extract SortableTitlePlugin to grid extension.
48
+ let _t = this;
49
49
  _t._onSectionAdded = _t._onSectionAdded.bind(_t);
50
50
  _t._onMouseDown = _t._onMouseDown.bind(_t);
51
51
 
@@ -236,17 +236,17 @@ SortableTitlePlugin.prototype._sortingSequenceMap = null;
236
236
  * @private
237
237
  * @const
238
238
  */
239
- var CODE_UP = "\u25B2";
239
+ let CODE_UP = "\u25B2";
240
240
  /** @type {string}
241
241
  * @private
242
242
  * @const
243
243
  */
244
- var CODE_DOWN = "\u25BC";
244
+ let CODE_DOWN = "\u25BC";
245
245
  /** @type {string}
246
246
  * @private
247
247
  * @const
248
248
  */
249
- var CODE_DIAMOND = "\u25CA";
249
+ let CODE_DIAMOND = "\u25CA";
250
250
 
251
251
  /** The name must be readonly and unique among all other plugins
252
252
  * @public
@@ -282,7 +282,7 @@ SortableTitlePlugin.prototype.initialize = function (host, options) {
282
282
  * @param {!Core} host
283
283
  */
284
284
  SortableTitlePlugin.prototype.unload = function (host) {
285
- var at = this._hosts.indexOf(host);
285
+ let at = this._hosts.indexOf(host);
286
286
  if (at < 0) { return; }
287
287
 
288
288
  this._hosts.splice(at, 1);
@@ -304,12 +304,12 @@ SortableTitlePlugin.prototype.unload = function (host) {
304
304
  /** @public
305
305
  */
306
306
  SortableTitlePlugin.prototype.afterInit = function () {
307
- var t = this;
307
+ let t = this;
308
308
 
309
309
  // Set logic to the data source, since the data source not available during the initialization
310
310
  t.setSortLogics(t._sortLogic);
311
311
 
312
- var userInput = t._initialSort; // This will be passed from the user when they want to start with initialize sort
312
+ let userInput = t._initialSort; // This will be passed from the user when they want to start with initialize sort
313
313
  if (userInput != null) {
314
314
  if(Array.isArray(userInput)) {
315
315
  if(t._maxCount === 1) { // TODO: max count could be part of sortColumns method
@@ -329,15 +329,15 @@ SortableTitlePlugin.prototype.afterInit = function () {
329
329
  SortableTitlePlugin.prototype.config = function (options) {
330
330
  if (!options) { return; }
331
331
 
332
- var t = this;
332
+ let t = this;
333
333
 
334
- var icons = options["icons"];
334
+ let icons = options["icons"];
335
335
  if (icons != null) {
336
336
  if (icons["sorting"]) {
337
337
  SortableTitlePlugin._icons = icons["sorting"];
338
338
  }
339
339
  }
340
- var themeName = options["themeName"];
340
+ let themeName = options["themeName"];
341
341
  if (!themeName || themeName.indexOf("solar") >= 0) {
342
342
  t._solarTheme = true;
343
343
  } else {
@@ -345,7 +345,7 @@ SortableTitlePlugin.prototype.config = function (options) {
345
345
  }
346
346
  t._initialSort = t._initialSortByColumnField(options);
347
347
 
348
- var extOptions = options["sorting"];
348
+ let extOptions = options["sorting"];
349
349
  if (!extOptions) {
350
350
  return;
351
351
  }
@@ -357,7 +357,7 @@ SortableTitlePlugin.prototype.config = function (options) {
357
357
  t._userManagedLogic = true;
358
358
  }
359
359
 
360
- var val = extOptions["multiColumn"] || extOptions["multicolumn"];
360
+ let val = extOptions["multiColumn"] || extOptions["multicolumn"];
361
361
  if (val != null) {
362
362
  if (val === true) val = -1;
363
363
  if (val === false) val = 1;
@@ -434,7 +434,7 @@ SortableTitlePlugin.prototype.config = function (options) {
434
434
 
435
435
  val = extOptions["sortLogic"];
436
436
  if (typeof val === "object") {
437
- for (var field in val) {
437
+ for (let field in val) {
438
438
  if (typeof val[field] === "function") {
439
439
  t._sortLogic[field] = val[field];
440
440
  }
@@ -447,26 +447,26 @@ SortableTitlePlugin.prototype.config = function (options) {
447
447
  * @return {!Object}
448
448
  */
449
449
  SortableTitlePlugin.prototype.getConfigObject = function (gridOptions) {
450
- var obj = gridOptions || {};
450
+ let obj = gridOptions || {};
451
451
 
452
- var columns = obj["columns"];
452
+ let columns = obj["columns"];
453
453
  if (!columns) {
454
454
  columns = obj["columns"] = [];
455
455
  }
456
456
 
457
- var host = this._hosts[0];
457
+ let host = this._hosts[0];
458
458
 
459
459
  if (!host) return obj;
460
460
 
461
- var sortedColumns = this.getSortedColumns();
462
- var col, i, len;
461
+ let sortedColumns = this.getSortedColumns();
462
+ let col, i, len;
463
463
  // Multiple column sorting cannot retain the sort order in the column option.
464
464
  if(this._maxCount === 1 && sortedColumns != null) {
465
465
  // assign sorting state to each columns
466
466
  len = sortedColumns.length;
467
467
  for (i = 0; i < len; i++) {
468
- var sortedColumn = sortedColumns[i];
469
- var colIndex = sortedColumn["colIndex"];
468
+ let sortedColumn = sortedColumns[i];
469
+ let colIndex = sortedColumn["colIndex"];
470
470
  col = columns[colIndex];
471
471
  if (!col) {
472
472
  col = columns[colIndex] = {};
@@ -476,7 +476,7 @@ SortableTitlePlugin.prototype.getConfigObject = function (gridOptions) {
476
476
  }
477
477
 
478
478
  len = host.getColumnCount();
479
- var opt, field;
479
+ let opt, field;
480
480
  for(i = 0; i < len; ++i) {
481
481
  col = columns[i];
482
482
  if (!col) {
@@ -509,12 +509,12 @@ SortableTitlePlugin.prototype.getConfigObject = function (gridOptions) {
509
509
 
510
510
  }
511
511
 
512
- var extOptions = obj["sorting"];
512
+ let extOptions = obj["sorting"];
513
513
  if(!extOptions) {
514
514
  extOptions = obj["sorting"] = {};
515
515
  }
516
516
 
517
- var val = sortedColumns;
517
+ let val = sortedColumns;
518
518
  if(val != null) {
519
519
  extOptions["initialSort"] = val;
520
520
  }
@@ -545,8 +545,8 @@ SortableTitlePlugin.prototype.getConfigObject = function (gridOptions) {
545
545
  extOptions["disabled"] = true;
546
546
  }
547
547
 
548
- var sortingSeq = this._sortingSequence;
549
- var notDefaultSeq = true;
548
+ let sortingSeq = this._sortingSequence;
549
+ let notDefaultSeq = true;
550
550
  if (sortingSeq.length === 2) {
551
551
  if (sortingSeq[0] === "a" && sortingSeq[1] === "d") { // Sorting Sequence is not the default one
552
552
  notDefaultSeq = false;
@@ -574,22 +574,22 @@ SortableTitlePlugin.prototype.getColumnMenu = function (colIndex, config) {
574
574
  config = {};
575
575
  }
576
576
 
577
- var menus = config["menus"];
577
+ let menus = config["menus"];
578
578
  if (!menus) {
579
579
  menus = config["menus"] = [];
580
580
  }
581
581
 
582
- var menu = menus[0];
582
+ let menu = menus[0];
583
583
  if (!menu) {
584
584
  menu = menus[0] = {
585
585
  "menuItems": []
586
586
  };
587
587
  }
588
588
 
589
- var order = this.getSortOrder(colIndex);
589
+ let order = this.getSortOrder(colIndex);
590
590
 
591
591
  // Menu items for this extension
592
- var extMenuItem = {
592
+ let extMenuItem = {
593
593
  "indexScore": 100,
594
594
  "label": "Sort Column",
595
595
  "icon": "sort-a-to-z",
@@ -639,13 +639,13 @@ SortableTitlePlugin.prototype.getColumnMenu = function (colIndex, config) {
639
639
  * @param {Object} e
640
640
  */
641
641
  SortableTitlePlugin.prototype._onItemSortingClicked = function (e) {
642
- var host = this._hosts[0];
643
- var columnMenuExt = host["getPlugin"]("ColumnMenuPlugin");
642
+ let host = this._hosts[0];
643
+ let columnMenuExt = host["getPlugin"]("ColumnMenuPlugin");
644
644
  columnMenuExt["hide"]();
645
645
 
646
- var value = e["currentTarget"]["value"];
647
- var colIndex = value["colIndex"];
648
- var order = value["sortOrder"];
646
+ let value = e["currentTarget"]["value"];
647
+ let colIndex = value["colIndex"];
648
+ let order = value["sortOrder"];
649
649
  this.sortColumn(colIndex, order);
650
650
  };
651
651
 
@@ -661,10 +661,10 @@ SortableTitlePlugin.prototype.getIcons = function () {
661
661
  */
662
662
  SortableTitlePlugin.prototype.setSortLogics = function (sortLogic) { // TODO: This should be deprecated
663
663
  if (sortLogic != null) {
664
- var host = this._hosts[0];
664
+ let host = this._hosts[0];
665
665
  if (host) {
666
- var ds = host.getDataSource();
667
- for (var field in sortLogic) {
666
+ let ds = host.getDataSource();
667
+ for (let field in sortLogic) {
668
668
  this._setSortLogic(ds, field, sortLogic[field]);
669
669
  }
670
670
  }
@@ -677,9 +677,9 @@ SortableTitlePlugin.prototype.setSortLogics = function (sortLogic) { // TODO: Th
677
677
  */
678
678
  SortableTitlePlugin.prototype.setSortLogic = function (field, func) { // TODO: This should be deprecated
679
679
  if (typeof field === "string") {
680
- var host = this._hosts[0];
680
+ let host = this._hosts[0];
681
681
  if (host) {
682
- var ds = host.getDataSource();
682
+ let ds = host.getDataSource();
683
683
  this._setSortLogic(ds, field, func);
684
684
  }
685
685
  }
@@ -705,9 +705,9 @@ SortableTitlePlugin.prototype._setSortLogic = function (ds, field, func) { // TO
705
705
  * @return {string} "a" for ascending, "d" for descending, and "n" for no sorting
706
706
  */
707
707
  SortableTitlePlugin.prototype.getSortOrder = function (colIndex) {
708
- var priority = (colIndex != null) ? this.getSortPriority(colIndex) : 0;
709
- var state = this._sortStates[priority];
710
- var sortOrder = state ? state["sortOrder"] : "";
708
+ let priority = (colIndex != null) ? this.getSortPriority(colIndex) : 0;
709
+ let state = this._sortStates[priority];
710
+ let sortOrder = state ? state["sortOrder"] : "";
711
711
  return sortOrder || "n";
712
712
  };
713
713
  /** Return the first (highest priority) sorted column's index
@@ -725,12 +725,12 @@ SortableTitlePlugin.prototype.getSortedColumnIndex = function (priority) {
725
725
  * @return {number}
726
726
  */
727
727
  SortableTitlePlugin.prototype.getSortPriority = function (colIndex, colRef) {
728
- var host = this._hosts[0];
728
+ let host = this._hosts[0];
729
729
  if(host) {
730
- var i;
731
- var len = this._sortStates.length;
730
+ let i;
731
+ let len = this._sortStates.length;
732
732
  if(colIndex >= 0) {
733
- var colId = host.getColumnId(colIndex);
733
+ let colId = host.getColumnId(colIndex);
734
734
  if(colId) {
735
735
  for(i = 0; i < len; ++i) {
736
736
  if(this._sortStates[i]["colId"] === colId) {
@@ -740,7 +740,7 @@ SortableTitlePlugin.prototype.getSortPriority = function (colIndex, colRef) {
740
740
  }
741
741
  } else if(colRef) {
742
742
  for(i = 0; i < len; ++i) {
743
- var sortState = this._sortStates[i];
743
+ let sortState = this._sortStates[i];
744
744
  if(sortState["colId"] === colRef) {
745
745
  return i;
746
746
  }
@@ -763,15 +763,15 @@ SortableTitlePlugin.prototype.isColumnSorted = function (colIndex) {
763
763
  * @return {Array.<Object>} Array of objects with colIndex, colId, field, and sortOrder properties
764
764
  */
765
765
  SortableTitlePlugin.prototype.getSortedColumns = function () {
766
- var len = this._sortStates.length;
766
+ let len = this._sortStates.length;
767
767
  if (len <= 0) { return null; }
768
768
 
769
- var arr = new Array(len);
770
- for (var i = 0; i < len; ++i) {
771
- var colIndex = this.getSortedColumnIndex(i);
772
- var state = this._sortStates[i];
773
- var retObj = {};
774
- var colId = "";
769
+ let arr = new Array(len);
770
+ for (let i = 0; i < len; ++i) {
771
+ let colIndex = this.getSortedColumnIndex(i);
772
+ let state = this._sortStates[i];
773
+ let retObj = {};
774
+ let colId = "";
775
775
  if(colIndex >= 0) {
776
776
  retObj["colIndex"] = colIndex;
777
777
  colId = this._getColumnId(colIndex);
@@ -779,7 +779,7 @@ SortableTitlePlugin.prototype.getSortedColumns = function () {
779
779
  if(colId) {
780
780
  retObj["colId"] = colId;
781
781
  }
782
- var field = state["field"] || "";
782
+ let field = state["field"] || "";
783
783
  if(field) {
784
784
  retObj["field"] = field;
785
785
  }
@@ -815,9 +815,9 @@ SortableTitlePlugin.prototype.sortColumn = function (colRef, sortOrder, opt_arg)
815
815
  */
816
816
  SortableTitlePlugin.prototype.sortColumns = function (sortOptions, opt_arg) {
817
817
  if (Array.isArray(sortOptions)) {
818
- var len = sortOptions.length;
819
- var states = new Array(len);
820
- for (var i = 0; i < len; i++) {
818
+ let len = sortOptions.length;
819
+ let states = new Array(len);
820
+ for (let i = 0; i < len; i++) {
821
821
  states[i] = this._prepareSorting(sortOptions[i]);
822
822
  }
823
823
  this._sortColumn(states, opt_arg);
@@ -870,7 +870,7 @@ SortableTitlePlugin.prototype.getSortingStates = function () {
870
870
  */
871
871
  SortableTitlePlugin.prototype.updateSortSymbols = function () {
872
872
  if(!this._disabled) {
873
- for (var i = this._hosts.length; --i >= 0;) {
873
+ for (let i = this._hosts.length; --i >= 0;) {
874
874
  this._updateSortableIndicator(i);
875
875
  }
876
876
  }
@@ -881,11 +881,11 @@ SortableTitlePlugin.prototype.updateSortSymbols = function () {
881
881
  * @return {!Array.<string>}
882
882
  */
883
883
  SortableTitlePlugin.prototype.getDataColumnMap = function () {
884
- var host = this._hosts[0];
885
- var dataMap = [];
884
+ let host = this._hosts[0];
885
+ let dataMap = [];
886
886
  if (host) {
887
- var colCount = host.getColumnCount();
888
- for (var i = 0; i < colCount; ++i) {
887
+ let colCount = host.getColumnCount();
888
+ for (let i = 0; i < colCount; ++i) {
889
889
  dataMap[i] = this.getColumnSortingField(i);
890
890
  }
891
891
  }
@@ -900,7 +900,7 @@ SortableTitlePlugin.prototype.getDataColumnNames = SortableTitlePlugin.prototype
900
900
  SortableTitlePlugin.prototype.setDataColumnMap = function (dataMap) { // TODO: This should be deprecated
901
901
  // This should work just like "sortBy"
902
902
  if (Array.isArray(dataMap)) {
903
- for (var i = dataMap.length; --i >= 0;) {
903
+ for (let i = dataMap.length; --i >= 0;) {
904
904
  this.setColumnSortingField(i, dataMap[i]);
905
905
  }
906
906
  }
@@ -912,12 +912,12 @@ SortableTitlePlugin.prototype.setDataColumnNames = SortableTitlePlugin.prototype
912
912
  * @return {string} field A field used for sorting
913
913
  */
914
914
  SortableTitlePlugin.prototype.getColumnSortingField = function (colIndex) {
915
- var sortOptions = this._getSortOptions(colIndex);
915
+ let sortOptions = this._getSortOptions(colIndex);
916
916
  // options["field"] is already consolidated from field, sortBy, and sortable properties.
917
- var field = (sortOptions) ? sortOptions["field"] : null;
917
+ let field = (sortOptions) ? sortOptions["field"] : null;
918
918
 
919
919
  if (field == null && !this._rowDefMode) { // Old CompositeGrid may store sorting field in DataColumnName
920
- var host = this._hosts[0];
920
+ let host = this._hosts[0];
921
921
  if (host) {
922
922
  field = host.getColumnField(colIndex);
923
923
  if(!field) {
@@ -940,7 +940,7 @@ SortableTitlePlugin.prototype.getColumnSortingField = function (colIndex) {
940
940
  */
941
941
  SortableTitlePlugin.prototype.setColumnSortingField = function (colIndex, field, sortLogic, rowSorting) {
942
942
  if (typeof colIndex == "number" && field != null) {
943
- var options = this._newSortOptions(colIndex);
943
+ let options = this._newSortOptions(colIndex);
944
944
  if (!field) {
945
945
  field = "";
946
946
  }
@@ -962,7 +962,7 @@ SortableTitlePlugin.prototype.setColumnSortingField = function (colIndex, field,
962
962
  * @param {Object} sortState
963
963
  * @returns {string}
964
964
  */
965
- var _toField = function(sortState) {
965
+ let _toField = function(sortState) {
966
966
  return sortState["field"] || "";
967
967
  };
968
968
  /** Return array of the fields from the currently sorted columns
@@ -989,18 +989,18 @@ SortableTitlePlugin.prototype.setFirstSortOrder = function (colIdentifier, sortO
989
989
  sortOrder = "a"; // There is no "none" as the first sorting order
990
990
  }
991
991
 
992
- var fields = null;
992
+ let fields = null;
993
993
  if (Array.isArray(colIdentifier)) {
994
994
  fields = colIdentifier;
995
995
  } else {
996
996
  fields = [/** @type{string|number} */(colIdentifier)];
997
997
  }
998
998
 
999
- var len = fields.length;
1000
- for (var i = 0; i < len; ++i) {
1001
- var field = fields[i];
1002
- var sortingSeq = this.getSortingSequence(field).slice();
1003
- var index = sortingSeq.indexOf(sortOrder);
999
+ let len = fields.length;
1000
+ for (let i = 0; i < len; ++i) {
1001
+ let field = fields[i];
1002
+ let sortingSeq = this.getSortingSequence(field).slice();
1003
+ let index = sortingSeq.indexOf(sortOrder);
1004
1004
  if (index >= 0) {
1005
1005
  sortingSeq.splice(index, 1);
1006
1006
  }
@@ -1016,7 +1016,7 @@ SortableTitlePlugin.prototype.setFirstSortOrder = function (colIdentifier, sortO
1016
1016
  * @see {@link SortableTitlePlugin#setSortingSequence}
1017
1017
  */
1018
1018
  SortableTitlePlugin.prototype.disableTwoStateSorting = function (disabled) {
1019
- var at = this._sortingSequence.indexOf("n");
1019
+ let at = this._sortingSequence.indexOf("n");
1020
1020
  if(disabled === false) { // two-state sorting
1021
1021
  if(at >= 0) {
1022
1022
  this._sortingSequence.splice(at, 1);
@@ -1032,10 +1032,10 @@ SortableTitlePlugin.prototype.disableTwoStateSorting = function (disabled) {
1032
1032
  * @param {boolean=} bool=true, if set to false it will be unfreeze indicator
1033
1033
  */
1034
1034
  SortableTitlePlugin.prototype.freezeIndicator = function (bool) {
1035
- var prevState = this._frozenIndicator;
1035
+ let prevState = this._frozenIndicator;
1036
1036
  this._frozenIndicator = bool !== false;
1037
1037
  if(prevState && !this._frozenIndicator) { // from frozen to unfrozen, update the ui
1038
- for (var i = this._hosts.length; --i >= 0;) {
1038
+ for (let i = this._hosts.length; --i >= 0;) {
1039
1039
  this._updateSortableIndicator(i);
1040
1040
  }
1041
1041
  }
@@ -1080,8 +1080,8 @@ SortableTitlePlugin.prototype.disableColumnSorting = function (columns, disabled
1080
1080
  if (typeof columns === "number") {
1081
1081
  this._disableColumnSorting(columns, disabled);
1082
1082
  } else if (Array.isArray(columns)) {
1083
- var len = columns.length;
1084
- for (var i = 0; i < len; ++i) {
1083
+ let len = columns.length;
1084
+ for (let i = 0; i < len; ++i) {
1085
1085
  this._disableColumnSorting(columns[i] || 0, disabled);
1086
1086
  }
1087
1087
  }
@@ -1091,7 +1091,7 @@ SortableTitlePlugin.prototype.disableColumnSorting = function (columns, disabled
1091
1091
  * @param {boolean} disabled
1092
1092
  */
1093
1093
  SortableTitlePlugin.prototype._disableColumnSorting = function (colIndex, disabled) {
1094
- var sortOptions = this._newSortOptions(colIndex);
1094
+ let sortOptions = this._newSortOptions(colIndex);
1095
1095
  if (sortOptions["disabled"] !== disabled) {
1096
1096
  sortOptions["disabled"] = disabled;
1097
1097
  // TODO: Remove existing sort
@@ -1111,11 +1111,11 @@ SortableTitlePlugin.prototype.setClickDelayInterval = function (opt_ms) {
1111
1111
  * @returns {Object}
1112
1112
  */
1113
1113
  SortableTitlePlugin.prototype._initialSortByColumnField = function (options) {
1114
- var columns = options["columns"];
1115
- var colCount = columns ? columns.length : 0;
1116
- for (var i = 0; i < colCount; i++) {
1117
- var column = columns[i];
1118
- var sortOrder = column["defaultSort"]; // composite and rt grid option for default sort order
1114
+ let columns = options["columns"];
1115
+ let colCount = columns ? columns.length : 0;
1116
+ for (let i = 0; i < colCount; i++) {
1117
+ let column = columns[i];
1118
+ let sortOrder = column["defaultSort"]; // composite and rt grid option for default sort order
1119
1119
  if (sortOrder) {
1120
1120
  // TODO: Support multi-column sorting
1121
1121
  return {
@@ -1133,7 +1133,7 @@ SortableTitlePlugin.prototype._initialSortByColumnField = function (options) {
1133
1133
  SortableTitlePlugin.prototype._onSectionAdded = function (e) {
1134
1134
  if (e["sectionType"] !== "title") { return; }
1135
1135
 
1136
- var section = /** @type{ILayoutGrid} */(e["section"]);
1136
+ let section = /** @type{ILayoutGrid} */(e["section"]);
1137
1137
  if (section.getIndex() !== 0) return; // only topmost header can click
1138
1138
  section.listen("mousedown", this._onMouseDown);
1139
1139
  section.listen("click", this._onClickTitle.bind(this, e["sender"]), 0); // Sorting has higher priority
@@ -1158,12 +1158,12 @@ SortableTitlePlugin.prototype._canClickToSort = function (hitObj) {
1158
1158
  return false;
1159
1159
  }
1160
1160
 
1161
- var grid = hitObj["grid"];
1161
+ let grid = hitObj["grid"];
1162
1162
  if (!grid || !grid.getElement()) { // The given grid has been disposed
1163
1163
  return false;
1164
1164
  }
1165
1165
 
1166
- var cep = this._getPlugin("CellEditingPlugin");
1166
+ let cep = this._getPlugin("CellEditingPlugin");
1167
1167
  if (cep && cep["isEditing"]()) { // Current cell is being edited, so skip the sort
1168
1168
  return false;
1169
1169
  }
@@ -1173,9 +1173,9 @@ SortableTitlePlugin.prototype._canClickToSort = function (hitObj) {
1173
1173
  return false;
1174
1174
  }
1175
1175
 
1176
- var colIndex = hitObj["colIndex"];
1177
- var section = hitObj["section"];
1178
- var rowIndex = hitObj["rowIndex"];
1176
+ let colIndex = hitObj["colIndex"];
1177
+ let section = hitObj["section"];
1178
+ let rowIndex = hitObj["rowIndex"];
1179
1179
 
1180
1180
  if (!this._isCellSortable(section, colIndex, rowIndex)) {
1181
1181
  return false;
@@ -1194,17 +1194,17 @@ SortableTitlePlugin.prototype._proceedSorting = function (hitObj) {
1194
1194
  this._clickTimer = 0;
1195
1195
 
1196
1196
  if (this._canClickToSort(hitObj)) {
1197
- var colIndex = hitObj["colIndex"];
1197
+ let colIndex = hitObj["colIndex"];
1198
1198
  // _proceedSorting() method is always produced by user clicking at the header // Thus, this operation is guaranteed to be a user action
1199
1199
  this.sortColumn(colIndex, null, { "isUserAction": true });
1200
1200
 
1201
- var grid = hitObj["grid"];
1201
+ let grid = hitObj["grid"];
1202
1202
  if(grid && grid["focus"]) {
1203
1203
  grid["focus"]();
1204
1204
  }
1205
1205
 
1206
1206
  if (this._hasListener("clicked")) {
1207
- var ce = {};
1207
+ let ce = {};
1208
1208
  ce["colIndex"] = colIndex;
1209
1209
  ce["sortOrder"] = this.getSortOrder(colIndex);
1210
1210
  ce["dataColumnName"] = this.getColumnSortingField(colIndex); // This should be deprecated
@@ -1226,7 +1226,7 @@ SortableTitlePlugin.prototype._onMouseDown = function (e) {
1226
1226
  * @return {*|null}
1227
1227
  */
1228
1228
  SortableTitlePlugin.prototype._getPlugin = function(pluginName) {
1229
- var host = this._hosts[0];
1229
+ let host = this._hosts[0];
1230
1230
  return (host) ? host.getPlugin(pluginName) : null;
1231
1231
  };
1232
1232
  /** @private
@@ -1252,14 +1252,14 @@ SortableTitlePlugin.prototype._onClickTitle = function (grid, e) {
1252
1252
  return;
1253
1253
  }
1254
1254
 
1255
- var hitObj = grid.getRelativePosition(e);
1255
+ let hitObj = grid.getRelativePosition(e);
1256
1256
  if (!hitObj["hit"]) { // Click across multiple elements (dragging)
1257
1257
  return;
1258
1258
  }
1259
1259
 
1260
- var csp = this._getPlugin("ColumnSelectionPlugin");
1260
+ let csp = this._getPlugin("ColumnSelectionPlugin");
1261
1261
  if (csp && csp["isEnabled"]()) {
1262
- var colIndex = hitObj["colIndex"];
1262
+ let colIndex = hitObj["colIndex"];
1263
1263
  if (!csp["isSelectedColumn"](colIndex)) { // Sort only if the column is selected
1264
1264
  return;
1265
1265
  }
@@ -1287,8 +1287,8 @@ SortableTitlePlugin.prototype._onClickTitle = function (grid, e) {
1287
1287
  SortableTitlePlugin.prototype._popSortState = function (toIndex, opt_arg) {
1288
1288
  if (toIndex < 0 || this._sortStates.length <= toIndex) { return false; }
1289
1289
 
1290
- var dirty = false;
1291
- for (var i = this._sortStates.length; --i >= toIndex;) {
1290
+ let dirty = false;
1291
+ for (let i = this._sortStates.length; --i >= toIndex;) {
1292
1292
  this._clearSortSymbols(this._sortStates[i]);
1293
1293
  dirty = true;
1294
1294
  }
@@ -1345,7 +1345,7 @@ SortableTitlePlugin.prototype.setSortingSequence = function (sequence, colRef) {
1345
1345
  return;
1346
1346
  }
1347
1347
 
1348
- var field;
1348
+ let field;
1349
1349
  if (colRef != null) {
1350
1350
  if (typeof colRef === "string") {
1351
1351
  field = colRef;
@@ -1356,7 +1356,7 @@ SortableTitlePlugin.prototype.setSortingSequence = function (sequence, colRef) {
1356
1356
 
1357
1357
  if (sequence) {
1358
1358
  // Ensure that user sequence has only valid sort order
1359
- var sortingSequence = sequence.map(SortableTitlePlugin._toSortOrder);
1359
+ let sortingSequence = sequence.map(SortableTitlePlugin._toSortOrder);
1360
1360
  if (field) {
1361
1361
  if (!this._sortingSequenceMap) {
1362
1362
  this._sortingSequenceMap = {};
@@ -1386,19 +1386,19 @@ SortableTitlePlugin.prototype.clearAllColumnSortingSequences = function () {
1386
1386
  * @param {Function} comparer Compare function
1387
1387
  */
1388
1388
  SortableTitlePlugin.prototype.sortSeparators = function (comparer) {
1389
- var host = this._hosts[0];
1390
- var dv = host.getDataSource();
1389
+ let host = this._hosts[0];
1390
+ let dv = host.getDataSource();
1391
1391
  if(comparer){
1392
1392
  dv.sortSeparators(comparer);
1393
1393
  } else {
1394
- var sortLogics = dv.getSortingLogics();
1395
- var sortOrders = [];
1396
- var sortFields = [];
1397
- var sortStateCount = this._sortStates.length;
1398
- var rowDefField = SortableTitlePlugin._toRowDefField();
1399
- for(var i = 0; i < sortStateCount; i++){
1400
- var sortState = this._sortStates[i];
1401
- var field = this._rowDefMode ? rowDefField : sortState["field"];
1394
+ let sortLogics = dv.getSortingLogics();
1395
+ let sortOrders = [];
1396
+ let sortFields = [];
1397
+ let sortStateCount = this._sortStates.length;
1398
+ let rowDefField = SortableTitlePlugin._toRowDefField();
1399
+ for(let i = 0; i < sortStateCount; i++){
1400
+ let sortState = this._sortStates[i];
1401
+ let field = this._rowDefMode ? rowDefField : sortState["field"];
1402
1402
  sortOrders.push(sortState["sortOrder"]);
1403
1403
  sortFields.push(field);
1404
1404
  }
@@ -1416,13 +1416,13 @@ SortableTitlePlugin.prototype._prepareSorting = function (sortingDef, sortOrder)
1416
1416
  if (!this._maxCount) {
1417
1417
  return null;
1418
1418
  }
1419
- var host = this._hosts[0];
1419
+ let host = this._hosts[0];
1420
1420
  if(!host) {
1421
1421
  return null;
1422
1422
  }
1423
1423
 
1424
- var colIndex = -1;
1425
- var colRef = "";
1424
+ let colIndex = -1;
1425
+ let colRef = "";
1426
1426
  if(typeof sortingDef === "number") {
1427
1427
  colIndex = sortingDef;
1428
1428
  } else if(typeof sortingDef === "string") { // This would be either column id or field
@@ -1440,11 +1440,11 @@ SortableTitlePlugin.prototype._prepareSorting = function (sortingDef, sortOrder)
1440
1440
  }
1441
1441
  }
1442
1442
 
1443
- var field = "";
1444
- var sortLogic = null;
1443
+ let field = "";
1444
+ let sortLogic = null;
1445
1445
  if(colIndex >= 0) {
1446
1446
  field = this.getColumnSortingField(colIndex);
1447
- var sortOptions = this._getSortOptions(colIndex);
1447
+ let sortOptions = this._getSortOptions(colIndex);
1448
1448
  if(sortOptions) {
1449
1449
  sortLogic = sortOptions["sortLogic"];
1450
1450
  }
@@ -1452,16 +1452,16 @@ SortableTitlePlugin.prototype._prepareSorting = function (sortingDef, sortOrder)
1452
1452
  field = colRef; // Assume that colRef is a field and not a column id
1453
1453
  }
1454
1454
 
1455
- var priority = this.getSortPriority(colIndex, field);
1456
- var curState = (priority >= 0) ? this._sortStates[priority] : null;
1457
- var curOrder = curState ? curState["sortOrder"] : "n";
1455
+ let priority = this.getSortPriority(colIndex, field);
1456
+ let curState = (priority >= 0) ? this._sortStates[priority] : null;
1457
+ let curOrder = curState ? curState["sortOrder"] : "n";
1458
1458
 
1459
1459
  // Getting next sort order
1460
- var nextOrder = "n";
1460
+ let nextOrder = "n";
1461
1461
  if (sortOrder == null) { // Auto order switch
1462
- var sortingSequence = this.getSortingSequence(field);
1462
+ let sortingSequence = this.getSortingSequence(field);
1463
1463
 
1464
- var sequenceIndex = sortingSequence.indexOf(curOrder);
1464
+ let sequenceIndex = sortingSequence.indexOf(curOrder);
1465
1465
  if (sequenceIndex < 0) {
1466
1466
  sequenceIndex = 0;
1467
1467
  } else {
@@ -1488,7 +1488,7 @@ SortableTitlePlugin.prototype._prepareSorting = function (sortingDef, sortOrder)
1488
1488
  }
1489
1489
  if (!curState) {
1490
1490
  curState = {};
1491
- var colId = host.getColumnId(colIndex);
1491
+ let colId = host.getColumnId(colIndex);
1492
1492
  if(colId) {
1493
1493
  curState["colId"] = colId;
1494
1494
  }
@@ -1509,10 +1509,10 @@ SortableTitlePlugin.prototype._prepareSorting = function (sortingDef, sortOrder)
1509
1509
  curState["sortOrder"] = nextOrder;
1510
1510
  }
1511
1511
 
1512
- var clearedSortColIndexes = [];
1512
+ let clearedSortColIndexes = [];
1513
1513
  if (this._maxCount > 0) {
1514
1514
  while (this._sortStates.length > this._maxCount) { // Shift excess
1515
- var index = this._clearSortSymbols(this._sortStates.shift());
1515
+ let index = this._clearSortSymbols(this._sortStates.shift());
1516
1516
  if (index !== null) {
1517
1517
  clearedSortColIndexes.push(index);
1518
1518
  }
@@ -1542,11 +1542,11 @@ SortableTitlePlugin.prototype._sortColumn = function (states, opt_arg) {
1542
1542
  this._sortDataView(opt_arg); // Update Data
1543
1543
  this.updateSortSymbols(); // Update Display
1544
1544
 
1545
- var evtArg = null;
1545
+ let evtArg = null;
1546
1546
  if(Array.isArray(states)) {
1547
- var len = states.length;
1548
- for(var i = 0; i < len; ++i) {
1549
- var state = states[i];
1547
+ let len = states.length;
1548
+ for(let i = 0; i < len; ++i) {
1549
+ let state = states[i];
1550
1550
  if(state) {
1551
1551
  if(evtArg) {
1552
1552
  if(!evtArg["colIndices"]) {
@@ -1576,13 +1576,13 @@ SortableTitlePlugin.prototype._sortColumn = function (states, opt_arg) {
1576
1576
  * @param {Object} e
1577
1577
  */
1578
1578
  SortableTitlePlugin.prototype._onColumnAdded = function (e) {
1579
- var t = this;
1580
- var colIndex = e["colIndex"];
1581
- var column = e["context"] || {};
1579
+ let t = this;
1580
+ let colIndex = e["colIndex"];
1581
+ let column = e["context"] || {};
1582
1582
 
1583
- var sortable = !!t._sortableColumns;
1584
- var field = column["field"];
1585
- var sortBy = column["sortBy"];
1583
+ let sortable = !!t._sortableColumns;
1584
+ let field = column["field"];
1585
+ let sortBy = column["sortBy"];
1586
1586
 
1587
1587
  if (sortBy != null) { // composite grid option
1588
1588
  sortable = !!sortBy;
@@ -1592,7 +1592,7 @@ SortableTitlePlugin.prototype._onColumnAdded = function (e) {
1592
1592
  sortable = !!column["sortable"];
1593
1593
  }
1594
1594
 
1595
- var sortLogic = column["sortLogic"] || column["sortingLogic"] || column["sorter"]; // Originally, rt grid support option for sortLogic by column
1595
+ let sortLogic = column["sortLogic"] || column["sortingLogic"] || column["sorter"]; // Originally, rt grid support option for sortLogic by column
1596
1596
  if(!sortLogic) {
1597
1597
  sortLogic = t._sortLogic[field];
1598
1598
  }
@@ -1600,7 +1600,7 @@ SortableTitlePlugin.prototype._onColumnAdded = function (e) {
1600
1600
  sortLogic = null;
1601
1601
  }
1602
1602
 
1603
- var sortingSequence = column["sortingSequence"];
1603
+ let sortingSequence = column["sortingSequence"];
1604
1604
  if (sortingSequence != null && field) { // Make sure that column config does not affect grid level config
1605
1605
  t.setSortingSequence(sortingSequence, field);
1606
1606
  }
@@ -1611,7 +1611,7 @@ SortableTitlePlugin.prototype._onColumnAdded = function (e) {
1611
1611
  t.disableColumnSorting(colIndex, true);
1612
1612
  }
1613
1613
 
1614
- var sortOrder = column["sortOrder"] || column["sort"];
1614
+ let sortOrder = column["sortOrder"] || column["sort"];
1615
1615
  if(sortOrder != null) {
1616
1616
  sortOrder = SortableTitlePlugin._toSortOrder(sortOrder); // Invalid input will return "n"
1617
1617
  if(sortOrder !== "n") {
@@ -1627,17 +1627,17 @@ SortableTitlePlugin.prototype._onColumnAdded = function (e) {
1627
1627
  * @fires SortableTitlePlugin#columnSorted
1628
1628
  */
1629
1629
  SortableTitlePlugin.prototype._onColumnRemoved = function (e) {
1630
- var sortCount = this._sortStates.length;
1630
+ let sortCount = this._sortStates.length;
1631
1631
  if (!sortCount) {
1632
1632
  return;
1633
1633
  }
1634
- var colId = e["colId"];
1634
+ let colId = e["colId"];
1635
1635
  if (!colId) {
1636
1636
  return;
1637
1637
  }
1638
1638
  // WARNING: columnRemoved event could be fired repeatedly. Sorting could be triggered multiple times
1639
- for(var i = 0; i < sortCount; ++i) {
1640
- var sortState = this._sortStates[i];
1639
+ for(let i = 0; i < sortCount; ++i) {
1640
+ let sortState = this._sortStates[i];
1641
1641
  if (sortState["colId"] === colId) {
1642
1642
  this._sortStates.splice(i, 1);
1643
1643
  this._clearSortSymbols(sortState);
@@ -1664,17 +1664,17 @@ SortableTitlePlugin.prototype._sortDataView = function (opt_action) {
1664
1664
 
1665
1665
  if (!this._dataSorting) { return; }
1666
1666
 
1667
- var sortCount = this._sortStates.length;
1667
+ let sortCount = this._sortStates.length;
1668
1668
  if(this._userManagedLogic && sortCount > 1) { // The logic is managed by the user. There is no point in using multi-column sorting
1669
1669
  sortCount = 1;
1670
1670
  }
1671
- var orders = null;
1672
- var sortLogics = null;
1673
- var c_ref = null;
1671
+ let orders = null;
1672
+ let sortLogics = null;
1673
+ let c_ref = null;
1674
1674
  if (sortCount) {
1675
1675
  orders = new Array(sortCount);
1676
1676
  sortLogics = new Array(sortCount);
1677
- for (var i = 0; i < sortCount; ++i) {
1677
+ for (let i = 0; i < sortCount; ++i) {
1678
1678
  orders[i] = this._sortStates[i]["sortOrder"];
1679
1679
  sortLogics[i] = this._sortStates[i]["sortLogic"]; // sortLogic can be null
1680
1680
  }
@@ -1689,12 +1689,12 @@ SortableTitlePlugin.prototype._sortDataView = function (opt_action) {
1689
1689
  }
1690
1690
 
1691
1691
  // Perform sorting even if there is no sort state
1692
- for (var j = this._hosts.length; --j >= 0;) {
1693
- var host = this._hosts[j];
1692
+ for (let j = this._hosts.length; --j >= 0;) {
1693
+ let host = this._hosts[j];
1694
1694
  // TODO: In wrap mode all hosts does not need to be sorted
1695
- var dataSource = host.getDataSource();
1695
+ let dataSource = host.getDataSource();
1696
1696
  if (dataSource) {
1697
- var noOptimization = opt_action["isUserAction"] == true;
1697
+ let noOptimization = opt_action["isUserAction"] == true;
1698
1698
  dataSource.sort(c_ref, orders, sortLogics, noOptimization); // If length === 0 data is not sorted
1699
1699
  }
1700
1700
  }
@@ -1706,18 +1706,18 @@ SortableTitlePlugin.prototype._sortDataView = function (opt_action) {
1706
1706
  * @return {number|null} The column index of cleared sort
1707
1707
  */
1708
1708
  SortableTitlePlugin.prototype._clearSortSymbols = function (state) {
1709
- var cells = state["targetCells"];
1709
+ let cells = state["targetCells"];
1710
1710
  if (!cells) {
1711
1711
  return null;
1712
1712
  }
1713
- var colIndex = null;
1714
- for (var j = cells.length; --j >= 0;) { // One single cell per host
1715
- var cell = cells[j];
1713
+ let colIndex = null;
1714
+ for (let j = cells.length; --j >= 0;) { // One single cell per host
1715
+ let cell = cells[j];
1716
1716
  cell["removeClass"]("sorting");
1717
1717
  cell["removeClass"]("sortable");
1718
1718
  cell["removeFloatingIcon"]("sort-symbol");
1719
1719
  cell["removeFloatingIcon"]("priority-symbol");
1720
- var section;
1720
+ let section;
1721
1721
  if(colIndex == null && (section = cell["getSection"]())) {
1722
1722
  colIndex = section["getColumnIndex"](cell["getParent"]());
1723
1723
  }
@@ -1731,19 +1731,19 @@ SortableTitlePlugin.prototype._clearSortSymbols = function (state) {
1731
1731
  * @param {number} hostIndex
1732
1732
  */
1733
1733
  SortableTitlePlugin.prototype._updateSortableIndicator = function (hostIndex) {
1734
- var t = this;
1735
- var host = t._hosts[hostIndex];
1734
+ let t = this;
1735
+ let host = t._hosts[hostIndex];
1736
1736
  if (!host || this._frozenIndicator) { return; }
1737
1737
 
1738
- var section = host.getSection("title");
1738
+ let section = host.getSection("title");
1739
1739
  if (section == null) { return; }
1740
- var colCount = section["getColumnCount"]();
1741
- for (var col = colCount; --col >= 0;) {
1740
+ let colCount = section["getColumnCount"]();
1741
+ for (let col = colCount; --col >= 0;) {
1742
1742
 
1743
- var rowCount = section["getRowCount"]();
1744
- for (var r = 0; r < rowCount; r++) {
1743
+ let rowCount = section["getRowCount"]();
1744
+ for (let r = 0; r < rowCount; r++) {
1745
1745
 
1746
- var cell = section["getCell"](col, r, true);
1746
+ let cell = section["getCell"](col, r, true);
1747
1747
  if (!cell) { continue; }
1748
1748
 
1749
1749
  // Clear all sorting icons
@@ -1761,11 +1761,11 @@ SortableTitlePlugin.prototype._updateSortableIndicator = function (hostIndex) {
1761
1761
 
1762
1762
  cell["addClass"]("sortable");
1763
1763
 
1764
- var priority = t.getSortPriority(col);
1765
- var state = t._sortStates[priority];
1764
+ let priority = t.getSortPriority(col);
1765
+ let state = t._sortStates[priority];
1766
1766
 
1767
- var isSorting = state && state["sortOrder"] !== "n";
1768
- var symbol, icon;
1767
+ let isSorting = state && state["sortOrder"] !== "n";
1768
+ let symbol, icon;
1769
1769
  if (isSorting) {
1770
1770
  if (!state["targetCells"]) {
1771
1771
  state["targetCells"] = [];
@@ -1781,7 +1781,7 @@ SortableTitlePlugin.prototype._updateSortableIndicator = function (hostIndex) {
1781
1781
  cell["addClass"]("sorting");
1782
1782
 
1783
1783
  if(t._solarTheme) { // Insert icon when use solar theme
1784
- var textContent;
1784
+ let textContent;
1785
1785
 
1786
1786
  if (state["sortOrder"] === "a") {
1787
1787
  textContent = CODE_UP;
@@ -1820,7 +1820,7 @@ SortableTitlePlugin.prototype._updateSortableIndicator = function (hostIndex) {
1820
1820
  * @return {Element}
1821
1821
  */
1822
1822
  SortableTitlePlugin.prototype._createIconElem = function (icon, fallback) {
1823
- var elem;
1823
+ let elem;
1824
1824
  if (!icon || typeof icon !== "string") {
1825
1825
  elem = document.createElement("span");
1826
1826
  elem.textContent = fallback;
@@ -1837,7 +1837,7 @@ SortableTitlePlugin.prototype._createIconElem = function (icon, fallback) {
1837
1837
  */
1838
1838
  SortableTitlePlugin.prototype._getColumnIndex = function (colRef) {
1839
1839
  if(colRef != null) {
1840
- var host = this._hosts[0];
1840
+ let host = this._hosts[0];
1841
1841
  if(host) {
1842
1842
  if(typeof colRef === "number") {
1843
1843
  return colRef;
@@ -1856,7 +1856,7 @@ SortableTitlePlugin.prototype._getColumnIndex = function (colRef) {
1856
1856
  * @return {string} column id or empty string for not found
1857
1857
  */
1858
1858
  SortableTitlePlugin.prototype._getColumnId = function (colRef) {
1859
- var host = this._hosts[0];
1859
+ let host = this._hosts[0];
1860
1860
  if(host && colRef != null) {
1861
1861
  return host.getColumnId(colRef);
1862
1862
  }
@@ -1868,7 +1868,7 @@ SortableTitlePlugin.prototype._getColumnId = function (colRef) {
1868
1868
  * @return {Object}
1869
1869
  */
1870
1870
  SortableTitlePlugin.prototype._getSortOptions = function (colIndex) {
1871
- var host = this._hosts[0];
1871
+ let host = this._hosts[0];
1872
1872
  if (host) {
1873
1873
  return host.getColumnData(colIndex)["sortableTitle"] || null;
1874
1874
  }
@@ -1879,10 +1879,10 @@ SortableTitlePlugin.prototype._getSortOptions = function (colIndex) {
1879
1879
  * @return {!Object}
1880
1880
  */
1881
1881
  SortableTitlePlugin.prototype._newSortOptions = function (colIndex) {
1882
- var host = this._hosts[0];
1883
- var sortOptions = null;
1882
+ let host = this._hosts[0];
1883
+ let sortOptions = null;
1884
1884
  if (host && colIndex >= 0) {
1885
- var colData = host.getColumnData(colIndex); // colData is guaranteed to exist
1885
+ let colData = host.getColumnData(colIndex); // colData is guaranteed to exist
1886
1886
  sortOptions = colData["sortableTitle"];
1887
1887
  if (!sortOptions) {
1888
1888
  sortOptions = colData["sortableTitle"] = {};
@@ -1897,13 +1897,13 @@ SortableTitlePlugin.prototype._newSortOptions = function (colIndex) {
1897
1897
  * @return {boolean}
1898
1898
  */
1899
1899
  SortableTitlePlugin.prototype._isCellSortable = function (section, colIndex, rowIndex) {
1900
- var options = this._getSortOptions(colIndex);
1900
+ let options = this._getSortOptions(colIndex);
1901
1901
  if (options) {
1902
1902
  if (options["disabled"]) {
1903
1903
  return false;
1904
1904
  }
1905
1905
 
1906
- var field = options["field"];
1906
+ let field = options["field"];
1907
1907
  if (field != null) {
1908
1908
  if (!field) {
1909
1909
  return false;
@@ -1911,16 +1911,16 @@ SortableTitlePlugin.prototype._isCellSortable = function (section, colIndex, row
1911
1911
  }
1912
1912
  }
1913
1913
 
1914
- var targetCell = section["getCell"](colIndex, rowIndex, true);
1914
+ let targetCell = section["getCell"](colIndex, rowIndex, true);
1915
1915
  if (targetCell.hasClass("no-sort")) {
1916
1916
  return false; // The cell is not allowed for sorting
1917
1917
  }
1918
- var bottomCell = section["getCell"](colIndex, section["getRowCount"]() - 1, true);
1918
+ let bottomCell = section["getCell"](colIndex, section["getRowCount"]() - 1, true);
1919
1919
  if (targetCell !== bottomCell) {
1920
1920
  return false;
1921
1921
  }
1922
- var parentCell = targetCell.getParent();
1923
- var classList = parentCell["classList"];
1922
+ let parentCell = targetCell.getParent();
1923
+ let classList = parentCell["classList"];
1924
1924
  // "collapsed" class in column element only enable by column stack in spreading mode
1925
1925
  if (classList.contains("collapsed")) { // HACK: unsortable for collapsed stack in spreading mode
1926
1926
  return false;