@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
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.UNIQ_ROW_KEY = exports.SELECT_ALL = exports.ROW_INDEX = exports.ROW_GROUP = exports.IS_EMPTY_DATA_ROW = exports.GRID_ROW_INDEX = exports.DataTable = exports.ACCORDION = void 0;
9
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
11
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
12
  var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
@@ -31,38 +32,38 @@ var _Body = require("../Body/Body");
31
32
  var _MergedCells = require("../Body/MergedCells");
32
33
  var _Head = require("../Head/Head");
33
34
  /*!__reshadow-styles__:"./dataTable.shadow.css"*/
34
- var style = (/*__reshadow_css_start__*/_core.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_"),
35
+ var style = (/*__reshadow_css_start__*/_core.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_"),
35
36
  /*__reshadow_css_end__*/
36
37
  {
37
- "__SDataTable": "___SDataTable_1hg6h_gg_",
38
- "_isDataEmpty": "__isDataEmpty_1hg6h_gg_",
39
- "_gridTemplateColumns": "__gridTemplateColumns_1hg6h_gg_",
40
- "--gridTemplateColumns": "--gridTemplateColumns_1hg6h",
41
- "_gridTemplateAreas": "__gridTemplateAreas_1hg6h_gg_",
42
- "--gridTemplateAreas": "--gridTemplateAreas_1hg6h",
43
- "_gridTemplateRows": "__gridTemplateRows_1hg6h_gg_",
44
- "--gridTemplateRows": "--gridTemplateRows_1hg6h"
38
+ "__SDataTable": "___SDataTable_c7yb1_gg_",
39
+ "_isDataEmpty": "__isDataEmpty_c7yb1_gg_",
40
+ "_gridTemplateColumns": "__gridTemplateColumns_c7yb1_gg_",
41
+ "--gridTemplateColumns": "--gridTemplateColumns_c7yb1",
42
+ "_gridTemplateAreas": "__gridTemplateAreas_c7yb1_gg_",
43
+ "--gridTemplateAreas": "--gridTemplateAreas_c7yb1",
44
+ "_gridTemplateRows": "__gridTemplateRows_c7yb1_gg_",
45
+ "--gridTemplateRows": "--gridTemplateRows_c7yb1"
45
46
  });
46
47
  /*!__reshadow-styles__:"../../style/scroll-shadows.shadow.css"*/
47
- var scrollStyles = (/*__reshadow_css_start__*/_core.sstyled.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_"),
48
+ var scrollStyles = (/*__reshadow_css_start__*/_core.sstyled.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_"),
48
49
  /*__reshadow_css_end__*/
49
50
  {
50
- "__SScrollArea": "___SScrollArea_s36b2_gg_",
51
- "__SContainer": "___SContainer_s36b2_gg_",
52
- "_scrollDirection_both": "_scrollDirection_both_s36b2_gg_",
53
- "_loading": "__loading_s36b2_gg_",
54
- "_scrollDirection_horizontal": "_scrollDirection_horizontal_s36b2_gg_",
55
- "_scrollDirection_vertical": "_scrollDirection_vertical_s36b2_gg_",
56
- "_headerHeight": "__headerHeight_s36b2_gg_",
57
- "--headerHeight": "--headerHeight_s36b2",
58
- "_leftScrollPadding": "__leftScrollPadding_s36b2_gg_",
59
- "--leftScrollPadding": "--leftScrollPadding_s36b2",
60
- "_rightScrollPadding": "__rightScrollPadding_s36b2_gg_",
61
- "--rightScrollPadding": "--rightScrollPadding_s36b2",
62
- "__SShadowVertical": "___SShadowVertical_s36b2_gg_",
63
- "__SShadowHorizontal": "___SShadowHorizontal_s36b2_gg_",
64
- "_leftOffset": "__leftOffset_s36b2_gg_",
65
- "_rightOffset": "__rightOffset_s36b2_gg_"
51
+ "__SScrollArea": "___SScrollArea_11r6k_gg_",
52
+ "__SContainer": "___SContainer_11r6k_gg_",
53
+ "_scrollDirection_both": "_scrollDirection_both_11r6k_gg_",
54
+ "_loading": "__loading_11r6k_gg_",
55
+ "_scrollDirection_horizontal": "_scrollDirection_horizontal_11r6k_gg_",
56
+ "_scrollDirection_vertical": "_scrollDirection_vertical_11r6k_gg_",
57
+ "_headerHeight": "__headerHeight_11r6k_gg_",
58
+ "--headerHeight": "--headerHeight_11r6k",
59
+ "_leftScrollPadding": "__leftScrollPadding_11r6k_gg_",
60
+ "--leftScrollPadding": "--leftScrollPadding_11r6k",
61
+ "_rightScrollPadding": "__rightScrollPadding_11r6k_gg_",
62
+ "--rightScrollPadding": "--rightScrollPadding_11r6k",
63
+ "__SShadowVertical": "___SShadowVertical_11r6k_gg_",
64
+ "__SShadowHorizontal": "___SShadowHorizontal_11r6k_gg_",
65
+ "_leftOffset": "__leftOffset_11r6k_gg_",
66
+ "_rightOffset": "__rightOffset_11r6k_gg_"
66
67
  });
67
68
  var ACCORDION = exports.ACCORDION = Symbol('accordion');
68
69
  var ROW_GROUP = exports.ROW_GROUP = Symbol('ROW_GROUP');
@@ -105,7 +106,8 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
105
106
  scrollTop: 0,
106
107
  scrollDirection: 'down',
107
108
  selectAllMessage: '',
108
- shadowVertical: ''
109
+ shadowVertical: '',
110
+ expandedRows: new Set()
109
111
  });
110
112
  (0, _defineProperty2["default"])(_this, "handleDocumentScroll", (0, _rafTrottle["default"])(function () {
111
113
  var _headerProps$top, _this$scrollAreaRef$c;
@@ -221,9 +223,9 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
221
223
  });
222
224
  (0, _defineProperty2["default"])(_this, "onExpandRow", function (expandedRow) {
223
225
  var _this$asProps2 = _this.asProps,
224
- expandedRows = _this$asProps2.expandedRows,
225
226
  onAccordionToggle = _this$asProps2.onAccordionToggle,
226
227
  accordionMode = _this$asProps2.accordionMode;
228
+ var expandedRows = _this.state.expandedRows;
227
229
  if (expandedRows.has(expandedRow[UNIQ_ROW_KEY])) {
228
230
  expandedRows["delete"](expandedRow[UNIQ_ROW_KEY]);
229
231
  onAccordionToggle === null || onAccordionToggle === void 0 || onAccordionToggle('close', expandedRow[UNIQ_ROW_KEY], expandedRow[ROW_INDEX]);
@@ -282,8 +284,10 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
282
284
  } else if (cell === null && currentCell instanceof HTMLElement) {
283
285
  var rowI = rowIndex;
284
286
  var colI = colIndex;
287
+ var colspan = Number(currentCell.getAttribute('aria-colspan'));
288
+ var rowspan = Number(currentCell.getAttribute('aria-rowspan'));
285
289
  if (direction === 'left' || direction === 'right') {
286
- var _currentCell$parentEl, _currentCell$parentEl2, _row$children;
290
+ var _currentCell$parentEl;
287
291
  // we need to skip Collapse Element with one big component from keyboard left/right pressing
288
292
  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') {
289
293
  return;
@@ -292,26 +296,23 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
292
296
  if ((limit === null || limit === void 0 ? void 0 : limit.fromRow) !== undefined && limit.fromColumn === undefined && newCol === limit.fromRow) {
293
297
  return;
294
298
  }
295
- // left/right
296
- 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) {
297
- if (direction === 'right' && (limit === null || limit === void 0 ? void 0 : limit.fromColumn) !== undefined) {
298
- if (newCol > limit.fromColumn) return;
299
- rowI = direction === 'right' ? rowI - 1 : rowI;
300
- } else {
301
- colI = direction === 'left' ? colI - 1 : colI + 1;
302
- }
303
- } else if (direction === 'right' && ((limit === null || limit === void 0 ? void 0 : limit.fromColumn) !== undefined || (limit === null || limit === void 0 ? void 0 : limit.fromRow) !== undefined)) {
304
- if (newCol === limit.fromColumn) {
299
+ var hasRowSpanUpper = row instanceof HTMLElement && Number(row.dataset.filledColumns) < _this.columns.length;
300
+ if (colspan > 0) {
301
+ if (direction === 'right' && (limit === null || limit === void 0 ? void 0 : limit.fromColumn) !== undefined && newCol === limit.fromColumn) {
305
302
  rowI = rowI - 1;
306
303
  } else {
307
- return;
304
+ colI = direction === 'left' ? colI - colspan + 1 : colI + colspan - 1;
308
305
  }
309
- } else {
306
+ } 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)) {
310
307
  rowI = rowI - 1;
308
+ } else {
309
+ colI = direction === 'left' ? colI - 1 : colI + 1;
311
310
  }
312
311
  } else if (direction === 'up' || direction === 'down') {
313
312
  // top/bottom
314
- if (currentCell.dataset.groupedBy === 'rowgroup' || Number(currentCell.getAttribute('aria-colindex')) === 1) {
313
+ if (rowspan > 0) {
314
+ rowI = direction === 'up' ? rowI - rowspan + 1 : rowI + rowspan - 1;
315
+ } else if (Number(currentCell.getAttribute('aria-colindex')) === 1) {
315
316
  rowI = direction === 'up' ? rowI - 1 : rowI + 1;
316
317
  } else {
317
318
  var _limit$fromRow;
@@ -319,7 +320,12 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
319
320
  if (areLimitsDefined && newRow > ((_limit$fromRow = limit === null || limit === void 0 ? void 0 : limit.fromRow) !== null && _limit$fromRow !== void 0 ? _limit$fromRow : 0) + 1) {
320
321
  return;
321
322
  }
322
- colI = colI - 1;
323
+ var _hasRowSpanUpper = row instanceof HTMLElement && currentRow instanceof HTMLElement && row.dataset.filledColumns !== currentRow.dataset.filledColumns;
324
+ if (direction === 'up' && _hasRowSpanUpper) {
325
+ rowI = rowI - 1;
326
+ } else {
327
+ colI = colI - 1;
328
+ }
323
329
  }
324
330
  }
325
331
  _this.changeFocusCell(rowI, colI, direction);
@@ -591,8 +597,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
591
597
  var _this$asProps5 = this.asProps,
592
598
  data = _this$asProps5.data,
593
599
  selectedRows = _this$asProps5.selectedRows,
594
- columns = _this$asProps5.columns,
595
- loading = _this$asProps5.loading;
600
+ columns = _this$asProps5.columns;
596
601
  if (prevProps.columns !== columns) {
597
602
  var cols = this.calculateColumnsFromConfig();
598
603
  this.columns = cols[0];
@@ -625,20 +630,19 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
625
630
  }, {
626
631
  key: "componentWillUnmount",
627
632
  value: function componentWillUnmount() {
628
- var _this$asProps$expande;
633
+ var _this$state$expandedR;
629
634
  if ((0, _canUseDOM["default"])()) {
630
635
  document.removeEventListener('scroll', this.handleDocumentScroll);
631
636
  }
632
- (_this$asProps$expande = this.asProps.expandedRows) === null || _this$asProps$expande === void 0 || _this$asProps$expande.clear();
637
+ (_this$state$expandedR = this.state.expandedRows) === null || _this$state$expandedR === void 0 || _this$state$expandedR.clear();
633
638
  }
634
639
  }, {
635
640
  key: "totalRows",
636
641
  get: function get() {
637
- var _this$asProps6 = this.asProps,
638
- totalRows = _this$asProps6.totalRows,
639
- expandedRows = _this$asProps6.expandedRows;
642
+ var totalRows = this.asProps.totalRows;
640
643
  var flatRows = this.getFlatRows();
641
- var expandedRowsCount = Array.from(expandedRows !== null && expandedRows !== void 0 ? expandedRows : []).reduce(function (acc, rowKey) {
644
+ var expandedRows = this.state.expandedRows;
645
+ var expandedRowsCount = Array.from(expandedRows).reduce(function (acc, rowKey) {
642
646
  var dtRow = flatRows.find(function (el) {
643
647
  return el[UNIQ_ROW_KEY] === rowKey;
644
648
  });
@@ -668,11 +672,11 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
668
672
  }, {
669
673
  key: "scrollDirection",
670
674
  get: function get() {
671
- var _this$asProps7 = this.asProps,
672
- w = _this$asProps7.w,
673
- wMax = _this$asProps7.wMax,
674
- h = _this$asProps7.h,
675
- hMax = _this$asProps7.hMax;
675
+ var _this$asProps6 = this.asProps,
676
+ w = _this$asProps6.w,
677
+ wMax = _this$asProps6.wMax,
678
+ h = _this$asProps6.h,
679
+ hMax = _this$asProps6.hMax;
676
680
  var scrollDirection = undefined;
677
681
  var hasWidthSettings = Boolean(w) || Boolean(wMax);
678
682
  var hasHeightSettings = Boolean(h) && h !== 'fit-content' || Boolean(hMax);
@@ -694,18 +698,18 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
694
698
  key: "getHeadProps",
695
699
  value: function getHeadProps() {
696
700
  var _this3 = this;
697
- var _this$asProps8 = this.asProps,
698
- use = _this$asProps8.use,
699
- compact = _this$asProps8.compact,
700
- sort = _this$asProps8.sort,
701
- onSortChange = _this$asProps8.onSortChange,
702
- getI18nText = _this$asProps8.getI18nText,
703
- uid = _this$asProps8.uid,
704
- headerProps = _this$asProps8.headerProps,
705
- onSelectedRowsChange = _this$asProps8.onSelectedRowsChange,
706
- selectedRows = _this$asProps8.selectedRows,
707
- sideIndents = _this$asProps8.sideIndents,
708
- variant = _this$asProps8.variant;
701
+ var _this$asProps7 = this.asProps,
702
+ use = _this$asProps7.use,
703
+ compact = _this$asProps7.compact,
704
+ sort = _this$asProps7.sort,
705
+ onSortChange = _this$asProps7.onSortChange,
706
+ getI18nText = _this$asProps7.getI18nText,
707
+ uid = _this$asProps7.uid,
708
+ headerProps = _this$asProps7.headerProps,
709
+ onSelectedRowsChange = _this$asProps7.onSelectedRowsChange,
710
+ selectedRows = _this$asProps7.selectedRows,
711
+ sideIndents = _this$asProps7.sideIndents,
712
+ variant = _this$asProps7.variant;
709
713
  var _this$gridSettings = this.gridSettings,
710
714
  gridTemplateColumns = _this$gridSettings.gridTemplateColumns,
711
715
  gridTemplateAreas = _this$gridSettings.gridTemplateAreas;
@@ -751,28 +755,27 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
751
755
  }, {
752
756
  key: "getBodyProps",
753
757
  value: function getBodyProps() {
754
- var _this$asProps9 = this.asProps,
755
- use = _this$asProps9.use,
756
- compact = _this$asProps9.compact,
757
- loading = _this$asProps9.loading,
758
- getI18nText = _this$asProps9.getI18nText,
759
- expandedRows = _this$asProps9.expandedRows,
760
- virtualScroll = _this$asProps9.virtualScroll,
761
- uid = _this$asProps9.uid,
762
- rowProps = _this$asProps9.rowProps,
763
- renderCell = _this$asProps9.renderCell,
764
- headerProps = _this$asProps9.headerProps,
765
- renderEmptyData = _this$asProps9.renderEmptyData,
766
- sideIndents = _this$asProps9.sideIndents,
767
- selectedRows = _this$asProps9.selectedRows,
768
- accordionDuration = _this$asProps9.accordionDuration,
769
- accordionMode = _this$asProps9.accordionMode,
770
- rawData = _this$asProps9.data,
771
- renderCellOverlay = _this$asProps9.renderCellOverlay,
772
- limit = _this$asProps9.limit,
773
- variant = _this$asProps9.variant,
774
- totalRows = _this$asProps9.totalRows,
775
- accordionAnimationRows = _this$asProps9.accordionAnimationRows;
758
+ var _this$asProps8 = this.asProps,
759
+ use = _this$asProps8.use,
760
+ compact = _this$asProps8.compact,
761
+ loading = _this$asProps8.loading,
762
+ getI18nText = _this$asProps8.getI18nText,
763
+ virtualScroll = _this$asProps8.virtualScroll,
764
+ uid = _this$asProps8.uid,
765
+ rowProps = _this$asProps8.rowProps,
766
+ renderCell = _this$asProps8.renderCell,
767
+ headerProps = _this$asProps8.headerProps,
768
+ renderEmptyData = _this$asProps8.renderEmptyData,
769
+ sideIndents = _this$asProps8.sideIndents,
770
+ selectedRows = _this$asProps8.selectedRows,
771
+ accordionDuration = _this$asProps8.accordionDuration,
772
+ accordionMode = _this$asProps8.accordionMode,
773
+ rawData = _this$asProps8.data,
774
+ renderCellOverlay = _this$asProps8.renderCellOverlay,
775
+ limit = _this$asProps8.limit,
776
+ variant = _this$asProps8.variant,
777
+ totalRows = _this$asProps8.totalRows,
778
+ accordionAnimationRows = _this$asProps8.accordionAnimationRows;
776
779
  var _this$gridSettings2 = this.gridSettings,
777
780
  gridTemplateColumns = _this$gridSettings2.gridTemplateColumns,
778
781
  gridTemplateAreas = _this$gridSettings2.gridTemplateAreas;
@@ -792,7 +795,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
792
795
  headerHeight: this.getHeaderHeight(),
793
796
  stickyHeader: headerProps === null || headerProps === void 0 ? void 0 : headerProps.sticky,
794
797
  getI18nText: getI18nText,
795
- expandedRows: expandedRows,
798
+ expandedRows: this.state.expandedRows,
796
799
  onExpandRow: this.onExpandRow,
797
800
  spinnerRef: this.spinnerRef,
798
801
  scrollTop: this.state.scrollTop,
@@ -852,20 +855,20 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
852
855
  var _ref = this.asProps,
853
856
  _ref2;
854
857
  var SDataTable = _baseComponents.Box;
855
- var _this$asProps0 = this.asProps,
856
- Children = _this$asProps0.Children,
857
- styles = _this$asProps0.styles,
858
- w = _this$asProps0.w,
859
- wMax = _this$asProps0.wMax,
860
- wMin = _this$asProps0.wMin,
861
- h = _this$asProps0.h,
862
- hMax = _this$asProps0.hMax,
863
- hMin = _this$asProps0.hMin,
864
- virtualScroll = _this$asProps0.virtualScroll,
865
- children = _this$asProps0.children,
866
- headerProps = _this$asProps0.headerProps,
867
- loading = _this$asProps0.loading,
868
- selectedRows = _this$asProps0.selectedRows;
858
+ var _this$asProps9 = this.asProps,
859
+ Children = _this$asProps9.Children,
860
+ styles = _this$asProps9.styles,
861
+ w = _this$asProps9.w,
862
+ wMax = _this$asProps9.wMax,
863
+ wMin = _this$asProps9.wMin,
864
+ h = _this$asProps9.h,
865
+ hMax = _this$asProps9.hMax,
866
+ hMin = _this$asProps9.hMin,
867
+ virtualScroll = _this$asProps9.virtualScroll,
868
+ children = _this$asProps9.children,
869
+ headerProps = _this$asProps9.headerProps,
870
+ loading = _this$asProps9.loading,
871
+ selectedRows = _this$asProps9.selectedRows;
869
872
  var _this$getScrollOffset = this.getScrollOffsetValue(),
870
873
  _this$getScrollOffset2 = (0, _slicedToArray2["default"])(_this$getScrollOffset, 2),
871
874
  offsetLeftSum = _this$getScrollOffset2[0],
@@ -1158,7 +1161,12 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
1158
1161
  return _makeDtRow(item);
1159
1162
  }) : row[ACCORDION];
1160
1163
  acc[key] = new _MergedCells.MergedRowsCell(value, groupedRows.length, accordion);
1161
- groupedKeys.push(key);
1164
+ var columnsToRow = key.split(_this5.columnsSplitter);
1165
+ if (columnsToRow.length === 1) {
1166
+ groupedKeys.push(key);
1167
+ } else {
1168
+ groupedKeys.push.apply(groupedKeys, (0, _toConsumableArray2["default"])(columnsToRow));
1169
+ }
1162
1170
  return acc;
1163
1171
  }, (0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, UNIQ_ROW_KEY, ''), ROW_INDEX, -1));
1164
1172
  groupedRows.forEach(function (childRow, index) {
@@ -1217,6 +1225,16 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
1217
1225
  }
1218
1226
  return height;
1219
1227
  }
1228
+ }], [{
1229
+ key: "getDerivedStateFromProps",
1230
+ value: function getDerivedStateFromProps(props, state) {
1231
+ if (props.expandedRows === state.expandedRows || props.expandedRows === undefined) {
1232
+ return null;
1233
+ }
1234
+ return {
1235
+ expandedRows: props.expandedRows
1236
+ };
1237
+ }
1220
1238
  }]);
1221
1239
  }(_core.Component);
1222
1240
  (0, _defineProperty2["default"])(DataTableRoot, "displayName", 'DataTable');
@@ -1225,7 +1243,6 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
1225
1243
  (0, _defineProperty2["default"])(DataTableRoot, "defaultProps", {
1226
1244
  use: 'primary',
1227
1245
  defaultGridTemplateColumnWidth: 'auto',
1228
- expandedRows: new Set(),
1229
1246
  defaultSelectedRows: undefined,
1230
1247
  h: 'fit-content',
1231
1248
  renderEmptyData: function renderEmptyData() {