@semcore/data-table 16.0.4 → 16.0.5

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 (66) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/lib/cjs/components/Body/Body.js +55 -46
  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 -56
  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 +41 -41
  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/DataTable/DataTable.js +74 -47
  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 +77 -59
  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 +52 -38
  18. package/lib/cjs/components/Head/Group.js.map +1 -1
  19. package/lib/cjs/components/Head/Group.type.js.map +1 -1
  20. package/lib/cjs/components/Head/Head.js +30 -29
  21. package/lib/cjs/components/Head/Head.js.map +1 -1
  22. package/lib/cjs/components/Head/Head.types.js.map +1 -1
  23. package/lib/cjs/components/Head/style.shadow.css +1 -1
  24. package/lib/cjs/index.js.map +1 -1
  25. package/lib/es6/components/Body/Body.js +55 -46
  26. package/lib/es6/components/Body/Body.js.map +1 -1
  27. package/lib/es6/components/Body/Body.types.js.map +1 -1
  28. package/lib/es6/components/Body/Cell.js +69 -56
  29. package/lib/es6/components/Body/Cell.js.map +1 -1
  30. package/lib/es6/components/Body/Cell.types.js.map +1 -1
  31. package/lib/es6/components/Body/Row.js +42 -42
  32. package/lib/es6/components/Body/Row.js.map +1 -1
  33. package/lib/es6/components/Body/Row.types.js.map +1 -1
  34. package/lib/es6/components/DataTable/DataTable.js +74 -47
  35. package/lib/es6/components/DataTable/DataTable.js.map +1 -1
  36. package/lib/es6/components/DataTable/DataTable.types.js.map +1 -1
  37. package/lib/es6/components/Head/Column.js +77 -59
  38. package/lib/es6/components/Head/Column.js.map +1 -1
  39. package/lib/es6/components/Head/Column.types.js.map +1 -1
  40. package/lib/es6/components/Head/Group.js +52 -38
  41. package/lib/es6/components/Head/Group.js.map +1 -1
  42. package/lib/es6/components/Head/Group.type.js.map +1 -1
  43. package/lib/es6/components/Head/Head.js +30 -29
  44. package/lib/es6/components/Head/Head.js.map +1 -1
  45. package/lib/es6/components/Head/Head.types.js.map +1 -1
  46. package/lib/es6/components/Head/style.shadow.css +1 -1
  47. package/lib/es6/index.js +5 -1
  48. package/lib/es6/index.js.map +1 -1
  49. package/lib/esm/components/Body/Body.mjs +55 -47
  50. package/lib/esm/components/Body/Cell.mjs +49 -40
  51. package/lib/esm/components/Body/Row.mjs +46 -43
  52. package/lib/esm/components/DataTable/DataTable.mjs +75 -49
  53. package/lib/esm/components/Head/Column.mjs +56 -42
  54. package/lib/esm/components/Head/Group.mjs +46 -34
  55. package/lib/esm/components/Head/Head.mjs +29 -30
  56. package/lib/esm/components/Head/style.shadow.css +1 -1
  57. package/lib/types/components/Body/Body.types.d.ts +5 -3
  58. package/lib/types/components/Body/Cell.types.d.ts +6 -0
  59. package/lib/types/components/Body/Row.types.d.ts +1 -1
  60. package/lib/types/components/DataTable/DataTable.types.d.ts +18 -8
  61. package/lib/types/components/Head/Column.d.ts +2 -1
  62. package/lib/types/components/Head/Column.types.d.ts +2 -0
  63. package/lib/types/components/Head/Group.type.d.ts +1 -1
  64. package/lib/types/components/Head/Head.types.d.ts +4 -1
  65. package/lib/types/index.d.ts +7 -3
  66. package/package.json +21 -21
@@ -1 +1 @@
1
- {"version":3,"file":"Row.types.js","names":[],"sources":["../../../../src/components/Body/Row.types.ts"],"sourcesContent":["import type { DataTableCellProps } from './Cell.types';\nimport type { MergedColumnsCell, MergedRowsCell } from './MergedCells';\nimport type { ACCORDION, ROW_GROUP, ROW_INDEX, UNIQ_ROW_KEY } from '../DataTable/DataTable';\nimport type { DTValue, DTUse, DataTableData } from '../DataTable/DataTable.types';\nimport type { DTColumn } from '../Head/Column.types';\n\nexport type UniqRowKey = string;\n\nexport type DTRow = {\n [UNIQ_ROW_KEY]: UniqRowKey;\n [ROW_INDEX]: number;\n [key: string]: DTValue | MergedRowsCell | MergedColumnsCell;\n [ACCORDION]?: React.ReactNode | DataTableData | undefined;\n [ROW_GROUP]?: Set<UniqRowKey>;\n};\nexport type DTRows = Array<DTRow | DTRow[]>;\n\nexport type DataTableRowProps = {\n row: DTRow;\n mergedRow?: boolean;\n\n isAccordionRow?: DataTableCellProps['isAccordionRow'];\n animationExpand?: DataTableCellProps['animationExpand'];\n accordionRowIndex?: DataTableCellProps['accordionRowIndex'];\n};\n\nexport type RowPropsInner = JSX.IntrinsicElements['div'] & {\n use: DTUse;\n /**\n * Expanded flag for rows with accordion\n * @default false\n */\n expanded?: boolean;\n\n /**\n * Flag to show is row in a merged list or not.\n */\n mergedRow?: boolean;\n\n columns: DTColumn[];\n row: DTRow | DTRow[];\n rows: DTRows;\n rowIndex: number; // from 0\n ariaRowIndex: number; // from 1 + 1 header\n gridRowIndex: number; // from 1 + 1 (or 2 if it has group) header\n\n expandedRows: Set<string>;\n onExpandRow: (expandedRow: DTRow) => void;\n\n gridTemplateAreas: string[];\n gridTemplateColumns: string[];\n accordionDataGridArea: string;\n\n selectedRows?: number[];\n onSelectRow?: (\n isSelect: boolean,\n selectedRowIndex: number,\n row: DTRow,\n event?: React.SyntheticEvent<HTMLElement>,\n ) => void;\n\n inert?: '';\n\n accordionDuration?: number | [number, number];\n onBackFromAccordion: (colIndex: number) => void;\n\n scrollAreaRef: React.RefObject<HTMLDivElement>;\n uid: string;\n sideIndents?: 'wide';\n getFixedStyle: (\n cell: Pick<DTColumn, 'name' | 'fixed'>,\n ) => [side: 'left' | 'right', style: string | number] | [side: undefined, style: undefined];\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"Row.types.js","names":[],"sources":["../../../../src/components/Body/Row.types.ts"],"sourcesContent":["import type { DataTableCellProps } from './Cell.types';\nimport type { MergedColumnsCell, MergedRowsCell } from './MergedCells';\nimport type { ACCORDION, ROW_GROUP, ROW_INDEX, UNIQ_ROW_KEY } from '../DataTable/DataTable';\nimport type { DTValue, DTUse, DataTableData } from '../DataTable/DataTable.types';\nimport type { DTColumn } from '../Head/Column.types';\n\nexport type UniqRowKey = string;\n\nexport type DTRow = {\n [UNIQ_ROW_KEY]: UniqRowKey;\n [ROW_INDEX]: number;\n [key: string]: DTValue | MergedRowsCell | MergedColumnsCell;\n [ACCORDION]?: React.ReactNode | DataTableData | undefined;\n [ROW_GROUP]?: Set<UniqRowKey>;\n};\nexport type DTRows = Array<DTRow | DTRow[]>;\n\nexport type DataTableRowProps = {\n row: DTRow;\n mergedRow?: boolean;\n\n isAccordionRow?: DataTableCellProps['isAccordionRow'];\n animationExpand?: DataTableCellProps['animationExpand'];\n accordionRowIndex?: DataTableCellProps['accordionRowIndex'];\n};\n\nexport type RowPropsInner = JSX.IntrinsicElements['div'] & {\n use: DTUse;\n /**\n * Expanded flag for rows with accordion\n * @default false\n */\n expanded?: boolean;\n\n /**\n * Flag to show is row in a merged list or not.\n */\n mergedRow?: boolean;\n\n columns: DTColumn[];\n row: DTRow | DTRow[];\n rows: DTRows;\n rowIndex: number; // from 0\n ariaRowIndex: number; // from 1 + 1 header\n gridRowIndex: number; // from 1 + 1 (or 2 if it has group) header\n\n expandedRows: Set<string>;\n onExpandRow: (expandedRow: DTRow) => void;\n\n gridTemplateAreas: string[];\n gridTemplateColumns: string[];\n accordionDataGridArea: string;\n\n selectedRows?: UniqRowKey[];\n onSelectRow?: (\n isSelect: boolean,\n selectedRowIndex: number,\n row: DTRow,\n event?: React.SyntheticEvent<HTMLElement>,\n ) => void;\n\n inert?: '';\n\n accordionDuration?: number | [number, number];\n onBackFromAccordion: (colIndex: number) => void;\n\n scrollAreaRef: React.RefObject<HTMLDivElement>;\n uid: string;\n sideIndents?: 'wide';\n getFixedStyle: (\n cell: Pick<DTColumn, 'name' | 'fixed'>,\n ) => [side: 'left' | 'right', style: string | number] | [side: undefined, style: undefined];\n};\n"],"mappings":"","ignoreList":[]}
@@ -33,35 +33,35 @@ 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_e0rog_gg_{display:grid;align-items:start;min-width:-moz-fit-content;min-width:fit-content}.___SDataTable_e0rog_gg_.__gridTemplateColumns_e0rog_gg_{grid-template-columns:var(--gridTemplateColumns_e0rog)}.___SDataTable_e0rog_gg_.__gridTemplateAreas_e0rog_gg_{grid-template-areas:var(--gridTemplateAreas_e0rog)}.___SDataTable_e0rog_gg_.__gridTemplateRows_e0rog_gg_{grid-template-rows:var(--gridTemplateRows_e0rog)}", /*__inner_css_end__*/"e0rog_gg_"),
36
+ var style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SDataTable_1x750_gg_{display:grid;align-items:start;min-width:-moz-fit-content;min-width:fit-content}.___SDataTable_1x750_gg_.__gridTemplateColumns_1x750_gg_{grid-template-columns:var(--gridTemplateColumns_1x750)}.___SDataTable_1x750_gg_.__gridTemplateAreas_1x750_gg_{grid-template-areas:var(--gridTemplateAreas_1x750)}.___SDataTable_1x750_gg_.__gridTemplateRows_1x750_gg_{grid-template-rows:var(--gridTemplateRows_1x750)}", /*__inner_css_end__*/"1x750_gg_"),
37
37
  /*__reshadow_css_end__*/
38
38
  {
39
- "__SDataTable": "___SDataTable_e0rog_gg_",
40
- "_gridTemplateColumns": "__gridTemplateColumns_e0rog_gg_",
41
- "--gridTemplateColumns": "--gridTemplateColumns_e0rog",
42
- "_gridTemplateAreas": "__gridTemplateAreas_e0rog_gg_",
43
- "--gridTemplateAreas": "--gridTemplateAreas_e0rog",
44
- "_gridTemplateRows": "__gridTemplateRows_e0rog_gg_",
45
- "--gridTemplateRows": "--gridTemplateRows_e0rog"
39
+ "__SDataTable": "___SDataTable_1x750_gg_",
40
+ "_gridTemplateColumns": "__gridTemplateColumns_1x750_gg_",
41
+ "--gridTemplateColumns": "--gridTemplateColumns_1x750",
42
+ "_gridTemplateAreas": "__gridTemplateAreas_1x750_gg_",
43
+ "--gridTemplateAreas": "--gridTemplateAreas_1x750",
44
+ "_gridTemplateRows": "__gridTemplateRows_1x750_gg_",
45
+ "--gridTemplateRows": "--gridTemplateRows_1x750"
46
46
  });
47
47
  /*!__reshadow-styles__:"../../style/scroll-shadows.shadow.css"*/
48
- var scrollStyles = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SScrollArea_rz9ze_gg_{width:-moz-fit-content;width:fit-content}.___SScrollArea_rz9ze_gg_ .___SContainer_rz9ze_gg_{overflow:visible;overflow:initial}.___SScrollArea_rz9ze_gg_ .___SContainer_rz9ze_gg_._scrollDirection_both_rz9ze_gg_{overflow:auto}.___SScrollArea_rz9ze_gg_ .___SContainer_rz9ze_gg_._scrollDirection_horizontal_rz9ze_gg_{overflow-x:auto;overflow-y:initial}.___SScrollArea_rz9ze_gg_ .___SContainer_rz9ze_gg_._scrollDirection_vertical_rz9ze_gg_{overflow-x:initial;overflow-y:auto}.___SScrollArea_rz9ze_gg_ .___SContainer_rz9ze_gg_.__loading_rz9ze_gg_{overflow:hidden}.___SScrollArea_rz9ze_gg_ .___SContainer_rz9ze_gg_.__headerHeight_rz9ze_gg_{scroll-padding-top:var(--headerHeight_rz9ze)}.___SScrollArea_rz9ze_gg_ .___SContainer_rz9ze_gg_.__leftScrollPadding_rz9ze_gg_{scroll-padding-left:var(--leftScrollPadding_rz9ze)}.___SScrollArea_rz9ze_gg_ .___SContainer_rz9ze_gg_.__rightScrollPadding_rz9ze_gg_{scroll-padding-right:var(--rightScrollPadding_rz9ze)}.___SScrollArea_rz9ze_gg_ .___SShadowVertical_rz9ze_gg_:before{display:none}.___SScrollArea_rz9ze_gg_ .___SShadowHorizontal_rz9ze_gg_:after,.___SScrollArea_rz9ze_gg_ .___SShadowHorizontal_rz9ze_gg_:before,.___SScrollArea_rz9ze_gg_ .___SShadowVertical_rz9ze_gg_:after{z-index:2}", /*__inner_css_end__*/"rz9ze_gg_"),
48
+ var scrollStyles = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SScrollArea_2doqn_gg_{width:-moz-fit-content;width:fit-content}.___SScrollArea_2doqn_gg_ .___SContainer_2doqn_gg_{overflow:visible;overflow:initial}.___SScrollArea_2doqn_gg_ .___SContainer_2doqn_gg_._scrollDirection_both_2doqn_gg_{overflow:auto}.___SScrollArea_2doqn_gg_ .___SContainer_2doqn_gg_._scrollDirection_horizontal_2doqn_gg_{overflow-x:auto;overflow-y:initial}.___SScrollArea_2doqn_gg_ .___SContainer_2doqn_gg_._scrollDirection_vertical_2doqn_gg_{overflow-x:initial;overflow-y:auto}.___SScrollArea_2doqn_gg_ .___SContainer_2doqn_gg_.__loading_2doqn_gg_{overflow:hidden}.___SScrollArea_2doqn_gg_ .___SContainer_2doqn_gg_.__headerHeight_2doqn_gg_{scroll-padding-top:var(--headerHeight_2doqn)}.___SScrollArea_2doqn_gg_ .___SContainer_2doqn_gg_.__leftScrollPadding_2doqn_gg_{scroll-padding-left:var(--leftScrollPadding_2doqn)}.___SScrollArea_2doqn_gg_ .___SContainer_2doqn_gg_.__rightScrollPadding_2doqn_gg_{scroll-padding-right:var(--rightScrollPadding_2doqn)}.___SScrollArea_2doqn_gg_ .___SShadowVertical_2doqn_gg_:before{display:none}.___SScrollArea_2doqn_gg_ .___SShadowHorizontal_2doqn_gg_:after,.___SScrollArea_2doqn_gg_ .___SShadowHorizontal_2doqn_gg_:before,.___SScrollArea_2doqn_gg_ .___SShadowVertical_2doqn_gg_:after{z-index:2}", /*__inner_css_end__*/"2doqn_gg_"),
49
49
  /*__reshadow_css_end__*/
50
50
  {
51
- "__SScrollArea": "___SScrollArea_rz9ze_gg_",
52
- "__SContainer": "___SContainer_rz9ze_gg_",
53
- "_scrollDirection_both": "_scrollDirection_both_rz9ze_gg_",
54
- "_scrollDirection_horizontal": "_scrollDirection_horizontal_rz9ze_gg_",
55
- "_scrollDirection_vertical": "_scrollDirection_vertical_rz9ze_gg_",
56
- "_loading": "__loading_rz9ze_gg_",
57
- "_headerHeight": "__headerHeight_rz9ze_gg_",
58
- "--headerHeight": "--headerHeight_rz9ze",
59
- "_leftScrollPadding": "__leftScrollPadding_rz9ze_gg_",
60
- "--leftScrollPadding": "--leftScrollPadding_rz9ze",
61
- "_rightScrollPadding": "__rightScrollPadding_rz9ze_gg_",
62
- "--rightScrollPadding": "--rightScrollPadding_rz9ze",
63
- "__SShadowVertical": "___SShadowVertical_rz9ze_gg_",
64
- "__SShadowHorizontal": "___SShadowHorizontal_rz9ze_gg_"
51
+ "__SScrollArea": "___SScrollArea_2doqn_gg_",
52
+ "__SContainer": "___SContainer_2doqn_gg_",
53
+ "_scrollDirection_both": "_scrollDirection_both_2doqn_gg_",
54
+ "_scrollDirection_horizontal": "_scrollDirection_horizontal_2doqn_gg_",
55
+ "_scrollDirection_vertical": "_scrollDirection_vertical_2doqn_gg_",
56
+ "_loading": "__loading_2doqn_gg_",
57
+ "_headerHeight": "__headerHeight_2doqn_gg_",
58
+ "--headerHeight": "--headerHeight_2doqn",
59
+ "_leftScrollPadding": "__leftScrollPadding_2doqn_gg_",
60
+ "--leftScrollPadding": "--leftScrollPadding_2doqn",
61
+ "_rightScrollPadding": "__rightScrollPadding_2doqn_gg_",
62
+ "--rightScrollPadding": "--rightScrollPadding_2doqn",
63
+ "__SShadowVertical": "___SShadowVertical_2doqn_gg_",
64
+ "__SShadowHorizontal": "___SShadowHorizontal_2doqn_gg_"
65
65
  });
66
66
  var ACCORDION = exports.ACCORDION = Symbol('accordion');
67
67
  var ROW_GROUP = exports.ROW_GROUP = Symbol('ROW_GROUP');
@@ -94,16 +94,22 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
94
94
  scrollDirection: 'down',
95
95
  selectAllMessage: ''
96
96
  });
97
+ (0, _defineProperty2["default"])(_this, "handleCellClick", function (e, opt) {
98
+ if (_core.lastInteraction.isMouse()) {
99
+ console.log('click on cell in data table handler', opt);
100
+ _this.initFocusableCell([_this.hasFocusableInHeader() ? opt.rowIndex + 1 : opt.rowIndex, opt.colIndex]);
101
+ }
102
+ });
97
103
  (0, _defineProperty2["default"])(_this, "handleSelectRow", function (isSelected, selectedRowIndex, row, event) {
98
104
  var _this$asProps = _this.asProps,
99
105
  selectedRows = _this$asProps.selectedRows,
100
106
  onSelectedRowsChange = _this$asProps.onSelectedRowsChange;
101
107
  if (selectedRows && onSelectedRowsChange) {
102
108
  var newSelectedRows = new Set(selectedRows);
103
- if (isSelected && !newSelectedRows.has(selectedRowIndex)) {
104
- newSelectedRows.add(selectedRowIndex);
105
- } else if (!isSelected && newSelectedRows.has(selectedRowIndex)) {
106
- newSelectedRows["delete"](selectedRowIndex);
109
+ if (isSelected && !newSelectedRows.has(row[UNIQ_ROW_KEY])) {
110
+ newSelectedRows.add(row[UNIQ_ROW_KEY]);
111
+ } else if (!isSelected && newSelectedRows.has(row[UNIQ_ROW_KEY])) {
112
+ newSelectedRows["delete"](row[UNIQ_ROW_KEY]);
107
113
  }
108
114
  onSelectedRowsChange((0, _toConsumableArray2["default"])(newSelectedRows), event, {
109
115
  selectedRowIndex: selectedRowIndex,
@@ -132,7 +138,9 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
132
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, "\"]:not([aria-hidden=\"true\"])"));
133
139
  });
134
140
  (0, _defineProperty2["default"])(_this, "hasFocusableInHeader", function () {
135
- return _this.headerRef.current && (0, _useFocusLock.hasFocusableIn)(_this.headerRef.current);
141
+ return _this.headerRef.current && (0, _useFocusLock.hasFocusableIn)(_this.headerRef.current) || _this.columns.some(function (column) {
142
+ return column.sortable;
143
+ });
136
144
  });
137
145
  (0, _defineProperty2["default"])(_this, "onExpandRow", function (expandedRow) {
138
146
  var expandedRows = _this.asProps.expandedRows;
@@ -250,14 +258,6 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
250
258
  }
251
259
  }
252
260
  });
253
- (0, _defineProperty2["default"])(_this, "initFocusableCell", function () {
254
- var hasFocusable = _this.hasFocusableInHeader();
255
- if (hasFocusable) {
256
- _this.focusedCell = [0, 0];
257
- } else {
258
- _this.focusedCell = [1, 0];
259
- }
260
- });
261
261
  (0, _defineProperty2["default"])(_this, "handleScroll", (0, _rafTrottle["default"])(function (e) {
262
262
  var scrollTop = e.target.scrollTop;
263
263
  var scrollDirection = scrollTop > _this.state.scrollTop ? 'down' : 'up';
@@ -530,12 +530,17 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
530
530
  totalRows: this.totalRows,
531
531
  selectedRows: selectedRows,
532
532
  onChangeSelectAll: function onChangeSelectAll(value, e) {
533
- var selectedRowsIndexes = value ? new Array(_this3.totalRows).fill(undefined).map(function (_, i) {
534
- return i;
535
- }) : [];
536
- onSelectedRowsChange === null || onSelectedRowsChange === void 0 || onSelectedRowsChange(selectedRowsIndexes, e);
533
+ if (value === false) {
534
+ onSelectedRowsChange === null || onSelectedRowsChange === void 0 || onSelectedRowsChange([], e);
535
+ } else {
536
+ var _selectedRows = _this3.flatRows.map(function (row) {
537
+ return row[UNIQ_ROW_KEY];
538
+ });
539
+ onSelectedRowsChange === null || onSelectedRowsChange === void 0 || onSelectedRowsChange(_selectedRows, e);
540
+ }
537
541
  },
538
- getFixedStyle: this.getFixedStyle
542
+ getFixedStyle: this.getFixedStyle,
543
+ onCellClick: this.handleCellClick
539
544
  }, headerProps);
540
545
  }
541
546
  }, {
@@ -590,7 +595,8 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
590
595
  sideIndents: sideIndents,
591
596
  selectedRows: selectedRows,
592
597
  onSelectRow: this.handleSelectRow,
593
- getFixedStyle: this.getFixedStyle
598
+ getFixedStyle: this.getFixedStyle,
599
+ onCellClick: this.handleCellClick
594
600
  };
595
601
  }
596
602
  }, {
@@ -606,6 +612,19 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
606
612
  }
607
613
  });
608
614
  }
615
+ }, {
616
+ key: "initFocusableCell",
617
+ value: function initFocusableCell(initCell) {
618
+ var _initCell$, _initCell$2;
619
+ var hasFocusable = this.hasFocusableInHeader();
620
+ var initRow = (_initCell$ = initCell === null || initCell === void 0 ? void 0 : initCell[0]) !== null && _initCell$ !== void 0 ? _initCell$ : 0;
621
+ var initCol = (_initCell$2 = initCell === null || initCell === void 0 ? void 0 : initCell[1]) !== null && _initCell$2 !== void 0 ? _initCell$2 : 0;
622
+ if (hasFocusable) {
623
+ this.focusedCell = [initRow, initCol];
624
+ } else {
625
+ this.focusedCell = [initRow + 1, initCol];
626
+ }
627
+ }
609
628
  }, {
610
629
  key: "render",
611
630
  value: function render() {
@@ -645,7 +664,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
645
664
  gridTemplateRows = "auto auto repeat(".concat(this.totalRows, ", minmax(").concat(virtualScroll.rowHeight, "px, auto)");
646
665
  }
647
666
  var scrollDirection = undefined;
648
- var hasWidthSettings = Boolean(w) && w !== '100%' || Boolean(wMax);
667
+ var hasWidthSettings = Boolean(w) || Boolean(wMax);
649
668
  var hasHeightSettings = Boolean(h) && h !== 'fit-content' || Boolean(hMax);
650
669
  if (hasWidthSettings && !hasHeightSettings) {
651
670
  scrollDirection = 'horizontal';
@@ -889,7 +908,8 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
889
908
  // @ts-ignore
890
909
  var _this$props3 = this.props,
891
910
  data = _this$props3.data,
892
- uid = _this$props3.uid;
911
+ uid = _this$props3.uid,
912
+ uniqueRowKey = _this$props3.uniqueRowKey;
893
913
  var rows = [];
894
914
  var columnNames = columns.map(function (column) {
895
915
  return column.name;
@@ -920,7 +940,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
920
940
  acc[ACCORDION] = row[ACCORDION];
921
941
  }
922
942
  return acc;
923
- }, (0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, UNIQ_ROW_KEY, row[UNIQ_ROW_KEY] || "".concat(uid, "_").concat((rowIndex + id).toString(36))), ROW_INDEX, rowIndex));
943
+ }, (0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, UNIQ_ROW_KEY, row[UNIQ_ROW_KEY] || (uniqueRowKey ? row[uniqueRowKey] : "".concat(uid, "_").concat((rowIndex + id).toString(36)))), ROW_INDEX, rowIndex));
924
944
  excludeColumns === null || excludeColumns === void 0 || excludeColumns.forEach(function (value) {
925
945
  columns["delete"](value);
926
946
  });
@@ -983,8 +1003,15 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
983
1003
  var header = (_this$headerRef$curre = this.headerRef.current) === null || _this$headerRef$curre === void 0 ? void 0 : _this$headerRef$curre.children;
984
1004
  var height = 0;
985
1005
  for (var i = 0; i < ((_header$length = header === null || header === void 0 ? void 0 : header.length) !== null && _header$length !== void 0 ? _header$length : 0); i++) {
986
- var _header$length, _header$item;
987
- var columnHeight = header === null || header === void 0 || (_header$item = header.item(i)) === null || _header$item === void 0 ? void 0 : _header$item.getBoundingClientRect().height;
1006
+ var _header$length;
1007
+ var item = header === null || header === void 0 ? void 0 : header.item(i);
1008
+ var columnHeight = item === null || item === void 0 ? void 0 : item.getBoundingClientRect().height;
1009
+ if (item instanceof HTMLElement && item.dataset.groupContainer) {
1010
+ var _item$children$item$g, _item$children$item, _item$children$item$g2, _item$children$item2;
1011
+ var groupHeight = (_item$children$item$g = (_item$children$item = item.children.item(0)) === null || _item$children$item === void 0 ? void 0 : _item$children$item.getBoundingClientRect().height) !== null && _item$children$item$g !== void 0 ? _item$children$item$g : 0;
1012
+ var cellHeight = (_item$children$item$g2 = (_item$children$item2 = item.children.item(1)) === null || _item$children$item2 === void 0 ? void 0 : _item$children$item2.getBoundingClientRect().height) !== null && _item$children$item$g2 !== void 0 ? _item$children$item$g2 : 0;
1013
+ columnHeight = groupHeight + cellHeight;
1014
+ }
988
1015
  if (columnHeight) {
989
1016
  height = columnHeight;
990
1017
  break;