@refinitiv-ui/efx-grid 6.0.127 → 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 +275 -32
- 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 +42 -16
- package/lib/rt-grid/es6/RowDefinition.js +12 -4
- 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
|
@@ -13249,7 +13415,10 @@ RowDefinition.prototype.setDataSource = function(dataSource, subs) {
|
|
13249
13415
|
this._dc = dataSource || null;
|
13250
13416
|
|
13251
13417
|
if(this._dc) {
|
13252
|
-
this.setRowData(
|
13418
|
+
this.setRowData({}); // Trigger data change
|
13419
|
+
if(this._staticValues) {
|
13420
|
+
this.setRowData(this._staticValues); // Trigger dataComposed and add updates
|
13421
|
+
}
|
13253
13422
|
}
|
13254
13423
|
|
13255
13424
|
this._subs = subs || null;
|
@@ -13375,9 +13544,14 @@ RowDefinition.prototype.setRowData = function(data) {
|
|
13375
13544
|
/** @public
|
13376
13545
|
*/
|
13377
13546
|
RowDefinition.prototype.resetRowData = function() {
|
13378
|
-
|
13379
|
-
|
13380
|
-
this.
|
13547
|
+
let dc = this._dc;
|
13548
|
+
if(dc) {
|
13549
|
+
let rowId = this._rowId;
|
13550
|
+
dc.setRowData(rowId, null);
|
13551
|
+
dc.setRowData(rowId, {}); // Row data is guaranteed to be existed
|
13552
|
+
if(this._staticValues) {
|
13553
|
+
dc.setRowData(rowId, this._staticValues); // Trigger dataComposed and add updates
|
13554
|
+
}
|
13381
13555
|
}
|
13382
13556
|
};
|
13383
13557
|
/** @public
|
@@ -31413,6 +31587,23 @@ DataView.prototype.synchronizeRowOrder = function() {
|
|
31413
31587
|
this._dt._sort(this._sortingDefs);
|
31414
31588
|
}
|
31415
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
|
+
};
|
31416
31607
|
/** Set visible row as segment separator (hidden or filtered rows cannot be a segment separator)
|
31417
31608
|
* @public
|
31418
31609
|
* @param {string|number} rowRef Row id or row index
|
@@ -31513,6 +31704,22 @@ DataView.prototype.collapseSegment = function(rowRef, collapsed) {
|
|
31513
31704
|
return false;
|
31514
31705
|
};
|
31515
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
|
31516
31723
|
* @param {string|number} rowRef Row id or row index
|
31517
31724
|
* @param {boolean=} expanded
|
31518
31725
|
* @return {boolean} Return true if there is any change
|
@@ -31591,6 +31798,16 @@ DataView.prototype.addSegmentChildren = function(segmentRef, rowRefs, dataIds) {
|
|
31591
31798
|
return false;
|
31592
31799
|
};
|
31593
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
|
31594
31811
|
* @param {string|number} segmentRef Row id or row index
|
31595
31812
|
* @param {string|number} rowRef Row id, row index
|
31596
31813
|
* @return {boolean} Return true if there is any change
|
@@ -36294,7 +36511,7 @@ Core.prototype._hasPendingRowChange = false;
|
|
36294
36511
|
* @return {string}
|
36295
36512
|
*/
|
36296
36513
|
Core.getVersion = function () {
|
36297
|
-
return "5.1.
|
36514
|
+
return "5.1.129";
|
36298
36515
|
};
|
36299
36516
|
/** {@link ElementWrapper#dispose}
|
36300
36517
|
* @override
|
@@ -42169,7 +42386,7 @@ DataConnector.prototype._fieldChangedConflator = null;
|
|
42169
42386
|
* @private
|
42170
42387
|
*/
|
42171
42388
|
DataConnector.prototype._ricChangedConflator = null;
|
42172
|
-
/** @type {Object.<string, RowDefinition
|
42389
|
+
/** @type {Object.<string, Array.<RowDefinition>>}
|
42173
42390
|
* @private
|
42174
42391
|
*/
|
42175
42392
|
DataConnector.prototype._rowDefMap = null;
|
@@ -43459,7 +43676,15 @@ SortableTitlePlugin.prototype.isSorting = function () {
|
|
43459
43676
|
* @fires SortableTitlePlugin#columnSorted
|
43460
43677
|
*/
|
43461
43678
|
SortableTitlePlugin.prototype.sortColumn = function (colRef, sortOrder, opt_arg) {
|
43462
|
-
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
|
+
}
|
43463
43688
|
};
|
43464
43689
|
|
43465
43690
|
/** Sort multiple columns at once
|
@@ -43858,14 +44083,6 @@ SortableTitlePlugin.prototype._proceedSorting = function (hitObj) {
|
|
43858
44083
|
if(grid && grid["focus"]) {
|
43859
44084
|
grid["focus"]();
|
43860
44085
|
}
|
43861
|
-
|
43862
|
-
if (this._hasListener("clicked")) {
|
43863
|
-
let ce = {};
|
43864
|
-
ce["colIndex"] = colIndex;
|
43865
|
-
ce["sortOrder"] = this.getSortOrder(colIndex);
|
43866
|
-
ce["dataColumnName"] = this.getColumnSortingField(colIndex); // This should be deprecated
|
43867
|
-
this._dispatch("clicked", ce);
|
43868
|
-
}
|
43869
44086
|
}
|
43870
44087
|
};
|
43871
44088
|
|
@@ -45128,6 +45345,10 @@ Grid.prototype._formulaConflator = null;
|
|
45128
45345
|
*/
|
45129
45346
|
Grid.prototype._chainConflator = null;
|
45130
45347
|
/** @private
|
45348
|
+
* @type {Object}
|
45349
|
+
*/
|
45350
|
+
Grid.prototype._constituentMap = null;
|
45351
|
+
/** @private
|
45131
45352
|
* @type {number}
|
45132
45353
|
*/
|
45133
45354
|
Grid.prototype._clientWidth = NaN;
|
@@ -46974,10 +47195,10 @@ Grid.prototype.insertRow = function(rowOption, rowRef) {
|
|
46974
47195
|
}
|
46975
47196
|
}
|
46976
47197
|
let rowDef = new RowDefinition(rowOption);
|
47198
|
+
rowDef.registerToView(this._dv, this._getRowId(rowRef));
|
46977
47199
|
rowDef.setDataSource(this._dc, this._subs); // This could also subscribe chain index/ric to JET/RTK
|
46978
47200
|
this._initDuplicateRicData(rowDef);
|
46979
47201
|
|
46980
|
-
rowDef.registerToView(this._dv, this._getRowId(rowRef));
|
46981
47202
|
if(rowOption && rowOption["hidden"]) {
|
46982
47203
|
this._dv.hideRow(rowDef.getRowId()); // Try to obtain rowId in rowDef since rowId is not assigned when new rows are created.
|
46983
47204
|
}
|
@@ -47298,6 +47519,7 @@ Grid.prototype.removeAllRows = function() {
|
|
47298
47519
|
this._dcConflator.reset();
|
47299
47520
|
this._formulaConflator.reset();
|
47300
47521
|
this._chainConflator.reset();
|
47522
|
+
this._constituentMap = null;
|
47301
47523
|
this._connector.removeAllRics();
|
47302
47524
|
|
47303
47525
|
// TODO: This logic should also be in the core grid
|
@@ -48197,15 +48419,15 @@ Grid.prototype._onQuote2PostUpdate = function (e) {
|
|
48197
48419
|
* @param {Object} e
|
48198
48420
|
*/
|
48199
48421
|
Grid.prototype._onQ2DataChanged = function (e) {
|
48200
|
-
let
|
48201
|
-
let rowDef = this._getRowDefinitionById(subId);
|
48422
|
+
let rowDef = this._getRowDefinitionById(e["subId"]);
|
48202
48423
|
if(!rowDef) {
|
48203
48424
|
return; // WARNING: This should not be happened because row has been removed but the data is still received
|
48204
48425
|
}
|
48205
48426
|
|
48427
|
+
let ric = e["ric"];
|
48206
48428
|
let values = e["values"];
|
48207
48429
|
if (values) {
|
48208
|
-
let
|
48430
|
+
let duplicateRics = null;
|
48209
48431
|
if(rowDef.verifyConstituent(ric)) {
|
48210
48432
|
let parentDef = rowDef;
|
48211
48433
|
let childDef = parentDef.getConstituent(ric);
|
@@ -48216,15 +48438,28 @@ Grid.prototype._onQ2DataChanged = function (e) {
|
|
48216
48438
|
if(!childDef) {
|
48217
48439
|
return; // Parent chain is not alive
|
48218
48440
|
}
|
48441
|
+
duplicateRics = this._connector.getRowDefByRic(ric);
|
48219
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;
|
48220
48447
|
this._registerConstituents(childDef);
|
48221
48448
|
}
|
48222
48449
|
}
|
48223
48450
|
|
48451
|
+
if(duplicateRics && duplicateRics.length) {
|
48452
|
+
let duplicateRic = duplicateRics[0];
|
48453
|
+
duplicateRic.cloneRowData(values, values);
|
48454
|
+
}
|
48455
|
+
|
48224
48456
|
rowDef.setRowData(values); // Trigger data changes
|
48225
|
-
} else
|
48226
|
-
rowDef.
|
48227
|
-
|
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
|
+
}
|
48228
48463
|
}
|
48229
48464
|
};
|
48230
48465
|
|
@@ -48235,6 +48470,9 @@ Grid.prototype._registerConstituents = function(rowDef) {
|
|
48235
48470
|
if(this._chainConflator.conflate(rowDef)) {
|
48236
48471
|
return;
|
48237
48472
|
}
|
48473
|
+
|
48474
|
+
this._constituentMap = null;
|
48475
|
+
|
48238
48476
|
let view = this._dv;
|
48239
48477
|
let dt = view ? view.getDataSource() : null;
|
48240
48478
|
if(!dt) {
|
@@ -48544,17 +48782,21 @@ Grid.prototype._onDataComposed = function(e) {
|
|
48544
48782
|
return; // Cannot do data composition if there is no change in data
|
48545
48783
|
}
|
48546
48784
|
|
48547
|
-
|
48548
|
-
if(!rowData) {
|
48785
|
+
if(!e["rowData"]) {
|
48549
48786
|
return; // Row could already be removed or global change event is sent
|
48550
48787
|
}
|
48551
48788
|
|
48552
|
-
let
|
48789
|
+
let rowId = e["rid"];
|
48790
|
+
let rowDef = this._getRowDefinitionById(rowId);
|
48553
48791
|
if(!rowDef) {
|
48554
|
-
|
48555
|
-
|
48556
|
-
|
48557
|
-
|
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
|
+
}
|
48558
48800
|
}
|
48559
48801
|
|
48560
48802
|
if(this._autoDateConversion) { // auto data conversion
|
@@ -48615,8 +48857,8 @@ Grid.prototype._onSubSegmentChanged = function(e) {
|
|
48615
48857
|
rowDef = new RowDefinition({
|
48616
48858
|
"segmentId": segmentId // WARNING: This could cause row id duplication
|
48617
48859
|
});
|
48618
|
-
rowDef.setDataSource(this._dc); // auto generated row does not require a subscription
|
48619
48860
|
rowDef.registerToView(this._dv);
|
48861
|
+
rowDef.setDataSource(this._dc); // auto generated row does not require a subscription
|
48620
48862
|
}
|
48621
48863
|
};
|
48622
48864
|
|
@@ -49128,7 +49370,8 @@ Grid.prototype._onTabNavigation = function(e) {
|
|
49128
49370
|
*/
|
49129
49371
|
Grid.prototype._getEventHandlers = function() {
|
49130
49372
|
return {
|
49131
|
-
"tabNavigation": this._onTabNavigation
|
49373
|
+
"tabNavigation": this._onTabNavigation,
|
49374
|
+
"q2DataChanged": this._onQ2DataChanged
|
49132
49375
|
};
|
49133
49376
|
};
|
49134
49377
|
|