@semcore/data-table 16.0.0 → 16.0.1-prerelease.0

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 (69) hide show
  1. package/CHANGELOG.md +7 -1
  2. package/lib/cjs/components/Body/Body.js +40 -37
  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 +34 -33
  6. package/lib/cjs/components/Body/Cell.js.map +1 -1
  7. package/lib/cjs/components/Body/Row.js +81 -73
  8. package/lib/cjs/components/Body/Row.js.map +1 -1
  9. package/lib/cjs/components/Body/Row.types.js.map +1 -1
  10. package/lib/cjs/components/Body/style.shadow.css +7 -1
  11. package/lib/cjs/components/DataTable/DataTable.js +204 -160
  12. package/lib/cjs/components/DataTable/DataTable.js.map +1 -1
  13. package/lib/cjs/components/DataTable/DataTable.types.js.map +1 -1
  14. package/lib/cjs/components/Head/Column.js +22 -27
  15. package/lib/cjs/components/Head/Column.js.map +1 -1
  16. package/lib/cjs/components/Head/Column.types.js.map +1 -1
  17. package/lib/cjs/components/Head/Group.js +23 -22
  18. package/lib/cjs/components/Head/Group.js.map +1 -1
  19. package/lib/cjs/components/Head/Head.js +67 -65
  20. package/lib/cjs/components/Head/Head.js.map +1 -1
  21. package/lib/cjs/components/Head/Head.types.js.map +1 -1
  22. package/lib/cjs/components/Head/style.shadow.css +5 -1
  23. package/lib/cjs/style/scroll-shadows.shadow.css +6 -0
  24. package/lib/es6/components/Body/Body.js +40 -37
  25. package/lib/es6/components/Body/Body.js.map +1 -1
  26. package/lib/es6/components/Body/Body.types.js.map +1 -1
  27. package/lib/es6/components/Body/Cell.js +34 -33
  28. package/lib/es6/components/Body/Cell.js.map +1 -1
  29. package/lib/es6/components/Body/Row.js +81 -73
  30. package/lib/es6/components/Body/Row.js.map +1 -1
  31. package/lib/es6/components/Body/Row.types.js.map +1 -1
  32. package/lib/es6/components/Body/style.shadow.css +7 -1
  33. package/lib/es6/components/DataTable/DataTable.js +202 -159
  34. package/lib/es6/components/DataTable/DataTable.js.map +1 -1
  35. package/lib/es6/components/DataTable/DataTable.types.js.map +1 -1
  36. package/lib/es6/components/Head/Column.js +22 -27
  37. package/lib/es6/components/Head/Column.js.map +1 -1
  38. package/lib/es6/components/Head/Column.types.js.map +1 -1
  39. package/lib/es6/components/Head/Group.js +24 -23
  40. package/lib/es6/components/Head/Group.js.map +1 -1
  41. package/lib/es6/components/Head/Head.js +68 -66
  42. package/lib/es6/components/Head/Head.js.map +1 -1
  43. package/lib/es6/components/Head/Head.types.js.map +1 -1
  44. package/lib/es6/components/Head/style.shadow.css +5 -1
  45. package/lib/es6/style/scroll-shadows.shadow.css +6 -0
  46. package/lib/esm/components/Body/Body.mjs +40 -38
  47. package/lib/esm/components/Body/Cell.mjs +35 -34
  48. package/lib/esm/components/Body/Row.mjs +63 -57
  49. package/lib/esm/components/Body/style.shadow.css +7 -1
  50. package/lib/esm/components/DataTable/DataTable.mjs +157 -117
  51. package/lib/esm/components/Head/Column.mjs +23 -26
  52. package/lib/esm/components/Head/Group.mjs +25 -24
  53. package/lib/esm/components/Head/Head.mjs +47 -46
  54. package/lib/esm/components/Head/style.shadow.css +5 -1
  55. package/lib/esm/style/scroll-shadows.shadow.css +6 -0
  56. package/lib/types/components/Body/Body.types.d.ts +2 -1
  57. package/lib/types/components/Body/Row.types.d.ts +2 -1
  58. package/lib/types/components/DataTable/DataTable.d.ts +3 -2
  59. package/lib/types/components/DataTable/DataTable.types.d.ts +10 -3
  60. package/lib/types/components/Head/Column.types.d.ts +4 -15
  61. package/lib/types/components/Head/Head.d.ts +3 -3
  62. package/lib/types/components/Head/Head.types.d.ts +6 -1
  63. package/package.json +10 -10
  64. package/lib/cjs/utils.js +0 -66
  65. package/lib/cjs/utils.js.map +0 -1
  66. package/lib/es6/utils.js +0 -56
  67. package/lib/es6/utils.js.map +0 -1
  68. package/lib/esm/utils.mjs +0 -43
  69. package/lib/types/utils.d.ts +0 -8
@@ -16,38 +16,41 @@ import { Box, ScreenReaderOnly, ScrollArea } from '@semcore/base-components';
16
16
  import { Head } from '../Head/Head';
17
17
  import { Body } from '../Body/Body';
18
18
  /*!__reshadow-styles__:"./dataTable.shadow.css"*/
19
- var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___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)}", /*__inner_css_end__*/"1iypx_gg_"),
19
+ var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SDataTable_133z6_gg_{display:grid;align-items:start;min-width:-moz-fit-content;min-width:fit-content}.___SDataTable_133z6_gg_.__gridTemplateColumns_133z6_gg_{grid-template-columns:var(--gridTemplateColumns_133z6)}.___SDataTable_133z6_gg_.__gridTemplateAreas_133z6_gg_{grid-template-areas:var(--gridTemplateAreas_133z6)}.___SDataTable_133z6_gg_.__gridTemplateRows_133z6_gg_{grid-template-rows:var(--gridTemplateRows_133z6)}", /*__inner_css_end__*/"133z6_gg_"),
20
20
  /*__reshadow_css_end__*/
21
21
  {
22
- "__SDataTable": "___SDataTable_1iypx_gg_",
23
- "_gridTemplateColumns": "__gridTemplateColumns_1iypx_gg_",
24
- "--gridTemplateColumns": "--gridTemplateColumns_1iypx",
25
- "_gridTemplateAreas": "__gridTemplateAreas_1iypx_gg_",
26
- "--gridTemplateAreas": "--gridTemplateAreas_1iypx",
27
- "_gridTemplateRows": "__gridTemplateRows_1iypx_gg_",
28
- "--gridTemplateRows": "--gridTemplateRows_1iypx"
22
+ "__SDataTable": "___SDataTable_133z6_gg_",
23
+ "_gridTemplateColumns": "__gridTemplateColumns_133z6_gg_",
24
+ "--gridTemplateColumns": "--gridTemplateColumns_133z6",
25
+ "_gridTemplateAreas": "__gridTemplateAreas_133z6_gg_",
26
+ "--gridTemplateAreas": "--gridTemplateAreas_133z6",
27
+ "_gridTemplateRows": "__gridTemplateRows_133z6_gg_",
28
+ "--gridTemplateRows": "--gridTemplateRows_133z6"
29
29
  });
30
30
  import { isFocusInside, hasFocusableIn } from '@semcore/core/lib/utils/use/useFocusLock';
31
- import { getScrollOffsetValue } from '../../utils';
32
31
  import findComponent from '@semcore/core/lib/utils/findComponent';
33
32
  import { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';
34
33
  import i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';
35
34
  import uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';
36
35
  import { forkRef } from '@semcore/core/lib/utils/ref';
37
36
  /*!__reshadow-styles__:"../../style/scroll-shadows.shadow.css"*/
38
- var scrollStyles = ( /*__reshadow_css_start__*/_sstyled2.insert( /*__inner_css_start__*/".___SScrollArea_11h4o_gg_{width:-moz-fit-content;width:fit-content}.___SScrollArea_11h4o_gg_ .___SContainer_11h4o_gg_{overflow:visible;overflow:initial}.___SScrollArea_11h4o_gg_ .___SContainer_11h4o_gg_._scrollDirection_both_11h4o_gg_{overflow:auto}.___SScrollArea_11h4o_gg_ .___SContainer_11h4o_gg_._scrollDirection_horizontal_11h4o_gg_{overflow-x:auto;overflow-y:initial}.___SScrollArea_11h4o_gg_ .___SContainer_11h4o_gg_._scrollDirection_vertical_11h4o_gg_{overflow-x:initial;overflow-y:auto}.___SScrollArea_11h4o_gg_ .___SContainer_11h4o_gg_.__loading_11h4o_gg_{overflow:hidden}.___SScrollArea_11h4o_gg_ .___SContainer_11h4o_gg_.__headerHeight_11h4o_gg_{scroll-padding-top:var(--headerHeight_11h4o)}.___SScrollArea_11h4o_gg_ .___SShadowVertical_11h4o_gg_:before{display:none}.___SScrollArea_11h4o_gg_ .___SShadowHorizontal_11h4o_gg_:after,.___SScrollArea_11h4o_gg_ .___SShadowHorizontal_11h4o_gg_:before,.___SScrollArea_11h4o_gg_ .___SShadowVertical_11h4o_gg_:after{z-index:2}", /*__inner_css_end__*/"11h4o_gg_"),
37
+ var scrollStyles = ( /*__reshadow_css_start__*/_sstyled2.insert( /*__inner_css_start__*/".___SScrollArea_1p4fc_gg_{width:-moz-fit-content;width:fit-content}.___SScrollArea_1p4fc_gg_ .___SContainer_1p4fc_gg_{overflow:visible;overflow:initial}.___SScrollArea_1p4fc_gg_ .___SContainer_1p4fc_gg_._scrollDirection_both_1p4fc_gg_{overflow:auto}.___SScrollArea_1p4fc_gg_ .___SContainer_1p4fc_gg_._scrollDirection_horizontal_1p4fc_gg_{overflow-x:auto;overflow-y:initial}.___SScrollArea_1p4fc_gg_ .___SContainer_1p4fc_gg_._scrollDirection_vertical_1p4fc_gg_{overflow-x:initial;overflow-y:auto}.___SScrollArea_1p4fc_gg_ .___SContainer_1p4fc_gg_.__loading_1p4fc_gg_{overflow:hidden}.___SScrollArea_1p4fc_gg_ .___SContainer_1p4fc_gg_.__headerHeight_1p4fc_gg_{scroll-padding-top:var(--headerHeight_1p4fc)}.___SScrollArea_1p4fc_gg_ .___SContainer_1p4fc_gg_.__leftScrollPadding_1p4fc_gg_{scroll-padding-left:var(--leftScrollPadding_1p4fc)}.___SScrollArea_1p4fc_gg_ .___SContainer_1p4fc_gg_.__rightScrollPadding_1p4fc_gg_{scroll-padding-right:var(--rightScrollPadding_1p4fc)}.___SScrollArea_1p4fc_gg_ .___SShadowVertical_1p4fc_gg_:before{display:none}.___SScrollArea_1p4fc_gg_ .___SShadowHorizontal_1p4fc_gg_:after,.___SScrollArea_1p4fc_gg_ .___SShadowHorizontal_1p4fc_gg_:before,.___SScrollArea_1p4fc_gg_ .___SShadowVertical_1p4fc_gg_:after{z-index:2}", /*__inner_css_end__*/"1p4fc_gg_"),
39
38
  /*__reshadow_css_end__*/
40
39
  {
41
- "__SScrollArea": "___SScrollArea_11h4o_gg_",
42
- "__SContainer": "___SContainer_11h4o_gg_",
43
- "_scrollDirection_both": "_scrollDirection_both_11h4o_gg_",
44
- "_scrollDirection_horizontal": "_scrollDirection_horizontal_11h4o_gg_",
45
- "_scrollDirection_vertical": "_scrollDirection_vertical_11h4o_gg_",
46
- "_loading": "__loading_11h4o_gg_",
47
- "_headerHeight": "__headerHeight_11h4o_gg_",
48
- "--headerHeight": "--headerHeight_11h4o",
49
- "__SShadowVertical": "___SShadowVertical_11h4o_gg_",
50
- "__SShadowHorizontal": "___SShadowHorizontal_11h4o_gg_"
40
+ "__SScrollArea": "___SScrollArea_1p4fc_gg_",
41
+ "__SContainer": "___SContainer_1p4fc_gg_",
42
+ "_scrollDirection_both": "_scrollDirection_both_1p4fc_gg_",
43
+ "_scrollDirection_horizontal": "_scrollDirection_horizontal_1p4fc_gg_",
44
+ "_scrollDirection_vertical": "_scrollDirection_vertical_1p4fc_gg_",
45
+ "_loading": "__loading_1p4fc_gg_",
46
+ "_headerHeight": "__headerHeight_1p4fc_gg_",
47
+ "--headerHeight": "--headerHeight_1p4fc",
48
+ "_leftScrollPadding": "__leftScrollPadding_1p4fc_gg_",
49
+ "--leftScrollPadding": "--leftScrollPadding_1p4fc",
50
+ "_rightScrollPadding": "__rightScrollPadding_1p4fc_gg_",
51
+ "--rightScrollPadding": "--rightScrollPadding_1p4fc",
52
+ "__SShadowVertical": "___SShadowVertical_1p4fc_gg_",
53
+ "__SShadowHorizontal": "___SShadowHorizontal_1p4fc_gg_"
51
54
  });
52
55
  import { hasParent } from '@semcore/core/lib/utils/hasParent';
53
56
  import trottle from '@semcore/core/lib/utils/rafTrottle';
@@ -78,7 +81,9 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
78
81
  _defineProperty(_assertThisInitialized(_this), "gridAreaGroupMap", new Map());
79
82
  _defineProperty(_assertThisInitialized(_this), "columnsSplitter", '/');
80
83
  _defineProperty(_assertThisInitialized(_this), "rows", []);
84
+ _defineProperty(_assertThisInitialized(_this), "flatRows", []);
81
85
  _defineProperty(_assertThisInitialized(_this), "selectAllMessageTimer", 0);
86
+ _defineProperty(_assertThisInitialized(_this), "headerNodesMap", new Map());
82
87
  _defineProperty(_assertThisInitialized(_this), "state", {
83
88
  scrollTop: 0,
84
89
  scrollDirection: 'down',
@@ -123,11 +128,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
123
128
  return (_this$tableRef$curren = _this.tableRef.current) === null || _this$tableRef$curren === void 0 ? void 0 : _this$tableRef$curren.querySelector("[aria-rowindex=\"".concat(index + 1, "\"]"));
124
129
  });
125
130
  _defineProperty(_assertThisInitialized(_this), "hasFocusableInHeader", function () {
126
- var hasFocusable = _this.columns.some(function (column) {
127
- var columnElement = column.ref.current;
128
- return columnElement && hasFocusableIn(columnElement);
129
- });
130
- return hasFocusable;
131
+ return _this.headerRef.current && hasFocusableIn(_this.headerRef.current);
131
132
  });
132
133
  _defineProperty(_assertThisInitialized(_this), "onExpandRow", function (expandedRow) {
133
134
  var expandedRows = _this.asProps.expandedRows;
@@ -181,9 +182,14 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
181
182
  var rowI = rowIndex;
182
183
  var colI = colIndex;
183
184
  if (direction === 'left' || direction === 'right') {
184
- var _currentCell$parentEl, _row$children;
185
+ var _currentCell$parentEl, _currentCell$parentEl2, _row$children;
186
+ // we need to skip Collapse Element with one big component from keyboard left/right pressing
187
+ if (((_currentCell$parentEl = currentCell.parentElement) === null || _currentCell$parentEl === void 0 ? void 0 : _currentCell$parentEl.dataset.uiName) === 'Collapse') {
188
+ return;
189
+ }
190
+
185
191
  // left/right
186
- if (currentCell.dataset.groupedBy === 'colgroup' || Number((_currentCell$parentEl = currentCell.parentElement) === null || _currentCell$parentEl === void 0 ? void 0 : _currentCell$parentEl.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) {
192
+ 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) {
187
193
  colI = direction === 'left' ? colI - 1 : colI + 1;
188
194
  } else {
189
195
  rowI = rowI - 1;
@@ -308,6 +314,72 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
308
314
  _defineProperty(_assertThisInitialized(_this), "handleBackFromAccordion", function (cellIndex) {
309
315
  _this.changeFocusCell(-1, cellIndex === -1 ? 0 : cellIndex, 'up');
310
316
  });
317
+ _defineProperty(_assertThisInitialized(_this), "getScrollOffsetValue", function () {
318
+ if (!_this.headerRef.current) {
319
+ return [0, 0];
320
+ }
321
+ var setToMap = function setToMap(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 [undefined, undefined];
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 [undefined, undefined];
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
+ });
311
383
  if (props.children) {
312
384
  _this.columns = _this.calculateColumns();
313
385
  } else {
@@ -316,6 +388,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
316
388
  _this.treeColumns = cols[1];
317
389
  }
318
390
  _this.rows = _this.calculateRows();
391
+ _this.flatRows = _this.rows.flat();
319
392
  return _this;
320
393
  }
321
394
  _createClass(DataTableRoot, [{
@@ -328,16 +401,33 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
328
401
  }, {
329
402
  key: "componentDidMount",
330
403
  value: function componentDidMount() {
331
- this.forceUpdate();
404
+ var _this2 = this;
405
+ var _this$asProps2 = this.asProps,
406
+ headerProps = _this$asProps2.headerProps,
407
+ loading = _this$asProps2.loading;
408
+ if (headerProps !== null && headerProps !== void 0 && headerProps.sticky && !headerProps.h || loading || this.columns.some(function (c) {
409
+ return c.fixed;
410
+ })) {
411
+ requestAnimationFrame(function () {
412
+ _this2.forceUpdate();
413
+ });
414
+ }
332
415
  }
333
416
  }, {
334
417
  key: "componentDidUpdate",
335
418
  value: function componentDidUpdate(prevProps) {
336
- var _this$asProps2 = this.asProps,
337
- data = _this$asProps2.data,
338
- selectedRows = _this$asProps2.selectedRows;
339
- if (prevProps.data !== data) {
419
+ var _this$asProps3 = this.asProps,
420
+ data = _this$asProps3.data,
421
+ selectedRows = _this$asProps3.selectedRows,
422
+ columns = _this$asProps3.columns;
423
+ if (prevProps.columns !== columns) {
424
+ var cols = this.calculateColumnsFromConfig();
425
+ this.columns = cols[0];
426
+ this.treeColumns = cols[1];
427
+ }
428
+ if (prevProps.data !== data || prevProps.columns !== columns) {
340
429
  this.rows = this.calculateRows();
430
+ this.flatRows = this.rows.flat();
341
431
  this.forceUpdate();
342
432
  }
343
433
  if (prevProps.selectedRows !== selectedRows && selectedRows !== undefined) {
@@ -351,9 +441,9 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
351
441
  }, {
352
442
  key: "totalRows",
353
443
  get: function get() {
354
- var _this$asProps3 = this.asProps,
355
- totalRows = _this$asProps3.totalRows,
356
- expandedRows = _this$asProps3.expandedRows;
444
+ var _this$asProps4 = this.asProps,
445
+ totalRows = _this$asProps4.totalRows,
446
+ expandedRows = _this$asProps4.expandedRows;
357
447
  var flatRows = this.rows.flat();
358
448
  var expandedRowsCount = Array.from(expandedRows !== null && expandedRows !== void 0 ? expandedRows : []).reduce(function (acc, rowKey) {
359
449
  var dtRow = flatRows.find(function (el) {
@@ -386,7 +476,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
386
476
  get: function get() {
387
477
  var columns = this.columns;
388
478
  var gridTemplateColumns = columns.map(function (c) {
389
- return c.gridColumnWidth;
479
+ return c.gtcWidth;
390
480
  });
391
481
  var gridTemplateAreas = columns.map(function (c) {
392
482
  return c.name;
@@ -399,18 +489,18 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
399
489
  }, {
400
490
  key: "getHeadProps",
401
491
  value: function getHeadProps() {
402
- var _this2 = this;
403
- var _this$asProps4 = this.asProps,
404
- use = _this$asProps4.use,
405
- compact = _this$asProps4.compact,
406
- sort = _this$asProps4.sort,
407
- onSortChange = _this$asProps4.onSortChange,
408
- getI18nText = _this$asProps4.getI18nText,
409
- uid = _this$asProps4.uid,
410
- headerProps = _this$asProps4.headerProps,
411
- onSelectedRowsChange = _this$asProps4.onSelectedRowsChange,
412
- selectedRows = _this$asProps4.selectedRows,
413
- sideIndents = _this$asProps4.sideIndents;
492
+ var _this3 = this;
493
+ var _this$asProps5 = this.asProps,
494
+ use = _this$asProps5.use,
495
+ compact = _this$asProps5.compact,
496
+ sort = _this$asProps5.sort,
497
+ onSortChange = _this$asProps5.onSortChange,
498
+ getI18nText = _this$asProps5.getI18nText,
499
+ uid = _this$asProps5.uid,
500
+ headerProps = _this$asProps5.headerProps,
501
+ onSelectedRowsChange = _this$asProps5.onSelectedRowsChange,
502
+ selectedRows = _this$asProps5.selectedRows,
503
+ sideIndents = _this$asProps5.sideIndents;
414
504
  var _this$gridSettings = this.gridSettings,
415
505
  gridTemplateColumns = _this$gridSettings.gridTemplateColumns,
416
506
  gridTemplateAreas = _this$gridSettings.gridTemplateAreas;
@@ -432,37 +522,38 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
432
522
  totalRows: this.totalRows,
433
523
  selectedRows: selectedRows,
434
524
  onChangeSelectAll: function onChangeSelectAll(value, e) {
435
- var selectedRowsIndexes = value ? new Array(_this2.totalRows).fill(undefined).map(function (_, i) {
525
+ var selectedRowsIndexes = value ? new Array(_this3.totalRows).fill(undefined).map(function (_, i) {
436
526
  return i;
437
527
  }) : [];
438
528
  onSelectedRowsChange === null || onSelectedRowsChange === void 0 ? void 0 : onSelectedRowsChange(selectedRowsIndexes, e);
439
- }
529
+ },
530
+ getFixedStyle: this.getFixedStyle
440
531
  }, headerProps);
441
532
  }
442
533
  }, {
443
534
  key: "getBodyProps",
444
535
  value: function getBodyProps() {
445
- var _this$asProps5 = this.asProps,
446
- use = _this$asProps5.use,
447
- compact = _this$asProps5.compact,
448
- loading = _this$asProps5.loading,
449
- getI18nText = _this$asProps5.getI18nText,
450
- expandedRows = _this$asProps5.expandedRows,
451
- virtualScroll = _this$asProps5.virtualScroll,
452
- uid = _this$asProps5.uid,
453
- rowProps = _this$asProps5.rowProps,
454
- renderCell = _this$asProps5.renderCell,
455
- headerProps = _this$asProps5.headerProps,
456
- renderEmptyData = _this$asProps5.renderEmptyData,
457
- sideIndents = _this$asProps5.sideIndents,
458
- selectedRows = _this$asProps5.selectedRows;
536
+ var _this$asProps6 = this.asProps,
537
+ use = _this$asProps6.use,
538
+ compact = _this$asProps6.compact,
539
+ loading = _this$asProps6.loading,
540
+ getI18nText = _this$asProps6.getI18nText,
541
+ expandedRows = _this$asProps6.expandedRows,
542
+ virtualScroll = _this$asProps6.virtualScroll,
543
+ uid = _this$asProps6.uid,
544
+ rowProps = _this$asProps6.rowProps,
545
+ renderCell = _this$asProps6.renderCell,
546
+ headerProps = _this$asProps6.headerProps,
547
+ renderEmptyData = _this$asProps6.renderEmptyData,
548
+ sideIndents = _this$asProps6.sideIndents,
549
+ selectedRows = _this$asProps6.selectedRows;
459
550
  var _this$gridSettings2 = this.gridSettings,
460
551
  gridTemplateColumns = _this$gridSettings2.gridTemplateColumns,
461
552
  gridTemplateAreas = _this$gridSettings2.gridTemplateAreas;
462
553
  return {
463
554
  columns: this.columns,
464
555
  rows: this.rows,
465
- flatRows: this.rows.flat(),
556
+ flatRows: this.flatRows,
466
557
  use: use,
467
558
  compact: Boolean(compact),
468
559
  gridTemplateColumns: gridTemplateColumns,
@@ -488,7 +579,8 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
488
579
  renderEmptyData: renderEmptyData,
489
580
  sideIndents: sideIndents,
490
581
  selectedRows: selectedRows,
491
- onSelectRow: this.handleSelectRow
582
+ onSelectRow: this.handleSelectRow,
583
+ getFixedStyle: this.getFixedStyle
492
584
  };
493
585
  }
494
586
  }, {
@@ -510,33 +602,33 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
510
602
  var _ref = this.asProps,
511
603
  _ref2;
512
604
  var SDataTable = Box;
513
- var _this$asProps6 = this.asProps,
514
- Children = _this$asProps6.Children,
515
- styles = _this$asProps6.styles,
516
- w = _this$asProps6.w,
517
- wMax = _this$asProps6.wMax,
518
- wMin = _this$asProps6.wMin,
519
- h = _this$asProps6.h,
520
- hMax = _this$asProps6.hMax,
521
- hMin = _this$asProps6.hMin,
522
- virtualScroll = _this$asProps6.virtualScroll,
523
- children = _this$asProps6.children,
524
- headerProps = _this$asProps6.headerProps,
525
- loading = _this$asProps6.loading,
526
- selectedRows = _this$asProps6.selectedRows;
527
- var _getScrollOffsetValue = getScrollOffsetValue(this.columns),
528
- _getScrollOffsetValue2 = _slicedToArray(_getScrollOffsetValue, 2),
529
- offsetLeftSum = _getScrollOffsetValue2[0],
530
- offsetRightSum = _getScrollOffsetValue2[1];
605
+ var _this$asProps7 = this.asProps,
606
+ Children = _this$asProps7.Children,
607
+ styles = _this$asProps7.styles,
608
+ w = _this$asProps7.w,
609
+ wMax = _this$asProps7.wMax,
610
+ wMin = _this$asProps7.wMin,
611
+ h = _this$asProps7.h,
612
+ hMax = _this$asProps7.hMax,
613
+ hMin = _this$asProps7.hMin,
614
+ virtualScroll = _this$asProps7.virtualScroll,
615
+ children = _this$asProps7.children,
616
+ headerProps = _this$asProps7.headerProps,
617
+ loading = _this$asProps7.loading,
618
+ selectedRows = _this$asProps7.selectedRows;
619
+ var _this$getScrollOffset = this.getScrollOffsetValue(),
620
+ _this$getScrollOffset2 = _slicedToArray(_this$getScrollOffset, 2),
621
+ offsetLeftSum = _this$getScrollOffset2[0],
622
+ offsetRightSum = _this$getScrollOffset2[1];
531
623
  var _this$gridSettings3 = this.gridSettings,
532
624
  gridTemplateColumns = _this$gridSettings3.gridTemplateColumns,
533
625
  gridTemplateAreas = _this$gridSettings3.gridTemplateAreas;
534
626
  var Head = findComponent(Children, ['DataTable.Head']);
535
627
  var headerPropsToCheck = headerProps !== null && headerProps !== void 0 ? headerProps : Head === null || Head === void 0 ? void 0 : Head.props;
536
- var headerHeight = this.getHeaderHeight();
628
+ var headerHeight = (headerProps === null || headerProps === void 0 ? void 0 : headerProps.h) || this.getHeaderHeight();
537
629
  var topOffset = headerPropsToCheck !== null && headerPropsToCheck !== void 0 && headerPropsToCheck.sticky || headerPropsToCheck !== null && headerPropsToCheck !== void 0 && headerPropsToCheck.withScrollBar ? headerHeight : undefined;
538
630
  var width = w !== null && w !== void 0 ? w : this.columns.some(function (c) {
539
- return c.gridColumnWidth === 'auto' || c.gridColumnWidth === '1fr';
631
+ return c.gtcWidth === 'auto' || c.gtcWidth === '1fr';
540
632
  }) ? '100%' : undefined;
541
633
  var gridTemplateRows = undefined;
542
634
  if (virtualScroll && typeof virtualScroll !== 'boolean' && 'rowHeight' in virtualScroll) {
@@ -566,7 +658,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
566
658
  "ref": this.scrollAreaRef,
567
659
  "container": this.tableContainerRef,
568
660
  "styles": scrollStyles,
569
- "onScroll": this.handleScroll,
661
+ "onScroll": virtualScroll ? this.handleScroll : undefined,
570
662
  "disableAutofocusToContent": true
571
663
  }), /*#__PURE__*/React.createElement(ScrollArea.Container, {
572
664
  tabIndex: -1
@@ -576,7 +668,9 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
576
668
  // @ts-ignore
577
669
  ,
578
670
  loading: loading,
579
- headerHeight: "".concat(headerHeight, "px")
671
+ headerHeight: "".concat(headerHeight, "px"),
672
+ leftScrollPadding: "".concat(offsetLeftSum, "px"),
673
+ rightScrollPadding: "".concat(offsetRightSum, "px")
580
674
  }, /*#__PURE__*/React.createElement(SDataTable, _ref2.cn("SDataTable", _objectSpread({}, _assignProps({
581
675
  "ref": forkRef(this.tableRef, this.tableContainerRef),
582
676
  "role": 'grid',
@@ -598,7 +692,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
598
692
  "use:h": undefined,
599
693
  "use:hMax": undefined,
600
694
  "use:hMin": undefined
601
- }, _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 && !loading && /*#__PURE__*/React.createElement(ScrollArea.Bar, {
695
+ }, _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, {
602
696
  orientation: "horizontal",
603
697
  top: topOffset - SCROLL_BAR_HEIGHT,
604
698
  zIndex: 10
@@ -616,7 +710,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
616
710
  }, {
617
711
  key: "calculateColumns",
618
712
  value: function calculateColumns() {
619
- var _this3 = this;
713
+ var _this4 = this;
620
714
  var _this$props = this.props,
621
715
  children = _this$props.children,
622
716
  data = _this$props.data,
@@ -631,20 +725,9 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
631
725
  if (selectedRows) {
632
726
  var column = {
633
727
  name: SELECT_ALL.toString(),
634
- // @ts-ignore
635
- ref: function ref(node) {
636
- if (node) {
637
- var calculatedWidth = node.getBoundingClientRect().width;
638
- var calculatedHeight = node.getBoundingClientRect().height;
639
- column.calculatedWidth = calculatedWidth;
640
- column.calculatedHeight = calculatedHeight;
641
- }
642
- this.ref.current = node;
643
- },
644
- gridColumnWidth: '40px',
645
- calculatedWidth: 0,
646
- calculatedHeight: 0,
647
- alignItems: 'flex-start'
728
+ gtcWidth: '40px',
729
+ alignItems: 'flex-start',
730
+ children: ''
648
731
  };
649
732
  columns.push(column);
650
733
  }
@@ -654,26 +737,15 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
654
737
  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' : undefined;
655
738
  var column = {
656
739
  name: columnElement.props.name,
657
- // @ts-ignore
658
- ref: function ref(node) {
659
- if (node) {
660
- var calculatedWidth = node.getBoundingClientRect().width;
661
- var calculatedHeight = node.getBoundingClientRect().height;
662
- column.calculatedWidth = calculatedWidth;
663
- column.calculatedHeight = calculatedHeight;
664
- }
665
- this.ref.current = node;
666
- },
667
- gridColumnWidth: calculateGridTemplateColumn(columnElement),
740
+ gtcWidth: calculateGridTemplateColumn(columnElement),
668
741
  fixed: (_columnElement$props$ = columnElement.props.fixed) !== null && _columnElement$props$ !== void 0 ? _columnElement$props$ : parent === null || parent === void 0 ? void 0 : parent.props.fixed,
669
- calculatedWidth: 0,
670
- calculatedHeight: 0,
671
742
  borders: (_ref3 = (_columnElement$props$2 = columnElement.props.borders) !== null && _columnElement$props$2 !== void 0 ? _columnElement$props$2 : leftBordersFromParent) !== null && _ref3 !== void 0 ? _ref3 : rightBordersFromParent,
672
743
  parent: parent,
673
744
  flexWrap: columnElement.props.flexWrap,
674
745
  alignItems: columnElement.props.alignItems,
675
746
  alignContent: columnElement.props.alignContent,
676
- justifyContent: columnElement.props.justifyContent
747
+ justifyContent: columnElement.props.justifyContent,
748
+ children: ''
677
749
  };
678
750
  return column;
679
751
  };
@@ -687,7 +759,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
687
759
  if (! /*#__PURE__*/React.isValidElement(child)) return;
688
760
  if (childIsColumn(child)) {
689
761
  var col = makeColumn(child);
690
- col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(_this3.hasGroups ? '3' : '2', " / ").concat(gridColumnIndex + 1);
762
+ col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(_this4.hasGroups ? '3' : '2', " / ").concat(gridColumnIndex + 1);
691
763
  columnIndex++;
692
764
  gridColumnIndex++;
693
765
  columns.push(col);
@@ -714,7 +786,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
714
786
  columns.push(_col);
715
787
  }
716
788
  });
717
- _this3.gridAreaGroupMap.set(groupIndex, "1 / ".concat(initGridColumn, " / 2 / ").concat(gridColumnIndex));
789
+ _this4.gridAreaGroupMap.set(groupIndex, "1 / ".concat(initGridColumn, " / 2 / ").concat(gridColumnIndex));
718
790
  groupIndex++;
719
791
  }
720
792
  });
@@ -723,7 +795,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
723
795
  }, {
724
796
  key: "calculateColumnsFromConfig",
725
797
  value: function calculateColumnsFromConfig() {
726
- var _this4 = this;
798
+ var _this5 = this;
727
799
  var _this$props2 = this.props,
728
800
  columns = _this$props2.columns,
729
801
  data = _this$props2.data,
@@ -740,20 +812,9 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
740
812
  if (selectedRows) {
741
813
  var column = {
742
814
  name: SELECT_ALL.toString(),
743
- // @ts-ignore
744
- ref: function ref(node) {
745
- if (node) {
746
- var calculatedWidth = node.getBoundingClientRect().width;
747
- var calculatedHeight = node.getBoundingClientRect().height;
748
- column.calculatedWidth = calculatedWidth;
749
- column.calculatedHeight = calculatedHeight;
750
- }
751
- this.ref.current = node;
752
- },
753
- gridColumnWidth: '40px',
754
- calculatedWidth: 0,
755
- calculatedHeight: 0,
756
- alignItems: 'flex-start'
815
+ gtcWidth: '40px',
816
+ alignItems: 'flex-start',
817
+ children: ''
757
818
  };
758
819
  calculatedColumns.push(column);
759
820
  }
@@ -763,27 +824,8 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
763
824
  var rightBordersFromParent = isLast && ((parent === null || parent === void 0 ? void 0 : parent.borders) === 'both' || (parent === null || parent === void 0 ? void 0 : parent.borders) === 'right') ? 'right' : undefined;
764
825
  var column = _objectSpread(_objectSpread({}, columnElement), {}, {
765
826
  name: childIsColumn(columnElement) ? columnElement.name : '',
766
- // @ts-ignore
767
- ref: function ref(node) {
768
- var _columnElement$ref;
769
- if (node) {
770
- var calculatedWidth = node.getBoundingClientRect().width;
771
- var calculatedHeight = node.getBoundingClientRect().height;
772
- column.calculatedWidth = calculatedWidth;
773
- column.calculatedHeight = calculatedHeight;
774
- }
775
- if (childIsColumn(columnElement) && (_columnElement$ref = columnElement.ref) !== null && _columnElement$ref !== void 0 && _columnElement$ref.hasOwnProperty('current')) {
776
- // @ts-ignore
777
- columnElement.ref.current = node;
778
- }
779
- if (this !== null && this !== void 0 && this.ref) {
780
- this.ref.current = node;
781
- }
782
- },
783
- gridColumnWidth: childIsColumn(columnElement) ? calculateGridTemplateColumn(columnElement) : '',
827
+ gtcWidth: childIsColumn(columnElement) ? calculateGridTemplateColumn(columnElement) : '',
784
828
  fixed: (_columnElement$fixed = columnElement.fixed) !== null && _columnElement$fixed !== void 0 ? _columnElement$fixed : parent === null || parent === void 0 ? void 0 : parent.fixed,
785
- calculatedWidth: 0,
786
- calculatedHeight: 0,
787
829
  borders: (_ref4 = (_columnElement$border = columnElement.borders) !== null && _columnElement$border !== void 0 ? _columnElement$border : leftBordersFromParent) !== null && _ref4 !== void 0 ? _ref4 : rightBordersFromParent,
788
830
  parent: parent
789
831
  });
@@ -798,7 +840,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
798
840
  columns.forEach(function (child, i) {
799
841
  if (childIsColumn(child)) {
800
842
  var col = makeColumn(child);
801
- col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(_this4.hasGroups ? '3' : '2', " / ").concat(gridColumnIndex + 1);
843
+ col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(_this5.hasGroups ? '3' : '2', " / ").concat(gridColumnIndex + 1);
802
844
  columnIndex++;
803
845
  gridColumnIndex++;
804
846
  calculatedColumns.push(col);
@@ -829,7 +871,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
829
871
  (_Group$columns = Group.columns) === null || _Group$columns === void 0 ? void 0 : _Group$columns.push(col);
830
872
  });
831
873
  treeColumns.push(Group);
832
- _this4.gridAreaGroupMap.set(groupIndex, "1 / ".concat(initGridColumn, " / 2 / ").concat(gridColumnIndex));
874
+ _this5.gridAreaGroupMap.set(groupIndex, "1 / ".concat(initGridColumn, " / 2 / ").concat(gridColumnIndex));
833
875
  groupIndex++;
834
876
  }
835
877
  });
@@ -838,7 +880,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
838
880
  }, {
839
881
  key: "calculateRows",
840
882
  value: function calculateRows() {
841
- var _this5 = this;
883
+ var _this6 = this;
842
884
  var columns = this.columns;
843
885
  // @ts-ignore
844
886
  var _this$props3 = this.props,
@@ -858,7 +900,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
858
900
  var _ref6 = _slicedToArray(_ref5, 2),
859
901
  key = _ref6[0],
860
902
  value = _ref6[1];
861
- var columnsToRow = key.split(_this5.columnsSplitter);
903
+ var columnsToRow = key.split(_this6.columnsSplitter);
862
904
  if (columnsToRow.length === 1) {
863
905
  acc[key] = value !== null && value !== void 0 ? value : '';
864
906
  columns["delete"](key);
@@ -967,4 +1009,5 @@ export var DataTable = createComponent(DataTableRoot, {
967
1009
  Head: Head,
968
1010
  Body: Body
969
1011
  });
1012
+ export var DataTableInternal = DataTable;
970
1013
  //# sourceMappingURL=DataTable.js.map