@semcore/data-table 3.7.29 → 3.8.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["getScrollOffsetValue","columns","reduce","acc","column","fixed","width","flattenColumns","hasNestedColumns","length","concat","getFixedStyle","cell","side","undefined","names","name","split","nameSideMap","left","right","index","findIndex","startIndexSideMap","endIndexSideMap","columnsFixed","slice","vars","map","join"],"sources":["../../src/utils.ts"],"sourcesContent":["import type { Column } from './types';\n\nexport const getScrollOffsetValue = (columns: Column[]) =>\n columns.reduce(\n (acc, column) => {\n if (column.fixed === 'left') {\n acc[0] += column.width;\n }\n if (column.fixed === 'right') {\n acc[1] += column.width;\n }\n return acc;\n },\n [0, 0] as [leftOffset: number, rightOffset: number],\n );\n\nexport const flattenColumns = (columns: Column[]) =>\n columns.reduce((acc, column) => {\n const hasNestedColumns = 'columns' in column && column.columns.length > 0;\n const columns: Column[] = hasNestedColumns ? flattenColumns(column.columns) : [column];\n acc = acc.concat(columns);\n return acc;\n }, [] as Column[]);\n\nexport const getFixedStyle = (\n cell: Pick<Column, 'name' | 'fixed'>,\n columns: Column[],\n): [side: 'left' | 'right', style: string | number] | [side: undefined, style: undefined] => {\n const side = cell.fixed;\n if (!side) return [undefined, undefined];\n const names = cell.name.split('/');\n const nameSideMap = {\n left: names[0],\n right: names[names.length - 1],\n };\n const name = nameSideMap[side];\n const index = columns.findIndex((column) => column.name === name);\n\n if (index === -1) return [undefined, undefined];\n\n const startIndexSideMap = {\n left: 0,\n right: index,\n };\n const endIndexSideMap = {\n left: index,\n right: columns.length - 1,\n };\n const columnsFixed = columns.slice(startIndexSideMap[side], endIndexSideMap[side]);\n\n if (columnsFixed.length < 1) return [side, 0];\n\n const vars = columnsFixed.map((column) => `var(--${column.name}_width)`);\n return [side, vars.length === 1 ? vars[0] : `calc(${vars.join(' + ')})`];\n};\n"],"mappings":";;;;;;;AAEO,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,OAAD;EAAA,OAClCA,OAAO,CAACC,MAAR,CACE,UAACC,GAAD,EAAMC,MAAN,EAAiB;IACf,IAAIA,MAAM,CAACC,KAAP,KAAiB,MAArB,EAA6B;MAC3BF,GAAG,CAAC,CAAD,CAAH,IAAUC,MAAM,CAACE,KAAjB;IACD;;IACD,IAAIF,MAAM,CAACC,KAAP,KAAiB,OAArB,EAA8B;MAC5BF,GAAG,CAAC,CAAD,CAAH,IAAUC,MAAM,CAACE,KAAjB;IACD;;IACD,OAAOH,GAAP;EACD,CATH,EAUE,CAAC,CAAD,EAAI,CAAJ,CAVF,CADkC;AAAA,CAA7B;;;;AAcA,IAAMI,cAAc,GAAG,SAAjBA,cAAiB,CAACN,OAAD;EAAA,OAC5BA,OAAO,CAACC,MAAR,CAAe,UAACC,GAAD,EAAMC,MAAN,EAAiB;IAC9B,IAAMI,gBAAgB,GAAG,aAAaJ,MAAb,IAAuBA,MAAM,CAACH,OAAP,CAAeQ,MAAf,GAAwB,CAAxE;IACA,IAAMR,OAAiB,GAAGO,gBAAgB,GAAGD,cAAc,CAACH,MAAM,CAACH,OAAR,CAAjB,GAAoC,CAACG,MAAD,CAA9E;IACAD,GAAG,GAAGA,GAAG,CAACO,MAAJ,CAAWT,OAAX,CAAN;IACA,OAAOE,GAAP;EACD,CALD,EAKG,EALH,CAD4B;AAAA,CAAvB;;;;AAQA,IAAMQ,aAAa,GAAG,SAAhBA,aAAgB,CAC3BC,IAD2B,EAE3BX,OAF2B,EAGgE;EAC3F,IAAMY,IAAI,GAAGD,IAAI,CAACP,KAAlB;EACA,IAAI,CAACQ,IAAL,EAAW,OAAO,CAACC,SAAD,EAAYA,SAAZ,CAAP;EACX,IAAMC,KAAK,GAAGH,IAAI,CAACI,IAAL,CAAUC,KAAV,CAAgB,GAAhB,CAAd;EACA,IAAMC,WAAW,GAAG;IAClBC,IAAI,EAAEJ,KAAK,CAAC,CAAD,CADO;IAElBK,KAAK,EAAEL,KAAK,CAACA,KAAK,CAACN,MAAN,GAAe,CAAhB;EAFM,CAApB;EAIA,IAAMO,IAAI,GAAGE,WAAW,CAACL,IAAD,CAAxB;EACA,IAAMQ,KAAK,GAAGpB,OAAO,CAACqB,SAAR,CAAkB,UAAClB,MAAD;IAAA,OAAYA,MAAM,CAACY,IAAP,KAAgBA,IAA5B;EAAA,CAAlB,CAAd;EAEA,IAAIK,KAAK,KAAK,CAAC,CAAf,EAAkB,OAAO,CAACP,SAAD,EAAYA,SAAZ,CAAP;EAElB,IAAMS,iBAAiB,GAAG;IACxBJ,IAAI,EAAE,CADkB;IAExBC,KAAK,EAAEC;EAFiB,CAA1B;EAIA,IAAMG,eAAe,GAAG;IACtBL,IAAI,EAAEE,KADgB;IAEtBD,KAAK,EAAEnB,OAAO,CAACQ,MAAR,GAAiB;EAFF,CAAxB;EAIA,IAAMgB,YAAY,GAAGxB,OAAO,CAACyB,KAAR,CAAcH,iBAAiB,CAACV,IAAD,CAA/B,EAAuCW,eAAe,CAACX,IAAD,CAAtD,CAArB;EAEA,IAAIY,YAAY,CAAChB,MAAb,GAAsB,CAA1B,EAA6B,OAAO,CAACI,IAAD,EAAO,CAAP,CAAP;EAE7B,IAAMc,IAAI,GAAGF,YAAY,CAACG,GAAb,CAAiB,UAACxB,MAAD;IAAA,uBAAqBA,MAAM,CAACY,IAA5B;EAAA,CAAjB,CAAb;EACA,OAAO,CAACH,IAAD,EAAOc,IAAI,CAAClB,MAAL,KAAgB,CAAhB,GAAoBkB,IAAI,CAAC,CAAD,CAAxB,kBAAsCA,IAAI,CAACE,IAAL,CAAU,KAAV,CAAtC,MAAP,CAAP;AACD,CA9BM"}
1
+ {"version":3,"file":"utils.js","names":["getScrollOffsetValue","columns","reduce","acc","column","fixed","width","exports","flattenColumns","hasNestedColumns","length","concat","getFixedStyle","cell","side","undefined","names","name","split","nameSideMap","left","right","index","findIndex","startIndexSideMap","endIndexSideMap","columnsFixed","slice","vars","map","join"],"sources":["../../src/utils.ts"],"sourcesContent":["import type { Column } from './types';\n\nexport const getScrollOffsetValue = (columns: Column[]) =>\n columns.reduce(\n (acc, column) => {\n if (column.fixed === 'left') {\n acc[0] += column.width;\n }\n if (column.fixed === 'right') {\n acc[1] += column.width;\n }\n return acc;\n },\n [0, 0] as [leftOffset: number, rightOffset: number],\n );\n\nexport const flattenColumns = (columns: Column[]) =>\n columns.reduce((acc, column) => {\n const hasNestedColumns = 'columns' in column && column.columns.length > 0;\n const columns: Column[] = hasNestedColumns ? flattenColumns(column.columns) : [column];\n acc = acc.concat(columns);\n return acc;\n }, [] as Column[]);\n\nexport const getFixedStyle = (\n cell: Pick<Column, 'name' | 'fixed'>,\n columns: Column[],\n): [side: 'left' | 'right', style: string | number] | [side: undefined, style: undefined] => {\n const side = cell.fixed;\n if (!side) return [undefined, undefined];\n const names = cell.name.split('/');\n const nameSideMap = {\n left: names[0],\n right: names[names.length - 1],\n };\n const name = nameSideMap[side];\n const index = columns.findIndex((column) => column.name === name);\n\n if (index === -1) return [undefined, undefined];\n\n const startIndexSideMap = {\n left: 0,\n right: index,\n };\n const endIndexSideMap = {\n left: index,\n right: columns.length - 1,\n };\n const columnsFixed = columns.slice(startIndexSideMap[side], endIndexSideMap[side]);\n\n if (columnsFixed.length < 1) return [side, 0];\n\n const vars = columnsFixed.map((column) => `var(--${column.name}_width)`);\n return [side, vars.length === 1 ? vars[0] : `calc(${vars.join(' + ')})`];\n};\n"],"mappings":"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"}
package/lib/es6/Body.js CHANGED
@@ -12,7 +12,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
12
12
  import { sstyled as _sstyled } from "@semcore/core";
13
13
  import { assignProps as _assignProps } from "@semcore/core";
14
14
  var _excluded = ["childrenPropsGetter"],
15
- _excluded2 = ["childrenPropsGetter"];
15
+ _excluded2 = ["childrenPropsGetter"];
16
16
  import React from 'react';
17
17
  import { Component, sstyled, Root } from '@semcore/core';
18
18
  import { Box, Flex } from '@semcore/flex-box';
@@ -20,69 +20,47 @@ import ScrollArea from '@semcore/scroll-area';
20
20
  import { getFixedStyle, getScrollOffsetValue } from './utils';
21
21
  import assignProps, { callAllEventHandlers } from '@semcore/utils/lib/assignProps';
22
22
  import ResizeObserver from 'resize-observer-polyfill';
23
-
24
23
  /*__reshadow-styles__:"./style/scroll-area.shadow.css"*/
25
- var scrollStyles = (
26
- /*__reshadow_css_start__*/
27
- _sstyled.insert(
28
- /*__inner_css_start__*/
29
- ".___SShadowHorizontal_cog1g_gg_:before{left:var(--left_cog1g)!important}.___SShadowHorizontal_cog1g_gg_:after{right:var(--right_cog1g)!important}.___SContainer_cog1g_gg_.__disabledScroll_cog1g_gg_{overflow:visible}"
30
- /*__inner_css_end__*/
31
- , "cog1g_gg_")
32
- /*__reshadow_css_end__*/
33
- , {
34
- "__SShadowHorizontal": "___SShadowHorizontal_cog1g_gg_",
35
- "--left": "--left_cog1g",
36
- "--right": "--right_cog1g",
37
- "__SContainer": "___SContainer_cog1g_gg_",
38
- "_disabledScroll": "__disabledScroll_cog1g_gg_"
24
+ var scrollStyles = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SShadowHorizontal_15apy_gg_:before{left:var(--left_15apy)!important}.___SShadowHorizontal_15apy_gg_:after{right:var(--right_15apy)!important}.___SContainer_15apy_gg_.__disabledScroll_15apy_gg_{overflow:visible}" /*__inner_css_end__*/, "15apy_gg_") /*__reshadow_css_end__*/, {
25
+ "__SShadowHorizontal": "___SShadowHorizontal_15apy_gg_",
26
+ "--left": "--left_15apy",
27
+ "--right": "--right_15apy",
28
+ "__SContainer": "___SContainer_15apy_gg_",
29
+ "_disabledScroll": "__disabledScroll_15apy_gg_"
39
30
  });
40
31
  import trottle from '@semcore/utils/lib/rafTrottle';
41
32
  var testEnv = process.env.NODE_ENV === 'test';
42
-
43
33
  var getCellsByColumn = function getCellsByColumn(cells) {
44
34
  var flattenCells = cells.flat(20);
45
35
  return Object.fromEntries(flattenCells.map(function (cell) {
46
36
  return [cell.name, cell.data];
47
37
  }));
48
38
  };
49
-
50
39
  var Body = /*#__PURE__*/function (_Component) {
51
40
  _inherits(Body, _Component);
52
-
53
41
  var _super = _createSuper(Body);
54
-
55
42
  function Body() {
56
43
  var _this;
57
-
58
44
  _classCallCheck(this, Body);
59
-
60
45
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
61
46
  args[_key] = arguments[_key];
62
47
  }
63
-
64
48
  _this = _super.call.apply(_super, [this].concat(args));
65
-
66
49
  _defineProperty(_assertThisInitialized(_this), "state", {
67
50
  rowHeight: undefined,
68
51
  scrollAreaHeight: undefined,
69
52
  scrollOffset: 0
70
53
  });
71
-
72
54
  _defineProperty(_assertThisInitialized(_this), "firstRowRef", /*#__PURE__*/React.createRef());
73
-
74
55
  _defineProperty(_assertThisInitialized(_this), "firstRowResizeObserver", null);
75
-
76
56
  _defineProperty(_assertThisInitialized(_this), "getRowHeight", function () {
77
57
  var virtualScroll = _this.asProps.virtualScroll;
78
58
  var rowHeightFromProps = _typeof(virtualScroll) === 'object' && (virtualScroll === null || virtualScroll === void 0 ? void 0 : virtualScroll.rowHeight);
79
59
  return rowHeightFromProps || _this.state.rowHeight;
80
60
  });
81
-
82
61
  _defineProperty(_assertThisInitialized(_this), "handleFirstRowResize", trottle(function (entries) {
83
62
  var contentRect = entries[0].contentRect;
84
63
  var height = contentRect.height;
85
-
86
64
  _this.setState(function (oldState) {
87
65
  if (oldState.rowHeight === height) return oldState;
88
66
  return {
@@ -90,13 +68,11 @@ var Body = /*#__PURE__*/function (_Component) {
90
68
  };
91
69
  });
92
70
  }));
93
-
94
71
  _defineProperty(_assertThisInitialized(_this), "handleScrollAreaResize", trottle(function (entries) {
95
72
  var virtualScroll = _this.asProps.virtualScroll;
96
73
  if (!virtualScroll) return;
97
74
  var contentRect = entries[0].contentRect;
98
75
  var height = contentRect.height;
99
-
100
76
  _this.setState(function (oldState) {
101
77
  if (oldState.scrollAreaHeight === height) return oldState;
102
78
  return {
@@ -104,12 +80,10 @@ var Body = /*#__PURE__*/function (_Component) {
104
80
  };
105
81
  });
106
82
  }));
107
-
108
83
  _defineProperty(_assertThisInitialized(_this), "handleScrollAreaScroll", function (event) {
109
84
  var _ref6 = event.target,
110
- scrollTop = _ref6.scrollTop;
85
+ scrollTop = _ref6.scrollTop;
111
86
  var virtualScroll = _this.asProps.virtualScroll;
112
-
113
87
  if (virtualScroll) {
114
88
  _this.setState(function (oldState) {
115
89
  if (oldState.scrollOffset === scrollTop) return oldState;
@@ -119,32 +93,26 @@ var Body = /*#__PURE__*/function (_Component) {
119
93
  });
120
94
  }
121
95
  });
122
-
123
96
  _defineProperty(_assertThisInitialized(_this), "setupRowSizeObserver", function () {
124
97
  if (!_this.firstRowRef.current) return;
125
98
  if (!_this.asProps.virtualScroll) return;
126
99
  _this.firstRowResizeObserver = new ResizeObserver(_this.handleFirstRowResize);
127
-
128
100
  _this.firstRowResizeObserver.observe(_this.firstRowRef.current);
129
101
  });
130
-
131
102
  return _this;
132
103
  }
133
-
134
104
  _createClass(Body, [{
135
105
  key: "renderCells",
136
106
  value: function renderCells(cells, rowData, index) {
137
107
  var _this2 = this;
138
-
139
108
  var SCell = Flex;
140
109
  var _this$asProps = this.asProps,
141
- styles = _this$asProps.styles,
142
- columns = _this$asProps.columns,
143
- use = _this$asProps.use;
110
+ styles = _this$asProps.styles,
111
+ columns = _this$asProps.columns,
112
+ use = _this$asProps.use;
144
113
  return cells.map(function (cell) {
145
114
  if (Array.isArray(cell)) {
146
115
  var _ref2;
147
-
148
116
  var SGroupCell = 'div';
149
117
  return _ref2 = sstyled(styles), /*#__PURE__*/React.createElement(SGroupCell, _ref2.cn("SGroupCell", {
150
118
  "role": "rowgroup",
@@ -152,7 +120,6 @@ var Body = /*#__PURE__*/function (_Component) {
152
120
  }), _this2.renderRows(cell));
153
121
  } else {
154
122
  var _ref3, _column$props, _column$props2;
155
-
156
123
  var nameParts = cell.name.split('/');
157
124
  var firstName = nameParts[0];
158
125
  var lastName = nameParts[nameParts.length - 1];
@@ -165,12 +132,10 @@ var Body = /*#__PURE__*/function (_Component) {
165
132
  var column = columns.find(function (c) {
166
133
  return c.name === cell.name;
167
134
  });
168
-
169
135
  var _getFixedStyle = getFixedStyle(cell, columns),
170
- _getFixedStyle2 = _slicedToArray(_getFixedStyle, 2),
171
- name = _getFixedStyle2[0],
172
- value = _getFixedStyle2[1];
173
-
136
+ _getFixedStyle2 = _slicedToArray(_getFixedStyle, 2),
137
+ name = _getFixedStyle2[0],
138
+ value = _getFixedStyle2[1];
174
139
  var vars = (Array.isArray(cell.cssVar) ? cell.cssVar : [cell.cssVar]).map(function (name) {
175
140
  return "var(".concat(name, ")");
176
141
  });
@@ -185,24 +150,19 @@ var Body = /*#__PURE__*/function (_Component) {
185
150
  width: vars.length === 1 ? vars[0] : "calc(".concat(vars.join(' + '), ")")
186
151
  }
187
152
  };
188
-
189
153
  if (name !== undefined && value !== undefined) {
190
154
  props.style[name] = value;
191
155
  }
192
-
193
156
  var _iterator = _createForOfIteratorHelper(cell.cellPropsLayers || []),
194
- _step;
195
-
157
+ _step;
196
158
  try {
197
159
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
198
160
  var cellPropLayer = _step.value;
199
-
200
161
  var _cellPropLayer$childr = cellPropLayer.childrenPropsGetter,
201
- childrenPropsGetter = _cellPropLayer$childr === void 0 ? function (p) {
202
- return p;
203
- } : _cellPropLayer$childr,
204
- other = _objectWithoutProperties(cellPropLayer, _excluded);
205
-
162
+ childrenPropsGetter = _cellPropLayer$childr === void 0 ? function (p) {
163
+ return p;
164
+ } : _cellPropLayer$childr,
165
+ other = _objectWithoutProperties(cellPropLayer, _excluded);
206
166
  var propsCell = assignProps(other, props);
207
167
  props = assignProps(childrenPropsGetter(propsCell, rowData, index), propsCell);
208
168
  }
@@ -211,7 +171,6 @@ var Body = /*#__PURE__*/function (_Component) {
211
171
  } finally {
212
172
  _iterator.f();
213
173
  }
214
-
215
174
  return _ref3 = sstyled(styles), /*#__PURE__*/React.createElement(SCell, _ref3.cn("SCell", _objectSpread(_objectSpread({
216
175
  "key": cell.name,
217
176
  "role": "cell"
@@ -229,16 +188,15 @@ var Body = /*#__PURE__*/function (_Component) {
229
188
  key: "renderRow",
230
189
  value: function renderRow(cells, _ref7) {
231
190
  var _ref4;
232
-
233
191
  var dataIndex = _ref7.dataIndex,
234
- topOffset = _ref7.topOffset,
235
- nested = _ref7.nested;
192
+ topOffset = _ref7.topOffset,
193
+ nested = _ref7.nested;
236
194
  var SRow = Box;
237
195
  var _this$asProps2 = this.asProps,
238
- styles = _this$asProps2.styles,
239
- rowPropsLayers = _this$asProps2.rowPropsLayers,
240
- uniqueKey = _this$asProps2.uniqueKey,
241
- virtualScroll = _this$asProps2.virtualScroll;
196
+ styles = _this$asProps2.styles,
197
+ rowPropsLayers = _this$asProps2.rowPropsLayers,
198
+ uniqueKey = _this$asProps2.uniqueKey,
199
+ virtualScroll = _this$asProps2.virtualScroll;
242
200
  var rowHeightFromProps = _typeof(virtualScroll) === 'object' && (virtualScroll === null || virtualScroll === void 0 ? void 0 : virtualScroll.rowHeight);
243
201
  var rowData = cells.flatRowData || getCellsByColumn(cells);
244
202
  var key = rowData[uniqueKey] ? String(rowData[uniqueKey]) : "row_".concat(dataIndex);
@@ -253,20 +211,16 @@ var Body = /*#__PURE__*/function (_Component) {
253
211
  key: key,
254
212
  'aria-rowindex': dataIndex + 1
255
213
  };
256
-
257
214
  var _iterator2 = _createForOfIteratorHelper(rowPropsLayers),
258
- _step2;
259
-
215
+ _step2;
260
216
  try {
261
217
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
262
218
  var rowPropsLayer = _step2.value;
263
-
264
219
  var _rowPropsLayer$childr = rowPropsLayer.childrenPropsGetter,
265
- childrenPropsGetter = _rowPropsLayer$childr === void 0 ? function (p) {
266
- return p;
267
- } : _rowPropsLayer$childr,
268
- other = _objectWithoutProperties(rowPropsLayer, _excluded2);
269
-
220
+ childrenPropsGetter = _rowPropsLayer$childr === void 0 ? function (p) {
221
+ return p;
222
+ } : _rowPropsLayer$childr,
223
+ other = _objectWithoutProperties(rowPropsLayer, _excluded2);
270
224
  var propsRow = assignProps(other, props);
271
225
  props = assignProps(childrenPropsGetter(propsRow, rowData, dataIndex), propsRow);
272
226
  }
@@ -275,7 +229,6 @@ var Body = /*#__PURE__*/function (_Component) {
275
229
  } finally {
276
230
  _iterator2.f();
277
231
  }
278
-
279
232
  return _ref4 = sstyled(styles), /*#__PURE__*/React.createElement(SRow, _ref4.cn("SRow", _objectSpread({
280
233
  "role": "row"
281
234
  }, props)));
@@ -284,7 +237,6 @@ var Body = /*#__PURE__*/function (_Component) {
284
237
  key: "renderRows",
285
238
  value: function renderRows(rows) {
286
239
  var _this3 = this;
287
-
288
240
  return rows.map(function (cells, dataIndex) {
289
241
  return _this3.renderRow(cells, {
290
242
  dataIndex: dataIndex,
@@ -296,13 +248,12 @@ var Body = /*#__PURE__*/function (_Component) {
296
248
  key: "renderVirtualizedRows",
297
249
  value: function renderVirtualizedRows(rows) {
298
250
  var _ref8,
299
- _this4 = this;
300
-
251
+ _this4 = this;
301
252
  if (rows.length === 0) return [];
302
253
  var virtualScroll = this.asProps.virtualScroll;
303
254
  var _this$state = this.state,
304
- scrollOffset = _this$state.scrollOffset,
305
- scrollAreaHeight = _this$state.scrollAreaHeight;
255
+ scrollOffset = _this$state.scrollOffset,
256
+ scrollAreaHeight = _this$state.scrollAreaHeight;
306
257
  var rowHeight = this.getRowHeight();
307
258
  var tollerance = (_ref8 = _typeof(virtualScroll) === 'object' ? virtualScroll === null || virtualScroll === void 0 ? void 0 : virtualScroll.tollerance : 2) !== null && _ref8 !== void 0 ? _ref8 : 2;
308
259
  var startIndex = Math.max(Math.floor(scrollOffset / rowHeight) - tollerance, 0);
@@ -322,15 +273,13 @@ var Body = /*#__PURE__*/function (_Component) {
322
273
  topOffset: rowHeight * (startIndex + index)
323
274
  };
324
275
  });
325
-
326
276
  if (needToMeasureFirstRowHeight && startIndex !== 0) {
327
277
  processedVisibleRows.unshift(firstRow);
328
278
  }
329
-
330
279
  return processedVisibleRows.map(function (_ref9) {
331
280
  var cells = _ref9.cells,
332
- dataIndex = _ref9.dataIndex,
333
- topOffset = _ref9.topOffset;
281
+ dataIndex = _ref9.dataIndex,
282
+ topOffset = _ref9.topOffset;
334
283
  return _this4.renderRow(cells, {
335
284
  dataIndex: dataIndex,
336
285
  topOffset: topOffset,
@@ -342,50 +291,44 @@ var Body = /*#__PURE__*/function (_Component) {
342
291
  key: "componentWillUnmount",
343
292
  value: function componentWillUnmount() {
344
293
  var _this$firstRowResizeO;
345
-
346
294
  (_this$firstRowResizeO = this.firstRowResizeObserver) === null || _this$firstRowResizeO === void 0 ? void 0 : _this$firstRowResizeO.disconnect();
347
295
  }
348
296
  }, {
349
297
  key: "render",
350
298
  value: function render() {
351
299
  var _ref = this.asProps,
352
- _ref5,
353
- _this5 = this;
354
-
300
+ _ref5,
301
+ _this5 = this;
355
302
  var SBody = Box;
356
303
  var SBodyWrapper = Box;
357
304
  var SScrollAreaBar = ScrollArea.Bar;
358
305
  var SHeightHold = Box;
359
306
  var _this$asProps3 = this.asProps,
360
- Children = _this$asProps3.Children,
361
- styles = _this$asProps3.styles,
362
- rows = _this$asProps3.rows,
363
- columns = _this$asProps3.columns,
364
- $scrollRef = _this$asProps3.$scrollRef,
365
- virtualScroll = _this$asProps3.virtualScroll,
366
- onResize = _this$asProps3.onResize,
367
- onScroll = _this$asProps3.onScroll,
368
- disabledScroll = _this$asProps3.disabledScroll;
307
+ Children = _this$asProps3.Children,
308
+ styles = _this$asProps3.styles,
309
+ rows = _this$asProps3.rows,
310
+ columns = _this$asProps3.columns,
311
+ $scrollRef = _this$asProps3.$scrollRef,
312
+ virtualScroll = _this$asProps3.virtualScroll,
313
+ onResize = _this$asProps3.onResize,
314
+ onScroll = _this$asProps3.onScroll,
315
+ disabledScroll = _this$asProps3.disabledScroll;
369
316
  var columnsInitialized = columns.reduce(function (sum, _ref10) {
370
317
  var width = _ref10.width;
371
318
  return sum + width;
372
319
  }, 0) > 0 || testEnv;
373
-
374
320
  var _getScrollOffsetValue = getScrollOffsetValue(columns),
375
- _getScrollOffsetValue2 = _slicedToArray(_getScrollOffsetValue, 2),
376
- offsetLeftSum = _getScrollOffsetValue2[0],
377
- offsetRightSum = _getScrollOffsetValue2[1];
378
-
321
+ _getScrollOffsetValue2 = _slicedToArray(_getScrollOffsetValue, 2),
322
+ offsetLeftSum = _getScrollOffsetValue2[0],
323
+ offsetRightSum = _getScrollOffsetValue2[1];
379
324
  var offsetSum = offsetLeftSum + offsetRightSum;
380
325
  var rowHeight = this.getRowHeight();
381
326
  var holdHeight = rowHeight !== undefined && virtualScroll ? rowHeight * rows.length : undefined;
382
-
383
327
  if (virtualScroll && columnsInitialized && !rowHeight) {
384
328
  new Promise(function () {
385
329
  return _this5.setupRowSizeObserver();
386
330
  });
387
331
  }
388
-
389
332
  return _ref5 = sstyled(styles), /*#__PURE__*/React.createElement(SBodyWrapper, _ref5.cn("SBodyWrapper", {}), /*#__PURE__*/React.createElement(ScrollArea, _ref5.cn("ScrollArea", {
390
333
  "shadow": true,
391
334
  "styles": scrollStyles,
@@ -411,9 +354,7 @@ var Body = /*#__PURE__*/function (_Component) {
411
354
  }))), Children.origin);
412
355
  }
413
356
  }]);
414
-
415
357
  return Body;
416
358
  }(Component);
417
-
418
359
  export default Body;
419
360
  //# sourceMappingURL=Body.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Body.js","names":["React","Component","sstyled","Root","Box","Flex","ScrollArea","getFixedStyle","getScrollOffsetValue","assignProps","callAllEventHandlers","ResizeObserver","trottle","testEnv","process","env","NODE_ENV","getCellsByColumn","cells","flattenCells","flat","Object","fromEntries","map","cell","name","data","Body","rowHeight","undefined","scrollAreaHeight","scrollOffset","createRef","virtualScroll","asProps","rowHeightFromProps","state","entries","contentRect","height","setState","oldState","event","target","scrollTop","firstRowRef","current","firstRowResizeObserver","handleFirstRowResize","observe","rowData","index","SCell","styles","columns","use","Array","isArray","SGroupCell","renderRows","nameParts","split","firstName","lastName","length","firstColumn","find","c","lastColumn","column","value","vars","cssVar","props","children","justifyContent","alignItems","borderLeft","borderRight","style","width","join","cellPropsLayers","cellPropLayer","childrenPropsGetter","p","other","propsCell","fixed","theme","dataIndex","topOffset","nested","SRow","rowPropsLayers","uniqueKey","flatRowData","key","String","needToMeasureHeight","renderCells","active","positioned","top","ref","rowPropsLayer","propsRow","rows","renderRow","getRowHeight","tollerance","startIndex","Math","max","floor","lastIndex","min","ceil","needToMeasureFirstRowHeight","firstRow","visibleRows","slice","processedVisibleRows","unshift","disconnect","SBody","SBodyWrapper","SScrollAreaBar","Bar","SHeightHold","Children","$scrollRef","onResize","onScroll","disabledScroll","columnsInitialized","reduce","sum","offsetLeftSum","offsetRightSum","offsetSum","holdHeight","Promise","setupRowSizeObserver","scrollStyles","handleScrollAreaResize","handleScrollAreaScroll","renderVirtualizedRows","origin"],"sources":["../../src/Body.tsx"],"sourcesContent":["import React from 'react';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { Box, Flex, IBoxProps } from '@semcore/flex-box';\nimport ScrollArea 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 ResizeObserver from 'resize-observer-polyfill';\nimport scrollStyles from './style/scroll-area.shadow.css';\nimport syncScroll from '@semcore/utils/lib/syncScroll';\nimport trottle from '@semcore/utils/lib/rafTrottle';\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};\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 disabledScroll?: boolean;\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 firstRowRef = React.createRef<HTMLElement>();\n firstRowResizeObserver: ResizeObserver | null = null;\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 renderCells(cells: NestedCells, rowData: RowData, index: number) {\n const SCell = Flex;\n const { styles, columns, use } = this.asProps;\n return cells.map((cell) => {\n if (Array.isArray(cell)) {\n const SGroupCell = 'div';\n return sstyled(styles)(\n <SGroupCell role=\"rowgroup\" data-ui-name=\"group-cell\">\n {this.renderRows(cell as NestedCells[])}\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 vars = (Array.isArray(cell.cssVar) ? cell.cssVar : [cell.cssVar]).map(\n (name) => `var(${name})`,\n );\n type CellProps = IBoxProps & {\n name: string;\n children: React.ReactNode;\n style: React.CSSProperties;\n };\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 },\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, index), propsCell);\n }\n\n return sstyled(styles)(\n <SCell\n key={cell.name}\n role=\"cell\"\n {...props}\n fixed={cell.fixed}\n theme={props.theme}\n use={use}\n borderLeft={props.borderLeft}\n borderRight={props.borderRight}\n />,\n ) as React.ReactElement;\n }\n }, [] as React.ReactElement[]);\n }\n\n renderRow(\n cells: NestedCells,\n { dataIndex, topOffset, nested }: { 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 && !nested && !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': dataIndex + 1,\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)(<SRow role=\"row\" {...props} />);\n }\n\n renderRows(rows: NestedCells[]) {\n return rows.map((cells, dataIndex) => this.renderRow(cells, { dataIndex, nested: false }));\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 this.firstRowResizeObserver = new ResizeObserver(this.handleFirstRowResize);\n this.firstRowResizeObserver.observe(this.firstRowRef.current);\n };\n\n componentWillUnmount() {\n this.firstRowResizeObserver?.disconnect();\n }\n\n render() {\n const SBody = Root;\n const SBodyWrapper = Box;\n const SScrollAreaBar = ScrollArea.Bar;\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 } = this.asProps;\n\n const columnsInitialized = columns.reduce((sum, { width }) => sum + width, 0) > 0 || testEnv;\n\n const [offsetLeftSum, offsetRightSum] = getScrollOffsetValue(columns);\n const offsetSum = offsetLeftSum + offsetRightSum;\n\n const rowHeight = this.getRowHeight();\n const holdHeight =\n rowHeight !== undefined && virtualScroll ? rowHeight * rows.length : undefined;\n\n if (virtualScroll && columnsInitialized && !rowHeight) {\n new Promise(() => this.setupRowSizeObserver());\n }\n\n return sstyled(styles)(\n <SBodyWrapper>\n <ScrollArea\n shadow\n styles={scrollStyles}\n use:left={`${offsetLeftSum}px`}\n use:right={`${offsetRightSum}px`}\n onResize={callAllEventHandlers(onResize, this.handleScrollAreaResize)}\n onScroll={callAllEventHandlers(onScroll, this.handleScrollAreaScroll)}\n >\n <ScrollArea.Container ref={$scrollRef} disabledScroll={disabledScroll}>\n <SBody render={Box} role=\"rowgroup\">\n {holdHeight ? <SHeightHold hMin={holdHeight} aria-hidden={true} /> : null}\n {columnsInitialized && !virtualScroll ? this.renderRows(rows) : null}\n {columnsInitialized && virtualScroll ? this.renderVirtualizedRows(rows) : null}\n </SBody>\n </ScrollArea.Container>\n <SScrollAreaBar\n orientation=\"horizontal\"\n left={`${offsetLeftSum}px`}\n right={`${offsetRightSum}px`}\n offsetSum={`${offsetSum}px`}\n />\n <SScrollAreaBar orientation=\"vertical\" />\n </ScrollArea>\n {Children.origin}\n </SBodyWrapper>,\n );\n }\n}\n\nexport default Body;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Body.js","names":["React","Component","sstyled","Root","Box","Flex","ScrollArea","getFixedStyle","getScrollOffsetValue","assignProps","callAllEventHandlers","ResizeObserver","scrollStyles","_sstyled","insert","trottle","testEnv","process","env","NODE_ENV","getCellsByColumn","cells","flattenCells","flat","Object","fromEntries","map","cell","name","data","Body","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","rowHeight","undefined","scrollAreaHeight","scrollOffset","createRef","virtualScroll","asProps","rowHeightFromProps","_typeof","state","entries","contentRect","height","setState","oldState","event","_ref6","target","scrollTop","firstRowRef","current","firstRowResizeObserver","handleFirstRowResize","observe","_createClass","key","value","renderCells","rowData","index","_this2","SCell","_this$asProps","styles","columns","use","isArray","_ref2","SGroupCell","createElement","cn","renderRows","_ref3","_column$props","_column$props2","nameParts","split","firstName","lastName","firstColumn","find","c","lastColumn","column","_getFixedStyle","_getFixedStyle2","_slicedToArray","vars","cssVar","props","children","Fragment","justifyContent","alignItems","borderLeft","borderRight","style","width","join","_iterator","_createForOfIteratorHelper","cellPropsLayers","_step","s","n","done","cellPropLayer","_cellPropLayer$childr","childrenPropsGetter","p","other","_objectWithoutProperties","_excluded","propsCell","err","e","f","_objectSpread","fixed","theme","renderRow","_ref7","_ref4","dataIndex","topOffset","nested","SRow","_this$asProps2","rowPropsLayers","uniqueKey","flatRowData","String","needToMeasureHeight","active","positioned","top","ref","_iterator2","_step2","rowPropsLayer","_rowPropsLayer$childr","_excluded2","propsRow","rows","_this3","renderVirtualizedRows","_ref8","_this4","_this$state","getRowHeight","tollerance","startIndex","Math","max","floor","lastIndex","min","ceil","needToMeasureFirstRowHeight","firstRow","visibleRows","slice","processedVisibleRows","unshift","_ref9","componentWillUnmount","_this$firstRowResizeO","disconnect","render","_ref","_ref5","_this5","SBody","SBodyWrapper","SScrollAreaBar","Bar","SHeightHold","_this$asProps3","Children","$scrollRef","onResize","onScroll","disabledScroll","columnsInitialized","reduce","sum","_ref10","_getScrollOffsetValue","_getScrollOffsetValue2","offsetLeftSum","offsetRightSum","offsetSum","holdHeight","Promise","setupRowSizeObserver","handleScrollAreaResize","handleScrollAreaScroll","Container","_assignProps","origin"],"sources":["../../src/Body.tsx"],"sourcesContent":["import React from 'react';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { Box, Flex, IBoxProps } from '@semcore/flex-box';\nimport ScrollArea 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 ResizeObserver from 'resize-observer-polyfill';\nimport scrollStyles from './style/scroll-area.shadow.css';\nimport syncScroll from '@semcore/utils/lib/syncScroll';\nimport trottle from '@semcore/utils/lib/rafTrottle';\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};\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 disabledScroll?: boolean;\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 firstRowRef = React.createRef<HTMLElement>();\n firstRowResizeObserver: ResizeObserver | null = null;\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 renderCells(cells: NestedCells, rowData: RowData, index: number) {\n const SCell = Flex;\n const { styles, columns, use } = this.asProps;\n return cells.map((cell) => {\n if (Array.isArray(cell)) {\n const SGroupCell = 'div';\n return sstyled(styles)(\n <SGroupCell role=\"rowgroup\" data-ui-name=\"group-cell\">\n {this.renderRows(cell as NestedCells[])}\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 vars = (Array.isArray(cell.cssVar) ? cell.cssVar : [cell.cssVar]).map(\n (name) => `var(${name})`,\n );\n type CellProps = IBoxProps & {\n name: string;\n children: React.ReactNode;\n style: React.CSSProperties;\n };\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 },\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, index), propsCell);\n }\n\n return sstyled(styles)(\n <SCell\n key={cell.name}\n role=\"cell\"\n {...props}\n fixed={cell.fixed}\n theme={props.theme}\n use={use}\n borderLeft={props.borderLeft}\n borderRight={props.borderRight}\n />,\n ) as React.ReactElement;\n }\n }, [] as React.ReactElement[]);\n }\n\n renderRow(\n cells: NestedCells,\n { dataIndex, topOffset, nested }: { 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 && !nested && !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': dataIndex + 1,\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)(<SRow role=\"row\" {...props} />);\n }\n\n renderRows(rows: NestedCells[]) {\n return rows.map((cells, dataIndex) => this.renderRow(cells, { dataIndex, nested: false }));\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 this.firstRowResizeObserver = new ResizeObserver(this.handleFirstRowResize);\n this.firstRowResizeObserver.observe(this.firstRowRef.current);\n };\n\n componentWillUnmount() {\n this.firstRowResizeObserver?.disconnect();\n }\n\n render() {\n const SBody = Root;\n const SBodyWrapper = Box;\n const SScrollAreaBar = ScrollArea.Bar;\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 } = this.asProps;\n\n const columnsInitialized = columns.reduce((sum, { width }) => sum + width, 0) > 0 || testEnv;\n\n const [offsetLeftSum, offsetRightSum] = getScrollOffsetValue(columns);\n const offsetSum = offsetLeftSum + offsetRightSum;\n\n const rowHeight = this.getRowHeight();\n const holdHeight =\n rowHeight !== undefined && virtualScroll ? rowHeight * rows.length : undefined;\n\n if (virtualScroll && columnsInitialized && !rowHeight) {\n new Promise(() => this.setupRowSizeObserver());\n }\n\n return sstyled(styles)(\n <SBodyWrapper>\n <ScrollArea\n shadow\n styles={scrollStyles}\n use:left={`${offsetLeftSum}px`}\n use:right={`${offsetRightSum}px`}\n onResize={callAllEventHandlers(onResize, this.handleScrollAreaResize)}\n onScroll={callAllEventHandlers(onScroll, this.handleScrollAreaScroll)}\n >\n <ScrollArea.Container ref={$scrollRef} disabledScroll={disabledScroll}>\n <SBody render={Box} role=\"rowgroup\">\n {holdHeight ? <SHeightHold hMin={holdHeight} aria-hidden={true} /> : null}\n {columnsInitialized && !virtualScroll ? this.renderRows(rows) : null}\n {columnsInitialized && virtualScroll ? this.renderVirtualizedRows(rows) : null}\n </SBody>\n </ScrollArea.Container>\n <SScrollAreaBar\n orientation=\"horizontal\"\n left={`${offsetLeftSum}px`}\n right={`${offsetRightSum}px`}\n offsetSum={`${offsetSum}px`}\n />\n <SScrollAreaBar orientation=\"vertical\" />\n </ScrollArea>\n {Children.origin}\n </SBodyWrapper>,\n );\n }\n}\n\nexport default Body;\n"],"mappings":"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"}