@refinitiv-ui/efx-grid 6.0.23 → 6.0.25
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/core/dist/core.js +1330 -144
- package/lib/core/dist/core.min.js +1 -1
- package/lib/core/es6/grid/Core.d.ts +11 -0
- package/lib/core/es6/grid/Core.js +81 -10
- package/lib/grid/index.js +1 -1
- package/lib/rt-grid/dist/rt-grid.js +707 -51
- package/lib/rt-grid/dist/rt-grid.min.js +1 -1
- package/lib/rt-grid/es6/ColumnDefinition.js +1 -1
- package/lib/rt-grid/es6/FieldDefinition.d.ts +2 -0
- package/lib/rt-grid/es6/FieldDefinition.js +13 -2
- package/lib/rt-grid/es6/Grid.js +75 -38
- package/lib/tr-grid-column-grouping/es6/ColumnGrouping.d.ts +3 -2
- package/lib/tr-grid-column-grouping/es6/ColumnGrouping.js +314 -566
- package/lib/tr-grid-column-stack/es6/ColumnStack.d.ts +3 -3
- package/lib/tr-grid-column-stack/es6/ColumnStack.js +45 -53
- package/lib/tr-grid-in-cell-editing/es6/InCellEditing.js +21 -9
- package/lib/tr-grid-util/es6/GridPlugin.d.ts +1 -1
- package/lib/tr-grid-util/es6/GridPlugin.js +13 -15
- package/lib/tr-grid-util/es6/GroupDefinitions.d.ts +58 -0
- package/lib/tr-grid-util/es6/GroupDefinitions.js +538 -0
- package/lib/tr-grid-util/es6/Popup.js +1 -1
- package/lib/tr-grid-util/es6/index.d.ts +2 -0
- package/lib/tr-grid-util/es6/index.js +3 -0
- package/lib/types/es6/ColumnGrouping.d.ts +3 -2
- package/lib/types/es6/Core/grid/Core.d.ts +11 -0
- package/lib/types/es6/RealtimeGrid/ColumnDefinition.d.ts +1 -1
- package/lib/types/es6/RealtimeGrid/FieldDefinition.d.ts +9 -1
- package/lib/types/es6/index.d.ts +1 -1
- package/lib/versions.json +4 -4
- package/package.json +1 -1
@@ -42,7 +42,7 @@ import Engine from "../../tr-grid-util/es6/formula/Engine.js";
|
|
42
42
|
* @property {string=} headerAlignment="" Text alignment for column header. This will override `textAlign` option for column header.
|
43
43
|
* @property {string=} titleAlignment="" Alias to `headerAlignment`
|
44
44
|
* @property {boolean=} hidden=false
|
45
|
-
* @property {string=} id
|
45
|
+
* @property {string=} id A unique identifier for the column
|
46
46
|
* @property {boolean=} textSelect=false If enabled, user can select text in this column
|
47
47
|
* @property {boolean=} keepModel If enabled, initial column's options will be kept
|
48
48
|
* @property {boolean=} stationary=false If enabled, the column order cannot be changed (i.e., this column and any column to its left cannot be moved)
|
@@ -214,6 +214,17 @@ FieldDefinition.get = function(field) {
|
|
214
214
|
}
|
215
215
|
return null;
|
216
216
|
};
|
217
|
+
|
218
|
+
/** @public
|
219
|
+
* @function
|
220
|
+
* @param {string} field
|
221
|
+
* @return {boolean}
|
222
|
+
*/
|
223
|
+
FieldDefinition.hasFieldInfo = function(field) {
|
224
|
+
var val = FieldDefinition.get(field);
|
225
|
+
return val && val.field; // Already preventing an error caused by accessing a property on a null value
|
226
|
+
};
|
227
|
+
|
217
228
|
/** @public
|
218
229
|
* @function
|
219
230
|
* @param {string} field
|
@@ -376,8 +387,8 @@ FieldDefinition.loadFieldInfo = function (field) {
|
|
376
387
|
defer.resolve(null);
|
377
388
|
}
|
378
389
|
// already have field definition then return
|
379
|
-
else if (FieldDefinition.
|
380
|
-
defer.resolve(FieldDefinition.
|
390
|
+
else if (FieldDefinition.hasFieldInfo(field)) {
|
391
|
+
defer.resolve(FieldDefinition.get(field));
|
381
392
|
}
|
382
393
|
// in debug using mock data instead
|
383
394
|
else if (synapse.debug) {
|
package/lib/rt-grid/es6/Grid.js
CHANGED
@@ -1264,7 +1264,9 @@ Grid.prototype._onFieldAdded = function(e) {
|
|
1264
1264
|
// JET
|
1265
1265
|
if (this._subs) {
|
1266
1266
|
var realtimeFields = addedFields.filter(FieldDefinition.isRealTimeField);
|
1267
|
-
|
1267
|
+
if(realtimeFields.length > 0) {
|
1268
|
+
this._subs["addFields"](realtimeFields);
|
1269
|
+
}
|
1268
1270
|
}
|
1269
1271
|
|
1270
1272
|
this._dispatch(e.type, e);
|
@@ -1556,19 +1558,31 @@ Grid.prototype._setScrollbarParent = function (host) {
|
|
1556
1558
|
/**
|
1557
1559
|
* @private
|
1558
1560
|
* @param {string} field
|
1559
|
-
* @param {boolean} isRealTime
|
1560
1561
|
* @returns {boolean}
|
1561
1562
|
*/
|
1562
|
-
Grid.prototype._shouldLoadFieldInfo = function (field
|
1563
|
-
|
1564
|
-
|
1565
|
-
|
1566
|
-
|
1567
|
-
(this._RTK || window["JET"]) // have rtk instance or window jet sub
|
1568
|
-
) {
|
1569
|
-
return true;
|
1563
|
+
Grid.prototype._shouldLoadFieldInfo = function (field) {
|
1564
|
+
|
1565
|
+
var val = this._RTK || window["JET"]; // Fastest checking can be performed by checking the first condition.
|
1566
|
+
if(!val) {
|
1567
|
+
return false;
|
1570
1568
|
}
|
1571
|
-
|
1569
|
+
|
1570
|
+
// WARNING: If field caching is disabled, it shouldn't load field info
|
1571
|
+
if(!this._fieldCaching) {
|
1572
|
+
return false;
|
1573
|
+
}
|
1574
|
+
|
1575
|
+
val = FieldDefinition.hasFieldInfo(field);
|
1576
|
+
if(val) {
|
1577
|
+
return false;
|
1578
|
+
}
|
1579
|
+
|
1580
|
+
val = FieldDefinition.isAdc(field) || FieldDefinition.isRealTimeField(field);
|
1581
|
+
if(!val) {
|
1582
|
+
return false;
|
1583
|
+
}
|
1584
|
+
|
1585
|
+
return true;
|
1572
1586
|
};
|
1573
1587
|
/** Remove all existing columns and add new columns based on the given objects
|
1574
1588
|
* @public
|
@@ -1670,11 +1684,10 @@ Grid.prototype._onColumnAdded = function(e) {
|
|
1670
1684
|
var fields = colDef.getAllFields();
|
1671
1685
|
var referrer = colDef.getId();
|
1672
1686
|
var len = fields.length;
|
1673
|
-
var field, dataType, prom,
|
1687
|
+
var field, dataType, prom, onLoaded;
|
1674
1688
|
for(i = 0; i < len; i++) {
|
1675
1689
|
field = fields[i];
|
1676
|
-
|
1677
|
-
if(this._shouldLoadFieldInfo(field, isRealTimeField)) {
|
1690
|
+
if(this._shouldLoadFieldInfo(field)) {
|
1678
1691
|
if(field === colField) {
|
1679
1692
|
dataType = colDef.getDataType(); // Data-type from user's column options
|
1680
1693
|
} else { // Other required fields
|
@@ -1843,6 +1856,15 @@ Grid.prototype.moveColumnById = function (srcCol, destCol) {
|
|
1843
1856
|
if(destIndex < 0) {
|
1844
1857
|
destIndex = colCount;
|
1845
1858
|
}
|
1859
|
+
return this._moveColumnByIndex(srcIndex, destIndex);
|
1860
|
+
};
|
1861
|
+
/** Move column without verification for better performance
|
1862
|
+
* @private
|
1863
|
+
* @param {number} srcIndex Column index
|
1864
|
+
* @param {number} destIndex Column index of the destination
|
1865
|
+
* @return {boolean} Return true if there is any change, and false otherwise
|
1866
|
+
*/
|
1867
|
+
Grid.prototype._moveColumnByIndex = function (srcIndex, destIndex) {
|
1846
1868
|
if(srcIndex < destIndex) { // Ensure that the source column is put in front of the destination index
|
1847
1869
|
--destIndex;
|
1848
1870
|
}
|
@@ -1864,23 +1886,31 @@ Grid.prototype.reorderColumns = function (colRefs, destCol) {
|
|
1864
1886
|
var srcLen = colRefs.length;
|
1865
1887
|
if(srcLen > 1) {
|
1866
1888
|
var colIds = this.getColumnIds();
|
1889
|
+
var colCount = colIds.length;
|
1867
1890
|
var srcIds = [];
|
1868
1891
|
var invalidDest = false;
|
1869
|
-
var i;
|
1892
|
+
var i, srcId, srcIdx;
|
1870
1893
|
for(i = 0; i < srcLen; ++i) {
|
1871
1894
|
var colRef = colRefs[i];
|
1872
|
-
|
1873
|
-
|
1895
|
+
if(typeof colRef === "number") {
|
1896
|
+
srcIdx = colRef;
|
1897
|
+
srcId = colIds[colRef] || "";
|
1898
|
+
} else {
|
1899
|
+
srcId = colRef;
|
1900
|
+
srcIdx = colIds.indexOf(srcId);
|
1901
|
+
}
|
1902
|
+
if(srcId && srcIdx >= 0) {
|
1874
1903
|
srcIds.push(srcId);
|
1875
1904
|
if(destId === srcId) {
|
1876
1905
|
invalidDest = true; // Destination must not exist in source columns
|
1877
1906
|
}
|
1878
1907
|
}
|
1879
1908
|
}
|
1909
|
+
|
1910
|
+
var destIdx;
|
1880
1911
|
srcLen = srcIds.length;
|
1881
1912
|
if(invalidDest) { // Find the next valid destination where it is not contained in the source columns
|
1882
|
-
|
1883
|
-
var destIdx = this.getColumnIndex(destId);
|
1913
|
+
destIdx = this.getColumnIndex(destId);
|
1884
1914
|
if(destIdx >= 0) {
|
1885
1915
|
while(++destIdx < colCount) {
|
1886
1916
|
destId = colIds[destIdx];
|
@@ -1895,10 +1925,16 @@ Grid.prototype.reorderColumns = function (colRefs, destCol) {
|
|
1895
1925
|
}
|
1896
1926
|
|
1897
1927
|
var dirty = 0;
|
1898
|
-
for(i =
|
1899
|
-
|
1928
|
+
for(i = srcLen; --i >= 0;) {
|
1929
|
+
srcId = srcIds[i]; // Only valid source columns are left at this point
|
1930
|
+
srcIdx = this.getColumnIndex(srcId);
|
1931
|
+
destIdx = this.getColumnIndex(destId);
|
1932
|
+
if(destIdx < 0) { // Insert to the back when id is not found
|
1933
|
+
destIdx = colCount;
|
1934
|
+
}
|
1935
|
+
dirty |= this._moveColumnByIndex(srcIdx, destIdx);
|
1936
|
+
destId = srcId;
|
1900
1937
|
}
|
1901
|
-
// TODO: Handle the case where all columns stay in the same place
|
1902
1938
|
return dirty ? true : false;
|
1903
1939
|
} else {
|
1904
1940
|
return this.moveColumnById(colRefs[0], destId);
|
@@ -1975,11 +2011,10 @@ Grid.prototype.addDataFields = function(fieldRef, referrer) {
|
|
1975
2011
|
|
1976
2012
|
var fields = Array.isArray(fieldRef) ? fieldRef : [fieldRef];
|
1977
2013
|
var len = fields.length;
|
1978
|
-
var i, field, dataType, prom,
|
2014
|
+
var i, field, dataType, prom, onLoaded;
|
1979
2015
|
for(i = 0; i < len; i++) {
|
1980
2016
|
field = fields[i];
|
1981
|
-
|
1982
|
-
if(this._shouldLoadFieldInfo(field, isRealTimeField)) {
|
2017
|
+
if(this._shouldLoadFieldInfo(field)) {
|
1983
2018
|
dataType = ColumnDefinition.getDataType(field);
|
1984
2019
|
prom = FieldDefinition.loadFieldInfo(field)
|
1985
2020
|
.catch(this._onFieldLoadedError);
|
@@ -2943,20 +2978,22 @@ Grid.prototype.getColumnIndex = function(colRef) {
|
|
2943
2978
|
return colRef;
|
2944
2979
|
}
|
2945
2980
|
|
2946
|
-
|
2947
|
-
|
2948
|
-
|
2949
|
-
|
2950
|
-
|
2951
|
-
|
2952
|
-
|
2981
|
+
if(colRef) {
|
2982
|
+
var colCount = this.getColumnCount();
|
2983
|
+
var i, colDef;
|
2984
|
+
if(colRef instanceof ColumnDefinition) {
|
2985
|
+
for(i = 0; i < colCount; ++i) {
|
2986
|
+
colDef = this.getColumnDefinition(i);
|
2987
|
+
if(colDef === colRef) {
|
2988
|
+
return i;
|
2989
|
+
}
|
2953
2990
|
}
|
2954
|
-
}
|
2955
|
-
|
2956
|
-
|
2957
|
-
|
2958
|
-
|
2959
|
-
|
2991
|
+
} else if(typeof colRef === "string") {
|
2992
|
+
for(i = 0; i < colCount; ++i) {
|
2993
|
+
colDef = this.getColumnDefinition(i);
|
2994
|
+
if(_hasFieldOrId(colDef, colRef)) {
|
2995
|
+
return i; // Return the first found field
|
2996
|
+
}
|
2960
2997
|
}
|
2961
2998
|
}
|
2962
2999
|
}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { Ext } from "../../tr-grid-util/es6/Ext.js";
|
2
2
|
import { cloneObject } from "../../tr-grid-util/es6/Util.js";
|
3
3
|
import { GridPlugin } from "../../tr-grid-util/es6/GridPlugin.js";
|
4
|
+
import { GroupDefinitions } from "../../tr-grid-util/es6/GroupDefinitions.js";
|
4
5
|
import { injectCss, prettifyCss } from "../../tr-grid-util/es6/Util.js";
|
5
6
|
|
6
7
|
declare namespace ColumnGroupingPlugin {
|
@@ -42,7 +43,7 @@ declare class ColumnGroupingPlugin extends GridPlugin {
|
|
42
43
|
|
43
44
|
public addColumnGrouping(groupDef: ColumnGroupingPlugin.GroupDefinition|null): void;
|
44
45
|
|
45
|
-
public removeGroup(groupId: string):
|
46
|
+
public removeGroup(groupId: string): boolean;
|
46
47
|
|
47
48
|
public getGroupDefinition(groupId: string): ColumnGroupingPlugin.GroupDefinition|null;
|
48
49
|
|
@@ -52,7 +53,7 @@ declare class ColumnGroupingPlugin extends GridPlugin {
|
|
52
53
|
|
53
54
|
public setGroupDefinitions(groupDefs: ColumnGroupingPlugin.GroupDefinitions|null): void;
|
54
55
|
|
55
|
-
public setGroupChildren(groupId: string, newChildList: (string)[]|null):
|
56
|
+
public setGroupChildren(groupId: string, newChildList: (string)[]|null): boolean;
|
56
57
|
|
57
58
|
public getGroupChildren(groupId: string): (string)[]|null;
|
58
59
|
|