infinity-ui-elements 1.7.10 → 1.7.11
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/dist/components/Table/Table.d.ts +4 -1
- package/dist/components/Table/Table.d.ts.map +1 -1
- package/dist/components/Table/Table.stories.d.ts +1 -0
- package/dist/components/Table/Table.stories.d.ts.map +1 -1
- package/dist/index.esm.js +39 -8
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +39 -8
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -2932,7 +2932,7 @@ function renderDefaultEmptyState({ colSpan }) {
|
|
|
2932
2932
|
}
|
|
2933
2933
|
|
|
2934
2934
|
// ==================== Component ====================
|
|
2935
|
-
function TableComponent({ className, wrapperClassName, containerClassName, variant, size = "medium", table, enableRowSelection = false, enableSelectAll = false, isLoading = false, loadingComponent, emptyComponent, enableHorizontalScroll = false, stickyHeader = false, maxHeight, showRowHover = true, onRowClick, rowClassName, headerClassName, cellClassName, showHeaderBackground = true, detailPanel, hideColumnsOnDetailOpen = 3, selectedRowId, onRowSelectionChange, columnWidths, columnMinWidths, columnMaxWidths, ...props }, ref) {
|
|
2935
|
+
function TableComponent({ className, wrapperClassName, containerClassName, variant, size = "medium", table, enableRowSelection = false, enableSelectAll = false, isLoading = false, loading, loadingComponent, emptyComponent, enableHorizontalScroll = false, stickyHeader = false, maxHeight, showRowHover = true, onRowClick, rowClassName, headerClassName, cellClassName, showHeaderBackground = true, detailPanel, hideColumnsOnDetailOpen = 3, selectedRowId, onRowSelectionChange, loadingSkeletonRows, loadingSkeletonHeight, columnWidths, columnMinWidths, columnMaxWidths, ...props }, ref) {
|
|
2936
2936
|
// ==================== State ====================
|
|
2937
2937
|
const [internalSelectedRowId, setInternalSelectedRowId] = React__namespace.useState(null);
|
|
2938
2938
|
const selectedRowIdRef = React__namespace.useRef(null);
|
|
@@ -2995,6 +2995,43 @@ function TableComponent({ className, wrapperClassName, containerClassName, varia
|
|
|
2995
2995
|
maxHeight: typeof maxHeight === "number" ? `${maxHeight}px` : maxHeight,
|
|
2996
2996
|
};
|
|
2997
2997
|
}, [maxHeight]);
|
|
2998
|
+
const resolvedLoading = typeof loading === "boolean" ? loading : Boolean(isLoading);
|
|
2999
|
+
const skeletonRowCount = loadingSkeletonRows ?? 5;
|
|
3000
|
+
const sizeKey = size || "medium";
|
|
3001
|
+
const skeletonHeightMap = {
|
|
3002
|
+
small: 16,
|
|
3003
|
+
medium: 20,
|
|
3004
|
+
large: 24,
|
|
3005
|
+
};
|
|
3006
|
+
const skeletonCellHeight = normalizeSizeValue(loadingSkeletonHeight ?? skeletonHeightMap[sizeKey]);
|
|
3007
|
+
const selectionSkeletonSize = sizeKey === "small" ? 14 : sizeKey === "large" ? 20 : 16;
|
|
3008
|
+
const renderSkeletonRows = React__namespace.useCallback(() => {
|
|
3009
|
+
const visibleColumns = table.getVisibleLeafColumns();
|
|
3010
|
+
if (visibleColumns.length === 0) {
|
|
3011
|
+
return renderDefaultLoadingState({
|
|
3012
|
+
colSpan: table.getAllColumns().length || 1,
|
|
3013
|
+
});
|
|
3014
|
+
}
|
|
3015
|
+
return Array.from({ length: skeletonRowCount }).map((_, rowIndex) => (jsxRuntime.jsxs("tr", { children: [enableRowSelection && (jsxRuntime.jsx("td", { className: cn(tableCellVariants({ size: sizeKey }), "w-10", cellClassName), children: jsxRuntime.jsx(Skeleton, { variant: "circle", width: selectionSkeletonSize, height: selectionSkeletonSize }) })), visibleColumns.map((column) => (jsxRuntime.jsx("td", { className: cn(tableCellVariants({ size: sizeKey }), column.columnDef.meta?.cellClassName, cellClassName), style: getColumnStyle(column.id, {
|
|
3016
|
+
width: column.getSize(),
|
|
3017
|
+
minWidth: column.columnDef.minSize,
|
|
3018
|
+
maxWidth: column.columnDef.maxSize,
|
|
3019
|
+
}), children: jsxRuntime.jsx(Skeleton, { className: "w-full", height: skeletonCellHeight, rounded: "medium" }) }, `${column.id}-${rowIndex}`)))] }, `skeleton-row-${rowIndex}`)));
|
|
3020
|
+
}, [
|
|
3021
|
+
cellClassName,
|
|
3022
|
+
enableRowSelection,
|
|
3023
|
+
getColumnStyle,
|
|
3024
|
+
selectionSkeletonSize,
|
|
3025
|
+
sizeKey,
|
|
3026
|
+
skeletonCellHeight,
|
|
3027
|
+
skeletonRowCount,
|
|
3028
|
+
table,
|
|
3029
|
+
]);
|
|
3030
|
+
const renderLoadingContent = React__namespace.useCallback(() => {
|
|
3031
|
+
if (loadingComponent)
|
|
3032
|
+
return loadingComponent;
|
|
3033
|
+
return renderSkeletonRows();
|
|
3034
|
+
}, [loadingComponent, renderSkeletonRows]);
|
|
2998
3035
|
// ==================== Callbacks ====================
|
|
2999
3036
|
const getRowClassName = React__namespace.useCallback((row) => {
|
|
3000
3037
|
if (typeof rowClassName === "function") {
|
|
@@ -3031,19 +3068,13 @@ function TableComponent({ className, wrapperClassName, containerClassName, varia
|
|
|
3031
3068
|
onRowSelectionChange(null);
|
|
3032
3069
|
}
|
|
3033
3070
|
};
|
|
3034
|
-
// ==================== Render Helpers ====================
|
|
3035
|
-
const renderLoadingState = () => {
|
|
3036
|
-
if (loadingComponent)
|
|
3037
|
-
return loadingComponent;
|
|
3038
|
-
return renderDefaultLoadingState({ colSpan: table.getAllColumns().length });
|
|
3039
|
-
};
|
|
3040
3071
|
const renderEmptyState = () => {
|
|
3041
3072
|
if (emptyComponent)
|
|
3042
3073
|
return emptyComponent;
|
|
3043
3074
|
return renderDefaultEmptyState({ colSpan: table.getAllColumns().length });
|
|
3044
3075
|
};
|
|
3045
3076
|
// ==================== Render ====================
|
|
3046
|
-
return (jsxRuntime.jsx("div", { ref: ref, className: cn("w-full", wrapperClassName), ...props, children: jsxRuntime.jsxs("div", { className: cn("relative", enableHorizontalScroll ? "overflow-x-auto" : "overflow-x-hidden", maxHeight && "overflow-y-auto", containerClassName), style: containerStyle, children: [jsxRuntime.jsxs("table", { className: cn(tableVariants({ variant, size }), className), children: [jsxRuntime.jsx(TableHeader, { headerGroups: headerGroups, enableRowSelection: enableRowSelection, enableSelectAll: enableSelectAll, showHeaderBackground: showHeaderBackground, stickyHeader: stickyHeader, size: size || "medium", headerClassName: headerClassName, isDetailPanelOpen: isDetailPanelOpen, visibleHeadersCount: visibleHeadersCount, onToggleAllRows: (e) => table.getToggleAllRowsSelectedHandler()(e), isAllRowsSelected: table.getIsAllRowsSelected(), isSomeRowsSelected: table.getIsSomeRowsSelected(), getColumnStyle: getColumnStyle }),
|
|
3077
|
+
return (jsxRuntime.jsx("div", { ref: ref, className: cn("w-full", wrapperClassName), ...props, children: jsxRuntime.jsxs("div", { className: cn("relative", enableHorizontalScroll ? "overflow-x-auto" : "overflow-x-hidden", maxHeight && "overflow-y-auto", containerClassName), style: containerStyle, children: [jsxRuntime.jsxs("table", { className: cn(tableVariants({ variant, size }), className), children: [jsxRuntime.jsx(TableHeader, { headerGroups: headerGroups, enableRowSelection: enableRowSelection, enableSelectAll: enableSelectAll, showHeaderBackground: showHeaderBackground, stickyHeader: stickyHeader, size: size || "medium", headerClassName: headerClassName, isDetailPanelOpen: isDetailPanelOpen, visibleHeadersCount: visibleHeadersCount, onToggleAllRows: (e) => table.getToggleAllRowsSelectedHandler()(e), isAllRowsSelected: table.getIsAllRowsSelected(), isSomeRowsSelected: table.getIsSomeRowsSelected(), getColumnStyle: getColumnStyle }), resolvedLoading ? (jsxRuntime.jsx("tbody", { children: renderLoadingContent() })) : !hasData ? (jsxRuntime.jsx("tbody", { children: renderEmptyState() })) : (jsxRuntime.jsx(TableBody, { rows: table.getRowModel().rows, enableRowSelection: enableRowSelection, size: size || "medium", variant: variant || "default", showRowHover: showRowHover, cellClassName: cellClassName, isDetailPanelOpen: isDetailPanelOpen, visibleHeadersCount: visibleHeadersCount, effectiveSelectedRowId: effectiveSelectedRowId, onRowClick: onRowClick, getRowClassName: getRowClassName, handleRowClick: handleRowClickInternal, getColumnStyle: getColumnStyle }))] }), detailPanel && (jsxRuntime.jsx(DetailPanel, { isOpen: isDetailPanelOpen, content: detailPanel, data: getSelectedRowData(), onClose: handleDetailPanelClose }))] }) }));
|
|
3047
3078
|
}
|
|
3048
3079
|
// ==================== Export ====================
|
|
3049
3080
|
const Table = React__namespace.forwardRef(TableComponent);
|