@refinitiv-ui/efx-grid 6.0.36 → 6.0.37

Sign up to get free protection for your applications and to get access to all the features.
@@ -13195,9 +13195,10 @@ DataTable._proto = DataTable.prototype;
13195
13195
  * @property {Array.<string>=} fields=null Field that corresponds to the given static values
13196
13196
  * @property {boolean=} asChain=false The given ric will be treated as a chain
13197
13197
  * @property {string=} chainRic="" RIC to be used for chain request (overiding ric property)
13198
- * @property {boolean=} collapsed=false Chain is expanded by default
13198
+ * @property {boolean=} collapsed=true Chain is collapsed by default
13199
13199
  * @property {(string|null)=} label=null
13200
13200
  * @property {boolean=} hidden=true When this row is hidden
13201
+ * @pro // realTime
13201
13202
  */
13202
13203
 
13203
13204
  /** @typedef {Object} RowDefinition~RowTypes
@@ -13273,18 +13274,18 @@ RowDefinition.prototype._ric = ""; // Contains no 0#
13273
13274
  * @private
13274
13275
  */
13275
13276
  RowDefinition.prototype._permId = "";
13276
- /** @type {string}
13277
- * @private
13278
- */
13279
- RowDefinition.prototype._displayText = "";
13280
13277
  /** @type {string|null}
13281
13278
  * @private
13282
13279
  */
13283
13280
  RowDefinition.prototype._label = null; // Label overrides _ric and _displayText
13281
+ /** @type {boolean|null}
13282
+ * @private
13283
+ */
13284
+ RowDefinition.prototype._isChain = null;
13284
13285
  /** @type {boolean}
13285
13286
  * @private
13286
13287
  */
13287
- RowDefinition.prototype._isChain = false;
13288
+ RowDefinition.prototype._realTime = true;
13288
13289
 
13289
13290
  /** @type {string}
13290
13291
  * @private
@@ -13308,10 +13309,10 @@ RowDefinition.prototype._view = null;
13308
13309
  */
13309
13310
  RowDefinition.prototype._subId = "";
13310
13311
 
13311
- /** @type {boolean}
13312
+ /** @type {boolean|null}
13312
13313
  * @private
13313
13314
  */
13314
- RowDefinition.prototype._expanded = false;
13315
+ RowDefinition.prototype._expanded = null;
13315
13316
  /** @type {boolean}
13316
13317
  * @private
13317
13318
  */
@@ -13399,18 +13400,19 @@ RowDefinition.prototype.initialize = function(rowOptions) {
13399
13400
  return;
13400
13401
  }
13401
13402
 
13402
- var val = rowOptions["ric"];
13403
+ var val = rowOptions["permId"];
13403
13404
  if(val != null) {
13404
- this._ric = val;
13405
+ this._permId = val;
13405
13406
  }
13406
- val = rowOptions["permId"];
13407
+ val = rowOptions["ric"];
13407
13408
  if(val != null) {
13408
- this._permId = val;
13409
+ this._ric = val;
13409
13410
  }
13410
- if(this._ric || this._permId){
13411
- this.setContent(this._ric, this._permId); // this._dataId is modified
13411
+ val = rowOptions["label"];
13412
+ // eslint-disable-next-line no-undefined
13413
+ if(val !== undefined) { // Empty string and null are allowed
13414
+ this._label = val;
13412
13415
  }
13413
-
13414
13416
  val = rowOptions["chainRic"];
13415
13417
  if(val != null) {
13416
13418
  this._chainRic = val;
@@ -13422,26 +13424,40 @@ RowDefinition.prototype.initialize = function(rowOptions) {
13422
13424
  }
13423
13425
 
13424
13426
  val = rowOptions["asChain"];
13425
- if(val) {
13426
- this._isChain = true;
13427
- this._expanded = !rowOptions["collapsed"];
13428
- } else if(this._isChain) {
13429
- var collapsed = rowOptions["collapsed"];
13430
- if(collapsed != null) {
13431
- this._expanded = !collapsed;
13432
- }
13427
+ if(val !== null) {
13428
+ this._isChain = val;
13433
13429
  }
13434
13430
 
13435
- val = rowOptions["label"];
13436
- // eslint-disable-next-line no-undefined
13437
- if(val !== undefined) { // Empty string and null are allowed
13438
- this._label = val;
13431
+ val = rowOptions["realTime"];
13432
+ if(val != null) {
13433
+ this._realTime = val;
13439
13434
  }
13440
13435
 
13436
+ val = rowOptions["collapsed"];
13437
+ if(val != null){
13438
+ this._expanded = !val;
13439
+ }
13441
13440
  val = rowOptions["keepModel"];
13442
13441
  if(val) {
13443
13442
  this._userModel = rowOptions;
13444
13443
  }
13444
+
13445
+ var expanded = this._expanded;
13446
+ var symbol = this._ric || this._chainRic;
13447
+ var asChain = rowOptions["asChain"] || !!this._chainRic;
13448
+ if(this._ric && this._ric.indexOf("0#") >= 0){
13449
+ asChain = true;
13450
+ expanded = true;
13451
+ }
13452
+ if(rowOptions["asChain"] === false){
13453
+ asChain = false;
13454
+ }
13455
+ if(rowOptions["collapsed"] === true){
13456
+ expanded = false;
13457
+ }
13458
+ if(symbol || this._permId){
13459
+ this.setContent(symbol, this._permId, asChain, expanded); // this._dataId is modified
13460
+ }
13445
13461
  };
13446
13462
  /** @private
13447
13463
  * @param {!Object} rowOptions
@@ -13451,7 +13467,6 @@ RowDefinition.prototype._initializeAsConstituent = function(rowOptions) {
13451
13467
  var parentDef = /** @type{RowDefinition} */(rowOptions["parent"]);
13452
13468
  if(this.setParent(parentDef)) {
13453
13469
  this._dataId = /** @type{string} */(rowOptions["dataId"]); // Constituent will have the same subId as its parent but with different ric
13454
- this._displayText = this._ric = /** @type{string} */(rowOptions["ric"]);
13455
13470
 
13456
13471
  this._dc = parentDef._dc; // Parent chain must have data cache
13457
13472
  if(this._dc) {
@@ -13470,9 +13485,12 @@ RowDefinition.prototype._initializeAsConstituent = function(rowOptions) {
13470
13485
  /** @public
13471
13486
  * @param {string} userInput RIC
13472
13487
  * @param {string=} permId=null Organization PermId, which use for getting ADC data for private company
13488
+ * @param {boolean=} asChain
13489
+ * @param {boolean=} expanded
13490
+ * @param {boolean=} realTime
13473
13491
  * @return {boolean} True if there is any change otherwise false
13474
13492
  */
13475
- RowDefinition.prototype.setContent = function(userInput, permId) {
13493
+ RowDefinition.prototype.setContent = function(userInput, permId, asChain, expanded) {
13476
13494
  if(this._autoGenerated) { // AutoGenerated RowDefinition cannot be changed by user input
13477
13495
  return false;
13478
13496
  }
@@ -13486,10 +13504,7 @@ RowDefinition.prototype.setContent = function(userInput, permId) {
13486
13504
  var dirty = (this._userInput !== userInput);
13487
13505
  if(this._permId !== permId){
13488
13506
  this._permId = permId || "";
13489
- if(!userInput){
13490
- this._displayText = this._permId;
13491
- dirty = true;
13492
- }
13507
+ dirty = true;
13493
13508
  }
13494
13509
  if(!dirty) {
13495
13510
  return false;
@@ -13498,34 +13513,44 @@ RowDefinition.prototype.setContent = function(userInput, permId) {
13498
13513
  this.unsubscribeForUpdates();
13499
13514
  this.resetUpdates(); // Remove all previous data updates because a new content is just entered
13500
13515
 
13516
+ // TODO: handle changing between chain and ric row
13501
13517
  this._userInput = userInput;
13502
13518
  if(this._userInput.charAt(0) === "'") { // This is a row header
13503
- this._displayText = this._userInput.substr(1);
13504
13519
  this._ric = this._chainRic = ""; // No ric for realtime request
13505
13520
  } else {
13506
13521
  if(this._userInput.indexOf("0#") >= 0) {
13507
- this._ric = this._userInput.replace("0#", "");
13508
- this._isChain = this._expanded = true; // Only chain can be expanded by 0# TODO: RIC with 0# is not necessarily a chain
13509
- this._chainRic = this._userInput;
13510
- if(this._view) {
13511
- this._view.setSegmentSeparator(this._rowId);
13512
- this.expandChain();
13522
+ if(asChain === false){
13523
+ this._ric = this._userInput;
13524
+ } else {
13525
+ this._ric = expanded ? this._userInput.replace("0#", "") : this._userInput;
13526
+ this._expanded = expanded;
13527
+ this._isChain = true; // Only chain can be expanded by 0#
13528
+ this._chainRic = this._userInput;
13529
+ if(this._view) {
13530
+ this._view.setSegmentSeparator(this._rowId);
13531
+ this.expandChain();
13532
+ }
13513
13533
  }
13514
13534
  } else {
13515
13535
  this._ric = this._userInput;
13516
- this._chainRic = "";
13536
+ if(asChain){
13537
+ this._isChain = true;
13538
+ }
13517
13539
  }
13518
- this._displayText = this._ric; // No 0#
13519
13540
  }
13520
13541
 
13521
13542
  this._dataId = this._rowId + this.getSymbol(); // JET/RTK will generate data id to be rowId (given from this rowDef) + ric;
13522
13543
 
13523
- // This will work for runtime ric modification, but not for first initilization.
13544
+
13524
13545
  if(!this.subscribeForUpdates()) {
13525
- // Avoid losing the ROW_DEF pointer.
13526
- var rowData = {};
13527
- rowData[ROW_DEF] = this; // Enable tracking back and updating data
13528
- this.setRowData(rowData);
13546
+ if(this._dc) {
13547
+ // This will work for runtime ric modification, but not for first initilization.
13548
+ // Avoid losing the ROW_DEF pointer.
13549
+ var rowData = {};
13550
+ rowData[ROW_DEF] = this; // Enable tracking back and updating data
13551
+ rowData["X_RIC_NAME"] = this.getDisplayText();
13552
+ this.setRowData(rowData);
13553
+ }
13529
13554
  }
13530
13555
  return true;
13531
13556
  };
@@ -13546,6 +13571,16 @@ RowDefinition.prototype.getConfigObject = function(rowOptions) {
13546
13571
  obj["ric"] = val;
13547
13572
  }
13548
13573
 
13574
+ // The user passed a single quote (') case
13575
+ if(!this._ric && this._userInput.charAt(0) === "'") {
13576
+ obj["ric"] = this._userInput;
13577
+ }
13578
+
13579
+ val = this._realTime;
13580
+ if(val !== true) {
13581
+ obj["realTime"] = val;
13582
+ }
13583
+
13549
13584
  val = this._permId;
13550
13585
  if(val) {
13551
13586
  obj["permId"] = val;
@@ -13567,12 +13602,12 @@ RowDefinition.prototype.getConfigObject = function(rowOptions) {
13567
13602
  }
13568
13603
 
13569
13604
  val = this._isChain;
13570
- if(val) {
13605
+ if(val != null) {
13571
13606
  obj["asChain"] = val;
13572
13607
  }
13573
13608
 
13574
13609
  val = this._expanded;
13575
- if(val) {
13610
+ if(val != null) {
13576
13611
  obj["collapsed"] = !val;
13577
13612
  }
13578
13613
 
@@ -13670,6 +13705,7 @@ RowDefinition.prototype.setDataSource = function(dataSource) {
13670
13705
  if(!rowData) {
13671
13706
  rowData = {};
13672
13707
  rowData[ROW_DEF] = this; // Enable tracking back and updating data
13708
+ rowData["X_RIC_NAME"] = this.getDisplayText();
13673
13709
  this.setRowData(rowData); // TODO: This will dispatch dataChanged event and caused update to be added, which should not happen
13674
13710
  }
13675
13711
 
@@ -13812,7 +13848,16 @@ RowDefinition.prototype.getDisplayText = function() {
13812
13848
  if(this._label != null) { // Empty string is allowed
13813
13849
  return this._label;
13814
13850
  }
13815
- return this._displayText;
13851
+
13852
+ if(this._ric) {
13853
+ return this._ric;
13854
+ }
13855
+
13856
+ if(this._permId) {
13857
+ return this._permId;
13858
+ }
13859
+
13860
+ return this._userInput;
13816
13861
  };
13817
13862
  /** @public
13818
13863
  * @return {string|null}
@@ -13876,13 +13921,18 @@ RowDefinition.prototype.isRealTimeRow = function() {
13876
13921
  if(!this.getRic()) { // Empty row
13877
13922
  return false;
13878
13923
  }
13879
- if(this.isRowHeader()) {
13924
+ if(!this._realTime) {
13880
13925
  return false;
13881
13926
  }
13927
+
13882
13928
  if(this._autoGenerated) { // Constituents in chain are not real-time row
13883
13929
  return false;
13884
13930
  }
13885
13931
 
13932
+ if(this.isRowHeader()) {
13933
+ return false;
13934
+ }
13935
+
13886
13936
  return true;
13887
13937
  };
13888
13938
 
@@ -13911,7 +13961,7 @@ RowDefinition.prototype.subscribeForUpdates = function() {
13911
13961
  if(prevRowData) {
13912
13962
  this._dc.setRowData(this._dataId, prevRowData); // TODO: We may need to create a new object instead of prevRowData for data correctness
13913
13963
  } else {
13914
- this._dc.setRowData(this._dataId, {"X_RIC_NAME": this.getSymbol(), "ROW_DEF": this}); // Trigger data update immediately
13964
+ this._dc.setRowData(this._dataId, {"X_RIC_NAME": this.getDisplayText(), "ROW_DEF": this}); // Trigger data update immediately
13915
13965
  }
13916
13966
  return true;
13917
13967
  };
@@ -14372,40 +14422,6 @@ var SYNAPSE_URL =
14372
14422
  + 'hits=1' // search only 1 result
14373
14423
  + '&profile=' + encodeURIComponent('Field Selector');
14374
14424
 
14375
- /** @function
14376
- * @private
14377
- * @param {Object} e
14378
- */
14379
- function xRicNameRenderer(e) {
14380
- e.cell.setContent(e.rowDef.getDisplayText());
14381
- }
14382
- /** @function
14383
- * @private
14384
- * @param {RowDefinition} rowA
14385
- * @param {RowDefinition} rowB
14386
- * @param {number} order
14387
- * @returns {number}
14388
- */
14389
- function xRicNameSorter(rowA, rowB, order) {
14390
- var A = rowA.getDisplayText();
14391
- var B = rowB.getDisplayText();
14392
- if(A === B) {
14393
- return 0;
14394
- }
14395
- if(!A) {
14396
- return 1;
14397
- }
14398
- if(!B) {
14399
- return -1;
14400
- }
14401
- if(A < B) {
14402
- return -order;
14403
- }
14404
-
14405
- return order;
14406
- }
14407
-
14408
-
14409
14425
  /* @namespace */
14410
14426
  var FieldDefinition = {};
14411
14427
 
@@ -14413,13 +14429,6 @@ var FieldDefinition = {};
14413
14429
  * @private
14414
14430
  */
14415
14431
  FieldDefinition._defs = {
14416
- "X_RIC_NAME": {
14417
- name: "RIC",
14418
- IsRealtimeField: false,
14419
- width: 100,
14420
- binding: xRicNameRenderer,
14421
- sortLogic: xRicNameSorter
14422
- },
14423
14432
  "CF_NAME": {
14424
14433
  name: "Name",
14425
14434
  rank: 2800003,
@@ -16814,6 +16823,13 @@ GroupDefinitions.prototype.getGroups = function () {
16814
16823
  }
16815
16824
  return groupDefs;
16816
16825
  };
16826
+ /** Get array of all existing group ids
16827
+ * @public
16828
+ * @return {!Array.<string>}
16829
+ */
16830
+ GroupDefinitions.prototype.getGroupIds = function () {
16831
+ return Object.keys(this._groupMap);
16832
+ };
16817
16833
  /** @public
16818
16834
  * @return {!Object.<string, Object>}
16819
16835
  */
@@ -16920,7 +16936,18 @@ GroupDefinitions.prototype.getParentId = function (childId, groupLevel) {
16920
16936
  return parentId || "";
16921
16937
  };
16922
16938
 
16923
-
16939
+ /** Remove all existing group definitions
16940
+ * @public
16941
+ * @return {boolean}
16942
+ */
16943
+ GroupDefinitions.prototype.removeAllGroups = function () {
16944
+ for(var groupId in this._groupMap) { // eslint-disable-line
16945
+ this._groupMap = {};
16946
+ this._childToParent = {};
16947
+ return true;
16948
+ }
16949
+ return false;
16950
+ };
16924
16951
  /** Remove all existing group definitions and replace them with the given definitions.
16925
16952
  * @public
16926
16953
  * @param {Array.<Object>=} groupDefs Use null or empty array to remove all existing groups
@@ -17065,9 +17092,10 @@ GroupDefinitions.prototype.hasGroupChild = function (parentId, childId) {
17065
17092
  /** @public
17066
17093
  * @param {string} parentId Group id
17067
17094
  * @param {string} childId
17095
+ * @param {number=} position
17068
17096
  * @return {boolean}
17069
17097
  */
17070
- GroupDefinitions.prototype.addGroupChild = function (parentId, childId) {
17098
+ GroupDefinitions.prototype.addGroupChild = function (parentId, childId, position) {
17071
17099
  var groupDef = this._groupMap[parentId];
17072
17100
 
17073
17101
  if(childId && groupDef) {
@@ -17080,7 +17108,11 @@ GroupDefinitions.prototype.addGroupChild = function (parentId, childId) {
17080
17108
  if(childDef) {
17081
17109
  childDef.parentId = parentId;
17082
17110
  }
17083
- chdr.push(childId);
17111
+ if(position != null && position >= 0) {
17112
+ chdr.splice(position, 0, childId);
17113
+ } else {
17114
+ chdr.push(childId);
17115
+ }
17084
17116
  return true;
17085
17117
  }
17086
17118
  }
@@ -17189,6 +17221,18 @@ GroupDefinitions.prototype.setGroupChildren = function (groupId, newChildList) {
17189
17221
  }
17190
17222
  return false;
17191
17223
  };
17224
+
17225
+ /** @public
17226
+ * @param {string} groupId
17227
+ * @return {string}
17228
+ */
17229
+ GroupDefinitions.prototype.getGroupName = function (groupId) {
17230
+ var groupDef = this._groupMap[groupId];
17231
+ if(groupDef) {
17232
+ return groupDef.name || "";
17233
+ }
17234
+ return "";
17235
+ };
17192
17236
  /** @public
17193
17237
  * @param {string} groupId
17194
17238
  * @param {string} groupName
@@ -17205,6 +17249,7 @@ GroupDefinitions.prototype.setGroupName = function (groupId, groupName) {
17205
17249
 
17206
17250
  return false;
17207
17251
  };
17252
+
17208
17253
  /* harmony default export */ var es6_GroupDefinitions = (GroupDefinitions);
17209
17254
 
17210
17255
 
@@ -20366,6 +20411,10 @@ ILayoutGrid.prototype.calculateColumnBounds = function (lftIdx, rgtIdx, outPosit
20366
20411
  * @param {number=} topPx Top position of bound
20367
20412
  */
20368
20413
  ILayoutGrid.prototype.updateColumnBounds = function (posAry, noBorderAry, topPx) {};
20414
+ /** @public
20415
+ * @ignore
20416
+ */
20417
+ ILayoutGrid.prototype.updateColumnSeparators = function () {};
20369
20418
 
20370
20419
  /* harmony default export */ var grid_ILayoutGrid = (ILayoutGrid);
20371
20420
 
@@ -24355,7 +24404,14 @@ LayoutGrid.prototype._colSelDirty = false;
24355
24404
  * @private
24356
24405
  */
24357
24406
  LayoutGrid.prototype._hscrollbar = null;
24358
-
24407
+ /** @type {Element}
24408
+ * @private
24409
+ */
24410
+ LayoutGrid.prototype._leftColumnSeparator = null;
24411
+ /** @type {Element}
24412
+ * @private
24413
+ */
24414
+ LayoutGrid.prototype._rightColumnSeparator = null;
24359
24415
 
24360
24416
  /**
24361
24417
  * {@link ElementWrapper#dispose}
@@ -26322,8 +26378,7 @@ LayoutGrid.prototype.selectColumn = function (colIndex, selected) {
26322
26378
 
26323
26379
  var boundLayer = this._boundLayer;
26324
26380
  if(!boundLayer) {
26325
- boundLayer = this._boundLayer = document.createElement("div");
26326
- boundLayer.className = "cover-layer";
26381
+ this._initBoundLayer();
26327
26382
  this._updateLayers();
26328
26383
  }
26329
26384
  }
@@ -26495,6 +26550,92 @@ LayoutGrid.prototype.updateColumnBounds = function (posAry, noBorderAry, topPx)
26495
26550
  }
26496
26551
  };
26497
26552
 
26553
+ /** @public
26554
+ */
26555
+ LayoutGrid.prototype.updateColumnSeparators = function () {
26556
+ var pinnedLeftCount = this._hscrollbar.getPinnedLeftColumnCount();
26557
+ var pinnedRightCount = this._hscrollbar.getPinnedRightColumnCount();
26558
+ if ((pinnedLeftCount || pinnedRightCount) && !this._boundLayer) {
26559
+ this._initBoundLayer();
26560
+ }
26561
+
26562
+ var isScrollbarActive = false;
26563
+ if(this._hscrollbar) {
26564
+ isScrollbarActive = this._hscrollbar.isActive();
26565
+ }
26566
+
26567
+ var boundLayer = this._boundLayer;
26568
+
26569
+ var colSeparator = this._leftColumnSeparator;
26570
+ if (isScrollbarActive && pinnedLeftCount) {
26571
+ if (!colSeparator) {
26572
+ colSeparator = this._leftColumnSeparator = this._createColumnSeparator();
26573
+ }
26574
+ if (!colSeparator.parentNode) {
26575
+ if (boundLayer.children.length) {
26576
+ boundLayer.insertBefore(colSeparator, boundLayer.children[0]);
26577
+ } else {
26578
+ boundLayer.appendChild(colSeparator);
26579
+ }
26580
+ }
26581
+
26582
+ var rightPos = this._trackX.getLaneStart(pinnedLeftCount);
26583
+ colSeparator.style.left = (rightPos - 1) + "px";
26584
+ colSeparator.style.height = this._trackY.getTrackSize() + "px";
26585
+ } else {
26586
+ if (colSeparator && colSeparator.parentNode) {
26587
+ this._boundLayer.removeChild(colSeparator);
26588
+ }
26589
+ }
26590
+
26591
+ colSeparator = this._rightColumnSeparator;
26592
+ if (isScrollbarActive && pinnedRightCount) {
26593
+ if (!colSeparator) {
26594
+ colSeparator = this._rightColumnSeparator = this._createColumnSeparator();
26595
+ }
26596
+
26597
+ if (!colSeparator.parentNode) {
26598
+ if (boundLayer.children.length) {
26599
+ boundLayer.insertBefore(colSeparator, boundLayer.children[0]);
26600
+ } else {
26601
+ boundLayer.appendChild(colSeparator);
26602
+ }
26603
+ }
26604
+ var colCount = this.getColumnCount();
26605
+ var colWidth = this._trackX.getLaneEnd(colCount - 1) - this._trackX.getLaneStart(colCount - pinnedRightCount);
26606
+ var viewSize = this._getViewSize();
26607
+
26608
+ colSeparator.style.left = (viewSize - colWidth - this._rightSpaceSize) + "px";
26609
+ colSeparator.style.height = this._trackY.getTrackSize() + "px";
26610
+ } else {
26611
+ if (colSeparator && colSeparator.parentNode) {
26612
+ this._boundLayer.removeChild(colSeparator);
26613
+ }
26614
+ }
26615
+ };
26616
+
26617
+ /** @private
26618
+ * @return {Element}
26619
+ */
26620
+ LayoutGrid.prototype._createColumnSeparator = function() {
26621
+ var colSeparator = document.createElement("div");
26622
+ colSeparator.classList.add("column-separator");
26623
+ return colSeparator;
26624
+ };
26625
+
26626
+ /** @private
26627
+ * @return {Element}
26628
+ */
26629
+ LayoutGrid.prototype._initBoundLayer = function () {
26630
+ var boundLayer = this._boundLayer;
26631
+ if(!boundLayer) {
26632
+ boundLayer = this._boundLayer = document.createElement("div");
26633
+ boundLayer.className = "cover-layer";
26634
+ this._element.appendChild(boundLayer);
26635
+ }
26636
+ return boundLayer;
26637
+ };
26638
+
26498
26639
  /**
26499
26640
  * @private
26500
26641
  * @param {number} indexX
@@ -35014,6 +35155,12 @@ VirtualizedLayoutGrid.prototype.updateColumnBounds = function (posAry, noBorderA
35014
35155
  this._grid.updateColumnBounds(posAry, noBorderAry, topPx);
35015
35156
  this._updateRowBounds();
35016
35157
  };
35158
+ /** @public
35159
+ * @ignore
35160
+ */
35161
+ VirtualizedLayoutGrid.prototype.updateColumnSeparators = function () {
35162
+ this._grid.updateColumnSeparators();
35163
+ };
35017
35164
  /** @private
35018
35165
  */
35019
35166
  VirtualizedLayoutGrid.prototype._initBoundLayer = function () {
@@ -35779,7 +35926,7 @@ Core.prototype._batches = null;
35779
35926
  * @return {string}
35780
35927
  */
35781
35928
  Core.getVersion = function () {
35782
- return "5.1.49";
35929
+ return "5.1.50";
35783
35930
  };
35784
35931
  /** {@link ElementWrapper#dispose}
35785
35932
  * @override
@@ -36992,6 +37139,7 @@ Core.prototype._moveColumn = function (fromCol, destCol) {
36992
37139
  }
36993
37140
  }
36994
37141
  this._updateColumnBounds();
37142
+ this._updateColumnSeparators();
36995
37143
  return true;
36996
37144
  };
36997
37145
 
@@ -37322,6 +37470,7 @@ Core.prototype.setDefaultRowHeight = function (val, opt_includeTitle) {
37322
37470
  this._syncRowHeights();
37323
37471
  this._rowHeightSync = true;
37324
37472
  this.setRowScrollingStep(this._rowScrollingStep);
37473
+ this._updateColumnSeparators();
37325
37474
  }
37326
37475
  };
37327
37476
 
@@ -38156,6 +38305,7 @@ Core.prototype.freezeColumn = function (frozenColIndex, numRightColumn) {
38156
38305
 
38157
38306
  this._onColumnCountChanged(); // Activate horizontal scrollbar and column virtualization
38158
38307
  this._updateScrollbarWidth(true, true);
38308
+ this._updateColumnSeparators();
38159
38309
  };
38160
38310
 
38161
38311
  /** @private
@@ -39397,6 +39547,21 @@ Core.prototype._updateColumnBounds = function () {
39397
39547
  section.updateColumnBounds(posAry, noBorderAry);
39398
39548
  }
39399
39549
  };
39550
+ /* @private
39551
+ */
39552
+ Core.prototype._updateColumnSeparators = function() {
39553
+ var sectCount = this._settings.length;
39554
+ if(!sectCount) {
39555
+ return;
39556
+ }
39557
+
39558
+ for(var i = 0; i < sectCount; i++) {
39559
+ var section = this._settings[i].getSection();
39560
+ if (section) {
39561
+ section.updateColumnSeparators();
39562
+ }
39563
+ }
39564
+ };
39400
39565
 
39401
39566
  /** @public
39402
39567
  * @param {number} startColIndex INCLUSIVE
@@ -40466,6 +40631,8 @@ Core.prototype._onRowCountChanged = function (e) {
40466
40631
  if(!forceUpdate) {
40467
40632
  this._updateVScrollbar(); // Asynchronous
40468
40633
  }
40634
+
40635
+ this._updateColumnSeparators();
40469
40636
  if(prevRowCount < newRowCount) {
40470
40637
  this._dispatch("rowAdded", e);
40471
40638
  } else if(prevRowCount > newRowCount) {
@@ -40523,7 +40690,7 @@ Core.prototype._onRowHeightChanged = function (e) {
40523
40690
  minSectionIndex >= this._startVScrollbarIndex);
40524
40691
  }
40525
40692
  }
40526
-
40693
+ this._updateColumnSeparators();
40527
40694
  this._dispatchRowPositionChanged();
40528
40695
  };
40529
40696
  /** @private
@@ -40588,6 +40755,7 @@ Core.prototype._onColumnCountChanged = function () {
40588
40755
  var pinnedRight = this._countPinnedRightColumns();
40589
40756
 
40590
40757
  this._updateColumnBounds();
40758
+ this._updateColumnSeparators();
40591
40759
 
40592
40760
  if (this._hScrollbarEnabled && pinnedLeft + pinnedRight < this.getColumnCount()) {
40593
40761
  this._hscrollbar.enable();
@@ -40869,6 +41037,7 @@ Core.prototype._syncLayoutToColumns = function (from, to, opt_forceDispatching)
40869
41037
  var paneChanged = forceUpdate || (from < this.getHScrollStartIndex()) || (to > this.getFirstPinnedRightIndex());
40870
41038
  this._updateScrollbarWidth(paneChanged, true /* contentChanged */);
40871
41039
  this._updateColumnBounds();
41040
+ this._updateColumnSeparators();
40872
41041
  this._dispatchColumnPositionChanged();
40873
41042
 
40874
41043
  if (dirty || opt_forceDispatching) {
@@ -40964,6 +41133,7 @@ Core.prototype._updateLayout = function () {
40964
41133
  var section = this._settings[s].getSection();
40965
41134
  section.updateLayout(); // Notify section about forced recalculation of the layout
40966
41135
  }
41136
+ this._updateColumnSeparators();
40967
41137
  };
40968
41138
 
40969
41139
  /** @private */
@@ -49573,6 +49743,13 @@ MockSubscriptions.prototype._generateQuoteData = function(sub, fields) {
49573
49743
  values[field] = data.value;
49574
49744
  values[formattedField] = data.formattedValue;
49575
49745
  }
49746
+
49747
+ // The delay symbol for X_RIC_NAME will depend on the INDICATOR field.
49748
+ if(values["X_RIC_NAME"] != null && values["INDICATOR"] != null) {
49749
+ if(values["INDICATOR"] > 0) {
49750
+ values["X_RIC_NAME"] = "/" + values["X_RIC_NAME"];
49751
+ }
49752
+ }
49576
49753
  return values;
49577
49754
  };
49578
49755