@semcore/data-table 16.0.0-prerelease.2 → 16.0.0-prerelease.21

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 (152) hide show
  1. package/CHANGELOG.md +25 -1
  2. package/lib/cjs/components/Body/Body.js +439 -0
  3. package/lib/cjs/components/Body/Body.js.map +1 -0
  4. package/lib/cjs/components/Body/Body.types.js +2 -0
  5. package/lib/cjs/components/Body/Body.types.js.map +1 -0
  6. package/lib/cjs/components/Body/Cell.js +195 -0
  7. package/lib/cjs/components/Body/Cell.js.map +1 -0
  8. package/lib/cjs/components/Body/Cell.types.js +2 -0
  9. package/lib/cjs/components/Body/Cell.types.js.map +1 -0
  10. package/lib/cjs/components/Body/MergedCells.js +29 -0
  11. package/lib/cjs/components/Body/MergedCells.js.map +1 -0
  12. package/lib/cjs/components/Body/Row.js +252 -0
  13. package/lib/cjs/components/Body/Row.js.map +1 -0
  14. package/lib/cjs/components/Body/Row.types.js +4 -0
  15. package/lib/cjs/components/Body/Row.types.js.map +1 -0
  16. package/lib/cjs/components/Body/style.shadow.css +263 -0
  17. package/lib/cjs/components/DataTable/DataTable.js +1025 -0
  18. package/lib/cjs/components/DataTable/DataTable.js.map +1 -0
  19. package/lib/cjs/{types.js → components/DataTable/DataTable.types.js} +1 -1
  20. package/lib/cjs/components/DataTable/DataTable.types.js.map +1 -0
  21. package/lib/cjs/components/DataTable/dataTable.shadow.css +17 -0
  22. package/lib/cjs/components/Head/Column.js +311 -0
  23. package/lib/cjs/components/Head/Column.js.map +1 -0
  24. package/lib/cjs/components/Head/Column.types.js +2 -0
  25. package/lib/cjs/components/Head/Column.types.js.map +1 -0
  26. package/lib/cjs/components/Head/Group.js +116 -0
  27. package/lib/cjs/components/Head/Group.js.map +1 -0
  28. package/lib/cjs/components/Head/Group.type.js +2 -0
  29. package/lib/cjs/components/Head/Group.type.js.map +1 -0
  30. package/lib/cjs/components/Head/Head.js +207 -0
  31. package/lib/cjs/components/Head/Head.js.map +1 -0
  32. package/lib/cjs/components/Head/Head.types.js +2 -0
  33. package/lib/cjs/components/Head/Head.types.js.map +1 -0
  34. package/lib/cjs/components/Head/style.shadow.css +180 -0
  35. package/lib/cjs/index.js +25 -15
  36. package/lib/cjs/index.js.map +1 -1
  37. package/lib/cjs/style/scroll-shadows.shadow.css +45 -5
  38. package/lib/cjs/translations/en.json +6 -1
  39. package/lib/es6/components/Body/Body.js +432 -0
  40. package/lib/es6/components/Body/Body.js.map +1 -0
  41. package/lib/es6/components/Body/Body.types.js +2 -0
  42. package/lib/es6/components/Body/Body.types.js.map +1 -0
  43. package/lib/es6/components/Body/Cell.js +188 -0
  44. package/lib/es6/components/Body/Cell.js.map +1 -0
  45. package/lib/es6/components/Body/Cell.types.js +2 -0
  46. package/lib/es6/components/Body/Cell.types.js.map +1 -0
  47. package/lib/es6/components/Body/MergedCells.js +20 -0
  48. package/lib/es6/components/Body/MergedCells.js.map +1 -0
  49. package/lib/es6/components/Body/Row.js +245 -0
  50. package/lib/es6/components/Body/Row.js.map +1 -0
  51. package/lib/es6/components/Body/Row.types.js +2 -0
  52. package/lib/es6/components/Body/Row.types.js.map +1 -0
  53. package/lib/es6/components/Body/style.shadow.css +263 -0
  54. package/lib/es6/components/DataTable/DataTable.js +1013 -0
  55. package/lib/es6/components/DataTable/DataTable.js.map +1 -0
  56. package/lib/es6/components/DataTable/DataTable.types.js +2 -0
  57. package/lib/es6/components/DataTable/DataTable.types.js.map +1 -0
  58. package/lib/es6/components/DataTable/dataTable.shadow.css +17 -0
  59. package/lib/es6/components/Head/Column.js +304 -0
  60. package/lib/es6/components/Head/Column.js.map +1 -0
  61. package/lib/es6/components/Head/Column.types.js +2 -0
  62. package/lib/es6/components/Head/Column.types.js.map +1 -0
  63. package/lib/es6/components/Head/Group.js +109 -0
  64. package/lib/es6/components/Head/Group.js.map +1 -0
  65. package/lib/es6/components/Head/Group.type.js +2 -0
  66. package/lib/es6/components/Head/Group.type.js.map +1 -0
  67. package/lib/es6/components/Head/Head.js +201 -0
  68. package/lib/es6/components/Head/Head.js.map +1 -0
  69. package/lib/es6/components/Head/Head.types.js +2 -0
  70. package/lib/es6/components/Head/Head.types.js.map +1 -0
  71. package/lib/es6/components/Head/style.shadow.css +180 -0
  72. package/lib/es6/index.js +5 -2
  73. package/lib/es6/index.js.map +1 -1
  74. package/lib/es6/style/scroll-shadows.shadow.css +45 -5
  75. package/lib/es6/translations/en.json +6 -1
  76. package/lib/esm/components/Body/Body.mjs +394 -0
  77. package/lib/esm/components/Body/Cell.mjs +186 -0
  78. package/lib/esm/components/Body/MergedCells.mjs +23 -0
  79. package/lib/esm/components/Body/Row.mjs +224 -0
  80. package/lib/esm/components/Body/style.shadow.css +263 -0
  81. package/lib/esm/components/DataTable/DataTable.mjs +944 -0
  82. package/lib/esm/components/DataTable/dataTable.shadow.css +17 -0
  83. package/lib/esm/components/Head/Column.mjs +296 -0
  84. package/lib/esm/components/Head/Group.mjs +103 -0
  85. package/lib/esm/components/Head/Head.mjs +181 -0
  86. package/lib/esm/components/Head/style.shadow.css +180 -0
  87. package/lib/esm/index.mjs +9 -6
  88. package/lib/esm/style/scroll-shadows.shadow.css +47 -0
  89. package/lib/esm/translations/__intergalactic-dynamic-locales.mjs +30 -30
  90. package/lib/esm/translations/de.json.mjs +5 -4
  91. package/lib/esm/translations/en.json.mjs +10 -4
  92. package/lib/esm/translations/es.json.mjs +5 -4
  93. package/lib/esm/translations/fr.json.mjs +5 -4
  94. package/lib/esm/translations/it.json.mjs +5 -4
  95. package/lib/esm/translations/ja.json.mjs +5 -4
  96. package/lib/esm/translations/ko.json.mjs +5 -4
  97. package/lib/esm/translations/nl.json.mjs +5 -4
  98. package/lib/esm/translations/pl.json.mjs +5 -4
  99. package/lib/esm/translations/pt.json.mjs +5 -4
  100. package/lib/esm/translations/sv.json.mjs +5 -4
  101. package/lib/esm/translations/tr.json.mjs +5 -4
  102. package/lib/esm/translations/vi.json.mjs +5 -4
  103. package/lib/esm/translations/zh.json.mjs +5 -4
  104. package/lib/types/components/Body/Body.d.ts +8 -0
  105. package/lib/types/components/Body/Body.types.d.ts +57 -0
  106. package/lib/types/components/Body/Cell.d.ts +3 -0
  107. package/lib/types/components/Body/Cell.types.d.ts +20 -0
  108. package/lib/types/components/Body/MergedCells.d.ts +14 -0
  109. package/lib/types/components/Body/Row.d.ts +3 -0
  110. package/lib/types/components/Body/Row.types.d.ts +43 -0
  111. package/lib/types/components/DataTable/DataTable.d.ts +13 -0
  112. package/lib/types/components/DataTable/DataTable.types.d.ts +125 -0
  113. package/lib/types/components/Head/Column.d.ts +30 -0
  114. package/lib/types/components/Head/Column.types.d.ts +71 -0
  115. package/lib/types/components/Head/Group.d.ts +15 -0
  116. package/lib/types/components/Head/Group.type.d.ts +16 -0
  117. package/lib/types/components/Head/Head.d.ts +98 -0
  118. package/lib/types/components/Head/Head.types.d.ts +40 -0
  119. package/lib/types/index.d.ts +10 -2
  120. package/lib/types/translations/__intergalactic-dynamic-locales.d.ts +5 -0
  121. package/package.json +11 -6
  122. package/vite.config.ts +0 -3
  123. package/lib/cjs/Body.js +0 -475
  124. package/lib/cjs/Body.js.map +0 -1
  125. package/lib/cjs/DataTable.js +0 -622
  126. package/lib/cjs/DataTable.js.map +0 -1
  127. package/lib/cjs/Head.js +0 -399
  128. package/lib/cjs/Head.js.map +0 -1
  129. package/lib/cjs/style/data-table.shadow.css +0 -394
  130. package/lib/cjs/types.js.map +0 -1
  131. package/lib/cjs/utils.js +0 -57
  132. package/lib/cjs/utils.js.map +0 -1
  133. package/lib/es6/Body.js +0 -468
  134. package/lib/es6/Body.js.map +0 -1
  135. package/lib/es6/DataTable.js +0 -614
  136. package/lib/es6/DataTable.js.map +0 -1
  137. package/lib/es6/Head.js +0 -391
  138. package/lib/es6/Head.js.map +0 -1
  139. package/lib/es6/style/data-table.shadow.css +0 -394
  140. package/lib/es6/types.js +0 -2
  141. package/lib/es6/types.js.map +0 -1
  142. package/lib/es6/utils.js +0 -48
  143. package/lib/es6/utils.js.map +0 -1
  144. package/lib/esm/Body.mjs +0 -320
  145. package/lib/esm/DataTable.mjs +0 -439
  146. package/lib/esm/Head.mjs +0 -258
  147. package/lib/esm/utils.mjs +0 -37
  148. package/lib/types/Body.d.ts +0 -61
  149. package/lib/types/DataTable.d.ts +0 -205
  150. package/lib/types/Head.d.ts +0 -45
  151. package/lib/types/types.d.ts +0 -73
  152. package/lib/types/utils.d.ts +0 -4
@@ -0,0 +1,944 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
3
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
4
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
5
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
6
+ import _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitialized";
7
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
8
+ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
9
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
10
+ import { sstyled, createComponent, lastInteraction, assignProps, Component } from "@semcore/core";
11
+ import * as React from "react";
12
+ import { ScrollArea, ScreenReaderOnly, Box } from "@semcore/base-components";
13
+ import { Head } from "../Head/Head.mjs";
14
+ import { Body } from "../Body/Body.mjs";
15
+ import { hasFocusableIn, isFocusInside } from "@semcore/core/lib/utils/use/useFocusLock";
16
+ import findComponent from "@semcore/core/lib/utils/findComponent";
17
+ import { localizedMessages } from "../../translations/__intergalactic-dynamic-locales.mjs";
18
+ import i18nEnhance from "@semcore/core/lib/utils/enhances/i18nEnhance";
19
+ import uniqueIDEnhancement from "@semcore/core/lib/utils/uniqueID";
20
+ import { forkRef } from "@semcore/core/lib/utils/ref";
21
+ import { hasParent } from "@semcore/core/lib/utils/hasParent";
22
+ import trottle from "@semcore/core/lib/utils/rafTrottle";
23
+ import { MergedRowsCell, MergedColumnsCell } from "../Body/MergedCells.mjs";
24
+ import { NoData } from "@semcore/widget-empty";
25
+ /*!__reshadow-styles__:"./dataTable.shadow.css"*/
26
+ var style = (
27
+ /*__reshadow_css_start__*/
28
+ (sstyled.insert(
29
+ /*__inner_css_start__*/
30
+ ".___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)}",
31
+ /*__inner_css_end__*/
32
+ "1iypx_gg_"
33
+ ), /*__reshadow_css_end__*/
34
+ {
35
+ "__SDataTable": "___SDataTable_1iypx_gg_",
36
+ "_gridTemplateColumns": "__gridTemplateColumns_1iypx_gg_",
37
+ "--gridTemplateColumns": "--gridTemplateColumns_1iypx",
38
+ "_gridTemplateAreas": "__gridTemplateAreas_1iypx_gg_",
39
+ "--gridTemplateAreas": "--gridTemplateAreas_1iypx",
40
+ "_gridTemplateRows": "__gridTemplateRows_1iypx_gg_",
41
+ "--gridTemplateRows": "--gridTemplateRows_1iypx"
42
+ })
43
+ );
44
+ /*!__reshadow-styles__:"../../style/scroll-shadows.shadow.css"*/
45
+ var scrollStyles = (
46
+ /*__reshadow_css_start__*/
47
+ (sstyled.insert(
48
+ /*__inner_css_start__*/
49
+ ".___SScrollArea_fowiu_gg_{width:-moz-fit-content;width:fit-content}.___SScrollArea_fowiu_gg_ .___SContainer_fowiu_gg_{overflow:visible;overflow:initial}.___SScrollArea_fowiu_gg_ .___SContainer_fowiu_gg_._scrollDirection_both_fowiu_gg_{overflow:auto}.___SScrollArea_fowiu_gg_ .___SContainer_fowiu_gg_._scrollDirection_horizontal_fowiu_gg_{overflow-x:auto;overflow-y:initial}.___SScrollArea_fowiu_gg_ .___SContainer_fowiu_gg_._scrollDirection_vertical_fowiu_gg_{overflow-x:initial;overflow-y:auto}.___SScrollArea_fowiu_gg_ .___SContainer_fowiu_gg_.__loading_fowiu_gg_{overflow:hidden}.___SScrollArea_fowiu_gg_ .___SContainer_fowiu_gg_.__headerHeight_fowiu_gg_{scroll-padding-top:var(--headerHeight_fowiu)}.___SScrollArea_fowiu_gg_ .___SContainer_fowiu_gg_.__leftScrollPadding_fowiu_gg_{scroll-padding-left:var(--leftScrollPadding_fowiu)}.___SScrollArea_fowiu_gg_ .___SContainer_fowiu_gg_.__rightScrollPadding_fowiu_gg_{scroll-padding-right:var(--rightScrollPadding_fowiu)}.___SScrollArea_fowiu_gg_ .___SShadowVertical_fowiu_gg_:before{display:none}.___SScrollArea_fowiu_gg_ .___SShadowHorizontal_fowiu_gg_:after,.___SScrollArea_fowiu_gg_ .___SShadowHorizontal_fowiu_gg_:before,.___SScrollArea_fowiu_gg_ .___SShadowVertical_fowiu_gg_:after{z-index:2}",
50
+ /*__inner_css_end__*/
51
+ "fowiu_gg_"
52
+ ), /*__reshadow_css_end__*/
53
+ {
54
+ "__SScrollArea": "___SScrollArea_fowiu_gg_",
55
+ "__SContainer": "___SContainer_fowiu_gg_",
56
+ "_scrollDirection_both": "_scrollDirection_both_fowiu_gg_",
57
+ "_scrollDirection_horizontal": "_scrollDirection_horizontal_fowiu_gg_",
58
+ "_scrollDirection_vertical": "_scrollDirection_vertical_fowiu_gg_",
59
+ "_loading": "__loading_fowiu_gg_",
60
+ "_headerHeight": "__headerHeight_fowiu_gg_",
61
+ "--headerHeight": "--headerHeight_fowiu",
62
+ "_leftScrollPadding": "__leftScrollPadding_fowiu_gg_",
63
+ "--leftScrollPadding": "--leftScrollPadding_fowiu",
64
+ "_rightScrollPadding": "__rightScrollPadding_fowiu_gg_",
65
+ "--rightScrollPadding": "--rightScrollPadding_fowiu",
66
+ "__SShadowVertical": "___SShadowVertical_fowiu_gg_",
67
+ "__SShadowHorizontal": "___SShadowHorizontal_fowiu_gg_"
68
+ })
69
+ );
70
+ var ACCORDION = Symbol("accordion");
71
+ var ROW_GROUP = Symbol("ROW_GROUP");
72
+ var UNIQ_ROW_KEY = Symbol("UNIQ_ROW_KEY");
73
+ var SELECT_ALL = Symbol("SELECT_ALL");
74
+ var ROW_INDEX = Symbol("ROW_INDEX");
75
+ var SCROLL_BAR_HEIGHT = 12;
76
+ var DataTableRoot = /* @__PURE__ */ function(_Component) {
77
+ _inherits(DataTableRoot2, _Component);
78
+ var _super = _createSuper(DataTableRoot2);
79
+ function DataTableRoot2(props) {
80
+ var _this;
81
+ _classCallCheck(this, DataTableRoot2);
82
+ _this = _super.call(this, props);
83
+ _defineProperty(_assertThisInitialized(_this), "columns", []);
84
+ _defineProperty(_assertThisInitialized(_this), "treeColumns", []);
85
+ _defineProperty(_assertThisInitialized(_this), "hasGroups", false);
86
+ _defineProperty(_assertThisInitialized(_this), "focusedCell", [-1, -1]);
87
+ _defineProperty(_assertThisInitialized(_this), "scrollAreaRef", /* @__PURE__ */ React.createRef());
88
+ _defineProperty(_assertThisInitialized(_this), "tableContainerRef", /* @__PURE__ */ React.createRef());
89
+ _defineProperty(_assertThisInitialized(_this), "tableRef", /* @__PURE__ */ React.createRef());
90
+ _defineProperty(_assertThisInitialized(_this), "headerRef", /* @__PURE__ */ React.createRef());
91
+ _defineProperty(_assertThisInitialized(_this), "spinnerRef", /* @__PURE__ */ React.createRef());
92
+ _defineProperty(_assertThisInitialized(_this), "gridAreaGroupMap", /* @__PURE__ */ new Map());
93
+ _defineProperty(_assertThisInitialized(_this), "columnsSplitter", "/");
94
+ _defineProperty(_assertThisInitialized(_this), "rows", []);
95
+ _defineProperty(_assertThisInitialized(_this), "flatRows", []);
96
+ _defineProperty(_assertThisInitialized(_this), "selectAllMessageTimer", 0);
97
+ _defineProperty(_assertThisInitialized(_this), "headerNodesMap", /* @__PURE__ */ new Map());
98
+ _defineProperty(_assertThisInitialized(_this), "state", {
99
+ scrollTop: 0,
100
+ scrollDirection: "down",
101
+ selectAllMessage: ""
102
+ });
103
+ _defineProperty(_assertThisInitialized(_this), "handleSelectRow", function(isSelected, selectedRowIndex, row, event) {
104
+ var _this$asProps = _this.asProps, selectedRows = _this$asProps.selectedRows, onSelectedRowsChange = _this$asProps.onSelectedRowsChange;
105
+ _this$asProps.data;
106
+ if (selectedRows && onSelectedRowsChange) {
107
+ var newSelectedRows = new Set(selectedRows);
108
+ if (isSelected && !newSelectedRows.has(selectedRowIndex)) {
109
+ newSelectedRows.add(selectedRowIndex);
110
+ } else if (!isSelected && newSelectedRows.has(selectedRowIndex)) {
111
+ newSelectedRows["delete"](selectedRowIndex);
112
+ }
113
+ onSelectedRowsChange(_toConsumableArray(newSelectedRows), event, {
114
+ selectedRowIndex,
115
+ isSelected,
116
+ row
117
+ });
118
+ }
119
+ });
120
+ _defineProperty(_assertThisInitialized(_this), "setSelectAllMessage", function(selectedAll) {
121
+ if (_this.selectAllMessageTimer) {
122
+ clearTimeout(_this.selectAllMessageTimer);
123
+ }
124
+ var getI18nText = _this.asProps.getI18nText;
125
+ var message = getI18nText(selectedAll ? "DataTable.allItemsSelected:aria-live" : "DataTable.allItemsDeselected:aria-live");
126
+ _this.setState({
127
+ selectAllMessage: message
128
+ });
129
+ _this.selectAllMessageTimer = window.setTimeout(function() {
130
+ _this.setState({
131
+ selectAllMessage: ""
132
+ });
133
+ }, 5e3);
134
+ });
135
+ _defineProperty(_assertThisInitialized(_this), "getRow", function(index) {
136
+ var _this$tableRef$curren;
137
+ return (_this$tableRef$curren = _this.tableRef.current) === null || _this$tableRef$curren === void 0 ? void 0 : _this$tableRef$curren.querySelector('[aria-rowindex="'.concat(index + 1, '"]'));
138
+ });
139
+ _defineProperty(_assertThisInitialized(_this), "hasFocusableInHeader", function() {
140
+ return _this.headerRef.current && hasFocusableIn(_this.headerRef.current);
141
+ });
142
+ _defineProperty(_assertThisInitialized(_this), "onExpandRow", function(expandedRow) {
143
+ var expandedRows = _this.asProps.expandedRows;
144
+ if (expandedRows.has(expandedRow[UNIQ_ROW_KEY])) {
145
+ expandedRows["delete"](expandedRow[UNIQ_ROW_KEY]);
146
+ } else {
147
+ expandedRows.add(expandedRow[UNIQ_ROW_KEY]);
148
+ }
149
+ _this.handlers.expandedRows(new Set(_toConsumableArray(expandedRows)));
150
+ });
151
+ _defineProperty(_assertThisInitialized(_this), "changeFocusCell", function(rowIndex, colIndex, direction) {
152
+ var _this$tableRef$curren2, _this$tableRef$curren3;
153
+ var hasFocusable = _this.hasFocusableInHeader();
154
+ var maxCol = _this.columns.length - 1;
155
+ var maxRow = _this.totalRows || 1;
156
+ var currentRow = (_this$tableRef$curren2 = _this.tableRef.current) === null || _this$tableRef$curren2 === void 0 ? void 0 : _this$tableRef$curren2.querySelector('[aria-rowindex="'.concat(_this.focusedCell[0] + 1, '"]'));
157
+ var headerCells = (_this$tableRef$curren3 = _this.tableRef.current) === null || _this$tableRef$curren3 === void 0 ? void 0 : _this$tableRef$curren3.querySelectorAll("[role=columnheader]");
158
+ var currentCell = currentRow === null || currentRow === void 0 ? void 0 : currentRow.querySelector("[role=gridcell][aria-colindex='".concat(_this.focusedCell[1] + 1, "']"));
159
+ var currentHeaderCell = headerCells === null || headerCells === void 0 ? void 0 : headerCells.item(_this.focusedCell[1]);
160
+ var changed = true;
161
+ var newRow = _this.focusedCell[0] + rowIndex;
162
+ var newCol = _this.focusedCell[1] + colIndex;
163
+ if ((hasFocusable && newRow < 0 || !hasFocusable && newRow < 1 || newRow > maxRow) && newRow !== _this.focusedCell[0]) {
164
+ changed = false;
165
+ }
166
+ if ((newCol < 0 || newCol > maxCol) && newCol !== _this.focusedCell[1]) {
167
+ changed = false;
168
+ }
169
+ if (!changed) return;
170
+ var row = _this.getRow(newRow);
171
+ var cell = row === null || row === void 0 ? void 0 : row.querySelector(':scope > [role=gridcell][aria-colindex="'.concat(newCol + 1, '"], :scope > [role=columnheader][aria-colindex="').concat(newCol + 1, '"], :scope > div > [role=columnheader][aria-colindex="').concat(newCol + 1, '"]'));
172
+ if (cell instanceof HTMLElement && currentCell !== cell) {
173
+ _this.focusedCell = [newRow, newCol];
174
+ currentCell === null || currentCell === void 0 ? void 0 : currentCell.setAttribute("inert", "");
175
+ if (currentCell !== currentHeaderCell) {
176
+ currentCell === null || currentCell === void 0 ? void 0 : currentCell.removeAttribute("aria-describedby");
177
+ }
178
+ var headerCell = headerCells === null || headerCells === void 0 ? void 0 : headerCells.item(newCol);
179
+ var describedBy = headerCell === null || headerCell === void 0 ? void 0 : headerCell.getAttribute("aria-describedby");
180
+ cell.removeAttribute("inert");
181
+ if (headerCell !== cell && describedBy) {
182
+ cell.setAttribute("aria-describedby", describedBy);
183
+ }
184
+ cell === null || cell === void 0 ? void 0 : cell.focus();
185
+ if (newRow !== 0) {
186
+ currentHeaderCell === null || currentHeaderCell === void 0 ? void 0 : currentHeaderCell.setAttribute("inert", "");
187
+ var _headerCell = headerCells === null || headerCells === void 0 ? void 0 : headerCells.item(newCol);
188
+ _headerCell === null || _headerCell === void 0 ? void 0 : _headerCell.removeAttribute("inert");
189
+ }
190
+ } else if (cell === null && currentCell instanceof HTMLElement) {
191
+ var rowI = rowIndex;
192
+ var colI = colIndex;
193
+ if (direction === "left" || direction === "right") {
194
+ var _currentCell$parentEl, _currentCell$parentEl2, _row$children;
195
+ if (((_currentCell$parentEl = currentCell.parentElement) === null || _currentCell$parentEl === void 0 ? void 0 : _currentCell$parentEl.dataset.uiName) === "Collapse") {
196
+ return;
197
+ }
198
+ 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) {
199
+ colI = direction === "left" ? colI - 1 : colI + 1;
200
+ } else {
201
+ rowI = rowI - 1;
202
+ }
203
+ } else if (direction === "up" || direction === "down") {
204
+ if (currentCell.dataset.groupedBy === "rowgroup" || Number(currentCell.getAttribute("aria-colindex")) === 1) {
205
+ rowI = direction === "up" ? rowI - 1 : rowI + 1;
206
+ } else {
207
+ colI = colI - 1;
208
+ }
209
+ }
210
+ _this.changeFocusCell(rowI, colI, direction);
211
+ } else if (cell === null && currentHeaderCell instanceof HTMLElement && direction === "down") {
212
+ var _colI = colIndex - 1;
213
+ _this.changeFocusCell(rowIndex, _colI, direction);
214
+ } else if (row === null && _this.focusedCell[0] === 0 && direction === "down" && _this.asProps.virtualScroll) {
215
+ _this.changeFocusCell(rowIndex + 1, colIndex, direction);
216
+ }
217
+ });
218
+ _defineProperty(_assertThisInitialized(_this), "handleKeyDown", function(e) {
219
+ switch (e.key) {
220
+ case "Tab": {
221
+ _this.setInert(true);
222
+ break;
223
+ }
224
+ case "ArrowLeft": {
225
+ e.preventDefault();
226
+ _this.changeFocusCell(0, -1, "left");
227
+ break;
228
+ }
229
+ case "ArrowRight": {
230
+ e.preventDefault();
231
+ _this.changeFocusCell(0, 1, "right");
232
+ break;
233
+ }
234
+ case "ArrowUp": {
235
+ e.preventDefault();
236
+ _this.changeFocusCell(-1, 0, "up");
237
+ break;
238
+ }
239
+ case "ArrowDown": {
240
+ e.preventDefault();
241
+ _this.changeFocusCell(1, 0, "down");
242
+ break;
243
+ }
244
+ }
245
+ });
246
+ _defineProperty(_assertThisInitialized(_this), "initFocusableCell", function() {
247
+ var hasFocusable = _this.hasFocusableInHeader();
248
+ if (hasFocusable) {
249
+ _this.focusedCell = [0, 0];
250
+ } else {
251
+ _this.focusedCell = [1, 0];
252
+ }
253
+ });
254
+ _defineProperty(_assertThisInitialized(_this), "handleScroll", trottle(function(e) {
255
+ var scrollTop = e.target.scrollTop;
256
+ var scrollDirection = scrollTop > _this.state.scrollTop ? "down" : "up";
257
+ _this.setState({
258
+ scrollTop,
259
+ scrollDirection
260
+ });
261
+ }));
262
+ _defineProperty(_assertThisInitialized(_this), "handleFocus", function(e) {
263
+ if (_this.asProps.loading) {
264
+ var _this$spinnerRef$curr;
265
+ (_this$spinnerRef$curr = _this.spinnerRef.current) === null || _this$spinnerRef$curr === void 0 ? void 0 : _this$spinnerRef$curr.focus();
266
+ e.currentTarget.setAttribute("tabIndex", "-1");
267
+ } else if ((!e.relatedTarget || !isFocusInside(e.currentTarget, e.relatedTarget)) && lastInteraction.isKeyboard()) {
268
+ var _row;
269
+ if (_this.focusedCell[0] === -1 && _this.focusedCell[1] === -1) {
270
+ _this.initFocusableCell();
271
+ }
272
+ _this.setInert(true);
273
+ var row = _this.getRow(_this.focusedCell[0]);
274
+ if (!row) {
275
+ _this.initFocusableCell();
276
+ row = _this.getRow(_this.focusedCell[0]);
277
+ }
278
+ if (!row && _this.asProps.virtualScroll) {
279
+ var _this$tableRef$curren4;
280
+ var firstAvailableCell = (_this$tableRef$curren4 = _this.tableRef.current) === null || _this$tableRef$curren4 === void 0 ? void 0 : _this$tableRef$curren4.querySelector('[role="gridcell"]');
281
+ var firstAvailableRow = firstAvailableCell === null || firstAvailableCell === void 0 ? void 0 : firstAvailableCell.parentElement;
282
+ if (firstAvailableCell && firstAvailableRow) {
283
+ var _Number, _Number2;
284
+ var colIndex = ((_Number = Number(firstAvailableCell.getAttribute("aria-colindex"))) !== null && _Number !== void 0 ? _Number : 1) - 1;
285
+ var rowIndex = ((_Number2 = Number(firstAvailableRow.getAttribute("aria-rowindex"))) !== null && _Number2 !== void 0 ? _Number2 : 1) - 1;
286
+ _this.focusedCell[0] = rowIndex;
287
+ _this.focusedCell[1] = colIndex;
288
+ row = firstAvailableRow;
289
+ }
290
+ }
291
+ var cell = (_row = row) === null || _row === void 0 ? void 0 : _row.querySelectorAll("[role=gridcell], [role=columnheader]").item(_this.focusedCell[1]);
292
+ cell === null || cell === void 0 ? void 0 : cell.removeAttribute("inert");
293
+ if (cell instanceof HTMLElement) {
294
+ if (hasParent(e.target, cell)) {
295
+ e.target.focus();
296
+ } else {
297
+ cell.focus();
298
+ }
299
+ }
300
+ e.currentTarget.setAttribute("tabIndex", "-1");
301
+ }
302
+ });
303
+ _defineProperty(_assertThisInitialized(_this), "handleBlur", function(e) {
304
+ var relatedTarget = e.relatedTarget;
305
+ var tableElement = _this.tableRef.current;
306
+ if (tableElement && (!relatedTarget || !isFocusInside(tableElement, relatedTarget) || !lastInteraction.isKeyboard())) {
307
+ _this.setInert(false);
308
+ tableElement.setAttribute("tabIndex", "0");
309
+ }
310
+ });
311
+ _defineProperty(_assertThisInitialized(_this), "handleMouseMove", function() {
312
+ _this.setInert(false);
313
+ });
314
+ _defineProperty(_assertThisInitialized(_this), "handleBackFromAccordion", function(cellIndex) {
315
+ _this.changeFocusCell(-1, cellIndex === -1 ? 0 : cellIndex, "up");
316
+ });
317
+ _defineProperty(_assertThisInitialized(_this), "getScrollOffsetValue", function() {
318
+ if (!_this.headerRef.current) {
319
+ return [0, 0];
320
+ }
321
+ var setToMap = function setToMap2(element) {
322
+ if (element.getAttribute("name") && element.dataset.uiName === "Head.Column") {
323
+ var name = element.getAttribute("name");
324
+ if (name) {
325
+ _this.headerNodesMap.set(name, element);
326
+ }
327
+ }
328
+ };
329
+ _this.headerRef.current.childNodes.forEach(function(node) {
330
+ if (node instanceof HTMLElement) {
331
+ if (node.classList.value.includes("SGroupContainer")) {
332
+ node.childNodes.forEach(function(columnNode) {
333
+ if (columnNode instanceof HTMLElement) {
334
+ setToMap(columnNode);
335
+ }
336
+ });
337
+ } else {
338
+ setToMap(node);
339
+ }
340
+ }
341
+ });
342
+ return _this.columns.reduce(function(acc, column) {
343
+ if (column.fixed === "left") {
344
+ var _this$headerNodesMap$, _this$headerNodesMap$2;
345
+ acc[0] += (_this$headerNodesMap$ = (_this$headerNodesMap$2 = _this.headerNodesMap.get(column.name)) === null || _this$headerNodesMap$2 === void 0 ? void 0 : _this$headerNodesMap$2.getBoundingClientRect().width) !== null && _this$headerNodesMap$ !== void 0 ? _this$headerNodesMap$ : 0;
346
+ }
347
+ if (column.fixed === "right") {
348
+ var _this$headerNodesMap$3, _this$headerNodesMap$4;
349
+ acc[1] += (_this$headerNodesMap$3 = (_this$headerNodesMap$4 = _this.headerNodesMap.get(column.name)) === null || _this$headerNodesMap$4 === void 0 ? void 0 : _this$headerNodesMap$4.getBoundingClientRect().width) !== null && _this$headerNodesMap$3 !== void 0 ? _this$headerNodesMap$3 : 0;
350
+ }
351
+ return acc;
352
+ }, [0, 0]);
353
+ });
354
+ _defineProperty(_assertThisInitialized(_this), "getFixedStyle", function(cell) {
355
+ var side = cell.fixed;
356
+ if (!side) return [void 0, void 0];
357
+ var names = cell.name.split("/");
358
+ var nameSideMap = {
359
+ left: names[0],
360
+ right: names[names.length - 1]
361
+ };
362
+ var name = nameSideMap[side];
363
+ var index = _this.columns.findIndex(function(column) {
364
+ return column.name === name;
365
+ });
366
+ if (index === -1) return [void 0, void 0];
367
+ var startIndexSideMap = {
368
+ left: 0,
369
+ right: index + 1
370
+ };
371
+ var endIndexSideMap = {
372
+ left: index,
373
+ right: _this.columns.length
374
+ };
375
+ var columnsFixed = _this.columns.slice(startIndexSideMap[side], endIndexSideMap[side]);
376
+ if (columnsFixed.length < 1) return [side, 0];
377
+ var sum = columnsFixed.reduce(function(acc, column) {
378
+ var _this$headerNodesMap$5;
379
+ return acc + ((_this$headerNodesMap$5 = _this.headerNodesMap.get(column.name)) === null || _this$headerNodesMap$5 === void 0 ? void 0 : _this$headerNodesMap$5.getBoundingClientRect().width);
380
+ }, 0);
381
+ return [side, "".concat(sum, "px")];
382
+ });
383
+ if (props.children) {
384
+ _this.columns = _this.calculateColumns();
385
+ } else {
386
+ var cols = _this.calculateColumnsFromConfig();
387
+ _this.columns = cols[0];
388
+ _this.treeColumns = cols[1];
389
+ }
390
+ _this.rows = _this.calculateRows();
391
+ _this.flatRows = _this.rows.flat();
392
+ return _this;
393
+ }
394
+ _createClass(DataTableRoot2, [{
395
+ key: "uncontrolledProps",
396
+ value: function uncontrolledProps() {
397
+ return {
398
+ expandedRows: /* @__PURE__ */ new Set()
399
+ };
400
+ }
401
+ }, {
402
+ key: "componentDidMount",
403
+ value: function componentDidMount() {
404
+ var _this2 = this;
405
+ var _this$asProps2 = this.asProps, headerProps = _this$asProps2.headerProps, loading = _this$asProps2.loading;
406
+ if (headerProps !== null && headerProps !== void 0 && headerProps.sticky && !headerProps.h || loading || this.columns.some(function(c) {
407
+ return c.fixed;
408
+ })) {
409
+ requestAnimationFrame(function() {
410
+ _this2.forceUpdate();
411
+ });
412
+ }
413
+ }
414
+ }, {
415
+ key: "componentDidUpdate",
416
+ value: function componentDidUpdate(prevProps) {
417
+ var _this$asProps3 = this.asProps, data = _this$asProps3.data, selectedRows = _this$asProps3.selectedRows, columns = _this$asProps3.columns;
418
+ if (prevProps.columns !== columns) {
419
+ var cols = this.calculateColumnsFromConfig();
420
+ this.columns = cols[0];
421
+ this.treeColumns = cols[1];
422
+ }
423
+ if (prevProps.data !== data || prevProps.columns !== columns) {
424
+ this.rows = this.calculateRows();
425
+ this.flatRows = this.rows.flat();
426
+ this.forceUpdate();
427
+ }
428
+ if (prevProps.selectedRows !== selectedRows && selectedRows !== void 0) {
429
+ if (prevProps.selectedRows.length < data.length && selectedRows.length === data.length) {
430
+ this.setSelectAllMessage(true);
431
+ } else if (prevProps.selectedRows.length > 0 && selectedRows.length === 0) {
432
+ this.setSelectAllMessage(false);
433
+ }
434
+ }
435
+ }
436
+ }, {
437
+ key: "totalRows",
438
+ get: function get() {
439
+ var _this$asProps4 = this.asProps, totalRows = _this$asProps4.totalRows, expandedRows = _this$asProps4.expandedRows;
440
+ var flatRows = this.rows.flat();
441
+ var expandedRowsCount = Array.from(expandedRows !== null && expandedRows !== void 0 ? expandedRows : []).reduce(function(acc, rowKey) {
442
+ var dtRow = flatRows.find(function(el) {
443
+ return el[UNIQ_ROW_KEY] === rowKey;
444
+ });
445
+ if (dtRow) {
446
+ var _expandedRows = dtRow[ACCORDION];
447
+ if (Array.isArray(_expandedRows)) {
448
+ acc = acc + _expandedRows.length;
449
+ } else {
450
+ acc = acc + 1;
451
+ }
452
+ }
453
+ return acc;
454
+ }, 0);
455
+ if (totalRows !== void 0) {
456
+ return totalRows + expandedRowsCount;
457
+ }
458
+ var rows = this.rows.reduce(function(acc, item) {
459
+ acc = acc + 1;
460
+ if (Array.isArray(item)) {
461
+ acc = acc + item.length;
462
+ }
463
+ return acc;
464
+ }, 0);
465
+ return rows + expandedRowsCount;
466
+ }
467
+ }, {
468
+ key: "gridSettings",
469
+ get: function get() {
470
+ var columns = this.columns;
471
+ var gridTemplateColumns = columns.map(function(c) {
472
+ return c.gtcWidth;
473
+ });
474
+ var gridTemplateAreas = columns.map(function(c) {
475
+ return c.name;
476
+ });
477
+ return {
478
+ gridTemplateColumns,
479
+ gridTemplateAreas
480
+ };
481
+ }
482
+ }, {
483
+ key: "getHeadProps",
484
+ value: function getHeadProps() {
485
+ var _this3 = this;
486
+ var _this$asProps5 = this.asProps, use = _this$asProps5.use, compact = _this$asProps5.compact, sort = _this$asProps5.sort, onSortChange = _this$asProps5.onSortChange, getI18nText = _this$asProps5.getI18nText, uid = _this$asProps5.uid, headerProps = _this$asProps5.headerProps, onSelectedRowsChange = _this$asProps5.onSelectedRowsChange, selectedRows = _this$asProps5.selectedRows, sideIndents = _this$asProps5.sideIndents;
487
+ var _this$gridSettings = this.gridSettings, gridTemplateColumns = _this$gridSettings.gridTemplateColumns, gridTemplateAreas = _this$gridSettings.gridTemplateAreas;
488
+ return _objectSpread({
489
+ columns: this.columns,
490
+ treeColumns: this.treeColumns,
491
+ use,
492
+ tableRef: this.tableRef,
493
+ compact: Boolean(compact),
494
+ sort,
495
+ onSortChange,
496
+ getI18nText,
497
+ uid,
498
+ ref: this.headerRef,
499
+ gridAreaGroupMap: this.gridAreaGroupMap,
500
+ gridTemplateColumns,
501
+ gridTemplateAreas,
502
+ sideIndents,
503
+ totalRows: this.totalRows,
504
+ selectedRows,
505
+ onChangeSelectAll: function onChangeSelectAll(value, e) {
506
+ var selectedRowsIndexes = value ? new Array(_this3.totalRows).fill(void 0).map(function(_, i) {
507
+ return i;
508
+ }) : [];
509
+ onSelectedRowsChange === null || onSelectedRowsChange === void 0 ? void 0 : onSelectedRowsChange(selectedRowsIndexes, e);
510
+ },
511
+ getFixedStyle: this.getFixedStyle
512
+ }, headerProps);
513
+ }
514
+ }, {
515
+ key: "getBodyProps",
516
+ value: function getBodyProps() {
517
+ var _this$asProps6 = this.asProps, use = _this$asProps6.use, compact = _this$asProps6.compact, loading = _this$asProps6.loading, getI18nText = _this$asProps6.getI18nText, expandedRows = _this$asProps6.expandedRows, virtualScroll = _this$asProps6.virtualScroll, uid = _this$asProps6.uid, rowProps = _this$asProps6.rowProps, renderCell = _this$asProps6.renderCell, headerProps = _this$asProps6.headerProps, renderEmptyData2 = _this$asProps6.renderEmptyData, sideIndents = _this$asProps6.sideIndents, selectedRows = _this$asProps6.selectedRows;
518
+ var _this$gridSettings2 = this.gridSettings, gridTemplateColumns = _this$gridSettings2.gridTemplateColumns, gridTemplateAreas = _this$gridSettings2.gridTemplateAreas;
519
+ return {
520
+ columns: this.columns,
521
+ rows: this.rows,
522
+ flatRows: this.flatRows,
523
+ use,
524
+ compact: Boolean(compact),
525
+ gridTemplateColumns,
526
+ gridTemplateAreas,
527
+ loading,
528
+ headerHeight: this.getHeaderHeight(),
529
+ stickyHeader: headerProps === null || headerProps === void 0 ? void 0 : headerProps.sticky,
530
+ getI18nText,
531
+ expandedRows,
532
+ onExpandRow: this.onExpandRow,
533
+ spinnerRef: this.spinnerRef,
534
+ scrollTop: this.state.scrollTop,
535
+ scrollDirection: this.state.scrollDirection,
536
+ tableContainerRef: this.tableContainerRef,
537
+ tableRef: this.tableRef,
538
+ scrollAreaRef: this.scrollAreaRef,
539
+ onBackFromAccordion: this.handleBackFromAccordion,
540
+ virtualScroll,
541
+ hasGroups: this.hasGroups,
542
+ uid,
543
+ rowProps,
544
+ renderCell,
545
+ renderEmptyData: renderEmptyData2,
546
+ sideIndents,
547
+ selectedRows,
548
+ onSelectRow: this.handleSelectRow,
549
+ getFixedStyle: this.getFixedStyle
550
+ };
551
+ }
552
+ }, {
553
+ key: "setInert",
554
+ value: function setInert(value) {
555
+ var _this$tableRef$curren5;
556
+ var cells = (_this$tableRef$curren5 = this.tableRef.current) === null || _this$tableRef$curren5 === void 0 ? void 0 : _this$tableRef$curren5.querySelectorAll("[role=gridcell], [role=columnheader]");
557
+ cells === null || cells === void 0 ? void 0 : cells.forEach(function(cell) {
558
+ if (value === true) {
559
+ cell.setAttribute("inert", "");
560
+ } else {
561
+ cell.removeAttribute("inert");
562
+ }
563
+ });
564
+ }
565
+ }, {
566
+ key: "render",
567
+ value: function render() {
568
+ var _ref = this.asProps, _ref2;
569
+ var SDataTable = Box;
570
+ var _this$asProps7 = this.asProps, Children = _this$asProps7.Children, styles = _this$asProps7.styles, w = _this$asProps7.w, wMax = _this$asProps7.wMax, wMin = _this$asProps7.wMin, h = _this$asProps7.h, hMax = _this$asProps7.hMax, hMin = _this$asProps7.hMin, virtualScroll = _this$asProps7.virtualScroll, children = _this$asProps7.children, headerProps = _this$asProps7.headerProps, loading = _this$asProps7.loading, selectedRows = _this$asProps7.selectedRows;
571
+ var _this$getScrollOffset = this.getScrollOffsetValue(), _this$getScrollOffset2 = _slicedToArray(_this$getScrollOffset, 2), offsetLeftSum = _this$getScrollOffset2[0], offsetRightSum = _this$getScrollOffset2[1];
572
+ var _this$gridSettings3 = this.gridSettings, gridTemplateColumns = _this$gridSettings3.gridTemplateColumns, gridTemplateAreas = _this$gridSettings3.gridTemplateAreas;
573
+ var Head2 = findComponent(Children, ["DataTable.Head"]);
574
+ var headerPropsToCheck = headerProps !== null && headerProps !== void 0 ? headerProps : Head2 === null || Head2 === void 0 ? void 0 : Head2.props;
575
+ var headerHeight = (headerProps === null || headerProps === void 0 ? void 0 : headerProps.h) || this.getHeaderHeight();
576
+ var topOffset = headerPropsToCheck !== null && headerPropsToCheck !== void 0 && headerPropsToCheck.sticky || headerPropsToCheck !== null && headerPropsToCheck !== void 0 && headerPropsToCheck.withScrollBar ? headerHeight : void 0;
577
+ var width = w !== null && w !== void 0 ? w : this.columns.some(function(c) {
578
+ return c.gtcWidth === "auto" || c.gtcWidth === "1fr";
579
+ }) ? "100%" : void 0;
580
+ var gridTemplateRows = void 0;
581
+ if (virtualScroll && typeof virtualScroll !== "boolean" && "rowHeight" in virtualScroll) {
582
+ gridTemplateRows = "auto auto repeat(".concat(this.totalRows, ", minmax(").concat(virtualScroll.rowHeight, "px, auto)");
583
+ }
584
+ var scrollDirection = void 0;
585
+ var hasWidthSettings = Boolean(w) && w !== "100%" || Boolean(wMax);
586
+ var hasHeightSettings = Boolean(h) && h !== "fit-content" || Boolean(hMax);
587
+ if (hasWidthSettings && !hasHeightSettings) {
588
+ scrollDirection = "horizontal";
589
+ } else if (hasHeightSettings && !hasWidthSettings) {
590
+ scrollDirection = "vertical";
591
+ } else if (hasWidthSettings && hasHeightSettings) {
592
+ scrollDirection = "both";
593
+ }
594
+ return _ref2 = sstyled(styles), /* @__PURE__ */ React.createElement(ScrollArea, _ref2.cn("ScrollArea", {
595
+ "leftOffset": offsetLeftSum,
596
+ "rightOffset": offsetRightSum,
597
+ "topOffset": topOffset,
598
+ "w": width,
599
+ "wMax": wMax,
600
+ "wMin": wMin,
601
+ "h": h,
602
+ "hMax": hMax,
603
+ "hMin": hMin,
604
+ "shadow": true,
605
+ "ref": this.scrollAreaRef,
606
+ "container": this.tableContainerRef,
607
+ "styles": scrollStyles,
608
+ "onScroll": virtualScroll ? this.handleScroll : void 0,
609
+ "disableAutofocusToContent": true
610
+ }), /* @__PURE__ */ React.createElement(ScrollArea.Container, {
611
+ tabIndex: -1,
612
+ scrollDirection,
613
+ loading,
614
+ headerHeight: "".concat(headerHeight, "px"),
615
+ leftScrollPadding: "".concat(offsetLeftSum, "px"),
616
+ rightScrollPadding: "".concat(offsetRightSum, "px")
617
+ }, /* @__PURE__ */ React.createElement(SDataTable, _ref2.cn("SDataTable", _objectSpread({}, assignProps({
618
+ "ref": forkRef(this.tableRef, this.tableContainerRef),
619
+ "role": "grid",
620
+ "onKeyDown": this.handleKeyDown,
621
+ "onMouseMove": this.handleMouseMove,
622
+ "tabIndex": 0,
623
+ "onFocus": this.handleFocus,
624
+ "onBlur": this.handleBlur,
625
+ "aria-rowcount": this.totalRows,
626
+ "aria-colcount": this.columns.length,
627
+ "gridTemplateColumns": gridTemplateColumns.join(" "),
628
+ "gridTemplateAreas": gridTemplateAreas.join(" "),
629
+ "gridTemplateRows": gridTemplateRows,
630
+ "w": "100%",
631
+ "use:data": void 0,
632
+ "use:w": void 0,
633
+ "use:wMax": void 0,
634
+ "use:wMin": void 0,
635
+ "use:h": void 0,
636
+ "use:hMax": void 0,
637
+ "use:hMin": void 0
638
+ }, _ref))), children ? /* @__PURE__ */ React.createElement(Children, _ref2.cn("Children", {})) : /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(DataTableInternal.Head, null), /* @__PURE__ */ React.createElement(DataTableInternal.Body, null)))), (headerPropsToCheck === null || headerPropsToCheck === void 0 ? void 0 : headerPropsToCheck.withScrollBar) && topOffset && !loading && /* @__PURE__ */ React.createElement(ScrollArea.Bar, {
639
+ orientation: "horizontal",
640
+ top: topOffset - SCROLL_BAR_HEIGHT,
641
+ zIndex: 10
642
+ }), !loading && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(ScrollArea.Bar, {
643
+ orientation: "horizontal",
644
+ zIndex: 10
645
+ }), /* @__PURE__ */ React.createElement(ScrollArea.Bar, {
646
+ orientation: "vertical",
647
+ zIndex: 10
648
+ })), selectedRows !== void 0 && /* @__PURE__ */ React.createElement(ScreenReaderOnly, _ref2.cn("ScreenReaderOnly", {
649
+ "aria-live": "polite",
650
+ "role": "status"
651
+ }), this.state.selectAllMessage));
652
+ }
653
+ }, {
654
+ key: "calculateColumns",
655
+ value: function calculateColumns() {
656
+ var _this4 = this;
657
+ var _this$props = this.props, children = _this$props.children, data = _this$props.data, selectedRows = _this$props.selectedRows;
658
+ var HeadComponent = findComponent(children, ["Head"]);
659
+ this.hasGroups = findComponent(HeadComponent.props.children, ["Head.Group"]) !== void 0;
660
+ var groupIndex = 0;
661
+ var gridColumnIndex = selectedRows ? 2 : 1;
662
+ var calculateGridTemplateColumn = this.calculateGridTemplateColumn.bind(this);
663
+ var columns = [];
664
+ if (selectedRows) {
665
+ var column = {
666
+ name: SELECT_ALL.toString(),
667
+ gtcWidth: "40px",
668
+ alignItems: "flex-start",
669
+ children: ""
670
+ };
671
+ columns.push(column);
672
+ }
673
+ var makeColumn = function makeColumn2(columnElement, parent, isFirst, isLast) {
674
+ var _columnElement$props$, _ref3, _columnElement$props$2;
675
+ var leftBordersFromParent = isFirst && ((parent === null || parent === void 0 ? void 0 : parent.props.borders) === "both" || (parent === null || parent === void 0 ? void 0 : parent.props.borders) === "left") ? "left" : void 0;
676
+ 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" : void 0;
677
+ var column2 = {
678
+ name: columnElement.props.name,
679
+ gtcWidth: calculateGridTemplateColumn(columnElement),
680
+ fixed: (_columnElement$props$ = columnElement.props.fixed) !== null && _columnElement$props$ !== void 0 ? _columnElement$props$ : parent === null || parent === void 0 ? void 0 : parent.props.fixed,
681
+ 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
+ parent,
683
+ flexWrap: columnElement.props.flexWrap,
684
+ alignItems: columnElement.props.alignItems,
685
+ alignContent: columnElement.props.alignContent,
686
+ justifyContent: columnElement.props.justifyContent,
687
+ children: ""
688
+ };
689
+ return column2;
690
+ };
691
+ var childIsColumn = function childIsColumn2(child) {
692
+ return child.type === Head.Column;
693
+ };
694
+ var childIsGroup = function childIsGroup2(child) {
695
+ return child.type === Head.Group;
696
+ };
697
+ React.Children.forEach(HeadComponent.props.children, function(child, i) {
698
+ if (!/* @__PURE__ */ React.isValidElement(child)) return;
699
+ if (childIsColumn(child)) {
700
+ var col = makeColumn(child);
701
+ col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(_this4.hasGroups ? "3" : "2", " / ").concat(gridColumnIndex + 1);
702
+ gridColumnIndex++;
703
+ columns.push(col);
704
+ } else if (childIsGroup(child)) {
705
+ var Group = child;
706
+ var childCount = React.Children.count(child.props.children);
707
+ var initGridColumn = gridColumnIndex;
708
+ React.Children.forEach(child.props.children, function(child2, j) {
709
+ if ((child2 === null || child2 === void 0 ? void 0 : child2.type) === Head.Column) {
710
+ var isFirst = j === 0;
711
+ var isLast = j === childCount - 1;
712
+ var _col = makeColumn(child2, Group, isFirst, isLast);
713
+ if (i === 0 && j === 0 && data.some(function(d) {
714
+ return d[ACCORDION];
715
+ })) {
716
+ gridColumnIndex++;
717
+ _col.gridArea = "2 / ".concat(gridColumnIndex - 1, " / 3 / ").concat(gridColumnIndex + 1);
718
+ } else {
719
+ _col.gridArea = "2 / ".concat(gridColumnIndex, " / 3 / ").concat(gridColumnIndex + 1);
720
+ }
721
+ _col.gridArea = "2 / ".concat(gridColumnIndex, " / 3 / ").concat(gridColumnIndex + 1);
722
+ gridColumnIndex++;
723
+ columns.push(_col);
724
+ }
725
+ });
726
+ _this4.gridAreaGroupMap.set(groupIndex, "1 / ".concat(initGridColumn, " / 2 / ").concat(gridColumnIndex));
727
+ groupIndex++;
728
+ }
729
+ });
730
+ return columns.filter(Boolean);
731
+ }
732
+ }, {
733
+ key: "calculateColumnsFromConfig",
734
+ value: function calculateColumnsFromConfig() {
735
+ var _this5 = this;
736
+ var _this$props2 = this.props, columns = _this$props2.columns, data = _this$props2.data, selectedRows = _this$props2.selectedRows;
737
+ this.hasGroups = columns.some(function(column2) {
738
+ return "columns" in column2;
739
+ });
740
+ var groupIndex = 0;
741
+ var gridColumnIndex = selectedRows ? 2 : 1;
742
+ var calculateGridTemplateColumn = this.calculateGridTemplateColumn.bind(this);
743
+ var calculatedColumns = [];
744
+ var treeColumns = [];
745
+ if (selectedRows) {
746
+ var column = {
747
+ name: SELECT_ALL.toString(),
748
+ gtcWidth: "40px",
749
+ alignItems: "flex-start",
750
+ children: ""
751
+ };
752
+ calculatedColumns.push(column);
753
+ }
754
+ var makeColumn = function makeColumn2(columnElement, parent, isFirst, isLast) {
755
+ var _columnElement$fixed, _ref4, _columnElement$border;
756
+ var leftBordersFromParent = isFirst && ((parent === null || parent === void 0 ? void 0 : parent.borders) === "both" || (parent === null || parent === void 0 ? void 0 : parent.borders) === "left") ? "left" : void 0;
757
+ var rightBordersFromParent = isLast && ((parent === null || parent === void 0 ? void 0 : parent.borders) === "both" || (parent === null || parent === void 0 ? void 0 : parent.borders) === "right") ? "right" : void 0;
758
+ var column2 = _objectSpread(_objectSpread({}, columnElement), {}, {
759
+ name: childIsColumn(columnElement) ? columnElement.name : "",
760
+ gtcWidth: childIsColumn(columnElement) ? calculateGridTemplateColumn(columnElement) : "",
761
+ fixed: (_columnElement$fixed = columnElement.fixed) !== null && _columnElement$fixed !== void 0 ? _columnElement$fixed : parent === null || parent === void 0 ? void 0 : parent.fixed,
762
+ borders: (_ref4 = (_columnElement$border = columnElement.borders) !== null && _columnElement$border !== void 0 ? _columnElement$border : leftBordersFromParent) !== null && _ref4 !== void 0 ? _ref4 : rightBordersFromParent,
763
+ parent
764
+ });
765
+ return column2;
766
+ };
767
+ var childIsColumn = function childIsColumn2(child) {
768
+ return !("columns" in child);
769
+ };
770
+ var childIsGroup = function childIsGroup2(child) {
771
+ return "columns" in child;
772
+ };
773
+ columns.forEach(function(child, i) {
774
+ if (childIsColumn(child)) {
775
+ var col = makeColumn(child);
776
+ col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(_this5.hasGroups ? "3" : "2", " / ").concat(gridColumnIndex + 1);
777
+ gridColumnIndex++;
778
+ calculatedColumns.push(col);
779
+ treeColumns.push(col);
780
+ } else if (childIsGroup(child)) {
781
+ var Group = makeColumn(child);
782
+ var childCount = child.columns.length;
783
+ var initGridColumn = gridColumnIndex;
784
+ Group.columns = [];
785
+ Group.children = child.children;
786
+ child.columns.forEach(function(child2, j) {
787
+ var _Group$columns;
788
+ var isFirst = j === 0;
789
+ var isLast = j === childCount - 1;
790
+ var col2 = makeColumn(child2, Group, isFirst, isLast);
791
+ if (i === 0 && j === 0 && data.some(function(d) {
792
+ return d[ACCORDION];
793
+ })) {
794
+ gridColumnIndex++;
795
+ col2.gridArea = "2 / ".concat(gridColumnIndex - 1, " / 3 / ").concat(gridColumnIndex + 1);
796
+ } else {
797
+ col2.gridArea = "2 / ".concat(gridColumnIndex, " / 3 / ").concat(gridColumnIndex + 1);
798
+ }
799
+ col2.gridArea = "2 / ".concat(gridColumnIndex, " / 3 / ").concat(gridColumnIndex + 1);
800
+ gridColumnIndex++;
801
+ calculatedColumns.push(col2);
802
+ (_Group$columns = Group.columns) === null || _Group$columns === void 0 ? void 0 : _Group$columns.push(col2);
803
+ });
804
+ treeColumns.push(Group);
805
+ _this5.gridAreaGroupMap.set(groupIndex, "1 / ".concat(initGridColumn, " / 2 / ").concat(gridColumnIndex));
806
+ groupIndex++;
807
+ }
808
+ });
809
+ return [calculatedColumns, treeColumns];
810
+ }
811
+ }, {
812
+ key: "calculateRows",
813
+ value: function calculateRows() {
814
+ var _this6 = this;
815
+ var columns = this.columns;
816
+ var _this$props3 = this.props, data = _this$props3.data, uid = _this$props3.uid;
817
+ var rows = [];
818
+ var columnNames = columns.map(function(column) {
819
+ return column.name;
820
+ });
821
+ var rowIndex = 0;
822
+ var id = 1e8;
823
+ var makeDtRow = function makeDtRow2(row, excludeColumns) {
824
+ var _Object$entries$reduc;
825
+ var columns2 = new Set(columnNames);
826
+ var dtRow = Object.entries(row).reduce(function(acc, _ref5) {
827
+ var _ref6 = _slicedToArray(_ref5, 2), key = _ref6[0], value = _ref6[1];
828
+ var columnsToRow = key.split(_this6.columnsSplitter);
829
+ if (columnsToRow.length === 1) {
830
+ acc[key] = value !== null && value !== void 0 ? value : "";
831
+ columns2["delete"](key);
832
+ } else {
833
+ acc[columnsToRow[0]] = new MergedColumnsCell(value, {
834
+ dataKey: key,
835
+ size: columnsToRow.length
836
+ });
837
+ columnsToRow.forEach(function(value2) {
838
+ columns2["delete"](value2);
839
+ });
840
+ }
841
+ if (row[ACCORDION]) {
842
+ acc[ACCORDION] = row[ACCORDION];
843
+ }
844
+ return acc;
845
+ }, (_Object$entries$reduc = {}, _defineProperty(_Object$entries$reduc, UNIQ_ROW_KEY, row[UNIQ_ROW_KEY] || "".concat(uid, "_").concat((rowIndex + id).toString(36))), _defineProperty(_Object$entries$reduc, ROW_INDEX, rowIndex), _Object$entries$reduc));
846
+ excludeColumns === null || excludeColumns === void 0 ? void 0 : excludeColumns.forEach(function(value) {
847
+ columns2["delete"](value);
848
+ });
849
+ if (columns2.size > 0) {
850
+ columns2.forEach(function(value) {
851
+ dtRow[value] = "";
852
+ });
853
+ }
854
+ return dtRow;
855
+ };
856
+ data.forEach(function(row) {
857
+ var groupedRows = row[ROW_GROUP];
858
+ if (groupedRows) {
859
+ var _Object$entries$reduc2;
860
+ var innerRows = [];
861
+ var groupedKeys = [];
862
+ var groupedRowData = Object.entries(row).reduce(function(acc, _ref7) {
863
+ var _ref8 = _slicedToArray(_ref7, 2), key = _ref8[0], value = _ref8[1];
864
+ acc[key] = new MergedRowsCell(value, groupedRows.length);
865
+ groupedKeys.push(key);
866
+ return acc;
867
+ }, (_Object$entries$reduc2 = {}, _defineProperty(_Object$entries$reduc2, UNIQ_ROW_KEY, ""), _defineProperty(_Object$entries$reduc2, ROW_INDEX, -1), _Object$entries$reduc2));
868
+ groupedRows.forEach(function(childRow, index) {
869
+ var dtRow2;
870
+ if (index === 0) {
871
+ var rowData = _objectSpread(_objectSpread({}, childRow), groupedRowData);
872
+ dtRow2 = makeDtRow(rowData);
873
+ } else {
874
+ dtRow2 = makeDtRow(childRow, groupedKeys);
875
+ }
876
+ innerRows.push(dtRow2);
877
+ rowIndex++;
878
+ });
879
+ rows.push(innerRows);
880
+ } else {
881
+ var dtRow = makeDtRow(row);
882
+ rows.push(dtRow);
883
+ rowIndex++;
884
+ }
885
+ });
886
+ return rows;
887
+ }
888
+ }, {
889
+ key: "calculateGridTemplateColumn",
890
+ value: function calculateGridTemplateColumn(c) {
891
+ var _ref9;
892
+ return (_ref9 = /* @__PURE__ */ React.isValidElement(c) ? c.props.gtcWidth : c.gtcWidth) !== null && _ref9 !== void 0 ? _ref9 : this.props.defaultGridTemplateColumnWidth;
893
+ }
894
+ }, {
895
+ key: "getHeaderHeight",
896
+ value: function getHeaderHeight() {
897
+ var _this$headerRef$curre;
898
+ var header = (_this$headerRef$curre = this.headerRef.current) === null || _this$headerRef$curre === void 0 ? void 0 : _this$headerRef$curre.children;
899
+ var height = 0;
900
+ 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++) {
901
+ var _header$length, _header$item;
902
+ var columnHeight = header === null || header === void 0 ? void 0 : (_header$item = header.item(i)) === null || _header$item === void 0 ? void 0 : _header$item.getBoundingClientRect().height;
903
+ if (columnHeight) {
904
+ height = columnHeight;
905
+ break;
906
+ }
907
+ }
908
+ return height;
909
+ }
910
+ }]);
911
+ return DataTableRoot2;
912
+ }(Component);
913
+ _defineProperty(DataTableRoot, "displayName", "DataTable");
914
+ _defineProperty(DataTableRoot, "style", style);
915
+ _defineProperty(DataTableRoot, "enhance", [uniqueIDEnhancement(), i18nEnhance(localizedMessages)]);
916
+ _defineProperty(DataTableRoot, "defaultProps", {
917
+ use: "primary",
918
+ defaultGridTemplateColumnWidth: "auto",
919
+ defaultExpandedRows: /* @__PURE__ */ new Set(),
920
+ defaultSelectedRows: void 0,
921
+ h: "fit-content",
922
+ renderEmptyData: function renderEmptyData() {
923
+ return /* @__PURE__ */ React.createElement(NoData, {
924
+ py: 10,
925
+ type: "nothing-found",
926
+ description: "",
927
+ w: "100%"
928
+ });
929
+ }
930
+ });
931
+ var DataTable = createComponent(DataTableRoot, {
932
+ Head,
933
+ Body
934
+ });
935
+ var DataTableInternal = DataTable;
936
+ export {
937
+ ACCORDION,
938
+ DataTable,
939
+ DataTableInternal,
940
+ ROW_GROUP,
941
+ ROW_INDEX,
942
+ SELECT_ALL,
943
+ UNIQ_ROW_KEY
944
+ };