@jmruthers/pace-core 0.5.80 → 0.5.82
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-OOZS7YTJ.js → DataTable-AK65GULE.js} +2 -2
- package/dist/{chunk-MJWN5JKI.js → chunk-IEFWXF2A.js} +2 -2
- package/dist/{chunk-MVFZYTIZ.js → chunk-VCYSL54W.js} +115 -15
- package/dist/{chunk-MVFZYTIZ.js.map → chunk-VCYSL54W.js.map} +1 -1
- package/dist/components.js +2 -2
- package/dist/index.js +2 -2
- 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 +2 -2
- package/package.json +1 -1
- package/src/components/DataTable/__tests__/styles.test.ts +5 -5
- package/src/components/DataTable/components/DataTableCore.tsx +99 -17
- package/src/components/DataTable/components/UnifiedTableBody.tsx +47 -4
- package/src/components/DataTable/hooks/useDataTableDataPipeline.ts +12 -1
- package/src/components/DataTable/styles.ts +1 -1
- /package/dist/{DataTable-OOZS7YTJ.js.map → DataTable-AK65GULE.js.map} +0 -0
- /package/dist/{chunk-MJWN5JKI.js.map → chunk-IEFWXF2A.js.map} +0 -0
|
@@ -53,7 +53,7 @@ import {
|
|
|
53
53
|
sortHierarchicalDataWithSorting,
|
|
54
54
|
validateHierarchicalData,
|
|
55
55
|
validatePaginationConfig
|
|
56
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-VCYSL54W.js";
|
|
57
57
|
import "./chunk-YVUZWLQG.js";
|
|
58
58
|
import "./chunk-S63MFSY6.js";
|
|
59
59
|
import "./chunk-Q7APDV6H.js";
|
|
@@ -154,4 +154,4 @@ export {
|
|
|
154
154
|
validateHierarchicalData,
|
|
155
155
|
validatePaginationConfig
|
|
156
156
|
};
|
|
157
|
-
//# sourceMappingURL=DataTable-
|
|
157
|
+
//# sourceMappingURL=DataTable-AK65GULE.js.map
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
SelectSeparator,
|
|
23
23
|
SelectTrigger,
|
|
24
24
|
SelectValue
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-VCYSL54W.js";
|
|
26
26
|
import {
|
|
27
27
|
isPermitted,
|
|
28
28
|
isSuperAdmin
|
|
@@ -3883,4 +3883,4 @@ export {
|
|
|
3883
3883
|
PublicPageDiagnostic,
|
|
3884
3884
|
PublicPageContextChecker
|
|
3885
3885
|
};
|
|
3886
|
-
//# sourceMappingURL=chunk-
|
|
3886
|
+
//# sourceMappingURL=chunk-IEFWXF2A.js.map
|
|
@@ -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,
|
|
@@ -7663,6 +7660,37 @@ function UnifiedTableBody({
|
|
|
7663
7660
|
const shouldVirtualize = forceVirtualization || dataLength > VIRTUALIZATION_THRESHOLD;
|
|
7664
7661
|
const rows = table.getRowModel().rows;
|
|
7665
7662
|
const headerGroups = table.getHeaderGroups();
|
|
7663
|
+
useEffect3(() => {
|
|
7664
|
+
if (import.meta.env?.MODE === "development" && rows.length === 0 && dataLength > 0) {
|
|
7665
|
+
const tableState = table.getState();
|
|
7666
|
+
const pagination = tableState.pagination;
|
|
7667
|
+
const columnFilters = tableState.columnFilters;
|
|
7668
|
+
const globalFilter = tableState.globalFilter;
|
|
7669
|
+
const allRows = table.getPrePaginationRowModel?.()?.rows || [];
|
|
7670
|
+
const rowCount = table.getRowCount();
|
|
7671
|
+
const pageCount = table.getPageCount();
|
|
7672
|
+
console.warn("[DataTable] Diagnostic: Rows empty but data exists", {
|
|
7673
|
+
dataLength,
|
|
7674
|
+
rowsLength: rows.length,
|
|
7675
|
+
allRowsLength: allRows.length,
|
|
7676
|
+
rowCount,
|
|
7677
|
+
pageCount,
|
|
7678
|
+
pagination: {
|
|
7679
|
+
pageIndex: pagination.pageIndex,
|
|
7680
|
+
pageSize: pagination.pageSize
|
|
7681
|
+
},
|
|
7682
|
+
columnFilters,
|
|
7683
|
+
globalFilter,
|
|
7684
|
+
hasFilteredRows: table.getFilteredRowModel?.()?.rows?.length || 0,
|
|
7685
|
+
hasSortedRows: table.getSortedRowModel?.()?.rows?.length || 0,
|
|
7686
|
+
tableOptions: {
|
|
7687
|
+
getFilteredRowModel: !!table.options.getFilteredRowModel,
|
|
7688
|
+
getSortedRowModel: !!table.options.getSortedRowModel,
|
|
7689
|
+
getPaginationRowModel: !!table.options.getPaginationRowModel
|
|
7690
|
+
}
|
|
7691
|
+
});
|
|
7692
|
+
}
|
|
7693
|
+
}, [rows.length, dataLength, table]);
|
|
7666
7694
|
const virtualizer = useVirtualizer({
|
|
7667
7695
|
count: shouldVirtualize ? rows.length : 0,
|
|
7668
7696
|
getScrollElement: () => parentRef.current,
|
|
@@ -9558,7 +9586,10 @@ function useDataTableDataPipeline({
|
|
|
9558
9586
|
);
|
|
9559
9587
|
const baseData = useMemo8(() => {
|
|
9560
9588
|
if (finalPaginationMode === "server") {
|
|
9561
|
-
|
|
9589
|
+
if (serverData?.data && serverData.data.length > 0) {
|
|
9590
|
+
return serverData.data;
|
|
9591
|
+
}
|
|
9592
|
+
return structuredHierarchicalData;
|
|
9562
9593
|
}
|
|
9563
9594
|
return structuredHierarchicalData;
|
|
9564
9595
|
}, [finalPaginationMode, serverData?.data, structuredHierarchicalData]);
|
|
@@ -11134,6 +11165,20 @@ function DataTableInternal({
|
|
|
11134
11165
|
console.error("[DataTable] Hierarchical data validation failed:", hierarchicalValidation.errors);
|
|
11135
11166
|
}
|
|
11136
11167
|
}, [hierarchicalValidation]);
|
|
11168
|
+
useEffect12(() => {
|
|
11169
|
+
if (import.meta.env?.MODE === "development" && finalTableData.length === 0 && data.length > 0) {
|
|
11170
|
+
console.warn("[DataTable] Diagnostic: finalTableData empty but input data exists", {
|
|
11171
|
+
inputDataLength: data.length,
|
|
11172
|
+
finalTableDataLength: finalTableData.length,
|
|
11173
|
+
dataCount: finalDataCount,
|
|
11174
|
+
finalPaginationMode,
|
|
11175
|
+
hasServerData: !!serverData,
|
|
11176
|
+
serverDataLength: serverData?.data?.length || 0,
|
|
11177
|
+
hierarchicalEnabled: Boolean(secureFeatures.hierarchical && hierarchical?.enabled),
|
|
11178
|
+
hierarchicalValid: hierarchicalValidation.isValid
|
|
11179
|
+
});
|
|
11180
|
+
}
|
|
11181
|
+
}, [finalTableData.length, data.length, finalDataCount, finalPaginationMode, serverData, secureFeatures.hierarchical, hierarchical, hierarchicalValidation.isValid]);
|
|
11137
11182
|
const {
|
|
11138
11183
|
columnOrder: savedColumnOrder,
|
|
11139
11184
|
isLoaded: isColumnOrderLoaded,
|
|
@@ -11184,15 +11229,6 @@ function DataTableInternal({
|
|
|
11184
11229
|
}
|
|
11185
11230
|
return closestOption;
|
|
11186
11231
|
}, [initialPageSize, finalPageSizeOptions, secureFeatures.pagination]);
|
|
11187
|
-
useEffect12(() => {
|
|
11188
|
-
if (secureFeatures.pagination && validatedInitialPageSize !== state.pagination.pageSize && finalPageSizeOptions.includes(validatedInitialPageSize)) {
|
|
11189
|
-
stateActions.setPagination({
|
|
11190
|
-
...state.pagination,
|
|
11191
|
-
pageSize: validatedInitialPageSize,
|
|
11192
|
-
pageIndex: 0
|
|
11193
|
-
});
|
|
11194
|
-
}
|
|
11195
|
-
}, [validatedInitialPageSize, secureFeatures.pagination, finalPageSizeOptions, stateActions, state.pagination.pageSize]);
|
|
11196
11232
|
const effectivePageSize = useMemo14(() => {
|
|
11197
11233
|
if (!secureFeatures.pagination || !finalPageSizeOptions.length) {
|
|
11198
11234
|
return state.pagination.pageSize;
|
|
@@ -11202,6 +11238,30 @@ function DataTableInternal({
|
|
|
11202
11238
|
}
|
|
11203
11239
|
return state.pagination.pageSize;
|
|
11204
11240
|
}, [state.pagination.pageSize, validatedInitialPageSize, secureFeatures.pagination, finalPageSizeOptions]);
|
|
11241
|
+
useEffect12(() => {
|
|
11242
|
+
if (secureFeatures.pagination && finalPageSizeOptions.length > 0) {
|
|
11243
|
+
const needsFix = !finalPageSizeOptions.includes(state.pagination.pageSize);
|
|
11244
|
+
const currentPageSize = effectivePageSize || validatedInitialPageSize;
|
|
11245
|
+
const totalPages = currentPageSize > 0 ? Math.ceil(finalDataCount / currentPageSize) : 0;
|
|
11246
|
+
const pageIndexOutOfBounds = totalPages > 0 && state.pagination.pageIndex >= totalPages;
|
|
11247
|
+
if (needsFix || pageIndexOutOfBounds) {
|
|
11248
|
+
stateActions.setPagination({
|
|
11249
|
+
pageSize: validatedInitialPageSize,
|
|
11250
|
+
pageIndex: 0
|
|
11251
|
+
// Reset to first page when correcting pagination issues
|
|
11252
|
+
});
|
|
11253
|
+
}
|
|
11254
|
+
}
|
|
11255
|
+
}, [
|
|
11256
|
+
secureFeatures.pagination,
|
|
11257
|
+
finalPageSizeOptions,
|
|
11258
|
+
state.pagination.pageSize,
|
|
11259
|
+
state.pagination.pageIndex,
|
|
11260
|
+
validatedInitialPageSize,
|
|
11261
|
+
stateActions,
|
|
11262
|
+
effectivePageSize,
|
|
11263
|
+
finalDataCount
|
|
11264
|
+
]);
|
|
11205
11265
|
const isLoading = externalIsLoading || performanceLoading;
|
|
11206
11266
|
const handleSearch = useCallback10((value) => {
|
|
11207
11267
|
stateActions.setSearchQuery(value);
|
|
@@ -11363,7 +11423,47 @@ function DataTableInternal({
|
|
|
11363
11423
|
finalDataCount,
|
|
11364
11424
|
pageSize: effectivePageSize
|
|
11365
11425
|
});
|
|
11426
|
+
useEffect12(() => {
|
|
11427
|
+
if (import.meta.env?.MODE === "development" && finalTableData.length > 0) {
|
|
11428
|
+
const configDataLength = tableConfig.data?.length || 0;
|
|
11429
|
+
if (configDataLength === 0) {
|
|
11430
|
+
console.warn("[DataTable] Diagnostic: tableConfig.data is empty but finalTableData has items", {
|
|
11431
|
+
finalTableDataLength: finalTableData.length,
|
|
11432
|
+
configDataLength,
|
|
11433
|
+
enhancedColumnsCount: enhancedColumns.length
|
|
11434
|
+
});
|
|
11435
|
+
}
|
|
11436
|
+
}
|
|
11437
|
+
}, [finalTableData.length, tableConfig.data]);
|
|
11366
11438
|
const table = useReactTable(tableConfig);
|
|
11439
|
+
useEffect12(() => {
|
|
11440
|
+
if (import.meta.env?.MODE === "development" && finalTableData.length > 0) {
|
|
11441
|
+
const rows = table.getRowModel().rows;
|
|
11442
|
+
if (rows.length === 0) {
|
|
11443
|
+
const coreRows = table.getCoreRowModel().rows;
|
|
11444
|
+
const prePaginationRows = table.getPrePaginationRowModel?.()?.rows || [];
|
|
11445
|
+
const filteredRows = table.getFilteredRowModel?.()?.rows || [];
|
|
11446
|
+
const sortedRows = table.getSortedRowModel?.()?.rows || [];
|
|
11447
|
+
console.warn("[DataTable] Diagnostic: Table created but rows are empty", {
|
|
11448
|
+
finalTableDataLength: finalTableData.length,
|
|
11449
|
+
tableConfigDataLength: tableConfig.data?.length || 0,
|
|
11450
|
+
coreRowsLength: coreRows.length,
|
|
11451
|
+
prePaginationRowsLength: prePaginationRows.length,
|
|
11452
|
+
filteredRowsLength: filteredRows.length,
|
|
11453
|
+
sortedRowsLength: sortedRows.length,
|
|
11454
|
+
finalRowsLength: rows.length,
|
|
11455
|
+
pagination: table.getState().pagination,
|
|
11456
|
+
tableOptions: {
|
|
11457
|
+
getCoreRowModel: !!tableConfig.getCoreRowModel,
|
|
11458
|
+
getFilteredRowModel: !!tableConfig.getFilteredRowModel,
|
|
11459
|
+
getSortedRowModel: !!tableConfig.getSortedRowModel,
|
|
11460
|
+
getPaginationRowModel: !!tableConfig.getPaginationRowModel
|
|
11461
|
+
},
|
|
11462
|
+
hasRowId: !!resolvedGetRowId
|
|
11463
|
+
});
|
|
11464
|
+
}
|
|
11465
|
+
}
|
|
11466
|
+
}, [table, finalTableData.length, tableConfig, resolvedGetRowId]);
|
|
11367
11467
|
if (!user) {
|
|
11368
11468
|
throw new Error("DataTable requires authenticated user for RBAC");
|
|
11369
11469
|
}
|
|
@@ -11860,4 +11960,4 @@ lodash/lodash.js:
|
|
|
11860
11960
|
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
|
11861
11961
|
*)
|
|
11862
11962
|
*/
|
|
11863
|
-
//# sourceMappingURL=chunk-
|
|
11963
|
+
//# sourceMappingURL=chunk-VCYSL54W.js.map
|