@semcore/data-table 2.0.0 → 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 +6 -0
- package/lib/cjs/Body.js +101 -62
- package/lib/cjs/Body.js.map +1 -1
- package/lib/cjs/DataTable.js +148 -109
- package/lib/cjs/DataTable.js.map +1 -1
- package/lib/cjs/Head.js +15 -8
- package/lib/cjs/Head.js.map +1 -1
- package/lib/cjs/index.js.map +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 +104 -63
- package/lib/es6/Body.js.map +1 -1
- package/lib/es6/DataTable.js +150 -107
- package/lib/es6/DataTable.js.map +1 -1
- package/lib/es6/Head.js +16 -8
- package/lib/es6/Head.js.map +1 -1
- package/lib/es6/index.js.map +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 +1 -1
- 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/types.ts +54 -0
- package/src/utils.ts +55 -0
- package/lib/types/index.d.ts +0 -99
- package/src/Body.jsx +0 -119
- package/src/DataTable.jsx +0 -283
- package/src/index.d.ts +0 -99
- package/src/utils.js +0 -54
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; } }
|
|
@@ -42,12 +48,12 @@ _sstyled.insert(
|
|
|
42
48
|
});
|
|
43
49
|
var testEnv = process.env.NODE_ENV === 'test';
|
|
44
50
|
|
|
45
|
-
function getCellsByColumn(
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
return
|
|
49
|
-
}
|
|
50
|
-
}
|
|
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
|
+
};
|
|
51
57
|
|
|
52
58
|
var Body = /*#__PURE__*/function (_Component) {
|
|
53
59
|
_inherits(Body, _Component);
|
|
@@ -61,40 +67,59 @@ var Body = /*#__PURE__*/function (_Component) {
|
|
|
61
67
|
}
|
|
62
68
|
|
|
63
69
|
_createClass(Body, [{
|
|
64
|
-
key: "
|
|
65
|
-
value: function
|
|
66
|
-
var
|
|
70
|
+
key: "renderRow",
|
|
71
|
+
value: function renderRow(cells, index) {
|
|
72
|
+
var _ref2;
|
|
67
73
|
|
|
68
74
|
var SRow = Box;
|
|
69
75
|
var _this$asProps = this.asProps,
|
|
70
76
|
styles = _this$asProps.styles,
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
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) {
|
|
79
94
|
return p;
|
|
80
|
-
} :
|
|
81
|
-
other = _objectWithoutProperties(
|
|
82
|
-
|
|
83
|
-
var propsRow = assignProps(other,
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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);
|
|
93
118
|
});
|
|
94
119
|
}
|
|
95
120
|
}, {
|
|
96
121
|
key: "renderCells",
|
|
97
|
-
value: function renderCells(
|
|
122
|
+
value: function renderCells(cells, cellsByColumn, index) {
|
|
98
123
|
var _this2 = this;
|
|
99
124
|
|
|
100
125
|
var SCell = Flex;
|
|
@@ -102,11 +127,11 @@ var Body = /*#__PURE__*/function (_Component) {
|
|
|
102
127
|
styles = _this$asProps2.styles,
|
|
103
128
|
columns = _this$asProps2.columns,
|
|
104
129
|
use = _this$asProps2.use;
|
|
105
|
-
return
|
|
130
|
+
return cells.map(function (cell) {
|
|
106
131
|
if (Array.isArray(cell)) {
|
|
107
|
-
|
|
132
|
+
return /*#__PURE__*/React.createElement("div", null, _this2.renderRows(cell));
|
|
108
133
|
} else {
|
|
109
|
-
var _ref3, _column$props,
|
|
134
|
+
var _ref3, _column$props, _props;
|
|
110
135
|
|
|
111
136
|
var column = columns.find(function (c) {
|
|
112
137
|
return c.name === cell.name;
|
|
@@ -117,34 +142,50 @@ var Body = /*#__PURE__*/function (_Component) {
|
|
|
117
142
|
name = _getFixedStyle2[0],
|
|
118
143
|
value = _getFixedStyle2[1];
|
|
119
144
|
|
|
120
|
-
var vars = (Array.isArray(cell.cssVar) ? cell.cssVar : [cell.cssVar]).map(function (
|
|
121
|
-
return "var(".concat(
|
|
145
|
+
var vars = (Array.isArray(cell.cssVar) ? cell.cssVar : [cell.cssVar]).map(function (name) {
|
|
146
|
+
return "var(".concat(name, ")");
|
|
122
147
|
});
|
|
123
|
-
var props = (
|
|
124
|
-
var _ref6$getCellProps = _ref6.getCellProps,
|
|
125
|
-
getCellProps = _ref6$getCellProps === void 0 ? function (p) {
|
|
126
|
-
return p;
|
|
127
|
-
} : _ref6$getCellProps,
|
|
128
|
-
other = _objectWithoutProperties(_ref6, _excluded2);
|
|
129
|
-
|
|
130
|
-
var propsCell = assignProps(other, acc);
|
|
131
|
-
return assignProps(getCellProps(propsCell, cellsByColumn, index), propsCell);
|
|
132
|
-
}, {
|
|
148
|
+
var props = (_props = {
|
|
133
149
|
name: cell.name,
|
|
134
|
-
children: cell.data
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
});
|
|
138
|
-
|
|
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({
|
|
139
182
|
"key": cell.name
|
|
140
183
|
}, props), {}, {
|
|
141
184
|
"fixed": cell.fixed,
|
|
142
185
|
"theme": props.theme,
|
|
143
186
|
"use": use
|
|
144
|
-
})))
|
|
187
|
+
})));
|
|
145
188
|
}
|
|
146
|
-
|
|
147
|
-
return acc;
|
|
148
189
|
}, []);
|
|
149
190
|
}
|
|
150
191
|
}, {
|
|
@@ -161,8 +202,12 @@ var Body = /*#__PURE__*/function (_Component) {
|
|
|
161
202
|
styles = _this$asProps3.styles,
|
|
162
203
|
rows = _this$asProps3.rows,
|
|
163
204
|
columns = _this$asProps3.columns,
|
|
164
|
-
|
|
165
|
-
|
|
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;
|
|
166
211
|
|
|
167
212
|
var _getScrollOffsetValue = getScrollOffsetValue(columns),
|
|
168
213
|
_getScrollOffsetValue2 = _slicedToArray(_getScrollOffsetValue, 2),
|
|
@@ -170,10 +215,6 @@ var Body = /*#__PURE__*/function (_Component) {
|
|
|
170
215
|
offsetRightSum = _getScrollOffsetValue2[1];
|
|
171
216
|
|
|
172
217
|
var offsetSum = offsetLeftSum + offsetRightSum;
|
|
173
|
-
var columnsInitialized = columns.reduce(function (sum, _ref7) {
|
|
174
|
-
var width = _ref7.width;
|
|
175
|
-
return sum + width;
|
|
176
|
-
}, 0) > 0 || testEnv;
|
|
177
218
|
return _ref4 = sstyled(styles), /*#__PURE__*/React.createElement(SBodyWrapper, _ref4.cn("SBodyWrapper", {}), /*#__PURE__*/React.createElement(ScrollArea, _ref4.cn("ScrollArea", {
|
|
178
219
|
"shadow": true,
|
|
179
220
|
"styles": scrollStyles,
|
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","testEnv","process","env","NODE_ENV","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","offsetLeftSum","offsetRightSum","offsetSum","columnsInitialized","sum","width","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\nconst testEnv = process.env.NODE_ENV === 'test';\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 [offsetLeftSum, offsetRightSum] = getScrollOffsetValue(columns);\n const offsetSum = offsetLeftSum + offsetRightSum;\n const columnsInitialized = columns.reduce((sum, { width }) => sum + width, 0) > 0 || testEnv;\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","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"}
|