@refinitiv-ui/efx-grid 6.0.91 → 6.0.93

Sign up to get free protection for your applications and to get access to all the features.
Files changed (160) hide show
  1. package/lib/column-dragging/es6/ColumnDragging.d.ts +1 -1
  2. package/lib/column-dragging/es6/ColumnDragging.js +144 -34
  3. package/lib/core/dist/core.js +2410 -2621
  4. package/lib/core/dist/core.min.js +1 -1
  5. package/lib/core/es6/data/ColumnStats.js +14 -14
  6. package/lib/core/es6/data/DataCache.js +118 -118
  7. package/lib/core/es6/data/DataTable.d.ts +3 -1
  8. package/lib/core/es6/data/DataTable.js +208 -190
  9. package/lib/core/es6/data/DataView.d.ts +1 -1
  10. package/lib/core/es6/data/DataView.js +291 -291
  11. package/lib/core/es6/data/Segment.js +79 -79
  12. package/lib/core/es6/data/SegmentCollection.js +81 -81
  13. package/lib/core/es6/data/WrappedView.js +41 -41
  14. package/lib/core/es6/grid/Core.js +635 -635
  15. package/lib/core/es6/grid/ILayoutGrid.js +1 -1
  16. package/lib/core/es6/grid/LayoutGrid.js +183 -183
  17. package/lib/core/es6/grid/VirtualizedLayoutGrid.js +91 -91
  18. package/lib/core/es6/grid/components/Cell.js +29 -29
  19. package/lib/core/es6/grid/components/CellFloatingPanel.js +11 -11
  20. package/lib/core/es6/grid/components/CellSpan.js +7 -7
  21. package/lib/core/es6/grid/components/CellSpans.js +36 -34
  22. package/lib/core/es6/grid/components/Column.js +40 -40
  23. package/lib/core/es6/grid/components/ElementWrapper.js +17 -17
  24. package/lib/core/es6/grid/components/HScrollbar.js +31 -31
  25. package/lib/core/es6/grid/components/Scrollbar.js +77 -77
  26. package/lib/core/es6/grid/components/StretchedCells.js +49 -49
  27. package/lib/core/es6/grid/components/VScrollbar.js +11 -11
  28. package/lib/core/es6/grid/components/VirtualItems.js +3 -3
  29. package/lib/core/es6/grid/event/EventDispatcher.js +9 -9
  30. package/lib/core/es6/grid/event/EventListeners.js +4 -4
  31. package/lib/core/es6/grid/plugins/SortableTitlePlugin.js +186 -186
  32. package/lib/core/es6/grid/util/Conflator.js +4 -4
  33. package/lib/core/es6/grid/util/Reverter.js +1 -1
  34. package/lib/core/es6/grid/util/SectionSettings.js +20 -20
  35. package/lib/core/es6/grid/util/SelectionList.js +23 -23
  36. package/lib/core/es6/grid/util/TrackLayout.js +74 -74
  37. package/lib/core/es6/grid/util/Virtualizer.js +15 -15
  38. package/lib/core/es6/grid/util/util.js +20 -20
  39. package/lib/core/es6/index.d.ts +0 -2
  40. package/lib/core/es6/index.js +0 -3
  41. package/lib/filter-dialog/lib/filter-dialog.js +1 -0
  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-checkbox/es6/Checkbox.js +268 -268
  50. package/lib/tr-grid-column-grouping/es6/ColumnGrouping.d.ts +3 -2
  51. package/lib/tr-grid-column-grouping/es6/ColumnGrouping.js +60 -32
  52. package/lib/tr-grid-column-stack/es6/ColumnStack.js +279 -279
  53. package/lib/tr-grid-conditional-coloring/es6/ConditionalColoring.js +227 -207
  54. package/lib/tr-grid-in-cell-editing/es6/InCellEditing.js +11 -11
  55. package/lib/tr-grid-row-dragging/es6/RowDragging.d.ts +1 -2
  56. package/lib/tr-grid-row-dragging/es6/RowDragging.js +120 -121
  57. package/lib/tr-grid-util/es6/CellPainter.js +94 -104
  58. package/lib/tr-grid-util/es6/Conflator.js +4 -4
  59. package/lib/tr-grid-util/es6/CoralItems.js +6 -6
  60. package/lib/tr-grid-util/es6/DateTime.js +41 -41
  61. package/lib/tr-grid-util/es6/Deferred.js +5 -5
  62. package/lib/tr-grid-util/es6/Delay.d.ts +3 -3
  63. package/lib/tr-grid-util/es6/Delay.js +14 -3
  64. package/lib/tr-grid-util/es6/Dom.js +26 -26
  65. package/lib/tr-grid-util/es6/DragUI.js +17 -17
  66. package/lib/tr-grid-util/es6/ElementObserver.js +12 -12
  67. package/lib/tr-grid-util/es6/ElementWrapper.js +2 -2
  68. package/lib/tr-grid-util/es6/ElfDate.js +4 -4
  69. package/lib/tr-grid-util/es6/ElfUtil.js +37 -37
  70. package/lib/tr-grid-util/es6/EventDispatcher.js +12 -12
  71. package/lib/tr-grid-util/es6/ExpanderIcon.js +6 -6
  72. package/lib/tr-grid-util/es6/ExpressionParser.js +43 -43
  73. package/lib/tr-grid-util/es6/Ext.js +6 -6
  74. package/lib/tr-grid-util/es6/FieldFormatter.js +17 -17
  75. package/lib/tr-grid-util/es6/FilterBuilder.js +57 -58
  76. package/lib/tr-grid-util/es6/FilterOperators.d.ts +12 -1
  77. package/lib/tr-grid-util/es6/FilterOperators.js +13 -2
  78. package/lib/tr-grid-util/es6/GridPlugin.js +86 -87
  79. package/lib/tr-grid-util/es6/GroupDefinitions.js +90 -90
  80. package/lib/tr-grid-util/es6/Icon.js +4 -4
  81. package/lib/tr-grid-util/es6/MouseDownTrait.js +6 -6
  82. package/lib/tr-grid-util/es6/MultiTableManager.js +71 -80
  83. package/lib/tr-grid-util/es6/NumberFormatter.js +23 -23
  84. package/lib/tr-grid-util/es6/PercentBar.js +17 -17
  85. package/lib/tr-grid-util/es6/Perf.js +5 -5
  86. package/lib/tr-grid-util/es6/Popup.js +42 -42
  87. package/lib/tr-grid-util/es6/RangeBar.js +5 -5
  88. package/lib/tr-grid-util/es6/RequestQueue.js +5 -5
  89. package/lib/tr-grid-util/es6/RowPainter.js +23 -23
  90. package/lib/tr-grid-util/es6/SubTable.js +94 -94
  91. package/lib/tr-grid-util/es6/Table.js +51 -51
  92. package/lib/tr-grid-util/es6/TextHighlighter.js +52 -52
  93. package/lib/tr-grid-util/es6/TickCodes.js +2 -2
  94. package/lib/tr-grid-util/es6/Timer.js +2 -2
  95. package/lib/tr-grid-util/es6/TouchProxy.js +7 -7
  96. package/lib/tr-grid-util/es6/Util.js +50 -50
  97. package/lib/tr-grid-util/es6/formula/ADCService.js +2 -2
  98. package/lib/tr-grid-util/es6/formula/ADCSubscription.js +19 -19
  99. package/lib/tr-grid-util/es6/formula/AdFinService.js +2 -2
  100. package/lib/tr-grid-util/es6/formula/AdFinSubscription.js +19 -19
  101. package/lib/tr-grid-util/es6/formula/Engine.js +56 -56
  102. package/lib/tr-grid-util/es6/formula/Formula.js +62 -62
  103. package/lib/tr-grid-util/es6/formula/IntervalSubscription.js +3 -3
  104. package/lib/tr-grid-util/es6/formula/Realtime.js +15 -15
  105. package/lib/tr-grid-util/es6/formula/RealtimeService.js +15 -15
  106. package/lib/tr-grid-util/es6/formula/TSIService.js +2 -2
  107. package/lib/tr-grid-util/es6/formula/TSISubscription.js +104 -104
  108. package/lib/tr-grid-util/es6/formula/VariableToken.js +20 -20
  109. package/lib/tr-grid-util/es6/formula/functions/AdFin.js +10 -10
  110. package/lib/tr-grid-util/es6/formula/functions/Excel.js +1 -1
  111. package/lib/tr-grid-util/es6/formula/functions/Info.js +2 -2
  112. package/lib/tr-grid-util/es6/formula/functions/Internal.js +5 -5
  113. package/lib/tr-grid-util/es6/formula/functions/Logic.js +5 -5
  114. package/lib/tr-grid-util/es6/formula/functions/Math.js +46 -46
  115. package/lib/tr-grid-util/es6/formula/functions/Statistics.js +27 -27
  116. package/lib/tr-grid-util/es6/formula/functions/Text.js +19 -19
  117. package/lib/tr-grid-util/es6/index.js +1 -1
  118. package/lib/tr-grid-util/es6/jet/Adc.js +36 -36
  119. package/lib/tr-grid-util/es6/jet/CollectionDict.js +11 -11
  120. package/lib/tr-grid-util/es6/jet/DataGenerator.js +95 -95
  121. package/lib/tr-grid-util/es6/jet/DataSet.js +1 -1
  122. package/lib/tr-grid-util/es6/jet/MockArchive.js +5 -5
  123. package/lib/tr-grid-util/es6/jet/MockJET.js +1 -1
  124. package/lib/tr-grid-util/es6/jet/MockQuotes.js +13 -13
  125. package/lib/tr-grid-util/es6/jet/MockQuotes2.js +100 -100
  126. package/lib/tr-grid-util/es6/jet/MockRTK.js +4 -4
  127. package/lib/tr-grid-util/es6/jet/MockUtil.js +2 -2
  128. package/lib/tr-grid-util/es6/jet/index.js +1 -1
  129. package/lib/tr-grid-util/es6/jet/mockDataAPI.js +15 -15
  130. package/lib/tr-grid-util/es6/locale/translation-de.js +1 -1
  131. package/lib/tr-grid-util/es6/locale/translation-en.js +1 -1
  132. package/lib/tr-grid-util/es6/locale/translation-ja.js +1 -1
  133. package/lib/tr-grid-util/es6/locale/translation-zh-hant.js +1 -1
  134. package/lib/tr-grid-util/es6/locale/translation-zh.js +1 -1
  135. package/lib/tr-grid-util/es6/locale/translation.js +1 -1
  136. package/lib/types/es6/ColumnDragging.d.ts +1 -1
  137. package/lib/types/es6/ColumnGrouping.d.ts +3 -1
  138. package/lib/types/es6/Core/data/DataTable.d.ts +4 -0
  139. package/lib/types/es6/Core/data/DataView.d.ts +2 -0
  140. package/lib/types/es6/Core/data/SegmentCollection.d.ts +2 -0
  141. package/lib/types/es6/Core/index.d.ts +0 -2
  142. package/lib/types/es6/RealtimeGrid/RowDefinition.d.ts +2 -1
  143. package/lib/types/es6/RowDragging.d.ts +1 -2
  144. package/lib/versions.json +12 -12
  145. package/package.json +1 -1
  146. package/lib/core/es6/grid/util/ElementFrameWork.d.ts +0 -18
  147. package/lib/core/es6/grid/util/ElementFrameWork.js +0 -227
  148. package/lib/core/es6/grid/util/HttpRequest.d.ts +0 -53
  149. package/lib/core/es6/grid/util/HttpRequest.js +0 -371
  150. package/lib/core/es6/grid/util/PercentBar.d.ts +0 -43
  151. package/lib/core/es6/grid/util/PercentBar.js +0 -390
  152. package/lib/core/es6/grid/util/PercentBarRenderer.d.ts +0 -41
  153. package/lib/core/es6/grid/util/PercentBarRenderer.js +0 -316
  154. package/lib/core/es6/grid/util/RangeBar.d.ts +0 -25
  155. package/lib/core/es6/grid/util/RangeBar.js +0 -255
  156. package/lib/types/es6/Core/grid/util/ElementFrameWork.d.ts +0 -18
  157. package/lib/types/es6/Core/grid/util/HttpRequest.d.ts +0 -53
  158. package/lib/types/es6/Core/grid/util/PercentBar.d.ts +0 -43
  159. package/lib/types/es6/Core/grid/util/PercentBarRenderer.d.ts +0 -41
  160. package/lib/types/es6/Core/grid/util/RangeBar.d.ts +0 -25
@@ -9,7 +9,7 @@ import { Dom } from "./Dom.js";
9
9
  * @private
10
10
  * @const
11
11
  */
12
- var GridElements = {
12
+ let GridElements = {
13
13
  "EFX-GRID": 1,
14
14
  "ATLAS-BLOTTER": 1,
15
15
  "EF-GRID": 1
@@ -18,7 +18,7 @@ var GridElements = {
18
18
  * @private
19
19
  * @const
20
20
  */
21
- var InvalidHostElements = {
21
+ let InvalidHostElements = {
22
22
  "BODY": 1,
23
23
  "HTML": 1,
24
24
  "EFX-GRID": 1,
@@ -30,16 +30,16 @@ var InvalidHostElements = {
30
30
  * @param {Object} instance
31
31
  * @return {Object}
32
32
  */
33
- var _cloneInstance = function (instance) {
33
+ let _cloneInstance = function (instance) {
34
34
  return new instance.constructor();
35
35
  };
36
36
  /** @private
37
37
  * @param {number} num
38
38
  * @return {!Array.<Object>}
39
39
  */
40
- var _newArrayOfObject = function (num) {
41
- var ary = new Array(num);
42
- for(var i = 0; i < num; ++i) {
40
+ let _newArrayOfObject = function (num) {
41
+ let ary = new Array(num);
42
+ for(let i = 0; i < num; ++i) {
43
43
  ary[i] = {};
44
44
  }
45
45
  return ary;
@@ -48,12 +48,12 @@ var _newArrayOfObject = function (num) {
48
48
  * @param {Element} elem
49
49
  * @param {boolean=} bool
50
50
  */
51
- var _toggleInlineElement = function (elem, bool) {
51
+ let _toggleInlineElement = function (elem, bool) {
52
52
  if(!elem || elem.style.display === "none") {
53
53
  return;
54
54
  }
55
55
 
56
- var s = elem.style;
56
+ let s = elem.style;
57
57
  if(bool == null) {
58
58
  bool = s.display !== "inline-block";
59
59
  }
@@ -69,7 +69,7 @@ var _toggleInlineElement = function (elem, bool) {
69
69
  /** @constructor
70
70
  * @param {Element} gridElem
71
71
  */
72
- var MultiTableManager = function (gridElem) {
72
+ let MultiTableManager = function (gridElem) {
73
73
  this._onDelayedConfiguration = this._onDelayedConfiguration.bind(this);
74
74
  this._onConfiguration = this._onConfiguration.bind(this);
75
75
  this._onWrapCountChanged = this._onWrapCountChanged.bind(this);
@@ -130,7 +130,7 @@ MultiTableManager.synchronizeVScrollbar = function(vScrollbarHost, hScrollbarHos
130
130
  return Promise.reject("Host element cannot be body element.");
131
131
  }
132
132
 
133
- var gridLen = 0;
133
+ let gridLen = 0;
134
134
  if(gridElems) {
135
135
  if(GridElements[gridElems.tagName]) { // Accept single grid element as a parameter
136
136
  gridElems = [gridElems];
@@ -139,8 +139,8 @@ MultiTableManager.synchronizeVScrollbar = function(vScrollbarHost, hScrollbarHos
139
139
  }
140
140
 
141
141
  // Element validation
142
- var i, gridElem;
143
- var validatedElems = [];
142
+ let i, gridElem;
143
+ let validatedElems = [];
144
144
  for(i = 0; i < gridLen; ++i) {
145
145
  gridElem = gridElems[i];
146
146
  if(gridElem && GridElements[gridElem.tagName]) {
@@ -152,13 +152,13 @@ MultiTableManager.synchronizeVScrollbar = function(vScrollbarHost, hScrollbarHos
152
152
  return Promise.reject("No grid element detected for scrollbar synchronization.");
153
153
  }
154
154
 
155
- var promises = [];
155
+ let promises = [];
156
156
  for(i = 0; i < gridLen; ++i) {
157
157
  gridElem = validatedElems[i];
158
158
  if(gridElem.api) {
159
159
  promises.push(Promise.resolve(gridElem));
160
160
  } else {
161
- var deferredConfig = gridElem._deferredConfig;
161
+ let deferredConfig = gridElem._deferredConfig;
162
162
  if(!deferredConfig) {
163
163
  deferredConfig = gridElem._deferredConfig = new Deferred();
164
164
  gridElem.addEventListener("configured", MultiTableManager._onGridConfigured);
@@ -175,10 +175,10 @@ MultiTableManager.synchronizeVScrollbar = function(vScrollbarHost, hScrollbarHos
175
175
  * @param {Object} e
176
176
  */
177
177
  MultiTableManager._onGridConfigured = function(e) {
178
- var gridElem = e.currentTarget;
178
+ let gridElem = e.currentTarget;
179
179
  gridElem.removeEventListener("configured", MultiTableManager._onGridConfigured);
180
180
  if(gridElem._deferredConfig) {
181
- var d = gridElem._deferredConfig;
181
+ let d = gridElem._deferredConfig;
182
182
  gridElem._deferredConfig = null;
183
183
  d.resolve(gridElem);
184
184
  }
@@ -190,7 +190,6 @@ MultiTableManager._onGridConfigured = function(e) {
190
190
  * @param {Array.<Element>} gridElems
191
191
  */
192
192
  MultiTableManager._onVScrollbarSynchronization = function(vScrollbarHost, hScrollbarHost, gridElems) {
193
- // Dom.removeChildren(vScrollbarHost);
194
193
  Dom.removeChildren(hScrollbarHost);
195
194
 
196
195
  vScrollbarHost.style.overflow = "hidden";
@@ -199,11 +198,11 @@ MultiTableManager._onVScrollbarSynchronization = function(vScrollbarHost, hScrol
199
198
  hScrollbarHost.style.whiteSpace = "nowrap";
200
199
  hScrollbarHost.style.overflow = "auto hidden";
201
200
 
202
- var gridLen = gridElems.length;
203
- var mainCore = gridElems[0].api.getCoreGrid();
204
- for(var i = 0; i < gridLen; ++i) {
205
- var gridElem = gridElems[i];
206
- var core = gridElem.api.getCoreGrid();
201
+ let gridLen = gridElems.length;
202
+ let mainCore = gridElems[0].api.getCoreGrid();
203
+ for(let i = 0; i < gridLen; ++i) {
204
+ let gridElem = gridElems[i];
205
+ let core = gridElem.api.getCoreGrid();
207
206
 
208
207
  _toggleInlineElement(gridElem, true);
209
208
  if(i > 0) {
@@ -215,7 +214,6 @@ MultiTableManager._onVScrollbarSynchronization = function(vScrollbarHost, hScrol
215
214
  }
216
215
 
217
216
  Dom.appendChild(hScrollbarHost, gridElems);
218
- // Dom.appendChild(vScrollbarHost, hScrollbarHost);
219
217
  };
220
218
 
221
219
  /** @public
@@ -231,7 +229,7 @@ MultiTableManager.prototype.setGridConfig = function (configObj) {
231
229
  }
232
230
  this._extensions = configObj.extensions ? configObj.extensions.slice() : [];
233
231
 
234
- var main = this._tables[0];
232
+ let main = this._tables[0];
235
233
  if(main) {
236
234
  configObj = this._cloneConfig();
237
235
  main.addEventListener("configured", this._onDelayedConfiguration);
@@ -266,8 +264,8 @@ MultiTableManager.prototype._onConfiguration = function () {
266
264
  /** @public
267
265
  */
268
266
  MultiTableManager.prototype.dispose = function () {
269
- var len = this._tables.length;
270
- for(var i = 0; i < len; ++i) {
267
+ let len = this._tables.length;
268
+ for(let i = 0; i < len; ++i) {
271
269
  this._tables[i].dispose();
272
270
  }
273
271
  this._tables = [];
@@ -280,11 +278,11 @@ MultiTableManager.prototype.dispose = function () {
280
278
  * @return {!Object}
281
279
  */
282
280
  MultiTableManager.prototype._cloneConfig = function () {
283
- var obj = null;
281
+ let obj = null;
284
282
  if(this._configObj) {
285
283
  obj = cloneObject(this._configObj);
286
284
  if(Array.isArray(obj.columns)) {
287
- var runtimeConfig = this._tables[0].api ? this._tables[0].api.getConfigObject() : this._configObj;
285
+ let runtimeConfig = this._tables[0].api ? this._tables[0].api.getConfigObject() : this._configObj;
288
286
  obj.columns = runtimeConfig.columns.slice();
289
287
  }
290
288
  }
@@ -304,7 +302,7 @@ MultiTableManager.prototype._setTableCount = function(num) {
304
302
  this._tableCount = num > 0 ? num : 1;
305
303
 
306
304
  if(this._ready) {
307
- var tableCount = this._tables.length;
305
+ let tableCount = this._tables.length;
308
306
  if(this._tableCount > tableCount) {
309
307
  this._addTables(this._tableCount - tableCount);
310
308
  } else if(this._tableCount < tableCount) {
@@ -328,15 +326,14 @@ MultiTableManager.prototype.setTableCount = function(num) {
328
326
  * @return {Element}
329
327
  */
330
328
  MultiTableManager.prototype._addTable = function(tableIndex) {
331
- var main = this._tables[0];
332
- var parentElem = main.parentNode;
333
- var core = main.api.getCoreGrid();
334
- var mainDataView = main.api.getDataView();
335
- // var mainDataTable = main.api.getDataTable();
336
- var stp = core.getPlugin("SortableTitlePlugin");
337
- var dtp = core.getPlugin("DragAndDropTitlePlugin");
338
-
339
- var configObj = this._cloneConfig();
329
+ let main = this._tables[0];
330
+ let parentElem = main.parentNode;
331
+ let core = main.api.getCoreGrid();
332
+ let mainDataView = main.api.getDataView();
333
+ let stp = core.getPlugin("SortableTitlePlugin");
334
+ let dtp = core.getPlugin("DragAndDropTitlePlugin");
335
+
336
+ let configObj = this._cloneConfig();
340
337
  configObj.extensions = this._generateExtensions();
341
338
 
342
339
  delete configObj.staticDataRows;
@@ -344,15 +341,15 @@ MultiTableManager.prototype._addTable = function(tableIndex) {
344
341
  delete configObj.dataModel;
345
342
 
346
343
  if(this._wrapSize) {
347
- var wrappedViews = mainDataView.getWrappedViews();
344
+ let wrappedViews = mainDataView.getWrappedViews();
348
345
  configObj.dataView = wrappedViews[tableIndex - 1];
349
346
  configObj.grid = main.api;
350
347
  } else {
351
348
  configObj["SortableTitle"] = stp;
352
349
  configObj["DragAndDropTitle"] = dtp;
353
- var rowCount = mainDataView.getRowCount();
350
+ let rowCount = mainDataView.getRowCount();
354
351
 
355
- var ary = _newArrayOfObject(rowCount);
352
+ let ary = _newArrayOfObject(rowCount);
356
353
  if(this._emeraldGrid) {
357
354
  configObj.dataModel = {
358
355
  data: ary
@@ -362,12 +359,12 @@ MultiTableManager.prototype._addTable = function(tableIndex) {
362
359
  }
363
360
  }
364
361
 
365
- var sub = document.createElement(main.tagName);
362
+ let sub = document.createElement(main.tagName);
366
363
  _toggleInlineElement(sub, true);
367
364
 
368
365
  sub.config = configObj;
369
366
 
370
- var lastTable = this._tables[this._tables.length - 1];
367
+ let lastTable = this._tables[this._tables.length - 1];
371
368
  parentElem.insertBefore(sub, lastTable.nextSibling);
372
369
  return sub;
373
370
  };
@@ -380,13 +377,11 @@ MultiTableManager.prototype._addTables = function(num) {
380
377
  return;
381
378
  }
382
379
 
383
- var main = this._tables[0];
380
+ let main = this._tables[0];
384
381
  _toggleInlineElement(main, true); // TODO: Check if we need to do this every time
385
382
 
386
- // main.api.setFitContentWidth(true);
387
-
388
- for(var i = 0; i < num; ++i) {
389
- var grid = this._addTable(this._tables.length);
383
+ for(let i = 0; i < num; ++i) {
384
+ let grid = this._addTable(this._tables.length);
390
385
  this._tables.push(grid);
391
386
  }
392
387
 
@@ -405,24 +400,20 @@ MultiTableManager.prototype._addTables = function(num) {
405
400
  * @param {number} num
406
401
  */
407
402
  MultiTableManager.prototype._removeTables = function(num) {
408
- var tableCount = this._tables.length;
403
+ let tableCount = this._tables.length;
409
404
  if (tableCount - num < 1) {
410
405
  num = tableCount - 1;
411
406
  }
412
407
  if(!num) {
413
408
  return;
414
409
  }
415
- for(var i = 0; i < num; ++i) {
416
- var sub = this._tables.pop();
410
+ for(let i = 0; i < num; ++i) {
411
+ let sub = this._tables.pop();
417
412
  sub.config = null;
418
413
  if(sub.parentNode) {
419
414
  sub.parentNode.removeChild(sub);
420
415
  }
421
416
  }
422
- // if(this._tables.length === 1) {
423
- // TODO: Reset state
424
- // this._tables[0].style.display = ""; // Remove display inline
425
- // }
426
417
  };
427
418
 
428
419
 
@@ -433,7 +424,7 @@ MultiTableManager.prototype._wrapTable = function(rowCount) {
433
424
  this._wrapSize = rowCount > 0 ? rowCount : 0;
434
425
 
435
426
  if(this._ready) {
436
- var main = this._tables[0];
427
+ let main = this._tables[0];
437
428
  if(this._wrapSize) {
438
429
  main.style.display = "none";
439
430
  main.api.getCoreGrid().getVScrollbar().disable();
@@ -443,7 +434,7 @@ MultiTableManager.prototype._wrapTable = function(rowCount) {
443
434
  main.api.getCoreGrid().getVScrollbar().disable(false);
444
435
  }
445
436
 
446
- var dv = main.api.getDataView();
437
+ let dv = main.api.getDataView();
447
438
  dv.listen("wrapCountChanged", this._onWrapCountChanged);
448
439
  dv.wrapView(this._wrapSize);
449
440
  }
@@ -490,10 +481,10 @@ MultiTableManager.prototype.getTable = function(at) {
490
481
  * @return {!Array}
491
482
  */
492
483
  MultiTableManager.prototype._generateExtensions = function() {
493
- var extCount = this._extensions ? this._extensions.length : 0;
494
- var ary = new Array(extCount);
495
- for(var i = 0; i < extCount; ++i) {
496
- var ext = this._extensions[i];
484
+ let extCount = this._extensions ? this._extensions.length : 0;
485
+ let ary = new Array(extCount);
486
+ for(let i = 0; i < extCount; ++i) {
487
+ let ext = this._extensions[i];
497
488
  if(ext.hasMultiTableSupport && ext.hasMultiTableSupport()) {
498
489
  ary[i] = ext;
499
490
  } else {
@@ -507,9 +498,9 @@ MultiTableManager.prototype._generateExtensions = function() {
507
498
  * @param {...*} args
508
499
  */
509
500
  MultiTableManager.prototype._execAll = function(methodName, args) {
510
- var tableCount = this._tables.length;
511
- for(var i = 0; i < tableCount; ++i) {
512
- var tbl = this._tables[i];
501
+ let tableCount = this._tables.length;
502
+ for(let i = 0; i < tableCount; ++i) {
503
+ let tbl = this._tables[i];
513
504
  if(args !== undefined) { // eslint-disable-line
514
505
  if(arguments.length > 2) {
515
506
  tbl.api[methodName].apply(
@@ -531,15 +522,15 @@ MultiTableManager.prototype._execAll = function(methodName, args) {
531
522
  */
532
523
  MultiTableManager.prototype.insertRow = function(rowOption, at) {
533
524
  if(this._emeraldGrid) {
534
- return; // TODO
525
+ return;
535
526
  }
536
527
 
537
528
  if(this._wrapSize) {
538
529
  this.getTable().api.insertRow(rowOption, at);
539
530
  } else {
540
- var tableCount = this._tables.length;
541
- for(var i = 0; i < tableCount; ++i) {
542
- var tbl = this._tables[i];
531
+ let tableCount = this._tables.length;
532
+ for(let i = 0; i < tableCount; ++i) {
533
+ let tbl = this._tables[i];
543
534
  tbl.api.insertRow(rowOption, at);
544
535
  }
545
536
  }
@@ -549,7 +540,7 @@ MultiTableManager.prototype.insertRow = function(rowOption, at) {
549
540
  */
550
541
  MultiTableManager.prototype.removeRow = function(at) {
551
542
  if(this._emeraldGrid) {
552
- return; // TODO
543
+ return;
553
544
  }
554
545
  if(at == null) {
555
546
  at = this.getRowCount() - 1;
@@ -558,9 +549,9 @@ MultiTableManager.prototype.removeRow = function(at) {
558
549
  if(this._wrapSize) {
559
550
  this.getTable().api.removeRow(at);
560
551
  } else {
561
- var tableCount = this._tables.length;
562
- for(var i = 0; i < tableCount; ++i) {
563
- var tbl = this._tables[i];
552
+ let tableCount = this._tables.length;
553
+ for(let i = 0; i < tableCount; ++i) {
554
+ let tbl = this._tables[i];
564
555
  tbl.api.removeRow(at);
565
556
  }
566
557
  }
@@ -579,12 +570,12 @@ MultiTableManager.prototype.getRowCount = function() {
579
570
  */
580
571
  MultiTableManager.prototype.insertColumn = function(columnOption, idx) {
581
572
  if(this._emeraldGrid) {
582
- return; // TODO
573
+ return;
583
574
  }
584
575
 
585
- var tableCount = this._tables.length;
586
- for(var i = 0; i < tableCount; ++i) {
587
- var tbl = this._tables[i];
576
+ let tableCount = this._tables.length;
577
+ for(let i = 0; i < tableCount; ++i) {
578
+ let tbl = this._tables[i];
588
579
  tbl.api.insertColumn(columnOption, idx);
589
580
  }
590
581
  };
@@ -593,11 +584,11 @@ MultiTableManager.prototype.insertColumn = function(columnOption, idx) {
593
584
  */
594
585
  MultiTableManager.prototype.removeColumn = function(colRef) {
595
586
  if(this._emeraldGrid) {
596
- return; // TODO
587
+ return;
597
588
  }
598
- var tableCount = this._tables.length;
599
- for(var i = 0; i < tableCount; ++i) {
600
- var tbl = this._tables[i];
589
+ let tableCount = this._tables.length;
590
+ for(let i = 0; i < tableCount; ++i) {
591
+ let tbl = this._tables[i];
601
592
  tbl.api.removeColumn(colRef);
602
593
  }
603
594
  };
@@ -18,12 +18,12 @@
18
18
  * @param {number} num Absolute number
19
19
  * @return {number}
20
20
  */
21
- var _multiplyByHundred = function(num) {
22
- var intPart = num | 0;
21
+ let _multiplyByHundred = function(num) {
22
+ let intPart = num | 0;
23
23
  if(num > intPart) {
24
- var str = num + "";
25
- var at = str.indexOf(".");
26
- var fracStr = str.slice(at + 1) + "00";
24
+ let str = num + "";
25
+ let at = str.indexOf(".");
26
+ let fracStr = str.slice(at + 1) + "00";
27
27
  return +(str.slice(0, at) + fracStr.slice(0, 2) + "." + fracStr.slice(2));
28
28
  }
29
29
  return num * 100;
@@ -33,7 +33,7 @@ var _multiplyByHundred = function(num) {
33
33
  * @constructor
34
34
  * @param {NumberFormatter~Options=} options
35
35
  * @example
36
- * var options = {
36
+ * let options = {
37
37
  * "precisionEnabled": false, // Default is leaving precision as is
38
38
  * "decimalPlaces": 2, // Take effect only precisionEnabled === true
39
39
  * "plusSign": false, // Plus sign prefixing
@@ -42,12 +42,12 @@ var _multiplyByHundred = function(num) {
42
42
  * "scalingUnit": "", // "b"|"m"
43
43
  * "multiplyBy100": false
44
44
  *};
45
- * var nf = new NumberFormatter(options);
45
+ * let nf = new NumberFormatter(options);
46
46
  * nf.format(123); // "123"
47
47
  * nf.format(-456.789); // "-456.789"
48
48
  * nf.getOptions(); // For serialization
49
49
  */
50
- var NumberFormatter = function (options) {
50
+ let NumberFormatter = function (options) {
51
51
  this["format"] = this.format = this.format.bind(this);
52
52
 
53
53
  this.init(options);
@@ -113,10 +113,10 @@ NumberFormatter.prototype.init = function(options) { // deserialize
113
113
  return;
114
114
  }
115
115
 
116
- var formatType = /** @type{string} */(options["formatType"] || options["type"]);
116
+ let formatType = /** @type{string} */(options["formatType"] || options["type"]);
117
117
 
118
118
  // Note that precision will not be used in scaledValue mode
119
- var val = options["precisionEnabled"];
119
+ let val = options["precisionEnabled"];
120
120
  if(val != null && val !== "") {
121
121
  this._precisionEnabled = val ? true : false;
122
122
  } else {
@@ -203,9 +203,9 @@ NumberFormatter.prototype.resetToDefaults = function () {
203
203
  * NumberFormatter.padDecimalPartWithZeroes("1.000", 2); // "1.000"
204
204
  */
205
205
  NumberFormatter.padDecimalPartWithZeroes = function (str, precision) {
206
- var dp = str.lastIndexOf(".");
206
+ let dp = str.lastIndexOf(".");
207
207
  if (dp >= 0) {
208
- var decimalPlace = str.length - dp - 1;
208
+ let decimalPlace = str.length - dp - 1;
209
209
  if (decimalPlace < precision) {
210
210
  str += NumberFormatter._zeroes[precision - decimalPlace];
211
211
  }
@@ -240,7 +240,7 @@ NumberFormatter.multiplyByHundred = function (num) {
240
240
  NumberFormatter.prototype.getOptions = function(options) { // serialize
241
241
  if(!options) { options = {}; }
242
242
 
243
- var formatType = options["formatType"];
243
+ let formatType = options["formatType"];
244
244
 
245
245
  if(this._precisionEnabled !== true) {
246
246
  options["precisionEnabled"] = this._precisionEnabled; // Default in init
@@ -259,7 +259,7 @@ NumberFormatter.prototype.getOptions = function(options) { // serialize
259
259
  }
260
260
 
261
261
  if(formatType === "scaled" || formatType === "scaledvalue") {
262
- var su = "";
262
+ let su = "";
263
263
  if(this._scaler == "b") {
264
264
  su = "billion";
265
265
  options["scalingUnit"] = su;
@@ -295,7 +295,7 @@ NumberFormatter.prototype.format = function(origVal) {
295
295
  }
296
296
 
297
297
  // Simplify logic by making positive value
298
- var val, sign;
298
+ let val, sign;
299
299
  if(origVal >= 0) {
300
300
  val = origVal;
301
301
  sign = this._plusSignEnabled ? "+" : "";
@@ -303,7 +303,7 @@ NumberFormatter.prototype.format = function(origVal) {
303
303
  val = -origVal;
304
304
  sign = "-";
305
305
  }
306
- var scalingMode = this._percentFormatEnabled ? "" : this._scaler; // Percent formatting overwrite scaling mode
306
+ let scalingMode = this._percentFormatEnabled ? "" : this._scaler; // Percent formatting overwrite scaling mode
307
307
 
308
308
  if(this._multiplyBy100Enabled) {
309
309
  if(this._precisionEnabled || scalingMode) {
@@ -313,7 +313,7 @@ NumberFormatter.prototype.format = function(origVal) {
313
313
  }
314
314
  }
315
315
 
316
- var absVal = val;
316
+ let absVal = val;
317
317
  // Perform scaling
318
318
  if (scalingMode) {
319
319
  if (scalingMode === "b" && val < 1e9) {
@@ -332,7 +332,7 @@ NumberFormatter.prototype.format = function(origVal) {
332
332
  // Perform rounding
333
333
  if (this._precisionEnabled) {
334
334
  if (this._precision > 0) {
335
- var deno = NumberFormatter._denominator[this._precision];
335
+ let deno = NumberFormatter._denominator[this._precision];
336
336
  val = Math.round(val * deno) / deno;
337
337
  } else {
338
338
  val = Math.round(val);
@@ -342,14 +342,14 @@ NumberFormatter.prototype.format = function(origVal) {
342
342
  }
343
343
 
344
344
  // Convert value to string
345
- var str;
345
+ let str;
346
346
  if(val > 0) {
347
347
  if(val >= 1e-6) { // Handle high (7 or more digits) precision value
348
348
  str = sign + val;
349
349
  } else {
350
- var fraction = val * 1e7; // Be careful that there are some cases like 1e-7 * 1e6 === 0.099
350
+ let fraction = val * 1e7; // Be careful that there are some cases like 1e-7 * 1e6 === 0.099
351
351
  str = (fraction / 10) + "";
352
- str = sign + "0.000000" + str.substr(2);
352
+ str = sign + "0.000000" + str.slice(2);
353
353
  }
354
354
  } else {
355
355
  str = "0";
@@ -357,7 +357,7 @@ NumberFormatter.prototype.format = function(origVal) {
357
357
 
358
358
  // Add separators
359
359
  if(this._separatorEnabled && val >= 1e3) {
360
- var strs = str.split(".");
360
+ let strs = str.split(".");
361
361
  str = strs[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
362
362
  if(strs.length > 1) {
363
363
  str += "." + strs[1];
@@ -389,7 +389,7 @@ NumberFormatter.prototype.format = function(origVal) {
389
389
 
390
390
  /** @public */
391
391
  NumberFormatter.prototype.enableDefaultFormat = function() {
392
- var t = this;
392
+ let t = this;
393
393
  t._precisionEnabled = t._separatorEnabled = t._percentSignEnabled = false;
394
394
  t._percentFormatEnabled = t._plusSignEnabled = t._multiplyBy100Enabled = false;
395
395
  t._scaler = "";