@refinitiv-ui/efx-grid 6.0.147 → 6.0.149

Sign up to get free protection for your applications and to get access to all the features.
@@ -58,7 +58,7 @@ declare class SegmentCollection extends EventDispatcher {
58
58
 
59
59
  public fillSegments(rids: (string)[]|null): boolean;
60
60
 
61
- public calcSegmentOrder(rids: (string)[]|null): void;
61
+ public calcSegmentOrder(rids: (string)[]|null, useCache?: boolean|null): void;
62
62
 
63
63
  public logStructure(): string;
64
64
 
@@ -14,6 +14,7 @@ let SegmentCollection = function() {
14
14
  this._removalList = [];
15
15
 
16
16
  this._shared = {
17
+ segments: this._segments,
17
18
  childToSegment: {}, // child Id to segment Id
18
19
  dirtyCollapsingState: false,
19
20
  defaultCollapsing: false
@@ -74,10 +75,6 @@ SegmentCollection.prototype.dispose = function() {
74
75
  */
75
76
  SegmentCollection.prototype.addSegment = function(rid, childRids) {
76
77
  if(rid && !this._segments[rid]) {
77
- if(this.getParentRowId(rid)) {
78
- console.log("child of a segment cannot be set as a segment separator");
79
- return false;
80
- }
81
78
  let segment = this._segments[rid] = new Segment(rid, this._shared);
82
79
  segment.addEventListener("subSegmentAdded", this._onSubSegmentAdded);
83
80
  segment.addEventListener("subSegmentRemoved", this._onSubSegmentRemoved);
@@ -124,33 +121,41 @@ SegmentCollection.prototype.getParentRowId = function(rid) {
124
121
  */
125
122
  SegmentCollection.prototype.removeSegment = function(rid) {
126
123
  let segment = this._segments[rid];
127
- if(segment) {
128
- if(this._segmentCount <= 1) {
129
- return this.removeAllSegments();
130
- }
131
- if(segment.isSubSegment()) {
132
- this._removalList.push(segment.getId());
133
- }
134
- let subSegIds = segment.getSubSegmentIds();
135
- if(subSegIds) {
136
- let len = subSegIds.length;
137
- for(let i = 0; i < len; ++i) {
138
- let subSegId = subSegIds[i];
139
- if(this._segments[subSegId]) {
140
- this._removalList.push(subSegId);
141
- delete this._segments[subSegId]; // Slow
142
- --this._segmentCount;
143
- }
124
+ if(!segment) {
125
+ return false;
126
+ }
127
+
128
+ if(this._segmentCount <= 1) {
129
+ return this.removeAllSegments();
130
+ }
131
+ let subSegment = segment.isSubSegment();
132
+ if(subSegment) {
133
+ this._removalList.push(segment.getId());
134
+ }
135
+ let subSegIds = segment.getSubSegmentIds();
136
+ if(subSegIds) {
137
+ let len = subSegIds.length;
138
+ for(let i = 0; i < len; ++i) {
139
+ let subSegId = subSegIds[i];
140
+ if(this._segments[subSegId]) {
141
+ this._removalList.push(subSegId);
142
+ delete this._segments[subSegId]; // Slow
143
+ --this._segmentCount;
144
144
  }
145
145
  }
146
- segment.removeAllChildren(); // This is important for updating childToSegment
147
- segment.dispose();
148
-
149
- delete this._segments[rid]; // Slow
150
- --this._segmentCount;
151
- return true;
152
146
  }
153
- return false;
147
+ if(!subSegment) {
148
+ let parentSeg = segment.getParent();
149
+ if(parentSeg) { // Move existing children to its parent
150
+ parentSeg.addChildren(segment.getChildIds()); // WARNING: passing private member
151
+ }
152
+ }
153
+ segment.removeAllChildren(); // This is important for updating childToSegment
154
+ segment.dispose();
155
+
156
+ delete this._segments[rid]; // Slow
157
+ --this._segmentCount;
158
+ return true;
154
159
  };
155
160
  /** @public
156
161
  * @return {boolean} Returns true if there is any change. Otherwise, returns false
@@ -163,6 +168,7 @@ SegmentCollection.prototype.removeAllSegments = function() {
163
168
  this._segments = {};
164
169
  this._segmentCount = 0;
165
170
  this._segmentList = null;
171
+ this._shared.segments = this._segments;
166
172
  this._shared.childToSegment = {};
167
173
 
168
174
  this._classification = this._classifierChanged = false;
@@ -288,7 +294,7 @@ SegmentCollection.prototype.getCollapsedRows = function() {
288
294
  collapsedRids = {};
289
295
  for(let rid in segmentSeparators) {
290
296
  let segment = segmentSeparators[rid];
291
- if(!segment.isSubSegment()) {
297
+ if(segment.isRootSegment()) {
292
298
  if(segment.getCollapsingStates(collapsedRids)) {
293
299
  ++count;
294
300
  }
@@ -300,6 +306,31 @@ SegmentCollection.prototype.getCollapsedRows = function() {
300
306
  return this._collapsedRids;
301
307
  };
302
308
 
309
+ /** Invalidate segment order cache, if the given row id is a segment separator
310
+ * @private
311
+ * @param {string|Array.<string>} segmentIds
312
+ * @returns {boolean} Returns true if there is any change
313
+ */
314
+ SegmentCollection.prototype._invalidateSegmentOrder = function(segmentIds) {
315
+ if(this._segmentList) {
316
+ if(typeof segmentIds === "string") {
317
+ if(this._segments[segmentIds]) {
318
+ this._segmentList = null;
319
+ return true;
320
+ }
321
+ } else if(Array.isArray(segmentIds)) {
322
+ let len = segmentIds.length;
323
+ for(let i = 0; i < len; ++i) {
324
+ let segmentId = segmentIds[i];
325
+ if(this._segments[segmentId]) {
326
+ this._segmentList = null;
327
+ return true;
328
+ }
329
+ }
330
+ }
331
+ }
332
+ return false;
333
+ };
303
334
  /** @public
304
335
  * @param {string} segmentId
305
336
  * @param {string} rid
@@ -309,6 +340,8 @@ SegmentCollection.prototype.getCollapsedRows = function() {
309
340
  SegmentCollection.prototype.addSegmentChild = function(segmentId, rid, dataId) {
310
341
  let segment = this._segments[segmentId];
311
342
  if(segment && !segment.isSubSegment()) {
343
+ // If a segment becomes a child of other segment, then the segment order needs to be recalculated
344
+ this._invalidateSegmentOrder(rid);
312
345
  return segment.addChild(rid, dataId);
313
346
  }
314
347
  return false;
@@ -322,11 +355,14 @@ SegmentCollection.prototype.addSegmentChild = function(segmentId, rid, dataId) {
322
355
  SegmentCollection.prototype.addSegmentChildren = function(segmentId, rids, dataIds) {
323
356
  let segment = this._segments[segmentId];
324
357
  if(segment && !segment.isSubSegment()) {
358
+ // If a segment becomes a child of other segment, then the segment order needs to be recalculated
359
+ this._invalidateSegmentOrder(rids);
325
360
  return segment.addChildren(rids, dataIds);
326
361
  }
327
362
  return false;
328
363
  };
329
- /** @public
364
+ /** This only works for immediate children of the specified segment
365
+ * @public
330
366
  * @param {string} segmentId
331
367
  * @param {string} rid
332
368
  * @return {boolean} Returns true if there is any change. Otherwise, returns false
@@ -346,6 +382,7 @@ SegmentCollection.prototype.containsSegmentChild = function(segmentId, rid) {
346
382
  SegmentCollection.prototype.removeSegmentChild = function(segmentId, rid) {
347
383
  let segment = this._segments[segmentId];
348
384
  if(segment) {
385
+ this._invalidateSegmentOrder(rid);
349
386
  return segment.removeChild(rid);
350
387
  }
351
388
  return false;
@@ -358,6 +395,7 @@ SegmentCollection.prototype.removeSegmentChild = function(segmentId, rid) {
358
395
  SegmentCollection.prototype.removeSegmentChildren = function(segmentId, rids) {
359
396
  let segment = this._segments[segmentId];
360
397
  if(segment) {
398
+ this._invalidateSegmentOrder(rids);
361
399
  return segment.removeChildren(rids);
362
400
  }
363
401
  return false;
@@ -377,6 +415,7 @@ SegmentCollection.prototype.removeAllSegmentChildren = function() {
377
415
  }
378
416
 
379
417
  if(dirty) {
418
+ this._segmentList = null; // WARNING: not optimized
380
419
  this.classify(null);
381
420
  }
382
421
 
@@ -435,10 +474,14 @@ SegmentCollection.prototype.fillSegments = function(rids) {
435
474
  };
436
475
  /** @public
437
476
  * @param {Array.<string>} rids
477
+ * @param {boolean=} useCache=false If this is true, skip the calculation when there is already a cache for segment order
438
478
  */
439
- SegmentCollection.prototype.calcSegmentOrder = function(rids) {
479
+ SegmentCollection.prototype.calcSegmentOrder = function(rids, useCache) {
440
480
  let segmentList = this._segmentList;
441
481
  if(segmentList) {
482
+ if(useCache) {
483
+ return; // Use previous cache for segment order
484
+ }
442
485
  segmentList.length = 0;
443
486
  } else {
444
487
  segmentList = this._segmentList = [];
@@ -452,9 +495,10 @@ SegmentCollection.prototype.calcSegmentOrder = function(rids) {
452
495
  let rid = rids[i];
453
496
  let segment = segmentSeparators[rid];
454
497
  if(segment) {
455
- if(!segment.isSubSegment()) {
498
+ if(segment.isRootSegment()) {
456
499
  this._segmentList.push(segment);
457
500
  segment.setOrder(++order); // WARNING: Segments and sub segments start with 1
501
+ segment.updateTreeStructure(0);
458
502
  }
459
503
  if(--segmentCount <= 0) {
460
504
  break;
@@ -478,7 +522,7 @@ SegmentCollection.prototype.getSegmentValues = function(rids, partial) {
478
522
  let prevSegment = null;
479
523
  let segmentValues = new Array(rowCount);
480
524
  let segmentVal = 0;
481
- let highestVal = -10;
525
+ let highestVal = 0;
482
526
  let offset = 0;
483
527
  for(let r = 0; r < rowCount; ++r) {
484
528
  let rid = rids[r];
@@ -486,7 +530,7 @@ SegmentCollection.prototype.getSegmentValues = function(rids, partial) {
486
530
  if(curSegment) { // segment separator
487
531
  segmentVal = curSegment.getOrder() * 100;
488
532
  offset = 0;
489
- if(!curSegment.isSubSegment()) {
533
+ if(curSegment.isRootSegment()) {
490
534
  if(prevSegment !== curSegment) {
491
535
  prevSegment = curSegment;
492
536
  highestVal = curSegment.getLastOrder() * 100;
@@ -498,12 +542,14 @@ SegmentCollection.prototype.getSegmentValues = function(rids, partial) {
498
542
  curSegment = segmentSeparators[parentId];
499
543
  segmentVal = curSegment.getOrder() * 100;
500
544
  offset = 1;
501
- if(partial) {
545
+ if(partial) { // This fixes the out of order sub segment
502
546
  highestVal = curSegment.getLastOrder() * 100;
503
547
  }
504
548
  } else { // row outside of segments
505
549
  if(highestVal) {
506
- segmentVal = highestVal;
550
+ if(segmentVal < highestVal) {
551
+ segmentVal = highestVal;
552
+ }
507
553
  offset = 10;
508
554
  } else {
509
555
  segmentVal = offset = 0;
@@ -527,7 +573,10 @@ SegmentCollection.prototype.logStructure = function() {
527
573
  let segmentCount = segmentList.length;
528
574
  let lines = [];
529
575
  for(let i = 0; i < segmentCount; ++i) {
530
- segmentList[i].log(lines);
576
+ let segment = segmentList[i];
577
+ if(segment.isRootSegment()) {
578
+ segment.log(lines);
579
+ }
531
580
  }
532
581
 
533
582
  return lines.join("\n");
@@ -537,10 +586,14 @@ SegmentCollection.prototype.logStructure = function() {
537
586
  */
538
587
  SegmentCollection.prototype.logRowIdMap = function() {
539
588
  let lines = [];
589
+ let segmentSeparators = this._segments;
540
590
  let childToSegmentId = this._shared.childToSegment;
541
591
  for(let rid in childToSegmentId) {
542
592
  let segmentId = childToSegmentId[rid];
543
- lines.push(rid + " > " + segmentId);
593
+ let segment = segmentSeparators[segmentId];
594
+ if(!segment || !segment.isSubSegment()) {
595
+ lines.push(rid + " > " + segmentId);
596
+ }
544
597
  }
545
598
 
546
599
  return lines.join("\n");
@@ -622,7 +622,7 @@ Core.prototype._hasPendingRowChange = false;
622
622
  * @return {string}
623
623
  */
624
624
  Core.getVersion = function () {
625
- return "5.1.137";
625
+ return "5.1.139";
626
626
  };
627
627
  /** {@link ElementWrapper#dispose}
628
628
  * @override
package/lib/grid/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  import {Grid} from "./lib/efx-grid.js";
2
2
  export {Grid}
3
- window.EFX_GRID = { version: "6.0.147" };
3
+ window.EFX_GRID = { version: "6.0.149" };
@@ -23,6 +23,7 @@ declare namespace RowSegmentingPlugin {
23
23
  rowSpanningField?: string|null,
24
24
  segmentIdField?: string|null,
25
25
  collapsingField?: string|null,
26
+ parentIdField?: string|null,
26
27
  defaultCollapsing?: boolean|null,
27
28
  displayColumn?: (string|number)|null
28
29
  };
@@ -20,6 +20,7 @@ import { Conflator } from "../../tr-grid-util/es6/Conflator.js";
20
20
  * @property {string=} rowSpanningField="ROW_SPANNING" Field to be used for spanning segment header rows based on the field values
21
21
  * @property {string=} segmentIdField="" Field used for initializing segments based on text id
22
22
  * @property {string=} collapsingField="" Field used for indicating that the corresponding segment row is collapsed
23
+ * @property {string=} parentIdField="" Field used for specifying parent segment of the row
23
24
  * @property {boolean=} defaultCollapsing=false If enabled, any newly created segment will be collapsed by default
24
25
  * @property {(string|number)=} displayColumn=null Render tags in the given column. It can be either the column index, column ID, or field
25
26
  */
@@ -105,6 +106,10 @@ RowSegmentingPlugin.prototype._segmentIdField = "";
105
106
  * @private
106
107
  */
107
108
  RowSegmentingPlugin.prototype._collapsingField = "";
109
+ /** @type {string}
110
+ * @private
111
+ */
112
+ RowSegmentingPlugin.prototype._parentIdField = "";
108
113
  /** @type {number}
109
114
  * @private
110
115
  */
@@ -241,17 +246,26 @@ RowSegmentingPlugin.prototype.requestSeparatorRefresh = function () {
241
246
  let separatorArr = [];
242
247
  let collapsingAry = [];
243
248
  let expandingAry = [];
249
+ let parentId = "";
244
250
  for(let i = 0; i < rowCount; i++) {
245
251
  rowId = rowIds[i];
246
252
  rowData = this._rowGetter(dt.getRowData(rowId));
247
253
  segmentId = rowData[this._segmentIdField];
248
- if(segmentId == null) {
254
+ parentId = rowData[this._parentIdField];
255
+ if(segmentId == null && parentId == null) {
249
256
  continue;
250
257
  }
258
+ this._prevSegmentBySegmentId = true;
259
+
251
260
  let segmentInfo = segmentMap[segmentId];
261
+ let parentInfo = parentId !== segmentId ? segmentMap[parentId] : null; // WARNING: parent must exist beforehand
252
262
  if(segmentInfo) {
263
+ if(parentInfo) {
264
+ segmentInfo = parentInfo;
265
+ parentInfo = null;
266
+ }
253
267
  segmentInfo.rowIds.push(rowId);
254
- } else {
268
+ } else if(segmentId) {
255
269
  segmentInfo = segmentMap[segmentId] = {
256
270
  rowIds: [],
257
271
  segmentId: rowId
@@ -268,7 +282,10 @@ RowSegmentingPlugin.prototype.requestSeparatorRefresh = function () {
268
282
  }
269
283
  }
270
284
  }
271
- this._prevSegmentBySegmentId = true;
285
+
286
+ if(parentInfo) {
287
+ parentInfo.rowIds.push(rowId);
288
+ }
272
289
  }
273
290
  if(segmentArr.length) {
274
291
  this.setSegmentSeparators(separatorArr); // TODO: This method can be merged into setSegmentChildren
@@ -335,6 +352,9 @@ RowSegmentingPlugin.prototype.config = function (options) {
335
352
  if (option.collapsingField != null) {
336
353
  this._collapsingField = option.collapsingField;
337
354
  }
355
+ if (option.parentIdField != null) {
356
+ this._parentIdField = option.parentIdField;
357
+ }
338
358
  if (option.predefinedColors != null && typeof option.predefinedColors === "object") {
339
359
  this._predefinedColors = option.predefinedColors;
340
360
  }
@@ -418,6 +438,9 @@ RowSegmentingPlugin.prototype.getConfigObject = function (gridOptions) {
418
438
  if(this._collapsingField) {
419
439
  extOptions.collapsingField = this._collapsingField;
420
440
  }
441
+ if(this._parentIdField) {
442
+ extOptions.parentIdField = this._parentIdField;
443
+ }
421
444
  if(this._defaultCollapsing) {
422
445
  extOptions.defaultCollapsing = true;
423
446
  }
@@ -445,7 +468,32 @@ RowSegmentingPlugin.prototype.getConfigObject = function (gridOptions) {
445
468
  return obj;
446
469
  };
447
470
 
448
-
471
+ /** @private
472
+ * @function
473
+ * @param {!Object} obj
474
+ * @param {string} field
475
+ * @param {*} val
476
+ */
477
+ let _setObjectValue = function(obj, field, val) {
478
+ if(field) {
479
+ if(!obj.values) {
480
+ obj.values = {};
481
+ }
482
+ obj.values[field] = val;
483
+ }
484
+ };
485
+ /** @private
486
+ * @function
487
+ * @param {!Object} obj
488
+ * @param {string} field
489
+ */
490
+ let _deleteObjectValue = function(obj, field) {
491
+ if(field && obj.values) {
492
+ if(obj.values[field]) {
493
+ delete obj.values[field]; // Slow
494
+ }
495
+ }
496
+ };
449
497
  /** @public
450
498
  * @param {Object} rowData row config object
451
499
  * @param {string} rowId
@@ -453,37 +501,35 @@ RowSegmentingPlugin.prototype.getConfigObject = function (gridOptions) {
453
501
  */
454
502
  RowSegmentingPlugin.prototype.getRowConfigObject = function (rowData, rowId) {
455
503
  let obj = rowData || {};
456
-
457
- if(!this._segmentIdField) {
504
+ let segmentIdField = this._segmentIdField;
505
+ if(!segmentIdField) {
458
506
  return obj;
459
507
  }
460
508
 
461
- if(obj.values) {
462
- if(obj.values[this._segmentIdField]) {
463
- delete obj.values[this._segmentIdField]; // clear only segmentIdField
464
- }
465
- }
509
+ _deleteObjectValue(obj, segmentIdField);
510
+ _deleteObjectValue(obj, this._parentIdField);
466
511
 
467
- if(this.isSegmentSeparator(rowId)) {
468
- if(!obj.values) {
469
- obj.values = {};
470
- }
471
- obj.values[this._segmentIdField] = ++this._runningId;
512
+ let dv = this._getDataView();
513
+ let segment = dv.getSegment(rowId);
514
+ if(segment) {
515
+ _setObjectValue(obj, segmentIdField, ++this._runningId);
516
+ segment.runningId = this._runningId; // WANRING: Add
517
+
518
+ let collapsed = segment.isCollapsed();
519
+ _setObjectValue(obj, this._collapsingField, collapsed);
472
520
 
473
- let collapsed = this.isSegmentCollapsed(rowId);
474
- if(this._collapsingField) {
475
- obj.values[this._collapsingField] = collapsed;
476
- }
477
521
  if(obj["collapsed"] == null) { // Avoid overriding value from real-time grid
478
522
  obj["collapsed"] = collapsed;
479
523
  }
480
- } else {
481
- let parentId = this.getSegmentParentRowId(rowId);
482
- if(parentId) {
483
- if(!obj.values) {
484
- obj.values = {};
485
- }
486
- obj.values[this._segmentIdField] = this._runningId;
524
+ }
525
+
526
+ let parentSegment = dv.getSegmentParent(rowId);
527
+ if(parentSegment) {
528
+ if(this._parentIdField) {
529
+ // WARNING: this assumes the parent segment is always appeared before this row id
530
+ _setObjectValue(obj, this._parentIdField, parentSegment.runningId || this._runningId);
531
+ } else if(!segment) {
532
+ _setObjectValue(obj, segmentIdField, this._runningId);
487
533
  }
488
534
  }
489
535
 
@@ -601,12 +647,8 @@ RowSegmentingPlugin.prototype._hasSegmentation = function (settings) {
601
647
  RowSegmentingPlugin.prototype.getSegmentParentRowId = function (rowRef) {
602
648
  let dv = this._getDataView();
603
649
  if(dv) {
604
- let rowId = "";
605
- if(typeof rowRef === "number") {
606
- rowId = dv.getRowId(rowRef); // WARNING: This is very slow
607
- } else {
608
- rowId = rowRef;
609
- }
650
+ // WARNING: getRowId is slow
651
+ let rowId = (typeof rowRef === "number") ? dv.getRowId(rowRef) : rowRef;
610
652
  return dv.getSegmentParentRowId(rowId);
611
653
  }
612
654
  return "";
@@ -711,9 +753,10 @@ RowSegmentingPlugin.prototype._updateHeader = function (settings, firstRowIndex,
711
753
  } else {
712
754
  arg.groupLevel = 0;
713
755
  let indentLevel = 0;
714
- let parentId = this.getSegmentParentRowId(rowId);
756
+ let parentId = dv.getSegmentParentRowId(rowId);
715
757
  if(parentId) {
716
- indentLevel = 1; // TODO: Provide a way for segmenting multiple levels. Currently, just one level is supported.
758
+ let parentSegment = dv.getSegment(parentId);
759
+ indentLevel = parentSegment ? parentSegment.getSegmentLevel() + 1 : 1;
717
760
  arg.nonGroupRow = false;
718
761
  let parentRowData = parentRows[parentId];
719
762
  if (!parentRowData) {
@@ -82,7 +82,7 @@ declare class DataTable extends DataCache {
82
82
 
83
83
  public setSegmentSeparators(rids: (string)[]|null, enabled?: boolean|null): boolean;
84
84
 
85
- public setSegmentSeparator(rid: string, enabled?: boolean|null): boolean;
85
+ public setSegmentSeparator(rid: string, options?: any): boolean;
86
86
 
87
87
  public unsetAllSegmentSeparators(): boolean;
88
88
 
@@ -248,7 +248,7 @@ declare class DataView extends EventDispatcher {
248
248
 
249
249
  public setSegmentSeparators(rowIds: (string)[]|null, enabled?: boolean|null): boolean;
250
250
 
251
- public setSegmentSeparator(rowRef: string|number|null, enabled?: boolean|null): boolean;
251
+ public setSegmentSeparator(rowRef: string|number|null, options?: any): boolean;
252
252
 
253
253
  public unsetAllSegmentSeparators(): boolean;
254
254
 
@@ -11,6 +11,8 @@ declare class Segment extends EventDispatcher {
11
11
 
12
12
  public getParentId(): string;
13
13
 
14
+ public getParent(): Segment|null;
15
+
14
16
  public getSubSegmentIds(out_ary?: (string)[]|null): (string)[]|null;
15
17
 
16
18
  public addChild(rid: string, dataId?: string|null): boolean;
@@ -19,6 +21,8 @@ declare class Segment extends EventDispatcher {
19
21
 
20
22
  public containsChild(rid: string): boolean;
21
23
 
24
+ public getChildIndex(rid: string): number;
25
+
22
26
  public removeChild(rid: string): boolean;
23
27
 
24
28
  public removeChildren(rids: (string)[]|null): boolean;
@@ -31,6 +35,8 @@ declare class Segment extends EventDispatcher {
31
35
 
32
36
  public getChildCount(): number;
33
37
 
38
+ public markCollapsingStateDirty(): void;
39
+
34
40
  public getClassification(): (string)[]|null;
35
41
 
36
42
  public setClassification(fields: string|(string)[]|null): boolean;
@@ -41,10 +47,16 @@ declare class Segment extends EventDispatcher {
41
47
 
42
48
  public isSubSegment(): boolean;
43
49
 
50
+ public isRootSegment(): boolean;
51
+
44
52
  public getFirstAncestor(): Segment|null;
45
53
 
46
54
  public getAllSubSegments(out_ary?: (Segment)[]|null): (Segment)[]|null;
47
55
 
56
+ public updateTreeStructure(counter: number): number;
57
+
58
+ public calcSubSegmentOrder(counter: number): number;
59
+
48
60
  public getSegmentLevel(): number;
49
61
 
50
62
  public setRowData(rows?: any, clsSource?: any): void;
@@ -65,7 +77,9 @@ declare class Segment extends EventDispatcher {
65
77
 
66
78
  public setOrder(val: number): void;
67
79
 
68
- public log(lines?: (string)[]|null): (string)[];
80
+ public setLastOrder(val: number): number;
81
+
82
+ public log(lines?: (string)[]|null, tabLevel?: number|null): (string)[];
69
83
 
70
84
  }
71
85
 
@@ -58,7 +58,7 @@ declare class SegmentCollection extends EventDispatcher {
58
58
 
59
59
  public fillSegments(rids: (string)[]|null): boolean;
60
60
 
61
- public calcSegmentOrder(rids: (string)[]|null): void;
61
+ public calcSegmentOrder(rids: (string)[]|null, useCache?: boolean|null): void;
62
62
 
63
63
  public logStructure(): string;
64
64
 
package/lib/versions.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "tr-grid-util": "1.3.174",
3
3
  "tr-grid-printer": "1.0.18",
4
4
  "@grid/column-dragging": "1.0.21",
5
- "@grid/row-segmenting": "2.0.1",
5
+ "@grid/row-segmenting": "2.0.2",
6
6
  "@grid/statistics-row": "1.0.17",
7
7
  "@grid/zoom": "1.0.13",
8
8
  "tr-grid-auto-tooltip": "1.1.9",
package/package.json CHANGED
@@ -69,5 +69,5 @@
69
69
  "publishConfig": {
70
70
  "access": "public"
71
71
  },
72
- "version": "6.0.147"
72
+ "version": "6.0.149"
73
73
  }