@refinitiv-ui/efx-grid 6.0.33 → 6.0.34
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/core/dist/core.js +112 -36
- package/lib/core/dist/core.min.js +1 -1
- package/lib/core/es6/data/DataTable.d.ts +1 -1
- package/lib/core/es6/data/DataTable.js +9 -8
- package/lib/core/es6/data/DataView.js +1 -1
- package/lib/core/es6/data/Segment.d.ts +2 -0
- package/lib/core/es6/data/Segment.js +16 -0
- package/lib/core/es6/data/SegmentCollection.d.ts +1 -3
- package/lib/core/es6/data/SegmentCollection.js +25 -18
- package/lib/core/es6/grid/Core.js +1 -1
- package/lib/core/es6/grid/plugins/SortableTitlePlugin.js +7 -7
- 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/efx-grid.less +2 -0
- 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/rt-grid/dist/rt-grid.js +425 -153
- package/lib/rt-grid/dist/rt-grid.min.js +1 -1
- package/lib/rt-grid/es6/ColumnDefinition.js +13 -8
- package/lib/rt-grid/es6/DataConnector.js +3 -2
- package/lib/rt-grid/es6/Grid.d.ts +3 -1
- package/lib/rt-grid/es6/Grid.js +116 -15
- package/lib/rt-grid/es6/RowDefinition.d.ts +7 -2
- package/lib/rt-grid/es6/RowDefinition.js +48 -10
- package/lib/rt-grid/es6/SnapshotFiller.d.ts +1 -0
- package/lib/rt-grid/es6/SnapshotFiller.js +1 -11
- package/lib/tr-grid-column-stack/es6/ColumnStack.js +21 -10
- package/lib/tr-grid-conditional-coloring/es6/ConditionalColoring.d.ts +12 -5
- package/lib/tr-grid-conditional-coloring/es6/ConditionalColoring.js +128 -42
- package/lib/tr-grid-heat-map/es6/HeatMap.d.ts +3 -3
- package/lib/tr-grid-heat-map/es6/HeatMap.js +13 -2
- package/lib/tr-grid-row-dragging/es6/RowDragging.d.ts +2 -1
- package/lib/tr-grid-row-dragging/es6/RowDragging.js +142 -17
- package/lib/tr-grid-textformatting/es6/TextFormatting.d.ts +20 -20
- package/lib/tr-grid-textformatting/es6/TextFormatting.js +37 -138
- package/lib/tr-grid-util/es6/CellPainter.d.ts +1 -1
- package/lib/tr-grid-util/es6/CellPainter.js +56 -55
- package/lib/tr-grid-util/es6/FieldFormatter.js +6 -2
- package/lib/tr-grid-util/es6/NumberFormatter.js +23 -11
- package/lib/tr-grid-util/es6/Util.d.ts +3 -0
- package/lib/tr-grid-util/es6/Util.js +53 -0
- package/lib/types/es6/ConditionalColoring.d.ts +12 -5
- package/lib/types/es6/Core/data/Segment.d.ts +2 -0
- package/lib/types/es6/Core/data/SegmentCollection.d.ts +1 -3
- package/lib/types/es6/Core/grid/Core.d.ts +4 -0
- package/lib/types/es6/Core/grid/plugins/SortableTitlePlugin.d.ts +1 -0
- package/lib/types/es6/HeatMap.d.ts +3 -3
- package/lib/types/es6/RealtimeGrid/Grid.d.ts +3 -1
- package/lib/types/es6/RealtimeGrid/RowDefinition.d.ts +7 -2
- package/lib/types/es6/RealtimeGrid/SnapshotFiller.d.ts +1 -0
- package/lib/types/es6/RowDragging.d.ts +2 -1
- package/lib/types/es6/TextFormatting.d.ts +20 -20
- package/lib/versions.json +6 -6
- package/package.json +1 -1
@@ -579,7 +579,7 @@ ColumnDefinition.prototype.getAllFields = function() {
|
|
579
579
|
* @return {boolean}
|
580
580
|
*/
|
581
581
|
ColumnDefinition.prototype.isRealTimeField = function() {
|
582
|
-
return FieldDefinition.isRealTimeField(this.getField());
|
582
|
+
return FieldDefinition.isRealTimeField(this.getField() || this._field);
|
583
583
|
};
|
584
584
|
/** @public
|
585
585
|
* @return {boolean}
|
@@ -770,8 +770,9 @@ ColumnDefinition.prototype.getConfigObject = function(colOptions) {
|
|
770
770
|
obj["sort"] = this._initialOrder;
|
771
771
|
}
|
772
772
|
|
773
|
-
|
774
|
-
|
773
|
+
var classes = this._classes;
|
774
|
+
if(classes && classes.length > 0) {
|
775
|
+
obj["className"] = classes.join(" ");
|
775
776
|
}
|
776
777
|
|
777
778
|
if(this._textSelect) {
|
@@ -789,14 +790,18 @@ ColumnDefinition.prototype.getConfigObject = function(colOptions) {
|
|
789
790
|
var core = this._eventArg["core"];
|
790
791
|
var grid = this._eventArg["grid"];
|
791
792
|
var colIndex = grid.getColumnIndex(this);
|
792
|
-
value = core.getColumnScalability(colIndex);
|
793
|
-
obj["scalable"] = value;
|
794
793
|
|
795
|
-
|
796
|
-
|
794
|
+
// The scalable, width and minWidth cannot be shifted into core as getConfigObject is accessible from colDef.
|
795
|
+
var scalable = core.getColumnScalability(colIndex);
|
796
|
+
var width = core.getColumnCustomLaneSize(colIndex);
|
797
|
+
|
798
|
+
if (scalable !== true || width !== 1) {
|
799
|
+
obj["scalable"] = scalable;
|
800
|
+
obj["width"] = width;
|
801
|
+
}
|
797
802
|
|
798
803
|
value = core.getMinimumColumnWidth(colIndex);
|
799
|
-
if(value !==
|
804
|
+
if(value !== 0) {
|
800
805
|
obj["minWidth"] = value;
|
801
806
|
}
|
802
807
|
|
@@ -85,7 +85,7 @@ DataConnector.prototype.getRowDefByRic = function (ric) {
|
|
85
85
|
* @return {boolean} True if new reference is added.
|
86
86
|
*/
|
87
87
|
DataConnector.prototype.addRic = function (rowDef) {
|
88
|
-
var ric = rowDef ? rowDef.
|
88
|
+
var ric = rowDef ? rowDef.getSymbol() : "";
|
89
89
|
if(!ric) {
|
90
90
|
return false;
|
91
91
|
}
|
@@ -113,7 +113,8 @@ DataConnector.prototype.addRic = function (rowDef) {
|
|
113
113
|
*/
|
114
114
|
DataConnector.prototype.removeRic = function (rowDef, ric) {
|
115
115
|
if(!ric) {
|
116
|
-
|
116
|
+
// TODO: RIC or permId maybe change during run-time, need to check before remove RIC/permId
|
117
|
+
ric = rowDef ? rowDef.getSymbol() : "";
|
117
118
|
}
|
118
119
|
if(!ric) {
|
119
120
|
return;
|
@@ -3,7 +3,7 @@ import { Conflator } from "../../tr-grid-util/es6/Conflator.js";
|
|
3
3
|
import { Ext } from "../../tr-grid-util/es6/Ext.js";
|
4
4
|
import { EventDispatcher } from "../../tr-grid-util/es6/EventDispatcher.js";
|
5
5
|
import { Engine } from "../../tr-grid-util/es6/formula/Engine.js";
|
6
|
-
import { cloneObject, extendObject, arrayToObject } from "../../tr-grid-util/es6/Util.js";
|
6
|
+
import { cloneObject, extendObject, arrayToObject, isEmptyObject, deepEqual } from "../../tr-grid-util/es6/Util.js";
|
7
7
|
import { DateTime } from "../../tr-grid-util/es6/DateTime.js";
|
8
8
|
|
9
9
|
import { RowDefinition, ROW_DEF } from "./RowDefinition.js";
|
@@ -134,6 +134,8 @@ declare class Grid extends EventDispatcher {
|
|
134
134
|
|
135
135
|
public setColumns(columns: (any)[]|null): void;
|
136
136
|
|
137
|
+
public restoreColumns(columns: (any)[]|null): void;
|
138
|
+
|
137
139
|
public setFields(ary: (string)[]|null): void;
|
138
140
|
|
139
141
|
public removeColumn(colRef: Grid.ColumnReference|null): void;
|
package/lib/rt-grid/es6/Grid.js
CHANGED
@@ -4,7 +4,7 @@ import { Conflator } from "../../tr-grid-util/es6/Conflator.js";
|
|
4
4
|
import { Ext } from "../../tr-grid-util/es6/Ext.js";
|
5
5
|
import { EventDispatcher } from "../../tr-grid-util/es6/EventDispatcher.js";
|
6
6
|
import { Engine } from "../../tr-grid-util/es6/formula/Engine.js";
|
7
|
-
import { cloneObject, extendObject, arrayToObject } from "../../tr-grid-util/es6/Util.js";
|
7
|
+
import { cloneObject, extendObject, arrayToObject, isEmptyObject, deepEqual } from "../../tr-grid-util/es6/Util.js";
|
8
8
|
import { DateTime } from "../../tr-grid-util/es6/DateTime.js";
|
9
9
|
|
10
10
|
import { RowDefinition, ROW_DEF } from "./RowDefinition.js";
|
@@ -1062,6 +1062,28 @@ Grid.prototype.getConfigObject = function (gridOptions) {
|
|
1062
1062
|
grid.getConfigObject(obj);
|
1063
1063
|
}
|
1064
1064
|
|
1065
|
+
// Difference from composite grid in default config
|
1066
|
+
if(obj["columnVirtualization"] === false) {
|
1067
|
+
delete obj["columnVirtualization"];
|
1068
|
+
}
|
1069
|
+
|
1070
|
+
if(obj["rowVirtualization"] === true) {
|
1071
|
+
delete obj["rowVirtualization"];
|
1072
|
+
}
|
1073
|
+
|
1074
|
+
if(obj["rowHighlighting"] === true) {
|
1075
|
+
delete obj["rowHighlighting"];
|
1076
|
+
}
|
1077
|
+
|
1078
|
+
if(obj["contentVerticalLines"] === false) { // the default value change in wrapper (atlas-blotter)
|
1079
|
+
delete obj["contentVerticalLines"];
|
1080
|
+
}
|
1081
|
+
|
1082
|
+
if(obj["borders"] === false) { // the default value change in wrapper (atlas-blotter)
|
1083
|
+
delete obj["borders"];
|
1084
|
+
}
|
1085
|
+
|
1086
|
+
|
1065
1087
|
var i, len;
|
1066
1088
|
len = this.getColumnCount();
|
1067
1089
|
for (i = 0; i < len; ++i) {
|
@@ -1086,12 +1108,12 @@ Grid.prototype.getConfigObject = function (gridOptions) {
|
|
1086
1108
|
}
|
1087
1109
|
|
1088
1110
|
val = grid.getDefaultRowHeight();
|
1089
|
-
if(val !==
|
1111
|
+
if(val !== 28) { // the default value change in wrapper (atlas-blotter)
|
1090
1112
|
obj["rowHeight"] = val;
|
1091
1113
|
}
|
1092
1114
|
|
1093
1115
|
val = grid.getSection("title").getDefaultRowHeight();
|
1094
|
-
if(val !==
|
1116
|
+
if(val !== 28) { // the default value change in wrapper (atlas-blotter)
|
1095
1117
|
obj["headerRowHeight"] = val;
|
1096
1118
|
}
|
1097
1119
|
|
@@ -1099,7 +1121,8 @@ Grid.prototype.getConfigObject = function (gridOptions) {
|
|
1099
1121
|
obj["autoLayoutUpdate"] = true;
|
1100
1122
|
}
|
1101
1123
|
|
1102
|
-
|
1124
|
+
val = isEmptyObject(this._defaultColumnOptions);
|
1125
|
+
if (!val) { // Currently, this variable is the object, we need to check empty array for default value
|
1103
1126
|
obj["defaultColumnOptions"] = this._defaultColumnOptions;
|
1104
1127
|
}
|
1105
1128
|
|
@@ -1158,10 +1181,13 @@ Grid.prototype.getConfigObject = function (gridOptions) {
|
|
1158
1181
|
}
|
1159
1182
|
|
1160
1183
|
// TODO: The following states need to be retrieved
|
1161
|
-
// rowHighlighting
|
1162
|
-
// columnVirtualization
|
1163
1184
|
// topFreezingCount, bottomFreezingCount
|
1164
1185
|
// scrollbarParent
|
1186
|
+
// linearWheelScrolling
|
1187
|
+
// stepScroll
|
1188
|
+
// noColumnDragging
|
1189
|
+
// columnReorder
|
1190
|
+
// topSection
|
1165
1191
|
|
1166
1192
|
// NOTE: no need to export synapseApiKey, ADC and RTK
|
1167
1193
|
|
@@ -1237,7 +1263,7 @@ Grid.prototype._onRicAdded = function(e) {
|
|
1237
1263
|
var jLen = rowDefs ? rowDefs.length : 0;
|
1238
1264
|
for (var j = 0; j < jLen; ++j) {
|
1239
1265
|
var rowDef = rowDefs[j];
|
1240
|
-
if (rowDef.
|
1266
|
+
if (rowDef.getSymbol() === ric) {
|
1241
1267
|
this._snapshot.addRic(ric); // ADC
|
1242
1268
|
}
|
1243
1269
|
}
|
@@ -1262,7 +1288,7 @@ Grid.prototype._onFieldAdded = function(e) {
|
|
1262
1288
|
|
1263
1289
|
// ADC
|
1264
1290
|
for (var i in rowDefs) {
|
1265
|
-
this._snapshot.addRic(rowDefs[i].
|
1291
|
+
this._snapshot.addRic(rowDefs[i].getSymbol());
|
1266
1292
|
}
|
1267
1293
|
this._snapshot.addFields(addedFields);
|
1268
1294
|
|
@@ -1456,7 +1482,7 @@ Grid.prototype.replaceColumn = function (columnOption, colRef) {
|
|
1456
1482
|
colConfig["width"] = value;
|
1457
1483
|
|
1458
1484
|
value = core.getMinimumColumnWidth(colIndex);
|
1459
|
-
if(value
|
1485
|
+
if(value > 0) {
|
1460
1486
|
colConfig["minWidth"] = value;
|
1461
1487
|
}
|
1462
1488
|
|
@@ -1610,6 +1636,79 @@ Grid.prototype.setColumns = function(columns) {
|
|
1610
1636
|
}
|
1611
1637
|
}
|
1612
1638
|
};
|
1639
|
+
|
1640
|
+
|
1641
|
+
/** Remove, add and keep column based on the given column data
|
1642
|
+
* @public
|
1643
|
+
* @param {Array.<Object>} columns Array of column options
|
1644
|
+
*/
|
1645
|
+
Grid.prototype.restoreColumns = function(columns) {
|
1646
|
+
var configObj = this.getConfigObject();
|
1647
|
+
var previousColumns = configObj.columns;
|
1648
|
+
|
1649
|
+
var preColLen = previousColumns.length;
|
1650
|
+
var newColLen = columns.length;
|
1651
|
+
|
1652
|
+
var removingFields = [];
|
1653
|
+
var keepingColumns = [];
|
1654
|
+
var columnOrdering = [];
|
1655
|
+
|
1656
|
+
var i, j, found;
|
1657
|
+
// Slow, time complexity BigO(n ^ 2)
|
1658
|
+
for (i = 0; i < preColLen; i++) {
|
1659
|
+
found = false;
|
1660
|
+
for (j = 0; j < newColLen; j++) {
|
1661
|
+
if (deepEqual(previousColumns[i], columns[j])) {
|
1662
|
+
keepingColumns.push(previousColumns[i]);
|
1663
|
+
found = true;
|
1664
|
+
break;
|
1665
|
+
}
|
1666
|
+
}
|
1667
|
+
if (!found) {
|
1668
|
+
removingFields.push(previousColumns[i].field);
|
1669
|
+
}
|
1670
|
+
}
|
1671
|
+
|
1672
|
+
var sortingStates;
|
1673
|
+
var removeLen = removingFields.length;
|
1674
|
+
if(removeLen > 0 && this._stp) {
|
1675
|
+
sortingStates = this._stp.getSortingStates().slice(); // We need to clone array for avoid object reference in remove column
|
1676
|
+
}
|
1677
|
+
|
1678
|
+
this.removeColumns(removingFields);
|
1679
|
+
|
1680
|
+
var keepingLen = keepingColumns.length;
|
1681
|
+
var prevState = false;
|
1682
|
+
if(newColLen > 1) {
|
1683
|
+
prevState = this._grid.freezeLayout(true); // Insert multiple columns can be a huge time consuming
|
1684
|
+
}
|
1685
|
+
for (i = 0; i < newColLen; i++) {
|
1686
|
+
found = false;
|
1687
|
+
for (j = 0; j < keepingLen; j++) { // loop only keeping column
|
1688
|
+
if (deepEqual(columns[i], keepingColumns[j])) {
|
1689
|
+
found = true;
|
1690
|
+
var colIndex = this.getColumnIndex(columns[i].field); // We cannot use 'i' (colIndex) in this case, as it will sort the columns. Instead, we need to obtain a new column index from the field.
|
1691
|
+
columnOrdering.push(this.getColumnId(colIndex));
|
1692
|
+
break;
|
1693
|
+
}
|
1694
|
+
}
|
1695
|
+
if (!found) {
|
1696
|
+
this.insertColumn(columns[i], i);
|
1697
|
+
columnOrdering.push(this.getColumnId(i)); // Use new insertion column index
|
1698
|
+
}
|
1699
|
+
}
|
1700
|
+
|
1701
|
+
if(newColLen > 1) {
|
1702
|
+
this._grid.freezeLayout(prevState);
|
1703
|
+
}
|
1704
|
+
|
1705
|
+
if(removeLen > 0 && this._stp) {
|
1706
|
+
this._stp.sortColumns(sortingStates);
|
1707
|
+
}
|
1708
|
+
|
1709
|
+
this._grid.reorderColumns(columnOrdering);
|
1710
|
+
};
|
1711
|
+
|
1613
1712
|
/** Remove all existing columns and add new columns based on the given texts/fields
|
1614
1713
|
* @public
|
1615
1714
|
* @function
|
@@ -1754,10 +1853,11 @@ Grid.prototype.removeColumn = function(colRef) {
|
|
1754
1853
|
this._dc.removeStaticFields([colDef.getField()]);
|
1755
1854
|
}
|
1756
1855
|
}
|
1757
|
-
colDef.dispose();
|
1758
|
-
this._grid.removeColumnAt(colIndex);
|
1759
1856
|
|
1857
|
+
this._grid.removeColumnAt(colIndex);
|
1760
1858
|
this._connector.removeFields(colDef);
|
1859
|
+
|
1860
|
+
colDef.dispose(); // Dispose at the last line to avoid making properties inaccessible
|
1761
1861
|
// TODO: Remove fields that are related to the column (e.g. fields for coloring)
|
1762
1862
|
};
|
1763
1863
|
/** Remove multiple columns through array. To remove all columns, use removeAllColumns() instead of this method
|
@@ -2103,7 +2203,7 @@ Grid.prototype.setColumnSorter = function(colRef, func) {
|
|
2103
2203
|
* @param {RowDefinition} rowDef
|
2104
2204
|
*/
|
2105
2205
|
Grid.prototype._initDuplicateRicData = function(rowDef) {
|
2106
|
-
var ric = rowDef.
|
2206
|
+
var ric = rowDef.getSymbol();
|
2107
2207
|
var rowDefs = this._connector.getRowDefByRic(ric);
|
2108
2208
|
if(rowDefs && rowDefs.length) {
|
2109
2209
|
cloneRowData(rowDefs[0], rowDef);
|
@@ -2520,8 +2620,9 @@ Grid.prototype.setRic = function(rowRef, str, options) {
|
|
2520
2620
|
this.insertRow(options, rowIndex);
|
2521
2621
|
}
|
2522
2622
|
} else {
|
2523
|
-
var oldRic = rowDef.
|
2524
|
-
|
2623
|
+
var oldRic = rowDef.getSymbol();
|
2624
|
+
var permId = options["permId"] || "";
|
2625
|
+
if(rowDef.setContent(str, permId)) { // The given string may not be a RIC
|
2525
2626
|
this._connector.removeRic(rowDef, oldRic);
|
2526
2627
|
this._initDuplicateRicData(rowDef);
|
2527
2628
|
this._connector.addRic(rowDef);
|
@@ -2842,7 +2943,7 @@ Grid.prototype.setRicData = function(ric, values) {
|
|
2842
2943
|
var rowCount = rowDefs ? rowDefs.length : 0;
|
2843
2944
|
for (var i = 0; i < rowCount; ++i) {
|
2844
2945
|
var rowDef = rowDefs[i];
|
2845
|
-
if (rowDef && rowDef.
|
2946
|
+
if (rowDef && rowDef.getSymbol() === ric) {
|
2846
2947
|
rowDef.setRowData(values); // TODO: Need conflator to improve performance
|
2847
2948
|
}
|
2848
2949
|
}
|
@@ -6,6 +6,7 @@ declare namespace RowDefinition {
|
|
6
6
|
|
7
7
|
type Options = {
|
8
8
|
ric?: string|null,
|
9
|
+
permId?: string|null,
|
9
10
|
values?: (any[]|any)|null,
|
10
11
|
fields?: (string)[]|null,
|
11
12
|
asChain?: boolean|null,
|
@@ -36,7 +37,7 @@ declare class RowDefinition {
|
|
36
37
|
|
37
38
|
public initialize(rowOptions?: RowDefinition.Options|null): void;
|
38
39
|
|
39
|
-
public setContent(userInput: string): boolean;
|
40
|
+
public setContent(userInput: string, permId?: string|null): boolean;
|
40
41
|
|
41
42
|
public getRowId(): string;
|
42
43
|
|
@@ -70,6 +71,10 @@ declare class RowDefinition {
|
|
70
71
|
|
71
72
|
public getRic(): string;
|
72
73
|
|
74
|
+
public getPermId(): string;
|
75
|
+
|
76
|
+
public getSymbol(): string;
|
77
|
+
|
73
78
|
public getDisplayText(): string;
|
74
79
|
|
75
80
|
public getLabel(): string|null|null;
|
@@ -138,7 +143,7 @@ declare const ROW_DEF: string;
|
|
138
143
|
|
139
144
|
declare const ROW_TYPES: RowDefinition.RowTypes;
|
140
145
|
|
141
|
-
declare function rowData(userInput: string): boolean;
|
146
|
+
declare function rowData(userInput: string, permId?: string|null): boolean;
|
142
147
|
|
143
148
|
export {RowDefinition, ROW_DEF, ROW_TYPES};
|
144
149
|
export default RowDefinition;
|
@@ -7,6 +7,7 @@ import { DataTable } from "../../core/es6/data/DataTable.js";
|
|
7
7
|
/** @typedef {Object} RowDefinition~Options
|
8
8
|
* @description RowDefinition options
|
9
9
|
* @property {string=} ric="" RIC for real-time fields. Prefixing 0# to the ric is equivalent to specifying asChain property.
|
10
|
+
* @property {string=} permId="" Organization PermId to be used instead of ric for private company.
|
10
11
|
* @property {(Array|Object)=} values=null Values for static data
|
11
12
|
* @property {Array.<string>=} fields=null Field that corresponds to the given static values
|
12
13
|
* @property {boolean=} asChain=false The given ric will be treated as a chain
|
@@ -88,6 +89,10 @@ RowDefinition.prototype._ric = ""; // Contains no 0#
|
|
88
89
|
/** @type {string}
|
89
90
|
* @private
|
90
91
|
*/
|
92
|
+
RowDefinition.prototype._permId = "";
|
93
|
+
/** @type {string}
|
94
|
+
* @private
|
95
|
+
*/
|
91
96
|
RowDefinition.prototype._displayText = "";
|
92
97
|
/** @type {string|null}
|
93
98
|
* @private
|
@@ -213,13 +218,20 @@ RowDefinition.prototype.initialize = function(rowOptions) {
|
|
213
218
|
|
214
219
|
var val = rowOptions["ric"];
|
215
220
|
if(val != null) {
|
216
|
-
this.
|
221
|
+
this._ric = val;
|
222
|
+
}
|
223
|
+
val = rowOptions["permId"];
|
224
|
+
if(val != null) {
|
225
|
+
this._permId = val;
|
226
|
+
}
|
227
|
+
if(this._ric || this._permId){
|
228
|
+
this.setContent(this._ric, this._permId); // this._dataId is modified
|
217
229
|
}
|
230
|
+
|
218
231
|
val = rowOptions["chainRic"];
|
219
232
|
if(val != null) {
|
220
233
|
this._chainRic = val;
|
221
234
|
}
|
222
|
-
|
223
235
|
val = rowOptions["values"];
|
224
236
|
// eslint-disable-next-line no-undefined
|
225
237
|
if(val !== undefined) {
|
@@ -273,10 +285,11 @@ RowDefinition.prototype._initializeAsConstituent = function(rowOptions) {
|
|
273
285
|
}
|
274
286
|
};
|
275
287
|
/** @public
|
276
|
-
* @param {string} userInput
|
288
|
+
* @param {string} userInput RIC
|
289
|
+
* @param {string=} permId=null Organization PermId, which use for getting ADC data for private company
|
277
290
|
* @return {boolean} True if there is any change otherwise false
|
278
291
|
*/
|
279
|
-
RowDefinition.prototype.setContent = function(userInput) {
|
292
|
+
RowDefinition.prototype.setContent = function(userInput, permId) {
|
280
293
|
if(this._autoGenerated) { // AutoGenerated RowDefinition cannot be changed by user input
|
281
294
|
return false;
|
282
295
|
}
|
@@ -287,7 +300,15 @@ RowDefinition.prototype.setContent = function(userInput) {
|
|
287
300
|
userInput += "";
|
288
301
|
}
|
289
302
|
|
290
|
-
|
303
|
+
var dirty = (this._userInput !== userInput);
|
304
|
+
if(this._permId !== permId){
|
305
|
+
this._permId = permId || "";
|
306
|
+
if(!userInput){
|
307
|
+
this._displayText = this._permId;
|
308
|
+
dirty = true;
|
309
|
+
}
|
310
|
+
}
|
311
|
+
if(!dirty) {
|
291
312
|
return false;
|
292
313
|
}
|
293
314
|
|
@@ -314,7 +335,7 @@ RowDefinition.prototype.setContent = function(userInput) {
|
|
314
335
|
this._displayText = this._ric; // No 0#
|
315
336
|
}
|
316
337
|
|
317
|
-
this._dataId = this._rowId + this.
|
338
|
+
this._dataId = this._rowId + this.getSymbol(); // JET/RTK will generate data id to be rowId (given from this rowDef) + ric;
|
318
339
|
|
319
340
|
// This will work for runtime ric modification, but not for first initilization.
|
320
341
|
if(!this.subscribeForUpdates()) {
|
@@ -342,6 +363,11 @@ RowDefinition.prototype.getConfigObject = function(rowOptions) {
|
|
342
363
|
obj["ric"] = val;
|
343
364
|
}
|
344
365
|
|
366
|
+
val = this._permId;
|
367
|
+
if(val) {
|
368
|
+
obj["permId"] = val;
|
369
|
+
}
|
370
|
+
|
345
371
|
val = this._chainRic;
|
346
372
|
if(val) {
|
347
373
|
obj["chainRic"] = val;
|
@@ -587,6 +613,18 @@ RowDefinition.prototype.getRic = function() {
|
|
587
613
|
/** @public
|
588
614
|
* @return {string}
|
589
615
|
*/
|
616
|
+
RowDefinition.prototype.getPermId = function() {
|
617
|
+
return this._permId;
|
618
|
+
};
|
619
|
+
/** @public
|
620
|
+
* @return {string}
|
621
|
+
*/
|
622
|
+
RowDefinition.prototype.getSymbol = function() {
|
623
|
+
return this._ric || this._permId;
|
624
|
+
};
|
625
|
+
/** @public
|
626
|
+
* @return {string}
|
627
|
+
*/
|
590
628
|
RowDefinition.prototype.getDisplayText = function() {
|
591
629
|
if(this._label != null) { // Empty string is allowed
|
592
630
|
return this._label;
|
@@ -652,7 +690,7 @@ RowDefinition.prototype.isAutoGenerated = function() {
|
|
652
690
|
* @return {boolean}
|
653
691
|
*/
|
654
692
|
RowDefinition.prototype.isRealTimeRow = function() {
|
655
|
-
if(!this.
|
693
|
+
if(!this.getRic()) { // Empty row
|
656
694
|
return false;
|
657
695
|
}
|
658
696
|
if(this.isRowHeader()) {
|
@@ -669,7 +707,7 @@ RowDefinition.prototype.isRealTimeRow = function() {
|
|
669
707
|
* @return {boolean} If a subscription is made, return true.
|
670
708
|
*/
|
671
709
|
RowDefinition.prototype.subscribeForUpdates = function() {
|
672
|
-
if(!this.isRealTimeRow()) {
|
710
|
+
if(!this.isRealTimeRow() && !this.getPermId()) {
|
673
711
|
return false;
|
674
712
|
}
|
675
713
|
|
@@ -683,14 +721,14 @@ RowDefinition.prototype.subscribeForUpdates = function() {
|
|
683
721
|
if(this.isChain()) {
|
684
722
|
this._subId = subs["addChain"](this._chainRic || this._ric, this._rowId); // Some chain require 0# symbol to populate its constituents
|
685
723
|
// TODO: Handle Dynamic chain such as .PG.PA
|
686
|
-
} else {
|
724
|
+
} else if(this._ric) {
|
687
725
|
this._subId = subs["addRic"](this._ric, this._rowId);
|
688
726
|
}
|
689
727
|
|
690
728
|
if(prevRowData) {
|
691
729
|
this._dc.setRowData(this._dataId, prevRowData); // TODO: We may need to create a new object instead of prevRowData for data correctness
|
692
730
|
} else {
|
693
|
-
this._dc.setRowData(this._dataId, {"X_RIC_NAME": this.
|
731
|
+
this._dc.setRowData(this._dataId, {"X_RIC_NAME": this.getSymbol(), "ROW_DEF": this}); // Trigger data update immediately
|
694
732
|
}
|
695
733
|
return true;
|
696
734
|
};
|
@@ -2,6 +2,7 @@ import Grid from "./Grid.js";
|
|
2
2
|
import {Ext} from "../../tr-grid-util/es6/Ext.js";
|
3
3
|
import {EventDispatcher} from "../../tr-grid-util/es6/EventDispatcher.js";
|
4
4
|
import {FieldDefinition} from "./FieldDefinition.js";
|
5
|
+
import { isEmptyObject } from "../../tr-grid-util/es6/Util.js";
|
5
6
|
|
6
7
|
declare class SnapshotFiller extends EventDispatcher {
|
7
8
|
|
@@ -3,17 +3,7 @@ import Grid from "./Grid.js";
|
|
3
3
|
import {Ext} from "../../tr-grid-util/es6/Ext.js";
|
4
4
|
import {EventDispatcher} from "../../tr-grid-util/es6/EventDispatcher.js";
|
5
5
|
import {FieldDefinition} from "./FieldDefinition.js";
|
6
|
-
|
7
|
-
/** @private
|
8
|
-
* @param {Object} obj
|
9
|
-
* @return {boolean}
|
10
|
-
*/
|
11
|
-
var isEmptyObject = function (obj) {
|
12
|
-
for (var key in obj) {
|
13
|
-
return false;
|
14
|
-
}
|
15
|
-
return true;
|
16
|
-
};
|
6
|
+
import { isEmptyObject } from "../../tr-grid-util/es6/Util.js";
|
17
7
|
|
18
8
|
/** This class make requesting ADC field easier by encapsulating JET.Data APIs and mapping data to the row
|
19
9
|
* @constructor
|
@@ -1314,16 +1314,7 @@ ColumnStackPlugin.prototype._onColumnRemoved = function (e) {
|
|
1314
1314
|
delete this._stacks[stackOpt.stackId];
|
1315
1315
|
}
|
1316
1316
|
} else {
|
1317
|
-
|
1318
|
-
stackOpt.activeColumn = stackOpt.stackRefs[stackOpt.stackRefs.length - 1];
|
1319
|
-
} else {
|
1320
|
-
stackOpt.activeColumn = stackOpt.stackRefs[0];
|
1321
|
-
}
|
1322
|
-
|
1323
|
-
// TODO: Add a proper way to set visibility to activeColumn when activeColumn is changed
|
1324
|
-
var activeColIndex = this._getColumnIndex(stackOpt.activeColumn);
|
1325
|
-
this._setColumnVisibility(activeColIndex, true);
|
1326
|
-
this._updateUI();
|
1317
|
+
this._updateActiveColumn(stackOpt);
|
1327
1318
|
}
|
1328
1319
|
}
|
1329
1320
|
}
|
@@ -1922,6 +1913,26 @@ ColumnStackPlugin.prototype._setStackVisibility = function(stackId, visible) {
|
|
1922
1913
|
}
|
1923
1914
|
};
|
1924
1915
|
|
1916
|
+
/** @private
|
1917
|
+
* @description Check for active column in a stack if it needs an update.
|
1918
|
+
* @param {Object} stackOpt
|
1919
|
+
*/
|
1920
|
+
ColumnStackPlugin.prototype._updateActiveColumn = function(stackOpt) {
|
1921
|
+
if(!stackOpt) { return; }
|
1922
|
+
|
1923
|
+
var stackRefs = stackOpt["stackRefs"];
|
1924
|
+
if(!stackRefs || !stackRefs.length) { return; }
|
1925
|
+
|
1926
|
+
if(stackRefs.indexOf(stackOpt.activeColumn) === -1) {
|
1927
|
+
stackOpt.activeColumn = stackOpt["spreading"] ? stackRefs[stackRefs.length - 1] : stackRefs[0];
|
1928
|
+
|
1929
|
+
// TODO: Add a proper way to set visibility to activeColumn when activeColumn is changed
|
1930
|
+
var activeColIndex = this._getColumnIndex(stackOpt.activeColumn);
|
1931
|
+
this._setColumnVisibility(activeColIndex, true);
|
1932
|
+
this._updateUI();
|
1933
|
+
}
|
1934
|
+
};
|
1935
|
+
|
1925
1936
|
/** @public
|
1926
1937
|
* @description Hide specific stack from grid
|
1927
1938
|
* @param {string} stackId
|
@@ -13,16 +13,16 @@ declare namespace ConditionalColoringPlugin {
|
|
13
13
|
|
14
14
|
type ColumnOptions = {
|
15
15
|
conditions?: (ConditionalColoringPlugin.Condition)[]|null,
|
16
|
-
colorText?: (string|boolean)|null,
|
17
|
-
tickColor?: (string|boolean)|null,
|
18
|
-
blinking?: (ConditionalColoringPlugin.Blinking
|
16
|
+
colorText?: (string|boolean|ConditionalColoringPlugin.ColorText)|null,
|
17
|
+
tickColor?: (string|boolean|ConditionalColoringPlugin.ColorText)|null,
|
18
|
+
blinking?: (string|boolean|ConditionalColoringPlugin.Blinking)|null,
|
19
19
|
field?: string|null
|
20
20
|
};
|
21
21
|
|
22
22
|
type ConditionalColoringOptions = {
|
23
23
|
conditions?: (ConditionalColoringPlugin.Condition)[]|null,
|
24
|
-
colorText?: (string|boolean)|null,
|
25
|
-
tickColor?: (string|boolean)|null,
|
24
|
+
colorText?: (string|boolean|ConditionalColoringPlugin.ColorText)|null,
|
25
|
+
tickColor?: (string|boolean|ConditionalColoringPlugin.ColorText)|null,
|
26
26
|
field?: string|null
|
27
27
|
};
|
28
28
|
|
@@ -41,6 +41,13 @@ declare namespace ConditionalColoringPlugin {
|
|
41
41
|
level?: (string|boolean)|null
|
42
42
|
};
|
43
43
|
|
44
|
+
type ColorText = {
|
45
|
+
field?: string|null,
|
46
|
+
upClass?: string|null,
|
47
|
+
downClass?: string|null,
|
48
|
+
levelClass?: string|null
|
49
|
+
};
|
50
|
+
|
44
51
|
}
|
45
52
|
|
46
53
|
declare class ConditionalColoringPlugin extends GridPlugin {
|