@semcore/data-table 16.0.0-prerelease.17 → 16.0.0-prerelease.18
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/components/Body/Body.js +281 -56
- package/lib/cjs/components/Body/Body.js.map +1 -1
- package/lib/cjs/components/Body/Body.types.js.map +1 -1
- package/lib/cjs/components/Body/Cell.js +57 -37
- package/lib/cjs/components/Body/Cell.js.map +1 -1
- package/lib/cjs/components/Body/Cell.types.js.map +1 -1
- package/lib/cjs/components/Body/Row.js +50 -35
- package/lib/cjs/components/Body/Row.js.map +1 -1
- package/lib/cjs/components/Body/Row.types.js.map +1 -1
- package/lib/cjs/components/Body/style.shadow.css +12 -0
- package/lib/cjs/components/DataTable/DataTable.js +220 -110
- package/lib/cjs/components/DataTable/DataTable.js.map +1 -1
- package/lib/cjs/components/DataTable/DataTable.types.js.map +1 -1
- package/lib/cjs/components/DataTable/dataTable.shadow.css +4 -0
- package/lib/cjs/components/Head/Column.types.js.map +1 -1
- package/lib/cjs/components/Head/Group.js +28 -6
- package/lib/cjs/components/Head/Group.js.map +1 -1
- package/lib/cjs/components/Head/Group.type.js.map +1 -1
- package/lib/cjs/components/Head/Head.js +23 -3
- package/lib/cjs/components/Head/Head.js.map +1 -1
- package/lib/cjs/components/Head/Head.types.js.map +1 -1
- package/lib/cjs/style/scroll-shadows.shadow.css +17 -0
- package/lib/es6/components/Body/Body.js +282 -57
- package/lib/es6/components/Body/Body.js.map +1 -1
- package/lib/es6/components/Body/Body.types.js.map +1 -1
- package/lib/es6/components/Body/Cell.js +57 -37
- package/lib/es6/components/Body/Cell.js.map +1 -1
- package/lib/es6/components/Body/Cell.types.js.map +1 -1
- package/lib/es6/components/Body/Row.js +50 -35
- package/lib/es6/components/Body/Row.js.map +1 -1
- package/lib/es6/components/Body/Row.types.js +1 -1
- package/lib/es6/components/Body/Row.types.js.map +1 -1
- package/lib/es6/components/Body/style.shadow.css +12 -0
- package/lib/es6/components/DataTable/DataTable.js +218 -109
- package/lib/es6/components/DataTable/DataTable.js.map +1 -1
- package/lib/es6/components/DataTable/DataTable.types.js +0 -5
- package/lib/es6/components/DataTable/DataTable.types.js.map +1 -1
- package/lib/es6/components/DataTable/dataTable.shadow.css +4 -0
- package/lib/es6/components/Head/Column.types.js.map +1 -1
- package/lib/es6/components/Head/Group.js +28 -6
- package/lib/es6/components/Head/Group.js.map +1 -1
- package/lib/es6/components/Head/Group.type.js.map +1 -1
- package/lib/es6/components/Head/Head.js +23 -3
- package/lib/es6/components/Head/Head.js.map +1 -1
- package/lib/es6/components/Head/Head.types.js.map +1 -1
- package/lib/es6/style/scroll-shadows.shadow.css +17 -0
- package/lib/esm/components/Body/Body.mjs +266 -55
- package/lib/esm/components/Body/Cell.mjs +50 -32
- package/lib/esm/components/Body/Row.mjs +47 -34
- package/lib/esm/components/DataTable/DataTable.mjs +205 -108
- package/lib/esm/components/Head/Group.mjs +24 -6
- package/lib/esm/components/Head/Head.mjs +21 -3
- package/lib/types/components/Body/Body.types.d.ts +13 -8
- package/lib/types/components/Body/Cell.types.d.ts +3 -0
- package/lib/types/components/Body/Row.types.d.ts +5 -2
- package/lib/types/components/DataTable/DataTable.d.ts +2 -1
- package/lib/types/components/DataTable/DataTable.types.d.ts +39 -2
- package/lib/types/components/Head/Column.types.d.ts +4 -3
- package/lib/types/components/Head/Group.d.ts +5 -1
- package/lib/types/components/Head/Group.type.d.ts +3 -1
- package/lib/types/components/Head/Head.d.ts +91 -4
- package/lib/types/components/Head/Head.types.d.ts +1 -0
- package/package.json +8 -7
|
@@ -5,9 +5,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.ROW_GROUP = exports.DataTable = exports.ACCORDION = void 0;
|
|
9
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
8
|
+
exports.UNIQ_ROW_KEY = exports.ROW_GROUP = exports.DataTable = exports.ACCORDION = void 0;
|
|
10
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
11
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
12
12
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
13
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
@@ -26,27 +26,35 @@ var _findComponent = _interopRequireDefault(require("@semcore/core/lib/utils/fin
|
|
|
26
26
|
var _intergalacticDynamicLocales = require("../../translations/__intergalactic-dynamic-locales");
|
|
27
27
|
var _i18nEnhance = _interopRequireDefault(require("@semcore/core/lib/utils/enhances/i18nEnhance"));
|
|
28
28
|
var _uniqueID = _interopRequireDefault(require("@semcore/core/lib/utils/uniqueID"));
|
|
29
|
-
var _MergedCells = require("../Body/MergedCells");
|
|
30
29
|
var _ref8 = require("@semcore/core/lib/utils/ref");
|
|
31
30
|
var _hasParent = require("@semcore/core/lib/utils/hasParent");
|
|
31
|
+
var _rafTrottle = _interopRequireDefault(require("@semcore/core/lib/utils/rafTrottle"));
|
|
32
32
|
/*__reshadow-styles__:"./dataTable.shadow.css"*/
|
|
33
|
-
var style = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".
|
|
34
|
-
"__SDataTable": "
|
|
35
|
-
"_gridTemplateColumns": "
|
|
36
|
-
"--gridTemplateColumns": "--
|
|
37
|
-
"_gridTemplateAreas": "
|
|
38
|
-
"--gridTemplateAreas": "--
|
|
33
|
+
var style = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".___SDataTable_1rvtk_gg_{display:grid;position:relative;align-items:start;min-width:-moz-fit-content;min-width:fit-content}.___SDataTable_1rvtk_gg_.__gridTemplateColumns_1rvtk_gg_{grid-template-columns:var(--gridTemplateColumns_1rvtk)}.___SDataTable_1rvtk_gg_.__gridTemplateAreas_1rvtk_gg_{grid-template-areas:var(--gridTemplateAreas_1rvtk)}.___SDataTable_1rvtk_gg_.__gridTemplateRows_1rvtk_gg_{grid-template-rows:var(--gridTemplateRows_1rvtk)}" /*__inner_css_end__*/, "1rvtk_gg_") /*__reshadow_css_end__*/, {
|
|
34
|
+
"__SDataTable": "___SDataTable_1rvtk_gg_",
|
|
35
|
+
"_gridTemplateColumns": "__gridTemplateColumns_1rvtk_gg_",
|
|
36
|
+
"--gridTemplateColumns": "--gridTemplateColumns_1rvtk",
|
|
37
|
+
"_gridTemplateAreas": "__gridTemplateAreas_1rvtk_gg_",
|
|
38
|
+
"--gridTemplateAreas": "--gridTemplateAreas_1rvtk",
|
|
39
|
+
"_gridTemplateRows": "__gridTemplateRows_1rvtk_gg_",
|
|
40
|
+
"--gridTemplateRows": "--gridTemplateRows_1rvtk"
|
|
39
41
|
});
|
|
40
42
|
/*__reshadow-styles__:"../../style/scroll-shadows.shadow.css"*/
|
|
41
|
-
var scrollStyles = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".
|
|
42
|
-
"__SScrollArea": "
|
|
43
|
-
"
|
|
44
|
-
"
|
|
43
|
+
var scrollStyles = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".___SScrollArea_dn57w_gg_{width:-moz-fit-content;width:fit-content}.___SScrollArea_dn57w_gg_ .___SContainer_dn57w_gg_{overflow:visible;overflow:initial}.___SScrollArea_dn57w_gg_ .___SContainer_dn57w_gg_._scrollDirection_both_dn57w_gg_{overflow:auto}.___SScrollArea_dn57w_gg_ .___SContainer_dn57w_gg_._scrollDirection_horizontal_dn57w_gg_{overflow-x:auto;overflow-y:initial}.___SScrollArea_dn57w_gg_ .___SContainer_dn57w_gg_._scrollDirection_vertical_dn57w_gg_{overflow-x:initial;overflow-y:auto}.___SScrollArea_dn57w_gg_ .___SShadowVertical_dn57w_gg_:before{display:none}.___SScrollArea_dn57w_gg_ .___SShadowHorizontal_dn57w_gg_:after,.___SScrollArea_dn57w_gg_ .___SShadowHorizontal_dn57w_gg_:before,.___SScrollArea_dn57w_gg_ .___SShadowVertical_dn57w_gg_:after{z-index:2}" /*__inner_css_end__*/, "dn57w_gg_") /*__reshadow_css_end__*/, {
|
|
44
|
+
"__SScrollArea": "___SScrollArea_dn57w_gg_",
|
|
45
|
+
"__SContainer": "___SContainer_dn57w_gg_",
|
|
46
|
+
"_scrollDirection_both": "_scrollDirection_both_dn57w_gg_",
|
|
47
|
+
"_scrollDirection_horizontal": "_scrollDirection_horizontal_dn57w_gg_",
|
|
48
|
+
"_scrollDirection_vertical": "_scrollDirection_vertical_dn57w_gg_",
|
|
49
|
+
"__SShadowVertical": "___SShadowVertical_dn57w_gg_",
|
|
50
|
+
"__SShadowHorizontal": "___SShadowHorizontal_dn57w_gg_"
|
|
45
51
|
});
|
|
46
52
|
var ACCORDION = Symbol('accordion');
|
|
47
53
|
exports.ACCORDION = ACCORDION;
|
|
48
54
|
var ROW_GROUP = Symbol('ROW_GROUP');
|
|
49
55
|
exports.ROW_GROUP = ROW_GROUP;
|
|
56
|
+
var UNIQ_ROW_KEY = Symbol('UNIQ_ROW_KEY');
|
|
57
|
+
exports.UNIQ_ROW_KEY = UNIQ_ROW_KEY;
|
|
50
58
|
var SCROLL_BAR_HEIGHT = 12;
|
|
51
59
|
var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
52
60
|
(0, _inherits2["default"])(DataTableRoot, _Component);
|
|
@@ -55,14 +63,19 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
55
63
|
var _this;
|
|
56
64
|
(0, _classCallCheck2["default"])(this, DataTableRoot);
|
|
57
65
|
_this = _super.call(this, props);
|
|
58
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "columnsSplitter", '/');
|
|
59
66
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "columns", []);
|
|
67
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "treeColumns", []);
|
|
68
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "hasGroups", false);
|
|
60
69
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "focusedCell", [-1, -1]);
|
|
61
70
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "tableContainerRef", /*#__PURE__*/React.createRef());
|
|
62
71
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "tableRef", /*#__PURE__*/React.createRef());
|
|
63
72
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "headerRef", /*#__PURE__*/React.createRef());
|
|
64
73
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "spinnerRef", /*#__PURE__*/React.createRef());
|
|
65
74
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "gridAreaGroupMap", new Map());
|
|
75
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
|
|
76
|
+
scrollTop: 0,
|
|
77
|
+
scrollDirection: 'down'
|
|
78
|
+
});
|
|
66
79
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getRow", function (index) {
|
|
67
80
|
var _this$tableRef$curren;
|
|
68
81
|
return (_this$tableRef$curren = _this.tableRef.current) === null || _this$tableRef$curren === void 0 ? void 0 : _this$tableRef$curren.querySelector("[aria-rowindex=\"".concat(index + 1, "\"]"));
|
|
@@ -127,21 +140,24 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
127
140
|
var rowI = rowIndex;
|
|
128
141
|
var colI = colIndex;
|
|
129
142
|
if (direction === 'left' || direction === 'right') {
|
|
143
|
+
var _currentCell$parentEl;
|
|
130
144
|
// left/right
|
|
131
|
-
if (currentCell.dataset.groupedBy === '
|
|
145
|
+
if (currentCell.dataset.groupedBy === 'colgroup' || Number((_currentCell$parentEl = currentCell.parentElement) === null || _currentCell$parentEl === void 0 ? void 0 : _currentCell$parentEl.getAttribute('aria-rowindex')) === 2) {
|
|
132
146
|
colI = direction === 'left' ? colI - 1 : colI + 1;
|
|
133
147
|
} else {
|
|
134
148
|
rowI = rowI - 1;
|
|
135
149
|
}
|
|
136
150
|
} else if (direction === 'up' || direction === 'down') {
|
|
137
151
|
// top/bottom
|
|
138
|
-
if (currentCell.dataset.groupedBy === '
|
|
152
|
+
if (currentCell.dataset.groupedBy === 'rowgroup' || Number(currentCell.getAttribute('aria-colindex')) === 1) {
|
|
139
153
|
rowI = direction === 'up' ? rowI - 1 : rowI + 1;
|
|
140
154
|
} else {
|
|
141
155
|
colI = colI - 1;
|
|
142
156
|
}
|
|
143
157
|
}
|
|
144
158
|
_this.changeFocusCell(rowI, colI, direction);
|
|
159
|
+
} else if (row === null && _this.focusedCell[0] === 0 && direction === 'down' && _this.asProps.virtualScroll) {
|
|
160
|
+
_this.changeFocusCell(rowIndex + 1, colIndex, direction);
|
|
145
161
|
}
|
|
146
162
|
});
|
|
147
163
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleKeyDown", function (e) {
|
|
@@ -185,6 +201,14 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
185
201
|
_this.focusedCell = [1, 0];
|
|
186
202
|
}
|
|
187
203
|
});
|
|
204
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleScroll", (0, _rafTrottle["default"])(function (e) {
|
|
205
|
+
var scrollTop = e.target.scrollTop;
|
|
206
|
+
var scrollDirection = scrollTop > _this.state.scrollTop ? 'down' : 'up';
|
|
207
|
+
_this.setState({
|
|
208
|
+
scrollTop: scrollTop,
|
|
209
|
+
scrollDirection: scrollDirection
|
|
210
|
+
});
|
|
211
|
+
}));
|
|
188
212
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleFocus", function (e) {
|
|
189
213
|
if (_this.asProps.loading) {
|
|
190
214
|
var _this$spinnerRef$curr;
|
|
@@ -201,6 +225,19 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
201
225
|
_this.initFocusableCell();
|
|
202
226
|
row = _this.getRow(_this.focusedCell[0]);
|
|
203
227
|
}
|
|
228
|
+
if (!row && _this.asProps.virtualScroll) {
|
|
229
|
+
var _this$tableRef$curren4;
|
|
230
|
+
var firstAvailableCell = (_this$tableRef$curren4 = _this.tableRef.current) === null || _this$tableRef$curren4 === void 0 ? void 0 : _this$tableRef$curren4.querySelector("[role=\"gridcell\"]");
|
|
231
|
+
var firstAvailableRow = firstAvailableCell === null || firstAvailableCell === void 0 ? void 0 : firstAvailableCell.parentElement;
|
|
232
|
+
if (firstAvailableCell && firstAvailableRow) {
|
|
233
|
+
var _Number, _Number2;
|
|
234
|
+
var colIndex = ((_Number = Number(firstAvailableCell.getAttribute('aria-colindex'))) !== null && _Number !== void 0 ? _Number : 1) - 1;
|
|
235
|
+
var rowIndex = ((_Number2 = Number(firstAvailableRow.getAttribute('aria-rowindex'))) !== null && _Number2 !== void 0 ? _Number2 : 1) - 1;
|
|
236
|
+
_this.focusedCell[0] = rowIndex;
|
|
237
|
+
_this.focusedCell[1] = colIndex;
|
|
238
|
+
row = firstAvailableRow;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
204
241
|
var cell = (_row = row) === null || _row === void 0 ? void 0 : _row.querySelectorAll('[role=gridcell], [role=columnheader]').item(_this.focusedCell[1]);
|
|
205
242
|
cell === null || cell === void 0 ? void 0 : cell.removeAttribute('inert');
|
|
206
243
|
if (cell instanceof HTMLElement) {
|
|
@@ -224,7 +261,13 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
224
261
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleMouseMove", function () {
|
|
225
262
|
_this.setInert(false);
|
|
226
263
|
});
|
|
227
|
-
|
|
264
|
+
if (props.children) {
|
|
265
|
+
_this.columns = _this.calculateColumns();
|
|
266
|
+
} else {
|
|
267
|
+
var cols = _this.calculateColumnsFromConfig();
|
|
268
|
+
_this.columns = cols[0];
|
|
269
|
+
_this.treeColumns = cols[1];
|
|
270
|
+
}
|
|
228
271
|
return _this;
|
|
229
272
|
}
|
|
230
273
|
(0, _createClass2["default"])(DataTableRoot, [{
|
|
@@ -242,12 +285,12 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
242
285
|
}, {
|
|
243
286
|
key: "totalRows",
|
|
244
287
|
get: function get() {
|
|
245
|
-
var _this2 = this;
|
|
246
288
|
var _this$asProps = this.asProps,
|
|
247
289
|
totalRows = _this$asProps.totalRows,
|
|
248
|
-
expandedRows = _this$asProps.expandedRows
|
|
290
|
+
expandedRows = _this$asProps.expandedRows,
|
|
291
|
+
data = _this$asProps.data;
|
|
249
292
|
var expandedRowsCount = expandedRows === null || expandedRows === void 0 ? void 0 : expandedRows.reduce(function (acc, rowIndex) {
|
|
250
|
-
var dtRow =
|
|
293
|
+
var dtRow = data[rowIndex];
|
|
251
294
|
var expandedRows = dtRow[ACCORDION];
|
|
252
295
|
if (Array.isArray(expandedRows)) {
|
|
253
296
|
acc = acc + expandedRows.length;
|
|
@@ -256,15 +299,26 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
256
299
|
}
|
|
257
300
|
return acc;
|
|
258
301
|
}, 0);
|
|
259
|
-
|
|
302
|
+
if (totalRows !== undefined) {
|
|
303
|
+
return totalRows + expandedRowsCount;
|
|
304
|
+
}
|
|
305
|
+
var rows = data.reduce(function (acc, item) {
|
|
306
|
+
acc = acc + 1;
|
|
307
|
+
if (item[ROW_GROUP]) {
|
|
308
|
+
acc = acc + item[ROW_GROUP].length;
|
|
309
|
+
}
|
|
310
|
+
return acc;
|
|
311
|
+
}, 0);
|
|
312
|
+
return rows + expandedRowsCount;
|
|
260
313
|
}
|
|
261
314
|
}, {
|
|
262
315
|
key: "gridSettings",
|
|
263
316
|
get: function get() {
|
|
264
|
-
var
|
|
317
|
+
var columns = this.columns;
|
|
318
|
+
var gridTemplateColumns = columns.map(function (c) {
|
|
265
319
|
return c.gridColumnWidth;
|
|
266
320
|
});
|
|
267
|
-
var gridTemplateAreas =
|
|
321
|
+
var gridTemplateAreas = columns.map(function (c) {
|
|
268
322
|
return c.name;
|
|
269
323
|
});
|
|
270
324
|
return {
|
|
@@ -281,12 +335,14 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
281
335
|
sort = _this$asProps2.sort,
|
|
282
336
|
onSortChange = _this$asProps2.onSortChange,
|
|
283
337
|
getI18nText = _this$asProps2.getI18nText,
|
|
284
|
-
uid = _this$asProps2.uid
|
|
338
|
+
uid = _this$asProps2.uid,
|
|
339
|
+
headerProps = _this$asProps2.headerProps;
|
|
285
340
|
var _this$gridSettings = this.gridSettings,
|
|
286
341
|
gridTemplateColumns = _this$gridSettings.gridTemplateColumns,
|
|
287
342
|
gridTemplateAreas = _this$gridSettings.gridTemplateAreas;
|
|
288
|
-
return {
|
|
343
|
+
return (0, _objectSpread2["default"])({
|
|
289
344
|
columns: this.columns,
|
|
345
|
+
treeColumns: this.treeColumns,
|
|
290
346
|
use: use,
|
|
291
347
|
tableRef: this.tableRef,
|
|
292
348
|
compact: Boolean(compact),
|
|
@@ -298,51 +354,52 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
298
354
|
gridAreaGroupMap: this.gridAreaGroupMap,
|
|
299
355
|
gridTemplateColumns: gridTemplateColumns,
|
|
300
356
|
gridTemplateAreas: gridTemplateAreas
|
|
301
|
-
};
|
|
357
|
+
}, headerProps);
|
|
302
358
|
}
|
|
303
359
|
}, {
|
|
304
360
|
key: "getBodyProps",
|
|
305
361
|
value: function getBodyProps() {
|
|
306
|
-
var _header$children;
|
|
307
362
|
var _this$asProps3 = this.asProps,
|
|
308
363
|
use = _this$asProps3.use,
|
|
309
364
|
compact = _this$asProps3.compact,
|
|
310
365
|
loading = _this$asProps3.loading,
|
|
311
366
|
getI18nText = _this$asProps3.getI18nText,
|
|
312
|
-
expandedRows = _this$asProps3.expandedRows
|
|
313
|
-
|
|
367
|
+
expandedRows = _this$asProps3.expandedRows,
|
|
368
|
+
virtualScroll = _this$asProps3.virtualScroll,
|
|
369
|
+
data = _this$asProps3.data,
|
|
370
|
+
uid = _this$asProps3.uid,
|
|
371
|
+
renderCell = _this$asProps3.renderCell;
|
|
314
372
|
var _this$gridSettings2 = this.gridSettings,
|
|
315
373
|
gridTemplateColumns = _this$gridSettings2.gridTemplateColumns,
|
|
316
374
|
gridTemplateAreas = _this$gridSettings2.gridTemplateAreas;
|
|
317
|
-
var header = this.headerRef.current;
|
|
318
|
-
var headerHeight = Array.from((_header$children = header === null || header === void 0 ? void 0 : header.children) !== null && _header$children !== void 0 ? _header$children : []).reduce(function (maxHeight, col) {
|
|
319
|
-
var rect = col.getBoundingClientRect();
|
|
320
|
-
if (rect.height > maxHeight) {
|
|
321
|
-
maxHeight = rect.height;
|
|
322
|
-
}
|
|
323
|
-
return maxHeight;
|
|
324
|
-
}, 0);
|
|
325
375
|
return {
|
|
326
376
|
columns: this.columns,
|
|
327
|
-
|
|
328
|
-
flatRows: rows.flat(),
|
|
377
|
+
data: data,
|
|
329
378
|
use: use,
|
|
330
379
|
compact: Boolean(compact),
|
|
331
380
|
gridTemplateColumns: gridTemplateColumns,
|
|
332
381
|
gridTemplateAreas: gridTemplateAreas,
|
|
333
382
|
loading: loading,
|
|
334
|
-
headerHeight:
|
|
383
|
+
headerHeight: this.getTopScrollOffset(),
|
|
335
384
|
getI18nText: getI18nText,
|
|
336
385
|
expandedRows: expandedRows,
|
|
337
386
|
onExpandRow: this.onExpandRow,
|
|
338
|
-
spinnerRef: this.spinnerRef
|
|
387
|
+
spinnerRef: this.spinnerRef,
|
|
388
|
+
scrollTop: this.state.scrollTop,
|
|
389
|
+
scrollDirection: this.state.scrollDirection,
|
|
390
|
+
tableContainerRef: this.tableContainerRef,
|
|
391
|
+
tableRef: this.tableRef,
|
|
392
|
+
virtualScroll: virtualScroll,
|
|
393
|
+
hasGroups: this.hasGroups,
|
|
394
|
+
uid: uid,
|
|
395
|
+
renderCell: renderCell
|
|
339
396
|
};
|
|
340
397
|
}
|
|
341
398
|
}, {
|
|
342
399
|
key: "setInert",
|
|
343
400
|
value: function setInert(value) {
|
|
344
|
-
var _this$tableRef$
|
|
345
|
-
var cells = (_this$tableRef$
|
|
401
|
+
var _this$tableRef$curren5;
|
|
402
|
+
var cells = (_this$tableRef$curren5 = this.tableRef.current) === null || _this$tableRef$curren5 === void 0 ? void 0 : _this$tableRef$curren5.querySelectorAll('[role=gridcell], [role=columnheader]');
|
|
346
403
|
cells === null || cells === void 0 ? void 0 : cells.forEach(function (cell) {
|
|
347
404
|
if (value === true) {
|
|
348
405
|
cell.setAttribute('inert', '');
|
|
@@ -355,7 +412,9 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
355
412
|
key: "render",
|
|
356
413
|
value: function render() {
|
|
357
414
|
var _ref = this.asProps,
|
|
358
|
-
_ref2
|
|
415
|
+
_ref2,
|
|
416
|
+
_ref3,
|
|
417
|
+
_ref4;
|
|
359
418
|
var SDataTable = _baseComponents.Box;
|
|
360
419
|
var _this$asProps4 = this.asProps,
|
|
361
420
|
Children = _this$asProps4.Children,
|
|
@@ -365,7 +424,10 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
365
424
|
wMin = _this$asProps4.wMin,
|
|
366
425
|
h = _this$asProps4.h,
|
|
367
426
|
hMax = _this$asProps4.hMax,
|
|
368
|
-
hMin = _this$asProps4.hMin
|
|
427
|
+
hMin = _this$asProps4.hMin,
|
|
428
|
+
virtualScroll = _this$asProps4.virtualScroll,
|
|
429
|
+
children = _this$asProps4.children,
|
|
430
|
+
headerProps = _this$asProps4.headerProps;
|
|
369
431
|
var _getScrollOffsetValue = (0, _utils.getScrollOffsetValue)(this.columns),
|
|
370
432
|
_getScrollOffsetValue2 = (0, _slicedToArray2["default"])(_getScrollOffsetValue, 2),
|
|
371
433
|
offsetLeftSum = _getScrollOffsetValue2[0],
|
|
@@ -374,10 +436,25 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
374
436
|
gridTemplateColumns = _this$gridSettings3.gridTemplateColumns,
|
|
375
437
|
gridTemplateAreas = _this$gridSettings3.gridTemplateAreas;
|
|
376
438
|
var Head = (0, _findComponent["default"])(Children, ['DataTable.Head']);
|
|
377
|
-
var
|
|
439
|
+
var headerPropsToCheck = headerProps !== null && headerProps !== void 0 ? headerProps : Head === null || Head === void 0 ? void 0 : Head.props;
|
|
440
|
+
var topOffset = headerPropsToCheck !== null && headerPropsToCheck !== void 0 && headerPropsToCheck.sticky || headerPropsToCheck !== null && headerPropsToCheck !== void 0 && headerPropsToCheck.withScrollBar ? this.getTopScrollOffset() : undefined;
|
|
378
441
|
var width = w !== null && w !== void 0 ? w : this.columns.some(function (c) {
|
|
379
442
|
return c.gridColumnWidth === 'auto' || c.gridColumnWidth === '1fr';
|
|
380
443
|
}) ? '100%' : undefined;
|
|
444
|
+
var gridTemplateRows = undefined;
|
|
445
|
+
if (virtualScroll && typeof virtualScroll !== 'boolean' && 'rowHeight' in virtualScroll) {
|
|
446
|
+
gridTemplateRows = "auto auto repeat(".concat(this.totalRows, ", minmax(").concat(virtualScroll.rowHeight, "px, auto)");
|
|
447
|
+
}
|
|
448
|
+
var scrollDirection = undefined;
|
|
449
|
+
var hasWidthSettings = Boolean((_ref3 = w !== null && w !== void 0 ? w : wMax) !== null && _ref3 !== void 0 ? _ref3 : wMin);
|
|
450
|
+
var hasHeightSettings = Boolean((_ref4 = h !== null && h !== void 0 ? h : hMax) !== null && _ref4 !== void 0 ? _ref4 : hMin);
|
|
451
|
+
if (hasWidthSettings && !hasHeightSettings) {
|
|
452
|
+
scrollDirection = 'horizontal';
|
|
453
|
+
} else if (hasHeightSettings && !hasWidthSettings) {
|
|
454
|
+
scrollDirection = 'vertical';
|
|
455
|
+
} else if (hasWidthSettings && hasHeightSettings) {
|
|
456
|
+
scrollDirection = 'both';
|
|
457
|
+
}
|
|
381
458
|
return _ref2 = (0, _core.sstyled)(styles), /*#__PURE__*/React.createElement(_baseComponents.ScrollArea, _ref2.cn("ScrollArea", {
|
|
382
459
|
"leftOffset": offsetLeftSum,
|
|
383
460
|
"rightOffset": offsetRightSum,
|
|
@@ -390,9 +467,14 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
390
467
|
"hMin": hMin,
|
|
391
468
|
"shadow": true,
|
|
392
469
|
"container": this.tableContainerRef,
|
|
393
|
-
"styles": scrollStyles
|
|
470
|
+
"styles": scrollStyles,
|
|
471
|
+
"onScroll": this.handleScroll,
|
|
472
|
+
"disableAutofocusToContent": true
|
|
394
473
|
}), /*#__PURE__*/React.createElement(_baseComponents.ScrollArea.Container, {
|
|
395
474
|
tabIndex: -1
|
|
475
|
+
// @ts-ignore
|
|
476
|
+
,
|
|
477
|
+
scrollDirection: scrollDirection
|
|
396
478
|
}, /*#__PURE__*/React.createElement(SDataTable, _ref2.cn("SDataTable", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
|
|
397
479
|
"ref": (0, _ref8.forkRef)(this.tableRef, this.tableContainerRef),
|
|
398
480
|
"role": 'grid',
|
|
@@ -405,6 +487,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
405
487
|
"aria-colcount": this.columns.length,
|
|
406
488
|
"gridTemplateColumns": gridTemplateColumns.join(' '),
|
|
407
489
|
"gridTemplateAreas": gridTemplateAreas.join(' '),
|
|
490
|
+
"gridTemplateRows": gridTemplateRows,
|
|
408
491
|
"w": '100%',
|
|
409
492
|
"use:data": undefined,
|
|
410
493
|
"use:w": undefined,
|
|
@@ -413,7 +496,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
413
496
|
"use:h": undefined,
|
|
414
497
|
"use:hMax": undefined,
|
|
415
498
|
"use:hMin": undefined
|
|
416
|
-
}, _ref))), /*#__PURE__*/React.createElement(Children, _ref2.cn("Children", {})))), (
|
|
499
|
+
}, _ref))), children ? /*#__PURE__*/React.createElement(Children, _ref2.cn("Children", {})) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DataTable.Head, null), /*#__PURE__*/React.createElement(DataTable.Body, null)))), (headerPropsToCheck === null || headerPropsToCheck === void 0 ? void 0 : headerPropsToCheck.withScrollBar) && topOffset && /*#__PURE__*/React.createElement(_baseComponents.ScrollArea.Bar, {
|
|
417
500
|
orientation: "horizontal",
|
|
418
501
|
top: topOffset - SCROLL_BAR_HEIGHT,
|
|
419
502
|
zIndex: 3
|
|
@@ -428,19 +511,19 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
428
511
|
}, {
|
|
429
512
|
key: "calculateColumns",
|
|
430
513
|
value: function calculateColumns() {
|
|
431
|
-
var
|
|
514
|
+
var _this2 = this;
|
|
432
515
|
var _this$props = this.props,
|
|
433
516
|
children = _this$props.children,
|
|
434
517
|
data = _this$props.data;
|
|
435
518
|
var HeadComponent = (0, _findComponent["default"])(children, ['Head']);
|
|
436
|
-
|
|
519
|
+
this.hasGroups = (0, _findComponent["default"])(HeadComponent.props.children, ['Head.Group']) !== undefined;
|
|
437
520
|
var columnIndex = 0;
|
|
438
521
|
var groupIndex = 0;
|
|
439
522
|
var gridColumnIndex = 1;
|
|
440
523
|
var calculateGridTemplateColumn = this.calculateGridTemplateColumn.bind(this);
|
|
441
524
|
var columns = [];
|
|
442
525
|
var makeColumn = function makeColumn(columnElement, parent, isFirst, isLast) {
|
|
443
|
-
var _columnElement$props$,
|
|
526
|
+
var _columnElement$props$, _ref5, _columnElement$props$2;
|
|
444
527
|
var leftBordersFromParent = isFirst && ((parent === null || parent === void 0 ? void 0 : parent.props.borders) === 'both' || (parent === null || parent === void 0 ? void 0 : parent.props.borders) === 'left') ? 'left' : undefined;
|
|
445
528
|
var rightBordersFromParent = isLast && ((parent === null || parent === void 0 ? void 0 : parent.props.borders) === 'both' || (parent === null || parent === void 0 ? void 0 : parent.props.borders) === 'right') ? 'right' : undefined;
|
|
446
529
|
var column = {
|
|
@@ -459,7 +542,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
459
542
|
fixed: (_columnElement$props$ = columnElement.props.fixed) !== null && _columnElement$props$ !== void 0 ? _columnElement$props$ : parent === null || parent === void 0 ? void 0 : parent.props.fixed,
|
|
460
543
|
calculatedWidth: 0,
|
|
461
544
|
calculatedHeight: 0,
|
|
462
|
-
borders: (
|
|
545
|
+
borders: (_ref5 = (_columnElement$props$2 = columnElement.props.borders) !== null && _columnElement$props$2 !== void 0 ? _columnElement$props$2 : leftBordersFromParent) !== null && _ref5 !== void 0 ? _ref5 : rightBordersFromParent,
|
|
463
546
|
parent: parent,
|
|
464
547
|
flexWrap: columnElement.props.flexWrap,
|
|
465
548
|
alignItems: columnElement.props.alignItems,
|
|
@@ -478,7 +561,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
478
561
|
if (! /*#__PURE__*/React.isValidElement(child)) return;
|
|
479
562
|
if (childIsColumn(child)) {
|
|
480
563
|
var col = makeColumn(child);
|
|
481
|
-
col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(
|
|
564
|
+
col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(_this2.hasGroups ? '3' : '2', " / ").concat(gridColumnIndex + 1);
|
|
482
565
|
columnIndex++;
|
|
483
566
|
gridColumnIndex++;
|
|
484
567
|
columns.push(col);
|
|
@@ -505,78 +588,106 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
505
588
|
columns.push(_col);
|
|
506
589
|
}
|
|
507
590
|
});
|
|
508
|
-
|
|
591
|
+
_this2.gridAreaGroupMap.set(groupIndex, "1 / ".concat(initGridColumn, " / 2 / ").concat(gridColumnIndex));
|
|
509
592
|
groupIndex++;
|
|
510
593
|
}
|
|
511
594
|
});
|
|
512
595
|
return columns.filter(Boolean);
|
|
513
596
|
}
|
|
514
597
|
}, {
|
|
515
|
-
key: "
|
|
516
|
-
value: function
|
|
517
|
-
var
|
|
518
|
-
var
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
598
|
+
key: "calculateColumnsFromConfig",
|
|
599
|
+
value: function calculateColumnsFromConfig() {
|
|
600
|
+
var _this3 = this;
|
|
601
|
+
var _this$props2 = this.props,
|
|
602
|
+
columns = _this$props2.columns,
|
|
603
|
+
data = _this$props2.data;
|
|
604
|
+
this.hasGroups = columns.some(function (column) {
|
|
605
|
+
return 'columns' in column;
|
|
606
|
+
});
|
|
607
|
+
var columnIndex = 0;
|
|
608
|
+
var groupIndex = 0;
|
|
609
|
+
var gridColumnIndex = 1;
|
|
610
|
+
var calculateGridTemplateColumn = this.calculateGridTemplateColumn.bind(this);
|
|
611
|
+
var calculatedColumns = [];
|
|
612
|
+
var treeColumns = [];
|
|
613
|
+
var makeColumn = function makeColumn(columnElement, parent, isFirst, isLast) {
|
|
614
|
+
var _columnElement$fixed, _ref6, _columnElement$border;
|
|
615
|
+
var leftBordersFromParent = isFirst && ((parent === null || parent === void 0 ? void 0 : parent.borders) === 'both' || (parent === null || parent === void 0 ? void 0 : parent.borders) === 'left') ? 'left' : undefined;
|
|
616
|
+
var rightBordersFromParent = isLast && ((parent === null || parent === void 0 ? void 0 : parent.borders) === 'both' || (parent === null || parent === void 0 ? void 0 : parent.borders) === 'right') ? 'right' : undefined;
|
|
617
|
+
var column = (0, _objectSpread2["default"])({
|
|
618
|
+
name: childIsColumn(columnElement) ? columnElement.name : '',
|
|
619
|
+
// @ts-ignore
|
|
620
|
+
ref: function ref(node) {
|
|
621
|
+
if (node) {
|
|
622
|
+
var calculatedWidth = node.getBoundingClientRect().width;
|
|
623
|
+
var calculatedHeight = node.getBoundingClientRect().height;
|
|
624
|
+
column.calculatedWidth = calculatedWidth;
|
|
625
|
+
column.calculatedHeight = calculatedHeight;
|
|
626
|
+
}
|
|
627
|
+
if (this !== null && this !== void 0 && this.ref) {
|
|
628
|
+
this.ref.current = node;
|
|
629
|
+
}
|
|
630
|
+
},
|
|
631
|
+
gridColumnWidth: childIsColumn(columnElement) ? calculateGridTemplateColumn(columnElement) : '',
|
|
632
|
+
fixed: (_columnElement$fixed = columnElement.fixed) !== null && _columnElement$fixed !== void 0 ? _columnElement$fixed : parent === null || parent === void 0 ? void 0 : parent.fixed,
|
|
633
|
+
calculatedWidth: 0,
|
|
634
|
+
calculatedHeight: 0,
|
|
635
|
+
borders: (_ref6 = (_columnElement$border = columnElement.borders) !== null && _columnElement$border !== void 0 ? _columnElement$border : leftBordersFromParent) !== null && _ref6 !== void 0 ? _ref6 : rightBordersFromParent,
|
|
636
|
+
parent: parent
|
|
637
|
+
}, columnElement);
|
|
638
|
+
return column;
|
|
541
639
|
};
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
640
|
+
var childIsColumn = function childIsColumn(child) {
|
|
641
|
+
return !('columns' in child);
|
|
642
|
+
};
|
|
643
|
+
var childIsGroup = function childIsGroup(child) {
|
|
644
|
+
return 'columns' in child;
|
|
645
|
+
};
|
|
646
|
+
columns.forEach(function (child, i) {
|
|
647
|
+
if (childIsColumn(child)) {
|
|
648
|
+
var col = makeColumn(child);
|
|
649
|
+
col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(_this3.hasGroups ? '3' : '2', " / ").concat(gridColumnIndex + 1);
|
|
650
|
+
columnIndex++;
|
|
651
|
+
gridColumnIndex++;
|
|
652
|
+
calculatedColumns.push(col);
|
|
653
|
+
treeColumns.push(col);
|
|
654
|
+
} else if (childIsGroup(child)) {
|
|
655
|
+
var Group = makeColumn(child);
|
|
656
|
+
var childCount = child.columns.length;
|
|
657
|
+
var initGridColumn = gridColumnIndex;
|
|
658
|
+
Group.columns = [];
|
|
659
|
+
Group.children = child.children;
|
|
660
|
+
child.columns.forEach(function (child, j) {
|
|
661
|
+
var _Group$columns;
|
|
662
|
+
var isFirst = j === 0;
|
|
663
|
+
var isLast = j === childCount - 1;
|
|
664
|
+
var col = makeColumn(child, Group, isFirst, isLast);
|
|
665
|
+
if (i === 0 && j === 0 && data.some(function (d) {
|
|
666
|
+
return d[ACCORDION];
|
|
667
|
+
})) {
|
|
668
|
+
gridColumnIndex++;
|
|
669
|
+
col.gridArea = "2 / ".concat(gridColumnIndex - 1, " / 3 / ").concat(gridColumnIndex + 1);
|
|
560
670
|
} else {
|
|
561
|
-
|
|
671
|
+
col.gridArea = "2 / ".concat(gridColumnIndex, " / 3 / ").concat(gridColumnIndex + 1);
|
|
562
672
|
}
|
|
563
|
-
|
|
564
|
-
|
|
673
|
+
col.gridArea = "2 / ".concat(gridColumnIndex, " / 3 / ").concat(gridColumnIndex + 1);
|
|
674
|
+
columnIndex++;
|
|
675
|
+
gridColumnIndex++;
|
|
676
|
+
calculatedColumns.push(col);
|
|
677
|
+
(_Group$columns = Group.columns) === null || _Group$columns === void 0 ? void 0 : _Group$columns.push(col);
|
|
565
678
|
});
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
rows.push(dtRow);
|
|
570
|
-
rowIndex++;
|
|
679
|
+
treeColumns.push(Group);
|
|
680
|
+
_this3.gridAreaGroupMap.set(groupIndex, "1 / ".concat(initGridColumn, " / 2 / ").concat(gridColumnIndex));
|
|
681
|
+
groupIndex++;
|
|
571
682
|
}
|
|
572
683
|
});
|
|
573
|
-
return
|
|
684
|
+
return [calculatedColumns, treeColumns];
|
|
574
685
|
}
|
|
575
686
|
}, {
|
|
576
687
|
key: "calculateGridTemplateColumn",
|
|
577
688
|
value: function calculateGridTemplateColumn(c) {
|
|
578
|
-
var
|
|
579
|
-
return (
|
|
689
|
+
var _ref7;
|
|
690
|
+
return (_ref7 = /*#__PURE__*/React.isValidElement(c) ? c.props.gtcWidth : c.gtcWidth) !== null && _ref7 !== void 0 ? _ref7 : this.props.defaultGridTemplateColumnWidth;
|
|
580
691
|
}
|
|
581
692
|
}, {
|
|
582
693
|
key: "getTopScrollOffset",
|
|
@@ -603,7 +714,6 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
603
714
|
(0, _defineProperty2["default"])(DataTableRoot, "defaultProps", {
|
|
604
715
|
use: 'primary',
|
|
605
716
|
defaultGridTemplateColumnWidth: 'auto',
|
|
606
|
-
h: 'auto',
|
|
607
717
|
defaultExpandedRows: []
|
|
608
718
|
});
|
|
609
719
|
var DataTable = (0, _core.createComponent)(DataTableRoot, {
|