@plumile/backoffice-react 0.1.188 → 0.1.190

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.
Files changed (127) hide show
  1. package/lib/esm/auth/login/LoginFlow.js.map +1 -1
  2. package/lib/esm/auth/login/MethodChooser.js.map +1 -1
  3. package/lib/esm/auth/login/MfaChallengeForm.js.map +1 -1
  4. package/lib/esm/auth/login/PasskeyLoginForm.js.map +1 -1
  5. package/lib/esm/auth/login/loginPage.css.js +2 -0
  6. package/lib/esm/auth/login/synchronizeAuthStatusQuery.js.map +1 -1
  7. package/lib/esm/auth/pages/AcceptInvitationScreen.js.map +1 -1
  8. package/lib/esm/auth/pages/PasswordResetCompleteScreen.js.map +1 -1
  9. package/lib/esm/auth/pages/PasswordResetRequestScreen.js.map +1 -1
  10. package/lib/esm/auth/pages/VerifyEmailScreen.js.map +1 -1
  11. package/lib/esm/components/backoffice/actions/LazyBackofficeEntityActionFormDialog.js.map +1 -1
  12. package/lib/esm/components/backoffice/billing/BackofficeBillingUsageChart.js.map +1 -1
  13. package/lib/esm/components/backoffice/columns/buildDataTableColumns.js.map +1 -1
  14. package/lib/esm/components/backoffice/detail/BackofficeLifecycleTimelineSection.js.map +1 -1
  15. package/lib/esm/components/backoffice/detail/BackofficeTokenUsageBreakdown.js.map +1 -1
  16. package/lib/esm/components/backoffice/detail/backofficeDetailRelationLink.css.js +1 -0
  17. package/lib/esm/components/backoffice/detail/backofficeEntitySummaryHeader.css.js +0 -1
  18. package/lib/esm/components/backoffice/detail/createBackofficeEntityLinkProps.js.map +1 -1
  19. package/lib/esm/components/backoffice/detail/detailPayloadUtils.js.map +1 -1
  20. package/lib/esm/components/backoffice/filters/backofficeFilterAction.css.js +0 -1
  21. package/lib/esm/components/backoffice/filters/deferredFilterSearchInput.css.js +0 -1
  22. package/lib/esm/components/backoffice/layout/breadcrumb/assertValidBreadcrumb.js.map +1 -1
  23. package/lib/esm/components/backoffice/layout/buildSidebarSections.js.map +1 -1
  24. package/lib/esm/components/backoffice/layout/mapViewerToSidebarProfileView.js.map +1 -1
  25. package/lib/esm/components/backoffice/layout/sidebarUtils.js.map +1 -1
  26. package/lib/esm/components/backoffice/links/resolveBackofficeLink.js.map +1 -1
  27. package/lib/esm/components/backoffice/links/resolveBackofficeTargetIcon.js.map +1 -1
  28. package/lib/esm/components/backoffice/list/RowFlagsCell.js.map +1 -1
  29. package/lib/esm/components/backoffice/pickers/EntityIdPickerDialog.js.map +1 -1
  30. package/lib/esm/components/backoffice/refs/BackofficeLazyEntityCount.js.map +1 -1
  31. package/lib/esm/components/backoffice/refs/BackofficeRelatedCountLink.js.map +1 -1
  32. package/lib/esm/components/backoffice/routing/BackofficeContentBoundary.js.map +1 -1
  33. package/lib/esm/components/backoffice/scaffolds/BackofficeEntityListScaffold.js +368 -281
  34. package/lib/esm/components/backoffice/scaffolds/BackofficeEntityListScaffold.js.map +1 -1
  35. package/lib/esm/components/backoffice/scaffolds/backofficeEntityListScaffold.css.js +2 -2
  36. package/lib/esm/components/backoffice/scaffolds/backofficeEntityListScaffold.css.js.map +1 -1
  37. package/lib/esm/components/backoffice/shared/backofficeFilterableCell.css.js +1 -1
  38. package/lib/esm/components/backoffice/technical/TechnicalIdentifierValue.js.map +1 -1
  39. package/lib/esm/filters/filterHelpers.js +1 -1
  40. package/lib/esm/filters/filterHelpers.js.map +1 -1
  41. package/lib/esm/hooks/useAuth.js.map +1 -1
  42. package/lib/esm/hooks/useBackofficeAuth.js.map +1 -1
  43. package/lib/esm/hooks/useBackofficeInfiniteScrollSentinel.js.map +1 -1
  44. package/lib/esm/hooks/useBackofficeListUrlState.js.map +1 -1
  45. package/lib/esm/hooks/useBackofficeSessionAuth.js.map +1 -1
  46. package/lib/esm/hooks/useConditionalSubscription.js.map +1 -1
  47. package/lib/esm/hooks/useSidebarGroupCollapse.js.map +1 -1
  48. package/lib/esm/i18n/createI18nInstance.js.map +1 -1
  49. package/lib/esm/i18n/locales/en/backofficeReact.js +409 -405
  50. package/lib/esm/i18n/locales/en/backofficeReact.js.map +1 -1
  51. package/lib/esm/i18n/locales/fr/backofficeReact.js +412 -407
  52. package/lib/esm/i18n/locales/fr/backofficeReact.js.map +1 -1
  53. package/lib/esm/i18n/mergeResourceLanguages.js.map +1 -1
  54. package/lib/esm/i18n/resources.js +1 -1
  55. package/lib/esm/i18n/resources.js.map +1 -1
  56. package/lib/esm/i18n/useBackofficeFormats.js.map +1 -1
  57. package/lib/esm/modules/base64.js.map +1 -1
  58. package/lib/esm/modules/formatFileSize.js.map +1 -1
  59. package/lib/esm/modules/uploads.js +17 -17
  60. package/lib/esm/modules/uploads.js.map +1 -1
  61. package/lib/esm/modules/webauthn.js.map +1 -1
  62. package/lib/esm/node_modules/@babel/runtime/helpers/objectSpread2.js.map +1 -1
  63. package/lib/esm/node_modules/@babel/runtime/helpers/toPrimitive.js.map +1 -1
  64. package/lib/esm/node_modules/@babel/runtime/helpers/toPropertyKey.js.map +1 -1
  65. package/lib/esm/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js.map +1 -1
  66. package/lib/esm/node_modules/@vanilla-extract/recipes/dist/createRuntimeFn-62c9670f.esm.js +1 -1
  67. package/lib/esm/node_modules/@vanilla-extract/recipes/dist/createRuntimeFn-62c9670f.esm.js.map +1 -1
  68. package/lib/esm/node_modules/fbjs/lib/areEqual.js.map +1 -1
  69. package/lib/esm/node_modules/relay-test-utils/lib/RelayMockPayloadGenerator.js.map +1 -1
  70. package/lib/esm/node_modules/relay-test-utils/lib/RelayModernMockEnvironment.js.map +1 -1
  71. package/lib/esm/node_modules/relay-test-utils/lib/RelayResolverTestUtils.js.map +1 -1
  72. package/lib/esm/pages/BackofficeDashboardPage.js.map +1 -1
  73. package/lib/esm/pages/BackofficeDashboardWidgetContent.js.map +1 -1
  74. package/lib/esm/pages/BackofficeEntityDetailLayoutPage.js.map +1 -1
  75. package/lib/esm/pages/BackofficeEntityDetailPage.js.map +1 -1
  76. package/lib/esm/pages/BackofficeEntityDetailPage.view-helpers.js.map +1 -1
  77. package/lib/esm/pages/BackofficeEntityListDataPage.js +77 -70
  78. package/lib/esm/pages/BackofficeEntityListDataPage.js.map +1 -1
  79. package/lib/esm/pages/BackofficeEntityListPage.helpers.js +5 -5
  80. package/lib/esm/pages/BackofficeEntityListPage.helpers.js.map +1 -1
  81. package/lib/esm/pages/BackofficeEntityListPage.js +89 -85
  82. package/lib/esm/pages/BackofficeEntityListPage.js.map +1 -1
  83. package/lib/esm/pages/BackofficeEntityListRouteContext.js.map +1 -1
  84. package/lib/esm/pages/BackofficeHubPage.js.map +1 -1
  85. package/lib/esm/pages/BackofficeLayoutPage.js.map +1 -1
  86. package/lib/esm/pages/BackofficeLoginPage.js.map +1 -1
  87. package/lib/esm/pages/BackofficePasswordResetRequestPage.js.map +1 -1
  88. package/lib/esm/pages/BackofficeVerifyEmailPage.js.map +1 -1
  89. package/lib/esm/pages/detail/BackofficeEntityDetailManifestFallback.js.map +1 -1
  90. package/lib/esm/pages/detail/pageResolution.js.map +1 -1
  91. package/lib/esm/provider/BackofficeListUiStateContext.js +88 -0
  92. package/lib/esm/provider/BackofficeListUiStateContext.js.map +1 -0
  93. package/lib/esm/provider/BackofficeProvider.js +80 -79
  94. package/lib/esm/provider/BackofficeProvider.js.map +1 -1
  95. package/lib/esm/provider/entityRegistry.js.map +1 -1
  96. package/lib/esm/provider/lazyValue.js.map +1 -1
  97. package/lib/esm/provider/useBackofficeEntityLoader.js.map +1 -1
  98. package/lib/esm/relay/connectionUtils.js.map +1 -1
  99. package/lib/esm/relay/envHelpers.js.map +1 -1
  100. package/lib/esm/router/createBackofficeRoutes.js.map +1 -1
  101. package/lib/esm/storybook/relay/RelayStory.js.map +1 -1
  102. package/lib/esm/storybook/relay/mockResolvers.js.map +1 -1
  103. package/lib/types/components/backoffice/detail/BackofficeLifecycleTimelineSection.d.ts.map +1 -1
  104. package/lib/types/components/backoffice/pickers/EntityIdPickerDialog.d.ts.map +1 -1
  105. package/lib/types/components/backoffice/scaffolds/BackofficeEntityListScaffold.d.ts +2 -0
  106. package/lib/types/components/backoffice/scaffolds/BackofficeEntityListScaffold.d.ts.map +1 -1
  107. package/lib/types/components/backoffice/scaffolds/backofficeEntityListScaffold.css.d.ts +2 -0
  108. package/lib/types/components/backoffice/scaffolds/backofficeEntityListScaffold.css.d.ts.map +1 -1
  109. package/lib/types/components/backoffice/technical/TechnicalIdentifierValue.d.ts.map +1 -1
  110. package/lib/types/filters/filterHelpers.d.ts.map +1 -1
  111. package/lib/types/hooks/useAuth.d.ts.map +1 -1
  112. package/lib/types/i18n/resources.d.ts +7 -0
  113. package/lib/types/i18n/resources.d.ts.map +1 -1
  114. package/lib/types/modules/uploads.d.ts.map +1 -1
  115. package/lib/types/modules/webauthn.d.ts.map +1 -1
  116. package/lib/types/pages/BackofficeEntityListDataPage.d.ts.map +1 -1
  117. package/lib/types/pages/BackofficeEntityListPage.d.ts.map +1 -1
  118. package/lib/types/pages/BackofficeEntityListRouteContext.d.ts +2 -0
  119. package/lib/types/pages/BackofficeEntityListRouteContext.d.ts.map +1 -1
  120. package/lib/types/pages/BackofficePasswordResetRequestPage.d.ts.map +1 -1
  121. package/lib/types/pages/BackofficeVerifyEmailPage.d.ts.map +1 -1
  122. package/lib/types/pages/detail/pageResolution.d.ts.map +1 -1
  123. package/lib/types/provider/BackofficeListUiStateContext.d.ts +21 -0
  124. package/lib/types/provider/BackofficeListUiStateContext.d.ts.map +1 -0
  125. package/lib/types/provider/BackofficeProvider.d.ts.map +1 -1
  126. package/lib/types/provider/types.d.ts.map +1 -1
  127. package/package.json +16 -16
@@ -1 +1 @@
1
- {"version":3,"file":"createBackofficeRoutes.js","names":[],"sources":["../../../src/router/createBackofficeRoutes.tsx"],"sourcesContent":["/* eslint-disable no-ternary */\nimport {\n useContext,\n useEffect,\n type ComponentType,\n type JSX,\n type ReactNode,\n} from 'react';\nimport {\n getResourcePage,\n type ResourcePage,\n} from '@plumile/router/ResourcePage.js';\nimport RoutingContext from '@plumile/router/routing/RoutingContext.js';\nimport { r } from '@plumile/router/tools.js';\nimport {\n type AnyRoute,\n type Route,\n type RouteFallbackArgs,\n} from '@plumile/router/types.js';\nimport * as ReactRelay from 'react-relay';\nimport type { PreloadedQuery } from 'react-relay';\nimport type {\n Environment,\n GraphQLTaggedNode,\n OperationType,\n Variables,\n} from 'relay-runtime';\n\nimport { BACKOFFICE_LIST_DEFAULTS } from '@plumile/backoffice-core/constants.js';\nimport type {\n BackofficeDashboardConfig,\n BackofficeDetailPageManifestItem,\n BackofficeEntityManifestItem,\n BackofficeEntityManifestMap,\n I18nLabel,\n BackofficePreparedDetailFrameRoute,\n BackofficePreparedDetailLayoutDataRoute,\n BackofficePreparedDetailPageConfigRoute,\n BackofficePreparedDetailPageDataRoute,\n BackofficePreparedDetailShellRoute,\n BackofficePreparedDetailUnknownPageRoute,\n BackofficePreparedListDataRoute,\n BackofficePreparedListLayoutRoute,\n BackofficePreparedListShellRoute,\n BackofficePreparedToolConfigRoute,\n BackofficePreparedToolRoute,\n} from '@plumile/backoffice-core/types.js';\n\nimport type {\n BackofficeAuthConfig,\n BackofficeDashboardRegistration,\n BackofficeDashboardModule,\n BackofficeResolvedSidebarHubConfig,\n BackofficeSidebarConfig,\n} from '../provider/types.js';\nimport {\n buildEntityGroupLookup,\n resolveSidebarHubEntries,\n resolveSidebarGroups,\n} from '../components/backoffice/layout/sidebarUtils.js';\nimport type { BackofficeEntityRegistry } from '../provider/entityRegistry.js';\nimport { validateBackofficeDashboardRegistrations } from '../provider/dashboardRegistrations.js';\nimport { BackofficeEntityDetailManifestFallback } from '../pages/detail/BackofficeEntityDetailManifestFallback.js';\n\nconst { loadQuery, usePreloadedQuery } = ReactRelay;\n\nexport type CreateBackofficeRoutesInput = {\n basePath: string;\n entityManifest: BackofficeEntityManifestMap;\n entityRegistry: BackofficeEntityRegistry;\n sidebar?: BackofficeSidebarConfig;\n auth: BackofficeAuthConfig;\n dashboard?: BackofficeDashboardModule;\n dashboards?: readonly BackofficeDashboardRegistration[];\n toolsOperationPage?: ResourcePage | null;\n};\n\nexport type BackofficeRouterContext = {\n relayEnvironment: Environment;\n};\n\nexport const WrapperPageResource: ResourcePage | null = getResourcePage(\n 'WrapperPage',\n // eslint-disable-next-line arrow-body-style\n async () => ({\n default: (await import('@plumile/ui/pages/WrapperPage.js')).WrapperPage,\n }),\n);\n\nexport const BackofficeLayoutPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeLayoutPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeLayoutPage.js'),\n );\n\nexport const BackofficeEntityListPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityListPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityListPage.js'),\n );\n\nexport const BackofficeEntityListShellPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityListShellPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityListShellPage.js'),\n );\n\nexport const BackofficeEntityListDataPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityListDataPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityListDataPage.js'),\n );\n\nexport const BackofficeEntityDetailPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityDetailPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityDetailPage.js'),\n );\n\nexport const BackofficeEntityDetailFramePageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityDetailFramePage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityDetailFramePage.js'),\n );\n\nexport const BackofficeEntityDetailLayoutPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityDetailLayoutPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityDetailLayoutPage.js'),\n );\n\nexport const BackofficeEntityDetailPageConfigPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityDetailPageConfigPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityDetailPageConfigPage.js'),\n );\n\nexport const BackofficeEntityDetailShellPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityDetailShellPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityDetailShellPage.js'),\n );\n\nexport const BackofficeEntityDetailUnknownPageRedirectResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityDetailUnknownPageRedirect',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityDetailUnknownPageRedirect.js'),\n );\n\nexport const BackofficeDashboardPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeDashboardPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeDashboardPage.js'),\n );\n\nexport const BackofficeDashboardShellPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeDashboardShellPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeDashboardShellPage.js'),\n );\n\nexport const BackofficeToolShellPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeToolShellPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeToolShellPage.js'),\n );\n\nexport const BackofficeHubPageResource: ResourcePage | null = getResourcePage(\n 'BackofficeHubPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeHubPage.js'),\n);\n\nexport const BackofficeLoginPageResource: ResourcePage | null = getResourcePage(\n 'BackofficeLoginPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeLoginPage.js'),\n);\n\nexport const BackofficePasswordResetRequestPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficePasswordResetRequestPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficePasswordResetRequestPage.js'),\n );\n\nexport const BackofficePasswordResetCompletePageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficePasswordResetCompletePage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficePasswordResetCompletePage.js'),\n );\n\nexport const BackofficeVerifyEmailPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeVerifyEmailPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeVerifyEmailPage.js'),\n );\n\nexport const BackofficeAcceptInvitationPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeAcceptInvitationPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeAcceptInvitationPage.js'),\n );\n\ntype PreparedLayout = {\n permissionsQuery: PreloadedQuery<OperationType> | null;\n authStatusQuery: PreloadedQuery<OperationType> | null;\n};\n\nexport type BackofficePreparedDashboardShellRoute = {\n dashboardId: string | null;\n label?: I18nLabel;\n};\n\nexport type BackofficePreparedDashboardRoute =\n BackofficePreparedDashboardShellRoute & {\n config: BackofficeDashboardConfig;\n };\n\ntype LayoutAuthStatus = {\n isLoggedIn?: boolean | null;\n me?: {\n id: string;\n firstName: string;\n lastName: string;\n email: string;\n initials: string;\n } | null;\n} | null;\n\ntype LayoutRouteComponent = ComponentType<{\n children: ReactNode;\n permissionsQuery?: GraphQLTaggedNode;\n prepared?: PreloadedQuery<OperationType> | null;\n authStatus?: LayoutAuthStatus;\n activeGroupId?: string | null;\n}>;\n\ntype LayoutRouteRenderProps = {\n children: ReactNode;\n Component: LayoutRouteComponent;\n preparedLayout: PreparedLayout | undefined;\n permissionsQuery: GraphQLTaggedNode | undefined;\n activeGroupId: string | null;\n};\n\nconst BackofficeHistoryRedirect = ({\n pathname,\n}: {\n pathname: string;\n}): null => {\n const router = useContext(RoutingContext);\n\n useEffect(() => {\n router?.history.set({\n pathname,\n });\n }, [pathname, router]);\n\n return null;\n};\n\nconst BackofficeLayoutRouteWithoutAuthStatus = ({\n children,\n Component,\n preparedLayout,\n permissionsQuery,\n activeGroupId,\n}: LayoutRouteRenderProps): JSX.Element => {\n return (\n <Component\n permissionsQuery={permissionsQuery}\n prepared={preparedLayout?.permissionsQuery ?? null}\n authStatus={null}\n activeGroupId={activeGroupId}\n >\n {children}\n </Component>\n );\n};\n\nconst BackofficeLayoutRouteWithAuthStatus = ({\n children,\n Component,\n preparedLayout,\n permissionsQuery,\n activeGroupId,\n authStatusQuery,\n authStatusPrepared,\n loginRedirectPath,\n}: LayoutRouteRenderProps & {\n authStatusQuery: GraphQLTaggedNode;\n authStatusPrepared: PreloadedQuery<OperationType>;\n loginRedirectPath: string;\n}): JSX.Element => {\n const data = usePreloadedQuery(authStatusQuery, authStatusPrepared);\n const authStatus = data as LayoutAuthStatus;\n\n if (authStatus?.isLoggedIn !== true) {\n return <BackofficeHistoryRedirect pathname={loginRedirectPath} />;\n }\n\n return (\n <Component\n permissionsQuery={permissionsQuery}\n prepared={preparedLayout?.permissionsQuery ?? null}\n authStatus={authStatus}\n activeGroupId={activeGroupId}\n >\n {children}\n </Component>\n );\n};\n\nexport type BackofficePreparedHubRoute = {\n hubId: string;\n hub: BackofficeResolvedSidebarHubConfig;\n};\n\nconst normalizeBaseSegment = (value: string): string => {\n const trimmed = value.trim();\n if (trimmed === '' || trimmed === '/') {\n return '';\n }\n return trimmed.replace(/^\\/+|\\/+$/g, '');\n};\n\nconst normalizePath = (value: string): string => {\n const trimmed = value.trim();\n if (trimmed === '') {\n return '/';\n }\n return `/${trimmed}`.replace(/\\/+/g, '/');\n};\n\nconst buildScopedPath = (baseSegment: string, path: string): string => {\n const normalizedPath = path.replace(/^\\/+|\\/+$/g, '');\n if (baseSegment === '') {\n return normalizedPath;\n }\n if (normalizedPath === '') {\n return baseSegment;\n }\n return `${baseSegment}/${normalizedPath}`;\n};\n\nconst buildScopedAbsolutePath = (baseSegment: string, path: string): string => {\n return normalizePath(buildScopedPath(baseSegment, path));\n};\n\nconst normalizePagePath = (value: string): string => {\n return value.trim().replace(/^\\/+|\\/+$/g, '');\n};\n\nconst buildRelativePath = (\n absolutePath: string,\n baseSegment: string,\n): string => {\n const normalized = normalizePath(absolutePath);\n const basePrefix = baseSegment === '' ? '' : `/${baseSegment}`;\n if (basePrefix !== '' && normalized.startsWith(basePrefix)) {\n return normalized.slice(basePrefix.length).replace(/^\\/+/, '');\n }\n return normalized.replace(/^\\/+/, '');\n};\n\nconst resolveActiveEntityIdFromRoute = (\n route: { routes: AnyRoute[] } | null,\n routeEntityIdMap: WeakMap<AnyRoute, string>,\n): string | null => {\n if (route?.routes == null) {\n return null;\n }\n for (let index = route.routes.length - 1; index >= 0; index -= 1) {\n const routeEntry = route.routes[index];\n if (routeEntry != null) {\n const entityId = routeEntityIdMap.get(routeEntry);\n if (entityId != null) {\n return entityId;\n }\n }\n }\n return null;\n};\n\nconst toSearchParams = (query: Record<string, unknown>): URLSearchParams => {\n const params = new URLSearchParams();\n Object.entries(query).forEach(([key, value]) => {\n if (value == null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((entry) => {\n if (entry == null) {\n return;\n }\n params.append(key, String(entry));\n });\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n params.set(key, String(value));\n });\n return params;\n};\n\nconst resolveDetailPageManifestByPath = (\n entityManifestItem: BackofficeEntityManifestItem,\n rawPagePath: string,\n): BackofficeDetailPageManifestItem | null => {\n const pagePath = normalizePagePath(rawPagePath);\n return (\n entityManifestItem.detailPages?.find((page) => {\n return normalizePagePath(page.pathSegment) === pagePath;\n }) ?? null\n );\n};\n\nconst resolveDetailPageIdForPath = (\n entityManifestItem: BackofficeEntityManifestItem,\n rawPagePath: string,\n): string => {\n return (\n resolveDetailPageManifestByPath(entityManifestItem, rawPagePath)?.id ??\n rawPagePath\n );\n};\n\nconst rBackoffice = r<BackofficeRouterContext>;\n\n/**\n * Creates backoffice routes based on the provided configuration\n */\nexport function createBackofficeRoutes(\n input: CreateBackofficeRoutesInput,\n): Route<BackofficeRouterContext, any>[] {\n const { basePath, entityManifest, entityRegistry, sidebar, auth, dashboard } =\n input;\n const dashboards = validateBackofficeDashboardRegistrations(input.dashboards);\n const baseSegment = normalizeBaseSegment(basePath);\n const loginPath = buildScopedPath(baseSegment, 'login');\n const passwordResetRequestPath = buildScopedPath(baseSegment, 'login/reset');\n const passwordResetCompletePath = buildScopedPath(\n baseSegment,\n 'login/reset/complete',\n );\n const verifyEmailPath = buildScopedPath(baseSegment, 'verify-email');\n const acceptInvitationPath = buildScopedPath(\n baseSegment,\n 'accept-invitation',\n );\n const loginRedirectPath = buildScopedAbsolutePath(baseSegment, 'login');\n const entities = entityManifest;\n const groups = resolveSidebarGroups(entities, sidebar);\n const hubEntries = resolveSidebarHubEntries(groups, sidebar);\n const entityGroupLookup = buildEntityGroupLookup(groups, sidebar);\n const entityIdToGroupId = new Map<string, string>();\n entityGroupLookup.forEach((value, entityId) => {\n entityIdToGroupId.set(entityId, value.groupId);\n });\n const routeEntityIdMap = new WeakMap<AnyRoute, string>();\n const routeGroupIdMap = new WeakMap<AnyRoute, string>();\n\n const permissionsQuery = sidebar?.permissionsQuery;\n const layoutPrepare = async ({\n context,\n }: {\n context: BackofficeRouterContext;\n }) => {\n const sessionAuth = await auth.session.load();\n const permissionsQueryRef =\n permissionsQuery != null\n ? loadQuery<OperationType>(\n context.relayEnvironment,\n permissionsQuery,\n {},\n )\n : null;\n const authStatusQueryRef =\n sessionAuth.authStatusQuery != null\n ? loadQuery<OperationType>(\n context.relayEnvironment,\n sessionAuth.authStatusQuery,\n {},\n { fetchPolicy: 'network-only' },\n )\n : null;\n return {\n permissionsQuery: permissionsQueryRef,\n authStatusQuery: authStatusQueryRef,\n };\n };\n\n const prepareRootDashboard =\n async (): Promise<BackofficePreparedDashboardRoute | null> => {\n if (dashboard == null) {\n return null;\n }\n const config = await dashboard.load();\n return {\n dashboardId: 'dashboard',\n config,\n };\n };\n const prepareRootDashboardShell =\n (): BackofficePreparedDashboardShellRoute | null => {\n if (dashboard == null) {\n return null;\n }\n return {\n dashboardId: 'dashboard',\n };\n };\n const renderDashboard = ({\n prepared,\n Component,\n }: {\n prepared: unknown;\n Component?: ComponentType<Record<string, unknown>> | null;\n }): JSX.Element | null => {\n if (Component == null) {\n return null;\n }\n const DashboardComponent = Component as ComponentType<{\n prepared?: unknown;\n }>;\n return <DashboardComponent prepared={prepared} />;\n };\n const renderDashboardShell = ({\n children: dashboardChildren,\n prepared,\n Component,\n }: {\n children: ReactNode;\n prepared: unknown;\n Component?: ComponentType<Record<string, unknown>> | null;\n }): JSX.Element | null => {\n if (Component == null) {\n return null;\n }\n const DashboardShellComponent = Component as ComponentType<{\n children?: ReactNode;\n prepared?: BackofficePreparedDashboardShellRoute | null;\n }>;\n return (\n <DashboardShellComponent\n prepared={prepared as BackofficePreparedDashboardShellRoute | null}\n >\n {dashboardChildren}\n </DashboardShellComponent>\n );\n };\n\n const dashboardConfigRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeDashboardPageResource,\n prepare: prepareRootDashboard,\n render: renderDashboard,\n });\n const dashboardRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeDashboardShellPageResource,\n prepare: prepareRootDashboardShell,\n render: renderDashboardShell,\n children: [dashboardConfigRoute],\n });\n const dashboardAliasConfigRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeDashboardPageResource,\n prepare: prepareRootDashboard,\n render: renderDashboard,\n });\n const dashboardAliasRoute = rBackoffice({\n path: 'dashboard',\n resourcePage: BackofficeDashboardShellPageResource,\n prepare: prepareRootDashboardShell,\n render: renderDashboardShell,\n children: [dashboardAliasConfigRoute],\n });\n const secondaryDashboardRoutes = dashboards.map((registration) => {\n const dashboardConfigChildRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeDashboardPageResource,\n prepare: async () => {\n const config = await registration.module.load();\n return {\n dashboardId: registration.id,\n label: registration.label,\n config,\n } satisfies BackofficePreparedDashboardRoute;\n },\n render: renderDashboard,\n });\n return rBackoffice({\n path: `dashboard/${registration.id}`,\n resourcePage: BackofficeDashboardShellPageResource,\n prepare: () => {\n return {\n dashboardId: registration.id,\n label: registration.label,\n } satisfies BackofficePreparedDashboardShellRoute;\n },\n render: renderDashboardShell,\n children: [dashboardConfigChildRoute],\n });\n });\n\n const listEntityEntries = Object.values(entityManifest).filter((entity) => {\n return entity.kind === 'list-detail';\n });\n\n const hubRoutes = hubEntries.map((entry) => {\n const hubRelative = buildRelativePath(entry.hub.href, baseSegment);\n const hubRoute = rBackoffice({\n path: hubRelative,\n resourcePage: BackofficeHubPageResource,\n prepare: () => {\n return {\n hubId: entry.hub.id,\n hub: entry.hub,\n } satisfies BackofficePreparedHubRoute;\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component prepared={prepared} />;\n },\n });\n if (entry.groupId != null) {\n routeGroupIdMap.set(hubRoute, entry.groupId);\n }\n return hubRoute;\n });\n\n const entityRoutes = listEntityEntries.map((entityManifestItem) => {\n const listPath = entityManifestItem.routes.list;\n const listRelative = buildRelativePath(listPath, baseSegment);\n const children: Route<any, any>[] = [];\n const renderDetailRouteFallback = ({\n match,\n }: RouteFallbackArgs<BackofficeRouterContext>): JSX.Element => {\n const rawId = String(match?.params.id ?? '');\n const rawPagePath =\n typeof match?.params.pagePath === 'string'\n ? match.params.pagePath\n : null;\n const pageId =\n rawPagePath == null\n ? (entityManifestItem.defaultDetailPageId ?? 'overview')\n : resolveDetailPageIdForPath(entityManifestItem, rawPagePath);\n return (\n <BackofficeEntityDetailManifestFallback\n entityManifest={entityManifestItem}\n id={rawId}\n pageId={pageId}\n pagePath={rawPagePath}\n />\n );\n };\n\n if (entityManifestItem.hasList) {\n const listDataRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeEntityListDataPageResource,\n prepareSearchBehavior: 'path',\n prepare: async ({ context, query }) => {\n const entityModule = await entityRegistry.loadListEntity(\n entityManifestItem.id,\n );\n const { config } = entityModule;\n const { list, listUrlCodec, listDefaults } = config;\n if (listUrlCodec == null || listDefaults == null) {\n throw new Error(\n `Backoffice entity ${entityManifestItem.id} does not expose a list configuration.`,\n );\n }\n const params = toSearchParams(query);\n const state = listUrlCodec.parse(params);\n const { pageSize } = BACKOFFICE_LIST_DEFAULTS;\n const variablesBase = {\n where: state.where,\n sort: state.sort ?? listDefaults.sort,\n count: pageSize,\n cursor: null,\n };\n const variables = list.buildQueryVariables(variablesBase);\n const queryRef = loadQuery<OperationType>(\n context.relayEnvironment,\n list.query,\n variables,\n );\n const prepared: BackofficePreparedListDataRoute = {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n entityConfig: config,\n query: queryRef,\n };\n return prepared;\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute = prepared as BackofficePreparedListDataRoute;\n return <Component prepared={preparedRoute} />;\n },\n });\n routeEntityIdMap.set(listDataRoute, entityManifestItem.id);\n\n const listRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeEntityListPageResource,\n prepareSearchBehavior: 'path',\n prepare: async () => {\n const entityModule = await entityRegistry.loadListEntity(\n entityManifestItem.id,\n );\n const { config } = entityModule;\n const { listUrlCodec, listDefaults } = config;\n if (listUrlCodec == null || listDefaults == null) {\n throw new Error(\n `Backoffice entity ${entityManifestItem.id} does not expose a list configuration.`,\n );\n }\n const prepared: BackofficePreparedListLayoutRoute = {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n entityConfig: config,\n };\n return prepared;\n },\n render: ({ children: listChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute = prepared as BackofficePreparedListLayoutRoute;\n return (\n <Component\n entityManifest={preparedRoute.entityManifest}\n config={preparedRoute.entityConfig}\n prepared={preparedRoute}\n >\n {listChildren}\n </Component>\n );\n },\n children: [listDataRoute],\n });\n routeEntityIdMap.set(listRoute, entityManifestItem.id);\n\n const listShellRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeEntityListShellPageResource,\n prepareSearchBehavior: 'path',\n prepare: () => {\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n } satisfies BackofficePreparedListShellRoute;\n },\n render: ({ children: listShellChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute = prepared as BackofficePreparedListShellRoute;\n return (\n <Component\n entityManifest={preparedRoute.entityManifest}\n prepared={preparedRoute}\n >\n {listShellChildren}\n </Component>\n );\n },\n children: [listRoute],\n });\n routeEntityIdMap.set(listShellRoute, entityManifestItem.id);\n children.push(listShellRoute);\n }\n\n const detailPageRoutes = (entityManifestItem.detailPages ?? []).map(\n (pageManifest) => {\n const pageDataRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeEntityDetailPageResource,\n suspenseBoundary: 'segment',\n fallback: renderDetailRouteFallback,\n prepare: async ({ context, variables }) => {\n const rawId = String(variables.id ?? '');\n const pageModule = await entityRegistry.loadDetailPageEntity(\n entityManifestItem.id,\n pageManifest.id,\n );\n const pageBuildResult =\n pageModule.config.page.buildVariables != null\n ? pageModule.config.page.buildVariables({\n id: rawId,\n })\n : { variables: { id: rawId } };\n const pageQueryRef = loadQuery<OperationType>(\n context.relayEnvironment,\n pageModule.config.page.query,\n pageBuildResult.variables as Variables,\n );\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n detailId: pageBuildResult.detailId,\n id: rawId,\n pageConfig: pageModule.config,\n pageQuery: pageQueryRef,\n pageId: pageManifest.id,\n pagePath: pageManifest.pathSegment,\n } satisfies BackofficePreparedDetailPageDataRoute;\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute =\n prepared as BackofficePreparedDetailPageDataRoute;\n return <Component prepared={preparedRoute} />;\n },\n });\n routeEntityIdMap.set(pageDataRoute, entityManifestItem.id);\n\n const pageConfigRoute = rBackoffice({\n path: pageManifest.pathSegment,\n resourcePage: BackofficeEntityDetailPageConfigPageResource,\n suspenseBoundary: 'segment',\n fallback: renderDetailRouteFallback,\n prepare: async ({ variables }) => {\n const rawId = String(variables.id ?? '');\n const [pageModule, layoutModule] = await Promise.all([\n entityRegistry.loadDetailPageEntity(\n entityManifestItem.id,\n pageManifest.id,\n ),\n entityRegistry.loadDetailLayoutEntity(entityManifestItem.id),\n ]);\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n entityConfig: layoutModule.config,\n id: rawId,\n pageConfig: pageModule.config,\n pageId: pageManifest.id,\n pagePath: pageManifest.pathSegment,\n } satisfies BackofficePreparedDetailPageConfigRoute;\n },\n render: ({ children: pageChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute =\n prepared as BackofficePreparedDetailPageConfigRoute;\n return (\n <Component\n config={preparedRoute.entityConfig}\n prepared={preparedRoute}\n >\n {pageChildren}\n </Component>\n );\n },\n children: [pageDataRoute],\n });\n routeEntityIdMap.set(pageConfigRoute, entityManifestItem.id);\n return pageConfigRoute;\n },\n );\n\n const detailLayoutDataRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeEntityDetailLayoutPageResource,\n suspenseBoundary: 'segment',\n fallback: renderDetailRouteFallback,\n prepare: async ({ context, variables }) => {\n const entityModule = await entityRegistry.loadDetailLayoutEntity(\n entityManifestItem.id,\n );\n const { config } = entityModule;\n const rawId = String(variables.id ?? '');\n const layoutBuildResult =\n config.layoutPage.buildVariables != null\n ? config.layoutPage.buildVariables({\n id: rawId,\n })\n : { variables: { id: rawId } };\n const layoutQueryRef = loadQuery<OperationType>(\n context.relayEnvironment,\n config.layoutPage.query,\n layoutBuildResult.variables as Variables,\n );\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n entityConfig: config,\n layoutQuery: layoutQueryRef,\n id: rawId,\n } satisfies BackofficePreparedDetailLayoutDataRoute;\n },\n render: ({ children: detailChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute =\n prepared as BackofficePreparedDetailLayoutDataRoute;\n return (\n <Component\n entityManifest={preparedRoute.entityManifest}\n config={preparedRoute.entityConfig}\n prepared={preparedRoute}\n >\n {detailChildren}\n </Component>\n );\n },\n children: [\n rBackoffice({\n path: '',\n resourcePage: WrapperPageResource,\n prepare: ({ variables }) => {\n const rawId = String(variables.id ?? '').trim();\n return {\n redirectTo:\n rawId === ''\n ? null\n : entityManifestItem.routes.detailPage(\n rawId,\n entityManifestItem.defaultDetailPageId ?? 'overview',\n ),\n };\n },\n render: ({ prepared }) => {\n const redirectTo =\n (prepared as { redirectTo?: string | null }).redirectTo ?? null;\n if (redirectTo == null) {\n return null;\n }\n return <BackofficeHistoryRedirect pathname={redirectTo} />;\n },\n }),\n ...detailPageRoutes,\n rBackoffice({\n path: ':pagePath',\n resourcePage: BackofficeEntityDetailUnknownPageRedirectResource,\n suspenseBoundary: 'segment',\n fallback: renderDetailRouteFallback,\n prepare: async ({ variables }) => {\n const entityModule = await entityRegistry.loadDetailLayoutEntity(\n entityManifestItem.id,\n );\n const rawId = String(variables.id ?? '');\n const rawPagePath = String(variables.pagePath ?? '');\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n entityConfig: entityModule.config,\n id: rawId,\n pagePath: rawPagePath,\n } satisfies BackofficePreparedDetailUnknownPageRoute;\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedDetail =\n prepared as BackofficePreparedDetailUnknownPageRoute;\n return (\n <Component\n entityManifest={preparedDetail.entityManifest}\n config={preparedDetail.entityConfig}\n prepared={preparedDetail}\n />\n );\n },\n }),\n ],\n });\n routeEntityIdMap.set(detailLayoutDataRoute, entityManifestItem.id);\n\n const detailShellRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeEntityDetailShellPageResource,\n suspenseBoundary: 'segment',\n fallback: renderDetailRouteFallback,\n prepare: ({ variables }) => {\n const rawId = String(variables.id ?? '');\n const rawPagePath =\n typeof variables.pagePath === 'string' ? variables.pagePath : null;\n const pageId =\n rawPagePath == null\n ? (entityManifestItem.defaultDetailPageId ?? 'overview')\n : resolveDetailPageIdForPath(entityManifestItem, rawPagePath);\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n id: rawId,\n pageId,\n pagePath: rawPagePath,\n } satisfies BackofficePreparedDetailShellRoute;\n },\n render: ({ children: shellChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute = prepared as BackofficePreparedDetailShellRoute;\n return (\n <Component\n entityManifest={preparedRoute.entityManifest}\n prepared={preparedRoute}\n >\n {shellChildren}\n </Component>\n );\n },\n children: [detailLayoutDataRoute],\n });\n routeEntityIdMap.set(detailShellRoute, entityManifestItem.id);\n\n const detailFrameRoute = rBackoffice({\n path: ':id',\n resourcePage: BackofficeEntityDetailFramePageResource,\n suspenseBoundary: 'segment',\n fallback: renderDetailRouteFallback,\n prepare: ({ variables }) => {\n const rawId = String(variables.id ?? '');\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n id: rawId,\n } satisfies BackofficePreparedDetailFrameRoute;\n },\n render: ({ children: detailChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute = prepared as BackofficePreparedDetailFrameRoute;\n return (\n <Component\n entityManifest={preparedRoute.entityManifest}\n prepared={preparedRoute}\n >\n {detailChildren}\n </Component>\n );\n },\n children: [detailShellRoute],\n });\n routeEntityIdMap.set(detailFrameRoute, entityManifestItem.id);\n children.push(detailFrameRoute);\n\n return rBackoffice({\n path: listRelative,\n children,\n resourcePage: WrapperPageResource,\n suspenseBoundary: 'segment',\n });\n });\n\n const toolsRoutes = Object.values(entityManifest)\n .filter((entity) => {\n return entity.kind === 'tool';\n })\n .map((toolManifest) => {\n const toolRelative = buildRelativePath(\n toolManifest.routes.list,\n baseSegment,\n );\n const toolConfigRoute = rBackoffice({\n path: '',\n resourcePage: input.toolsOperationPage ?? null,\n prepare: async () => {\n const toolModule = await entityRegistry.loadToolEntity(\n toolManifest.id,\n );\n return {\n entityId: toolManifest.id,\n entityManifest: toolManifest,\n entityConfig: toolModule.config,\n } satisfies BackofficePreparedToolConfigRoute;\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedTool = prepared as BackofficePreparedToolConfigRoute;\n return (\n <Component\n entityManifest={preparedTool.entityManifest}\n operation={preparedTool.entityConfig.tool.operation}\n toolId={preparedTool.entityConfig.id}\n />\n );\n },\n });\n routeEntityIdMap.set(toolConfigRoute, toolManifest.id);\n\n const toolRoute = rBackoffice({\n path: toolRelative,\n resourcePage: BackofficeToolShellPageResource,\n prepare: () => {\n return {\n entityId: toolManifest.id,\n entityManifest: toolManifest,\n } satisfies BackofficePreparedToolRoute;\n },\n render: ({ children: toolChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedTool = prepared as BackofficePreparedToolRoute;\n return (\n <Component\n entityManifest={preparedTool.entityManifest}\n prepared={preparedTool}\n >\n {toolChildren}\n </Component>\n );\n },\n children: [toolConfigRoute],\n });\n routeEntityIdMap.set(toolRoute, toolManifest.id);\n return toolRoute;\n });\n\n const layoutRoute = rBackoffice({\n path: baseSegment,\n resourcePage: BackofficeLayoutPageResource,\n prepareSearchBehavior: 'path',\n suspenseBoundary: 'segment',\n prepare: layoutPrepare,\n render: ({ children, prepared, route, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedLayout = prepared as PreparedLayout | undefined;\n const activeEntityId = resolveActiveEntityIdFromRoute(\n route,\n routeEntityIdMap,\n );\n const activeGroupId =\n activeEntityId != null\n ? (entityIdToGroupId.get(activeEntityId) ?? null)\n : resolveActiveEntityIdFromRoute(route, routeGroupIdMap);\n const LayoutComponent = Component as LayoutRouteComponent;\n const authStatusQuery = auth.session.get()?.authStatusQuery ?? null;\n if (authStatusQuery != null && preparedLayout?.authStatusQuery != null) {\n return (\n <BackofficeLayoutRouteWithAuthStatus\n Component={LayoutComponent}\n preparedLayout={preparedLayout}\n permissionsQuery={sidebar?.permissionsQuery}\n activeGroupId={activeGroupId}\n authStatusQuery={authStatusQuery}\n authStatusPrepared={preparedLayout.authStatusQuery}\n loginRedirectPath={loginRedirectPath}\n >\n {children}\n </BackofficeLayoutRouteWithAuthStatus>\n );\n }\n return (\n <BackofficeLayoutRouteWithoutAuthStatus\n Component={LayoutComponent}\n preparedLayout={preparedLayout}\n permissionsQuery={sidebar?.permissionsQuery}\n activeGroupId={activeGroupId}\n >\n {children}\n </BackofficeLayoutRouteWithoutAuthStatus>\n );\n },\n children: [\n dashboardRoute,\n ...hubRoutes,\n ...entityRoutes,\n ...toolsRoutes,\n ...secondaryDashboardRoutes,\n dashboardAliasRoute,\n ],\n });\n\n const routes: Route<BackofficeRouterContext, any>[] = [\n rBackoffice({\n path: loginPath,\n resourcePage: BackofficeLoginPageResource,\n prepare: async ({ context }) => {\n const loginAuth = await auth.login.load();\n const queryRef = loadQuery<OperationType>(\n context.relayEnvironment,\n loginAuth.loginQuery,\n {},\n );\n return { query: queryRef };\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component prepared={prepared} />;\n },\n }),\n rBackoffice({\n path: passwordResetRequestPath,\n resourcePage: BackofficePasswordResetRequestPageResource,\n prepare: async () => {\n await auth.passwordResetRequest.load();\n return null;\n },\n render: ({ Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component />;\n },\n }),\n rBackoffice({\n path: passwordResetCompletePath,\n resourcePage: BackofficePasswordResetCompletePageResource,\n prepare: async () => {\n await auth.passwordResetComplete.load();\n return null;\n },\n render: ({ Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component />;\n },\n }),\n rBackoffice({\n path: verifyEmailPath,\n resourcePage: BackofficeVerifyEmailPageResource,\n prepare: async () => {\n await auth.verifyEmail.load();\n return null;\n },\n render: ({ Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component />;\n },\n }),\n ];\n\n if (auth.hasAcceptInvitation === true || auth.acceptInvitation != null) {\n routes.push(\n rBackoffice({\n path: acceptInvitationPath,\n resourcePage: BackofficeAcceptInvitationPageResource,\n prepare: async () => {\n await auth.acceptInvitation?.load();\n return null;\n },\n render: ({ Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component />;\n },\n }),\n );\n }\n\n routes.push(layoutRoute);\n\n return routes;\n}\n\nexport const __test = {\n normalizeBaseSegment,\n normalizePath,\n buildScopedPath,\n buildScopedAbsolutePath,\n buildRelativePath,\n resolveActiveEntityIdFromRoute,\n resolveDetailPageIdForPath,\n resolveDetailPageManifestByPath,\n toSearchParams,\n validateBackofficeDashboardRegistrations,\n BackofficeLayoutRouteWithAuthStatus,\n} as const;\n\nexport default createBackofficeRoutes;\n"],"mappings":"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"}
1
+ {"version":3,"file":"createBackofficeRoutes.js","names":[],"sources":["../../../src/router/createBackofficeRoutes.tsx"],"sourcesContent":["/* eslint-disable no-ternary */\nimport {\n useContext,\n useEffect,\n type ComponentType,\n type JSX,\n type ReactNode,\n} from 'react';\nimport {\n getResourcePage,\n type ResourcePage,\n} from '@plumile/router/ResourcePage.js';\nimport RoutingContext from '@plumile/router/routing/RoutingContext.js';\nimport { r } from '@plumile/router/tools.js';\nimport {\n type AnyRoute,\n type Route,\n type RouteFallbackArgs,\n} from '@plumile/router/types.js';\nimport * as ReactRelay from 'react-relay';\nimport type { PreloadedQuery } from 'react-relay';\nimport type {\n Environment,\n GraphQLTaggedNode,\n OperationType,\n Variables,\n} from 'relay-runtime';\n\nimport { BACKOFFICE_LIST_DEFAULTS } from '@plumile/backoffice-core/constants.js';\nimport type {\n BackofficeDashboardConfig,\n BackofficeDetailPageManifestItem,\n BackofficeEntityManifestItem,\n BackofficeEntityManifestMap,\n I18nLabel,\n BackofficePreparedDetailFrameRoute,\n BackofficePreparedDetailLayoutDataRoute,\n BackofficePreparedDetailPageConfigRoute,\n BackofficePreparedDetailPageDataRoute,\n BackofficePreparedDetailShellRoute,\n BackofficePreparedDetailUnknownPageRoute,\n BackofficePreparedListDataRoute,\n BackofficePreparedListLayoutRoute,\n BackofficePreparedListShellRoute,\n BackofficePreparedToolConfigRoute,\n BackofficePreparedToolRoute,\n} from '@plumile/backoffice-core/types.js';\n\nimport type {\n BackofficeAuthConfig,\n BackofficeDashboardRegistration,\n BackofficeDashboardModule,\n BackofficeResolvedSidebarHubConfig,\n BackofficeSidebarConfig,\n} from '../provider/types.js';\nimport {\n buildEntityGroupLookup,\n resolveSidebarHubEntries,\n resolveSidebarGroups,\n} from '../components/backoffice/layout/sidebarUtils.js';\nimport type { BackofficeEntityRegistry } from '../provider/entityRegistry.js';\nimport { validateBackofficeDashboardRegistrations } from '../provider/dashboardRegistrations.js';\nimport { BackofficeEntityDetailManifestFallback } from '../pages/detail/BackofficeEntityDetailManifestFallback.js';\n\nconst { loadQuery, usePreloadedQuery } = ReactRelay;\n\nexport type CreateBackofficeRoutesInput = {\n basePath: string;\n entityManifest: BackofficeEntityManifestMap;\n entityRegistry: BackofficeEntityRegistry;\n sidebar?: BackofficeSidebarConfig;\n auth: BackofficeAuthConfig;\n dashboard?: BackofficeDashboardModule;\n dashboards?: readonly BackofficeDashboardRegistration[];\n toolsOperationPage?: ResourcePage | null;\n};\n\nexport type BackofficeRouterContext = {\n relayEnvironment: Environment;\n};\n\nexport const WrapperPageResource: ResourcePage | null = getResourcePage(\n 'WrapperPage',\n // eslint-disable-next-line arrow-body-style\n async () => ({\n default: (await import('@plumile/ui/pages/WrapperPage.js')).WrapperPage,\n }),\n);\n\nexport const BackofficeLayoutPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeLayoutPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeLayoutPage.js'),\n );\n\nexport const BackofficeEntityListPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityListPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityListPage.js'),\n );\n\nexport const BackofficeEntityListShellPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityListShellPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityListShellPage.js'),\n );\n\nexport const BackofficeEntityListDataPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityListDataPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityListDataPage.js'),\n );\n\nexport const BackofficeEntityDetailPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityDetailPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityDetailPage.js'),\n );\n\nexport const BackofficeEntityDetailFramePageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityDetailFramePage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityDetailFramePage.js'),\n );\n\nexport const BackofficeEntityDetailLayoutPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityDetailLayoutPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityDetailLayoutPage.js'),\n );\n\nexport const BackofficeEntityDetailPageConfigPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityDetailPageConfigPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityDetailPageConfigPage.js'),\n );\n\nexport const BackofficeEntityDetailShellPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityDetailShellPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityDetailShellPage.js'),\n );\n\nexport const BackofficeEntityDetailUnknownPageRedirectResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityDetailUnknownPageRedirect',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityDetailUnknownPageRedirect.js'),\n );\n\nexport const BackofficeDashboardPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeDashboardPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeDashboardPage.js'),\n );\n\nexport const BackofficeDashboardShellPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeDashboardShellPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeDashboardShellPage.js'),\n );\n\nexport const BackofficeToolShellPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeToolShellPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeToolShellPage.js'),\n );\n\nexport const BackofficeHubPageResource: ResourcePage | null = getResourcePage(\n 'BackofficeHubPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeHubPage.js'),\n);\n\nexport const BackofficeLoginPageResource: ResourcePage | null = getResourcePage(\n 'BackofficeLoginPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeLoginPage.js'),\n);\n\nexport const BackofficePasswordResetRequestPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficePasswordResetRequestPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficePasswordResetRequestPage.js'),\n );\n\nexport const BackofficePasswordResetCompletePageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficePasswordResetCompletePage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficePasswordResetCompletePage.js'),\n );\n\nexport const BackofficeVerifyEmailPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeVerifyEmailPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeVerifyEmailPage.js'),\n );\n\nexport const BackofficeAcceptInvitationPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeAcceptInvitationPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeAcceptInvitationPage.js'),\n );\n\ntype PreparedLayout = {\n permissionsQuery: PreloadedQuery<OperationType> | null;\n authStatusQuery: PreloadedQuery<OperationType> | null;\n};\n\nexport type BackofficePreparedDashboardShellRoute = {\n dashboardId: string | null;\n label?: I18nLabel;\n};\n\nexport type BackofficePreparedDashboardRoute =\n BackofficePreparedDashboardShellRoute & {\n config: BackofficeDashboardConfig;\n };\n\ntype LayoutAuthStatus = {\n isLoggedIn?: boolean | null;\n me?: {\n id: string;\n firstName: string;\n lastName: string;\n email: string;\n initials: string;\n } | null;\n} | null;\n\ntype LayoutRouteComponent = ComponentType<{\n children: ReactNode;\n permissionsQuery?: GraphQLTaggedNode;\n prepared?: PreloadedQuery<OperationType> | null;\n authStatus?: LayoutAuthStatus;\n activeGroupId?: string | null;\n}>;\n\ntype LayoutRouteRenderProps = {\n children: ReactNode;\n Component: LayoutRouteComponent;\n preparedLayout: PreparedLayout | undefined;\n permissionsQuery: GraphQLTaggedNode | undefined;\n activeGroupId: string | null;\n};\n\nconst BackofficeHistoryRedirect = ({\n pathname,\n}: {\n pathname: string;\n}): null => {\n const router = useContext(RoutingContext);\n\n useEffect(() => {\n router?.history.set({\n pathname,\n });\n }, [pathname, router]);\n\n return null;\n};\n\nconst BackofficeLayoutRouteWithoutAuthStatus = ({\n children,\n Component,\n preparedLayout,\n permissionsQuery,\n activeGroupId,\n}: LayoutRouteRenderProps): JSX.Element => {\n return (\n <Component\n permissionsQuery={permissionsQuery}\n prepared={preparedLayout?.permissionsQuery ?? null}\n authStatus={null}\n activeGroupId={activeGroupId}\n >\n {children}\n </Component>\n );\n};\n\nconst BackofficeLayoutRouteWithAuthStatus = ({\n children,\n Component,\n preparedLayout,\n permissionsQuery,\n activeGroupId,\n authStatusQuery,\n authStatusPrepared,\n loginRedirectPath,\n}: LayoutRouteRenderProps & {\n authStatusQuery: GraphQLTaggedNode;\n authStatusPrepared: PreloadedQuery<OperationType>;\n loginRedirectPath: string;\n}): JSX.Element => {\n const data = usePreloadedQuery(authStatusQuery, authStatusPrepared);\n const authStatus = data as LayoutAuthStatus;\n\n if (authStatus?.isLoggedIn !== true) {\n return <BackofficeHistoryRedirect pathname={loginRedirectPath} />;\n }\n\n return (\n <Component\n permissionsQuery={permissionsQuery}\n prepared={preparedLayout?.permissionsQuery ?? null}\n authStatus={authStatus}\n activeGroupId={activeGroupId}\n >\n {children}\n </Component>\n );\n};\n\nexport type BackofficePreparedHubRoute = {\n hubId: string;\n hub: BackofficeResolvedSidebarHubConfig;\n};\n\nconst normalizeBaseSegment = (value: string): string => {\n const trimmed = value.trim();\n if (trimmed === '' || trimmed === '/') {\n return '';\n }\n return trimmed.replace(/^\\/+|\\/+$/g, '');\n};\n\nconst normalizePath = (value: string): string => {\n const trimmed = value.trim();\n if (trimmed === '') {\n return '/';\n }\n return `/${trimmed}`.replace(/\\/+/g, '/');\n};\n\nconst buildScopedPath = (baseSegment: string, path: string): string => {\n const normalizedPath = path.replace(/^\\/+|\\/+$/g, '');\n if (baseSegment === '') {\n return normalizedPath;\n }\n if (normalizedPath === '') {\n return baseSegment;\n }\n return `${baseSegment}/${normalizedPath}`;\n};\n\nconst buildScopedAbsolutePath = (baseSegment: string, path: string): string => {\n return normalizePath(buildScopedPath(baseSegment, path));\n};\n\nconst normalizePagePath = (value: string): string => {\n return value.trim().replace(/^\\/+|\\/+$/g, '');\n};\n\nconst buildRelativePath = (\n absolutePath: string,\n baseSegment: string,\n): string => {\n const normalized = normalizePath(absolutePath);\n const basePrefix = baseSegment === '' ? '' : `/${baseSegment}`;\n if (basePrefix !== '' && normalized.startsWith(basePrefix)) {\n return normalized.slice(basePrefix.length).replace(/^\\/+/, '');\n }\n return normalized.replace(/^\\/+/, '');\n};\n\nconst resolveActiveEntityIdFromRoute = (\n route: { routes: AnyRoute[] } | null,\n routeEntityIdMap: WeakMap<AnyRoute, string>,\n): string | null => {\n if (route?.routes == null) {\n return null;\n }\n for (let index = route.routes.length - 1; index >= 0; index -= 1) {\n const routeEntry = route.routes[index];\n if (routeEntry != null) {\n const entityId = routeEntityIdMap.get(routeEntry);\n if (entityId != null) {\n return entityId;\n }\n }\n }\n return null;\n};\n\nconst toSearchParams = (query: Record<string, unknown>): URLSearchParams => {\n const params = new URLSearchParams();\n Object.entries(query).forEach(([key, value]) => {\n if (value == null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((entry) => {\n if (entry == null) {\n return;\n }\n params.append(key, String(entry));\n });\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n params.set(key, String(value));\n });\n return params;\n};\n\nconst resolveDetailPageManifestByPath = (\n entityManifestItem: BackofficeEntityManifestItem,\n rawPagePath: string,\n): BackofficeDetailPageManifestItem | null => {\n const pagePath = normalizePagePath(rawPagePath);\n return (\n entityManifestItem.detailPages?.find((page) => {\n return normalizePagePath(page.pathSegment) === pagePath;\n }) ?? null\n );\n};\n\nconst resolveDetailPageIdForPath = (\n entityManifestItem: BackofficeEntityManifestItem,\n rawPagePath: string,\n): string => {\n return (\n resolveDetailPageManifestByPath(entityManifestItem, rawPagePath)?.id ??\n rawPagePath\n );\n};\n\nconst rBackoffice = r<BackofficeRouterContext>;\n\n/**\n * Creates backoffice routes based on the provided configuration\n */\nexport function createBackofficeRoutes(\n input: CreateBackofficeRoutesInput,\n): Route<BackofficeRouterContext, any>[] {\n const { basePath, entityManifest, entityRegistry, sidebar, auth, dashboard } =\n input;\n const dashboards = validateBackofficeDashboardRegistrations(input.dashboards);\n const baseSegment = normalizeBaseSegment(basePath);\n const loginPath = buildScopedPath(baseSegment, 'login');\n const passwordResetRequestPath = buildScopedPath(baseSegment, 'login/reset');\n const passwordResetCompletePath = buildScopedPath(\n baseSegment,\n 'login/reset/complete',\n );\n const verifyEmailPath = buildScopedPath(baseSegment, 'verify-email');\n const acceptInvitationPath = buildScopedPath(\n baseSegment,\n 'accept-invitation',\n );\n const loginRedirectPath = buildScopedAbsolutePath(baseSegment, 'login');\n const entities = entityManifest;\n const groups = resolveSidebarGroups(entities, sidebar);\n const hubEntries = resolveSidebarHubEntries(groups, sidebar);\n const entityGroupLookup = buildEntityGroupLookup(groups, sidebar);\n const entityIdToGroupId = new Map<string, string>();\n entityGroupLookup.forEach((value, entityId) => {\n entityIdToGroupId.set(entityId, value.groupId);\n });\n const routeEntityIdMap = new WeakMap<AnyRoute, string>();\n const routeGroupIdMap = new WeakMap<AnyRoute, string>();\n\n const permissionsQuery = sidebar?.permissionsQuery;\n const layoutPrepare = async ({\n context,\n }: {\n context: BackofficeRouterContext;\n }) => {\n const sessionAuth = await auth.session.load();\n const permissionsQueryRef =\n permissionsQuery != null\n ? loadQuery<OperationType>(\n context.relayEnvironment,\n permissionsQuery,\n {},\n )\n : null;\n const authStatusQueryRef =\n sessionAuth.authStatusQuery != null\n ? loadQuery<OperationType>(\n context.relayEnvironment,\n sessionAuth.authStatusQuery,\n {},\n { fetchPolicy: 'network-only' },\n )\n : null;\n return {\n permissionsQuery: permissionsQueryRef,\n authStatusQuery: authStatusQueryRef,\n };\n };\n\n const prepareRootDashboard =\n async (): Promise<BackofficePreparedDashboardRoute | null> => {\n if (dashboard == null) {\n return null;\n }\n const config = await dashboard.load();\n return {\n dashboardId: 'dashboard',\n config,\n };\n };\n const prepareRootDashboardShell =\n (): BackofficePreparedDashboardShellRoute | null => {\n if (dashboard == null) {\n return null;\n }\n return {\n dashboardId: 'dashboard',\n };\n };\n const renderDashboard = ({\n prepared,\n Component,\n }: {\n prepared: unknown;\n Component?: ComponentType<Record<string, unknown>> | null;\n }): JSX.Element | null => {\n if (Component == null) {\n return null;\n }\n const DashboardComponent = Component as ComponentType<{\n prepared?: unknown;\n }>;\n return <DashboardComponent prepared={prepared} />;\n };\n const renderDashboardShell = ({\n children: dashboardChildren,\n prepared,\n Component,\n }: {\n children: ReactNode;\n prepared: unknown;\n Component?: ComponentType<Record<string, unknown>> | null;\n }): JSX.Element | null => {\n if (Component == null) {\n return null;\n }\n const DashboardShellComponent = Component as ComponentType<{\n children?: ReactNode;\n prepared?: BackofficePreparedDashboardShellRoute | null;\n }>;\n return (\n <DashboardShellComponent\n prepared={prepared as BackofficePreparedDashboardShellRoute | null}\n >\n {dashboardChildren}\n </DashboardShellComponent>\n );\n };\n\n const dashboardConfigRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeDashboardPageResource,\n prepare: prepareRootDashboard,\n render: renderDashboard,\n });\n const dashboardRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeDashboardShellPageResource,\n prepare: prepareRootDashboardShell,\n render: renderDashboardShell,\n children: [dashboardConfigRoute],\n });\n const dashboardAliasConfigRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeDashboardPageResource,\n prepare: prepareRootDashboard,\n render: renderDashboard,\n });\n const dashboardAliasRoute = rBackoffice({\n path: 'dashboard',\n resourcePage: BackofficeDashboardShellPageResource,\n prepare: prepareRootDashboardShell,\n render: renderDashboardShell,\n children: [dashboardAliasConfigRoute],\n });\n const secondaryDashboardRoutes = dashboards.map((registration) => {\n const dashboardConfigChildRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeDashboardPageResource,\n prepare: async () => {\n const config = await registration.module.load();\n return {\n dashboardId: registration.id,\n label: registration.label,\n config,\n } satisfies BackofficePreparedDashboardRoute;\n },\n render: renderDashboard,\n });\n return rBackoffice({\n path: `dashboard/${registration.id}`,\n resourcePage: BackofficeDashboardShellPageResource,\n prepare: () => {\n return {\n dashboardId: registration.id,\n label: registration.label,\n } satisfies BackofficePreparedDashboardShellRoute;\n },\n render: renderDashboardShell,\n children: [dashboardConfigChildRoute],\n });\n });\n\n const listEntityEntries = Object.values(entityManifest).filter((entity) => {\n return entity.kind === 'list-detail';\n });\n\n const hubRoutes = hubEntries.map((entry) => {\n const hubRelative = buildRelativePath(entry.hub.href, baseSegment);\n const hubRoute = rBackoffice({\n path: hubRelative,\n resourcePage: BackofficeHubPageResource,\n prepare: () => {\n return {\n hubId: entry.hub.id,\n hub: entry.hub,\n } satisfies BackofficePreparedHubRoute;\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component prepared={prepared} />;\n },\n });\n if (entry.groupId != null) {\n routeGroupIdMap.set(hubRoute, entry.groupId);\n }\n return hubRoute;\n });\n\n const entityRoutes = listEntityEntries.map((entityManifestItem) => {\n const listPath = entityManifestItem.routes.list;\n const listRelative = buildRelativePath(listPath, baseSegment);\n const children: Route<any, any>[] = [];\n const renderDetailRouteFallback = ({\n match,\n }: RouteFallbackArgs<BackofficeRouterContext>): JSX.Element => {\n const rawId = String(match?.params.id ?? '');\n const rawPagePath =\n typeof match?.params.pagePath === 'string'\n ? match.params.pagePath\n : null;\n const pageId =\n rawPagePath == null\n ? (entityManifestItem.defaultDetailPageId ?? 'overview')\n : resolveDetailPageIdForPath(entityManifestItem, rawPagePath);\n return (\n <BackofficeEntityDetailManifestFallback\n entityManifest={entityManifestItem}\n id={rawId}\n pageId={pageId}\n pagePath={rawPagePath}\n />\n );\n };\n\n if (entityManifestItem.hasList) {\n const listDataRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeEntityListDataPageResource,\n prepareSearchBehavior: 'path',\n prepare: async ({ context, query }) => {\n const entityModule = await entityRegistry.loadListEntity(\n entityManifestItem.id,\n );\n const { config } = entityModule;\n const { list, listUrlCodec, listDefaults } = config;\n if (listUrlCodec == null || listDefaults == null) {\n throw new Error(\n `Backoffice entity ${entityManifestItem.id} does not expose a list configuration.`,\n );\n }\n const params = toSearchParams(query);\n const state = listUrlCodec.parse(params);\n const { pageSize } = BACKOFFICE_LIST_DEFAULTS;\n const variablesBase = {\n where: state.where,\n sort: state.sort ?? listDefaults.sort,\n count: pageSize,\n cursor: null,\n };\n const variables = list.buildQueryVariables(variablesBase);\n const queryRef = loadQuery<OperationType>(\n context.relayEnvironment,\n list.query,\n variables,\n );\n const prepared: BackofficePreparedListDataRoute = {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n entityConfig: config,\n query: queryRef,\n };\n return prepared;\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute = prepared as BackofficePreparedListDataRoute;\n return <Component prepared={preparedRoute} />;\n },\n });\n routeEntityIdMap.set(listDataRoute, entityManifestItem.id);\n\n const listRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeEntityListPageResource,\n prepareSearchBehavior: 'path',\n prepare: async () => {\n const entityModule = await entityRegistry.loadListEntity(\n entityManifestItem.id,\n );\n const { config } = entityModule;\n const { listUrlCodec, listDefaults } = config;\n if (listUrlCodec == null || listDefaults == null) {\n throw new Error(\n `Backoffice entity ${entityManifestItem.id} does not expose a list configuration.`,\n );\n }\n const prepared: BackofficePreparedListLayoutRoute = {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n entityConfig: config,\n };\n return prepared;\n },\n render: ({ children: listChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute = prepared as BackofficePreparedListLayoutRoute;\n return (\n <Component\n entityManifest={preparedRoute.entityManifest}\n config={preparedRoute.entityConfig}\n prepared={preparedRoute}\n >\n {listChildren}\n </Component>\n );\n },\n children: [listDataRoute],\n });\n routeEntityIdMap.set(listRoute, entityManifestItem.id);\n\n const listShellRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeEntityListShellPageResource,\n prepareSearchBehavior: 'path',\n prepare: () => {\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n } satisfies BackofficePreparedListShellRoute;\n },\n render: ({ children: listShellChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute = prepared as BackofficePreparedListShellRoute;\n return (\n <Component\n entityManifest={preparedRoute.entityManifest}\n prepared={preparedRoute}\n >\n {listShellChildren}\n </Component>\n );\n },\n children: [listRoute],\n });\n routeEntityIdMap.set(listShellRoute, entityManifestItem.id);\n children.push(listShellRoute);\n }\n\n const detailPageRoutes = (entityManifestItem.detailPages ?? []).map(\n (pageManifest) => {\n const pageDataRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeEntityDetailPageResource,\n suspenseBoundary: 'segment',\n fallback: renderDetailRouteFallback,\n prepare: async ({ context, variables }) => {\n const rawId = String(variables.id ?? '');\n const pageModule = await entityRegistry.loadDetailPageEntity(\n entityManifestItem.id,\n pageManifest.id,\n );\n const pageBuildResult =\n pageModule.config.page.buildVariables != null\n ? pageModule.config.page.buildVariables({\n id: rawId,\n })\n : { variables: { id: rawId } };\n const pageQueryRef = loadQuery<OperationType>(\n context.relayEnvironment,\n pageModule.config.page.query,\n pageBuildResult.variables as Variables,\n );\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n detailId: pageBuildResult.detailId,\n id: rawId,\n pageConfig: pageModule.config,\n pageQuery: pageQueryRef,\n pageId: pageManifest.id,\n pagePath: pageManifest.pathSegment,\n } satisfies BackofficePreparedDetailPageDataRoute;\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute =\n prepared as BackofficePreparedDetailPageDataRoute;\n return <Component prepared={preparedRoute} />;\n },\n });\n routeEntityIdMap.set(pageDataRoute, entityManifestItem.id);\n\n const pageConfigRoute = rBackoffice({\n path: pageManifest.pathSegment,\n resourcePage: BackofficeEntityDetailPageConfigPageResource,\n suspenseBoundary: 'segment',\n fallback: renderDetailRouteFallback,\n prepare: async ({ variables }) => {\n const rawId = String(variables.id ?? '');\n const [pageModule, layoutModule] = await Promise.all([\n entityRegistry.loadDetailPageEntity(\n entityManifestItem.id,\n pageManifest.id,\n ),\n entityRegistry.loadDetailLayoutEntity(entityManifestItem.id),\n ]);\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n entityConfig: layoutModule.config,\n id: rawId,\n pageConfig: pageModule.config,\n pageId: pageManifest.id,\n pagePath: pageManifest.pathSegment,\n } satisfies BackofficePreparedDetailPageConfigRoute;\n },\n render: ({ children: pageChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute =\n prepared as BackofficePreparedDetailPageConfigRoute;\n return (\n <Component\n config={preparedRoute.entityConfig}\n prepared={preparedRoute}\n >\n {pageChildren}\n </Component>\n );\n },\n children: [pageDataRoute],\n });\n routeEntityIdMap.set(pageConfigRoute, entityManifestItem.id);\n return pageConfigRoute;\n },\n );\n\n const detailLayoutDataRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeEntityDetailLayoutPageResource,\n suspenseBoundary: 'segment',\n fallback: renderDetailRouteFallback,\n prepare: async ({ context, variables }) => {\n const entityModule = await entityRegistry.loadDetailLayoutEntity(\n entityManifestItem.id,\n );\n const { config } = entityModule;\n const rawId = String(variables.id ?? '');\n const layoutBuildResult =\n config.layoutPage.buildVariables != null\n ? config.layoutPage.buildVariables({\n id: rawId,\n })\n : { variables: { id: rawId } };\n const layoutQueryRef = loadQuery<OperationType>(\n context.relayEnvironment,\n config.layoutPage.query,\n layoutBuildResult.variables as Variables,\n );\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n entityConfig: config,\n layoutQuery: layoutQueryRef,\n id: rawId,\n } satisfies BackofficePreparedDetailLayoutDataRoute;\n },\n render: ({ children: detailChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute =\n prepared as BackofficePreparedDetailLayoutDataRoute;\n return (\n <Component\n entityManifest={preparedRoute.entityManifest}\n config={preparedRoute.entityConfig}\n prepared={preparedRoute}\n >\n {detailChildren}\n </Component>\n );\n },\n children: [\n rBackoffice({\n path: '',\n resourcePage: WrapperPageResource,\n prepare: ({ variables }) => {\n const rawId = String(variables.id ?? '').trim();\n return {\n redirectTo:\n rawId === ''\n ? null\n : entityManifestItem.routes.detailPage(\n rawId,\n entityManifestItem.defaultDetailPageId ?? 'overview',\n ),\n };\n },\n render: ({ prepared }) => {\n const redirectTo =\n (prepared as { redirectTo?: string | null }).redirectTo ?? null;\n if (redirectTo == null) {\n return null;\n }\n return <BackofficeHistoryRedirect pathname={redirectTo} />;\n },\n }),\n ...detailPageRoutes,\n rBackoffice({\n path: ':pagePath',\n resourcePage: BackofficeEntityDetailUnknownPageRedirectResource,\n suspenseBoundary: 'segment',\n fallback: renderDetailRouteFallback,\n prepare: async ({ variables }) => {\n const entityModule = await entityRegistry.loadDetailLayoutEntity(\n entityManifestItem.id,\n );\n const rawId = String(variables.id ?? '');\n const rawPagePath = String(variables.pagePath ?? '');\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n entityConfig: entityModule.config,\n id: rawId,\n pagePath: rawPagePath,\n } satisfies BackofficePreparedDetailUnknownPageRoute;\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedDetail =\n prepared as BackofficePreparedDetailUnknownPageRoute;\n return (\n <Component\n entityManifest={preparedDetail.entityManifest}\n config={preparedDetail.entityConfig}\n prepared={preparedDetail}\n />\n );\n },\n }),\n ],\n });\n routeEntityIdMap.set(detailLayoutDataRoute, entityManifestItem.id);\n\n const detailShellRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeEntityDetailShellPageResource,\n suspenseBoundary: 'segment',\n fallback: renderDetailRouteFallback,\n prepare: ({ variables }) => {\n const rawId = String(variables.id ?? '');\n const rawPagePath =\n typeof variables.pagePath === 'string' ? variables.pagePath : null;\n const pageId =\n rawPagePath == null\n ? (entityManifestItem.defaultDetailPageId ?? 'overview')\n : resolveDetailPageIdForPath(entityManifestItem, rawPagePath);\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n id: rawId,\n pageId,\n pagePath: rawPagePath,\n } satisfies BackofficePreparedDetailShellRoute;\n },\n render: ({ children: shellChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute = prepared as BackofficePreparedDetailShellRoute;\n return (\n <Component\n entityManifest={preparedRoute.entityManifest}\n prepared={preparedRoute}\n >\n {shellChildren}\n </Component>\n );\n },\n children: [detailLayoutDataRoute],\n });\n routeEntityIdMap.set(detailShellRoute, entityManifestItem.id);\n\n const detailFrameRoute = rBackoffice({\n path: ':id',\n resourcePage: BackofficeEntityDetailFramePageResource,\n suspenseBoundary: 'segment',\n fallback: renderDetailRouteFallback,\n prepare: ({ variables }) => {\n const rawId = String(variables.id ?? '');\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n id: rawId,\n } satisfies BackofficePreparedDetailFrameRoute;\n },\n render: ({ children: detailChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute = prepared as BackofficePreparedDetailFrameRoute;\n return (\n <Component\n entityManifest={preparedRoute.entityManifest}\n prepared={preparedRoute}\n >\n {detailChildren}\n </Component>\n );\n },\n children: [detailShellRoute],\n });\n routeEntityIdMap.set(detailFrameRoute, entityManifestItem.id);\n children.push(detailFrameRoute);\n\n return rBackoffice({\n path: listRelative,\n children,\n resourcePage: WrapperPageResource,\n suspenseBoundary: 'segment',\n });\n });\n\n const toolsRoutes = Object.values(entityManifest)\n .filter((entity) => {\n return entity.kind === 'tool';\n })\n .map((toolManifest) => {\n const toolRelative = buildRelativePath(\n toolManifest.routes.list,\n baseSegment,\n );\n const toolConfigRoute = rBackoffice({\n path: '',\n resourcePage: input.toolsOperationPage ?? null,\n prepare: async () => {\n const toolModule = await entityRegistry.loadToolEntity(\n toolManifest.id,\n );\n return {\n entityId: toolManifest.id,\n entityManifest: toolManifest,\n entityConfig: toolModule.config,\n } satisfies BackofficePreparedToolConfigRoute;\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedTool = prepared as BackofficePreparedToolConfigRoute;\n return (\n <Component\n entityManifest={preparedTool.entityManifest}\n operation={preparedTool.entityConfig.tool.operation}\n toolId={preparedTool.entityConfig.id}\n />\n );\n },\n });\n routeEntityIdMap.set(toolConfigRoute, toolManifest.id);\n\n const toolRoute = rBackoffice({\n path: toolRelative,\n resourcePage: BackofficeToolShellPageResource,\n prepare: () => {\n return {\n entityId: toolManifest.id,\n entityManifest: toolManifest,\n } satisfies BackofficePreparedToolRoute;\n },\n render: ({ children: toolChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedTool = prepared as BackofficePreparedToolRoute;\n return (\n <Component\n entityManifest={preparedTool.entityManifest}\n prepared={preparedTool}\n >\n {toolChildren}\n </Component>\n );\n },\n children: [toolConfigRoute],\n });\n routeEntityIdMap.set(toolRoute, toolManifest.id);\n return toolRoute;\n });\n\n const layoutRoute = rBackoffice({\n path: baseSegment,\n resourcePage: BackofficeLayoutPageResource,\n prepareSearchBehavior: 'path',\n suspenseBoundary: 'segment',\n prepare: layoutPrepare,\n render: ({ children, prepared, route, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedLayout = prepared as PreparedLayout | undefined;\n const activeEntityId = resolveActiveEntityIdFromRoute(\n route,\n routeEntityIdMap,\n );\n const activeGroupId =\n activeEntityId != null\n ? (entityIdToGroupId.get(activeEntityId) ?? null)\n : resolveActiveEntityIdFromRoute(route, routeGroupIdMap);\n const LayoutComponent = Component as LayoutRouteComponent;\n const authStatusQuery = auth.session.get()?.authStatusQuery ?? null;\n if (authStatusQuery != null && preparedLayout?.authStatusQuery != null) {\n return (\n <BackofficeLayoutRouteWithAuthStatus\n Component={LayoutComponent}\n preparedLayout={preparedLayout}\n permissionsQuery={sidebar?.permissionsQuery}\n activeGroupId={activeGroupId}\n authStatusQuery={authStatusQuery}\n authStatusPrepared={preparedLayout.authStatusQuery}\n loginRedirectPath={loginRedirectPath}\n >\n {children}\n </BackofficeLayoutRouteWithAuthStatus>\n );\n }\n return (\n <BackofficeLayoutRouteWithoutAuthStatus\n Component={LayoutComponent}\n preparedLayout={preparedLayout}\n permissionsQuery={sidebar?.permissionsQuery}\n activeGroupId={activeGroupId}\n >\n {children}\n </BackofficeLayoutRouteWithoutAuthStatus>\n );\n },\n children: [\n dashboardRoute,\n ...hubRoutes,\n ...entityRoutes,\n ...toolsRoutes,\n ...secondaryDashboardRoutes,\n dashboardAliasRoute,\n ],\n });\n\n const routes: Route<BackofficeRouterContext, any>[] = [\n rBackoffice({\n path: loginPath,\n resourcePage: BackofficeLoginPageResource,\n prepare: async ({ context }) => {\n const loginAuth = await auth.login.load();\n const queryRef = loadQuery<OperationType>(\n context.relayEnvironment,\n loginAuth.loginQuery,\n {},\n );\n return { query: queryRef };\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component prepared={prepared} />;\n },\n }),\n rBackoffice({\n path: passwordResetRequestPath,\n resourcePage: BackofficePasswordResetRequestPageResource,\n prepare: async () => {\n await auth.passwordResetRequest.load();\n return null;\n },\n render: ({ Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component />;\n },\n }),\n rBackoffice({\n path: passwordResetCompletePath,\n resourcePage: BackofficePasswordResetCompletePageResource,\n prepare: async () => {\n await auth.passwordResetComplete.load();\n return null;\n },\n render: ({ Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component />;\n },\n }),\n rBackoffice({\n path: verifyEmailPath,\n resourcePage: BackofficeVerifyEmailPageResource,\n prepare: async () => {\n await auth.verifyEmail.load();\n return null;\n },\n render: ({ Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component />;\n },\n }),\n ];\n\n if (auth.hasAcceptInvitation === true || auth.acceptInvitation != null) {\n routes.push(\n rBackoffice({\n path: acceptInvitationPath,\n resourcePage: BackofficeAcceptInvitationPageResource,\n prepare: async () => {\n await auth.acceptInvitation?.load();\n return null;\n },\n render: ({ Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component />;\n },\n }),\n );\n }\n\n routes.push(layoutRoute);\n\n return routes;\n}\n\nexport const __test = {\n normalizeBaseSegment,\n normalizePath,\n buildScopedPath,\n buildScopedAbsolutePath,\n buildRelativePath,\n resolveActiveEntityIdFromRoute,\n resolveDetailPageIdForPath,\n resolveDetailPageManifestByPath,\n toSearchParams,\n validateBackofficeDashboardRegistrations,\n BackofficeLayoutRouteWithAuthStatus,\n} as const;\n\nexport default createBackofficeRoutes;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RelayStory.js","names":[],"sources":["../../../../src/storybook/relay/RelayStory.tsx"],"sourcesContent":["import { Suspense, type JSX, type ReactNode } from 'react';\nimport {\n RelayEnvironmentProvider,\n loadQuery,\n useLazyLoadQuery,\n type GraphQLTaggedNode,\n type PreloadedQuery,\n} from 'react-relay';\nimport type {\n OperationDescriptor,\n OperationType,\n Variables,\n} from 'relay-runtime';\nimport {\n createMockEnvironment,\n MockPayloadGenerator,\n type MockResolvers,\n} from 'relay-test-utils';\n\nimport { BackofficeErrorBoundary } from '../../components/backoffice/errors/BackofficeErrorBoundary.js';\nimport { createBackofficeMockResolvers } from './mockResolvers.js';\nimport * as styles from './RelayStory.css.js';\n\ntype RelayMockOptions = {\n nodeType?: string;\n mockResolvers?: MockResolvers;\n};\n\nconst buildMockResolvers = ({\n nodeType,\n mockResolvers,\n}: RelayMockOptions): MockResolvers | undefined => {\n const baseResolvers = createBackofficeMockResolvers();\n\n const resolved: MockResolvers = {\n ...baseResolvers,\n ...(mockResolvers ?? {}),\n };\n\n if (nodeType != null) {\n resolved.Node = () => {\n return { __typename: nodeType };\n };\n }\n\n return resolved;\n};\n\nconst StoryErrorFallback = ({\n error,\n reset,\n}: {\n error: unknown;\n reset: () => void;\n}): JSX.Element => {\n let message = 'Unknown error';\n if (error instanceof Error) {\n message = error.message;\n } else {\n message = String(error);\n }\n\n return (\n <div className={styles.errorContainer}>\n <div className={styles.errorTitle}>Unable to render story</div>\n <div className={styles.errorMessage}>{message}</div>\n <button\n type=\"button\"\n onClick={() => {\n reset();\n }}\n className={styles.errorAction}\n >\n Retry\n </button>\n </div>\n );\n};\n\ntype RelayQueryRendererProps<Query extends OperationType> = {\n query: GraphQLTaggedNode;\n variables: Query['variables'];\n render: (data: Query['response']) => ReactNode;\n};\n\nconst RelayQueryRenderer = <Query extends OperationType>({\n query,\n variables,\n render,\n}: RelayQueryRendererProps<Query>): JSX.Element => {\n const data = useLazyLoadQuery<Query>(query, variables);\n return <>{render(data)}</>;\n};\n\ntype RelayLazyLoadStoryOptions<Query extends OperationType> = {\n query: GraphQLTaggedNode;\n variables: Query['variables'];\n render: (data: Query['response']) => ReactNode;\n fallback?: ReactNode;\n} & RelayMockOptions;\n\nexport const renderRelayLazyLoadStory = <Query extends OperationType>(\n options: RelayLazyLoadStoryOptions<Query>,\n): JSX.Element => {\n const environment = createMockEnvironment();\n const resolvers = buildMockResolvers(options);\n\n environment.mock.queueOperationResolver((operation: OperationDescriptor) => {\n if (resolvers == null) {\n return MockPayloadGenerator.generate(operation);\n }\n return MockPayloadGenerator.generate(operation, resolvers);\n });\n environment.mock.queuePendingOperation(options.query, options.variables);\n\n return (\n <RelayEnvironmentProvider environment={environment}>\n <Suspense fallback={options.fallback ?? <div>Loading...</div>}>\n <BackofficeErrorBoundary fallback={StoryErrorFallback}>\n <RelayQueryRenderer\n query={options.query}\n variables={options.variables}\n render={options.render}\n />\n </BackofficeErrorBoundary>\n </Suspense>\n </RelayEnvironmentProvider>\n );\n};\n\ntype RelayProviderStoryOptions = {\n children: ReactNode;\n fallback?: ReactNode;\n pendingOperations?: readonly {\n query: GraphQLTaggedNode;\n variables: Variables;\n }[];\n} & RelayMockOptions;\n\nexport const renderRelayProviderStory = (\n options: RelayProviderStoryOptions,\n): JSX.Element => {\n const environment = createMockEnvironment();\n const resolvers = buildMockResolvers(options);\n\n environment.mock.queueOperationResolver((operation: OperationDescriptor) => {\n if (resolvers == null) {\n return MockPayloadGenerator.generate(operation);\n }\n return MockPayloadGenerator.generate(operation, resolvers);\n });\n\n options.pendingOperations?.forEach((pending) => {\n environment.mock.queuePendingOperation(pending.query, pending.variables);\n });\n\n return (\n <RelayEnvironmentProvider environment={environment}>\n <Suspense fallback={options.fallback ?? <div>Loading...</div>}>\n <BackofficeErrorBoundary fallback={StoryErrorFallback}>\n {options.children}\n </BackofficeErrorBoundary>\n </Suspense>\n </RelayEnvironmentProvider>\n );\n};\n\ntype RelayPreloadedStoryOptions<Query extends OperationType> = {\n query: GraphQLTaggedNode;\n variables: Query['variables'];\n render: (prepared: { query: PreloadedQuery<Query> }) => ReactNode;\n fallback?: ReactNode;\n} & RelayMockOptions;\n\nexport const renderRelayPreloadedStory = <Query extends OperationType>(\n options: RelayPreloadedStoryOptions<Query>,\n): JSX.Element => {\n const environment = createMockEnvironment();\n const resolvers = buildMockResolvers(options);\n\n environment.mock.queueOperationResolver((operation: OperationDescriptor) => {\n if (resolvers == null) {\n return MockPayloadGenerator.generate(operation);\n }\n return MockPayloadGenerator.generate(operation, resolvers);\n });\n environment.mock.queuePendingOperation(options.query, options.variables);\n\n const prepared = {\n query: loadQuery<Query>(environment, options.query, options.variables),\n };\n\n return (\n <RelayEnvironmentProvider environment={environment}>\n <Suspense fallback={options.fallback ?? <div>Loading...</div>}>\n <BackofficeErrorBoundary fallback={StoryErrorFallback}>\n {options.render(prepared)}\n </BackofficeErrorBoundary>\n </Suspense>\n </RelayEnvironmentProvider>\n );\n};\n"],"mappings":";;;;;;;;aA4BM,KAAsB,EAC1B,aACA,uBACiD;CAGjD,IAAM,IAA0B;EAC9B,GAHoB,EAGjB;EACH,GAAI,KAAiB,CAAC;CACxB;CAQA,OANI,KAAY,SACd,EAAS,cACA,EAAE,YAAY,EAAS,KAI3B;AACT,GAEM,KAAsB,EAC1B,UACA,eAIiB;CACjB,IAAI,IAAU;CAOd,OANA,AAGE,IAHE,aAAiB,QACT,EAAM,UAEN,OAAO,CAAK,GAItB,kBAAC,OAAD;EAAK,WAAW;YAAhB;GACE,kBAAC,OAAD;IAAK,WAAW;cAAmB;GAA2B,CAAA;GAC9D,kBAAC,OAAD;IAAK,WAAW;cAAsB;GAAa,CAAA;GACnD,kBAAC,UAAD;IACE,MAAK;IACL,eAAe;KACb,EAAM;IACR;IACA,WAAW;cACZ;GAEO,CAAA;EACL;;AAET,GAQM,KAAmD,EACvD,UACA,cACA,gBAGO,kBAAA,GAAA,EAAA,UAAG,EADG,EAAwB,GAAO,CAC3B,CAAI,EAAI,CAAA,GAUd,KACX,MACgB;CAChB,IAAM,KAAA,GAAA,EAAA,uBAAoC,GACpC,IAAY,EAAmB,CAAO;CAU5C,OARA,EAAY,KAAK,wBAAwB,MACnC,KAAa,OACR,EAAA,qBAAqB,SAAS,CAAS,IAEzC,EAAA,qBAAqB,SAAS,GAAW,CAAS,CAC1D,GACD,EAAY,KAAK,sBAAsB,EAAQ,OAAO,EAAQ,SAAS,GAGrE,kBAAC,GAAD;EAAuC;YACrC,kBAAC,GAAD;GAAU,UAAU,EAAQ,YAAY,kBAAC,OAAD,EAAA,UAAK,aAAe,CAAA;aAC1D,kBAAC,GAAD;IAAyB,UAAU;cACjC,kBAAC,GAAD;KACE,OAAO,EAAQ;KACf,WAAW,EAAQ;KACnB,QAAQ,EAAQ;IACjB,CAAA;GACsB,CAAA;EACjB,CAAA;CACc,CAAA;AAE9B,GAWa,KACX,MACgB;CAChB,IAAM,KAAA,GAAA,EAAA,uBAAoC,GACpC,IAAY,EAAmB,CAAO;CAa5C,OAXA,EAAY,KAAK,wBAAwB,MACnC,KAAa,OACR,EAAA,qBAAqB,SAAS,CAAS,IAEzC,EAAA,qBAAqB,SAAS,GAAW,CAAS,CAC1D,GAED,EAAQ,mBAAmB,SAAS,MAAY;EAC9C,EAAY,KAAK,sBAAsB,EAAQ,OAAO,EAAQ,SAAS;CACzE,CAAC,GAGC,kBAAC,GAAD;EAAuC;YACrC,kBAAC,GAAD;GAAU,UAAU,EAAQ,YAAY,kBAAC,OAAD,EAAA,UAAK,aAAe,CAAA;aAC1D,kBAAC,GAAD;IAAyB,UAAU;cAChC,EAAQ;GACc,CAAA;EACjB,CAAA;CACc,CAAA;AAE9B,GASa,KACX,MACgB;CAChB,IAAM,KAAA,GAAA,EAAA,uBAAoC,GACpC,IAAY,EAAmB,CAAO;CAQ5C,AANA,EAAY,KAAK,wBAAwB,MACnC,KAAa,OACR,EAAA,qBAAqB,SAAS,CAAS,IAEzC,EAAA,qBAAqB,SAAS,GAAW,CAAS,CAC1D,GACD,EAAY,KAAK,sBAAsB,EAAQ,OAAO,EAAQ,SAAS;CAEvE,IAAM,IAAW,EACf,OAAO,EAAiB,GAAa,EAAQ,OAAO,EAAQ,SAAS,EACvE;CAEA,OACE,kBAAC,GAAD;EAAuC;YACrC,kBAAC,GAAD;GAAU,UAAU,EAAQ,YAAY,kBAAC,OAAD,EAAA,UAAK,aAAe,CAAA;aAC1D,kBAAC,GAAD;IAAyB,UAAU;cAChC,EAAQ,OAAO,CAAQ;GACD,CAAA;EACjB,CAAA;CACc,CAAA;AAE9B"}
1
+ {"version":3,"file":"RelayStory.js","names":[],"sources":["../../../../src/storybook/relay/RelayStory.tsx"],"sourcesContent":["import { Suspense, type JSX, type ReactNode } from 'react';\nimport {\n RelayEnvironmentProvider,\n loadQuery,\n useLazyLoadQuery,\n type GraphQLTaggedNode,\n type PreloadedQuery,\n} from 'react-relay';\nimport type {\n OperationDescriptor,\n OperationType,\n Variables,\n} from 'relay-runtime';\nimport {\n createMockEnvironment,\n MockPayloadGenerator,\n type MockResolvers,\n} from 'relay-test-utils';\n\nimport { BackofficeErrorBoundary } from '../../components/backoffice/errors/BackofficeErrorBoundary.js';\nimport { createBackofficeMockResolvers } from './mockResolvers.js';\nimport * as styles from './RelayStory.css.js';\n\ntype RelayMockOptions = {\n nodeType?: string;\n mockResolvers?: MockResolvers;\n};\n\nconst buildMockResolvers = ({\n nodeType,\n mockResolvers,\n}: RelayMockOptions): MockResolvers | undefined => {\n const baseResolvers = createBackofficeMockResolvers();\n\n const resolved: MockResolvers = {\n ...baseResolvers,\n ...(mockResolvers ?? {}),\n };\n\n if (nodeType != null) {\n resolved.Node = () => {\n return { __typename: nodeType };\n };\n }\n\n return resolved;\n};\n\nconst StoryErrorFallback = ({\n error,\n reset,\n}: {\n error: unknown;\n reset: () => void;\n}): JSX.Element => {\n let message = 'Unknown error';\n if (error instanceof Error) {\n message = error.message;\n } else {\n message = String(error);\n }\n\n return (\n <div className={styles.errorContainer}>\n <div className={styles.errorTitle}>Unable to render story</div>\n <div className={styles.errorMessage}>{message}</div>\n <button\n type=\"button\"\n onClick={() => {\n reset();\n }}\n className={styles.errorAction}\n >\n Retry\n </button>\n </div>\n );\n};\n\ntype RelayQueryRendererProps<Query extends OperationType> = {\n query: GraphQLTaggedNode;\n variables: Query['variables'];\n render: (data: Query['response']) => ReactNode;\n};\n\nconst RelayQueryRenderer = <Query extends OperationType>({\n query,\n variables,\n render,\n}: RelayQueryRendererProps<Query>): JSX.Element => {\n const data = useLazyLoadQuery<Query>(query, variables);\n return <>{render(data)}</>;\n};\n\ntype RelayLazyLoadStoryOptions<Query extends OperationType> = {\n query: GraphQLTaggedNode;\n variables: Query['variables'];\n render: (data: Query['response']) => ReactNode;\n fallback?: ReactNode;\n} & RelayMockOptions;\n\nexport const renderRelayLazyLoadStory = <Query extends OperationType>(\n options: RelayLazyLoadStoryOptions<Query>,\n): JSX.Element => {\n const environment = createMockEnvironment();\n const resolvers = buildMockResolvers(options);\n\n environment.mock.queueOperationResolver((operation: OperationDescriptor) => {\n if (resolvers == null) {\n return MockPayloadGenerator.generate(operation);\n }\n return MockPayloadGenerator.generate(operation, resolvers);\n });\n environment.mock.queuePendingOperation(options.query, options.variables);\n\n return (\n <RelayEnvironmentProvider environment={environment}>\n <Suspense fallback={options.fallback ?? <div>Loading...</div>}>\n <BackofficeErrorBoundary fallback={StoryErrorFallback}>\n <RelayQueryRenderer\n query={options.query}\n variables={options.variables}\n render={options.render}\n />\n </BackofficeErrorBoundary>\n </Suspense>\n </RelayEnvironmentProvider>\n );\n};\n\ntype RelayProviderStoryOptions = {\n children: ReactNode;\n fallback?: ReactNode;\n pendingOperations?: readonly {\n query: GraphQLTaggedNode;\n variables: Variables;\n }[];\n} & RelayMockOptions;\n\nexport const renderRelayProviderStory = (\n options: RelayProviderStoryOptions,\n): JSX.Element => {\n const environment = createMockEnvironment();\n const resolvers = buildMockResolvers(options);\n\n environment.mock.queueOperationResolver((operation: OperationDescriptor) => {\n if (resolvers == null) {\n return MockPayloadGenerator.generate(operation);\n }\n return MockPayloadGenerator.generate(operation, resolvers);\n });\n\n options.pendingOperations?.forEach((pending) => {\n environment.mock.queuePendingOperation(pending.query, pending.variables);\n });\n\n return (\n <RelayEnvironmentProvider environment={environment}>\n <Suspense fallback={options.fallback ?? <div>Loading...</div>}>\n <BackofficeErrorBoundary fallback={StoryErrorFallback}>\n {options.children}\n </BackofficeErrorBoundary>\n </Suspense>\n </RelayEnvironmentProvider>\n );\n};\n\ntype RelayPreloadedStoryOptions<Query extends OperationType> = {\n query: GraphQLTaggedNode;\n variables: Query['variables'];\n render: (prepared: { query: PreloadedQuery<Query> }) => ReactNode;\n fallback?: ReactNode;\n} & RelayMockOptions;\n\nexport const renderRelayPreloadedStory = <Query extends OperationType>(\n options: RelayPreloadedStoryOptions<Query>,\n): JSX.Element => {\n const environment = createMockEnvironment();\n const resolvers = buildMockResolvers(options);\n\n environment.mock.queueOperationResolver((operation: OperationDescriptor) => {\n if (resolvers == null) {\n return MockPayloadGenerator.generate(operation);\n }\n return MockPayloadGenerator.generate(operation, resolvers);\n });\n environment.mock.queuePendingOperation(options.query, options.variables);\n\n const prepared = {\n query: loadQuery<Query>(environment, options.query, options.variables),\n };\n\n return (\n <RelayEnvironmentProvider environment={environment}>\n <Suspense fallback={options.fallback ?? <div>Loading...</div>}>\n <BackofficeErrorBoundary fallback={StoryErrorFallback}>\n {options.render(prepared)}\n </BackofficeErrorBoundary>\n </Suspense>\n </RelayEnvironmentProvider>\n );\n};\n"],"mappings":";;;;;;;;aA4BM,KAAsB,EAC1B,aACA,uBACiD;CAGjD,IAAM,IAA0B;EAC9B,GAHoB,EAGjB;EACH,GAAI,KAAiB,CAAC;CACxB;CAQA,OANI,KAAY,SACd,EAAS,cACA,EAAE,YAAY,EAAS,KAI3B;AACT,GAEM,KAAsB,EAC1B,UACA,eAIiB;CACjB,IAAI,IAAU;CAOd,OANA,AAGE,IAHE,aAAiB,QACT,EAAM,UAEN,OAAO,CAAK,GAItB,kBAAC,OAAD;EAAK,WAAW;YAAhB;GACE,kBAAC,OAAD;IAAK,WAAW;cAAmB;GAA2B,CAAA;GAC9D,kBAAC,OAAD;IAAK,WAAW;cAAsB;GAAa,CAAA;GACnD,kBAAC,UAAD;IACE,MAAK;IACL,eAAe;KACb,EAAM;IACR;IACA,WAAW;cACZ;GAEO,CAAA;EACL;;AAET,GAQM,KAAmD,EACvD,UACA,cACA,gBAGO,kBAAA,GAAA,EAAA,UAAG,EADG,EAAwB,GAAO,CAC3B,CAAI,EAAI,CAAA,GAUd,KACX,MACgB;CAChB,IAAM,KAAA,GAAA,EAAA,sBAAA,CAAoC,GACpC,IAAY,EAAmB,CAAO;CAU5C,OARA,EAAY,KAAK,wBAAwB,MACnC,KAAa,OACR,EAAA,qBAAqB,SAAS,CAAS,IAEzC,EAAA,qBAAqB,SAAS,GAAW,CAAS,CAC1D,GACD,EAAY,KAAK,sBAAsB,EAAQ,OAAO,EAAQ,SAAS,GAGrE,kBAAC,GAAD;EAAuC;YACrC,kBAAC,GAAD;GAAU,UAAU,EAAQ,YAAY,kBAAC,OAAD,EAAA,UAAK,aAAe,CAAA;aAC1D,kBAAC,GAAD;IAAyB,UAAU;cACjC,kBAAC,GAAD;KACE,OAAO,EAAQ;KACf,WAAW,EAAQ;KACnB,QAAQ,EAAQ;IACjB,CAAA;GACsB,CAAA;EACjB,CAAA;CACc,CAAA;AAE9B,GAWa,KACX,MACgB;CAChB,IAAM,KAAA,GAAA,EAAA,sBAAA,CAAoC,GACpC,IAAY,EAAmB,CAAO;CAa5C,OAXA,EAAY,KAAK,wBAAwB,MACnC,KAAa,OACR,EAAA,qBAAqB,SAAS,CAAS,IAEzC,EAAA,qBAAqB,SAAS,GAAW,CAAS,CAC1D,GAED,EAAQ,mBAAmB,SAAS,MAAY;EAC9C,EAAY,KAAK,sBAAsB,EAAQ,OAAO,EAAQ,SAAS;CACzE,CAAC,GAGC,kBAAC,GAAD;EAAuC;YACrC,kBAAC,GAAD;GAAU,UAAU,EAAQ,YAAY,kBAAC,OAAD,EAAA,UAAK,aAAe,CAAA;aAC1D,kBAAC,GAAD;IAAyB,UAAU;cAChC,EAAQ;GACc,CAAA;EACjB,CAAA;CACc,CAAA;AAE9B,GASa,KACX,MACgB;CAChB,IAAM,KAAA,GAAA,EAAA,sBAAA,CAAoC,GACpC,IAAY,EAAmB,CAAO;CAQ5C,AANA,EAAY,KAAK,wBAAwB,MACnC,KAAa,OACR,EAAA,qBAAqB,SAAS,CAAS,IAEzC,EAAA,qBAAqB,SAAS,GAAW,CAAS,CAC1D,GACD,EAAY,KAAK,sBAAsB,EAAQ,OAAO,EAAQ,SAAS;CAEvE,IAAM,IAAW,EACf,OAAO,EAAiB,GAAa,EAAQ,OAAO,EAAQ,SAAS,EACvE;CAEA,OACE,kBAAC,GAAD;EAAuC;YACrC,kBAAC,GAAD;GAAU,UAAU,EAAQ,YAAY,kBAAC,OAAD,EAAA,UAAK,aAAe,CAAA;aAC1D,kBAAC,GAAD;IAAyB,UAAU;cAChC,EAAQ,OAAO,CAAQ;GACD,CAAA;EACjB,CAAA;CACc,CAAA;AAE9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"mockResolvers.js","names":[],"sources":["../../../../src/storybook/relay/mockResolvers.ts"],"sourcesContent":["import type { MockResolverContext, MockResolvers } from 'relay-test-utils';\n\n/**\n *\n */\nfunction toLabel(value: string): string {\n const withSpaces = value\n .replace(/([a-z0-9])([A-Z])/g, '$1 $2')\n .replace(/[_-]+/g, ' ')\n .trim();\n if (withSpaces === '') {\n return value;\n }\n return withSpaces;\n}\n\n/**\n *\n */\nfunction toSlug(value: string): string {\n return value\n .replace(/([a-z0-9])([A-Z])/g, '$1-$2')\n .replace(/[_\\s]+/g, '-')\n .toLowerCase();\n}\n\n/**\n *\n */\nfunction createCounter(): (key: string) => number {\n const counts = new Map<string, number>();\n return (key: string) => {\n const next = (counts.get(key) ?? 0) + 1;\n counts.set(key, next);\n return next;\n };\n}\n\nconst FIRST_NAMES = ['Avery', 'Jordan', 'Taylor', 'Morgan', 'Casey'] as const;\nconst LAST_NAMES = ['Lee', 'Parker', 'Carter', 'Nguyen', 'Patel'] as const;\n\n/**\n *\n */\nfunction pickName(list: readonly string[], index: number): string {\n const candidate = list[(index - 1) % list.length];\n if (candidate == null) {\n return 'User';\n }\n return candidate;\n}\n\n/**\n *\n */\nexport function createBackofficeMockResolvers(): MockResolvers {\n const next = createCounter();\n const baseDate = Date.parse('2024-01-15T09:30:00.000Z');\n\n /**\n *\n */\n function stringResolver(context: MockResolverContext): string {\n const fieldName = context.alias ?? context.name ?? 'value';\n const parentType = context.parentType ?? 'Item';\n const label = toLabel(parentType);\n const key = `${parentType}.${fieldName}`;\n const index = next(key);\n\n switch (fieldName) {\n case 'name':\n case 'title':\n case 'label':\n return `${label} ${index}`;\n case 'firstName':\n return pickName(FIRST_NAMES, index);\n case 'lastName':\n return pickName(LAST_NAMES, index);\n case 'initials':\n return 'JD';\n case 'email':\n return `user${index}@example.com`;\n case 'slug':\n case 'handle':\n return `${toSlug(label)}-${index}`;\n case 'url':\n case 'uri':\n case 'avatarUrl':\n case 'imageUrl':\n case 'iconUrl':\n return `https://example.com/${toSlug(label)}/${index}`;\n case 'description':\n case 'summary':\n case 'content':\n case 'body':\n case 'notes':\n case 'message':\n return `Sample ${fieldName} for ${label}.`;\n case 'markdown':\n case 'summaryMarkdown':\n case 'notesForDev':\n case 'descriptionMarkdown':\n case 'suggestedFixMarkdown':\n return `Sample ${fieldName} for ${label}.`;\n default:\n return `${label} ${fieldName} ${index}`;\n }\n }\n\n /**\n *\n */\n function resolveId(context: MockResolverContext): string {\n const parentType = context.parentType ?? 'node';\n const index = next(`${parentType}.id`);\n return `${toSlug(parentType)}-${index}`;\n }\n\n /**\n *\n */\n function resolveInt(context: MockResolverContext): number {\n const key = `${context.parentType ?? 'value'}.${context.name ?? 'int'}`;\n return next(key);\n }\n\n /**\n *\n */\n function resolveFloat(context: MockResolverContext): number {\n const key = `${context.parentType ?? 'value'}.${context.name ?? 'float'}`;\n return Number((next(key) * 1.25).toFixed(2));\n }\n\n /**\n *\n */\n function resolveBoolean(): boolean {\n return true;\n }\n\n /**\n *\n */\n function resolveDateTime(): string {\n const index = next('datetime');\n const value = new Date(baseDate + index * 86400000);\n return value.toISOString();\n }\n\n /**\n *\n */\n function resolveJson(context: MockResolverContext): { note: string } {\n const label = toLabel(context.parentType ?? 'Item');\n return { note: `Sample JSON for ${label}.` };\n }\n\n return {\n ID: resolveId,\n String: stringResolver,\n Int: resolveInt,\n Float: resolveFloat,\n Boolean: resolveBoolean,\n DateTime: resolveDateTime,\n JSON: resolveJson,\n };\n}\n"],"mappings":";AAKA,SAAS,EAAQ,GAAuB;CACtC,IAAM,IAAa,EAChB,QAAQ,sBAAsB,OAAO,EACrC,QAAQ,UAAU,GAAG,EACrB,KAAK;CAIR,OAHI,MAAe,KACV,IAEF;AACT;AAKA,SAAS,EAAO,GAAuB;CACrC,OAAO,EACJ,QAAQ,sBAAsB,OAAO,EACrC,QAAQ,WAAW,GAAG,EACtB,YAAY;AACjB;AAKA,SAAS,IAAyC;CAChD,IAAM,oBAAS,IAAI,IAAoB;CACvC,QAAQ,MAAgB;EACtB,IAAM,KAAQ,EAAO,IAAI,CAAG,KAAK,KAAK;EAEtC,OADA,EAAO,IAAI,GAAK,CAAI,GACb;CACT;AACF;AAEA,IAAM,IAAc;CAAC;CAAS;CAAU;CAAU;CAAU;AAAO,GAC7D,IAAa;CAAC;CAAO;CAAU;CAAU;CAAU;AAAO;AAKhE,SAAS,EAAS,GAAyB,GAAuB;CAKhE,OAJkB,GAAM,IAAQ,KAAK,EAAK,WAEjC;AAGX;AAKA,SAAgB,IAA+C;CAC7D,IAAM,IAAO,EAAc,GACrB,IAAW,KAAK,MAAM,0BAA0B;CAKtD,SAAS,EAAe,GAAsC;EAC5D,IAAM,IAAY,EAAQ,SAAS,EAAQ,QAAQ,SAC7C,IAAa,EAAQ,cAAc,QACnC,IAAQ,EAAQ,CAAU,GAE1B,IAAQ,EAAK,GADJ,EAAW,GAAG,GACP;EAEtB,QAAQ,GAAR;GACE,KAAK;GACL,KAAK;GACL,KAAK,SACH,OAAO,GAAG,EAAM,GAAG;GACrB,KAAK,aACH,OAAO,EAAS,GAAa,CAAK;GACpC,KAAK,YACH,OAAO,EAAS,GAAY,CAAK;GACnC,KAAK,YACH,OAAO;GACT,KAAK,SACH,OAAO,OAAO,EAAM;GACtB,KAAK;GACL,KAAK,UACH,OAAO,GAAG,EAAO,CAAK,EAAE,GAAG;GAC7B,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK,WACH,OAAO,uBAAuB,EAAO,CAAK,EAAE,GAAG;GACjD,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK,WACH,OAAO,UAAU,EAAU,OAAO,EAAM;GAC1C,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK,wBACH,OAAO,UAAU,EAAU,OAAO,EAAM;GAC1C,SACE,OAAO,GAAG,EAAM,GAAG,EAAU,GAAG;EACpC;CACF;CAKA,SAAS,EAAU,GAAsC;EACvD,IAAM,IAAa,EAAQ,cAAc,QACnC,IAAQ,EAAK,GAAG,EAAW,IAAI;EACrC,OAAO,GAAG,EAAO,CAAU,EAAE,GAAG;CAClC;CAKA,SAAS,EAAW,GAAsC;EAExD,OAAO,EAAK,GADG,EAAQ,cAAc,QAAQ,GAAG,EAAQ,QAAQ,OACjD;CACjB;CAKA,SAAS,EAAa,GAAsC;EAC1D,IAAM,IAAM,GAAG,EAAQ,cAAc,QAAQ,GAAG,EAAQ,QAAQ;EAChE,OAAO,QAAQ,EAAK,CAAG,IAAI,MAAM,QAAQ,CAAC,CAAC;CAC7C;CAKA,SAAS,IAA0B;EACjC,OAAO;CACT;CAKA,SAAS,IAA0B;EACjC,IAAM,IAAQ,EAAK,UAAU;EAE7B,OAAO,IADW,KAAK,IAAW,IAAQ,KACnC,EAAM,YAAY;CAC3B;CAKA,SAAS,EAAY,GAAgD;EAEnE,OAAO,EAAE,MAAM,mBADD,EAAQ,EAAQ,cAAc,MACV,EAAM,GAAG;CAC7C;CAEA,OAAO;EACL,IAAI;EACJ,QAAQ;EACR,KAAK;EACL,OAAO;EACP,SAAS;EACT,UAAU;EACV,MAAM;CACR;AACF"}
1
+ {"version":3,"file":"mockResolvers.js","names":[],"sources":["../../../../src/storybook/relay/mockResolvers.ts"],"sourcesContent":["import type { MockResolverContext, MockResolvers } from 'relay-test-utils';\n\n/**\n *\n */\nfunction toLabel(value: string): string {\n const withSpaces = value\n .replace(/([a-z0-9])([A-Z])/g, '$1 $2')\n .replace(/[_-]+/g, ' ')\n .trim();\n if (withSpaces === '') {\n return value;\n }\n return withSpaces;\n}\n\n/**\n *\n */\nfunction toSlug(value: string): string {\n return value\n .replace(/([a-z0-9])([A-Z])/g, '$1-$2')\n .replace(/[_\\s]+/g, '-')\n .toLowerCase();\n}\n\n/**\n *\n */\nfunction createCounter(): (key: string) => number {\n const counts = new Map<string, number>();\n return (key: string) => {\n const next = (counts.get(key) ?? 0) + 1;\n counts.set(key, next);\n return next;\n };\n}\n\nconst FIRST_NAMES = ['Avery', 'Jordan', 'Taylor', 'Morgan', 'Casey'] as const;\nconst LAST_NAMES = ['Lee', 'Parker', 'Carter', 'Nguyen', 'Patel'] as const;\n\n/**\n *\n */\nfunction pickName(list: readonly string[], index: number): string {\n const candidate = list[(index - 1) % list.length];\n if (candidate == null) {\n return 'User';\n }\n return candidate;\n}\n\n/**\n *\n */\nexport function createBackofficeMockResolvers(): MockResolvers {\n const next = createCounter();\n const baseDate = Date.parse('2024-01-15T09:30:00.000Z');\n\n /**\n *\n */\n function stringResolver(context: MockResolverContext): string {\n const fieldName = context.alias ?? context.name ?? 'value';\n const parentType = context.parentType ?? 'Item';\n const label = toLabel(parentType);\n const key = `${parentType}.${fieldName}`;\n const index = next(key);\n\n switch (fieldName) {\n case 'name':\n case 'title':\n case 'label':\n return `${label} ${index}`;\n case 'firstName':\n return pickName(FIRST_NAMES, index);\n case 'lastName':\n return pickName(LAST_NAMES, index);\n case 'initials':\n return 'JD';\n case 'email':\n return `user${index}@example.com`;\n case 'slug':\n case 'handle':\n return `${toSlug(label)}-${index}`;\n case 'url':\n case 'uri':\n case 'avatarUrl':\n case 'imageUrl':\n case 'iconUrl':\n return `https://example.com/${toSlug(label)}/${index}`;\n case 'description':\n case 'summary':\n case 'content':\n case 'body':\n case 'notes':\n case 'message':\n return `Sample ${fieldName} for ${label}.`;\n case 'markdown':\n case 'summaryMarkdown':\n case 'notesForDev':\n case 'descriptionMarkdown':\n case 'suggestedFixMarkdown':\n return `Sample ${fieldName} for ${label}.`;\n default:\n return `${label} ${fieldName} ${index}`;\n }\n }\n\n /**\n *\n */\n function resolveId(context: MockResolverContext): string {\n const parentType = context.parentType ?? 'node';\n const index = next(`${parentType}.id`);\n return `${toSlug(parentType)}-${index}`;\n }\n\n /**\n *\n */\n function resolveInt(context: MockResolverContext): number {\n const key = `${context.parentType ?? 'value'}.${context.name ?? 'int'}`;\n return next(key);\n }\n\n /**\n *\n */\n function resolveFloat(context: MockResolverContext): number {\n const key = `${context.parentType ?? 'value'}.${context.name ?? 'float'}`;\n return Number((next(key) * 1.25).toFixed(2));\n }\n\n /**\n *\n */\n function resolveBoolean(): boolean {\n return true;\n }\n\n /**\n *\n */\n function resolveDateTime(): string {\n const index = next('datetime');\n const value = new Date(baseDate + index * 86400000);\n return value.toISOString();\n }\n\n /**\n *\n */\n function resolveJson(context: MockResolverContext): { note: string } {\n const label = toLabel(context.parentType ?? 'Item');\n return { note: `Sample JSON for ${label}.` };\n }\n\n return {\n ID: resolveId,\n String: stringResolver,\n Int: resolveInt,\n Float: resolveFloat,\n Boolean: resolveBoolean,\n DateTime: resolveDateTime,\n JSON: resolveJson,\n };\n}\n"],"mappings":";AAKA,SAAS,EAAQ,GAAuB;CACtC,IAAM,IAAa,EAChB,QAAQ,sBAAsB,OAAO,CAAC,CACtC,QAAQ,UAAU,GAAG,CAAC,CACtB,KAAK;CAIR,OAHI,MAAe,KACV,IAEF;AACT;AAKA,SAAS,EAAO,GAAuB;CACrC,OAAO,EACJ,QAAQ,sBAAsB,OAAO,CAAC,CACtC,QAAQ,WAAW,GAAG,CAAC,CACvB,YAAY;AACjB;AAKA,SAAS,IAAyC;CAChD,IAAM,oBAAS,IAAI,IAAoB;CACvC,QAAQ,MAAgB;EACtB,IAAM,KAAQ,EAAO,IAAI,CAAG,KAAK,KAAK;EAEtC,OADA,EAAO,IAAI,GAAK,CAAI,GACb;CACT;AACF;AAEA,IAAM,IAAc;CAAC;CAAS;CAAU;CAAU;CAAU;AAAO,GAC7D,IAAa;CAAC;CAAO;CAAU;CAAU;CAAU;AAAO;AAKhE,SAAS,EAAS,GAAyB,GAAuB;CAKhE,OAJkB,GAAM,IAAQ,KAAK,EAAK,WAEjC;AAGX;AAKA,SAAgB,IAA+C;CAC7D,IAAM,IAAO,EAAc,GACrB,IAAW,KAAK,MAAM,0BAA0B;CAKtD,SAAS,EAAe,GAAsC;EAC5D,IAAM,IAAY,EAAQ,SAAS,EAAQ,QAAQ,SAC7C,IAAa,EAAQ,cAAc,QACnC,IAAQ,EAAQ,CAAU,GAE1B,IAAQ,EAAK,GADJ,EAAW,GAAG,GACP;EAEtB,QAAQ,GAAR;GACE,KAAK;GACL,KAAK;GACL,KAAK,SACH,OAAO,GAAG,EAAM,GAAG;GACrB,KAAK,aACH,OAAO,EAAS,GAAa,CAAK;GACpC,KAAK,YACH,OAAO,EAAS,GAAY,CAAK;GACnC,KAAK,YACH,OAAO;GACT,KAAK,SACH,OAAO,OAAO,EAAM;GACtB,KAAK;GACL,KAAK,UACH,OAAO,GAAG,EAAO,CAAK,EAAE,GAAG;GAC7B,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK,WACH,OAAO,uBAAuB,EAAO,CAAK,EAAE,GAAG;GACjD,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK,WACH,OAAO,UAAU,EAAU,OAAO,EAAM;GAC1C,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK,wBACH,OAAO,UAAU,EAAU,OAAO,EAAM;GAC1C,SACE,OAAO,GAAG,EAAM,GAAG,EAAU,GAAG;EACpC;CACF;CAKA,SAAS,EAAU,GAAsC;EACvD,IAAM,IAAa,EAAQ,cAAc,QACnC,IAAQ,EAAK,GAAG,EAAW,IAAI;EACrC,OAAO,GAAG,EAAO,CAAU,EAAE,GAAG;CAClC;CAKA,SAAS,EAAW,GAAsC;EAExD,OAAO,EAAK,GADG,EAAQ,cAAc,QAAQ,GAAG,EAAQ,QAAQ,OACjD;CACjB;CAKA,SAAS,EAAa,GAAsC;EAC1D,IAAM,IAAM,GAAG,EAAQ,cAAc,QAAQ,GAAG,EAAQ,QAAQ;EAChE,OAAO,QAAQ,EAAK,CAAG,IAAI,KAAA,CAAM,QAAQ,CAAC,CAAC;CAC7C;CAKA,SAAS,IAA0B;EACjC,OAAO;CACT;CAKA,SAAS,IAA0B;EACjC,IAAM,IAAQ,EAAK,UAAU;EAE7B,OAAO,IADW,KAAK,IAAW,IAAQ,KACnC,CAAA,CAAM,YAAY;CAC3B;CAKA,SAAS,EAAY,GAAgD;EAEnE,OAAO,EAAE,MAAM,mBADD,EAAQ,EAAQ,cAAc,MACV,EAAM,GAAG;CAC7C;CAEA,OAAO;EACL,IAAI;EACJ,QAAQ;EACR,KAAK;EACL,OAAO;EACP,SAAS;EACT,UAAU;EACV,MAAM;CACR;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeLifecycleTimelineSection.d.ts","sourceRoot":"","sources":["../../../../../src/components/backoffice/detail/BackofficeLifecycleTimelineSection.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAMjD,MAAM,MAAM,4BAA4B,GACpC,SAAS,GACT,MAAM,GACN,SAAS,GACT,SAAS,GACT,QAAQ,CAAC;AAEb,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,4BAA4B,CAAC;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,uCAAuC,GAAG;IACpD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACrD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,kCAAkC,GAAI,6CAKhD,uCAAuC,KAAG,GAAG,CAAC,OA4BhD,CAAC;AAEF,eAAe,kCAAkC,CAAC"}
1
+ {"version":3,"file":"BackofficeLifecycleTimelineSection.d.ts","sourceRoot":"","sources":["../../../../../src/components/backoffice/detail/BackofficeLifecycleTimelineSection.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAMjD,MAAM,MAAM,4BAA4B,GACtC,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAExD,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,4BAA4B,CAAC;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,uCAAuC,GAAG;IACpD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACrD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,kCAAkC,GAAI,6CAKhD,uCAAuC,KAAG,GAAG,CAAC,OA4BhD,CAAC;AAEF,eAAe,kCAAkC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityIdPickerDialog.d.ts","sourceRoot":"","sources":["../../../../../src/components/backoffice/pickers/EntityIdPickerDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,GAAG,EACT,MAAM,OAAO,CAAC;AAef,OAAO,KAAK,EACV,qBAAqB,EAGtB,MAAM,mCAAmC,CAAC;AAW3C,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC,CAAC;AA8FF,eAAO,MAAM,oBAAoB,GAAI,wDAOlC,yBAAyB,KAAG,GAAG,CAAC,OAAO,GAAG,IAoI5C,CAAC;AAEF,YAAY,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE/E,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"EntityIdPickerDialog.d.ts","sourceRoot":"","sources":["../../../../../src/components/backoffice/pickers/EntityIdPickerDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,GAAG,EACT,MAAM,OAAO,CAAC;AAef,OAAO,KAAK,EACV,qBAAqB,EAGtB,MAAM,mCAAmC,CAAC;AAW3C,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC,CAAC;AA8FF,eAAO,MAAM,oBAAoB,GAAI,wDAOlC,yBAAyB,KAAG,GAAG,CAAC,OAAO,GAAG,IAmI5C,CAAC;AAEF,YAAY,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE/E,eAAe,oBAAoB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { type JSX, type ReactNode } from 'react';
2
2
  import { type DataTableColumn, type GetRowId } from '@plumile/ui/components/data-table/DataTable.js';
3
3
  import type { BackofficeListState, BackofficeRuntimeResolvedListFacetConfig } from '@plumile/backoffice-core/types.js';
4
+ import type { BackofficeFilterDrawerState } from '../../../provider/BackofficeListUiStateContext.js';
4
5
  type RuntimeWhere = Record<string, unknown>;
5
6
  type RuntimeSort = string;
6
7
  type Props<RowView> = {
@@ -29,6 +30,7 @@ type Props<RowView> = {
29
30
  virtualize?: boolean;
30
31
  variant?: 'page' | 'embedded';
31
32
  showFilters?: boolean;
33
+ filterDrawerState?: BackofficeFilterDrawerState;
32
34
  };
33
35
  export declare const BackofficeEntityListScaffold: <RowView>(props: Props<RowView>) => JSX.Element | null;
34
36
  export default BackofficeEntityListScaffold;
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeEntityListScaffold.d.ts","sourceRoot":"","sources":["../../../../../src/components/backoffice/scaffolds/BackofficeEntityListScaffold.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AAkBf,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,QAAQ,EACd,MAAM,gDAAgD,CAAC;AAWxD,OAAO,KAAK,EAEV,mBAAmB,EAEnB,wCAAwC,EAEzC,MAAM,mCAAmC,CAAC;AA+H3C,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC5C,KAAK,WAAW,GAAG,MAAM,CAAC;AAE1B,KAAK,KAAK,CAAC,OAAO,IAAI;IACpB,MAAM,EAAE,wCAAwC,CAAC;IACjD,KAAK,EAAE,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IACtD,SAAS,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC,KAAK,IAAI,CAAC;IAC1E,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,IAAI,EAAE,SAAS,OAAO,EAAE,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5B,OAAO,EAAE,SAAS,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,UAAU,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,OAAO,EAClD,OAAO,KAAK,CAAC,OAAO,CAAC,KACpB,GAAG,CAAC,OAAO,GAAG,IAs6BhB,CAAC;AAEF,eAAe,4BAA4B,CAAC"}
1
+ {"version":3,"file":"BackofficeEntityListScaffold.d.ts","sourceRoot":"","sources":["../../../../../src/components/backoffice/scaffolds/BackofficeEntityListScaffold.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AAmBf,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,QAAQ,EACd,MAAM,gDAAgD,CAAC;AAWxD,OAAO,KAAK,EAEV,mBAAmB,EAEnB,wCAAwC,EAEzC,MAAM,mCAAmC,CAAC;AAc3C,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mDAAmD,CAAC;AAkIrG,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC5C,KAAK,WAAW,GAAG,MAAM,CAAC;AAE1B,KAAK,KAAK,CAAC,OAAO,IAAI;IACpB,MAAM,EAAE,wCAAwC,CAAC;IACjD,KAAK,EAAE,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IACtD,SAAS,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC,KAAK,IAAI,CAAC;IAC1E,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,IAAI,EAAE,SAAS,OAAO,EAAE,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5B,OAAO,EAAE,SAAS,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,UAAU,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,2BAA2B,CAAC;CACjD,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,OAAO,EAClD,OAAO,KAAK,CAAC,OAAO,CAAC,KACpB,GAAG,CAAC,OAAO,GAAG,IA0jChB,CAAC;AAEF,eAAe,4BAA4B,CAAC"}
@@ -1,5 +1,7 @@
1
1
  export declare const controlsRow: string;
2
2
  export declare const filterInput: string;
3
+ export declare const entityIdListFilter: string;
4
+ export declare const entityIdListTags: string;
3
5
  export declare const embeddedContainer: string;
4
6
  export declare const tableHost: string;
5
7
  export declare const refreshingIndicator: string;
@@ -1 +1 @@
1
- {"version":3,"file":"backofficeEntityListScaffold.css.d.ts","sourceRoot":"","sources":["../../../../../src/components/backoffice/scaffolds/backofficeEntityListScaffold.css.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,QAKtB,CAAC;AAEH,eAAO,MAAM,WAAW,QAMtB,CAAC;AAEH,eAAO,MAAM,iBAAiB,QAI5B,CAAC;AAEH,eAAO,MAAM,SAAS,QAKpB,CAAC;AAEH,eAAO,MAAM,mBAAmB,QAgB9B,CAAC;AAEH,eAAO,MAAM,cAAc,QAIzB,CAAC"}
1
+ {"version":3,"file":"backofficeEntityListScaffold.css.d.ts","sourceRoot":"","sources":["../../../../../src/components/backoffice/scaffolds/backofficeEntityListScaffold.css.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,QAKtB,CAAC;AAEH,eAAO,MAAM,WAAW,QAMtB,CAAC;AAEH,eAAO,MAAM,kBAAkB,QAK7B,CAAC;AAEH,eAAO,MAAM,gBAAgB,QAM3B,CAAC;AAEH,eAAO,MAAM,iBAAiB,QAI5B,CAAC;AAEH,eAAO,MAAM,SAAS,QAKpB,CAAC;AAEH,eAAO,MAAM,mBAAmB,QAgB9B,CAAC;AAEH,eAAO,MAAM,cAAc,QAIzB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TechnicalIdentifierValue.d.ts","sourceRoot":"","sources":["../../../../../src/components/backoffice/technical/TechnicalIdentifierValue.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAQjC,MAAM,MAAM,0BAA0B,GAClC,IAAI,GACJ,MAAM,GACN,OAAO,GACP,aAAa,GACb,UAAU,CAAC;AAEf,eAAO,MAAM,4BAA4B,GACvC,OAAO,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,KACxC,MAAM,GAAG,IASX,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,OAAO,MAAM,EACb,UAAS,0BAAiC,KACzC,MAaF,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC,OAAO,CAAC,EAAE,0BAA0B,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,2CAKtC,6BAA6B,KAAG,GAAG,CAAC,OAAO,GAAG,IAahD,CAAC"}
1
+ {"version":3,"file":"TechnicalIdentifierValue.d.ts","sourceRoot":"","sources":["../../../../../src/components/backoffice/technical/TechnicalIdentifierValue.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAQjC,MAAM,MAAM,0BAA0B,GACpC,IAAI,GAAG,MAAM,GAAG,OAAO,GAAG,aAAa,GAAG,UAAU,CAAC;AAEvD,eAAO,MAAM,4BAA4B,GACvC,OAAO,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,KACxC,MAAM,GAAG,IASX,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,OAAO,MAAM,EACb,UAAS,0BAAiC,KACzC,MAaF,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC,OAAO,CAAC,EAAE,0BAA0B,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,2CAKtC,6BAA6B,KAAG,GAAG,CAAC,OAAO,GAAG,IAahD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"filterHelpers.d.ts","sourceRoot":"","sources":["../../../src/filters/filterHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,wCAAwC,EACzC,MAAM,mCAAmC,CAAC;AAkB3C,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,wCAAwC,EAChD,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,GACvB,oBAAoB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAStD;AAGD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,wCAAwC,EAChD,QAAQ,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,oBAAoB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAqBtD;AAGD,wBAAgB,cAAc,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,MAAM,EAAE,oBAAoB,CAAC,KAAK,CAAC,EACnC,KAAK,EAAE,OAAO,GACb,OAAO,CA8BT"}
1
+ {"version":3,"file":"filterHelpers.d.ts","sourceRoot":"","sources":["../../../src/filters/filterHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,wCAAwC,EACzC,MAAM,mCAAmC,CAAC;AAkB3C,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,wCAAwC,EAChD,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,GACvB,oBAAoB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAStD;AAGD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,wCAAwC,EAChD,QAAQ,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,oBAAoB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAqBtD;AAGD,wBAAgB,cAAc,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,MAAM,EAAE,oBAAoB,CAAC,KAAK,CAAC,EACnC,KAAK,EAAE,OAAO,GACb,OAAO,CA0CT"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuth.ts"],"names":[],"mappings":"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"}
@@ -300,6 +300,7 @@ export declare const backofficeReactI18nResources: {
300
300
  changeFilterValue: string;
301
301
  clearFilter: string;
302
302
  filterBy: string;
303
+ removeFilterValue: string;
303
304
  };
304
305
  all: string;
305
306
  boolean: {
@@ -317,6 +318,8 @@ export declare const backofficeReactI18nResources: {
317
318
  sections: {
318
319
  default: string;
319
320
  };
321
+ selectedEntities_one: string;
322
+ selectedEntities_other: string;
320
323
  trigger: string;
321
324
  triggerWithCount_one: string;
322
325
  triggerWithCount_other: string;
@@ -775,6 +778,7 @@ export declare const backofficeReactI18nResources: {
775
778
  changeFilterValue: string;
776
779
  clearFilter: string;
777
780
  filterBy: string;
781
+ removeFilterValue: string;
778
782
  };
779
783
  all: string;
780
784
  boolean: {
@@ -792,6 +796,9 @@ export declare const backofficeReactI18nResources: {
792
796
  sections: {
793
797
  default: string;
794
798
  };
799
+ selectedEntities_one: string;
800
+ selectedEntities_many: string;
801
+ selectedEntities_other: string;
795
802
  trigger: string;
796
803
  triggerWithCount_one: string;
797
804
  triggerWithCount_many: string;
@@ -1 +1 @@
1
- {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../src/i18n/resources.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,SAAS,CAAC;AAI1D,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG/B,CAAC;AAEX,MAAM,MAAM,4BAA4B,GAAG,OAAO,4BAA4B,CAAC;AAsB/E,wBAAgB,gCAAgC,CAC9C,YAAY,GAAE,QAAa,GAC1B,QAAQ,CAsBV"}
1
+ {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../src/i18n/resources.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,SAAS,CAAC;AAI1D,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG/B,CAAC;AAEX,MAAM,MAAM,4BAA4B,GAAG,OAAO,4BAA4B,CAAC;AAsB/E,wBAAgB,gCAAgC,CAC9C,YAAY,GAAE,QAAa,GAC1B,QAAQ,CAsBV"}
@@ -1 +1 @@
1
- {"version":3,"file":"uploads.d.ts","sourceRoot":"","sources":["../../../src/modules/uploads.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,2BAA2B,CAAC,SAAS,IAAI;IACnD,IAAI,EAAE,IAAI,CAAC;IACX,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,IAAI,CAAC;IACX,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,0BAA0B,CAAC,SAAS,IAC5C,2BAA2B,CAAC,SAAS,CAAC,GACtC,2BAA2B,CAAC;AAEhC,MAAM,MAAM,8BAA8B,CAAC,WAAW,EAAE,SAAS,IAAI;IACnE,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;IACvB,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IACpD,cAAc,EAAE,CAAC,KAAK,EAAE;QACtB,IAAI,EAAE,IAAI,CAAC;QACX,UAAU,EAAE,WAAW,CAAC;QACxB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;QAC/B,QAAQ,EAAE,MAAM,CAAC;KAClB,KAAK,SAAS,CAAC;IAChB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,0BAA0B,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IACrE,uBAAuB,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,KAAK,MAAM,GAAG,SAAS,CAAC;IAC1E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC;CAC7C,CAAC;AA+BF,eAAO,MAAM,uBAAuB,GAAU,WAAW,EAAE,SAAS,EAClE,SAAS,8BAA8B,CAAC,WAAW,EAAE,SAAS,CAAC,KAC9D,OAAO,CAAC,0BAA0B,CAAC,SAAS,CAAC,EAAE,CAyCjD,CAAC"}
1
+ {"version":3,"file":"uploads.d.ts","sourceRoot":"","sources":["../../../src/modules/uploads.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,2BAA2B,CAAC,SAAS,IAAI;IACnD,IAAI,EAAE,IAAI,CAAC;IACX,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,IAAI,CAAC;IACX,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,0BAA0B,CAAC,SAAS,IAC9C,2BAA2B,CAAC,SAAS,CAAC,GAAG,2BAA2B,CAAC;AAEvE,MAAM,MAAM,8BAA8B,CAAC,WAAW,EAAE,SAAS,IAAI;IACnE,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;IACvB,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IACpD,cAAc,EAAE,CAAC,KAAK,EAAE;QACtB,IAAI,EAAE,IAAI,CAAC;QACX,UAAU,EAAE,WAAW,CAAC;QACxB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;QAC/B,QAAQ,EAAE,MAAM,CAAC;KAClB,KAAK,SAAS,CAAC;IAChB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,0BAA0B,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IACrE,uBAAuB,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,KAAK,MAAM,GAAG,SAAS,CAAC;IAC1E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC;CAC7C,CAAC;AA+BF,eAAO,MAAM,uBAAuB,GAAU,WAAW,EAAE,SAAS,EAClE,SAAS,8BAA8B,CAAC,WAAW,EAAE,SAAS,CAAC,KAC9D,OAAO,CAAC,0BAA0B,CAAC,SAAS,CAAC,EAAE,CAyCjD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"webauthn.d.ts","sourceRoot":"","sources":["../../../src/modules/webauthn.ts"],"names":[],"mappings":"AAGA,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAU5D;AAKD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAkB5D;AAED,MAAM,MAAM,6BAA6B,GACrC,WAAW,GACX,iBAAiB,GACjB,cAAc,GACd,QAAQ,CAAC;AAKb,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,OAAO,GACb,6BAA6B,CAiB/B;AAKD,wBAAgB,cAAc,CAAC,iBAAiB,EAAE,WAAW,GAAG,MAAM,CAMrE"}
1
+ {"version":3,"file":"webauthn.d.ts","sourceRoot":"","sources":["../../../src/modules/webauthn.ts"],"names":[],"mappings":"AAGA,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAU5D;AAKD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAkB5D;AAED,MAAM,MAAM,6BAA6B,GACvC,WAAW,GAAG,iBAAiB,GAAG,cAAc,GAAG,QAAQ,CAAC;AAK9D,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,OAAO,GACb,6BAA6B,CAiB/B;AAKD,wBAAgB,cAAc,CAAC,iBAAiB,EAAE,WAAW,GAAG,MAAM,CAMrE"}
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeEntityListDataPage.d.ts","sourceRoot":"","sources":["../../../src/pages/BackofficeEntityListDataPage.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EAMT,MAAM,OAAO,CAAC;AAOf,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AAczF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,QAAQ,EAAE,+BAA+B,CAAC;CAC3C,CAAC;AAgJF,eAAO,MAAM,4BAA4B,GAAI,eAE1C,iCAAiC,KAAG,GAAG,CAAC,OAAO,GAAG,IA8GpD,CAAC;AAEF,eAAe,4BAA4B,CAAC"}
1
+ {"version":3,"file":"BackofficeEntityListDataPage.d.ts","sourceRoot":"","sources":["../../../src/pages/BackofficeEntityListDataPage.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EAMT,MAAM,OAAO,CAAC;AAQf,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AAczF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,QAAQ,EAAE,+BAA+B,CAAC;CAC3C,CAAC;AA8JF,eAAO,MAAM,4BAA4B,GAAI,eAE1C,iCAAiC,KAAG,GAAG,CAAC,OAAO,GAAG,IAgHpD,CAAC;AAEF,eAAe,4BAA4B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeEntityListPage.d.ts","sourceRoot":"","sources":["../../../src/pages/BackofficeEntityListPage.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,GAAG,EACR,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EACV,4BAA4B,EAC5B,iCAAiC,EACjC,wCAAwC,EAEzC,MAAM,mCAAmC,CAAC;AAgC3C,MAAM,MAAM,6BAA6B,GAAG;IAC1C,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,cAAc,EAAE,4BAA4B,CAAC;IAC7C,MAAM,EAAE,wCAAwC,CAAC;IACjD,QAAQ,EAAE,iCAAiC,CAAC;CAC7C,CAAC;AAmSF,eAAO,MAAM,wBAAwB,GAAI,uCAItC,6BAA6B,KAAG,GAAG,CAAC,OAAO,GAAG,IAYhD,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
1
+ {"version":3,"file":"BackofficeEntityListPage.d.ts","sourceRoot":"","sources":["../../../src/pages/BackofficeEntityListPage.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,GAAG,EACR,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EACV,4BAA4B,EAC5B,iCAAiC,EACjC,wCAAwC,EAEzC,MAAM,mCAAmC,CAAC;AAoC3C,MAAM,MAAM,6BAA6B,GAAG;IAC1C,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,cAAc,EAAE,4BAA4B,CAAC;IAC7C,MAAM,EAAE,wCAAwC,CAAC;IACjD,QAAQ,EAAE,iCAAiC,CAAC;CAC7C,CAAC;AA0SF,eAAO,MAAM,wBAAwB,GAAI,uCAItC,6BAA6B,KAAG,GAAG,CAAC,OAAO,GAAG,IAYhD,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { type JSX } from 'react';
2
2
  import { type DataTableColumn, type GetRowId } from '@plumile/ui/components/data-table/DataTable.js';
3
3
  import type { useBackofficeListUrlState } from '../hooks/useBackofficeListUrlState.js';
4
+ import type { BackofficeFilterDrawerState } from '../provider/BackofficeListUiStateContext.js';
4
5
  import type { ConnectionListConfig } from './BackofficeEntityListPage.helpers.js';
5
6
  export type BackofficeEntityListRouteContextValue = {
6
7
  config: ConnectionListConfig;
@@ -12,6 +13,7 @@ export type BackofficeEntityListRouteContextValue = {
12
13
  getRowId: GetRowId<unknown>;
13
14
  countFetchKey: number;
14
15
  bumpCountFetchKey: () => void;
16
+ filterDrawerState: BackofficeFilterDrawerState;
15
17
  registerRefresh: (refresh: (() => void) | null) => void;
16
18
  };
17
19
  export declare const BackofficeEntityListRouteProvider: ({ children, value, }: {
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeEntityListRouteContext.d.ts","sourceRoot":"","sources":["../../../src/pages/BackofficeEntityListRouteContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,QAAQ,EACd,MAAM,gDAAgD,CAAC;AAExD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AACvF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAElF,MAAM,MAAM,qCAAqC,GAAG;IAClD,MAAM,EAAE,oBAAoB,CAAC;IAC7B,KAAK,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,OAAO,CAAC,CAAC;IAC7D,SAAS,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,WAAW,CAAC,CAAC;IACrE,aAAa,EAAE,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;IACvC,OAAO,EAAE,SAAS,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,eAAe,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;CACzD,CAAC;AAKF,eAAO,MAAM,iCAAiC,GAAI,sBAG/C;IACD,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,KAAK,EAAE,qCAAqC,CAAC;CAC9C,KAAG,GAAG,CAAC,OAMP,CAAC;AAEF,eAAO,MAAM,mCAAmC,QAC1C,qCAMH,CAAC"}
1
+ {"version":3,"file":"BackofficeEntityListRouteContext.d.ts","sourceRoot":"","sources":["../../../src/pages/BackofficeEntityListRouteContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,QAAQ,EACd,MAAM,gDAAgD,CAAC;AAExD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AACvF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,6CAA6C,CAAC;AAC/F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAElF,MAAM,MAAM,qCAAqC,GAAG;IAClD,MAAM,EAAE,oBAAoB,CAAC;IAC7B,KAAK,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,OAAO,CAAC,CAAC;IAC7D,SAAS,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,WAAW,CAAC,CAAC;IACrE,aAAa,EAAE,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;IACvC,OAAO,EAAE,SAAS,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,iBAAiB,EAAE,2BAA2B,CAAC;IAC/C,eAAe,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;CACzD,CAAC;AAKF,eAAO,MAAM,iCAAiC,GAAI,sBAG/C;IACD,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,KAAK,EAAE,qCAAqC,CAAC;CAC9C,KAAG,GAAG,CAAC,OAMP,CAAC;AAEF,eAAO,MAAM,mCAAmC,QAC1C,qCAMH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficePasswordResetRequestPage.d.ts","sourceRoot":"","sources":["../../../src/pages/BackofficePasswordResetRequestPage.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAyB9C,eAAO,MAAM,kCAAkC,QAAO,GAAG,CAAC,OAuEzD,CAAC;AAEF,eAAe,kCAAkC,CAAC"}
1
+ {"version":3,"file":"BackofficePasswordResetRequestPage.d.ts","sourceRoot":"","sources":["../../../src/pages/BackofficePasswordResetRequestPage.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAuB9C,eAAO,MAAM,kCAAkC,QAAO,GAAG,CAAC,OAuEzD,CAAC;AAEF,eAAe,kCAAkC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeVerifyEmailPage.d.ts","sourceRoot":"","sources":["../../../src/pages/BackofficeVerifyEmailPage.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AA6B1D,eAAO,MAAM,yBAAyB,QAAO,GAAG,CAAC,OA8EhD,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
1
+ {"version":3,"file":"BackofficeVerifyEmailPage.d.ts","sourceRoot":"","sources":["../../../src/pages/BackofficeVerifyEmailPage.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AA0B1D,eAAO,MAAM,yBAAyB,QAAO,GAAG,CAAC,OA8EhD,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pageResolution.d.ts","sourceRoot":"","sources":["../../../../src/pages/detail/pageResolution.ts"],"names":[],"mappings":"AAAA,KAAK,cAAc,CAAC,SAAS,IAAI;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC;CAC5C,CAAC;AAEF,KAAK,mBAAmB,CACtB,SAAS,EACT,QAAQ,SAAS,cAAc,CAAC,SAAS,CAAC,EAC1C,OAAO,SAAS,cAAc,CAAC,SAAS,CAAC,GAAG,QAAQ,IAClD;IACF,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,IAAI,IAAI;IACtC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;IACvB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAMF,eAAO,MAAM,yBAAyB,GACpC,SAAS,EACT,QAAQ,SAAS,cAAc,CAAC,SAAS,CAAC,EAC1C,OAAO,SAAS,cAAc,CAAC,SAAS,CAAC,GAAG,QAAQ,EAEpD,OAAO,mBAAmB,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,KACvD,mBAAmB,CAAC,QAAQ,GAAG,OAAO,CAmDxC,CAAC"}
1
+ {"version":3,"file":"pageResolution.d.ts","sourceRoot":"","sources":["../../../../src/pages/detail/pageResolution.ts"],"names":[],"mappings":"AAAA,KAAK,cAAc,CAAC,SAAS,IAAI;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC;CAC5C,CAAC;AAEF,KAAK,mBAAmB,CACtB,SAAS,EACT,QAAQ,SAAS,cAAc,CAAC,SAAS,CAAC,EAC1C,OAAO,SAAS,cAAc,CAAC,SAAS,CAAC,GAAG,QAAQ,IAClD;IACF,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,IAAI,IAAI;IACtC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;IACvB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAMF,eAAO,MAAM,yBAAyB,GACpC,SAAS,EACT,QAAQ,SAAS,cAAc,CAAC,SAAS,CAAC,EAC1C,OAAO,SAAS,cAAc,CAAC,SAAS,CAAC,GAAG,QAAQ,EAEpD,OAAO,mBAAmB,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,KACvD,mBAAmB,CAAC,QAAQ,GAAG,OAAO,CAkDxC,CAAC"}