pne-ui 3.1.3 → 3.1.6
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.
|
@@ -14,6 +14,21 @@ const PneTablePagination_1 = tslib_1.__importDefault(require("./PneTablePaginati
|
|
|
14
14
|
const PneTablePaginationActions_1 = tslib_1.__importDefault(require("./PneTablePaginationActions"));
|
|
15
15
|
const react_i18next_1 = require("react-i18next");
|
|
16
16
|
const useDelayedLoading_1 = tslib_1.__importDefault(require("./useDelayedLoading"));
|
|
17
|
+
const getFirstHeaderRowCellCount = (node) => {
|
|
18
|
+
for (const child of react_1.default.Children.toArray(node)) {
|
|
19
|
+
if (!react_1.default.isValidElement(child)) {
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
if (child.type === PneTableRow_1.default || child.type === 'tr') {
|
|
23
|
+
return react_1.default.Children.count(child.props.children);
|
|
24
|
+
}
|
|
25
|
+
const nestedCount = getFirstHeaderRowCellCount(child.props.children);
|
|
26
|
+
if (nestedCount !== null) {
|
|
27
|
+
return nestedCount;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return null;
|
|
31
|
+
};
|
|
17
32
|
const AbstractTable = (props) => {
|
|
18
33
|
const { data, createTableHeader, sortOptions, createRow, lastRow = null, paginator, loading = false, stickyHeader = false, showNothingIsFoundRow = true, tableSx = {}, boxSx = {}, noRowsMessage, skeletonRowHeight, } = props;
|
|
19
34
|
const { t } = (0, react_i18next_1.useTranslation)();
|
|
@@ -23,16 +38,11 @@ const AbstractTable = (props) => {
|
|
|
23
38
|
const lastRowHeightRef = (0, react_1.useRef)(undefined);
|
|
24
39
|
const lastHeaderHeightRef = (0, react_1.useRef)(0);
|
|
25
40
|
const lastColumnWidthsRef = (0, react_1.useRef)([]);
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
(0, react_1.useEffect)(() => {
|
|
29
|
-
if (containerRef?.current) {
|
|
30
|
-
const header = containerRef.current.querySelector('table thead tr');
|
|
31
|
-
if (header) {
|
|
32
|
-
setColumnCount(header.childElementCount);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
41
|
+
const tableHeader = createTableHeader({
|
|
42
|
+
sortOptions: sortOptions
|
|
35
43
|
});
|
|
44
|
+
const columnCount = getFirstHeaderRowCellCount(tableHeader) ?? 1;
|
|
45
|
+
const visibleRows = react_1.default.useMemo(() => data, [data, sortOptions?.order, sortOptions?.sortIndex]);
|
|
36
46
|
(0, react_1.useLayoutEffect)(() => {
|
|
37
47
|
if (!showSkeleton && tableContainerRef.current && visibleRows.length > 0) {
|
|
38
48
|
const containerHeight = tableContainerRef.current.offsetHeight;
|
|
@@ -60,11 +70,28 @@ const AbstractTable = (props) => {
|
|
|
60
70
|
};
|
|
61
71
|
const skeletonRowCount = paginator?.rowsPerPage || 10;
|
|
62
72
|
const cellPadding = 16; // 8px top + 8px bottom
|
|
73
|
+
const cellBorderHeight = 2; // 1px top + 1px bottom from PneTableRow
|
|
63
74
|
const actualSkeletonRowHeight = lastRowHeightRef.current ?? skeletonRowHeight;
|
|
75
|
+
const skeletonRowSx = actualSkeletonRowHeight
|
|
76
|
+
? {
|
|
77
|
+
height: actualSkeletonRowHeight,
|
|
78
|
+
maxHeight: actualSkeletonRowHeight,
|
|
79
|
+
}
|
|
80
|
+
: undefined;
|
|
81
|
+
const skeletonCellSx = actualSkeletonRowHeight
|
|
82
|
+
? {
|
|
83
|
+
'&&': {
|
|
84
|
+
boxSizing: 'border-box',
|
|
85
|
+
height: actualSkeletonRowHeight,
|
|
86
|
+
maxHeight: actualSkeletonRowHeight,
|
|
87
|
+
overflow: 'hidden',
|
|
88
|
+
},
|
|
89
|
+
}
|
|
90
|
+
: undefined;
|
|
64
91
|
const skeletonItemHeight = actualSkeletonRowHeight
|
|
65
|
-
? Math.max(16, actualSkeletonRowHeight - cellPadding)
|
|
92
|
+
? Math.max(16, actualSkeletonRowHeight - cellPadding - cellBorderHeight)
|
|
66
93
|
: undefined;
|
|
67
|
-
const skeletonTableHeight = showSkeleton && actualSkeletonRowHeight
|
|
94
|
+
const skeletonTableHeight = showSkeleton && actualSkeletonRowHeight && lastHeaderHeightRef.current > 0
|
|
68
95
|
? lastHeaderHeightRef.current + actualSkeletonRowHeight * skeletonRowCount
|
|
69
96
|
: undefined;
|
|
70
97
|
const SKELETON_COL_HIDDEN = 30;
|
|
@@ -84,10 +111,8 @@ const AbstractTable = (props) => {
|
|
|
84
111
|
react_1.default.createElement(TableContainer_1.default, { ref: tableContainerRef },
|
|
85
112
|
react_1.default.createElement(Table_1.default, { stickyHeader: stickyHeader, sx: { ...tableSx, ...(skeletonTableHeight ? { height: skeletonTableHeight } : {}) } },
|
|
86
113
|
showSkeleton && lastColumnWidthsRef.current.length > 0 && (react_1.default.createElement("colgroup", null, lastColumnWidthsRef.current.map((width, i) => (react_1.default.createElement("col", { key: i, style: { width } }))))),
|
|
87
|
-
react_1.default.createElement(TableHead_1.default, null,
|
|
88
|
-
|
|
89
|
-
})),
|
|
90
|
-
react_1.default.createElement(TableBody_1.default, null, showSkeleton ? (Array.from({ length: skeletonRowCount }).map((_, rowIndex) => (react_1.default.createElement(PneTableRow_1.default, { key: `skeleton-${rowIndex}`, hover: false }, Array.from({ length: columnCount }).map((_, colIndex) => (react_1.default.createElement(PneTableCell_1.default, { key: `skeleton-${rowIndex}-${colIndex}` }, skeletonCellContent(rowIndex, colIndex)))))))) : (react_1.default.createElement(react_1.default.Fragment, null,
|
|
114
|
+
react_1.default.createElement(TableHead_1.default, null, tableHeader),
|
|
115
|
+
react_1.default.createElement(TableBody_1.default, null, showSkeleton ? (Array.from({ length: skeletonRowCount }).map((_, rowIndex) => (react_1.default.createElement(PneTableRow_1.default, { key: `skeleton-${rowIndex}`, hover: false, sx: skeletonRowSx }, Array.from({ length: columnCount }).map((_, colIndex) => (react_1.default.createElement(PneTableCell_1.default, { key: `skeleton-${rowIndex}-${colIndex}`, sx: skeletonCellSx }, skeletonCellContent(rowIndex, colIndex)))))))) : (react_1.default.createElement(react_1.default.Fragment, null,
|
|
91
116
|
visibleRows.map(createRow),
|
|
92
117
|
visibleRows.length === 0 && showNothingIsFoundRow && (react_1.default.createElement(PneTableRow_1.default, { hover: false },
|
|
93
118
|
react_1.default.createElement(PneTableCell_1.default, { colSpan: columnCount }, noRowsMessage || t('advancedSearch.noRows')))),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractTable.js","sourceRoot":"","sources":["../../../src/component/table/AbstractTable.tsx"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"AbstractTable.js","sourceRoot":"","sources":["../../../src/component/table/AbstractTable.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { useLayoutEffect, useRef } from 'react';
|
|
2
2
|
import Table from '@mui/material/Table';
|
|
3
3
|
import TableBody from '@mui/material/TableBody';
|
|
4
4
|
import TableContainer from '@mui/material/TableContainer';
|
|
@@ -11,6 +11,21 @@ import PneTablePagination from './PneTablePagination';
|
|
|
11
11
|
import PneTablePaginationActions from './PneTablePaginationActions';
|
|
12
12
|
import { useTranslation } from "react-i18next";
|
|
13
13
|
import useDelayedLoading from "./useDelayedLoading";
|
|
14
|
+
const getFirstHeaderRowCellCount = (node) => {
|
|
15
|
+
for (const child of React.Children.toArray(node)) {
|
|
16
|
+
if (!React.isValidElement(child)) {
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
if (child.type === PneTableRow || child.type === 'tr') {
|
|
20
|
+
return React.Children.count(child.props.children);
|
|
21
|
+
}
|
|
22
|
+
const nestedCount = getFirstHeaderRowCellCount(child.props.children);
|
|
23
|
+
if (nestedCount !== null) {
|
|
24
|
+
return nestedCount;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return null;
|
|
28
|
+
};
|
|
14
29
|
const AbstractTable = (props) => {
|
|
15
30
|
const { data, createTableHeader, sortOptions, createRow, lastRow = null, paginator, loading = false, stickyHeader = false, showNothingIsFoundRow = true, tableSx = {}, boxSx = {}, noRowsMessage, skeletonRowHeight, } = props;
|
|
16
31
|
const { t } = useTranslation();
|
|
@@ -20,16 +35,11 @@ const AbstractTable = (props) => {
|
|
|
20
35
|
const lastRowHeightRef = useRef(undefined);
|
|
21
36
|
const lastHeaderHeightRef = useRef(0);
|
|
22
37
|
const lastColumnWidthsRef = useRef([]);
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
useEffect(() => {
|
|
26
|
-
if (containerRef?.current) {
|
|
27
|
-
const header = containerRef.current.querySelector('table thead tr');
|
|
28
|
-
if (header) {
|
|
29
|
-
setColumnCount(header.childElementCount);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
38
|
+
const tableHeader = createTableHeader({
|
|
39
|
+
sortOptions: sortOptions
|
|
32
40
|
});
|
|
41
|
+
const columnCount = getFirstHeaderRowCellCount(tableHeader) ?? 1;
|
|
42
|
+
const visibleRows = React.useMemo(() => data, [data, sortOptions?.order, sortOptions?.sortIndex]);
|
|
33
43
|
useLayoutEffect(() => {
|
|
34
44
|
if (!showSkeleton && tableContainerRef.current && visibleRows.length > 0) {
|
|
35
45
|
const containerHeight = tableContainerRef.current.offsetHeight;
|
|
@@ -57,11 +67,28 @@ const AbstractTable = (props) => {
|
|
|
57
67
|
};
|
|
58
68
|
const skeletonRowCount = paginator?.rowsPerPage || 10;
|
|
59
69
|
const cellPadding = 16; // 8px top + 8px bottom
|
|
70
|
+
const cellBorderHeight = 2; // 1px top + 1px bottom from PneTableRow
|
|
60
71
|
const actualSkeletonRowHeight = lastRowHeightRef.current ?? skeletonRowHeight;
|
|
72
|
+
const skeletonRowSx = actualSkeletonRowHeight
|
|
73
|
+
? {
|
|
74
|
+
height: actualSkeletonRowHeight,
|
|
75
|
+
maxHeight: actualSkeletonRowHeight,
|
|
76
|
+
}
|
|
77
|
+
: undefined;
|
|
78
|
+
const skeletonCellSx = actualSkeletonRowHeight
|
|
79
|
+
? {
|
|
80
|
+
'&&': {
|
|
81
|
+
boxSizing: 'border-box',
|
|
82
|
+
height: actualSkeletonRowHeight,
|
|
83
|
+
maxHeight: actualSkeletonRowHeight,
|
|
84
|
+
overflow: 'hidden',
|
|
85
|
+
},
|
|
86
|
+
}
|
|
87
|
+
: undefined;
|
|
61
88
|
const skeletonItemHeight = actualSkeletonRowHeight
|
|
62
|
-
? Math.max(16, actualSkeletonRowHeight - cellPadding)
|
|
89
|
+
? Math.max(16, actualSkeletonRowHeight - cellPadding - cellBorderHeight)
|
|
63
90
|
: undefined;
|
|
64
|
-
const skeletonTableHeight = showSkeleton && actualSkeletonRowHeight
|
|
91
|
+
const skeletonTableHeight = showSkeleton && actualSkeletonRowHeight && lastHeaderHeightRef.current > 0
|
|
65
92
|
? lastHeaderHeightRef.current + actualSkeletonRowHeight * skeletonRowCount
|
|
66
93
|
: undefined;
|
|
67
94
|
const SKELETON_COL_HIDDEN = 30;
|
|
@@ -81,10 +108,8 @@ const AbstractTable = (props) => {
|
|
|
81
108
|
React.createElement(TableContainer, { ref: tableContainerRef },
|
|
82
109
|
React.createElement(Table, { stickyHeader: stickyHeader, sx: { ...tableSx, ...(skeletonTableHeight ? { height: skeletonTableHeight } : {}) } },
|
|
83
110
|
showSkeleton && lastColumnWidthsRef.current.length > 0 && (React.createElement("colgroup", null, lastColumnWidthsRef.current.map((width, i) => (React.createElement("col", { key: i, style: { width } }))))),
|
|
84
|
-
React.createElement(TableHead, null,
|
|
85
|
-
|
|
86
|
-
})),
|
|
87
|
-
React.createElement(TableBody, null, showSkeleton ? (Array.from({ length: skeletonRowCount }).map((_, rowIndex) => (React.createElement(PneTableRow, { key: `skeleton-${rowIndex}`, hover: false }, Array.from({ length: columnCount }).map((_, colIndex) => (React.createElement(PneTableCell, { key: `skeleton-${rowIndex}-${colIndex}` }, skeletonCellContent(rowIndex, colIndex)))))))) : (React.createElement(React.Fragment, null,
|
|
111
|
+
React.createElement(TableHead, null, tableHeader),
|
|
112
|
+
React.createElement(TableBody, null, showSkeleton ? (Array.from({ length: skeletonRowCount }).map((_, rowIndex) => (React.createElement(PneTableRow, { key: `skeleton-${rowIndex}`, hover: false, sx: skeletonRowSx }, Array.from({ length: columnCount }).map((_, colIndex) => (React.createElement(PneTableCell, { key: `skeleton-${rowIndex}-${colIndex}`, sx: skeletonCellSx }, skeletonCellContent(rowIndex, colIndex)))))))) : (React.createElement(React.Fragment, null,
|
|
88
113
|
visibleRows.map(createRow),
|
|
89
114
|
visibleRows.length === 0 && showNothingIsFoundRow && (React.createElement(PneTableRow, { hover: false },
|
|
90
115
|
React.createElement(PneTableCell, { colSpan: columnCount }, noRowsMessage || t('advancedSearch.noRows')))),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractTable.js","sourceRoot":"","sources":["../../../src/component/table/AbstractTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,
|
|
1
|
+
{"version":3,"file":"AbstractTable.js","sourceRoot":"","sources":["../../../src/component/table/AbstractTable.tsx"],"names":[],"mappings":"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"}
|