@refinitiv-ui/efx-grid 6.0.35 → 6.0.37

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 (40) hide show
  1. package/lib/core/dist/core.css +1 -1
  2. package/lib/core/dist/core.js +150 -6
  3. package/lib/core/dist/core.min.js +1 -1
  4. package/lib/core/es6/data/DataCache.js +20 -1
  5. package/lib/core/es6/grid/Core.js +25 -2
  6. package/lib/core/es6/grid/ILayoutGrid.js +4 -0
  7. package/lib/core/es6/grid/LayoutGrid.d.ts +4 -0
  8. package/lib/core/es6/grid/LayoutGrid.js +95 -3
  9. package/lib/core/es6/grid/VirtualizedLayoutGrid.js +6 -0
  10. package/lib/core/es6/tr-grid-theme.js +1 -1
  11. package/lib/grid/index.js +1 -1
  12. package/lib/grid/themes/base.less +1 -0
  13. package/lib/grid/themes/halo/dark/efx-grid.js +1 -1
  14. package/lib/grid/themes/halo/dark/es5/all-elements.js +1 -1
  15. package/lib/grid/themes/halo/efx-grid.less +2 -0
  16. package/lib/grid/themes/halo/light/efx-grid.js +1 -1
  17. package/lib/grid/themes/halo/light/es5/all-elements.js +1 -1
  18. package/lib/grid/themes/solar/charcoal/efx-grid.js +1 -1
  19. package/lib/grid/themes/solar/charcoal/es5/all-elements.js +1 -1
  20. package/lib/grid/themes/solar/pearl/efx-grid.js +1 -1
  21. package/lib/grid/themes/solar/pearl/es5/all-elements.js +1 -1
  22. package/lib/rt-grid/dist/rt-grid.js +302 -107
  23. package/lib/rt-grid/dist/rt-grid.min.js +1 -1
  24. package/lib/rt-grid/es6/FieldDefinition.js +0 -41
  25. package/lib/rt-grid/es6/Grid.js +4 -5
  26. package/lib/rt-grid/es6/RowDefinition.d.ts +2 -2
  27. package/lib/rt-grid/es6/RowDefinition.js +102 -52
  28. package/lib/tr-grid-column-stack/es6/ColumnStack.d.ts +1 -0
  29. package/lib/tr-grid-column-stack/es6/ColumnStack.js +579 -607
  30. package/lib/tr-grid-range-bar/es6/RangeBar.d.ts +4 -1
  31. package/lib/tr-grid-range-bar/es6/RangeBar.js +99 -39
  32. package/lib/tr-grid-util/es6/GroupDefinitions.d.ts +7 -1
  33. package/lib/tr-grid-util/es6/GroupDefinitions.js +39 -3
  34. package/lib/tr-grid-util/es6/jet/MockQuotes2.js +7 -0
  35. package/lib/types/es6/ColumnStack.d.ts +1 -0
  36. package/lib/types/es6/Core/grid/Core.d.ts +12 -0
  37. package/lib/types/es6/Core/grid/LayoutGrid.d.ts +4 -0
  38. package/lib/types/es6/RealtimeGrid/RowDefinition.d.ts +2 -2
  39. package/lib/versions.json +3 -3
  40. package/package.json +1 -1
@@ -832,7 +832,8 @@ DataCache.prototype._insertRic = function (subId, ric, values) {
832
832
  // We cannot cache event arguments because user may want to collect all the updates
833
833
  this._onADCForNewRic(subId, ric);
834
834
 
835
- if (!this.getRowData(rid)) { // Ensure that we have subscription id and ric from Quotes2
835
+ var rowData = this.getRowData(rid);
836
+ if (!rowData) { // Ensure that we have subscription id and ric from Quotes2
836
837
  var tmp = values;
837
838
 
838
839
  values = {}; // Clone a new object for duplicated ric
@@ -843,6 +844,11 @@ DataCache.prototype._insertRic = function (subId, ric, values) {
843
844
 
844
845
  values["SUB_ID"] = subId;
845
846
  values["RIC"] = ric;
847
+ } else {
848
+ var rowDef = rowData["ROW_DEF"];
849
+ if(rowDef && rowDef.isChain()){
850
+ values["SUB_ID"] = subId;
851
+ }
846
852
  }
847
853
 
848
854
  this.setRowData(rid, values);
@@ -879,6 +885,12 @@ DataCache.prototype._onQ2SubAdded = function (e) {
879
885
  var sub = subs[i];
880
886
  var ric = sub["ric"];
881
887
 
888
+ // chain subId fires twice, one with "_ci_" and one without "_ci_"
889
+ // the subId with "_ci_" should be ignore
890
+ if(sub["id"].indexOf("_ci_") >= 0){
891
+ continue;
892
+ }
893
+
882
894
  this.addSubscription(sub, ric);
883
895
 
884
896
  if (duplicateSubIds) { // There will be no network request for duplicate subs, and hence we need to update the data from our cache
@@ -903,6 +915,13 @@ DataCache.prototype._onQ2SubRemoved = function (e) {
903
915
 
904
916
  for (var i = 0; i < len; ++i) {
905
917
  var sub = subs[i];
918
+
919
+ // chain subId fires twice, one with "_ci_" and one without "_ci_"
920
+ // the subId with "_ci_" should be ignore
921
+ if(sub["id"].indexOf("_ci_") >= 0){
922
+ continue;
923
+ }
924
+
906
925
  this.removeSubscription(sub);
907
926
  }
908
927
  };
@@ -552,7 +552,7 @@ Core.prototype._batches = null;
552
552
  * @return {string}
553
553
  */
554
554
  Core.getVersion = function () {
555
- return "5.1.48";
555
+ return "5.1.50";
556
556
  };
557
557
  /** {@link ElementWrapper#dispose}
558
558
  * @override
@@ -1765,6 +1765,7 @@ Core.prototype._moveColumn = function (fromCol, destCol) {
1765
1765
  }
1766
1766
  }
1767
1767
  this._updateColumnBounds();
1768
+ this._updateColumnSeparators();
1768
1769
  return true;
1769
1770
  };
1770
1771
 
@@ -2095,6 +2096,7 @@ Core.prototype.setDefaultRowHeight = function (val, opt_includeTitle) {
2095
2096
  this._syncRowHeights();
2096
2097
  this._rowHeightSync = true;
2097
2098
  this.setRowScrollingStep(this._rowScrollingStep);
2099
+ this._updateColumnSeparators();
2098
2100
  }
2099
2101
  };
2100
2102
 
@@ -2929,6 +2931,7 @@ Core.prototype.freezeColumn = function (frozenColIndex, numRightColumn) {
2929
2931
 
2930
2932
  this._onColumnCountChanged(); // Activate horizontal scrollbar and column virtualization
2931
2933
  this._updateScrollbarWidth(true, true);
2934
+ this._updateColumnSeparators();
2932
2935
  };
2933
2936
 
2934
2937
  /** @private
@@ -4170,6 +4173,21 @@ Core.prototype._updateColumnBounds = function () {
4170
4173
  section.updateColumnBounds(posAry, noBorderAry);
4171
4174
  }
4172
4175
  };
4176
+ /* @private
4177
+ */
4178
+ Core.prototype._updateColumnSeparators = function() {
4179
+ var sectCount = this._settings.length;
4180
+ if(!sectCount) {
4181
+ return;
4182
+ }
4183
+
4184
+ for(var i = 0; i < sectCount; i++) {
4185
+ var section = this._settings[i].getSection();
4186
+ if (section) {
4187
+ section.updateColumnSeparators();
4188
+ }
4189
+ }
4190
+ };
4173
4191
 
4174
4192
  /** @public
4175
4193
  * @param {number} startColIndex INCLUSIVE
@@ -5239,6 +5257,8 @@ Core.prototype._onRowCountChanged = function (e) {
5239
5257
  if(!forceUpdate) {
5240
5258
  this._updateVScrollbar(); // Asynchronous
5241
5259
  }
5260
+
5261
+ this._updateColumnSeparators();
5242
5262
  if(prevRowCount < newRowCount) {
5243
5263
  this._dispatch("rowAdded", e);
5244
5264
  } else if(prevRowCount > newRowCount) {
@@ -5296,7 +5316,7 @@ Core.prototype._onRowHeightChanged = function (e) {
5296
5316
  minSectionIndex >= this._startVScrollbarIndex);
5297
5317
  }
5298
5318
  }
5299
-
5319
+ this._updateColumnSeparators();
5300
5320
  this._dispatchRowPositionChanged();
5301
5321
  };
5302
5322
  /** @private
@@ -5361,6 +5381,7 @@ Core.prototype._onColumnCountChanged = function () {
5361
5381
  var pinnedRight = this._countPinnedRightColumns();
5362
5382
 
5363
5383
  this._updateColumnBounds();
5384
+ this._updateColumnSeparators();
5364
5385
 
5365
5386
  if (this._hScrollbarEnabled && pinnedLeft + pinnedRight < this.getColumnCount()) {
5366
5387
  this._hscrollbar.enable();
@@ -5642,6 +5663,7 @@ Core.prototype._syncLayoutToColumns = function (from, to, opt_forceDispatching)
5642
5663
  var paneChanged = forceUpdate || (from < this.getHScrollStartIndex()) || (to > this.getFirstPinnedRightIndex());
5643
5664
  this._updateScrollbarWidth(paneChanged, true /* contentChanged */);
5644
5665
  this._updateColumnBounds();
5666
+ this._updateColumnSeparators();
5645
5667
  this._dispatchColumnPositionChanged();
5646
5668
 
5647
5669
  if (dirty || opt_forceDispatching) {
@@ -5737,6 +5759,7 @@ Core.prototype._updateLayout = function () {
5737
5759
  var section = this._settings[s].getSection();
5738
5760
  section.updateLayout(); // Notify section about forced recalculation of the layout
5739
5761
  }
5762
+ this._updateColumnSeparators();
5740
5763
  };
5741
5764
 
5742
5765
  /** @private */
@@ -697,6 +697,10 @@ ILayoutGrid.prototype.calculateColumnBounds = function (lftIdx, rgtIdx, outPosit
697
697
  * @param {number=} topPx Top position of bound
698
698
  */
699
699
  ILayoutGrid.prototype.updateColumnBounds = function (posAry, noBorderAry, topPx) {};
700
+ /** @public
701
+ * @ignore
702
+ */
703
+ ILayoutGrid.prototype.updateColumnSeparators = function () {};
700
704
 
701
705
  export default ILayoutGrid;
702
706
  export { ILayoutGrid };
@@ -26,7 +26,11 @@ declare class LayoutGrid extends ElementWrapper {
26
26
 
27
27
  public setCellBounds(colIndex: number, rowIndex: number, width: number, height: number): void;
28
28
 
29
+ public updateColumnSeparators(): void;
30
+
29
31
  }
30
32
 
33
+ declare function rgtPx(): void;
34
+
31
35
  export default LayoutGrid;
32
36
  export { LayoutGrid };
@@ -269,7 +269,14 @@ LayoutGrid.prototype._colSelDirty = false;
269
269
  * @private
270
270
  */
271
271
  LayoutGrid.prototype._hscrollbar = null;
272
-
272
+ /** @type {Element}
273
+ * @private
274
+ */
275
+ LayoutGrid.prototype._leftColumnSeparator = null;
276
+ /** @type {Element}
277
+ * @private
278
+ */
279
+ LayoutGrid.prototype._rightColumnSeparator = null;
273
280
 
274
281
  /**
275
282
  * {@link ElementWrapper#dispose}
@@ -2236,8 +2243,7 @@ LayoutGrid.prototype.selectColumn = function (colIndex, selected) {
2236
2243
 
2237
2244
  var boundLayer = this._boundLayer;
2238
2245
  if(!boundLayer) {
2239
- boundLayer = this._boundLayer = document.createElement("div");
2240
- boundLayer.className = "cover-layer";
2246
+ this._initBoundLayer();
2241
2247
  this._updateLayers();
2242
2248
  }
2243
2249
  }
@@ -2409,6 +2415,92 @@ LayoutGrid.prototype.updateColumnBounds = function (posAry, noBorderAry, topPx)
2409
2415
  }
2410
2416
  };
2411
2417
 
2418
+ /** @public
2419
+ */
2420
+ LayoutGrid.prototype.updateColumnSeparators = function () {
2421
+ var pinnedLeftCount = this._hscrollbar.getPinnedLeftColumnCount();
2422
+ var pinnedRightCount = this._hscrollbar.getPinnedRightColumnCount();
2423
+ if ((pinnedLeftCount || pinnedRightCount) && !this._boundLayer) {
2424
+ this._initBoundLayer();
2425
+ }
2426
+
2427
+ var isScrollbarActive = false;
2428
+ if(this._hscrollbar) {
2429
+ isScrollbarActive = this._hscrollbar.isActive();
2430
+ }
2431
+
2432
+ var boundLayer = this._boundLayer;
2433
+
2434
+ var colSeparator = this._leftColumnSeparator;
2435
+ if (isScrollbarActive && pinnedLeftCount) {
2436
+ if (!colSeparator) {
2437
+ colSeparator = this._leftColumnSeparator = this._createColumnSeparator();
2438
+ }
2439
+ if (!colSeparator.parentNode) {
2440
+ if (boundLayer.children.length) {
2441
+ boundLayer.insertBefore(colSeparator, boundLayer.children[0]);
2442
+ } else {
2443
+ boundLayer.appendChild(colSeparator);
2444
+ }
2445
+ }
2446
+
2447
+ var rightPos = this._trackX.getLaneStart(pinnedLeftCount);
2448
+ colSeparator.style.left = (rightPos - 1) + "px";
2449
+ colSeparator.style.height = this._trackY.getTrackSize() + "px";
2450
+ } else {
2451
+ if (colSeparator && colSeparator.parentNode) {
2452
+ this._boundLayer.removeChild(colSeparator);
2453
+ }
2454
+ }
2455
+
2456
+ colSeparator = this._rightColumnSeparator;
2457
+ if (isScrollbarActive && pinnedRightCount) {
2458
+ if (!colSeparator) {
2459
+ colSeparator = this._rightColumnSeparator = this._createColumnSeparator();
2460
+ }
2461
+
2462
+ if (!colSeparator.parentNode) {
2463
+ if (boundLayer.children.length) {
2464
+ boundLayer.insertBefore(colSeparator, boundLayer.children[0]);
2465
+ } else {
2466
+ boundLayer.appendChild(colSeparator);
2467
+ }
2468
+ }
2469
+ var colCount = this.getColumnCount();
2470
+ var colWidth = this._trackX.getLaneEnd(colCount - 1) - this._trackX.getLaneStart(colCount - pinnedRightCount);
2471
+ var viewSize = this._getViewSize();
2472
+
2473
+ colSeparator.style.left = (viewSize - colWidth - this._rightSpaceSize) + "px";
2474
+ colSeparator.style.height = this._trackY.getTrackSize() + "px";
2475
+ } else {
2476
+ if (colSeparator && colSeparator.parentNode) {
2477
+ this._boundLayer.removeChild(colSeparator);
2478
+ }
2479
+ }
2480
+ };
2481
+
2482
+ /** @private
2483
+ * @return {Element}
2484
+ */
2485
+ LayoutGrid.prototype._createColumnSeparator = function() {
2486
+ var colSeparator = document.createElement("div");
2487
+ colSeparator.classList.add("column-separator");
2488
+ return colSeparator;
2489
+ };
2490
+
2491
+ /** @private
2492
+ * @return {Element}
2493
+ */
2494
+ LayoutGrid.prototype._initBoundLayer = function () {
2495
+ var boundLayer = this._boundLayer;
2496
+ if(!boundLayer) {
2497
+ boundLayer = this._boundLayer = document.createElement("div");
2498
+ boundLayer.className = "cover-layer";
2499
+ this._element.appendChild(boundLayer);
2500
+ }
2501
+ return boundLayer;
2502
+ };
2503
+
2412
2504
  /**
2413
2505
  * @private
2414
2506
  * @param {number} indexX
@@ -1102,6 +1102,12 @@ VirtualizedLayoutGrid.prototype.updateColumnBounds = function (posAry, noBorderA
1102
1102
  this._grid.updateColumnBounds(posAry, noBorderAry, topPx);
1103
1103
  this._updateRowBounds();
1104
1104
  };
1105
+ /** @public
1106
+ * @ignore
1107
+ */
1108
+ VirtualizedLayoutGrid.prototype.updateColumnSeparators = function () {
1109
+ this._grid.updateColumnSeparators();
1110
+ };
1105
1111
  /** @private
1106
1112
  */
1107
1113
  VirtualizedLayoutGrid.prototype._initBoundLayer = function () {