@refinitiv-ui/efx-grid 6.0.128 → 6.0.129
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 +220 -11
- package/lib/core/dist/core.min.js +1 -1
- package/lib/core/es6/data/DataCache.js +29 -0
- package/lib/core/es6/data/DataTable.d.ts +4 -0
- package/lib/core/es6/data/DataTable.js +117 -1
- package/lib/core/es6/data/DataView.d.ts +6 -0
- package/lib/core/es6/data/DataView.js +43 -0
- package/lib/core/es6/data/SegmentCollection.d.ts +2 -0
- package/lib/core/es6/data/SegmentCollection.js +21 -0
- package/lib/core/es6/grid/Core.js +1 -1
- package/lib/core/es6/grid/plugins/SortableTitlePlugin.js +9 -9
- package/lib/grid/index.js +1 -1
- package/lib/row-segmenting/es6/RowSegmenting.d.ts +6 -0
- package/lib/row-segmenting/es6/RowSegmenting.js +62 -11
- package/lib/rt-grid/dist/rt-grid.js +261 -23
- package/lib/rt-grid/dist/rt-grid.min.js +1 -1
- package/lib/rt-grid/es6/DataConnector.js +1 -1
- package/lib/rt-grid/es6/Grid.js +40 -11
- package/lib/tr-grid-cell-selection/es6/CellSelection.d.ts +3 -2
- package/lib/tr-grid-cell-selection/es6/CellSelection.js +1100 -1124
- package/lib/tr-grid-row-filtering/es6/RowFiltering.js +2 -2
- package/lib/types/es6/CellSelection.d.ts +3 -2
- package/lib/types/es6/Core/data/DataTable.d.ts +4 -0
- package/lib/types/es6/Core/data/DataView.d.ts +6 -0
- package/lib/types/es6/Core/data/SegmentCollection.d.ts +2 -0
- package/lib/types/es6/RowSegmenting.d.ts +6 -0
- package/lib/versions.json +3 -3
- package/package.json +1 -1
@@ -346,6 +346,35 @@ DataCache.prototype.cloneRowData = function (rid) {
|
|
346
346
|
return values;
|
347
347
|
};
|
348
348
|
|
349
|
+
/**
|
350
|
+
* @protected
|
351
|
+
* @ignore
|
352
|
+
* @param {string} fromRid
|
353
|
+
* @param {string} toRid
|
354
|
+
* @return {boolean}
|
355
|
+
*/
|
356
|
+
DataCache.prototype._replaceRowId = function(fromRid, toRid) {
|
357
|
+
let rows = this._rows;
|
358
|
+
if(rows[fromRid]) {
|
359
|
+
rows[toRid] = rows[fromRid];
|
360
|
+
delete rows[fromRid];
|
361
|
+
return true;
|
362
|
+
}
|
363
|
+
return false;
|
364
|
+
};
|
365
|
+
/**
|
366
|
+
* @public
|
367
|
+
* @ignore
|
368
|
+
* @param {Object} ridPair
|
369
|
+
*/
|
370
|
+
DataCache.prototype.replaceRowIds = function(ridPair) {
|
371
|
+
if(typeof ridPair === "object") {
|
372
|
+
for(let oldRid in ridPair) {
|
373
|
+
this._replaceRowId(oldRid, ridPair[oldRid]);
|
374
|
+
}
|
375
|
+
}
|
376
|
+
};
|
377
|
+
|
349
378
|
/** Deprecated. Built-in Data Service is deprecated due to the lack of flexibility.
|
350
379
|
* @public
|
351
380
|
* @ignore
|
@@ -80,6 +80,8 @@ declare class DataTable extends DataCache {
|
|
80
80
|
|
81
81
|
public isFrozen(): boolean;
|
82
82
|
|
83
|
+
public setSegmentSeparators(rids: (string)[]|null, enabled?: boolean|null): boolean;
|
84
|
+
|
83
85
|
public setSegmentSeparator(rid: string, enabled?: boolean|null): boolean;
|
84
86
|
|
85
87
|
public unsetAllSegmentSeparators(): boolean;
|
@@ -106,6 +108,8 @@ declare class DataTable extends DataCache {
|
|
106
108
|
|
107
109
|
public addSegmentChildren(segmentId: string, rids: (string)[]|null, dataIds?: (string)[]|null): boolean;
|
108
110
|
|
111
|
+
public setSegmentChildren(segmentArr: (any)[]|null): boolean;
|
112
|
+
|
109
113
|
public removeSegmentChild(segmentId: string, rid: string): boolean;
|
110
114
|
|
111
115
|
public removeSegmentChildren(segmentId: string, rids: (string)[]|null): boolean;
|
@@ -823,6 +823,45 @@ DataTable.prototype.swapRow = function(fromIndex, toIndex) { // No event is fire
|
|
823
823
|
this._rids[toIndex] = rid;
|
824
824
|
};
|
825
825
|
|
826
|
+
/**
|
827
|
+
* @protected
|
828
|
+
* @override
|
829
|
+
* @ignore
|
830
|
+
* @param {string} fromRid
|
831
|
+
* @param {string} toRid
|
832
|
+
* @return {boolean}
|
833
|
+
*/
|
834
|
+
DataTable.prototype._replaceRowId = function(fromRid, toRid) {
|
835
|
+
let rids = this._rids;
|
836
|
+
let idx = rids.indexOf(fromRid);
|
837
|
+
if(idx >= 0) {
|
838
|
+
rids[idx] = toRid;
|
839
|
+
this._rows[toRid] = this._rows[fromRid];
|
840
|
+
delete this._rows[fromRid];
|
841
|
+
this._prevData[toRid] = this._prevData[fromRid];
|
842
|
+
delete this._prevData[fromRid];
|
843
|
+
return true;
|
844
|
+
}
|
845
|
+
return false;
|
846
|
+
};
|
847
|
+
/**
|
848
|
+
* @public
|
849
|
+
* @override
|
850
|
+
* @ignore
|
851
|
+
* @param {Object} ridPair
|
852
|
+
*/
|
853
|
+
DataTable.prototype.replaceRowIds = function(ridPair) {
|
854
|
+
if(typeof ridPair === "object") {
|
855
|
+
let dirty = false;
|
856
|
+
for(let oldRid in ridPair) {
|
857
|
+
dirty |= this._replaceRowId(oldRid, ridPair[oldRid]);
|
858
|
+
}
|
859
|
+
if(dirty) {
|
860
|
+
this.dispatchGlobalChange();
|
861
|
+
}
|
862
|
+
}
|
863
|
+
};
|
864
|
+
|
826
865
|
/** @public
|
827
866
|
* @function
|
828
867
|
* @param {string} rid
|
@@ -964,6 +1003,55 @@ DataTable.prototype.isFrozen = function() {
|
|
964
1003
|
return this._frozen;
|
965
1004
|
};
|
966
1005
|
|
1006
|
+
/**
|
1007
|
+
* @public
|
1008
|
+
* @param {Array.<string>} rids
|
1009
|
+
* @param {boolean=} enabled
|
1010
|
+
* @return {boolean} Return true if there is any change
|
1011
|
+
*/
|
1012
|
+
DataTable.prototype.setSegmentSeparators = function(rids, enabled) {
|
1013
|
+
let change = false;
|
1014
|
+
if (rids) {
|
1015
|
+
let len = rids.length;
|
1016
|
+
let segmentChanged = false;
|
1017
|
+
for (let i = 0; i < len; i++) {
|
1018
|
+
if(enabled !== false) {
|
1019
|
+
let rid = rids[i];
|
1020
|
+
if (!this._segments) {
|
1021
|
+
this._segments = new SegmentCollection();
|
1022
|
+
this._segments.addEventListener("subSegmentChanged", this._onSubSegmentChanged);
|
1023
|
+
}
|
1024
|
+
if(this._autoSegmentFilling) {
|
1025
|
+
let parentId = this._segments.getParentRowId(rid);
|
1026
|
+
if(parentId) {
|
1027
|
+
this._segments.removeSegmentChild(parentId, rid);
|
1028
|
+
}
|
1029
|
+
}
|
1030
|
+
segmentChanged = this._segments.addSegment(rid);
|
1031
|
+
} else if (this._segments) { // remove case
|
1032
|
+
let segment = this._segments.getSegment(rid);
|
1033
|
+
if(segment) {
|
1034
|
+
if(this._segments.removeSegment(rid)) {
|
1035
|
+
change = true;
|
1036
|
+
if(!this._segments.getSegmentCount()) {
|
1037
|
+
this._segments = null;
|
1038
|
+
}
|
1039
|
+
}
|
1040
|
+
}
|
1041
|
+
}
|
1042
|
+
|
1043
|
+
}
|
1044
|
+
if (enabled !== false && segmentChanged) {
|
1045
|
+
this._segments.calcSegmentOrder(this._rids);
|
1046
|
+
change = true;
|
1047
|
+
}
|
1048
|
+
if(change) {
|
1049
|
+
this.dispatchGlobalChange();
|
1050
|
+
}
|
1051
|
+
}
|
1052
|
+
return change;
|
1053
|
+
|
1054
|
+
};
|
967
1055
|
|
968
1056
|
/**
|
969
1057
|
* @public
|
@@ -990,7 +1078,7 @@ DataTable.prototype.setSegmentSeparator = function(rid, enabled) {
|
|
990
1078
|
this._segments.calcSegmentOrder(this._rids);
|
991
1079
|
change = true;
|
992
1080
|
}
|
993
|
-
} else if(this._segments) {
|
1081
|
+
} else if(this._segments) { // mean remove separator
|
994
1082
|
let segment = this._segments.getSegment(rid);
|
995
1083
|
if(segment) {
|
996
1084
|
memberCount = segment.getChildCount();
|
@@ -1216,6 +1304,34 @@ DataTable.prototype.addSegmentChildren = function(segmentId, rids, dataIds) {
|
|
1216
1304
|
}
|
1217
1305
|
return false;
|
1218
1306
|
};
|
1307
|
+
|
1308
|
+
/** @public
|
1309
|
+
* @param {Array.<Object>} segmentArr Segment array that contain "segmentId", "rowIds" to set segment children
|
1310
|
+
* @return {boolean} Return true if there is any change
|
1311
|
+
*/
|
1312
|
+
DataTable.prototype.setSegmentChildren = function(segmentArr) {
|
1313
|
+
if(!this._segments) {
|
1314
|
+
return false;
|
1315
|
+
}
|
1316
|
+
this.removeAllSegmentChildren();
|
1317
|
+
let len = segmentArr.length;
|
1318
|
+
let dirty;
|
1319
|
+
for (let i = 0; i < len; i++) {
|
1320
|
+
let obj = segmentArr[i];
|
1321
|
+
if(this._segments.addSegmentChildren(obj.segmentId, obj.rowIds)) {
|
1322
|
+
dirty = true;
|
1323
|
+
}
|
1324
|
+
}
|
1325
|
+
if(dirty) {
|
1326
|
+
this._sort(null);
|
1327
|
+
this._dispatchPositionChange(); // Force rerendering, even if there is no position change
|
1328
|
+
|
1329
|
+
this.requestClassifying();
|
1330
|
+
return true;
|
1331
|
+
}
|
1332
|
+
|
1333
|
+
return false;
|
1334
|
+
};
|
1219
1335
|
/** @public
|
1220
1336
|
* @param {string} segmentId Row id
|
1221
1337
|
* @param {string} rid Row id
|
@@ -246,6 +246,8 @@ declare class DataView extends EventDispatcher {
|
|
246
246
|
|
247
247
|
public synchronizeRowOrder(): void;
|
248
248
|
|
249
|
+
public setSegmentSeparators(rowIds: (string)[]|null, enabled?: boolean|null): boolean;
|
250
|
+
|
249
251
|
public setSegmentSeparator(rowRef: string|number|null, enabled?: boolean|null): boolean;
|
250
252
|
|
251
253
|
public unsetAllSegmentSeparators(): boolean;
|
@@ -264,6 +266,8 @@ declare class DataView extends EventDispatcher {
|
|
264
266
|
|
265
267
|
public collapseSegment(rowRef: string|number|null, collapsed?: boolean|null): boolean;
|
266
268
|
|
269
|
+
public collapseSegments(rowIds: (string|number)[]|null, collapsed?: boolean|null): boolean;
|
270
|
+
|
267
271
|
public expandSegment(rowRef: string|number|null, expanded?: boolean|null): boolean;
|
268
272
|
|
269
273
|
public expandAllSegments(): boolean;
|
@@ -278,6 +282,8 @@ declare class DataView extends EventDispatcher {
|
|
278
282
|
|
279
283
|
public addSegmentChildren(segmentRef: string|number|null, rowRefs: (string|number)[]|null, dataIds?: (string)[]|null): boolean;
|
280
284
|
|
285
|
+
public setSegmentChildren(segmentArr: (any)[]|null): boolean;
|
286
|
+
|
281
287
|
public removeSegmentChild(segmentRef: string|number|null, rowRef: string|number|null): boolean;
|
282
288
|
|
283
289
|
public removeSegmentChildren(segmentRef: string|number|null, rowRefs: (string|number)[]|null): boolean;
|
@@ -2428,6 +2428,23 @@ DataView.prototype.synchronizeRowOrder = function() {
|
|
2428
2428
|
this._dt._sort(this._sortingDefs);
|
2429
2429
|
}
|
2430
2430
|
};
|
2431
|
+
/**
|
2432
|
+
* @public
|
2433
|
+
* @param {Array<string>} rowIds
|
2434
|
+
* @param {boolean=} enabled
|
2435
|
+
* @return {boolean} Return true if there is any change
|
2436
|
+
*/
|
2437
|
+
DataView.prototype.setSegmentSeparators = function(rowIds, enabled) {
|
2438
|
+
if(rowIds) {
|
2439
|
+
enabled = enabled !== false;
|
2440
|
+
if(enabled) {
|
2441
|
+
this.synchronizeRowOrder();
|
2442
|
+
}
|
2443
|
+
// TODO: Force expanding of segment before unsetting segment separator
|
2444
|
+
return this._dt.setSegmentSeparators(rowIds, enabled);
|
2445
|
+
}
|
2446
|
+
return false;
|
2447
|
+
};
|
2431
2448
|
/** Set visible row as segment separator (hidden or filtered rows cannot be a segment separator)
|
2432
2449
|
* @public
|
2433
2450
|
* @param {string|number} rowRef Row id or row index
|
@@ -2528,6 +2545,22 @@ DataView.prototype.collapseSegment = function(rowRef, collapsed) {
|
|
2528
2545
|
return false;
|
2529
2546
|
};
|
2530
2547
|
/** @public
|
2548
|
+
* @param {Array<string|number>} rowIds
|
2549
|
+
* @param {boolean=} collapsed
|
2550
|
+
* @return {boolean} Return true if there is any change
|
2551
|
+
*/
|
2552
|
+
DataView.prototype.collapseSegments = function(rowIds, collapsed) {
|
2553
|
+
collapsed = collapsed !== false;
|
2554
|
+
let segments = this._dt._getSegmentSeparators();
|
2555
|
+
if(segments) {
|
2556
|
+
if(segments.collapseSegments(rowIds, collapsed)) {
|
2557
|
+
this._refreshAndNotify(); // dispatch global change event
|
2558
|
+
return true;
|
2559
|
+
}
|
2560
|
+
}
|
2561
|
+
return false;
|
2562
|
+
};
|
2563
|
+
/** @public
|
2531
2564
|
* @param {string|number} rowRef Row id or row index
|
2532
2565
|
* @param {boolean=} expanded
|
2533
2566
|
* @return {boolean} Return true if there is any change
|
@@ -2606,6 +2639,16 @@ DataView.prototype.addSegmentChildren = function(segmentRef, rowRefs, dataIds) {
|
|
2606
2639
|
return false;
|
2607
2640
|
};
|
2608
2641
|
/** @public
|
2642
|
+
* @param {Array<Object>} segmentArr Segment array that contain "segmentId", "rowIds" to set segment children
|
2643
|
+
* @return {boolean} Return true if there is any change
|
2644
|
+
*/
|
2645
|
+
DataView.prototype.setSegmentChildren = function(segmentArr) {
|
2646
|
+
if(this._dt._getSegmentSeparators()) {
|
2647
|
+
return this._dt.setSegmentChildren(segmentArr);
|
2648
|
+
}
|
2649
|
+
return false;
|
2650
|
+
};
|
2651
|
+
/** @public
|
2609
2652
|
* @param {string|number} segmentRef Row id or row index
|
2610
2653
|
* @param {string|number} rowRef Row id, row index
|
2611
2654
|
* @return {boolean} Return true if there is any change
|
@@ -30,6 +30,8 @@ declare class SegmentCollection extends EventDispatcher {
|
|
30
30
|
|
31
31
|
public getSegmentIds(): (string)[];
|
32
32
|
|
33
|
+
public collapseSegments(segmentIds: (string)[]|null, bool?: boolean|null): boolean;
|
34
|
+
|
33
35
|
public collapseSegment(segmentId: string, bool?: boolean|null): boolean;
|
34
36
|
|
35
37
|
public expandSegment(segmentId: string, bool?: boolean|null): boolean;
|
@@ -208,6 +208,27 @@ SegmentCollection.prototype.getSegmentIds = function() {
|
|
208
208
|
};
|
209
209
|
|
210
210
|
|
211
|
+
/** @public
|
212
|
+
* @param {Array.<string>} segmentIds
|
213
|
+
* @param {boolean=} bool
|
214
|
+
* @return {boolean} Returns true if there is any change. Otherwise, returns false
|
215
|
+
*/
|
216
|
+
SegmentCollection.prototype.collapseSegments = function(segmentIds, bool) {
|
217
|
+
if(this._segmentCount) {
|
218
|
+
let dirty = 0;
|
219
|
+
let len = segmentIds.length;
|
220
|
+
for (let i = 0; i < len; i++) {
|
221
|
+
let rowId = segmentIds[i];
|
222
|
+
dirty |= this._segments[rowId].collapse(bool);
|
223
|
+
|
224
|
+
}
|
225
|
+
if(dirty) {
|
226
|
+
return true;
|
227
|
+
}
|
228
|
+
}
|
229
|
+
return false;
|
230
|
+
};
|
231
|
+
|
211
232
|
/** @public
|
212
233
|
* @param {string} segmentId
|
213
234
|
* @param {boolean=} bool
|
@@ -803,7 +803,15 @@ SortableTitlePlugin.prototype.isSorting = function () {
|
|
803
803
|
* @fires SortableTitlePlugin#columnSorted
|
804
804
|
*/
|
805
805
|
SortableTitlePlugin.prototype.sortColumn = function (colRef, sortOrder, opt_arg) {
|
806
|
-
this.
|
806
|
+
let sortOptions = this._prepareSorting(colRef, sortOrder);
|
807
|
+
this._sortColumn(sortOptions, opt_arg);
|
808
|
+
if (opt_arg && opt_arg["isUserAction"]) { // Currently, the 'isUserAction' flag is triggered by a user clicking on the title and clicking the filter dialog. TODO: preClicked should be firing too.
|
809
|
+
let ce = {};
|
810
|
+
ce["colIndex"] = sortOptions.colIndex;
|
811
|
+
ce["sortOrder"] = this.getSortOrder(sortOptions.colIndex);
|
812
|
+
ce["dataColumnName"] = this.getColumnSortingField(sortOptions.colIndex); // This should be deprecated
|
813
|
+
this._dispatch("clicked", ce);
|
814
|
+
}
|
807
815
|
};
|
808
816
|
|
809
817
|
/** Sort multiple columns at once
|
@@ -1202,14 +1210,6 @@ SortableTitlePlugin.prototype._proceedSorting = function (hitObj) {
|
|
1202
1210
|
if(grid && grid["focus"]) {
|
1203
1211
|
grid["focus"]();
|
1204
1212
|
}
|
1205
|
-
|
1206
|
-
if (this._hasListener("clicked")) {
|
1207
|
-
let ce = {};
|
1208
|
-
ce["colIndex"] = colIndex;
|
1209
|
-
ce["sortOrder"] = this.getSortOrder(colIndex);
|
1210
|
-
ce["dataColumnName"] = this.getColumnSortingField(colIndex); // This should be deprecated
|
1211
|
-
this._dispatch("clicked", ce);
|
1212
|
-
}
|
1213
1213
|
}
|
1214
1214
|
};
|
1215
1215
|
|
package/lib/grid/index.js
CHANGED
@@ -51,6 +51,8 @@ declare class RowSegmentingPlugin extends GridPlugin {
|
|
51
51
|
|
52
52
|
public _resolveDisplayColumn(): number;
|
53
53
|
|
54
|
+
public setSegmentSeparators(rowIds: (string)[]|null, enabled?: boolean|null): boolean;
|
55
|
+
|
54
56
|
public setSegmentSeparator(rowRef: string|number|null, enabled?: boolean|null): boolean;
|
55
57
|
|
56
58
|
public setSegmentClassification(rowRef: string|number|null, fields: string|(string)[]|null): boolean;
|
@@ -61,6 +63,8 @@ declare class RowSegmentingPlugin extends GridPlugin {
|
|
61
63
|
|
62
64
|
public isSegmentSeparator(rowRef: string|number|null): boolean;
|
63
65
|
|
66
|
+
public collapseSegments(rowIds: (string )[]|null, collapsed: (string )[]|null): boolean;
|
67
|
+
|
64
68
|
public collapseSegment(rowRef: string|number|null, collapsed?: boolean|null): boolean;
|
65
69
|
|
66
70
|
public expandSegment(rowRef: string|number|null, expanded?: boolean|null): boolean;
|
@@ -77,6 +81,8 @@ declare class RowSegmentingPlugin extends GridPlugin {
|
|
77
81
|
|
78
82
|
public addSegmentChild(segmentRef: string|number|null, rowRef: string|number|null): void;
|
79
83
|
|
84
|
+
public setSegmentChildren(segmentArr: (any)[]|null): void;
|
85
|
+
|
80
86
|
public addSegmentChildren(segmentRef: string|number|null, rowRefs: (string|number)[]|null): void;
|
81
87
|
|
82
88
|
public removeSegmentChild(segmentRef: string|number|null, rowRef: string|number|null): void;
|
@@ -220,24 +220,35 @@ RowSegmentingPlugin.prototype._refreshSegmentSeparator = function () {
|
|
220
220
|
var rowIds = dt.getAllRowIds();
|
221
221
|
var rowCount = rowIds.length;
|
222
222
|
var separatorMap = {};
|
223
|
+
var segmentArr = [];
|
224
|
+
var separatorArr = [];
|
225
|
+
var collapseArr = [];
|
223
226
|
for(var i = 0; i < rowCount; i++) {
|
224
227
|
rowId = rowIds[i];
|
225
228
|
rowData = this._rowGetter(dt.getRowData(rowId));
|
226
229
|
segmentId = rowData[this._segmentIdField];
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
230
|
+
if(segmentId == null) {
|
231
|
+
continue;
|
232
|
+
}
|
233
|
+
if(separatorMap[segmentId] == null) {
|
234
|
+
separatorMap[segmentId] = {
|
235
|
+
rowIds: [],
|
236
|
+
segmentId: rowId // Row id of parent
|
237
|
+
};
|
238
|
+
segmentArr.push(separatorMap[segmentId]);
|
239
|
+
separatorArr.push(rowId);
|
240
|
+
if (collapsingMap[segmentId] === true) { // TODO: Currenly is expand by default, then it need to only collapse some row from prev segment id
|
241
|
+
collapseArr.push(rowId);
|
237
242
|
}
|
238
|
-
|
243
|
+
} else {
|
244
|
+
// Add rowId to set segment separator
|
245
|
+
separatorMap[segmentId].rowIds.push(rowId);
|
239
246
|
}
|
247
|
+
this._prevSegmentBySegmentId = true;
|
240
248
|
}
|
249
|
+
this.setSegmentSeparators(separatorArr);
|
250
|
+
this.setSegmentChildren(segmentArr);
|
251
|
+
this.collapseSegments(collapseArr);
|
241
252
|
};
|
242
253
|
/** @public
|
243
254
|
* @param {Object=} host core grid instance
|
@@ -728,6 +739,20 @@ RowSegmentingPlugin.prototype._getDataView = function () {
|
|
728
739
|
return host ? host.getDataSource() : null;
|
729
740
|
};
|
730
741
|
|
742
|
+
/** Set specified row ids as a segment separator
|
743
|
+
* @public
|
744
|
+
* @param {Array<string>} rowIds
|
745
|
+
* @param {boolean=} enabled
|
746
|
+
* @return {boolean} Return true if there is any change
|
747
|
+
*/
|
748
|
+
RowSegmentingPlugin.prototype.setSegmentSeparators = function(rowIds, enabled) {
|
749
|
+
var dv = this._getDataView();
|
750
|
+
if(dv) {
|
751
|
+
return dv.setSegmentSeparators(rowIds, enabled);
|
752
|
+
}
|
753
|
+
return false;
|
754
|
+
};
|
755
|
+
|
731
756
|
/** Set specified row as a segment separator
|
732
757
|
* @public
|
733
758
|
* @param {string|number} rowRef Row id or row index
|
@@ -796,6 +821,21 @@ RowSegmentingPlugin.prototype.isSegmentSeparator = function(rowRef) {
|
|
796
821
|
return false;
|
797
822
|
};
|
798
823
|
|
824
|
+
/**
|
825
|
+
* @public
|
826
|
+
* @param {Array.<string >} rowIds
|
827
|
+
* @param {Array.<string >} collapsed
|
828
|
+
|
829
|
+
* @return {boolean} Return true if there is any change
|
830
|
+
*/
|
831
|
+
RowSegmentingPlugin.prototype.collapseSegments = function(rowIds, collapsed) {
|
832
|
+
var dv = this._getDataView();
|
833
|
+
if(dv) {
|
834
|
+
return dv.collapseSegments(rowIds, collapsed);
|
835
|
+
}
|
836
|
+
return false;
|
837
|
+
};
|
838
|
+
|
799
839
|
/** Hide all members in the segment
|
800
840
|
* @public
|
801
841
|
* @param {string|number} rowRef Row id or row index of the segment separator
|
@@ -888,6 +928,17 @@ RowSegmentingPlugin.prototype.addSegmentChild = function(segmentRef, rowRef) {
|
|
888
928
|
dv.addSegmentChild(segmentRef, rowRef, dataId);
|
889
929
|
}
|
890
930
|
};
|
931
|
+
|
932
|
+
/** @public
|
933
|
+
* @param {Array<Object>} segmentArr Segment array that contain "segmentId", "rowIds" to set segment children
|
934
|
+
*/
|
935
|
+
RowSegmentingPlugin.prototype.setSegmentChildren = function(segmentArr) {
|
936
|
+
let dv = this._getDataView();
|
937
|
+
if(dv) {
|
938
|
+
dv.setSegmentChildren(segmentArr);
|
939
|
+
}
|
940
|
+
};
|
941
|
+
|
891
942
|
/** @public
|
892
943
|
* @param {string|number} segmentRef Row id or row index
|
893
944
|
* @param {Array.<string|number>} rowRefs Array of row ids or row indices. If null is given, no child will be removed.
|