@semcore/data-table 4.51.0-prerelease.0 → 4.51.0-prerelease.4

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
@@ -0,0 +1,477 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
12
+ var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
13
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
14
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+ var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
20
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
+ var _index = require("@semcore/utils/lib/core/index");
22
+ var _core = require("@semcore/core");
23
+ var _react = _interopRequireDefault(require("react"));
24
+ var _flexBox = require("@semcore/flex-box");
25
+ var _scrollArea = _interopRequireWildcard(require("@semcore/scroll-area"));
26
+ var _utils = require("./utils");
27
+ var _assignProps2 = _interopRequireWildcard(require("@semcore/utils/lib/assignProps"));
28
+ var _rafTrottle = _interopRequireDefault(require("@semcore/utils/lib/rafTrottle"));
29
+ var _ref11 = require("@semcore/utils/lib/ref");
30
+ var _canUseDOM = _interopRequireDefault(require("@semcore/utils/lib/canUseDOM"));
31
+ var _Head = require("./Head");
32
+ var _getFocusableIn = require("@semcore/utils/lib/focus-lock/getFocusableIn");
33
+ var _excluded = ["childrenPropsGetter"],
34
+ _excluded2 = ["childrenPropsGetter"];
35
+ /*!__reshadow-styles__:"./style/scroll-shadows.shadow.css"*/
36
+ var scrollStyles = ( /*__reshadow_css_start__*/_index.sstyled.insert( /*__inner_css_start__*/".___SShadowHorizontal_xlwvi_gg_:after,.___SShadowHorizontal_xlwvi_gg_:before,.___SShadowVertical_xlwvi_gg_:after,.___SShadowVertical_xlwvi_gg_:before{z-index:1}", /*__inner_css_end__*/"xlwvi_gg_"),
37
+ /*__reshadow_css_end__*/
38
+ {
39
+ "__SShadowHorizontal": "___SShadowHorizontal_xlwvi_gg_",
40
+ "__SShadowVertical": "___SShadowVertical_xlwvi_gg_"
41
+ });
42
+ var testEnv = process.env.NODE_ENV === 'test';
43
+ var getCellsByColumn = function getCellsByColumn(cells) {
44
+ var flattenCells = cells.flat(20);
45
+ return Object.fromEntries(flattenCells.map(function (cell) {
46
+ return [cell.name, cell.data];
47
+ }));
48
+ };
49
+ var displayContents = {
50
+ display: 'contents'
51
+ };
52
+ var Body = /*#__PURE__*/function (_Component) {
53
+ (0, _inherits2["default"])(Body, _Component);
54
+ var _super = (0, _createSuper2["default"])(Body);
55
+ function Body() {
56
+ var _this;
57
+ (0, _classCallCheck2["default"])(this, Body);
58
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
59
+ args[_key] = arguments[_key];
60
+ }
61
+ _this = _super.call.apply(_super, [this].concat(args));
62
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
63
+ rowHeight: undefined,
64
+ scrollAreaHeight: undefined,
65
+ scrollOffset: 0
66
+ });
67
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "scrollContainerRef", /*#__PURE__*/_react["default"].createRef());
68
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "firstRowRef", /*#__PURE__*/_react["default"].createRef());
69
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "firstRowResizeObserver", null);
70
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "lockedCell", [null, false]);
71
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getRowHeight", function () {
72
+ var virtualScroll = _this.asProps.virtualScroll;
73
+ var rowHeightFromProps = (0, _typeof2["default"])(virtualScroll) === 'object' && (virtualScroll === null || virtualScroll === void 0 ? void 0 : virtualScroll.rowHeight);
74
+ return rowHeightFromProps || _this.state.rowHeight;
75
+ });
76
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleKeyDown", function (e) {
77
+ if (e.currentTarget === _this.lockedCell[0]) {
78
+ var focusableChildren = Array.from(_this.lockedCell[0].children).flatMap(function (node) {
79
+ return (0, _getFocusableIn.getFocusableIn)(node);
80
+ });
81
+ if (_this.lockedCell[1]) {
82
+ if (e.key === 'Escape') {
83
+ var _this$lockedCell$;
84
+ (_this$lockedCell$ = _this.lockedCell[0]) === null || _this$lockedCell$ === void 0 ? void 0 : _this$lockedCell$.focus();
85
+ _this.lockedCell[1] = false;
86
+ }
87
+ if (e.key.startsWith('Arrow')) {
88
+ e.stopPropagation();
89
+ e.preventDefault();
90
+ }
91
+ if (e.key === 'Tab') {
92
+ if (e.target === focusableChildren[0] && e.shiftKey) {
93
+ var _focusableChildren;
94
+ (_focusableChildren = focusableChildren[focusableChildren.length - 1]) === null || _focusableChildren === void 0 ? void 0 : _focusableChildren.focus();
95
+ e.preventDefault();
96
+ } else if (e.target === focusableChildren[focusableChildren.length - 1] && !e.shiftKey) {
97
+ var _focusableChildren$;
98
+ (_focusableChildren$ = focusableChildren[0]) === null || _focusableChildren$ === void 0 ? void 0 : _focusableChildren$.focus();
99
+ e.preventDefault();
100
+ }
101
+ e.stopPropagation();
102
+ }
103
+ } else if (e.key === 'Enter') {
104
+ var _focusableChildren$2;
105
+ e.preventDefault();
106
+ e.stopPropagation();
107
+ _this.lockedCell[1] = true;
108
+ (_focusableChildren$2 = focusableChildren[0]) === null || _focusableChildren$2 === void 0 ? void 0 : _focusableChildren$2.focus();
109
+ }
110
+ }
111
+ });
112
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onFocusCell", function (e) {
113
+ if (e.target === e.currentTarget && e.target.matches(':focus-visible')) {
114
+ var focusableChildren = Array.from(e.currentTarget.children).flatMap(function (node) {
115
+ return (0, _getFocusableIn.getFocusableIn)(node);
116
+ });
117
+ if (focusableChildren.length === 1) {
118
+ focusableChildren[0].focus();
119
+ } else if (focusableChildren.length > 1) {
120
+ _this.lockedCell = [e.currentTarget, false];
121
+ }
122
+ }
123
+ });
124
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleFirstRowResize", (0, _rafTrottle["default"])(function (entries) {
125
+ var contentRect = entries[0].contentRect;
126
+ var height = contentRect.height;
127
+ _this.setState(function (oldState) {
128
+ if (oldState.rowHeight === height) return oldState;
129
+ return {
130
+ rowHeight: height
131
+ };
132
+ });
133
+ }));
134
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleScrollAreaResize", (0, _rafTrottle["default"])(function (entries) {
135
+ var virtualScroll = _this.asProps.virtualScroll;
136
+ if (!virtualScroll) return;
137
+ var contentRect = entries[0].contentRect;
138
+ var height = contentRect.height;
139
+ _this.setState(function (oldState) {
140
+ if (oldState.scrollAreaHeight === height) return oldState;
141
+ return {
142
+ scrollAreaHeight: height
143
+ };
144
+ });
145
+ }));
146
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleScrollAreaScroll", function (event) {
147
+ var _ref6 = event.target,
148
+ scrollTop = _ref6.scrollTop;
149
+ var virtualScroll = _this.asProps.virtualScroll;
150
+ if (virtualScroll) {
151
+ _this.setState(function (oldState) {
152
+ if (oldState.scrollOffset === scrollTop) return oldState;
153
+ return {
154
+ scrollOffset: scrollTop
155
+ };
156
+ });
157
+ }
158
+ });
159
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "setupRowSizeObserver", function () {
160
+ if (!_this.firstRowRef.current) return;
161
+ if (!_this.asProps.virtualScroll) return;
162
+ if ((0, _canUseDOM["default"])()) {
163
+ _this.firstRowResizeObserver = new ResizeObserver(_this.handleFirstRowResize);
164
+ _this.firstRowResizeObserver.observe(_this.firstRowRef.current);
165
+ }
166
+ });
167
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleBodyTransitionEnd", (0, _rafTrottle["default"])(function () {
168
+ /**
169
+ * We need this to recalculate ScrollArea sizes after end of transition
170
+ */
171
+ _this.forceUpdate();
172
+ }));
173
+ return _this;
174
+ }
175
+ (0, _createClass2["default"])(Body, [{
176
+ key: "renderCells",
177
+ value: function renderCells(cells, rowData, dataIndex) {
178
+ var _this2 = this;
179
+ var SCell = _flexBox.Flex;
180
+ var _this$asProps = this.asProps,
181
+ styles = _this$asProps.styles,
182
+ columns = _this$asProps.columns,
183
+ use = _this$asProps.use,
184
+ uid = _this$asProps.uid;
185
+ return cells.map(function (cell, cellIndex) {
186
+ if (Array.isArray(cell)) {
187
+ var _ref2;
188
+ var SGroupCell = 'div';
189
+ return _ref2 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SGroupCell, _ref2.cn("SGroupCell", {
190
+ "key": "".concat(cellIndex),
191
+ "data-ui-name": 'group-cell'
192
+ }), _this2.renderRows(cell, true));
193
+ } else {
194
+ var _ref3, _column$parentColumns, _column$props, _column$props$ref$cur, _column$props2, _column$props2$ref$cu, _column$props3, _column$props4;
195
+ var nameParts = cell.name.split('/');
196
+ var firstName = nameParts[0];
197
+ var lastName = nameParts[nameParts.length - 1];
198
+ var firstColumn = columns.find(function (c) {
199
+ return c.name === firstName;
200
+ });
201
+ var lastColumn = columns.find(function (c) {
202
+ return c.name === lastName;
203
+ });
204
+ var column = columns.find(function (c) {
205
+ return c.name === cell.name;
206
+ });
207
+ var _getFixedStyle = (0, _utils.getFixedStyle)(cell, columns),
208
+ _getFixedStyle2 = (0, _slicedToArray2["default"])(_getFixedStyle, 2),
209
+ name = _getFixedStyle2[0],
210
+ value = _getFixedStyle2[1];
211
+ var parentColumnNames = (_column$parentColumns = column === null || column === void 0 ? void 0 : column.parentColumns.map(function (column) {
212
+ return column.name;
213
+ })) !== null && _column$parentColumns !== void 0 ? _column$parentColumns : [];
214
+ var vars = (Array.isArray(cell.cssVar) ? cell.cssVar : [cell.cssVar]).map(function (name) {
215
+ return "var(".concat(name, ")");
216
+ });
217
+ var columnWMin = column === null || column === void 0 ? void 0 : (_column$props = column.props) === null || _column$props === void 0 ? void 0 : (_column$props$ref$cur = _column$props.ref.current) === null || _column$props$ref$cur === void 0 ? void 0 : _column$props$ref$cur.style.getPropertyValue('min-width');
218
+ var columnWMax = column === null || column === void 0 ? void 0 : (_column$props2 = column.props) === null || _column$props2 === void 0 ? void 0 : (_column$props2$ref$cu = _column$props2.ref.current) === null || _column$props2$ref$cu === void 0 ? void 0 : _column$props2$ref$cu.style.getPropertyValue('max-width');
219
+ var _props = {
220
+ name: cell.name,
221
+ children: /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, cell.data),
222
+ justifyContent: column === null || column === void 0 ? void 0 : (_column$props3 = column.props) === null || _column$props3 === void 0 ? void 0 : _column$props3.justifyContent,
223
+ alignItems: column === null || column === void 0 ? void 0 : (_column$props4 = column.props) === null || _column$props4 === void 0 ? void 0 : _column$props4.alignItems,
224
+ borderLeft: firstColumn === null || firstColumn === void 0 ? void 0 : firstColumn.borderLeft,
225
+ borderRight: lastColumn === null || lastColumn === void 0 ? void 0 : lastColumn.borderRight,
226
+ style: {
227
+ width: vars.length === 1 ? vars[0] : "calc(".concat(vars.join(' + '), ")"),
228
+ minWidth: columnWMin,
229
+ maxWidth: columnWMax && column !== null && column !== void 0 && column.sortable ? "calc(".concat(_Head.SORT_ICON_WIDTH, "px + ").concat(columnWMax, ")") : columnWMax
230
+ }
231
+ };
232
+ if (name !== undefined && value !== undefined) {
233
+ _props.style[name] = value;
234
+ }
235
+ var _iterator = (0, _createForOfIteratorHelper2["default"])(cell.cellPropsLayers || []),
236
+ _step;
237
+ try {
238
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
239
+ var cellPropLayer = _step.value;
240
+ var _cellPropLayer$childr = cellPropLayer.childrenPropsGetter,
241
+ childrenPropsGetter = _cellPropLayer$childr === void 0 ? function (p) {
242
+ return p;
243
+ } : _cellPropLayer$childr,
244
+ other = (0, _objectWithoutProperties2["default"])(cellPropLayer, _excluded);
245
+ var propsCell = (0, _assignProps2["default"])(other, _props);
246
+ _props = (0, _assignProps2["default"])(childrenPropsGetter(propsCell, rowData, dataIndex), propsCell);
247
+ }
248
+ } catch (err) {
249
+ _iterator.e(err);
250
+ } finally {
251
+ _iterator.f();
252
+ }
253
+ var headerIds = [cell.name].concat((0, _toConsumableArray2["default"])(parentColumnNames)).filter(Boolean).map(function (name) {
254
+ return "igc-table-".concat(uid, "-").concat(name);
255
+ });
256
+ var ariaColspan = nameParts.length;
257
+ return _ref3 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SCell, _ref3.cn("SCell", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({
258
+ "key": cell.name,
259
+ "role": 'gridcell',
260
+ "headers": headerIds.join(' '),
261
+ "__excludeProps": ['data']
262
+ }, _props), {}, {
263
+ "fixed": cell.fixed,
264
+ "theme": _props.theme,
265
+ "use": use,
266
+ "borderLeft": _props.borderLeft,
267
+ "borderRight": _props.borderRight,
268
+ "tabIndex": -1,
269
+ "onKeyDown": _this2.handleKeyDown,
270
+ "onFocus": _this2.onFocusCell,
271
+ "aria-colindex": cellIndex + 1,
272
+ "aria-colspan": ariaColspan === 1 ? undefined : ariaColspan
273
+ })));
274
+ }
275
+ }, []);
276
+ }
277
+ }, {
278
+ key: "renderRow",
279
+ value: function renderRow(cells, _ref7) {
280
+ var _ref4;
281
+ var dataIndex = _ref7.dataIndex,
282
+ topOffset = _ref7.topOffset,
283
+ _ref7$nested = _ref7.nested,
284
+ nested = _ref7$nested === void 0 ? false : _ref7$nested;
285
+ var SRow = _flexBox.Box;
286
+ var _this$asProps2 = this.asProps,
287
+ styles = _this$asProps2.styles,
288
+ rowPropsLayers = _this$asProps2.rowPropsLayers,
289
+ uniqueKey = _this$asProps2.uniqueKey,
290
+ virtualScroll = _this$asProps2.virtualScroll;
291
+ var rowHeightFromProps = (0, _typeof2["default"])(virtualScroll) === 'object' && (virtualScroll === null || virtualScroll === void 0 ? void 0 : virtualScroll.rowHeight);
292
+ var rowData = cells.flatRowData || getCellsByColumn(cells);
293
+ var key = rowData[uniqueKey] ? String(rowData[uniqueKey]) : "row_".concat(dataIndex);
294
+ var needToMeasureHeight = dataIndex === 0 && !rowHeightFromProps;
295
+ var props = {
296
+ children: this.renderCells(cells, rowData, dataIndex),
297
+ theme: undefined,
298
+ active: undefined,
299
+ positioned: topOffset !== undefined,
300
+ top: topOffset,
301
+ ref: needToMeasureHeight ? this.firstRowRef : undefined,
302
+ key: key,
303
+ 'aria-rowindex': !nested ? dataIndex + 2 : undefined
304
+ };
305
+ var _iterator2 = (0, _createForOfIteratorHelper2["default"])(rowPropsLayers),
306
+ _step2;
307
+ try {
308
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
309
+ var rowPropsLayer = _step2.value;
310
+ var _rowPropsLayer$childr = rowPropsLayer.childrenPropsGetter,
311
+ childrenPropsGetter = _rowPropsLayer$childr === void 0 ? function (p) {
312
+ return p;
313
+ } : _rowPropsLayer$childr,
314
+ other = (0, _objectWithoutProperties2["default"])(rowPropsLayer, _excluded2);
315
+ var propsRow = (0, _assignProps2["default"])(other, props);
316
+ props = (0, _assignProps2["default"])(childrenPropsGetter(propsRow, rowData, dataIndex), propsRow);
317
+ }
318
+ } catch (err) {
319
+ _iterator2.e(err);
320
+ } finally {
321
+ _iterator2.f();
322
+ }
323
+ return _ref4 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SRow, _ref4.cn("SRow", (0, _objectSpread2["default"])({
324
+ "data-nested": nested.toString(),
325
+ "role": !nested ? 'row' : undefined,
326
+ "__excludeProps": ['data']
327
+ }, props)));
328
+ }
329
+ }, {
330
+ key: "renderRows",
331
+ value: function renderRows(rows) {
332
+ var _this3 = this;
333
+ var nested = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
334
+ return rows.map(function (cells, dataIndex) {
335
+ return _this3.renderRow(cells, {
336
+ dataIndex: dataIndex,
337
+ nested: nested
338
+ });
339
+ });
340
+ }
341
+ }, {
342
+ key: "renderVirtualizedRows",
343
+ value: function renderVirtualizedRows(rows) {
344
+ var _ref8,
345
+ _this4 = this;
346
+ if (rows.length === 0) return [];
347
+ var virtualScroll = this.asProps.virtualScroll;
348
+ var _this$state = this.state,
349
+ scrollOffset = _this$state.scrollOffset,
350
+ scrollAreaHeight = _this$state.scrollAreaHeight;
351
+ var rowHeight = this.getRowHeight();
352
+ var tollerance = (_ref8 = (0, _typeof2["default"])(virtualScroll) === 'object' ? virtualScroll === null || virtualScroll === void 0 ? void 0 : virtualScroll.tollerance : 2) !== null && _ref8 !== void 0 ? _ref8 : 2;
353
+ var startIndex = Math.max(Math.floor(scrollOffset / rowHeight) - tollerance, 0);
354
+ var lastIndex = Math.min(Math.ceil((scrollOffset + scrollAreaHeight) / rowHeight) + tollerance, rows.length);
355
+ var rowHeightFromProps = (0, _typeof2["default"])(virtualScroll) === 'object' && (virtualScroll === null || virtualScroll === void 0 ? void 0 : virtualScroll.rowHeight);
356
+ var needToMeasureFirstRowHeight = !rowHeightFromProps;
357
+ var firstRow = {
358
+ cells: rows[0],
359
+ dataIndex: 0,
360
+ topOffset: 0
361
+ };
362
+ var visibleRows = rowHeight !== undefined ? rows.slice(startIndex, lastIndex) : [];
363
+ var processedVisibleRows = visibleRows.map(function (cells, index) {
364
+ return {
365
+ cells: cells,
366
+ dataIndex: startIndex + index,
367
+ topOffset: rowHeight * (startIndex + index)
368
+ };
369
+ });
370
+ if (needToMeasureFirstRowHeight && startIndex !== 0) {
371
+ processedVisibleRows.unshift(firstRow);
372
+ }
373
+ return processedVisibleRows.map(function (_ref9) {
374
+ var cells = _ref9.cells,
375
+ dataIndex = _ref9.dataIndex,
376
+ topOffset = _ref9.topOffset;
377
+ return _this4.renderRow(cells, {
378
+ dataIndex: dataIndex,
379
+ topOffset: topOffset,
380
+ nested: false
381
+ });
382
+ });
383
+ }
384
+ }, {
385
+ key: "componentWillUnmount",
386
+ value: function componentWillUnmount() {
387
+ var _this$firstRowResizeO;
388
+ (_this$firstRowResizeO = this.firstRowResizeObserver) === null || _this$firstRowResizeO === void 0 ? void 0 : _this$firstRowResizeO.disconnect();
389
+ }
390
+ }, {
391
+ key: "render",
392
+ value: function render() {
393
+ var _ref = this.asProps,
394
+ _ref5;
395
+ var SBody = _flexBox.Box;
396
+ var SBodyWrapper = _flexBox.Box;
397
+ var SHeightHold = _flexBox.Box;
398
+ var _this$asProps3 = this.asProps,
399
+ Children = _this$asProps3.Children,
400
+ styles = _this$asProps3.styles,
401
+ rows = _this$asProps3.rows,
402
+ columns = _this$asProps3.columns,
403
+ $scrollRef = _this$asProps3.$scrollRef,
404
+ virtualScroll = _this$asProps3.virtualScroll,
405
+ onResize = _this$asProps3.onResize,
406
+ onScroll = _this$asProps3.onScroll,
407
+ disabledScroll = _this$asProps3.disabledScroll,
408
+ renderRows = _this$asProps3.renderRows,
409
+ animationsDisabled = _this$asProps3.animationsDisabled,
410
+ scrollContainerRef = _this$asProps3.scrollContainerRef;
411
+ var columnsInitialized = columns.reduce(function (sum, _ref10) {
412
+ var width = _ref10.width;
413
+ return sum + width;
414
+ }, 0) > 0 || testEnv;
415
+ var _getScrollOffsetValue = (0, _utils.getScrollOffsetValue)(columns),
416
+ _getScrollOffsetValue2 = (0, _slicedToArray2["default"])(_getScrollOffsetValue, 2),
417
+ offsetLeftSum = _getScrollOffsetValue2[0],
418
+ offsetRightSum = _getScrollOffsetValue2[1];
419
+ var rowHeight = this.getRowHeight();
420
+ var holdHeight = rowHeight !== undefined && virtualScroll ? rowHeight * rows.length : undefined;
421
+ if (virtualScroll && columnsInitialized && !rowHeight) {
422
+ requestAnimationFrame(this.setupRowSizeObserver);
423
+ }
424
+ var body = (_ref5 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SBody, _ref5.cn("SBody", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
425
+ "animationsDisabled": animationsDisabled,
426
+ "onTransitionEnd": this.handleBodyTransitionEnd
427
+ }, _ref))), renderRows ? renderRows({
428
+ rows: rows,
429
+ columns: columns,
430
+ renderRow: this.renderRow.bind(this)
431
+ }) || null : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, holdHeight ? /*#__PURE__*/_react["default"].createElement(SHeightHold, _ref5.cn("SHeightHold", {
432
+ "hMin": holdHeight,
433
+ "aria-hidden": true
434
+ })) : null, virtualScroll ? this.renderVirtualizedRows(rows) : this.renderRows(rows))));
435
+ if (disabledScroll) {
436
+ return /*#__PURE__*/_react["default"].createElement(SBodyWrapper, null, body);
437
+ }
438
+ var scrollContainerRefs = [$scrollRef, this.scrollContainerRef];
439
+ if (scrollContainerRef) {
440
+ scrollContainerRefs.push(scrollContainerRef);
441
+ }
442
+ return /*#__PURE__*/_react["default"].createElement(_scrollArea.hideScrollBarsFromScreenReadersContext.Provider, {
443
+ value: true
444
+ }, /*#__PURE__*/_react["default"].createElement(SBodyWrapper, _ref5.cn("SBodyWrapper", {}), /*#__PURE__*/_react["default"].createElement(_scrollArea["default"], _ref5.cn("ScrollArea", {
445
+ "shadow": true,
446
+ "leftOffset": offsetLeftSum,
447
+ "rightOffset": offsetRightSum,
448
+ "onResize": (0, _assignProps2.callAllEventHandlers)(onResize, this.handleScrollAreaResize),
449
+ "onScroll": (0, _assignProps2.callAllEventHandlers)(onScroll, this.handleScrollAreaScroll),
450
+ "styles": scrollStyles
451
+ }), /*#__PURE__*/_react["default"].createElement(_scrollArea["default"].Container, {
452
+ ref: _ref11.forkRef.apply(void 0, scrollContainerRefs),
453
+ role: "rowgroup",
454
+ focusRingTopOffset: '3px',
455
+ tabIndex: -1
456
+ }, body), /*#__PURE__*/_react["default"].createElement("div", _ref5.cn("div", {
457
+ "style": displayContents
458
+ }), /*#__PURE__*/_react["default"].createElement("div", _ref5.cn("div", {
459
+ "style": displayContents
460
+ }), /*#__PURE__*/_react["default"].createElement("div", _ref5.cn("div", {
461
+ "style": displayContents
462
+ }), /*#__PURE__*/_react["default"].createElement(_scrollArea["default"].Bar, {
463
+ orientation: "horizontal",
464
+ bottom: 0,
465
+ container: this.scrollContainerRef
466
+ }), /*#__PURE__*/_react["default"].createElement(_scrollArea["default"].Bar, {
467
+ orientation: "vertical",
468
+ w: '12px',
469
+ zIndex: 2
470
+ }))))), Children.origin));
471
+ }
472
+ }]);
473
+ return Body;
474
+ }(_core.Component);
475
+ var _default = Body;
476
+ exports["default"] = _default;
477
+ //# sourceMappingURL=Body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Body.js","names":["_core","require","_react","_interopRequireDefault","_flexBox","_scrollArea","_interopRequireWildcard","_utils","_assignProps2","_rafTrottle","_ref11","_canUseDOM","_Head","_getFocusableIn","_excluded","_excluded2","scrollStyles","_index","sstyled","insert","testEnv","process","env","NODE_ENV","getCellsByColumn","cells","flattenCells","flat","Object","fromEntries","map","cell","name","data","displayContents","display","Body","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","rowHeight","undefined","scrollAreaHeight","scrollOffset","React","createRef","virtualScroll","asProps","rowHeightFromProps","_typeof2","state","e","currentTarget","lockedCell","focusableChildren","from","children","flatMap","node","getFocusableIn","key","_this$lockedCell$","focus","startsWith","stopPropagation","preventDefault","target","shiftKey","_focusableChildren","_focusableChildren$","_focusableChildren$2","matches","trottle","entries","contentRect","height","setState","oldState","event","_ref6","scrollTop","firstRowRef","current","canUseDOM","firstRowResizeObserver","ResizeObserver","handleFirstRowResize","observe","forceUpdate","_createClass2","value","renderCells","rowData","dataIndex","_this2","SCell","Flex","_this$asProps","styles","columns","use","uid","cellIndex","isArray","_ref2","SGroupCell","createElement","cn","renderRows","_ref3","_column$parentColumns","_column$props","_column$props$ref$cur","_column$props2","_column$props2$ref$cu","_column$props3","_column$props4","nameParts","split","firstName","lastName","firstColumn","find","c","lastColumn","column","_getFixedStyle","getFixedStyle","_getFixedStyle2","_slicedToArray2","parentColumnNames","parentColumns","vars","cssVar","columnWMin","props","ref","style","getPropertyValue","columnWMax","Fragment","justifyContent","alignItems","borderLeft","borderRight","width","join","minWidth","maxWidth","sortable","SORT_ICON_WIDTH","_iterator","_createForOfIteratorHelper2","cellPropsLayers","_step","s","n","done","cellPropLayer","_cellPropLayer$childr","childrenPropsGetter","p","other","_objectWithoutProperties2","propsCell","assignProps","err","f","headerIds","_toConsumableArray2","filter","Boolean","ariaColspan","_objectSpread2","fixed","theme","handleKeyDown","onFocusCell","renderRow","_ref7","_ref4","topOffset","_ref7$nested","nested","SRow","Box","_this$asProps2","rowPropsLayers","uniqueKey","flatRowData","String","needToMeasureHeight","active","positioned","top","_iterator2","_step2","rowPropsLayer","_rowPropsLayer$childr","propsRow","toString","rows","_this3","renderVirtualizedRows","_ref8","_this4","_this$state","getRowHeight","tollerance","startIndex","Math","max","floor","lastIndex","min","ceil","needToMeasureFirstRowHeight","firstRow","visibleRows","slice","processedVisibleRows","index","unshift","_ref9","componentWillUnmount","_this$firstRowResizeO","disconnect","render","_ref","_ref5","SBody","SBodyWrapper","SHeightHold","_this$asProps3","Children","$scrollRef","onResize","onScroll","disabledScroll","animationsDisabled","scrollContainerRef","columnsInitialized","reduce","sum","_ref10","_getScrollOffsetValue","getScrollOffsetValue","_getScrollOffsetValue2","offsetLeftSum","offsetRightSum","holdHeight","requestAnimationFrame","setupRowSizeObserver","body","handleBodyTransitionEnd","bind","scrollContainerRefs","push","hideScrollBarsFromScreenReadersContext","Provider","callAllEventHandlers","handleScrollAreaResize","handleScrollAreaScroll","Container","forkRef","role","focusRingTopOffset","tabIndex","Bar","orientation","bottom","container","w","zIndex","origin","Component","_default","exports"],"sources":["../../src/Body.tsx"],"sourcesContent":["import React from 'react';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { Box, Flex } from '@semcore/flex-box';\nimport ScrollArea, { hideScrollBarsFromScreenReadersContext } from '@semcore/scroll-area';\nimport { getFixedStyle, getScrollOffsetValue } from './utils';\nimport { RowData, Column, NestedCells, PropsLayer, Cell } from './types';\nimport assignProps, { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport syncScroll from '@semcore/utils/lib/syncScroll';\nimport trottle from '@semcore/utils/lib/rafTrottle';\nimport { forkRef } from '@semcore/utils/lib/ref';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport { SORT_ICON_WIDTH } from './Head';\nimport scrollStyles from './style/scroll-shadows.shadow.css';\nimport { getFocusableIn } from '@semcore/utils/lib/focus-lock/getFocusableIn';\n\nconst testEnv = process.env.NODE_ENV === 'test';\n\nconst getCellsByColumn = (cells: NestedCells): RowData => {\n const flattenCells = cells.flat(20) as Cell[];\n return Object.fromEntries(flattenCells.map((cell) => [cell.name, cell.data]));\n};\nconst displayContents = { display: 'contents' };\n\ntype AsProps = {\n rows: NestedCells[][];\n columns: Column[];\n $scrollRef: ReturnType<ReturnType<typeof syncScroll>>;\n onResize: ResizeObserverCallback;\n onScroll?: (event: React.SyntheticEvent<HTMLElement>) => void;\n rowPropsLayers: PropsLayer[];\n use: 'primary' | 'secondary';\n uniqueKey: string;\n virtualScroll?: boolean | { tollerance?: number; rowHeight?: number };\n renderRows?: (props: {\n rows: NestedCells[][];\n columns: Column[];\n renderRow: (row: Cell[], details: { dataIndex: number; nested: boolean }) => React.ReactNode;\n }) => React.ReactNode;\n disabledScroll?: boolean;\n uid?: string;\n animationsDisabled?: boolean;\n scrollContainerRef: React.Ref<HTMLDivElement>;\n};\n\ntype State = {\n rowHeight: number | undefined;\n scrollAreaHeight: undefined | number;\n scrollOffset: number;\n};\n\nclass Body extends Component<AsProps, {}, State> {\n state: State = {\n rowHeight: undefined,\n scrollAreaHeight: undefined,\n scrollOffset: 0,\n };\n\n scrollContainerRef = React.createRef<HTMLDivElement>();\n firstRowRef = React.createRef<HTMLDivElement>();\n firstRowResizeObserver: ResizeObserver | null = null;\n\n lockedCell: [HTMLElement | null, boolean] = [null, false];\n\n getRowHeight = () => {\n const { virtualScroll } = this.asProps;\n const rowHeightFromProps = typeof virtualScroll === 'object' && virtualScroll?.rowHeight;\n return rowHeightFromProps || this.state.rowHeight;\n };\n\n handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.currentTarget === this.lockedCell[0]) {\n const focusableChildren = Array.from(this.lockedCell[0].children).flatMap((node) =>\n getFocusableIn(node as HTMLElement),\n );\n\n if (this.lockedCell[1]) {\n if (e.key === 'Escape') {\n this.lockedCell[0]?.focus();\n this.lockedCell[1] = false;\n }\n if (e.key.startsWith('Arrow')) {\n e.stopPropagation();\n e.preventDefault();\n }\n if (e.key === 'Tab') {\n if (e.target === focusableChildren[0] && e.shiftKey) {\n focusableChildren[focusableChildren.length - 1]?.focus();\n e.preventDefault();\n } else if (e.target === focusableChildren[focusableChildren.length - 1] && !e.shiftKey) {\n focusableChildren[0]?.focus();\n e.preventDefault();\n }\n e.stopPropagation();\n }\n } else if (e.key === 'Enter') {\n e.preventDefault();\n e.stopPropagation();\n this.lockedCell[1] = true;\n focusableChildren[0]?.focus();\n }\n }\n };\n\n onFocusCell = (e: React.FocusEvent<HTMLElement, HTMLElement>) => {\n if (e.target === e.currentTarget && e.target.matches(':focus-visible')) {\n const focusableChildren = Array.from(e.currentTarget.children).flatMap((node) =>\n getFocusableIn(node as HTMLElement),\n );\n\n if (focusableChildren.length === 1) {\n focusableChildren[0].focus();\n } else if (focusableChildren.length > 1) {\n this.lockedCell = [e.currentTarget, false];\n }\n }\n };\n\n renderCells(cells: NestedCells, rowData: RowData, dataIndex: number) {\n const SCell = Flex;\n const { styles, columns, use, uid } = this.asProps;\n return cells.map((cell, cellIndex) => {\n if (Array.isArray(cell)) {\n const SGroupCell = 'div';\n return sstyled(styles)(\n <SGroupCell key={`${cellIndex}`} data-ui-name='group-cell'>\n {this.renderRows(cell as NestedCells[], true)}\n </SGroupCell>,\n );\n } else {\n const nameParts = cell.name.split('/');\n const firstName = nameParts[0];\n const lastName = nameParts[nameParts.length - 1];\n const firstColumn = columns.find((c) => c.name === firstName);\n const lastColumn = columns.find((c) => c.name === lastName);\n const column = columns.find((c) => c.name === cell.name);\n const [name, value] = getFixedStyle(cell, columns);\n const parentColumnNames = column?.parentColumns.map((column) => column.name) ?? [];\n const vars = (Array.isArray(cell.cssVar) ? cell.cssVar : [cell.cssVar]).map(\n (name) => `var(${name})`,\n );\n type CellProps = any & {\n name: string;\n children: React.ReactNode;\n style: React.CSSProperties;\n };\n\n const columnWMin = column?.props?.ref.current?.style.getPropertyValue('min-width');\n const columnWMax = column?.props?.ref.current?.style.getPropertyValue('max-width');\n\n let props: CellProps = {\n name: cell.name,\n children: <>{cell.data}</>,\n justifyContent: column?.props?.justifyContent,\n alignItems: column?.props?.alignItems,\n borderLeft: firstColumn?.borderLeft,\n borderRight: lastColumn?.borderRight,\n style: {\n width: vars.length === 1 ? vars[0] : `calc(${vars.join(' + ')})`,\n minWidth: columnWMin,\n maxWidth:\n columnWMax && column?.sortable\n ? `calc(${SORT_ICON_WIDTH}px + ${columnWMax})`\n : columnWMax,\n },\n };\n if (name !== undefined && value !== undefined) {\n props.style[name] = value;\n }\n\n for (const cellPropLayer of cell.cellPropsLayers || []) {\n const { childrenPropsGetter = (p) => p, ...other } = cellPropLayer;\n const propsCell = assignProps(other, props);\n props = assignProps(childrenPropsGetter(propsCell, rowData, dataIndex), propsCell);\n }\n\n const headerIds = [cell.name, ...parentColumnNames]\n .filter(Boolean)\n .map((name) => `igc-table-${uid}-${name}`);\n\n const ariaColspan = nameParts.length;\n\n return sstyled(styles)(\n <SCell\n key={cell.name}\n role='gridcell'\n headers={headerIds.join(' ')}\n __excludeProps={['data']}\n {...props}\n fixed={cell.fixed}\n theme={props.theme}\n use={use}\n borderLeft={props.borderLeft}\n borderRight={props.borderRight}\n tabIndex={-1}\n onKeyDown={this.handleKeyDown}\n onFocus={this.onFocusCell}\n aria-colindex={cellIndex + 1}\n aria-colspan={ariaColspan === 1 ? undefined : ariaColspan}\n />,\n ) as React.ReactElement;\n }\n }, [] as React.ReactElement[]);\n }\n\n renderRow(\n cells: NestedCells,\n {\n dataIndex,\n topOffset,\n nested = false,\n }: { dataIndex: number; topOffset?: number; nested: boolean },\n ) {\n const SRow = Box;\n const { styles, rowPropsLayers, uniqueKey, virtualScroll } = this.asProps;\n const rowHeightFromProps = typeof virtualScroll === 'object' && virtualScroll?.rowHeight;\n\n const rowData = cells.flatRowData || getCellsByColumn(cells);\n const key = rowData[uniqueKey] ? String(rowData[uniqueKey]) : `row_${dataIndex}`;\n const needToMeasureHeight = dataIndex === 0 && !rowHeightFromProps;\n\n let props = {\n children: this.renderCells(cells, rowData, dataIndex),\n theme: undefined,\n active: undefined,\n positioned: topOffset !== undefined,\n top: topOffset,\n ref: needToMeasureHeight ? this.firstRowRef : undefined,\n key,\n 'aria-rowindex': !nested ? dataIndex + 2 : undefined,\n };\n\n for (const rowPropsLayer of rowPropsLayers) {\n const { childrenPropsGetter = (p) => p, ...other } = rowPropsLayer;\n const propsRow = assignProps(other, props);\n props = assignProps(childrenPropsGetter(propsRow, rowData, dataIndex), propsRow);\n }\n\n return sstyled(styles)(\n <SRow\n data-nested={nested.toString()}\n role={!nested ? 'row' : undefined}\n __excludeProps={['data']}\n {...props}\n />,\n );\n }\n\n renderRows(rows: NestedCells[], nested = false) {\n return rows.map((cells, dataIndex) => this.renderRow(cells, { dataIndex, nested }));\n }\n\n renderVirtualizedRows(rows: NestedCells[]) {\n if (rows.length === 0) return [];\n\n const { virtualScroll } = this.asProps;\n const { scrollOffset, scrollAreaHeight } = this.state;\n const rowHeight = this.getRowHeight();\n\n const tollerance = (typeof virtualScroll === 'object' ? virtualScroll?.tollerance : 2) ?? 2;\n const startIndex = Math.max(Math.floor(scrollOffset / rowHeight!) - tollerance, 0);\n const lastIndex = Math.min(\n Math.ceil((scrollOffset + scrollAreaHeight!) / rowHeight!) + tollerance,\n rows.length,\n );\n\n const rowHeightFromProps = typeof virtualScroll === 'object' && virtualScroll?.rowHeight;\n const needToMeasureFirstRowHeight = !rowHeightFromProps;\n\n const firstRow = { cells: rows[0], dataIndex: 0, topOffset: 0 };\n const visibleRows = rowHeight !== undefined ? rows.slice(startIndex, lastIndex) : [];\n const processedVisibleRows = visibleRows.map((cells, index) => ({\n cells,\n dataIndex: startIndex + index,\n topOffset: rowHeight! * (startIndex + index),\n }));\n if (needToMeasureFirstRowHeight && startIndex !== 0) {\n processedVisibleRows.unshift(firstRow);\n }\n\n return processedVisibleRows.map(({ cells, dataIndex, topOffset }) =>\n this.renderRow(cells, { dataIndex, topOffset, nested: false }),\n );\n }\n\n handleFirstRowResize = trottle((entries: ResizeObserverEntry[]) => {\n const { contentRect } = entries[0];\n const { height } = contentRect;\n this.setState((oldState: State) => {\n if (oldState.rowHeight === height) return oldState;\n return { rowHeight: height };\n });\n });\n\n handleScrollAreaResize = trottle((entries: ResizeObserverEntry[]) => {\n const { virtualScroll } = this.asProps;\n if (!virtualScroll) return;\n const { contentRect } = entries[0];\n const { height } = contentRect;\n this.setState((oldState: State) => {\n if (oldState.scrollAreaHeight === height) return oldState;\n return { scrollAreaHeight: height };\n });\n });\n\n handleScrollAreaScroll = (event: React.SyntheticEvent<HTMLElement>) => {\n const { scrollTop } = event.target as HTMLElement;\n const { virtualScroll } = this.asProps;\n if (virtualScroll) {\n this.setState((oldState: State) => {\n if (oldState.scrollOffset === scrollTop) return oldState;\n return { scrollOffset: scrollTop };\n });\n }\n };\n\n setupRowSizeObserver = () => {\n if (!this.firstRowRef.current) return;\n if (!this.asProps.virtualScroll) return;\n if (canUseDOM()) {\n this.firstRowResizeObserver = new ResizeObserver(this.handleFirstRowResize);\n this.firstRowResizeObserver.observe(this.firstRowRef.current);\n }\n };\n\n handleBodyTransitionEnd = trottle(() => {\n /**\n * We need this to recalculate ScrollArea sizes after end of transition\n */\n this.forceUpdate();\n });\n\n componentWillUnmount() {\n this.firstRowResizeObserver?.disconnect();\n }\n\n render() {\n const SBody = Root;\n const SBodyWrapper = Box;\n const SHeightHold = Box;\n const {\n Children,\n styles,\n rows,\n columns,\n $scrollRef,\n virtualScroll,\n onResize,\n onScroll,\n disabledScroll,\n renderRows,\n animationsDisabled,\n scrollContainerRef,\n } = this.asProps;\n\n const columnsInitialized = columns.reduce((sum, { width }) => sum + width, 0) > 0 || testEnv;\n\n const [offsetLeftSum, offsetRightSum] = getScrollOffsetValue(columns);\n\n const rowHeight = this.getRowHeight();\n const holdHeight =\n rowHeight !== undefined && virtualScroll ? rowHeight * rows.length : undefined;\n\n if (virtualScroll && columnsInitialized && !rowHeight) {\n requestAnimationFrame(this.setupRowSizeObserver);\n }\n\n const body = sstyled(styles)(\n <SBody\n render={Box}\n animationsDisabled={animationsDisabled}\n onTransitionEnd={this.handleBodyTransitionEnd}\n >\n {renderRows ? (\n renderRows({ rows, columns, renderRow: this.renderRow.bind(this) }) || null\n ) : (\n <>\n {holdHeight ? <SHeightHold hMin={holdHeight} aria-hidden={true} /> : null}\n {virtualScroll ? this.renderVirtualizedRows(rows) : this.renderRows(rows)}\n </>\n )}\n </SBody>,\n );\n\n if (disabledScroll) {\n return <SBodyWrapper>{body}</SBodyWrapper>;\n }\n\n const scrollContainerRefs = [$scrollRef, this.scrollContainerRef];\n if (scrollContainerRef) {\n scrollContainerRefs.push(scrollContainerRef);\n }\n\n return (\n <hideScrollBarsFromScreenReadersContext.Provider value={true}>\n <SBodyWrapper>\n <ScrollArea\n shadow\n leftOffset={offsetLeftSum}\n rightOffset={offsetRightSum}\n onResize={callAllEventHandlers(onResize, this.handleScrollAreaResize)}\n onScroll={callAllEventHandlers(onScroll, this.handleScrollAreaScroll)}\n styles={scrollStyles}\n >\n <ScrollArea.Container\n ref={forkRef(...scrollContainerRefs)}\n role='rowgroup'\n focusRingTopOffset={'3px'}\n tabIndex={-1}\n >\n {body}\n </ScrollArea.Container>\n <div style={displayContents}>\n <div style={displayContents}>\n <div style={displayContents}>\n <ScrollArea.Bar\n orientation='horizontal'\n bottom={0}\n container={this.scrollContainerRef}\n />\n <ScrollArea.Bar orientation='vertical' w={'12px'} zIndex={2} />\n </div>\n </div>\n </div>\n </ScrollArea>\n {Children.origin}\n </SBodyWrapper>\n </hideScrollBarsFromScreenReadersContext.Provider>\n );\n }\n}\n\nexport default Body;\n"],"mappings":"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"}