@bigbinary/neeto-atoms 1.0.25 → 1.0.26
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/{DataTable-Dre7vc3w.js → DataTable-DYam_kUE.js} +48 -11
- package/dist/{DataTable-Dre7vc3w.js.map → DataTable-DYam_kUE.js.map} +1 -1
- package/dist/cjs/{DataTable-Cw0ly-hT.js → DataTable-BBxgDBnO.js} +48 -11
- package/dist/cjs/{DataTable-Cw0ly-hT.js.map → DataTable-BBxgDBnO.js.map} +1 -1
- package/dist/cjs/components/DataTable.js +1 -1
- package/dist/cjs/components/index.js +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/components/DataTable/components/BulkSelectCallout.d.ts +3 -1
- package/dist/components/DataTable.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
|
@@ -3534,11 +3534,11 @@ const ResizeHandle = ({ header }) => {
|
|
|
3534
3534
|
: "bg-border opacity-0 group-hover/head:opacity-100") }));
|
|
3535
3535
|
};
|
|
3536
3536
|
|
|
3537
|
-
const BulkSelectCallout = ({ bulkSelectAllRowsProps, isAllPageRowsSelected, isBulkAllSelected, }) => {
|
|
3538
|
-
if (!isAllPageRowsSelected)
|
|
3537
|
+
const BulkSelectCallout = ({ bulkSelectAllRowsProps, isAllPageRowsSelected, isBulkAllSelected, onBulkSelectAll, onClearBulkSelection, }) => {
|
|
3538
|
+
if (!isAllPageRowsSelected && !isBulkAllSelected)
|
|
3539
3539
|
return null;
|
|
3540
|
-
const { selectAllRowMessage, selectAllRowButtonLabel,
|
|
3541
|
-
return (jsx("div", { className: "mb-2 flex items-center justify-center gap-1 rounded-lg bg-primary/10 px-4 py-1.5 text-sm text-primary", children: isBulkAllSelected ? (jsxs(Fragment, { children: [jsx("span", { children: allRowsSelectedMessage ?? selectAllRowMessage }),
|
|
3540
|
+
const { selectAllRowMessage, selectAllRowButtonLabel, allRowsSelectedMessage, clearSelectionButtonLabel, } = bulkSelectAllRowsProps;
|
|
3541
|
+
return (jsx("div", { className: "mb-2 flex items-center justify-center gap-1 rounded-lg bg-primary/10 px-4 py-1.5 text-sm text-primary", children: isBulkAllSelected ? (jsxs(Fragment, { children: [jsx("span", { children: allRowsSelectedMessage ?? selectAllRowMessage }), jsx(Button, { variant: "link", onClick: onClearBulkSelection, children: clearSelectionButtonLabel ?? "Clear selection" })] })) : (jsxs(Fragment, { children: [jsx("span", { children: selectAllRowMessage }), jsx(Button, { variant: "link", onClick: onBulkSelectAll, children: selectAllRowButtonLabel })] })) }));
|
|
3542
3542
|
};
|
|
3543
3543
|
|
|
3544
3544
|
const DataTablePagination = ({ currentPage, pageCount, onPageChange, }) => {
|
|
@@ -3586,7 +3586,7 @@ const HeaderCellMenu = ({ column, enableAddColumn, enableColumnFreeze, isColumnP
|
|
|
3586
3586
|
}) }))] })] }) }));
|
|
3587
3587
|
};
|
|
3588
3588
|
|
|
3589
|
-
const DataTable = ({ columns, data, getRowId: getRowIdProp, sorting: sortingProp, onSortingChange: onSortingChangeProp, enableSorting =
|
|
3589
|
+
const DataTable = ({ columns, data, getRowId: getRowIdProp, sorting: sortingProp, onSortingChange: onSortingChangeProp, enableSorting = false, enableURLSort = true, totalCount, pageSize = DEFAULT_PAGE_SIZE, currentPage: currentPageProp, onPageChange: onPageChangeProp, enableURLPagination = true, enableRowSelection: enableRowSelectionProp, selectedRowKeys, onRowSelect, bulkSelectAllRowsProps, enableColumnResize = true, enableColumnFreeze = true, columnPinning: columnPinningProp, onColumnPinningChange: onColumnPinningChangeProp, localStorageKeyPrefix, columnVisibility: columnVisibilityProp, onColumnVisibilityChange: onColumnVisibilityChangeProp, onColumnHide: onColumnHideProp, enableColumnReorder = false, columnOrder: columnOrderProp, onColumnOrderChange: onColumnOrderChangeProp, enableAddColumn = false, onColumnAdd, onColumnDelete, onColumnUpdate, onMoreActionClick, enableHeaderMenu, loading = false, bordered = true, className, emptyMessage, onRowClick, allowRowClick = true, }) => {
|
|
3590
3590
|
const getRowId = useMemo(() => getRowIdProp ??
|
|
3591
3591
|
((row) => row.id), [getRowIdProp]);
|
|
3592
3592
|
const { sorting, onSortingChange } = useTableSort({
|
|
@@ -3601,13 +3601,21 @@ const DataTable = ({ columns, data, getRowId: getRowIdProp, sorting: sortingProp
|
|
|
3601
3601
|
onPageChange: onPageChangeProp,
|
|
3602
3602
|
enableURLPagination,
|
|
3603
3603
|
});
|
|
3604
|
-
const { rowSelection, onRowSelectionChange, selectionColumn, enableRowSelection, } = useTableSelection({
|
|
3604
|
+
const { rowSelection, onRowSelectionChange: originalOnRowSelectionChange, selectionColumn, enableRowSelection, } = useTableSelection({
|
|
3605
3605
|
enableRowSelection: enableRowSelectionProp,
|
|
3606
3606
|
selectedRowKeys,
|
|
3607
3607
|
onRowSelect,
|
|
3608
3608
|
data,
|
|
3609
3609
|
getRowId,
|
|
3610
3610
|
});
|
|
3611
|
+
// Wrap selection change to detect manual deselection while in bulk mode
|
|
3612
|
+
const onRowSelectionChange = useCallback((updaterOrValue) => {
|
|
3613
|
+
if (bulkSelectedRef.current && !isAutoSelectingRef.current) {
|
|
3614
|
+
setBulkSelectedAllRowsInternal(false);
|
|
3615
|
+
bulkSelectAllRowsProps?.setBulkSelectedAllRows(false);
|
|
3616
|
+
}
|
|
3617
|
+
originalOnRowSelectionChange(updaterOrValue);
|
|
3618
|
+
}, [originalOnRowSelectionChange, bulkSelectAllRowsProps]);
|
|
3611
3619
|
const { columnPinning, onColumnPinningChange, toggleColumnPin, isColumnPinned, } = useColumnPinning({
|
|
3612
3620
|
enabled: enableColumnFreeze,
|
|
3613
3621
|
columnPinning: columnPinningProp,
|
|
@@ -3680,7 +3688,37 @@ const DataTable = ({ columns, data, getRowId: getRowIdProp, sorting: sortingProp
|
|
|
3680
3688
|
onColumnVisibilityChange,
|
|
3681
3689
|
onColumnOrderChange,
|
|
3682
3690
|
});
|
|
3683
|
-
const
|
|
3691
|
+
const [bulkSelectedAllRows, setBulkSelectedAllRowsInternal] = useState(false);
|
|
3692
|
+
const isAutoSelectingRef = useRef(false);
|
|
3693
|
+
const bulkSelectedRef = useRef(false);
|
|
3694
|
+
bulkSelectedRef.current = bulkSelectedAllRows;
|
|
3695
|
+
// Auto-select all page rows when in bulk mode (handles page navigation)
|
|
3696
|
+
useEffect(() => {
|
|
3697
|
+
if (bulkSelectedAllRows) {
|
|
3698
|
+
isAutoSelectingRef.current = true;
|
|
3699
|
+
table.toggleAllPageRowsSelected(true);
|
|
3700
|
+
// Reset flag after React processes the state update
|
|
3701
|
+
requestAnimationFrame(() => {
|
|
3702
|
+
isAutoSelectingRef.current = false;
|
|
3703
|
+
});
|
|
3704
|
+
}
|
|
3705
|
+
}, [bulkSelectedAllRows, data]);
|
|
3706
|
+
const isAllPageRowsSelected = table.getIsAllPageRowsSelected();
|
|
3707
|
+
const showSelectAllCallout = !!bulkSelectAllRowsProps &&
|
|
3708
|
+
isAllPageRowsSelected &&
|
|
3709
|
+
pageCount > 1 &&
|
|
3710
|
+
!bulkSelectedAllRows;
|
|
3711
|
+
const showAllSelectedCallout = !!bulkSelectAllRowsProps && bulkSelectedAllRows;
|
|
3712
|
+
const handleBulkSelectAll = () => {
|
|
3713
|
+
setBulkSelectedAllRowsInternal(true);
|
|
3714
|
+
bulkSelectAllRowsProps?.setBulkSelectedAllRows(true);
|
|
3715
|
+
};
|
|
3716
|
+
const handleClearBulkSelection = () => {
|
|
3717
|
+
setBulkSelectedAllRowsInternal(false);
|
|
3718
|
+
bulkSelectAllRowsProps?.setBulkSelectedAllRows(false);
|
|
3719
|
+
table.toggleAllPageRowsSelected(false);
|
|
3720
|
+
onRowSelect?.([], []);
|
|
3721
|
+
};
|
|
3684
3722
|
const handleSort = (columnId, desc) => {
|
|
3685
3723
|
const isSameSort = sorting.length > 0 &&
|
|
3686
3724
|
sorting[0].id === columnId &&
|
|
@@ -3692,8 +3730,7 @@ const DataTable = ({ columns, data, getRowId: getRowIdProp, sorting: sortingProp
|
|
|
3692
3730
|
onSortingChange([{ id: columnId, desc }]);
|
|
3693
3731
|
}
|
|
3694
3732
|
};
|
|
3695
|
-
return (jsxs("div", { className: cn("relative flex min-h-0 w-full flex-col", className), children: [loading && jsx(LoadingOverlay, {}), bulkSelectAllRowsProps &&
|
|
3696
|
-
(data.length !== totalCount || isBulkAllSelected) && (jsx(BulkSelectCallout, { bulkSelectAllRowsProps: bulkSelectAllRowsProps, isAllPageRowsSelected: table.getIsAllPageRowsSelected(), isBulkAllSelected: isBulkAllSelected })), jsx("div", { className: cn("min-h-0 flex-1 overflow-auto", bordered && "rounded-lg border"), children: jsxs(Table, { children: [jsx(TableHeader, { className: "sticky top-0 z-20 bg-muted", children: table.getHeaderGroups().map(headerGroup => {
|
|
3733
|
+
return (jsxs("div", { className: cn("relative flex min-h-0 w-full flex-col", className), children: [loading && jsx(LoadingOverlay, {}), (showSelectAllCallout || showAllSelectedCallout) && (jsx(BulkSelectCallout, { bulkSelectAllRowsProps: bulkSelectAllRowsProps, isAllPageRowsSelected: isAllPageRowsSelected, isBulkAllSelected: bulkSelectedAllRows, onBulkSelectAll: handleBulkSelectAll, onClearBulkSelection: handleClearBulkSelection })), jsx("div", { className: cn("min-h-0 flex-1 overflow-auto", bordered && "rounded-lg border"), children: jsxs(Table, { children: [jsx(TableHeader, { className: "sticky top-0 z-20 bg-muted", children: table.getHeaderGroups().map(headerGroup => {
|
|
3697
3734
|
const dataHeaders = headerGroup.headers.filter(h => h.column.id !== "_selection");
|
|
3698
3735
|
const totalDataSize = dataHeaders.reduce((sum, h) => sum + h.getSize(), 0);
|
|
3699
3736
|
return (jsx(TableRow, { className: "hover:bg-muted", children: headerGroup.headers.map((header, headerIndex) => {
|
|
@@ -3732,7 +3769,7 @@ const DataTable = ({ columns, data, getRowId: getRowIdProp, sorting: sortingProp
|
|
|
3732
3769
|
const isPinned = cell.column.getIsPinned();
|
|
3733
3770
|
const isSelCell = cell.column.id === "_selection";
|
|
3734
3771
|
return (jsx(TableCell, { className: cn(isPinned &&
|
|
3735
|
-
"sticky z-10 bg-background group-data-[state=selected]:bg-muted"), style: {
|
|
3772
|
+
"sticky z-10 bg-background group-hover:bg-muted/50 group-data-[state=selected]:bg-muted"), style: {
|
|
3736
3773
|
width: selectionColumn && isSelCell
|
|
3737
3774
|
? 0
|
|
3738
3775
|
: cell.column.getSize(),
|
|
@@ -3754,4 +3791,4 @@ const DataTable = ({ columns, data, getRowId: getRowIdProp, sorting: sortingProp
|
|
|
3754
3791
|
};
|
|
3755
3792
|
|
|
3756
3793
|
export { DataTable as D, useColumnPinning as a, useColumnVisibility as b, useTablePagination as c, useTableSelection as d, useTableSort as e, useColumnOrdering as u };
|
|
3757
|
-
//# sourceMappingURL=DataTable-
|
|
3794
|
+
//# sourceMappingURL=DataTable-DYam_kUE.js.map
|