@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
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.UNIQ_ROW_KEY = exports.SELECT_ALL = exports.ROW_INDEX = exports.ROW_GROUP = exports.DataTable = exports.ACCORDION = void 0;
8
+ exports.UNIQ_ROW_KEY = exports.SELECT_ALL = exports.ROW_INDEX = exports.ROW_GROUP = exports.DataTableInternal = exports.DataTable = exports.ACCORDION = void 0;
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
10
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
11
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
@@ -21,7 +21,6 @@ var _baseComponents = require("@semcore/base-components");
21
21
  var _Head = require("../Head/Head");
22
22
  var _Body = require("../Body/Body");
23
23
  var _useFocusLock = require("@semcore/core/lib/utils/use/useFocusLock");
24
- var _utils = require("../../utils");
25
24
  var _findComponent = _interopRequireDefault(require("@semcore/core/lib/utils/findComponent"));
26
25
  var _intergalacticDynamicLocales = require("../../translations/__intergalactic-dynamic-locales");
27
26
  var _i18nEnhance = _interopRequireDefault(require("@semcore/core/lib/utils/enhances/i18nEnhance"));
@@ -32,31 +31,35 @@ var _rafTrottle = _interopRequireDefault(require("@semcore/core/lib/utils/rafTro
32
31
  var _MergedCells = require("../Body/MergedCells");
33
32
  var _widgetEmpty = require("@semcore/widget-empty");
34
33
  /*!__reshadow-styles__:"./dataTable.shadow.css"*/
35
- var style = ( /*__reshadow_css_start__*/_core.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_"),
34
+ var style = ( /*__reshadow_css_start__*/_core.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_"),
36
35
  /*__reshadow_css_end__*/
37
36
  {
38
- "__SDataTable": "___SDataTable_1iypx_gg_",
39
- "_gridTemplateColumns": "__gridTemplateColumns_1iypx_gg_",
40
- "--gridTemplateColumns": "--gridTemplateColumns_1iypx",
41
- "_gridTemplateAreas": "__gridTemplateAreas_1iypx_gg_",
42
- "--gridTemplateAreas": "--gridTemplateAreas_1iypx",
43
- "_gridTemplateRows": "__gridTemplateRows_1iypx_gg_",
44
- "--gridTemplateRows": "--gridTemplateRows_1iypx"
37
+ "__SDataTable": "___SDataTable_133z6_gg_",
38
+ "_gridTemplateColumns": "__gridTemplateColumns_133z6_gg_",
39
+ "--gridTemplateColumns": "--gridTemplateColumns_133z6",
40
+ "_gridTemplateAreas": "__gridTemplateAreas_133z6_gg_",
41
+ "--gridTemplateAreas": "--gridTemplateAreas_133z6",
42
+ "_gridTemplateRows": "__gridTemplateRows_133z6_gg_",
43
+ "--gridTemplateRows": "--gridTemplateRows_133z6"
45
44
  });
46
45
  /*!__reshadow-styles__:"../../style/scroll-shadows.shadow.css"*/
47
- var scrollStyles = ( /*__reshadow_css_start__*/_core.sstyled.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_"),
46
+ var scrollStyles = ( /*__reshadow_css_start__*/_core.sstyled.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_"),
48
47
  /*__reshadow_css_end__*/
49
48
  {
50
- "__SScrollArea": "___SScrollArea_11h4o_gg_",
51
- "__SContainer": "___SContainer_11h4o_gg_",
52
- "_scrollDirection_both": "_scrollDirection_both_11h4o_gg_",
53
- "_scrollDirection_horizontal": "_scrollDirection_horizontal_11h4o_gg_",
54
- "_scrollDirection_vertical": "_scrollDirection_vertical_11h4o_gg_",
55
- "_loading": "__loading_11h4o_gg_",
56
- "_headerHeight": "__headerHeight_11h4o_gg_",
57
- "--headerHeight": "--headerHeight_11h4o",
58
- "__SShadowVertical": "___SShadowVertical_11h4o_gg_",
59
- "__SShadowHorizontal": "___SShadowHorizontal_11h4o_gg_"
49
+ "__SScrollArea": "___SScrollArea_1p4fc_gg_",
50
+ "__SContainer": "___SContainer_1p4fc_gg_",
51
+ "_scrollDirection_both": "_scrollDirection_both_1p4fc_gg_",
52
+ "_scrollDirection_horizontal": "_scrollDirection_horizontal_1p4fc_gg_",
53
+ "_scrollDirection_vertical": "_scrollDirection_vertical_1p4fc_gg_",
54
+ "_loading": "__loading_1p4fc_gg_",
55
+ "_headerHeight": "__headerHeight_1p4fc_gg_",
56
+ "--headerHeight": "--headerHeight_1p4fc",
57
+ "_leftScrollPadding": "__leftScrollPadding_1p4fc_gg_",
58
+ "--leftScrollPadding": "--leftScrollPadding_1p4fc",
59
+ "_rightScrollPadding": "__rightScrollPadding_1p4fc_gg_",
60
+ "--rightScrollPadding": "--rightScrollPadding_1p4fc",
61
+ "__SShadowVertical": "___SShadowVertical_1p4fc_gg_",
62
+ "__SShadowHorizontal": "___SShadowHorizontal_1p4fc_gg_"
60
63
  });
61
64
  var ACCORDION = Symbol('accordion');
62
65
  exports.ACCORDION = ACCORDION;
@@ -88,7 +91,9 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
88
91
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "gridAreaGroupMap", new Map());
89
92
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "columnsSplitter", '/');
90
93
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "rows", []);
94
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "flatRows", []);
91
95
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "selectAllMessageTimer", 0);
96
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "headerNodesMap", new Map());
92
97
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
93
98
  scrollTop: 0,
94
99
  scrollDirection: 'down',
@@ -133,11 +138,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
133
138
  return (_this$tableRef$curren = _this.tableRef.current) === null || _this$tableRef$curren === void 0 ? void 0 : _this$tableRef$curren.querySelector("[aria-rowindex=\"".concat(index + 1, "\"]"));
134
139
  });
135
140
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "hasFocusableInHeader", function () {
136
- var hasFocusable = _this.columns.some(function (column) {
137
- var columnElement = column.ref.current;
138
- return columnElement && (0, _useFocusLock.hasFocusableIn)(columnElement);
139
- });
140
- return hasFocusable;
141
+ return _this.headerRef.current && (0, _useFocusLock.hasFocusableIn)(_this.headerRef.current);
141
142
  });
142
143
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onExpandRow", function (expandedRow) {
143
144
  var expandedRows = _this.asProps.expandedRows;
@@ -191,9 +192,14 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
191
192
  var rowI = rowIndex;
192
193
  var colI = colIndex;
193
194
  if (direction === 'left' || direction === 'right') {
194
- var _currentCell$parentEl, _row$children;
195
+ var _currentCell$parentEl, _currentCell$parentEl2, _row$children;
196
+ // we need to skip Collapse Element with one big component from keyboard left/right pressing
197
+ if (((_currentCell$parentEl = currentCell.parentElement) === null || _currentCell$parentEl === void 0 ? void 0 : _currentCell$parentEl.dataset.uiName) === 'Collapse') {
198
+ return;
199
+ }
200
+
195
201
  // left/right
196
- 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) {
202
+ 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) {
197
203
  colI = direction === 'left' ? colI - 1 : colI + 1;
198
204
  } else {
199
205
  rowI = rowI - 1;
@@ -318,6 +324,72 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
318
324
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleBackFromAccordion", function (cellIndex) {
319
325
  _this.changeFocusCell(-1, cellIndex === -1 ? 0 : cellIndex, 'up');
320
326
  });
327
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getScrollOffsetValue", function () {
328
+ if (!_this.headerRef.current) {
329
+ return [0, 0];
330
+ }
331
+ var setToMap = function setToMap(element) {
332
+ if (element.getAttribute('name') && element.dataset.uiName === 'Head.Column') {
333
+ var name = element.getAttribute('name');
334
+ if (name) {
335
+ _this.headerNodesMap.set(name, element);
336
+ }
337
+ }
338
+ };
339
+ _this.headerRef.current.childNodes.forEach(function (node) {
340
+ if (node instanceof HTMLElement) {
341
+ if (node.classList.value.includes('SGroupContainer')) {
342
+ node.childNodes.forEach(function (columnNode) {
343
+ if (columnNode instanceof HTMLElement) {
344
+ setToMap(columnNode);
345
+ }
346
+ });
347
+ } else {
348
+ setToMap(node);
349
+ }
350
+ }
351
+ });
352
+ return _this.columns.reduce(function (acc, column) {
353
+ if (column.fixed === 'left') {
354
+ var _this$headerNodesMap$, _this$headerNodesMap$2;
355
+ 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;
356
+ }
357
+ if (column.fixed === 'right') {
358
+ var _this$headerNodesMap$3, _this$headerNodesMap$4;
359
+ 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;
360
+ }
361
+ return acc;
362
+ }, [0, 0]);
363
+ });
364
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getFixedStyle", function (cell) {
365
+ var side = cell.fixed;
366
+ if (!side) return [undefined, undefined];
367
+ var names = cell.name.split('/');
368
+ var nameSideMap = {
369
+ left: names[0],
370
+ right: names[names.length - 1]
371
+ };
372
+ var name = nameSideMap[side];
373
+ var index = _this.columns.findIndex(function (column) {
374
+ return column.name === name;
375
+ });
376
+ if (index === -1) return [undefined, undefined];
377
+ var startIndexSideMap = {
378
+ left: 0,
379
+ right: index + 1
380
+ };
381
+ var endIndexSideMap = {
382
+ left: index,
383
+ right: _this.columns.length
384
+ };
385
+ var columnsFixed = _this.columns.slice(startIndexSideMap[side], endIndexSideMap[side]);
386
+ if (columnsFixed.length < 1) return [side, 0];
387
+ var sum = columnsFixed.reduce(function (acc, column) {
388
+ var _this$headerNodesMap$5;
389
+ return acc + ((_this$headerNodesMap$5 = _this.headerNodesMap.get(column.name)) === null || _this$headerNodesMap$5 === void 0 ? void 0 : _this$headerNodesMap$5.getBoundingClientRect().width);
390
+ }, 0);
391
+ return [side, "".concat(sum, "px")];
392
+ });
321
393
  if (props.children) {
322
394
  _this.columns = _this.calculateColumns();
323
395
  } else {
@@ -326,6 +398,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
326
398
  _this.treeColumns = cols[1];
327
399
  }
328
400
  _this.rows = _this.calculateRows();
401
+ _this.flatRows = _this.rows.flat();
329
402
  return _this;
330
403
  }
331
404
  (0, _createClass2["default"])(DataTableRoot, [{
@@ -338,16 +411,33 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
338
411
  }, {
339
412
  key: "componentDidMount",
340
413
  value: function componentDidMount() {
341
- this.forceUpdate();
414
+ var _this2 = this;
415
+ var _this$asProps2 = this.asProps,
416
+ headerProps = _this$asProps2.headerProps,
417
+ loading = _this$asProps2.loading;
418
+ if (headerProps !== null && headerProps !== void 0 && headerProps.sticky && !headerProps.h || loading || this.columns.some(function (c) {
419
+ return c.fixed;
420
+ })) {
421
+ requestAnimationFrame(function () {
422
+ _this2.forceUpdate();
423
+ });
424
+ }
342
425
  }
343
426
  }, {
344
427
  key: "componentDidUpdate",
345
428
  value: function componentDidUpdate(prevProps) {
346
- var _this$asProps2 = this.asProps,
347
- data = _this$asProps2.data,
348
- selectedRows = _this$asProps2.selectedRows;
349
- if (prevProps.data !== data) {
429
+ var _this$asProps3 = this.asProps,
430
+ data = _this$asProps3.data,
431
+ selectedRows = _this$asProps3.selectedRows,
432
+ columns = _this$asProps3.columns;
433
+ if (prevProps.columns !== columns) {
434
+ var cols = this.calculateColumnsFromConfig();
435
+ this.columns = cols[0];
436
+ this.treeColumns = cols[1];
437
+ }
438
+ if (prevProps.data !== data || prevProps.columns !== columns) {
350
439
  this.rows = this.calculateRows();
440
+ this.flatRows = this.rows.flat();
351
441
  this.forceUpdate();
352
442
  }
353
443
  if (prevProps.selectedRows !== selectedRows && selectedRows !== undefined) {
@@ -361,9 +451,9 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
361
451
  }, {
362
452
  key: "totalRows",
363
453
  get: function get() {
364
- var _this$asProps3 = this.asProps,
365
- totalRows = _this$asProps3.totalRows,
366
- expandedRows = _this$asProps3.expandedRows;
454
+ var _this$asProps4 = this.asProps,
455
+ totalRows = _this$asProps4.totalRows,
456
+ expandedRows = _this$asProps4.expandedRows;
367
457
  var flatRows = this.rows.flat();
368
458
  var expandedRowsCount = Array.from(expandedRows !== null && expandedRows !== void 0 ? expandedRows : []).reduce(function (acc, rowKey) {
369
459
  var dtRow = flatRows.find(function (el) {
@@ -396,7 +486,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
396
486
  get: function get() {
397
487
  var columns = this.columns;
398
488
  var gridTemplateColumns = columns.map(function (c) {
399
- return c.gridColumnWidth;
489
+ return c.gtcWidth;
400
490
  });
401
491
  var gridTemplateAreas = columns.map(function (c) {
402
492
  return c.name;
@@ -409,18 +499,18 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
409
499
  }, {
410
500
  key: "getHeadProps",
411
501
  value: function getHeadProps() {
412
- var _this2 = this;
413
- var _this$asProps4 = this.asProps,
414
- use = _this$asProps4.use,
415
- compact = _this$asProps4.compact,
416
- sort = _this$asProps4.sort,
417
- onSortChange = _this$asProps4.onSortChange,
418
- getI18nText = _this$asProps4.getI18nText,
419
- uid = _this$asProps4.uid,
420
- headerProps = _this$asProps4.headerProps,
421
- onSelectedRowsChange = _this$asProps4.onSelectedRowsChange,
422
- selectedRows = _this$asProps4.selectedRows,
423
- sideIndents = _this$asProps4.sideIndents;
502
+ var _this3 = this;
503
+ var _this$asProps5 = this.asProps,
504
+ use = _this$asProps5.use,
505
+ compact = _this$asProps5.compact,
506
+ sort = _this$asProps5.sort,
507
+ onSortChange = _this$asProps5.onSortChange,
508
+ getI18nText = _this$asProps5.getI18nText,
509
+ uid = _this$asProps5.uid,
510
+ headerProps = _this$asProps5.headerProps,
511
+ onSelectedRowsChange = _this$asProps5.onSelectedRowsChange,
512
+ selectedRows = _this$asProps5.selectedRows,
513
+ sideIndents = _this$asProps5.sideIndents;
424
514
  var _this$gridSettings = this.gridSettings,
425
515
  gridTemplateColumns = _this$gridSettings.gridTemplateColumns,
426
516
  gridTemplateAreas = _this$gridSettings.gridTemplateAreas;
@@ -442,37 +532,38 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
442
532
  totalRows: this.totalRows,
443
533
  selectedRows: selectedRows,
444
534
  onChangeSelectAll: function onChangeSelectAll(value, e) {
445
- var selectedRowsIndexes = value ? new Array(_this2.totalRows).fill(undefined).map(function (_, i) {
535
+ var selectedRowsIndexes = value ? new Array(_this3.totalRows).fill(undefined).map(function (_, i) {
446
536
  return i;
447
537
  }) : [];
448
538
  onSelectedRowsChange === null || onSelectedRowsChange === void 0 ? void 0 : onSelectedRowsChange(selectedRowsIndexes, e);
449
- }
539
+ },
540
+ getFixedStyle: this.getFixedStyle
450
541
  }, headerProps);
451
542
  }
452
543
  }, {
453
544
  key: "getBodyProps",
454
545
  value: function getBodyProps() {
455
- var _this$asProps5 = this.asProps,
456
- use = _this$asProps5.use,
457
- compact = _this$asProps5.compact,
458
- loading = _this$asProps5.loading,
459
- getI18nText = _this$asProps5.getI18nText,
460
- expandedRows = _this$asProps5.expandedRows,
461
- virtualScroll = _this$asProps5.virtualScroll,
462
- uid = _this$asProps5.uid,
463
- rowProps = _this$asProps5.rowProps,
464
- renderCell = _this$asProps5.renderCell,
465
- headerProps = _this$asProps5.headerProps,
466
- renderEmptyData = _this$asProps5.renderEmptyData,
467
- sideIndents = _this$asProps5.sideIndents,
468
- selectedRows = _this$asProps5.selectedRows;
546
+ var _this$asProps6 = this.asProps,
547
+ use = _this$asProps6.use,
548
+ compact = _this$asProps6.compact,
549
+ loading = _this$asProps6.loading,
550
+ getI18nText = _this$asProps6.getI18nText,
551
+ expandedRows = _this$asProps6.expandedRows,
552
+ virtualScroll = _this$asProps6.virtualScroll,
553
+ uid = _this$asProps6.uid,
554
+ rowProps = _this$asProps6.rowProps,
555
+ renderCell = _this$asProps6.renderCell,
556
+ headerProps = _this$asProps6.headerProps,
557
+ renderEmptyData = _this$asProps6.renderEmptyData,
558
+ sideIndents = _this$asProps6.sideIndents,
559
+ selectedRows = _this$asProps6.selectedRows;
469
560
  var _this$gridSettings2 = this.gridSettings,
470
561
  gridTemplateColumns = _this$gridSettings2.gridTemplateColumns,
471
562
  gridTemplateAreas = _this$gridSettings2.gridTemplateAreas;
472
563
  return {
473
564
  columns: this.columns,
474
565
  rows: this.rows,
475
- flatRows: this.rows.flat(),
566
+ flatRows: this.flatRows,
476
567
  use: use,
477
568
  compact: Boolean(compact),
478
569
  gridTemplateColumns: gridTemplateColumns,
@@ -498,7 +589,8 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
498
589
  renderEmptyData: renderEmptyData,
499
590
  sideIndents: sideIndents,
500
591
  selectedRows: selectedRows,
501
- onSelectRow: this.handleSelectRow
592
+ onSelectRow: this.handleSelectRow,
593
+ getFixedStyle: this.getFixedStyle
502
594
  };
503
595
  }
504
596
  }, {
@@ -520,33 +612,33 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
520
612
  var _ref = this.asProps,
521
613
  _ref2;
522
614
  var SDataTable = _baseComponents.Box;
523
- var _this$asProps6 = this.asProps,
524
- Children = _this$asProps6.Children,
525
- styles = _this$asProps6.styles,
526
- w = _this$asProps6.w,
527
- wMax = _this$asProps6.wMax,
528
- wMin = _this$asProps6.wMin,
529
- h = _this$asProps6.h,
530
- hMax = _this$asProps6.hMax,
531
- hMin = _this$asProps6.hMin,
532
- virtualScroll = _this$asProps6.virtualScroll,
533
- children = _this$asProps6.children,
534
- headerProps = _this$asProps6.headerProps,
535
- loading = _this$asProps6.loading,
536
- selectedRows = _this$asProps6.selectedRows;
537
- var _getScrollOffsetValue = (0, _utils.getScrollOffsetValue)(this.columns),
538
- _getScrollOffsetValue2 = (0, _slicedToArray2["default"])(_getScrollOffsetValue, 2),
539
- offsetLeftSum = _getScrollOffsetValue2[0],
540
- offsetRightSum = _getScrollOffsetValue2[1];
615
+ var _this$asProps7 = this.asProps,
616
+ Children = _this$asProps7.Children,
617
+ styles = _this$asProps7.styles,
618
+ w = _this$asProps7.w,
619
+ wMax = _this$asProps7.wMax,
620
+ wMin = _this$asProps7.wMin,
621
+ h = _this$asProps7.h,
622
+ hMax = _this$asProps7.hMax,
623
+ hMin = _this$asProps7.hMin,
624
+ virtualScroll = _this$asProps7.virtualScroll,
625
+ children = _this$asProps7.children,
626
+ headerProps = _this$asProps7.headerProps,
627
+ loading = _this$asProps7.loading,
628
+ selectedRows = _this$asProps7.selectedRows;
629
+ var _this$getScrollOffset = this.getScrollOffsetValue(),
630
+ _this$getScrollOffset2 = (0, _slicedToArray2["default"])(_this$getScrollOffset, 2),
631
+ offsetLeftSum = _this$getScrollOffset2[0],
632
+ offsetRightSum = _this$getScrollOffset2[1];
541
633
  var _this$gridSettings3 = this.gridSettings,
542
634
  gridTemplateColumns = _this$gridSettings3.gridTemplateColumns,
543
635
  gridTemplateAreas = _this$gridSettings3.gridTemplateAreas;
544
636
  var Head = (0, _findComponent["default"])(Children, ['DataTable.Head']);
545
637
  var headerPropsToCheck = headerProps !== null && headerProps !== void 0 ? headerProps : Head === null || Head === void 0 ? void 0 : Head.props;
546
- var headerHeight = this.getHeaderHeight();
638
+ var headerHeight = (headerProps === null || headerProps === void 0 ? void 0 : headerProps.h) || this.getHeaderHeight();
547
639
  var topOffset = headerPropsToCheck !== null && headerPropsToCheck !== void 0 && headerPropsToCheck.sticky || headerPropsToCheck !== null && headerPropsToCheck !== void 0 && headerPropsToCheck.withScrollBar ? headerHeight : undefined;
548
640
  var width = w !== null && w !== void 0 ? w : this.columns.some(function (c) {
549
- return c.gridColumnWidth === 'auto' || c.gridColumnWidth === '1fr';
641
+ return c.gtcWidth === 'auto' || c.gtcWidth === '1fr';
550
642
  }) ? '100%' : undefined;
551
643
  var gridTemplateRows = undefined;
552
644
  if (virtualScroll && typeof virtualScroll !== 'boolean' && 'rowHeight' in virtualScroll) {
@@ -576,7 +668,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
576
668
  "ref": this.scrollAreaRef,
577
669
  "container": this.tableContainerRef,
578
670
  "styles": scrollStyles,
579
- "onScroll": this.handleScroll,
671
+ "onScroll": virtualScroll ? this.handleScroll : undefined,
580
672
  "disableAutofocusToContent": true
581
673
  }), /*#__PURE__*/React.createElement(_baseComponents.ScrollArea.Container, {
582
674
  tabIndex: -1
@@ -586,7 +678,9 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
586
678
  // @ts-ignore
587
679
  ,
588
680
  loading: loading,
589
- headerHeight: "".concat(headerHeight, "px")
681
+ headerHeight: "".concat(headerHeight, "px"),
682
+ leftScrollPadding: "".concat(offsetLeftSum, "px"),
683
+ rightScrollPadding: "".concat(offsetRightSum, "px")
590
684
  }, /*#__PURE__*/React.createElement(SDataTable, _ref2.cn("SDataTable", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
591
685
  "ref": (0, _ref10.forkRef)(this.tableRef, this.tableContainerRef),
592
686
  "role": 'grid',
@@ -608,7 +702,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
608
702
  "use:h": undefined,
609
703
  "use:hMax": undefined,
610
704
  "use:hMin": undefined
611
- }, _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(_baseComponents.ScrollArea.Bar, {
705
+ }, _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(_baseComponents.ScrollArea.Bar, {
612
706
  orientation: "horizontal",
613
707
  top: topOffset - SCROLL_BAR_HEIGHT,
614
708
  zIndex: 10
@@ -626,7 +720,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
626
720
  }, {
627
721
  key: "calculateColumns",
628
722
  value: function calculateColumns() {
629
- var _this3 = this;
723
+ var _this4 = this;
630
724
  var _this$props = this.props,
631
725
  children = _this$props.children,
632
726
  data = _this$props.data,
@@ -641,20 +735,9 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
641
735
  if (selectedRows) {
642
736
  var column = {
643
737
  name: SELECT_ALL.toString(),
644
- // @ts-ignore
645
- ref: function ref(node) {
646
- if (node) {
647
- var calculatedWidth = node.getBoundingClientRect().width;
648
- var calculatedHeight = node.getBoundingClientRect().height;
649
- column.calculatedWidth = calculatedWidth;
650
- column.calculatedHeight = calculatedHeight;
651
- }
652
- this.ref.current = node;
653
- },
654
- gridColumnWidth: '40px',
655
- calculatedWidth: 0,
656
- calculatedHeight: 0,
657
- alignItems: 'flex-start'
738
+ gtcWidth: '40px',
739
+ alignItems: 'flex-start',
740
+ children: ''
658
741
  };
659
742
  columns.push(column);
660
743
  }
@@ -664,26 +747,15 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
664
747
  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;
665
748
  var column = {
666
749
  name: columnElement.props.name,
667
- // @ts-ignore
668
- ref: function ref(node) {
669
- if (node) {
670
- var calculatedWidth = node.getBoundingClientRect().width;
671
- var calculatedHeight = node.getBoundingClientRect().height;
672
- column.calculatedWidth = calculatedWidth;
673
- column.calculatedHeight = calculatedHeight;
674
- }
675
- this.ref.current = node;
676
- },
677
- gridColumnWidth: calculateGridTemplateColumn(columnElement),
750
+ gtcWidth: calculateGridTemplateColumn(columnElement),
678
751
  fixed: (_columnElement$props$ = columnElement.props.fixed) !== null && _columnElement$props$ !== void 0 ? _columnElement$props$ : parent === null || parent === void 0 ? void 0 : parent.props.fixed,
679
- calculatedWidth: 0,
680
- calculatedHeight: 0,
681
752
  borders: (_ref3 = (_columnElement$props$2 = columnElement.props.borders) !== null && _columnElement$props$2 !== void 0 ? _columnElement$props$2 : leftBordersFromParent) !== null && _ref3 !== void 0 ? _ref3 : rightBordersFromParent,
682
753
  parent: parent,
683
754
  flexWrap: columnElement.props.flexWrap,
684
755
  alignItems: columnElement.props.alignItems,
685
756
  alignContent: columnElement.props.alignContent,
686
- justifyContent: columnElement.props.justifyContent
757
+ justifyContent: columnElement.props.justifyContent,
758
+ children: ''
687
759
  };
688
760
  return column;
689
761
  };
@@ -697,7 +769,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
697
769
  if (! /*#__PURE__*/React.isValidElement(child)) return;
698
770
  if (childIsColumn(child)) {
699
771
  var col = makeColumn(child);
700
- col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(_this3.hasGroups ? '3' : '2', " / ").concat(gridColumnIndex + 1);
772
+ col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(_this4.hasGroups ? '3' : '2', " / ").concat(gridColumnIndex + 1);
701
773
  columnIndex++;
702
774
  gridColumnIndex++;
703
775
  columns.push(col);
@@ -724,7 +796,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
724
796
  columns.push(_col);
725
797
  }
726
798
  });
727
- _this3.gridAreaGroupMap.set(groupIndex, "1 / ".concat(initGridColumn, " / 2 / ").concat(gridColumnIndex));
799
+ _this4.gridAreaGroupMap.set(groupIndex, "1 / ".concat(initGridColumn, " / 2 / ").concat(gridColumnIndex));
728
800
  groupIndex++;
729
801
  }
730
802
  });
@@ -733,7 +805,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
733
805
  }, {
734
806
  key: "calculateColumnsFromConfig",
735
807
  value: function calculateColumnsFromConfig() {
736
- var _this4 = this;
808
+ var _this5 = this;
737
809
  var _this$props2 = this.props,
738
810
  columns = _this$props2.columns,
739
811
  data = _this$props2.data,
@@ -750,20 +822,9 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
750
822
  if (selectedRows) {
751
823
  var column = {
752
824
  name: SELECT_ALL.toString(),
753
- // @ts-ignore
754
- ref: function ref(node) {
755
- if (node) {
756
- var calculatedWidth = node.getBoundingClientRect().width;
757
- var calculatedHeight = node.getBoundingClientRect().height;
758
- column.calculatedWidth = calculatedWidth;
759
- column.calculatedHeight = calculatedHeight;
760
- }
761
- this.ref.current = node;
762
- },
763
- gridColumnWidth: '40px',
764
- calculatedWidth: 0,
765
- calculatedHeight: 0,
766
- alignItems: 'flex-start'
825
+ gtcWidth: '40px',
826
+ alignItems: 'flex-start',
827
+ children: ''
767
828
  };
768
829
  calculatedColumns.push(column);
769
830
  }
@@ -773,27 +834,8 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
773
834
  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;
774
835
  var column = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, columnElement), {}, {
775
836
  name: childIsColumn(columnElement) ? columnElement.name : '',
776
- // @ts-ignore
777
- ref: function ref(node) {
778
- var _columnElement$ref;
779
- if (node) {
780
- var calculatedWidth = node.getBoundingClientRect().width;
781
- var calculatedHeight = node.getBoundingClientRect().height;
782
- column.calculatedWidth = calculatedWidth;
783
- column.calculatedHeight = calculatedHeight;
784
- }
785
- if (childIsColumn(columnElement) && (_columnElement$ref = columnElement.ref) !== null && _columnElement$ref !== void 0 && _columnElement$ref.hasOwnProperty('current')) {
786
- // @ts-ignore
787
- columnElement.ref.current = node;
788
- }
789
- if (this !== null && this !== void 0 && this.ref) {
790
- this.ref.current = node;
791
- }
792
- },
793
- gridColumnWidth: childIsColumn(columnElement) ? calculateGridTemplateColumn(columnElement) : '',
837
+ gtcWidth: childIsColumn(columnElement) ? calculateGridTemplateColumn(columnElement) : '',
794
838
  fixed: (_columnElement$fixed = columnElement.fixed) !== null && _columnElement$fixed !== void 0 ? _columnElement$fixed : parent === null || parent === void 0 ? void 0 : parent.fixed,
795
- calculatedWidth: 0,
796
- calculatedHeight: 0,
797
839
  borders: (_ref4 = (_columnElement$border = columnElement.borders) !== null && _columnElement$border !== void 0 ? _columnElement$border : leftBordersFromParent) !== null && _ref4 !== void 0 ? _ref4 : rightBordersFromParent,
798
840
  parent: parent
799
841
  });
@@ -808,7 +850,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
808
850
  columns.forEach(function (child, i) {
809
851
  if (childIsColumn(child)) {
810
852
  var col = makeColumn(child);
811
- col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(_this4.hasGroups ? '3' : '2', " / ").concat(gridColumnIndex + 1);
853
+ col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(_this5.hasGroups ? '3' : '2', " / ").concat(gridColumnIndex + 1);
812
854
  columnIndex++;
813
855
  gridColumnIndex++;
814
856
  calculatedColumns.push(col);
@@ -839,7 +881,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
839
881
  (_Group$columns = Group.columns) === null || _Group$columns === void 0 ? void 0 : _Group$columns.push(col);
840
882
  });
841
883
  treeColumns.push(Group);
842
- _this4.gridAreaGroupMap.set(groupIndex, "1 / ".concat(initGridColumn, " / 2 / ").concat(gridColumnIndex));
884
+ _this5.gridAreaGroupMap.set(groupIndex, "1 / ".concat(initGridColumn, " / 2 / ").concat(gridColumnIndex));
843
885
  groupIndex++;
844
886
  }
845
887
  });
@@ -848,7 +890,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
848
890
  }, {
849
891
  key: "calculateRows",
850
892
  value: function calculateRows() {
851
- var _this5 = this;
893
+ var _this6 = this;
852
894
  var columns = this.columns;
853
895
  // @ts-ignore
854
896
  var _this$props3 = this.props,
@@ -868,7 +910,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
868
910
  var _ref6 = (0, _slicedToArray2["default"])(_ref5, 2),
869
911
  key = _ref6[0],
870
912
  value = _ref6[1];
871
- var columnsToRow = key.split(_this5.columnsSplitter);
913
+ var columnsToRow = key.split(_this6.columnsSplitter);
872
914
  if (columnsToRow.length === 1) {
873
915
  acc[key] = value !== null && value !== void 0 ? value : '';
874
916
  columns["delete"](key);
@@ -978,4 +1020,6 @@ var DataTable = (0, _core.createComponent)(DataTableRoot, {
978
1020
  Body: _Body.Body
979
1021
  });
980
1022
  exports.DataTable = DataTable;
1023
+ var DataTableInternal = DataTable;
1024
+ exports.DataTableInternal = DataTableInternal;
981
1025
  //# sourceMappingURL=DataTable.js.map