@semcore/data-table 2.1.0 → 2.2.0
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.
- package/CHANGELOG.md +6 -0
- package/lib/cjs/Body.js +240 -80
- package/lib/cjs/Body.js.map +1 -1
- package/lib/cjs/DataTable.js +52 -56
- package/lib/cjs/DataTable.js.map +1 -1
- package/lib/cjs/Head.js +2 -2
- package/lib/cjs/Head.js.map +1 -1
- package/lib/cjs/style/data-table.shadow.css +11 -0
- package/lib/cjs/types.js.map +1 -1
- package/lib/es6/Body.js +234 -76
- package/lib/es6/Body.js.map +1 -1
- package/lib/es6/DataTable.js +52 -56
- package/lib/es6/DataTable.js.map +1 -1
- package/lib/es6/Head.js +2 -2
- package/lib/es6/Head.js.map +1 -1
- package/lib/es6/style/data-table.shadow.css +11 -0
- package/lib/es6/types.js.map +1 -1
- package/package.json +3 -2
- package/src/Body.tsx +152 -31
- package/src/DataTable.tsx +17 -2
- package/src/style/data-table.shadow.css +11 -0
- package/src/types.ts +0 -1
package/lib/es6/Body.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
1
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
-
import
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
+
import _typeof from "@babel/runtime/helpers/typeof";
|
|
4
4
|
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
5
5
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
6
|
+
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
|
|
6
7
|
import _inherits from "@babel/runtime/helpers/inherits";
|
|
7
8
|
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
8
9
|
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
10
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
9
11
|
import { sstyled as _sstyled } from "@semcore/core";
|
|
10
12
|
import { assignProps as _assignProps } from "@semcore/core";
|
|
11
13
|
var _excluded = ["childrenPropsGetter"],
|
|
@@ -30,7 +32,8 @@ import { Component, sstyled, Root } from '@semcore/core';
|
|
|
30
32
|
import { Box, Flex } from '@semcore/flex-box';
|
|
31
33
|
import ScrollArea from '@semcore/scroll-area';
|
|
32
34
|
import { getFixedStyle, getScrollOffsetValue } from './utils';
|
|
33
|
-
import assignProps from '@semcore/utils/lib/assignProps';
|
|
35
|
+
import assignProps, { callAllEventHandlers } from '@semcore/utils/lib/assignProps';
|
|
36
|
+
import ResizeObserver from 'resize-observer-polyfill';
|
|
34
37
|
|
|
35
38
|
/*__reshadow-styles__:"./style/scroll-area.shadow.css"*/
|
|
36
39
|
var scrollStyles = (
|
|
@@ -46,6 +49,7 @@ _sstyled.insert(
|
|
|
46
49
|
"--left": "--left_1jfuf14",
|
|
47
50
|
"--right": "--right_1jfuf14"
|
|
48
51
|
});
|
|
52
|
+
import trottle from '@semcore/utils/lib/rafTrottle';
|
|
49
53
|
var testEnv = process.env.NODE_ENV === 'test';
|
|
50
54
|
|
|
51
55
|
var getCellsByColumn = function getCellsByColumn(cells) {
|
|
@@ -61,77 +65,99 @@ var Body = /*#__PURE__*/function (_Component) {
|
|
|
61
65
|
var _super = _createSuper(Body);
|
|
62
66
|
|
|
63
67
|
function Body() {
|
|
68
|
+
var _this;
|
|
69
|
+
|
|
64
70
|
_classCallCheck(this, Body);
|
|
65
71
|
|
|
66
|
-
|
|
67
|
-
|
|
72
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
73
|
+
args[_key] = arguments[_key];
|
|
74
|
+
}
|
|
68
75
|
|
|
69
|
-
|
|
70
|
-
key: "renderRow",
|
|
71
|
-
value: function renderRow(cells, index) {
|
|
72
|
-
var _ref2;
|
|
76
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
73
77
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
var props = {
|
|
80
|
-
children: this.renderCells(cells, cellsByColumn, index),
|
|
81
|
-
theme: undefined,
|
|
82
|
-
active: undefined
|
|
83
|
-
};
|
|
78
|
+
_defineProperty(_assertThisInitialized(_this), "state", {
|
|
79
|
+
rowHeight: undefined,
|
|
80
|
+
scrollAreaHeight: undefined,
|
|
81
|
+
scrollOffset: 0
|
|
82
|
+
});
|
|
84
83
|
|
|
85
|
-
|
|
86
|
-
_step;
|
|
84
|
+
_defineProperty(_assertThisInitialized(_this), "firstRowRef", React.createRef());
|
|
87
85
|
|
|
88
|
-
|
|
89
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
90
|
-
var rowPropsLayer = _step.value;
|
|
86
|
+
_defineProperty(_assertThisInitialized(_this), "firstRowResizeObserver", null);
|
|
91
87
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
88
|
+
_defineProperty(_assertThisInitialized(_this), "getRowHeight", function () {
|
|
89
|
+
var virtualScroll = _this.asProps.virtualScroll;
|
|
90
|
+
var rowHeightFromProps = _typeof(virtualScroll) === 'object' && virtualScroll?.rowHeight;
|
|
91
|
+
return rowHeightFromProps || _this.state.rowHeight;
|
|
92
|
+
});
|
|
97
93
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
94
|
+
_defineProperty(_assertThisInitialized(_this), "handleFirstRowResize", trottle(function (entries) {
|
|
95
|
+
var contentRect = entries[0].contentRect;
|
|
96
|
+
var height = contentRect.height;
|
|
97
|
+
|
|
98
|
+
_this.setState(function (oldState) {
|
|
99
|
+
if (oldState.rowHeight === height) return oldState;
|
|
100
|
+
return {
|
|
101
|
+
rowHeight: height
|
|
102
|
+
};
|
|
103
|
+
});
|
|
104
|
+
}));
|
|
105
|
+
|
|
106
|
+
_defineProperty(_assertThisInitialized(_this), "handleScrollAreaResize", trottle(function (entries) {
|
|
107
|
+
var virtualScroll = _this.asProps.virtualScroll;
|
|
108
|
+
if (!virtualScroll) return;
|
|
109
|
+
var contentRect = entries[0].contentRect;
|
|
110
|
+
var height = contentRect.height;
|
|
111
|
+
|
|
112
|
+
_this.setState(function (oldState) {
|
|
113
|
+
if (oldState.scrollAreaHeight === height) return oldState;
|
|
114
|
+
return {
|
|
115
|
+
scrollAreaHeight: height
|
|
116
|
+
};
|
|
117
|
+
});
|
|
118
|
+
}));
|
|
119
|
+
|
|
120
|
+
_defineProperty(_assertThisInitialized(_this), "handleScrollAreaScroll", function (event) {
|
|
121
|
+
var _ref5 = event.target,
|
|
122
|
+
scrollTop = _ref5.scrollTop;
|
|
123
|
+
var virtualScroll = _this.asProps.virtualScroll;
|
|
124
|
+
|
|
125
|
+
if (virtualScroll) {
|
|
126
|
+
_this.setState(function (oldState) {
|
|
127
|
+
if (oldState.scrollOffset === scrollTop) return oldState;
|
|
128
|
+
return {
|
|
129
|
+
scrollOffset: scrollTop
|
|
130
|
+
};
|
|
131
|
+
});
|
|
105
132
|
}
|
|
133
|
+
});
|
|
106
134
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
}, {
|
|
112
|
-
key: "renderRows",
|
|
113
|
-
value: function renderRows(rows) {
|
|
114
|
-
var _this = this;
|
|
135
|
+
_defineProperty(_assertThisInitialized(_this), "setupRowSizeObserver", function () {
|
|
136
|
+
if (!_this.firstRowRef.current) return;
|
|
137
|
+
if (!_this.asProps.virtualScroll) return;
|
|
138
|
+
_this.firstRowResizeObserver = new ResizeObserver(_this.handleFirstRowResize);
|
|
115
139
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}
|
|
140
|
+
_this.firstRowResizeObserver.observe(_this.firstRowRef.current);
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
return _this;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
_createClass(Body, [{
|
|
121
147
|
key: "renderCells",
|
|
122
|
-
value: function renderCells(cells,
|
|
148
|
+
value: function renderCells(cells, rowData, index) {
|
|
123
149
|
var _this2 = this;
|
|
124
150
|
|
|
125
151
|
var SCell = Flex;
|
|
126
|
-
var _this$
|
|
127
|
-
styles = _this$
|
|
128
|
-
columns = _this$
|
|
129
|
-
use = _this$
|
|
152
|
+
var _this$asProps = this.asProps,
|
|
153
|
+
styles = _this$asProps.styles,
|
|
154
|
+
columns = _this$asProps.columns,
|
|
155
|
+
use = _this$asProps.use;
|
|
130
156
|
return cells.map(function (cell) {
|
|
131
157
|
if (Array.isArray(cell)) {
|
|
132
158
|
return /*#__PURE__*/React.createElement("div", null, _this2.renderRows(cell));
|
|
133
159
|
} else {
|
|
134
|
-
var
|
|
160
|
+
var _ref2;
|
|
135
161
|
|
|
136
162
|
var column = columns.find(function (c) {
|
|
137
163
|
return c.name === cell.name;
|
|
@@ -145,40 +171,42 @@ var Body = /*#__PURE__*/function (_Component) {
|
|
|
145
171
|
var vars = (Array.isArray(cell.cssVar) ? cell.cssVar : [cell.cssVar]).map(function (name) {
|
|
146
172
|
return "var(".concat(name, ")");
|
|
147
173
|
});
|
|
148
|
-
var props =
|
|
174
|
+
var props = {
|
|
149
175
|
name: cell.name,
|
|
150
|
-
children: /*#__PURE__*/React.createElement(React.Fragment, null, cell.data)
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
176
|
+
children: /*#__PURE__*/React.createElement(React.Fragment, null, cell.data),
|
|
177
|
+
justifyContent: column?.props?.justifyContent,
|
|
178
|
+
style: {
|
|
179
|
+
width: vars.length === 1 ? vars[0] : "calc(".concat(vars.join(' + '), ")")
|
|
180
|
+
}
|
|
181
|
+
};
|
|
154
182
|
|
|
155
183
|
if (name !== undefined && value !== undefined) {
|
|
156
184
|
props.style[name] = value;
|
|
157
185
|
}
|
|
158
186
|
|
|
159
|
-
var
|
|
160
|
-
|
|
187
|
+
var _iterator = _createForOfIteratorHelper(cell.cellPropsLayers || []),
|
|
188
|
+
_step;
|
|
161
189
|
|
|
162
190
|
try {
|
|
163
|
-
for (
|
|
164
|
-
var cellPropLayer =
|
|
191
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
192
|
+
var cellPropLayer = _step.value;
|
|
165
193
|
|
|
166
194
|
var _cellPropLayer$childr = cellPropLayer.childrenPropsGetter,
|
|
167
195
|
childrenPropsGetter = _cellPropLayer$childr === void 0 ? function (p) {
|
|
168
196
|
return p;
|
|
169
197
|
} : _cellPropLayer$childr,
|
|
170
|
-
other = _objectWithoutProperties(cellPropLayer,
|
|
198
|
+
other = _objectWithoutProperties(cellPropLayer, _excluded);
|
|
171
199
|
|
|
172
200
|
var propsCell = assignProps(other, props);
|
|
173
|
-
props = assignProps(childrenPropsGetter(propsCell,
|
|
201
|
+
props = assignProps(childrenPropsGetter(propsCell, rowData, index), propsCell);
|
|
174
202
|
}
|
|
175
203
|
} catch (err) {
|
|
176
|
-
|
|
204
|
+
_iterator.e(err);
|
|
177
205
|
} finally {
|
|
178
|
-
|
|
206
|
+
_iterator.f();
|
|
179
207
|
}
|
|
180
208
|
|
|
181
|
-
return
|
|
209
|
+
return _ref2 = sstyled(styles), /*#__PURE__*/React.createElement(SCell, _ref2.cn("SCell", _objectSpread(_objectSpread({
|
|
182
210
|
"key": cell.name
|
|
183
211
|
}, props), {}, {
|
|
184
212
|
"fixed": cell.fixed,
|
|
@@ -188,24 +216,141 @@ var Body = /*#__PURE__*/function (_Component) {
|
|
|
188
216
|
}
|
|
189
217
|
}, []);
|
|
190
218
|
}
|
|
219
|
+
}, {
|
|
220
|
+
key: "renderRow",
|
|
221
|
+
value: function renderRow(cells, _ref6) {
|
|
222
|
+
var _ref3;
|
|
223
|
+
|
|
224
|
+
var dataIndex = _ref6.dataIndex,
|
|
225
|
+
topOffset = _ref6.topOffset,
|
|
226
|
+
nested = _ref6.nested;
|
|
227
|
+
var SRow = Box;
|
|
228
|
+
var _this$asProps2 = this.asProps,
|
|
229
|
+
styles = _this$asProps2.styles,
|
|
230
|
+
rowPropsLayers = _this$asProps2.rowPropsLayers,
|
|
231
|
+
uniqueKey = _this$asProps2.uniqueKey,
|
|
232
|
+
virtualScroll = _this$asProps2.virtualScroll;
|
|
233
|
+
var rowHeightFromProps = _typeof(virtualScroll) === 'object' && virtualScroll?.rowHeight;
|
|
234
|
+
var rowData = cells.flatRowData || getCellsByColumn(cells);
|
|
235
|
+
var key = rowData[uniqueKey] ? String(rowData[uniqueKey]) : "row_".concat(dataIndex);
|
|
236
|
+
var needToMeasureHeight = dataIndex === 0 && !nested && !rowHeightFromProps;
|
|
237
|
+
var props = {
|
|
238
|
+
children: this.renderCells(cells, rowData, dataIndex),
|
|
239
|
+
theme: undefined,
|
|
240
|
+
active: undefined,
|
|
241
|
+
positioned: topOffset !== undefined,
|
|
242
|
+
top: topOffset,
|
|
243
|
+
ref: needToMeasureHeight ? this.firstRowRef : undefined,
|
|
244
|
+
key: key
|
|
245
|
+
};
|
|
246
|
+
|
|
247
|
+
var _iterator2 = _createForOfIteratorHelper(rowPropsLayers),
|
|
248
|
+
_step2;
|
|
249
|
+
|
|
250
|
+
try {
|
|
251
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
252
|
+
var rowPropsLayer = _step2.value;
|
|
253
|
+
|
|
254
|
+
var _rowPropsLayer$childr = rowPropsLayer.childrenPropsGetter,
|
|
255
|
+
childrenPropsGetter = _rowPropsLayer$childr === void 0 ? function (p) {
|
|
256
|
+
return p;
|
|
257
|
+
} : _rowPropsLayer$childr,
|
|
258
|
+
other = _objectWithoutProperties(rowPropsLayer, _excluded2);
|
|
259
|
+
|
|
260
|
+
var propsRow = assignProps(other, props);
|
|
261
|
+
props = assignProps(childrenPropsGetter(propsRow, rowData, dataIndex), propsRow);
|
|
262
|
+
}
|
|
263
|
+
} catch (err) {
|
|
264
|
+
_iterator2.e(err);
|
|
265
|
+
} finally {
|
|
266
|
+
_iterator2.f();
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
return _ref3 = sstyled(styles), /*#__PURE__*/React.createElement(SRow, _ref3.cn("SRow", _objectSpread({}, props)));
|
|
270
|
+
}
|
|
271
|
+
}, {
|
|
272
|
+
key: "renderRows",
|
|
273
|
+
value: function renderRows(rows) {
|
|
274
|
+
var _this3 = this;
|
|
275
|
+
|
|
276
|
+
return rows.map(function (cells, dataIndex) {
|
|
277
|
+
return _this3.renderRow(cells, {
|
|
278
|
+
dataIndex: dataIndex,
|
|
279
|
+
nested: false
|
|
280
|
+
});
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
}, {
|
|
284
|
+
key: "renderVirtualizedRows",
|
|
285
|
+
value: function renderVirtualizedRows(rows) {
|
|
286
|
+
var _this4 = this;
|
|
287
|
+
|
|
288
|
+
if (rows.length === 0) return [];
|
|
289
|
+
var virtualScroll = this.asProps.virtualScroll;
|
|
290
|
+
var _this$state = this.state,
|
|
291
|
+
scrollOffset = _this$state.scrollOffset,
|
|
292
|
+
scrollAreaHeight = _this$state.scrollAreaHeight;
|
|
293
|
+
var rowHeight = this.getRowHeight();
|
|
294
|
+
var tollerance = (_typeof(virtualScroll) === 'object' ? virtualScroll?.tollerance : 2) ?? 2;
|
|
295
|
+
var startIndex = Math.max(Math.floor(scrollOffset / rowHeight) - tollerance, 0);
|
|
296
|
+
var lastIndex = Math.min(Math.ceil((scrollOffset + scrollAreaHeight) / rowHeight) + tollerance, rows.length);
|
|
297
|
+
var rowHeightFromProps = _typeof(virtualScroll) === 'object' && virtualScroll?.rowHeight;
|
|
298
|
+
var needToMeasureFirstRowHeight = !rowHeightFromProps;
|
|
299
|
+
var firstRow = {
|
|
300
|
+
cells: rows[0],
|
|
301
|
+
dataIndex: 0,
|
|
302
|
+
topOffset: 0
|
|
303
|
+
};
|
|
304
|
+
var visibleRows = rowHeight !== undefined ? rows.slice(startIndex, lastIndex) : [];
|
|
305
|
+
var processedVisibleRows = visibleRows.map(function (cells, index) {
|
|
306
|
+
return {
|
|
307
|
+
cells: cells,
|
|
308
|
+
dataIndex: startIndex + index,
|
|
309
|
+
topOffset: rowHeight * (startIndex + index)
|
|
310
|
+
};
|
|
311
|
+
});
|
|
312
|
+
|
|
313
|
+
if (needToMeasureFirstRowHeight && startIndex !== 0) {
|
|
314
|
+
processedVisibleRows.unshift(firstRow);
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
return processedVisibleRows.map(function (_ref7) {
|
|
318
|
+
var cells = _ref7.cells,
|
|
319
|
+
dataIndex = _ref7.dataIndex,
|
|
320
|
+
topOffset = _ref7.topOffset;
|
|
321
|
+
return _this4.renderRow(cells, {
|
|
322
|
+
dataIndex: dataIndex,
|
|
323
|
+
topOffset: topOffset,
|
|
324
|
+
nested: false
|
|
325
|
+
});
|
|
326
|
+
});
|
|
327
|
+
}
|
|
328
|
+
}, {
|
|
329
|
+
key: "componentWillUnmount",
|
|
330
|
+
value: function componentWillUnmount() {
|
|
331
|
+
this.firstRowResizeObserver?.disconnect();
|
|
332
|
+
}
|
|
191
333
|
}, {
|
|
192
334
|
key: "render",
|
|
193
335
|
value: function render() {
|
|
194
336
|
var _ref = this.asProps,
|
|
195
|
-
_ref4
|
|
337
|
+
_ref4,
|
|
338
|
+
_this5 = this;
|
|
196
339
|
|
|
197
340
|
var SBody = Box;
|
|
198
341
|
var SBodyWrapper = Box;
|
|
199
342
|
var SScrollAreaBar = ScrollArea.Bar;
|
|
343
|
+
var SHeightHold = Box;
|
|
200
344
|
var _this$asProps3 = this.asProps,
|
|
201
345
|
Children = _this$asProps3.Children,
|
|
202
346
|
styles = _this$asProps3.styles,
|
|
203
347
|
rows = _this$asProps3.rows,
|
|
204
348
|
columns = _this$asProps3.columns,
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
349
|
+
$scrollRef = _this$asProps3.$scrollRef,
|
|
350
|
+
virtualScroll = _this$asProps3.virtualScroll,
|
|
351
|
+
onResize = _this$asProps3.onResize;
|
|
352
|
+
var columnsInitialized = columns.reduce(function (sum, _ref8) {
|
|
353
|
+
var width = _ref8.width;
|
|
209
354
|
return sum + width;
|
|
210
355
|
}, 0) > 0 || testEnv;
|
|
211
356
|
|
|
@@ -215,15 +360,28 @@ var Body = /*#__PURE__*/function (_Component) {
|
|
|
215
360
|
offsetRightSum = _getScrollOffsetValue2[1];
|
|
216
361
|
|
|
217
362
|
var offsetSum = offsetLeftSum + offsetRightSum;
|
|
363
|
+
var rowHeight = this.getRowHeight();
|
|
364
|
+
var holdHeight = rowHeight !== undefined && virtualScroll ? rowHeight * rows.length : undefined;
|
|
365
|
+
|
|
366
|
+
if (virtualScroll && columnsInitialized && !rowHeight) {
|
|
367
|
+
new Promise(function () {
|
|
368
|
+
return _this5.setupRowSizeObserver();
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
|
|
218
372
|
return _ref4 = sstyled(styles), /*#__PURE__*/React.createElement(SBodyWrapper, _ref4.cn("SBodyWrapper", {}), /*#__PURE__*/React.createElement(ScrollArea, _ref4.cn("ScrollArea", {
|
|
219
373
|
"shadow": true,
|
|
220
374
|
"styles": scrollStyles,
|
|
221
375
|
"use:left": "".concat(offsetLeftSum, "px"),
|
|
222
376
|
"use:right": "".concat(offsetRightSum, "px"),
|
|
223
|
-
"onResize": onResize
|
|
377
|
+
"onResize": callAllEventHandlers(onResize, this.handleScrollAreaResize),
|
|
378
|
+
"onScroll": this.handleScrollAreaScroll
|
|
224
379
|
}), /*#__PURE__*/React.createElement(ScrollArea.Container, {
|
|
225
380
|
ref: $scrollRef
|
|
226
|
-
}, /*#__PURE__*/React.createElement(SBody, _ref4.cn("SBody", _objectSpread({}, _assignProps({}, _ref))),
|
|
381
|
+
}, /*#__PURE__*/React.createElement(SBody, _ref4.cn("SBody", _objectSpread({}, _assignProps({}, _ref))), holdHeight && /*#__PURE__*/React.createElement(SHeightHold, _ref4.cn("SHeightHold", {
|
|
382
|
+
"hMin": holdHeight,
|
|
383
|
+
"aria-hidden": true
|
|
384
|
+
})), columnsInitialized && !virtualScroll ? this.renderRows(rows) : null, columnsInitialized && virtualScroll ? this.renderVirtualizedRows(rows) : null)), /*#__PURE__*/React.createElement(SScrollAreaBar, _ref4.cn("SScrollAreaBar", {
|
|
227
385
|
"orientation": "horizontal",
|
|
228
386
|
"left": "".concat(offsetLeftSum, "px"),
|
|
229
387
|
"right": "".concat(offsetRightSum, "px"),
|
package/lib/es6/Body.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Body.tsx"],"names":["React","Component","sstyled","Root","Box","Flex","ScrollArea","getFixedStyle","getScrollOffsetValue","assignProps","testEnv","process","env","NODE_ENV","getCellsByColumn","cells","flattenCells","flat","Object","fromEntries","map","cell","name","data","Body","index","SRow","asProps","styles","rowPropsLayers","cellsByColumn","flatRowData","props","children","renderCells","theme","undefined","active","rowPropsLayer","childrenPropsGetter","p","other","propsRow","rows","renderRow","SCell","columns","use","Array","isArray","renderRows","column","find","c","value","vars","cssVar","JSON","stringify","justifyContent","width","length","join","style","cellPropsLayers","cellPropLayer","propsCell","fixed","SBody","SBodyWrapper","SScrollAreaBar","Bar","Children","onResize","$scrollRef","columnsInitialized","reduce","sum","offsetLeftSum","offsetRightSum","offsetSum","scrollStyles","origin"],"mappings":"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","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 from '@semcore/utils/lib/assignProps';\nimport type ResizeObserverCallback from 'resize-observer-polyfill';\n\nimport scrollStyles from './style/scroll-area.shadow.css';\nimport syncScroll from '@semcore/utils/lib/syncScroll';\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 rowPropsLayers: PropsLayer[];\n use: 'primary' | 'secondary';\n};\n\nclass Body extends Component<AsProps> {\n renderRow(cells: NestedCells, index: number) {\n const SRow = Box;\n const { styles, rowPropsLayers } = this.asProps;\n\n const cellsByColumn = cells.flatRowData || getCellsByColumn(cells);\n\n let props = {\n children: this.renderCells(cells, cellsByColumn, index),\n theme: undefined,\n active: 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, cellsByColumn, index), propsRow);\n }\n\n return sstyled(styles)(<SRow key={index} {...props} />);\n }\n\n renderRows(rows: NestedCells[]) {\n return rows.map((cells, index) => this.renderRow(cells, index));\n }\n\n renderCells(cells: NestedCells, cellsByColumn: 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 return <div>{this.renderRows(cell as NestedCells[])}</div>;\n } else {\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 ['data-data']: JSON.stringify(cell.data),\n justifyContent: column?.props?.justifyContent,\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, cellsByColumn, index), propsCell);\n }\n\n return sstyled(styles)(\n <SCell key={cell.name} {...props} fixed={cell.fixed} theme={props.theme} use={use} />,\n ) as React.ReactElement;\n }\n }, [] as React.ReactElement[]);\n }\n\n render() {\n const SBody = Root;\n const SBodyWrapper = Box;\n const SScrollAreaBar = ScrollArea.Bar;\n const { Children, styles, rows, columns, onResize, $scrollRef } = 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 return sstyled(styles)(\n <SBodyWrapper>\n <ScrollArea\n shadow\n styles={scrollStyles}\n use:left={`${offsetLeftSum}px`}\n use:right={`${offsetRightSum}px`}\n onResize={onResize}\n >\n <ScrollArea.Container ref={$scrollRef}>\n <SBody render={Box}>{columnsInitialized ? this.renderRows(rows) : null}</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"],"file":"Body.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/Body.tsx"],"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","renderRows","column","find","c","value","vars","cssVar","props","children","justifyContent","style","width","length","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","columnsInitialized","reduce","sum","offsetLeftSum","offsetRightSum","offsetSum","holdHeight","Promise","setupRowSizeObserver","scrollStyles","handleScrollAreaResize","handleScrollAreaScroll","renderVirtualizedRows","origin"],"mappings":"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","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 rowPropsLayers: PropsLayer[];\n use: 'primary' | 'secondary';\n uniqueKey: string;\n virtualScroll?: boolean | { tollerance?: number; rowHeight?: number };\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 return <div>{this.renderRows(cell as NestedCells[])}</div>;\n } else {\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 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 key={cell.name} {...props} fixed={cell.fixed} theme={props.theme} use={use} />,\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 };\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 {...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 { Children, styles, rows, columns, $scrollRef, virtualScroll, onResize } = 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={this.handleScrollAreaScroll}\n >\n <ScrollArea.Container ref={$scrollRef}>\n <SBody render={Box}>\n {holdHeight && <SHeightHold hMin={holdHeight} aria-hidden={true} />}\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"],"file":"Body.js"}
|