@semcore/data-table 4.51.0-prerelease.5 → 4.51.0-prerelease.6

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/Body.js +477 -0
  2. package/lib/cjs/Body.js.map +1 -0
  3. package/lib/cjs/DataTable.js +629 -0
  4. package/lib/cjs/DataTable.js.map +1 -0
  5. package/lib/cjs/Head.js +398 -0
  6. package/lib/cjs/Head.js.map +1 -0
  7. package/lib/cjs/index.js +15 -38
  8. package/lib/cjs/index.js.map +1 -1
  9. package/lib/cjs/style/data-table.shadow.css +413 -0
  10. package/lib/cjs/style/scroll-shadows.shadow.css +5 -50
  11. package/lib/cjs/translations/__intergalactic-dynamic-locales.js +5 -4
  12. package/lib/cjs/translations/__intergalactic-dynamic-locales.js.map +1 -1
  13. package/lib/cjs/translations/de.json +1 -6
  14. package/lib/cjs/translations/en.json +1 -6
  15. package/lib/cjs/translations/es.json +1 -6
  16. package/lib/cjs/translations/fr.json +1 -6
  17. package/lib/cjs/translations/it.json +1 -6
  18. package/lib/cjs/translations/ja.json +1 -6
  19. package/lib/cjs/translations/ko.json +1 -6
  20. package/lib/cjs/translations/nl.json +1 -6
  21. package/lib/cjs/translations/pl.json +1 -6
  22. package/lib/cjs/translations/pt.json +1 -6
  23. package/lib/cjs/translations/sv.json +1 -6
  24. package/lib/cjs/translations/tr.json +1 -6
  25. package/lib/cjs/translations/vi.json +1 -6
  26. package/lib/cjs/translations/zh.json +1 -6
  27. package/lib/cjs/types.js +4 -0
  28. package/lib/cjs/types.js.map +1 -0
  29. package/lib/cjs/utils.js +57 -0
  30. package/lib/cjs/utils.js.map +1 -0
  31. package/lib/es6/Body.js +469 -0
  32. package/lib/es6/Body.js.map +1 -0
  33. package/lib/es6/DataTable.js +619 -0
  34. package/lib/es6/DataTable.js.map +1 -0
  35. package/lib/es6/Head.js +390 -0
  36. package/lib/es6/Head.js.map +1 -0
  37. package/lib/es6/index.js +2 -7
  38. package/lib/es6/index.js.map +1 -1
  39. package/lib/es6/style/data-table.shadow.css +413 -0
  40. package/lib/es6/style/scroll-shadows.shadow.css +5 -50
  41. package/lib/es6/translations/__intergalactic-dynamic-locales.js +2 -2
  42. package/lib/es6/translations/__intergalactic-dynamic-locales.js.map +1 -1
  43. package/lib/es6/translations/de.json +1 -6
  44. package/lib/es6/translations/en.json +1 -6
  45. package/lib/es6/translations/es.json +1 -6
  46. package/lib/es6/translations/fr.json +1 -6
  47. package/lib/es6/translations/it.json +1 -6
  48. package/lib/es6/translations/ja.json +1 -6
  49. package/lib/es6/translations/ko.json +1 -6
  50. package/lib/es6/translations/nl.json +1 -6
  51. package/lib/es6/translations/pl.json +1 -6
  52. package/lib/es6/translations/pt.json +1 -6
  53. package/lib/es6/translations/sv.json +1 -6
  54. package/lib/es6/translations/tr.json +1 -6
  55. package/lib/es6/translations/vi.json +1 -6
  56. package/lib/es6/translations/zh.json +1 -6
  57. package/lib/es6/types.js +2 -0
  58. package/lib/es6/types.js.map +1 -0
  59. package/lib/es6/utils.js +48 -0
  60. package/lib/es6/utils.js.map +1 -0
  61. package/lib/esm/Body.mjs +430 -0
  62. package/lib/esm/DataTable.mjs +589 -0
  63. package/lib/esm/Head.mjs +368 -0
  64. package/lib/esm/index.mjs +5 -12
  65. package/lib/esm/style/data-table.shadow.css +413 -0
  66. package/lib/esm/style/scroll-shadows.shadow.css +5 -50
  67. package/lib/esm/translations/__intergalactic-dynamic-locales.mjs +2 -2
  68. package/lib/esm/translations/de.json.mjs +1 -6
  69. package/lib/esm/translations/en.json.mjs +1 -6
  70. package/lib/esm/translations/es.json.mjs +1 -6
  71. package/lib/esm/translations/fr.json.mjs +1 -6
  72. package/lib/esm/translations/it.json.mjs +1 -6
  73. package/lib/esm/translations/ja.json.mjs +1 -6
  74. package/lib/esm/translations/ko.json.mjs +1 -6
  75. package/lib/esm/translations/nl.json.mjs +1 -6
  76. package/lib/esm/translations/pl.json.mjs +1 -6
  77. package/lib/esm/translations/pt.json.mjs +1 -6
  78. package/lib/esm/translations/sv.json.mjs +1 -6
  79. package/lib/esm/translations/tr.json.mjs +1 -6
  80. package/lib/esm/translations/vi.json.mjs +1 -6
  81. package/lib/esm/translations/zh.json.mjs +1 -6
  82. package/lib/esm/utils.mjs +52 -0
  83. package/lib/types/Body.d.ts +61 -0
  84. package/lib/types/DataTable.d.ts +205 -0
  85. package/lib/types/Head.d.ts +45 -0
  86. package/lib/types/index.d.ts +2 -10
  87. package/lib/types/translations/__intergalactic-dynamic-locales.d.ts +0 -70
  88. package/lib/types/types.d.ts +73 -0
  89. package/lib/types/utils.d.ts +4 -0
  90. package/package.json +6 -6
  91. package/lib/cjs/components/AccordionRows/AccordionRows.js +0 -177
  92. package/lib/cjs/components/AccordionRows/AccordionRows.js.map +0 -1
  93. package/lib/cjs/components/Body/Body.js +0 -445
  94. package/lib/cjs/components/Body/Body.js.map +0 -1
  95. package/lib/cjs/components/Body/Body.types.js +0 -2
  96. package/lib/cjs/components/Body/Body.types.js.map +0 -1
  97. package/lib/cjs/components/Body/Cell.js +0 -205
  98. package/lib/cjs/components/Body/Cell.js.map +0 -1
  99. package/lib/cjs/components/Body/Cell.types.js +0 -2
  100. package/lib/cjs/components/Body/Cell.types.js.map +0 -1
  101. package/lib/cjs/components/Body/LimitOverlay.js +0 -191
  102. package/lib/cjs/components/Body/LimitOverlay.js.map +0 -1
  103. package/lib/cjs/components/Body/MergedCells.js +0 -31
  104. package/lib/cjs/components/Body/MergedCells.js.map +0 -1
  105. package/lib/cjs/components/Body/Row.js +0 -630
  106. package/lib/cjs/components/Body/Row.js.map +0 -1
  107. package/lib/cjs/components/Body/Row.types.js +0 -2
  108. package/lib/cjs/components/Body/Row.types.js.map +0 -1
  109. package/lib/cjs/components/Body/RowGroup.js +0 -118
  110. package/lib/cjs/components/Body/RowGroup.js.map +0 -1
  111. package/lib/cjs/components/Body/style.shadow.css +0 -367
  112. package/lib/cjs/components/DataTable/DataTable.js +0 -1303
  113. package/lib/cjs/components/DataTable/DataTable.js.map +0 -1
  114. package/lib/cjs/components/DataTable/DataTable.types.js +0 -2
  115. package/lib/cjs/components/DataTable/DataTable.types.js.map +0 -1
  116. package/lib/cjs/components/DataTable/ScrollBars.js +0 -63
  117. package/lib/cjs/components/DataTable/ScrollBars.js.map +0 -1
  118. package/lib/cjs/components/DataTable/dataTable.shadow.css +0 -43
  119. package/lib/cjs/components/Head/Column.js +0 -350
  120. package/lib/cjs/components/Head/Column.js.map +0 -1
  121. package/lib/cjs/components/Head/Column.types.js +0 -2
  122. package/lib/cjs/components/Head/Column.types.js.map +0 -1
  123. package/lib/cjs/components/Head/Group.js +0 -116
  124. package/lib/cjs/components/Head/Group.js.map +0 -1
  125. package/lib/cjs/components/Head/Group.type.js +0 -2
  126. package/lib/cjs/components/Head/Group.type.js.map +0 -1
  127. package/lib/cjs/components/Head/Head.js +0 -350
  128. package/lib/cjs/components/Head/Head.js.map +0 -1
  129. package/lib/cjs/components/Head/Head.types.js +0 -2
  130. package/lib/cjs/components/Head/Head.types.js.map +0 -1
  131. package/lib/cjs/components/Head/style.shadow.css +0 -292
  132. package/lib/cjs/components/RowSelector/RowsSelector.js +0 -132
  133. package/lib/cjs/components/RowSelector/RowsSelector.js.map +0 -1
  134. package/lib/cjs/components/RowSelector/SRAnnouncer.js +0 -62
  135. package/lib/cjs/components/RowSelector/SRAnnouncer.js.map +0 -1
  136. package/lib/cjs/components/RowSelector/SRReactiveAnnouncer.js +0 -39
  137. package/lib/cjs/components/RowSelector/SRReactiveAnnouncer.js.map +0 -1
  138. package/lib/cjs/enhancers/focusableCell.js +0 -76
  139. package/lib/cjs/enhancers/focusableCell.js.map +0 -1
  140. package/lib/cjs/store/SelectableRows.js +0 -211
  141. package/lib/cjs/store/SelectableRows.js.map +0 -1
  142. package/lib/es6/components/AccordionRows/AccordionRows.js +0 -171
  143. package/lib/es6/components/AccordionRows/AccordionRows.js.map +0 -1
  144. package/lib/es6/components/Body/Body.js +0 -439
  145. package/lib/es6/components/Body/Body.js.map +0 -1
  146. package/lib/es6/components/Body/Body.types.js +0 -2
  147. package/lib/es6/components/Body/Body.types.js.map +0 -1
  148. package/lib/es6/components/Body/Cell.js +0 -199
  149. package/lib/es6/components/Body/Cell.js.map +0 -1
  150. package/lib/es6/components/Body/Cell.types.js +0 -2
  151. package/lib/es6/components/Body/Cell.types.js.map +0 -1
  152. package/lib/es6/components/Body/LimitOverlay.js +0 -184
  153. package/lib/es6/components/Body/LimitOverlay.js.map +0 -1
  154. package/lib/es6/components/Body/MergedCells.js +0 -24
  155. package/lib/es6/components/Body/MergedCells.js.map +0 -1
  156. package/lib/es6/components/Body/Row.js +0 -624
  157. package/lib/es6/components/Body/Row.js.map +0 -1
  158. package/lib/es6/components/Body/Row.types.js +0 -2
  159. package/lib/es6/components/Body/Row.types.js.map +0 -1
  160. package/lib/es6/components/Body/RowGroup.js +0 -111
  161. package/lib/es6/components/Body/RowGroup.js.map +0 -1
  162. package/lib/es6/components/Body/style.shadow.css +0 -367
  163. package/lib/es6/components/DataTable/DataTable.js +0 -1298
  164. package/lib/es6/components/DataTable/DataTable.js.map +0 -1
  165. package/lib/es6/components/DataTable/DataTable.types.js +0 -2
  166. package/lib/es6/components/DataTable/DataTable.types.js.map +0 -1
  167. package/lib/es6/components/DataTable/ScrollBars.js +0 -57
  168. package/lib/es6/components/DataTable/ScrollBars.js.map +0 -1
  169. package/lib/es6/components/DataTable/dataTable.shadow.css +0 -43
  170. package/lib/es6/components/Head/Column.js +0 -344
  171. package/lib/es6/components/Head/Column.js.map +0 -1
  172. package/lib/es6/components/Head/Column.types.js +0 -2
  173. package/lib/es6/components/Head/Column.types.js.map +0 -1
  174. package/lib/es6/components/Head/Group.js +0 -111
  175. package/lib/es6/components/Head/Group.js.map +0 -1
  176. package/lib/es6/components/Head/Group.type.js +0 -2
  177. package/lib/es6/components/Head/Group.type.js.map +0 -1
  178. package/lib/es6/components/Head/Head.js +0 -345
  179. package/lib/es6/components/Head/Head.js.map +0 -1
  180. package/lib/es6/components/Head/Head.types.js +0 -2
  181. package/lib/es6/components/Head/Head.types.js.map +0 -1
  182. package/lib/es6/components/Head/style.shadow.css +0 -292
  183. package/lib/es6/components/RowSelector/RowsSelector.js +0 -125
  184. package/lib/es6/components/RowSelector/RowsSelector.js.map +0 -1
  185. package/lib/es6/components/RowSelector/SRAnnouncer.js +0 -55
  186. package/lib/es6/components/RowSelector/SRAnnouncer.js.map +0 -1
  187. package/lib/es6/components/RowSelector/SRReactiveAnnouncer.js +0 -32
  188. package/lib/es6/components/RowSelector/SRReactiveAnnouncer.js.map +0 -1
  189. package/lib/es6/enhancers/focusableCell.js +0 -69
  190. package/lib/es6/enhancers/focusableCell.js.map +0 -1
  191. package/lib/es6/store/SelectableRows.js +0 -204
  192. package/lib/es6/store/SelectableRows.js.map +0 -1
  193. package/lib/esm/components/AccordionRows/AccordionRows.mjs +0 -155
  194. package/lib/esm/components/Body/Body.mjs +0 -395
  195. package/lib/esm/components/Body/Cell.mjs +0 -192
  196. package/lib/esm/components/Body/LimitOverlay.mjs +0 -179
  197. package/lib/esm/components/Body/MergedCells.mjs +0 -27
  198. package/lib/esm/components/Body/Row.mjs +0 -556
  199. package/lib/esm/components/Body/RowGroup.mjs +0 -113
  200. package/lib/esm/components/Body/style.shadow.css +0 -367
  201. package/lib/esm/components/DataTable/DataTable.mjs +0 -1216
  202. package/lib/esm/components/DataTable/ScrollBars.mjs +0 -61
  203. package/lib/esm/components/DataTable/dataTable.shadow.css +0 -43
  204. package/lib/esm/components/Head/Column.mjs +0 -321
  205. package/lib/esm/components/Head/Group.mjs +0 -111
  206. package/lib/esm/components/Head/Head.mjs +0 -307
  207. package/lib/esm/components/Head/style.shadow.css +0 -292
  208. package/lib/esm/components/RowSelector/RowsSelector.mjs +0 -105
  209. package/lib/esm/components/RowSelector/SRAnnouncer.mjs +0 -51
  210. package/lib/esm/components/RowSelector/SRReactiveAnnouncer.mjs +0 -31
  211. package/lib/esm/enhancers/focusableCell.mjs +0 -72
  212. package/lib/esm/store/SelectableRows.mjs +0 -201
  213. package/lib/types/components/AccordionRows/AccordionRows.d.ts +0 -41
  214. package/lib/types/components/Body/Body.d.ts +0 -6
  215. package/lib/types/components/Body/Body.types.d.ts +0 -87
  216. package/lib/types/components/Body/Cell.d.ts +0 -1
  217. package/lib/types/components/Body/Cell.types.d.ts +0 -36
  218. package/lib/types/components/Body/LimitOverlay.d.ts +0 -17
  219. package/lib/types/components/Body/MergedCells.d.ts +0 -17
  220. package/lib/types/components/Body/Row.d.ts +0 -47
  221. package/lib/types/components/Body/Row.types.d.ts +0 -74
  222. package/lib/types/components/Body/RowGroup.d.ts +0 -19
  223. package/lib/types/components/DataTable/DataTable.d.ts +0 -14
  224. package/lib/types/components/DataTable/DataTable.types.d.ts +0 -202
  225. package/lib/types/components/DataTable/ScrollBars.d.ts +0 -11
  226. package/lib/types/components/Head/Column.d.ts +0 -39
  227. package/lib/types/components/Head/Column.types.d.ts +0 -85
  228. package/lib/types/components/Head/Group.d.ts +0 -15
  229. package/lib/types/components/Head/Group.type.d.ts +0 -18
  230. package/lib/types/components/Head/Head.d.ts +0 -9
  231. package/lib/types/components/Head/Head.types.d.ts +0 -58
  232. package/lib/types/components/RowSelector/RowsSelector.d.ts +0 -32
  233. package/lib/types/components/RowSelector/SRAnnouncer.d.ts +0 -10
  234. package/lib/types/components/RowSelector/SRReactiveAnnouncer.d.ts +0 -8
  235. package/lib/types/enhancers/focusableCell.d.ts +0 -9
  236. package/lib/types/store/SelectableRows.d.ts +0 -60
@@ -1,1303 +0,0 @@
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