@refinitiv-ui/efx-grid 6.0.137 → 6.0.139

Sign up to get free protection for your applications and to get access to all the features.
@@ -17,8 +17,8 @@ import { Conflator } from "../../tr-grid-util/es6/Conflator.js";
17
17
  * @property {Function=} segmentSeparatorBinding=null Logic that will be executed on each segment separator row
18
18
  * @property {Function=} nonSegmentSeparatorBinding=null Logic that will be executed for all non segment separator row
19
19
  * @property {Function=} sortingLogic=null Logic to be used by sortSegments method
20
- * @property {string=} rowSpanningField="ROW_SPANNING" selected field for apply row spanning in row separator
21
- * @property {string=} segmentIdField="SEGMENT_ID" selected field for set segment separator row
20
+ * @property {string=} rowSpanningField="ROW_SPANNING" Field to be used for spanning segment header rows based on the field values
21
+ * @property {string=} segmentIdField="" Field to be used for initializing segments based on text id
22
22
  * @property {(string|number)=} displayColumn=null Render tags in the given column. It can be either the column index, column ID, or field.
23
23
  */
24
24
 
@@ -33,15 +33,15 @@ import { Conflator } from "../../tr-grid-util/es6/Conflator.js";
33
33
  * @param {RowSegmentingPlugin~Options=} options
34
34
  * @extends {GridPlugin}
35
35
  */
36
- var RowSegmentingPlugin = function (options) {
37
- var t = this;
36
+ let RowSegmentingPlugin = function (options) {
37
+ let t = this;
38
38
  t._onPreSectionDataBinding = t._onPreSectionDataBinding.bind(t);
39
39
  t._updateHeader = t._updateHeader.bind(t);
40
40
  t._onArrowClick = t._onArrowClick.bind(t);
41
41
  t._onColumnIndexChanged = t._onColumnIndexChanged.bind(t);
42
42
  t._rtSortingLogic = t._rtSortingLogic.bind(t);
43
- t._refreshSegmentSeparator = t._refreshSegmentSeparator.bind(t);
44
- t._separatorRefreshConflator = new Conflator(10, t._refreshSegmentSeparator);
43
+ t.requestSeparatorRefresh = t.requestSeparatorRefresh.bind(t);
44
+ t._separatorRefreshConflator = new Conflator(10, t.requestSeparatorRefresh);
45
45
  t._columnIndexChangedConflator = new Conflator(10, t._onColumnIndexChanged);
46
46
 
47
47
  t._hosts = [];
@@ -92,7 +92,7 @@ RowSegmentingPlugin.prototype._rowSpanningField = "ROW_SPANNING";
92
92
  /** @type {string}
93
93
  * @private
94
94
  */
95
- RowSegmentingPlugin.prototype._segmentIdField = "SEGMENT_ID";
95
+ RowSegmentingPlugin.prototype._segmentIdField = "";
96
96
  /** @type {number}
97
97
  * @private
98
98
  */
@@ -155,7 +155,7 @@ RowSegmentingPlugin.prototype.initialize = function (host, options) {
155
155
 
156
156
  this.config(options);
157
157
 
158
- var enabled = this._colorTag != null ? this._colorTag : ElfUtil.isHaloTheme();
158
+ let enabled = this._colorTag != null ? this._colorTag : ElfUtil.isHaloTheme();
159
159
  RowPainter.disableColorTag(host, enabled === false);
160
160
 
161
161
  if (this._predefinedColors != null) {
@@ -170,35 +170,32 @@ RowSegmentingPlugin.prototype.initialize = function (host, options) {
170
170
  RowPainter.enableHeaderMenu(host, enabled ? true : false);
171
171
  };
172
172
 
173
- /** request to set the segment separator with the segment ID field in row data
173
+ /** Request for updating the segment separators based on values from segment Id field in row data
174
174
  * @public
175
175
  */
176
176
  RowSegmentingPlugin.prototype.requestSeparatorRefresh = function () {
177
+ if(!this._segmentIdField) {
178
+ return;
179
+ }
177
180
  if(this._separatorRefreshConflator.conflate()) {
178
181
  return;
179
182
  }
180
- this._refreshSegmentSeparator();
181
- };
182
183
 
183
- /** remove all segment separators then set the segment separator with the segment ID field in row data
184
- * @private
185
- */
186
- RowSegmentingPlugin.prototype._refreshSegmentSeparator = function () {
187
- var dv = this._getDataView();
184
+ let dv = this._getDataView();
188
185
  if (!dv) { return; }
189
186
 
190
- var collapsingMap = {};
187
+ let collapsingMap = {};
191
188
  if (this._collapsingMap) {
192
189
  collapsingMap = this._collapsingMap;
193
190
  this._collapsingMap = null;
194
191
  }
195
192
 
196
- var rowId, rowData, segmentId;
197
- var dt = dv.getDataSource();
198
- var segmentRowIds = this.getSegmentIds() || [];
199
- var segmentCount = segmentRowIds.length;
193
+ let rowId, rowData, segmentId;
194
+ let dt = dv.getDataSource();
195
+ let segmentRowIds = this.getSegmentIds() || [];
196
+ let segmentCount = segmentRowIds.length;
200
197
  if (segmentCount){
201
- for(var s = 0; s < segmentCount; s++) {
198
+ for(let s = 0; s < segmentCount; s++) {
202
199
  rowId = segmentRowIds[s];
203
200
  rowData = this._rowGetter(dt.getRowData(rowId));
204
201
  segmentId = rowData[this._segmentIdField];
@@ -217,13 +214,13 @@ RowSegmentingPlugin.prototype._refreshSegmentSeparator = function () {
217
214
  // because their children has no segment-id.
218
215
  }
219
216
 
220
- var rowIds = dt.getAllRowIds();
221
- var rowCount = rowIds.length;
222
- var separatorMap = {};
223
- var segmentArr = [];
224
- var separatorArr = [];
225
- var collapseArr = [];
226
- for(var i = 0; i < rowCount; i++) {
217
+ let rowIds = dt.getAllRowIds();
218
+ let rowCount = rowIds.length;
219
+ let separatorMap = {};
220
+ let segmentArr = [];
221
+ let separatorArr = [];
222
+ let collapseArr = [];
223
+ for(let i = 0; i < rowCount; i++) {
227
224
  rowId = rowIds[i];
228
225
  rowData = this._rowGetter(dt.getRowData(rowId));
229
226
  segmentId = rowData[this._segmentIdField];
@@ -254,7 +251,7 @@ RowSegmentingPlugin.prototype._refreshSegmentSeparator = function () {
254
251
  * @param {Object=} host core grid instance
255
252
  */
256
253
  RowSegmentingPlugin.prototype.unload = function (host) {
257
- var at = this._hosts.indexOf(host);
254
+ let at = this._hosts.indexOf(host);
258
255
  if (at < 0) {
259
256
  return;
260
257
  }
@@ -276,7 +273,7 @@ RowSegmentingPlugin.prototype.unload = function (host) {
276
273
  RowSegmentingPlugin.prototype.config = function (options) {
277
274
  if (!options) { return; }
278
275
 
279
- var option = options.rowSegmenting;
276
+ let option = options.rowSegmenting;
280
277
  if (!option) { return; }
281
278
 
282
279
  if (typeof option.sortingLogic === "function") {
@@ -321,20 +318,18 @@ RowSegmentingPlugin.prototype.config = function (options) {
321
318
  this.addListener(option, "nonSegmentSeparatorBinding");
322
319
 
323
320
  // Collect collapsing states from configuration
324
- var collapsingMap = {};
325
- var dirty = false;
326
- var rows = options.rows;
327
- if (rows && rows.length) {
328
- var len = rows.length;
329
- for (var i = 0; i < len; i++) {
330
- var row = rows[i];
331
- if (row && typeof row === "object") {
332
- var segmentId = row.values ? row.values[this._segmentIdField] : null;
333
- if (segmentId && collapsingMap[segmentId] == null) {
334
- if (row["collapsed"] != null) {
335
- dirty = true;
336
- collapsingMap[segmentId] = row["collapsed"] ? true : false;
337
- }
321
+ let collapsingMap = {};
322
+ let dirty = false;
323
+ let rows = this._segmentIdField ? options.rows : null; // If there is no segment Id, collapsing states cannot be mapped to the inexistence segments
324
+ let len = rows ? rows.length : 0;
325
+ for (let i = 0; i < len; i++) {
326
+ let row = rows[i];
327
+ if (row && typeof row === "object") {
328
+ let segmentId = row.values ? row.values[this._segmentIdField] : null;
329
+ if (segmentId && collapsingMap[segmentId] == null) {
330
+ if (row["collapsed"] != null) {
331
+ dirty = true;
332
+ collapsingMap[segmentId] = row["collapsed"] ? true : false;
338
333
  }
339
334
  }
340
335
  }
@@ -352,9 +347,9 @@ RowSegmentingPlugin.prototype.config = function (options) {
352
347
  * @return {!Object}
353
348
  */
354
349
  RowSegmentingPlugin.prototype.getConfigObject = function (gridOptions) {
355
- var obj = gridOptions || {};
350
+ let obj = gridOptions || {};
356
351
 
357
- var extOptions = obj.rowSegmenting;
352
+ let extOptions = obj.rowSegmenting;
358
353
  if(!extOptions) {
359
354
  extOptions = obj.rowSegmenting = {};
360
355
  }
@@ -373,7 +368,7 @@ RowSegmentingPlugin.prototype.getConfigObject = function (gridOptions) {
373
368
  if(this._rowSpanningField != "ROW_SPANNING") {
374
369
  extOptions.rowSpanningField = this._rowSpanningField;
375
370
  }
376
- if(this._segmentIdField != "SEGMENT_ID") {
371
+ if(this._segmentIdField) {
377
372
  extOptions.segmentIdField = this._segmentIdField;
378
373
  }
379
374
 
@@ -407,8 +402,7 @@ RowSegmentingPlugin.prototype.getConfigObject = function (gridOptions) {
407
402
  * @return {!Object} return row config object with update special field data
408
403
  */
409
404
  RowSegmentingPlugin.prototype.getRowConfigObject = function (rowData, rowId) {
410
-
411
- var obj = rowData || {};
405
+ let obj = rowData || {};
412
406
 
413
407
  if(!this._segmentIdField) {
414
408
  return obj;
@@ -430,7 +424,7 @@ RowSegmentingPlugin.prototype.getRowConfigObject = function (rowData, rowId) {
430
424
  }
431
425
  obj.values[this._segmentIdField] = ++this._runningId;
432
426
  } else {
433
- var parentId = this.getSegmentParentRowId(rowId);
427
+ let parentId = this.getSegmentParentRowId(rowId);
434
428
  if(parentId) {
435
429
  if(!obj.values) {
436
430
  obj.values = {};
@@ -446,10 +440,10 @@ RowSegmentingPlugin.prototype.getRowConfigObject = function (rowData, rowId) {
446
440
  * @param {Object} predefinedColors Predefined color object map
447
441
  */
448
442
  RowSegmentingPlugin.prototype._injectStyles = function(predefinedColors) {
449
- var prefix = ".tr-grid." + RowSegmentingPlugin._controlClass + " .tr-lg .cell";
450
- var css = [];
451
- var value;
452
- for (var className in predefinedColors) {
443
+ let prefix = ".tr-grid." + RowSegmentingPlugin._controlClass + " .tr-lg .cell";
444
+ let css = [];
445
+ let value;
446
+ for (let className in predefinedColors) {
453
447
  css.push(prefix + "." + className + "::before");
454
448
  value = predefinedColors[className]["backgroundColor"];
455
449
  if (value) {
@@ -457,7 +451,7 @@ RowSegmentingPlugin.prototype._injectStyles = function(predefinedColors) {
457
451
  }
458
452
  }
459
453
 
460
- var host = this._hosts[0];
454
+ let host = this._hosts[0];
461
455
 
462
456
  if (this._styleTag) {
463
457
  if (this._styleTag.parentNode) {
@@ -516,12 +510,12 @@ RowSegmentingPlugin.prototype._clearSectionHeaderStyle = function () {
516
510
 
517
511
  /** @public */
518
512
  RowSegmentingPlugin.prototype.updateHeaders = function () {
519
- var host = this._hosts[0];
513
+ let host = this._hosts[0];
520
514
  if (!host) {
521
515
  return;
522
516
  }
523
- var settingList = host.getAllSectionSettings("content");
524
- for (var i = settingList.length; --i >= 0;) {
517
+ let settingList = host.getAllSectionSettings("content");
518
+ for (let i = settingList.length; --i >= 0;) {
525
519
  this._updateHeader(settingList[i]);
526
520
  }
527
521
  };
@@ -532,7 +526,7 @@ RowSegmentingPlugin.prototype.updateHeaders = function () {
532
526
  */
533
527
  RowSegmentingPlugin.prototype._hasSegmentation = function (settings) {
534
528
  if (settings && settings.getType() === "content") {
535
- var dv = settings.getDataSource();
529
+ let dv = settings.getDataSource();
536
530
  if (dv) {
537
531
  if(dv.hasSegmentation()) {
538
532
  dv._previouslyHasSegmentation = true; // Allow one more cycle to clean up styling
@@ -551,9 +545,9 @@ RowSegmentingPlugin.prototype._hasSegmentation = function (settings) {
551
545
  * @return {string} parent row id of this segmentation. If the parent row id for this segmentation cannot be found, return ""
552
546
  */
553
547
  RowSegmentingPlugin.prototype.getSegmentParentRowId = function (rowRef) {
554
- var dv = this._getDataView();
548
+ let dv = this._getDataView();
555
549
  if(dv) {
556
- var rowId = "";
550
+ let rowId = "";
557
551
  if(typeof rowRef === "number") {
558
552
  rowId = dv.getRowId(rowRef); // WARNING: This is very slow
559
553
  } else {
@@ -564,7 +558,7 @@ RowSegmentingPlugin.prototype.getSegmentParentRowId = function (rowRef) {
564
558
  return "";
565
559
  };
566
560
 
567
- /** @public
561
+ /** @private
568
562
  * @description Resolve display column from column id to column index
569
563
  * @return {number} return column index of display column
570
564
  */
@@ -600,32 +594,32 @@ RowSegmentingPlugin.prototype._updateHeader = function (settings, firstRowIndex,
600
594
  return;
601
595
  }
602
596
 
603
- var headerColumn = this._resolveDisplayColumn();
597
+ let headerColumn = this._resolveDisplayColumn();
604
598
  if(headerColumn < 0) {
605
599
  return;
606
600
  }
607
- var dv = settings.getDataSource();
608
- var dt = dv.getDataSource();
609
- var section = settings.getSection();
610
- var fi = (firstRowIndex != null) ? firstRowIndex : section.getFirstIndexInView();
611
- var li = (lastRowIndex != null) ? lastRowIndex : section.getLastIndexInView();
601
+ let dv = settings.getDataSource();
602
+ let dt = dv.getDataSource();
603
+ let section = settings.getSection();
604
+ let fi = (firstRowIndex != null) ? firstRowIndex : section.getFirstIndexInView();
605
+ let li = (lastRowIndex != null) ? lastRowIndex : section.getLastIndexInView();
612
606
 
613
- var arg = {};
607
+ let arg = {};
614
608
  arg.section = section;
615
609
  arg.colIndex = headerColumn;
616
610
 
617
- var colCount = section.getColumnCount();
618
- for (var c = 0; c < colCount; c++) {
611
+ let colCount = section.getColumnCount();
612
+ for (let c = 0; c < colCount; c++) {
619
613
  if(this._getColumnOption(c, "isCheckboxColumn")) {
620
614
  arg.checkboxColumnIndex = c;
621
615
  break;
622
616
  }
623
617
  }
624
- var cssField = this._cssField;
625
- var rowPainter = this._rowPainter;
626
- var parentRows = {};
627
- for (var r = fi; r <= li; r++) {
628
- var cell = section.getCell(headerColumn, r, false); // Work only one row
618
+ let cssField = this._cssField;
619
+ let rowPainter = this._rowPainter;
620
+ let parentRows = {};
621
+ for (let r = fi; r <= li; r++) {
622
+ let cell = section.getCell(headerColumn, r, false); // Work only one row
629
623
  if (!cell) { // There may be no header to be updated
630
624
  continue;
631
625
  }
@@ -635,22 +629,22 @@ RowSegmentingPlugin.prototype._updateHeader = function (settings, firstRowIndex,
635
629
  arg.rowData = this._getRow(dv, r); // Support composite and rt-grid
636
630
  arg.spanning = null;
637
631
  arg.content = null;
638
- var rowId = arg.rowId = dv.getRowId(r); // Slow
632
+ let rowId = arg.rowId = dv.getRowId(r); // Slow
639
633
  // TODO: Getting segment once for better performance
640
- var segmentSeparator = arg.segmentSeparator = dv.isSegmentSeparator(rowId);
634
+ let segmentSeparator = arg.segmentSeparator = dv.isSegmentSeparator(rowId);
641
635
  arg.collapsedSegment = arg.collapsed = segmentSeparator ? dv.isSegmentCollapsed(rowId) : false;
642
636
 
643
637
  if (segmentSeparator) {
644
638
  arg.groupLevel = dv.getSegmentLevel ? dv.getSegmentLevel(rowId) : 1;
645
639
  arg.indentSize = this._getIndentSize(arg.groupLevel - 1, true); // Group level starts from 1
646
640
  if(dv.getSegment) {
647
- var segment = dv.getSegment(rowId);
641
+ let segment = dv.getSegment(rowId);
648
642
  if(segment && arg.groupLevel > 1) { // Sub segment always has name
649
643
  arg.content = segment.getSubSegmentName();
650
644
  }
651
645
  }
652
646
 
653
- var spanning = arg.rowData[this._rowSpanningField];
647
+ let spanning = arg.rowData[this._rowSpanningField];
654
648
  if(spanning != null) {
655
649
  arg.spanning = !!spanning;
656
650
  }
@@ -662,12 +656,12 @@ RowSegmentingPlugin.prototype._updateHeader = function (settings, firstRowIndex,
662
656
  this._dispatch("segmentSeparatorBinding", arg);
663
657
  } else {
664
658
  arg.groupLevel = 0;
665
- var indentLevel = 0;
666
- var parentId = this.getSegmentParentRowId(rowId);
659
+ let indentLevel = 0;
660
+ let parentId = this.getSegmentParentRowId(rowId);
667
661
  if(parentId) {
668
662
  indentLevel = 1; // TODO: Provide a way for segmenting multiple levels. Currently, just one level is supported.
669
663
  arg.nonGroupRow = false;
670
- var parentRowData = parentRows[parentId];
664
+ let parentRowData = parentRows[parentId];
671
665
  if (!parentRowData) {
672
666
  parentRowData = parentRows[parentId] = this._rowGetter(dt.getRowData(parentId)); // We need to use Datable because parent row may be hidden
673
667
  }
@@ -690,11 +684,11 @@ RowSegmentingPlugin.prototype._updateHeader = function (settings, firstRowIndex,
690
684
  * @return {number}
691
685
  */
692
686
  RowSegmentingPlugin.prototype._getIndentSize = function (indentLevel, groupRow) {
693
- var indentSize = 0;
687
+ let indentSize = 0;
694
688
  if(this._indentSizes) {
695
689
  indentSize = this._indentSizes[0];
696
690
  if(indentLevel > 0) {
697
- var indentLimit = this._indentSizes.length;
691
+ let indentLimit = this._indentSizes.length;
698
692
  indentSize = indentLevel < indentLimit ? this._indentSizes[indentLevel] : this._indentSizes[indentLimit - 1];
699
693
  }
700
694
  } else if(indentLevel > 0) {
@@ -709,15 +703,15 @@ RowSegmentingPlugin.prototype._getIndentSize = function (indentLevel, groupRow)
709
703
  * @param {MouseEvent} e
710
704
  */
711
705
  RowSegmentingPlugin.prototype._onArrowClick = function (e) {
712
- var host = this._hosts[0];
713
- var info = host.getRelativePosition(e);
714
- var cellElem = info.cell ? info.cell.getElement() : null;
706
+ let host = this._hosts[0];
707
+ let info = host.getRelativePosition(e);
708
+ let cellElem = info.cell ? info.cell.getElement() : null;
715
709
  if(!cellElem) {
716
710
  return;
717
711
  }
718
712
 
719
- var rowIndex = info.rowIndex;
720
- var collapsedSegment = this.isSegmentCollapsed(rowIndex); // current state
713
+ let rowIndex = info.rowIndex;
714
+ let collapsedSegment = this.isSegmentCollapsed(rowIndex); // current state
721
715
  collapsedSegment = !collapsedSegment; // Toggle state
722
716
 
723
717
  if (collapsedSegment) {
@@ -735,7 +729,7 @@ RowSegmentingPlugin.prototype._onArrowClick = function (e) {
735
729
  * @return {Object} DataView instance
736
730
  */
737
731
  RowSegmentingPlugin.prototype._getDataView = function () {
738
- var host = this._hosts[0];
732
+ let host = this._hosts[0];
739
733
  return host ? host.getDataSource() : null;
740
734
  };
741
735
 
@@ -746,7 +740,7 @@ RowSegmentingPlugin.prototype._getDataView = function () {
746
740
  * @return {boolean} Return true if there is any change
747
741
  */
748
742
  RowSegmentingPlugin.prototype.setSegmentSeparators = function(rowIds, enabled) {
749
- var dv = this._getDataView();
743
+ let dv = this._getDataView();
750
744
  if(dv) {
751
745
  return dv.setSegmentSeparators(rowIds, enabled);
752
746
  }
@@ -760,7 +754,7 @@ RowSegmentingPlugin.prototype.setSegmentSeparators = function(rowIds, enabled) {
760
754
  * @return {boolean} Return true if there is any change
761
755
  */
762
756
  RowSegmentingPlugin.prototype.setSegmentSeparator = function(rowRef, enabled) {
763
- var dv = this._getDataView();
757
+ let dv = this._getDataView();
764
758
  if(dv) {
765
759
  return dv.setSegmentSeparator(rowRef, enabled);
766
760
  }
@@ -773,7 +767,7 @@ RowSegmentingPlugin.prototype.setSegmentSeparator = function(rowRef, enabled) {
773
767
  * @return {boolean}
774
768
  */
775
769
  RowSegmentingPlugin.prototype.setSegmentClassification = function(rowRef, fields) {
776
- var dv = this._getDataView();
770
+ let dv = this._getDataView();
777
771
  if(dv) {
778
772
  return dv.setSegmentClassification(rowRef, fields);
779
773
  }
@@ -784,7 +778,7 @@ RowSegmentingPlugin.prototype.setSegmentClassification = function(rowRef, fields
784
778
  * @return {boolean} Return true if there is any change
785
779
  */
786
780
  RowSegmentingPlugin.prototype.unsetAllSegmentSeparators = function() {
787
- var dv = this._getDataView();
781
+ let dv = this._getDataView();
788
782
  if(dv) {
789
783
  return dv.unsetAllSegmentSeparators();
790
784
  }
@@ -795,7 +789,7 @@ RowSegmentingPlugin.prototype.unsetAllSegmentSeparators = function() {
795
789
  * @return {boolean}
796
790
  */
797
791
  RowSegmentingPlugin.prototype.hasSegmentation = function() {
798
- var dv = this._getDataView();
792
+ let dv = this._getDataView();
799
793
  if(dv) {
800
794
  return dv.hasSegmentation();
801
795
  }
@@ -807,9 +801,9 @@ RowSegmentingPlugin.prototype.hasSegmentation = function() {
807
801
  * @return {boolean}
808
802
  */
809
803
  RowSegmentingPlugin.prototype.isSegmentSeparator = function(rowRef) {
810
- var dv = this._getDataView();
804
+ let dv = this._getDataView();
811
805
  if(dv) {
812
- var rowId = "";
806
+ let rowId = "";
813
807
  if(typeof rowRef === "number") {
814
808
  rowId = dv.getRowId(rowRef); // WARNING: This is very slow
815
809
  } else {
@@ -829,7 +823,7 @@ RowSegmentingPlugin.prototype.isSegmentSeparator = function(rowRef) {
829
823
  * @return {boolean} Return true if there is any change
830
824
  */
831
825
  RowSegmentingPlugin.prototype.collapseSegments = function(rowIds, collapsed) {
832
- var dv = this._getDataView();
826
+ let dv = this._getDataView();
833
827
  if(dv) {
834
828
  return dv.collapseSegments(rowIds, collapsed);
835
829
  }
@@ -843,7 +837,7 @@ RowSegmentingPlugin.prototype.collapseSegments = function(rowIds, collapsed) {
843
837
  * @return {boolean} Return true if there is any change
844
838
  */
845
839
  RowSegmentingPlugin.prototype.collapseSegment = function(rowRef, collapsed) {
846
- var dv = this._getDataView();
840
+ let dv = this._getDataView();
847
841
  if(dv) {
848
842
  return dv.collapseSegment(rowRef, collapsed);
849
843
  }
@@ -855,7 +849,7 @@ RowSegmentingPlugin.prototype.collapseSegment = function(rowRef, collapsed) {
855
849
  * @return {boolean} Return true if there is any change
856
850
  */
857
851
  RowSegmentingPlugin.prototype.expandSegment = function(rowRef, expanded) {
858
- var dv = this._getDataView();
852
+ let dv = this._getDataView();
859
853
  if(dv) {
860
854
  return dv.expandSegment(rowRef, expanded);
861
855
  }
@@ -865,7 +859,7 @@ RowSegmentingPlugin.prototype.expandSegment = function(rowRef, expanded) {
865
859
  * @return {boolean} Return true if there is any change
866
860
  */
867
861
  RowSegmentingPlugin.prototype.expandAllSegments = function() {
868
- var dv = this._getDataView();
862
+ let dv = this._getDataView();
869
863
  if(dv) {
870
864
  return dv.expandAllSegments();
871
865
  }
@@ -876,7 +870,7 @@ RowSegmentingPlugin.prototype.expandAllSegments = function() {
876
870
  * @return {boolean} Return true if only the given row is a collapsed segment separator
877
871
  */
878
872
  RowSegmentingPlugin.prototype.isSegmentCollapsed = function(rowRef) {
879
- var dv = this._getDataView();
873
+ let dv = this._getDataView();
880
874
  if(dv) {
881
875
  return dv.isSegmentCollapsed(rowRef);
882
876
  }
@@ -886,7 +880,7 @@ RowSegmentingPlugin.prototype.isSegmentCollapsed = function(rowRef) {
886
880
  * @param {Function} func By default, all row members are hidden in a collapsed segment
887
881
  */
888
882
  RowSegmentingPlugin.prototype.setSegmentCollapsingLogic = function(func) {
889
- var dv = this._getDataView();
883
+ let dv = this._getDataView();
890
884
  if(dv) {
891
885
  dv.setSegmentCollapsingLogic(func);
892
886
  }
@@ -897,7 +891,7 @@ RowSegmentingPlugin.prototype.setSegmentCollapsingLogic = function(func) {
897
891
  * @param {string|number} segmentRef Row id or row index
898
892
  */
899
893
  RowSegmentingPlugin.prototype.fillSegment = function(segmentRef) {
900
- var dv = this._getDataView();
894
+ let dv = this._getDataView();
901
895
  if(dv) {
902
896
  dv.fillSegment(segmentRef);
903
897
  }
@@ -906,7 +900,7 @@ RowSegmentingPlugin.prototype.fillSegment = function(segmentRef) {
906
900
  * @public
907
901
  */
908
902
  RowSegmentingPlugin.prototype.fillSegments = function() {
909
- var dv = this._getDataView();
903
+ let dv = this._getDataView();
910
904
  if(dv) {
911
905
  dv.fillSegments();
912
906
  }
@@ -916,11 +910,11 @@ RowSegmentingPlugin.prototype.fillSegments = function() {
916
910
  * @param {string|number} rowRef Row id, row index
917
911
  */
918
912
  RowSegmentingPlugin.prototype.addSegmentChild = function(segmentRef, rowRef) {
919
- var dv = this._getDataView();
913
+ let dv = this._getDataView();
920
914
  if(dv) {
921
- var dataId;
915
+ let dataId;
922
916
  if(this._realTimeGrid) {
923
- var rowDef = this._realTimeGrid.getRowDefinition(rowRef);
917
+ let rowDef = this._realTimeGrid.getRowDefinition(rowRef);
924
918
  if(rowDef) {
925
919
  dataId = rowDef.getDataId();
926
920
  }
@@ -944,15 +938,15 @@ RowSegmentingPlugin.prototype.setSegmentChildren = function(segmentArr) {
944
938
  * @param {Array.<string|number>} rowRefs Array of row ids or row indices. If null is given, no child will be removed.
945
939
  */
946
940
  RowSegmentingPlugin.prototype.addSegmentChildren = function(segmentRef, rowRefs) {
947
- var dv = this._getDataView();
941
+ let dv = this._getDataView();
948
942
  if(dv) {
949
- var dataIds;
943
+ let dataIds;
950
944
  if(this._realTimeGrid) {
951
945
  rowRefs = Array.isArray(rowRefs) ? rowRefs : [rowRefs];
952
- var len = rowRefs.length;
946
+ let len = rowRefs.length;
953
947
  dataIds = new Array(len);
954
- for(var i = 0; i < len; i++) {
955
- var rowDef = this._realTimeGrid.getRowDefinition(rowRefs[i]);
948
+ for(let i = 0; i < len; i++) {
949
+ let rowDef = this._realTimeGrid.getRowDefinition(rowRefs[i]);
956
950
  if(rowDef) {
957
951
  dataIds[i] = rowDef.getDataId();
958
952
  }
@@ -966,7 +960,7 @@ RowSegmentingPlugin.prototype.addSegmentChildren = function(segmentRef, rowRefs)
966
960
  * @param {string|number} rowRef Row id, row index
967
961
  */
968
962
  RowSegmentingPlugin.prototype.removeSegmentChild = function(segmentRef, rowRef) {
969
- var dv = this._getDataView();
963
+ let dv = this._getDataView();
970
964
  if(dv) {
971
965
  dv.removeSegmentChild(segmentRef, rowRef);
972
966
  }
@@ -976,7 +970,7 @@ RowSegmentingPlugin.prototype.removeSegmentChild = function(segmentRef, rowRef)
976
970
  * @param {Array.<string|number>} rowRefs Array of row ids or row indices
977
971
  */
978
972
  RowSegmentingPlugin.prototype.removeSegmentChildren = function(segmentRef, rowRefs) {
979
- var dv = this._getDataView();
973
+ let dv = this._getDataView();
980
974
  if(dv) {
981
975
  dv.removeSegmentChildren(segmentRef, rowRefs);
982
976
  }
@@ -984,7 +978,7 @@ RowSegmentingPlugin.prototype.removeSegmentChildren = function(segmentRef, rowRe
984
978
  /** @public
985
979
  */
986
980
  RowSegmentingPlugin.prototype.removeAllSegmentChildren = function() {
987
- var dv = this._getDataView();
981
+ let dv = this._getDataView();
988
982
  if(dv) {
989
983
  dv.removeAllSegmentChildren();
990
984
  }
@@ -994,7 +988,7 @@ RowSegmentingPlugin.prototype.removeAllSegmentChildren = function() {
994
988
  * @return {Array.<string>} Return null if there is no segment separator
995
989
  */
996
990
  RowSegmentingPlugin.prototype.getSegmentIds = function() {
997
- var dv = this._getDataView();
991
+ let dv = this._getDataView();
998
992
  if(dv) {
999
993
  return dv.getSegmentIds();
1000
994
  }
@@ -1006,7 +1000,7 @@ RowSegmentingPlugin.prototype.getSegmentIds = function() {
1006
1000
  * @return {Array.<string>} Returns array of row ids. Returns null if there is no child or no segment separator found
1007
1001
  */
1008
1002
  RowSegmentingPlugin.prototype.getSegmentChildIds = function(segmentRef) {
1009
- var dv = this._getDataView();
1003
+ let dv = this._getDataView();
1010
1004
  if(dv) {
1011
1005
  return dv.getSegmentChildIds(segmentRef);
1012
1006
  }
@@ -1027,9 +1021,9 @@ RowSegmentingPlugin.prototype.sortSegments = function (sortFunction) {
1027
1021
  this.setSortingLogic(sortFunction);
1028
1022
  }
1029
1023
  if (this._userSortingLogic) {
1030
- var dv = this._getDataView();
1024
+ let dv = this._getDataView();
1031
1025
  if (dv) {
1032
- var sortingLogic = this._realTimeGrid ? this._rtSortingLogic : this._userSortingLogic;
1026
+ let sortingLogic = this._realTimeGrid ? this._rtSortingLogic : this._userSortingLogic;
1033
1027
  dv.sortSegments(sortingLogic);
1034
1028
  }
1035
1029
  }
@@ -1061,7 +1055,7 @@ RowSegmentingPlugin.prototype.setPredefinedColors = function(predefinedColors) {
1061
1055
  * @param {boolean|null} spanning if set true when rowRef is row separator, then span that row
1062
1056
  */
1063
1057
  RowSegmentingPlugin.prototype.spanSegmentSeparator = function(rowRef, spanning) {
1064
- var dv = this._getDataView();
1058
+ let dv = this._getDataView();
1065
1059
  if(!dv) { return; }
1066
1060
 
1067
1061
  if(typeof rowRef === "string") {
@@ -38,7 +38,8 @@ declare namespace RowFilteringPlugin {
38
38
  additionalItems?: any[]|null,
39
39
  compactMode?: boolean|null,
40
40
  blankValues?: (boolean|string)|null,
41
- dateTimeFormat?: string|null
41
+ dateTimeFormat?: string|null,
42
+ showOnlyFilteredItems?: boolean|null
42
43
  };
43
44
 
44
45
  type FilterEntry = {