@semcore/data-table 16.0.7 → 16.1.0-prerelease.2

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 (70) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/lib/cjs/components/Body/Body.js +143 -103
  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 +69 -46
  6. package/lib/cjs/components/Body/Cell.js.map +1 -1
  7. package/lib/cjs/components/Body/Cell.types.js.map +1 -1
  8. package/lib/cjs/components/Body/Row.js +46 -43
  9. package/lib/cjs/components/Body/Row.js.map +1 -1
  10. package/lib/cjs/components/Body/Row.types.js.map +1 -1
  11. package/lib/cjs/components/Body/style.shadow.css +68 -13
  12. package/lib/cjs/components/DataTable/DataTable.js +188 -109
  13. package/lib/cjs/components/DataTable/DataTable.js.map +1 -1
  14. package/lib/cjs/components/DataTable/DataTable.types.js.map +1 -1
  15. package/lib/cjs/components/Head/Column.js +39 -25
  16. package/lib/cjs/components/Head/Column.js.map +1 -1
  17. package/lib/cjs/components/Head/Column.types.js.map +1 -1
  18. package/lib/cjs/components/Head/Group.js +43 -31
  19. package/lib/cjs/components/Head/Group.js.map +1 -1
  20. package/lib/cjs/components/Head/Group.type.js.map +1 -1
  21. package/lib/cjs/components/Head/Head.js +41 -30
  22. package/lib/cjs/components/Head/Head.js.map +1 -1
  23. package/lib/cjs/components/Head/Head.types.js.map +1 -1
  24. package/lib/cjs/components/Head/style.shadow.css +64 -3
  25. package/lib/cjs/style/scroll-shadows.shadow.css +7 -12
  26. package/lib/es6/components/Body/Body.js +144 -104
  27. package/lib/es6/components/Body/Body.js.map +1 -1
  28. package/lib/es6/components/Body/Body.types.js.map +1 -1
  29. package/lib/es6/components/Body/Cell.js +69 -46
  30. package/lib/es6/components/Body/Cell.js.map +1 -1
  31. package/lib/es6/components/Body/Cell.types.js.map +1 -1
  32. package/lib/es6/components/Body/Row.js +47 -44
  33. package/lib/es6/components/Body/Row.js.map +1 -1
  34. package/lib/es6/components/Body/Row.types.js.map +1 -1
  35. package/lib/es6/components/Body/style.shadow.css +68 -13
  36. package/lib/es6/components/DataTable/DataTable.js +187 -108
  37. package/lib/es6/components/DataTable/DataTable.js.map +1 -1
  38. package/lib/es6/components/DataTable/DataTable.types.js.map +1 -1
  39. package/lib/es6/components/Head/Column.js +39 -25
  40. package/lib/es6/components/Head/Column.js.map +1 -1
  41. package/lib/es6/components/Head/Column.types.js.map +1 -1
  42. package/lib/es6/components/Head/Group.js +43 -31
  43. package/lib/es6/components/Head/Group.js.map +1 -1
  44. package/lib/es6/components/Head/Group.type.js.map +1 -1
  45. package/lib/es6/components/Head/Head.js +41 -30
  46. package/lib/es6/components/Head/Head.js.map +1 -1
  47. package/lib/es6/components/Head/Head.types.js.map +1 -1
  48. package/lib/es6/components/Head/style.shadow.css +64 -3
  49. package/lib/es6/style/scroll-shadows.shadow.css +7 -12
  50. package/lib/esm/components/Body/Body.mjs +97 -64
  51. package/lib/esm/components/Body/Cell.mjs +67 -47
  52. package/lib/esm/components/Body/Row.mjs +48 -45
  53. package/lib/esm/components/Body/style.shadow.css +68 -13
  54. package/lib/esm/components/DataTable/DataTable.mjs +133 -66
  55. package/lib/esm/components/Head/Column.mjs +40 -26
  56. package/lib/esm/components/Head/Group.mjs +43 -32
  57. package/lib/esm/components/Head/Head.mjs +39 -31
  58. package/lib/esm/components/Head/style.shadow.css +64 -3
  59. package/lib/esm/style/scroll-shadows.shadow.css +7 -12
  60. package/lib/types/components/Body/Body.d.ts +6 -7
  61. package/lib/types/components/Body/Body.types.d.ts +27 -19
  62. package/lib/types/components/Body/Cell.types.d.ts +12 -5
  63. package/lib/types/components/Body/Row.types.d.ts +20 -18
  64. package/lib/types/components/DataTable/DataTable.d.ts +1 -0
  65. package/lib/types/components/DataTable/DataTable.types.d.ts +29 -14
  66. package/lib/types/components/Head/Column.d.ts +3 -3
  67. package/lib/types/components/Head/Column.types.d.ts +11 -4
  68. package/lib/types/components/Head/Group.type.d.ts +2 -0
  69. package/lib/types/components/Head/Head.types.d.ts +12 -8
  70. package/package.json +22 -22
@@ -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.DataTableInternal = exports.DataTable = exports.ACCORDION = void 0;
8
+ exports.UNIQ_ROW_KEY = exports.SELECT_ALL = exports.ROW_INDEX = exports.ROW_GROUP = exports.IS_EMPTY_DATA_ROW = 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"));
@@ -33,39 +33,42 @@ var _MergedCells = require("../Body/MergedCells");
33
33
  var _Head = require("../Head/Head");
34
34
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, (0, _isNativeReflectConstruct2["default"])() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
35
35
  /*!__reshadow-styles__:"./dataTable.shadow.css"*/
36
- var style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SDataTable_f7mr6_gg_{display:grid;align-items:start;min-width:-moz-fit-content;min-width:fit-content}.___SDataTable_f7mr6_gg_.__gridTemplateColumns_f7mr6_gg_{grid-template-columns:var(--gridTemplateColumns_f7mr6)}.___SDataTable_f7mr6_gg_.__gridTemplateAreas_f7mr6_gg_{grid-template-areas:var(--gridTemplateAreas_f7mr6)}.___SDataTable_f7mr6_gg_.__gridTemplateRows_f7mr6_gg_{grid-template-rows:var(--gridTemplateRows_f7mr6)}", /*__inner_css_end__*/"f7mr6_gg_"),
36
+ var style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SDataTable_sw87i_gg_{display:grid;align-items:start;min-width:-moz-fit-content;min-width:fit-content}.___SDataTable_sw87i_gg_.__gridTemplateColumns_sw87i_gg_{grid-template-columns:var(--gridTemplateColumns_sw87i)}.___SDataTable_sw87i_gg_.__gridTemplateAreas_sw87i_gg_{grid-template-areas:var(--gridTemplateAreas_sw87i)}.___SDataTable_sw87i_gg_.__gridTemplateRows_sw87i_gg_{grid-template-rows:var(--gridTemplateRows_sw87i)}", /*__inner_css_end__*/"sw87i_gg_"),
37
37
  /*__reshadow_css_end__*/
38
38
  {
39
- "__SDataTable": "___SDataTable_f7mr6_gg_",
40
- "_gridTemplateColumns": "__gridTemplateColumns_f7mr6_gg_",
41
- "--gridTemplateColumns": "--gridTemplateColumns_f7mr6",
42
- "_gridTemplateAreas": "__gridTemplateAreas_f7mr6_gg_",
43
- "--gridTemplateAreas": "--gridTemplateAreas_f7mr6",
44
- "_gridTemplateRows": "__gridTemplateRows_f7mr6_gg_",
45
- "--gridTemplateRows": "--gridTemplateRows_f7mr6"
39
+ "__SDataTable": "___SDataTable_sw87i_gg_",
40
+ "_gridTemplateColumns": "__gridTemplateColumns_sw87i_gg_",
41
+ "--gridTemplateColumns": "--gridTemplateColumns_sw87i",
42
+ "_gridTemplateAreas": "__gridTemplateAreas_sw87i_gg_",
43
+ "--gridTemplateAreas": "--gridTemplateAreas_sw87i",
44
+ "_gridTemplateRows": "__gridTemplateRows_sw87i_gg_",
45
+ "--gridTemplateRows": "--gridTemplateRows_sw87i"
46
46
  });
47
47
  /*!__reshadow-styles__:"../../style/scroll-shadows.shadow.css"*/
48
- var scrollStyles = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SScrollArea_1ks92_gg_{width:-moz-fit-content;width:fit-content}.___SScrollArea_1ks92_gg_ .___SContainer_1ks92_gg_{overflow:visible;overflow:initial}.___SScrollArea_1ks92_gg_ .___SContainer_1ks92_gg_._scrollDirection_both_1ks92_gg_{overflow:auto}.___SScrollArea_1ks92_gg_ .___SContainer_1ks92_gg_._scrollDirection_both_1ks92_gg_.__loading_1ks92_gg_,.___SScrollArea_1ks92_gg_ .___SContainer_1ks92_gg_._scrollDirection_horizontal_1ks92_gg_.__loading_1ks92_gg_,.___SScrollArea_1ks92_gg_ .___SContainer_1ks92_gg_._scrollDirection_vertical_1ks92_gg_.__loading_1ks92_gg_{overflow:hidden}.___SScrollArea_1ks92_gg_ .___SContainer_1ks92_gg_._scrollDirection_horizontal_1ks92_gg_{overflow-x:auto;overflow-y:initial}.___SScrollArea_1ks92_gg_ .___SContainer_1ks92_gg_._scrollDirection_vertical_1ks92_gg_{overflow-x:initial;overflow-y:auto}.___SScrollArea_1ks92_gg_ .___SContainer_1ks92_gg_.__headerHeight_1ks92_gg_{scroll-padding-top:var(--headerHeight_1ks92)}.___SScrollArea_1ks92_gg_ .___SContainer_1ks92_gg_.__leftScrollPadding_1ks92_gg_{scroll-padding-left:var(--leftScrollPadding_1ks92)}.___SScrollArea_1ks92_gg_ .___SContainer_1ks92_gg_.__rightScrollPadding_1ks92_gg_{scroll-padding-right:var(--rightScrollPadding_1ks92)}.___SScrollArea_1ks92_gg_ .___SShadowVertical_1ks92_gg_:before{display:none}.___SScrollArea_1ks92_gg_ .___SShadowHorizontal_1ks92_gg_:after,.___SScrollArea_1ks92_gg_ .___SShadowHorizontal_1ks92_gg_:before,.___SScrollArea_1ks92_gg_ .___SShadowVertical_1ks92_gg_:after{z-index:2}", /*__inner_css_end__*/"1ks92_gg_"),
48
+ var scrollStyles = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SScrollArea_lhh9n_gg_{width:-moz-fit-content;width:fit-content}.___SScrollArea_lhh9n_gg_ .___SContainer_lhh9n_gg_{overflow:visible;overflow:initial}.___SScrollArea_lhh9n_gg_ .___SContainer_lhh9n_gg_._scrollDirection_both_lhh9n_gg_{overflow:auto}.___SScrollArea_lhh9n_gg_ .___SContainer_lhh9n_gg_._scrollDirection_both_lhh9n_gg_.__loading_lhh9n_gg_,.___SScrollArea_lhh9n_gg_ .___SContainer_lhh9n_gg_._scrollDirection_horizontal_lhh9n_gg_.__loading_lhh9n_gg_,.___SScrollArea_lhh9n_gg_ .___SContainer_lhh9n_gg_._scrollDirection_vertical_lhh9n_gg_.__loading_lhh9n_gg_{overflow:hidden}.___SScrollArea_lhh9n_gg_ .___SContainer_lhh9n_gg_._scrollDirection_horizontal_lhh9n_gg_{overflow-x:auto;overflow-y:initial}.___SScrollArea_lhh9n_gg_ .___SContainer_lhh9n_gg_._scrollDirection_vertical_lhh9n_gg_{overflow-x:initial;overflow-y:auto}.___SScrollArea_lhh9n_gg_ .___SContainer_lhh9n_gg_.__headerHeight_lhh9n_gg_{scroll-padding-top:var(--headerHeight_lhh9n)}.___SScrollArea_lhh9n_gg_ .___SContainer_lhh9n_gg_.__leftScrollPadding_lhh9n_gg_{scroll-padding-left:var(--leftScrollPadding_lhh9n)}.___SScrollArea_lhh9n_gg_ .___SContainer_lhh9n_gg_.__rightScrollPadding_lhh9n_gg_{scroll-padding-right:var(--rightScrollPadding_lhh9n)}.___SScrollArea_lhh9n_gg_ .___SShadowHorizontal_lhh9n_gg_::before,.___SScrollArea_lhh9n_gg_ .___SShadowHorizontal_lhh9n_gg_:after,.___SScrollArea_lhh9n_gg_ .___SShadowVertical_lhh9n_gg_::after{z-index:20}.___SScrollArea_lhh9n_gg_ .___SShadowHorizontal_lhh9n_gg_.__leftOffset_lhh9n_gg_::before,.___SScrollArea_lhh9n_gg_ .___SShadowHorizontal_lhh9n_gg_.__rightOffset_lhh9n_gg_::after,.___SScrollArea_lhh9n_gg_ .___SShadowVertical_lhh9n_gg_::before{display:none}", /*__inner_css_end__*/"lhh9n_gg_"),
49
49
  /*__reshadow_css_end__*/
50
50
  {
51
- "__SScrollArea": "___SScrollArea_1ks92_gg_",
52
- "__SContainer": "___SContainer_1ks92_gg_",
53
- "_scrollDirection_both": "_scrollDirection_both_1ks92_gg_",
54
- "_loading": "__loading_1ks92_gg_",
55
- "_scrollDirection_horizontal": "_scrollDirection_horizontal_1ks92_gg_",
56
- "_scrollDirection_vertical": "_scrollDirection_vertical_1ks92_gg_",
57
- "_headerHeight": "__headerHeight_1ks92_gg_",
58
- "--headerHeight": "--headerHeight_1ks92",
59
- "_leftScrollPadding": "__leftScrollPadding_1ks92_gg_",
60
- "--leftScrollPadding": "--leftScrollPadding_1ks92",
61
- "_rightScrollPadding": "__rightScrollPadding_1ks92_gg_",
62
- "--rightScrollPadding": "--rightScrollPadding_1ks92",
63
- "__SShadowVertical": "___SShadowVertical_1ks92_gg_",
64
- "__SShadowHorizontal": "___SShadowHorizontal_1ks92_gg_"
51
+ "__SScrollArea": "___SScrollArea_lhh9n_gg_",
52
+ "__SContainer": "___SContainer_lhh9n_gg_",
53
+ "_scrollDirection_both": "_scrollDirection_both_lhh9n_gg_",
54
+ "_loading": "__loading_lhh9n_gg_",
55
+ "_scrollDirection_horizontal": "_scrollDirection_horizontal_lhh9n_gg_",
56
+ "_scrollDirection_vertical": "_scrollDirection_vertical_lhh9n_gg_",
57
+ "_headerHeight": "__headerHeight_lhh9n_gg_",
58
+ "--headerHeight": "--headerHeight_lhh9n",
59
+ "_leftScrollPadding": "__leftScrollPadding_lhh9n_gg_",
60
+ "--leftScrollPadding": "--leftScrollPadding_lhh9n",
61
+ "_rightScrollPadding": "__rightScrollPadding_lhh9n_gg_",
62
+ "--rightScrollPadding": "--rightScrollPadding_lhh9n",
63
+ "__SShadowVertical": "___SShadowVertical_lhh9n_gg_",
64
+ "__SShadowHorizontal": "___SShadowHorizontal_lhh9n_gg_",
65
+ "_leftOffset": "__leftOffset_lhh9n_gg_",
66
+ "_rightOffset": "__rightOffset_lhh9n_gg_"
65
67
  });
66
68
  var ACCORDION = exports.ACCORDION = Symbol('accordion');
67
69
  var ROW_GROUP = exports.ROW_GROUP = Symbol('ROW_GROUP');
68
70
  var UNIQ_ROW_KEY = exports.UNIQ_ROW_KEY = Symbol('UNIQ_ROW_KEY');
71
+ var IS_EMPTY_DATA_ROW = exports.IS_EMPTY_DATA_ROW = Symbol('IS_EMPTY_DATA_ROW');
69
72
  var SELECT_ALL = exports.SELECT_ALL = Symbol('SELECT_ALL');
70
73
  var ROW_INDEX = exports.ROW_INDEX = Symbol('ROW_INDEX');
71
74
  var SCROLL_BAR_HEIGHT = 12;
@@ -77,6 +80,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
77
80
  (0, _defineProperty2["default"])(_this, "columns", []);
78
81
  (0, _defineProperty2["default"])(_this, "treeColumns", []);
79
82
  (0, _defineProperty2["default"])(_this, "hasGroups", false);
83
+ (0, _defineProperty2["default"])(_this, "hasFixedColumn", false);
80
84
  (0, _defineProperty2["default"])(_this, "focusedCell", [-1, -1]);
81
85
  (0, _defineProperty2["default"])(_this, "scrollAreaRef", /*#__PURE__*/React.createRef());
82
86
  (0, _defineProperty2["default"])(_this, "tableContainerRef", /*#__PURE__*/React.createRef());
@@ -92,11 +96,11 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
92
96
  (0, _defineProperty2["default"])(_this, "state", {
93
97
  scrollTop: 0,
94
98
  scrollDirection: 'down',
95
- selectAllMessage: ''
99
+ selectAllMessage: '',
100
+ shadowVertical: ''
96
101
  });
97
102
  (0, _defineProperty2["default"])(_this, "handleCellClick", function (e, opt) {
98
103
  if (_core.lastInteraction.isMouse()) {
99
- console.log('click on cell in data table handler', opt);
100
104
  _this.initFocusableCell([_this.hasFocusableInHeader() ? opt.rowIndex + 1 : opt.rowIndex, opt.colIndex]);
101
105
  }
102
106
  });
@@ -142,15 +146,23 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
142
146
  });
143
147
  });
144
148
  (0, _defineProperty2["default"])(_this, "onExpandRow", function (expandedRow) {
145
- var expandedRows = _this.asProps.expandedRows;
149
+ var _this$asProps2 = _this.asProps,
150
+ expandedRows = _this$asProps2.expandedRows,
151
+ onAccordionToggle = _this$asProps2.onAccordionToggle,
152
+ accordionMode = _this$asProps2.accordionMode;
146
153
  if (expandedRows.has(expandedRow[UNIQ_ROW_KEY])) {
147
154
  expandedRows["delete"](expandedRow[UNIQ_ROW_KEY]);
148
- setTimeout(function () {
149
- _this.handlers.expandedRows(new Set((0, _toConsumableArray2["default"])(expandedRows)));
150
- }, 300);
155
+ _this.handlers.expandedRows(new Set((0, _toConsumableArray2["default"])(expandedRows)));
156
+ onAccordionToggle === null || onAccordionToggle === void 0 || onAccordionToggle('close', expandedRow[UNIQ_ROW_KEY], expandedRow[ROW_INDEX]);
151
157
  } else {
152
158
  expandedRows.add(expandedRow[UNIQ_ROW_KEY]);
153
159
  _this.handlers.expandedRows(new Set((0, _toConsumableArray2["default"])(expandedRows)));
160
+ onAccordionToggle === null || onAccordionToggle === void 0 || onAccordionToggle('open', expandedRow[UNIQ_ROW_KEY], expandedRow[ROW_INDEX]);
161
+ if (accordionMode === 'toggle') {
162
+ var rowIndex = expandedRow[ROW_INDEX];
163
+ var colIndex = _this.focusedCell[1];
164
+ _this.initFocusableCell([_this.hasFocusableInHeader() ? rowIndex + 1 : rowIndex, colIndex]);
165
+ }
154
166
  }
155
167
  });
156
168
  (0, _defineProperty2["default"])(_this, "changeFocusCell", function (rowIndex, colIndex, direction) {
@@ -258,13 +270,44 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
258
270
  }
259
271
  });
260
272
  (0, _defineProperty2["default"])(_this, "handleScroll", (0, _rafTrottle["default"])(function (e) {
261
- var scrollTop = e.target.scrollTop;
262
- var scrollDirection = scrollTop > _this.state.scrollTop ? 'down' : 'up';
273
+ if (_this.asProps.virtualScroll) {
274
+ var scrollTop = e.target.scrollTop;
275
+ var scrollDirection = scrollTop > _this.state.scrollTop ? 'down' : 'up';
276
+ _this.setState({
277
+ scrollTop: scrollTop,
278
+ scrollDirection: scrollDirection
279
+ });
280
+ }
281
+ if (_this.hasFixedColumn) {
282
+ _this.calculateVerticalShadow();
283
+ }
284
+ }));
285
+ (0, _defineProperty2["default"])(_this, "calculateVerticalShadow", function () {
286
+ if (!_this.tableContainerRef.current) return;
287
+ var _this$tableContainerR = _this.tableContainerRef.current,
288
+ scrollWidth = _this$tableContainerR.scrollWidth,
289
+ clientWidth = _this$tableContainerR.clientWidth,
290
+ scrollLeft = _this$tableContainerR.scrollLeft;
291
+ var maxScrollRight = scrollWidth - clientWidth;
292
+ var roundedScroll = Math.round(scrollLeft);
293
+ var roundedMaxScroll = Math.round(maxScrollRight);
294
+ var shadow = '';
295
+ // not scroll
296
+ if (roundedMaxScroll <= 0) {
297
+ // start scroll
298
+ } else if (roundedScroll <= 0) {
299
+ shadow = 'end';
300
+ // end scroll
301
+ } else if (roundedScroll >= roundedMaxScroll) {
302
+ shadow = 'start';
303
+ // median scroll
304
+ } else if (roundedScroll > 0) {
305
+ shadow = 'median';
306
+ }
263
307
  _this.setState({
264
- scrollTop: scrollTop,
265
- scrollDirection: scrollDirection
308
+ shadowVertical: shadow
266
309
  });
267
- }));
310
+ });
268
311
  (0, _defineProperty2["default"])(_this, "handleFocus", function (e) {
269
312
  if (_this.asProps.loading) {
270
313
  var _this$spinnerRef$curr;
@@ -409,25 +452,23 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
409
452
  key: "componentDidMount",
410
453
  value: function componentDidMount() {
411
454
  var _this2 = this;
412
- var _this$asProps2 = this.asProps,
413
- headerProps = _this$asProps2.headerProps,
414
- loading = _this$asProps2.loading,
415
- selectedRows = _this$asProps2.selectedRows;
416
- if (headerProps !== null && headerProps !== void 0 && headerProps.sticky && !headerProps.h || loading || this.columns.some(function (c) {
417
- return c.fixed;
418
- })) {
455
+ var _this$asProps3 = this.asProps,
456
+ headerProps = _this$asProps3.headerProps,
457
+ loading = _this$asProps3.loading;
458
+ if (headerProps !== null && headerProps !== void 0 && headerProps.sticky && !headerProps.h || loading || this.hasFixedColumn) {
419
459
  requestAnimationFrame(function () {
420
460
  _this2.forceUpdate();
461
+ _this2.calculateVerticalShadow();
421
462
  });
422
463
  }
423
464
  }
424
465
  }, {
425
466
  key: "componentDidUpdate",
426
467
  value: function componentDidUpdate(prevProps) {
427
- var _this$asProps3 = this.asProps,
428
- data = _this$asProps3.data,
429
- selectedRows = _this$asProps3.selectedRows,
430
- columns = _this$asProps3.columns;
468
+ var _this$asProps4 = this.asProps,
469
+ data = _this$asProps4.data,
470
+ selectedRows = _this$asProps4.selectedRows,
471
+ columns = _this$asProps4.columns;
431
472
  if (prevProps.columns !== columns) {
432
473
  var cols = this.calculateColumnsFromConfig();
433
474
  this.columns = cols[0];
@@ -437,6 +478,9 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
437
478
  this.rows = this.calculateRows();
438
479
  this.flatRows = this.rows.flat();
439
480
  this.forceUpdate();
481
+ if (this.hasFixedColumn) {
482
+ this.calculateVerticalShadow();
483
+ }
440
484
  }
441
485
  if (prevProps.selectedRows !== selectedRows && selectedRows !== undefined) {
442
486
  if (prevProps.selectedRows.length < data.length && selectedRows.length === data.length) {
@@ -449,9 +493,9 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
449
493
  }, {
450
494
  key: "totalRows",
451
495
  get: function get() {
452
- var _this$asProps4 = this.asProps,
453
- totalRows = _this$asProps4.totalRows,
454
- expandedRows = _this$asProps4.expandedRows;
496
+ var _this$asProps5 = this.asProps,
497
+ totalRows = _this$asProps5.totalRows,
498
+ expandedRows = _this$asProps5.expandedRows;
455
499
  var flatRows = this.rows.flat();
456
500
  var expandedRowsCount = Array.from(expandedRows !== null && expandedRows !== void 0 ? expandedRows : []).reduce(function (acc, rowKey) {
457
501
  var dtRow = flatRows.find(function (el) {
@@ -498,21 +542,22 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
498
542
  key: "getHeadProps",
499
543
  value: function getHeadProps() {
500
544
  var _this3 = this;
501
- var _this$asProps5 = this.asProps,
502
- use = _this$asProps5.use,
503
- compact = _this$asProps5.compact,
504
- sort = _this$asProps5.sort,
505
- onSortChange = _this$asProps5.onSortChange,
506
- getI18nText = _this$asProps5.getI18nText,
507
- uid = _this$asProps5.uid,
508
- headerProps = _this$asProps5.headerProps,
509
- onSelectedRowsChange = _this$asProps5.onSelectedRowsChange,
510
- selectedRows = _this$asProps5.selectedRows,
511
- sideIndents = _this$asProps5.sideIndents;
545
+ var _this$asProps6 = this.asProps,
546
+ use = _this$asProps6.use,
547
+ compact = _this$asProps6.compact,
548
+ sort = _this$asProps6.sort,
549
+ onSortChange = _this$asProps6.onSortChange,
550
+ getI18nText = _this$asProps6.getI18nText,
551
+ uid = _this$asProps6.uid,
552
+ headerProps = _this$asProps6.headerProps,
553
+ onSelectedRowsChange = _this$asProps6.onSelectedRowsChange,
554
+ selectedRows = _this$asProps6.selectedRows,
555
+ sideIndents = _this$asProps6.sideIndents;
512
556
  var _this$gridSettings = this.gridSettings,
513
557
  gridTemplateColumns = _this$gridSettings.gridTemplateColumns,
514
558
  gridTemplateAreas = _this$gridSettings.gridTemplateAreas;
515
- return (0, _objectSpread2["default"])({
559
+ var shadowVertical = this.state.shadowVertical;
560
+ return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, headerProps), {}, {
516
561
  columns: this.columns,
517
562
  treeColumns: this.treeColumns,
518
563
  use: use,
@@ -522,7 +567,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
522
567
  onSortChange: onSortChange,
523
568
  getI18nText: getI18nText,
524
569
  uid: uid,
525
- ref: this.headerRef,
570
+ ref: headerProps !== null && headerProps !== void 0 && headerProps.ref ? (0, _ref0.forkRef)(this.headerRef, headerProps.ref) : this.headerRef,
526
571
  gridAreaGroupMap: this.gridAreaGroupMap,
527
572
  gridTemplateColumns: gridTemplateColumns,
528
573
  gridTemplateAreas: gridTemplateAreas,
@@ -543,32 +588,38 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
543
588
  onSelectedRowsChange === null || onSelectedRowsChange === void 0 || onSelectedRowsChange(Array.from(selectedRowsSet), e);
544
589
  },
545
590
  getFixedStyle: this.getFixedStyle,
546
- onCellClick: this.handleCellClick
547
- }, headerProps);
591
+ onCellClick: this.handleCellClick,
592
+ shadowVertical: shadowVertical
593
+ });
548
594
  }
549
595
  }, {
550
596
  key: "getBodyProps",
551
597
  value: function getBodyProps() {
552
- var _this$asProps6 = this.asProps,
553
- use = _this$asProps6.use,
554
- compact = _this$asProps6.compact,
555
- loading = _this$asProps6.loading,
556
- getI18nText = _this$asProps6.getI18nText,
557
- expandedRows = _this$asProps6.expandedRows,
558
- virtualScroll = _this$asProps6.virtualScroll,
559
- uid = _this$asProps6.uid,
560
- rowProps = _this$asProps6.rowProps,
561
- renderCell = _this$asProps6.renderCell,
562
- headerProps = _this$asProps6.headerProps,
563
- renderEmptyData = _this$asProps6.renderEmptyData,
564
- sideIndents = _this$asProps6.sideIndents,
565
- selectedRows = _this$asProps6.selectedRows,
566
- accordionDuration = _this$asProps6.accordionDuration;
598
+ var _this$asProps7 = this.asProps,
599
+ use = _this$asProps7.use,
600
+ compact = _this$asProps7.compact,
601
+ loading = _this$asProps7.loading,
602
+ getI18nText = _this$asProps7.getI18nText,
603
+ expandedRows = _this$asProps7.expandedRows,
604
+ virtualScroll = _this$asProps7.virtualScroll,
605
+ uid = _this$asProps7.uid,
606
+ rowProps = _this$asProps7.rowProps,
607
+ renderCell = _this$asProps7.renderCell,
608
+ headerProps = _this$asProps7.headerProps,
609
+ renderEmptyData = _this$asProps7.renderEmptyData,
610
+ sideIndents = _this$asProps7.sideIndents,
611
+ selectedRows = _this$asProps7.selectedRows,
612
+ accordionDuration = _this$asProps7.accordionDuration,
613
+ accordionMode = _this$asProps7.accordionMode,
614
+ rawData = _this$asProps7.data,
615
+ renderCellOverlay = _this$asProps7.renderCellOverlay;
567
616
  var _this$gridSettings2 = this.gridSettings,
568
617
  gridTemplateColumns = _this$gridSettings2.gridTemplateColumns,
569
618
  gridTemplateAreas = _this$gridSettings2.gridTemplateAreas;
619
+ var shadowVertical = this.state.shadowVertical;
570
620
  return {
571
621
  accordionDuration: accordionDuration,
622
+ accordionMode: accordionMode,
572
623
  columns: this.columns,
573
624
  rows: this.rows,
574
625
  flatRows: this.flatRows,
@@ -592,14 +643,17 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
592
643
  virtualScroll: virtualScroll,
593
644
  hasGroups: this.hasGroups,
594
645
  uid: uid,
595
- rowProps: rowProps,
596
- renderCell: renderCell,
646
+ rowProps: this.rows.length > 0 ? rowProps : undefined,
647
+ renderCell: this.rows.length > 0 ? renderCell : undefined,
597
648
  renderEmptyData: renderEmptyData,
598
649
  sideIndents: sideIndents,
599
650
  selectedRows: selectedRows,
600
651
  onSelectRow: this.handleSelectRow,
601
652
  getFixedStyle: this.getFixedStyle,
602
- onCellClick: this.handleCellClick
653
+ onCellClick: this.handleCellClick,
654
+ rawData: rawData,
655
+ shadowVertical: shadowVertical,
656
+ renderCellOverlay: renderCellOverlay
603
657
  };
604
658
  }
605
659
  }, {
@@ -634,20 +688,20 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
634
688
  var _ref = this.asProps,
635
689
  _ref2;
636
690
  var SDataTable = _baseComponents.Box;
637
- var _this$asProps7 = this.asProps,
638
- Children = _this$asProps7.Children,
639
- styles = _this$asProps7.styles,
640
- w = _this$asProps7.w,
641
- wMax = _this$asProps7.wMax,
642
- wMin = _this$asProps7.wMin,
643
- h = _this$asProps7.h,
644
- hMax = _this$asProps7.hMax,
645
- hMin = _this$asProps7.hMin,
646
- virtualScroll = _this$asProps7.virtualScroll,
647
- children = _this$asProps7.children,
648
- headerProps = _this$asProps7.headerProps,
649
- loading = _this$asProps7.loading,
650
- selectedRows = _this$asProps7.selectedRows;
691
+ var _this$asProps8 = this.asProps,
692
+ Children = _this$asProps8.Children,
693
+ styles = _this$asProps8.styles,
694
+ w = _this$asProps8.w,
695
+ wMax = _this$asProps8.wMax,
696
+ wMin = _this$asProps8.wMin,
697
+ h = _this$asProps8.h,
698
+ hMax = _this$asProps8.hMax,
699
+ hMin = _this$asProps8.hMin,
700
+ virtualScroll = _this$asProps8.virtualScroll,
701
+ children = _this$asProps8.children,
702
+ headerProps = _this$asProps8.headerProps,
703
+ loading = _this$asProps8.loading,
704
+ selectedRows = _this$asProps8.selectedRows;
651
705
  var _this$getScrollOffset = this.getScrollOffsetValue(),
652
706
  _this$getScrollOffset2 = (0, _slicedToArray2["default"])(_this$getScrollOffset, 2),
653
707
  offsetLeftSum = _this$getScrollOffset2[0],
@@ -690,7 +744,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
690
744
  "ref": this.scrollAreaRef,
691
745
  "container": this.tableContainerRef,
692
746
  "styles": scrollStyles,
693
- "onScroll": virtualScroll ? this.handleScroll : undefined,
747
+ "onScroll": this.handleScroll,
694
748
  "disableAutofocusToContent": true
695
749
  }), /*#__PURE__*/React.createElement(_baseComponents.ScrollArea.Container, {
696
750
  tabIndex: -1
@@ -727,13 +781,13 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
727
781
  }, _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, {
728
782
  orientation: "horizontal",
729
783
  top: topOffset - SCROLL_BAR_HEIGHT,
730
- zIndex: 10
784
+ zIndex: 20
731
785
  }), !loading && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_baseComponents.ScrollArea.Bar, {
732
786
  orientation: "horizontal",
733
- zIndex: 10
787
+ zIndex: 20
734
788
  }), /*#__PURE__*/React.createElement(_baseComponents.ScrollArea.Bar, {
735
789
  orientation: "vertical",
736
- zIndex: 10
790
+ zIndex: 20
737
791
  })), selectedRows !== undefined && /*#__PURE__*/React.createElement(_baseComponents.ScreenReaderOnly, _ref2.cn("ScreenReaderOnly", {
738
792
  "aria-live": 'polite',
739
793
  "role": 'status'
@@ -756,7 +810,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
756
810
  if (selectedRows) {
757
811
  var column = {
758
812
  name: SELECT_ALL.toString(),
759
- gtcWidth: '40px',
813
+ gtcWidth: 'min-content',
760
814
  alignItems: 'flex-start',
761
815
  children: ''
762
816
  };
@@ -776,6 +830,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
776
830
  alignItems: columnElement.props.alignItems,
777
831
  alignContent: columnElement.props.alignContent,
778
832
  justifyContent: columnElement.props.justifyContent,
833
+ textAlign: columnElement.props.textAlign,
779
834
  children: ''
780
835
  };
781
836
  return column;
@@ -830,7 +885,9 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
830
885
  data = _this$props2.data,
831
886
  selectedRows = _this$props2.selectedRows;
832
887
  this.hasGroups = columns.some(function (column) {
833
- return 'columns' in column;
888
+ return 'columns' in column && column.columns.some(function (col) {
889
+ return col.children !== null;
890
+ });
834
891
  });
835
892
  var groupIndex = 0;
836
893
  var gridColumnIndex = selectedRows ? 2 : 1;
@@ -840,23 +897,26 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
840
897
  if (selectedRows) {
841
898
  var column = {
842
899
  name: SELECT_ALL.toString(),
843
- gtcWidth: '40px',
900
+ gtcWidth: 'min-content',
844
901
  alignItems: 'flex-start',
845
902
  children: ''
846
903
  };
847
904
  calculatedColumns.push(column);
848
905
  }
849
- var makeColumn = function makeColumn(columnElement, parent, isFirst, isLast) {
906
+ var makeColumn = function makeColumn(columnElement, parent, isFirst, isLast, hasGroups) {
850
907
  var _columnElement$fixed, _ref4, _columnElement$border;
851
908
  var leftBordersFromParent = isFirst && ((parent === null || parent === void 0 ? void 0 : parent.borders) === 'both' || (parent === null || parent === void 0 ? void 0 : parent.borders) === 'left') ? 'left' : undefined;
852
909
  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;
853
910
  var column = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, columnElement), {}, {
854
911
  name: childIsColumn(columnElement) ? columnElement.name : '',
855
912
  gtcWidth: childIsColumn(columnElement) ? calculateGridTemplateColumn(columnElement) : '',
856
- fixed: (_columnElement$fixed = columnElement.fixed) !== null && _columnElement$fixed !== void 0 ? _columnElement$fixed : parent === null || parent === void 0 ? void 0 : parent.fixed,
913
+ fixed: (_columnElement$fixed = columnElement.fixed) !== null && _columnElement$fixed !== void 0 ? _columnElement$fixed : hasGroups ? parent === null || parent === void 0 ? void 0 : parent.fixed : undefined,
857
914
  borders: (_ref4 = (_columnElement$border = columnElement.borders) !== null && _columnElement$border !== void 0 ? _columnElement$border : leftBordersFromParent) !== null && _ref4 !== void 0 ? _ref4 : rightBordersFromParent,
858
915
  parent: parent
859
916
  });
917
+ if (column.fixed) {
918
+ _this5.hasFixedColumn = true;
919
+ }
860
920
  return column;
861
921
  };
862
922
  var childIsColumn = function childIsColumn(child) {
@@ -865,6 +925,17 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
865
925
  var childIsGroup = function childIsGroup(child) {
866
926
  return 'columns' in child;
867
927
  };
928
+ var setShowShadows = function setShowShadows(col, i) {
929
+ var prevCol = treeColumns[i - 1];
930
+ if ('columns' in prevCol && prevCol.columns) {
931
+ prevCol = prevCol.columns[prevCol.columns.length - 1];
932
+ }
933
+ if (prevCol.fixed && !col.fixed) {
934
+ prevCol.showShadowVertical = true;
935
+ } else if (!prevCol.fixed && col.fixed) {
936
+ col.showShadowVertical = true;
937
+ }
938
+ };
868
939
  columns.forEach(function (child, i) {
869
940
  if (childIsColumn(child)) {
870
941
  var col = makeColumn(child);
@@ -872,28 +943,35 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
872
943
  gridColumnIndex++;
873
944
  calculatedColumns.push(col);
874
945
  treeColumns.push(col);
946
+ if (i > 0) {
947
+ setShowShadows(col, i);
948
+ }
875
949
  } else if (childIsGroup(child)) {
876
950
  var Group = makeColumn(child);
877
951
  var childCount = child.columns.length;
878
952
  var initGridColumn = gridColumnIndex;
953
+ var groupedRow = _this5.hasGroups ? 2 : 1;
879
954
  Group.columns = [];
880
955
  Group.children = child.children;
881
956
  child.columns.forEach(function (child, j) {
882
957
  var _Group$columns;
883
958
  var isFirst = j === 0;
884
959
  var isLast = j === childCount - 1;
885
- var col = makeColumn(child, Group, isFirst, isLast);
960
+ var col = makeColumn(child, Group, isFirst, isLast, _this5.hasGroups);
886
961
  if (i === 0 && j === 0 && data.some(function (d) {
887
962
  return d[ACCORDION];
888
963
  })) {
889
964
  gridColumnIndex++;
890
- col.gridArea = "2 / ".concat(gridColumnIndex - 1, " / 3 / ").concat(gridColumnIndex + 1);
965
+ col.gridArea = "".concat(groupedRow, " / ").concat(gridColumnIndex - 1, " / ").concat(groupedRow + 1, " / ").concat(gridColumnIndex + 1);
891
966
  } else {
892
- col.gridArea = "2 / ".concat(gridColumnIndex, " / 3 / ").concat(gridColumnIndex + 1);
967
+ col.gridArea = "".concat(groupedRow, " / ").concat(gridColumnIndex, " / ").concat(groupedRow + 1, " / ").concat(gridColumnIndex + 1);
893
968
  }
894
- col.gridArea = "2 / ".concat(gridColumnIndex, " / 3 / ").concat(gridColumnIndex + 1);
969
+ col.gridArea = "".concat(groupedRow, " / ").concat(gridColumnIndex, " / ").concat(groupedRow + 1, " / ").concat(gridColumnIndex + 1);
895
970
  gridColumnIndex++;
896
971
  calculatedColumns.push(col);
972
+ if (isFirst && i > 0) {
973
+ setShowShadows(col, i);
974
+ }
897
975
  (_Group$columns = Group.columns) === null || _Group$columns === void 0 || _Group$columns.push(col);
898
976
  });
899
977
  treeColumns.push(Group);
@@ -901,6 +979,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
901
979
  groupIndex++;
902
980
  }
903
981
  });
982
+ console.log(calculatedColumns, treeColumns);
904
983
  return [calculatedColumns, treeColumns];
905
984
  }
906
985
  }, {