@jmruthers/pace-core 0.5.79 → 0.5.81
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-BCBW5SCL.js → DataTable-OBT663FS.js} +6 -6
- package/dist/{UnifiedAuthProvider-TSHK77PL.js → UnifiedAuthProvider-K2IZAY5F.js} +3 -3
- package/dist/{chunk-TI67X46U.js → chunk-3FV24IOD.js} +7 -7
- package/dist/{chunk-WYKXRCXB.js → chunk-5BN3YGNK.js} +157 -53
- package/dist/{chunk-WYKXRCXB.js.map → chunk-5BN3YGNK.js.map} +1 -1
- package/dist/{chunk-RMK6FOHF.js → chunk-CACHCRZS.js} +158 -79
- package/dist/{chunk-RMK6FOHF.js.map → chunk-CACHCRZS.js.map} +1 -1
- package/dist/{chunk-GXWREXH7.js → chunk-CBSD3BZ3.js} +2 -2
- package/dist/{chunk-CALYF6HH.js → chunk-I2VVV5PQ.js} +2 -2
- package/dist/{chunk-3WFKFBVQ.js → chunk-KUYWZVR2.js} +4 -4
- package/dist/{chunk-LVV6J6ZF.js → chunk-NTW3KGS4.js} +5 -5
- package/dist/{chunk-HQ7KTKC3.js → chunk-RIXPZJUB.js} +2 -2
- package/dist/{chunk-JYCP4L55.js → chunk-S3JKDMD5.js} +3 -3
- package/dist/{chunk-OBXLAL3J.js → chunk-V5SWX6KL.js} +4 -4
- package/dist/{chunk-IQFITAE3.js → chunk-YVUZWLQG.js} +3 -3
- package/dist/components.js +8 -8
- package/dist/hooks.js +7 -7
- package/dist/index.js +11 -11
- package/dist/providers.js +2 -2
- package/dist/rbac/index.js +7 -7
- package/dist/utils.js +1 -1
- package/docs/api/classes/ColumnFactory.md +1 -1
- package/docs/api/classes/ErrorBoundary.md +1 -1
- package/docs/api/classes/InvalidScopeError.md +1 -1
- package/docs/api/classes/MissingUserContextError.md +1 -1
- package/docs/api/classes/OrganisationContextRequiredError.md +1 -1
- package/docs/api/classes/PermissionDeniedError.md +1 -1
- package/docs/api/classes/PublicErrorBoundary.md +1 -1
- package/docs/api/classes/RBACAuditManager.md +1 -1
- package/docs/api/classes/RBACCache.md +1 -1
- package/docs/api/classes/RBACEngine.md +1 -1
- package/docs/api/classes/RBACError.md +1 -1
- package/docs/api/classes/RBACNotInitializedError.md +1 -1
- package/docs/api/classes/SecureSupabaseClient.md +1 -1
- package/docs/api/classes/StorageUtils.md +1 -1
- package/docs/api/enums/FileCategory.md +1 -1
- package/docs/api/interfaces/AggregateConfig.md +1 -1
- package/docs/api/interfaces/ButtonProps.md +1 -1
- package/docs/api/interfaces/CardProps.md +1 -1
- package/docs/api/interfaces/ColorPalette.md +1 -1
- package/docs/api/interfaces/ColorShade.md +1 -1
- package/docs/api/interfaces/DataAccessRecord.md +1 -1
- package/docs/api/interfaces/DataRecord.md +1 -1
- package/docs/api/interfaces/DataTableAction.md +1 -1
- package/docs/api/interfaces/DataTableColumn.md +1 -1
- package/docs/api/interfaces/DataTableProps.md +1 -1
- package/docs/api/interfaces/DataTableToolbarButton.md +1 -1
- package/docs/api/interfaces/EmptyStateConfig.md +1 -1
- package/docs/api/interfaces/EnhancedNavigationMenuProps.md +1 -1
- package/docs/api/interfaces/EventLogoProps.md +1 -1
- package/docs/api/interfaces/FileDisplayProps.md +1 -1
- package/docs/api/interfaces/FileMetadata.md +1 -1
- package/docs/api/interfaces/FileReference.md +1 -1
- package/docs/api/interfaces/FileSizeLimits.md +1 -1
- package/docs/api/interfaces/FileUploadOptions.md +1 -1
- package/docs/api/interfaces/FileUploadProps.md +1 -1
- package/docs/api/interfaces/FooterProps.md +1 -1
- package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
- package/docs/api/interfaces/InputProps.md +1 -1
- package/docs/api/interfaces/LabelProps.md +1 -1
- package/docs/api/interfaces/LoginFormProps.md +1 -1
- package/docs/api/interfaces/NavigationAccessRecord.md +1 -1
- package/docs/api/interfaces/NavigationContextType.md +1 -1
- package/docs/api/interfaces/NavigationGuardProps.md +1 -1
- package/docs/api/interfaces/NavigationItem.md +1 -1
- package/docs/api/interfaces/NavigationMenuProps.md +1 -1
- package/docs/api/interfaces/NavigationProviderProps.md +1 -1
- package/docs/api/interfaces/Organisation.md +1 -1
- package/docs/api/interfaces/OrganisationContextType.md +1 -1
- package/docs/api/interfaces/OrganisationMembership.md +1 -1
- package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
- package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
- package/docs/api/interfaces/PaceAppLayoutProps.md +1 -1
- package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
- package/docs/api/interfaces/PageAccessRecord.md +1 -1
- package/docs/api/interfaces/PagePermissionContextType.md +1 -1
- package/docs/api/interfaces/PagePermissionGuardProps.md +1 -1
- package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
- package/docs/api/interfaces/PaletteData.md +1 -1
- package/docs/api/interfaces/PermissionEnforcerProps.md +1 -1
- package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
- package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
- package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
- package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
- package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
- package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
- package/docs/api/interfaces/RBACConfig.md +1 -1
- package/docs/api/interfaces/RBACLogger.md +1 -1
- package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
- package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
- package/docs/api/interfaces/RouteAccessRecord.md +1 -1
- package/docs/api/interfaces/RouteConfig.md +1 -1
- package/docs/api/interfaces/SecureDataContextType.md +1 -1
- package/docs/api/interfaces/SecureDataProviderProps.md +1 -1
- package/docs/api/interfaces/StorageConfig.md +1 -1
- package/docs/api/interfaces/StorageFileInfo.md +1 -1
- package/docs/api/interfaces/StorageFileMetadata.md +1 -1
- package/docs/api/interfaces/StorageListOptions.md +1 -1
- package/docs/api/interfaces/StorageListResult.md +1 -1
- package/docs/api/interfaces/StorageUploadOptions.md +1 -1
- package/docs/api/interfaces/StorageUploadResult.md +1 -1
- package/docs/api/interfaces/StorageUrlOptions.md +1 -1
- package/docs/api/interfaces/StyleImport.md +1 -1
- package/docs/api/interfaces/SwitchProps.md +1 -1
- package/docs/api/interfaces/ToastActionElement.md +1 -1
- package/docs/api/interfaces/ToastProps.md +1 -1
- package/docs/api/interfaces/UnifiedAuthContextType.md +1 -1
- package/docs/api/interfaces/UnifiedAuthProviderProps.md +1 -1
- package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
- package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
- package/docs/api/interfaces/UsePublicEventLogoOptions.md +1 -1
- package/docs/api/interfaces/UsePublicEventLogoReturn.md +1 -1
- package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
- package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
- package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
- package/docs/api/interfaces/UseResolvedScopeOptions.md +1 -1
- package/docs/api/interfaces/UseResolvedScopeReturn.md +1 -1
- package/docs/api/interfaces/UserEventAccess.md +1 -1
- package/docs/api/interfaces/UserMenuProps.md +1 -1
- package/docs/api/interfaces/UserProfile.md +1 -1
- package/docs/api/modules.md +3 -3
- package/docs/architecture/rpc-function-standards.md +757 -0
- package/package.json +1 -1
- package/src/components/DataTable/__tests__/styles.test.ts +5 -5
- package/src/components/DataTable/components/DataTableCore.tsx +125 -18
- package/src/components/DataTable/components/PaginationControls.tsx +78 -77
- package/src/components/DataTable/components/UnifiedTableBody.tsx +12 -4
- package/src/components/DataTable/hooks/useDataTableConfiguration.ts +29 -16
- package/src/components/DataTable/hooks/useEffectiveColumnOrder.ts +6 -4
- package/src/components/DataTable/hooks/useTableColumns.ts +20 -19
- package/src/components/DataTable/hooks/useTableHandlers.ts +8 -3
- package/src/components/DataTable/styles.ts +1 -1
- package/src/providers/services/UnifiedAuthProvider.tsx +175 -54
- package/src/styles/core.css +1 -2
- package/src/styles/base.css +0 -208
- /package/dist/{DataTable-BCBW5SCL.js.map → DataTable-OBT663FS.js.map} +0 -0
- /package/dist/{UnifiedAuthProvider-TSHK77PL.js.map → UnifiedAuthProvider-K2IZAY5F.js.map} +0 -0
- /package/dist/{chunk-TI67X46U.js.map → chunk-3FV24IOD.js.map} +0 -0
- /package/dist/{chunk-GXWREXH7.js.map → chunk-CBSD3BZ3.js.map} +0 -0
- /package/dist/{chunk-CALYF6HH.js.map → chunk-I2VVV5PQ.js.map} +0 -0
- /package/dist/{chunk-3WFKFBVQ.js.map → chunk-KUYWZVR2.js.map} +0 -0
- /package/dist/{chunk-LVV6J6ZF.js.map → chunk-NTW3KGS4.js.map} +0 -0
- /package/dist/{chunk-HQ7KTKC3.js.map → chunk-RIXPZJUB.js.map} +0 -0
- /package/dist/{chunk-JYCP4L55.js.map → chunk-S3JKDMD5.js.map} +0 -0
- /package/dist/{chunk-OBXLAL3J.js.map → chunk-V5SWX6KL.js.map} +0 -0
- /package/dist/{chunk-IQFITAE3.js.map → chunk-YVUZWLQG.js.map} +0 -0
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
2
|
useCan,
|
|
3
3
|
useResolvedScope
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-YVUZWLQG.js";
|
|
5
5
|
import {
|
|
6
6
|
toast,
|
|
7
7
|
useDataTablePerformance
|
|
8
8
|
} from "./chunk-YCKPEMJA.js";
|
|
9
9
|
import {
|
|
10
10
|
init_UnifiedAuthProvider
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-RIXPZJUB.js";
|
|
12
12
|
import {
|
|
13
13
|
useUnifiedAuth
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-5BN3YGNK.js";
|
|
15
15
|
import {
|
|
16
16
|
cn
|
|
17
17
|
} from "./chunk-PYUXFQJ3.js";
|
|
@@ -5600,7 +5600,7 @@ IconButton.displayName = "IconButton";
|
|
|
5600
5600
|
// src/components/DataTable/styles.ts
|
|
5601
5601
|
var tableStyles = {
|
|
5602
5602
|
// Main table container
|
|
5603
|
-
table: "w-full caption-
|
|
5603
|
+
table: "w-full caption-top text-sm",
|
|
5604
5604
|
tableFixed: "w-full table-fixed",
|
|
5605
5605
|
// Table sections
|
|
5606
5606
|
header: "[&_tr]:border-b",
|
|
@@ -7537,9 +7537,6 @@ var RowComponent = React8.memo(({
|
|
|
7537
7537
|
})
|
|
7538
7538
|
] });
|
|
7539
7539
|
}
|
|
7540
|
-
if (grouping.length > 0 && typeof row.getParentRow === "function" && row.getParentRow() && (!row.getIsGrouped || !row.getIsGrouped())) {
|
|
7541
|
-
return null;
|
|
7542
|
-
}
|
|
7543
7540
|
if (isEditing && editingData && onEditingDataChange && onSaveEditing && onCancelEditing) {
|
|
7544
7541
|
return /* @__PURE__ */ jsx14(
|
|
7545
7542
|
EditableRow,
|
|
@@ -8043,9 +8040,9 @@ function PaginationControls({
|
|
|
8043
8040
|
"footer",
|
|
8044
8041
|
{
|
|
8045
8042
|
"aria-label": "pagination",
|
|
8046
|
-
className: "mx-auto grid grid-cols-[auto_auto_1fr_auto_auto_auto_auto] gap-4",
|
|
8043
|
+
className: "mx-auto grid grid-cols-[auto_auto_1fr_auto_auto_auto_auto] gap-4 items-center my-2",
|
|
8047
8044
|
children: [
|
|
8048
|
-
/* @__PURE__ */ jsx15("
|
|
8045
|
+
/* @__PURE__ */ jsx15("label", { className: "text-sec-600", children: "Rows per page" }),
|
|
8049
8046
|
/* @__PURE__ */ jsxs11(
|
|
8050
8047
|
Select,
|
|
8051
8048
|
{
|
|
@@ -8073,7 +8070,7 @@ function PaginationControls({
|
|
|
8073
8070
|
getModeIcon(),
|
|
8074
8071
|
/* @__PURE__ */ jsx15("span", { children: getModeLabel() })
|
|
8075
8072
|
] }),
|
|
8076
|
-
/* @__PURE__ */ jsxs11("p", { className: "justify-self-center text-sm text-sec-600", children: [
|
|
8073
|
+
/* @__PURE__ */ jsxs11("p", { className: "justify-self-center text-sm text-sec-600 my-0 py-0", children: [
|
|
8077
8074
|
"Page ",
|
|
8078
8075
|
currentPageIndex + 1,
|
|
8079
8076
|
" of ",
|
|
@@ -9662,10 +9659,11 @@ function useEffectiveColumnOrder({
|
|
|
9662
9659
|
return columns.map((column) => column.id || column.accessorKey || "").filter((identifier) => Boolean(identifier));
|
|
9663
9660
|
}, [columns, externalColumnOrder]);
|
|
9664
9661
|
return useMemo9(() => {
|
|
9665
|
-
if (selectionEnabled
|
|
9666
|
-
return
|
|
9662
|
+
if (!selectionEnabled) {
|
|
9663
|
+
return baseOrder;
|
|
9667
9664
|
}
|
|
9668
|
-
|
|
9665
|
+
const orderWithoutSelect = baseOrder.filter((id) => id !== "select");
|
|
9666
|
+
return ["select", ...orderWithoutSelect];
|
|
9669
9667
|
}, [baseOrder, selectionEnabled]);
|
|
9670
9668
|
}
|
|
9671
9669
|
|
|
@@ -9726,12 +9724,13 @@ function useTableHandlers({
|
|
|
9726
9724
|
}, [actions, stateSnapshot.pagination]);
|
|
9727
9725
|
const handleColumnOrderChange = useCallback8((updaterOrValue) => {
|
|
9728
9726
|
const nextValue = typeof updaterOrValue === "function" ? updaterOrValue(stateSnapshot.columnOrder) : updaterOrValue;
|
|
9729
|
-
|
|
9727
|
+
const normalizedOrder = nextValue.includes("select") ? ["select", ...nextValue.filter((id) => id !== "select")] : nextValue;
|
|
9728
|
+
actions.setColumnOrder(normalizedOrder);
|
|
9730
9729
|
if (canPersistOrder) {
|
|
9731
|
-
updateColumnOrder(
|
|
9730
|
+
updateColumnOrder(normalizedOrder);
|
|
9732
9731
|
}
|
|
9733
9732
|
onLayoutChange?.({
|
|
9734
|
-
columnOrder:
|
|
9733
|
+
columnOrder: normalizedOrder,
|
|
9735
9734
|
columnVisibility: stateSnapshot.columnVisibility
|
|
9736
9735
|
});
|
|
9737
9736
|
}, [actions, stateSnapshot.columnOrder, stateSnapshot.columnVisibility, canPersistOrder, updateColumnOrder, onLayoutChange]);
|
|
@@ -9777,38 +9776,45 @@ function useDataTableConfiguration({
|
|
|
9777
9776
|
finalDataCount,
|
|
9778
9777
|
pageSize
|
|
9779
9778
|
}) {
|
|
9780
|
-
return useMemo11(() =>
|
|
9781
|
-
|
|
9782
|
-
|
|
9783
|
-
|
|
9784
|
-
|
|
9785
|
-
|
|
9786
|
-
|
|
9787
|
-
|
|
9788
|
-
|
|
9789
|
-
|
|
9790
|
-
|
|
9791
|
-
|
|
9792
|
-
|
|
9793
|
-
|
|
9794
|
-
|
|
9795
|
-
|
|
9796
|
-
|
|
9797
|
-
|
|
9798
|
-
|
|
9799
|
-
|
|
9800
|
-
|
|
9801
|
-
|
|
9802
|
-
|
|
9803
|
-
|
|
9804
|
-
|
|
9805
|
-
|
|
9806
|
-
|
|
9807
|
-
|
|
9808
|
-
|
|
9809
|
-
|
|
9810
|
-
|
|
9811
|
-
|
|
9779
|
+
return useMemo11(() => {
|
|
9780
|
+
let normalizedColumnOrder = [...stateSnapshot.columnOrder];
|
|
9781
|
+
if (features.selection) {
|
|
9782
|
+
normalizedColumnOrder = normalizedColumnOrder.filter((id) => id !== "select");
|
|
9783
|
+
normalizedColumnOrder = ["select", ...normalizedColumnOrder];
|
|
9784
|
+
}
|
|
9785
|
+
return {
|
|
9786
|
+
data,
|
|
9787
|
+
columns,
|
|
9788
|
+
state: {
|
|
9789
|
+
sorting: stateSnapshot.sorting,
|
|
9790
|
+
columnFilters: stateSnapshot.columnFilters,
|
|
9791
|
+
columnVisibility: stateSnapshot.columnVisibility,
|
|
9792
|
+
rowSelection: stateSnapshot.rowSelection,
|
|
9793
|
+
grouping: stateSnapshot.grouping,
|
|
9794
|
+
expanded: stateSnapshot.expanded,
|
|
9795
|
+
pagination: stateSnapshot.pagination,
|
|
9796
|
+
globalFilter: stateSnapshot.globalFilter,
|
|
9797
|
+
columnOrder: normalizedColumnOrder
|
|
9798
|
+
},
|
|
9799
|
+
initialState: {
|
|
9800
|
+
expanded: features.grouping ? {} : void 0
|
|
9801
|
+
},
|
|
9802
|
+
enableRowSelection: features.selection,
|
|
9803
|
+
enableGrouping: features.grouping,
|
|
9804
|
+
getRowId,
|
|
9805
|
+
...handlers,
|
|
9806
|
+
getCoreRowModel: getCoreRowModel(),
|
|
9807
|
+
getFilteredRowModel: finalPaginationMode === "client" ? getFilteredRowModel() : void 0,
|
|
9808
|
+
getSortedRowModel: finalPaginationMode === "client" ? getSortedRowModel() : void 0,
|
|
9809
|
+
getPaginationRowModel: features.pagination ? getPaginationRowModel() : void 0,
|
|
9810
|
+
getGroupedRowModel: features.grouping ? getGroupedRowModel() : void 0,
|
|
9811
|
+
getExpandedRowModel: features.grouping ? getExpandedRowModel() : void 0,
|
|
9812
|
+
manualSorting: finalPaginationMode === "server",
|
|
9813
|
+
manualFiltering: finalPaginationMode === "server",
|
|
9814
|
+
manualPagination: finalPaginationMode === "server",
|
|
9815
|
+
pageCount: finalPaginationMode === "server" ? Math.ceil(finalDataCount / pageSize) : void 0
|
|
9816
|
+
};
|
|
9817
|
+
}, [
|
|
9812
9818
|
data,
|
|
9813
9819
|
columns,
|
|
9814
9820
|
stateSnapshot,
|
|
@@ -10472,16 +10478,18 @@ function useTableColumns({
|
|
|
10472
10478
|
meta: { align: "right" }
|
|
10473
10479
|
}) : null;
|
|
10474
10480
|
const finalColumns = [];
|
|
10481
|
+
if (selectionColumn) {
|
|
10482
|
+
finalColumns.push(selectionColumn);
|
|
10483
|
+
}
|
|
10475
10484
|
if (columnOrder && columnOrder.length > 0) {
|
|
10476
|
-
const usedColumnIds = new Set(
|
|
10477
|
-
|
|
10478
|
-
|
|
10479
|
-
}
|
|
10485
|
+
const usedColumnIds = new Set(
|
|
10486
|
+
columnOrder.filter((id) => id !== "select" && id !== "actions")
|
|
10487
|
+
);
|
|
10480
10488
|
for (const columnId of columnOrder) {
|
|
10481
|
-
if (columnId === "select"
|
|
10482
|
-
|
|
10489
|
+
if (columnId === "select") {
|
|
10490
|
+
continue;
|
|
10483
10491
|
} else if (columnId === "actions" && actionsColumn) {
|
|
10484
|
-
|
|
10492
|
+
continue;
|
|
10485
10493
|
} else {
|
|
10486
10494
|
const dataColumn = baseColumns.find(
|
|
10487
10495
|
(col) => col.id === columnId || "accessorKey" in col && String(col.accessorKey) === columnId
|
|
@@ -10496,13 +10504,10 @@ function useTableColumns({
|
|
|
10496
10504
|
return !usedColumnIds.has(colId);
|
|
10497
10505
|
});
|
|
10498
10506
|
finalColumns.push(...remainingDataColumns);
|
|
10499
|
-
if (actionsColumn
|
|
10507
|
+
if (actionsColumn) {
|
|
10500
10508
|
finalColumns.push(actionsColumn);
|
|
10501
10509
|
}
|
|
10502
10510
|
} else {
|
|
10503
|
-
if (selectionColumn) {
|
|
10504
|
-
finalColumns.push(selectionColumn);
|
|
10505
|
-
}
|
|
10506
10511
|
finalColumns.push(...baseColumns);
|
|
10507
10512
|
if (actionsColumn) {
|
|
10508
10513
|
finalColumns.push(actionsColumn);
|
|
@@ -11138,9 +11143,25 @@ function DataTableInternal({
|
|
|
11138
11143
|
});
|
|
11139
11144
|
useEffect12(() => {
|
|
11140
11145
|
if (secureFeatures.columnReordering && isColumnOrderLoaded && savedColumnOrder && savedColumnOrder.length > 0) {
|
|
11141
|
-
|
|
11146
|
+
const normalizedOrder = secureFeatures.selection && savedColumnOrder.includes("select") ? ["select", ...savedColumnOrder.filter((id) => id !== "select")] : savedColumnOrder;
|
|
11147
|
+
stateActions.setColumnOrder(normalizedOrder);
|
|
11148
|
+
}
|
|
11149
|
+
}, [secureFeatures.columnReordering, secureFeatures.selection, isColumnOrderLoaded, savedColumnOrder, stateActions]);
|
|
11150
|
+
useEffect12(() => {
|
|
11151
|
+
if (secureFeatures.selection && state.columnOrder.includes("select") && state.columnOrder[0] !== "select") {
|
|
11152
|
+
const normalizedOrder = ["select", ...state.columnOrder.filter((id) => id !== "select")];
|
|
11153
|
+
if (import.meta.env?.MODE === "development") {
|
|
11154
|
+
console.warn("[DataTable] Correcting column order state - moving select to first position:", {
|
|
11155
|
+
before: state.columnOrder,
|
|
11156
|
+
after: normalizedOrder
|
|
11157
|
+
});
|
|
11158
|
+
}
|
|
11159
|
+
stateActions.setColumnOrder(normalizedOrder);
|
|
11160
|
+
if (secureFeatures.columnReordering) {
|
|
11161
|
+
updateColumnOrder(normalizedOrder);
|
|
11162
|
+
}
|
|
11142
11163
|
}
|
|
11143
|
-
}, [secureFeatures.columnReordering,
|
|
11164
|
+
}, [secureFeatures.selection, secureFeatures.columnReordering, state.columnOrder, stateActions, updateColumnOrder]);
|
|
11144
11165
|
const finalPageSizeOptions = optimizedPageSizeOptions;
|
|
11145
11166
|
const validatedInitialPageSize = useMemo14(() => {
|
|
11146
11167
|
if (!secureFeatures.pagination || !finalPageSizeOptions.length) {
|
|
@@ -11160,6 +11181,39 @@ function DataTableInternal({
|
|
|
11160
11181
|
}
|
|
11161
11182
|
return closestOption;
|
|
11162
11183
|
}, [initialPageSize, finalPageSizeOptions, secureFeatures.pagination]);
|
|
11184
|
+
const effectivePageSize = useMemo14(() => {
|
|
11185
|
+
if (!secureFeatures.pagination || !finalPageSizeOptions.length) {
|
|
11186
|
+
return state.pagination.pageSize;
|
|
11187
|
+
}
|
|
11188
|
+
if (!finalPageSizeOptions.includes(state.pagination.pageSize)) {
|
|
11189
|
+
return validatedInitialPageSize;
|
|
11190
|
+
}
|
|
11191
|
+
return state.pagination.pageSize;
|
|
11192
|
+
}, [state.pagination.pageSize, validatedInitialPageSize, secureFeatures.pagination, finalPageSizeOptions]);
|
|
11193
|
+
useEffect12(() => {
|
|
11194
|
+
if (secureFeatures.pagination && finalPageSizeOptions.length > 0) {
|
|
11195
|
+
const needsFix = !finalPageSizeOptions.includes(state.pagination.pageSize);
|
|
11196
|
+
const currentPageSize = effectivePageSize || validatedInitialPageSize;
|
|
11197
|
+
const totalPages = currentPageSize > 0 ? Math.ceil(finalDataCount / currentPageSize) : 0;
|
|
11198
|
+
const pageIndexOutOfBounds = totalPages > 0 && state.pagination.pageIndex >= totalPages;
|
|
11199
|
+
if (needsFix || pageIndexOutOfBounds) {
|
|
11200
|
+
stateActions.setPagination({
|
|
11201
|
+
pageSize: validatedInitialPageSize,
|
|
11202
|
+
pageIndex: 0
|
|
11203
|
+
// Reset to first page when correcting pagination issues
|
|
11204
|
+
});
|
|
11205
|
+
}
|
|
11206
|
+
}
|
|
11207
|
+
}, [
|
|
11208
|
+
secureFeatures.pagination,
|
|
11209
|
+
finalPageSizeOptions,
|
|
11210
|
+
state.pagination.pageSize,
|
|
11211
|
+
state.pagination.pageIndex,
|
|
11212
|
+
validatedInitialPageSize,
|
|
11213
|
+
stateActions,
|
|
11214
|
+
effectivePageSize,
|
|
11215
|
+
finalDataCount
|
|
11216
|
+
]);
|
|
11163
11217
|
const isLoading = externalIsLoading || performanceLoading;
|
|
11164
11218
|
const handleSearch = useCallback10((value) => {
|
|
11165
11219
|
stateActions.setSearchQuery(value);
|
|
@@ -11246,32 +11300,56 @@ function DataTableInternal({
|
|
|
11246
11300
|
}
|
|
11247
11301
|
return result;
|
|
11248
11302
|
}, [actions, secureFeatures, permissions, secureHandlers, resolvedGetRowId, stateActions, data]);
|
|
11303
|
+
const normalizedColumnOrderForColumns = useMemo14(() => {
|
|
11304
|
+
if (secureFeatures.selection && state.columnOrder.includes("select")) {
|
|
11305
|
+
return ["select", ...state.columnOrder.filter((id) => id !== "select")];
|
|
11306
|
+
}
|
|
11307
|
+
return state.columnOrder;
|
|
11308
|
+
}, [state.columnOrder, secureFeatures.selection]);
|
|
11249
11309
|
const { enhancedColumns } = useTableColumns({
|
|
11250
11310
|
columns,
|
|
11251
11311
|
features: secureFeatures,
|
|
11252
11312
|
effectiveActions,
|
|
11253
|
-
columnOrder:
|
|
11313
|
+
columnOrder: normalizedColumnOrderForColumns
|
|
11254
11314
|
});
|
|
11255
|
-
const
|
|
11256
|
-
|
|
11257
|
-
|
|
11258
|
-
|
|
11259
|
-
|
|
11260
|
-
|
|
11261
|
-
|
|
11262
|
-
|
|
11263
|
-
|
|
11264
|
-
|
|
11265
|
-
|
|
11315
|
+
const paginationStateWithValidatedSize = useMemo14(() => ({
|
|
11316
|
+
...state.pagination,
|
|
11317
|
+
pageSize: effectivePageSize
|
|
11318
|
+
}), [state.pagination, effectivePageSize]);
|
|
11319
|
+
const tableStateSnapshot = useMemo14(() => {
|
|
11320
|
+
const normalizedColumnOrder = secureFeatures.selection && state.columnOrder.includes("select") ? ["select", ...state.columnOrder.filter((id) => id !== "select")] : state.columnOrder;
|
|
11321
|
+
if (import.meta.env?.MODE === "development" && secureFeatures.selection) {
|
|
11322
|
+
if (state.columnOrder[0] !== "select") {
|
|
11323
|
+
console.warn("[DataTable] Column order normalized:", {
|
|
11324
|
+
original: state.columnOrder,
|
|
11325
|
+
normalized: normalizedColumnOrder,
|
|
11326
|
+
firstColumnOriginal: state.columnOrder[0],
|
|
11327
|
+
firstColumnNormalized: normalizedColumnOrder[0]
|
|
11328
|
+
});
|
|
11329
|
+
}
|
|
11330
|
+
}
|
|
11331
|
+
return {
|
|
11332
|
+
sorting: state.sorting,
|
|
11333
|
+
columnFilters: state.columnFilters,
|
|
11334
|
+
columnVisibility: state.columnVisibility,
|
|
11335
|
+
rowSelection,
|
|
11336
|
+
grouping: state.grouping,
|
|
11337
|
+
expanded: state.expanded,
|
|
11338
|
+
pagination: paginationStateWithValidatedSize,
|
|
11339
|
+
globalFilter: searchQuery,
|
|
11340
|
+
columnOrder: normalizedColumnOrder
|
|
11341
|
+
};
|
|
11342
|
+
}, [
|
|
11266
11343
|
state.sorting,
|
|
11267
11344
|
state.columnFilters,
|
|
11268
11345
|
state.columnVisibility,
|
|
11269
11346
|
rowSelection,
|
|
11270
11347
|
state.grouping,
|
|
11271
11348
|
state.expanded,
|
|
11272
|
-
|
|
11349
|
+
paginationStateWithValidatedSize,
|
|
11273
11350
|
searchQuery,
|
|
11274
|
-
state.columnOrder
|
|
11351
|
+
state.columnOrder,
|
|
11352
|
+
secureFeatures.selection
|
|
11275
11353
|
]);
|
|
11276
11354
|
const tableHandlers = useTableHandlers({
|
|
11277
11355
|
state,
|
|
@@ -11295,7 +11373,7 @@ function DataTableInternal({
|
|
|
11295
11373
|
getRowId: resolvedGetRowId,
|
|
11296
11374
|
finalPaginationMode,
|
|
11297
11375
|
finalDataCount,
|
|
11298
|
-
pageSize:
|
|
11376
|
+
pageSize: effectivePageSize
|
|
11299
11377
|
});
|
|
11300
11378
|
const table = useReactTable(tableConfig);
|
|
11301
11379
|
if (!user) {
|
|
@@ -11319,7 +11397,8 @@ function DataTableInternal({
|
|
|
11319
11397
|
"table",
|
|
11320
11398
|
{
|
|
11321
11399
|
className: getTableClasses({
|
|
11322
|
-
isFixed:
|
|
11400
|
+
isFixed: false,
|
|
11401
|
+
// Use auto table-layout so columns size based on content
|
|
11323
11402
|
variant,
|
|
11324
11403
|
className: cn("border-collapse relative w-full", className)
|
|
11325
11404
|
}),
|
|
@@ -11393,7 +11472,7 @@ function DataTableInternal({
|
|
|
11393
11472
|
) })
|
|
11394
11473
|
] }),
|
|
11395
11474
|
/* @__PURE__ */ jsxs17("colgroup", { children: [
|
|
11396
|
-
hasSelectColumn && /* @__PURE__ */ jsx24("col", { span: 1, "data-col-type": "select"
|
|
11475
|
+
hasSelectColumn && /* @__PURE__ */ jsx24("col", { span: 1, "data-col-type": "select" }),
|
|
11397
11476
|
/* @__PURE__ */ jsx24("col", { span: dataColumns, "data-col-type": "data" }),
|
|
11398
11477
|
hasActionsColumn && /* @__PURE__ */ jsx24("col", { span: 1, "data-col-type": "actions" })
|
|
11399
11478
|
] }),
|
|
@@ -11793,4 +11872,4 @@ lodash/lodash.js:
|
|
|
11793
11872
|
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
|
11794
11873
|
*)
|
|
11795
11874
|
*/
|
|
11796
|
-
//# sourceMappingURL=chunk-
|
|
11875
|
+
//# sourceMappingURL=chunk-CACHCRZS.js.map
|