@refinitiv-ui/efx-grid 6.0.91 → 6.0.92

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/lib/column-dragging/es6/ColumnDragging.d.ts +1 -1
  2. package/lib/column-dragging/es6/ColumnDragging.js +144 -34
  3. package/lib/core/dist/core.js +2410 -2621
  4. package/lib/core/dist/core.min.js +1 -1
  5. package/lib/core/es6/data/ColumnStats.js +14 -14
  6. package/lib/core/es6/data/DataCache.js +118 -118
  7. package/lib/core/es6/data/DataTable.d.ts +3 -1
  8. package/lib/core/es6/data/DataTable.js +208 -190
  9. package/lib/core/es6/data/DataView.d.ts +1 -1
  10. package/lib/core/es6/data/DataView.js +291 -291
  11. package/lib/core/es6/data/Segment.js +79 -79
  12. package/lib/core/es6/data/SegmentCollection.js +81 -81
  13. package/lib/core/es6/data/WrappedView.js +41 -41
  14. package/lib/core/es6/grid/Core.js +635 -635
  15. package/lib/core/es6/grid/ILayoutGrid.js +1 -1
  16. package/lib/core/es6/grid/LayoutGrid.js +183 -183
  17. package/lib/core/es6/grid/VirtualizedLayoutGrid.js +91 -91
  18. package/lib/core/es6/grid/components/Cell.js +29 -29
  19. package/lib/core/es6/grid/components/CellFloatingPanel.js +11 -11
  20. package/lib/core/es6/grid/components/CellSpan.js +7 -7
  21. package/lib/core/es6/grid/components/CellSpans.js +36 -34
  22. package/lib/core/es6/grid/components/Column.js +40 -40
  23. package/lib/core/es6/grid/components/ElementWrapper.js +17 -17
  24. package/lib/core/es6/grid/components/HScrollbar.js +31 -31
  25. package/lib/core/es6/grid/components/Scrollbar.js +77 -77
  26. package/lib/core/es6/grid/components/StretchedCells.js +49 -49
  27. package/lib/core/es6/grid/components/VScrollbar.js +11 -11
  28. package/lib/core/es6/grid/components/VirtualItems.js +3 -3
  29. package/lib/core/es6/grid/event/EventDispatcher.js +9 -9
  30. package/lib/core/es6/grid/event/EventListeners.js +4 -4
  31. package/lib/core/es6/grid/plugins/SortableTitlePlugin.js +186 -186
  32. package/lib/core/es6/grid/util/Conflator.js +4 -4
  33. package/lib/core/es6/grid/util/Reverter.js +1 -1
  34. package/lib/core/es6/grid/util/SectionSettings.js +20 -20
  35. package/lib/core/es6/grid/util/SelectionList.js +23 -23
  36. package/lib/core/es6/grid/util/TrackLayout.js +74 -74
  37. package/lib/core/es6/grid/util/Virtualizer.js +15 -15
  38. package/lib/core/es6/grid/util/util.js +20 -20
  39. package/lib/core/es6/index.d.ts +0 -2
  40. package/lib/core/es6/index.js +0 -3
  41. package/lib/grid/index.js +1 -1
  42. package/lib/rt-grid/dist/rt-grid.js +193 -70
  43. package/lib/rt-grid/dist/rt-grid.min.js +1 -1
  44. package/lib/rt-grid/es6/Grid.js +46 -30
  45. package/lib/rt-grid/es6/RowDefinition.d.ts +2 -1
  46. package/lib/rt-grid/es6/RowDefinition.js +74 -16
  47. package/lib/tr-grid-cell-selection/es6/CellSelection.js +56 -1
  48. package/lib/tr-grid-column-grouping/es6/ColumnGrouping.d.ts +3 -1
  49. package/lib/tr-grid-column-grouping/es6/ColumnGrouping.js +29 -1
  50. package/lib/tr-grid-util/es6/CellPainter.js +94 -93
  51. package/lib/tr-grid-util/es6/Conflator.js +4 -4
  52. package/lib/tr-grid-util/es6/CoralItems.js +6 -6
  53. package/lib/tr-grid-util/es6/DateTime.js +39 -39
  54. package/lib/tr-grid-util/es6/Deferred.js +5 -5
  55. package/lib/tr-grid-util/es6/Delay.js +1 -1
  56. package/lib/tr-grid-util/es6/Dom.js +26 -26
  57. package/lib/tr-grid-util/es6/DragUI.js +17 -17
  58. package/lib/tr-grid-util/es6/ElementObserver.js +12 -12
  59. package/lib/tr-grid-util/es6/ElementWrapper.js +2 -2
  60. package/lib/tr-grid-util/es6/ElfDate.js +4 -4
  61. package/lib/tr-grid-util/es6/ElfUtil.js +37 -37
  62. package/lib/tr-grid-util/es6/EventDispatcher.js +12 -12
  63. package/lib/tr-grid-util/es6/ExpanderIcon.js +6 -6
  64. package/lib/tr-grid-util/es6/ExpressionParser.js +43 -43
  65. package/lib/tr-grid-util/es6/Ext.js +6 -6
  66. package/lib/tr-grid-util/es6/FieldFormatter.js +17 -17
  67. package/lib/tr-grid-util/es6/FilterBuilder.js +57 -57
  68. package/lib/tr-grid-util/es6/FilterOperators.d.ts +12 -1
  69. package/lib/tr-grid-util/es6/FilterOperators.js +13 -2
  70. package/lib/tr-grid-util/es6/GridPlugin.js +86 -86
  71. package/lib/tr-grid-util/es6/GroupDefinitions.js +90 -90
  72. package/lib/tr-grid-util/es6/Icon.js +4 -4
  73. package/lib/tr-grid-util/es6/MouseDownTrait.js +6 -6
  74. package/lib/tr-grid-util/es6/MultiTableManager.js +68 -68
  75. package/lib/tr-grid-util/es6/NumberFormatter.js +22 -22
  76. package/lib/tr-grid-util/es6/PercentBar.js +17 -17
  77. package/lib/tr-grid-util/es6/Perf.js +5 -5
  78. package/lib/tr-grid-util/es6/Popup.js +42 -42
  79. package/lib/tr-grid-util/es6/RangeBar.js +5 -5
  80. package/lib/tr-grid-util/es6/RequestQueue.js +5 -5
  81. package/lib/tr-grid-util/es6/RowPainter.js +23 -23
  82. package/lib/tr-grid-util/es6/SubTable.js +94 -94
  83. package/lib/tr-grid-util/es6/Table.js +51 -51
  84. package/lib/tr-grid-util/es6/TextHighlighter.js +49 -49
  85. package/lib/tr-grid-util/es6/TickCodes.js +2 -2
  86. package/lib/tr-grid-util/es6/Timer.js +2 -2
  87. package/lib/tr-grid-util/es6/TouchProxy.js +7 -7
  88. package/lib/tr-grid-util/es6/Util.js +50 -50
  89. package/lib/tr-grid-util/es6/formula/ADCService.js +2 -2
  90. package/lib/tr-grid-util/es6/formula/ADCSubscription.js +19 -19
  91. package/lib/tr-grid-util/es6/formula/AdFinService.js +2 -2
  92. package/lib/tr-grid-util/es6/formula/AdFinSubscription.js +19 -19
  93. package/lib/tr-grid-util/es6/formula/Engine.js +56 -56
  94. package/lib/tr-grid-util/es6/formula/Formula.js +62 -62
  95. package/lib/tr-grid-util/es6/formula/IntervalSubscription.js +3 -3
  96. package/lib/tr-grid-util/es6/formula/Realtime.js +15 -15
  97. package/lib/tr-grid-util/es6/formula/RealtimeService.js +15 -15
  98. package/lib/tr-grid-util/es6/formula/TSIService.js +2 -2
  99. package/lib/tr-grid-util/es6/formula/TSISubscription.js +104 -104
  100. package/lib/tr-grid-util/es6/formula/VariableToken.js +20 -20
  101. package/lib/tr-grid-util/es6/formula/functions/AdFin.js +10 -10
  102. package/lib/tr-grid-util/es6/formula/functions/Excel.js +1 -1
  103. package/lib/tr-grid-util/es6/formula/functions/Info.js +2 -2
  104. package/lib/tr-grid-util/es6/formula/functions/Internal.js +5 -5
  105. package/lib/tr-grid-util/es6/formula/functions/Logic.js +5 -5
  106. package/lib/tr-grid-util/es6/formula/functions/Math.js +46 -46
  107. package/lib/tr-grid-util/es6/formula/functions/Statistics.js +27 -27
  108. package/lib/tr-grid-util/es6/formula/functions/Text.js +19 -19
  109. package/lib/tr-grid-util/es6/index.js +1 -1
  110. package/lib/tr-grid-util/es6/jet/Adc.js +36 -36
  111. package/lib/tr-grid-util/es6/jet/CollectionDict.js +11 -11
  112. package/lib/tr-grid-util/es6/jet/DataGenerator.js +95 -95
  113. package/lib/tr-grid-util/es6/jet/DataSet.js +1 -1
  114. package/lib/tr-grid-util/es6/jet/MockArchive.js +5 -5
  115. package/lib/tr-grid-util/es6/jet/MockJET.js +1 -1
  116. package/lib/tr-grid-util/es6/jet/MockQuotes.js +13 -13
  117. package/lib/tr-grid-util/es6/jet/MockQuotes2.js +100 -100
  118. package/lib/tr-grid-util/es6/jet/MockRTK.js +4 -4
  119. package/lib/tr-grid-util/es6/jet/MockUtil.js +2 -2
  120. package/lib/tr-grid-util/es6/jet/index.js +1 -1
  121. package/lib/tr-grid-util/es6/jet/mockDataAPI.js +15 -15
  122. package/lib/tr-grid-util/es6/locale/translation-de.js +1 -1
  123. package/lib/tr-grid-util/es6/locale/translation-en.js +1 -1
  124. package/lib/tr-grid-util/es6/locale/translation-ja.js +1 -1
  125. package/lib/tr-grid-util/es6/locale/translation-zh-hant.js +1 -1
  126. package/lib/tr-grid-util/es6/locale/translation-zh.js +1 -1
  127. package/lib/tr-grid-util/es6/locale/translation.js +1 -1
  128. package/lib/types/es6/ColumnDragging.d.ts +1 -1
  129. package/lib/types/es6/ColumnGrouping.d.ts +3 -1
  130. package/lib/types/es6/Core/data/DataTable.d.ts +4 -0
  131. package/lib/types/es6/Core/data/DataView.d.ts +2 -0
  132. package/lib/types/es6/Core/data/SegmentCollection.d.ts +2 -0
  133. package/lib/types/es6/Core/index.d.ts +0 -2
  134. package/lib/types/es6/RealtimeGrid/RowDefinition.d.ts +2 -1
  135. package/lib/versions.json +4 -4
  136. package/package.json +1 -1
  137. package/lib/core/es6/grid/util/ElementFrameWork.d.ts +0 -18
  138. package/lib/core/es6/grid/util/ElementFrameWork.js +0 -227
  139. package/lib/core/es6/grid/util/HttpRequest.d.ts +0 -53
  140. package/lib/core/es6/grid/util/HttpRequest.js +0 -371
  141. package/lib/core/es6/grid/util/PercentBar.d.ts +0 -43
  142. package/lib/core/es6/grid/util/PercentBar.js +0 -390
  143. package/lib/core/es6/grid/util/PercentBarRenderer.d.ts +0 -41
  144. package/lib/core/es6/grid/util/PercentBarRenderer.js +0 -316
  145. package/lib/core/es6/grid/util/RangeBar.d.ts +0 -25
  146. package/lib/core/es6/grid/util/RangeBar.js +0 -255
  147. package/lib/types/es6/Core/grid/util/ElementFrameWork.d.ts +0 -18
  148. package/lib/types/es6/Core/grid/util/HttpRequest.d.ts +0 -53
  149. package/lib/types/es6/Core/grid/util/PercentBar.d.ts +0 -43
  150. package/lib/types/es6/Core/grid/util/PercentBarRenderer.d.ts +0 -41
  151. package/lib/types/es6/Core/grid/util/RangeBar.d.ts +0 -25
@@ -6,7 +6,7 @@ import {RequestQueue} from "../RequestQueue.js";
6
6
  /** @constructor
7
7
  * @extends {EventDispatcher}
8
8
  */
9
- var TSISubscription = function() {
9
+ let TSISubscription = function() {
10
10
  this._refreshData = this._refreshData.bind(this);
11
11
 
12
12
  // Old TSI service
@@ -209,18 +209,18 @@ TSISubscription.prototype.setTSISettings = function(sharedServiceUrl, taServiceU
209
209
  * @return {*} Return the value if there is existing. Return undefined when requesting the invalid field.
210
210
  */
211
211
  TSISubscription.prototype.addSymbolAndFieldToPeriod = function (symbol, field, period) {
212
- var periodRIC = this._getPeriodRICData(period, symbol);
212
+ let periodRIC = this._getPeriodRICData(period, symbol);
213
213
  if(periodRIC.dataCache[field] != null) { // Already have data
214
214
  return periodRIC.dataCache[field];
215
215
  }
216
216
 
217
- var periodMap = this._getPeriodMap(period);
218
- var isNewSymbol = periodMap.symbol[symbol] == null;
217
+ let periodMap = this._getPeriodMap(period);
218
+ let isNewSymbol = periodMap.symbol[symbol] == null;
219
219
  if(isNewSymbol) {
220
220
  periodMap.symbol[symbol] = true;
221
221
  }
222
222
 
223
- var isNewField = periodMap.field[field] == null;
223
+ let isNewField = periodMap.field[field] == null;
224
224
  if(isNewField) {
225
225
  periodMap.field[field] = true;
226
226
  }
@@ -311,7 +311,7 @@ TSISubscription.prototype._stop = function() {
311
311
  * @private
312
312
  */
313
313
  TSISubscription.prototype._refreshData = function() {
314
- for(var period in this._tsiPeriodMap) {
314
+ for(let period in this._tsiPeriodMap) {
315
315
  // Request to old TSI service
316
316
  this._oldTsiDataQ.add({ period: period }); // If it has error code, it will fallback to new service automatically.
317
317
  }
@@ -337,7 +337,7 @@ TSISubscription.prototype._getPeriodMap = function(period) {
337
337
  * @return {Object} Object that related to period and RIC
338
338
  */
339
339
  TSISubscription.prototype._getPeriodRICData = function(period, symbol) {
340
- var tsiPeriodMap = this._getPeriodMap(period);
340
+ let tsiPeriodMap = this._getPeriodMap(period);
341
341
  if(!tsiPeriodMap[symbol]) {
342
342
  tsiPeriodMap[symbol] = {
343
343
  view: {}, // This property will used for new TSI service
@@ -379,11 +379,11 @@ TSISubscription.prototype._requestMetadata = function(symbol) {
379
379
  TSISubscription.prototype._manageMetadataQ = function() {
380
380
  this._metadataTimer = 0; // Reset
381
381
 
382
- var symbolMap = this._metadataMap;
382
+ let symbolMap = this._metadataMap;
383
383
  this._metadataMap = {};
384
384
 
385
- var symbols = [];
386
- for(var key in symbolMap) {
385
+ let symbols = [];
386
+ for(let key in symbolMap) {
387
387
  if(this._metadataPendingMap[key]) {
388
388
  continue;
389
389
  }
@@ -406,17 +406,17 @@ TSISubscription.prototype._manageMetadataQ = function() {
406
406
  * @return {Promise}
407
407
  */
408
408
  TSISubscription.prototype._onRequestMetadata = function(obj, q) {
409
- var reqRics = obj.rics;
410
- var len = reqRics.length;
409
+ let reqRics = obj.rics;
410
+ let len = reqRics.length;
411
411
  if(len <= 0) {
412
412
  return Promise.resolve("");
413
413
  }
414
414
 
415
415
  // Merge request
416
- var qi = q.length;
417
- var remaining = TSISubscription.MAX_CONCURRENT_OBJECT - len;
416
+ let qi = q.length;
417
+ let remaining = TSISubscription.MAX_CONCURRENT_OBJECT - len;
418
418
  while(remaining > 0 && --qi >= 0) {
419
- var qObj = q[qi];
419
+ let qObj = q[qi];
420
420
  reqRics = reqRics.concat( qObj.rics.splice(0, remaining) );
421
421
 
422
422
  len = reqRics.length; // Update length
@@ -426,12 +426,12 @@ TSISubscription.prototype._onRequestMetadata = function(obj, q) {
426
426
  }
427
427
  }
428
428
 
429
- var payload = { "rics": reqRics };
430
- var pendingMap = this._metadataPendingMap;
429
+ let payload = { "rics": reqRics };
430
+ let pendingMap = this._metadataPendingMap;
431
431
  return Util.post(this._tsiTaServiceUrl + "/GetMetadata", payload)
432
432
  .then(this._extractMetadata)
433
433
  .catch(function(err) {
434
- for(var i = len; --i >= 0;) {
434
+ for(let i = len; --i >= 0;) {
435
435
  delete pendingMap[reqRics[i]]; // Remove key from pending list due to error
436
436
  }
437
437
  });
@@ -441,22 +441,22 @@ TSISubscription.prototype._onRequestMetadata = function(obj, q) {
441
441
  * @param {Object} serviceResponse
442
442
  */
443
443
  TSISubscription.prototype._extractMetadata = function(serviceResponse) {
444
- var instruments = serviceResponse["instruments"];
444
+ let instruments = serviceResponse["instruments"];
445
445
  if(instruments) { // Successful request
446
- var aryLen = Object.keys(/** @type {!Object} */(TSISubscription.INTERVAL_INDEX)).length;
447
- var ary = new Array(aryLen); // Reused array
448
- for(var i = instruments.length; --i >= 0;) {
449
- var instrument = instruments[i];
450
-
451
- var data = null;
452
- var viewList = instrument["viewList"] || [];
453
- for(var j = viewList.length; --j >= 0;) {
454
- var view = viewList[j];
455
- var intervals = view["intervals"];
456
- var k, interval, len;
446
+ let aryLen = Object.keys(/** @type {!Object} */(TSISubscription.INTERVAL_INDEX)).length;
447
+ let ary = new Array(aryLen); // Reused array
448
+ for(let i = instruments.length; --i >= 0;) {
449
+ let instrument = instruments[i];
450
+
451
+ let data = null;
452
+ let viewList = instrument["viewList"] || [];
453
+ for(let j = viewList.length; --j >= 0;) {
454
+ let view = viewList[j];
455
+ let intervals = view["intervals"];
456
+ let k, interval, len;
457
457
  for(k = 0, len = intervals.length; k < len; k++) {
458
458
  interval = intervals[k];
459
- var idx = TSISubscription.INTERVAL_INDEX[ interval["name"] ];
459
+ let idx = TSISubscription.INTERVAL_INDEX[ interval["name"] ];
460
460
  if(idx != null) {
461
461
  if(ary[idx] == null || TSISubscription.INTERVAL_MAIN[ interval["name"] ]) { // Main interval has more priority than other interval in same category
462
462
  ary[idx] = interval;
@@ -464,15 +464,15 @@ TSISubscription.prototype._extractMetadata = function(serviceResponse) {
464
464
  }
465
465
  }
466
466
 
467
- var viewData = null;
468
- var columns;
467
+ let viewData = null;
468
+ let columns;
469
469
  for(k = 0; k < aryLen; k++) {
470
470
  interval = ary[k];
471
471
  ary[k] = null; // Clear array for reused
472
472
  if(interval != null && viewData === null) {
473
473
  columns = 0; // Reset
474
474
 
475
- for(var l = interval["fields"].length; --l >= 0;) { // Column mask for view + interval
475
+ for(let l = interval["fields"].length; --l >= 0;) { // Column mask for view + interval
476
476
  columns |= TSISubscription.COLUMN_MASK_ENUM[ interval["fields"][l] ]; // undefined will be same as 0
477
477
  }
478
478
 
@@ -524,14 +524,14 @@ TSISubscription.prototype._getKey = function(symbol, view, period) {
524
524
  * @return {Object.<string, Array>}
525
525
  */
526
526
  TSISubscription.prototype._buildRequestInfo = function(reqPayload, dateMap) {
527
- var ric = reqPayload.ric;
528
- var view = reqPayload.view;
529
- var viewData = this._tsiMetadata[ric] && this._tsiMetadata[ric][view];
527
+ let ric = reqPayload.ric;
528
+ let view = reqPayload.view;
529
+ let viewData = this._tsiMetadata[ric] && this._tsiMetadata[ric][view];
530
530
  if(!viewData) {
531
531
  return null;
532
532
  }
533
533
 
534
- var period = dateMap[reqPayload.period];
534
+ let period = dateMap[reqPayload.period];
535
535
  if(period == null) {
536
536
  period = TSISubscription._dateCalculation(reqPayload.period).getTime();
537
537
  dateMap[reqPayload.period] = period;
@@ -560,7 +560,7 @@ TSISubscription.prototype._requestTSIData = function(symbol, view, period) {
560
560
  return;
561
561
  }
562
562
 
563
- var key = this._getKey(symbol, view, period);
563
+ let key = this._getKey(symbol, view, period);
564
564
  if(this._tsiDataPendingMap[key] || this._tsiDataMap[key]) { // Already in list
565
565
  return;
566
566
  }
@@ -580,12 +580,12 @@ TSISubscription.prototype._requestTSIData = function(symbol, view, period) {
580
580
  TSISubscription.prototype._manageTSIDataQ = function() {
581
581
  this._tsiDataTimer = 0; // Reset
582
582
 
583
- var listMap = this._tsiDataMap;
583
+ let listMap = this._tsiDataMap;
584
584
  this._tsiDataMap = {};
585
585
 
586
- var obj;
587
- var listArr = [];
588
- for(var key in listMap) {
586
+ let obj;
587
+ let listArr = [];
588
+ for(let key in listMap) {
589
589
  obj = listMap[key];
590
590
  if(this._hasMetadata(obj.ric)) {
591
591
  if(this._tsiDataPendingMap[key]) {
@@ -615,17 +615,17 @@ TSISubscription.prototype._manageTSIDataQ = function() {
615
615
  * @return {!Promise}
616
616
  */
617
617
  TSISubscription.prototype._onRequestTSIData = function(obj, q) {
618
- var reqPayloads = obj.list;
619
- var len = reqPayloads.length;
618
+ let reqPayloads = obj.list;
619
+ let len = reqPayloads.length;
620
620
  if(len <= 0) {
621
621
  return Promise.resolve("");
622
622
  }
623
623
 
624
624
  // Merge request
625
- var qi = q.length;
626
- var remaining = TSISubscription.MAX_CONCURRENT_OBJECT - len;
625
+ let qi = q.length;
626
+ let remaining = TSISubscription.MAX_CONCURRENT_OBJECT - len;
627
627
  while(remaining > 0 && --qi >= 0) {
628
- var qObj = q[qi];
628
+ let qObj = q[qi];
629
629
  reqPayloads = reqPayloads.concat( qObj.list.splice(0, remaining) );
630
630
 
631
631
  len = reqPayloads.length; // Update length
@@ -635,10 +635,10 @@ TSISubscription.prototype._onRequestTSIData = function(obj, q) {
635
635
  }
636
636
  }
637
637
 
638
- var dateMap = {};
639
- var requestInfos = [];
640
- var reqInfo;
641
- for(var i = len; --i >= 0;) {
638
+ let dateMap = {};
639
+ let requestInfos = [];
640
+ let reqInfo;
641
+ for(let i = len; --i >= 0;) {
642
642
  reqInfo = this._buildRequestInfo(reqPayloads[i], dateMap);
643
643
  if(reqInfo) {
644
644
  requestInfos.push( reqInfo ); // BEWARE: This is the reverse loop
@@ -649,14 +649,14 @@ TSISubscription.prototype._onRequestTSIData = function(obj, q) {
649
649
  * Complete the request so that it will not stay indefinitely as "pending"
650
650
  * TRGRID-2335
651
651
  */
652
- var key = this._getKey(reqPayloads[i].ric, reqPayloads[i].view, reqPayloads[i].period);
652
+ let key = this._getKey(reqPayloads[i].ric, reqPayloads[i].view, reqPayloads[i].period);
653
653
  delete this._tsiDataPendingMap[key]; // Remove from pending map
654
654
 
655
- var periodRIC = this._getPeriodRICData(reqPayloads[i].period, reqPayloads[i].ric);
656
- var periodMap = this._getPeriodMap(reqPayloads[i].period);
657
- var fields = periodMap.field;
658
- var rowData = {};
659
- for(var field in fields) {
655
+ let periodRIC = this._getPeriodRICData(reqPayloads[i].period, reqPayloads[i].ric);
656
+ let periodMap = this._getPeriodMap(reqPayloads[i].period);
657
+ let fields = periodMap.field;
658
+ let rowData = {};
659
+ for(let field in fields) {
660
660
  if(!fields[field]) continue;
661
661
  periodRIC.dataCache[field] = null;
662
662
  rowData[reqPayloads[i].period + "♠" + field] = periodRIC.dataCache[field];
@@ -670,8 +670,8 @@ TSISubscription.prototype._onRequestTSIData = function(obj, q) {
670
670
  return Promise.resolve("");
671
671
  }
672
672
 
673
- var self = this; // TODO: This is bad
674
- var payload = { "messages": requestInfos.reverse() }; // Reverse array back for normal order
673
+ let self = this; // TODO: This is bad
674
+ let payload = { "messages": requestInfos.reverse() }; // Reverse array back for normal order
675
675
  return Util.requestText(this._tsiTaServiceUrl + "/CalculateAllData", payload)
676
676
  .then(function(serviceResponse) {
677
677
  return {
@@ -681,8 +681,8 @@ TSISubscription.prototype._onRequestTSIData = function(obj, q) {
681
681
  })
682
682
  .then(this._extractTSIData)
683
683
  .catch(function(err) { // TODO: This is bad
684
- for(var i = len; --i >= 0;) { // eslint-disable-line
685
- var key = self._getKey(reqPayloads[i].ric, reqPayloads[i].view, reqPayloads[i].period); // eslint-disable-line
684
+ for(let i = len; --i >= 0;) { // eslint-disable-line
685
+ let key = self._getKey(reqPayloads[i].ric, reqPayloads[i].view, reqPayloads[i].period); // eslint-disable-line
686
686
  delete self._tsiDataPendingMap[key]; // Remove from pending map
687
687
  }
688
688
  });
@@ -693,8 +693,8 @@ TSISubscription.prototype._onRequestTSIData = function(obj, q) {
693
693
  * @return {Object}
694
694
  */
695
695
  TSISubscription.prototype._extractTSIData = function(res) {
696
- var response = res.response.replace(/\[NaN(,NaN)*\]/g, "[]"); // Handler for return the invalid JSON syntax due to no data
697
- var json;
696
+ let response = res.response.replace(/\[NaN(,NaN)*\]/g, "[]"); // Handler for return the invalid JSON syntax due to no data
697
+ let json;
698
698
  try {
699
699
  json = /** @type {Object} */(JSON.parse(response));
700
700
  } catch(ex) {
@@ -703,10 +703,10 @@ TSISubscription.prototype._extractTSIData = function(res) {
703
703
  }
704
704
 
705
705
  if(json) {
706
- var payload = res.payload;
707
- var len = payload.length;
708
- var periodRIC, dataCache, view, symbol, period, rowData, field, periodMap;
709
- for(var i = 0; i < len; i++) {
706
+ let payload = res.payload;
707
+ let len = payload.length;
708
+ let periodRIC, dataCache, view, symbol, period, rowData, field, periodMap;
709
+ for(let i = 0; i < len; i++) {
710
710
  view = payload[i].view;
711
711
  symbol = payload[i].ric;
712
712
  period = payload[i].period;
@@ -715,14 +715,14 @@ TSISubscription.prototype._extractTSIData = function(res) {
715
715
  periodRIC.view[view] = true; // Mark as already requested
716
716
  dataCache = periodRIC.dataCache;
717
717
 
718
- var data = json[i]["Columns"] || [];
718
+ let data = json[i]["Columns"] || [];
719
719
  if(data.length === 0) {
720
720
  continue;
721
721
  }
722
722
 
723
723
  rowData = {};
724
- var val;
725
- for(var j = 0, dataLen = data.length; j < dataLen; j++) {
724
+ let val;
725
+ for(let j = 0, dataLen = data.length; j < dataLen; j++) {
726
726
  val = data[j]["Values"][0];
727
727
  if(val == null || val !== val) {
728
728
  /*
@@ -804,23 +804,23 @@ TSISubscription.prototype._extractTSIData = function(res) {
804
804
  * @return {Promise}
805
805
  */
806
806
  TSISubscription.prototype._requestTimeSeriesData = function(obj, q) {
807
- var period = obj.period;
808
- for(var i = q.length; --i >= 0;) {
809
- var qObj = q[i];
807
+ let period = obj.period;
808
+ for(let i = q.length; --i >= 0;) {
809
+ let qObj = q[i];
810
810
  if(!qObj.rics && qObj.period === period) {
811
811
  q.splice(i, 1); // Remove any duplicate period that is being queued
812
812
  }
813
813
  }
814
814
 
815
- var periodMap = this._getPeriodMap(period);
816
- var fields = Object.keys(periodMap.field);
817
- var symbols = obj.rics ? obj.rics : Object.keys(periodMap.symbol);
815
+ let periodMap = this._getPeriodMap(period);
816
+ let fields = Object.keys(periodMap.field);
817
+ let symbols = obj.rics ? obj.rics : Object.keys(periodMap.symbol);
818
818
 
819
819
  if(fields.length === 0 || symbols.length === 0) {
820
820
  return null;
821
821
  }
822
822
 
823
- var reqDate = TSISubscription._dateCalculation(period).toJSON();
823
+ let reqDate = TSISubscription._dateCalculation(period).toJSON();
824
824
  if(reqDate === null) { // Invalid date/period parameter
825
825
  return null;
826
826
  } else {
@@ -833,7 +833,7 @@ TSISubscription.prototype._requestTimeSeriesData = function(obj, q) {
833
833
  q.unshift(obj); // Push the request back at the front of the queue
834
834
  }
835
835
 
836
- var payload = {
836
+ let payload = {
837
837
  "rics": symbols.join(" "),
838
838
  "factList": fields.join(","),
839
839
  "date": reqDate
@@ -855,21 +855,21 @@ TSISubscription.prototype._requestTimeSeriesData = function(obj, q) {
855
855
  * @param {Object} json JSON object of TSI response
856
856
  */
857
857
  TSISubscription.prototype._onTSIUpdate = function(json) {
858
- var period = json["period"];
859
- var result = json["result"];
860
- var periodMap = this._getPeriodMap(period);
861
- var fields = periodMap["field"];
858
+ let period = json["period"];
859
+ let result = json["result"];
860
+ let periodMap = this._getPeriodMap(period);
861
+ let fields = periodMap["field"];
862
862
 
863
- var header = result[0];
863
+ let header = result[0];
864
864
  if(!header) {
865
865
  throw("Invalid response from TSI service");
866
866
  }
867
867
 
868
- var ricIdx = -1;
869
- var returnStatusIdx = -1;
870
- // var timestampIdx = -1;
871
- var fieldIdxMap = {};
872
- for(var i = header.length; --i >= 0;) {
868
+ let ricIdx = -1;
869
+ let returnStatusIdx = -1;
870
+ // let timestampIdx = -1;
871
+ let fieldIdxMap = {};
872
+ for(let i = header.length; --i >= 0;) {
873
873
  if(header[i] === "RIC") {
874
874
  ricIdx = i;
875
875
  } else if(header[i] === "ReturnStatus") {
@@ -882,16 +882,16 @@ TSISubscription.prototype._onTSIUpdate = function(json) {
882
882
  }
883
883
  fields = Object.keys(fieldIdxMap); // Collect the fields of result
884
884
 
885
- var rowLen = result.length;
886
- var symbol, value, rowData, dataCache;
887
- // var isCorrectDate;
885
+ let rowLen = result.length;
886
+ let symbol, value, rowData, dataCache;
887
+ // let isCorrectDate;
888
888
  for(i = 1; i < rowLen; i++) {
889
889
  symbol = result[i][ricIdx];
890
890
 
891
891
  if(result[i][returnStatusIdx] !== "0") { // Have an error in response, then fallback to new TS data service
892
892
  // Request to new service
893
- for(var k = fields.length; --k >= 0;) {
894
- var view = fields[k].substring(0, fields[k].lastIndexOf("."));
893
+ for(let k = fields.length; --k >= 0;) {
894
+ let view = fields[k].substring(0, fields[k].lastIndexOf("."));
895
895
  if(!this._hasMetadata(symbol) || (this._tsiMetadata[symbol] && this._tsiMetadata[symbol][view])) { // No metadata || Ready to make a request
896
896
  this._requestTSIData(symbol, view, period);
897
897
  }
@@ -903,7 +903,7 @@ TSISubscription.prototype._onTSIUpdate = function(json) {
903
903
  dataCache = this._getPeriodRICData(period, symbol).dataCache;
904
904
  rowData = {};
905
905
 
906
- for(var j = fields.length; --j >= 0;) {
906
+ for(let j = fields.length; --j >= 0;) {
907
907
  // value = (isCorrectDate) ? (result[i][fieldIdxMap[fields[j]]] || null) : null; // If result is same as the requested timestamp then return the value. Otherwise return null.
908
908
  value = result[i][fieldIdxMap[fields[j]]] || null; // If return empty string, it should be null
909
909
  if(value !== null) {
@@ -939,7 +939,7 @@ TSISubscription._addDays = function(date, day) {
939
939
  */
940
940
  TSISubscription._addMonths = function(date, month) {
941
941
  // Reference: http://stackoverflow.com/questions/7937233/how-do-i-calculate-the-date-in-javascript-three-months-prior-to-today
942
- var expectedMonth = ((date.getMonth() + month) % 12 + 12) % 12;
942
+ let expectedMonth = ((date.getMonth() + month) % 12 + 12) % 12;
943
943
  date.setMonth(date.getMonth() + month);
944
944
  if (date.getMonth() !== expectedMonth) { // If it has an error of native date subtraction
945
945
  date.setDate(0); // Backward to the last day of previous month
@@ -972,25 +972,25 @@ TSISubscription._addDate = function(date, num, dateUnit) {
972
972
  * @return {Date} Date object
973
973
  */
974
974
  TSISubscription._dateCalculation = function(period) {
975
- var goBackPeriods = period.match(/\d+(D|W|M|Q|Y)/g);
975
+ let goBackPeriods = period.match(/\d+(D|W|M|Q|Y)/g);
976
976
  if(goBackPeriods) { // Relative date pattern
977
- var now = new Date();
978
- for(var i = goBackPeriods.length; --i >= 0;){
979
- var p = goBackPeriods[i];
980
- var dateUnit = p.substr(p.length - 1);
981
- var num = -(p.substr(0, p.length - 1));
977
+ let now = new Date();
978
+ for(let i = goBackPeriods.length; --i >= 0;){
979
+ let p = goBackPeriods[i];
980
+ let dateUnit = p.substr(p.length - 1);
981
+ let num = -(p.substr(0, p.length - 1));
982
982
  now = TSISubscription._addDate(now, num, dateUnit);
983
983
  }
984
984
  return now;
985
985
  }
986
986
 
987
987
  // Specified date
988
- var temp = new Date(period);
988
+ let temp = new Date(period);
989
989
  if(temp.toJSON() === null) {
990
990
  console.warn("Invalid period parameter: " + period);
991
991
  return null;
992
992
  }
993
- var date = null;
993
+ let date = null;
994
994
  if(period.match(/^\d{1,4}(-\d{2}(-\d{2})?)?$/)) { // If ISO format (YYYY-MM-DD)
995
995
  date = temp;
996
996
  } else { // If non ISO format
@@ -3,7 +3,7 @@
3
3
  * @param {string} str
4
4
  * @param {number=} index
5
5
  */
6
- var VariableToken = function(str, index) {
6
+ let VariableToken = function(str, index) {
7
7
  str = str.trim();
8
8
 
9
9
  if(this._inputConverter[str]) {
@@ -21,8 +21,8 @@ var VariableToken = function(str, index) {
21
21
  return;
22
22
  }
23
23
 
24
- var firstChar = str.charAt(0);
25
- var lastChar = (str.length > 1) ? str.charAt(str.length - 1) : "";
24
+ let firstChar = str.charAt(0);
25
+ let lastChar = (str.length > 1) ? str.charAt(str.length - 1) : "";
26
26
  if(firstChar === '"' && lastChar === '"') {
27
27
  this._value = str.substring(1, str.length - 1);
28
28
  this._type = "string";
@@ -42,19 +42,19 @@ var VariableToken = function(str, index) {
42
42
  return;
43
43
  }
44
44
 
45
- var adc = str.match(/TR\.\w+\(/);
45
+ let adc = str.match(/TR\.\w+\(/);
46
46
  if(adc) { // ADC field with parameters
47
47
  this._type = "dynamic"; // ADC field with params always a dynamic token field
48
48
  return;
49
49
  }
50
50
 
51
- var funcs = str.match(/[\w._]+\(/g);
51
+ let funcs = str.match(/[\w._]+\(/g);
52
52
  if(funcs && funcs.length === 1) { // There must be only one method in the given str
53
53
  this._resolveFunction(str, funcs[0]); // Function has undefined value (this._value == null)
54
54
  return;
55
55
  }
56
56
 
57
- var words = str.match(/[\w._♦]+/g);
57
+ let words = str.match(/[\w._♦]+/g);
58
58
  if(words && words.length > 1) { // A group of expression without parentheses
59
59
  this._resolveVariableGroup(str);
60
60
  return;
@@ -65,7 +65,7 @@ var VariableToken = function(str, index) {
65
65
  return;
66
66
  }
67
67
 
68
- var num = Number(str);
68
+ let num = Number(str);
69
69
  if(num === num) { // If not NaN
70
70
  this._value = num;
71
71
  this._type = "number";
@@ -187,12 +187,12 @@ VariableToken.prototype.getInputWithTokenField = function() {
187
187
  * @return {string}
188
188
  */
189
189
  VariableToken.prototype.getChildInputWithToken = function() {
190
- var len = this._subVars ? this._subVars.length : 0;
190
+ let len = this._subVars ? this._subVars.length : 0;
191
191
  if(len <= 0) {
192
192
  return "";
193
193
  }
194
- var inputs = new Array(len);
195
- for(var i = 0; i < len; ++i) {
194
+ let inputs = new Array(len);
195
+ for(let i = 0; i < len; ++i) {
196
196
  inputs[i] = this._subVars[i].getInputWithTokenField();
197
197
  }
198
198
  return inputs.join(", ");
@@ -233,8 +233,8 @@ VariableToken.prototype.getFunctionName = function() { return this._funcName; };
233
233
  VariableToken.prototype.getFieldNames = function(opt_obj) {
234
234
  if(this._subVars) {
235
235
  if(opt_obj) {
236
- var len = this._subVars.length;
237
- for(var i = 0; i < len; ++i) {
236
+ let len = this._subVars.length;
237
+ for(let i = 0; i < len; ++i) {
238
238
  this._subVars[i].getFieldNames(opt_obj);
239
239
  }
240
240
  }
@@ -254,14 +254,14 @@ VariableToken.prototype.getFieldNames = function(opt_obj) {
254
254
  * @returns {string}
255
255
  */
256
256
  VariableToken.prototype._resolveVariableGroup = function(str) {
257
- var i = this._subVars ? this._subVars.length : 0;
257
+ let i = this._subVars ? this._subVars.length : 0;
258
258
  this._type = "group";
259
259
 
260
260
  this._value = str.replace(/[\w._♦]+/g, function(varStr) {
261
261
  if(!this._subVars) {
262
262
  this._subVars = [];
263
263
  }
264
- var varToken = new VariableToken(varStr, this._subVars.length);
264
+ let varToken = new VariableToken(varStr, this._subVars.length);
265
265
  this._subVars.push(varToken);
266
266
  return varToken.getExpression();
267
267
  }.bind(this));
@@ -286,9 +286,9 @@ VariableToken.prototype._resolveFunction = function(str, matchedName) {
286
286
  str = str.substr(0, str.length - 1); // Strip ")"
287
287
  if(str) {
288
288
  this._subVars = [];
289
- var params = str.split(",");
290
- var len = params.length;
291
- for(var i = 0; i < len; ++i) {
289
+ let params = str.split(",");
290
+ let len = params.length;
291
+ for(let i = 0; i < len; ++i) {
292
292
  this._subVars[i] = new VariableToken(params[i], i);
293
293
  }
294
294
  }
@@ -302,9 +302,9 @@ VariableToken.prototype._resolveArray = function(str) {
302
302
  str = str.substr(1, str.length - 1); // Strip "[" and "]"
303
303
  if(str) {
304
304
  this._subVars = [];
305
- var params = str.split(",");
306
- var len = params.length;
307
- for(var i = 0; i < len; ++i) {
305
+ let params = str.split(",");
306
+ let len = params.length;
307
+ for(let i = 0; i < len; ++i) {
308
308
  this._subVars[i] = new VariableToken(params[i], i);
309
309
  }
310
310
  }
@@ -12,7 +12,7 @@ import DateTime from "../../DateTime.js";
12
12
  * {lang=ru} AdFin data access function
13
13
  * {lang=de} AdFin-Daten Zugriffsfunktion
14
14
  */
15
- var AdFin = {};
15
+ let AdFin = {};
16
16
 
17
17
  /**
18
18
  * @ignore
@@ -21,9 +21,9 @@ var AdFin = {};
21
21
  * @return {boolean} true if parameter is number of seconds since 01 JAN 1970 UTC (realtime date number), false otherwise
22
22
  */
23
23
  AdFin._dateIsSecondsSince1970 = function (seconds) {
24
- var milliseconds = seconds * 1000;
24
+ let milliseconds = seconds * 1000;
25
25
  if (('' + milliseconds).indexOf(".") !== -1) return false;
26
- var jsDate = new Date(milliseconds);
26
+ let jsDate = new Date(milliseconds);
27
27
  if (isNaN(jsDate.getTime())) return false;
28
28
  if (jsDate.getFullYear() === 1970) return false;
29
29
  return true;
@@ -50,7 +50,7 @@ AdFin._convertDaysSince1900UTCToJJMMMYYYY = function (value) {
50
50
  * @return {number|null} days number since 1 Jan, 1900 UTC
51
51
  */
52
52
  AdFin._convertSecondsSince1970ToDaysSince1900 = function (value) {
53
- var jsDate = new Date(value * 1000);
53
+ let jsDate = new Date(value * 1000);
54
54
  if (isNaN(jsDate.getTime())) return null; // invalid date
55
55
  if (jsDate.getFullYear() === 1970) return null;
56
56
  return DateTime.toDateNumber(jsDate); // days number since 1 Jan, 1900
@@ -63,7 +63,7 @@ AdFin._convertSecondsSince1970ToDaysSince1900 = function (value) {
63
63
  * @return {string|null} string date JJMMMYYYY
64
64
  */
65
65
  AdFin._convertSecondsSince1970UTCToJJMMMYYYY = function (value) {
66
- var days = AdFin._convertSecondsSince1970ToDaysSince1900(value);
66
+ let days = AdFin._convertSecondsSince1970ToDaysSince1900(value);
67
67
  if (days == null) return null;
68
68
  return AdFin._convertDaysSince1900UTCToJJMMMYYYY(days);
69
69
  };
@@ -239,10 +239,10 @@ AdFin.Definitions = {
239
239
  */
240
240
  AdFin._genericFunction = function (name, args) {
241
241
 
242
- /** @type {Array.<{name:string, type:string}>} */ var definitions = AdFin.Definitions[name];
243
- /** @type {Array.<Array.<string|number|null>>} */ var parameters = [];
242
+ /** @type {Array.<{name:string, type:string}>} */ let definitions = AdFin.Definitions[name];
243
+ /** @type {Array.<Array.<string|number|null>>} */ let parameters = [];
244
244
 
245
- for (var i = 0, length = args.length; i < length; ++i) {
245
+ for (let i = 0, length = args.length; i < length; ++i) {
246
246
  if (args[i] != null) {
247
247
  if ((definitions[i].type === "JJMMMYYYY") && (typeof (args[i]) === "number")) {
248
248
  if (AdFin._dateIsSecondsSince1970(args[i])) {
@@ -262,7 +262,7 @@ AdFin._genericFunction = function (name, args) {
262
262
  }
263
263
  }
264
264
 
265
- var adfinService = this.getIntervalService("AdFin");
265
+ let adfinService = this.getIntervalService("AdFin");
266
266
  if (!adfinService) {
267
267
  adfinService = AdFinService.create();
268
268
  if (!adfinService) {
@@ -272,7 +272,7 @@ AdFin._genericFunction = function (name, args) {
272
272
  this.setIntervalService("AdFin", adfinService);
273
273
  }
274
274
 
275
- var res = adfinService["call"](name, parameters);
275
+ let res = adfinService["call"](name, parameters);
276
276
  if (res === "...") {
277
277
  this.setDataError("Pending - no erase"); // Data update is pending - do not erase previous value
278
278
  }
@@ -3,7 +3,7 @@
3
3
  * @namespace Excel
4
4
  * @ignore
5
5
  */
6
- var Excel = {};
6
+ let Excel = {};
7
7
 
8
8
  Excel["BDSETTLE"] = function(/* ... args*/) {};
9
9
  Excel["CALTOTAL"] = function(/* ... args*/) {};