@refinitiv-ui/efx-grid 6.0.35 → 6.0.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/core/dist/core.css +1 -1
- package/lib/core/dist/core.js +150 -6
- package/lib/core/dist/core.min.js +1 -1
- package/lib/core/es6/data/DataCache.js +20 -1
- package/lib/core/es6/grid/Core.js +25 -2
- package/lib/core/es6/grid/ILayoutGrid.js +4 -0
- package/lib/core/es6/grid/LayoutGrid.d.ts +4 -0
- package/lib/core/es6/grid/LayoutGrid.js +95 -3
- package/lib/core/es6/grid/VirtualizedLayoutGrid.js +6 -0
- package/lib/core/es6/tr-grid-theme.js +1 -1
- package/lib/grid/index.js +1 -1
- package/lib/grid/themes/base.less +1 -0
- 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/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 +302 -107
- package/lib/rt-grid/dist/rt-grid.min.js +1 -1
- package/lib/rt-grid/es6/FieldDefinition.js +0 -41
- package/lib/rt-grid/es6/Grid.js +4 -5
- package/lib/rt-grid/es6/RowDefinition.d.ts +2 -2
- package/lib/rt-grid/es6/RowDefinition.js +102 -52
- package/lib/tr-grid-column-stack/es6/ColumnStack.d.ts +1 -0
- package/lib/tr-grid-column-stack/es6/ColumnStack.js +579 -607
- package/lib/tr-grid-range-bar/es6/RangeBar.d.ts +4 -1
- package/lib/tr-grid-range-bar/es6/RangeBar.js +99 -39
- package/lib/tr-grid-util/es6/GroupDefinitions.d.ts +7 -1
- package/lib/tr-grid-util/es6/GroupDefinitions.js +39 -3
- package/lib/tr-grid-util/es6/jet/MockQuotes2.js +7 -0
- package/lib/types/es6/ColumnStack.d.ts +1 -0
- package/lib/types/es6/Core/grid/Core.d.ts +12 -0
- package/lib/types/es6/Core/grid/LayoutGrid.d.ts +4 -0
- package/lib/types/es6/RealtimeGrid/RowDefinition.d.ts +2 -2
- package/lib/versions.json +3 -3
- package/package.json +1 -1
@@ -14,40 +14,6 @@ var SYNAPSE_URL =
|
|
14
14
|
+ 'hits=1' // search only 1 result
|
15
15
|
+ '&profile=' + encodeURIComponent('Field Selector');
|
16
16
|
|
17
|
-
/** @function
|
18
|
-
* @private
|
19
|
-
* @param {Object} e
|
20
|
-
*/
|
21
|
-
function xRicNameRenderer(e) {
|
22
|
-
e.cell.setContent(e.rowDef.getDisplayText());
|
23
|
-
}
|
24
|
-
/** @function
|
25
|
-
* @private
|
26
|
-
* @param {RowDefinition} rowA
|
27
|
-
* @param {RowDefinition} rowB
|
28
|
-
* @param {number} order
|
29
|
-
* @returns {number}
|
30
|
-
*/
|
31
|
-
function xRicNameSorter(rowA, rowB, order) {
|
32
|
-
var A = rowA.getDisplayText();
|
33
|
-
var B = rowB.getDisplayText();
|
34
|
-
if(A === B) {
|
35
|
-
return 0;
|
36
|
-
}
|
37
|
-
if(!A) {
|
38
|
-
return 1;
|
39
|
-
}
|
40
|
-
if(!B) {
|
41
|
-
return -1;
|
42
|
-
}
|
43
|
-
if(A < B) {
|
44
|
-
return -order;
|
45
|
-
}
|
46
|
-
|
47
|
-
return order;
|
48
|
-
}
|
49
|
-
|
50
|
-
|
51
17
|
/* @namespace */
|
52
18
|
var FieldDefinition = {};
|
53
19
|
|
@@ -55,13 +21,6 @@ var FieldDefinition = {};
|
|
55
21
|
* @private
|
56
22
|
*/
|
57
23
|
FieldDefinition._defs = {
|
58
|
-
"X_RIC_NAME": {
|
59
|
-
name: "RIC",
|
60
|
-
IsRealtimeField: false,
|
61
|
-
width: 100,
|
62
|
-
binding: xRicNameRenderer,
|
63
|
-
sortLogic: xRicNameSorter
|
64
|
-
},
|
65
24
|
"CF_NAME": {
|
66
25
|
name: "Name",
|
67
26
|
rank: 2800003,
|
package/lib/rt-grid/es6/Grid.js
CHANGED
@@ -326,6 +326,7 @@ var Grid = function(placeholder, config) {
|
|
326
326
|
t._dc = new DataCache();
|
327
327
|
t._dc.listen("dataChanged", t._onDataChanged);
|
328
328
|
t._dc.listen("dataComposed", t._onDataComposed);
|
329
|
+
t._dc.addStaticFields([ROW_DEF, SUB_ID]); // Static fields are deprecated, set fields to be ignore during clone in DataCache
|
329
330
|
|
330
331
|
t._dt = new DataTable();
|
331
332
|
t._dt.setSortingLogic(/** @type{Function} */(t._mainSorter));
|
@@ -1526,8 +1527,11 @@ Grid.prototype.replaceColumn = function (columnOption, colRef) {
|
|
1526
1527
|
if(colDef.getChildren()) { // Parent time series field doesn't provide hidden property
|
1527
1528
|
colConfig["hidden"] = false;
|
1528
1529
|
}
|
1530
|
+
|
1531
|
+
this._grid.startBatch("reset");
|
1529
1532
|
this.insertColumn(colConfig, colIndex);
|
1530
1533
|
this.removeColumn(colIndex + 1); // remove existing column after insert
|
1534
|
+
this._grid.stopBatch("reset");
|
1531
1535
|
};
|
1532
1536
|
|
1533
1537
|
/** to update column name when field info is loaded
|
@@ -1788,11 +1792,6 @@ Grid.prototype._onColumnAdded = function(e) {
|
|
1788
1792
|
this._grid.enableColumnClass(idx, classes[i]);
|
1789
1793
|
}
|
1790
1794
|
var colField = colDef.getField();
|
1791
|
-
if (!colDef.isRealTimeField()) {
|
1792
|
-
if(this._dc) {
|
1793
|
-
this._dc.addStaticFields([colField]);
|
1794
|
-
}
|
1795
|
-
}
|
1796
1795
|
this._grid.setDataColumnName(idx, ROW_DEF); // This make ColumnDefinition renderer work
|
1797
1796
|
var fields = colDef.getAllFields();
|
1798
1797
|
var referrer = colDef.getId();
|
@@ -37,7 +37,7 @@ declare class RowDefinition {
|
|
37
37
|
|
38
38
|
public initialize(rowOptions?: RowDefinition.Options|null): void;
|
39
39
|
|
40
|
-
public setContent(userInput: string, permId?: string|null): boolean;
|
40
|
+
public setContent(userInput: string, permId?: string|null, asChain?: boolean|null, expanded?: boolean|null, realTime?: boolean|null): boolean;
|
41
41
|
|
42
42
|
public getRowId(): string;
|
43
43
|
|
@@ -143,7 +143,7 @@ declare const ROW_DEF: string;
|
|
143
143
|
|
144
144
|
declare const ROW_TYPES: RowDefinition.RowTypes;
|
145
145
|
|
146
|
-
declare function rowData(userInput: string, permId?: string|null): boolean;
|
146
|
+
declare function rowData(userInput: string, permId?: string|null, asChain?: boolean|null, expanded?: boolean|null, realTime?: boolean|null): boolean;
|
147
147
|
|
148
148
|
export {RowDefinition, ROW_DEF, ROW_TYPES};
|
149
149
|
export default RowDefinition;
|
@@ -12,9 +12,10 @@ import { DataTable } from "../../core/es6/data/DataTable.js";
|
|
12
12
|
* @property {Array.<string>=} fields=null Field that corresponds to the given static values
|
13
13
|
* @property {boolean=} asChain=false The given ric will be treated as a chain
|
14
14
|
* @property {string=} chainRic="" RIC to be used for chain request (overiding ric property)
|
15
|
-
* @property {boolean=} collapsed=
|
15
|
+
* @property {boolean=} collapsed=true Chain is collapsed by default
|
16
16
|
* @property {(string|null)=} label=null
|
17
17
|
* @property {boolean=} hidden=true When this row is hidden
|
18
|
+
* @pro // realTime
|
18
19
|
*/
|
19
20
|
|
20
21
|
/** @typedef {Object} RowDefinition~RowTypes
|
@@ -90,18 +91,18 @@ RowDefinition.prototype._ric = ""; // Contains no 0#
|
|
90
91
|
* @private
|
91
92
|
*/
|
92
93
|
RowDefinition.prototype._permId = "";
|
93
|
-
/** @type {string}
|
94
|
-
* @private
|
95
|
-
*/
|
96
|
-
RowDefinition.prototype._displayText = "";
|
97
94
|
/** @type {string|null}
|
98
95
|
* @private
|
99
96
|
*/
|
100
97
|
RowDefinition.prototype._label = null; // Label overrides _ric and _displayText
|
98
|
+
/** @type {boolean|null}
|
99
|
+
* @private
|
100
|
+
*/
|
101
|
+
RowDefinition.prototype._isChain = null;
|
101
102
|
/** @type {boolean}
|
102
103
|
* @private
|
103
104
|
*/
|
104
|
-
RowDefinition.prototype.
|
105
|
+
RowDefinition.prototype._realTime = true;
|
105
106
|
|
106
107
|
/** @type {string}
|
107
108
|
* @private
|
@@ -125,10 +126,10 @@ RowDefinition.prototype._view = null;
|
|
125
126
|
*/
|
126
127
|
RowDefinition.prototype._subId = "";
|
127
128
|
|
128
|
-
/** @type {boolean}
|
129
|
+
/** @type {boolean|null}
|
129
130
|
* @private
|
130
131
|
*/
|
131
|
-
RowDefinition.prototype._expanded =
|
132
|
+
RowDefinition.prototype._expanded = null;
|
132
133
|
/** @type {boolean}
|
133
134
|
* @private
|
134
135
|
*/
|
@@ -216,18 +217,19 @@ RowDefinition.prototype.initialize = function(rowOptions) {
|
|
216
217
|
return;
|
217
218
|
}
|
218
219
|
|
219
|
-
var val = rowOptions["
|
220
|
+
var val = rowOptions["permId"];
|
220
221
|
if(val != null) {
|
221
|
-
this.
|
222
|
+
this._permId = val;
|
222
223
|
}
|
223
|
-
val = rowOptions["
|
224
|
+
val = rowOptions["ric"];
|
224
225
|
if(val != null) {
|
225
|
-
this.
|
226
|
+
this._ric = val;
|
226
227
|
}
|
227
|
-
|
228
|
-
|
228
|
+
val = rowOptions["label"];
|
229
|
+
// eslint-disable-next-line no-undefined
|
230
|
+
if(val !== undefined) { // Empty string and null are allowed
|
231
|
+
this._label = val;
|
229
232
|
}
|
230
|
-
|
231
233
|
val = rowOptions["chainRic"];
|
232
234
|
if(val != null) {
|
233
235
|
this._chainRic = val;
|
@@ -239,26 +241,40 @@ RowDefinition.prototype.initialize = function(rowOptions) {
|
|
239
241
|
}
|
240
242
|
|
241
243
|
val = rowOptions["asChain"];
|
242
|
-
if(val) {
|
243
|
-
this._isChain =
|
244
|
-
this._expanded = !rowOptions["collapsed"];
|
245
|
-
} else if(this._isChain) {
|
246
|
-
var collapsed = rowOptions["collapsed"];
|
247
|
-
if(collapsed != null) {
|
248
|
-
this._expanded = !collapsed;
|
249
|
-
}
|
244
|
+
if(val !== null) {
|
245
|
+
this._isChain = val;
|
250
246
|
}
|
251
247
|
|
252
|
-
val = rowOptions["
|
253
|
-
|
254
|
-
|
255
|
-
this._label = val;
|
248
|
+
val = rowOptions["realTime"];
|
249
|
+
if(val != null) {
|
250
|
+
this._realTime = val;
|
256
251
|
}
|
257
252
|
|
253
|
+
val = rowOptions["collapsed"];
|
254
|
+
if(val != null){
|
255
|
+
this._expanded = !val;
|
256
|
+
}
|
258
257
|
val = rowOptions["keepModel"];
|
259
258
|
if(val) {
|
260
259
|
this._userModel = rowOptions;
|
261
260
|
}
|
261
|
+
|
262
|
+
var expanded = this._expanded;
|
263
|
+
var symbol = this._ric || this._chainRic;
|
264
|
+
var asChain = rowOptions["asChain"] || !!this._chainRic;
|
265
|
+
if(this._ric && this._ric.indexOf("0#") >= 0){
|
266
|
+
asChain = true;
|
267
|
+
expanded = true;
|
268
|
+
}
|
269
|
+
if(rowOptions["asChain"] === false){
|
270
|
+
asChain = false;
|
271
|
+
}
|
272
|
+
if(rowOptions["collapsed"] === true){
|
273
|
+
expanded = false;
|
274
|
+
}
|
275
|
+
if(symbol || this._permId){
|
276
|
+
this.setContent(symbol, this._permId, asChain, expanded); // this._dataId is modified
|
277
|
+
}
|
262
278
|
};
|
263
279
|
/** @private
|
264
280
|
* @param {!Object} rowOptions
|
@@ -268,7 +284,6 @@ RowDefinition.prototype._initializeAsConstituent = function(rowOptions) {
|
|
268
284
|
var parentDef = /** @type{RowDefinition} */(rowOptions["parent"]);
|
269
285
|
if(this.setParent(parentDef)) {
|
270
286
|
this._dataId = /** @type{string} */(rowOptions["dataId"]); // Constituent will have the same subId as its parent but with different ric
|
271
|
-
this._displayText = this._ric = /** @type{string} */(rowOptions["ric"]);
|
272
287
|
|
273
288
|
this._dc = parentDef._dc; // Parent chain must have data cache
|
274
289
|
if(this._dc) {
|
@@ -287,9 +302,12 @@ RowDefinition.prototype._initializeAsConstituent = function(rowOptions) {
|
|
287
302
|
/** @public
|
288
303
|
* @param {string} userInput RIC
|
289
304
|
* @param {string=} permId=null Organization PermId, which use for getting ADC data for private company
|
305
|
+
* @param {boolean=} asChain
|
306
|
+
* @param {boolean=} expanded
|
307
|
+
* @param {boolean=} realTime
|
290
308
|
* @return {boolean} True if there is any change otherwise false
|
291
309
|
*/
|
292
|
-
RowDefinition.prototype.setContent = function(userInput, permId) {
|
310
|
+
RowDefinition.prototype.setContent = function(userInput, permId, asChain, expanded) {
|
293
311
|
if(this._autoGenerated) { // AutoGenerated RowDefinition cannot be changed by user input
|
294
312
|
return false;
|
295
313
|
}
|
@@ -303,10 +321,7 @@ RowDefinition.prototype.setContent = function(userInput, permId) {
|
|
303
321
|
var dirty = (this._userInput !== userInput);
|
304
322
|
if(this._permId !== permId){
|
305
323
|
this._permId = permId || "";
|
306
|
-
|
307
|
-
this._displayText = this._permId;
|
308
|
-
dirty = true;
|
309
|
-
}
|
324
|
+
dirty = true;
|
310
325
|
}
|
311
326
|
if(!dirty) {
|
312
327
|
return false;
|
@@ -315,34 +330,44 @@ RowDefinition.prototype.setContent = function(userInput, permId) {
|
|
315
330
|
this.unsubscribeForUpdates();
|
316
331
|
this.resetUpdates(); // Remove all previous data updates because a new content is just entered
|
317
332
|
|
333
|
+
// TODO: handle changing between chain and ric row
|
318
334
|
this._userInput = userInput;
|
319
335
|
if(this._userInput.charAt(0) === "'") { // This is a row header
|
320
|
-
this._displayText = this._userInput.substr(1);
|
321
336
|
this._ric = this._chainRic = ""; // No ric for realtime request
|
322
337
|
} else {
|
323
338
|
if(this._userInput.indexOf("0#") >= 0) {
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
this.
|
329
|
-
this.
|
339
|
+
if(asChain === false){
|
340
|
+
this._ric = this._userInput;
|
341
|
+
} else {
|
342
|
+
this._ric = expanded ? this._userInput.replace("0#", "") : this._userInput;
|
343
|
+
this._expanded = expanded;
|
344
|
+
this._isChain = true; // Only chain can be expanded by 0#
|
345
|
+
this._chainRic = this._userInput;
|
346
|
+
if(this._view) {
|
347
|
+
this._view.setSegmentSeparator(this._rowId);
|
348
|
+
this.expandChain();
|
349
|
+
}
|
330
350
|
}
|
331
351
|
} else {
|
332
352
|
this._ric = this._userInput;
|
333
|
-
|
353
|
+
if(asChain){
|
354
|
+
this._isChain = true;
|
355
|
+
}
|
334
356
|
}
|
335
|
-
this._displayText = this._ric; // No 0#
|
336
357
|
}
|
337
358
|
|
338
359
|
this._dataId = this._rowId + this.getSymbol(); // JET/RTK will generate data id to be rowId (given from this rowDef) + ric;
|
339
360
|
|
340
|
-
|
361
|
+
|
341
362
|
if(!this.subscribeForUpdates()) {
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
363
|
+
if(this._dc) {
|
364
|
+
// This will work for runtime ric modification, but not for first initilization.
|
365
|
+
// Avoid losing the ROW_DEF pointer.
|
366
|
+
var rowData = {};
|
367
|
+
rowData[ROW_DEF] = this; // Enable tracking back and updating data
|
368
|
+
rowData["X_RIC_NAME"] = this.getDisplayText();
|
369
|
+
this.setRowData(rowData);
|
370
|
+
}
|
346
371
|
}
|
347
372
|
return true;
|
348
373
|
};
|
@@ -363,6 +388,16 @@ RowDefinition.prototype.getConfigObject = function(rowOptions) {
|
|
363
388
|
obj["ric"] = val;
|
364
389
|
}
|
365
390
|
|
391
|
+
// The user passed a single quote (') case
|
392
|
+
if(!this._ric && this._userInput.charAt(0) === "'") {
|
393
|
+
obj["ric"] = this._userInput;
|
394
|
+
}
|
395
|
+
|
396
|
+
val = this._realTime;
|
397
|
+
if(val !== true) {
|
398
|
+
obj["realTime"] = val;
|
399
|
+
}
|
400
|
+
|
366
401
|
val = this._permId;
|
367
402
|
if(val) {
|
368
403
|
obj["permId"] = val;
|
@@ -384,12 +419,12 @@ RowDefinition.prototype.getConfigObject = function(rowOptions) {
|
|
384
419
|
}
|
385
420
|
|
386
421
|
val = this._isChain;
|
387
|
-
if(val) {
|
422
|
+
if(val != null) {
|
388
423
|
obj["asChain"] = val;
|
389
424
|
}
|
390
425
|
|
391
426
|
val = this._expanded;
|
392
|
-
if(val) {
|
427
|
+
if(val != null) {
|
393
428
|
obj["collapsed"] = !val;
|
394
429
|
}
|
395
430
|
|
@@ -487,6 +522,7 @@ RowDefinition.prototype.setDataSource = function(dataSource) {
|
|
487
522
|
if(!rowData) {
|
488
523
|
rowData = {};
|
489
524
|
rowData[ROW_DEF] = this; // Enable tracking back and updating data
|
525
|
+
rowData["X_RIC_NAME"] = this.getDisplayText();
|
490
526
|
this.setRowData(rowData); // TODO: This will dispatch dataChanged event and caused update to be added, which should not happen
|
491
527
|
}
|
492
528
|
|
@@ -629,7 +665,16 @@ RowDefinition.prototype.getDisplayText = function() {
|
|
629
665
|
if(this._label != null) { // Empty string is allowed
|
630
666
|
return this._label;
|
631
667
|
}
|
632
|
-
|
668
|
+
|
669
|
+
if(this._ric) {
|
670
|
+
return this._ric;
|
671
|
+
}
|
672
|
+
|
673
|
+
if(this._permId) {
|
674
|
+
return this._permId;
|
675
|
+
}
|
676
|
+
|
677
|
+
return this._userInput;
|
633
678
|
};
|
634
679
|
/** @public
|
635
680
|
* @return {string|null}
|
@@ -693,13 +738,18 @@ RowDefinition.prototype.isRealTimeRow = function() {
|
|
693
738
|
if(!this.getRic()) { // Empty row
|
694
739
|
return false;
|
695
740
|
}
|
696
|
-
if(this.
|
741
|
+
if(!this._realTime) {
|
697
742
|
return false;
|
698
743
|
}
|
744
|
+
|
699
745
|
if(this._autoGenerated) { // Constituents in chain are not real-time row
|
700
746
|
return false;
|
701
747
|
}
|
702
748
|
|
749
|
+
if(this.isRowHeader()) {
|
750
|
+
return false;
|
751
|
+
}
|
752
|
+
|
703
753
|
return true;
|
704
754
|
};
|
705
755
|
|
@@ -728,7 +778,7 @@ RowDefinition.prototype.subscribeForUpdates = function() {
|
|
728
778
|
if(prevRowData) {
|
729
779
|
this._dc.setRowData(this._dataId, prevRowData); // TODO: We may need to create a new object instead of prevRowData for data correctness
|
730
780
|
} else {
|
731
|
-
this._dc.setRowData(this._dataId, {"X_RIC_NAME": this.
|
781
|
+
this._dc.setRowData(this._dataId, {"X_RIC_NAME": this.getDisplayText(), "ROW_DEF": this}); // Trigger data update immediately
|
732
782
|
}
|
733
783
|
return true;
|
734
784
|
};
|
@@ -3,6 +3,7 @@ import { GridPlugin } from "../../tr-grid-util/es6/GridPlugin.js";
|
|
3
3
|
import { Conflator } from "../../tr-grid-util/es6/Conflator.js";
|
4
4
|
import { Icon } from "../../tr-grid-util/es6/Icon.js";
|
5
5
|
import { ElfUtil } from "../../tr-grid-util/es6/ElfUtil.js";
|
6
|
+
import { GroupDefinitions } from "../../tr-grid-util/es6/GroupDefinitions.js";
|
6
7
|
import { Dom } from "../../tr-grid-util/es6/Dom.js";
|
7
8
|
import { injectCss, prettifyCss } from "../../tr-grid-util/es6/Util.js";
|
8
9
|
import { preventDefault } from "../../tr-grid-util/es6/EventDispatcher.js";
|