@sustaina/shared-ui 1.67.0 → 1.68.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +11 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +128 -10
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +130 -12
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -39,6 +39,7 @@ type AuditFooterProps = {
|
|
|
39
39
|
updatedBy?: string | null;
|
|
40
40
|
onDelete?: () => void;
|
|
41
41
|
canDelete?: boolean;
|
|
42
|
+
canDeleteBehavior?: "hidden" | "disabled";
|
|
42
43
|
emptyValue?: React__default.ReactNode;
|
|
43
44
|
labels?: {
|
|
44
45
|
createdOn?: string;
|
|
@@ -404,6 +405,15 @@ type DataTableComponentProps<TData> = {
|
|
|
404
405
|
column: Column$1<TData>;
|
|
405
406
|
table: Table$1<TData>;
|
|
406
407
|
}) => React__default.ComponentProps<typeof TableCell>);
|
|
408
|
+
tableFooterProps?: React__default.ComponentProps<typeof TableFooter>;
|
|
409
|
+
tableFooterRowProps?: React__default.ComponentProps<typeof TableRow> | ((info: {
|
|
410
|
+
footerGroup: HeaderGroup<TData>;
|
|
411
|
+
table: Table$1<TData>;
|
|
412
|
+
}) => React__default.ComponentProps<typeof TableRow>);
|
|
413
|
+
tableFooterCellProps?: React__default.ComponentProps<typeof TableHead> | ((info: {
|
|
414
|
+
footer: Header<TData, unknown>;
|
|
415
|
+
table: Table$1<TData>;
|
|
416
|
+
}) => React__default.ComponentProps<typeof TableHead>);
|
|
407
417
|
columnResizerProps?: Omit<ColumnResizerProps, "header">;
|
|
408
418
|
columnSeparatorProps?: DataTableColumnSeparatorProps;
|
|
409
419
|
};
|
|
@@ -466,6 +476,7 @@ declare module "@tanstack/react-table" {
|
|
|
466
476
|
headerProps?: React.ComponentProps<"th">;
|
|
467
477
|
cellProps?: React.ComponentProps<"td">;
|
|
468
478
|
filterCellProps?: React.ComponentProps<"td">;
|
|
479
|
+
footerProps?: React.ComponentProps<"th">;
|
|
469
480
|
useColumnSizing?: boolean;
|
|
470
481
|
columnSeparatorProps?: ColumnSeparatorProps;
|
|
471
482
|
renderColumnFilter?: (props: DataTableColumnFilterProps<TData>) => ReactNode;
|
package/dist/index.d.ts
CHANGED
|
@@ -39,6 +39,7 @@ type AuditFooterProps = {
|
|
|
39
39
|
updatedBy?: string | null;
|
|
40
40
|
onDelete?: () => void;
|
|
41
41
|
canDelete?: boolean;
|
|
42
|
+
canDeleteBehavior?: "hidden" | "disabled";
|
|
42
43
|
emptyValue?: React__default.ReactNode;
|
|
43
44
|
labels?: {
|
|
44
45
|
createdOn?: string;
|
|
@@ -404,6 +405,15 @@ type DataTableComponentProps<TData> = {
|
|
|
404
405
|
column: Column$1<TData>;
|
|
405
406
|
table: Table$1<TData>;
|
|
406
407
|
}) => React__default.ComponentProps<typeof TableCell>);
|
|
408
|
+
tableFooterProps?: React__default.ComponentProps<typeof TableFooter>;
|
|
409
|
+
tableFooterRowProps?: React__default.ComponentProps<typeof TableRow> | ((info: {
|
|
410
|
+
footerGroup: HeaderGroup<TData>;
|
|
411
|
+
table: Table$1<TData>;
|
|
412
|
+
}) => React__default.ComponentProps<typeof TableRow>);
|
|
413
|
+
tableFooterCellProps?: React__default.ComponentProps<typeof TableHead> | ((info: {
|
|
414
|
+
footer: Header<TData, unknown>;
|
|
415
|
+
table: Table$1<TData>;
|
|
416
|
+
}) => React__default.ComponentProps<typeof TableHead>);
|
|
407
417
|
columnResizerProps?: Omit<ColumnResizerProps, "header">;
|
|
408
418
|
columnSeparatorProps?: DataTableColumnSeparatorProps;
|
|
409
419
|
};
|
|
@@ -466,6 +476,7 @@ declare module "@tanstack/react-table" {
|
|
|
466
476
|
headerProps?: React.ComponentProps<"th">;
|
|
467
477
|
cellProps?: React.ComponentProps<"td">;
|
|
468
478
|
filterCellProps?: React.ComponentProps<"td">;
|
|
479
|
+
footerProps?: React.ComponentProps<"th">;
|
|
469
480
|
useColumnSizing?: boolean;
|
|
470
481
|
columnSeparatorProps?: ColumnSeparatorProps;
|
|
471
482
|
renderColumnFilter?: (props: DataTableColumnFilterProps<TData>) => ReactNode;
|
package/dist/index.js
CHANGED
|
@@ -3472,6 +3472,7 @@ var AuditFooter = ({
|
|
|
3472
3472
|
updatedBy,
|
|
3473
3473
|
onDelete,
|
|
3474
3474
|
canDelete = true,
|
|
3475
|
+
canDeleteBehavior,
|
|
3475
3476
|
emptyValue = "-",
|
|
3476
3477
|
labels,
|
|
3477
3478
|
classNames,
|
|
@@ -3492,6 +3493,9 @@ var AuditFooter = ({
|
|
|
3492
3493
|
const timeFormatter = formatters?.time ?? ((value) => formatISODate(value, "H:i:s"));
|
|
3493
3494
|
const userFormatter = formatters?.user ?? ((value) => value ?? emptyValue);
|
|
3494
3495
|
const resolvedDeleteIcon = deleteIcon ?? /* @__PURE__ */ jsxRuntime.jsx(TrashIcon, { className: "w-5 h-5" });
|
|
3496
|
+
const resolvedCanDeleteBehavior = canDeleteBehavior ?? "hidden";
|
|
3497
|
+
const shouldShowDelete = canDelete || resolvedCanDeleteBehavior === "disabled";
|
|
3498
|
+
const deleteButtonClassName = canDelete ? cn("w-5 h-5 cursor-pointer text-red-500", classNames?.deleteButton) : cn("w-5 h-5 text-gray-300 cursor-not-allowed", classNames?.deleteButtonDisabled);
|
|
3495
3499
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex w-full h-14 mt-12 justify-between items-end px-3", classNames?.root), children: [
|
|
3496
3500
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3497
3501
|
"div",
|
|
@@ -3516,10 +3520,10 @@ var AuditFooter = ({
|
|
|
3516
3520
|
]
|
|
3517
3521
|
}
|
|
3518
3522
|
),
|
|
3519
|
-
|
|
3523
|
+
shouldShowDelete && /* @__PURE__ */ jsxRuntime.jsx(
|
|
3520
3524
|
"div",
|
|
3521
3525
|
{
|
|
3522
|
-
className:
|
|
3526
|
+
className: deleteButtonClassName,
|
|
3523
3527
|
onClick: canDelete ? onDelete : void 0,
|
|
3524
3528
|
"aria-label": deleteAriaLabel,
|
|
3525
3529
|
role: "button",
|
|
@@ -9235,7 +9239,11 @@ var modelOptions = [
|
|
|
9235
9239
|
"getVisibleLeafColumns",
|
|
9236
9240
|
"getLeftVisibleLeafColumns",
|
|
9237
9241
|
"getRightVisibleLeafColumns",
|
|
9238
|
-
"getCenterVisibleLeafColumns"
|
|
9242
|
+
"getCenterVisibleLeafColumns",
|
|
9243
|
+
"getFooterGroups",
|
|
9244
|
+
"getLeftFooterGroups",
|
|
9245
|
+
"getRightFooterGroups",
|
|
9246
|
+
"getCenterFooterGroups"
|
|
9239
9247
|
];
|
|
9240
9248
|
var DataTableDevTool = ({ table }) => {
|
|
9241
9249
|
const [open, setOpen] = React.useState(false);
|
|
@@ -9665,7 +9673,7 @@ var TableHeaderRows = ({
|
|
|
9665
9673
|
const { isLastLeftPinnedColumn } = getColumnPinningInfo(header.column);
|
|
9666
9674
|
const { isFirstRightPinnedColumn } = getColumnPinningInfo(nextHeader.column);
|
|
9667
9675
|
const headerGroupLength = header.headerGroup.headers.length;
|
|
9668
|
-
const showSeparator = header.index !== headerGroupLength - 1 && !isLastLeftPinnedColumn && !isFirstRightPinnedColumn;
|
|
9676
|
+
const showSeparator = header.index !== headerGroupLength - 1 && !isLastLeftPinnedColumn && !isFirstRightPinnedColumn && (!header.isPlaceholder || !nextHeader.isPlaceholder);
|
|
9669
9677
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
9670
9678
|
TableHead,
|
|
9671
9679
|
{
|
|
@@ -9680,7 +9688,7 @@ var TableHeaderRows = ({
|
|
|
9680
9688
|
),
|
|
9681
9689
|
style: {
|
|
9682
9690
|
...style,
|
|
9683
|
-
width: useColumnSizing ? header.
|
|
9691
|
+
width: useColumnSizing ? `calc(var(--header-${header.id}-size, ${header.getSize()}) * 1px)` : void 0,
|
|
9684
9692
|
minWidth: useColumnSizing ? header.column.columnDef.minSize : void 0,
|
|
9685
9693
|
maxWidth: useColumnSizing ? header.column.columnDef.maxSize : void 0,
|
|
9686
9694
|
...tableHeadCellProps?.style,
|
|
@@ -9731,7 +9739,7 @@ var TableFilterRow = ({
|
|
|
9731
9739
|
),
|
|
9732
9740
|
style: {
|
|
9733
9741
|
...style,
|
|
9734
|
-
width: useColumnSizing ? column.getSize() : void 0,
|
|
9742
|
+
width: useColumnSizing ? `calc(var(--col-${column.id}-size, ${column.getSize()}) * 1px)` : void 0,
|
|
9735
9743
|
minWidth: useColumnSizing ? column.columnDef.minSize : void 0,
|
|
9736
9744
|
maxWidth: useColumnSizing ? column.columnDef.maxSize : void 0,
|
|
9737
9745
|
...tableFilterCellProps?.style,
|
|
@@ -9815,7 +9823,7 @@ var TableDataRows = ({
|
|
|
9815
9823
|
),
|
|
9816
9824
|
style: {
|
|
9817
9825
|
...style,
|
|
9818
|
-
width: useColumnSizing ? cell.column.getSize() : void 0,
|
|
9826
|
+
width: useColumnSizing ? `calc(var(--col-${cell.column.id}-size, ${cell.column.getSize()}) * 1px)` : void 0,
|
|
9819
9827
|
minWidth: useColumnSizing ? cell.column.columnDef.minSize : void 0,
|
|
9820
9828
|
maxWidth: useColumnSizing ? cell.column.columnDef.maxSize : void 0,
|
|
9821
9829
|
...tableDataCellProps?.style,
|
|
@@ -9838,6 +9846,67 @@ var TableDataRows = ({
|
|
|
9838
9846
|
) })
|
|
9839
9847
|
] });
|
|
9840
9848
|
};
|
|
9849
|
+
var MemoizedTableDataRows = React__namespace.default.memo(
|
|
9850
|
+
TableDataRows,
|
|
9851
|
+
(prev, next) => prev.table.options.data === next.table.options.data
|
|
9852
|
+
);
|
|
9853
|
+
var TableFooterRows = ({
|
|
9854
|
+
table,
|
|
9855
|
+
columnResizing,
|
|
9856
|
+
components,
|
|
9857
|
+
virtual
|
|
9858
|
+
}) => {
|
|
9859
|
+
const hasAnyFooter = table.getAllColumns().some((col) => col.columnDef.footer != null);
|
|
9860
|
+
if (!hasAnyFooter) return null;
|
|
9861
|
+
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: table.getFooterGroups().map((footerGroup) => {
|
|
9862
|
+
const tableFooterRowProps = typeof components?.tableFooterRowProps === "function" ? components.tableFooterRowProps({ footerGroup, table }) : components?.tableFooterRowProps;
|
|
9863
|
+
return /* @__PURE__ */ jsxRuntime.jsx(TableRow, { ...tableFooterRowProps, children: footerGroup.headers.map((footer) => {
|
|
9864
|
+
const { classes, style } = getColumnPinningStyles(footer.column);
|
|
9865
|
+
const useColumnSizing = footer.column.columnDef?.meta?.useColumnSizing ?? columnResizing?.enabled ?? virtual?.enabled ?? false;
|
|
9866
|
+
const tableFooterCellProps = typeof components?.tableFooterCellProps === "function" ? components.tableFooterCellProps({ footer, table }) : components?.tableFooterCellProps;
|
|
9867
|
+
const nextFooter = footerGroup.headers[footer.index + 1] ?? footer;
|
|
9868
|
+
const { isLastLeftPinnedColumn } = getColumnPinningInfo(footer.column);
|
|
9869
|
+
const { isFirstRightPinnedColumn } = getColumnPinningInfo(nextFooter.column);
|
|
9870
|
+
const footerGroupLength = footer.headerGroup.headers.length;
|
|
9871
|
+
const showSeparator = footer.index !== footerGroupLength - 1 && !isLastLeftPinnedColumn && !isFirstRightPinnedColumn && (!footer.isPlaceholder || !nextFooter.isPlaceholder);
|
|
9872
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
9873
|
+
TableHead,
|
|
9874
|
+
{
|
|
9875
|
+
"data-testid": `footer-cell-${footer.id}`,
|
|
9876
|
+
colSpan: footer.colSpan,
|
|
9877
|
+
...tableFooterCellProps,
|
|
9878
|
+
...footer.column.columnDef?.meta?.footerProps,
|
|
9879
|
+
className: cn(
|
|
9880
|
+
classes,
|
|
9881
|
+
tableFooterCellProps?.className,
|
|
9882
|
+
footer.column.columnDef?.meta?.footerProps?.className
|
|
9883
|
+
),
|
|
9884
|
+
style: {
|
|
9885
|
+
...style,
|
|
9886
|
+
width: useColumnSizing ? `calc(var(--col-${footer.column.id}-size, ${footer.column.getSize()}) * 1px)` : void 0,
|
|
9887
|
+
minWidth: useColumnSizing ? footer.column.columnDef.minSize : void 0,
|
|
9888
|
+
maxWidth: useColumnSizing ? footer.column.columnDef.maxSize : void 0,
|
|
9889
|
+
...tableFooterCellProps?.style,
|
|
9890
|
+
...footer.column.columnDef?.meta?.footerProps?.style
|
|
9891
|
+
},
|
|
9892
|
+
children: [
|
|
9893
|
+
footer.isPlaceholder ? null : reactTable.flexRender(footer.column.columnDef.footer, footer.getContext()),
|
|
9894
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
9895
|
+
ColumnSeparator_default,
|
|
9896
|
+
{
|
|
9897
|
+
...components?.columnSeparatorProps?.headerCell,
|
|
9898
|
+
...footer.column.columnDef?.meta?.columnSeparatorProps,
|
|
9899
|
+
show: footer.column.columnDef?.meta?.columnSeparatorProps?.show ?? components?.columnSeparatorProps?.headerCell?.show ?? showSeparator
|
|
9900
|
+
}
|
|
9901
|
+
),
|
|
9902
|
+
!footer.isPlaceholder && /* @__PURE__ */ jsxRuntime.jsx(ColumnResizer_default, { header: footer, ...components?.columnResizerProps })
|
|
9903
|
+
]
|
|
9904
|
+
},
|
|
9905
|
+
footer.id
|
|
9906
|
+
);
|
|
9907
|
+
}) }, footerGroup.id);
|
|
9908
|
+
}) });
|
|
9909
|
+
};
|
|
9841
9910
|
var DataTable = ({
|
|
9842
9911
|
tableRef,
|
|
9843
9912
|
virtualizerRef,
|
|
@@ -9894,6 +9963,19 @@ var DataTable = ({
|
|
|
9894
9963
|
activeStatusContent
|
|
9895
9964
|
});
|
|
9896
9965
|
const fetchMoreOnScrollReached = useScrollFetch({ scrollFetch, containerRef: tableContainerRef });
|
|
9966
|
+
const columnResizingEnabled = columnResizing?.enabled;
|
|
9967
|
+
const { columnSizing, columnSizingInfo } = table.getState();
|
|
9968
|
+
const columnSizeVars = React.useMemo(() => {
|
|
9969
|
+
if (!columnResizingEnabled && !virtualEnabled) return {};
|
|
9970
|
+
const headers = table.getFlatHeaders();
|
|
9971
|
+
const colSizes = {};
|
|
9972
|
+
for (const header of headers) {
|
|
9973
|
+
colSizes[`--header-${header.id}-size`] = header.getSize();
|
|
9974
|
+
colSizes[`--col-${header.column.id}-size`] = header.column.getSize();
|
|
9975
|
+
}
|
|
9976
|
+
return colSizes;
|
|
9977
|
+
}, [columnSizing, columnSizingInfo, columnResizingEnabled, virtualEnabled]);
|
|
9978
|
+
const isResizing = columnResizingEnabled && !!columnSizingInfo.isResizingColumn;
|
|
9897
9979
|
useBindRef_default({ ref: tableRef, value: table });
|
|
9898
9980
|
useBindRef_default({ ref: virtualizerRef, value: virtualizer });
|
|
9899
9981
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -9936,7 +10018,11 @@ var DataTable = ({
|
|
|
9936
10018
|
Table,
|
|
9937
10019
|
{
|
|
9938
10020
|
...components?.tableProps,
|
|
9939
|
-
style: {
|
|
10021
|
+
style: {
|
|
10022
|
+
tableLayout: virtualEnabled ? "fixed" : "auto",
|
|
10023
|
+
...components?.tableProps?.style,
|
|
10024
|
+
...columnSizeVars
|
|
10025
|
+
},
|
|
9940
10026
|
children: [
|
|
9941
10027
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
9942
10028
|
TableHeader,
|
|
@@ -9967,7 +10053,23 @@ var DataTable = ({
|
|
|
9967
10053
|
]
|
|
9968
10054
|
}
|
|
9969
10055
|
),
|
|
9970
|
-
/* @__PURE__ */ jsxRuntime.jsx(TableBody, { ...components?.tableBodyProps, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
10056
|
+
/* @__PURE__ */ jsxRuntime.jsx(TableBody, { ...components?.tableBodyProps, children: isResizing ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
10057
|
+
MemoizedTableDataRows,
|
|
10058
|
+
{
|
|
10059
|
+
table,
|
|
10060
|
+
rowModel,
|
|
10061
|
+
virtualEnabled,
|
|
10062
|
+
virtualItems,
|
|
10063
|
+
virtualizer,
|
|
10064
|
+
paddingTop,
|
|
10065
|
+
paddingBottom,
|
|
10066
|
+
visibleColumnCount,
|
|
10067
|
+
columnResizing,
|
|
10068
|
+
virtual,
|
|
10069
|
+
onRowClick,
|
|
10070
|
+
components
|
|
10071
|
+
}
|
|
10072
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
9971
10073
|
TableDataRows,
|
|
9972
10074
|
{
|
|
9973
10075
|
table,
|
|
@@ -9983,7 +10085,23 @@ var DataTable = ({
|
|
|
9983
10085
|
onRowClick,
|
|
9984
10086
|
components
|
|
9985
10087
|
}
|
|
9986
|
-
) })
|
|
10088
|
+
) }),
|
|
10089
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
10090
|
+
TableFooter,
|
|
10091
|
+
{
|
|
10092
|
+
...components?.tableFooterProps,
|
|
10093
|
+
className: cn("sticky bottom-0 z-10 bg-white", components?.tableFooterProps?.className),
|
|
10094
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
10095
|
+
TableFooterRows,
|
|
10096
|
+
{
|
|
10097
|
+
table,
|
|
10098
|
+
columnResizing,
|
|
10099
|
+
virtual,
|
|
10100
|
+
components
|
|
10101
|
+
}
|
|
10102
|
+
)
|
|
10103
|
+
}
|
|
10104
|
+
)
|
|
9987
10105
|
]
|
|
9988
10106
|
}
|
|
9989
10107
|
),
|