@refinitiv-ui/efx-grid 6.0.127 → 6.0.129
Sign up to get free protection for your applications and to get access to all the features.
- 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 +275 -32
- 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 +42 -16
- package/lib/rt-grid/es6/RowDefinition.js +12 -4
- 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.
|