@semcore/data-table 16.5.3-prerelease.4 → 16.6.0-prerelease.1

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 (82) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/lib/cjs/components/AccordionRows/AccordionRows.js +51 -51
  3. package/lib/cjs/components/Body/Body.js +71 -88
  4. package/lib/cjs/components/Body/Body.js.map +1 -1
  5. package/lib/cjs/components/Body/Body.types.js.map +1 -1
  6. package/lib/cjs/components/Body/Cell.js +51 -51
  7. package/lib/cjs/components/Body/LimitOverlay.js +51 -51
  8. package/lib/cjs/components/Body/LimitOverlay.js.map +1 -1
  9. package/lib/cjs/components/Body/Row.js +130 -157
  10. package/lib/cjs/components/Body/Row.js.map +1 -1
  11. package/lib/cjs/components/Body/Row.types.js.map +1 -1
  12. package/lib/cjs/components/Body/RowGroup.js +147 -0
  13. package/lib/cjs/components/Body/RowGroup.js.map +1 -0
  14. package/lib/cjs/components/Body/style.shadow.css +13 -4
  15. package/lib/cjs/components/DataTable/DataTable.js +122 -102
  16. package/lib/cjs/components/DataTable/DataTable.js.map +1 -1
  17. package/lib/cjs/components/DataTable/DataTable.types.js.map +1 -1
  18. package/lib/cjs/components/Head/Column.js +50 -47
  19. package/lib/cjs/components/Head/Column.js.map +1 -1
  20. package/lib/cjs/components/Head/Group.js +36 -36
  21. package/lib/cjs/components/Head/Head.js +90 -57
  22. package/lib/cjs/components/Head/Head.js.map +1 -1
  23. package/lib/cjs/components/Head/Head.types.js.map +1 -1
  24. package/lib/cjs/components/RowSelector/RowsSelector.js +124 -0
  25. package/lib/cjs/components/RowSelector/RowsSelector.js.map +1 -0
  26. package/lib/cjs/index.js +7 -0
  27. package/lib/cjs/index.js.map +1 -1
  28. package/lib/cjs/store/SelectableRows.js +210 -0
  29. package/lib/cjs/store/SelectableRows.js.map +1 -0
  30. package/lib/es6/components/AccordionRows/AccordionRows.js +51 -51
  31. package/lib/es6/components/Body/Body.js +73 -90
  32. package/lib/es6/components/Body/Body.js.map +1 -1
  33. package/lib/es6/components/Body/Body.types.js.map +1 -1
  34. package/lib/es6/components/Body/Cell.js +51 -51
  35. package/lib/es6/components/Body/LimitOverlay.js +51 -51
  36. package/lib/es6/components/Body/LimitOverlay.js.map +1 -1
  37. package/lib/es6/components/Body/Row.js +131 -158
  38. package/lib/es6/components/Body/Row.js.map +1 -1
  39. package/lib/es6/components/Body/Row.types.js.map +1 -1
  40. package/lib/es6/components/Body/RowGroup.js +140 -0
  41. package/lib/es6/components/Body/RowGroup.js.map +1 -0
  42. package/lib/es6/components/Body/style.shadow.css +13 -4
  43. package/lib/es6/components/DataTable/DataTable.js +122 -102
  44. package/lib/es6/components/DataTable/DataTable.js.map +1 -1
  45. package/lib/es6/components/DataTable/DataTable.types.js.map +1 -1
  46. package/lib/es6/components/Head/Column.js +50 -47
  47. package/lib/es6/components/Head/Column.js.map +1 -1
  48. package/lib/es6/components/Head/Group.js +36 -36
  49. package/lib/es6/components/Head/Head.js +90 -57
  50. package/lib/es6/components/Head/Head.js.map +1 -1
  51. package/lib/es6/components/Head/Head.types.js.map +1 -1
  52. package/lib/es6/components/RowSelector/RowsSelector.js +117 -0
  53. package/lib/es6/components/RowSelector/RowsSelector.js.map +1 -0
  54. package/lib/es6/index.js +2 -1
  55. package/lib/es6/index.js.map +1 -1
  56. package/lib/es6/store/SelectableRows.js +203 -0
  57. package/lib/es6/store/SelectableRows.js.map +1 -0
  58. package/lib/esm/components/AccordionRows/AccordionRows.mjs +52 -52
  59. package/lib/esm/components/Body/Body.mjs +74 -90
  60. package/lib/esm/components/Body/Cell.mjs +52 -52
  61. package/lib/esm/components/Body/LimitOverlay.mjs +52 -52
  62. package/lib/esm/components/Body/Row.mjs +71 -91
  63. package/lib/esm/components/Body/RowGroup.mjs +133 -0
  64. package/lib/esm/components/Body/style.shadow.css +13 -4
  65. package/lib/esm/components/DataTable/DataTable.mjs +68 -47
  66. package/lib/esm/components/Head/Column.mjs +51 -48
  67. package/lib/esm/components/Head/Group.mjs +37 -37
  68. package/lib/esm/components/Head/Head.mjs +91 -56
  69. package/lib/esm/components/RowSelector/RowsSelector.mjs +98 -0
  70. package/lib/esm/index.mjs +2 -0
  71. package/lib/esm/store/SelectableRows.mjs +200 -0
  72. package/lib/types/components/Body/Body.types.d.ts +2 -1
  73. package/lib/types/components/Body/Row.d.ts +0 -2
  74. package/lib/types/components/Body/Row.types.d.ts +2 -1
  75. package/lib/types/components/Body/RowGroup.d.ts +19 -0
  76. package/lib/types/components/DataTable/DataTable.types.d.ts +21 -12
  77. package/lib/types/components/Head/Column.d.ts +1 -0
  78. package/lib/types/components/Head/Head.types.d.ts +2 -1
  79. package/lib/types/components/RowSelector/RowsSelector.d.ts +31 -0
  80. package/lib/types/index.d.ts +2 -1
  81. package/lib/types/store/SelectableRows.d.ts +51 -0
  82. package/package.json +8 -8
@@ -27,43 +27,44 @@ var _uniqueID = _interopRequireDefault(require("@semcore/core/lib/utils/uniqueID
27
27
  var _useFocusLock = require("@semcore/core/lib/utils/use/useFocusLock");
28
28
  var _widgetEmpty = require("@semcore/widget-empty");
29
29
  var React = _interopRequireWildcard(require("react"));
30
+ var _SelectableRows = require("../../store/SelectableRows");
30
31
  var _intergalacticDynamicLocales = require("../../translations/__intergalactic-dynamic-locales");
31
32
  var _Body = require("../Body/Body");
32
33
  var _MergedCells = require("../Body/MergedCells");
33
34
  var _Head = require("../Head/Head");
34
35
  /*!__reshadow-styles__:"./dataTable.shadow.css"*/
35
- var style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SDataTable_236d0_gg_{display:grid;align-items:start;min-width:-moz-fit-content;min-width:fit-content;grid-auto-rows:min-content}.___SDataTable_236d0_gg_.__isDataEmpty_236d0_gg_{display:block;align-items:initial;min-width:initial}.___SDataTable_236d0_gg_.__gridTemplateColumns_236d0_gg_{grid-template-columns:var(--gridTemplateColumns_236d0)}.___SDataTable_236d0_gg_.__gridTemplateAreas_236d0_gg_{grid-template-areas:var(--gridTemplateAreas_236d0)}.___SDataTable_236d0_gg_.__gridTemplateRows_236d0_gg_{grid-template-rows:var(--gridTemplateRows_236d0)}", /*__inner_css_end__*/"236d0_gg_"),
36
+ var style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SDataTable_hxi9n_gg_{display:grid;align-items:start;min-width:-moz-fit-content;min-width:fit-content;grid-auto-rows:min-content}.___SDataTable_hxi9n_gg_.__isDataEmpty_hxi9n_gg_{display:block;align-items:initial;min-width:initial}.___SDataTable_hxi9n_gg_.__gridTemplateColumns_hxi9n_gg_{grid-template-columns:var(--gridTemplateColumns_hxi9n)}.___SDataTable_hxi9n_gg_.__gridTemplateAreas_hxi9n_gg_{grid-template-areas:var(--gridTemplateAreas_hxi9n)}.___SDataTable_hxi9n_gg_.__gridTemplateRows_hxi9n_gg_{grid-template-rows:var(--gridTemplateRows_hxi9n)}", /*__inner_css_end__*/"hxi9n_gg_"),
36
37
  /*__reshadow_css_end__*/
37
38
  {
38
- "__SDataTable": "___SDataTable_236d0_gg_",
39
- "_isDataEmpty": "__isDataEmpty_236d0_gg_",
40
- "_gridTemplateColumns": "__gridTemplateColumns_236d0_gg_",
41
- "--gridTemplateColumns": "--gridTemplateColumns_236d0",
42
- "_gridTemplateAreas": "__gridTemplateAreas_236d0_gg_",
43
- "--gridTemplateAreas": "--gridTemplateAreas_236d0",
44
- "_gridTemplateRows": "__gridTemplateRows_236d0_gg_",
45
- "--gridTemplateRows": "--gridTemplateRows_236d0"
39
+ "__SDataTable": "___SDataTable_hxi9n_gg_",
40
+ "_isDataEmpty": "__isDataEmpty_hxi9n_gg_",
41
+ "_gridTemplateColumns": "__gridTemplateColumns_hxi9n_gg_",
42
+ "--gridTemplateColumns": "--gridTemplateColumns_hxi9n",
43
+ "_gridTemplateAreas": "__gridTemplateAreas_hxi9n_gg_",
44
+ "--gridTemplateAreas": "--gridTemplateAreas_hxi9n",
45
+ "_gridTemplateRows": "__gridTemplateRows_hxi9n_gg_",
46
+ "--gridTemplateRows": "--gridTemplateRows_hxi9n"
46
47
  });
47
48
  /*!__reshadow-styles__:"../../style/scroll-shadows.shadow.css"*/
48
- var scrollStyles = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SScrollArea_1m51n_gg_{width:-moz-fit-content;width:fit-content}.___SScrollArea_1m51n_gg_ .___SContainer_1m51n_gg_{overflow:visible;overflow:initial}.___SScrollArea_1m51n_gg_ .___SContainer_1m51n_gg_._scrollDirection_both_1m51n_gg_{overflow:auto}.___SScrollArea_1m51n_gg_ .___SContainer_1m51n_gg_._scrollDirection_both_1m51n_gg_.__loading_1m51n_gg_,.___SScrollArea_1m51n_gg_ .___SContainer_1m51n_gg_._scrollDirection_horizontal_1m51n_gg_.__loading_1m51n_gg_,.___SScrollArea_1m51n_gg_ .___SContainer_1m51n_gg_._scrollDirection_vertical_1m51n_gg_.__loading_1m51n_gg_{overflow:hidden}.___SScrollArea_1m51n_gg_ .___SContainer_1m51n_gg_._scrollDirection_horizontal_1m51n_gg_{overflow-x:auto;overflow-y:initial}.___SScrollArea_1m51n_gg_ .___SContainer_1m51n_gg_._scrollDirection_vertical_1m51n_gg_{overflow-x:initial;overflow-y:auto}.___SScrollArea_1m51n_gg_ .___SContainer_1m51n_gg_.__headerHeight_1m51n_gg_{scroll-padding-top:var(--headerHeight_1m51n)}.___SScrollArea_1m51n_gg_ .___SContainer_1m51n_gg_.__leftScrollPadding_1m51n_gg_{scroll-padding-left:var(--leftScrollPadding_1m51n)}.___SScrollArea_1m51n_gg_ .___SContainer_1m51n_gg_.__rightScrollPadding_1m51n_gg_{scroll-padding-right:var(--rightScrollPadding_1m51n)}.___SScrollArea_1m51n_gg_ .___SShadowHorizontal_1m51n_gg_::before,.___SScrollArea_1m51n_gg_ .___SShadowHorizontal_1m51n_gg_:after,.___SScrollArea_1m51n_gg_ .___SShadowVertical_1m51n_gg_::after{z-index:20}.___SScrollArea_1m51n_gg_ .___SShadowHorizontal_1m51n_gg_.__leftOffset_1m51n_gg_::before,.___SScrollArea_1m51n_gg_ .___SShadowHorizontal_1m51n_gg_.__rightOffset_1m51n_gg_::after,.___SScrollArea_1m51n_gg_ .___SShadowVertical_1m51n_gg_::before{display:none}", /*__inner_css_end__*/"1m51n_gg_"),
49
+ var scrollStyles = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SScrollArea_70deb_gg_{width:-moz-fit-content;width:fit-content}.___SScrollArea_70deb_gg_ .___SContainer_70deb_gg_{overflow:visible;overflow:initial}.___SScrollArea_70deb_gg_ .___SContainer_70deb_gg_._scrollDirection_both_70deb_gg_{overflow:auto}.___SScrollArea_70deb_gg_ .___SContainer_70deb_gg_._scrollDirection_both_70deb_gg_.__loading_70deb_gg_,.___SScrollArea_70deb_gg_ .___SContainer_70deb_gg_._scrollDirection_horizontal_70deb_gg_.__loading_70deb_gg_,.___SScrollArea_70deb_gg_ .___SContainer_70deb_gg_._scrollDirection_vertical_70deb_gg_.__loading_70deb_gg_{overflow:hidden}.___SScrollArea_70deb_gg_ .___SContainer_70deb_gg_._scrollDirection_horizontal_70deb_gg_{overflow-x:auto;overflow-y:initial}.___SScrollArea_70deb_gg_ .___SContainer_70deb_gg_._scrollDirection_vertical_70deb_gg_{overflow-x:initial;overflow-y:auto}.___SScrollArea_70deb_gg_ .___SContainer_70deb_gg_.__headerHeight_70deb_gg_{scroll-padding-top:var(--headerHeight_70deb)}.___SScrollArea_70deb_gg_ .___SContainer_70deb_gg_.__leftScrollPadding_70deb_gg_{scroll-padding-left:var(--leftScrollPadding_70deb)}.___SScrollArea_70deb_gg_ .___SContainer_70deb_gg_.__rightScrollPadding_70deb_gg_{scroll-padding-right:var(--rightScrollPadding_70deb)}.___SScrollArea_70deb_gg_ .___SShadowHorizontal_70deb_gg_::before,.___SScrollArea_70deb_gg_ .___SShadowHorizontal_70deb_gg_:after,.___SScrollArea_70deb_gg_ .___SShadowVertical_70deb_gg_::after{z-index:20}.___SScrollArea_70deb_gg_ .___SShadowHorizontal_70deb_gg_.__leftOffset_70deb_gg_::before,.___SScrollArea_70deb_gg_ .___SShadowHorizontal_70deb_gg_.__rightOffset_70deb_gg_::after,.___SScrollArea_70deb_gg_ .___SShadowVertical_70deb_gg_::before{display:none}", /*__inner_css_end__*/"70deb_gg_"),
49
50
  /*__reshadow_css_end__*/
50
51
  {
51
- "__SScrollArea": "___SScrollArea_1m51n_gg_",
52
- "__SContainer": "___SContainer_1m51n_gg_",
53
- "_scrollDirection_both": "_scrollDirection_both_1m51n_gg_",
54
- "_loading": "__loading_1m51n_gg_",
55
- "_scrollDirection_horizontal": "_scrollDirection_horizontal_1m51n_gg_",
56
- "_scrollDirection_vertical": "_scrollDirection_vertical_1m51n_gg_",
57
- "_headerHeight": "__headerHeight_1m51n_gg_",
58
- "--headerHeight": "--headerHeight_1m51n",
59
- "_leftScrollPadding": "__leftScrollPadding_1m51n_gg_",
60
- "--leftScrollPadding": "--leftScrollPadding_1m51n",
61
- "_rightScrollPadding": "__rightScrollPadding_1m51n_gg_",
62
- "--rightScrollPadding": "--rightScrollPadding_1m51n",
63
- "__SShadowVertical": "___SShadowVertical_1m51n_gg_",
64
- "__SShadowHorizontal": "___SShadowHorizontal_1m51n_gg_",
65
- "_leftOffset": "__leftOffset_1m51n_gg_",
66
- "_rightOffset": "__rightOffset_1m51n_gg_"
52
+ "__SScrollArea": "___SScrollArea_70deb_gg_",
53
+ "__SContainer": "___SContainer_70deb_gg_",
54
+ "_scrollDirection_both": "_scrollDirection_both_70deb_gg_",
55
+ "_loading": "__loading_70deb_gg_",
56
+ "_scrollDirection_horizontal": "_scrollDirection_horizontal_70deb_gg_",
57
+ "_scrollDirection_vertical": "_scrollDirection_vertical_70deb_gg_",
58
+ "_headerHeight": "__headerHeight_70deb_gg_",
59
+ "--headerHeight": "--headerHeight_70deb",
60
+ "_leftScrollPadding": "__leftScrollPadding_70deb_gg_",
61
+ "--leftScrollPadding": "--leftScrollPadding_70deb",
62
+ "_rightScrollPadding": "__rightScrollPadding_70deb_gg_",
63
+ "--rightScrollPadding": "--rightScrollPadding_70deb",
64
+ "__SShadowVertical": "___SShadowVertical_70deb_gg_",
65
+ "__SShadowHorizontal": "___SShadowHorizontal_70deb_gg_",
66
+ "_leftOffset": "__leftOffset_70deb_gg_",
67
+ "_rightOffset": "__rightOffset_70deb_gg_"
67
68
  });
68
69
  var ACCORDION = exports.ACCORDION = Symbol('accordion');
69
70
  var ROW_GROUP = exports.ROW_GROUP = Symbol('ROW_GROUP');
@@ -100,7 +101,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
100
101
  });
101
102
  (0, _defineProperty2["default"])(_this, "selectAllMessageTimer", 0);
102
103
  (0, _defineProperty2["default"])(_this, "headerNodesMap", new Map());
103
- (0, _defineProperty2["default"])(_this, "isPressedShift", false);
104
+ (0, _defineProperty2["default"])(_this, "selectedRowsContainer", void 0);
104
105
  (0, _defineProperty2["default"])(_this, "lastSelectedRowKey", void 0);
105
106
  (0, _defineProperty2["default"])(_this, "state", {
106
107
  scrollTop: 0,
@@ -145,13 +146,16 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
145
146
  _this.initFocusableCell([_this.hasFocusableInHeader() ? opt.rowIndex + 1 : opt.rowIndex, opt.colIndex]);
146
147
  }
147
148
  });
149
+ (0, _defineProperty2["default"])(_this, "handleSelectAllRows", function (selectedRows, event) {
150
+ if (!('onSelectedRowsChange' in _this.asProps) || !_this.asProps.onSelectedRowsChange || !Array.isArray(selectedRows)) return;
151
+ _this.asProps.onSelectedRowsChange(selectedRows, event);
152
+ });
148
153
  (0, _defineProperty2["default"])(_this, "handleSelectRow", function (isSelected, selectedRowIndex, row, event) {
149
- var _this$asProps = _this.asProps,
150
- selectedRows = _this$asProps.selectedRows,
151
- onSelectedRowsChange = _this$asProps.onSelectedRowsChange;
152
- if (!selectedRows || !onSelectedRowsChange) return;
154
+ var selectedRows = _this.asProps.selectedRows;
155
+ if (!selectedRows || !('onSelectedRowsChange' in _this.asProps) || !_this.asProps.onSelectedRowsChange || !Array.isArray(selectedRows)) return;
156
+ var onSelectedRowsChange = _this.asProps.onSelectedRowsChange;
153
157
  var selectedRowsSet = new Set(selectedRows);
154
- if (_this.isPressedShift && selectedRowsSet.size > 0 && _this.lastSelectedRowKey && (isSelected ? selectedRowsSet.has(_this.lastSelectedRowKey) : true)) {
158
+ if (_this.selectedRowsContainer.isPressedShift && selectedRowsSet.size > 0 && _this.lastSelectedRowKey && (isSelected ? selectedRowsSet.has(_this.lastSelectedRowKey) : true)) {
155
159
  var select = false;
156
160
  var firstColumnKey = _this.columns[0].name;
157
161
  var isMerged = _this.flatRows.some(function (item) {
@@ -227,9 +231,9 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
227
231
  });
228
232
  });
229
233
  (0, _defineProperty2["default"])(_this, "onExpandRow", function (expandedRow) {
230
- var _this$asProps2 = _this.asProps,
231
- onAccordionToggle = _this$asProps2.onAccordionToggle,
232
- accordionMode = _this$asProps2.accordionMode;
234
+ var _this$asProps = _this.asProps,
235
+ onAccordionToggle = _this$asProps.onAccordionToggle,
236
+ accordionMode = _this$asProps.accordionMode;
233
237
  var expandedRows = _this.state.expandedRows;
234
238
  if (expandedRows.has(expandedRow[UNIQ_ROW_KEY])) {
235
239
  expandedRows["delete"](expandedRow[UNIQ_ROW_KEY]);
@@ -374,13 +378,13 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
374
378
  }
375
379
  case 'Shift':
376
380
  {
377
- _this.isPressedShift = true;
381
+ _this.selectedRowsContainer.isPressedShift = true;
378
382
  }
379
383
  }
380
384
  });
381
385
  (0, _defineProperty2["default"])(_this, "handleKeyUp", function (e) {
382
386
  if (e.key === 'Shift') {
383
- _this.isPressedShift = false;
387
+ _this.selectedRowsContainer.isPressedShift = false;
384
388
  }
385
389
  });
386
390
  (0, _defineProperty2["default"])(_this, "handleScroll", (0, _rafTrottle["default"])(function (e) {
@@ -498,12 +502,12 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
498
502
  _this.changeFocusCell(-1, cellIndex === -1 ? 0 : cellIndex, 'up');
499
503
  });
500
504
  (0, _defineProperty2["default"])(_this, "handleContainerResizeEnd", function (entries, observer) {
501
- var _this$asProps$onResiz, _this$asProps3;
505
+ var _this$asProps$onResiz, _this$asProps2;
502
506
  if (_this.containerResizeEndTimeoutId) {
503
507
  clearTimeout(_this.containerResizeEndTimeoutId);
504
508
  }
505
509
  _this.containerResizeEndTimeoutId = setTimeout(_this.calculateVerticalShadow, 0);
506
- (_this$asProps$onResiz = (_this$asProps3 = _this.asProps).onResize) === null || _this$asProps$onResiz === void 0 || _this$asProps$onResiz.call(_this$asProps3, entries, observer);
510
+ (_this$asProps$onResiz = (_this$asProps2 = _this.asProps).onResize) === null || _this$asProps$onResiz === void 0 || _this$asProps$onResiz.call(_this$asProps2, entries, observer);
507
511
  });
508
512
  (0, _defineProperty2["default"])(_this, "getScrollOffsetValue", function () {
509
513
  if (!_this.headerRef.current) {
@@ -577,6 +581,11 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
577
581
  _this.calculatedRows = _this.getRows();
578
582
  _this.flatRows = _this.calculatedRows.flat();
579
583
  _this.tmpData = props.data;
584
+ if (Array.isArray(props.selectedRows) || !props.selectedRows) {
585
+ _this.selectedRowsContainer = new _SelectableRows.SelectableRows();
586
+ } else {
587
+ _this.selectedRowsContainer = props.selectedRows;
588
+ }
580
589
  return _this;
581
590
  }
582
591
  (0, _inherits2["default"])(DataTableRoot, _Component);
@@ -584,9 +593,9 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
584
593
  key: "componentDidMount",
585
594
  value: function componentDidMount() {
586
595
  var _this2 = this;
587
- var _this$asProps4 = this.asProps,
588
- headerProps = _this$asProps4.headerProps,
589
- loading = _this$asProps4.loading;
596
+ var _this$asProps3 = this.asProps,
597
+ headerProps = _this$asProps3.headerProps,
598
+ loading = _this$asProps3.loading;
590
599
  if (headerProps !== null && headerProps !== void 0 && headerProps.sticky && !headerProps.h || loading || this.hasFixedColumn) {
591
600
  requestAnimationFrame(function () {
592
601
  _this2.forceUpdate();
@@ -600,10 +609,10 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
600
609
  }, {
601
610
  key: "componentDidUpdate",
602
611
  value: function componentDidUpdate(prevProps) {
603
- var _this$asProps5 = this.asProps,
604
- data = _this$asProps5.data,
605
- selectedRows = _this$asProps5.selectedRows,
606
- columns = _this$asProps5.columns;
612
+ var _this$asProps4 = this.asProps,
613
+ data = _this$asProps4.data,
614
+ selectedRows = _this$asProps4.selectedRows,
615
+ columns = _this$asProps4.columns;
607
616
  if (prevProps.columns !== columns) {
608
617
  var cols = this.calculateColumnsFromConfig();
609
618
  this.columns = cols[0];
@@ -615,7 +624,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
615
624
  this.calculateVerticalShadow();
616
625
  }
617
626
  }
618
- if (prevProps.selectedRows !== selectedRows && selectedRows !== undefined) {
627
+ if (prevProps.selectedRows !== selectedRows && selectedRows !== undefined && Array.isArray(selectedRows)) {
619
628
  var selectedRowsSet = new Set(selectedRows);
620
629
  var allChecked = [];
621
630
  var allUnchecked = [];
@@ -632,6 +641,9 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
632
641
  this.setSelectAllMessage(false);
633
642
  }
634
643
  }
644
+ if (prevProps.selectedRows !== selectedRows && selectedRows !== undefined && !Array.isArray(selectedRows)) {
645
+ this.selectedRowsContainer = selectedRows;
646
+ }
635
647
  }
636
648
  }, {
637
649
  key: "componentWillUnmount",
@@ -678,11 +690,11 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
678
690
  }, {
679
691
  key: "scrollDirection",
680
692
  get: function get() {
681
- var _this$asProps6 = this.asProps,
682
- w = _this$asProps6.w,
683
- wMax = _this$asProps6.wMax,
684
- h = _this$asProps6.h,
685
- hMax = _this$asProps6.hMax;
693
+ var _this$asProps5 = this.asProps,
694
+ w = _this$asProps5.w,
695
+ wMax = _this$asProps5.wMax,
696
+ h = _this$asProps5.h,
697
+ hMax = _this$asProps5.hMax;
686
698
  var scrollDirection = undefined;
687
699
  var hasWidthSettings = Boolean(w) || Boolean(wMax);
688
700
  var hasHeightSettings = Boolean(h) && h !== 'fit-content' || Boolean(hMax);
@@ -703,18 +715,17 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
703
715
  }, {
704
716
  key: "getHeadProps",
705
717
  value: function getHeadProps() {
706
- var _this$asProps7 = this.asProps,
707
- use = _this$asProps7.use,
708
- compact = _this$asProps7.compact,
709
- sort = _this$asProps7.sort,
710
- onSortChange = _this$asProps7.onSortChange,
711
- getI18nText = _this$asProps7.getI18nText,
712
- uid = _this$asProps7.uid,
713
- headerProps = _this$asProps7.headerProps,
714
- onSelectedRowsChange = _this$asProps7.onSelectedRowsChange,
715
- selectedRows = _this$asProps7.selectedRows,
716
- sideIndents = _this$asProps7.sideIndents,
717
- variant = _this$asProps7.variant;
718
+ var _this$asProps6 = this.asProps,
719
+ use = _this$asProps6.use,
720
+ compact = _this$asProps6.compact,
721
+ sort = _this$asProps6.sort,
722
+ onSortChange = _this$asProps6.onSortChange,
723
+ getI18nText = _this$asProps6.getI18nText,
724
+ uid = _this$asProps6.uid,
725
+ headerProps = _this$asProps6.headerProps,
726
+ selectedRows = _this$asProps6.selectedRows,
727
+ sideIndents = _this$asProps6.sideIndents,
728
+ variant = _this$asProps6.variant;
718
729
  var _this$gridSettings = this.gridSettings,
719
730
  gridTemplateColumns = _this$gridSettings.gridTemplateColumns,
720
731
  gridTemplateAreas = _this$gridSettings.gridTemplateAreas;
@@ -738,7 +749,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
738
749
  totalRows: this.totalRows,
739
750
  selectedRows: selectedRows,
740
751
  flatRows: this.getFlatRows(),
741
- onChangeSelectAll: onSelectedRowsChange,
752
+ onChangeSelectAll: Array.isArray(selectedRows) ? this.handleSelectAllRows : undefined,
742
753
  getFixedStyle: this.getFixedStyle,
743
754
  onCellClick: this.handleCellClick,
744
755
  shadowVertical: shadowVertical,
@@ -749,27 +760,27 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
749
760
  }, {
750
761
  key: "getBodyProps",
751
762
  value: function getBodyProps() {
752
- var _this$asProps8 = this.asProps,
753
- use = _this$asProps8.use,
754
- compact = _this$asProps8.compact,
755
- loading = _this$asProps8.loading,
756
- getI18nText = _this$asProps8.getI18nText,
757
- virtualScroll = _this$asProps8.virtualScroll,
758
- uid = _this$asProps8.uid,
759
- rowProps = _this$asProps8.rowProps,
760
- renderCell = _this$asProps8.renderCell,
761
- headerProps = _this$asProps8.headerProps,
762
- renderEmptyData = _this$asProps8.renderEmptyData,
763
- sideIndents = _this$asProps8.sideIndents,
764
- selectedRows = _this$asProps8.selectedRows,
765
- accordionDuration = _this$asProps8.accordionDuration,
766
- accordionMode = _this$asProps8.accordionMode,
767
- rawData = _this$asProps8.data,
768
- renderCellOverlay = _this$asProps8.renderCellOverlay,
769
- limit = _this$asProps8.limit,
770
- variant = _this$asProps8.variant,
771
- totalRows = _this$asProps8.totalRows,
772
- accordionAnimationRows = _this$asProps8.accordionAnimationRows;
763
+ var _this$asProps7 = this.asProps,
764
+ use = _this$asProps7.use,
765
+ compact = _this$asProps7.compact,
766
+ loading = _this$asProps7.loading,
767
+ getI18nText = _this$asProps7.getI18nText,
768
+ virtualScroll = _this$asProps7.virtualScroll,
769
+ uid = _this$asProps7.uid,
770
+ rowProps = _this$asProps7.rowProps,
771
+ renderCell = _this$asProps7.renderCell,
772
+ headerProps = _this$asProps7.headerProps,
773
+ renderEmptyData = _this$asProps7.renderEmptyData,
774
+ sideIndents = _this$asProps7.sideIndents,
775
+ selectedRows = _this$asProps7.selectedRows,
776
+ accordionDuration = _this$asProps7.accordionDuration,
777
+ accordionMode = _this$asProps7.accordionMode,
778
+ rawData = _this$asProps7.data,
779
+ renderCellOverlay = _this$asProps7.renderCellOverlay,
780
+ limit = _this$asProps7.limit,
781
+ variant = _this$asProps7.variant,
782
+ totalRows = _this$asProps7.totalRows,
783
+ accordionAnimationRows = _this$asProps7.accordionAnimationRows;
773
784
  var _this$gridSettings2 = this.gridSettings,
774
785
  gridTemplateColumns = _this$gridSettings2.gridTemplateColumns,
775
786
  gridTemplateAreas = _this$gridSettings2.gridTemplateAreas;
@@ -806,7 +817,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
806
817
  renderEmptyData: renderEmptyData,
807
818
  sideIndents: sideIndents,
808
819
  selectedRows: selectedRows,
809
- onSelectRow: this.handleSelectRow,
820
+ onSelectRow: Array.isArray(selectedRows) ? this.handleSelectRow : undefined,
810
821
  getFixedStyle: this.getFixedStyle,
811
822
  onCellClick: this.handleCellClick,
812
823
  rawData: rawData,
@@ -849,20 +860,20 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
849
860
  var _ref = this.asProps,
850
861
  _ref2;
851
862
  var SDataTable = _baseComponents.Box;
852
- var _this$asProps9 = this.asProps,
853
- Children = _this$asProps9.Children,
854
- styles = _this$asProps9.styles,
855
- w = _this$asProps9.w,
856
- wMax = _this$asProps9.wMax,
857
- wMin = _this$asProps9.wMin,
858
- h = _this$asProps9.h,
859
- hMax = _this$asProps9.hMax,
860
- hMin = _this$asProps9.hMin,
861
- virtualScroll = _this$asProps9.virtualScroll,
862
- children = _this$asProps9.children,
863
- headerProps = _this$asProps9.headerProps,
864
- loading = _this$asProps9.loading,
865
- selectedRows = _this$asProps9.selectedRows;
863
+ var _this$asProps8 = this.asProps,
864
+ Children = _this$asProps8.Children,
865
+ styles = _this$asProps8.styles,
866
+ w = _this$asProps8.w,
867
+ wMax = _this$asProps8.wMax,
868
+ wMin = _this$asProps8.wMin,
869
+ h = _this$asProps8.h,
870
+ hMax = _this$asProps8.hMax,
871
+ hMin = _this$asProps8.hMin,
872
+ virtualScroll = _this$asProps8.virtualScroll,
873
+ children = _this$asProps8.children,
874
+ headerProps = _this$asProps8.headerProps,
875
+ loading = _this$asProps8.loading,
876
+ selectedRows = _this$asProps8.selectedRows;
866
877
  var _this$getScrollOffset = this.getScrollOffsetValue(),
867
878
  _this$getScrollOffset2 = (0, _slicedToArray2["default"])(_this$getScrollOffset, 2),
868
879
  offsetLeftSum = _this$getScrollOffset2[0],
@@ -1081,11 +1092,13 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
1081
1092
  var _this$props2 = this.props,
1082
1093
  data = _this$props2.data,
1083
1094
  uid = _this$props2.uid,
1084
- uniqueRowKey = _this$props2.uniqueRowKey;
1095
+ uniqueRowKey = _this$props2.uniqueRowKey,
1096
+ selectedRows = _this$props2.selectedRows;
1085
1097
  if (this.tmpData === data) {
1086
1098
  return this.calculatedRows;
1087
1099
  }
1088
1100
  this.tmpData = data;
1101
+ var availableRowKeys = [];
1089
1102
  var rows = [];
1090
1103
  var columnNames = columns.map(function (column) {
1091
1104
  return column.name;
@@ -1155,6 +1168,10 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
1155
1168
  dtRow[value] = '';
1156
1169
  });
1157
1170
  }
1171
+ if (!excludeColumns) {
1172
+ // we should add only the main row in mergedRows or default rows
1173
+ availableRowKeys.push(dtRow[UNIQ_ROW_KEY]);
1174
+ }
1158
1175
  return dtRow;
1159
1176
  };
1160
1177
  data.forEach(function (row) {
@@ -1207,6 +1224,9 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
1207
1224
  }
1208
1225
  });
1209
1226
  this.calculatedRows = rows;
1227
+ if (selectedRows && !Array.isArray(selectedRows)) {
1228
+ selectedRows.setAvailableKeys(availableRowKeys);
1229
+ }
1210
1230
  return rows;
1211
1231
  }
1212
1232
  }, {