@payloadcms/next 3.69.0-internal.424436e → 3.69.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +19 -24
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
- package/dist/elements/Nav/index.client.d.ts.map +1 -1
- package/dist/elements/Nav/index.client.js +15 -21
- package/dist/elements/Nav/index.client.js.map +1 -1
- package/dist/prod/styles.css +1 -1
- package/dist/routes/graphql/playground.d.ts.map +1 -1
- package/dist/routes/graphql/playground.js +6 -1
- package/dist/routes/graphql/playground.js.map +1 -1
- package/dist/routes/rest/index.d.ts.map +1 -1
- package/dist/routes/rest/index.js +5 -1
- package/dist/routes/rest/index.js.map +1 -1
- package/dist/utilities/handleAuthRedirect.d.ts.map +1 -1
- package/dist/utilities/handleAuthRedirect.js +1 -2
- package/dist/utilities/handleAuthRedirect.js.map +1 -1
- package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
- package/dist/utilities/handleServerFunctions.js +4 -0
- package/dist/utilities/handleServerFunctions.js.map +1 -1
- package/dist/views/API/index.client.d.ts.map +1 -1
- package/dist/views/API/index.client.js +7 -5
- package/dist/views/API/index.client.js.map +1 -1
- package/dist/views/Account/ResetPreferences/index.d.ts +0 -1
- package/dist/views/Account/ResetPreferences/index.d.ts.map +1 -1
- package/dist/views/Account/ResetPreferences/index.js +32 -25
- package/dist/views/Account/ResetPreferences/index.js.map +1 -1
- package/dist/views/Account/Settings/index.d.ts.map +1 -1
- package/dist/views/Account/Settings/index.js +0 -3
- package/dist/views/Account/Settings/index.js.map +1 -1
- package/dist/views/Account/index.d.ts.map +1 -1
- package/dist/views/Account/index.js +5 -1
- package/dist/views/Account/index.js.map +1 -1
- package/dist/views/BrowseByFolder/buildView.d.ts.map +1 -1
- package/dist/views/BrowseByFolder/buildView.js +1 -2
- package/dist/views/BrowseByFolder/buildView.js.map +1 -1
- package/dist/views/CollectionFolders/buildView.d.ts.map +1 -1
- package/dist/views/CollectionFolders/buildView.js +1 -2
- package/dist/views/CollectionFolders/buildView.js.map +1 -1
- package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
- package/dist/views/CreateFirstUser/index.client.js +4 -6
- package/dist/views/CreateFirstUser/index.client.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts +19 -0
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +147 -0
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts +21 -0
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +431 -0
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/index.d.ts +5 -0
- package/dist/views/Dashboard/Default/ModularDashboard/index.d.ts.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/index.js +87 -0
- package/dist/views/Dashboard/Default/ModularDashboard/index.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.d.ts +14 -0
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.d.ts.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js +99 -0
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.d.ts +12 -0
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.d.ts.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js +58 -0
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.d.ts +20 -0
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.d.ts.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +72 -0
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts +20 -0
- package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js +158 -0
- package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/utils/collisionDetection.d.ts +7 -0
- package/dist/views/Dashboard/Default/ModularDashboard/utils/collisionDetection.d.ts.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/utils/collisionDetection.js +38 -0
- package/dist/views/Dashboard/Default/ModularDashboard/utils/collisionDetection.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/utils/sensors.d.ts +2 -0
- package/dist/views/Dashboard/Default/ModularDashboard/utils/sensors.d.ts.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/utils/sensors.js +264 -0
- package/dist/views/Dashboard/Default/ModularDashboard/utils/sensors.js.map +1 -0
- package/dist/views/Dashboard/Default/index.d.ts +0 -1
- package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/index.js +35 -149
- package/dist/views/Dashboard/Default/index.js.map +1 -1
- package/dist/views/Dashboard/index.d.ts.map +1 -1
- package/dist/views/Dashboard/index.js +3 -52
- package/dist/views/Dashboard/index.js.map +1 -1
- package/dist/views/Document/getVersions.d.ts.map +1 -1
- package/dist/views/Document/getVersions.js +2 -1
- package/dist/views/Document/getVersions.js.map +1 -1
- package/dist/views/Document/index.d.ts.map +1 -1
- package/dist/views/Document/index.js +5 -8
- package/dist/views/Document/index.js.map +1 -1
- package/dist/views/ForgotPassword/index.d.ts.map +1 -1
- package/dist/views/ForgotPassword/index.js +3 -6
- package/dist/views/ForgotPassword/index.js.map +1 -1
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +1 -2
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
- package/dist/views/Login/LoginForm/index.js +18 -22
- package/dist/views/Login/LoginForm/index.js.map +1 -1
- package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
- package/dist/views/Logout/LogoutClient.js +36 -40
- package/dist/views/Logout/LogoutClient.js.map +1 -1
- package/dist/views/NotFound/index.d.ts.map +1 -1
- package/dist/views/NotFound/index.js +1 -1
- package/dist/views/NotFound/index.js.map +1 -1
- package/dist/views/ResetPassword/ResetPasswordForm/index.d.ts.map +1 -1
- package/dist/views/ResetPassword/ResetPasswordForm/index.js +17 -22
- package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -1
- package/dist/views/ResetPassword/index.d.ts.map +1 -1
- package/dist/views/ResetPassword/index.js +2 -4
- package/dist/views/ResetPassword/index.js.map +1 -1
- package/dist/views/Root/getRouteData.d.ts.map +1 -1
- package/dist/views/Root/getRouteData.js.map +1 -1
- package/dist/views/Root/index.d.ts.map +1 -1
- package/dist/views/Root/index.js +1 -2
- package/dist/views/Root/index.js.map +1 -1
- package/dist/views/Unauthorized/index.d.ts.map +1 -1
- package/dist/views/Unauthorized/index.js +2 -4
- package/dist/views/Unauthorized/index.js.map +1 -1
- package/dist/views/Verify/index.js +1 -2
- package/dist/views/Verify/index.js.map +1 -1
- package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
- package/dist/views/Version/Default/SetStepNav.js +7 -14
- package/dist/views/Version/Default/SetStepNav.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +1 -1
- package/dist/views/Version/Restore/index.js +7 -6
- package/dist/views/Version/Restore/index.js.map +1 -1
- package/dist/views/Versions/cells/CreatedAt/index.d.ts.map +1 -1
- package/dist/views/Versions/cells/CreatedAt/index.js +3 -6
- package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
- package/dist/views/Versions/index.d.ts.map +1 -1
- package/dist/views/Versions/index.js +3 -4
- package/dist/views/Versions/index.js.map +1 -1
- package/package.json +8 -6
- package/dist/utilities/getVisibleEntities.d.ts +0 -5
- package/dist/utilities/getVisibleEntities.d.ts.map +0 -1
- package/dist/utilities/getVisibleEntities.js +0 -26
- package/dist/utilities/getVisibleEntities.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildView.js","names":["DefaultBrowseByFolderView","HydrateAuthProvider","RenderServerComponent","getFolderResultsComponentAndData","upsertPreferences","formatAdminURL","redirect","React","buildBrowseByFolderView","args","browseByFolderSlugs","browseByFolderSlugsFromArgs","disableBulkDelete","disableBulkEdit","enableRowSelections","folderID","initPageResult","isInDrawer","params","query","queryFromArgs","searchParams","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","folders","browseByFolder","Error","foldersSlug","slug","allowReadCollectionSlugs","filter","collectionSlug","collections","read","includes","relationTo","JSON","parse","undefined","collectionsToDisplay","Array","isArray","routes","admin","adminRoute","browseByFolderPreferences","key","value","sort","sortPreference","viewPreference","breadcrumbs","documents","folderAssignedCollections","FolderResultsComponent","subfolders","displayAs","resolvedFolderID","length","id","path","serverURL","serverProps","allAvailableCollectionSlugs","availableActiveCollectionFolderSlugs","allowCreateCollectionSlugs","create","View","_jsxs","_Fragment","_jsx","clientProps","activeCollectionFolderSlugs","allCollectionFolderSlugs","baseFolderPath","folderFieldName","fieldName","Fallback","importMap"],"sources":["../../../src/views/BrowseByFolder/buildView.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n BuildCollectionFolderViewResult,\n FolderListViewClientProps,\n FolderListViewServerPropsOnly,\n FolderSortKeys,\n ListQuery,\n} from 'payload'\n\nimport { DefaultBrowseByFolderView, HydrateAuthProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { getFolderResultsComponentAndData, upsertPreferences } from '@payloadcms/ui/rsc'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport { redirect } from 'next/navigation.js'\nimport React from 'react'\n\nexport type BuildFolderViewArgs = {\n customCellProps?: Record<string, any>\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n enableRowSelections: boolean\n folderID?: number | string\n isInDrawer?: boolean\n overrideEntityVisibility?: boolean\n query: ListQuery\n} & AdminViewServerProps\n\nexport const buildBrowseByFolderView = async (\n args: BuildFolderViewArgs,\n): Promise<BuildCollectionFolderViewResult> => {\n const {\n browseByFolderSlugs: browseByFolderSlugsFromArgs = [],\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n folderID,\n initPageResult,\n isInDrawer,\n params,\n query: queryFromArgs,\n searchParams,\n } = args\n\n const {\n locale: fullLocale,\n permissions,\n req: {\n i18n,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n if (config.folders === false || config.folders.browseByFolder === false) {\n throw new Error('not-found')\n }\n\n const foldersSlug = config.folders.slug\n\n /**\n * All visiible folder enabled collection slugs that the user has read permissions for.\n */\n const allowReadCollectionSlugs = browseByFolderSlugsFromArgs.filter(\n (collectionSlug) =>\n permissions?.collections?.[collectionSlug]?.read &&\n visibleEntities.collections.includes(collectionSlug),\n )\n\n const query =\n queryFromArgs ||\n ((queryFromReq\n ? {\n ...queryFromReq,\n relationTo:\n typeof queryFromReq?.relationTo === 'string'\n ? JSON.parse(queryFromReq.relationTo)\n : undefined,\n }\n : {}) as ListQuery)\n\n /**\n * If a folderID is provided and the relationTo query param exists,\n * we filter the collection slugs to only those that are allowed to be read.\n *\n * If no folderID is provided, only folders should be active and displayed (the root view).\n */\n let collectionsToDisplay: string[] = []\n if (folderID && Array.isArray(query?.relationTo)) {\n collectionsToDisplay = query.relationTo.filter(\n (slug) => allowReadCollectionSlugs.includes(slug) || slug === foldersSlug,\n )\n } else if (folderID) {\n collectionsToDisplay = [...allowReadCollectionSlugs, foldersSlug]\n } else {\n collectionsToDisplay = [foldersSlug]\n }\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n /**\n * @todo: find a pattern to avoid setting preferences on hard navigation, i.e. direct links, page refresh, etc.\n * This will ensure that prefs are only updated when explicitly set by the user\n * This could potentially be done by injecting a `sessionID` into the params and comparing it against a session cookie\n */\n const browseByFolderPreferences = await upsertPreferences<{\n sort?: FolderSortKeys\n viewPreference?: 'grid' | 'list'\n }>({\n key: 'browse-by-folder',\n req: initPageResult.req,\n value: {\n sort: query?.sort as FolderSortKeys,\n },\n })\n\n const sortPreference: FolderSortKeys = browseByFolderPreferences?.sort || 'name'\n const viewPreference = browseByFolderPreferences?.viewPreference || 'grid'\n\n const { breadcrumbs, documents, folderAssignedCollections, FolderResultsComponent, subfolders } =\n await getFolderResultsComponentAndData({\n browseByFolder: true,\n collectionsToDisplay,\n displayAs: viewPreference,\n folderAssignedCollections: collectionsToDisplay.filter((slug) => slug !== foldersSlug) || [],\n folderID,\n req: initPageResult.req,\n sort: sortPreference,\n })\n\n const resolvedFolderID = breadcrumbs[breadcrumbs.length - 1]?.id\n\n if (\n !isInDrawer &&\n ((resolvedFolderID && folderID && folderID !== resolvedFolderID) ||\n (folderID && !resolvedFolderID))\n ) {\n redirect(\n formatAdminURL({\n adminRoute,\n path: config.admin.routes.browseByFolder,\n serverURL: config.serverURL,\n }),\n )\n }\n\n const serverProps: Omit<FolderListViewServerPropsOnly, 'collectionConfig' | 'listPreferences'> = {\n documents,\n i18n,\n locale: fullLocale,\n params,\n payload,\n permissions,\n searchParams,\n subfolders,\n user,\n }\n\n // const folderViewSlots = renderFolderViewSlots({\n // clientProps: {\n // },\n // description: staticDescription,\n // payload,\n // serverProps,\n // })\n\n // Filter down allCollectionFolderSlugs by the ones the current folder is assingned to\n const allAvailableCollectionSlugs =\n folderID && Array.isArray(folderAssignedCollections) && folderAssignedCollections.length\n ? allowReadCollectionSlugs.filter((slug) => folderAssignedCollections.includes(slug))\n : allowReadCollectionSlugs\n\n // Filter down activeCollectionFolderSlugs by the ones the current folder is assingned to\n const availableActiveCollectionFolderSlugs = collectionsToDisplay.filter((slug) => {\n if (slug === foldersSlug) {\n return permissions?.collections?.[foldersSlug]?.read\n } else {\n return !folderAssignedCollections || folderAssignedCollections.includes(slug)\n }\n })\n\n // Documents cannot be created without a parent folder in this view\n const allowCreateCollectionSlugs = (\n resolvedFolderID ? [foldersSlug, ...allAvailableCollectionSlugs] : [foldersSlug]\n ).filter((collectionSlug) => {\n if (collectionSlug === foldersSlug) {\n return permissions?.collections?.[foldersSlug]?.create\n }\n return (\n permissions?.collections?.[collectionSlug]?.create &&\n visibleEntities.collections.includes(collectionSlug)\n )\n })\n\n return {\n View: (\n <>\n <HydrateAuthProvider permissions={permissions} />\n {RenderServerComponent({\n clientProps: {\n // ...folderViewSlots,\n activeCollectionFolderSlugs: availableActiveCollectionFolderSlugs,\n allCollectionFolderSlugs: allAvailableCollectionSlugs,\n allowCreateCollectionSlugs,\n baseFolderPath: `/browse-by-folder`,\n breadcrumbs,\n disableBulkDelete,\n disableBulkEdit,\n documents,\n enableRowSelections,\n folderAssignedCollections,\n folderFieldName: config.folders.fieldName,\n folderID: resolvedFolderID || null,\n FolderResultsComponent,\n sort: sortPreference,\n subfolders,\n viewPreference,\n } satisfies FolderListViewClientProps,\n // Component:config.folders?.components?.views?.BrowseByFolders?.Component,\n Fallback: DefaultBrowseByFolderView,\n importMap: payload.importMap,\n serverProps,\n })}\n </>\n ),\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"buildView.js","names":["DefaultBrowseByFolderView","HydrateAuthProvider","RenderServerComponent","getFolderResultsComponentAndData","upsertPreferences","formatAdminURL","redirect","React","buildBrowseByFolderView","args","browseByFolderSlugs","browseByFolderSlugsFromArgs","disableBulkDelete","disableBulkEdit","enableRowSelections","folderID","initPageResult","isInDrawer","params","query","queryFromArgs","searchParams","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","folders","browseByFolder","Error","foldersSlug","slug","allowReadCollectionSlugs","filter","collectionSlug","collections","read","includes","relationTo","JSON","parse","undefined","collectionsToDisplay","Array","isArray","routes","admin","adminRoute","browseByFolderPreferences","key","value","sort","sortPreference","viewPreference","breadcrumbs","documents","folderAssignedCollections","FolderResultsComponent","subfolders","displayAs","resolvedFolderID","length","id","path","serverProps","allAvailableCollectionSlugs","availableActiveCollectionFolderSlugs","allowCreateCollectionSlugs","create","View","_jsxs","_Fragment","_jsx","clientProps","activeCollectionFolderSlugs","allCollectionFolderSlugs","baseFolderPath","folderFieldName","fieldName","Fallback","importMap"],"sources":["../../../src/views/BrowseByFolder/buildView.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n BuildCollectionFolderViewResult,\n FolderListViewClientProps,\n FolderListViewServerPropsOnly,\n FolderSortKeys,\n ListQuery,\n} from 'payload'\n\nimport { DefaultBrowseByFolderView, HydrateAuthProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { getFolderResultsComponentAndData, upsertPreferences } from '@payloadcms/ui/rsc'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport { redirect } from 'next/navigation.js'\nimport React from 'react'\n\nexport type BuildFolderViewArgs = {\n customCellProps?: Record<string, any>\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n enableRowSelections: boolean\n folderID?: number | string\n isInDrawer?: boolean\n overrideEntityVisibility?: boolean\n query: ListQuery\n} & AdminViewServerProps\n\nexport const buildBrowseByFolderView = async (\n args: BuildFolderViewArgs,\n): Promise<BuildCollectionFolderViewResult> => {\n const {\n browseByFolderSlugs: browseByFolderSlugsFromArgs = [],\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n folderID,\n initPageResult,\n isInDrawer,\n params,\n query: queryFromArgs,\n searchParams,\n } = args\n\n const {\n locale: fullLocale,\n permissions,\n req: {\n i18n,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n if (config.folders === false || config.folders.browseByFolder === false) {\n throw new Error('not-found')\n }\n\n const foldersSlug = config.folders.slug\n\n /**\n * All visiible folder enabled collection slugs that the user has read permissions for.\n */\n const allowReadCollectionSlugs = browseByFolderSlugsFromArgs.filter(\n (collectionSlug) =>\n permissions?.collections?.[collectionSlug]?.read &&\n visibleEntities.collections.includes(collectionSlug),\n )\n\n const query =\n queryFromArgs ||\n ((queryFromReq\n ? {\n ...queryFromReq,\n relationTo:\n typeof queryFromReq?.relationTo === 'string'\n ? JSON.parse(queryFromReq.relationTo)\n : undefined,\n }\n : {}) as ListQuery)\n\n /**\n * If a folderID is provided and the relationTo query param exists,\n * we filter the collection slugs to only those that are allowed to be read.\n *\n * If no folderID is provided, only folders should be active and displayed (the root view).\n */\n let collectionsToDisplay: string[] = []\n if (folderID && Array.isArray(query?.relationTo)) {\n collectionsToDisplay = query.relationTo.filter(\n (slug) => allowReadCollectionSlugs.includes(slug) || slug === foldersSlug,\n )\n } else if (folderID) {\n collectionsToDisplay = [...allowReadCollectionSlugs, foldersSlug]\n } else {\n collectionsToDisplay = [foldersSlug]\n }\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n /**\n * @todo: find a pattern to avoid setting preferences on hard navigation, i.e. direct links, page refresh, etc.\n * This will ensure that prefs are only updated when explicitly set by the user\n * This could potentially be done by injecting a `sessionID` into the params and comparing it against a session cookie\n */\n const browseByFolderPreferences = await upsertPreferences<{\n sort?: FolderSortKeys\n viewPreference?: 'grid' | 'list'\n }>({\n key: 'browse-by-folder',\n req: initPageResult.req,\n value: {\n sort: query?.sort as FolderSortKeys,\n },\n })\n\n const sortPreference: FolderSortKeys = browseByFolderPreferences?.sort || 'name'\n const viewPreference = browseByFolderPreferences?.viewPreference || 'grid'\n\n const { breadcrumbs, documents, folderAssignedCollections, FolderResultsComponent, subfolders } =\n await getFolderResultsComponentAndData({\n browseByFolder: true,\n collectionsToDisplay,\n displayAs: viewPreference,\n folderAssignedCollections: collectionsToDisplay.filter((slug) => slug !== foldersSlug) || [],\n folderID,\n req: initPageResult.req,\n sort: sortPreference,\n })\n\n const resolvedFolderID = breadcrumbs[breadcrumbs.length - 1]?.id\n\n if (\n !isInDrawer &&\n ((resolvedFolderID && folderID && folderID !== resolvedFolderID) ||\n (folderID && !resolvedFolderID))\n ) {\n redirect(\n formatAdminURL({\n adminRoute,\n path: config.admin.routes.browseByFolder,\n }),\n )\n }\n\n const serverProps: Omit<FolderListViewServerPropsOnly, 'collectionConfig' | 'listPreferences'> = {\n documents,\n i18n,\n locale: fullLocale,\n params,\n payload,\n permissions,\n searchParams,\n subfolders,\n user,\n }\n\n // const folderViewSlots = renderFolderViewSlots({\n // clientProps: {\n // },\n // description: staticDescription,\n // payload,\n // serverProps,\n // })\n\n // Filter down allCollectionFolderSlugs by the ones the current folder is assingned to\n const allAvailableCollectionSlugs =\n folderID && Array.isArray(folderAssignedCollections) && folderAssignedCollections.length\n ? allowReadCollectionSlugs.filter((slug) => folderAssignedCollections.includes(slug))\n : allowReadCollectionSlugs\n\n // Filter down activeCollectionFolderSlugs by the ones the current folder is assingned to\n const availableActiveCollectionFolderSlugs = collectionsToDisplay.filter((slug) => {\n if (slug === foldersSlug) {\n return permissions?.collections?.[foldersSlug]?.read\n } else {\n return !folderAssignedCollections || folderAssignedCollections.includes(slug)\n }\n })\n\n // Documents cannot be created without a parent folder in this view\n const allowCreateCollectionSlugs = (\n resolvedFolderID ? [foldersSlug, ...allAvailableCollectionSlugs] : [foldersSlug]\n ).filter((collectionSlug) => {\n if (collectionSlug === foldersSlug) {\n return permissions?.collections?.[foldersSlug]?.create\n }\n return (\n permissions?.collections?.[collectionSlug]?.create &&\n visibleEntities.collections.includes(collectionSlug)\n )\n })\n\n return {\n View: (\n <>\n <HydrateAuthProvider permissions={permissions} />\n {RenderServerComponent({\n clientProps: {\n // ...folderViewSlots,\n activeCollectionFolderSlugs: availableActiveCollectionFolderSlugs,\n allCollectionFolderSlugs: allAvailableCollectionSlugs,\n allowCreateCollectionSlugs,\n baseFolderPath: `/browse-by-folder`,\n breadcrumbs,\n disableBulkDelete,\n disableBulkEdit,\n documents,\n enableRowSelections,\n folderAssignedCollections,\n folderFieldName: config.folders.fieldName,\n folderID: resolvedFolderID || null,\n FolderResultsComponent,\n sort: sortPreference,\n subfolders,\n viewPreference,\n } satisfies FolderListViewClientProps,\n // Component:config.folders?.components?.views?.BrowseByFolders?.Component,\n Fallback: DefaultBrowseByFolderView,\n importMap: payload.importMap,\n serverProps,\n })}\n </>\n ),\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildView.d.ts","sourceRoot":"","sources":["../../../src/views/CollectionFolders/buildView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,+BAA+B,EAI/B,SAAS,EACV,MAAM,SAAS,CAAA;AAWhB,MAAM,MAAM,kCAAkC,GAAG;IAC/C,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,KAAK,EAAE,SAAS,CAAA;CACjB,GAAG,oBAAoB,CAAA;AAExB;;GAEG;AACH,eAAO,MAAM,yBAAyB,SAC9B,kCAAkC,KACvC,OAAO,CAAC,+BAA+B,
|
|
1
|
+
{"version":3,"file":"buildView.d.ts","sourceRoot":"","sources":["../../../src/views/CollectionFolders/buildView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,+BAA+B,EAI/B,SAAS,EACV,MAAM,SAAS,CAAA;AAWhB,MAAM,MAAM,kCAAkC,GAAG;IAC/C,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,KAAK,EAAE,SAAS,CAAA;CACjB,GAAG,oBAAoB,CAAA;AAExB;;GAEG;AACH,eAAO,MAAM,yBAAyB,SAC9B,kCAAkC,KACvC,OAAO,CAAC,+BAA+B,CAiLzC,CAAA"}
|
|
@@ -88,8 +88,7 @@ export const buildCollectionFolderView = async args => {
|
|
|
88
88
|
if (!isInDrawer && (resolvedFolderID && folderID && folderID !== resolvedFolderID || folderID && !resolvedFolderID)) {
|
|
89
89
|
redirect(formatAdminURL({
|
|
90
90
|
adminRoute,
|
|
91
|
-
path: `/collections/${collectionSlug}/${config.folders.slug}
|
|
92
|
-
serverURL: config.serverURL
|
|
91
|
+
path: `/collections/${collectionSlug}/${config.folders.slug}`
|
|
93
92
|
}));
|
|
94
93
|
}
|
|
95
94
|
const serverProps = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildView.js","names":["DefaultCollectionFolderView","HydrateAuthProvider","RenderServerComponent","getFolderResultsComponentAndData","upsertPreferences","formatAdminURL","redirect","React","buildCollectionFolderView","args","disableBulkDelete","disableBulkEdit","enableRowSelections","folderID","initPageResult","isInDrawer","overrideEntityVisibility","params","query","queryFromArgs","searchParams","collectionConfig","slug","collectionSlug","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","folders","Error","collections","read","includes","collectionFolderPreferences","key","value","sort","sortPreference","viewPreference","routes","admin","adminRoute","breadcrumbs","documents","folderAssignedCollections","FolderResultsComponent","subfolders","browseByFolder","collectionsToDisplay","displayAs","resolvedFolderID","length","id","path","serverURL","serverProps","search","View","_jsxs","_Fragment","_jsx","clientProps","allCollectionFolderSlugs","allowCreateCollectionSlugs","create","filter","Boolean","baseFolderPath","folderFieldName","fieldName","Fallback","importMap"],"sources":["../../../src/views/CollectionFolders/buildView.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n BuildCollectionFolderViewResult,\n FolderListViewClientProps,\n FolderListViewServerPropsOnly,\n FolderSortKeys,\n ListQuery,\n} from 'payload'\n\nimport { DefaultCollectionFolderView, HydrateAuthProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { getFolderResultsComponentAndData, upsertPreferences } from '@payloadcms/ui/rsc'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport { redirect } from 'next/navigation.js'\nimport React from 'react'\n\n// import { renderFolderViewSlots } from './renderFolderViewSlots.js'\n\nexport type BuildCollectionFolderViewStateArgs = {\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n enableRowSelections: boolean\n folderID?: number | string\n isInDrawer?: boolean\n overrideEntityVisibility?: boolean\n query: ListQuery\n} & AdminViewServerProps\n\n/**\n * Builds the entire view for collection-folder views on the server\n */\nexport const buildCollectionFolderView = async (\n args: BuildCollectionFolderViewStateArgs,\n): Promise<BuildCollectionFolderViewResult> => {\n const {\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n folderID,\n initPageResult,\n isInDrawer,\n overrideEntityVisibility,\n params,\n query: queryFromArgs,\n searchParams,\n } = args\n\n const {\n collectionConfig,\n collectionConfig: { slug: collectionSlug },\n locale: fullLocale,\n permissions,\n req: {\n i18n,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n if (!config.folders) {\n throw new Error('not-found')\n }\n\n if (\n !permissions?.collections?.[collectionSlug]?.read ||\n !permissions?.collections?.[config.folders.slug].read\n ) {\n throw new Error('not-found')\n }\n\n if (collectionConfig) {\n if (\n (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility) ||\n !config.folders\n ) {\n throw new Error('not-found')\n }\n\n const query = queryFromArgs || queryFromReq\n\n /**\n * @todo: find a pattern to avoid setting preferences on hard navigation, i.e. direct links, page refresh, etc.\n * This will ensure that prefs are only updated when explicitly set by the user\n * This could potentially be done by injecting a `sessionID` into the params and comparing it against a session cookie\n */\n const collectionFolderPreferences = await upsertPreferences<{\n sort?: FolderSortKeys\n viewPreference?: 'grid' | 'list'\n }>({\n key: `${collectionSlug}-collection-folder`,\n req: initPageResult.req,\n value: {\n sort: query?.sort as FolderSortKeys,\n },\n })\n\n const sortPreference: FolderSortKeys = collectionFolderPreferences?.sort || 'name'\n const viewPreference = collectionFolderPreferences?.viewPreference || 'grid'\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n const {\n breadcrumbs,\n documents,\n folderAssignedCollections,\n FolderResultsComponent,\n subfolders,\n } = await getFolderResultsComponentAndData({\n browseByFolder: false,\n collectionsToDisplay: [config.folders.slug, collectionSlug],\n displayAs: viewPreference,\n folderAssignedCollections: [collectionSlug],\n folderID,\n req: initPageResult.req,\n sort: sortPreference,\n })\n\n const resolvedFolderID = breadcrumbs[breadcrumbs.length - 1]?.id\n\n if (\n !isInDrawer &&\n ((resolvedFolderID && folderID && folderID !== resolvedFolderID) ||\n (folderID && !resolvedFolderID))\n ) {\n redirect(\n formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${config.folders.slug}`,\n serverURL: config.serverURL,\n }),\n )\n }\n\n const serverProps: FolderListViewServerPropsOnly = {\n collectionConfig,\n documents,\n i18n,\n locale: fullLocale,\n params,\n payload,\n permissions,\n searchParams,\n subfolders,\n user,\n }\n\n // We could support slots in the folder view in the future\n // const folderViewSlots = renderFolderViewSlots({\n // clientProps: {\n // collectionSlug,\n // hasCreatePermission,\n // newDocumentURL,\n // },\n // collectionConfig,\n // description: typeof collectionConfig.admin.description === 'function'\n // ? collectionConfig.admin.description({ t: i18n.t })\n // : collectionConfig.admin.description,\n // payload,\n // serverProps,\n // })\n\n const search = query?.search as string\n\n return {\n View: (\n <>\n <HydrateAuthProvider permissions={permissions} />\n {RenderServerComponent({\n clientProps: {\n // ...folderViewSlots,\n allCollectionFolderSlugs: [config.folders.slug, collectionSlug],\n allowCreateCollectionSlugs: [\n permissions?.collections?.[config.folders.slug]?.create\n ? config.folders.slug\n : null,\n resolvedFolderID && permissions?.collections?.[collectionSlug]?.create\n ? collectionSlug\n : null,\n ].filter(Boolean),\n baseFolderPath: `/collections/${collectionSlug}/${config.folders.slug}`,\n breadcrumbs,\n collectionSlug,\n disableBulkDelete,\n disableBulkEdit,\n documents,\n enableRowSelections,\n folderAssignedCollections,\n folderFieldName: config.folders.fieldName,\n folderID: resolvedFolderID || null,\n FolderResultsComponent,\n search,\n sort: sortPreference,\n subfolders,\n viewPreference,\n } satisfies FolderListViewClientProps,\n // Component: collectionConfig?.admin?.components?.views?.Folders?.Component,\n Fallback: DefaultCollectionFolderView,\n importMap: payload.importMap,\n serverProps,\n })}\n </>\n ),\n }\n }\n\n throw new Error('not-found')\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"buildView.js","names":["DefaultCollectionFolderView","HydrateAuthProvider","RenderServerComponent","getFolderResultsComponentAndData","upsertPreferences","formatAdminURL","redirect","React","buildCollectionFolderView","args","disableBulkDelete","disableBulkEdit","enableRowSelections","folderID","initPageResult","isInDrawer","overrideEntityVisibility","params","query","queryFromArgs","searchParams","collectionConfig","slug","collectionSlug","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","folders","Error","collections","read","includes","collectionFolderPreferences","key","value","sort","sortPreference","viewPreference","routes","admin","adminRoute","breadcrumbs","documents","folderAssignedCollections","FolderResultsComponent","subfolders","browseByFolder","collectionsToDisplay","displayAs","resolvedFolderID","length","id","path","serverProps","search","View","_jsxs","_Fragment","_jsx","clientProps","allCollectionFolderSlugs","allowCreateCollectionSlugs","create","filter","Boolean","baseFolderPath","folderFieldName","fieldName","Fallback","importMap"],"sources":["../../../src/views/CollectionFolders/buildView.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n BuildCollectionFolderViewResult,\n FolderListViewClientProps,\n FolderListViewServerPropsOnly,\n FolderSortKeys,\n ListQuery,\n} from 'payload'\n\nimport { DefaultCollectionFolderView, HydrateAuthProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { getFolderResultsComponentAndData, upsertPreferences } from '@payloadcms/ui/rsc'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport { redirect } from 'next/navigation.js'\nimport React from 'react'\n\n// import { renderFolderViewSlots } from './renderFolderViewSlots.js'\n\nexport type BuildCollectionFolderViewStateArgs = {\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n enableRowSelections: boolean\n folderID?: number | string\n isInDrawer?: boolean\n overrideEntityVisibility?: boolean\n query: ListQuery\n} & AdminViewServerProps\n\n/**\n * Builds the entire view for collection-folder views on the server\n */\nexport const buildCollectionFolderView = async (\n args: BuildCollectionFolderViewStateArgs,\n): Promise<BuildCollectionFolderViewResult> => {\n const {\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n folderID,\n initPageResult,\n isInDrawer,\n overrideEntityVisibility,\n params,\n query: queryFromArgs,\n searchParams,\n } = args\n\n const {\n collectionConfig,\n collectionConfig: { slug: collectionSlug },\n locale: fullLocale,\n permissions,\n req: {\n i18n,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n if (!config.folders) {\n throw new Error('not-found')\n }\n\n if (\n !permissions?.collections?.[collectionSlug]?.read ||\n !permissions?.collections?.[config.folders.slug].read\n ) {\n throw new Error('not-found')\n }\n\n if (collectionConfig) {\n if (\n (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility) ||\n !config.folders\n ) {\n throw new Error('not-found')\n }\n\n const query = queryFromArgs || queryFromReq\n\n /**\n * @todo: find a pattern to avoid setting preferences on hard navigation, i.e. direct links, page refresh, etc.\n * This will ensure that prefs are only updated when explicitly set by the user\n * This could potentially be done by injecting a `sessionID` into the params and comparing it against a session cookie\n */\n const collectionFolderPreferences = await upsertPreferences<{\n sort?: FolderSortKeys\n viewPreference?: 'grid' | 'list'\n }>({\n key: `${collectionSlug}-collection-folder`,\n req: initPageResult.req,\n value: {\n sort: query?.sort as FolderSortKeys,\n },\n })\n\n const sortPreference: FolderSortKeys = collectionFolderPreferences?.sort || 'name'\n const viewPreference = collectionFolderPreferences?.viewPreference || 'grid'\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n const {\n breadcrumbs,\n documents,\n folderAssignedCollections,\n FolderResultsComponent,\n subfolders,\n } = await getFolderResultsComponentAndData({\n browseByFolder: false,\n collectionsToDisplay: [config.folders.slug, collectionSlug],\n displayAs: viewPreference,\n folderAssignedCollections: [collectionSlug],\n folderID,\n req: initPageResult.req,\n sort: sortPreference,\n })\n\n const resolvedFolderID = breadcrumbs[breadcrumbs.length - 1]?.id\n\n if (\n !isInDrawer &&\n ((resolvedFolderID && folderID && folderID !== resolvedFolderID) ||\n (folderID && !resolvedFolderID))\n ) {\n redirect(\n formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${config.folders.slug}`,\n }),\n )\n }\n\n const serverProps: FolderListViewServerPropsOnly = {\n collectionConfig,\n documents,\n i18n,\n locale: fullLocale,\n params,\n payload,\n permissions,\n searchParams,\n subfolders,\n user,\n }\n\n // We could support slots in the folder view in the future\n // const folderViewSlots = renderFolderViewSlots({\n // clientProps: {\n // collectionSlug,\n // hasCreatePermission,\n // newDocumentURL,\n // },\n // collectionConfig,\n // description: typeof collectionConfig.admin.description === 'function'\n // ? collectionConfig.admin.description({ t: i18n.t })\n // : collectionConfig.admin.description,\n // payload,\n // serverProps,\n // })\n\n const search = query?.search as string\n\n return {\n View: (\n <>\n <HydrateAuthProvider permissions={permissions} />\n {RenderServerComponent({\n clientProps: {\n // ...folderViewSlots,\n allCollectionFolderSlugs: [config.folders.slug, collectionSlug],\n allowCreateCollectionSlugs: [\n permissions?.collections?.[config.folders.slug]?.create\n ? config.folders.slug\n : null,\n resolvedFolderID && permissions?.collections?.[collectionSlug]?.create\n ? collectionSlug\n : null,\n ].filter(Boolean),\n baseFolderPath: `/collections/${collectionSlug}/${config.folders.slug}`,\n breadcrumbs,\n collectionSlug,\n disableBulkDelete,\n disableBulkEdit,\n documents,\n enableRowSelections,\n folderAssignedCollections,\n folderFieldName: config.folders.fieldName,\n folderID: resolvedFolderID || null,\n FolderResultsComponent,\n search,\n sort: sortPreference,\n subfolders,\n viewPreference,\n } satisfies FolderListViewClientProps,\n // Component: collectionConfig?.admin?.components?.views?.Folders?.Component,\n Fallback: DefaultCollectionFolderView,\n importMap: payload.importMap,\n serverProps,\n })}\n </>\n ),\n }\n }\n\n throw new Error('not-found')\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/CreateFirstUser/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,mBAAmB,EACnB,SAAS,EACT,wBAAwB,EACxB,4BAA4B,EAC7B,MAAM,SAAS,CAAA;AAgBhB,OAAO,KAAoB,MAAM,OAAO,CAAA;AAExC,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3C,cAAc,EAAE,4BAA4B,CAAA;IAC5C,cAAc,EAAE,mBAAmB,CAAA;IACnC,YAAY,EAAE,SAAS,CAAA;IACvB,iBAAiB,CAAC,EAAE,KAAK,GAAG,wBAAwB,CAAA;IACpD,QAAQ,EAAE,MAAM,CAAA;CACjB,
|
|
1
|
+
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/CreateFirstUser/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,mBAAmB,EACnB,SAAS,EACT,wBAAwB,EACxB,4BAA4B,EAC7B,MAAM,SAAS,CAAA;AAgBhB,OAAO,KAAoB,MAAM,OAAO,CAAA;AAExC,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3C,cAAc,EAAE,4BAA4B,CAAA;IAC5C,cAAc,EAAE,mBAAmB,CAAA;IACnC,YAAY,EAAE,SAAS,CAAA;IACvB,iBAAiB,CAAC,EAAE,KAAK,GAAG,wBAAwB,CAAA;IACpD,QAAQ,EAAE,MAAM,CAAA;CACjB,CAsGA,CAAA"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { ConfirmPasswordField, EmailAndUsernameFields, Form, FormSubmit, PasswordField, RenderFields, useAuth, useConfig, useServerFunctions, useTranslation } from '@payloadcms/ui';
|
|
5
5
|
import { abortAndIgnore, handleAbortRef } from '@payloadcms/ui/shared';
|
|
6
|
-
import {
|
|
6
|
+
import { formatAdminURL } from 'payload/shared';
|
|
7
7
|
import React, { useEffect } from 'react';
|
|
8
8
|
export const CreateFirstUserClient = ({
|
|
9
9
|
docPermissions,
|
|
@@ -17,8 +17,7 @@ export const CreateFirstUserClient = ({
|
|
|
17
17
|
routes: {
|
|
18
18
|
admin,
|
|
19
19
|
api: apiRoute
|
|
20
|
-
}
|
|
21
|
-
serverURL
|
|
20
|
+
}
|
|
22
21
|
},
|
|
23
22
|
getEntityConfig
|
|
24
23
|
} = useConfig();
|
|
@@ -65,10 +64,9 @@ export const CreateFirstUserClient = ({
|
|
|
65
64
|
};
|
|
66
65
|
}, []);
|
|
67
66
|
return /*#__PURE__*/_jsxs(Form, {
|
|
68
|
-
action:
|
|
67
|
+
action: formatAdminURL({
|
|
69
68
|
apiRoute,
|
|
70
|
-
path: `/${userSlug}/first-register
|
|
71
|
-
serverURL
|
|
69
|
+
path: `/${userSlug}/first-register`
|
|
72
70
|
}),
|
|
73
71
|
initialState: {
|
|
74
72
|
...initialState,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.client.js","names":["ConfirmPasswordField","EmailAndUsernameFields","Form","FormSubmit","PasswordField","RenderFields","useAuth","useConfig","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","
|
|
1
|
+
{"version":3,"file":"index.client.js","names":["ConfirmPasswordField","EmailAndUsernameFields","Form","FormSubmit","PasswordField","RenderFields","useAuth","useConfig","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","formatAdminURL","React","useEffect","CreateFirstUserClient","docPermissions","docPreferences","initialState","loginWithUsername","userSlug","config","routes","admin","api","apiRoute","getEntityConfig","getFormState","t","setUser","abortOnChangeRef","useRef","collectionConfig","collectionSlug","onChange","useCallback","formState","prevFormState","submitted","controller","response","operation","schemaPath","signal","skipValidation","current","state","handleFirstRegister","data","abortOnChange","_jsxs","action","path","valid","value","method","onSuccess","redirect","validationOperation","_jsx","className","readOnly","autoComplete","field","name","label","required","fields","forceRender","parentIndexPath","parentPath","parentSchemaPath","permissions","size"],"sources":["../../../src/views/CreateFirstUser/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FormProps, UserWithToken } from '@payloadcms/ui'\nimport type {\n DocumentPreferences,\n FormState,\n LoginWithUsernameOptions,\n SanitizedDocumentPermissions,\n} from 'payload'\n\nimport {\n ConfirmPasswordField,\n EmailAndUsernameFields,\n Form,\n FormSubmit,\n PasswordField,\n RenderFields,\n useAuth,\n useConfig,\n useServerFunctions,\n useTranslation,\n} from '@payloadcms/ui'\nimport { abortAndIgnore, handleAbortRef } from '@payloadcms/ui/shared'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useEffect } from 'react'\n\nexport const CreateFirstUserClient: React.FC<{\n docPermissions: SanitizedDocumentPermissions\n docPreferences: DocumentPreferences\n initialState: FormState\n loginWithUsername?: false | LoginWithUsernameOptions\n userSlug: string\n}> = ({ docPermissions, docPreferences, initialState, loginWithUsername, userSlug }) => {\n const {\n config: {\n routes: { admin, api: apiRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const { getFormState } = useServerFunctions()\n\n const { t } = useTranslation()\n const { setUser } = useAuth()\n\n const abortOnChangeRef = React.useRef<AbortController>(null)\n\n const collectionConfig = getEntityConfig({ collectionSlug: userSlug })\n\n const onChange: FormProps['onChange'][0] = React.useCallback(\n async ({ formState: prevFormState, submitted }) => {\n const controller = handleAbortRef(abortOnChangeRef)\n\n const response = await getFormState({\n collectionSlug: userSlug,\n docPermissions,\n docPreferences,\n formState: prevFormState,\n operation: 'create',\n schemaPath: userSlug,\n signal: controller.signal,\n skipValidation: !submitted,\n })\n\n abortOnChangeRef.current = null\n\n if (response && response.state) {\n return response.state\n }\n },\n [userSlug, getFormState, docPermissions, docPreferences],\n )\n\n const handleFirstRegister = (data: UserWithToken) => {\n setUser(data)\n }\n\n useEffect(() => {\n const abortOnChange = abortOnChangeRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n }\n }, [])\n\n return (\n <Form\n action={formatAdminURL({\n apiRoute,\n path: `/${userSlug}/first-register`,\n })}\n initialState={{\n ...initialState,\n 'confirm-password': {\n ...initialState['confirm-password'],\n valid: initialState['confirm-password']['valid'] || false,\n value: initialState['confirm-password']['value'] || '',\n },\n }}\n method=\"POST\"\n onChange={[onChange]}\n onSuccess={handleFirstRegister}\n redirect={admin}\n validationOperation=\"create\"\n >\n <EmailAndUsernameFields\n className=\"emailAndUsername\"\n loginWithUsername={loginWithUsername}\n operation=\"create\"\n readOnly={false}\n t={t}\n />\n <PasswordField\n autoComplete=\"off\"\n field={{\n name: 'password',\n label: t('authentication:newPassword'),\n required: true,\n }}\n path=\"password\"\n />\n <ConfirmPasswordField />\n <RenderFields\n fields={collectionConfig.fields}\n forceRender\n parentIndexPath=\"\"\n parentPath=\"\"\n parentSchemaPath={userSlug}\n permissions={true}\n readOnly={false}\n />\n <FormSubmit size=\"large\">{t('general:create')}</FormSubmit>\n </Form>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ClientWidget } from 'payload';
|
|
2
|
+
export declare function DashboardStepNav({ addWidget, cancel, isEditing, resetLayout, saveLayout, setIsEditing, widgets, }: {
|
|
3
|
+
addWidget: (slug: string) => void;
|
|
4
|
+
cancel: () => void;
|
|
5
|
+
isEditing: boolean;
|
|
6
|
+
resetLayout: () => Promise<void>;
|
|
7
|
+
saveLayout: () => Promise<void>;
|
|
8
|
+
setIsEditing: (isEditing: boolean) => void;
|
|
9
|
+
widgets: ClientWidget[];
|
|
10
|
+
}): import("react").JSX.Element;
|
|
11
|
+
export declare function DashboardBreadcrumbDropdown(props: {
|
|
12
|
+
isEditing: boolean;
|
|
13
|
+
onCancel: () => void;
|
|
14
|
+
onEditClick: () => void;
|
|
15
|
+
onResetLayout: () => void;
|
|
16
|
+
onSaveChanges: () => void;
|
|
17
|
+
widgetsDrawerSlug: string;
|
|
18
|
+
}): import("react").JSX.Element;
|
|
19
|
+
//# sourceMappingURL=DashboardStepNav.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DashboardStepNav.d.ts","sourceRoot":"","sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/DashboardStepNav.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAa3C,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,MAAM,EACN,SAAS,EACT,WAAW,EACX,UAAU,EACV,YAAY,EACZ,OAAO,GACR,EAAE;IACD,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAChC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/B,YAAY,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;IAC1C,OAAO,EAAE,YAAY,EAAE,CAAA;CACxB,+BAoCA;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,iBAAiB,EAAE,MAAM,CAAA;CAC1B,+BAoDA"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { c as _c } from "react/compiler-runtime";
|
|
4
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
5
|
+
import { Button, DrawerToggler, ItemsDrawer, ReactSelect, useStepNav, useTranslation } from '@payloadcms/ui';
|
|
6
|
+
import { useEffect, useId } from 'react';
|
|
7
|
+
export function DashboardStepNav(t0) {
|
|
8
|
+
const $ = _c(15);
|
|
9
|
+
const {
|
|
10
|
+
addWidget,
|
|
11
|
+
cancel,
|
|
12
|
+
isEditing,
|
|
13
|
+
resetLayout,
|
|
14
|
+
saveLayout,
|
|
15
|
+
setIsEditing,
|
|
16
|
+
widgets
|
|
17
|
+
} = t0;
|
|
18
|
+
const {
|
|
19
|
+
t
|
|
20
|
+
} = useTranslation();
|
|
21
|
+
const {
|
|
22
|
+
setStepNav
|
|
23
|
+
} = useStepNav();
|
|
24
|
+
const uuid = useId();
|
|
25
|
+
const drawerSlug = `widgets-drawer-${uuid}`;
|
|
26
|
+
let t1;
|
|
27
|
+
let t2;
|
|
28
|
+
if ($[0] !== cancel || $[1] !== drawerSlug || $[2] !== isEditing || $[3] !== resetLayout || $[4] !== saveLayout || $[5] !== setIsEditing || $[6] !== setStepNav) {
|
|
29
|
+
t1 = () => {
|
|
30
|
+
setStepNav([{
|
|
31
|
+
label: _jsx(DashboardBreadcrumbDropdown, {
|
|
32
|
+
isEditing,
|
|
33
|
+
onCancel: cancel,
|
|
34
|
+
onEditClick: () => setIsEditing(true),
|
|
35
|
+
onResetLayout: resetLayout,
|
|
36
|
+
onSaveChanges: saveLayout,
|
|
37
|
+
widgetsDrawerSlug: drawerSlug
|
|
38
|
+
})
|
|
39
|
+
}]);
|
|
40
|
+
};
|
|
41
|
+
t2 = [isEditing, drawerSlug, cancel, resetLayout, saveLayout, setIsEditing, setStepNav];
|
|
42
|
+
$[0] = cancel;
|
|
43
|
+
$[1] = drawerSlug;
|
|
44
|
+
$[2] = isEditing;
|
|
45
|
+
$[3] = resetLayout;
|
|
46
|
+
$[4] = saveLayout;
|
|
47
|
+
$[5] = setIsEditing;
|
|
48
|
+
$[6] = setStepNav;
|
|
49
|
+
$[7] = t1;
|
|
50
|
+
$[8] = t2;
|
|
51
|
+
} else {
|
|
52
|
+
t1 = $[7];
|
|
53
|
+
t2 = $[8];
|
|
54
|
+
}
|
|
55
|
+
useEffect(t1, t2);
|
|
56
|
+
let t3;
|
|
57
|
+
if ($[9] !== addWidget || $[10] !== drawerSlug || $[11] !== isEditing || $[12] !== t || $[13] !== widgets) {
|
|
58
|
+
t3 = _jsx(_Fragment, {
|
|
59
|
+
children: isEditing && _jsx(ItemsDrawer, {
|
|
60
|
+
drawerSlug,
|
|
61
|
+
items: widgets,
|
|
62
|
+
onItemClick: widget => addWidget(widget.slug),
|
|
63
|
+
searchPlaceholder: t("dashboard:searchWidgets"),
|
|
64
|
+
title: t("dashboard:addWidget")
|
|
65
|
+
})
|
|
66
|
+
});
|
|
67
|
+
$[9] = addWidget;
|
|
68
|
+
$[10] = drawerSlug;
|
|
69
|
+
$[11] = isEditing;
|
|
70
|
+
$[12] = t;
|
|
71
|
+
$[13] = widgets;
|
|
72
|
+
$[14] = t3;
|
|
73
|
+
} else {
|
|
74
|
+
t3 = $[14];
|
|
75
|
+
}
|
|
76
|
+
return t3;
|
|
77
|
+
}
|
|
78
|
+
export function DashboardBreadcrumbDropdown(props) {
|
|
79
|
+
const {
|
|
80
|
+
isEditing,
|
|
81
|
+
onCancel,
|
|
82
|
+
onEditClick,
|
|
83
|
+
onResetLayout,
|
|
84
|
+
onSaveChanges,
|
|
85
|
+
widgetsDrawerSlug
|
|
86
|
+
} = props;
|
|
87
|
+
if (isEditing) {
|
|
88
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
89
|
+
className: "dashboard-breadcrumb-dropdown__editing",
|
|
90
|
+
children: [/*#__PURE__*/_jsx("span", {
|
|
91
|
+
children: "Editing Dashboard"
|
|
92
|
+
}), /*#__PURE__*/_jsxs("div", {
|
|
93
|
+
className: "dashboard-breadcrumb-dropdown__actions",
|
|
94
|
+
children: [/*#__PURE__*/_jsx(DrawerToggler, {
|
|
95
|
+
className: "drawer-toggler--unstyled",
|
|
96
|
+
slug: widgetsDrawerSlug,
|
|
97
|
+
children: /*#__PURE__*/_jsx(Button, {
|
|
98
|
+
buttonStyle: "pill",
|
|
99
|
+
el: "span",
|
|
100
|
+
size: "small",
|
|
101
|
+
children: "Add +"
|
|
102
|
+
})
|
|
103
|
+
}), /*#__PURE__*/_jsx(Button, {
|
|
104
|
+
buttonStyle: "pill",
|
|
105
|
+
onClick: onSaveChanges,
|
|
106
|
+
size: "small",
|
|
107
|
+
children: "Save Changes"
|
|
108
|
+
}), /*#__PURE__*/_jsx(Button, {
|
|
109
|
+
buttonStyle: "pill",
|
|
110
|
+
onClick: onCancel,
|
|
111
|
+
size: "small",
|
|
112
|
+
children: "Cancel"
|
|
113
|
+
})]
|
|
114
|
+
})]
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
const options = [{
|
|
118
|
+
label: 'Edit Dashboard',
|
|
119
|
+
value: 'edit'
|
|
120
|
+
}, {
|
|
121
|
+
label: 'Reset Layout',
|
|
122
|
+
value: 'reset'
|
|
123
|
+
}];
|
|
124
|
+
const handleChange = selectedOption => {
|
|
125
|
+
// Since isMulti is false, we expect a single Option
|
|
126
|
+
const option = Array.isArray(selectedOption) ? selectedOption[0] : selectedOption;
|
|
127
|
+
if (option?.value === 'edit') {
|
|
128
|
+
onEditClick();
|
|
129
|
+
} else if (option?.value === 'reset') {
|
|
130
|
+
onResetLayout();
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
return /*#__PURE__*/_jsx(ReactSelect, {
|
|
134
|
+
className: "dashboard-breadcrumb-select",
|
|
135
|
+
isClearable: false,
|
|
136
|
+
isSearchable: false,
|
|
137
|
+
menuIsOpen: undefined,
|
|
138
|
+
onChange: handleChange,
|
|
139
|
+
options: options,
|
|
140
|
+
placeholder: "Dashboard",
|
|
141
|
+
value: {
|
|
142
|
+
label: 'Dashboard',
|
|
143
|
+
value: 'dashboard'
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=DashboardStepNav.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DashboardStepNav.js","names":["c","_c","Button","DrawerToggler","ItemsDrawer","ReactSelect","useStepNav","useTranslation","useEffect","useId","DashboardStepNav","t0","$","addWidget","cancel","isEditing","resetLayout","saveLayout","setIsEditing","widgets","t","setStepNav","uuid","drawerSlug","t1","t2","label","_jsx","DashboardBreadcrumbDropdown","onCancel","onEditClick","onResetLayout","onSaveChanges","widgetsDrawerSlug","t3","_Fragment","children","items","onItemClick","widget","slug","searchPlaceholder","title","props","_jsxs","className","buttonStyle","el","size","onClick","options","value","handleChange","selectedOption","option","Array","isArray","isClearable","isSearchable","menuIsOpen","undefined","onChange","placeholder"],"sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/DashboardStepNav.tsx"],"sourcesContent":["'use client'\nimport type { ClientWidget } from 'payload'\n\nimport {\n Button,\n DrawerToggler,\n ItemsDrawer,\n type ReactSelectOption as Option,\n ReactSelect,\n useStepNav,\n useTranslation,\n} from '@payloadcms/ui'\nimport { useEffect, useId } from 'react'\n\nexport function DashboardStepNav({\n addWidget,\n cancel,\n isEditing,\n resetLayout,\n saveLayout,\n setIsEditing,\n widgets,\n}: {\n addWidget: (slug: string) => void\n cancel: () => void\n isEditing: boolean\n resetLayout: () => Promise<void>\n saveLayout: () => Promise<void>\n setIsEditing: (isEditing: boolean) => void\n widgets: ClientWidget[]\n}) {\n const { t } = useTranslation()\n const { setStepNav } = useStepNav()\n const uuid = useId()\n const drawerSlug = `widgets-drawer-${uuid}`\n\n useEffect(() => {\n setStepNav([\n {\n label: (\n <DashboardBreadcrumbDropdown\n isEditing={isEditing}\n onCancel={cancel}\n onEditClick={() => setIsEditing(true)}\n onResetLayout={resetLayout}\n onSaveChanges={saveLayout}\n widgetsDrawerSlug={drawerSlug}\n />\n ),\n },\n ])\n }, [isEditing, drawerSlug, cancel, resetLayout, saveLayout, setIsEditing, setStepNav])\n\n return (\n <>\n {isEditing && (\n <ItemsDrawer\n drawerSlug={drawerSlug}\n items={widgets}\n onItemClick={(widget) => addWidget(widget.slug)}\n searchPlaceholder={t('dashboard:searchWidgets')}\n title={t('dashboard:addWidget')}\n />\n )}\n </>\n )\n}\n\nexport function DashboardBreadcrumbDropdown(props: {\n isEditing: boolean\n onCancel: () => void\n onEditClick: () => void\n onResetLayout: () => void\n onSaveChanges: () => void\n widgetsDrawerSlug: string\n}) {\n const { isEditing, onCancel, onEditClick, onResetLayout, onSaveChanges, widgetsDrawerSlug } =\n props\n if (isEditing) {\n return (\n <div className=\"dashboard-breadcrumb-dropdown__editing\">\n <span>Editing Dashboard</span>\n <div className=\"dashboard-breadcrumb-dropdown__actions\">\n <DrawerToggler className=\"drawer-toggler--unstyled\" slug={widgetsDrawerSlug}>\n <Button buttonStyle=\"pill\" el=\"span\" size=\"small\">\n Add +\n </Button>\n </DrawerToggler>\n <Button buttonStyle=\"pill\" onClick={onSaveChanges} size=\"small\">\n Save Changes\n </Button>\n <Button buttonStyle=\"pill\" onClick={onCancel} size=\"small\">\n Cancel\n </Button>\n </div>\n </div>\n )\n }\n\n const options = [\n { label: 'Edit Dashboard', value: 'edit' },\n { label: 'Reset Layout', value: 'reset' },\n ]\n\n const handleChange = (selectedOption: Option | Option[]) => {\n // Since isMulti is false, we expect a single Option\n const option = Array.isArray(selectedOption) ? selectedOption[0] : selectedOption\n\n if (option?.value === 'edit') {\n onEditClick()\n } else if (option?.value === 'reset') {\n onResetLayout()\n }\n }\n\n return (\n <ReactSelect\n className=\"dashboard-breadcrumb-select\"\n isClearable={false}\n isSearchable={false}\n menuIsOpen={undefined} // Let ReactSelect handle open/close\n onChange={handleChange}\n options={options}\n placeholder=\"Dashboard\"\n value={{ label: 'Dashboard', value: 'dashboard' }}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ClientWidget, WidgetWidth } from 'payload';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export type WidgetItem = {
|
|
4
|
+
id: string;
|
|
5
|
+
maxWidth: WidgetWidth;
|
|
6
|
+
minWidth: WidgetWidth;
|
|
7
|
+
width: WidgetWidth;
|
|
8
|
+
};
|
|
9
|
+
export type WidgetInstanceClient = {
|
|
10
|
+
component: React.ReactNode;
|
|
11
|
+
item: WidgetItem;
|
|
12
|
+
};
|
|
13
|
+
export type DropTargetWidget = {
|
|
14
|
+
position: 'after' | 'before';
|
|
15
|
+
widget: WidgetInstanceClient;
|
|
16
|
+
} | null;
|
|
17
|
+
export declare function ModularDashboardClient({ clientLayout: initialLayout, widgets, }: {
|
|
18
|
+
clientLayout: WidgetInstanceClient[];
|
|
19
|
+
widgets: ClientWidget[];
|
|
20
|
+
}): React.JSX.Element;
|
|
21
|
+
//# sourceMappingURL=index.client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/index.client.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAKxD,OAAO,KAA4B,MAAM,OAAO,CAAA;AAuBhD,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,WAAW,CAAA;IACrB,QAAQ,EAAE,WAAW,CAAA;IACrB,KAAK,EAAE,WAAW,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,IAAI,EAAE,UAAU,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAAA;IAC5B,MAAM,EAAE,oBAAoB,CAAA;CAC7B,GAAG,IAAI,CAAA;AAYR,wBAAgB,sBAAsB,CAAC,EACrC,YAAY,EAAE,aAAa,EAC3B,OAAO,GACR,EAAE;IACD,YAAY,EAAE,oBAAoB,EAAE,CAAA;IACpC,OAAO,EAAE,YAAY,EAAE,CAAA;CACxB,qBAyKA"}
|