@refinitiv-ui/efx-grid 6.0.54 → 6.0.56
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/core/dist/core.js +11 -8
- package/lib/core/dist/core.min.js +1 -1
- package/lib/core/es6/grid/Core.d.ts +1 -1
- package/lib/core/es6/grid/Core.js +11 -8
- package/lib/grid/index.js +1 -1
- package/lib/grid/themes/halo/dark/efx-grid.js +1 -1
- package/lib/grid/themes/halo/dark/es5/all-elements.js +1 -1
- package/lib/grid/themes/halo/light/efx-grid.js +1 -1
- package/lib/grid/themes/halo/light/es5/all-elements.js +1 -1
- package/lib/grid/themes/solar/charcoal/efx-grid.js +1 -1
- package/lib/grid/themes/solar/charcoal/es5/all-elements.js +1 -1
- package/lib/grid/themes/solar/pearl/efx-grid.js +1 -1
- package/lib/grid/themes/solar/pearl/es5/all-elements.js +1 -1
- package/lib/rt-grid/dist/rt-grid.js +110 -88
- package/lib/rt-grid/dist/rt-grid.min.js +1 -1
- package/lib/rt-grid/es6/Grid.js +21 -30
- package/lib/statistics-row/es6/StatisticsRow.js +1 -1
- package/lib/tr-grid-column-grouping/es6/ColumnGrouping.js +1 -1
- package/lib/tr-grid-in-cell-editing/es6/InCellEditing.js +34 -2
- package/lib/types/es6/Core/grid/Core.d.ts +1 -1
- package/lib/versions.json +3 -3
- package/package.json +1 -1
@@ -16751,7 +16751,7 @@ GroupDefinitions.getLeafDescendants = function (groupMap, groupId) {
|
|
16751
16751
|
groupDef = unvisitedGroups[visitedCount++];
|
16752
16752
|
visitedMap[groupDef.id] = true;
|
16753
16753
|
var chdr = groupDef.children;
|
16754
|
-
var len = chdr.length;
|
16754
|
+
var len = chdr ? chdr.length : 0;
|
16755
16755
|
for(var i = 0; i < len; ++i) {
|
16756
16756
|
var childId = chdr[i];
|
16757
16757
|
groupDef = groupMap[childId];
|
@@ -16771,44 +16771,30 @@ GroupDefinitions.getLeafDescendants = function (groupMap, groupId) {
|
|
16771
16771
|
/** @private
|
16772
16772
|
* @function
|
16773
16773
|
* @param {Object} obj
|
16774
|
-
* @return {Object}
|
16774
|
+
* @return {Object} Return a new object with guaranteed children property
|
16775
16775
|
*/
|
16776
16776
|
GroupDefinitions._cloneObject = function(obj) {
|
16777
16777
|
var newObj = cloneObject(obj);
|
16778
|
-
if(Array.isArray(newObj.children)) {
|
16779
|
-
newObj.children = newObj.children;
|
16778
|
+
if(Array.isArray(newObj.children)) { // This is to prevent modification from the outside source
|
16779
|
+
newObj.children = newObj.children.slice();
|
16780
16780
|
} else {
|
16781
16781
|
newObj.children = [];
|
16782
16782
|
}
|
16783
16783
|
return newObj;
|
16784
16784
|
};
|
16785
|
-
/** @private
|
16786
|
-
* @param {Object} groupMap
|
16787
|
-
* @return {!Object}
|
16788
|
-
*/
|
16789
|
-
GroupDefinitions._cloneGroupMap = function (groupMap) {
|
16790
|
-
var outMap = {};
|
16791
|
-
for(var groupId in groupMap) {
|
16792
|
-
var groupDef = groupMap[groupId];
|
16793
|
-
var obj = GroupDefinitions._cloneObject(groupDef);
|
16794
|
-
obj.children = groupDef.children.slice();
|
16795
|
-
outMap[groupId] = obj;
|
16796
|
-
}
|
16797
|
-
return outMap;
|
16798
|
-
};
|
16799
16785
|
|
16800
16786
|
/** @private
|
16801
16787
|
* @function
|
16802
16788
|
* @param {Array.<string>|Object} obj
|
16803
16789
|
* @param {string=} groupId
|
16804
|
-
* @return {Object}
|
16790
|
+
* @return {Object} Return a new object with guaranteed children property
|
16805
16791
|
*/
|
16806
16792
|
GroupDefinitions._toGroupDefinition = function(obj, groupId) {
|
16807
16793
|
var groupDef = null;
|
16808
16794
|
if(obj) {
|
16809
16795
|
if(Array.isArray(obj)) {
|
16810
16796
|
groupDef = {
|
16811
|
-
children: obj
|
16797
|
+
children: obj.slice()
|
16812
16798
|
};
|
16813
16799
|
} else {
|
16814
16800
|
groupDef = GroupDefinitions._cloneObject(obj);
|
@@ -16888,7 +16874,43 @@ GroupDefinitions.prototype.getGroupMap = function () {
|
|
16888
16874
|
* @return {!Object.<string, Object>}
|
16889
16875
|
*/
|
16890
16876
|
GroupDefinitions.prototype.cloneGroupMap = function () {
|
16891
|
-
|
16877
|
+
var groupMap = this._groupMap;
|
16878
|
+
var outMap = {};
|
16879
|
+
for(var groupId in groupMap) {
|
16880
|
+
var groupDef = groupMap[groupId];
|
16881
|
+
var obj = GroupDefinitions._cloneObject(groupDef);
|
16882
|
+
outMap[groupId] = obj;
|
16883
|
+
}
|
16884
|
+
return outMap;
|
16885
|
+
};
|
16886
|
+
/** In case of a children array has been modified outside of GroupDefinitions, this method is needed to re-create internal maps to reflect existing structure
|
16887
|
+
* @public
|
16888
|
+
*/
|
16889
|
+
GroupDefinitions.prototype.rebuildMap = function () {
|
16890
|
+
var groupMap = this._groupMap;
|
16891
|
+
var childToParent = this._childToParent = {};
|
16892
|
+
|
16893
|
+
// Create child to parent map
|
16894
|
+
var groupIds = Object.keys(groupMap);
|
16895
|
+
var grpCount = groupIds.length;
|
16896
|
+
var i, groupId;
|
16897
|
+
for(i = 0; i < grpCount; ++i) {
|
16898
|
+
groupId = groupIds[i];
|
16899
|
+
var chdr = groupMap[groupId].children;
|
16900
|
+
var childCount = chdr ? chdr.length : 0;
|
16901
|
+
for (var j = 0; j < childCount; j++) {
|
16902
|
+
childToParent[chdr[j]] = groupId;
|
16903
|
+
}
|
16904
|
+
}
|
16905
|
+
|
16906
|
+
// Apply a parent id to group definition to make it easier to find depth
|
16907
|
+
for(i = 0; i < grpCount; ++i) {
|
16908
|
+
groupId = groupIds[i];
|
16909
|
+
var parentId = childToParent[groupId];
|
16910
|
+
if(parentId) {
|
16911
|
+
groupMap[groupId].parentId = parentId;
|
16912
|
+
}
|
16913
|
+
}
|
16892
16914
|
};
|
16893
16915
|
|
16894
16916
|
/** Get immediate child ids of the specified group. The returned array can contain both child ids and group ids
|
@@ -16968,7 +16990,7 @@ GroupDefinitions.prototype.getParentIds = function(childId) {
|
|
16968
16990
|
};
|
16969
16991
|
/** @public
|
16970
16992
|
* @param {string} childId
|
16971
|
-
* @param {number=} groupLevel
|
16993
|
+
* @param {number=} groupLevel Default is to retrieve immediate parent id. Use 0 to get root (topmost) group id
|
16972
16994
|
* @return {string}
|
16973
16995
|
*/
|
16974
16996
|
GroupDefinitions.prototype.getParentId = function (childId, groupLevel) {
|
@@ -16996,47 +17018,25 @@ GroupDefinitions.prototype.removeAllGroups = function () {
|
|
16996
17018
|
}
|
16997
17019
|
return false;
|
16998
17020
|
};
|
16999
|
-
/** Remove all existing group definitions and replace them with the given definitions.
|
17021
|
+
/** Remove all existing group definitions and replace them with the given definitions. Note that this method does not check for circular referencing nor duplication of ids
|
17000
17022
|
* @public
|
17001
17023
|
* @param {Array.<Object>=} groupDefs Use null or empty array to remove all existing groups
|
17002
17024
|
*/
|
17003
17025
|
GroupDefinitions.prototype.setGroups = function (groupDefs) {
|
17004
17026
|
// Clear existing group structure
|
17005
17027
|
var groupMap = this._groupMap = {};
|
17006
|
-
var childToParent = this._childToParent = {};
|
17007
17028
|
|
17008
17029
|
// Create group map
|
17009
|
-
var i;
|
17010
17030
|
var grpCount = groupDefs ? groupDefs.length : 0;
|
17011
|
-
var
|
17012
|
-
for (i = 0; i < grpCount; i++) {
|
17031
|
+
for (var i = 0; i < grpCount; i++) {
|
17013
17032
|
var groupDef = groupDefs[i];
|
17014
|
-
groupId = groupDef.id;
|
17033
|
+
var groupId = groupDef.id;
|
17015
17034
|
if(groupId) {
|
17016
|
-
groupMap[groupId] = groupDef;
|
17017
|
-
}
|
17018
|
-
}
|
17019
|
-
|
17020
|
-
// Create child to parent map
|
17021
|
-
var groupIds = Object.keys(groupMap);
|
17022
|
-
grpCount = groupIds.length;
|
17023
|
-
for(i = 0; i < grpCount; ++i) {
|
17024
|
-
groupId = groupIds[i];
|
17025
|
-
var children = groupMap[groupId].children;
|
17026
|
-
var childCount = children.length;
|
17027
|
-
for (var j = 0; j < childCount; j++) {
|
17028
|
-
childToParent[children[j]] = groupId;
|
17035
|
+
groupMap[groupId] = GroupDefinitions._cloneObject(groupDef);
|
17029
17036
|
}
|
17030
17037
|
}
|
17031
17038
|
|
17032
|
-
|
17033
|
-
for(i = 0; i < grpCount; ++i) {
|
17034
|
-
groupId = groupIds[i];
|
17035
|
-
var parentId = childToParent[groupId];
|
17036
|
-
if(parentId) {
|
17037
|
-
groupMap[groupId].parentId = parentId;
|
17038
|
-
}
|
17039
|
-
}
|
17039
|
+
this.rebuildMap();
|
17040
17040
|
};
|
17041
17041
|
/** Add new group definition to existing group structure. Existing group with the same id will be replaced.
|
17042
17042
|
* @public
|
@@ -17065,11 +17065,11 @@ GroupDefinitions.prototype.removeGroup = function (groupId) {
|
|
17065
17065
|
}
|
17066
17066
|
return false;
|
17067
17067
|
};
|
17068
|
-
/** Replace and update existing group definition.
|
17068
|
+
/** Replace and update existing group definition. A new group will be added, only if the given id has no match. Existing group will be removed of no new definition is given.
|
17069
17069
|
* @public
|
17070
17070
|
* @param {string} groupId
|
17071
|
-
* @param {Array.<string>|Object=} groupDef
|
17072
|
-
* @return {string} Return group Id. Return empty string if nothing has been changed
|
17071
|
+
* @param {(Array.<string>|Object)=} groupDef
|
17072
|
+
* @return {string} Return group Id. Return empty string, if nothing has been changed
|
17073
17073
|
*/
|
17074
17074
|
GroupDefinitions.prototype.setGroup = function (groupId, groupDef) {
|
17075
17075
|
if(!groupId) {
|
@@ -17090,7 +17090,7 @@ GroupDefinitions.prototype.setGroup = function (groupId, groupDef) {
|
|
17090
17090
|
}
|
17091
17091
|
this._groupMap[groupId] = newDef;
|
17092
17092
|
|
17093
|
-
var chdr = newDef.children;
|
17093
|
+
var chdr = newDef.children; // newDef is guaranteed to have children property
|
17094
17094
|
var len = chdr.length;
|
17095
17095
|
for(var i = 0; i < len; ++i) {
|
17096
17096
|
var childId = chdr[i];
|
@@ -17122,7 +17122,8 @@ GroupDefinitions.prototype._ungroupChildren = function(children) {
|
|
17122
17122
|
}
|
17123
17123
|
};
|
17124
17124
|
|
17125
|
-
/**
|
17125
|
+
/** Check if the given child id is an immediate child of the given group
|
17126
|
+
* @public
|
17126
17127
|
* @param {string} parentId Group id
|
17127
17128
|
* @param {string} childId
|
17128
17129
|
* @return {boolean}
|
@@ -17132,7 +17133,30 @@ GroupDefinitions.prototype.hasGroupChild = function (parentId, childId) {
|
|
17132
17133
|
if(childId && groupDef) {
|
17133
17134
|
var chdr = groupDef.children;
|
17134
17135
|
if(chdr) {
|
17135
|
-
return chdr.indexOf(childId) >= 0;
|
17136
|
+
return chdr.indexOf(childId) >= 0; // TODO: Use childToParent map to improve performance
|
17137
|
+
}
|
17138
|
+
}
|
17139
|
+
return false;
|
17140
|
+
};
|
17141
|
+
/** Check if the specified id is contained within the given group regardless of any group level that the id is in
|
17142
|
+
* @public
|
17143
|
+
* @param {string} groupId
|
17144
|
+
* @param {string} childId
|
17145
|
+
* @return {boolean}
|
17146
|
+
*/
|
17147
|
+
GroupDefinitions.prototype.contains = function (groupId, childId) {
|
17148
|
+
if(groupId && childId) {
|
17149
|
+
if(groupId === childId) {
|
17150
|
+
return true;
|
17151
|
+
}
|
17152
|
+
var levelLimit = 20;
|
17153
|
+
var parentId = this._childToParent[childId];
|
17154
|
+
while(parentId && levelLimit) { // WARNING: Circular dependency could happen
|
17155
|
+
if(groupId === parentId) {
|
17156
|
+
return true;
|
17157
|
+
}
|
17158
|
+
--levelLimit;
|
17159
|
+
parentId = this._childToParent[parentId];
|
17136
17160
|
}
|
17137
17161
|
}
|
17138
17162
|
return false;
|
@@ -17199,7 +17223,7 @@ GroupDefinitions.prototype.unsetParent = function (childId) {
|
|
17199
17223
|
var parentDef = this._groupMap[parentId];
|
17200
17224
|
if(parentDef) {
|
17201
17225
|
var chdr = parentDef.children;
|
17202
|
-
if(chdr.length) {
|
17226
|
+
if(chdr && chdr.length) {
|
17203
17227
|
var at = chdr.indexOf(childId);
|
17204
17228
|
if (at >= 0) {
|
17205
17229
|
chdr.splice(at, 1); // splice is slow
|
@@ -17217,7 +17241,7 @@ GroupDefinitions.prototype.removeAllChildren = function(groupId) {
|
|
17217
17241
|
var grpDef = this._groupMap[groupId];
|
17218
17242
|
if(grpDef) {
|
17219
17243
|
var chdr = grpDef.children;
|
17220
|
-
var len = chdr.length;
|
17244
|
+
var len = chdr ? chdr.length : 0;
|
17221
17245
|
if(len) {
|
17222
17246
|
grpDef.children = [];
|
17223
17247
|
for(var i = 0; i < len; ++i) {
|
@@ -36103,7 +36127,7 @@ Core.prototype._batches = null;
|
|
36103
36127
|
* @return {string}
|
36104
36128
|
*/
|
36105
36129
|
Core.getVersion = function () {
|
36106
|
-
return "5.1.
|
36130
|
+
return "5.1.71";
|
36107
36131
|
};
|
36108
36132
|
/** {@link ElementWrapper#dispose}
|
36109
36133
|
* @override
|
@@ -40030,7 +40054,14 @@ Core.prototype.stopBatch = function (batchType) {
|
|
40030
40054
|
if(!batchType){
|
40031
40055
|
return false;
|
40032
40056
|
}
|
40057
|
+
// The "columnVisibilityChanged" event is blocked while the "reset" batch operation is in progress, so this event will not be fired until the batch operation succeeds.
|
40058
|
+
if(batchType === "reset") {
|
40059
|
+
this._disableEvent("columnVisibilityChanged", true);
|
40060
|
+
}
|
40033
40061
|
this._dispatch("afterBatchOperation", { batches: this._batches, batchType: batchType });
|
40062
|
+
if(batchType === "reset") {
|
40063
|
+
this._disableEvent("columnVisibilityChanged", false);
|
40064
|
+
}
|
40034
40065
|
|
40035
40066
|
delete this._batches[batchType];
|
40036
40067
|
if(isEmptyObject(this._batches)){
|
@@ -44329,15 +44360,6 @@ var cloneRowData = function(fromRowDef, toRowDef) {
|
|
44329
44360
|
}
|
44330
44361
|
};
|
44331
44362
|
|
44332
|
-
/** @private
|
44333
|
-
* @param {string} sortField
|
44334
|
-
* @param {Object} elemData
|
44335
|
-
* @param {number} index
|
44336
|
-
*/
|
44337
|
-
var mapRowOrder = function (sortField, elemData, index) { // edit name
|
44338
|
-
elemData[sortField] = index; // Make column for sort with user data array
|
44339
|
-
};
|
44340
|
-
|
44341
44363
|
/** @private
|
44342
44364
|
* @param {RowDefinition} rowDef
|
44343
44365
|
* @return {boolean}
|
@@ -46589,20 +46611,11 @@ Grid.prototype.updateDataSet = function(records, rowIdentifier) {
|
|
46589
46611
|
}
|
46590
46612
|
|
46591
46613
|
// Map new data index
|
46592
|
-
var newDataMap = {};
|
46593
46614
|
var recordCount = records.length;
|
46594
|
-
var record, i;
|
46595
|
-
for (i = 0; i < recordCount; i++) {
|
46596
|
-
record = records[i];
|
46597
|
-
newDataMap[record[rowIdentifier]] = record; // Assign a new data map to compare to the previous data
|
46598
|
-
}
|
46599
|
-
|
46600
46615
|
var fieldSorting = "ROW_ORDER"; // TODO: Should be config by options
|
46601
|
-
records.forEach(mapRowOrder.bind(null, fieldSorting));
|
46602
|
-
|
46603
46616
|
var oldDataMap = {};
|
46604
|
-
var rowDef, id;
|
46605
|
-
var rowDefs = this.
|
46617
|
+
var rowDef, id, record, i;
|
46618
|
+
var rowDefs = this.getAllRowDefinitions(); // Include the filter/hidden rows
|
46606
46619
|
var rowDefCount = rowDefs.length;
|
46607
46620
|
for (i = 0; i < rowDefCount; i++) {
|
46608
46621
|
rowDef = rowDefs[i];
|
@@ -46616,26 +46629,35 @@ Grid.prototype.updateDataSet = function(records, rowIdentifier) {
|
|
46616
46629
|
}
|
46617
46630
|
}
|
46618
46631
|
|
46619
|
-
// Check Remove previous data
|
46620
|
-
for (var rowIdentifierName in oldDataMap) {
|
46621
|
-
if (oldDataMap[rowIdentifierName] && !newDataMap[rowIdentifierName]) {
|
46622
|
-
this.removeRow(oldDataMap[rowIdentifierName]); // Slow
|
46623
|
-
}
|
46624
|
-
}
|
46625
|
-
|
46626
46632
|
// Check Update and Insert
|
46627
|
-
|
46633
|
+
var idMap = {};
|
46634
|
+
var newDataMap = {};
|
46635
|
+
for (i = recordCount - 1; i >= 0; i--) {
|
46628
46636
|
record = records[i];
|
46629
46637
|
id = record[rowIdentifier];
|
46630
46638
|
rowDef = oldDataMap[id];
|
46639
|
+
newDataMap[id] = record; // Assign a new data map to compare to the previous data
|
46640
|
+
record[fieldSorting] = i;
|
46641
|
+
if(idMap[id]) { // Prevent assign data in duplicate row
|
46642
|
+
continue;
|
46643
|
+
}
|
46644
|
+
idMap[id] = true;
|
46631
46645
|
if (!rowDef) {
|
46632
|
-
this.insertRow({ values:
|
46646
|
+
this.insertRow({ values: record}); // Insert last position
|
46633
46647
|
} else {
|
46634
46648
|
rowDef.setRowData(record);
|
46635
46649
|
}
|
46636
46650
|
}
|
46651
|
+
|
46652
|
+
// Check Remove previous data
|
46653
|
+
for (var rowIdentifierName in oldDataMap) {
|
46654
|
+
if (oldDataMap[rowIdentifierName] && !newDataMap[rowIdentifierName]) {
|
46655
|
+
this.removeRow(oldDataMap[rowIdentifierName]); // Slow
|
46656
|
+
}
|
46657
|
+
}
|
46658
|
+
|
46637
46659
|
// Sorting
|
46638
|
-
this._dt.sortOnce(
|
46660
|
+
this._dt.sortOnce(ROW_DEF, "a", compareNumber, fieldSorting);
|
46639
46661
|
};
|
46640
46662
|
/** @private
|
46641
46663
|
* @param {Array|Object} item
|