@payloadcms/ui 4.0.0-internal.567a487 → 4.0.0-internal.5a4aa81
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/AppHeader/index.css +0 -4
- package/dist/elements/AppHeader/index.d.ts.map +1 -1
- package/dist/elements/AppHeader/index.js +1 -4
- package/dist/elements/AppHeader/index.js.map +1 -1
- package/dist/elements/Autosave/index.d.ts.map +1 -1
- package/dist/elements/Autosave/index.js +2 -6
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/BulkUpload/AddFilesView/index.css +10 -4
- package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/AddFilesView/index.js +71 -51
- package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +4 -9
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/Button/index.d.ts.map +1 -1
- package/dist/elements/Button/index.js +2 -0
- package/dist/elements/Button/index.js.map +1 -1
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts.map +1 -1
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +10 -3
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js +345 -1
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js.map +1 -1
- package/dist/elements/ColumnSelection/Popup.d.ts.map +1 -1
- package/dist/elements/ColumnSelection/Popup.js +3 -3
- package/dist/elements/ColumnSelection/Popup.js.map +1 -1
- package/dist/elements/ColumnSelection/matchesColumnSearch.d.ts +10 -0
- package/dist/elements/ColumnSelection/matchesColumnSearch.d.ts.map +1 -0
- package/dist/elements/ColumnSelection/matchesColumnSearch.js +21 -0
- package/dist/elements/ColumnSelection/matchesColumnSearch.js.map +1 -0
- package/dist/{utilities/matchesSearchQuery.spec.js → elements/ColumnSelection/matchesColumnSearch.spec.js} +29 -29
- package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js.map +1 -0
- package/dist/elements/Combobox/index.css +23 -84
- package/dist/elements/Combobox/index.d.ts +0 -21
- package/dist/elements/Combobox/index.d.ts.map +1 -1
- package/dist/elements/Combobox/index.js +21 -66
- package/dist/elements/Combobox/index.js.map +1 -1
- package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
- package/dist/elements/CopyLocaleData/index.js +8 -9
- package/dist/elements/CopyLocaleData/index.js.map +1 -1
- package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
- package/dist/elements/DeleteDocument/index.js +2 -9
- package/dist/elements/DeleteDocument/index.js.map +1 -1
- package/dist/elements/DeleteMany/index.d.ts.map +1 -1
- package/dist/elements/DeleteMany/index.js +3 -7
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.css +3 -5
- package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/index.js +1 -32
- package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
- package/dist/elements/Dropzone/index.css +10 -4
- package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
- package/dist/elements/DuplicateDocument/index.js +3 -9
- package/dist/elements/DuplicateDocument/index.js.map +1 -1
- package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/EditMany/DrawerContent.js +3 -7
- package/dist/elements/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/FileManager/index.css +0 -30
- package/dist/elements/FileManager/index.d.ts.map +1 -1
- package/dist/elements/FileManager/index.js +379 -287
- package/dist/elements/FileManager/index.js.map +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/index.js +1 -4
- package/dist/elements/Hierarchy/ColumnBrowser/index.js.map +1 -1
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.js +1 -4
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.js.map +1 -1
- package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts +1 -2
- package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js +0 -2
- package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js.map +1 -1
- package/dist/elements/Hierarchy/Modal/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Modal/index.js +0 -3
- package/dist/elements/Hierarchy/Modal/index.js.map +1 -1
- package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/MoveMany/index.js +3 -7
- package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
- package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Search/useHierarchySearch.js +2 -6
- package/dist/elements/Hierarchy/Search/useHierarchySearch.js.map +1 -1
- package/dist/elements/Hierarchy/Tree/useChildren.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Tree/useChildren.js +1 -4
- package/dist/elements/Hierarchy/Tree/useChildren.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +4 -9
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
- package/dist/elements/LivePreview/Window/index.js +1 -1
- package/dist/elements/LivePreview/Window/index.js.map +1 -1
- package/dist/elements/Localizer/index.js +1 -1
- package/dist/elements/Localizer/index.js.map +1 -1
- package/dist/elements/Nav/context.js +2 -2
- package/dist/elements/Nav/context.js.map +1 -1
- package/dist/elements/Nav/getNavPrefs.d.ts +0 -6
- package/dist/elements/Nav/getNavPrefs.d.ts.map +1 -1
- package/dist/elements/Nav/getNavPrefs.js +46 -14
- package/dist/elements/Nav/getNavPrefs.js.map +1 -1
- package/dist/elements/NavGroup/index.js +1 -1
- package/dist/elements/NavGroup/index.js.map +1 -1
- package/dist/elements/PermanentlyDeleteButton/index.d.ts.map +1 -1
- package/dist/elements/PermanentlyDeleteButton/index.js +1 -4
- package/dist/elements/PermanentlyDeleteButton/index.js.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.js +8 -30
- package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/types.js.map +1 -1
- package/dist/elements/PublishButton/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/index.js +7 -12
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/PublishMany/DrawerContent.js +3 -7
- package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/RestoreButton/index.d.ts.map +1 -1
- package/dist/elements/RestoreButton/index.js +1 -4
- package/dist/elements/RestoreButton/index.js.map +1 -1
- package/dist/elements/RestoreMany/index.d.ts.map +1 -1
- package/dist/elements/RestoreMany/index.js +2 -6
- package/dist/elements/RestoreMany/index.js.map +1 -1
- package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
- package/dist/elements/SaveDraftButton/index.js +4 -18
- package/dist/elements/SaveDraftButton/index.js.map +1 -1
- package/dist/elements/SchedulePublishButton/index.d.ts.map +1 -1
- package/dist/elements/SchedulePublishButton/index.js +1 -7
- package/dist/elements/SchedulePublishButton/index.js.map +1 -1
- package/dist/elements/Status/index.d.ts.map +1 -1
- package/dist/elements/Status/index.js +5 -19
- package/dist/elements/Status/index.js.map +1 -1
- package/dist/elements/StepNav/index.css +0 -7
- package/dist/elements/StepNav/index.d.ts.map +1 -1
- package/dist/elements/StepNav/index.js +24 -16
- package/dist/elements/StepNav/index.js.map +1 -1
- package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
- package/dist/elements/Table/OrderableTable.js +3 -6
- package/dist/elements/Table/OrderableTable.js.map +1 -1
- package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
- package/dist/elements/Table/RelationshipProvider/index.js +25 -32
- package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
- package/dist/elements/UnpublishButton/index.d.ts.map +1 -1
- package/dist/elements/UnpublishButton/index.js +4 -8
- package/dist/elements/UnpublishButton/index.js.map +1 -1
- package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/UnpublishMany/DrawerContent.js +3 -7
- package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/Upload/UploadFromURLModal/index.d.ts +1 -1
- package/dist/elements/Upload/UploadFromURLModal/index.d.ts.map +1 -1
- package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -1
- package/dist/elements/Upload/index.css +39 -32
- package/dist/elements/Upload/index.d.ts.map +1 -1
- package/dist/elements/Upload/index.js +37 -99
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/Upload/usePasteFromClipboard.d.ts +14 -0
- package/dist/elements/Upload/usePasteFromClipboard.d.ts.map +1 -0
- package/dist/elements/Upload/usePasteFromClipboard.js +93 -0
- package/dist/elements/Upload/usePasteFromClipboard.js.map +1 -0
- package/dist/elements/Upload/useUploadFromUrl.d.ts +20 -0
- package/dist/elements/Upload/useUploadFromUrl.d.ts.map +1 -0
- package/dist/elements/Upload/useUploadFromUrl.js +201 -0
- package/dist/elements/Upload/useUploadFromUrl.js.map +1 -0
- package/dist/elements/UploadDropzoneContent/index.css +31 -0
- package/dist/elements/UploadDropzoneContent/index.d.ts +17 -0
- package/dist/elements/UploadDropzoneContent/index.d.ts.map +1 -0
- package/dist/elements/UploadDropzoneContent/index.js +62 -0
- package/dist/elements/UploadDropzoneContent/index.js.map +1 -0
- package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js +1 -4
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
- package/dist/elements/WhereBuilder/conditionValue.d.ts +32 -0
- package/dist/elements/WhereBuilder/conditionValue.d.ts.map +1 -0
- package/dist/elements/WhereBuilder/conditionValue.js +32 -0
- package/dist/elements/WhereBuilder/conditionValue.js.map +1 -0
- package/dist/elements/WhereBuilder/conditionValue.spec.js +65 -0
- package/dist/elements/WhereBuilder/conditionValue.spec.js.map +1 -0
- package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/index.js +15 -4
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/exports/client/index.d.ts +0 -17
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +1 -1
- package/dist/exports/client/index.js.map +3 -3
- package/dist/fields/Array/index.d.ts.map +1 -1
- package/dist/fields/Array/index.js +2 -3
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Blocks/index.d.ts.map +1 -1
- package/dist/fields/Blocks/index.js +2 -3
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/FieldLabel/index.d.ts.map +1 -1
- package/dist/fields/FieldLabel/index.js +4 -5
- package/dist/fields/FieldLabel/index.js.map +1 -1
- package/dist/fields/Relationship/Input.d.ts.map +1 -1
- package/dist/fields/Relationship/Input.js +3 -8
- package/dist/fields/Relationship/Input.js.map +1 -1
- package/dist/fields/Slug/index.d.ts.map +1 -1
- package/dist/fields/Slug/index.js +2 -3
- package/dist/fields/Slug/index.js.map +1 -1
- package/dist/fields/Upload/Input.d.ts.map +1 -1
- package/dist/fields/Upload/Input.js +47 -23
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/fields/Upload/Input.spec.js +242 -0
- package/dist/fields/Upload/Input.spec.js.map +1 -0
- package/dist/fields/shared/index.d.ts +1 -1
- package/dist/fields/shared/index.d.ts.map +1 -1
- package/dist/fields/shared/index.js.map +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +2 -3
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/NullifyField/index.d.ts.map +1 -1
- package/dist/forms/NullifyField/index.js +2 -3
- package/dist/forms/NullifyField/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +1 -0
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
- package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
- package/dist/hooks/usePayloadAPI.js +42 -47
- package/dist/hooks/usePayloadAPI.js.map +1 -1
- package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/index.js +3 -8
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/providers/DocumentInfo/useGetDocPermissions.d.ts +1 -2
- package/dist/providers/DocumentInfo/useGetDocPermissions.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/useGetDocPermissions.js +1 -3
- package/dist/providers/DocumentInfo/useGetDocPermissions.js.map +1 -1
- package/dist/providers/Hierarchy/index.d.ts.map +1 -1
- package/dist/providers/Hierarchy/index.js +1 -4
- package/dist/providers/Hierarchy/index.js.map +1 -1
- package/dist/providers/Locale/index.d.ts +1 -5
- package/dist/providers/Locale/index.d.ts.map +1 -1
- package/dist/providers/Locale/index.js +61 -139
- package/dist/providers/Locale/index.js.map +1 -1
- package/dist/providers/Preferences/index.d.ts +1 -3
- package/dist/providers/Preferences/index.d.ts.map +1 -1
- package/dist/providers/Preferences/index.js +3 -9
- package/dist/providers/Preferences/index.js.map +1 -1
- package/dist/providers/Selection/index.d.ts.map +1 -1
- package/dist/providers/Selection/index.js +2 -3
- package/dist/providers/Selection/index.js.map +1 -1
- package/dist/providers/ServerFunctions/index.d.ts +5 -1
- package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
- package/dist/providers/ServerFunctions/index.js +15 -0
- package/dist/providers/ServerFunctions/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/templates/Default/index.d.ts.map +1 -1
- package/dist/templates/Default/index.js +37 -43
- package/dist/templates/Default/index.js.map +1 -1
- package/dist/utilities/formatMetadata.d.ts.map +1 -1
- package/dist/utilities/formatMetadata.js +0 -5
- package/dist/utilities/formatMetadata.js.map +1 -1
- package/dist/utilities/getFilesFromClipboard.d.ts +10 -0
- package/dist/utilities/getFilesFromClipboard.d.ts.map +1 -0
- package/dist/utilities/getFilesFromClipboard.js +49 -0
- package/dist/utilities/getFilesFromClipboard.js.map +1 -0
- package/dist/utilities/getHasScheduledPublish.d.ts +2 -3
- package/dist/utilities/getHasScheduledPublish.d.ts.map +1 -1
- package/dist/utilities/getHasScheduledPublish.js +2 -5
- package/dist/utilities/getHasScheduledPublish.js.map +1 -1
- package/dist/utilities/getVersions.d.ts +1 -6
- package/dist/utilities/getVersions.d.ts.map +1 -1
- package/dist/utilities/getVersions.js +0 -5
- package/dist/utilities/getVersions.js.map +1 -1
- package/dist/utilities/initReq.d.ts.map +1 -1
- package/dist/utilities/initReq.js +0 -8
- package/dist/utilities/initReq.js.map +1 -1
- package/dist/utilities/schedulePublishHandler.d.ts +8 -1
- package/dist/utilities/schedulePublishHandler.d.ts.map +1 -1
- package/dist/utilities/schedulePublishHandler.js +68 -14
- package/dist/utilities/schedulePublishHandler.js.map +1 -1
- package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
- package/dist/utilities/serverFunctionRegistry.js +2 -7
- package/dist/utilities/serverFunctionRegistry.js.map +1 -1
- package/dist/utilities/slugify.d.ts.map +1 -1
- package/dist/utilities/slugify.js +3 -0
- package/dist/utilities/slugify.js.map +1 -1
- package/dist/views/API/index.client.d.ts.map +1 -1
- package/dist/views/API/index.client.js +4 -13
- package/dist/views/API/index.client.js.map +1 -1
- package/dist/views/Document/getDocumentView.d.ts.map +1 -1
- package/dist/views/Document/getDocumentView.js +2 -21
- package/dist/views/Document/getDocumentView.js.map +1 -1
- package/dist/views/Document/getMetaBySegment.d.ts.map +1 -1
- package/dist/views/Document/getMetaBySegment.js +0 -9
- package/dist/views/Document/getMetaBySegment.js.map +1 -1
- package/dist/views/Document/index.d.ts +1 -3
- package/dist/views/Document/index.d.ts.map +1 -1
- package/dist/views/Document/index.js +2 -10
- package/dist/views/Document/index.js.map +1 -1
- package/dist/views/Edit/SetDocumentTitle/index.d.ts.map +1 -1
- package/dist/views/Edit/SetDocumentTitle/index.js +4 -1
- package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +3 -2
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/index.d.ts.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/index.js +2 -6
- package/dist/views/HierarchyList/HierarchyTable/index.js.map +1 -1
- package/dist/views/Root/getRouteData.d.ts.map +1 -1
- package/dist/views/Root/getRouteData.js +4 -12
- package/dist/views/Root/getRouteData.js.map +1 -1
- package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
- package/dist/views/Version/Default/SetStepNav.js +10 -13
- package/dist/views/Version/Default/SetStepNav.js.map +1 -1
- package/dist/views/Version/Default/index.css +2 -26
- package/dist/views/Version/Default/index.d.ts.map +1 -1
- package/dist/views/Version/Default/index.js +18 -31
- package/dist/views/Version/Default/index.js.map +1 -1
- package/dist/views/Version/Default/types.d.ts +0 -9
- package/dist/views/Version/Default/types.d.ts.map +1 -1
- package/dist/views/Version/Default/types.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +0 -8
- package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
- package/dist/views/Version/Restore/index.d.ts.map +1 -1
- package/dist/views/Version/Restore/index.js +3 -6
- package/dist/views/Version/Restore/index.js.map +1 -1
- package/dist/views/Version/generateVersionViewMetadata.js.map +1 -1
- package/dist/views/Version/index.d.ts.map +1 -1
- package/dist/views/Version/index.js +0 -4
- package/dist/views/Version/index.js.map +1 -1
- package/dist/views/Versions/VersionPillLabel/VersionPillLabel.d.ts.map +1 -1
- package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js +2 -3
- package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js.map +1 -1
- package/dist/views/Versions/buildColumns.d.ts +1 -2
- package/dist/views/Versions/buildColumns.d.ts.map +1 -1
- package/dist/views/Versions/buildColumns.js +1 -21
- package/dist/views/Versions/buildColumns.js.map +1 -1
- package/dist/views/Versions/generateVersionsViewMetadata.js.map +1 -1
- package/dist/views/Versions/index.client.d.ts +1 -0
- package/dist/views/Versions/index.client.d.ts.map +1 -1
- package/dist/views/Versions/index.client.js.map +1 -1
- package/dist/views/Versions/index.d.ts.map +1 -1
- package/dist/views/Versions/index.js +14 -2
- package/dist/views/Versions/index.js.map +1 -1
- package/package.json +6 -5
- package/dist/elements/BranchSelector/NewBranchModal/index.css +0 -46
- package/dist/elements/BranchSelector/NewBranchModal/index.d.ts +0 -12
- package/dist/elements/BranchSelector/NewBranchModal/index.d.ts.map +0 -1
- package/dist/elements/BranchSelector/NewBranchModal/index.js +0 -174
- package/dist/elements/BranchSelector/NewBranchModal/index.js.map +0 -1
- package/dist/elements/BranchSelector/index.css +0 -172
- package/dist/elements/BranchSelector/index.d.ts +0 -13
- package/dist/elements/BranchSelector/index.d.ts.map +0 -1
- package/dist/elements/BranchSelector/index.js +0 -255
- package/dist/elements/BranchSelector/index.js.map +0 -1
- package/dist/elements/ChangeSummary/index.css +0 -18
- package/dist/elements/ChangeSummary/index.d.ts +0 -28
- package/dist/elements/ChangeSummary/index.d.ts.map +0 -1
- package/dist/elements/ChangeSummary/index.js +0 -147
- package/dist/elements/ChangeSummary/index.js.map +0 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/BranchChangesPill/index.css +0 -12
- package/dist/elements/DocumentHeader/Tabs/tabs/BranchChangesPill/index.d.ts +0 -12
- package/dist/elements/DocumentHeader/Tabs/tabs/BranchChangesPill/index.d.ts.map +0 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/BranchChangesPill/index.js +0 -83
- package/dist/elements/DocumentHeader/Tabs/tabs/BranchChangesPill/index.js.map +0 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/BranchSettingsTab/index.d.ts +0 -14
- package/dist/elements/DocumentHeader/Tabs/tabs/BranchSettingsTab/index.d.ts.map +0 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/BranchSettingsTab/index.js +0 -28
- package/dist/elements/DocumentHeader/Tabs/tabs/BranchSettingsTab/index.js.map +0 -1
- package/dist/elements/MergeBranch/context.d.ts +0 -67
- package/dist/elements/MergeBranch/context.d.ts.map +0 -1
- package/dist/elements/MergeBranch/context.js +0 -47
- package/dist/elements/MergeBranch/context.js.map +0 -1
- package/dist/elements/MergeBranch/index.css +0 -136
- package/dist/elements/MergeBranch/index.d.ts +0 -15
- package/dist/elements/MergeBranch/index.d.ts.map +0 -1
- package/dist/elements/MergeBranch/index.js +0 -545
- package/dist/elements/MergeBranch/index.js.map +0 -1
- package/dist/elements/MergeBranch/provider.d.ts +0 -12
- package/dist/elements/MergeBranch/provider.d.ts.map +0 -1
- package/dist/elements/MergeBranch/provider.js +0 -19
- package/dist/elements/MergeBranch/provider.js.map +0 -1
- package/dist/elements/MergeBranch/slug.d.ts +0 -9
- package/dist/elements/MergeBranch/slug.d.ts.map +0 -1
- package/dist/elements/MergeBranch/slug.js +0 -8
- package/dist/elements/MergeBranch/slug.js.map +0 -1
- package/dist/elements/Table/DefaultCell/fields/BranchStatus/index.css +0 -34
- package/dist/elements/Table/DefaultCell/fields/BranchStatus/index.d.ts +0 -13
- package/dist/elements/Table/DefaultCell/fields/BranchStatus/index.d.ts.map +0 -1
- package/dist/elements/Table/DefaultCell/fields/BranchStatus/index.js +0 -51
- package/dist/elements/Table/DefaultCell/fields/BranchStatus/index.js.map +0 -1
- package/dist/icons/Branch/index.css +0 -5
- package/dist/icons/Branch/index.d.ts +0 -7
- package/dist/icons/Branch/index.d.ts.map +0 -1
- package/dist/icons/Branch/index.js +0 -25
- package/dist/icons/Branch/index.js.map +0 -1
- package/dist/providers/Branch/index.d.ts +0 -68
- package/dist/providers/Branch/index.d.ts.map +0 -1
- package/dist/providers/Branch/index.js +0 -193
- package/dist/providers/Branch/index.js.map +0 -1
- package/dist/providers/Branch/index.server.d.ts +0 -14
- package/dist/providers/Branch/index.server.d.ts.map +0 -1
- package/dist/providers/Branch/index.server.js +0 -125
- package/dist/providers/Branch/index.server.js.map +0 -1
- package/dist/utilities/getAdminPreferences.d.ts +0 -14
- package/dist/utilities/getAdminPreferences.d.ts.map +0 -1
- package/dist/utilities/getAdminPreferences.js +0 -22
- package/dist/utilities/getAdminPreferences.js.map +0 -1
- package/dist/utilities/getRequestBranch.d.ts +0 -20
- package/dist/utilities/getRequestBranch.d.ts.map +0 -1
- package/dist/utilities/getRequestBranch.js +0 -35
- package/dist/utilities/getRequestBranch.js.map +0 -1
- package/dist/utilities/matchesSearchQuery.d.ts +0 -12
- package/dist/utilities/matchesSearchQuery.d.ts.map +0 -1
- package/dist/utilities/matchesSearchQuery.js +0 -23
- package/dist/utilities/matchesSearchQuery.js.map +0 -1
- package/dist/utilities/matchesSearchQuery.spec.js.map +0 -1
- package/dist/utilities/scheduleMergeHandler.d.ts +0 -33
- package/dist/utilities/scheduleMergeHandler.d.ts.map +0 -1
- package/dist/utilities/scheduleMergeHandler.js +0 -119
- package/dist/utilities/scheduleMergeHandler.js.map +0 -1
- package/dist/views/Branch/BranchChanges/index.d.ts +0 -23
- package/dist/views/Branch/BranchChanges/index.d.ts.map +0 -1
- package/dist/views/Branch/BranchChanges/index.js +0 -150
- package/dist/views/Branch/BranchChanges/index.js.map +0 -1
- package/dist/views/Branch/ChangedDocuments/index.css +0 -118
- package/dist/views/Branch/ChangedDocuments/index.d.ts +0 -34
- package/dist/views/Branch/ChangedDocuments/index.d.ts.map +0 -1
- package/dist/views/Branch/ChangedDocuments/index.js +0 -233
- package/dist/views/Branch/ChangedDocuments/index.js.map +0 -1
- package/dist/views/Branch/DiscardChangesButton/index.d.ts +0 -16
- package/dist/views/Branch/DiscardChangesButton/index.d.ts.map +0 -1
- package/dist/views/Branch/DiscardChangesButton/index.js +0 -106
- package/dist/views/Branch/DiscardChangesButton/index.js.map +0 -1
- package/dist/views/Branch/Manage/index.d.ts +0 -11
- package/dist/views/Branch/Manage/index.d.ts.map +0 -1
- package/dist/views/Branch/Manage/index.js +0 -71
- package/dist/views/Branch/Manage/index.js.map +0 -1
- package/dist/views/Branch/MergeChangesButton/index.d.ts +0 -14
- package/dist/views/Branch/MergeChangesButton/index.d.ts.map +0 -1
- package/dist/views/Branch/MergeChangesButton/index.js +0 -55
- package/dist/views/Branch/MergeChangesButton/index.js.map +0 -1
- package/dist/views/Branch/MergeLedger/index.css +0 -137
- package/dist/views/Branch/MergeLedger/index.d.ts +0 -31
- package/dist/views/Branch/MergeLedger/index.d.ts.map +0 -1
- package/dist/views/Branch/MergeLedger/index.js +0 -211
- package/dist/views/Branch/MergeLedger/index.js.map +0 -1
- package/dist/views/Branch/ScheduledMerges/index.css +0 -83
- package/dist/views/Branch/ScheduledMerges/index.d.ts +0 -32
- package/dist/views/Branch/ScheduledMerges/index.d.ts.map +0 -1
- package/dist/views/Branch/ScheduledMerges/index.js +0 -183
- package/dist/views/Branch/ScheduledMerges/index.js.map +0 -1
- package/dist/views/Branch/index.css +0 -77
- package/dist/views/Branch/index.d.ts +0 -17
- package/dist/views/Branch/index.d.ts.map +0 -1
- package/dist/views/Branch/index.js +0 -188
- package/dist/views/Branch/index.js.map +0 -1
- package/dist/views/Branch/renderBranchDiff.d.ts +0 -29
- package/dist/views/Branch/renderBranchDiff.d.ts.map +0 -1
- package/dist/views/Branch/renderBranchDiff.js +0 -151
- package/dist/views/Branch/renderBranchDiff.js.map +0 -1
- package/dist/views/Branch/renderMergeDiff.d.ts +0 -24
- package/dist/views/Branch/renderMergeDiff.d.ts.map +0 -1
- package/dist/views/Branch/renderMergeDiff.js +0 -94
- package/dist/views/Branch/renderMergeDiff.js.map +0 -1
- package/dist/views/Branches/index.d.ts +0 -16
- package/dist/views/Branches/index.d.ts.map +0 -1
- package/dist/views/Branches/index.js +0 -54
- package/dist/views/Branches/index.js.map +0 -1
- package/dist/views/Versions/cells/Branch/index.d.ts +0 -12
- package/dist/views/Versions/cells/Branch/index.d.ts.map +0 -1
- package/dist/views/Versions/cells/Branch/index.js +0 -27
- package/dist/views/Versions/cells/Branch/index.js.map +0 -1
|
@@ -1,5 +1,62 @@
|
|
|
1
|
-
import { canAccessAdmin } from 'payload';
|
|
2
|
-
import {
|
|
1
|
+
import { canAccessAdmin, Forbidden } from 'payload';
|
|
2
|
+
import { hasScheduledPublishEnabled } from 'payload/shared';
|
|
3
|
+
import { buildUpcomingScheduleWhere } from '../elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.js';
|
|
4
|
+
import { getDocumentPermissions } from './getDocumentPermissions.js';
|
|
5
|
+
export const getUpcomingScheduledPublishHandler = async ({
|
|
6
|
+
id,
|
|
7
|
+
collectionSlug,
|
|
8
|
+
globalSlug,
|
|
9
|
+
req
|
|
10
|
+
}) => {
|
|
11
|
+
const {
|
|
12
|
+
payload
|
|
13
|
+
} = req;
|
|
14
|
+
await canAccessAdmin({
|
|
15
|
+
req
|
|
16
|
+
});
|
|
17
|
+
const collectionConfig = collectionSlug ? payload.collections[collectionSlug]?.config : undefined;
|
|
18
|
+
const globalConfig = globalSlug ? payload.config.globals.find(({
|
|
19
|
+
slug
|
|
20
|
+
}) => slug === globalSlug) : undefined;
|
|
21
|
+
const entityConfig = collectionConfig || globalConfig;
|
|
22
|
+
const hasValidTarget = Boolean(entityConfig && hasScheduledPublishEnabled(entityConfig) && (collectionConfig && id !== undefined && !globalSlug || globalConfig && !collectionSlug));
|
|
23
|
+
if (!hasValidTarget) {
|
|
24
|
+
throw new Forbidden(req.t);
|
|
25
|
+
}
|
|
26
|
+
const {
|
|
27
|
+
hasPublishPermission
|
|
28
|
+
} = await getDocumentPermissions({
|
|
29
|
+
id,
|
|
30
|
+
collectionConfig,
|
|
31
|
+
data: {},
|
|
32
|
+
globalConfig,
|
|
33
|
+
req
|
|
34
|
+
});
|
|
35
|
+
if (!hasPublishPermission) {
|
|
36
|
+
throw new Forbidden(req.t);
|
|
37
|
+
}
|
|
38
|
+
const {
|
|
39
|
+
docs
|
|
40
|
+
} = await payload.db.find({
|
|
41
|
+
collection: 'payload-jobs',
|
|
42
|
+
limit: 0,
|
|
43
|
+
sort: 'waitUntil',
|
|
44
|
+
where: buildUpcomingScheduleWhere({
|
|
45
|
+
id,
|
|
46
|
+
collectionSlug,
|
|
47
|
+
globalSlug
|
|
48
|
+
})
|
|
49
|
+
});
|
|
50
|
+
return docs.map(job => ({
|
|
51
|
+
id: job.id,
|
|
52
|
+
input: {
|
|
53
|
+
type: job.input?.type === 'unpublish' ? 'unpublish' : 'publish',
|
|
54
|
+
locale: job.input?.locale,
|
|
55
|
+
timezone: job.input?.timezone
|
|
56
|
+
},
|
|
57
|
+
waitUntil: job.waitUntil
|
|
58
|
+
}));
|
|
59
|
+
};
|
|
3
60
|
export const schedulePublishHandler = async ({
|
|
4
61
|
type,
|
|
5
62
|
date,
|
|
@@ -18,24 +75,21 @@ export const schedulePublishHandler = async ({
|
|
|
18
75
|
await canAccessAdmin({
|
|
19
76
|
req
|
|
20
77
|
});
|
|
21
|
-
// Scheduled publish operates on main (§18): the job runs later, with no branch
|
|
22
|
-
// on its request, so a job queued from a branch would publish main's copy of the
|
|
23
|
-
// document at the appointed time. Refused rather than silently retargeted —
|
|
24
|
-
// the UI hides the affordance, so reaching this means bypassing it.
|
|
25
|
-
if (req.branch && req.branch !== MAIN_BRANCH) {
|
|
26
|
-
return {
|
|
27
|
-
error: 'Scheduled publish is not available on a branch. Switch to main to schedule.'
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
78
|
try {
|
|
31
79
|
if (deleteID) {
|
|
32
80
|
await payload.delete({
|
|
33
81
|
collection: 'payload-jobs',
|
|
34
82
|
req,
|
|
35
83
|
where: {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
84
|
+
and: [{
|
|
85
|
+
id: {
|
|
86
|
+
equals: deleteID
|
|
87
|
+
}
|
|
88
|
+
}, {
|
|
89
|
+
taskSlug: {
|
|
90
|
+
equals: 'schedulePublish'
|
|
91
|
+
}
|
|
92
|
+
}]
|
|
39
93
|
}
|
|
40
94
|
});
|
|
41
95
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedulePublishHandler.js","names":["canAccessAdmin","
|
|
1
|
+
{"version":3,"file":"schedulePublishHandler.js","names":["canAccessAdmin","Forbidden","hasScheduledPublishEnabled","buildUpcomingScheduleWhere","getDocumentPermissions","getUpcomingScheduledPublishHandler","id","collectionSlug","globalSlug","req","payload","collectionConfig","collections","config","undefined","globalConfig","globals","find","slug","entityConfig","hasValidTarget","Boolean","t","hasPublishPermission","data","docs","db","collection","limit","sort","where","map","job","input","type","locale","timezone","waitUntil","schedulePublishHandler","date","deleteID","doc","global","localeToPublish","i18n","user","delete","and","equals","taskSlug","jobs","queue","task","err","error","value","relationTo","logger","message"],"sources":["../../src/utilities/schedulePublishHandler.ts"],"sourcesContent":["import type { SchedulePublishTaskInput, ServerFunction } from 'payload'\n\nimport { canAccessAdmin, Forbidden } from 'payload'\nimport { hasScheduledPublishEnabled } from 'payload/shared'\n\nimport type { UpcomingEvent } from '../elements/PublishButton/ScheduleDrawer/types.js'\n\nimport { buildUpcomingScheduleWhere } from '../elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.js'\nimport { getDocumentPermissions } from './getDocumentPermissions.js'\n\nexport type SchedulePublishHandlerArgs = {\n date?: Date\n /**\n * The job id to delete to remove a scheduled publish event\n */\n deleteID?: number | string\n localeToPublish?: string\n timezone?: string\n} & Pick<SchedulePublishTaskInput, 'doc' | 'global' | 'type'>\n\nexport type GetUpcomingScheduledPublishHandlerArgs = {\n collectionSlug?: string\n globalSlug?: string\n id?: number | string\n}\n\nexport const getUpcomingScheduledPublishHandler: ServerFunction<\n GetUpcomingScheduledPublishHandlerArgs,\n Promise<UpcomingEvent[]>\n> = async ({ id, collectionSlug, globalSlug, req }) => {\n const { payload } = req\n\n await canAccessAdmin({ req })\n\n const collectionConfig = collectionSlug ? payload.collections[collectionSlug]?.config : undefined\n const globalConfig = globalSlug\n ? payload.config.globals.find(({ slug }) => slug === globalSlug)\n : undefined\n const entityConfig = collectionConfig || globalConfig\n const hasValidTarget = Boolean(\n entityConfig &&\n hasScheduledPublishEnabled(entityConfig) &&\n ((collectionConfig && id !== undefined && !globalSlug) || (globalConfig && !collectionSlug)),\n )\n\n if (!hasValidTarget) {\n throw new Forbidden(req.t)\n }\n\n const { hasPublishPermission } = await getDocumentPermissions({\n id,\n collectionConfig,\n data: {},\n globalConfig,\n req,\n })\n\n if (!hasPublishPermission) {\n throw new Forbidden(req.t)\n }\n\n const { docs } = await payload.db.find<UpcomingEvent>({\n collection: 'payload-jobs',\n limit: 0,\n sort: 'waitUntil',\n where: buildUpcomingScheduleWhere({ id, collectionSlug, globalSlug }),\n })\n\n return docs.map((job) => ({\n id: job.id,\n input: {\n type: job.input?.type === 'unpublish' ? 'unpublish' : 'publish',\n locale: job.input?.locale,\n timezone: job.input?.timezone,\n },\n waitUntil: job.waitUntil,\n }))\n}\n\nexport const schedulePublishHandler: ServerFunction<SchedulePublishHandlerArgs> = async ({\n type,\n date,\n deleteID,\n doc,\n global,\n localeToPublish,\n req,\n timezone,\n}) => {\n const { i18n, payload, user } = req\n\n await canAccessAdmin({ req })\n\n try {\n if (deleteID) {\n await payload.delete({\n collection: 'payload-jobs',\n req,\n where: {\n and: [{ id: { equals: deleteID } }, { taskSlug: { equals: 'schedulePublish' } }],\n },\n })\n }\n\n await payload.jobs.queue({\n input: {\n type,\n doc,\n global,\n locale: localeToPublish,\n timezone,\n user: user.id,\n },\n task: 'schedulePublish',\n waitUntil: date,\n })\n } catch (err) {\n let error\n\n if (deleteID) {\n error = `Error deleting scheduled publish event with ID ${deleteID}`\n } else {\n error = `Error scheduling ${type} for `\n if (doc) {\n error += `document with ID ${doc.value} in collection ${doc.relationTo}`\n }\n }\n\n payload.logger.error({ err }, error)\n\n return {\n error,\n }\n }\n\n return { message: i18n.t('general:success') }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serverFunctionRegistry.d.ts","sourceRoot":"","sources":["../../src/utilities/serverFunctionRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAkB7C;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"serverFunctionRegistry.d.ts","sourceRoot":"","sources":["../../src/utilities/serverFunctionRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAkB7C;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAe1E,CAAA"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { renderTabHandler } from '../elements/Nav/SidebarTabs/renderTabServerFn.js';
|
|
2
2
|
import { _internal_renderFieldHandler } from '../forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js';
|
|
3
|
-
import { renderBranchDiffHandler } from '../views/Branch/renderBranchDiff.js';
|
|
4
|
-
import { renderMergeDiffHandler } from '../views/Branch/renderMergeDiff.js';
|
|
5
3
|
import { getDefaultLayoutHandler, renderWidgetHandler } from '../views/Dashboard/serverFunctions.js';
|
|
6
4
|
import { renderDocumentHandler } from '../views/Document/handleServerFunction.js';
|
|
7
5
|
import { renderDocumentSlotsHandler } from '../views/Document/renderDocumentSlots.js';
|
|
@@ -9,8 +7,7 @@ import { renderListHandler } from '../views/List/handleServerFunction.js';
|
|
|
9
7
|
import { buildFormStateHandler } from './buildFormState.js';
|
|
10
8
|
import { buildTableStateHandler } from './buildTableState.js';
|
|
11
9
|
import { copyDataFromLocaleHandler } from './copyDataFromLocale.js';
|
|
12
|
-
import {
|
|
13
|
-
import { schedulePublishHandler } from './schedulePublishHandler.js';
|
|
10
|
+
import { getUpcomingScheduledPublishHandler, schedulePublishHandler } from './schedulePublishHandler.js';
|
|
14
11
|
import { slugifyHandler } from './slugify.js';
|
|
15
12
|
import { switchLanguageHandler } from './switchLanguageHandler.js';
|
|
16
13
|
/**
|
|
@@ -32,15 +29,13 @@ export const sharedServerFunctions = {
|
|
|
32
29
|
'copy-data-from-locale': copyDataFromLocaleHandler,
|
|
33
30
|
'form-state': buildFormStateHandler,
|
|
34
31
|
'get-default-layout': getDefaultLayoutHandler,
|
|
35
|
-
'
|
|
32
|
+
'get-upcoming-scheduled-publish': getUpcomingScheduledPublishHandler,
|
|
36
33
|
'render-document': renderDocumentHandler,
|
|
37
34
|
'render-document-slots': renderDocumentSlotsHandler,
|
|
38
35
|
'render-field': _internal_renderFieldHandler,
|
|
39
36
|
'render-list': renderListHandler,
|
|
40
|
-
'render-merge-diff': renderMergeDiffHandler,
|
|
41
37
|
'render-tab': renderTabHandler,
|
|
42
38
|
'render-widget': renderWidgetHandler,
|
|
43
|
-
'schedule-merge': scheduleMergeHandler,
|
|
44
39
|
'schedule-publish': schedulePublishHandler,
|
|
45
40
|
slugify: slugifyHandler,
|
|
46
41
|
'switch-language': switchLanguageHandler,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serverFunctionRegistry.js","names":["renderTabHandler","_internal_renderFieldHandler","
|
|
1
|
+
{"version":3,"file":"serverFunctionRegistry.js","names":["renderTabHandler","_internal_renderFieldHandler","getDefaultLayoutHandler","renderWidgetHandler","renderDocumentHandler","renderDocumentSlotsHandler","renderListHandler","buildFormStateHandler","buildTableStateHandler","copyDataFromLocaleHandler","getUpcomingScheduledPublishHandler","schedulePublishHandler","slugifyHandler","switchLanguageHandler","sharedServerFunctions","slugify"],"sources":["../../src/utilities/serverFunctionRegistry.ts"],"sourcesContent":["import type { ServerFunction } from 'payload'\n\nimport { renderTabHandler } from '../elements/Nav/SidebarTabs/renderTabServerFn.js'\nimport { _internal_renderFieldHandler } from '../forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js'\nimport { getDefaultLayoutHandler, renderWidgetHandler } from '../views/Dashboard/serverFunctions.js'\nimport { renderDocumentHandler } from '../views/Document/handleServerFunction.js'\nimport { renderDocumentSlotsHandler } from '../views/Document/renderDocumentSlots.js'\nimport { renderListHandler } from '../views/List/handleServerFunction.js'\nimport { buildFormStateHandler } from './buildFormState.js'\nimport { buildTableStateHandler } from './buildTableState.js'\nimport { copyDataFromLocaleHandler } from './copyDataFromLocale.js'\nimport {\n getUpcomingScheduledPublishHandler,\n schedulePublishHandler,\n} from './schedulePublishHandler.js'\nimport { slugifyHandler } from './slugify.js'\nimport { switchLanguageHandler } from './switchLanguageHandler.js'\n\n/**\n * The complete, framework-agnostic set of Payload server functions.\n *\n * Every adapter (`@payloadcms/next`, `@payloadcms/tanstack-start`) dispatches\n * from this single registry via `createServerFunctionHandler`, so a handler\n * added here reaches every framework and the adapter lists can't drift.\n *\n * Handlers may return values containing React elements (e.g. `customComponents`\n * inside form state, the `Document` / `List` nodes from render-document /\n * render-list, the render-field / render-widget output). Adapters ship those\n * over the wire as RSC payloads: Next.js does this natively, while the TanStack\n * Start adapter passes a `transformResult` (`serializeForRsc`) to\n * `createServerFunctionHandler` that converts elements into\n * `renderServerComponent` handles.\n */\nexport const sharedServerFunctions: Record<string, ServerFunction<any, any>> = {\n 'copy-data-from-locale': copyDataFromLocaleHandler,\n 'form-state': buildFormStateHandler,\n 'get-default-layout': getDefaultLayoutHandler,\n 'get-upcoming-scheduled-publish': getUpcomingScheduledPublishHandler,\n 'render-document': renderDocumentHandler,\n 'render-document-slots': renderDocumentSlotsHandler,\n 'render-field': _internal_renderFieldHandler,\n 'render-list': renderListHandler,\n 'render-tab': renderTabHandler,\n 'render-widget': renderWidgetHandler,\n 'schedule-publish': schedulePublishHandler,\n slugify: slugifyHandler,\n 'switch-language': switchLanguageHandler,\n 'table-state': buildTableStateHandler,\n}\n"],"mappings":"AAEA,SAASA,gBAAgB,QAAQ;AACjC,SAASC,4BAA4B,QAAQ;AAC7C,SAASC,uBAAuB,EAAEC,mBAAmB,QAAQ;AAC7D,SAASC,qBAAqB,QAAQ;AACtC,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,iBAAiB,QAAQ;AAClC,SAASC,qBAAqB,QAAQ;AACtC,SAASC,sBAAsB,QAAQ;AACvC,SAASC,yBAAyB,QAAQ;AAC1C,SACEC,kCAAkC,EAClCC,sBAAsB,QACjB;AACP,SAASC,cAAc,QAAQ;AAC/B,SAASC,qBAAqB,QAAQ;AAEtC;;;;;;;;;;;;;;;AAeA,OAAO,MAAMC,qBAAA,GAAkE;EAC7E,yBAAyBL,yBAAA;EACzB,cAAcF,qBAAA;EACd,sBAAsBL,uBAAA;EACtB,kCAAkCQ,kCAAA;EAClC,mBAAmBN,qBAAA;EACnB,yBAAyBC,0BAAA;EACzB,gBAAgBJ,4BAAA;EAChB,eAAeK,iBAAA;EACf,cAAcN,gBAAA;EACd,iBAAiBG,mBAAA;EACjB,oBAAoBQ,sBAAA;EACpBI,OAAA,EAASH,cAAA;EACT,mBAAmBC,qBAAA;EACnB,eAAeL;AACjB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slugify.d.ts","sourceRoot":"","sources":["../../src/utilities/slugify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAE7C,OAAO,EAML,KAAK,cAAc,EACnB,KAAK,yBAAyB,EAE/B,MAAM,SAAS,CAAA;AAGhB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,EAAE,cAAc,CACzC,yBAAyB,EACzB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"slugify.d.ts","sourceRoot":"","sources":["../../src/utilities/slugify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAE7C,OAAO,EAML,KAAK,cAAc,EACnB,KAAK,yBAAyB,EAE/B,MAAM,SAAS,CAAA;AAGhB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,EAAE,cAAc,CACzC,yBAAyB,EACzB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAuF7B,CAAA"}
|
|
@@ -53,6 +53,7 @@ export const slugifyHandler = async args => {
|
|
|
53
53
|
// a row-filtered (`Where`) result is treated as not allowed, since scoping the probe to readable
|
|
54
54
|
// rows would break uniqueness.
|
|
55
55
|
const canRead = await executeAccess({
|
|
56
|
+
slug: collectionConfig.slug,
|
|
56
57
|
disableErrors: true,
|
|
57
58
|
req
|
|
58
59
|
}, collectionConfig.access.read);
|
|
@@ -74,6 +75,7 @@ export const slugifyHandler = async args => {
|
|
|
74
75
|
draftsEnabled: hasDraftsEnabled(collectionConfig),
|
|
75
76
|
field: field.name,
|
|
76
77
|
locale: localeToScope,
|
|
78
|
+
overrideAccess: true,
|
|
77
79
|
req,
|
|
78
80
|
value: result
|
|
79
81
|
});
|
|
@@ -83,6 +85,7 @@ export const slugifyHandler = async args => {
|
|
|
83
85
|
collection: collectionConfig,
|
|
84
86
|
field: field.name,
|
|
85
87
|
locale: localeToScope,
|
|
88
|
+
overrideAccess: true,
|
|
86
89
|
req,
|
|
87
90
|
slugify
|
|
88
91
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slugify.js","names":["executeAccess","getFieldByPath","getSlugFallbackValue","getUniqueFieldValue","hasDraftsEnabled","UnauthorizedError","slugify","defaultSlugify","slugifyHandler","args","id","collectionSlug","data","globalSlug","locale","path","req","valueToSlugify","user","docConfig","payload","collections","config","globals","find","g","slug","Error","field","fields","flattenedFields","customSlugify","custom","undefined","result","collectionConfig","type","canRead","disableErrors","access","read","localeToScope","localized","excludeId","collection","draftsEnabled","name","value"],"sources":["../../src/utilities/slugify.ts"],"sourcesContent":["import type { Slugify } from 'payload/shared'\n\nimport {\n executeAccess,\n getFieldByPath,\n getSlugFallbackValue,\n getUniqueFieldValue,\n hasDraftsEnabled,\n type ServerFunction,\n type SlugifyServerFunctionArgs,\n UnauthorizedError,\n} from 'payload'\nimport { slugify as defaultSlugify } from 'payload/shared'\n\n/**\n * This server function is directly related to the {@link https://payloadcms.com/docs/fields/slug | Slug Field}.\n * This is a server function that is used to invoke the user's custom slugify function from the client.\n * This pattern is required, as there is no other way for us to pass their function across the client-server boundary.\n * - Not through props\n * - Not from a server function defined within a server component (see below)\n * When a server function contains non-serializable data within its closure, it gets passed through the boundary (and breaks).\n * The only way to pass server functions to the client (that contain non-serializable data) is if it is globally defined.\n * But we also cannot define this function alongside the server component, as we will not have access to their custom slugify function.\n * See `ServerFunctionsProvider` for more details.\n */\nexport const slugifyHandler: ServerFunction<\n SlugifyServerFunctionArgs,\n Promise<ReturnType<Slugify>>\n> = async (args) => {\n const { id, collectionSlug, data, globalSlug, locale, path, req, valueToSlugify } = args\n\n if (!req.user) {\n throw new UnauthorizedError()\n }\n\n const docConfig = collectionSlug\n ? req.payload.collections[collectionSlug]?.config\n : globalSlug\n ? req.payload.config.globals.find((g) => g.slug === globalSlug)\n : null\n\n if (!docConfig) {\n throw new Error()\n }\n\n const { field } = getFieldByPath({\n config: req.payload.config,\n fields: docConfig.flattenedFields,\n path,\n })\n\n const customSlugify = (\n typeof field?.custom?.slugify === 'function' ? field.custom.slugify : undefined\n ) as Slugify\n\n const slugify = (valueToSlugify: unknown) =>\n customSlugify\n ? customSlugify({ data, req, valueToSlugify })\n : defaultSlugify(valueToSlugify as string)\n\n const result = await slugify(valueToSlugify)\n\n const collectionConfig = collectionSlug ? req.payload.collections[collectionSlug]?.config : null\n\n // Uniqueness dedupe only applies to a collection's slug field. Globals have no collection to\n // dedupe against, so their result is returned as-is.\n if (!collectionConfig || !field || field.type !== 'slug' || !('name' in field)) {\n return result\n }\n\n // Probing reads across the whole collection with the raw db, so require unrestricted read access —\n // a row-filtered (`Where`) result is treated as not allowed, since scoping the probe to readable\n // rows would break uniqueness.\n const canRead = await executeAccess({ disableErrors: true, req }
|
|
1
|
+
{"version":3,"file":"slugify.js","names":["executeAccess","getFieldByPath","getSlugFallbackValue","getUniqueFieldValue","hasDraftsEnabled","UnauthorizedError","slugify","defaultSlugify","slugifyHandler","args","id","collectionSlug","data","globalSlug","locale","path","req","valueToSlugify","user","docConfig","payload","collections","config","globals","find","g","slug","Error","field","fields","flattenedFields","customSlugify","custom","undefined","result","collectionConfig","type","canRead","disableErrors","access","read","localeToScope","localized","excludeId","collection","draftsEnabled","name","overrideAccess","value"],"sources":["../../src/utilities/slugify.ts"],"sourcesContent":["import type { Slugify } from 'payload/shared'\n\nimport {\n executeAccess,\n getFieldByPath,\n getSlugFallbackValue,\n getUniqueFieldValue,\n hasDraftsEnabled,\n type ServerFunction,\n type SlugifyServerFunctionArgs,\n UnauthorizedError,\n} from 'payload'\nimport { slugify as defaultSlugify } from 'payload/shared'\n\n/**\n * This server function is directly related to the {@link https://payloadcms.com/docs/fields/slug | Slug Field}.\n * This is a server function that is used to invoke the user's custom slugify function from the client.\n * This pattern is required, as there is no other way for us to pass their function across the client-server boundary.\n * - Not through props\n * - Not from a server function defined within a server component (see below)\n * When a server function contains non-serializable data within its closure, it gets passed through the boundary (and breaks).\n * The only way to pass server functions to the client (that contain non-serializable data) is if it is globally defined.\n * But we also cannot define this function alongside the server component, as we will not have access to their custom slugify function.\n * See `ServerFunctionsProvider` for more details.\n */\nexport const slugifyHandler: ServerFunction<\n SlugifyServerFunctionArgs,\n Promise<ReturnType<Slugify>>\n> = async (args) => {\n const { id, collectionSlug, data, globalSlug, locale, path, req, valueToSlugify } = args\n\n if (!req.user) {\n throw new UnauthorizedError()\n }\n\n const docConfig = collectionSlug\n ? req.payload.collections[collectionSlug]?.config\n : globalSlug\n ? req.payload.config.globals.find((g) => g.slug === globalSlug)\n : null\n\n if (!docConfig) {\n throw new Error()\n }\n\n const { field } = getFieldByPath({\n config: req.payload.config,\n fields: docConfig.flattenedFields,\n path,\n })\n\n const customSlugify = (\n typeof field?.custom?.slugify === 'function' ? field.custom.slugify : undefined\n ) as Slugify\n\n const slugify = (valueToSlugify: unknown) =>\n customSlugify\n ? customSlugify({ data, req, valueToSlugify })\n : defaultSlugify(valueToSlugify as string)\n\n const result = await slugify(valueToSlugify)\n\n const collectionConfig = collectionSlug ? req.payload.collections[collectionSlug]?.config : null\n\n // Uniqueness dedupe only applies to a collection's slug field. Globals have no collection to\n // dedupe against, so their result is returned as-is.\n if (!collectionConfig || !field || field.type !== 'slug' || !('name' in field)) {\n return result\n }\n\n // Probing reads across the whole collection with the raw db, so require unrestricted read access —\n // a row-filtered (`Where`) result is treated as not allowed, since scoping the probe to readable\n // rows would break uniqueness.\n const canRead = await executeAccess(\n { slug: collectionConfig.slug, disableErrors: true, req },\n collectionConfig.access.read,\n )\n\n if (canRead !== true) {\n return result\n }\n\n // A localized slug is unique per-locale, so scope the probe to the current locale — otherwise it\n // dedupes against the default locale and can hand back a colliding value. The client passes the\n // active admin locale; fall back to the request's own locale.\n const localeToScope = field.localized ? (locale ?? req.locale ?? undefined) : undefined\n\n // The current doc is excluded so a regenerate can reuse its own value rather than bump past it.\n const excludeId = typeof id === 'string' || typeof id === 'number' ? id : undefined\n\n // A source resolved to a value: dedupe it the same way the next save would, so the generate button\n // can't hand back a slug that's already taken. With no source, return the `<singular>-N` fallback.\n if (result) {\n return getUniqueFieldValue({\n id: excludeId,\n collection: collectionConfig.slug,\n draftsEnabled: hasDraftsEnabled(collectionConfig),\n field: field.name,\n locale: localeToScope,\n overrideAccess: true,\n req,\n value: result,\n })\n }\n\n return getSlugFallbackValue({\n id: excludeId,\n collection: collectionConfig,\n field: field.name,\n locale: localeToScope,\n overrideAccess: true,\n req,\n slugify,\n })\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/API/index.client.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/API/index.client.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAiB9B,OAAO,aAAa,CAAA;AAKpB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAmPjC,CAAA"}
|
|
@@ -12,7 +12,6 @@ import { TextInput } from '../../fields/Text/Input.js';
|
|
|
12
12
|
import { Form } from '../../forms/Form/index.js';
|
|
13
13
|
import { MinimizeMaximizeIcon } from '../../icons/MinimizeMaximize/index.js';
|
|
14
14
|
import { NewTabIcon } from '../../icons/NewTab/index.js';
|
|
15
|
-
import { useBranchParam } from '../../providers/Branch/index.js';
|
|
16
15
|
import { useConfig } from '../../providers/Config/index.js';
|
|
17
16
|
import { useDocumentInfo } from '../../providers/DocumentInfo/index.js';
|
|
18
17
|
import { useLocale } from '../../providers/Locale/index.js';
|
|
@@ -35,10 +34,8 @@ export const APIViewClient = () => {
|
|
|
35
34
|
i18n,
|
|
36
35
|
t
|
|
37
36
|
} = useTranslation();
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
} = useLocale();
|
|
41
|
-
const branch = useBranchParam();
|
|
37
|
+
const currentLocale = useLocale();
|
|
38
|
+
const code = currentLocale?.code;
|
|
42
39
|
const {
|
|
43
40
|
config: {
|
|
44
41
|
defaultDepth,
|
|
@@ -90,18 +87,12 @@ export const APIViewClient = () => {
|
|
|
90
87
|
}
|
|
91
88
|
}, [serverURL]);
|
|
92
89
|
const trashParam = typeof initialData?.deletedAt === 'string';
|
|
93
|
-
const
|
|
90
|
+
const params = new URLSearchParams({
|
|
94
91
|
depth,
|
|
95
92
|
draft: String(draft),
|
|
96
93
|
locale: locale_0,
|
|
97
94
|
trash: trashParam ? 'true' : 'false'
|
|
98
|
-
};
|
|
99
|
-
// The view inspects the document being edited, which on a branch is the branch's
|
|
100
|
-
// copy. Without this it shows main's, contradicting every other view.
|
|
101
|
-
if (branch) {
|
|
102
|
-
searchParamsRecord.branch = branch;
|
|
103
|
-
}
|
|
104
|
-
const params = new URLSearchParams(searchParamsRecord).toString();
|
|
95
|
+
}).toString();
|
|
105
96
|
const fetchURL = formatAdminURL({
|
|
106
97
|
apiRoute,
|
|
107
98
|
path: `${docEndpoint}?${params}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.client.js","names":["formatAdminURL","hasDraftsEnabled","React","toast","Button","CodeEditor","CodeEditorLazy","CheckboxField","NumberField","TextInput","Form","MinimizeMaximizeIcon","NewTabIcon","useBranchParam","useConfig","useDocumentInfo","useLocale","useSearchParams","useTranslation","SetDocumentStepNav","LocaleSelector","baseClass","APIViewClient","id","collectionSlug","globalSlug","initialData","isTrashed","searchParams","i18n","t","code","branch","config","defaultDepth","localization","routes","api","apiRoute","serverURL","getEntityConfig","collectionConfig","globalConfig","localeOptions","locales","map","locale","label","value","draftsEnabled","docEndpoint","undefined","data","setData","useState","draft","setDraft","get","setLocale","depth","setDepth","toString","authenticated","setAuthenticated","fullscreen","setFullscreen","origin","setOrigin","jsonString","useMemo","JSON","stringify","recalculatedHeightAt","setRecalculatedHeightAt","useEffect","count","window","location","trashParam","deletedAt","searchParamsRecord","String","trash","params","URLSearchParams","fetchURL","path","fetchData","res","fetch","credentials","headers","language","method","json","error","console","_jsxs","className","filter","Boolean","join","_jsx","globalLabel","pluralLabel","labels","plural","useAsTitle","admin","view","initialState","initialValue","valid","Number","onChange","field","name","step","max","min","htmlAttributes","readOnly","buttonStyle","el","icon","size","margin","newTab","url","isMinimized","onClick","defaultLanguage","height","options","fixedOverflowWidgets","folding","lineNumbers","stickyScroll","enabled","wordWrap"],"sources":["../../../src/views/API/index.client.tsx"],"sourcesContent":["'use client'\n\nimport { formatAdminURL, hasDraftsEnabled } from 'payload/shared'\nimport * as React from 'react'\nimport { toast } from 'sonner'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { CodeEditor as CodeEditorLazy } from '../../elements/CodeEditor/index.js'\nimport { CheckboxField } from '../../fields/Checkbox/index.js'\nimport { NumberField } from '../../fields/Number/index.js'\nimport { TextInput } from '../../fields/Text/Input.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { MinimizeMaximizeIcon } from '../../icons/MinimizeMaximize/index.js'\nimport { NewTabIcon } from '../../icons/NewTab/index.js'\nimport { useBranchParam } from '../../providers/Branch/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useSearchParams } from '../../providers/RouterAdapter/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { SetDocumentStepNav } from '../../views/Edit/SetDocumentStepNav/index.js'\nimport './index.css'\nimport { LocaleSelector } from './LocaleSelector/index.js'\n\nconst baseClass = 'query-inspector'\n\nexport const APIViewClient: React.FC = () => {\n const { id, collectionSlug, globalSlug, initialData, isTrashed } = useDocumentInfo()\n\n const searchParams = useSearchParams()\n const { i18n, t } = useTranslation()\n const { code } = useLocale()\n const branch = useBranchParam()\n\n const {\n config: {\n defaultDepth,\n localization,\n routes: { api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const globalConfig = getEntityConfig({ globalSlug })\n\n const localeOptions =\n localization &&\n localization.locales.map((locale) => ({ label: locale.label, value: locale.code }))\n\n let draftsEnabled: boolean = false\n let docEndpoint: `/${string}` = undefined\n\n if (collectionConfig) {\n draftsEnabled = hasDraftsEnabled(collectionConfig)\n docEndpoint = `/${collectionSlug}/${id}`\n }\n\n if (globalConfig) {\n draftsEnabled = hasDraftsEnabled(globalConfig)\n docEndpoint = `/globals/${globalSlug}`\n }\n\n const [data, setData] = React.useState<any>(initialData)\n const [draft, setDraft] = React.useState<boolean>(searchParams.get('draft') === 'true')\n const [locale, setLocale] = React.useState<string>(searchParams?.get('locale') || code)\n const [depth, setDepth] = React.useState<string>(\n searchParams.get('depth') || defaultDepth.toString(),\n )\n const [authenticated, setAuthenticated] = React.useState<boolean>(true)\n const [fullscreen, setFullscreen] = React.useState<boolean>(false)\n const [origin, setOrigin] = React.useState<string>(serverURL || '')\n\n const jsonString = React.useMemo(\n () => (data === undefined ? '' : JSON.stringify(data, null, 2)),\n [data],\n )\n\n // readOnly editors never fire onChange, so bump a counter to re-fit height on data change\n const [recalculatedHeightAt, setRecalculatedHeightAt] = React.useState(0)\n React.useEffect(() => {\n setRecalculatedHeightAt((count) => count + 1)\n }, [jsonString])\n\n // Set the origin to the window.location.origin in useEffect to avoid hydration errors\n React.useEffect(() => {\n if (!serverURL) {\n setOrigin(window.location.origin)\n }\n }, [serverURL])\n\n const trashParam = typeof initialData?.deletedAt === 'string'\n\n const searchParamsRecord: Record<string, string> = {\n depth,\n draft: String(draft),\n locale,\n trash: trashParam ? 'true' : 'false',\n }\n\n // The view inspects the document being edited, which on a branch is the branch's\n // copy. Without this it shows main's, contradicting every other view.\n if (branch) {\n searchParamsRecord.branch = branch\n }\n\n const params = new URLSearchParams(searchParamsRecord).toString()\n\n const fetchURL = formatAdminURL({\n apiRoute,\n path: `${docEndpoint}?${params}`,\n serverURL: origin,\n })\n\n React.useEffect(() => {\n const fetchData = async () => {\n try {\n const res = await fetch(fetchURL, {\n credentials: authenticated ? 'include' : 'omit',\n headers: {\n 'Accept-Language': i18n.language,\n },\n method: 'GET',\n })\n\n try {\n const json = await res.json()\n setData(json)\n } catch (error) {\n toast.error('Error parsing response')\n console.error(error) // eslint-disable-line no-console\n }\n } catch (error) {\n toast.error('Error making request')\n console.error(error) // eslint-disable-line no-console\n }\n }\n\n void fetchData()\n }, [i18n.language, fetchURL, authenticated])\n\n return (\n <div\n className={[baseClass, fullscreen && `${baseClass}--fullscreen`].filter(Boolean).join(' ')}\n >\n <SetDocumentStepNav\n collectionSlug={collectionSlug}\n globalLabel={globalConfig?.label}\n globalSlug={globalSlug}\n id={id}\n isTrashed={isTrashed}\n pluralLabel={collectionConfig ? collectionConfig?.labels?.plural : undefined}\n useAsTitle={collectionConfig ? collectionConfig?.admin?.useAsTitle : undefined}\n view=\"API\"\n />\n <div className={`${baseClass}__content`}>\n <div className={`${baseClass}__configuration`}>\n <Form\n initialState={{\n authenticated: {\n initialValue: authenticated || false,\n valid: true,\n value: authenticated || false,\n },\n depth: {\n initialValue: Number(depth || 0),\n valid: true,\n value: Number(depth || 0),\n },\n draft: {\n initialValue: draft || false,\n valid: true,\n value: draft || false,\n },\n locale: {\n initialValue: locale,\n valid: true,\n value: locale,\n },\n }}\n >\n <div className={`${baseClass}__form-fields`}>\n {localeOptions && (\n <LocaleSelector localeOptions={localeOptions} onChange={setLocale} />\n )}\n <NumberField\n field={{\n name: 'depth',\n admin: {\n step: 1,\n },\n label: t('general:depth'),\n max: 10,\n min: 0,\n }}\n onChange={(value) => setDepth(value?.toString())}\n path=\"depth\"\n />\n {draftsEnabled && (\n <CheckboxField\n field={{\n name: 'draft',\n label: t('version:draft'),\n }}\n onChange={() => setDraft(!draft)}\n path=\"draft\"\n />\n )}\n <CheckboxField\n field={{\n name: 'authenticated',\n label: t('authentication:authenticated'),\n }}\n onChange={() => setAuthenticated(!authenticated)}\n path=\"authenticated\"\n />\n </div>\n </Form>\n </div>\n <div className={`${baseClass}__results-wrapper`}>\n <div className={`${baseClass}__results-bar`}>\n <div className={`${baseClass}__api-url-field`}>\n <TextInput\n className={`${baseClass}__api-url-input`}\n htmlAttributes={{\n 'aria-label': 'API URL',\n readOnly: true,\n }}\n path=\"api-url\"\n readOnly={false}\n value={fetchURL}\n />\n </div>\n <div className={`${baseClass}__results-bar-actions`}>\n <Button\n aria-label={t('general:openInNewWindow')}\n buttonStyle=\"secondary\"\n className={`${baseClass}__api-url-open-button`}\n el=\"anchor\"\n icon={<NewTabIcon size={16} />}\n margin={false}\n newTab\n size=\"large\"\n url={fetchURL}\n />\n <Button\n aria-label=\"toggle fullscreen\"\n buttonStyle=\"secondary\"\n className={`${baseClass}__toggle-fullscreen-button`}\n icon={<MinimizeMaximizeIcon isMinimized={!fullscreen} />}\n margin={false}\n onClick={() => setFullscreen(!fullscreen)}\n size=\"large\"\n />\n </div>\n </div>\n <div className={`${baseClass}__results`}>\n <CodeEditorLazy\n defaultLanguage=\"json\"\n height=\"100%\"\n options={{\n fixedOverflowWidgets: true,\n folding: true,\n lineNumbers: 'on',\n stickyScroll: { enabled: false },\n wordWrap: 'off',\n }}\n readOnly\n recalculatedHeightAt={recalculatedHeightAt}\n value={jsonString}\n />\n </div>\n </div>\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.client.js","names":["formatAdminURL","hasDraftsEnabled","React","toast","Button","CodeEditor","CodeEditorLazy","CheckboxField","NumberField","TextInput","Form","MinimizeMaximizeIcon","NewTabIcon","useConfig","useDocumentInfo","useLocale","useSearchParams","useTranslation","SetDocumentStepNav","LocaleSelector","baseClass","APIViewClient","id","collectionSlug","globalSlug","initialData","isTrashed","searchParams","i18n","t","currentLocale","code","config","defaultDepth","localization","routes","api","apiRoute","serverURL","getEntityConfig","collectionConfig","globalConfig","localeOptions","locales","map","locale","label","value","draftsEnabled","docEndpoint","undefined","data","setData","useState","draft","setDraft","get","setLocale","depth","setDepth","toString","authenticated","setAuthenticated","fullscreen","setFullscreen","origin","setOrigin","jsonString","useMemo","JSON","stringify","recalculatedHeightAt","setRecalculatedHeightAt","useEffect","count","window","location","trashParam","deletedAt","params","URLSearchParams","String","trash","fetchURL","path","fetchData","res","fetch","credentials","headers","language","method","json","error","console","_jsxs","className","filter","Boolean","join","_jsx","globalLabel","pluralLabel","labels","plural","useAsTitle","admin","view","initialState","initialValue","valid","Number","onChange","field","name","step","max","min","htmlAttributes","readOnly","buttonStyle","el","icon","size","margin","newTab","url","isMinimized","onClick","defaultLanguage","height","options","fixedOverflowWidgets","folding","lineNumbers","stickyScroll","enabled","wordWrap"],"sources":["../../../src/views/API/index.client.tsx"],"sourcesContent":["'use client'\n\nimport { formatAdminURL, hasDraftsEnabled } from 'payload/shared'\nimport * as React from 'react'\nimport { toast } from 'sonner'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { CodeEditor as CodeEditorLazy } from '../../elements/CodeEditor/index.js'\nimport { CheckboxField } from '../../fields/Checkbox/index.js'\nimport { NumberField } from '../../fields/Number/index.js'\nimport { TextInput } from '../../fields/Text/Input.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { MinimizeMaximizeIcon } from '../../icons/MinimizeMaximize/index.js'\nimport { NewTabIcon } from '../../icons/NewTab/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useSearchParams } from '../../providers/RouterAdapter/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { SetDocumentStepNav } from '../../views/Edit/SetDocumentStepNav/index.js'\nimport './index.css'\nimport { LocaleSelector } from './LocaleSelector/index.js'\n\nconst baseClass = 'query-inspector'\n\nexport const APIViewClient: React.FC = () => {\n const { id, collectionSlug, globalSlug, initialData, isTrashed } = useDocumentInfo()\n\n const searchParams = useSearchParams()\n const { i18n, t } = useTranslation()\n const currentLocale = useLocale()\n const code = currentLocale?.code\n\n const {\n config: {\n defaultDepth,\n localization,\n routes: { api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const globalConfig = getEntityConfig({ globalSlug })\n\n const localeOptions =\n localization &&\n localization.locales.map((locale) => ({ label: locale.label, value: locale.code }))\n\n let draftsEnabled: boolean = false\n let docEndpoint: `/${string}` = undefined\n\n if (collectionConfig) {\n draftsEnabled = hasDraftsEnabled(collectionConfig)\n docEndpoint = `/${collectionSlug}/${id}`\n }\n\n if (globalConfig) {\n draftsEnabled = hasDraftsEnabled(globalConfig)\n docEndpoint = `/globals/${globalSlug}`\n }\n\n const [data, setData] = React.useState<any>(initialData)\n const [draft, setDraft] = React.useState<boolean>(searchParams.get('draft') === 'true')\n const [locale, setLocale] = React.useState<string>(searchParams?.get('locale') || code)\n const [depth, setDepth] = React.useState<string>(\n searchParams.get('depth') || defaultDepth.toString(),\n )\n const [authenticated, setAuthenticated] = React.useState<boolean>(true)\n const [fullscreen, setFullscreen] = React.useState<boolean>(false)\n const [origin, setOrigin] = React.useState<string>(serverURL || '')\n\n const jsonString = React.useMemo(\n () => (data === undefined ? '' : JSON.stringify(data, null, 2)),\n [data],\n )\n\n // readOnly editors never fire onChange, so bump a counter to re-fit height on data change\n const [recalculatedHeightAt, setRecalculatedHeightAt] = React.useState(0)\n React.useEffect(() => {\n setRecalculatedHeightAt((count) => count + 1)\n }, [jsonString])\n\n // Set the origin to the window.location.origin in useEffect to avoid hydration errors\n React.useEffect(() => {\n if (!serverURL) {\n setOrigin(window.location.origin)\n }\n }, [serverURL])\n\n const trashParam = typeof initialData?.deletedAt === 'string'\n\n const params = new URLSearchParams({\n depth,\n draft: String(draft),\n locale,\n trash: trashParam ? 'true' : 'false',\n }).toString()\n\n const fetchURL = formatAdminURL({\n apiRoute,\n path: `${docEndpoint}?${params}`,\n serverURL: origin,\n })\n\n React.useEffect(() => {\n const fetchData = async () => {\n try {\n const res = await fetch(fetchURL, {\n credentials: authenticated ? 'include' : 'omit',\n headers: {\n 'Accept-Language': i18n.language,\n },\n method: 'GET',\n })\n\n try {\n const json = await res.json()\n setData(json)\n } catch (error) {\n toast.error('Error parsing response')\n console.error(error) // eslint-disable-line no-console\n }\n } catch (error) {\n toast.error('Error making request')\n console.error(error) // eslint-disable-line no-console\n }\n }\n\n void fetchData()\n }, [i18n.language, fetchURL, authenticated])\n\n return (\n <div\n className={[baseClass, fullscreen && `${baseClass}--fullscreen`].filter(Boolean).join(' ')}\n >\n <SetDocumentStepNav\n collectionSlug={collectionSlug}\n globalLabel={globalConfig?.label}\n globalSlug={globalSlug}\n id={id}\n isTrashed={isTrashed}\n pluralLabel={collectionConfig ? collectionConfig?.labels?.plural : undefined}\n useAsTitle={collectionConfig ? collectionConfig?.admin?.useAsTitle : undefined}\n view=\"API\"\n />\n <div className={`${baseClass}__content`}>\n <div className={`${baseClass}__configuration`}>\n <Form\n initialState={{\n authenticated: {\n initialValue: authenticated || false,\n valid: true,\n value: authenticated || false,\n },\n depth: {\n initialValue: Number(depth || 0),\n valid: true,\n value: Number(depth || 0),\n },\n draft: {\n initialValue: draft || false,\n valid: true,\n value: draft || false,\n },\n locale: {\n initialValue: locale,\n valid: true,\n value: locale,\n },\n }}\n >\n <div className={`${baseClass}__form-fields`}>\n {localeOptions && (\n <LocaleSelector localeOptions={localeOptions} onChange={setLocale} />\n )}\n <NumberField\n field={{\n name: 'depth',\n admin: {\n step: 1,\n },\n label: t('general:depth'),\n max: 10,\n min: 0,\n }}\n onChange={(value) => setDepth(value?.toString())}\n path=\"depth\"\n />\n {draftsEnabled && (\n <CheckboxField\n field={{\n name: 'draft',\n label: t('version:draft'),\n }}\n onChange={() => setDraft(!draft)}\n path=\"draft\"\n />\n )}\n <CheckboxField\n field={{\n name: 'authenticated',\n label: t('authentication:authenticated'),\n }}\n onChange={() => setAuthenticated(!authenticated)}\n path=\"authenticated\"\n />\n </div>\n </Form>\n </div>\n <div className={`${baseClass}__results-wrapper`}>\n <div className={`${baseClass}__results-bar`}>\n <div className={`${baseClass}__api-url-field`}>\n <TextInput\n className={`${baseClass}__api-url-input`}\n htmlAttributes={{\n 'aria-label': 'API URL',\n readOnly: true,\n }}\n path=\"api-url\"\n readOnly={false}\n value={fetchURL}\n />\n </div>\n <div className={`${baseClass}__results-bar-actions`}>\n <Button\n aria-label={t('general:openInNewWindow')}\n buttonStyle=\"secondary\"\n className={`${baseClass}__api-url-open-button`}\n el=\"anchor\"\n icon={<NewTabIcon size={16} />}\n margin={false}\n newTab\n size=\"large\"\n url={fetchURL}\n />\n <Button\n aria-label=\"toggle fullscreen\"\n buttonStyle=\"secondary\"\n className={`${baseClass}__toggle-fullscreen-button`}\n icon={<MinimizeMaximizeIcon isMinimized={!fullscreen} />}\n margin={false}\n onClick={() => setFullscreen(!fullscreen)}\n size=\"large\"\n />\n </div>\n </div>\n <div className={`${baseClass}__results`}>\n <CodeEditorLazy\n defaultLanguage=\"json\"\n height=\"100%\"\n options={{\n fixedOverflowWidgets: true,\n folding: true,\n lineNumbers: 'on',\n stickyScroll: { enabled: false },\n wordWrap: 'off',\n }}\n readOnly\n recalculatedHeightAt={recalculatedHeightAt}\n value={jsonString}\n />\n </div>\n </div>\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDocumentView.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getDocumentView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,gBAAgB,EAChB,yBAAyB,EACzB,6BAA6B,EAC7B,eAAe,EACf,qBAAqB,EACrB,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"getDocumentView.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getDocumentView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,gBAAgB,EAChB,yBAAyB,EACzB,6BAA6B,EAC7B,eAAe,EACf,qBAAqB,EACrB,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAW9C,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,MAAM,IAAI;IAClD,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;IAC5B,eAAe,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;CAC3C,CAAA;AAED,eAAO,MAAM,eAAe,+EAMzB;IACD,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,MAAM,EAAE,eAAe,CAAA;IACvB,cAAc,EAAE,6BAA6B,GAAG,yBAAyB,CAAA;IACzE,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB,KAAG;IACF,IAAI,EAAE,YAAY,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;CAChB,GAAG,IA2VH,CAAA"}
|
|
@@ -1,27 +1,11 @@
|
|
|
1
|
-
import { branchesCollectionSlug } from 'payload/shared';
|
|
2
1
|
// eslint-disable-next-line payload/no-imports-from-exports-dir -- Server component must reference exports/client bundle for proper client boundary in prod builds
|
|
3
|
-
import {
|
|
2
|
+
import { DefaultEditView } from '../../exports/client/index.js';
|
|
4
3
|
import { APIView as DefaultAPIView } from '../API/index.js';
|
|
5
|
-
import { BranchChangesView } from '../Branch/index.js';
|
|
6
4
|
import { UnauthorizedViewWithGutter } from '../Unauthorized/index.js';
|
|
7
5
|
import { VersionView as DefaultVersionView } from '../Version/index.js';
|
|
8
6
|
import { VersionsView as DefaultVersionsView } from '../Versions/index.js';
|
|
9
7
|
import { getCustomDocumentViewByKey } from './getCustomDocumentViewByKey.js';
|
|
10
8
|
import { getCustomViewByRoute } from './getCustomViewByRoute.js';
|
|
11
|
-
/**
|
|
12
|
-
* A branch's default view is what it changed, not its own form.
|
|
13
|
-
*
|
|
14
|
-
* The form — a name and a description — is incidental next to the reason the
|
|
15
|
-
* branch exists, so it moves one click away to `/manage`. Selected here by direct
|
|
16
|
-
* import rather than a config component path, the way `HierarchyView` is, so no
|
|
17
|
-
* import map is involved.
|
|
18
|
-
*/
|
|
19
|
-
const getBranchView = (collectionConfig, segment) => {
|
|
20
|
-
if (collectionConfig?.slug !== branchesCollectionSlug) {
|
|
21
|
-
return null;
|
|
22
|
-
}
|
|
23
|
-
return segment === 'manage' ? BranchManageView : BranchChangesView;
|
|
24
|
-
};
|
|
25
9
|
export const getDocumentView = ({
|
|
26
10
|
collectionConfig,
|
|
27
11
|
config,
|
|
@@ -77,7 +61,7 @@ export const getDocumentView = ({
|
|
|
77
61
|
viewKey = customViewKey;
|
|
78
62
|
View = CustomViewComponent;
|
|
79
63
|
} else {
|
|
80
|
-
View = getCustomDocumentViewByKey(views, 'default') ||
|
|
64
|
+
View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView;
|
|
81
65
|
}
|
|
82
66
|
break;
|
|
83
67
|
}
|
|
@@ -128,9 +112,6 @@ export const getDocumentView = ({
|
|
|
128
112
|
if (customViewKey) {
|
|
129
113
|
viewKey = customViewKey;
|
|
130
114
|
View = CustomViewComponent;
|
|
131
|
-
} else {
|
|
132
|
-
// --> /collections/payload-branches/:id/manage
|
|
133
|
-
View = getBranchView(collectionConfig, segment4);
|
|
134
115
|
}
|
|
135
116
|
break;
|
|
136
117
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDocumentView.js","names":["branchesCollectionSlug","BranchManageView","DefaultEditView","APIView","DefaultAPIView","BranchChangesView","UnauthorizedViewWithGutter","VersionView","DefaultVersionView","VersionsView","DefaultVersionsView","getCustomDocumentViewByKey","getCustomViewByRoute","getBranchView","collectionConfig","segment","slug","getDocumentView","config","docPermissions","globalConfig","routeSegments","UnauthorizedView","View","viewKey","routes","admin","adminRoute","views","components","read","Error","collectionEntity","collectionSlug","segment3","segment4","segment5","remainingSegments","length","create","baseRoute","filter","Boolean","join","currentRoute","Component","CustomViewComponent","customViewKey","undefined","readVersions","isTrashedVersionView","globalEntity","globalSlug"],"sources":["../../../src/views/Document/getDocumentView.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n PayloadComponent,\n SanitizedCollectionConfig,\n SanitizedCollectionPermission,\n SanitizedConfig,\n SanitizedGlobalConfig,\n SanitizedGlobalPermission,\n} from 'payload'\nimport type React from 'react'\n\nimport { branchesCollectionSlug } from 'payload/shared'\n\nimport type { ViewToRender } from './index.js'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir -- Server component must reference exports/client bundle for proper client boundary in prod builds\nimport { BranchManageView, DefaultEditView } from '../../exports/client/index.js'\nimport { APIView as DefaultAPIView } from '../API/index.js'\nimport { BranchChangesView } from '../Branch/index.js'\nimport { UnauthorizedViewWithGutter } from '../Unauthorized/index.js'\nimport { VersionView as DefaultVersionView } from '../Version/index.js'\nimport { VersionsView as DefaultVersionsView } from '../Versions/index.js'\nimport { getCustomDocumentViewByKey } from './getCustomDocumentViewByKey.js'\nimport { getCustomViewByRoute } from './getCustomViewByRoute.js'\n\nexport type ViewFromConfig<TProps extends object> = {\n Component?: React.FC<TProps>\n ComponentConfig?: PayloadComponent<TProps>\n}\n\n/**\n * A branch's default view is what it changed, not its own form.\n *\n * The form — a name and a description — is incidental next to the reason the\n * branch exists, so it moves one click away to `/manage`. Selected here by direct\n * import rather than a config component path, the way `HierarchyView` is, so no\n * import map is involved.\n */\nconst getBranchView = (\n collectionConfig: SanitizedCollectionConfig | undefined,\n segment: string | undefined,\n): null | ViewToRender => {\n if (collectionConfig?.slug !== branchesCollectionSlug) {\n return null\n }\n\n return segment === 'manage' ? (BranchManageView as ViewToRender) : BranchChangesView\n}\n\nexport const getDocumentView = ({\n collectionConfig,\n config,\n docPermissions,\n globalConfig,\n routeSegments,\n}: {\n collectionConfig?: SanitizedCollectionConfig\n config: SanitizedConfig\n docPermissions: SanitizedCollectionPermission | SanitizedGlobalPermission\n globalConfig?: SanitizedGlobalConfig\n routeSegments: string[]\n}): {\n View: ViewToRender\n viewKey: string\n} | null => {\n const UnauthorizedView = UnauthorizedViewWithGutter as React.FC<AdminViewServerProps>\n\n // Conditionally import and lazy load the default view\n let View: ViewToRender = null\n let viewKey: string\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n const views =\n (collectionConfig && collectionConfig?.admin?.components?.views) ||\n (globalConfig && globalConfig?.admin?.components?.views)\n\n if (!docPermissions?.read) {\n throw new Error('not-found')\n }\n\n if (collectionConfig) {\n const [collectionEntity, collectionSlug, segment3, segment4, segment5, ...remainingSegments] =\n routeSegments\n\n // --> /collections/:collectionSlug/:id\n // --> /collections/:collectionSlug/create\n switch (routeSegments.length) {\n case 3: {\n switch (segment3) {\n // --> /collections/:collectionSlug/create\n case 'create': {\n if ('create' in docPermissions && docPermissions.create) {\n View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView\n } else {\n View = UnauthorizedView\n }\n break\n }\n\n // --> /collections/:collectionSlug/:id\n default: {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n 'collections',\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute(\n {\n baseRoute,\n currentRoute,\n views,\n },\n )\n\n if (customViewKey) {\n viewKey = customViewKey\n View = CustomViewComponent\n } else {\n View =\n getCustomDocumentViewByKey(views, 'default') ||\n getBranchView(collectionConfig, undefined) ||\n DefaultEditView\n }\n\n break\n }\n }\n break\n }\n\n // --> /collections/:collectionSlug/:id/api\n // --> /collections/:collectionSlug/:id/versions\n // --> /collections/:collectionSlug/:id/<custom-segment>\n // --> /collections/:collectionSlug/trash/:id\n case 4: {\n // --> /collections/:collectionSlug/trash/:id\n if (segment3 === 'trash' && segment4) {\n View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView\n break\n }\n switch (segment4) {\n // --> /collections/:collectionSlug/:id/api\n case 'api': {\n View = getCustomDocumentViewByKey(views, 'api') || DefaultAPIView\n break\n }\n\n case 'versions': {\n // --> /collections/:collectionSlug/:id/versions\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'versions') || DefaultVersionsView\n } else {\n View = UnauthorizedView\n }\n break\n }\n\n // --> /collections/:collectionSlug/:id/<custom-segment>\n default: {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n 'collections',\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute(\n {\n baseRoute,\n currentRoute,\n views,\n },\n )\n\n if (customViewKey) {\n viewKey = customViewKey\n View = CustomViewComponent\n } else {\n // --> /collections/payload-branches/:id/manage\n View = getBranchView(collectionConfig, segment4)\n }\n\n break\n }\n }\n break\n }\n\n // --> /collections/:collectionSlug/trash/:id/api\n // --> /collections/:collectionSlug/trash/:id/versions\n // --> /collections/:collectionSlug/trash/:id/<custom-segment>\n // --> /collections/:collectionSlug/:id/versions/:version\n case 5: {\n // --> /collections/:slug/trash/:id/api\n if (segment3 === 'trash') {\n switch (segment5) {\n case 'api': {\n View = getCustomDocumentViewByKey(views, 'api') || DefaultAPIView\n break\n }\n // --> /collections/:slug/trash/:id/versions\n case 'versions': {\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'versions') || DefaultVersionsView\n } else {\n View = UnauthorizedView\n }\n break\n }\n\n default: {\n View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView\n break\n }\n }\n // --> /collections/:collectionSlug/:id/versions/:version\n } else if (segment4 === 'versions') {\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'version') || DefaultVersionView\n } else {\n View = UnauthorizedView\n }\n } else {\n // --> /collections/:collectionSlug/:id/<custom>/<custom>\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n collectionEntity,\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n View = CustomViewComponent\n }\n }\n\n break\n }\n\n // --> /collections/:collectionSlug/trash/:id/versions/:version\n // --> /collections/:collectionSlug/:id/<custom>/<custom>/<custom...>\n default: {\n // --> /collections/:collectionSlug/trash/:id/versions/:version\n const isTrashedVersionView = segment3 === 'trash' && segment5 === 'versions'\n\n if (isTrashedVersionView) {\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'version') || DefaultVersionView\n } else {\n View = UnauthorizedView\n }\n } else {\n // --> /collections/:collectionSlug/:id/<custom>/<custom>/<custom...>\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n collectionEntity,\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n View = CustomViewComponent\n }\n }\n\n break\n }\n }\n }\n\n if (globalConfig) {\n const [globalEntity, globalSlug, segment3, ...remainingSegments] = routeSegments\n\n switch (routeSegments.length) {\n // --> /globals/:globalSlug\n case 2: {\n View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView\n break\n }\n\n case 3: {\n // --> /globals/:globalSlug/api\n // --> /globals/:globalSlug/versions\n // --> /globals/:globalSlug/<custom-segment>\n switch (segment3) {\n // --> /globals/:globalSlug/api\n case 'api': {\n View = getCustomDocumentViewByKey(views, 'api') || DefaultAPIView\n break\n }\n\n case 'versions': {\n // --> /globals/:globalSlug/versions\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'versions') || DefaultVersionsView\n } else {\n View = UnauthorizedView\n }\n break\n }\n\n // --> /globals/:globalSlug/<custom-segment>\n default: {\n if (docPermissions?.read) {\n const baseRoute = [adminRoute, globalEntity, globalSlug, segment3]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment3, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } =\n getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n\n View = CustomViewComponent\n } else {\n View = DefaultEditView\n }\n } else {\n View = UnauthorizedView\n }\n break\n }\n }\n break\n }\n\n // --> /globals/:globalSlug/versions/:version\n // --> /globals/:globalSlug/<custom-segment>/<custom-segment>\n default: {\n // --> /globals/:globalSlug/versions/:version\n if (segment3 === 'versions') {\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'version') || DefaultVersionView\n } else {\n View = UnauthorizedView\n }\n } else {\n // --> /globals/:globalSlug/<custom-segment>/<custom-segment>\n const baseRoute = [adminRoute !== '/' && adminRoute, 'globals', globalSlug]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment3, ...remainingSegments].filter(Boolean).join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n View = CustomViewComponent\n }\n }\n\n break\n }\n }\n }\n\n return {\n View,\n viewKey,\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"getDocumentView.js","names":["DefaultEditView","APIView","DefaultAPIView","UnauthorizedViewWithGutter","VersionView","DefaultVersionView","VersionsView","DefaultVersionsView","getCustomDocumentViewByKey","getCustomViewByRoute","getDocumentView","collectionConfig","config","docPermissions","globalConfig","routeSegments","UnauthorizedView","View","viewKey","routes","admin","adminRoute","views","components","read","Error","collectionEntity","collectionSlug","segment3","segment4","segment5","remainingSegments","length","create","baseRoute","filter","Boolean","join","currentRoute","Component","CustomViewComponent","customViewKey","readVersions","isTrashedVersionView","globalEntity","globalSlug"],"sources":["../../../src/views/Document/getDocumentView.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n PayloadComponent,\n SanitizedCollectionConfig,\n SanitizedCollectionPermission,\n SanitizedConfig,\n SanitizedGlobalConfig,\n SanitizedGlobalPermission,\n} from 'payload'\nimport type React from 'react'\n\nimport type { ViewToRender } from './index.js'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir -- Server component must reference exports/client bundle for proper client boundary in prod builds\nimport { DefaultEditView } from '../../exports/client/index.js'\nimport { APIView as DefaultAPIView } from '../API/index.js'\nimport { UnauthorizedViewWithGutter } from '../Unauthorized/index.js'\nimport { VersionView as DefaultVersionView } from '../Version/index.js'\nimport { VersionsView as DefaultVersionsView } from '../Versions/index.js'\nimport { getCustomDocumentViewByKey } from './getCustomDocumentViewByKey.js'\nimport { getCustomViewByRoute } from './getCustomViewByRoute.js'\n\nexport type ViewFromConfig<TProps extends object> = {\n Component?: React.FC<TProps>\n ComponentConfig?: PayloadComponent<TProps>\n}\n\nexport const getDocumentView = ({\n collectionConfig,\n config,\n docPermissions,\n globalConfig,\n routeSegments,\n}: {\n collectionConfig?: SanitizedCollectionConfig\n config: SanitizedConfig\n docPermissions: SanitizedCollectionPermission | SanitizedGlobalPermission\n globalConfig?: SanitizedGlobalConfig\n routeSegments: string[]\n}): {\n View: ViewToRender\n viewKey: string\n} | null => {\n const UnauthorizedView = UnauthorizedViewWithGutter as React.FC<AdminViewServerProps>\n\n // Conditionally import and lazy load the default view\n let View: ViewToRender = null\n let viewKey: string\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n const views =\n (collectionConfig && collectionConfig?.admin?.components?.views) ||\n (globalConfig && globalConfig?.admin?.components?.views)\n\n if (!docPermissions?.read) {\n throw new Error('not-found')\n }\n\n if (collectionConfig) {\n const [collectionEntity, collectionSlug, segment3, segment4, segment5, ...remainingSegments] =\n routeSegments\n\n // --> /collections/:collectionSlug/:id\n // --> /collections/:collectionSlug/create\n switch (routeSegments.length) {\n case 3: {\n switch (segment3) {\n // --> /collections/:collectionSlug/create\n case 'create': {\n if ('create' in docPermissions && docPermissions.create) {\n View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView\n } else {\n View = UnauthorizedView\n }\n break\n }\n\n // --> /collections/:collectionSlug/:id\n default: {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n 'collections',\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute(\n {\n baseRoute,\n currentRoute,\n views,\n },\n )\n\n if (customViewKey) {\n viewKey = customViewKey\n View = CustomViewComponent\n } else {\n View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView\n }\n\n break\n }\n }\n break\n }\n\n // --> /collections/:collectionSlug/:id/api\n // --> /collections/:collectionSlug/:id/versions\n // --> /collections/:collectionSlug/:id/<custom-segment>\n // --> /collections/:collectionSlug/trash/:id\n case 4: {\n // --> /collections/:collectionSlug/trash/:id\n if (segment3 === 'trash' && segment4) {\n View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView\n break\n }\n switch (segment4) {\n // --> /collections/:collectionSlug/:id/api\n case 'api': {\n View = getCustomDocumentViewByKey(views, 'api') || DefaultAPIView\n break\n }\n\n case 'versions': {\n // --> /collections/:collectionSlug/:id/versions\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'versions') || DefaultVersionsView\n } else {\n View = UnauthorizedView\n }\n break\n }\n\n // --> /collections/:collectionSlug/:id/<custom-segment>\n default: {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n 'collections',\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute(\n {\n baseRoute,\n currentRoute,\n views,\n },\n )\n\n if (customViewKey) {\n viewKey = customViewKey\n View = CustomViewComponent\n }\n\n break\n }\n }\n break\n }\n\n // --> /collections/:collectionSlug/trash/:id/api\n // --> /collections/:collectionSlug/trash/:id/versions\n // --> /collections/:collectionSlug/trash/:id/<custom-segment>\n // --> /collections/:collectionSlug/:id/versions/:version\n case 5: {\n // --> /collections/:slug/trash/:id/api\n if (segment3 === 'trash') {\n switch (segment5) {\n case 'api': {\n View = getCustomDocumentViewByKey(views, 'api') || DefaultAPIView\n break\n }\n // --> /collections/:slug/trash/:id/versions\n case 'versions': {\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'versions') || DefaultVersionsView\n } else {\n View = UnauthorizedView\n }\n break\n }\n\n default: {\n View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView\n break\n }\n }\n // --> /collections/:collectionSlug/:id/versions/:version\n } else if (segment4 === 'versions') {\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'version') || DefaultVersionView\n } else {\n View = UnauthorizedView\n }\n } else {\n // --> /collections/:collectionSlug/:id/<custom>/<custom>\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n collectionEntity,\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n View = CustomViewComponent\n }\n }\n\n break\n }\n\n // --> /collections/:collectionSlug/trash/:id/versions/:version\n // --> /collections/:collectionSlug/:id/<custom>/<custom>/<custom...>\n default: {\n // --> /collections/:collectionSlug/trash/:id/versions/:version\n const isTrashedVersionView = segment3 === 'trash' && segment5 === 'versions'\n\n if (isTrashedVersionView) {\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'version') || DefaultVersionView\n } else {\n View = UnauthorizedView\n }\n } else {\n // --> /collections/:collectionSlug/:id/<custom>/<custom>/<custom...>\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n collectionEntity,\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n View = CustomViewComponent\n }\n }\n\n break\n }\n }\n }\n\n if (globalConfig) {\n const [globalEntity, globalSlug, segment3, ...remainingSegments] = routeSegments\n\n switch (routeSegments.length) {\n // --> /globals/:globalSlug\n case 2: {\n View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView\n break\n }\n\n case 3: {\n // --> /globals/:globalSlug/api\n // --> /globals/:globalSlug/versions\n // --> /globals/:globalSlug/<custom-segment>\n switch (segment3) {\n // --> /globals/:globalSlug/api\n case 'api': {\n View = getCustomDocumentViewByKey(views, 'api') || DefaultAPIView\n break\n }\n\n case 'versions': {\n // --> /globals/:globalSlug/versions\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'versions') || DefaultVersionsView\n } else {\n View = UnauthorizedView\n }\n break\n }\n\n // --> /globals/:globalSlug/<custom-segment>\n default: {\n if (docPermissions?.read) {\n const baseRoute = [adminRoute, globalEntity, globalSlug, segment3]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment3, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } =\n getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n\n View = CustomViewComponent\n } else {\n View = DefaultEditView\n }\n } else {\n View = UnauthorizedView\n }\n break\n }\n }\n break\n }\n\n // --> /globals/:globalSlug/versions/:version\n // --> /globals/:globalSlug/<custom-segment>/<custom-segment>\n default: {\n // --> /globals/:globalSlug/versions/:version\n if (segment3 === 'versions') {\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'version') || DefaultVersionView\n } else {\n View = UnauthorizedView\n }\n } else {\n // --> /globals/:globalSlug/<custom-segment>/<custom-segment>\n const baseRoute = [adminRoute !== '/' && adminRoute, 'globals', globalSlug]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment3, ...remainingSegments].filter(Boolean).join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n View = CustomViewComponent\n }\n }\n\n break\n }\n }\n }\n\n return {\n View,\n viewKey,\n }\n}\n"],"mappings":"AAaA;AACA,SAASA,eAAe,QAAQ;AAChC,SAASC,OAAA,IAAWC,cAAc,QAAQ;AAC1C,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,WAAA,IAAeC,kBAAkB,QAAQ;AAClD,SAASC,YAAA,IAAgBC,mBAAmB,QAAQ;AACpD,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,oBAAoB,QAAQ;AAOrC,OAAO,MAAMC,eAAA,GAAkBA,CAAC;EAC9BC,gBAAgB;EAChBC,MAAM;EACNC,cAAc;EACdC,YAAY;EACZC;AAAa,CAOd;EAIC,MAAMC,gBAAA,GAAmBb,0BAAA;EAEzB;EACA,IAAIc,IAAA,GAAqB;EACzB,IAAIC,OAAA;EAEJ,MAAM;IACJC,MAAA,EAAQ;MAAEC,KAAA,EAAOC;IAAU;EAAE,CAC9B,GAAGT,MAAA;EAEJ,MAAMU,KAAA,GACJX,gBAAC,IAAoBA,gBAAA,EAAkBS,KAAA,EAAOG,UAAA,EAAYD,KAAA,IACzDR,YAAA,IAAgBA,YAAA,EAAcM,KAAA,EAAOG,UAAA,EAAYD,KAAA;EAEpD,IAAI,CAACT,cAAA,EAAgBW,IAAA,EAAM;IACzB,MAAM,IAAIC,KAAA,CAAM;EAClB;EAEA,IAAId,gBAAA,EAAkB;IACpB,MAAM,CAACe,gBAAA,EAAkBC,cAAA,EAAgBC,QAAA,EAAUC,QAAA,EAAUC,QAAA,EAAU,GAAGC,iBAAA,CAAkB,GAC1FhB,aAAA;IAEF;IACA;IACA,QAAQA,aAAA,CAAciB,MAAM;MAC1B,KAAK;QAAG;UACN,QAAQJ,QAAA;YACN;YACA,KAAK;cAAU;gBACb,IAAI,YAAYf,cAAA,IAAkBA,cAAA,CAAeoB,MAAM,EAAE;kBACvDhB,IAAA,GAAOT,0BAAA,CAA2Bc,KAAA,EAAO,cAActB,eAAA;gBACzD,OAAO;kBACLiB,IAAA,GAAOD,gBAAA;gBACT;gBACA;cACF;YAEA;YACA;cAAS;gBACP,MAAMkB,SAAA,GAAY,CAChBb,UAAA,KAAe,OAAOA,UAAA,EACtB,eACAM,cAAA,EACAC,QAAA,CACD,CACEO,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;gBAER,MAAMC,YAAA,GAAe,CAACJ,SAAA,EAAWL,QAAA,EAAUC,QAAA,E,GAAaC,iBAAA,CAAkB,CACvEI,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;gBAER,MAAM;kBAAEE,SAAA,EAAWC,mBAAmB;kBAAEtB,OAAA,EAASuB;gBAAa,CAAE,GAAGhC,oBAAA,CACjE;kBACEyB,SAAA;kBACAI,YAAA;kBACAhB;gBACF;gBAGF,IAAImB,aAAA,EAAe;kBACjBvB,OAAA,GAAUuB,aAAA;kBACVxB,IAAA,GAAOuB,mBAAA;gBACT,OAAO;kBACLvB,IAAA,GAAOT,0BAAA,CAA2Bc,KAAA,EAAO,cAActB,eAAA;gBACzD;gBAEA;cACF;UACF;UACA;QACF;MAEA;MACA;MACA;MACA;MACA,KAAK;QAAG;UACN;UACA,IAAI4B,QAAA,KAAa,WAAWC,QAAA,EAAU;YACpCZ,IAAA,GAAOT,0BAAA,CAA2Bc,KAAA,EAAO,cAActB,eAAA;YACvD;UACF;UACA,QAAQ6B,QAAA;YACN;YACA,KAAK;cAAO;gBACVZ,IAAA,GAAOT,0BAAA,CAA2Bc,KAAA,EAAO,UAAUpB,cAAA;gBACnD;cACF;YAEA,KAAK;cAAY;gBACf;gBACA,IAAIW,cAAA,EAAgB6B,YAAA,EAAc;kBAChCzB,IAAA,GAAOT,0BAAA,CAA2Bc,KAAA,EAAO,eAAef,mBAAA;gBAC1D,OAAO;kBACLU,IAAA,GAAOD,gBAAA;gBACT;gBACA;cACF;YAEA;YACA;cAAS;gBACP,MAAMkB,SAAA,GAAY,CAChBb,UAAA,KAAe,OAAOA,UAAA,EACtB,eACAM,cAAA,EACAC,QAAA,CACD,CACEO,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;gBAER,MAAMC,YAAA,GAAe,CAACJ,SAAA,EAAWL,QAAA,EAAUC,QAAA,E,GAAaC,iBAAA,CAAkB,CACvEI,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;gBAER,MAAM;kBAAEE,SAAA,EAAWC,mBAAmB;kBAAEtB,OAAA,EAASuB;gBAAa,CAAE,GAAGhC,oBAAA,CACjE;kBACEyB,SAAA;kBACAI,YAAA;kBACAhB;gBACF;gBAGF,IAAImB,aAAA,EAAe;kBACjBvB,OAAA,GAAUuB,aAAA;kBACVxB,IAAA,GAAOuB,mBAAA;gBACT;gBAEA;cACF;UACF;UACA;QACF;MAEA;MACA;MACA;MACA;MACA,KAAK;QAAG;UACN;UACA,IAAIZ,QAAA,KAAa,SAAS;YACxB,QAAQE,QAAA;cACN,KAAK;gBAAO;kBACVb,IAAA,GAAOT,0BAAA,CAA2Bc,KAAA,EAAO,UAAUpB,cAAA;kBACnD;gBACF;cACA;cACA,KAAK;gBAAY;kBACf,IAAIW,cAAA,EAAgB6B,YAAA,EAAc;oBAChCzB,IAAA,GAAOT,0BAAA,CAA2Bc,KAAA,EAAO,eAAef,mBAAA;kBAC1D,OAAO;oBACLU,IAAA,GAAOD,gBAAA;kBACT;kBACA;gBACF;cAEA;gBAAS;kBACPC,IAAA,GAAOT,0BAAA,CAA2Bc,KAAA,EAAO,cAActB,eAAA;kBACvD;gBACF;YACF;YACA;UACF,OAAO,IAAI6B,QAAA,KAAa,YAAY;YAClC,IAAIhB,cAAA,EAAgB6B,YAAA,EAAc;cAChCzB,IAAA,GAAOT,0BAAA,CAA2Bc,KAAA,EAAO,cAAcjB,kBAAA;YACzD,OAAO;cACLY,IAAA,GAAOD,gBAAA;YACT;UACF,OAAO;YACL;YACA,MAAMkB,SAAA,GAAY,CAChBb,UAAA,KAAe,OAAOA,UAAA,EACtBK,gBAAA,EACAC,cAAA,EACAC,QAAA,CACD,CACEO,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;YAER,MAAMC,YAAA,GAAe,CAACJ,SAAA,EAAWL,QAAA,EAAUC,QAAA,E,GAAaC,iBAAA,CAAkB,CACvEI,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;YAER,MAAM;cAAEE,SAAA,EAAWC,mBAAmB;cAAEtB,OAAA,EAASuB;YAAa,CAAE,GAAGhC,oBAAA,CAAqB;cACtFyB,SAAA;cACAI,YAAA;cACAhB;YACF;YAEA,IAAImB,aAAA,EAAe;cACjBvB,OAAA,GAAUuB,aAAA;cACVxB,IAAA,GAAOuB,mBAAA;YACT;UACF;UAEA;QACF;MAEA;MACA;MACA;QAAS;UACP;UACA,MAAMG,oBAAA,GAAuBf,QAAA,KAAa,WAAWE,QAAA,KAAa;UAElE,IAAIa,oBAAA,EAAsB;YACxB,IAAI9B,cAAA,EAAgB6B,YAAA,EAAc;cAChCzB,IAAA,GAAOT,0BAAA,CAA2Bc,KAAA,EAAO,cAAcjB,kBAAA;YACzD,OAAO;cACLY,IAAA,GAAOD,gBAAA;YACT;UACF,OAAO;YACL;YACA,MAAMkB,SAAA,GAAY,CAChBb,UAAA,KAAe,OAAOA,UAAA,EACtBK,gBAAA,EACAC,cAAA,EACAC,QAAA,CACD,CACEO,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;YAER,MAAMC,YAAA,GAAe,CAACJ,SAAA,EAAWL,QAAA,EAAUC,QAAA,E,GAAaC,iBAAA,CAAkB,CACvEI,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;YAER,MAAM;cAAEE,SAAA,EAAWC,mBAAmB;cAAEtB,OAAA,EAASuB;YAAa,CAAE,GAAGhC,oBAAA,CAAqB;cACtFyB,SAAA;cACAI,YAAA;cACAhB;YACF;YAEA,IAAImB,aAAA,EAAe;cACjBvB,OAAA,GAAUuB,aAAA;cACVxB,IAAA,GAAOuB,mBAAA;YACT;UACF;UAEA;QACF;IACF;EACF;EAEA,IAAI1B,YAAA,EAAc;IAChB,MAAM,CAAC8B,YAAA,EAAcC,UAAA,EAAYjB,QAAA,EAAU,GAAGG,iBAAA,CAAkB,GAAGhB,aAAA;IAEnE,QAAQA,aAAA,CAAciB,MAAM;MAC1B;MACA,KAAK;QAAG;UACNf,IAAA,GAAOT,0BAAA,CAA2Bc,KAAA,EAAO,cAActB,eAAA;UACvD;QACF;MAEA,KAAK;QAAG;UACN;UACA;UACA;UACA,QAAQ4B,QAAA;YACN;YACA,KAAK;cAAO;gBACVX,IAAA,GAAOT,0BAAA,CAA2Bc,KAAA,EAAO,UAAUpB,cAAA;gBACnD;cACF;YAEA,KAAK;cAAY;gBACf;gBACA,IAAIW,cAAA,EAAgB6B,YAAA,EAAc;kBAChCzB,IAAA,GAAOT,0BAAA,CAA2Bc,KAAA,EAAO,eAAef,mBAAA;gBAC1D,OAAO;kBACLU,IAAA,GAAOD,gBAAA;gBACT;gBACA;cACF;YAEA;YACA;cAAS;gBACP,IAAIH,cAAA,EAAgBW,IAAA,EAAM;kBACxB,MAAMU,SAAA,GAAY,CAACb,UAAA,EAAYuB,YAAA,EAAcC,UAAA,EAAYjB,QAAA,CAAS,CAC/DO,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;kBAER,MAAMC,YAAA,GAAe,CAACJ,SAAA,EAAWN,QAAA,E,GAAaG,iBAAA,CAAkB,CAC7DI,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;kBAER,MAAM;oBAAEE,SAAA,EAAWC,mBAAmB;oBAAEtB,OAAA,EAASuB;kBAAa,CAAE,GAC9DhC,oBAAA,CAAqB;oBACnByB,SAAA;oBACAI,YAAA;oBACAhB;kBACF;kBAEF,IAAImB,aAAA,EAAe;oBACjBvB,OAAA,GAAUuB,aAAA;oBAEVxB,IAAA,GAAOuB,mBAAA;kBACT,OAAO;oBACLvB,IAAA,GAAOjB,eAAA;kBACT;gBACF,OAAO;kBACLiB,IAAA,GAAOD,gBAAA;gBACT;gBACA;cACF;UACF;UACA;QACF;MAEA;MACA;MACA;QAAS;UACP;UACA,IAAIY,QAAA,KAAa,YAAY;YAC3B,IAAIf,cAAA,EAAgB6B,YAAA,EAAc;cAChCzB,IAAA,GAAOT,0BAAA,CAA2Bc,KAAA,EAAO,cAAcjB,kBAAA;YACzD,OAAO;cACLY,IAAA,GAAOD,gBAAA;YACT;UACF,OAAO;YACL;YACA,MAAMkB,SAAA,GAAY,CAACb,UAAA,KAAe,OAAOA,UAAA,EAAY,WAAWwB,UAAA,CAAW,CACxEV,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;YAER,MAAMC,YAAA,GAAe,CAACJ,SAAA,EAAWN,QAAA,E,GAAaG,iBAAA,CAAkB,CAACI,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;YAEtF,MAAM;cAAEE,SAAA,EAAWC,mBAAmB;cAAEtB,OAAA,EAASuB;YAAa,CAAE,GAAGhC,oBAAA,CAAqB;cACtFyB,SAAA;cACAI,YAAA;cACAhB;YACF;YAEA,IAAImB,aAAA,EAAe;cACjBvB,OAAA,GAAUuB,aAAA;cACVxB,IAAA,GAAOuB,mBAAA;YACT;UACF;UAEA;QACF;IACF;EACF;EAEA,OAAO;IACLvB,IAAA;IACAC;EACF;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMetaBySegment.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getMetaBySegment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EACV,gBAAgB,EAEhB,UAAU,EACV,yBAAyB,EACzB,eAAe,EACf,qBAAqB,EACtB,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"getMetaBySegment.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getMetaBySegment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EACV,gBAAgB,EAEhB,UAAU,EACV,yBAAyB,EACzB,eAAe,EACf,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAUhB,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IACjD,gBAAgB,CAAC,EAAE,IAAI,GAAG,yBAAyB,CAAA;IACnD,MAAM,EAAE,eAAe,CAAA;IACvB,YAAY,CAAC,EAAE,IAAI,GAAG,qBAAqB,CAAA;IAC3C,IAAI,EAAE,UAAU,CAAA;IAChB,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;CACvF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,0EAO1B,oBAAoB,KAAG,OAAO,CAAC,UAAU,CAiI3C,CAAA"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { branchesCollectionSlug } from 'payload/shared';
|
|
2
1
|
import { generateAPIViewMetadata } from '../API/generateAPIViewMetadata.js';
|
|
3
2
|
import { generateVersionViewMetadata } from '../Version/generateVersionViewMetadata.js';
|
|
4
3
|
import { generateVersionsViewMetadata } from '../Versions/generateVersionsViewMetadata.js';
|
|
@@ -39,14 +38,6 @@ export const getMetaBySegment = async ({
|
|
|
39
38
|
case 'api':
|
|
40
39
|
fn = generateAPIViewMetadata;
|
|
41
40
|
break;
|
|
42
|
-
case 'manage':
|
|
43
|
-
// A branch's own fields, which is the edit view under another name.
|
|
44
|
-
// Without this the segment resolves to no generator and the page title
|
|
45
|
-
// reads "Not Found" over a perfectly good form.
|
|
46
|
-
if (collectionConfig?.slug === branchesCollectionSlug) {
|
|
47
|
-
fn = generateEditViewMetadata;
|
|
48
|
-
}
|
|
49
|
-
break;
|
|
50
41
|
case 'versions':
|
|
51
42
|
fn = generateVersionsViewMetadata;
|
|
52
43
|
break;
|