@semcore/data-table 16.0.0-prerelease.16 → 16.0.0-prerelease.17

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 (100) hide show
  1. package/lib/cjs/components/Body/Body.js +114 -100
  2. package/lib/cjs/components/Body/Body.js.map +1 -1
  3. package/lib/cjs/components/Body/Body.types.js.map +1 -1
  4. package/lib/cjs/components/Body/Cell.js +67 -30
  5. package/lib/cjs/components/Body/Cell.js.map +1 -1
  6. package/lib/cjs/components/Body/Cell.types.js.map +1 -1
  7. package/lib/cjs/components/Body/MergedCells.js +9 -5
  8. package/lib/cjs/components/Body/MergedCells.js.map +1 -1
  9. package/lib/cjs/components/Body/Row.js +72 -113
  10. package/lib/cjs/components/Body/Row.js.map +1 -1
  11. package/lib/cjs/components/Body/Row.types.js +2 -0
  12. package/lib/cjs/components/Body/Row.types.js.map +1 -1
  13. package/lib/cjs/components/Body/style.shadow.css +75 -36
  14. package/lib/cjs/components/DataTable/DataTable.js +142 -93
  15. package/lib/cjs/components/DataTable/DataTable.js.map +1 -1
  16. package/lib/cjs/components/DataTable/DataTable.types.js +2 -0
  17. package/lib/cjs/components/DataTable/DataTable.types.js.map +1 -1
  18. package/lib/cjs/components/Head/Column.js +54 -33
  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 +24 -33
  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 +23 -28
  25. package/lib/cjs/components/Head/Head.js.map +1 -1
  26. package/lib/cjs/components/Head/style.shadow.css +16 -14
  27. package/lib/cjs/index.js.map +1 -1
  28. package/lib/cjs/style/scroll-shadows.shadow.css +13 -6
  29. package/lib/es6/components/Body/Body.js +114 -100
  30. package/lib/es6/components/Body/Body.js.map +1 -1
  31. package/lib/es6/components/Body/Body.types.js.map +1 -1
  32. package/lib/es6/components/Body/Cell.js +67 -30
  33. package/lib/es6/components/Body/Cell.js.map +1 -1
  34. package/lib/es6/components/Body/Cell.types.js.map +1 -1
  35. package/lib/es6/components/Body/MergedCells.js +9 -5
  36. package/lib/es6/components/Body/MergedCells.js.map +1 -1
  37. package/lib/es6/components/Body/Row.js +72 -113
  38. package/lib/es6/components/Body/Row.js.map +1 -1
  39. package/lib/es6/components/Body/Row.types.js +1 -1
  40. package/lib/es6/components/Body/Row.types.js.map +1 -1
  41. package/lib/es6/components/Body/style.shadow.css +75 -36
  42. package/lib/es6/components/DataTable/DataTable.js +142 -93
  43. package/lib/es6/components/DataTable/DataTable.js.map +1 -1
  44. package/lib/es6/components/DataTable/DataTable.types.js +6 -1
  45. package/lib/es6/components/DataTable/DataTable.types.js.map +1 -1
  46. package/lib/es6/components/Head/Column.js +52 -31
  47. package/lib/es6/components/Head/Column.js.map +1 -1
  48. package/lib/es6/components/Head/Column.types.js.map +1 -1
  49. package/lib/es6/components/Head/Group.js +24 -33
  50. package/lib/es6/components/Head/Group.js.map +1 -1
  51. package/lib/es6/components/Head/Group.type.js.map +1 -1
  52. package/lib/es6/components/Head/Head.js +24 -29
  53. package/lib/es6/components/Head/Head.js.map +1 -1
  54. package/lib/es6/components/Head/style.shadow.css +16 -14
  55. package/lib/es6/index.js.map +1 -1
  56. package/lib/es6/style/scroll-shadows.shadow.css +13 -6
  57. package/lib/esm/components/Body/Body.mjs +110 -98
  58. package/lib/esm/components/Body/Cell.mjs +64 -31
  59. package/lib/esm/components/Body/MergedCells.mjs +9 -5
  60. package/lib/esm/components/Body/Row.mjs +67 -109
  61. package/lib/esm/components/DataTable/DataTable.mjs +122 -43
  62. package/lib/esm/components/Head/Column.mjs +52 -32
  63. package/lib/esm/components/Head/Group.mjs +25 -34
  64. package/lib/esm/components/Head/Head.mjs +25 -30
  65. package/lib/esm/utils.mjs +0 -9
  66. package/lib/types/components/Body/Body.types.d.ts +12 -8
  67. package/lib/types/components/Body/Cell.types.d.ts +6 -6
  68. package/lib/types/components/Body/MergedCells.d.ts +8 -3
  69. package/lib/types/components/Body/Row.types.d.ts +19 -10
  70. package/lib/types/components/DataTable/DataTable.types.d.ts +16 -4
  71. package/lib/types/components/Head/Column.d.ts +2 -1
  72. package/lib/types/components/Head/Column.types.d.ts +1 -0
  73. package/lib/types/components/Head/Group.d.ts +0 -1
  74. package/lib/types/components/Head/Group.type.d.ts +4 -1
  75. package/lib/types/components/Head/Head.d.ts +6 -3
  76. package/lib/types/index.d.ts +2 -2
  77. package/package.json +7 -7
  78. package/lib/cjs/Body.js +0 -476
  79. package/lib/cjs/Body.js.map +0 -1
  80. package/lib/cjs/DataTable.js +0 -622
  81. package/lib/cjs/DataTable.js.map +0 -1
  82. package/lib/cjs/Head.js +0 -399
  83. package/lib/cjs/Head.js.map +0 -1
  84. package/lib/cjs/style/data-table.shadow.css +0 -394
  85. package/lib/cjs/types.js +0 -4
  86. package/lib/cjs/types.js.map +0 -1
  87. package/lib/es6/Body.js +0 -469
  88. package/lib/es6/Body.js.map +0 -1
  89. package/lib/es6/DataTable.js +0 -614
  90. package/lib/es6/DataTable.js.map +0 -1
  91. package/lib/es6/Head.js +0 -391
  92. package/lib/es6/Head.js.map +0 -1
  93. package/lib/es6/style/data-table.shadow.css +0 -394
  94. package/lib/es6/types.js +0 -2
  95. package/lib/es6/types.js.map +0 -1
  96. package/lib/esm/Head.mjs +0 -369
  97. package/lib/types/Body.d.ts +0 -61
  98. package/lib/types/DataTable.d.ts +0 -205
  99. package/lib/types/Head.d.ts +0 -45
  100. package/lib/types/types.d.ts +0 -73
@@ -1,5 +1,6 @@
1
1
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
2
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
3
4
  import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
4
5
  import _createClass from "@babel/runtime/helpers/esm/createClass";
5
6
  import _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitialized";
@@ -12,7 +13,6 @@ import { ScrollArea, Box } from "@semcore/base-components";
12
13
  import { Head } from "../Head/Head.mjs";
13
14
  import { Body } from "../Body/Body.mjs";
14
15
  import { hasFocusableIn, isFocusInside } from "@semcore/core/lib/utils/use/useFocusLock";
15
- import syncScroll from "@semcore/core/lib/utils/syncScroll";
16
16
  import { getScrollOffsetValue } from "../../utils.mjs";
17
17
  import findComponent from "@semcore/core/lib/utils/findComponent";
18
18
  import { localizedMessages } from "../../translations/__intergalactic-dynamic-locales.mjs";
@@ -20,6 +20,7 @@ import i18nEnhance from "@semcore/core/lib/utils/enhances/i18nEnhance";
20
20
  import uniqueIDEnhancement from "@semcore/core/lib/utils/uniqueID";
21
21
  import { MergedRowsCell, MergedColumnsCell } from "../Body/MergedCells.mjs";
22
22
  import { forkRef } from "@semcore/core/lib/utils/ref";
23
+ import { hasParent } from "@semcore/core/lib/utils/hasParent";
23
24
  var style = (
24
25
  /*__reshadow_css_start__*/
25
26
  (sstyled.insert(
@@ -38,16 +39,17 @@ var scrollStyles = (
38
39
  /*__reshadow_css_start__*/
39
40
  (sstyled.insert(
40
41
  /*__inner_css_start__*/
41
- ".___SScrollArea_1765z_gg_{width:-moz-fit-content;width:fit-content}.___SShadowHorizontal_1765z_gg_:after,.___SShadowHorizontal_1765z_gg_:before,.___SShadowVertical_1765z_gg_:after,.___SShadowVertical_1765z_gg_:before{z-index:1}",
42
- "1765z_gg_"
42
+ ".___SScrollArea_14dz4_gg_{width:-moz-fit-content;width:fit-content}.___SScrollArea_14dz4_gg_ .___SShadowVertical_14dz4_gg_:before{display:none}.___SScrollArea_14dz4_gg_ .___SShadowHorizontal_14dz4_gg_:after,.___SScrollArea_14dz4_gg_ .___SShadowHorizontal_14dz4_gg_:before,.___SScrollArea_14dz4_gg_ .___SShadowVertical_14dz4_gg_:after{z-index:2}",
43
+ "14dz4_gg_"
43
44
  ), {
44
- "__SScrollArea": "___SScrollArea_1765z_gg_",
45
- "__SShadowHorizontal": "___SShadowHorizontal_1765z_gg_",
46
- "__SShadowVertical": "___SShadowVertical_1765z_gg_"
45
+ "__SScrollArea": "___SScrollArea_14dz4_gg_",
46
+ "__SShadowVertical": "___SShadowVertical_14dz4_gg_",
47
+ "__SShadowHorizontal": "___SShadowHorizontal_14dz4_gg_"
47
48
  })
48
49
  );
49
50
  var ACCORDION = Symbol("accordion");
50
51
  var ROW_GROUP = Symbol("ROW_GROUP");
52
+ var SCROLL_BAR_HEIGHT = 12;
51
53
  var DataTableRoot = /* @__PURE__ */ function(_Component) {
52
54
  _inherits(DataTableRoot2, _Component);
53
55
  var _super = _createSuper(DataTableRoot2);
@@ -61,8 +63,7 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
61
63
  _defineProperty(_assertThisInitialized(_this), "tableContainerRef", /* @__PURE__ */ React.createRef());
62
64
  _defineProperty(_assertThisInitialized(_this), "tableRef", /* @__PURE__ */ React.createRef());
63
65
  _defineProperty(_assertThisInitialized(_this), "headerRef", /* @__PURE__ */ React.createRef());
64
- _defineProperty(_assertThisInitialized(_this), "scrollBodyRef", void 0);
65
- _defineProperty(_assertThisInitialized(_this), "scrollHeadRef", void 0);
66
+ _defineProperty(_assertThisInitialized(_this), "spinnerRef", /* @__PURE__ */ React.createRef());
66
67
  _defineProperty(_assertThisInitialized(_this), "gridAreaGroupMap", /* @__PURE__ */ new Map());
67
68
  _defineProperty(_assertThisInitialized(_this), "getRow", function(index) {
68
69
  var _this$tableRef$curren;
@@ -75,6 +76,16 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
75
76
  });
76
77
  return hasFocusable;
77
78
  });
79
+ _defineProperty(_assertThisInitialized(_this), "onExpandRow", function(expandedRowIndex) {
80
+ var expandedRows = _this.asProps.expandedRows;
81
+ if (expandedRows !== null && expandedRows !== void 0 && expandedRows.includes(expandedRowIndex)) {
82
+ _this.handlers.expandedRows(expandedRows.filter(function(row) {
83
+ return row !== expandedRowIndex;
84
+ }));
85
+ } else {
86
+ _this.handlers.expandedRows([].concat(_toConsumableArray(expandedRows), [expandedRowIndex]));
87
+ }
88
+ });
78
89
  _defineProperty(_assertThisInitialized(_this), "changeFocusCell", function(rowIndex, colIndex, direction) {
79
90
  var _this$tableRef$curren2, _this$tableRef$curren3;
80
91
  var hasFocusable = _this.hasFocusableInHeader();
@@ -170,7 +181,11 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
170
181
  }
171
182
  });
172
183
  _defineProperty(_assertThisInitialized(_this), "handleFocus", function(e) {
173
- if ((!e.relatedTarget || !isFocusInside(e.currentTarget, e.relatedTarget)) && lastInteraction.isKeyboard()) {
184
+ if (_this.asProps.loading) {
185
+ var _this$spinnerRef$curr;
186
+ (_this$spinnerRef$curr = _this.spinnerRef.current) === null || _this$spinnerRef$curr === void 0 ? void 0 : _this$spinnerRef$curr.focus();
187
+ e.currentTarget.setAttribute("tabIndex", "-1");
188
+ } else if ((!e.relatedTarget || !isFocusInside(e.currentTarget, e.relatedTarget)) && lastInteraction.isKeyboard()) {
174
189
  var _row;
175
190
  if (_this.focusedCell[0] === -1 && _this.focusedCell[1] === -1) {
176
191
  _this.initFocusableCell();
@@ -183,7 +198,13 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
183
198
  }
184
199
  var cell = (_row = row) === null || _row === void 0 ? void 0 : _row.querySelectorAll("[role=gridcell], [role=columnheader]").item(_this.focusedCell[1]);
185
200
  cell === null || cell === void 0 ? void 0 : cell.removeAttribute("inert");
186
- cell instanceof HTMLElement && cell.focus();
201
+ if (cell instanceof HTMLElement) {
202
+ if (hasParent(e.target, cell)) {
203
+ e.target.focus();
204
+ } else {
205
+ cell.focus();
206
+ }
207
+ }
187
208
  e.currentTarget.setAttribute("tabIndex", "-1");
188
209
  }
189
210
  });
@@ -198,13 +219,17 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
198
219
  _defineProperty(_assertThisInitialized(_this), "handleMouseMove", function() {
199
220
  _this.setInert(false);
200
221
  });
201
- var createRef = syncScroll();
202
- _this.scrollBodyRef = createRef("body");
203
- _this.scrollHeadRef = createRef("head");
204
222
  _this.columns = _this.calculateColumns();
205
223
  return _this;
206
224
  }
207
225
  _createClass(DataTableRoot2, [{
226
+ key: "uncontrolledProps",
227
+ value: function uncontrolledProps() {
228
+ return {
229
+ expandedRows: []
230
+ };
231
+ }
232
+ }, {
208
233
  key: "componentDidMount",
209
234
  value: function componentDidMount() {
210
235
  this.forceUpdate();
@@ -212,8 +237,19 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
212
237
  }, {
213
238
  key: "totalRows",
214
239
  get: function get() {
215
- var totalRows = this.asProps.totalRows;
216
- return totalRows !== null && totalRows !== void 0 ? totalRows : this.calculateRows().length;
240
+ var _this2 = this;
241
+ var _this$asProps = this.asProps, totalRows = _this$asProps.totalRows, expandedRows = _this$asProps.expandedRows;
242
+ var expandedRowsCount = expandedRows === null || expandedRows === void 0 ? void 0 : expandedRows.reduce(function(acc, rowIndex) {
243
+ var dtRow = _this2.calculateRows().flat()[rowIndex];
244
+ var expandedRows2 = dtRow[ACCORDION];
245
+ if (Array.isArray(expandedRows2)) {
246
+ acc = acc + expandedRows2.length;
247
+ } else {
248
+ acc = acc + 1;
249
+ }
250
+ return acc;
251
+ }, 0);
252
+ return (totalRows !== null && totalRows !== void 0 ? totalRows : this.calculateRows().length) + expandedRowsCount;
217
253
  }
218
254
  }, {
219
255
  key: "gridSettings",
@@ -232,7 +268,7 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
232
268
  }, {
233
269
  key: "getHeadProps",
234
270
  value: function getHeadProps() {
235
- var _this$asProps = this.asProps, use = _this$asProps.use, compact = _this$asProps.compact, sort = _this$asProps.sort, onSortChange = _this$asProps.onSortChange, getI18nText = _this$asProps.getI18nText, uid = _this$asProps.uid;
271
+ 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;
236
272
  var _this$gridSettings = this.gridSettings, gridTemplateColumns = _this$gridSettings.gridTemplateColumns, gridTemplateAreas = _this$gridSettings.gridTemplateAreas;
237
273
  return {
238
274
  columns: this.columns,
@@ -253,7 +289,7 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
253
289
  key: "getBodyProps",
254
290
  value: function getBodyProps() {
255
291
  var _header$children;
256
- var _this$asProps2 = this.asProps, use = _this$asProps2.use, compact = _this$asProps2.compact, loading = _this$asProps2.loading, getI18nText = _this$asProps2.getI18nText;
292
+ 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;
257
293
  var rows = this.calculateRows();
258
294
  var _this$gridSettings2 = this.gridSettings, gridTemplateColumns = _this$gridSettings2.gridTemplateColumns, gridTemplateAreas = _this$gridSettings2.gridTemplateAreas;
259
295
  var header = this.headerRef.current;
@@ -267,17 +303,17 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
267
303
  return {
268
304
  columns: this.columns,
269
305
  rows,
306
+ flatRows: rows.flat(),
270
307
  use,
271
- scrollRef: this.scrollBodyRef,
272
- headerRows: this.columns.some(function(column) {
273
- return Boolean(column.parent);
274
- }) ? 2 : 1,
275
308
  compact: Boolean(compact),
276
309
  gridTemplateColumns,
277
310
  gridTemplateAreas,
278
311
  loading,
279
312
  headerHeight,
280
- getI18nText
313
+ getI18nText,
314
+ expandedRows,
315
+ onExpandRow: this.onExpandRow,
316
+ spinnerRef: this.spinnerRef
281
317
  };
282
318
  }
283
319
  }, {
@@ -298,17 +334,18 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
298
334
  value: function render() {
299
335
  var _ref = this.asProps, _ref2;
300
336
  var SDataTable = Box;
301
- var _this$asProps3 = this.asProps, Children = _this$asProps3.Children, styles = _this$asProps3.styles, w = _this$asProps3.w, wMax = _this$asProps3.wMax, wMin = _this$asProps3.wMin, h = _this$asProps3.h, hMax = _this$asProps3.hMax, hMin = _this$asProps3.hMin;
337
+ 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;
302
338
  var _getScrollOffsetValue = getScrollOffsetValue(this.columns), _getScrollOffsetValue2 = _slicedToArray(_getScrollOffsetValue, 2), offsetLeftSum = _getScrollOffsetValue2[0], offsetRightSum = _getScrollOffsetValue2[1];
303
339
  var _this$gridSettings3 = this.gridSettings, gridTemplateColumns = _this$gridSettings3.gridTemplateColumns, gridTemplateAreas = _this$gridSettings3.gridTemplateAreas;
304
340
  var Head2 = findComponent(Children, ["DataTable.Head"]);
305
- var Body2 = findComponent(Children, ["DataTable.Body"]);
341
+ var topOffset = Head2 !== null && Head2 !== void 0 && Head2.props.sticky || Head2 !== null && Head2 !== void 0 && Head2.props.withScrollBar ? this.getTopScrollOffset() : void 0;
306
342
  var width = w !== null && w !== void 0 ? w : this.columns.some(function(c) {
307
343
  return c.gridColumnWidth === "auto" || c.gridColumnWidth === "1fr";
308
344
  }) ? "100%" : void 0;
309
345
  return _ref2 = sstyled(styles), /* @__PURE__ */ React.createElement(ScrollArea, _ref2.cn("ScrollArea", {
310
346
  "leftOffset": offsetLeftSum,
311
347
  "rightOffset": offsetRightSum,
348
+ "topOffset": topOffset,
312
349
  "w": width,
313
350
  "wMax": wMax,
314
351
  "wMin": wMin,
@@ -340,16 +377,22 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
340
377
  "use:h": void 0,
341
378
  "use:hMax": void 0,
342
379
  "use:hMin": void 0
343
- }, _ref))), Body2, Head2)), /* @__PURE__ */ React.createElement(ScrollArea.Bar, {
344
- orientation: "horizontal"
380
+ }, _ref))), /* @__PURE__ */ React.createElement(Children, _ref2.cn("Children", {})))), (Head2 === null || Head2 === void 0 ? void 0 : Head2.props.withScrollBar) && topOffset && /* @__PURE__ */ React.createElement(ScrollArea.Bar, {
381
+ orientation: "horizontal",
382
+ top: topOffset - SCROLL_BAR_HEIGHT,
383
+ zIndex: 3
345
384
  }), /* @__PURE__ */ React.createElement(ScrollArea.Bar, {
346
- orientation: "vertical"
385
+ orientation: "horizontal",
386
+ zIndex: 2
387
+ }), /* @__PURE__ */ React.createElement(ScrollArea.Bar, {
388
+ orientation: "vertical",
389
+ zIndex: 2
347
390
  }));
348
391
  }
349
392
  }, {
350
393
  key: "calculateColumns",
351
394
  value: function calculateColumns() {
352
- var _this2 = this;
395
+ var _this3 = this;
353
396
  var _this$props = this.props, children = _this$props.children, data = _this$props.data;
354
397
  var HeadComponent = findComponent(children, ["Head"]);
355
398
  var hasGroup = findComponent(HeadComponent.props.children, ["Head.Group"]) !== void 0;
@@ -386,14 +429,20 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
386
429
  };
387
430
  return column;
388
431
  };
432
+ var childIsColumn = function childIsColumn2(child) {
433
+ return child.type === Head.Column;
434
+ };
435
+ var childIsGroup = function childIsGroup2(child) {
436
+ return child.type === Head.Group;
437
+ };
389
438
  React.Children.forEach(HeadComponent.props.children, function(child, i) {
390
439
  if (!/* @__PURE__ */ React.isValidElement(child)) return;
391
- if (child.type === Head.Column) {
440
+ if (childIsColumn(child)) {
392
441
  var col = makeColumn(child);
393
442
  col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(hasGroup ? "3" : "2", " / ").concat(gridColumnIndex + 1);
394
443
  gridColumnIndex++;
395
444
  columns.push(col);
396
- } else if (child.type === Head.Group) {
445
+ } else if (childIsGroup(child)) {
397
446
  var Group = child;
398
447
  var childCount = React.Children.count(child.props.children);
399
448
  var initGridColumn = gridColumnIndex;
@@ -415,7 +464,7 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
415
464
  columns.push(_col);
416
465
  }
417
466
  });
418
- _this2.gridAreaGroupMap.set(groupIndex, "1 / ".concat(initGridColumn, " / 2 / ").concat(gridColumnIndex));
467
+ _this3.gridAreaGroupMap.set(groupIndex, "1 / ".concat(initGridColumn, " / 2 / ").concat(gridColumnIndex));
419
468
  groupIndex++;
420
469
  }
421
470
  });
@@ -424,42 +473,55 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
424
473
  }, {
425
474
  key: "calculateRows",
426
475
  value: function calculateRows() {
427
- var _this3 = this;
476
+ var _this4 = this;
428
477
  var data = this.asProps.data;
429
478
  var rows = [];
430
- var addToRows = function addToRows2(row) {
479
+ var rowIndex = 0;
480
+ var makeDtRow = function makeDtRow2(row) {
431
481
  var dtRow = Object.entries(row).reduce(function(acc, _ref4) {
432
482
  var _ref5 = _slicedToArray(_ref4, 2), key = _ref5[0], value = _ref5[1];
433
- var columnsToRow = key.split(_this3.columnsSplitter);
483
+ var columnsToRow = key.split(_this4.columnsSplitter);
434
484
  if (columnsToRow.length === 1) {
435
- acc[key] = value;
485
+ acc[key] = value !== null && value !== void 0 ? value : "";
436
486
  } else {
437
- acc[columnsToRow[0]] = new MergedColumnsCell(value, columnsToRow.length);
487
+ acc[columnsToRow[0]] = new MergedColumnsCell(value, {
488
+ dataKey: key,
489
+ size: columnsToRow.length
490
+ });
438
491
  }
439
492
  if (row[ACCORDION]) {
440
493
  acc[ACCORDION] = row[ACCORDION];
441
494
  }
442
495
  return acc;
443
496
  }, {});
444
- rows.push(dtRow);
497
+ return dtRow;
445
498
  };
446
- data.forEach(function(row, rowIndex2) {
499
+ data.forEach(function(row) {
447
500
  var groupedRows = row[ROW_GROUP];
501
+ var fromRow = rowIndex + 2;
448
502
  if (groupedRows) {
503
+ var toRow = fromRow + groupedRows.length;
504
+ var innerRows = [];
449
505
  groupedRows.forEach(function(childRow, index) {
506
+ var dtRow2;
450
507
  if (index === 0) {
451
508
  var rowData = _objectSpread(_objectSpread({}, childRow), Object.entries(row).reduce(function(acc, _ref6) {
452
509
  var _ref7 = _slicedToArray(_ref6, 2), key = _ref7[0], value = _ref7[1];
453
- acc[key] = new MergedRowsCell(value, groupedRows.length);
510
+ acc[key] = new MergedRowsCell(value, [fromRow, toRow]);
454
511
  return acc;
455
512
  }, {}));
456
- addToRows(rowData);
513
+ dtRow2 = makeDtRow(rowData);
457
514
  } else {
458
- addToRows(childRow);
515
+ dtRow2 = makeDtRow(childRow);
459
516
  }
517
+ innerRows.push(dtRow2);
518
+ rowIndex++;
460
519
  });
520
+ rows.push(innerRows);
461
521
  } else {
462
- addToRows(row);
522
+ var dtRow = makeDtRow(row);
523
+ rows.push(dtRow);
524
+ rowIndex++;
463
525
  }
464
526
  });
465
527
  return rows;
@@ -470,6 +532,22 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
470
532
  var _c$props$gtcWidth;
471
533
  return (_c$props$gtcWidth = c.props.gtcWidth) !== null && _c$props$gtcWidth !== void 0 ? _c$props$gtcWidth : this.props.defaultGridTemplateColumnWidth;
472
534
  }
535
+ }, {
536
+ key: "getTopScrollOffset",
537
+ value: function getTopScrollOffset() {
538
+ var _this$headerRef$curre;
539
+ var header = (_this$headerRef$curre = this.headerRef.current) === null || _this$headerRef$curre === void 0 ? void 0 : _this$headerRef$curre.children;
540
+ var height = 0;
541
+ for (var i = 0; i < ((_header$length = header === null || header === void 0 ? void 0 : header.length) !== null && _header$length !== void 0 ? _header$length : 0); i++) {
542
+ var _header$length, _header$item;
543
+ var columnHeight = header === null || header === void 0 ? void 0 : (_header$item = header.item(i)) === null || _header$item === void 0 ? void 0 : _header$item.getBoundingClientRect().height;
544
+ if (columnHeight) {
545
+ height = columnHeight;
546
+ break;
547
+ }
548
+ }
549
+ return height;
550
+ }
473
551
  }]);
474
552
  return DataTableRoot2;
475
553
  }(Component);
@@ -479,7 +557,8 @@ _defineProperty(DataTableRoot, "enhance", [uniqueIDEnhancement(), i18nEnhance(lo
479
557
  _defineProperty(DataTableRoot, "defaultProps", {
480
558
  use: "primary",
481
559
  defaultGridTemplateColumnWidth: "auto",
482
- h: "auto"
560
+ h: "auto",
561
+ defaultExpandedRows: []
483
562
  });
484
563
  var DataTable = createComponent(DataTableRoot, {
485
564
  Head,
@@ -5,41 +5,41 @@ import _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitial
5
5
  import _inherits from "@babel/runtime/helpers/esm/inherits";
6
6
  import _createSuper from "@babel/runtime/helpers/esm/createSuper";
7
7
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
8
- import { sstyled, assignProps, Component } from "@semcore/core";
8
+ import { sstyled, lastInteraction, assignProps, Component } from "@semcore/core";
9
9
  import * as React from "react";
10
10
  import { Flex } from "@semcore/base-components";
11
11
  import SortDesc from "@semcore/icon/SortDesc/m";
12
12
  import SortAsc from "@semcore/icon/SortAsc/m";
13
13
  import { ButtonLink } from "@semcore/button";
14
14
  import { getFocusableIn } from "@semcore/core/lib/utils/focus-lock/getFocusableIn";
15
- import { SORT_ICON_WIDTH } from "../../Head.mjs";
16
15
  import canUseDOM from "@semcore/core/lib/utils/canUseDOM";
16
+ import { isFocusInside } from "@semcore/core/lib/utils/focus-lock/isFocusInside";
17
17
  var style = (
18
18
  /*__reshadow_css_start__*/
19
19
  (sstyled.insert(
20
20
  /*__inner_css_start__*/
21
- '.___SHead_182z1_gg_{display:contents}.___SHead_182z1_gg_.__sticky_182z1_gg_>.___SColumn_182z1_gg_{position:sticky;top:0;z-index:1}.___SHead_182z1_gg_.__sticky_182z1_gg_ .___SGroup_182z1_gg_{top:0}.___SHead_182z1_gg_.__sticky_182z1_gg_ .___SGroupContainer_182z1_gg_>.___SColumn_182z1_gg_{position:sticky;top:40px;z-index:1}.___SHead_182z1_gg_.__compact_182z1_gg_ .___SColumn_182z1_gg_{padding:var(--intergalactic-spacing-3x, 12px) var(--intergalactic-spacing-2x, 8px)}.___SColumn_182z1_gg_,.___SGroup_182z1_gg_{display:flex;align-items:flex-start;font-size:var(--intergalactic-fs-100, 12px);color:var(--intergalactic-text-primary, #191b23);box-sizing:border-box;height:100%;position:relative;transition:width calc(var(--intergalactic-duration-extra-fast, 100)*1ms) ease-in-out,min-width calc(var(--intergalactic-duration-extra-fast, 100)*1ms) ease-in-out,max-width calc(var(--intergalactic-duration-extra-fast, 100)*1ms) ease-in-out}.___SGroup_182z1_gg_._use_primary_182z1_gg_{justify-content:center;padding:var(--intergalactic-spacing-3x, 12px);background-color:var(--intergalactic-table-th-primary-cell, #f4f5f9)}.___SGroup_182z1_gg_._use_secondary_182z1_gg_{justify-content:center;padding:var(--intergalactic-spacing-2x, 8px);background-color:var(--intergalactic-table-th-secondary-cell, #ffffff)}.___SGroup_182z1_gg_:has(.___SColumn_182z1_gg_.__visibleSort_182z1_gg_){background-color:var(--intergalactic-table-th-primary-cell-hover, #e0e1e9)}.___SColumn_182z1_gg_._borders_both_182z1_gg_,.___SColumn_182z1_gg_._borders_left_182z1_gg_,.___SGroup_182z1_gg_._borders_both_182z1_gg_,.___SGroup_182z1_gg_._borders_left_182z1_gg_{border-left:1px solid var(--intergalactic-border-secondary, #e0e1e9)}.___SColumn_182z1_gg_._borders_both_182z1_gg_,.___SColumn_182z1_gg_._borders_right_182z1_gg_,.___SGroup_182z1_gg_._borders_both_182z1_gg_,.___SGroup_182z1_gg_._borders_right_182z1_gg_{border-right:1px solid var(--intergalactic-border-secondary, #e0e1e9)}.___SColumn_182z1_gg_._use_primary_182z1_gg_{padding:var(--intergalactic-spacing-3x, 12px);border-bottom:1px solid var(--intergalactic-border-secondary, #e0e1e9);background-color:var(--intergalactic-table-th-primary-cell, #f4f5f9)}.___SColumn_182z1_gg_._use_primary_182z1_gg_ .___SSortWrapper_182z1_gg_::before{background:linear-gradient(270deg,var(--intergalactic-table-th-primary-cell-hover, #e0e1e9) 67.5%,rgba(224,225,233,0) 105%)}.___SColumn_182z1_gg_._use_primary_182z1_gg_.__visibleSort_182z1_gg_{background-color:var(--intergalactic-table-th-primary-cell-hover, #e0e1e9)}.___SColumn_182z1_gg_._use_primary_182z1_gg_.__visibleSort_182z1_gg_ .___SSortWrapper_182z1_gg_{flex-basis:calc(var(--intergalactic-spacing-1x, 4px) + 16px);opacity:1}.___SColumn_182z1_gg_._use_primary_182z1_gg_.__visibleSort_182z1_gg_ .___SSortButton_182z1_gg_,.___SColumn_182z1_gg_._use_primary_182z1_gg_.__visibleSort_182z1_gg_ .___SSortWrapper_182z1_gg_::before,.___SColumn_182z1_gg_._use_secondary_182z1_gg_.__visibleSort_182z1_gg_ .___SSortWrapper_182z1_gg_::before{display:flex;opacity:1}.___SColumn_182z1_gg_._use_secondary_182z1_gg_{padding:var(--intergalactic-spacing-2x, 8px);border-bottom:1px solid var(--intergalactic-border-table-accent, #a9abb6);background-color:var(--intergalactic-table-th-secondary-cell, #ffffff)}.___SColumn_182z1_gg_._use_secondary_182z1_gg_ .___SSortWrapper_182z1_gg_::before{background:linear-gradient(270deg,var(--intergalactic-table-th-secondary-cell, #ffffff) 67.5%,rgba(255,255,255,0) 105%)}.___SColumn_182z1_gg_._use_secondary_182z1_gg_.__visibleSort_182z1_gg_ .___SSortWrapper_182z1_gg_{flex-basis:calc(var(--intergalactic-spacing-1x, 4px) + 16px);opacity:1}.___SColumn_182z1_gg_._use_secondary_182z1_gg_.__visibleSort_182z1_gg_ .___SSortButton_182z1_gg_{display:flex;opacity:1}.___SColumn_182z1_gg_.__gridArea_182z1_gg_,.___SGroupTitle_182z1_gg_.__gridArea_182z1_gg_,.___SGroup_182z1_gg_.__gridArea_182z1_gg_{grid-area:var(--gridArea_182z1)}.___SHead_182z1_gg_ .___SColumn_182z1_gg_.__fixed_182z1_gg_,.___SHead_182z1_gg_ .___SGroup_182z1_gg_.__fixed_182z1_gg_,.___SHead_182z1_gg_.__sticky_182z1_gg_ .___SColumn_182z1_gg_.__fixed_182z1_gg_,.___SHead_182z1_gg_.__sticky_182z1_gg_ .___SGroup_182z1_gg_{position:sticky;z-index:2}@media (hover:hover){.___SColumn_182z1_gg_.__sortable_182z1_gg_:hover{cursor:pointer}}.___SSortWrapper_182z1_gg_{align-items:center;display:flex;flex-shrink:1;position:relative;flex-basis:0;min-height:16px;opacity:0;transition:all calc(var(--intergalactic-duration-extra-fast, 100)*1ms) ease-in-out}.___SSortButton_182z1_gg_,.___SSortWrapper_182z1_gg_:before{display:none;position:absolute;right:0;opacity:0;transition:opacity .3s ease}.___SSortWrapper_182z1_gg_:before{content:"";top:0;width:20px;height:100%}.___SSortButton_182z1_gg_{fill:var(--intergalactic-icon-secondary-neutral-hover-active, #878992);top:calc(-1*(1em*1.25 - 16px));margin-left:var(--intergalactic-spacing-1x, 4px)}',
22
- "182z1_gg_"
21
+ '.___SGroupContainer_1yovy_gg_,.___SHead_1yovy_gg_{display:contents}.___SHead_1yovy_gg_.__sticky_1yovy_gg_ .___SColumn_1yovy_gg_{position:sticky;top:0;z-index:2}.___SHead_1yovy_gg_.__sticky_1yovy_gg_ .___SGroup_1yovy_gg_{top:0}.___SHead_1yovy_gg_.__sticky_1yovy_gg_ .___SGroupContainer_1yovy_gg_>.___SColumn_1yovy_gg_{position:sticky;z-index:2}.___SHead_1yovy_gg_.__compact_1yovy_gg_ .___SColumn_1yovy_gg_{padding:var(--intergalactic-spacing-3x, 12px) var(--intergalactic-spacing-2x, 8px)}.___SColumn_1yovy_gg_,.___SGroup_1yovy_gg_{display:flex;align-items:flex-start;font-size:var(--intergalactic-fs-100, 12px);color:var(--intergalactic-text-primary, #191b23);box-sizing:border-box;height:100%;position:relative;transition:width calc(var(--intergalactic-duration-extra-fast, 100)*1ms) ease-in-out,min-width calc(var(--intergalactic-duration-extra-fast, 100)*1ms) ease-in-out,max-width calc(var(--intergalactic-duration-extra-fast, 100)*1ms) ease-in-out;overflow:hidden}.___SGroup_1yovy_gg_{justify-content:center;text-align:center;background-color:var(--intergalactic-table-th-primary-cell, #f4f5f9)}.___SGroup_1yovy_gg_._use_primary_1yovy_gg_{padding:var(--intergalactic-spacing-3x, 12px)}.___SGroup_1yovy_gg_._use_primary_1yovy_gg_:has(~.___SColumn_1yovy_gg_.__visibleSort_1yovy_gg_){background-color:var(--intergalactic-table-th-primary-cell-hover, #e0e1e9)}.___SGroup_1yovy_gg_._use_secondary_1yovy_gg_{padding:var(--intergalactic-spacing-2x, 8px)}.___SColumn_1yovy_gg_._borders_both_1yovy_gg_,.___SColumn_1yovy_gg_._borders_left_1yovy_gg_,.___SGroup_1yovy_gg_._borders_both_1yovy_gg_,.___SGroup_1yovy_gg_._borders_left_1yovy_gg_{border-left:1px solid var(--intergalactic-border-secondary, #e0e1e9)}.___SColumn_1yovy_gg_._borders_both_1yovy_gg_,.___SColumn_1yovy_gg_._borders_right_1yovy_gg_,.___SGroup_1yovy_gg_._borders_both_1yovy_gg_,.___SGroup_1yovy_gg_._borders_right_1yovy_gg_{border-right:1px solid var(--intergalactic-border-secondary, #e0e1e9)}.___SColumn_1yovy_gg_._use_primary_1yovy_gg_{padding:var(--intergalactic-spacing-3x, 12px);border-bottom:1px solid var(--intergalactic-border-secondary, #e0e1e9);background-color:var(--intergalactic-table-th-primary-cell, #f4f5f9)}.___SColumn_1yovy_gg_._use_primary_1yovy_gg_ .___SSortWrapper_1yovy_gg_::before{background:linear-gradient(270deg,var(--intergalactic-table-th-primary-cell-hover, #e0e1e9) 67.5%,rgba(224,225,233,0) 105%)}.___SColumn_1yovy_gg_._use_primary_1yovy_gg_.__visibleSort_1yovy_gg_{background-color:var(--intergalactic-table-th-primary-cell-hover, #e0e1e9)}.___SColumn_1yovy_gg_._use_primary_1yovy_gg_.__visibleSort_1yovy_gg_ .___SSortWrapper_1yovy_gg_{flex-basis:calc(var(--intergalactic-spacing-1x, 4px) + 16px);opacity:1}.___SColumn_1yovy_gg_._use_primary_1yovy_gg_.__visibleSort_1yovy_gg_ .___SSortButton_1yovy_gg_,.___SColumn_1yovy_gg_._use_primary_1yovy_gg_.__visibleSort_1yovy_gg_ .___SSortWrapper_1yovy_gg_::before,.___SColumn_1yovy_gg_._use_secondary_1yovy_gg_.__visibleSort_1yovy_gg_ .___SSortWrapper_1yovy_gg_::before{display:flex;opacity:1}.___SColumn_1yovy_gg_._use_secondary_1yovy_gg_{padding:var(--intergalactic-spacing-2x, 8px);border-bottom:1px solid var(--intergalactic-border-table-accent, #a9abb6);background-color:var(--intergalactic-table-th-secondary-cell, #ffffff)}.___SColumn_1yovy_gg_._use_secondary_1yovy_gg_ .___SSortWrapper_1yovy_gg_::before{background:linear-gradient(270deg,var(--intergalactic-table-th-secondary-cell, #ffffff) 67.5%,rgba(255,255,255,0) 105%)}.___SColumn_1yovy_gg_._use_secondary_1yovy_gg_.__visibleSort_1yovy_gg_ .___SSortWrapper_1yovy_gg_{flex-basis:calc(var(--intergalactic-spacing-1x, 4px) + 16px);opacity:1}.___SColumn_1yovy_gg_._use_secondary_1yovy_gg_.__visibleSort_1yovy_gg_ .___SSortButton_1yovy_gg_{display:flex;opacity:1}.___SColumn_1yovy_gg_.__gridArea_1yovy_gg_,.___SGroupTitle_1yovy_gg_.__gridArea_1yovy_gg_,.___SGroup_1yovy_gg_.__gridArea_1yovy_gg_{grid-area:var(--gridArea_1yovy)}.___SHead_1yovy_gg_ .___SColumn_1yovy_gg_.__fixed_1yovy_gg_,.___SHead_1yovy_gg_ .___SGroup_1yovy_gg_.__fixed_1yovy_gg_,.___SHead_1yovy_gg_.__sticky_1yovy_gg_ .___SColumn_1yovy_gg_.__fixed_1yovy_gg_,.___SHead_1yovy_gg_.__sticky_1yovy_gg_ .___SGroup_1yovy_gg_{position:sticky;z-index:3}@media (hover:hover){.___SColumn_1yovy_gg_.__sortable_1yovy_gg_:hover{cursor:pointer}}.___SSortWrapper_1yovy_gg_{align-items:center;display:flex;flex-shrink:1;position:relative;flex-basis:0;min-height:16px;opacity:0;transition:all calc(var(--intergalactic-duration-extra-fast, 100)*1ms) ease-in-out}.___SSortButton_1yovy_gg_,.___SSortWrapper_1yovy_gg_:before{display:none;position:absolute;right:0;opacity:0;transition:opacity .3s ease}.___SSortWrapper_1yovy_gg_:before{content:"";top:0;width:20px;height:100%}.___SSortButton_1yovy_gg_{fill:var(--intergalactic-icon-secondary-neutral-hover-active, #878992);top:calc(-1*(1em*1.25 - 16px));margin-left:var(--intergalactic-spacing-1x, 4px)}',
22
+ "1yovy_gg_"
23
23
  ), {
24
- "__SHead": "___SHead_182z1_gg_",
25
- "_sticky": "__sticky_182z1_gg_",
26
- "__SColumn": "___SColumn_182z1_gg_",
27
- "__SGroup": "___SGroup_182z1_gg_",
28
- "__SGroupContainer": "___SGroupContainer_182z1_gg_",
29
- "_compact": "__compact_182z1_gg_",
30
- "_use_primary": "_use_primary_182z1_gg_",
31
- "_use_secondary": "_use_secondary_182z1_gg_",
32
- "_visibleSort": "__visibleSort_182z1_gg_",
33
- "_borders_both": "_borders_both_182z1_gg_",
34
- "_borders_left": "_borders_left_182z1_gg_",
35
- "_borders_right": "_borders_right_182z1_gg_",
36
- "_gridArea": "__gridArea_182z1_gg_",
37
- "__SGroupTitle": "___SGroupTitle_182z1_gg_",
38
- "--gridArea": "--gridArea_182z1",
39
- "_fixed": "__fixed_182z1_gg_",
40
- "_sortable": "__sortable_182z1_gg_",
41
- "__SSortWrapper": "___SSortWrapper_182z1_gg_",
42
- "__SSortButton": "___SSortButton_182z1_gg_"
24
+ "__SHead": "___SHead_1yovy_gg_",
25
+ "__SGroupContainer": "___SGroupContainer_1yovy_gg_",
26
+ "_sticky": "__sticky_1yovy_gg_",
27
+ "__SColumn": "___SColumn_1yovy_gg_",
28
+ "__SGroup": "___SGroup_1yovy_gg_",
29
+ "_compact": "__compact_1yovy_gg_",
30
+ "_use_secondary": "_use_secondary_1yovy_gg_",
31
+ "_borders_both": "_borders_both_1yovy_gg_",
32
+ "_borders_left": "_borders_left_1yovy_gg_",
33
+ "_borders_right": "_borders_right_1yovy_gg_",
34
+ "_gridArea": "__gridArea_1yovy_gg_",
35
+ "__SGroupTitle": "___SGroupTitle_1yovy_gg_",
36
+ "--gridArea": "--gridArea_1yovy",
37
+ "_fixed": "__fixed_1yovy_gg_",
38
+ "_sortable": "__sortable_1yovy_gg_",
39
+ "__SSortWrapper": "___SSortWrapper_1yovy_gg_",
40
+ "__SSortButton": "___SSortButton_1yovy_gg_",
41
+ "_use_primary": "_use_primary_1yovy_gg_",
42
+ "_visibleSort": "__visibleSort_1yovy_gg_"
43
43
  })
44
44
  );
45
45
  var SORTING_ICON = {
@@ -50,6 +50,7 @@ var ARIA_SORT = {
50
50
  desc: "descending",
51
51
  asc: "ascending"
52
52
  };
53
+ var SORT_ICON_WIDTH = 20;
53
54
  var DEFAULT_DIRECTION = "desc";
54
55
  var reversedSortDirection = {
55
56
  desc: "asc",
@@ -113,16 +114,21 @@ var Column = /* @__PURE__ */ function(_Component) {
113
114
  sortVisible: false
114
115
  });
115
116
  });
116
- _defineProperty(_assertThisInitialized(_this), "handleBlur", function() {
117
- _this.setState({
118
- sortVisible: false
119
- });
117
+ _defineProperty(_assertThisInitialized(_this), "handleBlur", function(e) {
118
+ var relatedTarget = e.relatedTarget;
119
+ if (!isFocusInside(e.currentTarget, relatedTarget) && lastInteraction.isKeyboard()) {
120
+ _this.setState({
121
+ sortVisible: false
122
+ });
123
+ }
120
124
  });
121
125
  _defineProperty(_assertThisInitialized(_this), "handleSortClick", function(e) {
122
126
  var _this$asProps = _this.asProps, sort = _this$asProps.sort, onSortChange = _this$asProps.onSortChange, name = _this$asProps.name;
123
- if (sort && onSortChange) {
124
- var sortDirection = sort[0] === name ? reversedSortDirection[sort[1]] : DEFAULT_DIRECTION;
125
- onSortChange([name, sortDirection], e);
127
+ if (lastInteraction.isMouse() || lastInteraction.isKeyboard() && e.target === e.currentTarget) {
128
+ if (sort && onSortChange) {
129
+ var sortDirection = sort[0] === name ? reversedSortDirection[sort[1]] : DEFAULT_DIRECTION;
130
+ onSortChange([name, sortDirection], e);
131
+ }
126
132
  }
127
133
  });
128
134
  _defineProperty(_assertThisInitialized(_this), "handleKeyDown", function(e) {
@@ -149,6 +155,7 @@ var Column = /* @__PURE__ */ function(_Component) {
149
155
  (_focusableChildren$ = focusableChildren[0]) === null || _focusableChildren$ === void 0 ? void 0 : _focusableChildren$.focus();
150
156
  e.preventDefault();
151
157
  }
158
+ e.stopPropagation();
152
159
  }
153
160
  } else if (e.key === "Enter") {
154
161
  var _focusableChildren$2;
@@ -181,6 +188,19 @@ var Column = /* @__PURE__ */ function(_Component) {
181
188
  return _this;
182
189
  }
183
190
  _createClass(Column2, [{
191
+ key: "componentDidMount",
192
+ value: function componentDidMount() {
193
+ if (this.asProps.parent && this.asProps.sticky) {
194
+ var _columnElement$parent;
195
+ var columnElement = this.columnRef.current;
196
+ var groupElement = columnElement === null || columnElement === void 0 ? void 0 : (_columnElement$parent = columnElement.parentElement) === null || _columnElement$parent === void 0 ? void 0 : _columnElement$parent.children.item(0);
197
+ var groupHeight = groupElement === null || groupElement === void 0 ? void 0 : groupElement.getBoundingClientRect().height;
198
+ if (groupHeight) {
199
+ columnElement === null || columnElement === void 0 ? void 0 : columnElement.style.setProperty("top", "".concat(groupHeight, "px"));
200
+ }
201
+ }
202
+ }
203
+ }, {
184
204
  key: "componentDidUpdate",
185
205
  value: function componentDidUpdate(prevProps) {
186
206
  var _prevProps$sort, _this$asProps$sort;
@@ -215,7 +235,7 @@ var Column = /* @__PURE__ */ function(_Component) {
215
235
  var SColumn = Flex;
216
236
  var SSortWrapper = "div";
217
237
  var SSortButton = ButtonLink;
218
- var _this$asProps3 = this.asProps, styles = _this$asProps3.styles, sortable = _this$asProps3.sortable, sort = _this$asProps3.sort, uid = _this$asProps3.uid, name = _this$asProps3.name, parent = _this$asProps3.parent, sortableColumnDescribeId = _this$asProps3.sortableColumnDescribeId;
238
+ var _this$asProps3 = this.asProps, styles = _this$asProps3.styles, sortable = _this$asProps3.sortable, sort = _this$asProps3.sort, uid = _this$asProps3.uid, name = _this$asProps3.name, parent = _this$asProps3.parent, sortableColumnDescribeId = _this$asProps3.sortableColumnDescribeId, Children = _this$asProps3.Children;
219
239
  var SSortIcon = sort ? SORTING_ICON[sort[1]] : SORTING_ICON["asc"];
220
240
  var isSorted = (sort === null || sort === void 0 ? void 0 : sort[0]) === name;
221
241
  var visibleSort = sortable && (this.state.sortVisible || isSorted);
@@ -242,7 +262,7 @@ var Column = /* @__PURE__ */ function(_Component) {
242
262
  "aria-describedby": ariaDescribedBy.length > 0 ? ariaDescribedBy.join(" ") : void 0,
243
263
  "aria-sort": ariaSortValue,
244
264
  "onClick": this.handleSortClick
245
- }, _ref))), this.asProps.children, sortable && /* @__PURE__ */ React.createElement(SSortWrapper, _ref2.cn("SSortWrapper", {
265
+ }, _ref))), /* @__PURE__ */ React.createElement(Children, _ref2.cn("Children", {})), sortable && /* @__PURE__ */ React.createElement(SSortWrapper, _ref2.cn("SSortWrapper", {
246
266
  "ref": this.sortWrapperRef
247
267
  }), /* @__PURE__ */ React.createElement(SSortButton, _ref2.cn("SSortButton", {
248
268
  "onClick": this.handleSortClick,