@semcore/data-table 4.51.0-prerelease.4 → 4.51.0-prerelease.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 (236) hide show
  1. package/lib/cjs/components/AccordionRows/AccordionRows.js +177 -0
  2. package/lib/cjs/components/AccordionRows/AccordionRows.js.map +1 -0
  3. package/lib/cjs/components/Body/Body.js +445 -0
  4. package/lib/cjs/components/Body/Body.js.map +1 -0
  5. package/lib/cjs/components/Body/Body.types.js +2 -0
  6. package/lib/cjs/components/Body/Body.types.js.map +1 -0
  7. package/lib/cjs/components/Body/Cell.js +205 -0
  8. package/lib/cjs/components/Body/Cell.js.map +1 -0
  9. package/lib/cjs/components/Body/Cell.types.js +2 -0
  10. package/lib/cjs/components/Body/Cell.types.js.map +1 -0
  11. package/lib/cjs/components/Body/LimitOverlay.js +191 -0
  12. package/lib/cjs/components/Body/LimitOverlay.js.map +1 -0
  13. package/lib/cjs/components/Body/MergedCells.js +31 -0
  14. package/lib/cjs/components/Body/MergedCells.js.map +1 -0
  15. package/lib/cjs/components/Body/Row.js +630 -0
  16. package/lib/cjs/components/Body/Row.js.map +1 -0
  17. package/lib/cjs/components/Body/Row.types.js +2 -0
  18. package/lib/cjs/components/Body/Row.types.js.map +1 -0
  19. package/lib/cjs/components/Body/RowGroup.js +118 -0
  20. package/lib/cjs/components/Body/RowGroup.js.map +1 -0
  21. package/lib/cjs/components/Body/style.shadow.css +367 -0
  22. package/lib/cjs/components/DataTable/DataTable.js +1303 -0
  23. package/lib/cjs/components/DataTable/DataTable.js.map +1 -0
  24. package/lib/cjs/components/DataTable/DataTable.types.js +2 -0
  25. package/lib/cjs/components/DataTable/DataTable.types.js.map +1 -0
  26. package/lib/cjs/components/DataTable/ScrollBars.js +63 -0
  27. package/lib/cjs/components/DataTable/ScrollBars.js.map +1 -0
  28. package/lib/cjs/components/DataTable/dataTable.shadow.css +43 -0
  29. package/lib/cjs/components/Head/Column.js +350 -0
  30. package/lib/cjs/components/Head/Column.js.map +1 -0
  31. package/lib/cjs/components/Head/Column.types.js +2 -0
  32. package/lib/cjs/components/Head/Column.types.js.map +1 -0
  33. package/lib/cjs/components/Head/Group.js +116 -0
  34. package/lib/cjs/components/Head/Group.js.map +1 -0
  35. package/lib/cjs/components/Head/Group.type.js +2 -0
  36. package/lib/cjs/components/Head/Group.type.js.map +1 -0
  37. package/lib/cjs/components/Head/Head.js +350 -0
  38. package/lib/cjs/components/Head/Head.js.map +1 -0
  39. package/lib/cjs/components/Head/Head.types.js +2 -0
  40. package/lib/cjs/components/Head/Head.types.js.map +1 -0
  41. package/lib/cjs/components/Head/style.shadow.css +292 -0
  42. package/lib/cjs/components/RowSelector/RowsSelector.js +132 -0
  43. package/lib/cjs/components/RowSelector/RowsSelector.js.map +1 -0
  44. package/lib/cjs/components/RowSelector/SRAnnouncer.js +62 -0
  45. package/lib/cjs/components/RowSelector/SRAnnouncer.js.map +1 -0
  46. package/lib/cjs/components/RowSelector/SRReactiveAnnouncer.js +39 -0
  47. package/lib/cjs/components/RowSelector/SRReactiveAnnouncer.js.map +1 -0
  48. package/lib/cjs/enhancers/focusableCell.js +76 -0
  49. package/lib/cjs/enhancers/focusableCell.js.map +1 -0
  50. package/lib/cjs/index.js +38 -15
  51. package/lib/cjs/index.js.map +1 -1
  52. package/lib/cjs/store/SelectableRows.js +211 -0
  53. package/lib/cjs/store/SelectableRows.js.map +1 -0
  54. package/lib/cjs/style/scroll-shadows.shadow.css +50 -5
  55. package/lib/cjs/translations/__intergalactic-dynamic-locales.js +4 -5
  56. package/lib/cjs/translations/__intergalactic-dynamic-locales.js.map +1 -1
  57. package/lib/cjs/translations/de.json +6 -1
  58. package/lib/cjs/translations/en.json +6 -1
  59. package/lib/cjs/translations/es.json +6 -1
  60. package/lib/cjs/translations/fr.json +6 -1
  61. package/lib/cjs/translations/it.json +6 -1
  62. package/lib/cjs/translations/ja.json +6 -1
  63. package/lib/cjs/translations/ko.json +6 -1
  64. package/lib/cjs/translations/nl.json +6 -1
  65. package/lib/cjs/translations/pl.json +6 -1
  66. package/lib/cjs/translations/pt.json +6 -1
  67. package/lib/cjs/translations/sv.json +6 -1
  68. package/lib/cjs/translations/tr.json +6 -1
  69. package/lib/cjs/translations/vi.json +6 -1
  70. package/lib/cjs/translations/zh.json +6 -1
  71. package/lib/es6/components/AccordionRows/AccordionRows.js +171 -0
  72. package/lib/es6/components/AccordionRows/AccordionRows.js.map +1 -0
  73. package/lib/es6/components/Body/Body.js +439 -0
  74. package/lib/es6/components/Body/Body.js.map +1 -0
  75. package/lib/es6/components/Body/Body.types.js +2 -0
  76. package/lib/es6/components/Body/Body.types.js.map +1 -0
  77. package/lib/es6/components/Body/Cell.js +199 -0
  78. package/lib/es6/components/Body/Cell.js.map +1 -0
  79. package/lib/es6/components/Body/Cell.types.js +2 -0
  80. package/lib/es6/components/Body/Cell.types.js.map +1 -0
  81. package/lib/es6/components/Body/LimitOverlay.js +184 -0
  82. package/lib/es6/components/Body/LimitOverlay.js.map +1 -0
  83. package/lib/es6/components/Body/MergedCells.js +24 -0
  84. package/lib/es6/components/Body/MergedCells.js.map +1 -0
  85. package/lib/es6/components/Body/Row.js +624 -0
  86. package/lib/es6/components/Body/Row.js.map +1 -0
  87. package/lib/es6/components/Body/Row.types.js +2 -0
  88. package/lib/es6/components/Body/Row.types.js.map +1 -0
  89. package/lib/es6/components/Body/RowGroup.js +111 -0
  90. package/lib/es6/components/Body/RowGroup.js.map +1 -0
  91. package/lib/es6/components/Body/style.shadow.css +367 -0
  92. package/lib/es6/components/DataTable/DataTable.js +1298 -0
  93. package/lib/es6/components/DataTable/DataTable.js.map +1 -0
  94. package/lib/es6/components/DataTable/DataTable.types.js +2 -0
  95. package/lib/es6/components/DataTable/DataTable.types.js.map +1 -0
  96. package/lib/es6/components/DataTable/ScrollBars.js +57 -0
  97. package/lib/es6/components/DataTable/ScrollBars.js.map +1 -0
  98. package/lib/es6/components/DataTable/dataTable.shadow.css +43 -0
  99. package/lib/es6/components/Head/Column.js +344 -0
  100. package/lib/es6/components/Head/Column.js.map +1 -0
  101. package/lib/es6/components/Head/Column.types.js +2 -0
  102. package/lib/es6/components/Head/Column.types.js.map +1 -0
  103. package/lib/es6/components/Head/Group.js +111 -0
  104. package/lib/es6/components/Head/Group.js.map +1 -0
  105. package/lib/es6/components/Head/Group.type.js +2 -0
  106. package/lib/es6/components/Head/Group.type.js.map +1 -0
  107. package/lib/es6/components/Head/Head.js +345 -0
  108. package/lib/es6/components/Head/Head.js.map +1 -0
  109. package/lib/es6/components/Head/Head.types.js +2 -0
  110. package/lib/es6/components/Head/Head.types.js.map +1 -0
  111. package/lib/es6/components/Head/style.shadow.css +292 -0
  112. package/lib/es6/components/RowSelector/RowsSelector.js +125 -0
  113. package/lib/es6/components/RowSelector/RowsSelector.js.map +1 -0
  114. package/lib/es6/components/RowSelector/SRAnnouncer.js +55 -0
  115. package/lib/es6/components/RowSelector/SRAnnouncer.js.map +1 -0
  116. package/lib/es6/components/RowSelector/SRReactiveAnnouncer.js +32 -0
  117. package/lib/es6/components/RowSelector/SRReactiveAnnouncer.js.map +1 -0
  118. package/lib/es6/enhancers/focusableCell.js +69 -0
  119. package/lib/es6/enhancers/focusableCell.js.map +1 -0
  120. package/lib/es6/index.js +7 -2
  121. package/lib/es6/index.js.map +1 -1
  122. package/lib/es6/store/SelectableRows.js +204 -0
  123. package/lib/es6/store/SelectableRows.js.map +1 -0
  124. package/lib/es6/style/scroll-shadows.shadow.css +50 -5
  125. package/lib/es6/translations/__intergalactic-dynamic-locales.js +2 -2
  126. package/lib/es6/translations/__intergalactic-dynamic-locales.js.map +1 -1
  127. package/lib/es6/translations/de.json +6 -1
  128. package/lib/es6/translations/en.json +6 -1
  129. package/lib/es6/translations/es.json +6 -1
  130. package/lib/es6/translations/fr.json +6 -1
  131. package/lib/es6/translations/it.json +6 -1
  132. package/lib/es6/translations/ja.json +6 -1
  133. package/lib/es6/translations/ko.json +6 -1
  134. package/lib/es6/translations/nl.json +6 -1
  135. package/lib/es6/translations/pl.json +6 -1
  136. package/lib/es6/translations/pt.json +6 -1
  137. package/lib/es6/translations/sv.json +6 -1
  138. package/lib/es6/translations/tr.json +6 -1
  139. package/lib/es6/translations/vi.json +6 -1
  140. package/lib/es6/translations/zh.json +6 -1
  141. package/lib/esm/components/AccordionRows/AccordionRows.mjs +155 -0
  142. package/lib/esm/components/Body/Body.mjs +395 -0
  143. package/lib/esm/components/Body/Cell.mjs +192 -0
  144. package/lib/esm/components/Body/LimitOverlay.mjs +179 -0
  145. package/lib/esm/components/Body/MergedCells.mjs +27 -0
  146. package/lib/esm/components/Body/Row.mjs +556 -0
  147. package/lib/esm/components/Body/RowGroup.mjs +113 -0
  148. package/lib/esm/components/Body/style.shadow.css +367 -0
  149. package/lib/esm/components/DataTable/DataTable.mjs +1216 -0
  150. package/lib/esm/components/DataTable/ScrollBars.mjs +61 -0
  151. package/lib/esm/components/DataTable/dataTable.shadow.css +43 -0
  152. package/lib/esm/components/Head/Column.mjs +321 -0
  153. package/lib/esm/components/Head/Group.mjs +111 -0
  154. package/lib/esm/components/Head/Head.mjs +307 -0
  155. package/lib/esm/components/Head/style.shadow.css +292 -0
  156. package/lib/esm/components/RowSelector/RowsSelector.mjs +105 -0
  157. package/lib/esm/components/RowSelector/SRAnnouncer.mjs +51 -0
  158. package/lib/esm/components/RowSelector/SRReactiveAnnouncer.mjs +31 -0
  159. package/lib/esm/enhancers/focusableCell.mjs +72 -0
  160. package/lib/esm/index.mjs +12 -5
  161. package/lib/esm/store/SelectableRows.mjs +201 -0
  162. package/lib/esm/style/scroll-shadows.shadow.css +50 -5
  163. package/lib/esm/translations/__intergalactic-dynamic-locales.mjs +2 -2
  164. package/lib/esm/translations/de.json.mjs +6 -1
  165. package/lib/esm/translations/en.json.mjs +6 -1
  166. package/lib/esm/translations/es.json.mjs +6 -1
  167. package/lib/esm/translations/fr.json.mjs +6 -1
  168. package/lib/esm/translations/it.json.mjs +6 -1
  169. package/lib/esm/translations/ja.json.mjs +6 -1
  170. package/lib/esm/translations/ko.json.mjs +6 -1
  171. package/lib/esm/translations/nl.json.mjs +6 -1
  172. package/lib/esm/translations/pl.json.mjs +6 -1
  173. package/lib/esm/translations/pt.json.mjs +6 -1
  174. package/lib/esm/translations/sv.json.mjs +6 -1
  175. package/lib/esm/translations/tr.json.mjs +6 -1
  176. package/lib/esm/translations/vi.json.mjs +6 -1
  177. package/lib/esm/translations/zh.json.mjs +6 -1
  178. package/lib/types/components/AccordionRows/AccordionRows.d.ts +41 -0
  179. package/lib/types/components/Body/Body.d.ts +6 -0
  180. package/lib/types/components/Body/Body.types.d.ts +87 -0
  181. package/lib/types/components/Body/Cell.d.ts +1 -0
  182. package/lib/types/components/Body/Cell.types.d.ts +36 -0
  183. package/lib/types/components/Body/LimitOverlay.d.ts +17 -0
  184. package/lib/types/components/Body/MergedCells.d.ts +17 -0
  185. package/lib/types/components/Body/Row.d.ts +47 -0
  186. package/lib/types/components/Body/Row.types.d.ts +74 -0
  187. package/lib/types/components/Body/RowGroup.d.ts +19 -0
  188. package/lib/types/components/DataTable/DataTable.d.ts +14 -0
  189. package/lib/types/components/DataTable/DataTable.types.d.ts +202 -0
  190. package/lib/types/components/DataTable/ScrollBars.d.ts +11 -0
  191. package/lib/types/components/Head/Column.d.ts +39 -0
  192. package/lib/types/components/Head/Column.types.d.ts +85 -0
  193. package/lib/types/components/Head/Group.d.ts +15 -0
  194. package/lib/types/components/Head/Group.type.d.ts +18 -0
  195. package/lib/types/components/Head/Head.d.ts +9 -0
  196. package/lib/types/components/Head/Head.types.d.ts +58 -0
  197. package/lib/types/components/RowSelector/RowsSelector.d.ts +32 -0
  198. package/lib/types/components/RowSelector/SRAnnouncer.d.ts +10 -0
  199. package/lib/types/components/RowSelector/SRReactiveAnnouncer.d.ts +8 -0
  200. package/lib/types/enhancers/focusableCell.d.ts +9 -0
  201. package/lib/types/index.d.ts +10 -2
  202. package/lib/types/store/SelectableRows.d.ts +60 -0
  203. package/lib/types/translations/__intergalactic-dynamic-locales.d.ts +70 -0
  204. package/package.json +6 -6
  205. package/lib/cjs/Body.js +0 -477
  206. package/lib/cjs/Body.js.map +0 -1
  207. package/lib/cjs/DataTable.js +0 -629
  208. package/lib/cjs/DataTable.js.map +0 -1
  209. package/lib/cjs/Head.js +0 -398
  210. package/lib/cjs/Head.js.map +0 -1
  211. package/lib/cjs/style/data-table.shadow.css +0 -413
  212. package/lib/cjs/types.js +0 -4
  213. package/lib/cjs/types.js.map +0 -1
  214. package/lib/cjs/utils.js +0 -57
  215. package/lib/cjs/utils.js.map +0 -1
  216. package/lib/es6/Body.js +0 -469
  217. package/lib/es6/Body.js.map +0 -1
  218. package/lib/es6/DataTable.js +0 -619
  219. package/lib/es6/DataTable.js.map +0 -1
  220. package/lib/es6/Head.js +0 -390
  221. package/lib/es6/Head.js.map +0 -1
  222. package/lib/es6/style/data-table.shadow.css +0 -413
  223. package/lib/es6/types.js +0 -2
  224. package/lib/es6/types.js.map +0 -1
  225. package/lib/es6/utils.js +0 -48
  226. package/lib/es6/utils.js.map +0 -1
  227. package/lib/esm/Body.mjs +0 -430
  228. package/lib/esm/DataTable.mjs +0 -589
  229. package/lib/esm/Head.mjs +0 -368
  230. package/lib/esm/style/data-table.shadow.css +0 -413
  231. package/lib/esm/utils.mjs +0 -52
  232. package/lib/types/Body.d.ts +0 -61
  233. package/lib/types/DataTable.d.ts +0 -205
  234. package/lib/types/Head.d.ts +0 -45
  235. package/lib/types/types.d.ts +0 -73
  236. package/lib/types/utils.d.ts +0 -4
@@ -0,0 +1,1303 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.UNIQ_ROW_KEY = exports.SELECT_ALL = exports.ROW_INDEX = exports.ROW_GROUP = exports.IS_EMPTY_DATA_ROW = exports.GRID_ROW_INDEX = exports.DataTable = exports.ACCORDION = void 0;
9
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
12
+ var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
13
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+ var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/callSuper"));
16
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
18
+ var _core = require("@semcore/core");
19
+ var _baseComponents = require("@semcore/base-components");
20
+ var _canUseDOM = _interopRequireDefault(require("@semcore/core/lib/utils/canUseDOM"));
21
+ var _i18nEnhance = _interopRequireDefault(require("@semcore/core/lib/utils/enhances/i18nEnhance"));
22
+ var _hasParent = require("@semcore/core/lib/utils/hasParent");
23
+ var _rafTrottle = _interopRequireDefault(require("@semcore/core/lib/utils/rafTrottle"));
24
+ var _ref9 = require("@semcore/core/lib/utils/ref");
25
+ var _uniqueID = _interopRequireDefault(require("@semcore/core/lib/utils/uniqueID"));
26
+ var _useFocusLock = require("@semcore/core/lib/utils/use/useFocusLock");
27
+ var _widgetEmpty = require("@semcore/widget-empty");
28
+ var React = _interopRequireWildcard(require("react"));
29
+ var _ScrollBars = require("./ScrollBars");
30
+ var _SelectableRows = require("../../store/SelectableRows");
31
+ var _intergalacticDynamicLocales = require("../../translations/__intergalactic-dynamic-locales");
32
+ var _Body = require("../Body/Body");
33
+ var _MergedCells = require("../Body/MergedCells");
34
+ var _Head = require("../Head/Head");
35
+ var _SRAnnouncer = require("../RowSelector/SRAnnouncer");
36
+ var _SRReactiveAnnouncer = require("../RowSelector/SRReactiveAnnouncer");
37
+ /*!__reshadow-styles__:"./dataTable.shadow.css"*/
38
+ var style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/"@keyframes moveBarWithScroll_pypp4{0%{transform:translateY(0)}to{transform:translateY(calc(var(--global-scroll-to) - var(--global-header-height)))}}.___SDataTable_pypp4_gg_{display:grid;align-items:start;min-width:-moz-fit-content;min-width:fit-content;grid-auto-rows:min-content;scroll-behavior:smooth}.___SDataTable_pypp4_gg_.__isDataEmpty_pypp4_gg_{display:block;align-items:initial;min-width:initial}.___SDataTable_pypp4_gg_.__gridTemplateColumns_pypp4_gg_{grid-template-columns:var(--gridTemplateColumns_pypp4)}.___SDataTable_pypp4_gg_.__gridTemplateAreas_pypp4_gg_{grid-template-areas:var(--gridTemplateAreas_pypp4)}.___SDataTable_pypp4_gg_.__gridTemplateRows_pypp4_gg_{grid-template-rows:var(--gridTemplateRows_pypp4)}.___SScrollAreaBarInHeader_pypp4_gg_.__withAnimation_pypp4_gg_{animation-name:moveBarWithScroll_pypp4;animation-timeline:--table-sticky-timeline;animation-range-start:exit-crossing calc(-1*var(--global-header-top));animation-range-end:exit-crossing calc(100% - var(--global-header-top) - var(--global-header-height));animation-timing-function:linear;animation-fill-mode:both}", /*__inner_css_end__*/"pypp4_gg_"),
39
+ /*__reshadow_css_end__*/
40
+ {
41
+ "__SDataTable": "___SDataTable_pypp4_gg_",
42
+ "_isDataEmpty": "__isDataEmpty_pypp4_gg_",
43
+ "_gridTemplateColumns": "__gridTemplateColumns_pypp4_gg_",
44
+ "--gridTemplateColumns": "--gridTemplateColumns_pypp4",
45
+ "_gridTemplateAreas": "__gridTemplateAreas_pypp4_gg_",
46
+ "--gridTemplateAreas": "--gridTemplateAreas_pypp4",
47
+ "_gridTemplateRows": "__gridTemplateRows_pypp4_gg_",
48
+ "--gridTemplateRows": "--gridTemplateRows_pypp4",
49
+ "__SScrollAreaBarInHeader": "___SScrollAreaBarInHeader_pypp4_gg_",
50
+ "_withAnimation": "__withAnimation_pypp4_gg_",
51
+ "@moveBarWithScroll": "moveBarWithScroll_pypp4"
52
+ });
53
+ /*!__reshadow-styles__:"../../style/scroll-shadows.shadow.css"*/
54
+ var scrollStyles = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SScrollArea_1aftg_gg_{width:-moz-fit-content;width:fit-content;view-timeline:--table-sticky-timeline block}.___SScrollArea_1aftg_gg_ .___SContainer_1aftg_gg_{overflow:visible;overflow:initial}.___SScrollArea_1aftg_gg_ .___SContainer_1aftg_gg_._scrollDirection_both_1aftg_gg_{overflow:auto}.___SScrollArea_1aftg_gg_ .___SContainer_1aftg_gg_._scrollDirection_both_1aftg_gg_.__loading_1aftg_gg_,.___SScrollArea_1aftg_gg_ .___SContainer_1aftg_gg_._scrollDirection_horizontal_1aftg_gg_.__loading_1aftg_gg_,.___SScrollArea_1aftg_gg_ .___SContainer_1aftg_gg_._scrollDirection_vertical_1aftg_gg_.__loading_1aftg_gg_{overflow:hidden}.___SScrollArea_1aftg_gg_ .___SContainer_1aftg_gg_._scrollDirection_horizontal_1aftg_gg_{overflow-x:auto;overflow-y:initial}.___SScrollArea_1aftg_gg_ .___SContainer_1aftg_gg_._scrollDirection_vertical_1aftg_gg_{overflow-x:initial;overflow-y:auto}.___SScrollArea_1aftg_gg_ .___SContainer_1aftg_gg_.__headerHeight_1aftg_gg_{scroll-padding-top:var(--headerHeight_1aftg)}.___SScrollArea_1aftg_gg_ .___SContainer_1aftg_gg_.__leftScrollPadding_1aftg_gg_{scroll-padding-left:var(--leftScrollPadding_1aftg)}.___SScrollArea_1aftg_gg_ .___SContainer_1aftg_gg_.__rightScrollPadding_1aftg_gg_{scroll-padding-right:var(--rightScrollPadding_1aftg)}.___SScrollArea_1aftg_gg_ .___SShadowHorizontal_1aftg_gg_::before,.___SScrollArea_1aftg_gg_ .___SShadowHorizontal_1aftg_gg_:after,.___SScrollArea_1aftg_gg_ .___SShadowVertical_1aftg_gg_::after{z-index:20}.___SScrollArea_1aftg_gg_ .___SShadowHorizontal_1aftg_gg_.__leftOffset_1aftg_gg_::before,.___SScrollArea_1aftg_gg_ .___SShadowHorizontal_1aftg_gg_.__rightOffset_1aftg_gg_::after,.___SScrollArea_1aftg_gg_ .___SShadowVertical_1aftg_gg_::before{display:none}", /*__inner_css_end__*/"1aftg_gg_"),
55
+ /*__reshadow_css_end__*/
56
+ {
57
+ "__SScrollArea": "___SScrollArea_1aftg_gg_",
58
+ "__SContainer": "___SContainer_1aftg_gg_",
59
+ "_scrollDirection_both": "_scrollDirection_both_1aftg_gg_",
60
+ "_loading": "__loading_1aftg_gg_",
61
+ "_scrollDirection_horizontal": "_scrollDirection_horizontal_1aftg_gg_",
62
+ "_scrollDirection_vertical": "_scrollDirection_vertical_1aftg_gg_",
63
+ "_headerHeight": "__headerHeight_1aftg_gg_",
64
+ "--headerHeight": "--headerHeight_1aftg",
65
+ "_leftScrollPadding": "__leftScrollPadding_1aftg_gg_",
66
+ "--leftScrollPadding": "--leftScrollPadding_1aftg",
67
+ "_rightScrollPadding": "__rightScrollPadding_1aftg_gg_",
68
+ "--rightScrollPadding": "--rightScrollPadding_1aftg",
69
+ "__SShadowVertical": "___SShadowVertical_1aftg_gg_",
70
+ "__SShadowHorizontal": "___SShadowHorizontal_1aftg_gg_",
71
+ "_leftOffset": "__leftOffset_1aftg_gg_",
72
+ "_rightOffset": "__rightOffset_1aftg_gg_"
73
+ });
74
+ var ACCORDION = exports.ACCORDION = Symbol('accordion');
75
+ var ROW_GROUP = exports.ROW_GROUP = Symbol('ROW_GROUP');
76
+ var UNIQ_ROW_KEY = exports.UNIQ_ROW_KEY = Symbol('UNIQ_ROW_KEY');
77
+ var IS_EMPTY_DATA_ROW = exports.IS_EMPTY_DATA_ROW = Symbol('IS_EMPTY_DATA_ROW');
78
+ var SELECT_ALL = exports.SELECT_ALL = 'SELECT_ALL_ROWS';
79
+ var ROW_INDEX = exports.ROW_INDEX = Symbol('ROW_INDEX');
80
+ var GRID_ROW_INDEX = exports.GRID_ROW_INDEX = Symbol('GRID_ROW_INDEX');
81
+ var DataTableRoot = /*#__PURE__*/function (_Component) {
82
+ function DataTableRoot(props) {
83
+ var _this;
84
+ (0, _classCallCheck2["default"])(this, DataTableRoot);
85
+ _this = (0, _callSuper2["default"])(this, DataTableRoot, [props]);
86
+ (0, _defineProperty2["default"])(_this, "columns", []);
87
+ (0, _defineProperty2["default"])(_this, "treeColumns", []);
88
+ (0, _defineProperty2["default"])(_this, "hasGroups", false);
89
+ (0, _defineProperty2["default"])(_this, "hasFixedColumn", false);
90
+ (0, _defineProperty2["default"])(_this, "focusedCell", [-1, -1]);
91
+ (0, _defineProperty2["default"])(_this, "scrollAreaRef", /*#__PURE__*/React.createRef());
92
+ (0, _defineProperty2["default"])(_this, "tableContainerRef", /*#__PURE__*/React.createRef());
93
+ (0, _defineProperty2["default"])(_this, "tableRef", /*#__PURE__*/React.createRef());
94
+ (0, _defineProperty2["default"])(_this, "headerRef", /*#__PURE__*/React.createRef());
95
+ (0, _defineProperty2["default"])(_this, "spinnerRef", /*#__PURE__*/React.createRef());
96
+ (0, _defineProperty2["default"])(_this, "containerResizeEndTimeoutId", null);
97
+ (0, _defineProperty2["default"])(_this, "gridAreaGroupMap", new Map());
98
+ (0, _defineProperty2["default"])(_this, "columnsSplitter", '/');
99
+ (0, _defineProperty2["default"])(_this, "tmpData", void 0);
100
+ (0, _defineProperty2["default"])(_this, "calculatedRows", void 0);
101
+ (0, _defineProperty2["default"])(_this, "flatRows", void 0);
102
+ (0, _defineProperty2["default"])(_this, "gridSettings", {
103
+ gridTemplateColumns: [],
104
+ gridTemplateAreas: []
105
+ });
106
+ (0, _defineProperty2["default"])(_this, "headerNodesMap", new Map());
107
+ (0, _defineProperty2["default"])(_this, "selectedRowsContainer", void 0);
108
+ (0, _defineProperty2["default"])(_this, "lastSelectedRowKey", void 0);
109
+ (0, _defineProperty2["default"])(_this, "state", {
110
+ scrollTop: 0,
111
+ scrollDirection: 'down',
112
+ selectAllMessage: '',
113
+ shadowVertical: '',
114
+ expandedRows: new Set()
115
+ });
116
+ (0, _defineProperty2["default"])(_this, "handleDocumentScroll", (0, _rafTrottle["default"])(function () {
117
+ var _headerProps$top, _this$scrollAreaRef$c;
118
+ var tableContainer = _this.tableContainerRef.current;
119
+ if (!tableContainer) return;
120
+ var tableRect = tableContainer.getBoundingClientRect();
121
+ var tableContainerTop = tableRect.top;
122
+ var headerProps = _this.asProps.headerProps;
123
+ var headerContainer = _this.headerRef.current;
124
+ var top = tableContainerTop - ((_headerProps$top = headerProps === null || headerProps === void 0 ? void 0 : headerProps.top) !== null && _headerProps$top !== void 0 ? _headerProps$top : 0);
125
+ var headerScrollBar = headerProps !== null && headerProps !== void 0 && headerProps.withScrollBar ? (_this$scrollAreaRef$c = _this.scrollAreaRef.current) === null || _this$scrollAreaRef$c === void 0 ? void 0 : _this$scrollAreaRef$c.querySelector("[role=scrollbar][aria-orientation=horizontal]") : undefined;
126
+ if (top && top < 0 && Math.abs(top) <= tableContainer.clientHeight) {
127
+ var translate = "translateY(".concat(Math.abs(top), "px)");
128
+ if (tableRect.bottom <= _this.getHeaderHeight()) {
129
+ translate = "translateY(".concat(Math.abs(top) - _this.getHeaderHeight() - tableRect.bottom, "px)");
130
+ }
131
+ if (headerContainer instanceof HTMLElement) {
132
+ headerContainer.style.setProperty('--global-scroll-translate', "".concat(Math.abs(top), "px"));
133
+ }
134
+ if (headerScrollBar instanceof HTMLElement) {
135
+ headerScrollBar.style.setProperty('transform', translate);
136
+ }
137
+ } else {
138
+ if (headerContainer instanceof HTMLElement) {
139
+ headerContainer.style.removeProperty('--global-scroll-translate');
140
+ }
141
+ if (headerScrollBar instanceof HTMLElement) {
142
+ headerScrollBar.style.removeProperty('transform');
143
+ }
144
+ }
145
+ }));
146
+ (0, _defineProperty2["default"])(_this, "handleCellClick", function (e, opt) {
147
+ if (_core.lastInteraction.isMouse()) {
148
+ _this.initFocusableCell([_this.hasFocusableInHeader() ? opt.rowIndex + 1 : opt.rowIndex, opt.colIndex]);
149
+ }
150
+ });
151
+ (0, _defineProperty2["default"])(_this, "handleSelectAllRows", function (selectedRows, event) {
152
+ if (!('onSelectedRowsChange' in _this.asProps) || !_this.asProps.onSelectedRowsChange || !Array.isArray(selectedRows)) return;
153
+ _this.asProps.onSelectedRowsChange(selectedRows, event);
154
+ });
155
+ (0, _defineProperty2["default"])(_this, "handleSelectRow", function (isSelected, selectedRowIndex, row, event) {
156
+ var selectedRows = _this.asProps.selectedRows;
157
+ if (!selectedRows || !('onSelectedRowsChange' in _this.asProps) || !_this.asProps.onSelectedRowsChange || !Array.isArray(selectedRows)) return;
158
+ var onSelectedRowsChange = _this.asProps.onSelectedRowsChange;
159
+ var selectedRowsSet = new Set(selectedRows);
160
+ if (_this.selectedRowsContainer.isPressedShift && selectedRowsSet.size > 0 && _this.lastSelectedRowKey && (isSelected ? selectedRowsSet.has(_this.lastSelectedRowKey) : true)) {
161
+ var select = false;
162
+ var firstColumnKey = _this.columns[0].name;
163
+ var isMerged = _this.flatRows.some(function (item) {
164
+ return item[firstColumnKey] instanceof _MergedCells.MergedRowsCell;
165
+ });
166
+ var _iterator = (0, _createForOfIteratorHelper2["default"])(_this.flatRows),
167
+ _step;
168
+ try {
169
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
170
+ var item = _step.value;
171
+ if (isMerged && !item[firstColumnKey]) continue;
172
+ if (!select && (item[UNIQ_ROW_KEY] === row[UNIQ_ROW_KEY] || item[UNIQ_ROW_KEY] === _this.lastSelectedRowKey)) {
173
+ select = true;
174
+ if (isSelected) {
175
+ selectedRowsSet.add(item[UNIQ_ROW_KEY]);
176
+ } else {
177
+ selectedRowsSet["delete"](item[UNIQ_ROW_KEY]);
178
+ }
179
+ continue;
180
+ }
181
+ if (select) {
182
+ if (isSelected) {
183
+ selectedRowsSet.add(item[UNIQ_ROW_KEY]);
184
+ } else {
185
+ selectedRowsSet["delete"](item[UNIQ_ROW_KEY]);
186
+ }
187
+ }
188
+ if (select && (item[UNIQ_ROW_KEY] === row[UNIQ_ROW_KEY] || item[UNIQ_ROW_KEY] === _this.lastSelectedRowKey)) {
189
+ break;
190
+ }
191
+ }
192
+ } catch (err) {
193
+ _iterator.e(err);
194
+ } finally {
195
+ _iterator.f();
196
+ }
197
+ } else {
198
+ if (selectedRowsSet.has(row[UNIQ_ROW_KEY])) {
199
+ selectedRowsSet["delete"](row[UNIQ_ROW_KEY]);
200
+ } else {
201
+ selectedRowsSet.add(row[UNIQ_ROW_KEY]);
202
+ }
203
+ }
204
+ _this.lastSelectedRowKey = row[UNIQ_ROW_KEY];
205
+ onSelectedRowsChange(Array.from(selectedRowsSet), event, {
206
+ selectedRowIndex: selectedRowIndex,
207
+ isSelected: isSelected,
208
+ row: row
209
+ });
210
+ });
211
+ (0, _defineProperty2["default"])(_this, "getRow", function (index) {
212
+ var _this$tableRef$curren;
213
+ return (_this$tableRef$curren = _this.tableRef.current) === null || _this$tableRef$curren === void 0 ? void 0 : _this$tableRef$curren.querySelector(":scope [aria-rowindex=\"".concat(index + 1, "\"]:not([aria-hidden=\"true\"]):not(:scope [data-ui-name=\"DataTable\"] [aria-rowindex=\"").concat(index + 1, "\"]:not([aria-hidden=\"true\"])"));
214
+ });
215
+ (0, _defineProperty2["default"])(_this, "hasFocusableInHeader", function () {
216
+ return _this.headerRef.current && (0, _useFocusLock.hasFocusableIn)(_this.headerRef.current) || _this.columns.some(function (column) {
217
+ return column.sortable;
218
+ });
219
+ });
220
+ (0, _defineProperty2["default"])(_this, "onExpandRow", function (expandedRow) {
221
+ var _this$asProps = _this.asProps,
222
+ onAccordionToggle = _this$asProps.onAccordionToggle,
223
+ accordionMode = _this$asProps.accordionMode;
224
+ var expandedRows = _this.state.expandedRows;
225
+ if (expandedRows.has(expandedRow[UNIQ_ROW_KEY])) {
226
+ expandedRows["delete"](expandedRow[UNIQ_ROW_KEY]);
227
+ onAccordionToggle === null || onAccordionToggle === void 0 || onAccordionToggle('close', expandedRow[UNIQ_ROW_KEY], expandedRow[ROW_INDEX]);
228
+ } else {
229
+ expandedRows.add(expandedRow[UNIQ_ROW_KEY]);
230
+ onAccordionToggle === null || onAccordionToggle === void 0 || onAccordionToggle('open', expandedRow[UNIQ_ROW_KEY], expandedRow[ROW_INDEX]);
231
+ if (accordionMode === 'toggle') {
232
+ var rowIndex = expandedRow[ROW_INDEX];
233
+ var colIndex = _this.focusedCell[1];
234
+ _this.initFocusableCell([_this.hasFocusableInHeader() ? rowIndex + 1 : rowIndex, colIndex]);
235
+ }
236
+ }
237
+ });
238
+ (0, _defineProperty2["default"])(_this, "changeFocusCell", function (rowIndex, colIndex, direction) {
239
+ var _this$tableRef$curren2, _this$tableRef$curren3;
240
+ var limit = _this.asProps.limit;
241
+ var hasFocusable = _this.hasFocusableInHeader();
242
+ var maxCol = _this.columns.length - 1;
243
+ var maxRow = _this.totalRows || 1;
244
+ 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, "\"]"));
245
+ var headerCells = (_this$tableRef$curren3 = _this.tableRef.current) === null || _this$tableRef$curren3 === void 0 ? void 0 : _this$tableRef$curren3.querySelectorAll('[role=columnheader]');
246
+ var currentCell = currentRow === null || currentRow === void 0 ? void 0 : currentRow.querySelector("[role=gridcell][aria-colindex='".concat(_this.focusedCell[1] + 1, "']"));
247
+ var currentHeaderCell = headerCells === null || headerCells === void 0 ? void 0 : headerCells.item(_this.focusedCell[1]);
248
+ var changed = true;
249
+ var newRow = _this.focusedCell[0] + rowIndex;
250
+ var newCol = _this.focusedCell[1] + colIndex;
251
+ if ((hasFocusable && newRow < 0 || !hasFocusable && newRow < 1 || newRow > maxRow) && newRow !== _this.focusedCell[0]) {
252
+ changed = false;
253
+ }
254
+ if ((newCol < 0 || newCol > maxCol) && newCol !== _this.focusedCell[1]) {
255
+ changed = false;
256
+ }
257
+ if (!changed) return;
258
+ var row = _this.getRow(newRow);
259
+ var cell = row === null || row === void 0 ? void 0 : row.querySelector(":scope > div > [role=gridcell][aria-colindex=\"".concat(newCol + 1, "\"]:not([aria-hidden=\"true\"]), :scope > [role=columnheader][aria-colindex=\"").concat(newCol + 1, "\"]:not([aria-hidden=\"true\"]), :scope > div > [role=columnheader][aria-colindex=\"").concat(newCol + 1, "\"]:not([aria-hidden=\"true\"])"));
260
+ if (cell instanceof HTMLElement && currentCell !== cell) {
261
+ _this.focusedCell = [newRow, newCol];
262
+ currentCell === null || currentCell === void 0 || currentCell.setAttribute('inert', '');
263
+ if (currentCell !== currentHeaderCell) {
264
+ currentCell === null || currentCell === void 0 || currentCell.removeAttribute('aria-describedby');
265
+ }
266
+ var headerCell = headerCells === null || headerCells === void 0 ? void 0 : headerCells.item(newCol);
267
+ var describedBy = headerCell === null || headerCell === void 0 ? void 0 : headerCell.getAttribute('aria-describedby');
268
+ cell.removeAttribute('inert');
269
+ if (headerCell !== cell && describedBy) {
270
+ cell.setAttribute('aria-describedby', describedBy);
271
+ }
272
+ cell === null || cell === void 0 || cell.focus({
273
+ focusVisible: true
274
+ });
275
+ if (newRow !== 0) {
276
+ currentHeaderCell === null || currentHeaderCell === void 0 || currentHeaderCell.setAttribute('inert', '');
277
+ var _headerCell = headerCells === null || headerCells === void 0 ? void 0 : headerCells.item(newCol);
278
+ _headerCell === null || _headerCell === void 0 || _headerCell.removeAttribute('inert');
279
+ }
280
+ } else if (cell === null && currentCell instanceof HTMLElement) {
281
+ var rowI = rowIndex;
282
+ var colI = colIndex;
283
+ var colspan = Number(currentCell.getAttribute('aria-colspan'));
284
+ var rowspan = Number(currentCell.getAttribute('aria-rowspan'));
285
+ if (direction === 'left' || direction === 'right') {
286
+ var _currentCell$parentEl;
287
+ // we need to skip Collapse Element with one big component from keyboard left/right pressing
288
+ if (((_currentCell$parentEl = currentCell.parentElement) === null || _currentCell$parentEl === void 0 || (_currentCell$parentEl = _currentCell$parentEl.parentElement) === null || _currentCell$parentEl === void 0 ? void 0 : _currentCell$parentEl.dataset.uiName) === 'Collapse') {
289
+ return;
290
+ }
291
+ // skipping x-axis movement of the focus within limit overlay and there is only limit by rows
292
+ if ((limit === null || limit === void 0 ? void 0 : limit.fromRow) !== undefined && limit.fromColumn === undefined && newCol === limit.fromRow) {
293
+ return;
294
+ }
295
+ var hasRowSpanUpper = row instanceof HTMLElement && Number(row.dataset.filledColumns) < _this.columns.length;
296
+ if (colspan > 0) {
297
+ if (direction === 'right' && (limit === null || limit === void 0 ? void 0 : limit.fromColumn) !== undefined && newCol === limit.fromColumn) {
298
+ rowI = rowI - 1;
299
+ } else {
300
+ colI = direction === 'left' ? colI - colspan + 1 : colI + colspan - 1;
301
+ }
302
+ } else if (hasRowSpanUpper || direction === 'right' && ((limit === null || limit === void 0 ? void 0 : limit.fromColumn) !== undefined || (limit === null || limit === void 0 ? void 0 : limit.fromRow) !== undefined)) {
303
+ rowI = rowI - 1;
304
+ } else {
305
+ colI = direction === 'left' ? colI - 1 : colI + 1;
306
+ }
307
+ } else if (direction === 'up' || direction === 'down') {
308
+ // top/bottom
309
+ if (rowspan > 0) {
310
+ rowI = direction === 'up' ? rowI - rowspan + 1 : rowI + rowspan - 1;
311
+ } else if (Number(currentCell.getAttribute('aria-colindex')) === 1) {
312
+ rowI = direction === 'up' ? rowI - 1 : rowI + 1;
313
+ } else {
314
+ var _limit$fromRow;
315
+ var areLimitsDefined = (limit === null || limit === void 0 ? void 0 : limit.fromRow) !== undefined || (limit === null || limit === void 0 ? void 0 : limit.fromColumn) !== undefined;
316
+ if (areLimitsDefined && newRow > ((_limit$fromRow = limit === null || limit === void 0 ? void 0 : limit.fromRow) !== null && _limit$fromRow !== void 0 ? _limit$fromRow : 0) + 1) {
317
+ return;
318
+ }
319
+ var _hasRowSpanUpper = row instanceof HTMLElement && currentRow instanceof HTMLElement && row.dataset.filledColumns !== currentRow.dataset.filledColumns;
320
+ if (direction === 'up' && _hasRowSpanUpper) {
321
+ rowI = rowI - 1;
322
+ } else {
323
+ colI = colI - 1;
324
+ }
325
+ }
326
+ }
327
+ _this.changeFocusCell(rowI, colI, direction);
328
+ } else if (cell === null && currentHeaderCell instanceof HTMLElement && direction === 'down') {
329
+ var _colI = colIndex - 1;
330
+ _this.changeFocusCell(rowIndex, _colI, direction);
331
+ } else if (row === null && _this.focusedCell[0] === 0 && direction === 'down' && _this.asProps.virtualScroll) {
332
+ _this.changeFocusCell(rowIndex + 1, colIndex, direction);
333
+ }
334
+ });
335
+ (0, _defineProperty2["default"])(_this, "handleKeyDown", function (e) {
336
+ switch (e.key) {
337
+ case 'Tab':
338
+ {
339
+ _this.setInert(true);
340
+ break;
341
+ }
342
+ case 'ArrowLeft':
343
+ {
344
+ e.preventDefault();
345
+ _this.changeFocusCell(0, -1, 'left');
346
+ break;
347
+ }
348
+ case 'ArrowRight':
349
+ {
350
+ e.preventDefault();
351
+ _this.changeFocusCell(0, 1, 'right');
352
+ break;
353
+ }
354
+ case 'ArrowUp':
355
+ {
356
+ e.preventDefault();
357
+ _this.changeFocusCell(-1, 0, 'up');
358
+ break;
359
+ }
360
+ case 'ArrowDown':
361
+ {
362
+ e.preventDefault();
363
+ _this.changeFocusCell(1, 0, 'down');
364
+ break;
365
+ }
366
+ case 'Shift':
367
+ {
368
+ _this.selectedRowsContainer.isPressedShift = true;
369
+ }
370
+ }
371
+ });
372
+ (0, _defineProperty2["default"])(_this, "handleKeyUp", function (e) {
373
+ if (e.key === 'Shift') {
374
+ _this.selectedRowsContainer.isPressedShift = false;
375
+ }
376
+ });
377
+ (0, _defineProperty2["default"])(_this, "handleScroll", (0, _rafTrottle["default"])(function (e) {
378
+ if (_this.asProps.virtualScroll) {
379
+ var scrollTop = e.target.scrollTop;
380
+ var scrollDirection = scrollTop > _this.state.scrollTop ? 'down' : 'up';
381
+ _this.setState({
382
+ scrollTop: scrollTop,
383
+ scrollDirection: scrollDirection
384
+ });
385
+ }
386
+ if (_this.hasFixedColumn) {
387
+ _this.calculateVerticalShadow();
388
+ }
389
+ }));
390
+ (0, _defineProperty2["default"])(_this, "calculateVerticalShadow", function () {
391
+ if (!_this.tableContainerRef.current) return;
392
+ var _this$tableContainerR = _this.tableContainerRef.current,
393
+ scrollWidth = _this$tableContainerR.scrollWidth,
394
+ clientWidth = _this$tableContainerR.clientWidth,
395
+ scrollLeft = _this$tableContainerR.scrollLeft;
396
+ var maxScrollRight = scrollWidth - clientWidth;
397
+ var roundedScroll = Math.round(scrollLeft);
398
+ var roundedMaxScroll = Math.round(maxScrollRight);
399
+ var shadow = '';
400
+ // not scroll
401
+ if (roundedMaxScroll <= 0) {
402
+ // start scroll
403
+ } else if (roundedScroll <= 0) {
404
+ shadow = 'end';
405
+ // end scroll
406
+ } else if (roundedScroll >= roundedMaxScroll) {
407
+ shadow = 'start';
408
+ // median scroll
409
+ } else if (roundedScroll > 0) {
410
+ shadow = 'median';
411
+ }
412
+ _this.setState({
413
+ shadowVertical: shadow
414
+ });
415
+ });
416
+ (0, _defineProperty2["default"])(_this, "handleFocus", function (e) {
417
+ if (_this.asProps.loading) {
418
+ var _this$spinnerRef$curr;
419
+ (_this$spinnerRef$curr = _this.spinnerRef.current) === null || _this$spinnerRef$curr === void 0 || _this$spinnerRef$curr.focus();
420
+ e.currentTarget.setAttribute('tabIndex', '-1');
421
+ if (_this.isDataEmpty) {
422
+ var _this$headerRef$curre;
423
+ (_this$headerRef$curre = _this.headerRef.current) === null || _this$headerRef$curre === void 0 || _this$headerRef$curre.setAttribute('tabIndex', '-1');
424
+ }
425
+ } else if ((!e.relatedTarget || !(0, _useFocusLock.isFocusInside)(e.currentTarget, e.relatedTarget)) && _core.lastInteraction.isKeyboard()) {
426
+ var _row;
427
+ if (_this.focusedCell[0] === -1 && _this.focusedCell[1] === -1) {
428
+ _this.initFocusableCell();
429
+ }
430
+ _this.setInert(true);
431
+ var row = _this.getRow(_this.focusedCell[0]);
432
+ if (!row) {
433
+ _this.initFocusableCell();
434
+ row = _this.getRow(_this.focusedCell[0]);
435
+ }
436
+ if (!row && _this.asProps.virtualScroll) {
437
+ var _this$tableRef$curren4, _firstAvailableCell$p;
438
+ var firstAvailableCell = (_this$tableRef$curren4 = _this.tableRef.current) === null || _this$tableRef$curren4 === void 0 ? void 0 : _this$tableRef$curren4.querySelector("[role=\"gridcell\"]");
439
+ var firstAvailableRow = firstAvailableCell === null || firstAvailableCell === void 0 || (_firstAvailableCell$p = firstAvailableCell.parentElement) === null || _firstAvailableCell$p === void 0 ? void 0 : _firstAvailableCell$p.parentElement;
440
+ if (firstAvailableCell && firstAvailableRow) {
441
+ var _firstAvailableCell$g, _firstAvailableRow$ge;
442
+ var colIndex = Number((_firstAvailableCell$g = firstAvailableCell.getAttribute('aria-colindex')) !== null && _firstAvailableCell$g !== void 0 ? _firstAvailableCell$g : 1) - 1;
443
+ var rowIndex = Number((_firstAvailableRow$ge = firstAvailableRow.getAttribute('aria-rowindex')) !== null && _firstAvailableRow$ge !== void 0 ? _firstAvailableRow$ge : 1) - 1;
444
+ _this.focusedCell[0] = rowIndex;
445
+ _this.focusedCell[1] = colIndex;
446
+ row = firstAvailableRow;
447
+ }
448
+ }
449
+ var colindex = _this.focusedCell[1];
450
+ var cell = colindex > -1 ? (_row = row) === null || _row === void 0 ? void 0 : _row.querySelector("[role=gridcell][aria-colindex=\"".concat(colindex + 1, "\"]:not([aria-hidden=\"true\"]), [role=columnheader][aria-colindex=\"").concat(colindex + 1, "\"]:not([aria-hidden=\"true\"])")) : undefined;
451
+ cell === null || cell === void 0 || cell.removeAttribute('inert');
452
+ if (cell instanceof HTMLElement) {
453
+ if ((0, _hasParent.hasParent)(e.target, cell) && !e.target.dataset.skipTargetFocus) {
454
+ e.target.focus({
455
+ focusVisible: true
456
+ });
457
+ } else {
458
+ cell.focus({
459
+ focusVisible: true
460
+ });
461
+ }
462
+ }
463
+ if (_this.isDataEmpty) {
464
+ var _this$headerRef$curre2;
465
+ (_this$headerRef$curre2 = _this.headerRef.current) === null || _this$headerRef$curre2 === void 0 || _this$headerRef$curre2.setAttribute('tabIndex', '-1');
466
+ }
467
+ e.currentTarget.setAttribute('tabIndex', '-1');
468
+ }
469
+ });
470
+ (0, _defineProperty2["default"])(_this, "handleBlur", function (e) {
471
+ var relatedTarget = e.relatedTarget;
472
+ var tableElement = _this.tableRef.current;
473
+ if (tableElement && (!relatedTarget || !(0, _useFocusLock.isFocusInside)(tableElement, relatedTarget) || !_core.lastInteraction.isKeyboard())) {
474
+ _this.setInert(false);
475
+ tableElement.setAttribute('tabIndex', '0');
476
+ if (_this.isDataEmpty) {
477
+ var _this$headerRef$curre3;
478
+ (_this$headerRef$curre3 = _this.headerRef.current) === null || _this$headerRef$curre3 === void 0 || _this$headerRef$curre3.setAttribute('tabIndex', '0');
479
+ }
480
+ }
481
+ });
482
+ (0, _defineProperty2["default"])(_this, "handleMouseMove", function () {
483
+ _this.setInert(false);
484
+ });
485
+ (0, _defineProperty2["default"])(_this, "handleBackFromAccordion", function (key) {
486
+ var cellIndex = _this.columns.findIndex(function (c) {
487
+ return c.name === key;
488
+ });
489
+ _this.changeFocusCell(-1, cellIndex === -1 ? 0 : cellIndex, 'up');
490
+ });
491
+ (0, _defineProperty2["default"])(_this, "handleContainerResizeEnd", function (entries, observer) {
492
+ var _this$asProps$onResiz, _this$asProps2;
493
+ if (_this.containerResizeEndTimeoutId) {
494
+ clearTimeout(_this.containerResizeEndTimeoutId);
495
+ }
496
+ _this.containerResizeEndTimeoutId = setTimeout(function () {
497
+ _this.calculateVerticalShadow();
498
+ _this.calculateStickyHeaderAnimation();
499
+ }, 0);
500
+ (_this$asProps$onResiz = (_this$asProps2 = _this.asProps).onResize) === null || _this$asProps$onResiz === void 0 || _this$asProps$onResiz.call(_this$asProps2, entries, observer);
501
+ });
502
+ (0, _defineProperty2["default"])(_this, "getScrollOffsetValue", function () {
503
+ if (!_this.headerRef.current) {
504
+ return [0, 0];
505
+ }
506
+ var setToMap = function setToMap(element) {
507
+ if (element.getAttribute('name') && element.dataset.uiName === 'Head.Column') {
508
+ var name = element.getAttribute('name');
509
+ if (name) {
510
+ _this.headerNodesMap.set(name, element);
511
+ }
512
+ }
513
+ };
514
+ _this.headerRef.current.childNodes.forEach(function (node) {
515
+ if (node instanceof HTMLElement) {
516
+ if (node.classList.value.includes('SGroupContainer')) {
517
+ node.childNodes.forEach(function (columnNode) {
518
+ if (columnNode instanceof HTMLElement) {
519
+ setToMap(columnNode);
520
+ }
521
+ });
522
+ } else {
523
+ setToMap(node);
524
+ }
525
+ }
526
+ });
527
+ return _this.columns.reduce(function (acc, column) {
528
+ if (column.fixed === 'left') {
529
+ var _this$headerNodesMap$, _this$headerNodesMap$2;
530
+ 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;
531
+ }
532
+ if (column.fixed === 'right') {
533
+ var _this$headerNodesMap$3, _this$headerNodesMap$4;
534
+ 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;
535
+ }
536
+ return acc;
537
+ }, [0, 0]);
538
+ });
539
+ (0, _defineProperty2["default"])(_this, "getFixedStyle", function (cell) {
540
+ var side = cell.fixed;
541
+ if (!side) return [undefined, undefined];
542
+ var names = cell.name.split('/');
543
+ var nameSideMap = {
544
+ left: names[0],
545
+ right: names[names.length - 1]
546
+ };
547
+ var name = nameSideMap[side];
548
+ var index = _this.columns.findIndex(function (column) {
549
+ return column.name === name;
550
+ });
551
+ if (index === -1) return [undefined, undefined];
552
+ var startIndexSideMap = {
553
+ left: 0,
554
+ right: index + 1
555
+ };
556
+ var endIndexSideMap = {
557
+ left: index,
558
+ right: _this.columns.length
559
+ };
560
+ var columnsFixed = _this.columns.slice(startIndexSideMap[side], endIndexSideMap[side]);
561
+ if (columnsFixed.length < 1) return [side, 0];
562
+ var sum = columnsFixed.reduce(function (acc, column) {
563
+ var _this$headerNodesMap$5;
564
+ return acc + ((_this$headerNodesMap$5 = _this.headerNodesMap.get(column.name)) === null || _this$headerNodesMap$5 === void 0 ? void 0 : _this$headerNodesMap$5.getBoundingClientRect().width);
565
+ }, 0);
566
+ return [side, "".concat(sum, "px")];
567
+ });
568
+ var cols = _this.calculateColumnsFromConfig();
569
+ _this.columns = cols[0];
570
+ _this.treeColumns = cols[1];
571
+ _this.calculatedRows = _this.getRows();
572
+ _this.flatRows = _this.calculatedRows.flat();
573
+ _this.tmpData = props.data;
574
+ if (Array.isArray(props.selectedRows) || !props.selectedRows) {
575
+ _this.selectedRowsContainer = new _SelectableRows.SelectableRows();
576
+ } else {
577
+ _this.selectedRowsContainer = props.selectedRows;
578
+ }
579
+ return _this;
580
+ }
581
+ (0, _inherits2["default"])(DataTableRoot, _Component);
582
+ return (0, _createClass2["default"])(DataTableRoot, [{
583
+ key: "componentDidMount",
584
+ value: function componentDidMount() {
585
+ var _this2 = this;
586
+ var _this$asProps3 = this.asProps,
587
+ headerProps = _this$asProps3.headerProps,
588
+ loading = _this$asProps3.loading;
589
+ if (headerProps !== null && headerProps !== void 0 && headerProps.sticky && !headerProps.h || loading || this.hasFixedColumn) {
590
+ requestAnimationFrame(function () {
591
+ _this2.forceUpdate();
592
+ _this2.calculateVerticalShadow();
593
+ });
594
+ }
595
+ if (headerProps !== null && headerProps !== void 0 && headerProps.sticky && (0, _canUseDOM["default"])() && this.scrollDirection === 'horizontal') {
596
+ if (!this.withAnimation) {
597
+ document.addEventListener('scroll', this.handleDocumentScroll, {
598
+ passive: true
599
+ });
600
+ } else {
601
+ this.calculateStickyHeaderAnimation();
602
+ }
603
+ }
604
+ }
605
+ }, {
606
+ key: "componentDidUpdate",
607
+ value: function componentDidUpdate(prevProps) {
608
+ var _this$asProps4 = this.asProps,
609
+ data = _this$asProps4.data,
610
+ selectedRows = _this$asProps4.selectedRows,
611
+ columns = _this$asProps4.columns;
612
+ if (prevProps.columns !== columns) {
613
+ var cols = this.calculateColumnsFromConfig();
614
+ this.columns = cols[0];
615
+ this.treeColumns = cols[1];
616
+ this.forceUpdate();
617
+ }
618
+ if (prevProps.data !== data || prevProps.columns !== columns) {
619
+ if (this.hasFixedColumn) {
620
+ this.calculateVerticalShadow();
621
+ }
622
+ }
623
+ if (prevProps.selectedRows !== selectedRows && selectedRows !== undefined && !Array.isArray(selectedRows)) {
624
+ this.selectedRowsContainer = selectedRows;
625
+ }
626
+ }
627
+ }, {
628
+ key: "componentWillUnmount",
629
+ value: function componentWillUnmount() {
630
+ var _this$state$expandedR;
631
+ if ((0, _canUseDOM["default"])()) {
632
+ document.removeEventListener('scroll', this.handleDocumentScroll);
633
+ }
634
+ (_this$state$expandedR = this.state.expandedRows) === null || _this$state$expandedR === void 0 || _this$state$expandedR.clear();
635
+ }
636
+ }, {
637
+ key: "calculateStickyHeaderAnimation",
638
+ value: function calculateStickyHeaderAnimation() {
639
+ var headerProps = this.asProps.headerProps;
640
+ var scrollArea = this.scrollAreaRef.current;
641
+ var table = this.tableContainerRef.current;
642
+ if (scrollArea && table) {
643
+ var _headerProps$top2;
644
+ var currentHeaderHeight = scrollArea.style.getPropertyValue('--global-header-height');
645
+ var newHeaderHeight = "".concat(this.getHeaderHeight(), "px");
646
+ scrollArea.style.setProperty('--global-scroll-to', "".concat(table.offsetHeight, "px"));
647
+ scrollArea.style.setProperty('--global-header-top', "".concat((_headerProps$top2 = headerProps === null || headerProps === void 0 ? void 0 : headerProps.top) !== null && _headerProps$top2 !== void 0 ? _headerProps$top2 : 0, "px"));
648
+ scrollArea.style.setProperty('--global-header-height', newHeaderHeight);
649
+ if (currentHeaderHeight && currentHeaderHeight !== newHeaderHeight) {
650
+ this.forceUpdate();
651
+ }
652
+ }
653
+ }
654
+ }, {
655
+ key: "withAnimation",
656
+ get: function get() {
657
+ if ((0, _canUseDOM["default"])()) {
658
+ return CSS.supports('(animation-timeline: view()) and (animation-range: normal)');
659
+ }
660
+ return false;
661
+ }
662
+ }, {
663
+ key: "totalRows",
664
+ get: function get() {
665
+ var totalRows = this.asProps.totalRows;
666
+ var flatRows = this.getFlatRows();
667
+ var expandedRows = this.state.expandedRows;
668
+ var expandedRowsCount = Array.from(expandedRows).reduce(function (acc, rowKey) {
669
+ var dtRow = flatRows.find(function (el) {
670
+ return el[UNIQ_ROW_KEY] === rowKey;
671
+ });
672
+ if (dtRow) {
673
+ var _expandedRows = dtRow[ACCORDION];
674
+ if (Array.isArray(_expandedRows)) {
675
+ acc = acc + _expandedRows.length;
676
+ } else {
677
+ acc = acc + 1;
678
+ }
679
+ }
680
+ return acc;
681
+ }, 0);
682
+ if (totalRows !== undefined) {
683
+ return totalRows + expandedRowsCount;
684
+ }
685
+ var rows = this.getRows().reduce(function (acc, item) {
686
+ if (Array.isArray(item)) {
687
+ acc = acc + item.length;
688
+ } else {
689
+ acc = acc + 1;
690
+ }
691
+ return acc;
692
+ }, 0);
693
+ return rows + expandedRowsCount;
694
+ }
695
+ }, {
696
+ key: "scrollDirection",
697
+ get: function get() {
698
+ var _this$asProps5 = this.asProps,
699
+ w = _this$asProps5.w,
700
+ wMax = _this$asProps5.wMax,
701
+ h = _this$asProps5.h,
702
+ hMax = _this$asProps5.hMax;
703
+ var scrollDirection = undefined;
704
+ var hasWidthSettings = Boolean(w) || Boolean(wMax);
705
+ var hasHeightSettings = Boolean(h) && h !== 'fit-content' || Boolean(hMax);
706
+ if (hasWidthSettings && !hasHeightSettings) {
707
+ scrollDirection = 'horizontal';
708
+ } else if (hasHeightSettings && !hasWidthSettings) {
709
+ scrollDirection = 'vertical';
710
+ } else if (hasWidthSettings && hasHeightSettings) {
711
+ scrollDirection = 'both';
712
+ }
713
+ return scrollDirection;
714
+ }
715
+ }, {
716
+ key: "isDataEmpty",
717
+ get: function get() {
718
+ return this.asProps.data.length === 0;
719
+ }
720
+ }, {
721
+ key: "getHeadProps",
722
+ value: function getHeadProps() {
723
+ var _this$asProps6 = this.asProps,
724
+ use = _this$asProps6.use,
725
+ compact = _this$asProps6.compact,
726
+ sort = _this$asProps6.sort,
727
+ onSortChange = _this$asProps6.onSortChange,
728
+ getI18nText = _this$asProps6.getI18nText,
729
+ uid = _this$asProps6.uid,
730
+ headerProps = _this$asProps6.headerProps,
731
+ selectedRows = _this$asProps6.selectedRows,
732
+ sideIndents = _this$asProps6.sideIndents,
733
+ variant = _this$asProps6.variant;
734
+ var _this$gridSettings = this.gridSettings,
735
+ gridTemplateColumns = _this$gridSettings.gridTemplateColumns,
736
+ gridTemplateAreas = _this$gridSettings.gridTemplateAreas;
737
+ var shadowVertical = this.state.shadowVertical;
738
+ var sideIndentsValue = variant === 'card' ? 'wide' : sideIndents;
739
+ return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, headerProps), {}, {
740
+ columns: this.columns,
741
+ treeColumns: this.treeColumns,
742
+ use: use,
743
+ tableRef: this.tableRef,
744
+ compact: Boolean(compact),
745
+ sort: sort,
746
+ onSortChange: onSortChange,
747
+ getI18nText: getI18nText,
748
+ uid: uid,
749
+ ref: headerProps !== null && headerProps !== void 0 && headerProps.ref ? (0, _ref9.forkRef)(this.headerRef, headerProps.ref) : this.headerRef,
750
+ gridAreaGroupMap: this.gridAreaGroupMap,
751
+ gridTemplateColumns: gridTemplateColumns,
752
+ gridTemplateAreas: gridTemplateAreas,
753
+ sideIndents: sideIndentsValue,
754
+ totalRows: this.totalRows,
755
+ selectedRows: selectedRows,
756
+ flatRows: this.getFlatRows(),
757
+ onChangeSelectAll: Array.isArray(selectedRows) ? this.handleSelectAllRows : undefined,
758
+ getFixedStyle: this.getFixedStyle,
759
+ onCellClick: this.handleCellClick,
760
+ shadowVertical: shadowVertical,
761
+ scrollDirection: this.scrollDirection,
762
+ isDataEmpty: this.isDataEmpty,
763
+ withAnimation: this.withAnimation && this.scrollDirection === 'horizontal' && !this.isDataEmpty
764
+ });
765
+ }
766
+ }, {
767
+ key: "getBodyProps",
768
+ value: function getBodyProps() {
769
+ var _this$asProps7 = this.asProps,
770
+ use = _this$asProps7.use,
771
+ compact = _this$asProps7.compact,
772
+ loading = _this$asProps7.loading,
773
+ getI18nText = _this$asProps7.getI18nText,
774
+ virtualScroll = _this$asProps7.virtualScroll,
775
+ uid = _this$asProps7.uid,
776
+ rowProps = _this$asProps7.rowProps,
777
+ renderCell = _this$asProps7.renderCell,
778
+ headerProps = _this$asProps7.headerProps,
779
+ renderEmptyData = _this$asProps7.renderEmptyData,
780
+ sideIndents = _this$asProps7.sideIndents,
781
+ selectedRows = _this$asProps7.selectedRows,
782
+ accordionDuration = _this$asProps7.accordionDuration,
783
+ accordionMode = _this$asProps7.accordionMode,
784
+ rawData = _this$asProps7.data,
785
+ renderCellOverlay = _this$asProps7.renderCellOverlay,
786
+ limit = _this$asProps7.limit,
787
+ variant = _this$asProps7.variant,
788
+ totalRows = _this$asProps7.totalRows,
789
+ accordionAnimationRows = _this$asProps7.accordionAnimationRows;
790
+ var _this$gridSettings2 = this.gridSettings,
791
+ gridTemplateColumns = _this$gridSettings2.gridTemplateColumns,
792
+ gridTemplateAreas = _this$gridSettings2.gridTemplateAreas;
793
+ var shadowVertical = this.state.shadowVertical;
794
+ return {
795
+ accordionDuration: accordionDuration,
796
+ accordionAnimationRows: accordionAnimationRows,
797
+ accordionMode: accordionMode,
798
+ columns: this.columns,
799
+ rows: this.getRows(),
800
+ flatRows: this.getFlatRows(),
801
+ use: use,
802
+ compact: Boolean(compact),
803
+ gridTemplateColumns: gridTemplateColumns,
804
+ gridTemplateAreas: gridTemplateAreas,
805
+ loading: loading,
806
+ headerHeight: this.getHeaderHeight(),
807
+ stickyHeader: headerProps === null || headerProps === void 0 ? void 0 : headerProps.sticky,
808
+ getI18nText: getI18nText,
809
+ expandedRows: this.state.expandedRows,
810
+ onExpandRow: this.onExpandRow,
811
+ spinnerRef: this.spinnerRef,
812
+ scrollTop: this.state.scrollTop,
813
+ scrollDirection: this.state.scrollDirection,
814
+ tableContainerRef: this.tableContainerRef,
815
+ tableRef: this.tableRef,
816
+ scrollAreaRef: this.scrollAreaRef,
817
+ onBackFromAccordion: this.handleBackFromAccordion,
818
+ virtualScroll: virtualScroll,
819
+ hasGroups: this.hasGroups,
820
+ uid: uid,
821
+ rowProps: this.getRows().length > 0 ? rowProps : undefined,
822
+ renderCell: this.getRows().length > 0 ? renderCell : undefined,
823
+ renderEmptyData: renderEmptyData,
824
+ sideIndents: sideIndents,
825
+ selectedRows: selectedRows,
826
+ onSelectRow: Array.isArray(selectedRows) ? this.handleSelectRow : undefined,
827
+ getFixedStyle: this.getFixedStyle,
828
+ onCellClick: this.handleCellClick,
829
+ rawData: rawData,
830
+ shadowVertical: shadowVertical,
831
+ renderCellOverlay: renderCellOverlay,
832
+ limit: limit,
833
+ variant: variant,
834
+ totalRows: totalRows
835
+ };
836
+ }
837
+ }, {
838
+ key: "setInert",
839
+ value: function setInert(value) {
840
+ var _this$tableRef$curren5;
841
+ var cells = (_this$tableRef$curren5 = this.tableRef.current) === null || _this$tableRef$curren5 === void 0 ? void 0 : _this$tableRef$curren5.querySelectorAll('[role=gridcell], [role=columnheader]');
842
+ cells === null || cells === void 0 || cells.forEach(function (cell) {
843
+ if (value === true) {
844
+ cell.setAttribute('inert', '');
845
+ } else {
846
+ cell.removeAttribute('inert');
847
+ }
848
+ });
849
+ }
850
+ }, {
851
+ key: "initFocusableCell",
852
+ value: function initFocusableCell(initCell) {
853
+ var _initCell$, _initCell$2;
854
+ var hasFocusable = this.hasFocusableInHeader();
855
+ var initRow = (_initCell$ = initCell === null || initCell === void 0 ? void 0 : initCell[0]) !== null && _initCell$ !== void 0 ? _initCell$ : 0;
856
+ var initCol = (_initCell$2 = initCell === null || initCell === void 0 ? void 0 : initCell[1]) !== null && _initCell$2 !== void 0 ? _initCell$2 : 0;
857
+ if (hasFocusable) {
858
+ this.focusedCell = [initRow, initCol];
859
+ } else {
860
+ this.focusedCell = [initRow + 1, initCol];
861
+ }
862
+ }
863
+ }, {
864
+ key: "render",
865
+ value: function render() {
866
+ var _ref = this.asProps,
867
+ _ref2;
868
+ var SDataTable = _baseComponents.Box;
869
+ var _this$asProps8 = this.asProps,
870
+ Children = _this$asProps8.Children,
871
+ styles = _this$asProps8.styles,
872
+ w = _this$asProps8.w,
873
+ wMax = _this$asProps8.wMax,
874
+ wMin = _this$asProps8.wMin,
875
+ h = _this$asProps8.h,
876
+ hMax = _this$asProps8.hMax,
877
+ hMin = _this$asProps8.hMin,
878
+ virtualScroll = _this$asProps8.virtualScroll,
879
+ children = _this$asProps8.children,
880
+ headerProps = _this$asProps8.headerProps,
881
+ loading = _this$asProps8.loading,
882
+ selectedRows = _this$asProps8.selectedRows,
883
+ getI18nText = _this$asProps8.getI18nText,
884
+ data = _this$asProps8.data;
885
+ var _this$getScrollOffset = this.getScrollOffsetValue(),
886
+ _this$getScrollOffset2 = (0, _slicedToArray2["default"])(_this$getScrollOffset, 2),
887
+ offsetLeftSum = _this$getScrollOffset2[0],
888
+ offsetRightSum = _this$getScrollOffset2[1];
889
+ var _this$gridSettings3 = this.gridSettings,
890
+ gridTemplateColumns = _this$gridSettings3.gridTemplateColumns,
891
+ gridTemplateAreas = _this$gridSettings3.gridTemplateAreas;
892
+ var headerHeight = (headerProps === null || headerProps === void 0 ? void 0 : headerProps.h) || this.getHeaderHeight();
893
+ var topOffset = headerProps !== null && headerProps !== void 0 && headerProps.sticky || headerProps !== null && headerProps !== void 0 && headerProps.withScrollBar ? headerHeight : undefined;
894
+ var width = w !== null && w !== void 0 ? w : this.columns.some(function (c) {
895
+ return c.gtcWidth === 'auto' || c.gtcWidth === '1fr';
896
+ }) ? '100%' : undefined;
897
+ var gridTemplateRows = undefined;
898
+ if (virtualScroll && typeof virtualScroll !== 'boolean' && 'rowHeight' in virtualScroll) {
899
+ gridTemplateRows = "auto auto repeat(".concat(this.totalRows, ", minmax(").concat(virtualScroll.rowHeight, "px, auto))");
900
+ }
901
+ return _ref2 = (0, _core.sstyled)(styles), /*#__PURE__*/React.createElement(_baseComponents.ScrollArea, _ref2.cn("ScrollArea", {
902
+ "leftOffset": offsetLeftSum,
903
+ "rightOffset": offsetRightSum,
904
+ "topOffset": topOffset,
905
+ "w": width,
906
+ "wMax": wMax,
907
+ "wMin": wMin,
908
+ "h": h,
909
+ "hMax": hMax,
910
+ "hMin": hMin,
911
+ "shadow": true,
912
+ "ref": this.scrollAreaRef,
913
+ "container": this.tableContainerRef,
914
+ "styles": scrollStyles,
915
+ "onScroll": this.handleScroll,
916
+ "disableAutofocusToContent": true,
917
+ "onResize": this.handleContainerResizeEnd
918
+ }), /*#__PURE__*/React.createElement(_baseComponents.ScrollArea.Container, {
919
+ tabIndex: -1
920
+ // @ts-ignore
921
+ ,
922
+ scrollDirection: this.scrollDirection
923
+ // @ts-ignore
924
+ ,
925
+ loading: loading,
926
+ headerHeight: "".concat(headerHeight, "px"),
927
+ leftScrollPadding: "".concat(offsetLeftSum, "px"),
928
+ rightScrollPadding: "".concat(offsetRightSum, "px")
929
+ }, /*#__PURE__*/React.createElement(SDataTable, _ref2.cn("SDataTable", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
930
+ "ref": (0, _ref9.forkRef)(this.tableRef, this.tableContainerRef),
931
+ "role": 'grid',
932
+ "onKeyDown": this.handleKeyDown,
933
+ "onKeyUp": this.handleKeyUp,
934
+ "onMouseMove": this.handleMouseMove,
935
+ "tabIndex": 0,
936
+ "onFocus": this.handleFocus,
937
+ "onBlur": this.handleBlur,
938
+ "isDataEmpty": this.isDataEmpty,
939
+ "aria-rowcount": this.totalRows,
940
+ "aria-colcount": this.columns.length,
941
+ "gridTemplateColumns": gridTemplateColumns.join(' '),
942
+ "gridTemplateAreas": gridTemplateAreas.join(' '),
943
+ "gridTemplateRows": gridTemplateRows,
944
+ "w": '100%',
945
+ "use:data": undefined,
946
+ "use:w": undefined,
947
+ "use:wMax": undefined,
948
+ "use:wMin": undefined,
949
+ "use:h": undefined,
950
+ "use:hMax": undefined,
951
+ "use:hMin": undefined
952
+ }, _ref))), children ? /*#__PURE__*/React.createElement(Children, _ref2.cn("Children", {})) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DataTable.Head, null), /*#__PURE__*/React.createElement(DataTable.Body, null)))), /*#__PURE__*/React.createElement(_ScrollBars.ScrollBars, _ref2.cn("ScrollBars", {
953
+ "loading": loading,
954
+ "topOffset": topOffset,
955
+ "withHeaderScrollBar": headerProps === null || headerProps === void 0 ? void 0 : headerProps.withScrollBar,
956
+ "withAnimation": this.withAnimation
957
+ })), selectedRows !== undefined && !Array.isArray(selectedRows) && /*#__PURE__*/React.createElement(_SRReactiveAnnouncer.SRReactiveAnnouncer, _ref2.cn("SRReactiveAnnouncer", {
958
+ "selectedRows": selectedRows,
959
+ "getI18nText": getI18nText
960
+ })), selectedRows !== undefined && Array.isArray(selectedRows) && /*#__PURE__*/React.createElement(_SRAnnouncer.SRAnnouncer, _ref2.cn("SRAnnouncer", {
961
+ "selectedRows": selectedRows,
962
+ "getI18nText": getI18nText,
963
+ "data": data,
964
+ "flatRows": this.flatRows
965
+ })));
966
+ }
967
+ }, {
968
+ key: "calculateColumnsFromConfig",
969
+ value: function calculateColumnsFromConfig() {
970
+ var _this3 = this;
971
+ var _this$props = this.props,
972
+ columns = _this$props.columns,
973
+ data = _this$props.data,
974
+ selectedRows = _this$props.selectedRows;
975
+ this.hasGroups = columns.some(function (column) {
976
+ return 'columns' in column && column.columns.some(function (col) {
977
+ return col.children !== null;
978
+ });
979
+ });
980
+ var groupIndex = 0;
981
+ var gridColumnIndex = selectedRows ? 2 : 1;
982
+ var calculateGridTemplateColumn = this.calculateGridTemplateColumn.bind(this);
983
+ var calculatedColumns = [];
984
+ var treeColumns = [];
985
+ if (selectedRows) {
986
+ var column = {
987
+ name: SELECT_ALL,
988
+ gtcWidth: 'min-content',
989
+ alignItems: 'flex-start',
990
+ children: ''
991
+ };
992
+ calculatedColumns.push(column);
993
+ }
994
+ var makeColumn = function makeColumn(columnElement, parent, isFirst, isLast, hasGroups) {
995
+ var _columnElement$fixed, _ref3, _columnElement$border;
996
+ 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;
997
+ 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;
998
+ var column = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, columnElement), {}, {
999
+ name: childIsColumn(columnElement) ? columnElement.name : '',
1000
+ gtcWidth: childIsColumn(columnElement) ? calculateGridTemplateColumn(columnElement) : '',
1001
+ fixed: (_columnElement$fixed = columnElement.fixed) !== null && _columnElement$fixed !== void 0 ? _columnElement$fixed : hasGroups ? parent === null || parent === void 0 ? void 0 : parent.fixed : undefined,
1002
+ borders: (_ref3 = (_columnElement$border = columnElement.borders) !== null && _columnElement$border !== void 0 ? _columnElement$border : leftBordersFromParent) !== null && _ref3 !== void 0 ? _ref3 : rightBordersFromParent,
1003
+ parent: parent
1004
+ });
1005
+ if (column.fixed) {
1006
+ _this3.hasFixedColumn = true;
1007
+ }
1008
+ return column;
1009
+ };
1010
+ var childIsColumn = function childIsColumn(child) {
1011
+ return !('columns' in child);
1012
+ };
1013
+ var childIsGroup = function childIsGroup(child) {
1014
+ return 'columns' in child;
1015
+ };
1016
+ var setShowShadows = function setShowShadows(col, i) {
1017
+ var prevCol = treeColumns[i - 1];
1018
+ if ('columns' in prevCol && prevCol.columns) {
1019
+ prevCol = prevCol.columns[prevCol.columns.length - 1];
1020
+ }
1021
+ if (prevCol.fixed && !col.fixed) {
1022
+ prevCol.showShadowVertical = true;
1023
+ } else if (!prevCol.fixed && col.fixed) {
1024
+ col.showShadowVertical = true;
1025
+ }
1026
+ };
1027
+ columns.forEach(function (child, i) {
1028
+ if (childIsColumn(child)) {
1029
+ var col = makeColumn(child);
1030
+ col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(_this3.hasGroups ? '3' : '2', " / ").concat(gridColumnIndex + 1);
1031
+ gridColumnIndex++;
1032
+ calculatedColumns.push(col);
1033
+ treeColumns.push(col);
1034
+ if (i > 0) {
1035
+ setShowShadows(col, i);
1036
+ }
1037
+ } else if (childIsGroup(child)) {
1038
+ var Group = makeColumn(child);
1039
+ var childCount = child.columns.length;
1040
+ var initGridColumn = gridColumnIndex;
1041
+ var groupedRow = _this3.hasGroups ? 2 : 1;
1042
+ Group.columns = [];
1043
+ Group.children = child.children;
1044
+ child.columns.forEach(function (child, j) {
1045
+ var _Group$columns;
1046
+ var isFirst = j === 0;
1047
+ var isLast = j === childCount - 1;
1048
+ var col = makeColumn(child, Group, isFirst, isLast, _this3.hasGroups);
1049
+ if (i === 0 && j === 0 && data.some(function (d) {
1050
+ return d[ACCORDION];
1051
+ })) {
1052
+ gridColumnIndex++;
1053
+ col.gridArea = "".concat(groupedRow, " / ").concat(gridColumnIndex - 1, " / ").concat(groupedRow + 1, " / ").concat(gridColumnIndex + 1);
1054
+ } else {
1055
+ col.gridArea = "".concat(groupedRow, " / ").concat(gridColumnIndex, " / ").concat(groupedRow + 1, " / ").concat(gridColumnIndex + 1);
1056
+ }
1057
+ col.gridArea = "".concat(groupedRow, " / ").concat(gridColumnIndex, " / ").concat(groupedRow + 1, " / ").concat(gridColumnIndex + 1);
1058
+ gridColumnIndex++;
1059
+ calculatedColumns.push(col);
1060
+ if (isFirst && i > 0) {
1061
+ setShowShadows(col, i);
1062
+ }
1063
+ (_Group$columns = Group.columns) === null || _Group$columns === void 0 || _Group$columns.push(col);
1064
+ });
1065
+ treeColumns.push(Group);
1066
+ _this3.gridAreaGroupMap.set(groupIndex, "1 / ".concat(initGridColumn, " / 2 / ").concat(gridColumnIndex));
1067
+ groupIndex++;
1068
+ }
1069
+ });
1070
+ var gridTemplateColumns = calculatedColumns.map(function (c) {
1071
+ return c.gtcWidth;
1072
+ });
1073
+ var gridTemplateAreas = calculatedColumns.map(function (c) {
1074
+ return c.name;
1075
+ });
1076
+ this.gridSettings = {
1077
+ gridTemplateColumns: gridTemplateColumns,
1078
+ gridTemplateAreas: gridTemplateAreas
1079
+ };
1080
+ return [calculatedColumns, treeColumns];
1081
+ }
1082
+ }, {
1083
+ key: "getFlatRows",
1084
+ value: function getFlatRows() {
1085
+ var data = this.props.data;
1086
+ if (this.tmpData === data && this.flatRows) {
1087
+ return this.flatRows;
1088
+ }
1089
+ this.flatRows = this.getRows().flat();
1090
+ return this.flatRows;
1091
+ }
1092
+ }, {
1093
+ key: "getRows",
1094
+ value: function getRows() {
1095
+ var _this4 = this;
1096
+ var columns = this.columns;
1097
+ // @ts-ignore
1098
+ var _this$props2 = this.props,
1099
+ data = _this$props2.data,
1100
+ uid = _this$props2.uid,
1101
+ uniqueRowKey = _this$props2.uniqueRowKey,
1102
+ selectedRows = _this$props2.selectedRows;
1103
+ if (this.tmpData === data) {
1104
+ return this.calculatedRows;
1105
+ }
1106
+ this.tmpData = data;
1107
+ var availableRowKeys = [];
1108
+ var rows = [];
1109
+ var columnNames = columns.map(function (column) {
1110
+ return column.name;
1111
+ });
1112
+ var rowIndex = 0;
1113
+ var gridRowIndex = 0;
1114
+ var id = 100000000; // need this for gen keys by toString(36)
1115
+
1116
+ var _makeDtRow = function makeDtRow(row, excludeColumns) {
1117
+ var columns = new Set(columnNames);
1118
+ var accordionInCell = null;
1119
+ var rowKey = row[UNIQ_ROW_KEY];
1120
+ if (!rowKey) {
1121
+ if (uniqueRowKey) {
1122
+ // @ts-ignore
1123
+ var keyValue = row[uniqueRowKey];
1124
+ if (keyValue instanceof _MergedCells.MergedRowsCell) {
1125
+ rowKey = keyValue.value;
1126
+ } else {
1127
+ rowKey = keyValue;
1128
+ }
1129
+ } else {
1130
+ rowKey = "".concat(uid, "_").concat((rowIndex + id).toString(36));
1131
+ }
1132
+ }
1133
+ var initData = (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, UNIQ_ROW_KEY, rowKey), ROW_INDEX, rowIndex), GRID_ROW_INDEX, gridRowIndex);
1134
+ var dtRow = Object.entries(row).reduce(function (acc, _ref4) {
1135
+ var _ref5 = (0, _slicedToArray2["default"])(_ref4, 2),
1136
+ key = _ref5[0],
1137
+ value = _ref5[1];
1138
+ var columnsToRow = key.split(_this4.columnsSplitter);
1139
+ if (columnsToRow.length === 1) {
1140
+ acc[key] = value !== null && value !== void 0 ? value : '';
1141
+ columns["delete"](key);
1142
+ } else {
1143
+ acc[columnsToRow[0]] = new _MergedCells.MergedColumnsCell(value, {
1144
+ dataKey: key,
1145
+ size: columnsToRow.length
1146
+ });
1147
+ columnsToRow.forEach(function (value) {
1148
+ columns["delete"](value);
1149
+ });
1150
+ }
1151
+ if (value !== null && value !== void 0 && value[ACCORDION]) {
1152
+ accordionInCell = value[ACCORDION];
1153
+ }
1154
+ return acc;
1155
+ }, initData);
1156
+ gridRowIndex++;
1157
+ if (row[ACCORDION]) {
1158
+ if (Array.isArray(row[ACCORDION])) {
1159
+ dtRow[ACCORDION] = row[ACCORDION].map(function (item) {
1160
+ return _makeDtRow(item);
1161
+ });
1162
+ } else if (/*#__PURE__*/React.isValidElement(row[ACCORDION])) {
1163
+ dtRow[ACCORDION] = row[ACCORDION];
1164
+ gridRowIndex++;
1165
+ }
1166
+ } else if (accordionInCell) {
1167
+ gridRowIndex++;
1168
+ }
1169
+ excludeColumns === null || excludeColumns === void 0 || excludeColumns.forEach(function (value) {
1170
+ columns["delete"](value);
1171
+ });
1172
+ if (columns.size > 0) {
1173
+ columns.forEach(function (value) {
1174
+ dtRow[value] = '';
1175
+ });
1176
+ }
1177
+ if (!excludeColumns) {
1178
+ // we should add only the main row in mergedRows or default rows
1179
+ availableRowKeys.push(dtRow[UNIQ_ROW_KEY]);
1180
+ }
1181
+ return dtRow;
1182
+ };
1183
+ data.forEach(function (row) {
1184
+ var groupedRows = row[ROW_GROUP];
1185
+ if (groupedRows && groupedRows.length > 1) {
1186
+ var innerRows = [];
1187
+ var groupedKeys = [];
1188
+ var groupedRowData = Object.entries(row).reduce(function (acc, _ref6) {
1189
+ var _ref7 = (0, _slicedToArray2["default"])(_ref6, 2),
1190
+ key = _ref7[0],
1191
+ value = _ref7[1];
1192
+ var accordion = Array.isArray(row[ACCORDION]) ? row[ACCORDION].map(function (item) {
1193
+ return _makeDtRow(item);
1194
+ }) : row[ACCORDION];
1195
+ acc[key] = new _MergedCells.MergedRowsCell(value, groupedRows.length, accordion);
1196
+ var columnsToRow = key.split(_this4.columnsSplitter);
1197
+ if (columnsToRow.length === 1) {
1198
+ groupedKeys.push(key);
1199
+ } else {
1200
+ groupedKeys.push.apply(groupedKeys, (0, _toConsumableArray2["default"])(columnsToRow));
1201
+ }
1202
+ return acc;
1203
+ }, (0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, UNIQ_ROW_KEY, ''), ROW_INDEX, -1));
1204
+ groupedRows.forEach(function (childRow, index) {
1205
+ var dtRow;
1206
+ if (index === 0) {
1207
+ var rowData = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, childRow), groupedRowData);
1208
+ dtRow = _makeDtRow(rowData);
1209
+ dtRow[ROW_GROUP] = new Set();
1210
+ } else {
1211
+ var _innerRows$;
1212
+ dtRow = _makeDtRow(childRow, groupedKeys);
1213
+ (_innerRows$ = innerRows[0]) === null || _innerRows$ === void 0 || (_innerRows$ = _innerRows$[ROW_GROUP]) === null || _innerRows$ === void 0 || _innerRows$.add(dtRow[UNIQ_ROW_KEY]);
1214
+ }
1215
+ innerRows.push(dtRow);
1216
+ if (index === groupedRows.length - 1 && row[ACCORDION]) {
1217
+ gridRowIndex = Array.isArray(row[ACCORDION]) ? gridRowIndex + row[ACCORDION].length : gridRowIndex + 1;
1218
+ }
1219
+ rowIndex++;
1220
+ });
1221
+ rows.push(innerRows);
1222
+ } else if ((groupedRows === null || groupedRows === void 0 ? void 0 : groupedRows.length) === 1) {
1223
+ var dtRow = _makeDtRow((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, groupedRows[0]), row));
1224
+ rows.push(dtRow);
1225
+ rowIndex++;
1226
+ } else {
1227
+ var _dtRow = _makeDtRow(row);
1228
+ rows.push(_dtRow);
1229
+ rowIndex++;
1230
+ }
1231
+ });
1232
+ this.calculatedRows = rows;
1233
+ if (selectedRows && !Array.isArray(selectedRows)) {
1234
+ selectedRows.setAvailableKeys(availableRowKeys);
1235
+ }
1236
+ return rows;
1237
+ }
1238
+ }, {
1239
+ key: "calculateGridTemplateColumn",
1240
+ value: function calculateGridTemplateColumn(c) {
1241
+ var _ref8;
1242
+ return (_ref8 = /*#__PURE__*/React.isValidElement(c) ? c.props.gtcWidth : c.gtcWidth) !== null && _ref8 !== void 0 ? _ref8 : this.props.defaultGridTemplateColumnWidth;
1243
+ }
1244
+ }, {
1245
+ key: "getHeaderHeight",
1246
+ value: function getHeaderHeight() {
1247
+ var _this$headerRef$curre4;
1248
+ var header = (_this$headerRef$curre4 = this.headerRef.current) === null || _this$headerRef$curre4 === void 0 ? void 0 : _this$headerRef$curre4.children;
1249
+ var height = 0;
1250
+ 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++) {
1251
+ var _header$length;
1252
+ var item = header === null || header === void 0 ? void 0 : header.item(i);
1253
+ var columnHeight = item === null || item === void 0 ? void 0 : item.getBoundingClientRect().height;
1254
+ if (item instanceof HTMLElement && item.dataset.groupContainer) {
1255
+ var _item$children$item$g, _item$children$item, _item$children$item$g2, _item$children$item2;
1256
+ 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;
1257
+ 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;
1258
+ columnHeight = groupHeight + cellHeight;
1259
+ }
1260
+ if (columnHeight) {
1261
+ height = columnHeight;
1262
+ break;
1263
+ }
1264
+ }
1265
+ return height;
1266
+ }
1267
+ }], [{
1268
+ key: "getDerivedStateFromProps",
1269
+ value: function getDerivedStateFromProps(props, state) {
1270
+ if (props.expandedRows === state.expandedRows || props.expandedRows === undefined) {
1271
+ return null;
1272
+ }
1273
+ return {
1274
+ expandedRows: props.expandedRows
1275
+ };
1276
+ }
1277
+ }]);
1278
+ }(_core.Component);
1279
+ (0, _defineProperty2["default"])(DataTableRoot, "displayName", 'DataTable');
1280
+ (0, _defineProperty2["default"])(DataTableRoot, "style", style);
1281
+ (0, _defineProperty2["default"])(DataTableRoot, "enhance", [(0, _uniqueID["default"])(), (0, _i18nEnhance["default"])(_intergalacticDynamicLocales.localizedMessages)]);
1282
+ (0, _defineProperty2["default"])(DataTableRoot, "defaultProps", {
1283
+ use: 'primary',
1284
+ defaultGridTemplateColumnWidth: 'auto',
1285
+ defaultSelectedRows: undefined,
1286
+ h: 'fit-content',
1287
+ renderEmptyData: function renderEmptyData() {
1288
+ return /*#__PURE__*/React.createElement(_widgetEmpty.NoData, {
1289
+ py: 10,
1290
+ type: "nothing-found",
1291
+ description: "",
1292
+ w: "100%"
1293
+ });
1294
+ },
1295
+ variant: 'default',
1296
+ accordionAnimationRows: 40,
1297
+ accordionDuration: 200
1298
+ });
1299
+ var DataTable = exports.DataTable = (0, _core.createComponent)(DataTableRoot, {
1300
+ Head: _Head.Head,
1301
+ Body: _Body.Body
1302
+ });
1303
+ //# sourceMappingURL=DataTable.js.map