@semcore/data-table 16.5.1 → 16.5.2

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.
Files changed (35) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/lib/cjs/components/AccordionRows/AccordionRows.js +51 -51
  3. package/lib/cjs/components/Body/Body.js +51 -51
  4. package/lib/cjs/components/Body/Cell.js +59 -54
  5. package/lib/cjs/components/Body/Cell.js.map +1 -1
  6. package/lib/cjs/components/Body/LimitOverlay.js +51 -51
  7. package/lib/cjs/components/Body/Row.js +65 -54
  8. package/lib/cjs/components/Body/Row.js.map +1 -1
  9. package/lib/cjs/components/DataTable/DataTable.js +124 -107
  10. package/lib/cjs/components/DataTable/DataTable.js.map +1 -1
  11. package/lib/cjs/components/Head/Column.js +36 -36
  12. package/lib/cjs/components/Head/Group.js +36 -36
  13. package/lib/cjs/components/Head/Head.js +36 -36
  14. package/lib/es6/components/AccordionRows/AccordionRows.js +51 -51
  15. package/lib/es6/components/Body/Body.js +51 -51
  16. package/lib/es6/components/Body/Cell.js +59 -54
  17. package/lib/es6/components/Body/Cell.js.map +1 -1
  18. package/lib/es6/components/Body/LimitOverlay.js +51 -51
  19. package/lib/es6/components/Body/Row.js +65 -54
  20. package/lib/es6/components/Body/Row.js.map +1 -1
  21. package/lib/es6/components/DataTable/DataTable.js +124 -107
  22. package/lib/es6/components/DataTable/DataTable.js.map +1 -1
  23. package/lib/es6/components/Head/Column.js +36 -36
  24. package/lib/es6/components/Head/Group.js +36 -36
  25. package/lib/es6/components/Head/Head.js +36 -36
  26. package/lib/esm/components/AccordionRows/AccordionRows.mjs +52 -52
  27. package/lib/esm/components/Body/Body.mjs +52 -52
  28. package/lib/esm/components/Body/Cell.mjs +60 -55
  29. package/lib/esm/components/Body/LimitOverlay.mjs +52 -52
  30. package/lib/esm/components/Body/Row.mjs +66 -55
  31. package/lib/esm/components/DataTable/DataTable.mjs +78 -56
  32. package/lib/esm/components/Head/Column.mjs +37 -37
  33. package/lib/esm/components/Head/Group.mjs +37 -37
  34. package/lib/esm/components/Head/Head.mjs +37 -37
  35. package/package.json +2 -2
@@ -1,3 +1,4 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
1
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
3
  import _objectSpread from "@babel/runtime/helpers/objectSpread2";
3
4
  import _createForOfIteratorHelper from "@babel/runtime/helpers/createForOfIteratorHelper";
@@ -22,38 +23,38 @@ import { isFocusInside, hasFocusableIn } from '@semcore/core/lib/utils/use/useFo
22
23
  import { NoData } from '@semcore/widget-empty';
23
24
  import * as React from 'react';
24
25
  /*!__reshadow-styles__:"./dataTable.shadow.css"*/
25
- var style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SDataTable_1hg6h_gg_{display:grid;align-items:start;min-width:-moz-fit-content;min-width:fit-content;grid-auto-rows:min-content}.___SDataTable_1hg6h_gg_.__isDataEmpty_1hg6h_gg_{display:block;align-items:initial;min-width:initial}.___SDataTable_1hg6h_gg_.__gridTemplateColumns_1hg6h_gg_{grid-template-columns:var(--gridTemplateColumns_1hg6h)}.___SDataTable_1hg6h_gg_.__gridTemplateAreas_1hg6h_gg_{grid-template-areas:var(--gridTemplateAreas_1hg6h)}.___SDataTable_1hg6h_gg_.__gridTemplateRows_1hg6h_gg_{grid-template-rows:var(--gridTemplateRows_1hg6h)}", /*__inner_css_end__*/"1hg6h_gg_"),
26
+ var style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SDataTable_c7yb1_gg_{display:grid;align-items:start;min-width:-moz-fit-content;min-width:fit-content;grid-auto-rows:min-content}.___SDataTable_c7yb1_gg_.__isDataEmpty_c7yb1_gg_{display:block;align-items:initial;min-width:initial}.___SDataTable_c7yb1_gg_.__gridTemplateColumns_c7yb1_gg_{grid-template-columns:var(--gridTemplateColumns_c7yb1)}.___SDataTable_c7yb1_gg_.__gridTemplateAreas_c7yb1_gg_{grid-template-areas:var(--gridTemplateAreas_c7yb1)}.___SDataTable_c7yb1_gg_.__gridTemplateRows_c7yb1_gg_{grid-template-rows:var(--gridTemplateRows_c7yb1)}", /*__inner_css_end__*/"c7yb1_gg_"),
26
27
  /*__reshadow_css_end__*/
27
28
  {
28
- "__SDataTable": "___SDataTable_1hg6h_gg_",
29
- "_isDataEmpty": "__isDataEmpty_1hg6h_gg_",
30
- "_gridTemplateColumns": "__gridTemplateColumns_1hg6h_gg_",
31
- "--gridTemplateColumns": "--gridTemplateColumns_1hg6h",
32
- "_gridTemplateAreas": "__gridTemplateAreas_1hg6h_gg_",
33
- "--gridTemplateAreas": "--gridTemplateAreas_1hg6h",
34
- "_gridTemplateRows": "__gridTemplateRows_1hg6h_gg_",
35
- "--gridTemplateRows": "--gridTemplateRows_1hg6h"
29
+ "__SDataTable": "___SDataTable_c7yb1_gg_",
30
+ "_isDataEmpty": "__isDataEmpty_c7yb1_gg_",
31
+ "_gridTemplateColumns": "__gridTemplateColumns_c7yb1_gg_",
32
+ "--gridTemplateColumns": "--gridTemplateColumns_c7yb1",
33
+ "_gridTemplateAreas": "__gridTemplateAreas_c7yb1_gg_",
34
+ "--gridTemplateAreas": "--gridTemplateAreas_c7yb1",
35
+ "_gridTemplateRows": "__gridTemplateRows_c7yb1_gg_",
36
+ "--gridTemplateRows": "--gridTemplateRows_c7yb1"
36
37
  });
37
38
  /*!__reshadow-styles__:"../../style/scroll-shadows.shadow.css"*/
38
- var scrollStyles = (/*__reshadow_css_start__*/_sstyled2.insert(/*__inner_css_start__*/".___SScrollArea_s36b2_gg_{width:-moz-fit-content;width:fit-content}.___SScrollArea_s36b2_gg_ .___SContainer_s36b2_gg_{overflow:visible;overflow:initial}.___SScrollArea_s36b2_gg_ .___SContainer_s36b2_gg_._scrollDirection_both_s36b2_gg_{overflow:auto}.___SScrollArea_s36b2_gg_ .___SContainer_s36b2_gg_._scrollDirection_both_s36b2_gg_.__loading_s36b2_gg_,.___SScrollArea_s36b2_gg_ .___SContainer_s36b2_gg_._scrollDirection_horizontal_s36b2_gg_.__loading_s36b2_gg_,.___SScrollArea_s36b2_gg_ .___SContainer_s36b2_gg_._scrollDirection_vertical_s36b2_gg_.__loading_s36b2_gg_{overflow:hidden}.___SScrollArea_s36b2_gg_ .___SContainer_s36b2_gg_._scrollDirection_horizontal_s36b2_gg_{overflow-x:auto;overflow-y:initial}.___SScrollArea_s36b2_gg_ .___SContainer_s36b2_gg_._scrollDirection_vertical_s36b2_gg_{overflow-x:initial;overflow-y:auto}.___SScrollArea_s36b2_gg_ .___SContainer_s36b2_gg_.__headerHeight_s36b2_gg_{scroll-padding-top:var(--headerHeight_s36b2)}.___SScrollArea_s36b2_gg_ .___SContainer_s36b2_gg_.__leftScrollPadding_s36b2_gg_{scroll-padding-left:var(--leftScrollPadding_s36b2)}.___SScrollArea_s36b2_gg_ .___SContainer_s36b2_gg_.__rightScrollPadding_s36b2_gg_{scroll-padding-right:var(--rightScrollPadding_s36b2)}.___SScrollArea_s36b2_gg_ .___SShadowHorizontal_s36b2_gg_::before,.___SScrollArea_s36b2_gg_ .___SShadowHorizontal_s36b2_gg_:after,.___SScrollArea_s36b2_gg_ .___SShadowVertical_s36b2_gg_::after{z-index:20}.___SScrollArea_s36b2_gg_ .___SShadowHorizontal_s36b2_gg_.__leftOffset_s36b2_gg_::before,.___SScrollArea_s36b2_gg_ .___SShadowHorizontal_s36b2_gg_.__rightOffset_s36b2_gg_::after,.___SScrollArea_s36b2_gg_ .___SShadowVertical_s36b2_gg_::before{display:none}", /*__inner_css_end__*/"s36b2_gg_"),
39
+ var scrollStyles = (/*__reshadow_css_start__*/_sstyled2.insert(/*__inner_css_start__*/".___SScrollArea_11r6k_gg_{width:-moz-fit-content;width:fit-content}.___SScrollArea_11r6k_gg_ .___SContainer_11r6k_gg_{overflow:visible;overflow:initial}.___SScrollArea_11r6k_gg_ .___SContainer_11r6k_gg_._scrollDirection_both_11r6k_gg_{overflow:auto}.___SScrollArea_11r6k_gg_ .___SContainer_11r6k_gg_._scrollDirection_both_11r6k_gg_.__loading_11r6k_gg_,.___SScrollArea_11r6k_gg_ .___SContainer_11r6k_gg_._scrollDirection_horizontal_11r6k_gg_.__loading_11r6k_gg_,.___SScrollArea_11r6k_gg_ .___SContainer_11r6k_gg_._scrollDirection_vertical_11r6k_gg_.__loading_11r6k_gg_{overflow:hidden}.___SScrollArea_11r6k_gg_ .___SContainer_11r6k_gg_._scrollDirection_horizontal_11r6k_gg_{overflow-x:auto;overflow-y:initial}.___SScrollArea_11r6k_gg_ .___SContainer_11r6k_gg_._scrollDirection_vertical_11r6k_gg_{overflow-x:initial;overflow-y:auto}.___SScrollArea_11r6k_gg_ .___SContainer_11r6k_gg_.__headerHeight_11r6k_gg_{scroll-padding-top:var(--headerHeight_11r6k)}.___SScrollArea_11r6k_gg_ .___SContainer_11r6k_gg_.__leftScrollPadding_11r6k_gg_{scroll-padding-left:var(--leftScrollPadding_11r6k)}.___SScrollArea_11r6k_gg_ .___SContainer_11r6k_gg_.__rightScrollPadding_11r6k_gg_{scroll-padding-right:var(--rightScrollPadding_11r6k)}.___SScrollArea_11r6k_gg_ .___SShadowHorizontal_11r6k_gg_::before,.___SScrollArea_11r6k_gg_ .___SShadowHorizontal_11r6k_gg_:after,.___SScrollArea_11r6k_gg_ .___SShadowVertical_11r6k_gg_::after{z-index:20}.___SScrollArea_11r6k_gg_ .___SShadowHorizontal_11r6k_gg_.__leftOffset_11r6k_gg_::before,.___SScrollArea_11r6k_gg_ .___SShadowHorizontal_11r6k_gg_.__rightOffset_11r6k_gg_::after,.___SScrollArea_11r6k_gg_ .___SShadowVertical_11r6k_gg_::before{display:none}", /*__inner_css_end__*/"11r6k_gg_"),
39
40
  /*__reshadow_css_end__*/
40
41
  {
41
- "__SScrollArea": "___SScrollArea_s36b2_gg_",
42
- "__SContainer": "___SContainer_s36b2_gg_",
43
- "_scrollDirection_both": "_scrollDirection_both_s36b2_gg_",
44
- "_loading": "__loading_s36b2_gg_",
45
- "_scrollDirection_horizontal": "_scrollDirection_horizontal_s36b2_gg_",
46
- "_scrollDirection_vertical": "_scrollDirection_vertical_s36b2_gg_",
47
- "_headerHeight": "__headerHeight_s36b2_gg_",
48
- "--headerHeight": "--headerHeight_s36b2",
49
- "_leftScrollPadding": "__leftScrollPadding_s36b2_gg_",
50
- "--leftScrollPadding": "--leftScrollPadding_s36b2",
51
- "_rightScrollPadding": "__rightScrollPadding_s36b2_gg_",
52
- "--rightScrollPadding": "--rightScrollPadding_s36b2",
53
- "__SShadowVertical": "___SShadowVertical_s36b2_gg_",
54
- "__SShadowHorizontal": "___SShadowHorizontal_s36b2_gg_",
55
- "_leftOffset": "__leftOffset_s36b2_gg_",
56
- "_rightOffset": "__rightOffset_s36b2_gg_"
42
+ "__SScrollArea": "___SScrollArea_11r6k_gg_",
43
+ "__SContainer": "___SContainer_11r6k_gg_",
44
+ "_scrollDirection_both": "_scrollDirection_both_11r6k_gg_",
45
+ "_loading": "__loading_11r6k_gg_",
46
+ "_scrollDirection_horizontal": "_scrollDirection_horizontal_11r6k_gg_",
47
+ "_scrollDirection_vertical": "_scrollDirection_vertical_11r6k_gg_",
48
+ "_headerHeight": "__headerHeight_11r6k_gg_",
49
+ "--headerHeight": "--headerHeight_11r6k",
50
+ "_leftScrollPadding": "__leftScrollPadding_11r6k_gg_",
51
+ "--leftScrollPadding": "--leftScrollPadding_11r6k",
52
+ "_rightScrollPadding": "__rightScrollPadding_11r6k_gg_",
53
+ "--rightScrollPadding": "--rightScrollPadding_11r6k",
54
+ "__SShadowVertical": "___SShadowVertical_11r6k_gg_",
55
+ "__SShadowHorizontal": "___SShadowHorizontal_11r6k_gg_",
56
+ "_leftOffset": "__leftOffset_11r6k_gg_",
57
+ "_rightOffset": "__rightOffset_11r6k_gg_"
57
58
  });
58
59
  import { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';
59
60
  import { Body } from '../Body/Body';
@@ -100,7 +101,8 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
100
101
  scrollTop: 0,
101
102
  scrollDirection: 'down',
102
103
  selectAllMessage: '',
103
- shadowVertical: ''
104
+ shadowVertical: '',
105
+ expandedRows: new Set()
104
106
  });
105
107
  _defineProperty(_this, "handleDocumentScroll", trottle(function () {
106
108
  var _headerProps$top, _this$scrollAreaRef$c;
@@ -216,9 +218,9 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
216
218
  });
217
219
  _defineProperty(_this, "onExpandRow", function (expandedRow) {
218
220
  var _this$asProps2 = _this.asProps,
219
- expandedRows = _this$asProps2.expandedRows,
220
221
  onAccordionToggle = _this$asProps2.onAccordionToggle,
221
222
  accordionMode = _this$asProps2.accordionMode;
223
+ var expandedRows = _this.state.expandedRows;
222
224
  if (expandedRows.has(expandedRow[UNIQ_ROW_KEY])) {
223
225
  expandedRows["delete"](expandedRow[UNIQ_ROW_KEY]);
224
226
  onAccordionToggle === null || onAccordionToggle === void 0 || onAccordionToggle('close', expandedRow[UNIQ_ROW_KEY], expandedRow[ROW_INDEX]);
@@ -277,8 +279,10 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
277
279
  } else if (cell === null && currentCell instanceof HTMLElement) {
278
280
  var rowI = rowIndex;
279
281
  var colI = colIndex;
282
+ var colspan = Number(currentCell.getAttribute('aria-colspan'));
283
+ var rowspan = Number(currentCell.getAttribute('aria-rowspan'));
280
284
  if (direction === 'left' || direction === 'right') {
281
- var _currentCell$parentEl, _currentCell$parentEl2, _row$children;
285
+ var _currentCell$parentEl;
282
286
  // we need to skip Collapse Element with one big component from keyboard left/right pressing
283
287
  if (((_currentCell$parentEl = currentCell.parentElement) === null || _currentCell$parentEl === void 0 || (_currentCell$parentEl = _currentCell$parentEl.parentElement) === null || _currentCell$parentEl === void 0 ? void 0 : _currentCell$parentEl.dataset.uiName) === 'Collapse') {
284
288
  return;
@@ -287,26 +291,23 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
287
291
  if ((limit === null || limit === void 0 ? void 0 : limit.fromRow) !== undefined && limit.fromColumn === undefined && newCol === limit.fromRow) {
288
292
  return;
289
293
  }
290
- // left/right
291
- if (currentCell.dataset.groupedBy === 'colgroup' || Number((_currentCell$parentEl2 = currentCell.parentElement) === null || _currentCell$parentEl2 === void 0 || (_currentCell$parentEl2 = _currentCell$parentEl2.parentElement) === null || _currentCell$parentEl2 === void 0 ? void 0 : _currentCell$parentEl2.getAttribute('aria-rowindex')) === 2 || currentCell.parentElement && Array.from((_row$children = row === null || row === void 0 ? void 0 : row.children) !== null && _row$children !== void 0 ? _row$children : []).indexOf(currentCell.parentElement) > 0) {
292
- if (direction === 'right' && (limit === null || limit === void 0 ? void 0 : limit.fromColumn) !== undefined) {
293
- if (newCol > limit.fromColumn) return;
294
- rowI = direction === 'right' ? rowI - 1 : rowI;
295
- } else {
296
- colI = direction === 'left' ? colI - 1 : colI + 1;
297
- }
298
- } else if (direction === 'right' && ((limit === null || limit === void 0 ? void 0 : limit.fromColumn) !== undefined || (limit === null || limit === void 0 ? void 0 : limit.fromRow) !== undefined)) {
299
- if (newCol === limit.fromColumn) {
294
+ var hasRowSpanUpper = row instanceof HTMLElement && Number(row.dataset.filledColumns) < _this.columns.length;
295
+ if (colspan > 0) {
296
+ if (direction === 'right' && (limit === null || limit === void 0 ? void 0 : limit.fromColumn) !== undefined && newCol === limit.fromColumn) {
300
297
  rowI = rowI - 1;
301
298
  } else {
302
- return;
299
+ colI = direction === 'left' ? colI - colspan + 1 : colI + colspan - 1;
303
300
  }
304
- } else {
301
+ } else if (hasRowSpanUpper || direction === 'right' && ((limit === null || limit === void 0 ? void 0 : limit.fromColumn) !== undefined || (limit === null || limit === void 0 ? void 0 : limit.fromRow) !== undefined)) {
305
302
  rowI = rowI - 1;
303
+ } else {
304
+ colI = direction === 'left' ? colI - 1 : colI + 1;
306
305
  }
307
306
  } else if (direction === 'up' || direction === 'down') {
308
307
  // top/bottom
309
- if (currentCell.dataset.groupedBy === 'rowgroup' || Number(currentCell.getAttribute('aria-colindex')) === 1) {
308
+ if (rowspan > 0) {
309
+ rowI = direction === 'up' ? rowI - rowspan + 1 : rowI + rowspan - 1;
310
+ } else if (Number(currentCell.getAttribute('aria-colindex')) === 1) {
310
311
  rowI = direction === 'up' ? rowI - 1 : rowI + 1;
311
312
  } else {
312
313
  var _limit$fromRow;
@@ -314,7 +315,12 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
314
315
  if (areLimitsDefined && newRow > ((_limit$fromRow = limit === null || limit === void 0 ? void 0 : limit.fromRow) !== null && _limit$fromRow !== void 0 ? _limit$fromRow : 0) + 1) {
315
316
  return;
316
317
  }
317
- colI = colI - 1;
318
+ var _hasRowSpanUpper = row instanceof HTMLElement && currentRow instanceof HTMLElement && row.dataset.filledColumns !== currentRow.dataset.filledColumns;
319
+ if (direction === 'up' && _hasRowSpanUpper) {
320
+ rowI = rowI - 1;
321
+ } else {
322
+ colI = colI - 1;
323
+ }
318
324
  }
319
325
  }
320
326
  _this.changeFocusCell(rowI, colI, direction);
@@ -586,8 +592,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
586
592
  var _this$asProps5 = this.asProps,
587
593
  data = _this$asProps5.data,
588
594
  selectedRows = _this$asProps5.selectedRows,
589
- columns = _this$asProps5.columns,
590
- loading = _this$asProps5.loading;
595
+ columns = _this$asProps5.columns;
591
596
  if (prevProps.columns !== columns) {
592
597
  var cols = this.calculateColumnsFromConfig();
593
598
  this.columns = cols[0];
@@ -620,20 +625,19 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
620
625
  }, {
621
626
  key: "componentWillUnmount",
622
627
  value: function componentWillUnmount() {
623
- var _this$asProps$expande;
628
+ var _this$state$expandedR;
624
629
  if (canUseDOM()) {
625
630
  document.removeEventListener('scroll', this.handleDocumentScroll);
626
631
  }
627
- (_this$asProps$expande = this.asProps.expandedRows) === null || _this$asProps$expande === void 0 || _this$asProps$expande.clear();
632
+ (_this$state$expandedR = this.state.expandedRows) === null || _this$state$expandedR === void 0 || _this$state$expandedR.clear();
628
633
  }
629
634
  }, {
630
635
  key: "totalRows",
631
636
  get: function get() {
632
- var _this$asProps6 = this.asProps,
633
- totalRows = _this$asProps6.totalRows,
634
- expandedRows = _this$asProps6.expandedRows;
637
+ var totalRows = this.asProps.totalRows;
635
638
  var flatRows = this.getFlatRows();
636
- var expandedRowsCount = Array.from(expandedRows !== null && expandedRows !== void 0 ? expandedRows : []).reduce(function (acc, rowKey) {
639
+ var expandedRows = this.state.expandedRows;
640
+ var expandedRowsCount = Array.from(expandedRows).reduce(function (acc, rowKey) {
637
641
  var dtRow = flatRows.find(function (el) {
638
642
  return el[UNIQ_ROW_KEY] === rowKey;
639
643
  });
@@ -663,11 +667,11 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
663
667
  }, {
664
668
  key: "scrollDirection",
665
669
  get: function get() {
666
- var _this$asProps7 = this.asProps,
667
- w = _this$asProps7.w,
668
- wMax = _this$asProps7.wMax,
669
- h = _this$asProps7.h,
670
- hMax = _this$asProps7.hMax;
670
+ var _this$asProps6 = this.asProps,
671
+ w = _this$asProps6.w,
672
+ wMax = _this$asProps6.wMax,
673
+ h = _this$asProps6.h,
674
+ hMax = _this$asProps6.hMax;
671
675
  var scrollDirection = undefined;
672
676
  var hasWidthSettings = Boolean(w) || Boolean(wMax);
673
677
  var hasHeightSettings = Boolean(h) && h !== 'fit-content' || Boolean(hMax);
@@ -689,18 +693,18 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
689
693
  key: "getHeadProps",
690
694
  value: function getHeadProps() {
691
695
  var _this3 = this;
692
- var _this$asProps8 = this.asProps,
693
- use = _this$asProps8.use,
694
- compact = _this$asProps8.compact,
695
- sort = _this$asProps8.sort,
696
- onSortChange = _this$asProps8.onSortChange,
697
- getI18nText = _this$asProps8.getI18nText,
698
- uid = _this$asProps8.uid,
699
- headerProps = _this$asProps8.headerProps,
700
- onSelectedRowsChange = _this$asProps8.onSelectedRowsChange,
701
- selectedRows = _this$asProps8.selectedRows,
702
- sideIndents = _this$asProps8.sideIndents,
703
- variant = _this$asProps8.variant;
696
+ var _this$asProps7 = this.asProps,
697
+ use = _this$asProps7.use,
698
+ compact = _this$asProps7.compact,
699
+ sort = _this$asProps7.sort,
700
+ onSortChange = _this$asProps7.onSortChange,
701
+ getI18nText = _this$asProps7.getI18nText,
702
+ uid = _this$asProps7.uid,
703
+ headerProps = _this$asProps7.headerProps,
704
+ onSelectedRowsChange = _this$asProps7.onSelectedRowsChange,
705
+ selectedRows = _this$asProps7.selectedRows,
706
+ sideIndents = _this$asProps7.sideIndents,
707
+ variant = _this$asProps7.variant;
704
708
  var _this$gridSettings = this.gridSettings,
705
709
  gridTemplateColumns = _this$gridSettings.gridTemplateColumns,
706
710
  gridTemplateAreas = _this$gridSettings.gridTemplateAreas;
@@ -746,28 +750,27 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
746
750
  }, {
747
751
  key: "getBodyProps",
748
752
  value: function getBodyProps() {
749
- var _this$asProps9 = this.asProps,
750
- use = _this$asProps9.use,
751
- compact = _this$asProps9.compact,
752
- loading = _this$asProps9.loading,
753
- getI18nText = _this$asProps9.getI18nText,
754
- expandedRows = _this$asProps9.expandedRows,
755
- virtualScroll = _this$asProps9.virtualScroll,
756
- uid = _this$asProps9.uid,
757
- rowProps = _this$asProps9.rowProps,
758
- renderCell = _this$asProps9.renderCell,
759
- headerProps = _this$asProps9.headerProps,
760
- renderEmptyData = _this$asProps9.renderEmptyData,
761
- sideIndents = _this$asProps9.sideIndents,
762
- selectedRows = _this$asProps9.selectedRows,
763
- accordionDuration = _this$asProps9.accordionDuration,
764
- accordionMode = _this$asProps9.accordionMode,
765
- rawData = _this$asProps9.data,
766
- renderCellOverlay = _this$asProps9.renderCellOverlay,
767
- limit = _this$asProps9.limit,
768
- variant = _this$asProps9.variant,
769
- totalRows = _this$asProps9.totalRows,
770
- accordionAnimationRows = _this$asProps9.accordionAnimationRows;
753
+ var _this$asProps8 = this.asProps,
754
+ use = _this$asProps8.use,
755
+ compact = _this$asProps8.compact,
756
+ loading = _this$asProps8.loading,
757
+ getI18nText = _this$asProps8.getI18nText,
758
+ virtualScroll = _this$asProps8.virtualScroll,
759
+ uid = _this$asProps8.uid,
760
+ rowProps = _this$asProps8.rowProps,
761
+ renderCell = _this$asProps8.renderCell,
762
+ headerProps = _this$asProps8.headerProps,
763
+ renderEmptyData = _this$asProps8.renderEmptyData,
764
+ sideIndents = _this$asProps8.sideIndents,
765
+ selectedRows = _this$asProps8.selectedRows,
766
+ accordionDuration = _this$asProps8.accordionDuration,
767
+ accordionMode = _this$asProps8.accordionMode,
768
+ rawData = _this$asProps8.data,
769
+ renderCellOverlay = _this$asProps8.renderCellOverlay,
770
+ limit = _this$asProps8.limit,
771
+ variant = _this$asProps8.variant,
772
+ totalRows = _this$asProps8.totalRows,
773
+ accordionAnimationRows = _this$asProps8.accordionAnimationRows;
771
774
  var _this$gridSettings2 = this.gridSettings,
772
775
  gridTemplateColumns = _this$gridSettings2.gridTemplateColumns,
773
776
  gridTemplateAreas = _this$gridSettings2.gridTemplateAreas;
@@ -787,7 +790,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
787
790
  headerHeight: this.getHeaderHeight(),
788
791
  stickyHeader: headerProps === null || headerProps === void 0 ? void 0 : headerProps.sticky,
789
792
  getI18nText: getI18nText,
790
- expandedRows: expandedRows,
793
+ expandedRows: this.state.expandedRows,
791
794
  onExpandRow: this.onExpandRow,
792
795
  spinnerRef: this.spinnerRef,
793
796
  scrollTop: this.state.scrollTop,
@@ -847,20 +850,20 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
847
850
  var _ref = this.asProps,
848
851
  _ref2;
849
852
  var SDataTable = Box;
850
- var _this$asProps0 = this.asProps,
851
- Children = _this$asProps0.Children,
852
- styles = _this$asProps0.styles,
853
- w = _this$asProps0.w,
854
- wMax = _this$asProps0.wMax,
855
- wMin = _this$asProps0.wMin,
856
- h = _this$asProps0.h,
857
- hMax = _this$asProps0.hMax,
858
- hMin = _this$asProps0.hMin,
859
- virtualScroll = _this$asProps0.virtualScroll,
860
- children = _this$asProps0.children,
861
- headerProps = _this$asProps0.headerProps,
862
- loading = _this$asProps0.loading,
863
- selectedRows = _this$asProps0.selectedRows;
853
+ var _this$asProps9 = this.asProps,
854
+ Children = _this$asProps9.Children,
855
+ styles = _this$asProps9.styles,
856
+ w = _this$asProps9.w,
857
+ wMax = _this$asProps9.wMax,
858
+ wMin = _this$asProps9.wMin,
859
+ h = _this$asProps9.h,
860
+ hMax = _this$asProps9.hMax,
861
+ hMin = _this$asProps9.hMin,
862
+ virtualScroll = _this$asProps9.virtualScroll,
863
+ children = _this$asProps9.children,
864
+ headerProps = _this$asProps9.headerProps,
865
+ loading = _this$asProps9.loading,
866
+ selectedRows = _this$asProps9.selectedRows;
864
867
  var _this$getScrollOffset = this.getScrollOffsetValue(),
865
868
  _this$getScrollOffset2 = _slicedToArray(_this$getScrollOffset, 2),
866
869
  offsetLeftSum = _this$getScrollOffset2[0],
@@ -1153,7 +1156,12 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
1153
1156
  return _makeDtRow(item);
1154
1157
  }) : row[ACCORDION];
1155
1158
  acc[key] = new MergedRowsCell(value, groupedRows.length, accordion);
1156
- groupedKeys.push(key);
1159
+ var columnsToRow = key.split(_this5.columnsSplitter);
1160
+ if (columnsToRow.length === 1) {
1161
+ groupedKeys.push(key);
1162
+ } else {
1163
+ groupedKeys.push.apply(groupedKeys, _toConsumableArray(columnsToRow));
1164
+ }
1157
1165
  return acc;
1158
1166
  }, _defineProperty(_defineProperty({}, UNIQ_ROW_KEY, ''), ROW_INDEX, -1));
1159
1167
  groupedRows.forEach(function (childRow, index) {
@@ -1212,6 +1220,16 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
1212
1220
  }
1213
1221
  return height;
1214
1222
  }
1223
+ }], [{
1224
+ key: "getDerivedStateFromProps",
1225
+ value: function getDerivedStateFromProps(props, state) {
1226
+ if (props.expandedRows === state.expandedRows || props.expandedRows === undefined) {
1227
+ return null;
1228
+ }
1229
+ return {
1230
+ expandedRows: props.expandedRows
1231
+ };
1232
+ }
1215
1233
  }]);
1216
1234
  }(Component);
1217
1235
  _defineProperty(DataTableRoot, "displayName", 'DataTable');
@@ -1220,7 +1238,6 @@ _defineProperty(DataTableRoot, "enhance", [uniqueIDEnhancement(), i18nEnhance(lo
1220
1238
  _defineProperty(DataTableRoot, "defaultProps", {
1221
1239
  use: 'primary',
1222
1240
  defaultGridTemplateColumnWidth: 'auto',
1223
- expandedRows: new Set(),
1224
1241
  defaultSelectedRows: undefined,
1225
1242
  h: 'fit-content',
1226
1243
  renderEmptyData: function renderEmptyData() {