@semcore/data-table 1.5.3 → 2.1.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 +18 -0
- package/lib/cjs/Body.js +104 -63
- package/lib/cjs/Body.js.map +1 -1
- package/lib/cjs/DataTable.js +183 -144
- package/lib/cjs/DataTable.js.map +1 -1
- package/lib/cjs/Head.js +16 -9
- package/lib/cjs/Head.js.map +1 -1
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/style/data-table.shadow.css +1 -1
- package/lib/cjs/types.js +4 -0
- package/lib/cjs/types.js.map +1 -0
- package/lib/cjs/utils.js +26 -26
- package/lib/cjs/utils.js.map +1 -1
- package/lib/es6/Body.js +107 -64
- package/lib/es6/Body.js.map +1 -1
- package/lib/es6/DataTable.js +185 -142
- package/lib/es6/DataTable.js.map +1 -1
- package/lib/es6/Head.js +17 -9
- package/lib/es6/Head.js.map +1 -1
- package/lib/es6/index.js.map +1 -1
- package/lib/es6/style/data-table.shadow.css +1 -1
- package/lib/es6/types.js +2 -0
- package/lib/es6/types.js.map +1 -0
- package/lib/es6/utils.js +20 -24
- package/lib/es6/utils.js.map +1 -1
- package/package.json +19 -3
- package/src/Body.tsx +136 -0
- package/src/DataTable.tsx +428 -0
- package/src/{Head.jsx → Head.tsx} +29 -11
- package/src/{index.js → index.ts} +0 -0
- package/src/style/data-table.shadow.css +1 -1
- package/src/types.ts +54 -0
- package/src/utils.ts +55 -0
- package/lib/types/index.d.ts +0 -99
- package/src/Body.jsx +0 -118
- package/src/DataTable.jsx +0 -283
- package/src/index.d.ts +0 -99
- package/src/utils.js +0 -54
package/lib/cjs/Head.js
CHANGED
|
@@ -85,14 +85,14 @@ var Head = /*#__PURE__*/function (_Component) {
|
|
|
85
85
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
86
86
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "columns", []);
|
|
87
87
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "bindHandlerSortClick", function (name) {
|
|
88
|
-
return function (
|
|
89
|
-
_this.asProps.$onSortClick(name,
|
|
88
|
+
return function (event) {
|
|
89
|
+
_this.asProps.$onSortClick(name, event);
|
|
90
90
|
};
|
|
91
91
|
});
|
|
92
92
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "bindHandlerKeyDown", function (name) {
|
|
93
|
-
return function (
|
|
94
|
-
if (
|
|
95
|
-
_this.asProps.$onSortClick(name,
|
|
93
|
+
return function (event) {
|
|
94
|
+
if (event.code === 'Enter') {
|
|
95
|
+
_this.asProps.$onSortClick(name, event);
|
|
96
96
|
}
|
|
97
97
|
};
|
|
98
98
|
});
|
|
@@ -111,7 +111,7 @@ var Head = /*#__PURE__*/function (_Component) {
|
|
|
111
111
|
}, {
|
|
112
112
|
key: "renderColumn",
|
|
113
113
|
value: function renderColumn(column, width) {
|
|
114
|
-
var _ref2,
|
|
114
|
+
var _ref2, _column$columns;
|
|
115
115
|
|
|
116
116
|
var _this$asProps = this.asProps,
|
|
117
117
|
styles = _this$asProps.styles,
|
|
@@ -120,7 +120,7 @@ var Head = /*#__PURE__*/function (_Component) {
|
|
|
120
120
|
var SColumn = _flexBox.Flex;
|
|
121
121
|
var SHead = _flexBox.Box;
|
|
122
122
|
var SSortIcon = SORTING_ICON[column.sortDirection];
|
|
123
|
-
var isGroup =
|
|
123
|
+
var isGroup = ((_column$columns = column.columns) === null || _column$columns === void 0 ? void 0 : _column$columns.length) > 0;
|
|
124
124
|
var cSize = isGroup ? (0, _utils.flattenColumns)(column.columns).length : 1;
|
|
125
125
|
|
|
126
126
|
var _getFixedStyle = (0, _utils.getFixedStyle)(column, this.columns),
|
|
@@ -128,7 +128,13 @@ var Head = /*#__PURE__*/function (_Component) {
|
|
|
128
128
|
name = _getFixedStyle2[0],
|
|
129
129
|
value = _getFixedStyle2[1];
|
|
130
130
|
|
|
131
|
-
var style = _objectSpread(
|
|
131
|
+
var style = _objectSpread({
|
|
132
|
+
flexBasis: column.props.flex === undefined && "".concat(width * cSize, "%")
|
|
133
|
+
}, column.props.style);
|
|
134
|
+
|
|
135
|
+
if (name !== undefined && value !== undefined) {
|
|
136
|
+
style[name] = value;
|
|
137
|
+
}
|
|
132
138
|
|
|
133
139
|
return _ref2 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SColumn, _ref2.cn("SColumn", _objectSpread(_objectSpread({
|
|
134
140
|
"key": column.name,
|
|
@@ -154,7 +160,7 @@ var Head = /*#__PURE__*/function (_Component) {
|
|
|
154
160
|
}, {
|
|
155
161
|
key: "render",
|
|
156
162
|
value: function render() {
|
|
157
|
-
var _ref = this
|
|
163
|
+
var _ref = this.asProps,
|
|
158
164
|
_ref3;
|
|
159
165
|
|
|
160
166
|
var SHead = _flexBox.Box;
|
|
@@ -191,6 +197,7 @@ var Head = /*#__PURE__*/function (_Component) {
|
|
|
191
197
|
return Head;
|
|
192
198
|
}(_core.Component);
|
|
193
199
|
|
|
200
|
+
(0, _defineProperty2["default"])(Head, "displayName", void 0);
|
|
194
201
|
var _default = Head;
|
|
195
202
|
exports["default"] = _default;
|
|
196
203
|
//# sourceMappingURL=Head.js.map
|
package/lib/cjs/Head.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Head.
|
|
1
|
+
{"version":3,"sources":["../../src/Head.tsx"],"names":["SORTING_ICON","desc","SortDesc","asc","SortAsc","Head","name","event","asProps","$onSortClick","code","columns","width","map","column","renderColumn","styles","use","hidden","SColumn","Flex","SHead","Box","SSortIcon","sortDirection","isGroup","length","cSize","value","style","flexBasis","props","flex","undefined","fixed","resizable","sortable","active","onClick","bindHandlerSortClick","onKeyDown","bindHandlerKeyDown","children","renderColumns","Children","columnsChildren","onResize","$scrollRef","sticky","SHeadWrapper","offsetLeftSum","offsetRightSum","logger","warn","displayName","scrollStyles","origin","Component"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { Box, Flex } from '@semcore/flex-box';\nimport ScrollArea from '@semcore/scroll-area';\nimport SortDesc from '@semcore/icon/SortDesc/m';\nimport SortAsc from '@semcore/icon/SortAsc/m';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport { flattenColumns, getFixedStyle, getScrollOffsetValue } from './utils';\nimport type { Column } from './types';\nimport logger from '@semcore/utils/lib/logger';\nimport type ResizeObserverCallback from 'resize-observer-polyfill';\n\nimport scrollStyles from './style/scroll-area.shadow.css';\n\nconst SORTING_ICON = {\n desc: SortDesc,\n asc: SortAsc,\n} as const;\n\ntype AsProps = {\n $onSortClick: (name: string, event: React.MouseEvent | React.KeyboardEvent) => void;\n $scrollRef: (instance: unknown) => void;\n use: 'primary' | 'secondary';\n columnsChildren: Column[];\n onResize: ResizeObserverCallback;\n sticky: boolean;\n ['data-ui-name']: string;\n};\n\nclass Head extends Component<AsProps> {\n columns: Column[] = [];\n\n static displayName: string;\n\n bindHandlerSortClick = (name: string) => (event: React.MouseEvent) => {\n this.asProps.$onSortClick(name, event);\n };\n\n bindHandlerKeyDown = (name: string) => (event: React.KeyboardEvent) => {\n if (event.code === 'Enter') {\n this.asProps.$onSortClick(name, event);\n }\n };\n\n renderColumns(columns: Column[], width: number) {\n return columns.map((column) => this.renderColumn(column, width));\n }\n\n renderColumn(column: Column, width: number) {\n const { styles, use, hidden } = this.asProps;\n const SColumn = Flex;\n const SHead = Box;\n const SSortIcon = SORTING_ICON[column.sortDirection];\n const isGroup = column.columns?.length > 0;\n const cSize = isGroup ? flattenColumns(column.columns).length : 1;\n const [name, value] = getFixedStyle(column, this.columns);\n\n const style = {\n flexBasis: column.props.flex === undefined && `${width * cSize}%`,\n ...column.props.style,\n };\n\n if (name !== undefined && value !== undefined) {\n style[name] = value;\n }\n\n return sstyled(styles)(\n <SColumn\n key={column.name}\n use={use}\n fixed={column.fixed}\n resizable={column.resizable}\n sortable={column.sortable}\n active={column.active}\n group={isGroup}\n tabIndex={column.sortable && 0}\n {...column.props}\n onClick={callAllEventHandlers(\n column.props.onClick,\n column.sortable ? this.bindHandlerSortClick(column.name) : undefined,\n )}\n onKeyDown={callAllEventHandlers(\n column.props.onKeyDown,\n column.sortable ? this.bindHandlerKeyDown(column.name) : undefined,\n )}\n style={style}\n hidden={hidden}\n >\n {isGroup ? (\n <>\n <SColumn groupHead use={use}>\n <div>{column.props.children}</div>\n </SColumn>\n <SHead>{this.renderColumns(column.columns, 100 / cSize)}</SHead>\n </>\n ) : (\n <>\n <div>{column.props.children}</div>\n {column.sortable ? <SSortIcon active={column.active} /> : null}\n </>\n )}\n </SColumn>,\n );\n }\n\n render() {\n const SHead = Root;\n const { Children, styles, columnsChildren, onResize, $scrollRef, sticky } = this.asProps;\n const SHeadWrapper = Box;\n\n this.columns = flattenColumns(columnsChildren);\n\n const [offsetLeftSum, offsetRightSum] = getScrollOffsetValue(this.columns);\n\n logger.warn(\n sticky,\n \"'sticky' property is deprecated, use '<Sticky/>' wrapper\",\n this.asProps['data-ui-name'] || Head.displayName,\n );\n\n return sstyled(styles)(\n <SHeadWrapper sticky={sticky}>\n <ScrollArea\n styles={scrollStyles}\n use:left={`${offsetLeftSum}px`}\n use:right={`${offsetRightSum}px`}\n shadow\n onResize={onResize}\n >\n <ScrollArea.Container ref={$scrollRef}>\n <SHead render={Box}>\n {this.renderColumns(columnsChildren, 100 / this.columns.length)}\n </SHead>\n </ScrollArea.Container>\n </ScrollArea>\n {Children.origin}\n </SHeadWrapper>,\n );\n }\n}\n\nexport default Head;\n"],"file":"Head.js"}
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export { default } from './DataTable';\nexport * from './DataTable';\n"],"file":"index.js"}
|
package/lib/cjs/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/types.ts"],"names":[],"mappings":";;AACA","sourcesContent":["import React from 'react';\nimport { ROW_GROUP } from './DataTable';\n\nexport type PseudoChildPropsGetter = (\n props: { [propName: string]: unknown },\n rowData: { [columnName: string]: unknown },\n index: number,\n) => { [propName: string]: unknown };\nexport type PropsLayer = {\n childrenPropsGetter?: PseudoChildPropsGetter;\n [propName: string]: unknown;\n};\n\nexport type SortDirection = 'asc' | 'desc';\nexport type Column<\n Props extends { [propName: string]: unknown } = { [propName: string]: unknown },\n> = {\n name: string;\n active: boolean;\n width: number;\n fixed?: 'left' | 'right';\n resizable?: boolean;\n sortable?: boolean | SortDirection;\n sortDirection: SortDirection;\n cssVar: string | string[];\n data?: unknown;\n props: {\n name: string;\n } & Partial<{\n onClick: (event: React.MouseEvent) => void;\n onKeyDown: (event: React.KeyboardEvent) => void;\n ref: React.RefObject<HTMLElement>;\n style: React.CSSProperties;\n fixed: 'left' | 'right';\n children: React.ReactNode[];\n\n resizable: boolean;\n sortable: boolean | SortDirection;\n sortDirection: SortDirection;\n }> &\n Props;\n columns: Column[];\n};\nexport type Cell = Pick<Column, 'name' | 'cssVar' | 'fixed' | 'data'> & {\n cellPropsLayers: PropsLayer[];\n};\nexport type RowData<\n Data extends { [columnName: string]: unknown } = { [columnName: string]: unknown },\n> = Data &\n Partial<{\n name: string;\n [ROW_GROUP]: RowData[];\n }>;\nexport type NestedCells = (Cell | NestedCells)[] & { flatRowData?: RowData };\n"],"file":"types.js"}
|
package/lib/cjs/utils.js
CHANGED
|
@@ -3,48 +3,46 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.flattenColumns =
|
|
7
|
-
exports.getFixedStyle = getFixedStyle;
|
|
8
|
-
exports.getScrollOffsetValue = getScrollOffsetValue;
|
|
6
|
+
exports.getScrollOffsetValue = exports.getFixedStyle = exports.flattenColumns = void 0;
|
|
9
7
|
|
|
10
|
-
function getScrollOffsetValue(columns) {
|
|
11
|
-
return columns.reduce(function (acc,
|
|
12
|
-
if (
|
|
13
|
-
acc[0] +=
|
|
8
|
+
var getScrollOffsetValue = function getScrollOffsetValue(columns) {
|
|
9
|
+
return columns.reduce(function (acc, column) {
|
|
10
|
+
if (column.fixed === 'left') {
|
|
11
|
+
acc[0] += column.width;
|
|
14
12
|
}
|
|
15
13
|
|
|
16
|
-
if (
|
|
17
|
-
acc[1] +=
|
|
14
|
+
if (column.fixed === 'right') {
|
|
15
|
+
acc[1] += column.width;
|
|
18
16
|
}
|
|
19
17
|
|
|
20
18
|
return acc;
|
|
21
19
|
}, [0, 0]);
|
|
22
|
-
}
|
|
20
|
+
};
|
|
23
21
|
|
|
24
|
-
|
|
25
|
-
return columns.reduce(function (acc, c) {
|
|
26
|
-
var columns = [c];
|
|
27
|
-
|
|
28
|
-
if (c.columns) {
|
|
29
|
-
columns = flattenColumns(c.columns);
|
|
30
|
-
}
|
|
22
|
+
exports.getScrollOffsetValue = getScrollOffsetValue;
|
|
31
23
|
|
|
24
|
+
var flattenColumns = function flattenColumns(columns) {
|
|
25
|
+
return columns.reduce(function (acc, column) {
|
|
26
|
+
var hasNestedColumns = 'columns' in column && column.columns.length > 0;
|
|
27
|
+
var columns = hasNestedColumns ? flattenColumns(column.columns) : [column];
|
|
32
28
|
acc = acc.concat(columns);
|
|
33
29
|
return acc;
|
|
34
30
|
}, []);
|
|
35
|
-
}
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
exports.flattenColumns = flattenColumns;
|
|
36
34
|
|
|
37
|
-
function getFixedStyle(
|
|
38
|
-
var side =
|
|
35
|
+
var getFixedStyle = function getFixedStyle(cell, columns) {
|
|
36
|
+
var side = cell.fixed;
|
|
39
37
|
if (!side) return [undefined, undefined];
|
|
40
|
-
var names =
|
|
38
|
+
var names = cell.name.split('/');
|
|
41
39
|
var nameSideMap = {
|
|
42
40
|
left: names[0],
|
|
43
41
|
right: names[names.length - 1]
|
|
44
42
|
};
|
|
45
43
|
var name = nameSideMap[side];
|
|
46
|
-
var index = columns.findIndex(function (
|
|
47
|
-
return
|
|
44
|
+
var index = columns.findIndex(function (column) {
|
|
45
|
+
return column.name === name;
|
|
48
46
|
});
|
|
49
47
|
if (index === -1) return [undefined, undefined];
|
|
50
48
|
var startIndexSideMap = {
|
|
@@ -57,9 +55,11 @@ function getFixedStyle(column, columns) {
|
|
|
57
55
|
};
|
|
58
56
|
var columnsFixed = columns.slice(startIndexSideMap[side], endIndexSideMap[side]);
|
|
59
57
|
if (columnsFixed.length < 1) return [side, 0];
|
|
60
|
-
var vars = columnsFixed.map(function (
|
|
61
|
-
return "var(--".concat(
|
|
58
|
+
var vars = columnsFixed.map(function (column) {
|
|
59
|
+
return "var(--".concat(column.name, "_width)");
|
|
62
60
|
});
|
|
63
61
|
return [side, vars.length === 1 ? vars[0] : "calc(".concat(vars.join(' + '), ")")];
|
|
64
|
-
}
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
exports.getFixedStyle = getFixedStyle;
|
|
65
65
|
//# sourceMappingURL=utils.js.map
|
package/lib/cjs/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils.
|
|
1
|
+
{"version":3,"sources":["../../src/utils.ts"],"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"],"mappings":"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","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"],"file":"utils.js"}
|
package/lib/es6/Body.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
4
|
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
5
5
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
6
6
|
import _inherits from "@babel/runtime/helpers/inherits";
|
|
@@ -8,13 +8,19 @@ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstruct
|
|
|
8
8
|
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
9
9
|
import { sstyled as _sstyled } from "@semcore/core";
|
|
10
10
|
import { assignProps as _assignProps } from "@semcore/core";
|
|
11
|
-
var _excluded = ["
|
|
12
|
-
_excluded2 = ["
|
|
11
|
+
var _excluded = ["childrenPropsGetter"],
|
|
12
|
+
_excluded2 = ["childrenPropsGetter"];
|
|
13
13
|
|
|
14
14
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
15
15
|
|
|
16
16
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
17
17
|
|
|
18
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
19
|
+
|
|
20
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
21
|
+
|
|
22
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
23
|
+
|
|
18
24
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
19
25
|
|
|
20
26
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
@@ -40,13 +46,14 @@ _sstyled.insert(
|
|
|
40
46
|
"--left": "--left_1jfuf14",
|
|
41
47
|
"--right": "--right_1jfuf14"
|
|
42
48
|
});
|
|
49
|
+
var testEnv = process.env.NODE_ENV === 'test';
|
|
43
50
|
|
|
44
|
-
function getCellsByColumn(
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
return
|
|
48
|
-
}
|
|
49
|
-
}
|
|
51
|
+
var getCellsByColumn = function getCellsByColumn(cells) {
|
|
52
|
+
var flattenCells = cells.flat(20);
|
|
53
|
+
return Object.fromEntries(flattenCells.map(function (cell) {
|
|
54
|
+
return [cell.name, cell.data];
|
|
55
|
+
}));
|
|
56
|
+
};
|
|
50
57
|
|
|
51
58
|
var Body = /*#__PURE__*/function (_Component) {
|
|
52
59
|
_inherits(Body, _Component);
|
|
@@ -60,40 +67,59 @@ var Body = /*#__PURE__*/function (_Component) {
|
|
|
60
67
|
}
|
|
61
68
|
|
|
62
69
|
_createClass(Body, [{
|
|
63
|
-
key: "
|
|
64
|
-
value: function
|
|
65
|
-
var
|
|
70
|
+
key: "renderRow",
|
|
71
|
+
value: function renderRow(cells, index) {
|
|
72
|
+
var _ref2;
|
|
66
73
|
|
|
67
74
|
var SRow = Box;
|
|
68
75
|
var _this$asProps = this.asProps,
|
|
69
76
|
styles = _this$asProps.styles,
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
77
|
+
rowPropsLayers = _this$asProps.rowPropsLayers;
|
|
78
|
+
var cellsByColumn = cells.flatRowData || getCellsByColumn(cells);
|
|
79
|
+
var props = {
|
|
80
|
+
children: this.renderCells(cells, cellsByColumn, index),
|
|
81
|
+
theme: undefined,
|
|
82
|
+
active: undefined
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
var _iterator = _createForOfIteratorHelper(rowPropsLayers),
|
|
86
|
+
_step;
|
|
87
|
+
|
|
88
|
+
try {
|
|
89
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
90
|
+
var rowPropsLayer = _step.value;
|
|
91
|
+
|
|
92
|
+
var _rowPropsLayer$childr = rowPropsLayer.childrenPropsGetter,
|
|
93
|
+
childrenPropsGetter = _rowPropsLayer$childr === void 0 ? function (p) {
|
|
78
94
|
return p;
|
|
79
|
-
} :
|
|
80
|
-
other = _objectWithoutProperties(
|
|
81
|
-
|
|
82
|
-
var propsRow = assignProps(other,
|
|
83
|
-
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
95
|
+
} : _rowPropsLayer$childr,
|
|
96
|
+
other = _objectWithoutProperties(rowPropsLayer, _excluded);
|
|
97
|
+
|
|
98
|
+
var propsRow = assignProps(other, props);
|
|
99
|
+
props = assignProps(childrenPropsGetter(propsRow, cellsByColumn, index), propsRow);
|
|
100
|
+
}
|
|
101
|
+
} catch (err) {
|
|
102
|
+
_iterator.e(err);
|
|
103
|
+
} finally {
|
|
104
|
+
_iterator.f();
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
return _ref2 = sstyled(styles), /*#__PURE__*/React.createElement(SRow, _ref2.cn("SRow", _objectSpread({
|
|
108
|
+
"key": index
|
|
109
|
+
}, props)));
|
|
110
|
+
}
|
|
111
|
+
}, {
|
|
112
|
+
key: "renderRows",
|
|
113
|
+
value: function renderRows(rows) {
|
|
114
|
+
var _this = this;
|
|
115
|
+
|
|
116
|
+
return rows.map(function (cells, index) {
|
|
117
|
+
return _this.renderRow(cells, index);
|
|
92
118
|
});
|
|
93
119
|
}
|
|
94
120
|
}, {
|
|
95
121
|
key: "renderCells",
|
|
96
|
-
value: function renderCells(
|
|
122
|
+
value: function renderCells(cells, cellsByColumn, index) {
|
|
97
123
|
var _this2 = this;
|
|
98
124
|
|
|
99
125
|
var SCell = Flex;
|
|
@@ -101,11 +127,11 @@ var Body = /*#__PURE__*/function (_Component) {
|
|
|
101
127
|
styles = _this$asProps2.styles,
|
|
102
128
|
columns = _this$asProps2.columns,
|
|
103
129
|
use = _this$asProps2.use;
|
|
104
|
-
return
|
|
130
|
+
return cells.map(function (cell) {
|
|
105
131
|
if (Array.isArray(cell)) {
|
|
106
|
-
|
|
132
|
+
return /*#__PURE__*/React.createElement("div", null, _this2.renderRows(cell));
|
|
107
133
|
} else {
|
|
108
|
-
var _ref3, _column$props,
|
|
134
|
+
var _ref3, _column$props, _props;
|
|
109
135
|
|
|
110
136
|
var column = columns.find(function (c) {
|
|
111
137
|
return c.name === cell.name;
|
|
@@ -116,40 +142,56 @@ var Body = /*#__PURE__*/function (_Component) {
|
|
|
116
142
|
name = _getFixedStyle2[0],
|
|
117
143
|
value = _getFixedStyle2[1];
|
|
118
144
|
|
|
119
|
-
var vars = (Array.isArray(cell.cssVar) ? cell.cssVar : [cell.cssVar]).map(function (
|
|
120
|
-
return "var(".concat(
|
|
145
|
+
var vars = (Array.isArray(cell.cssVar) ? cell.cssVar : [cell.cssVar]).map(function (name) {
|
|
146
|
+
return "var(".concat(name, ")");
|
|
121
147
|
});
|
|
122
|
-
var props = (
|
|
123
|
-
var _ref6$getCellProps = _ref6.getCellProps,
|
|
124
|
-
getCellProps = _ref6$getCellProps === void 0 ? function (p) {
|
|
125
|
-
return p;
|
|
126
|
-
} : _ref6$getCellProps,
|
|
127
|
-
other = _objectWithoutProperties(_ref6, _excluded2);
|
|
128
|
-
|
|
129
|
-
var propsCell = assignProps(other, acc);
|
|
130
|
-
return assignProps(getCellProps(propsCell, cellsByColumn, index), propsCell);
|
|
131
|
-
}, {
|
|
148
|
+
var props = (_props = {
|
|
132
149
|
name: cell.name,
|
|
133
|
-
children: cell.data
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
});
|
|
137
|
-
|
|
150
|
+
children: /*#__PURE__*/React.createElement(React.Fragment, null, cell.data)
|
|
151
|
+
}, _defineProperty(_props, 'data-data', JSON.stringify(cell.data)), _defineProperty(_props, "justifyContent", column === null || column === void 0 ? void 0 : (_column$props = column.props) === null || _column$props === void 0 ? void 0 : _column$props.justifyContent), _defineProperty(_props, "style", {
|
|
152
|
+
width: vars.length === 1 ? vars[0] : "calc(".concat(vars.join(' + '), ")")
|
|
153
|
+
}), _props);
|
|
154
|
+
|
|
155
|
+
if (name !== undefined && value !== undefined) {
|
|
156
|
+
props.style[name] = value;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
var _iterator2 = _createForOfIteratorHelper(cell.cellPropsLayers || []),
|
|
160
|
+
_step2;
|
|
161
|
+
|
|
162
|
+
try {
|
|
163
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
164
|
+
var cellPropLayer = _step2.value;
|
|
165
|
+
|
|
166
|
+
var _cellPropLayer$childr = cellPropLayer.childrenPropsGetter,
|
|
167
|
+
childrenPropsGetter = _cellPropLayer$childr === void 0 ? function (p) {
|
|
168
|
+
return p;
|
|
169
|
+
} : _cellPropLayer$childr,
|
|
170
|
+
other = _objectWithoutProperties(cellPropLayer, _excluded2);
|
|
171
|
+
|
|
172
|
+
var propsCell = assignProps(other, props);
|
|
173
|
+
props = assignProps(childrenPropsGetter(propsCell, cellsByColumn, index), propsCell);
|
|
174
|
+
}
|
|
175
|
+
} catch (err) {
|
|
176
|
+
_iterator2.e(err);
|
|
177
|
+
} finally {
|
|
178
|
+
_iterator2.f();
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
return _ref3 = sstyled(styles), /*#__PURE__*/React.createElement(SCell, _ref3.cn("SCell", _objectSpread(_objectSpread({
|
|
138
182
|
"key": cell.name
|
|
139
183
|
}, props), {}, {
|
|
140
184
|
"fixed": cell.fixed,
|
|
141
185
|
"theme": props.theme,
|
|
142
186
|
"use": use
|
|
143
|
-
})))
|
|
187
|
+
})));
|
|
144
188
|
}
|
|
145
|
-
|
|
146
|
-
return acc;
|
|
147
189
|
}, []);
|
|
148
190
|
}
|
|
149
191
|
}, {
|
|
150
192
|
key: "render",
|
|
151
193
|
value: function render() {
|
|
152
|
-
var _ref = this
|
|
194
|
+
var _ref = this.asProps,
|
|
153
195
|
_ref4;
|
|
154
196
|
|
|
155
197
|
var SBody = Box;
|
|
@@ -160,11 +202,12 @@ var Body = /*#__PURE__*/function (_Component) {
|
|
|
160
202
|
styles = _this$asProps3.styles,
|
|
161
203
|
rows = _this$asProps3.rows,
|
|
162
204
|
columns = _this$asProps3.columns,
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
var
|
|
166
|
-
|
|
167
|
-
|
|
205
|
+
onResize = _this$asProps3.onResize,
|
|
206
|
+
$scrollRef = _this$asProps3.$scrollRef;
|
|
207
|
+
var columnsInitialized = columns.reduce(function (sum, _ref5) {
|
|
208
|
+
var width = _ref5.width;
|
|
209
|
+
return sum + width;
|
|
210
|
+
}, 0) > 0 || testEnv;
|
|
168
211
|
|
|
169
212
|
var _getScrollOffsetValue = getScrollOffsetValue(columns),
|
|
170
213
|
_getScrollOffsetValue2 = _slicedToArray(_getScrollOffsetValue, 2),
|
|
@@ -180,7 +223,7 @@ var Body = /*#__PURE__*/function (_Component) {
|
|
|
180
223
|
"onResize": onResize
|
|
181
224
|
}), /*#__PURE__*/React.createElement(ScrollArea.Container, {
|
|
182
225
|
ref: $scrollRef
|
|
183
|
-
}, /*#__PURE__*/React.createElement(SBody, _ref4.cn("SBody", _objectSpread({}, _assignProps({}, _ref))),
|
|
226
|
+
}, /*#__PURE__*/React.createElement(SBody, _ref4.cn("SBody", _objectSpread({}, _assignProps({}, _ref))), columnsInitialized ? this.renderRows(rows) : null)), /*#__PURE__*/React.createElement(SScrollAreaBar, _ref4.cn("SScrollAreaBar", {
|
|
184
227
|
"orientation": "horizontal",
|
|
185
228
|
"left": "".concat(offsetLeftSum, "px"),
|
|
186
229
|
"right": "".concat(offsetRightSum, "px"),
|
package/lib/es6/Body.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Body.jsx"],"names":["React","Component","sstyled","Root","Box","Flex","ScrollArea","getFixedStyle","getScrollOffsetValue","assignProps","getCellsByColumn","row","reduce","acc","cell","name","Array","isArray","concat","data","Body","rows","SRow","asProps","styles","$propsRow","map","index","cellsByColumn","_row","props","getRowProps","p","other","propsRow","children","renderCells","theme","active","SCell","columns","use","renderRows","column","find","c","value","vars","cssVar","n","rendersCell","getCellProps","propsCell","justifyContent","style","length","join","push","fixed","SBody","SBodyWrapper","SScrollAreaBar","Bar","Children","$scrollRef","onResize","initializeColumns","width","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 } from '@semcore/flex-box';\nimport ScrollArea from '@semcore/scroll-area';\nimport { getFixedStyle, getScrollOffsetValue } from './utils';\nimport assignProps from '@semcore/utils/lib/assignProps';\n\nimport scrollStyles from './style/scroll-area.shadow.css';\n\nfunction getCellsByColumn(row) {\n return row.reduce((acc, cell) => {\n acc[cell.name] = acc[cell.name]\n ? Array.isArray(acc[cell.name])\n ? acc[cell.name].concat(cell.data)\n : [acc[cell.name], cell.data]\n : cell.data;\n return acc;\n }, {});\n}\n\nclass Body extends Component {\n renderRows(rows) {\n const SRow = Box;\n const { styles, $propsRow } = this.asProps;\n\n return rows.map((row, index) => {\n const cellsByColumn = row._row || getCellsByColumn(row);\n const props = $propsRow.reduce(\n (acc, { getRowProps = (p) => p, ...other }) => {\n const propsRow = assignProps(other, acc);\n return assignProps(getRowProps(propsRow, cellsByColumn, index), propsRow);\n },\n {\n children: this.renderCells(row, cellsByColumn, index),\n },\n );\n return sstyled(styles)(\n <SRow key={index} theme={props.theme} active={props.active} {...props} />,\n );\n });\n }\n\n renderCells(row, cellsByColumn, index) {\n const SCell = Flex;\n const { styles, columns, use } = this.asProps;\n return row.reduce((acc, cell) => {\n if (Array.isArray(cell)) {\n acc = acc.concat(<div>{this.renderRows(cell)}</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 (n) => `var(${n})`,\n );\n const props = (cell.rendersCell || []).reduce(\n (acc, { getCellProps = (p) => p, ...other }) => {\n const propsCell = assignProps(other, acc);\n return assignProps(getCellProps(propsCell, cellsByColumn, index), propsCell);\n },\n {\n name: cell.name,\n children: cell.data,\n justifyContent: column?.props?.justifyContent,\n style: {\n [name]: value,\n width: vars.length === 1 ? vars[0] : `calc(${vars.join(' + ')})`,\n },\n },\n );\n\n acc.push(\n sstyled(styles)(\n <SCell key={cell.name} {...props} fixed={cell.fixed} theme={props.theme} use={use} />,\n ),\n );\n }\n return acc;\n }, []);\n }\n\n render() {\n const SBody = Root;\n const SBodyWrapper = Box;\n const SScrollAreaBar = ScrollArea.Bar;\n const { Children, styles, rows, columns, $scrollRef, onResize } = this.asProps;\n\n const initializeColumns = !!columns.reduce((acc, c) => acc + c.width, 0);\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}>{initializeColumns ? 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","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"}
|