@semcore/data-table 16.0.0-prerelease.19 → 16.0.0-prerelease.20

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 (96) hide show
  1. package/CHANGELOG.md +13 -1
  2. package/lib/cjs/components/Body/Body.js +177 -193
  3. package/lib/cjs/components/Body/Body.js.map +1 -1
  4. package/lib/cjs/components/Body/Body.types.js.map +1 -1
  5. package/lib/cjs/components/Body/Cell.js +39 -34
  6. package/lib/cjs/components/Body/Cell.js.map +1 -1
  7. package/lib/cjs/components/Body/Cell.types.js.map +1 -1
  8. package/lib/cjs/components/Body/MergedCells.js +3 -5
  9. package/lib/cjs/components/Body/MergedCells.js.map +1 -1
  10. package/lib/cjs/components/Body/Row.js +129 -63
  11. package/lib/cjs/components/Body/Row.js.map +1 -1
  12. package/lib/cjs/components/Body/Row.types.js.map +1 -1
  13. package/lib/cjs/components/Body/style.shadow.css +26 -4
  14. package/lib/cjs/components/DataTable/DataTable.js +458 -157
  15. package/lib/cjs/components/DataTable/DataTable.js.map +1 -1
  16. package/lib/cjs/components/DataTable/DataTable.types.js.map +1 -1
  17. package/lib/cjs/components/DataTable/dataTable.shadow.css +0 -1
  18. package/lib/cjs/components/Head/Column.js +38 -25
  19. package/lib/cjs/components/Head/Column.js.map +1 -1
  20. package/lib/cjs/components/Head/Column.types.js.map +1 -1
  21. package/lib/cjs/components/Head/Group.js +31 -26
  22. package/lib/cjs/components/Head/Group.js.map +1 -1
  23. package/lib/cjs/components/Head/Group.type.js.map +1 -1
  24. package/lib/cjs/components/Head/Head.js +90 -50
  25. package/lib/cjs/components/Head/Head.js.map +1 -1
  26. package/lib/cjs/components/Head/Head.types.js.map +1 -1
  27. package/lib/cjs/components/Head/style.shadow.css +13 -0
  28. package/lib/cjs/index.js +6 -0
  29. package/lib/cjs/index.js.map +1 -1
  30. package/lib/cjs/style/scroll-shadows.shadow.css +12 -0
  31. package/lib/cjs/translations/en.json +4 -1
  32. package/lib/es6/components/Body/Body.js +178 -194
  33. package/lib/es6/components/Body/Body.js.map +1 -1
  34. package/lib/es6/components/Body/Body.types.js.map +1 -1
  35. package/lib/es6/components/Body/Cell.js +39 -34
  36. package/lib/es6/components/Body/Cell.js.map +1 -1
  37. package/lib/es6/components/Body/Cell.types.js.map +1 -1
  38. package/lib/es6/components/Body/MergedCells.js +3 -5
  39. package/lib/es6/components/Body/MergedCells.js.map +1 -1
  40. package/lib/es6/components/Body/Row.js +130 -64
  41. package/lib/es6/components/Body/Row.js.map +1 -1
  42. package/lib/es6/components/Body/Row.types.js +1 -1
  43. package/lib/es6/components/Body/Row.types.js.map +1 -1
  44. package/lib/es6/components/Body/style.shadow.css +26 -4
  45. package/lib/es6/components/DataTable/DataTable.js +453 -155
  46. package/lib/es6/components/DataTable/DataTable.js.map +1 -1
  47. package/lib/es6/components/DataTable/DataTable.types.js +1 -1
  48. package/lib/es6/components/DataTable/DataTable.types.js.map +1 -1
  49. package/lib/es6/components/DataTable/dataTable.shadow.css +0 -1
  50. package/lib/es6/components/Head/Column.js +38 -25
  51. package/lib/es6/components/Head/Column.js.map +1 -1
  52. package/lib/es6/components/Head/Column.types.js.map +1 -1
  53. package/lib/es6/components/Head/Group.js +32 -27
  54. package/lib/es6/components/Head/Group.js.map +1 -1
  55. package/lib/es6/components/Head/Group.type.js.map +1 -1
  56. package/lib/es6/components/Head/Head.js +92 -51
  57. package/lib/es6/components/Head/Head.js.map +1 -1
  58. package/lib/es6/components/Head/Head.types.js.map +1 -1
  59. package/lib/es6/components/Head/style.shadow.css +13 -0
  60. package/lib/es6/index.js +2 -2
  61. package/lib/es6/index.js.map +1 -1
  62. package/lib/es6/style/scroll-shadows.shadow.css +12 -0
  63. package/lib/es6/translations/en.json +4 -1
  64. package/lib/esm/components/Body/Body.mjs +164 -188
  65. package/lib/esm/components/Body/Cell.mjs +41 -35
  66. package/lib/esm/components/Body/MergedCells.mjs +3 -5
  67. package/lib/esm/components/Body/Row.mjs +112 -52
  68. package/lib/esm/components/Body/style.shadow.css +263 -0
  69. package/lib/esm/components/DataTable/DataTable.mjs +404 -128
  70. package/lib/esm/components/DataTable/dataTable.shadow.css +17 -0
  71. package/lib/esm/components/Head/Column.mjs +40 -26
  72. package/lib/esm/components/Head/Group.mjs +33 -28
  73. package/lib/esm/components/Head/Head.mjs +71 -37
  74. package/lib/esm/components/Head/style.shadow.css +180 -0
  75. package/lib/esm/index.mjs +2 -1
  76. package/lib/esm/style/scroll-shadows.shadow.css +47 -0
  77. package/lib/esm/translations/en.json.mjs +4 -1
  78. package/lib/types/components/Body/Body.types.d.ts +23 -7
  79. package/lib/types/components/Body/Cell.types.d.ts +3 -0
  80. package/lib/types/components/Body/MergedCells.d.ts +2 -3
  81. package/lib/types/components/Body/Row.types.d.ts +12 -5
  82. package/lib/types/components/DataTable/DataTable.d.ts +5 -2
  83. package/lib/types/components/DataTable/DataTable.types.d.ts +31 -7
  84. package/lib/types/components/Head/Column.d.ts +2 -1
  85. package/lib/types/components/Head/Column.types.d.ts +5 -16
  86. package/lib/types/components/Head/Group.type.d.ts +1 -0
  87. package/lib/types/components/Head/Head.types.d.ts +9 -0
  88. package/lib/types/index.d.ts +2 -2
  89. package/lib/types/translations/__intergalactic-dynamic-locales.d.ts +3 -0
  90. package/package.json +10 -8
  91. package/lib/cjs/utils.js +0 -66
  92. package/lib/cjs/utils.js.map +0 -1
  93. package/lib/es6/utils.js +0 -56
  94. package/lib/es6/utils.js.map +0 -1
  95. package/lib/esm/utils.mjs +0 -43
  96. package/lib/types/utils.d.ts +0 -8
@@ -9,11 +9,10 @@ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
9
9
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
10
10
  import { sstyled, createComponent, lastInteraction, assignProps, Component } from "@semcore/core";
11
11
  import * as React from "react";
12
- import { ScrollArea, Box } from "@semcore/base-components";
12
+ import { ScrollArea, ScreenReaderOnly, Box } from "@semcore/base-components";
13
13
  import { Head } from "../Head/Head.mjs";
14
14
  import { Body } from "../Body/Body.mjs";
15
15
  import { hasFocusableIn, isFocusInside } from "@semcore/core/lib/utils/use/useFocusLock";
16
- import { getScrollOffsetValue } from "../../utils.mjs";
17
16
  import findComponent from "@semcore/core/lib/utils/findComponent";
18
17
  import { localizedMessages } from "../../translations/__intergalactic-dynamic-locales.mjs";
19
18
  import i18nEnhance from "@semcore/core/lib/utils/enhances/i18nEnhance";
@@ -21,41 +20,58 @@ import uniqueIDEnhancement from "@semcore/core/lib/utils/uniqueID";
21
20
  import { forkRef } from "@semcore/core/lib/utils/ref";
22
21
  import { hasParent } from "@semcore/core/lib/utils/hasParent";
23
22
  import trottle from "@semcore/core/lib/utils/rafTrottle";
23
+ import { MergedRowsCell, MergedColumnsCell } from "../Body/MergedCells.mjs";
24
+ import { NoData } from "@semcore/widget-empty";
25
+ /*!__reshadow-styles__:"./dataTable.shadow.css"*/
24
26
  var style = (
25
27
  /*__reshadow_css_start__*/
26
28
  (sstyled.insert(
27
29
  /*__inner_css_start__*/
28
- ".___SDataTable_1rvtk_gg_{display:grid;position:relative;align-items:start;min-width:-moz-fit-content;min-width:fit-content}.___SDataTable_1rvtk_gg_.__gridTemplateColumns_1rvtk_gg_{grid-template-columns:var(--gridTemplateColumns_1rvtk)}.___SDataTable_1rvtk_gg_.__gridTemplateAreas_1rvtk_gg_{grid-template-areas:var(--gridTemplateAreas_1rvtk)}.___SDataTable_1rvtk_gg_.__gridTemplateRows_1rvtk_gg_{grid-template-rows:var(--gridTemplateRows_1rvtk)}",
29
- "1rvtk_gg_"
30
- ), {
31
- "__SDataTable": "___SDataTable_1rvtk_gg_",
32
- "_gridTemplateColumns": "__gridTemplateColumns_1rvtk_gg_",
33
- "--gridTemplateColumns": "--gridTemplateColumns_1rvtk",
34
- "_gridTemplateAreas": "__gridTemplateAreas_1rvtk_gg_",
35
- "--gridTemplateAreas": "--gridTemplateAreas_1rvtk",
36
- "_gridTemplateRows": "__gridTemplateRows_1rvtk_gg_",
37
- "--gridTemplateRows": "--gridTemplateRows_1rvtk"
30
+ ".___SDataTable_1iypx_gg_{display:grid;align-items:start;min-width:-moz-fit-content;min-width:fit-content}.___SDataTable_1iypx_gg_.__gridTemplateColumns_1iypx_gg_{grid-template-columns:var(--gridTemplateColumns_1iypx)}.___SDataTable_1iypx_gg_.__gridTemplateAreas_1iypx_gg_{grid-template-areas:var(--gridTemplateAreas_1iypx)}.___SDataTable_1iypx_gg_.__gridTemplateRows_1iypx_gg_{grid-template-rows:var(--gridTemplateRows_1iypx)}",
31
+ /*__inner_css_end__*/
32
+ "1iypx_gg_"
33
+ ), /*__reshadow_css_end__*/
34
+ {
35
+ "__SDataTable": "___SDataTable_1iypx_gg_",
36
+ "_gridTemplateColumns": "__gridTemplateColumns_1iypx_gg_",
37
+ "--gridTemplateColumns": "--gridTemplateColumns_1iypx",
38
+ "_gridTemplateAreas": "__gridTemplateAreas_1iypx_gg_",
39
+ "--gridTemplateAreas": "--gridTemplateAreas_1iypx",
40
+ "_gridTemplateRows": "__gridTemplateRows_1iypx_gg_",
41
+ "--gridTemplateRows": "--gridTemplateRows_1iypx"
38
42
  })
39
43
  );
44
+ /*!__reshadow-styles__:"../../style/scroll-shadows.shadow.css"*/
40
45
  var scrollStyles = (
41
46
  /*__reshadow_css_start__*/
42
47
  (sstyled.insert(
43
48
  /*__inner_css_start__*/
44
- ".___SScrollArea_dn57w_gg_{width:-moz-fit-content;width:fit-content}.___SScrollArea_dn57w_gg_ .___SContainer_dn57w_gg_{overflow:visible;overflow:initial}.___SScrollArea_dn57w_gg_ .___SContainer_dn57w_gg_._scrollDirection_both_dn57w_gg_{overflow:auto}.___SScrollArea_dn57w_gg_ .___SContainer_dn57w_gg_._scrollDirection_horizontal_dn57w_gg_{overflow-x:auto;overflow-y:initial}.___SScrollArea_dn57w_gg_ .___SContainer_dn57w_gg_._scrollDirection_vertical_dn57w_gg_{overflow-x:initial;overflow-y:auto}.___SScrollArea_dn57w_gg_ .___SShadowVertical_dn57w_gg_:before{display:none}.___SScrollArea_dn57w_gg_ .___SShadowHorizontal_dn57w_gg_:after,.___SScrollArea_dn57w_gg_ .___SShadowHorizontal_dn57w_gg_:before,.___SScrollArea_dn57w_gg_ .___SShadowVertical_dn57w_gg_:after{z-index:2}",
45
- "dn57w_gg_"
46
- ), {
47
- "__SScrollArea": "___SScrollArea_dn57w_gg_",
48
- "__SContainer": "___SContainer_dn57w_gg_",
49
- "_scrollDirection_both": "_scrollDirection_both_dn57w_gg_",
50
- "_scrollDirection_horizontal": "_scrollDirection_horizontal_dn57w_gg_",
51
- "_scrollDirection_vertical": "_scrollDirection_vertical_dn57w_gg_",
52
- "__SShadowVertical": "___SShadowVertical_dn57w_gg_",
53
- "__SShadowHorizontal": "___SShadowHorizontal_dn57w_gg_"
49
+ ".___SScrollArea_fowiu_gg_{width:-moz-fit-content;width:fit-content}.___SScrollArea_fowiu_gg_ .___SContainer_fowiu_gg_{overflow:visible;overflow:initial}.___SScrollArea_fowiu_gg_ .___SContainer_fowiu_gg_._scrollDirection_both_fowiu_gg_{overflow:auto}.___SScrollArea_fowiu_gg_ .___SContainer_fowiu_gg_._scrollDirection_horizontal_fowiu_gg_{overflow-x:auto;overflow-y:initial}.___SScrollArea_fowiu_gg_ .___SContainer_fowiu_gg_._scrollDirection_vertical_fowiu_gg_{overflow-x:initial;overflow-y:auto}.___SScrollArea_fowiu_gg_ .___SContainer_fowiu_gg_.__loading_fowiu_gg_{overflow:hidden}.___SScrollArea_fowiu_gg_ .___SContainer_fowiu_gg_.__headerHeight_fowiu_gg_{scroll-padding-top:var(--headerHeight_fowiu)}.___SScrollArea_fowiu_gg_ .___SContainer_fowiu_gg_.__leftScrollPadding_fowiu_gg_{scroll-padding-left:var(--leftScrollPadding_fowiu)}.___SScrollArea_fowiu_gg_ .___SContainer_fowiu_gg_.__rightScrollPadding_fowiu_gg_{scroll-padding-right:var(--rightScrollPadding_fowiu)}.___SScrollArea_fowiu_gg_ .___SShadowVertical_fowiu_gg_:before{display:none}.___SScrollArea_fowiu_gg_ .___SShadowHorizontal_fowiu_gg_:after,.___SScrollArea_fowiu_gg_ .___SShadowHorizontal_fowiu_gg_:before,.___SScrollArea_fowiu_gg_ .___SShadowVertical_fowiu_gg_:after{z-index:2}",
50
+ /*__inner_css_end__*/
51
+ "fowiu_gg_"
52
+ ), /*__reshadow_css_end__*/
53
+ {
54
+ "__SScrollArea": "___SScrollArea_fowiu_gg_",
55
+ "__SContainer": "___SContainer_fowiu_gg_",
56
+ "_scrollDirection_both": "_scrollDirection_both_fowiu_gg_",
57
+ "_scrollDirection_horizontal": "_scrollDirection_horizontal_fowiu_gg_",
58
+ "_scrollDirection_vertical": "_scrollDirection_vertical_fowiu_gg_",
59
+ "_loading": "__loading_fowiu_gg_",
60
+ "_headerHeight": "__headerHeight_fowiu_gg_",
61
+ "--headerHeight": "--headerHeight_fowiu",
62
+ "_leftScrollPadding": "__leftScrollPadding_fowiu_gg_",
63
+ "--leftScrollPadding": "--leftScrollPadding_fowiu",
64
+ "_rightScrollPadding": "__rightScrollPadding_fowiu_gg_",
65
+ "--rightScrollPadding": "--rightScrollPadding_fowiu",
66
+ "__SShadowVertical": "___SShadowVertical_fowiu_gg_",
67
+ "__SShadowHorizontal": "___SShadowHorizontal_fowiu_gg_"
54
68
  })
55
69
  );
56
70
  var ACCORDION = Symbol("accordion");
57
71
  var ROW_GROUP = Symbol("ROW_GROUP");
58
72
  var UNIQ_ROW_KEY = Symbol("UNIQ_ROW_KEY");
73
+ var SELECT_ALL = Symbol("SELECT_ALL");
74
+ var ROW_INDEX = Symbol("ROW_INDEX");
59
75
  var SCROLL_BAR_HEIGHT = 12;
60
76
  var DataTableRoot = /* @__PURE__ */ function(_Component) {
61
77
  _inherits(DataTableRoot2, _Component);
@@ -68,41 +84,75 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
68
84
  _defineProperty(_assertThisInitialized(_this), "treeColumns", []);
69
85
  _defineProperty(_assertThisInitialized(_this), "hasGroups", false);
70
86
  _defineProperty(_assertThisInitialized(_this), "focusedCell", [-1, -1]);
87
+ _defineProperty(_assertThisInitialized(_this), "scrollAreaRef", /* @__PURE__ */ React.createRef());
71
88
  _defineProperty(_assertThisInitialized(_this), "tableContainerRef", /* @__PURE__ */ React.createRef());
72
89
  _defineProperty(_assertThisInitialized(_this), "tableRef", /* @__PURE__ */ React.createRef());
73
90
  _defineProperty(_assertThisInitialized(_this), "headerRef", /* @__PURE__ */ React.createRef());
74
91
  _defineProperty(_assertThisInitialized(_this), "spinnerRef", /* @__PURE__ */ React.createRef());
75
92
  _defineProperty(_assertThisInitialized(_this), "gridAreaGroupMap", /* @__PURE__ */ new Map());
93
+ _defineProperty(_assertThisInitialized(_this), "columnsSplitter", "/");
94
+ _defineProperty(_assertThisInitialized(_this), "rows", []);
95
+ _defineProperty(_assertThisInitialized(_this), "flatRows", []);
96
+ _defineProperty(_assertThisInitialized(_this), "selectAllMessageTimer", 0);
97
+ _defineProperty(_assertThisInitialized(_this), "headerNodesMap", /* @__PURE__ */ new Map());
76
98
  _defineProperty(_assertThisInitialized(_this), "state", {
77
99
  scrollTop: 0,
78
- scrollDirection: "down"
100
+ scrollDirection: "down",
101
+ selectAllMessage: ""
102
+ });
103
+ _defineProperty(_assertThisInitialized(_this), "handleSelectRow", function(isSelected, selectedRowIndex, row, event) {
104
+ var _this$asProps = _this.asProps, selectedRows = _this$asProps.selectedRows, onSelectedRowsChange = _this$asProps.onSelectedRowsChange;
105
+ _this$asProps.data;
106
+ if (selectedRows && onSelectedRowsChange) {
107
+ var newSelectedRows = new Set(selectedRows);
108
+ if (isSelected && !newSelectedRows.has(selectedRowIndex)) {
109
+ newSelectedRows.add(selectedRowIndex);
110
+ } else if (!isSelected && newSelectedRows.has(selectedRowIndex)) {
111
+ newSelectedRows["delete"](selectedRowIndex);
112
+ }
113
+ onSelectedRowsChange(_toConsumableArray(newSelectedRows), event, {
114
+ selectedRowIndex,
115
+ isSelected,
116
+ row
117
+ });
118
+ }
119
+ });
120
+ _defineProperty(_assertThisInitialized(_this), "setSelectAllMessage", function(selectedAll) {
121
+ if (_this.selectAllMessageTimer) {
122
+ clearTimeout(_this.selectAllMessageTimer);
123
+ }
124
+ var getI18nText = _this.asProps.getI18nText;
125
+ var message = getI18nText(selectedAll ? "DataTable.allItemsSelected:aria-live" : "DataTable.allItemsDeselected:aria-live");
126
+ _this.setState({
127
+ selectAllMessage: message
128
+ });
129
+ _this.selectAllMessageTimer = window.setTimeout(function() {
130
+ _this.setState({
131
+ selectAllMessage: ""
132
+ });
133
+ }, 5e3);
79
134
  });
80
135
  _defineProperty(_assertThisInitialized(_this), "getRow", function(index) {
81
136
  var _this$tableRef$curren;
82
137
  return (_this$tableRef$curren = _this.tableRef.current) === null || _this$tableRef$curren === void 0 ? void 0 : _this$tableRef$curren.querySelector('[aria-rowindex="'.concat(index + 1, '"]'));
83
138
  });
84
139
  _defineProperty(_assertThisInitialized(_this), "hasFocusableInHeader", function() {
85
- var hasFocusable = _this.columns.some(function(column) {
86
- var columnElement = column.ref.current;
87
- return columnElement && hasFocusableIn(columnElement);
88
- });
89
- return hasFocusable;
140
+ return _this.headerRef.current && hasFocusableIn(_this.headerRef.current);
90
141
  });
91
- _defineProperty(_assertThisInitialized(_this), "onExpandRow", function(expandedRowIndex) {
142
+ _defineProperty(_assertThisInitialized(_this), "onExpandRow", function(expandedRow) {
92
143
  var expandedRows = _this.asProps.expandedRows;
93
- if (expandedRows !== null && expandedRows !== void 0 && expandedRows.includes(expandedRowIndex)) {
94
- _this.handlers.expandedRows(expandedRows.filter(function(row) {
95
- return row !== expandedRowIndex;
96
- }));
144
+ if (expandedRows.has(expandedRow[UNIQ_ROW_KEY])) {
145
+ expandedRows["delete"](expandedRow[UNIQ_ROW_KEY]);
97
146
  } else {
98
- _this.handlers.expandedRows([].concat(_toConsumableArray(expandedRows), [expandedRowIndex]));
147
+ expandedRows.add(expandedRow[UNIQ_ROW_KEY]);
99
148
  }
149
+ _this.handlers.expandedRows(new Set(_toConsumableArray(expandedRows)));
100
150
  });
101
151
  _defineProperty(_assertThisInitialized(_this), "changeFocusCell", function(rowIndex, colIndex, direction) {
102
152
  var _this$tableRef$curren2, _this$tableRef$curren3;
103
153
  var hasFocusable = _this.hasFocusableInHeader();
104
154
  var maxCol = _this.columns.length - 1;
105
- var maxRow = _this.totalRows;
155
+ var maxRow = _this.totalRows || 1;
106
156
  var currentRow = (_this$tableRef$curren2 = _this.tableRef.current) === null || _this$tableRef$curren2 === void 0 ? void 0 : _this$tableRef$curren2.querySelector('[aria-rowindex="'.concat(_this.focusedCell[0] + 1, '"]'));
107
157
  var headerCells = (_this$tableRef$curren3 = _this.tableRef.current) === null || _this$tableRef$curren3 === void 0 ? void 0 : _this$tableRef$curren3.querySelectorAll("[role=columnheader]");
108
158
  var currentCell = currentRow === null || currentRow === void 0 ? void 0 : currentRow.querySelector("[role=gridcell][aria-colindex='".concat(_this.focusedCell[1] + 1, "']"));
@@ -118,7 +168,7 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
118
168
  }
119
169
  if (!changed) return;
120
170
  var row = _this.getRow(newRow);
121
- var cell = row === null || row === void 0 ? void 0 : row.querySelector('[role=gridcell][aria-colindex="'.concat(newCol + 1, '"], [role=columnheader][aria-colindex="').concat(newCol + 1, '"]'));
171
+ var cell = row === null || row === void 0 ? void 0 : row.querySelector(':scope > [role=gridcell][aria-colindex="'.concat(newCol + 1, '"], :scope > [role=columnheader][aria-colindex="').concat(newCol + 1, '"], :scope > div > [role=columnheader][aria-colindex="').concat(newCol + 1, '"]'));
122
172
  if (cell instanceof HTMLElement && currentCell !== cell) {
123
173
  _this.focusedCell = [newRow, newCol];
124
174
  currentCell === null || currentCell === void 0 ? void 0 : currentCell.setAttribute("inert", "");
@@ -141,8 +191,11 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
141
191
  var rowI = rowIndex;
142
192
  var colI = colIndex;
143
193
  if (direction === "left" || direction === "right") {
144
- var _currentCell$parentEl;
145
- if (currentCell.dataset.groupedBy === "colgroup" || Number((_currentCell$parentEl = currentCell.parentElement) === null || _currentCell$parentEl === void 0 ? void 0 : _currentCell$parentEl.getAttribute("aria-rowindex")) === 2) {
194
+ var _currentCell$parentEl, _currentCell$parentEl2, _row$children;
195
+ if (((_currentCell$parentEl = currentCell.parentElement) === null || _currentCell$parentEl === void 0 ? void 0 : _currentCell$parentEl.dataset.uiName) === "Collapse") {
196
+ return;
197
+ }
198
+ if (currentCell.dataset.groupedBy === "colgroup" || Number((_currentCell$parentEl2 = currentCell.parentElement) === null || _currentCell$parentEl2 === void 0 ? void 0 : _currentCell$parentEl2.getAttribute("aria-rowindex")) === 2 || Array.from((_row$children = row === null || row === void 0 ? void 0 : row.children) !== null && _row$children !== void 0 ? _row$children : []).indexOf(currentCell) > 0) {
146
199
  colI = direction === "left" ? colI - 1 : colI + 1;
147
200
  } else {
148
201
  rowI = rowI - 1;
@@ -155,6 +208,9 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
155
208
  }
156
209
  }
157
210
  _this.changeFocusCell(rowI, colI, direction);
211
+ } else if (cell === null && currentHeaderCell instanceof HTMLElement && direction === "down") {
212
+ var _colI = colIndex - 1;
213
+ _this.changeFocusCell(rowIndex, _colI, direction);
158
214
  } else if (row === null && _this.focusedCell[0] === 0 && direction === "down" && _this.asProps.virtualScroll) {
159
215
  _this.changeFocusCell(rowIndex + 1, colIndex, direction);
160
216
  }
@@ -255,6 +311,75 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
255
311
  _defineProperty(_assertThisInitialized(_this), "handleMouseMove", function() {
256
312
  _this.setInert(false);
257
313
  });
314
+ _defineProperty(_assertThisInitialized(_this), "handleBackFromAccordion", function(cellIndex) {
315
+ _this.changeFocusCell(-1, cellIndex === -1 ? 0 : cellIndex, "up");
316
+ });
317
+ _defineProperty(_assertThisInitialized(_this), "getScrollOffsetValue", function() {
318
+ if (!_this.headerRef.current) {
319
+ return [0, 0];
320
+ }
321
+ var setToMap = function setToMap2(element) {
322
+ if (element.getAttribute("name") && element.dataset.uiName === "Head.Column") {
323
+ var name = element.getAttribute("name");
324
+ if (name) {
325
+ _this.headerNodesMap.set(name, element);
326
+ }
327
+ }
328
+ };
329
+ _this.headerRef.current.childNodes.forEach(function(node) {
330
+ if (node instanceof HTMLElement) {
331
+ if (node.classList.value.includes("SGroupContainer")) {
332
+ node.childNodes.forEach(function(columnNode) {
333
+ if (columnNode instanceof HTMLElement) {
334
+ setToMap(columnNode);
335
+ }
336
+ });
337
+ } else {
338
+ setToMap(node);
339
+ }
340
+ }
341
+ });
342
+ return _this.columns.reduce(function(acc, column) {
343
+ if (column.fixed === "left") {
344
+ var _this$headerNodesMap$, _this$headerNodesMap$2;
345
+ acc[0] += (_this$headerNodesMap$ = (_this$headerNodesMap$2 = _this.headerNodesMap.get(column.name)) === null || _this$headerNodesMap$2 === void 0 ? void 0 : _this$headerNodesMap$2.getBoundingClientRect().width) !== null && _this$headerNodesMap$ !== void 0 ? _this$headerNodesMap$ : 0;
346
+ }
347
+ if (column.fixed === "right") {
348
+ var _this$headerNodesMap$3, _this$headerNodesMap$4;
349
+ acc[1] += (_this$headerNodesMap$3 = (_this$headerNodesMap$4 = _this.headerNodesMap.get(column.name)) === null || _this$headerNodesMap$4 === void 0 ? void 0 : _this$headerNodesMap$4.getBoundingClientRect().width) !== null && _this$headerNodesMap$3 !== void 0 ? _this$headerNodesMap$3 : 0;
350
+ }
351
+ return acc;
352
+ }, [0, 0]);
353
+ });
354
+ _defineProperty(_assertThisInitialized(_this), "getFixedStyle", function(cell) {
355
+ var side = cell.fixed;
356
+ if (!side) return [void 0, void 0];
357
+ var names = cell.name.split("/");
358
+ var nameSideMap = {
359
+ left: names[0],
360
+ right: names[names.length - 1]
361
+ };
362
+ var name = nameSideMap[side];
363
+ var index = _this.columns.findIndex(function(column) {
364
+ return column.name === name;
365
+ });
366
+ if (index === -1) return [void 0, void 0];
367
+ var startIndexSideMap = {
368
+ left: 0,
369
+ right: index + 1
370
+ };
371
+ var endIndexSideMap = {
372
+ left: index,
373
+ right: _this.columns.length
374
+ };
375
+ var columnsFixed = _this.columns.slice(startIndexSideMap[side], endIndexSideMap[side]);
376
+ if (columnsFixed.length < 1) return [side, 0];
377
+ var sum = columnsFixed.reduce(function(acc, column) {
378
+ var _this$headerNodesMap$5;
379
+ return acc + ((_this$headerNodesMap$5 = _this.headerNodesMap.get(column.name)) === null || _this$headerNodesMap$5 === void 0 ? void 0 : _this$headerNodesMap$5.getBoundingClientRect().width);
380
+ }, 0);
381
+ return [side, "".concat(sum, "px")];
382
+ });
258
383
  if (props.children) {
259
384
  _this.columns = _this.calculateColumns();
260
385
  } else {
@@ -262,41 +387,78 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
262
387
  _this.columns = cols[0];
263
388
  _this.treeColumns = cols[1];
264
389
  }
390
+ _this.rows = _this.calculateRows();
391
+ _this.flatRows = _this.rows.flat();
265
392
  return _this;
266
393
  }
267
394
  _createClass(DataTableRoot2, [{
268
395
  key: "uncontrolledProps",
269
396
  value: function uncontrolledProps() {
270
397
  return {
271
- expandedRows: []
398
+ expandedRows: /* @__PURE__ */ new Set()
272
399
  };
273
400
  }
274
401
  }, {
275
402
  key: "componentDidMount",
276
403
  value: function componentDidMount() {
277
- this.forceUpdate();
404
+ var _this2 = this;
405
+ var _this$asProps2 = this.asProps, headerProps = _this$asProps2.headerProps, loading = _this$asProps2.loading;
406
+ if (headerProps !== null && headerProps !== void 0 && headerProps.sticky && !headerProps.h || loading || this.columns.some(function(c) {
407
+ return c.fixed;
408
+ })) {
409
+ requestAnimationFrame(function() {
410
+ _this2.forceUpdate();
411
+ });
412
+ }
413
+ }
414
+ }, {
415
+ key: "componentDidUpdate",
416
+ value: function componentDidUpdate(prevProps) {
417
+ var _this$asProps3 = this.asProps, data = _this$asProps3.data, selectedRows = _this$asProps3.selectedRows, columns = _this$asProps3.columns;
418
+ if (prevProps.columns !== columns) {
419
+ var cols = this.calculateColumnsFromConfig();
420
+ this.columns = cols[0];
421
+ this.treeColumns = cols[1];
422
+ }
423
+ if (prevProps.data !== data || prevProps.columns !== columns) {
424
+ this.rows = this.calculateRows();
425
+ this.flatRows = this.rows.flat();
426
+ this.forceUpdate();
427
+ }
428
+ if (prevProps.selectedRows !== selectedRows && selectedRows !== void 0) {
429
+ if (prevProps.selectedRows.length < data.length && selectedRows.length === data.length) {
430
+ this.setSelectAllMessage(true);
431
+ } else if (prevProps.selectedRows.length > 0 && selectedRows.length === 0) {
432
+ this.setSelectAllMessage(false);
433
+ }
434
+ }
278
435
  }
279
436
  }, {
280
437
  key: "totalRows",
281
438
  get: function get() {
282
- var _this$asProps = this.asProps, totalRows = _this$asProps.totalRows, expandedRows = _this$asProps.expandedRows, data = _this$asProps.data;
283
- var expandedRowsCount = expandedRows === null || expandedRows === void 0 ? void 0 : expandedRows.reduce(function(acc, rowIndex) {
284
- var dtRow = data[rowIndex];
285
- var expandedRows2 = dtRow[ACCORDION];
286
- if (Array.isArray(expandedRows2)) {
287
- acc = acc + expandedRows2.length;
288
- } else {
289
- acc = acc + 1;
439
+ var _this$asProps4 = this.asProps, totalRows = _this$asProps4.totalRows, expandedRows = _this$asProps4.expandedRows;
440
+ var flatRows = this.rows.flat();
441
+ var expandedRowsCount = Array.from(expandedRows !== null && expandedRows !== void 0 ? expandedRows : []).reduce(function(acc, rowKey) {
442
+ var dtRow = flatRows.find(function(el) {
443
+ return el[UNIQ_ROW_KEY] === rowKey;
444
+ });
445
+ if (dtRow) {
446
+ var _expandedRows = dtRow[ACCORDION];
447
+ if (Array.isArray(_expandedRows)) {
448
+ acc = acc + _expandedRows.length;
449
+ } else {
450
+ acc = acc + 1;
451
+ }
290
452
  }
291
453
  return acc;
292
454
  }, 0);
293
455
  if (totalRows !== void 0) {
294
456
  return totalRows + expandedRowsCount;
295
457
  }
296
- var rows = data.reduce(function(acc, item) {
458
+ var rows = this.rows.reduce(function(acc, item) {
297
459
  acc = acc + 1;
298
- if (item[ROW_GROUP]) {
299
- acc = acc + item[ROW_GROUP].length;
460
+ if (Array.isArray(item)) {
461
+ acc = acc + item.length;
300
462
  }
301
463
  return acc;
302
464
  }, 0);
@@ -307,7 +469,7 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
307
469
  get: function get() {
308
470
  var columns = this.columns;
309
471
  var gridTemplateColumns = columns.map(function(c) {
310
- return c.gridColumnWidth;
472
+ return c.gtcWidth;
311
473
  });
312
474
  var gridTemplateAreas = columns.map(function(c) {
313
475
  return c.name;
@@ -320,7 +482,8 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
320
482
  }, {
321
483
  key: "getHeadProps",
322
484
  value: function getHeadProps() {
323
- var _this$asProps2 = this.asProps, use = _this$asProps2.use, compact = _this$asProps2.compact, sort = _this$asProps2.sort, onSortChange = _this$asProps2.onSortChange, getI18nText = _this$asProps2.getI18nText, uid = _this$asProps2.uid, headerProps = _this$asProps2.headerProps;
485
+ var _this3 = this;
486
+ var _this$asProps5 = this.asProps, use = _this$asProps5.use, compact = _this$asProps5.compact, sort = _this$asProps5.sort, onSortChange = _this$asProps5.onSortChange, getI18nText = _this$asProps5.getI18nText, uid = _this$asProps5.uid, headerProps = _this$asProps5.headerProps, onSelectedRowsChange = _this$asProps5.onSelectedRowsChange, selectedRows = _this$asProps5.selectedRows, sideIndents = _this$asProps5.sideIndents;
324
487
  var _this$gridSettings = this.gridSettings, gridTemplateColumns = _this$gridSettings.gridTemplateColumns, gridTemplateAreas = _this$gridSettings.gridTemplateAreas;
325
488
  return _objectSpread({
326
489
  columns: this.columns,
@@ -335,23 +498,35 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
335
498
  ref: this.headerRef,
336
499
  gridAreaGroupMap: this.gridAreaGroupMap,
337
500
  gridTemplateColumns,
338
- gridTemplateAreas
501
+ gridTemplateAreas,
502
+ sideIndents,
503
+ totalRows: this.totalRows,
504
+ selectedRows,
505
+ onChangeSelectAll: function onChangeSelectAll(value, e) {
506
+ var selectedRowsIndexes = value ? new Array(_this3.totalRows).fill(void 0).map(function(_, i) {
507
+ return i;
508
+ }) : [];
509
+ onSelectedRowsChange === null || onSelectedRowsChange === void 0 ? void 0 : onSelectedRowsChange(selectedRowsIndexes, e);
510
+ },
511
+ getFixedStyle: this.getFixedStyle
339
512
  }, headerProps);
340
513
  }
341
514
  }, {
342
515
  key: "getBodyProps",
343
516
  value: function getBodyProps() {
344
- var _this$asProps3 = this.asProps, use = _this$asProps3.use, compact = _this$asProps3.compact, loading = _this$asProps3.loading, getI18nText = _this$asProps3.getI18nText, expandedRows = _this$asProps3.expandedRows, virtualScroll = _this$asProps3.virtualScroll, data = _this$asProps3.data, uid = _this$asProps3.uid, renderCell = _this$asProps3.renderCell;
517
+ var _this$asProps6 = this.asProps, use = _this$asProps6.use, compact = _this$asProps6.compact, loading = _this$asProps6.loading, getI18nText = _this$asProps6.getI18nText, expandedRows = _this$asProps6.expandedRows, virtualScroll = _this$asProps6.virtualScroll, uid = _this$asProps6.uid, rowProps = _this$asProps6.rowProps, renderCell = _this$asProps6.renderCell, headerProps = _this$asProps6.headerProps, renderEmptyData2 = _this$asProps6.renderEmptyData, sideIndents = _this$asProps6.sideIndents, selectedRows = _this$asProps6.selectedRows;
345
518
  var _this$gridSettings2 = this.gridSettings, gridTemplateColumns = _this$gridSettings2.gridTemplateColumns, gridTemplateAreas = _this$gridSettings2.gridTemplateAreas;
346
519
  return {
347
520
  columns: this.columns,
348
- data,
521
+ rows: this.rows,
522
+ flatRows: this.flatRows,
349
523
  use,
350
524
  compact: Boolean(compact),
351
525
  gridTemplateColumns,
352
526
  gridTemplateAreas,
353
527
  loading,
354
- headerHeight: this.getTopScrollOffset(),
528
+ headerHeight: this.getHeaderHeight(),
529
+ stickyHeader: headerProps === null || headerProps === void 0 ? void 0 : headerProps.sticky,
355
530
  getI18nText,
356
531
  expandedRows,
357
532
  onExpandRow: this.onExpandRow,
@@ -360,10 +535,18 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
360
535
  scrollDirection: this.state.scrollDirection,
361
536
  tableContainerRef: this.tableContainerRef,
362
537
  tableRef: this.tableRef,
538
+ scrollAreaRef: this.scrollAreaRef,
539
+ onBackFromAccordion: this.handleBackFromAccordion,
363
540
  virtualScroll,
364
541
  hasGroups: this.hasGroups,
365
542
  uid,
366
- renderCell
543
+ rowProps,
544
+ renderCell,
545
+ renderEmptyData: renderEmptyData2,
546
+ sideIndents,
547
+ selectedRows,
548
+ onSelectRow: this.handleSelectRow,
549
+ getFixedStyle: this.getFixedStyle
367
550
  };
368
551
  }
369
552
  }, {
@@ -382,24 +565,25 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
382
565
  }, {
383
566
  key: "render",
384
567
  value: function render() {
385
- var _ref = this.asProps, _ref2, _ref3, _ref4;
568
+ var _ref = this.asProps, _ref2;
386
569
  var SDataTable = Box;
387
- var _this$asProps4 = this.asProps, Children = _this$asProps4.Children, styles = _this$asProps4.styles, w = _this$asProps4.w, wMax = _this$asProps4.wMax, wMin = _this$asProps4.wMin, h = _this$asProps4.h, hMax = _this$asProps4.hMax, hMin = _this$asProps4.hMin, virtualScroll = _this$asProps4.virtualScroll, children = _this$asProps4.children, headerProps = _this$asProps4.headerProps;
388
- var _getScrollOffsetValue = getScrollOffsetValue(this.columns), _getScrollOffsetValue2 = _slicedToArray(_getScrollOffsetValue, 2), offsetLeftSum = _getScrollOffsetValue2[0], offsetRightSum = _getScrollOffsetValue2[1];
570
+ var _this$asProps7 = this.asProps, Children = _this$asProps7.Children, styles = _this$asProps7.styles, w = _this$asProps7.w, wMax = _this$asProps7.wMax, wMin = _this$asProps7.wMin, h = _this$asProps7.h, hMax = _this$asProps7.hMax, hMin = _this$asProps7.hMin, virtualScroll = _this$asProps7.virtualScroll, children = _this$asProps7.children, headerProps = _this$asProps7.headerProps, loading = _this$asProps7.loading, selectedRows = _this$asProps7.selectedRows;
571
+ var _this$getScrollOffset = this.getScrollOffsetValue(), _this$getScrollOffset2 = _slicedToArray(_this$getScrollOffset, 2), offsetLeftSum = _this$getScrollOffset2[0], offsetRightSum = _this$getScrollOffset2[1];
389
572
  var _this$gridSettings3 = this.gridSettings, gridTemplateColumns = _this$gridSettings3.gridTemplateColumns, gridTemplateAreas = _this$gridSettings3.gridTemplateAreas;
390
573
  var Head2 = findComponent(Children, ["DataTable.Head"]);
391
574
  var headerPropsToCheck = headerProps !== null && headerProps !== void 0 ? headerProps : Head2 === null || Head2 === void 0 ? void 0 : Head2.props;
392
- var topOffset = headerPropsToCheck !== null && headerPropsToCheck !== void 0 && headerPropsToCheck.sticky || headerPropsToCheck !== null && headerPropsToCheck !== void 0 && headerPropsToCheck.withScrollBar ? this.getTopScrollOffset() : void 0;
575
+ var headerHeight = (headerProps === null || headerProps === void 0 ? void 0 : headerProps.h) || this.getHeaderHeight();
576
+ var topOffset = headerPropsToCheck !== null && headerPropsToCheck !== void 0 && headerPropsToCheck.sticky || headerPropsToCheck !== null && headerPropsToCheck !== void 0 && headerPropsToCheck.withScrollBar ? headerHeight : void 0;
393
577
  var width = w !== null && w !== void 0 ? w : this.columns.some(function(c) {
394
- return c.gridColumnWidth === "auto" || c.gridColumnWidth === "1fr";
578
+ return c.gtcWidth === "auto" || c.gtcWidth === "1fr";
395
579
  }) ? "100%" : void 0;
396
580
  var gridTemplateRows = void 0;
397
581
  if (virtualScroll && typeof virtualScroll !== "boolean" && "rowHeight" in virtualScroll) {
398
582
  gridTemplateRows = "auto auto repeat(".concat(this.totalRows, ", minmax(").concat(virtualScroll.rowHeight, "px, auto)");
399
583
  }
400
584
  var scrollDirection = void 0;
401
- var hasWidthSettings = Boolean((_ref3 = w !== null && w !== void 0 ? w : wMax) !== null && _ref3 !== void 0 ? _ref3 : wMin);
402
- var hasHeightSettings = Boolean((_ref4 = h !== null && h !== void 0 ? h : hMax) !== null && _ref4 !== void 0 ? _ref4 : hMin);
585
+ var hasWidthSettings = Boolean(w) && w !== "100%" || Boolean(wMax);
586
+ var hasHeightSettings = Boolean(h) && h !== "fit-content" || Boolean(hMax);
403
587
  if (hasWidthSettings && !hasHeightSettings) {
404
588
  scrollDirection = "horizontal";
405
589
  } else if (hasHeightSettings && !hasWidthSettings) {
@@ -418,13 +602,18 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
418
602
  "hMax": hMax,
419
603
  "hMin": hMin,
420
604
  "shadow": true,
605
+ "ref": this.scrollAreaRef,
421
606
  "container": this.tableContainerRef,
422
607
  "styles": scrollStyles,
423
- "onScroll": this.handleScroll,
608
+ "onScroll": virtualScroll ? this.handleScroll : void 0,
424
609
  "disableAutofocusToContent": true
425
610
  }), /* @__PURE__ */ React.createElement(ScrollArea.Container, {
426
611
  tabIndex: -1,
427
- scrollDirection
612
+ scrollDirection,
613
+ loading,
614
+ headerHeight: "".concat(headerHeight, "px"),
615
+ leftScrollPadding: "".concat(offsetLeftSum, "px"),
616
+ rightScrollPadding: "".concat(offsetRightSum, "px")
428
617
  }, /* @__PURE__ */ React.createElement(SDataTable, _ref2.cn("SDataTable", _objectSpread({}, assignProps({
429
618
  "ref": forkRef(this.tableRef, this.tableContainerRef),
430
619
  "role": "grid",
@@ -446,57 +635,58 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
446
635
  "use:h": void 0,
447
636
  "use:hMax": void 0,
448
637
  "use:hMin": void 0
449
- }, _ref))), children ? /* @__PURE__ */ React.createElement(Children, _ref2.cn("Children", {})) : /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(DataTable.Head, null), /* @__PURE__ */ React.createElement(DataTable.Body, null)))), (headerPropsToCheck === null || headerPropsToCheck === void 0 ? void 0 : headerPropsToCheck.withScrollBar) && topOffset && /* @__PURE__ */ React.createElement(ScrollArea.Bar, {
638
+ }, _ref))), children ? /* @__PURE__ */ React.createElement(Children, _ref2.cn("Children", {})) : /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(DataTableInternal.Head, null), /* @__PURE__ */ React.createElement(DataTableInternal.Body, null)))), (headerPropsToCheck === null || headerPropsToCheck === void 0 ? void 0 : headerPropsToCheck.withScrollBar) && topOffset && !loading && /* @__PURE__ */ React.createElement(ScrollArea.Bar, {
450
639
  orientation: "horizontal",
451
640
  top: topOffset - SCROLL_BAR_HEIGHT,
452
- zIndex: 3
453
- }), /* @__PURE__ */ React.createElement(ScrollArea.Bar, {
641
+ zIndex: 10
642
+ }), !loading && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(ScrollArea.Bar, {
454
643
  orientation: "horizontal",
455
- zIndex: 2
644
+ zIndex: 10
456
645
  }), /* @__PURE__ */ React.createElement(ScrollArea.Bar, {
457
646
  orientation: "vertical",
458
- zIndex: 2
459
- }));
647
+ zIndex: 10
648
+ })), selectedRows !== void 0 && /* @__PURE__ */ React.createElement(ScreenReaderOnly, _ref2.cn("ScreenReaderOnly", {
649
+ "aria-live": "polite",
650
+ "role": "status"
651
+ }), this.state.selectAllMessage));
460
652
  }
461
653
  }, {
462
654
  key: "calculateColumns",
463
655
  value: function calculateColumns() {
464
- var _this2 = this;
465
- var _this$props = this.props, children = _this$props.children, data = _this$props.data;
656
+ var _this4 = this;
657
+ var _this$props = this.props, children = _this$props.children, data = _this$props.data, selectedRows = _this$props.selectedRows;
466
658
  var HeadComponent = findComponent(children, ["Head"]);
467
659
  this.hasGroups = findComponent(HeadComponent.props.children, ["Head.Group"]) !== void 0;
468
660
  var groupIndex = 0;
469
- var gridColumnIndex = 1;
661
+ var gridColumnIndex = selectedRows ? 2 : 1;
470
662
  var calculateGridTemplateColumn = this.calculateGridTemplateColumn.bind(this);
471
663
  var columns = [];
664
+ if (selectedRows) {
665
+ var column = {
666
+ name: SELECT_ALL.toString(),
667
+ gtcWidth: "40px",
668
+ alignItems: "flex-start",
669
+ children: ""
670
+ };
671
+ columns.push(column);
672
+ }
472
673
  var makeColumn = function makeColumn2(columnElement, parent, isFirst, isLast) {
473
- var _columnElement$props$, _ref5, _columnElement$props$2;
674
+ var _columnElement$props$, _ref3, _columnElement$props$2;
474
675
  var leftBordersFromParent = isFirst && ((parent === null || parent === void 0 ? void 0 : parent.props.borders) === "both" || (parent === null || parent === void 0 ? void 0 : parent.props.borders) === "left") ? "left" : void 0;
475
676
  var rightBordersFromParent = isLast && ((parent === null || parent === void 0 ? void 0 : parent.props.borders) === "both" || (parent === null || parent === void 0 ? void 0 : parent.props.borders) === "right") ? "right" : void 0;
476
- var column = {
677
+ var column2 = {
477
678
  name: columnElement.props.name,
478
- // @ts-ignore
479
- ref: function ref(node) {
480
- if (node) {
481
- var calculatedWidth = node.getBoundingClientRect().width;
482
- var calculatedHeight = node.getBoundingClientRect().height;
483
- column.calculatedWidth = calculatedWidth;
484
- column.calculatedHeight = calculatedHeight;
485
- }
486
- this.ref.current = node;
487
- },
488
- gridColumnWidth: calculateGridTemplateColumn(columnElement),
679
+ gtcWidth: calculateGridTemplateColumn(columnElement),
489
680
  fixed: (_columnElement$props$ = columnElement.props.fixed) !== null && _columnElement$props$ !== void 0 ? _columnElement$props$ : parent === null || parent === void 0 ? void 0 : parent.props.fixed,
490
- calculatedWidth: 0,
491
- calculatedHeight: 0,
492
- borders: (_ref5 = (_columnElement$props$2 = columnElement.props.borders) !== null && _columnElement$props$2 !== void 0 ? _columnElement$props$2 : leftBordersFromParent) !== null && _ref5 !== void 0 ? _ref5 : rightBordersFromParent,
681
+ borders: (_ref3 = (_columnElement$props$2 = columnElement.props.borders) !== null && _columnElement$props$2 !== void 0 ? _columnElement$props$2 : leftBordersFromParent) !== null && _ref3 !== void 0 ? _ref3 : rightBordersFromParent,
493
682
  parent,
494
683
  flexWrap: columnElement.props.flexWrap,
495
684
  alignItems: columnElement.props.alignItems,
496
685
  alignContent: columnElement.props.alignContent,
497
- justifyContent: columnElement.props.justifyContent
686
+ justifyContent: columnElement.props.justifyContent,
687
+ children: ""
498
688
  };
499
- return column;
689
+ return column2;
500
690
  };
501
691
  var childIsColumn = function childIsColumn2(child) {
502
692
  return child.type === Head.Column;
@@ -508,7 +698,7 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
508
698
  if (!/* @__PURE__ */ React.isValidElement(child)) return;
509
699
  if (childIsColumn(child)) {
510
700
  var col = makeColumn(child);
511
- col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(_this2.hasGroups ? "3" : "2", " / ").concat(gridColumnIndex + 1);
701
+ col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(_this4.hasGroups ? "3" : "2", " / ").concat(gridColumnIndex + 1);
512
702
  gridColumnIndex++;
513
703
  columns.push(col);
514
704
  } else if (childIsGroup(child)) {
@@ -533,7 +723,7 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
533
723
  columns.push(_col);
534
724
  }
535
725
  });
536
- _this2.gridAreaGroupMap.set(groupIndex, "1 / ".concat(initGridColumn, " / 2 / ").concat(gridColumnIndex));
726
+ _this4.gridAreaGroupMap.set(groupIndex, "1 / ".concat(initGridColumn, " / 2 / ").concat(gridColumnIndex));
537
727
  groupIndex++;
538
728
  }
539
729
  });
@@ -542,42 +732,37 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
542
732
  }, {
543
733
  key: "calculateColumnsFromConfig",
544
734
  value: function calculateColumnsFromConfig() {
545
- var _this3 = this;
546
- var _this$props2 = this.props, columns = _this$props2.columns, data = _this$props2.data;
547
- this.hasGroups = columns.some(function(column) {
548
- return "columns" in column;
735
+ var _this5 = this;
736
+ var _this$props2 = this.props, columns = _this$props2.columns, data = _this$props2.data, selectedRows = _this$props2.selectedRows;
737
+ this.hasGroups = columns.some(function(column2) {
738
+ return "columns" in column2;
549
739
  });
550
740
  var groupIndex = 0;
551
- var gridColumnIndex = 1;
741
+ var gridColumnIndex = selectedRows ? 2 : 1;
552
742
  var calculateGridTemplateColumn = this.calculateGridTemplateColumn.bind(this);
553
743
  var calculatedColumns = [];
554
744
  var treeColumns = [];
745
+ if (selectedRows) {
746
+ var column = {
747
+ name: SELECT_ALL.toString(),
748
+ gtcWidth: "40px",
749
+ alignItems: "flex-start",
750
+ children: ""
751
+ };
752
+ calculatedColumns.push(column);
753
+ }
555
754
  var makeColumn = function makeColumn2(columnElement, parent, isFirst, isLast) {
556
- var _columnElement$fixed, _ref6, _columnElement$border;
755
+ var _columnElement$fixed, _ref4, _columnElement$border;
557
756
  var leftBordersFromParent = isFirst && ((parent === null || parent === void 0 ? void 0 : parent.borders) === "both" || (parent === null || parent === void 0 ? void 0 : parent.borders) === "left") ? "left" : void 0;
558
757
  var rightBordersFromParent = isLast && ((parent === null || parent === void 0 ? void 0 : parent.borders) === "both" || (parent === null || parent === void 0 ? void 0 : parent.borders) === "right") ? "right" : void 0;
559
- var column = _objectSpread({
758
+ var column2 = _objectSpread(_objectSpread({}, columnElement), {}, {
560
759
  name: childIsColumn(columnElement) ? columnElement.name : "",
561
- // @ts-ignore
562
- ref: function ref(node) {
563
- if (node) {
564
- var calculatedWidth = node.getBoundingClientRect().width;
565
- var calculatedHeight = node.getBoundingClientRect().height;
566
- column.calculatedWidth = calculatedWidth;
567
- column.calculatedHeight = calculatedHeight;
568
- }
569
- if (this !== null && this !== void 0 && this.ref) {
570
- this.ref.current = node;
571
- }
572
- },
573
- gridColumnWidth: childIsColumn(columnElement) ? calculateGridTemplateColumn(columnElement) : "",
760
+ gtcWidth: childIsColumn(columnElement) ? calculateGridTemplateColumn(columnElement) : "",
574
761
  fixed: (_columnElement$fixed = columnElement.fixed) !== null && _columnElement$fixed !== void 0 ? _columnElement$fixed : parent === null || parent === void 0 ? void 0 : parent.fixed,
575
- calculatedWidth: 0,
576
- calculatedHeight: 0,
577
- borders: (_ref6 = (_columnElement$border = columnElement.borders) !== null && _columnElement$border !== void 0 ? _columnElement$border : leftBordersFromParent) !== null && _ref6 !== void 0 ? _ref6 : rightBordersFromParent,
762
+ borders: (_ref4 = (_columnElement$border = columnElement.borders) !== null && _columnElement$border !== void 0 ? _columnElement$border : leftBordersFromParent) !== null && _ref4 !== void 0 ? _ref4 : rightBordersFromParent,
578
763
  parent
579
- }, columnElement);
580
- return column;
764
+ });
765
+ return column2;
581
766
  };
582
767
  var childIsColumn = function childIsColumn2(child) {
583
768
  return !("columns" in child);
@@ -588,7 +773,7 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
588
773
  columns.forEach(function(child, i) {
589
774
  if (childIsColumn(child)) {
590
775
  var col = makeColumn(child);
591
- col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(_this3.hasGroups ? "3" : "2", " / ").concat(gridColumnIndex + 1);
776
+ col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(_this5.hasGroups ? "3" : "2", " / ").concat(gridColumnIndex + 1);
592
777
  gridColumnIndex++;
593
778
  calculatedColumns.push(col);
594
779
  treeColumns.push(col);
@@ -617,21 +802,98 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
617
802
  (_Group$columns = Group.columns) === null || _Group$columns === void 0 ? void 0 : _Group$columns.push(col2);
618
803
  });
619
804
  treeColumns.push(Group);
620
- _this3.gridAreaGroupMap.set(groupIndex, "1 / ".concat(initGridColumn, " / 2 / ").concat(gridColumnIndex));
805
+ _this5.gridAreaGroupMap.set(groupIndex, "1 / ".concat(initGridColumn, " / 2 / ").concat(gridColumnIndex));
621
806
  groupIndex++;
622
807
  }
623
808
  });
624
809
  return [calculatedColumns, treeColumns];
625
810
  }
811
+ }, {
812
+ key: "calculateRows",
813
+ value: function calculateRows() {
814
+ var _this6 = this;
815
+ var columns = this.columns;
816
+ var _this$props3 = this.props, data = _this$props3.data, uid = _this$props3.uid;
817
+ var rows = [];
818
+ var columnNames = columns.map(function(column) {
819
+ return column.name;
820
+ });
821
+ var rowIndex = 0;
822
+ var id = 1e8;
823
+ var makeDtRow = function makeDtRow2(row, excludeColumns) {
824
+ var _Object$entries$reduc;
825
+ var columns2 = new Set(columnNames);
826
+ var dtRow = Object.entries(row).reduce(function(acc, _ref5) {
827
+ var _ref6 = _slicedToArray(_ref5, 2), key = _ref6[0], value = _ref6[1];
828
+ var columnsToRow = key.split(_this6.columnsSplitter);
829
+ if (columnsToRow.length === 1) {
830
+ acc[key] = value !== null && value !== void 0 ? value : "";
831
+ columns2["delete"](key);
832
+ } else {
833
+ acc[columnsToRow[0]] = new MergedColumnsCell(value, {
834
+ dataKey: key,
835
+ size: columnsToRow.length
836
+ });
837
+ columnsToRow.forEach(function(value2) {
838
+ columns2["delete"](value2);
839
+ });
840
+ }
841
+ if (row[ACCORDION]) {
842
+ acc[ACCORDION] = row[ACCORDION];
843
+ }
844
+ return acc;
845
+ }, (_Object$entries$reduc = {}, _defineProperty(_Object$entries$reduc, UNIQ_ROW_KEY, row[UNIQ_ROW_KEY] || "".concat(uid, "_").concat((rowIndex + id).toString(36))), _defineProperty(_Object$entries$reduc, ROW_INDEX, rowIndex), _Object$entries$reduc));
846
+ excludeColumns === null || excludeColumns === void 0 ? void 0 : excludeColumns.forEach(function(value) {
847
+ columns2["delete"](value);
848
+ });
849
+ if (columns2.size > 0) {
850
+ columns2.forEach(function(value) {
851
+ dtRow[value] = "";
852
+ });
853
+ }
854
+ return dtRow;
855
+ };
856
+ data.forEach(function(row) {
857
+ var groupedRows = row[ROW_GROUP];
858
+ if (groupedRows) {
859
+ var _Object$entries$reduc2;
860
+ var innerRows = [];
861
+ var groupedKeys = [];
862
+ var groupedRowData = Object.entries(row).reduce(function(acc, _ref7) {
863
+ var _ref8 = _slicedToArray(_ref7, 2), key = _ref8[0], value = _ref8[1];
864
+ acc[key] = new MergedRowsCell(value, groupedRows.length);
865
+ groupedKeys.push(key);
866
+ return acc;
867
+ }, (_Object$entries$reduc2 = {}, _defineProperty(_Object$entries$reduc2, UNIQ_ROW_KEY, ""), _defineProperty(_Object$entries$reduc2, ROW_INDEX, -1), _Object$entries$reduc2));
868
+ groupedRows.forEach(function(childRow, index) {
869
+ var dtRow2;
870
+ if (index === 0) {
871
+ var rowData = _objectSpread(_objectSpread({}, childRow), groupedRowData);
872
+ dtRow2 = makeDtRow(rowData);
873
+ } else {
874
+ dtRow2 = makeDtRow(childRow, groupedKeys);
875
+ }
876
+ innerRows.push(dtRow2);
877
+ rowIndex++;
878
+ });
879
+ rows.push(innerRows);
880
+ } else {
881
+ var dtRow = makeDtRow(row);
882
+ rows.push(dtRow);
883
+ rowIndex++;
884
+ }
885
+ });
886
+ return rows;
887
+ }
626
888
  }, {
627
889
  key: "calculateGridTemplateColumn",
628
890
  value: function calculateGridTemplateColumn(c) {
629
- var _ref7;
630
- return (_ref7 = /* @__PURE__ */ React.isValidElement(c) ? c.props.gtcWidth : c.gtcWidth) !== null && _ref7 !== void 0 ? _ref7 : this.props.defaultGridTemplateColumnWidth;
891
+ var _ref9;
892
+ return (_ref9 = /* @__PURE__ */ React.isValidElement(c) ? c.props.gtcWidth : c.gtcWidth) !== null && _ref9 !== void 0 ? _ref9 : this.props.defaultGridTemplateColumnWidth;
631
893
  }
632
894
  }, {
633
- key: "getTopScrollOffset",
634
- value: function getTopScrollOffset() {
895
+ key: "getHeaderHeight",
896
+ value: function getHeaderHeight() {
635
897
  var _this$headerRef$curre;
636
898
  var header = (_this$headerRef$curre = this.headerRef.current) === null || _this$headerRef$curre === void 0 ? void 0 : _this$headerRef$curre.children;
637
899
  var height = 0;
@@ -654,15 +916,29 @@ _defineProperty(DataTableRoot, "enhance", [uniqueIDEnhancement(), i18nEnhance(lo
654
916
  _defineProperty(DataTableRoot, "defaultProps", {
655
917
  use: "primary",
656
918
  defaultGridTemplateColumnWidth: "auto",
657
- defaultExpandedRows: []
919
+ defaultExpandedRows: /* @__PURE__ */ new Set(),
920
+ defaultSelectedRows: void 0,
921
+ h: "fit-content",
922
+ renderEmptyData: function renderEmptyData() {
923
+ return /* @__PURE__ */ React.createElement(NoData, {
924
+ py: 10,
925
+ type: "nothing-found",
926
+ description: "",
927
+ w: "100%"
928
+ });
929
+ }
658
930
  });
659
931
  var DataTable = createComponent(DataTableRoot, {
660
932
  Head,
661
933
  Body
662
934
  });
935
+ var DataTableInternal = DataTable;
663
936
  export {
664
937
  ACCORDION,
665
938
  DataTable,
939
+ DataTableInternal,
666
940
  ROW_GROUP,
941
+ ROW_INDEX,
942
+ SELECT_ALL,
667
943
  UNIQ_ROW_KEY
668
944
  };