@semcore/data-table 16.0.0-prerelease.17 → 16.0.0-prerelease.19
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
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
+
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
3
3
|
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
4
4
|
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
5
5
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
@@ -16,12 +16,14 @@ import { Box, ScrollArea } from '@semcore/base-components';
|
|
|
16
16
|
import { Head } from '../Head/Head';
|
|
17
17
|
import { Body } from '../Body/Body';
|
|
18
18
|
/*__reshadow-styles__:"./dataTable.shadow.css"*/
|
|
19
|
-
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".
|
|
20
|
-
"__SDataTable": "
|
|
21
|
-
"_gridTemplateColumns": "
|
|
22
|
-
"--gridTemplateColumns": "--
|
|
23
|
-
"_gridTemplateAreas": "
|
|
24
|
-
"--gridTemplateAreas": "--
|
|
19
|
+
var style = ( /*__reshadow_css_start__*/_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__*/, {
|
|
20
|
+
"__SDataTable": "___SDataTable_1rvtk_gg_",
|
|
21
|
+
"_gridTemplateColumns": "__gridTemplateColumns_1rvtk_gg_",
|
|
22
|
+
"--gridTemplateColumns": "--gridTemplateColumns_1rvtk",
|
|
23
|
+
"_gridTemplateAreas": "__gridTemplateAreas_1rvtk_gg_",
|
|
24
|
+
"--gridTemplateAreas": "--gridTemplateAreas_1rvtk",
|
|
25
|
+
"_gridTemplateRows": "__gridTemplateRows_1rvtk_gg_",
|
|
26
|
+
"--gridTemplateRows": "--gridTemplateRows_1rvtk"
|
|
25
27
|
});
|
|
26
28
|
import { isFocusInside, hasFocusableIn } from '@semcore/core/lib/utils/use/useFocusLock';
|
|
27
29
|
import { getScrollOffsetValue } from '../../utils';
|
|
@@ -29,17 +31,22 @@ import findComponent from '@semcore/core/lib/utils/findComponent';
|
|
|
29
31
|
import { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';
|
|
30
32
|
import i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';
|
|
31
33
|
import uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';
|
|
32
|
-
import { MergedColumnsCell, MergedRowsCell } from '../Body/MergedCells';
|
|
33
34
|
import { forkRef } from '@semcore/core/lib/utils/ref';
|
|
34
35
|
/*__reshadow-styles__:"../../style/scroll-shadows.shadow.css"*/
|
|
35
|
-
var scrollStyles = ( /*__reshadow_css_start__*/_sstyled2.insert( /*__inner_css_start__*/".
|
|
36
|
-
"__SScrollArea": "
|
|
37
|
-
"
|
|
38
|
-
"
|
|
36
|
+
var scrollStyles = ( /*__reshadow_css_start__*/_sstyled2.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__*/, {
|
|
37
|
+
"__SScrollArea": "___SScrollArea_dn57w_gg_",
|
|
38
|
+
"__SContainer": "___SContainer_dn57w_gg_",
|
|
39
|
+
"_scrollDirection_both": "_scrollDirection_both_dn57w_gg_",
|
|
40
|
+
"_scrollDirection_horizontal": "_scrollDirection_horizontal_dn57w_gg_",
|
|
41
|
+
"_scrollDirection_vertical": "_scrollDirection_vertical_dn57w_gg_",
|
|
42
|
+
"__SShadowVertical": "___SShadowVertical_dn57w_gg_",
|
|
43
|
+
"__SShadowHorizontal": "___SShadowHorizontal_dn57w_gg_"
|
|
39
44
|
});
|
|
40
45
|
import { hasParent } from '@semcore/core/lib/utils/hasParent';
|
|
46
|
+
import trottle from '@semcore/core/lib/utils/rafTrottle';
|
|
41
47
|
export var ACCORDION = Symbol('accordion');
|
|
42
48
|
export var ROW_GROUP = Symbol('ROW_GROUP');
|
|
49
|
+
export var UNIQ_ROW_KEY = Symbol('UNIQ_ROW_KEY');
|
|
43
50
|
var SCROLL_BAR_HEIGHT = 12;
|
|
44
51
|
var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
45
52
|
_inherits(DataTableRoot, _Component);
|
|
@@ -48,14 +55,19 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
48
55
|
var _this;
|
|
49
56
|
_classCallCheck(this, DataTableRoot);
|
|
50
57
|
_this = _super.call(this, props);
|
|
51
|
-
_defineProperty(_assertThisInitialized(_this), "columnsSplitter", '/');
|
|
52
58
|
_defineProperty(_assertThisInitialized(_this), "columns", []);
|
|
59
|
+
_defineProperty(_assertThisInitialized(_this), "treeColumns", []);
|
|
60
|
+
_defineProperty(_assertThisInitialized(_this), "hasGroups", false);
|
|
53
61
|
_defineProperty(_assertThisInitialized(_this), "focusedCell", [-1, -1]);
|
|
54
62
|
_defineProperty(_assertThisInitialized(_this), "tableContainerRef", /*#__PURE__*/React.createRef());
|
|
55
63
|
_defineProperty(_assertThisInitialized(_this), "tableRef", /*#__PURE__*/React.createRef());
|
|
56
64
|
_defineProperty(_assertThisInitialized(_this), "headerRef", /*#__PURE__*/React.createRef());
|
|
57
65
|
_defineProperty(_assertThisInitialized(_this), "spinnerRef", /*#__PURE__*/React.createRef());
|
|
58
66
|
_defineProperty(_assertThisInitialized(_this), "gridAreaGroupMap", new Map());
|
|
67
|
+
_defineProperty(_assertThisInitialized(_this), "state", {
|
|
68
|
+
scrollTop: 0,
|
|
69
|
+
scrollDirection: 'down'
|
|
70
|
+
});
|
|
59
71
|
_defineProperty(_assertThisInitialized(_this), "getRow", function (index) {
|
|
60
72
|
var _this$tableRef$curren;
|
|
61
73
|
return (_this$tableRef$curren = _this.tableRef.current) === null || _this$tableRef$curren === void 0 ? void 0 : _this$tableRef$curren.querySelector("[aria-rowindex=\"".concat(index + 1, "\"]"));
|
|
@@ -120,21 +132,24 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
120
132
|
var rowI = rowIndex;
|
|
121
133
|
var colI = colIndex;
|
|
122
134
|
if (direction === 'left' || direction === 'right') {
|
|
135
|
+
var _currentCell$parentEl;
|
|
123
136
|
// left/right
|
|
124
|
-
if (currentCell.dataset.groupedBy === '
|
|
137
|
+
if (currentCell.dataset.groupedBy === 'colgroup' || Number((_currentCell$parentEl = currentCell.parentElement) === null || _currentCell$parentEl === void 0 ? void 0 : _currentCell$parentEl.getAttribute('aria-rowindex')) === 2) {
|
|
125
138
|
colI = direction === 'left' ? colI - 1 : colI + 1;
|
|
126
139
|
} else {
|
|
127
140
|
rowI = rowI - 1;
|
|
128
141
|
}
|
|
129
142
|
} else if (direction === 'up' || direction === 'down') {
|
|
130
143
|
// top/bottom
|
|
131
|
-
if (currentCell.dataset.groupedBy === '
|
|
144
|
+
if (currentCell.dataset.groupedBy === 'rowgroup' || Number(currentCell.getAttribute('aria-colindex')) === 1) {
|
|
132
145
|
rowI = direction === 'up' ? rowI - 1 : rowI + 1;
|
|
133
146
|
} else {
|
|
134
147
|
colI = colI - 1;
|
|
135
148
|
}
|
|
136
149
|
}
|
|
137
150
|
_this.changeFocusCell(rowI, colI, direction);
|
|
151
|
+
} else if (row === null && _this.focusedCell[0] === 0 && direction === 'down' && _this.asProps.virtualScroll) {
|
|
152
|
+
_this.changeFocusCell(rowIndex + 1, colIndex, direction);
|
|
138
153
|
}
|
|
139
154
|
});
|
|
140
155
|
_defineProperty(_assertThisInitialized(_this), "handleKeyDown", function (e) {
|
|
@@ -178,6 +193,14 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
178
193
|
_this.focusedCell = [1, 0];
|
|
179
194
|
}
|
|
180
195
|
});
|
|
196
|
+
_defineProperty(_assertThisInitialized(_this), "handleScroll", trottle(function (e) {
|
|
197
|
+
var scrollTop = e.target.scrollTop;
|
|
198
|
+
var scrollDirection = scrollTop > _this.state.scrollTop ? 'down' : 'up';
|
|
199
|
+
_this.setState({
|
|
200
|
+
scrollTop: scrollTop,
|
|
201
|
+
scrollDirection: scrollDirection
|
|
202
|
+
});
|
|
203
|
+
}));
|
|
181
204
|
_defineProperty(_assertThisInitialized(_this), "handleFocus", function (e) {
|
|
182
205
|
if (_this.asProps.loading) {
|
|
183
206
|
var _this$spinnerRef$curr;
|
|
@@ -194,6 +217,19 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
194
217
|
_this.initFocusableCell();
|
|
195
218
|
row = _this.getRow(_this.focusedCell[0]);
|
|
196
219
|
}
|
|
220
|
+
if (!row && _this.asProps.virtualScroll) {
|
|
221
|
+
var _this$tableRef$curren4;
|
|
222
|
+
var firstAvailableCell = (_this$tableRef$curren4 = _this.tableRef.current) === null || _this$tableRef$curren4 === void 0 ? void 0 : _this$tableRef$curren4.querySelector("[role=\"gridcell\"]");
|
|
223
|
+
var firstAvailableRow = firstAvailableCell === null || firstAvailableCell === void 0 ? void 0 : firstAvailableCell.parentElement;
|
|
224
|
+
if (firstAvailableCell && firstAvailableRow) {
|
|
225
|
+
var _Number, _Number2;
|
|
226
|
+
var colIndex = ((_Number = Number(firstAvailableCell.getAttribute('aria-colindex'))) !== null && _Number !== void 0 ? _Number : 1) - 1;
|
|
227
|
+
var rowIndex = ((_Number2 = Number(firstAvailableRow.getAttribute('aria-rowindex'))) !== null && _Number2 !== void 0 ? _Number2 : 1) - 1;
|
|
228
|
+
_this.focusedCell[0] = rowIndex;
|
|
229
|
+
_this.focusedCell[1] = colIndex;
|
|
230
|
+
row = firstAvailableRow;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
197
233
|
var cell = (_row = row) === null || _row === void 0 ? void 0 : _row.querySelectorAll('[role=gridcell], [role=columnheader]').item(_this.focusedCell[1]);
|
|
198
234
|
cell === null || cell === void 0 ? void 0 : cell.removeAttribute('inert');
|
|
199
235
|
if (cell instanceof HTMLElement) {
|
|
@@ -217,7 +253,13 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
217
253
|
_defineProperty(_assertThisInitialized(_this), "handleMouseMove", function () {
|
|
218
254
|
_this.setInert(false);
|
|
219
255
|
});
|
|
220
|
-
|
|
256
|
+
if (props.children) {
|
|
257
|
+
_this.columns = _this.calculateColumns();
|
|
258
|
+
} else {
|
|
259
|
+
var cols = _this.calculateColumnsFromConfig();
|
|
260
|
+
_this.columns = cols[0];
|
|
261
|
+
_this.treeColumns = cols[1];
|
|
262
|
+
}
|
|
221
263
|
return _this;
|
|
222
264
|
}
|
|
223
265
|
_createClass(DataTableRoot, [{
|
|
@@ -235,12 +277,12 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
235
277
|
}, {
|
|
236
278
|
key: "totalRows",
|
|
237
279
|
get: function get() {
|
|
238
|
-
var _this2 = this;
|
|
239
280
|
var _this$asProps = this.asProps,
|
|
240
281
|
totalRows = _this$asProps.totalRows,
|
|
241
|
-
expandedRows = _this$asProps.expandedRows
|
|
282
|
+
expandedRows = _this$asProps.expandedRows,
|
|
283
|
+
data = _this$asProps.data;
|
|
242
284
|
var expandedRowsCount = expandedRows === null || expandedRows === void 0 ? void 0 : expandedRows.reduce(function (acc, rowIndex) {
|
|
243
|
-
var dtRow =
|
|
285
|
+
var dtRow = data[rowIndex];
|
|
244
286
|
var expandedRows = dtRow[ACCORDION];
|
|
245
287
|
if (Array.isArray(expandedRows)) {
|
|
246
288
|
acc = acc + expandedRows.length;
|
|
@@ -249,15 +291,26 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
249
291
|
}
|
|
250
292
|
return acc;
|
|
251
293
|
}, 0);
|
|
252
|
-
|
|
294
|
+
if (totalRows !== undefined) {
|
|
295
|
+
return totalRows + expandedRowsCount;
|
|
296
|
+
}
|
|
297
|
+
var rows = data.reduce(function (acc, item) {
|
|
298
|
+
acc = acc + 1;
|
|
299
|
+
if (item[ROW_GROUP]) {
|
|
300
|
+
acc = acc + item[ROW_GROUP].length;
|
|
301
|
+
}
|
|
302
|
+
return acc;
|
|
303
|
+
}, 0);
|
|
304
|
+
return rows + expandedRowsCount;
|
|
253
305
|
}
|
|
254
306
|
}, {
|
|
255
307
|
key: "gridSettings",
|
|
256
308
|
get: function get() {
|
|
257
|
-
var
|
|
309
|
+
var columns = this.columns;
|
|
310
|
+
var gridTemplateColumns = columns.map(function (c) {
|
|
258
311
|
return c.gridColumnWidth;
|
|
259
312
|
});
|
|
260
|
-
var gridTemplateAreas =
|
|
313
|
+
var gridTemplateAreas = columns.map(function (c) {
|
|
261
314
|
return c.name;
|
|
262
315
|
});
|
|
263
316
|
return {
|
|
@@ -274,12 +327,14 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
274
327
|
sort = _this$asProps2.sort,
|
|
275
328
|
onSortChange = _this$asProps2.onSortChange,
|
|
276
329
|
getI18nText = _this$asProps2.getI18nText,
|
|
277
|
-
uid = _this$asProps2.uid
|
|
330
|
+
uid = _this$asProps2.uid,
|
|
331
|
+
headerProps = _this$asProps2.headerProps;
|
|
278
332
|
var _this$gridSettings = this.gridSettings,
|
|
279
333
|
gridTemplateColumns = _this$gridSettings.gridTemplateColumns,
|
|
280
334
|
gridTemplateAreas = _this$gridSettings.gridTemplateAreas;
|
|
281
|
-
return {
|
|
335
|
+
return _objectSpread({
|
|
282
336
|
columns: this.columns,
|
|
337
|
+
treeColumns: this.treeColumns,
|
|
283
338
|
use: use,
|
|
284
339
|
tableRef: this.tableRef,
|
|
285
340
|
compact: Boolean(compact),
|
|
@@ -291,51 +346,52 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
291
346
|
gridAreaGroupMap: this.gridAreaGroupMap,
|
|
292
347
|
gridTemplateColumns: gridTemplateColumns,
|
|
293
348
|
gridTemplateAreas: gridTemplateAreas
|
|
294
|
-
};
|
|
349
|
+
}, headerProps);
|
|
295
350
|
}
|
|
296
351
|
}, {
|
|
297
352
|
key: "getBodyProps",
|
|
298
353
|
value: function getBodyProps() {
|
|
299
|
-
var _header$children;
|
|
300
354
|
var _this$asProps3 = this.asProps,
|
|
301
355
|
use = _this$asProps3.use,
|
|
302
356
|
compact = _this$asProps3.compact,
|
|
303
357
|
loading = _this$asProps3.loading,
|
|
304
358
|
getI18nText = _this$asProps3.getI18nText,
|
|
305
|
-
expandedRows = _this$asProps3.expandedRows
|
|
306
|
-
|
|
359
|
+
expandedRows = _this$asProps3.expandedRows,
|
|
360
|
+
virtualScroll = _this$asProps3.virtualScroll,
|
|
361
|
+
data = _this$asProps3.data,
|
|
362
|
+
uid = _this$asProps3.uid,
|
|
363
|
+
renderCell = _this$asProps3.renderCell;
|
|
307
364
|
var _this$gridSettings2 = this.gridSettings,
|
|
308
365
|
gridTemplateColumns = _this$gridSettings2.gridTemplateColumns,
|
|
309
366
|
gridTemplateAreas = _this$gridSettings2.gridTemplateAreas;
|
|
310
|
-
var header = this.headerRef.current;
|
|
311
|
-
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) {
|
|
312
|
-
var rect = col.getBoundingClientRect();
|
|
313
|
-
if (rect.height > maxHeight) {
|
|
314
|
-
maxHeight = rect.height;
|
|
315
|
-
}
|
|
316
|
-
return maxHeight;
|
|
317
|
-
}, 0);
|
|
318
367
|
return {
|
|
319
368
|
columns: this.columns,
|
|
320
|
-
|
|
321
|
-
flatRows: rows.flat(),
|
|
369
|
+
data: data,
|
|
322
370
|
use: use,
|
|
323
371
|
compact: Boolean(compact),
|
|
324
372
|
gridTemplateColumns: gridTemplateColumns,
|
|
325
373
|
gridTemplateAreas: gridTemplateAreas,
|
|
326
374
|
loading: loading,
|
|
327
|
-
headerHeight:
|
|
375
|
+
headerHeight: this.getTopScrollOffset(),
|
|
328
376
|
getI18nText: getI18nText,
|
|
329
377
|
expandedRows: expandedRows,
|
|
330
378
|
onExpandRow: this.onExpandRow,
|
|
331
|
-
spinnerRef: this.spinnerRef
|
|
379
|
+
spinnerRef: this.spinnerRef,
|
|
380
|
+
scrollTop: this.state.scrollTop,
|
|
381
|
+
scrollDirection: this.state.scrollDirection,
|
|
382
|
+
tableContainerRef: this.tableContainerRef,
|
|
383
|
+
tableRef: this.tableRef,
|
|
384
|
+
virtualScroll: virtualScroll,
|
|
385
|
+
hasGroups: this.hasGroups,
|
|
386
|
+
uid: uid,
|
|
387
|
+
renderCell: renderCell
|
|
332
388
|
};
|
|
333
389
|
}
|
|
334
390
|
}, {
|
|
335
391
|
key: "setInert",
|
|
336
392
|
value: function setInert(value) {
|
|
337
|
-
var _this$tableRef$
|
|
338
|
-
var cells = (_this$tableRef$
|
|
393
|
+
var _this$tableRef$curren5;
|
|
394
|
+
var cells = (_this$tableRef$curren5 = this.tableRef.current) === null || _this$tableRef$curren5 === void 0 ? void 0 : _this$tableRef$curren5.querySelectorAll('[role=gridcell], [role=columnheader]');
|
|
339
395
|
cells === null || cells === void 0 ? void 0 : cells.forEach(function (cell) {
|
|
340
396
|
if (value === true) {
|
|
341
397
|
cell.setAttribute('inert', '');
|
|
@@ -348,7 +404,9 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
348
404
|
key: "render",
|
|
349
405
|
value: function render() {
|
|
350
406
|
var _ref = this.asProps,
|
|
351
|
-
_ref2
|
|
407
|
+
_ref2,
|
|
408
|
+
_ref3,
|
|
409
|
+
_ref4;
|
|
352
410
|
var SDataTable = Box;
|
|
353
411
|
var _this$asProps4 = this.asProps,
|
|
354
412
|
Children = _this$asProps4.Children,
|
|
@@ -358,7 +416,10 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
358
416
|
wMin = _this$asProps4.wMin,
|
|
359
417
|
h = _this$asProps4.h,
|
|
360
418
|
hMax = _this$asProps4.hMax,
|
|
361
|
-
hMin = _this$asProps4.hMin
|
|
419
|
+
hMin = _this$asProps4.hMin,
|
|
420
|
+
virtualScroll = _this$asProps4.virtualScroll,
|
|
421
|
+
children = _this$asProps4.children,
|
|
422
|
+
headerProps = _this$asProps4.headerProps;
|
|
362
423
|
var _getScrollOffsetValue = getScrollOffsetValue(this.columns),
|
|
363
424
|
_getScrollOffsetValue2 = _slicedToArray(_getScrollOffsetValue, 2),
|
|
364
425
|
offsetLeftSum = _getScrollOffsetValue2[0],
|
|
@@ -367,10 +428,25 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
367
428
|
gridTemplateColumns = _this$gridSettings3.gridTemplateColumns,
|
|
368
429
|
gridTemplateAreas = _this$gridSettings3.gridTemplateAreas;
|
|
369
430
|
var Head = findComponent(Children, ['DataTable.Head']);
|
|
370
|
-
var
|
|
431
|
+
var headerPropsToCheck = headerProps !== null && headerProps !== void 0 ? headerProps : Head === null || Head === void 0 ? void 0 : Head.props;
|
|
432
|
+
var topOffset = headerPropsToCheck !== null && headerPropsToCheck !== void 0 && headerPropsToCheck.sticky || headerPropsToCheck !== null && headerPropsToCheck !== void 0 && headerPropsToCheck.withScrollBar ? this.getTopScrollOffset() : undefined;
|
|
371
433
|
var width = w !== null && w !== void 0 ? w : this.columns.some(function (c) {
|
|
372
434
|
return c.gridColumnWidth === 'auto' || c.gridColumnWidth === '1fr';
|
|
373
435
|
}) ? '100%' : undefined;
|
|
436
|
+
var gridTemplateRows = undefined;
|
|
437
|
+
if (virtualScroll && typeof virtualScroll !== 'boolean' && 'rowHeight' in virtualScroll) {
|
|
438
|
+
gridTemplateRows = "auto auto repeat(".concat(this.totalRows, ", minmax(").concat(virtualScroll.rowHeight, "px, auto)");
|
|
439
|
+
}
|
|
440
|
+
var scrollDirection = undefined;
|
|
441
|
+
var hasWidthSettings = Boolean((_ref3 = w !== null && w !== void 0 ? w : wMax) !== null && _ref3 !== void 0 ? _ref3 : wMin);
|
|
442
|
+
var hasHeightSettings = Boolean((_ref4 = h !== null && h !== void 0 ? h : hMax) !== null && _ref4 !== void 0 ? _ref4 : hMin);
|
|
443
|
+
if (hasWidthSettings && !hasHeightSettings) {
|
|
444
|
+
scrollDirection = 'horizontal';
|
|
445
|
+
} else if (hasHeightSettings && !hasWidthSettings) {
|
|
446
|
+
scrollDirection = 'vertical';
|
|
447
|
+
} else if (hasWidthSettings && hasHeightSettings) {
|
|
448
|
+
scrollDirection = 'both';
|
|
449
|
+
}
|
|
374
450
|
return _ref2 = sstyled(styles), /*#__PURE__*/React.createElement(ScrollArea, _ref2.cn("ScrollArea", {
|
|
375
451
|
"leftOffset": offsetLeftSum,
|
|
376
452
|
"rightOffset": offsetRightSum,
|
|
@@ -383,9 +459,14 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
383
459
|
"hMin": hMin,
|
|
384
460
|
"shadow": true,
|
|
385
461
|
"container": this.tableContainerRef,
|
|
386
|
-
"styles": scrollStyles
|
|
462
|
+
"styles": scrollStyles,
|
|
463
|
+
"onScroll": this.handleScroll,
|
|
464
|
+
"disableAutofocusToContent": true
|
|
387
465
|
}), /*#__PURE__*/React.createElement(ScrollArea.Container, {
|
|
388
466
|
tabIndex: -1
|
|
467
|
+
// @ts-ignore
|
|
468
|
+
,
|
|
469
|
+
scrollDirection: scrollDirection
|
|
389
470
|
}, /*#__PURE__*/React.createElement(SDataTable, _ref2.cn("SDataTable", _objectSpread({}, _assignProps({
|
|
390
471
|
"ref": forkRef(this.tableRef, this.tableContainerRef),
|
|
391
472
|
"role": 'grid',
|
|
@@ -398,6 +479,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
398
479
|
"aria-colcount": this.columns.length,
|
|
399
480
|
"gridTemplateColumns": gridTemplateColumns.join(' '),
|
|
400
481
|
"gridTemplateAreas": gridTemplateAreas.join(' '),
|
|
482
|
+
"gridTemplateRows": gridTemplateRows,
|
|
401
483
|
"w": '100%',
|
|
402
484
|
"use:data": undefined,
|
|
403
485
|
"use:w": undefined,
|
|
@@ -406,7 +488,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
406
488
|
"use:h": undefined,
|
|
407
489
|
"use:hMax": undefined,
|
|
408
490
|
"use:hMin": undefined
|
|
409
|
-
}, _ref))), /*#__PURE__*/React.createElement(Children, _ref2.cn("Children", {})))), (
|
|
491
|
+
}, _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(ScrollArea.Bar, {
|
|
410
492
|
orientation: "horizontal",
|
|
411
493
|
top: topOffset - SCROLL_BAR_HEIGHT,
|
|
412
494
|
zIndex: 3
|
|
@@ -421,19 +503,19 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
421
503
|
}, {
|
|
422
504
|
key: "calculateColumns",
|
|
423
505
|
value: function calculateColumns() {
|
|
424
|
-
var
|
|
506
|
+
var _this2 = this;
|
|
425
507
|
var _this$props = this.props,
|
|
426
508
|
children = _this$props.children,
|
|
427
509
|
data = _this$props.data;
|
|
428
510
|
var HeadComponent = findComponent(children, ['Head']);
|
|
429
|
-
|
|
511
|
+
this.hasGroups = findComponent(HeadComponent.props.children, ['Head.Group']) !== undefined;
|
|
430
512
|
var columnIndex = 0;
|
|
431
513
|
var groupIndex = 0;
|
|
432
514
|
var gridColumnIndex = 1;
|
|
433
515
|
var calculateGridTemplateColumn = this.calculateGridTemplateColumn.bind(this);
|
|
434
516
|
var columns = [];
|
|
435
517
|
var makeColumn = function makeColumn(columnElement, parent, isFirst, isLast) {
|
|
436
|
-
var _columnElement$props$,
|
|
518
|
+
var _columnElement$props$, _ref5, _columnElement$props$2;
|
|
437
519
|
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;
|
|
438
520
|
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;
|
|
439
521
|
var column = {
|
|
@@ -452,7 +534,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
452
534
|
fixed: (_columnElement$props$ = columnElement.props.fixed) !== null && _columnElement$props$ !== void 0 ? _columnElement$props$ : parent === null || parent === void 0 ? void 0 : parent.props.fixed,
|
|
453
535
|
calculatedWidth: 0,
|
|
454
536
|
calculatedHeight: 0,
|
|
455
|
-
borders: (
|
|
537
|
+
borders: (_ref5 = (_columnElement$props$2 = columnElement.props.borders) !== null && _columnElement$props$2 !== void 0 ? _columnElement$props$2 : leftBordersFromParent) !== null && _ref5 !== void 0 ? _ref5 : rightBordersFromParent,
|
|
456
538
|
parent: parent,
|
|
457
539
|
flexWrap: columnElement.props.flexWrap,
|
|
458
540
|
alignItems: columnElement.props.alignItems,
|
|
@@ -471,7 +553,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
471
553
|
if (! /*#__PURE__*/React.isValidElement(child)) return;
|
|
472
554
|
if (childIsColumn(child)) {
|
|
473
555
|
var col = makeColumn(child);
|
|
474
|
-
col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(
|
|
556
|
+
col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(_this2.hasGroups ? '3' : '2', " / ").concat(gridColumnIndex + 1);
|
|
475
557
|
columnIndex++;
|
|
476
558
|
gridColumnIndex++;
|
|
477
559
|
columns.push(col);
|
|
@@ -498,78 +580,106 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
498
580
|
columns.push(_col);
|
|
499
581
|
}
|
|
500
582
|
});
|
|
501
|
-
|
|
583
|
+
_this2.gridAreaGroupMap.set(groupIndex, "1 / ".concat(initGridColumn, " / 2 / ").concat(gridColumnIndex));
|
|
502
584
|
groupIndex++;
|
|
503
585
|
}
|
|
504
586
|
});
|
|
505
587
|
return columns.filter(Boolean);
|
|
506
588
|
}
|
|
507
589
|
}, {
|
|
508
|
-
key: "
|
|
509
|
-
value: function
|
|
510
|
-
var
|
|
511
|
-
var
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
590
|
+
key: "calculateColumnsFromConfig",
|
|
591
|
+
value: function calculateColumnsFromConfig() {
|
|
592
|
+
var _this3 = this;
|
|
593
|
+
var _this$props2 = this.props,
|
|
594
|
+
columns = _this$props2.columns,
|
|
595
|
+
data = _this$props2.data;
|
|
596
|
+
this.hasGroups = columns.some(function (column) {
|
|
597
|
+
return 'columns' in column;
|
|
598
|
+
});
|
|
599
|
+
var columnIndex = 0;
|
|
600
|
+
var groupIndex = 0;
|
|
601
|
+
var gridColumnIndex = 1;
|
|
602
|
+
var calculateGridTemplateColumn = this.calculateGridTemplateColumn.bind(this);
|
|
603
|
+
var calculatedColumns = [];
|
|
604
|
+
var treeColumns = [];
|
|
605
|
+
var makeColumn = function makeColumn(columnElement, parent, isFirst, isLast) {
|
|
606
|
+
var _columnElement$fixed, _ref6, _columnElement$border;
|
|
607
|
+
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;
|
|
608
|
+
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;
|
|
609
|
+
var column = _objectSpread({
|
|
610
|
+
name: childIsColumn(columnElement) ? columnElement.name : '',
|
|
611
|
+
// @ts-ignore
|
|
612
|
+
ref: function ref(node) {
|
|
613
|
+
if (node) {
|
|
614
|
+
var calculatedWidth = node.getBoundingClientRect().width;
|
|
615
|
+
var calculatedHeight = node.getBoundingClientRect().height;
|
|
616
|
+
column.calculatedWidth = calculatedWidth;
|
|
617
|
+
column.calculatedHeight = calculatedHeight;
|
|
618
|
+
}
|
|
619
|
+
if (this !== null && this !== void 0 && this.ref) {
|
|
620
|
+
this.ref.current = node;
|
|
621
|
+
}
|
|
622
|
+
},
|
|
623
|
+
gridColumnWidth: childIsColumn(columnElement) ? calculateGridTemplateColumn(columnElement) : '',
|
|
624
|
+
fixed: (_columnElement$fixed = columnElement.fixed) !== null && _columnElement$fixed !== void 0 ? _columnElement$fixed : parent === null || parent === void 0 ? void 0 : parent.fixed,
|
|
625
|
+
calculatedWidth: 0,
|
|
626
|
+
calculatedHeight: 0,
|
|
627
|
+
borders: (_ref6 = (_columnElement$border = columnElement.borders) !== null && _columnElement$border !== void 0 ? _columnElement$border : leftBordersFromParent) !== null && _ref6 !== void 0 ? _ref6 : rightBordersFromParent,
|
|
628
|
+
parent: parent
|
|
629
|
+
}, columnElement);
|
|
630
|
+
return column;
|
|
631
|
+
};
|
|
632
|
+
var childIsColumn = function childIsColumn(child) {
|
|
633
|
+
return !('columns' in child);
|
|
634
|
+
};
|
|
635
|
+
var childIsGroup = function childIsGroup(child) {
|
|
636
|
+
return 'columns' in child;
|
|
534
637
|
};
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
638
|
+
columns.forEach(function (child, i) {
|
|
639
|
+
if (childIsColumn(child)) {
|
|
640
|
+
var col = makeColumn(child);
|
|
641
|
+
col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(_this3.hasGroups ? '3' : '2', " / ").concat(gridColumnIndex + 1);
|
|
642
|
+
columnIndex++;
|
|
643
|
+
gridColumnIndex++;
|
|
644
|
+
calculatedColumns.push(col);
|
|
645
|
+
treeColumns.push(col);
|
|
646
|
+
} else if (childIsGroup(child)) {
|
|
647
|
+
var Group = makeColumn(child);
|
|
648
|
+
var childCount = child.columns.length;
|
|
649
|
+
var initGridColumn = gridColumnIndex;
|
|
650
|
+
Group.columns = [];
|
|
651
|
+
Group.children = child.children;
|
|
652
|
+
child.columns.forEach(function (child, j) {
|
|
653
|
+
var _Group$columns;
|
|
654
|
+
var isFirst = j === 0;
|
|
655
|
+
var isLast = j === childCount - 1;
|
|
656
|
+
var col = makeColumn(child, Group, isFirst, isLast);
|
|
657
|
+
if (i === 0 && j === 0 && data.some(function (d) {
|
|
658
|
+
return d[ACCORDION];
|
|
659
|
+
})) {
|
|
660
|
+
gridColumnIndex++;
|
|
661
|
+
col.gridArea = "2 / ".concat(gridColumnIndex - 1, " / 3 / ").concat(gridColumnIndex + 1);
|
|
553
662
|
} else {
|
|
554
|
-
|
|
663
|
+
col.gridArea = "2 / ".concat(gridColumnIndex, " / 3 / ").concat(gridColumnIndex + 1);
|
|
555
664
|
}
|
|
556
|
-
|
|
557
|
-
|
|
665
|
+
col.gridArea = "2 / ".concat(gridColumnIndex, " / 3 / ").concat(gridColumnIndex + 1);
|
|
666
|
+
columnIndex++;
|
|
667
|
+
gridColumnIndex++;
|
|
668
|
+
calculatedColumns.push(col);
|
|
669
|
+
(_Group$columns = Group.columns) === null || _Group$columns === void 0 ? void 0 : _Group$columns.push(col);
|
|
558
670
|
});
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
rows.push(dtRow);
|
|
563
|
-
rowIndex++;
|
|
671
|
+
treeColumns.push(Group);
|
|
672
|
+
_this3.gridAreaGroupMap.set(groupIndex, "1 / ".concat(initGridColumn, " / 2 / ").concat(gridColumnIndex));
|
|
673
|
+
groupIndex++;
|
|
564
674
|
}
|
|
565
675
|
});
|
|
566
|
-
return
|
|
676
|
+
return [calculatedColumns, treeColumns];
|
|
567
677
|
}
|
|
568
678
|
}, {
|
|
569
679
|
key: "calculateGridTemplateColumn",
|
|
570
680
|
value: function calculateGridTemplateColumn(c) {
|
|
571
|
-
var
|
|
572
|
-
return (
|
|
681
|
+
var _ref7;
|
|
682
|
+
return (_ref7 = /*#__PURE__*/React.isValidElement(c) ? c.props.gtcWidth : c.gtcWidth) !== null && _ref7 !== void 0 ? _ref7 : this.props.defaultGridTemplateColumnWidth;
|
|
573
683
|
}
|
|
574
684
|
}, {
|
|
575
685
|
key: "getTopScrollOffset",
|
|
@@ -596,7 +706,6 @@ _defineProperty(DataTableRoot, "enhance", [uniqueIDEnhancement(), i18nEnhance(lo
|
|
|
596
706
|
_defineProperty(DataTableRoot, "defaultProps", {
|
|
597
707
|
use: 'primary',
|
|
598
708
|
defaultGridTemplateColumnWidth: 'auto',
|
|
599
|
-
h: 'auto',
|
|
600
709
|
defaultExpandedRows: []
|
|
601
710
|
});
|
|
602
711
|
export var DataTable = createComponent(DataTableRoot, {
|