@refinitiv-ui/efx-grid 6.0.128 → 6.0.129
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/core/dist/core.js +220 -11
- package/lib/core/dist/core.min.js +1 -1
- package/lib/core/es6/data/DataCache.js +29 -0
- package/lib/core/es6/data/DataTable.d.ts +4 -0
- package/lib/core/es6/data/DataTable.js +117 -1
- package/lib/core/es6/data/DataView.d.ts +6 -0
- package/lib/core/es6/data/DataView.js +43 -0
- package/lib/core/es6/data/SegmentCollection.d.ts +2 -0
- package/lib/core/es6/data/SegmentCollection.js +21 -0
- package/lib/core/es6/grid/Core.js +1 -1
- package/lib/core/es6/grid/plugins/SortableTitlePlugin.js +9 -9
- package/lib/grid/index.js +1 -1
- package/lib/row-segmenting/es6/RowSegmenting.d.ts +6 -0
- package/lib/row-segmenting/es6/RowSegmenting.js +62 -11
- package/lib/rt-grid/dist/rt-grid.js +261 -23
- package/lib/rt-grid/dist/rt-grid.min.js +1 -1
- package/lib/rt-grid/es6/DataConnector.js +1 -1
- package/lib/rt-grid/es6/Grid.js +40 -11
- package/lib/tr-grid-cell-selection/es6/CellSelection.d.ts +3 -2
- package/lib/tr-grid-cell-selection/es6/CellSelection.js +1100 -1124
- package/lib/tr-grid-row-filtering/es6/RowFiltering.js +2 -2
- package/lib/types/es6/CellSelection.d.ts +3 -2
- package/lib/types/es6/Core/data/DataTable.d.ts +4 -0
- package/lib/types/es6/Core/data/DataView.d.ts +6 -0
- package/lib/types/es6/Core/data/SegmentCollection.d.ts +2 -0
- package/lib/types/es6/RowSegmenting.d.ts +6 -0
- package/lib/versions.json +3 -3
- package/package.json +1 -1
@@ -8966,6 +8966,35 @@ DataCache.prototype.cloneRowData = function (rid) {
|
|
8966
8966
|
return values;
|
8967
8967
|
};
|
8968
8968
|
|
8969
|
+
/**
|
8970
|
+
* @protected
|
8971
|
+
* @ignore
|
8972
|
+
* @param {string} fromRid
|
8973
|
+
* @param {string} toRid
|
8974
|
+
* @return {boolean}
|
8975
|
+
*/
|
8976
|
+
DataCache.prototype._replaceRowId = function(fromRid, toRid) {
|
8977
|
+
let rows = this._rows;
|
8978
|
+
if(rows[fromRid]) {
|
8979
|
+
rows[toRid] = rows[fromRid];
|
8980
|
+
delete rows[fromRid];
|
8981
|
+
return true;
|
8982
|
+
}
|
8983
|
+
return false;
|
8984
|
+
};
|
8985
|
+
/**
|
8986
|
+
* @public
|
8987
|
+
* @ignore
|
8988
|
+
* @param {Object} ridPair
|
8989
|
+
*/
|
8990
|
+
DataCache.prototype.replaceRowIds = function(ridPair) {
|
8991
|
+
if(typeof ridPair === "object") {
|
8992
|
+
for(let oldRid in ridPair) {
|
8993
|
+
this._replaceRowId(oldRid, ridPair[oldRid]);
|
8994
|
+
}
|
8995
|
+
}
|
8996
|
+
};
|
8997
|
+
|
8969
8998
|
/** Deprecated. Built-in Data Service is deprecated due to the lack of flexibility.
|
8970
8999
|
* @public
|
8971
9000
|
* @ignore
|
@@ -10173,6 +10202,27 @@ SegmentCollection.prototype.getSegmentIds = function() {
|
|
10173
10202
|
};
|
10174
10203
|
|
10175
10204
|
|
10205
|
+
/** @public
|
10206
|
+
* @param {Array.<string>} segmentIds
|
10207
|
+
* @param {boolean=} bool
|
10208
|
+
* @return {boolean} Returns true if there is any change. Otherwise, returns false
|
10209
|
+
*/
|
10210
|
+
SegmentCollection.prototype.collapseSegments = function(segmentIds, bool) {
|
10211
|
+
if(this._segmentCount) {
|
10212
|
+
let dirty = 0;
|
10213
|
+
let len = segmentIds.length;
|
10214
|
+
for (let i = 0; i < len; i++) {
|
10215
|
+
let rowId = segmentIds[i];
|
10216
|
+
dirty |= this._segments[rowId].collapse(bool);
|
10217
|
+
|
10218
|
+
}
|
10219
|
+
if(dirty) {
|
10220
|
+
return true;
|
10221
|
+
}
|
10222
|
+
}
|
10223
|
+
return false;
|
10224
|
+
};
|
10225
|
+
|
10176
10226
|
/** @public
|
10177
10227
|
* @param {string} segmentId
|
10178
10228
|
* @param {boolean=} bool
|
@@ -11412,6 +11462,45 @@ DataTable.prototype.swapRow = function(fromIndex, toIndex) { // No event is fire
|
|
11412
11462
|
this._rids[toIndex] = rid;
|
11413
11463
|
};
|
11414
11464
|
|
11465
|
+
/**
|
11466
|
+
* @protected
|
11467
|
+
* @override
|
11468
|
+
* @ignore
|
11469
|
+
* @param {string} fromRid
|
11470
|
+
* @param {string} toRid
|
11471
|
+
* @return {boolean}
|
11472
|
+
*/
|
11473
|
+
DataTable.prototype._replaceRowId = function(fromRid, toRid) {
|
11474
|
+
let rids = this._rids;
|
11475
|
+
let idx = rids.indexOf(fromRid);
|
11476
|
+
if(idx >= 0) {
|
11477
|
+
rids[idx] = toRid;
|
11478
|
+
this._rows[toRid] = this._rows[fromRid];
|
11479
|
+
delete this._rows[fromRid];
|
11480
|
+
this._prevData[toRid] = this._prevData[fromRid];
|
11481
|
+
delete this._prevData[fromRid];
|
11482
|
+
return true;
|
11483
|
+
}
|
11484
|
+
return false;
|
11485
|
+
};
|
11486
|
+
/**
|
11487
|
+
* @public
|
11488
|
+
* @override
|
11489
|
+
* @ignore
|
11490
|
+
* @param {Object} ridPair
|
11491
|
+
*/
|
11492
|
+
DataTable.prototype.replaceRowIds = function(ridPair) {
|
11493
|
+
if(typeof ridPair === "object") {
|
11494
|
+
let dirty = false;
|
11495
|
+
for(let oldRid in ridPair) {
|
11496
|
+
dirty |= this._replaceRowId(oldRid, ridPair[oldRid]);
|
11497
|
+
}
|
11498
|
+
if(dirty) {
|
11499
|
+
this.dispatchGlobalChange();
|
11500
|
+
}
|
11501
|
+
}
|
11502
|
+
};
|
11503
|
+
|
11415
11504
|
/** @public
|
11416
11505
|
* @function
|
11417
11506
|
* @param {string} rid
|
@@ -11553,6 +11642,55 @@ DataTable.prototype.isFrozen = function() {
|
|
11553
11642
|
return this._frozen;
|
11554
11643
|
};
|
11555
11644
|
|
11645
|
+
/**
|
11646
|
+
* @public
|
11647
|
+
* @param {Array.<string>} rids
|
11648
|
+
* @param {boolean=} enabled
|
11649
|
+
* @return {boolean} Return true if there is any change
|
11650
|
+
*/
|
11651
|
+
DataTable.prototype.setSegmentSeparators = function(rids, enabled) {
|
11652
|
+
let change = false;
|
11653
|
+
if (rids) {
|
11654
|
+
let len = rids.length;
|
11655
|
+
let segmentChanged = false;
|
11656
|
+
for (let i = 0; i < len; i++) {
|
11657
|
+
if(enabled !== false) {
|
11658
|
+
let rid = rids[i];
|
11659
|
+
if (!this._segments) {
|
11660
|
+
this._segments = new data_SegmentCollection();
|
11661
|
+
this._segments.addEventListener("subSegmentChanged", this._onSubSegmentChanged);
|
11662
|
+
}
|
11663
|
+
if(this._autoSegmentFilling) {
|
11664
|
+
let parentId = this._segments.getParentRowId(rid);
|
11665
|
+
if(parentId) {
|
11666
|
+
this._segments.removeSegmentChild(parentId, rid);
|
11667
|
+
}
|
11668
|
+
}
|
11669
|
+
segmentChanged = this._segments.addSegment(rid);
|
11670
|
+
} else if (this._segments) { // remove case
|
11671
|
+
let segment = this._segments.getSegment(rid);
|
11672
|
+
if(segment) {
|
11673
|
+
if(this._segments.removeSegment(rid)) {
|
11674
|
+
change = true;
|
11675
|
+
if(!this._segments.getSegmentCount()) {
|
11676
|
+
this._segments = null;
|
11677
|
+
}
|
11678
|
+
}
|
11679
|
+
}
|
11680
|
+
}
|
11681
|
+
|
11682
|
+
}
|
11683
|
+
if (enabled !== false && segmentChanged) {
|
11684
|
+
this._segments.calcSegmentOrder(this._rids);
|
11685
|
+
change = true;
|
11686
|
+
}
|
11687
|
+
if(change) {
|
11688
|
+
this.dispatchGlobalChange();
|
11689
|
+
}
|
11690
|
+
}
|
11691
|
+
return change;
|
11692
|
+
|
11693
|
+
};
|
11556
11694
|
|
11557
11695
|
/**
|
11558
11696
|
* @public
|
@@ -11579,7 +11717,7 @@ DataTable.prototype.setSegmentSeparator = function(rid, enabled) {
|
|
11579
11717
|
this._segments.calcSegmentOrder(this._rids);
|
11580
11718
|
change = true;
|
11581
11719
|
}
|
11582
|
-
} else if(this._segments) {
|
11720
|
+
} else if(this._segments) { // mean remove separator
|
11583
11721
|
let segment = this._segments.getSegment(rid);
|
11584
11722
|
if(segment) {
|
11585
11723
|
memberCount = segment.getChildCount();
|
@@ -11805,6 +11943,34 @@ DataTable.prototype.addSegmentChildren = function(segmentId, rids, dataIds) {
|
|
11805
11943
|
}
|
11806
11944
|
return false;
|
11807
11945
|
};
|
11946
|
+
|
11947
|
+
/** @public
|
11948
|
+
* @param {Array.<Object>} segmentArr Segment array that contain "segmentId", "rowIds" to set segment children
|
11949
|
+
* @return {boolean} Return true if there is any change
|
11950
|
+
*/
|
11951
|
+
DataTable.prototype.setSegmentChildren = function(segmentArr) {
|
11952
|
+
if(!this._segments) {
|
11953
|
+
return false;
|
11954
|
+
}
|
11955
|
+
this.removeAllSegmentChildren();
|
11956
|
+
let len = segmentArr.length;
|
11957
|
+
let dirty;
|
11958
|
+
for (let i = 0; i < len; i++) {
|
11959
|
+
let obj = segmentArr[i];
|
11960
|
+
if(this._segments.addSegmentChildren(obj.segmentId, obj.rowIds)) {
|
11961
|
+
dirty = true;
|
11962
|
+
}
|
11963
|
+
}
|
11964
|
+
if(dirty) {
|
11965
|
+
this._sort(null);
|
11966
|
+
this._dispatchPositionChange(); // Force rerendering, even if there is no position change
|
11967
|
+
|
11968
|
+
this.requestClassifying();
|
11969
|
+
return true;
|
11970
|
+
}
|
11971
|
+
|
11972
|
+
return false;
|
11973
|
+
};
|
11808
11974
|
/** @public
|
11809
11975
|
* @param {string} segmentId Row id
|
11810
11976
|
* @param {string} rid Row id
|
@@ -31421,6 +31587,23 @@ DataView.prototype.synchronizeRowOrder = function() {
|
|
31421
31587
|
this._dt._sort(this._sortingDefs);
|
31422
31588
|
}
|
31423
31589
|
};
|
31590
|
+
/**
|
31591
|
+
* @public
|
31592
|
+
* @param {Array<string>} rowIds
|
31593
|
+
* @param {boolean=} enabled
|
31594
|
+
* @return {boolean} Return true if there is any change
|
31595
|
+
*/
|
31596
|
+
DataView.prototype.setSegmentSeparators = function(rowIds, enabled) {
|
31597
|
+
if(rowIds) {
|
31598
|
+
enabled = enabled !== false;
|
31599
|
+
if(enabled) {
|
31600
|
+
this.synchronizeRowOrder();
|
31601
|
+
}
|
31602
|
+
// TODO: Force expanding of segment before unsetting segment separator
|
31603
|
+
return this._dt.setSegmentSeparators(rowIds, enabled);
|
31604
|
+
}
|
31605
|
+
return false;
|
31606
|
+
};
|
31424
31607
|
/** Set visible row as segment separator (hidden or filtered rows cannot be a segment separator)
|
31425
31608
|
* @public
|
31426
31609
|
* @param {string|number} rowRef Row id or row index
|
@@ -31521,6 +31704,22 @@ DataView.prototype.collapseSegment = function(rowRef, collapsed) {
|
|
31521
31704
|
return false;
|
31522
31705
|
};
|
31523
31706
|
/** @public
|
31707
|
+
* @param {Array<string|number>} rowIds
|
31708
|
+
* @param {boolean=} collapsed
|
31709
|
+
* @return {boolean} Return true if there is any change
|
31710
|
+
*/
|
31711
|
+
DataView.prototype.collapseSegments = function(rowIds, collapsed) {
|
31712
|
+
collapsed = collapsed !== false;
|
31713
|
+
let segments = this._dt._getSegmentSeparators();
|
31714
|
+
if(segments) {
|
31715
|
+
if(segments.collapseSegments(rowIds, collapsed)) {
|
31716
|
+
this._refreshAndNotify(); // dispatch global change event
|
31717
|
+
return true;
|
31718
|
+
}
|
31719
|
+
}
|
31720
|
+
return false;
|
31721
|
+
};
|
31722
|
+
/** @public
|
31524
31723
|
* @param {string|number} rowRef Row id or row index
|
31525
31724
|
* @param {boolean=} expanded
|
31526
31725
|
* @return {boolean} Return true if there is any change
|
@@ -31599,6 +31798,16 @@ DataView.prototype.addSegmentChildren = function(segmentRef, rowRefs, dataIds) {
|
|
31599
31798
|
return false;
|
31600
31799
|
};
|
31601
31800
|
/** @public
|
31801
|
+
* @param {Array<Object>} segmentArr Segment array that contain "segmentId", "rowIds" to set segment children
|
31802
|
+
* @return {boolean} Return true if there is any change
|
31803
|
+
*/
|
31804
|
+
DataView.prototype.setSegmentChildren = function(segmentArr) {
|
31805
|
+
if(this._dt._getSegmentSeparators()) {
|
31806
|
+
return this._dt.setSegmentChildren(segmentArr);
|
31807
|
+
}
|
31808
|
+
return false;
|
31809
|
+
};
|
31810
|
+
/** @public
|
31602
31811
|
* @param {string|number} segmentRef Row id or row index
|
31603
31812
|
* @param {string|number} rowRef Row id, row index
|
31604
31813
|
* @return {boolean} Return true if there is any change
|
@@ -36302,7 +36511,7 @@ Core.prototype._hasPendingRowChange = false;
|
|
36302
36511
|
* @return {string}
|
36303
36512
|
*/
|
36304
36513
|
Core.getVersion = function () {
|
36305
|
-
return "5.1.
|
36514
|
+
return "5.1.129";
|
36306
36515
|
};
|
36307
36516
|
/** {@link ElementWrapper#dispose}
|
36308
36517
|
* @override
|
@@ -42177,7 +42386,7 @@ DataConnector.prototype._fieldChangedConflator = null;
|
|
42177
42386
|
* @private
|
42178
42387
|
*/
|
42179
42388
|
DataConnector.prototype._ricChangedConflator = null;
|
42180
|
-
/** @type {Object.<string, RowDefinition
|
42389
|
+
/** @type {Object.<string, Array.<RowDefinition>>}
|
42181
42390
|
* @private
|
42182
42391
|
*/
|
42183
42392
|
DataConnector.prototype._rowDefMap = null;
|
@@ -43467,7 +43676,15 @@ SortableTitlePlugin.prototype.isSorting = function () {
|
|
43467
43676
|
* @fires SortableTitlePlugin#columnSorted
|
43468
43677
|
*/
|
43469
43678
|
SortableTitlePlugin.prototype.sortColumn = function (colRef, sortOrder, opt_arg) {
|
43470
|
-
this.
|
43679
|
+
let sortOptions = this._prepareSorting(colRef, sortOrder);
|
43680
|
+
this._sortColumn(sortOptions, opt_arg);
|
43681
|
+
if (opt_arg && opt_arg["isUserAction"]) { // Currently, the 'isUserAction' flag is triggered by a user clicking on the title and clicking the filter dialog. TODO: preClicked should be firing too.
|
43682
|
+
let ce = {};
|
43683
|
+
ce["colIndex"] = sortOptions.colIndex;
|
43684
|
+
ce["sortOrder"] = this.getSortOrder(sortOptions.colIndex);
|
43685
|
+
ce["dataColumnName"] = this.getColumnSortingField(sortOptions.colIndex); // This should be deprecated
|
43686
|
+
this._dispatch("clicked", ce);
|
43687
|
+
}
|
43471
43688
|
};
|
43472
43689
|
|
43473
43690
|
/** Sort multiple columns at once
|
@@ -43866,14 +44083,6 @@ SortableTitlePlugin.prototype._proceedSorting = function (hitObj) {
|
|
43866
44083
|
if(grid && grid["focus"]) {
|
43867
44084
|
grid["focus"]();
|
43868
44085
|
}
|
43869
|
-
|
43870
|
-
if (this._hasListener("clicked")) {
|
43871
|
-
let ce = {};
|
43872
|
-
ce["colIndex"] = colIndex;
|
43873
|
-
ce["sortOrder"] = this.getSortOrder(colIndex);
|
43874
|
-
ce["dataColumnName"] = this.getColumnSortingField(colIndex); // This should be deprecated
|
43875
|
-
this._dispatch("clicked", ce);
|
43876
|
-
}
|
43877
44086
|
}
|
43878
44087
|
};
|
43879
44088
|
|
@@ -45136,6 +45345,10 @@ Grid.prototype._formulaConflator = null;
|
|
45136
45345
|
*/
|
45137
45346
|
Grid.prototype._chainConflator = null;
|
45138
45347
|
/** @private
|
45348
|
+
* @type {Object}
|
45349
|
+
*/
|
45350
|
+
Grid.prototype._constituentMap = null;
|
45351
|
+
/** @private
|
45139
45352
|
* @type {number}
|
45140
45353
|
*/
|
45141
45354
|
Grid.prototype._clientWidth = NaN;
|
@@ -47306,6 +47519,7 @@ Grid.prototype.removeAllRows = function() {
|
|
47306
47519
|
this._dcConflator.reset();
|
47307
47520
|
this._formulaConflator.reset();
|
47308
47521
|
this._chainConflator.reset();
|
47522
|
+
this._constituentMap = null;
|
47309
47523
|
this._connector.removeAllRics();
|
47310
47524
|
|
47311
47525
|
// TODO: This logic should also be in the core grid
|
@@ -48205,15 +48419,15 @@ Grid.prototype._onQuote2PostUpdate = function (e) {
|
|
48205
48419
|
* @param {Object} e
|
48206
48420
|
*/
|
48207
48421
|
Grid.prototype._onQ2DataChanged = function (e) {
|
48208
|
-
let
|
48209
|
-
let rowDef = this._getRowDefinitionById(subId);
|
48422
|
+
let rowDef = this._getRowDefinitionById(e["subId"]);
|
48210
48423
|
if(!rowDef) {
|
48211
48424
|
return; // WARNING: This should not be happened because row has been removed but the data is still received
|
48212
48425
|
}
|
48213
48426
|
|
48427
|
+
let ric = e["ric"];
|
48214
48428
|
let values = e["values"];
|
48215
48429
|
if (values) {
|
48216
|
-
let
|
48430
|
+
let duplicateRics = null;
|
48217
48431
|
if(rowDef.verifyConstituent(ric)) {
|
48218
48432
|
let parentDef = rowDef;
|
48219
48433
|
let childDef = parentDef.getConstituent(ric);
|
@@ -48224,15 +48438,28 @@ Grid.prototype._onQ2DataChanged = function (e) {
|
|
48224
48438
|
if(!childDef) {
|
48225
48439
|
return; // Parent chain is not alive
|
48226
48440
|
}
|
48441
|
+
duplicateRics = this._connector.getRowDefByRic(ric);
|
48227
48442
|
this._connector.addRic(childDef); // TODO: JET/RTK should not re-subscribe this
|
48443
|
+
if(!this._constituentMap) {
|
48444
|
+
this._constituentMap = {};
|
48445
|
+
}
|
48446
|
+
this._constituentMap[childDef.getRowId()] = childDef;
|
48228
48447
|
this._registerConstituents(childDef);
|
48229
48448
|
}
|
48230
48449
|
}
|
48231
48450
|
|
48451
|
+
if(duplicateRics && duplicateRics.length) {
|
48452
|
+
let duplicateRic = duplicateRics[0];
|
48453
|
+
duplicateRic.cloneRowData(values, values);
|
48454
|
+
}
|
48455
|
+
|
48232
48456
|
rowDef.setRowData(values); // Trigger data changes
|
48233
|
-
} else
|
48234
|
-
rowDef.
|
48235
|
-
|
48457
|
+
} else { // The constituent is requested to be removed by the real-time data provider
|
48458
|
+
let childDef = rowDef.getConstituent(ric); // WARNING: normal ric and its delayed version must match with the one first given
|
48459
|
+
if(childDef) {
|
48460
|
+
childDef.setParent(null); // Manually remove child reference from its parent
|
48461
|
+
this._removeRow(childDef);
|
48462
|
+
}
|
48236
48463
|
}
|
48237
48464
|
};
|
48238
48465
|
|
@@ -48243,6 +48470,9 @@ Grid.prototype._registerConstituents = function(rowDef) {
|
|
48243
48470
|
if(this._chainConflator.conflate(rowDef)) {
|
48244
48471
|
return;
|
48245
48472
|
}
|
48473
|
+
|
48474
|
+
this._constituentMap = null;
|
48475
|
+
|
48246
48476
|
let view = this._dv;
|
48247
48477
|
let dt = view ? view.getDataSource() : null;
|
48248
48478
|
if(!dt) {
|
@@ -48552,14 +48782,21 @@ Grid.prototype._onDataComposed = function(e) {
|
|
48552
48782
|
return; // Cannot do data composition if there is no change in data
|
48553
48783
|
}
|
48554
48784
|
|
48555
|
-
|
48556
|
-
if(!rowData) {
|
48785
|
+
if(!e["rowData"]) {
|
48557
48786
|
return; // Row could already be removed or global change event is sent
|
48558
48787
|
}
|
48559
48788
|
|
48560
|
-
let
|
48789
|
+
let rowId = e["rid"];
|
48790
|
+
let rowDef = this._getRowDefinitionById(rowId);
|
48561
48791
|
if(!rowDef) {
|
48562
|
-
|
48792
|
+
rowDef = this._constituentMap ? this._constituentMap[rowId] : null; // Row def could be in pending for adding to view
|
48793
|
+
if(!rowDef) {
|
48794
|
+
return; // Somehow the given row id is invalid
|
48795
|
+
}
|
48796
|
+
if(rowDef.isDisposed()) {
|
48797
|
+
this._constituentMap[rowId] = null;
|
48798
|
+
return;
|
48799
|
+
}
|
48563
48800
|
}
|
48564
48801
|
|
48565
48802
|
if(this._autoDateConversion) { // auto data conversion
|
@@ -49133,7 +49370,8 @@ Grid.prototype._onTabNavigation = function(e) {
|
|
49133
49370
|
*/
|
49134
49371
|
Grid.prototype._getEventHandlers = function() {
|
49135
49372
|
return {
|
49136
|
-
"tabNavigation": this._onTabNavigation
|
49373
|
+
"tabNavigation": this._onTabNavigation,
|
49374
|
+
"q2DataChanged": this._onQ2DataChanged
|
49137
49375
|
};
|
49138
49376
|
};
|
49139
49377
|
|