@refinitiv-ui/efx-grid 6.0.97 → 6.0.99
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.js +230 -174
- package/lib/core/dist/core.min.js +1 -1
- package/lib/core/es6/data/DataView.d.ts +3 -1
- package/lib/core/es6/data/DataView.js +32 -5
- package/lib/core/es6/grid/Core.js +20 -2
- package/lib/core/es6/grid/plugins/SortableTitlePlugin.js +11 -0
- package/lib/core/es6/grid/util/Virtualizer.js +5 -5
- package/lib/grid/index.js +1 -1
- package/lib/rt-grid/dist/rt-grid.js +2512 -2426
- package/lib/rt-grid/dist/rt-grid.min.js +1 -1
- package/lib/rt-grid/es6/Grid.d.ts +2 -0
- package/lib/rt-grid/es6/Grid.js +16 -0
- package/lib/rt-grid/es6/RowDefinition.d.ts +0 -2
- package/lib/rt-grid/es6/RowDefinition.js +85 -44
- package/lib/tr-grid-column-grouping/es6/ColumnGrouping.js +12 -1
- package/lib/types/es6/Core/data/DataView.d.ts +3 -1
- package/lib/types/es6/RealtimeGrid/Grid.d.ts +2 -0
- package/lib/types/es6/RealtimeGrid/RowDefinition.d.ts +0 -2
- package/lib/versions.json +2 -2
- package/package.json +1 -1
@@ -184,6 +184,8 @@ declare class Grid extends EventDispatcher {
|
|
184
184
|
|
185
185
|
public insertRow(rowOption?: (RowDefinition.Options|string)|null, rowRef?: Grid.RowReference|null): RowDefinition|null;
|
186
186
|
|
187
|
+
public insertSegmentSeparator(rowOption?: RowDefinition.Options|null, rowRef?: Grid.RowReference|null): RowDefinition|null;
|
188
|
+
|
187
189
|
public insertRows(rowOptions: (RowDefinition.Options|string)[]|null, rowRef?: Grid.RowReference|null, opt_fields?: (string)[]|null): void;
|
188
190
|
|
189
191
|
public addStaticDataRows(dataRows: any[]|null, fields?: (string)[]|null): void;
|
package/lib/rt-grid/es6/Grid.js
CHANGED
@@ -2321,6 +2321,22 @@ Grid.prototype.insertRow = function(rowOption, rowRef) {
|
|
2321
2321
|
this._connector.addRic(rowDef);
|
2322
2322
|
return rowDef;
|
2323
2323
|
};
|
2324
|
+
/** Insert a row as a segment separator
|
2325
|
+
* @public
|
2326
|
+
* @param {RowDefinition~Options=} rowOption
|
2327
|
+
* @param {Grid~RowReference=} rowRef Reference (i.e. row index, row id, or row definition) of the insert position
|
2328
|
+
* @returns {RowDefinition}
|
2329
|
+
*/
|
2330
|
+
Grid.prototype.insertSegmentSeparator = function(rowOption, rowRef) {
|
2331
|
+
if(!rowOption) {
|
2332
|
+
rowOption = {};
|
2333
|
+
}
|
2334
|
+
if(typeof rowOption === "object") {
|
2335
|
+
rowOption.asSegment = true;
|
2336
|
+
return this.insertRow(rowOption, rowRef);
|
2337
|
+
}
|
2338
|
+
return null;
|
2339
|
+
};
|
2324
2340
|
/** @public
|
2325
2341
|
* @param {Array.<RowDefinition~Options|string>} rowOptions Array of row option object
|
2326
2342
|
* @param {Grid~RowReference=} rowRef Reference (i.e. row index, row id, or row definition) of the insert position
|
@@ -142,7 +142,5 @@ declare const ROW_DEF: string;
|
|
142
142
|
|
143
143
|
declare const ROW_TYPES: RowDefinition.RowTypes;
|
144
144
|
|
145
|
-
declare function rowData(userInput: string, extractedOptions: any): boolean;
|
146
|
-
|
147
145
|
export {RowDefinition, ROW_DEF, ROW_TYPES};
|
148
146
|
export default RowDefinition;
|
@@ -12,7 +12,7 @@ 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=true Chain is collapsed by default
|
15
|
+
* @property {boolean=} collapsed=true Chain or segment is collapsed by default
|
16
16
|
* @property {(string|null)=} label=null
|
17
17
|
* @property {boolean=} hidden=true When this row is hidden
|
18
18
|
* @property {boolean=} realTime=true Realtime row, able to request for JET/RTK
|
@@ -104,6 +104,10 @@ RowDefinition.prototype._isChain = null;
|
|
104
104
|
/** @type {boolean}
|
105
105
|
* @private
|
106
106
|
*/
|
107
|
+
RowDefinition.prototype._asSegment = false;
|
108
|
+
/** @type {boolean}
|
109
|
+
* @private
|
110
|
+
*/
|
107
111
|
RowDefinition.prototype._realTime = true;
|
108
112
|
|
109
113
|
/** @type {string}
|
@@ -258,8 +262,8 @@ RowDefinition.prototype.initialize = function(rowOptions) {
|
|
258
262
|
}
|
259
263
|
|
260
264
|
val = extractedOptions["asChain"];
|
261
|
-
if(val
|
262
|
-
this._isChain = val;
|
265
|
+
if(val != null) {
|
266
|
+
this._isChain = val ? true : false;
|
263
267
|
}
|
264
268
|
|
265
269
|
val = rowOptions["realTime"];
|
@@ -272,6 +276,12 @@ RowDefinition.prototype.initialize = function(rowOptions) {
|
|
272
276
|
if(val != null || !collapsed){
|
273
277
|
this._expanded = !collapsed;
|
274
278
|
}
|
279
|
+
|
280
|
+
val = rowOptions["asSegment"];
|
281
|
+
if(val != null) {
|
282
|
+
this._asSegment = val ? true : false;
|
283
|
+
}
|
284
|
+
|
275
285
|
val = rowOptions["keepModel"];
|
276
286
|
if(val) {
|
277
287
|
this._userModel = rowOptions;
|
@@ -315,6 +325,41 @@ RowDefinition.prototype._initializeAsConstituent = function(rowOptions) {
|
|
315
325
|
this.setStaticRowData(val, rowOptions["fields"]);
|
316
326
|
}
|
317
327
|
};
|
328
|
+
/** @private
|
329
|
+
* @param {DataView} view
|
330
|
+
* @param {string} rowId
|
331
|
+
* @returns {string}
|
332
|
+
*/
|
333
|
+
let _getEndOfSegmentRowId = function(view, rowId) {
|
334
|
+
let rowIndex = view.getRowIndex(rowId);
|
335
|
+
do {
|
336
|
+
rowId = view.getRowId(++rowIndex);
|
337
|
+
if(rowId && !view.getSegmentParentRowId(rowId)) {
|
338
|
+
break;
|
339
|
+
}
|
340
|
+
} while(rowId);
|
341
|
+
return rowId;
|
342
|
+
};
|
343
|
+
|
344
|
+
/** @private
|
345
|
+
* @param {DataView} view
|
346
|
+
* @param {boolean} newState
|
347
|
+
* @param {boolean} prevState
|
348
|
+
* @returns {boolean} Current state
|
349
|
+
*/
|
350
|
+
let _stallSorting = function(view, newState, prevState) {
|
351
|
+
if(view && view.isSorting()) {
|
352
|
+
newState = newState ? true : false;
|
353
|
+
if(newState !== prevState) {
|
354
|
+
if(newState) {
|
355
|
+
view.synchronizeRowOrder();
|
356
|
+
}
|
357
|
+
view.stallSorting(newState);
|
358
|
+
}
|
359
|
+
return newState;
|
360
|
+
}
|
361
|
+
return false;
|
362
|
+
};
|
318
363
|
/** @public
|
319
364
|
* @ignore
|
320
365
|
* @param {string} userInput RIC
|
@@ -342,44 +387,53 @@ RowDefinition.prototype.setContent = function(userInput, extractedOptions) {
|
|
342
387
|
return false;
|
343
388
|
}
|
344
389
|
|
390
|
+
let asChain = extractedOptions["asChain"];
|
391
|
+
let realtimeRow = true;
|
392
|
+
if(userInput.charAt(0) === "'") { // Single quote is used as a marker for non realtime row
|
393
|
+
realtimeRow = false;
|
394
|
+
this._ric = this._chainRic = ""; // No ric for realtime request
|
395
|
+
}
|
396
|
+
|
397
|
+
let dv = this._view;
|
398
|
+
let stalledSorting = _stallSorting(dv, realtimeRow && asChain, false); // To preserve current position of the segment/chain
|
399
|
+
|
345
400
|
if(!this.unsubscribeForUpdates()){
|
346
401
|
this._clearStaticData();
|
347
402
|
}
|
348
403
|
this.resetUpdates(); // Remove all previous data updates because a new content is just entered
|
349
404
|
|
350
405
|
this._userInput = userInput;
|
351
|
-
if(
|
352
|
-
this._ric = this._chainRic = ""; // No ric for realtime request
|
353
|
-
} else {
|
354
|
-
let asChain = extractedOptions["asChain"];
|
406
|
+
if(realtimeRow) {
|
355
407
|
let expanded = !extractedOptions["collapsed"];
|
356
408
|
let chainRic = extractedOptions["chainRic"];
|
357
409
|
if(asChain === true){
|
358
|
-
this._ric = expanded === false ?
|
410
|
+
this._ric = expanded === false ? userInput : userInput.replace("0#", "");
|
359
411
|
this._expanded = expanded; // Only chain can be expanded by 0#
|
360
412
|
} else {
|
361
|
-
this._ric =
|
413
|
+
this._ric = userInput;
|
362
414
|
}
|
363
415
|
this._isChain = asChain != null ? asChain : null; // this could be null or undefined
|
364
416
|
this._chainRic = chainRic || "";
|
365
417
|
}
|
418
|
+
// A symbol can be either RIC or permId
|
419
|
+
// JET/RTK will generate data id to be rowId (given from this rowDef) + ric
|
420
|
+
this._dataId = this._rowId + this.getSymbol();
|
366
421
|
|
367
|
-
|
368
|
-
|
369
|
-
segmentId = this._view.getSegmentParentRowId(this._rowId);
|
422
|
+
if(dv) {
|
423
|
+
let segmentId = dv.getSegmentParentRowId(this._rowId);
|
370
424
|
if(segmentId) {
|
371
425
|
if(this._isChain){ // If the row was a normal row and has been changed to a chain, remove it from existing segment
|
372
|
-
let targetRowId = _getEndOfSegmentRowId(
|
373
|
-
|
374
|
-
|
426
|
+
let targetRowId = _getEndOfSegmentRowId(dv, this._rowId);
|
427
|
+
dv.removeSegmentChild(segmentId, this._rowId);
|
428
|
+
dv.moveRow(this._rowId, targetRowId);
|
375
429
|
|
376
430
|
segmentId = "";
|
377
431
|
}
|
378
|
-
} else if(
|
379
|
-
|
432
|
+
} else if(dv.getSegment(this._rowId)) {
|
433
|
+
dv.setSegmentSeparator(this._rowId, false); // Remove existing segment
|
380
434
|
}
|
381
435
|
if(this._isChain) {
|
382
|
-
|
436
|
+
dv.setSegmentSeparator(this._rowId, true);
|
383
437
|
}
|
384
438
|
if(this.isChainCollapsed()) {
|
385
439
|
if(this._expanded){
|
@@ -390,11 +444,10 @@ RowDefinition.prototype.setContent = function(userInput, extractedOptions) {
|
|
390
444
|
this.collapseChain();
|
391
445
|
}
|
392
446
|
}
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
this._view.addSegmentChild(segmentId, this._rowId, this._dataId);
|
447
|
+
_stallSorting(dv, false, stalledSorting);
|
448
|
+
if(segmentId) { // If data id is changed and the row is a child of a segment, then segment child data id must be updated
|
449
|
+
dv.addSegmentChild(segmentId, this._rowId, this._dataId);
|
450
|
+
}
|
398
451
|
}
|
399
452
|
|
400
453
|
if(!this.subscribeForUpdates()) {
|
@@ -903,22 +956,6 @@ RowDefinition.prototype.resetUpdates = function() {
|
|
903
956
|
}
|
904
957
|
};
|
905
958
|
|
906
|
-
/** @private
|
907
|
-
* @param {DataView} view
|
908
|
-
* @param {string} rowId
|
909
|
-
* @returns {string}
|
910
|
-
*/
|
911
|
-
let _getEndOfSegmentRowId = function(view, rowId) {
|
912
|
-
let rowIndex = view.getRowIndex(rowId);
|
913
|
-
do {
|
914
|
-
rowId = view.getRowId(++rowIndex);
|
915
|
-
if(rowId && !view.getSegmentParentRowId(rowId)) {
|
916
|
-
break;
|
917
|
-
}
|
918
|
-
} while(rowId);
|
919
|
-
return rowId;
|
920
|
-
};
|
921
|
-
|
922
959
|
/** @public
|
923
960
|
* @param {DataView} view
|
924
961
|
* @param {string=} rowId
|
@@ -942,28 +979,32 @@ RowDefinition.prototype.registerToView = function(view, rowId) {
|
|
942
979
|
rowData[ROW_DEF] = this;
|
943
980
|
|
944
981
|
let parentRowId = "";
|
982
|
+
let isSegment = this._isChain || this._asSegment;
|
945
983
|
if(rowId) {
|
946
984
|
parentRowId = view.getSegmentParentRowId(rowId);
|
947
985
|
if(parentRowId) {
|
948
|
-
if(
|
986
|
+
if(isSegment) { // A chain or a segment cannot be put inside another segment
|
949
987
|
rowId = _getEndOfSegmentRowId(view, rowId);
|
950
988
|
} // else { // Normal row is inserted into a segment
|
951
989
|
}
|
952
990
|
}
|
953
991
|
|
992
|
+
let stalledSorting = _stallSorting(view, isSegment, false);
|
993
|
+
|
954
994
|
let newRowId = view.insertRow(rowId, rowData, this.getRowId());
|
955
995
|
if(newRowId !== this._rowId) {
|
956
996
|
this._rowId = newRowId; // In case there is some duplicate row id
|
957
997
|
this._userId = false;
|
958
998
|
}
|
959
999
|
|
960
|
-
if(
|
961
|
-
view.setSegmentSeparator(
|
1000
|
+
if(isSegment) {
|
1001
|
+
view.setSegmentSeparator(newRowId);
|
1002
|
+
_stallSorting(view, false, stalledSorting);
|
962
1003
|
if(!this._expanded) {
|
963
|
-
|
1004
|
+
view.collapseSegment(newRowId);
|
964
1005
|
}
|
965
1006
|
} else if(!this._parent && parentRowId) { // Constituent cannot be added to another segment
|
966
|
-
view.addSegmentChild(parentRowId,
|
1007
|
+
view.addSegmentChild(parentRowId, newRowId, this._dataId);
|
967
1008
|
}
|
968
1009
|
};
|
969
1010
|
/** @private
|
@@ -1093,7 +1093,18 @@ ColumnGroupingPlugin.prototype._onBeforeColumnBoundUpdate = function (e) {
|
|
1093
1093
|
}
|
1094
1094
|
}
|
1095
1095
|
}
|
1096
|
-
|
1096
|
+
|
1097
|
+
// Find maximum spanned row count
|
1098
|
+
var section = this._hosts[0].getSection("title");
|
1099
|
+
var minRowSpanCount = 0;
|
1100
|
+
var bottomRowIndex = this._maxDepth;
|
1101
|
+
for (i = 0; i < selectedColumns.length; i++) {
|
1102
|
+
var rowSpanCount = section.getCellRowSpan(selectedColumns[i], bottomRowIndex);
|
1103
|
+
if (rowSpanCount < minRowSpanCount) {
|
1104
|
+
minRowSpanCount = rowSpanCount;
|
1105
|
+
}
|
1106
|
+
}
|
1107
|
+
e.topBoundRowIndex = bottomRowIndex + minRowSpanCount;
|
1097
1108
|
};
|
1098
1109
|
/** Deprecated. Column should be directly added through grid APIs.
|
1099
1110
|
* @deprecated
|
@@ -236,7 +236,9 @@ declare class DataView extends EventDispatcher {
|
|
236
236
|
|
237
237
|
public searchNext(rowRef: number|string|null, searchLogic: ((...params: any[]) => any)|null): number;
|
238
238
|
|
239
|
-
public stall(
|
239
|
+
public stall(bool?: boolean|null): boolean;
|
240
|
+
|
241
|
+
public stallSorting(bool?: boolean|null): boolean;
|
240
242
|
|
241
243
|
public enableAutoGroupRemoval(opt_bool?: boolean|null): boolean;
|
242
244
|
|
@@ -221,6 +221,8 @@ declare class Grid extends EventDispatcher {
|
|
221
221
|
|
222
222
|
public insertRow(rowOption?: (RowDefinition.Options|string)|null, rowRef?: Grid.RowReference|null): RowDefinition|null;
|
223
223
|
|
224
|
+
public insertSegmentSeparator(rowOption?: RowDefinition.Options|null, rowRef?: Grid.RowReference|null): RowDefinition|null;
|
225
|
+
|
224
226
|
public insertRows(rowOptions: (RowDefinition.Options|string)[]|null, rowRef?: Grid.RowReference|null, opt_fields?: (string)[]|null): void;
|
225
227
|
|
226
228
|
public addStaticDataRows(dataRows: any[]|null, fields?: (string)[]|null): void;
|
@@ -142,7 +142,5 @@ declare const ROW_DEF: string;
|
|
142
142
|
|
143
143
|
declare const ROW_TYPES: RowDefinition.RowTypes;
|
144
144
|
|
145
|
-
declare function rowData(userInput: string, extractedOptions: any): boolean;
|
146
|
-
|
147
145
|
export {RowDefinition, ROW_DEF, ROW_TYPES};
|
148
146
|
export default RowDefinition;
|
package/lib/versions.json
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
{
|
2
|
-
"tr-grid-util": "1.3.
|
2
|
+
"tr-grid-util": "1.3.151",
|
3
3
|
"tr-grid-printer": "1.0.17",
|
4
4
|
"@grid/column-dragging": "1.0.20",
|
5
5
|
"@grid/row-segmenting": "1.0.31",
|
@@ -10,7 +10,7 @@
|
|
10
10
|
"tr-grid-checkbox": "1.0.67",
|
11
11
|
"tr-grid-column-fitter": "1.0.40",
|
12
12
|
"tr-grid-column-formatting": "0.9.36",
|
13
|
-
"tr-grid-column-grouping": "1.0.
|
13
|
+
"tr-grid-column-grouping": "1.0.61",
|
14
14
|
"tr-grid-column-resizing": "1.0.28",
|
15
15
|
"tr-grid-column-selection": "1.0.33",
|
16
16
|
"tr-grid-column-stack": "1.0.75",
|
package/package.json
CHANGED