@payloadcms/ui 4.0.0-internal.532221d → 4.0.0-internal.567a487
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 +5 -0
- package/dist/elements/AppHeader/index.d.ts.map +1 -1
- package/dist/elements/AppHeader/index.js +3 -0
- package/dist/elements/AppHeader/index.js.map +1 -1
- package/dist/elements/ArrayAction/index.d.ts +1 -0
- package/dist/elements/ArrayAction/index.d.ts.map +1 -1
- package/dist/elements/ArrayAction/index.js +45 -32
- package/dist/elements/ArrayAction/index.js.map +1 -1
- package/dist/elements/Autosave/index.d.ts.map +1 -1
- package/dist/elements/Autosave/index.js +3 -0
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/BranchSelector/NewBranchModal/index.css +46 -0
- package/dist/elements/BranchSelector/NewBranchModal/index.d.ts +12 -0
- package/dist/elements/BranchSelector/NewBranchModal/index.d.ts.map +1 -0
- package/dist/elements/BranchSelector/NewBranchModal/index.js +174 -0
- package/dist/elements/BranchSelector/NewBranchModal/index.js.map +1 -0
- package/dist/elements/BranchSelector/index.css +172 -0
- package/dist/elements/BranchSelector/index.d.ts +13 -0
- package/dist/elements/BranchSelector/index.d.ts.map +1 -0
- package/dist/elements/BranchSelector/index.js +255 -0
- package/dist/elements/BranchSelector/index.js.map +1 -0
- package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +6 -2
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/Button/index.css +2 -2
- package/dist/elements/ChangeSummary/index.css +18 -0
- package/dist/elements/ChangeSummary/index.d.ts +28 -0
- package/dist/elements/ChangeSummary/index.d.ts.map +1 -0
- package/dist/elements/ChangeSummary/index.js +147 -0
- package/dist/elements/ChangeSummary/index.js.map +1 -0
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts +10 -0
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts.map +1 -1
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +55 -0
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.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/Combobox/index.css +84 -23
- package/dist/elements/Combobox/index.d.ts +21 -0
- package/dist/elements/Combobox/index.d.ts.map +1 -1
- package/dist/elements/Combobox/index.js +66 -21
- package/dist/elements/Combobox/index.js.map +1 -1
- package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
- package/dist/elements/DeleteDocument/index.js +9 -2
- 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 +4 -1
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.css +5 -3
- package/dist/elements/DocumentHeader/Tabs/tabs/BranchChangesPill/index.css +12 -0
- package/dist/elements/DocumentHeader/Tabs/tabs/BranchChangesPill/index.d.ts +12 -0
- package/dist/elements/DocumentHeader/Tabs/tabs/BranchChangesPill/index.d.ts.map +1 -0
- package/dist/elements/DocumentHeader/Tabs/tabs/BranchChangesPill/index.js +83 -0
- package/dist/elements/DocumentHeader/Tabs/tabs/BranchChangesPill/index.js.map +1 -0
- package/dist/elements/DocumentHeader/Tabs/tabs/BranchSettingsTab/index.d.ts +14 -0
- package/dist/elements/DocumentHeader/Tabs/tabs/BranchSettingsTab/index.d.ts.map +1 -0
- package/dist/elements/DocumentHeader/Tabs/tabs/BranchSettingsTab/index.js +28 -0
- package/dist/elements/DocumentHeader/Tabs/tabs/BranchSettingsTab/index.js.map +1 -0
- package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/index.js +32 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
- package/dist/elements/Drawer/index.css +10 -4
- package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +3 -2
- package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
- package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
- package/dist/elements/DuplicateDocument/index.js +6 -1
- 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 +4 -1
- package/dist/elements/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/index.js +4 -1
- 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 +4 -1
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.js.map +1 -1
- package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts +2 -1
- package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js +2 -0
- 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 +3 -0
- 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 +4 -1
- 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 +3 -0
- 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 +4 -1
- package/dist/elements/Hierarchy/Tree/useChildren.js.map +1 -1
- package/dist/elements/IDLabel/index.css +6 -0
- package/dist/elements/IDLabel/index.d.ts +1 -1
- package/dist/elements/IDLabel/index.d.ts.map +1 -1
- package/dist/elements/IDLabel/index.js +16 -21
- package/dist/elements/IDLabel/index.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts +1 -7
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +26 -32
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +6 -2
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
- package/dist/elements/MergeBranch/context.d.ts +67 -0
- package/dist/elements/MergeBranch/context.d.ts.map +1 -0
- package/dist/elements/MergeBranch/context.js +47 -0
- package/dist/elements/MergeBranch/context.js.map +1 -0
- package/dist/elements/MergeBranch/index.css +136 -0
- package/dist/elements/MergeBranch/index.d.ts +15 -0
- package/dist/elements/MergeBranch/index.d.ts.map +1 -0
- package/dist/elements/MergeBranch/index.js +545 -0
- package/dist/elements/MergeBranch/index.js.map +1 -0
- package/dist/elements/MergeBranch/provider.d.ts +12 -0
- package/dist/elements/MergeBranch/provider.d.ts.map +1 -0
- package/dist/elements/MergeBranch/provider.js +19 -0
- package/dist/elements/MergeBranch/provider.js.map +1 -0
- package/dist/elements/MergeBranch/slug.d.ts +9 -0
- package/dist/elements/MergeBranch/slug.d.ts.map +1 -0
- package/dist/elements/MergeBranch/slug.js +8 -0
- package/dist/elements/MergeBranch/slug.js.map +1 -0
- package/dist/elements/Nav/context.js +2 -2
- package/dist/elements/Nav/context.js.map +1 -1
- package/dist/elements/Nav/getNavPrefs.d.ts +6 -0
- package/dist/elements/Nav/getNavPrefs.d.ts.map +1 -1
- package/dist/elements/Nav/getNavPrefs.js +14 -46
- 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 +4 -1
- package/dist/elements/PermanentlyDeleteButton/index.js.map +1 -1
- package/dist/elements/Popup/PopupButtonList/index.css +1 -1
- package/dist/elements/Popup/index.js +1 -1
- package/dist/elements/Popup/index.js.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.js +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
- package/dist/elements/PublishButton/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/index.js +6 -2
- 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 +4 -1
- package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/QueryPresets/QueryPresetBar/index.js +1 -3
- package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js +5 -2
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/RestoreButton/index.d.ts.map +1 -1
- package/dist/elements/RestoreButton/index.js +4 -1
- 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 +3 -0
- 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 +15 -2
- 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 +7 -1
- package/dist/elements/SchedulePublishButton/index.js.map +1 -1
- package/dist/elements/SortHeader/index.d.ts.map +1 -1
- package/dist/elements/SortHeader/index.js +29 -26
- package/dist/elements/SortHeader/index.js.map +1 -1
- package/dist/elements/Status/index.d.ts.map +1 -1
- package/dist/elements/Status/index.js +16 -3
- package/dist/elements/Status/index.js.map +1 -1
- package/dist/elements/StepNav/index.css +71 -14
- package/dist/elements/StepNav/index.d.ts.map +1 -1
- package/dist/elements/StepNav/index.js +135 -69
- package/dist/elements/StepNav/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/BranchStatus/index.css +34 -0
- package/dist/elements/Table/DefaultCell/fields/BranchStatus/index.d.ts +13 -0
- package/dist/elements/Table/DefaultCell/fields/BranchStatus/index.d.ts.map +1 -0
- package/dist/elements/Table/DefaultCell/fields/BranchStatus/index.js +51 -0
- package/dist/elements/Table/DefaultCell/fields/BranchStatus/index.js.map +1 -0
- package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +3 -11
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
- package/dist/elements/Table/OrderableTable.js +3 -1
- 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 +29 -23
- 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 -1
- 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 +4 -1
- package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js +3 -0
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
- package/dist/exports/client/index.d.ts +19 -1
- 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/ArrayRow.d.ts +1 -0
- package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
- package/dist/fields/Array/ArrayRow.js +2 -0
- package/dist/fields/Array/ArrayRow.js.map +1 -1
- package/dist/fields/Array/index.d.ts.map +1 -1
- package/dist/fields/Array/index.js +38 -10
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Blocks/BlockRow.d.ts +1 -0
- package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
- package/dist/fields/Blocks/BlockRow.js +2 -0
- package/dist/fields/Blocks/BlockRow.js.map +1 -1
- package/dist/fields/Blocks/RowActions.d.ts +1 -0
- package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
- package/dist/fields/Blocks/RowActions.js +22 -19
- package/dist/fields/Blocks/RowActions.js.map +1 -1
- package/dist/fields/Blocks/index.d.ts.map +1 -1
- package/dist/fields/Blocks/index.js +35 -7
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Relationship/Input.d.ts.map +1 -1
- package/dist/fields/Relationship/Input.js +5 -1
- package/dist/fields/Relationship/Input.js.map +1 -1
- package/dist/fields/Upload/Input.d.ts.map +1 -1
- package/dist/fields/Upload/Input.js +4 -1
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +4 -1
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
- package/dist/hooks/usePayloadAPI.js +44 -40
- package/dist/hooks/usePayloadAPI.js.map +1 -1
- package/dist/icons/Branch/index.css +5 -0
- package/dist/icons/Branch/index.d.ts +7 -0
- package/dist/icons/Branch/index.d.ts.map +1 -0
- package/dist/icons/Branch/index.js +25 -0
- package/dist/icons/Branch/index.js.map +1 -0
- package/dist/icons/Edit/index.d.ts +0 -1
- package/dist/icons/Edit/index.d.ts.map +1 -1
- package/dist/icons/Edit/index.js +4 -4
- package/dist/icons/Edit/index.js.map +1 -1
- package/dist/providers/Actions/index.d.ts +1 -0
- package/dist/providers/Actions/index.d.ts.map +1 -1
- package/dist/providers/Actions/index.js +43 -11
- package/dist/providers/Actions/index.js.map +1 -1
- package/dist/providers/Auth/AuthSessionDebug/index.css +48 -0
- package/dist/providers/Auth/AuthSessionDebug/index.d.ts +13 -0
- package/dist/providers/Auth/AuthSessionDebug/index.d.ts.map +1 -0
- package/dist/providers/Auth/AuthSessionDebug/index.js +93 -0
- package/dist/providers/Auth/AuthSessionDebug/index.js.map +1 -0
- package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts +21 -0
- package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts.map +1 -0
- package/dist/providers/Auth/AuthSessionDebug/utilities.js +53 -0
- package/dist/providers/Auth/AuthSessionDebug/utilities.js.map +1 -0
- package/dist/providers/Auth/authSessionRequests.d.ts +27 -0
- package/dist/providers/Auth/authSessionRequests.d.ts.map +1 -0
- package/dist/providers/Auth/authSessionRequests.js +119 -0
- package/dist/providers/Auth/authSessionRequests.js.map +1 -0
- package/dist/providers/Auth/authSessionRequests.spec.js +121 -0
- package/dist/providers/Auth/authSessionRequests.spec.js.map +1 -0
- package/dist/providers/Auth/index.d.ts +2 -56
- package/dist/providers/Auth/index.d.ts.map +1 -1
- package/dist/providers/Auth/index.js +283 -135
- package/dist/providers/Auth/index.js.map +1 -1
- package/dist/providers/Auth/sessionActivity.d.ts +23 -0
- package/dist/providers/Auth/sessionActivity.d.ts.map +1 -0
- package/dist/providers/Auth/sessionActivity.js +49 -0
- package/dist/providers/Auth/sessionActivity.js.map +1 -0
- package/dist/providers/Auth/sessionActivity.spec.js +44 -0
- package/dist/providers/Auth/sessionActivity.spec.js.map +1 -0
- package/dist/providers/Auth/sessionTiming.d.ts +11 -0
- package/dist/providers/Auth/sessionTiming.d.ts.map +1 -0
- package/dist/providers/Auth/sessionTiming.js +18 -0
- package/dist/providers/Auth/sessionTiming.js.map +1 -0
- package/dist/providers/Auth/tabSessionSync/index.d.ts +17 -0
- package/dist/providers/Auth/tabSessionSync/index.d.ts.map +1 -0
- package/dist/providers/Auth/tabSessionSync/index.js +263 -0
- package/dist/providers/Auth/tabSessionSync/index.js.map +1 -0
- package/dist/providers/Auth/tabSessionSync/index.spec.js +463 -0
- package/dist/providers/Auth/tabSessionSync/index.spec.js.map +1 -0
- package/dist/providers/Auth/tabSessionSync/types.d.ts +107 -0
- package/dist/providers/Auth/tabSessionSync/types.d.ts.map +1 -0
- package/dist/providers/Auth/tabSessionSync/types.js +6 -0
- package/dist/providers/Auth/tabSessionSync/types.js.map +1 -0
- package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts +11 -0
- package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts.map +1 -0
- package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js +90 -0
- package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +1 -0
- package/dist/providers/Auth/tabSessionSync/utilities.d.ts +26 -0
- package/dist/providers/Auth/tabSessionSync/utilities.d.ts.map +1 -0
- package/dist/providers/Auth/tabSessionSync/utilities.js +159 -0
- package/dist/providers/Auth/tabSessionSync/utilities.js.map +1 -0
- package/dist/providers/Auth/types.d.ts +65 -0
- package/dist/providers/Auth/types.d.ts.map +1 -0
- package/dist/providers/Auth/types.js +2 -0
- package/dist/providers/Auth/types.js.map +1 -0
- package/dist/providers/Auth/useAuthSessionTimers.d.ts +26 -0
- package/dist/providers/Auth/useAuthSessionTimers.d.ts.map +1 -0
- package/dist/providers/Auth/useAuthSessionTimers.js +203 -0
- package/dist/providers/Auth/useAuthSessionTimers.js.map +1 -0
- package/dist/providers/Auth/useAuthSessionTimers.spec.js +311 -0
- package/dist/providers/Auth/useAuthSessionTimers.spec.js.map +1 -0
- package/dist/providers/Branch/index.d.ts +68 -0
- package/dist/providers/Branch/index.d.ts.map +1 -0
- package/dist/providers/Branch/index.js +193 -0
- package/dist/providers/Branch/index.js.map +1 -0
- package/dist/providers/Branch/index.server.d.ts +14 -0
- package/dist/providers/Branch/index.server.d.ts.map +1 -0
- package/dist/providers/Branch/index.server.js +125 -0
- package/dist/providers/Branch/index.server.js.map +1 -0
- package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/index.js +5 -1
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/providers/DocumentInfo/useGetDocPermissions.d.ts +2 -1
- package/dist/providers/DocumentInfo/useGetDocPermissions.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/useGetDocPermissions.js +3 -1
- package/dist/providers/DocumentInfo/useGetDocPermissions.js.map +1 -1
- package/dist/providers/FormErrorHandler/index.d.ts +5 -1
- package/dist/providers/FormErrorHandler/index.d.ts.map +1 -1
- package/dist/providers/FormErrorHandler/index.js.map +1 -1
- package/dist/providers/Hierarchy/index.d.ts.map +1 -1
- package/dist/providers/Hierarchy/index.js +4 -1
- package/dist/providers/Hierarchy/index.js.map +1 -1
- package/dist/providers/Locale/index.d.ts.map +1 -1
- package/dist/providers/Locale/index.js +41 -36
- package/dist/providers/Locale/index.js.map +1 -1
- package/dist/providers/Preferences/index.d.ts +3 -1
- package/dist/providers/Preferences/index.d.ts.map +1 -1
- package/dist/providers/Preferences/index.js +9 -3
- package/dist/providers/Preferences/index.js.map +1 -1
- package/dist/providers/Root/index.js +4 -4
- package/dist/providers/Root/index.js.map +1 -1
- package/dist/providers/RouteTransition/ProgressBar/index.js +4 -1
- package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
- package/dist/providers/RouteTransition/ProgressBar/index.spec.js +44 -0
- package/dist/providers/RouteTransition/ProgressBar/index.spec.js.map +1 -0
- package/dist/providers/RouteTransition/index.d.ts +2 -0
- package/dist/providers/RouteTransition/index.d.ts.map +1 -1
- package/dist/providers/RouteTransition/index.js +42 -14
- package/dist/providers/RouteTransition/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/templates/Default/index.d.ts +1 -0
- package/dist/templates/Default/index.d.ts.map +1 -1
- package/dist/templates/Default/index.js +44 -36
- package/dist/templates/Default/index.js.map +1 -1
- package/dist/utilities/getAdminPreferences.d.ts +14 -0
- package/dist/utilities/getAdminPreferences.d.ts.map +1 -0
- package/dist/utilities/getAdminPreferences.js +22 -0
- package/dist/utilities/getAdminPreferences.js.map +1 -0
- package/dist/utilities/getRequestBranch.d.ts +20 -0
- package/dist/utilities/getRequestBranch.d.ts.map +1 -0
- package/dist/utilities/getRequestBranch.js +35 -0
- package/dist/utilities/getRequestBranch.js.map +1 -0
- package/dist/utilities/getVersions.d.ts +6 -1
- package/dist/utilities/getVersions.d.ts.map +1 -1
- package/dist/utilities/getVersions.js +5 -0
- package/dist/utilities/getVersions.js.map +1 -1
- package/dist/utilities/initReq.d.ts.map +1 -1
- package/dist/utilities/initReq.js +8 -0
- package/dist/utilities/initReq.js.map +1 -1
- package/dist/utilities/matchesSearchQuery.d.ts +12 -0
- package/dist/utilities/matchesSearchQuery.d.ts.map +1 -0
- package/dist/utilities/matchesSearchQuery.js +23 -0
- package/dist/utilities/matchesSearchQuery.js.map +1 -0
- package/dist/{elements/ColumnSelection/matchesColumnSearch.spec.js → utilities/matchesSearchQuery.spec.js} +29 -29
- package/dist/utilities/matchesSearchQuery.spec.js.map +1 -0
- package/dist/utilities/scheduleMergeHandler.d.ts +33 -0
- package/dist/utilities/scheduleMergeHandler.d.ts.map +1 -0
- package/dist/utilities/scheduleMergeHandler.js +119 -0
- package/dist/utilities/scheduleMergeHandler.js.map +1 -0
- package/dist/utilities/schedulePublishHandler.d.ts.map +1 -1
- package/dist/utilities/schedulePublishHandler.js +10 -0
- package/dist/utilities/schedulePublishHandler.js.map +1 -1
- package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
- package/dist/utilities/serverFunctionRegistry.js +6 -0
- package/dist/utilities/serverFunctionRegistry.js.map +1 -1
- package/dist/views/API/index.client.d.ts.map +1 -1
- package/dist/views/API/index.client.js +10 -2
- package/dist/views/API/index.client.js.map +1 -1
- package/dist/views/Branch/BranchChanges/index.d.ts +23 -0
- package/dist/views/Branch/BranchChanges/index.d.ts.map +1 -0
- package/dist/views/Branch/BranchChanges/index.js +150 -0
- package/dist/views/Branch/BranchChanges/index.js.map +1 -0
- package/dist/views/Branch/ChangedDocuments/index.css +118 -0
- package/dist/views/Branch/ChangedDocuments/index.d.ts +34 -0
- package/dist/views/Branch/ChangedDocuments/index.d.ts.map +1 -0
- package/dist/views/Branch/ChangedDocuments/index.js +233 -0
- package/dist/views/Branch/ChangedDocuments/index.js.map +1 -0
- package/dist/views/Branch/DiscardChangesButton/index.d.ts +16 -0
- package/dist/views/Branch/DiscardChangesButton/index.d.ts.map +1 -0
- package/dist/views/Branch/DiscardChangesButton/index.js +106 -0
- package/dist/views/Branch/DiscardChangesButton/index.js.map +1 -0
- package/dist/views/Branch/Manage/index.d.ts +11 -0
- package/dist/views/Branch/Manage/index.d.ts.map +1 -0
- package/dist/views/Branch/Manage/index.js +71 -0
- package/dist/views/Branch/Manage/index.js.map +1 -0
- package/dist/views/Branch/MergeChangesButton/index.d.ts +14 -0
- package/dist/views/Branch/MergeChangesButton/index.d.ts.map +1 -0
- package/dist/views/Branch/MergeChangesButton/index.js +55 -0
- package/dist/views/Branch/MergeChangesButton/index.js.map +1 -0
- package/dist/views/Branch/MergeLedger/index.css +137 -0
- package/dist/views/Branch/MergeLedger/index.d.ts +31 -0
- package/dist/views/Branch/MergeLedger/index.d.ts.map +1 -0
- package/dist/views/Branch/MergeLedger/index.js +211 -0
- package/dist/views/Branch/MergeLedger/index.js.map +1 -0
- package/dist/views/Branch/ScheduledMerges/index.css +83 -0
- package/dist/views/Branch/ScheduledMerges/index.d.ts +32 -0
- package/dist/views/Branch/ScheduledMerges/index.d.ts.map +1 -0
- package/dist/views/Branch/ScheduledMerges/index.js +183 -0
- package/dist/views/Branch/ScheduledMerges/index.js.map +1 -0
- package/dist/views/Branch/index.css +77 -0
- package/dist/views/Branch/index.d.ts +17 -0
- package/dist/views/Branch/index.d.ts.map +1 -0
- package/dist/views/Branch/index.js +188 -0
- package/dist/views/Branch/index.js.map +1 -0
- package/dist/views/Branch/renderBranchDiff.d.ts +29 -0
- package/dist/views/Branch/renderBranchDiff.d.ts.map +1 -0
- package/dist/views/Branch/renderBranchDiff.js +151 -0
- package/dist/views/Branch/renderBranchDiff.js.map +1 -0
- package/dist/views/Branch/renderMergeDiff.d.ts +24 -0
- package/dist/views/Branch/renderMergeDiff.d.ts.map +1 -0
- package/dist/views/Branch/renderMergeDiff.js +94 -0
- package/dist/views/Branch/renderMergeDiff.js.map +1 -0
- package/dist/views/Branches/index.d.ts +16 -0
- package/dist/views/Branches/index.d.ts.map +1 -0
- package/dist/views/Branches/index.js +54 -0
- package/dist/views/Branches/index.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +3 -2
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js +7 -7
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +104 -66
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.css +33 -140
- package/dist/views/Document/getDocumentView.d.ts.map +1 -1
- package/dist/views/Document/getDocumentView.js +21 -2
- 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 +9 -0
- package/dist/views/Document/getMetaBySegment.js.map +1 -1
- package/dist/views/Document/index.d.ts +3 -1
- package/dist/views/Document/index.d.ts.map +1 -1
- package/dist/views/Document/index.js +8 -1
- package/dist/views/Document/index.js.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/index.d.ts.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/index.js +6 -2
- package/dist/views/HierarchyList/HierarchyTable/index.js.map +1 -1
- package/dist/views/List/ListHeader/index.d.ts +1 -10
- package/dist/views/List/ListHeader/index.d.ts.map +1 -1
- package/dist/views/List/ListHeader/index.js +1 -3
- package/dist/views/List/ListHeader/index.js.map +1 -1
- package/dist/views/List/index.client.d.ts.map +1 -1
- package/dist/views/List/index.client.js +0 -14
- package/dist/views/List/index.client.js.map +1 -1
- package/dist/views/List/index.css +5 -0
- package/dist/views/Root/getCustomCollectionViewByRoute.d.ts.map +1 -1
- package/dist/views/Root/getCustomCollectionViewByRoute.js.map +1 -1
- package/dist/views/Root/getCustomGlobalViewByRoute.d.ts.map +1 -1
- package/dist/views/Root/getCustomGlobalViewByRoute.js.map +1 -1
- package/dist/views/Root/getCustomViewByKey.d.ts.map +1 -1
- package/dist/views/Root/getCustomViewByKey.js.map +1 -1
- package/dist/views/Root/getRouteData.d.ts.map +1 -1
- package/dist/views/Root/getRouteData.js +12 -4
- package/dist/views/Root/getRouteData.js.map +1 -1
- package/dist/views/Root/index.d.ts.map +1 -1
- package/dist/views/Root/index.js +1 -0
- package/dist/views/Root/index.js.map +1 -1
- package/dist/views/Version/Default/index.css +26 -2
- package/dist/views/Version/Default/index.d.ts.map +1 -1
- package/dist/views/Version/Default/index.js +18 -6
- package/dist/views/Version/Default/index.js.map +1 -1
- package/dist/views/Version/Default/types.d.ts +9 -0
- 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 +8 -0
- 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 +6 -3
- package/dist/views/Version/Restore/index.js.map +1 -1
- package/dist/views/Version/index.d.ts.map +1 -1
- package/dist/views/Version/index.js +4 -0
- package/dist/views/Version/index.js.map +1 -1
- package/dist/views/Versions/buildColumns.d.ts +2 -1
- package/dist/views/Versions/buildColumns.d.ts.map +1 -1
- package/dist/views/Versions/buildColumns.js +21 -1
- package/dist/views/Versions/buildColumns.js.map +1 -1
- package/dist/views/Versions/cells/Branch/index.d.ts +12 -0
- package/dist/views/Versions/cells/Branch/index.d.ts.map +1 -0
- package/dist/views/Versions/cells/Branch/index.js +27 -0
- package/dist/views/Versions/cells/Branch/index.js.map +1 -0
- package/dist/views/Versions/index.client.d.ts +0 -1
- 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 +2 -14
- package/dist/views/Versions/index.js.map +1 -1
- package/package.json +5 -5
- package/dist/elements/ColumnSelection/matchesColumnSearch.d.ts +0 -10
- package/dist/elements/ColumnSelection/matchesColumnSearch.d.ts.map +0 -1
- package/dist/elements/ColumnSelection/matchesColumnSearch.js +0 -21
- package/dist/elements/ColumnSelection/matchesColumnSearch.js.map +0 -1
- package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["isolateObjectProperty","logError","formatAdminURL","hasAutosaveEnabled","hasDraftsEnabled","React","DocumentHeader","RenderServerComponent","DocumentInfoProvider","EditDepthProvider","HydrateAuthProvider","LivePreviewProvider","buildFormState","getDocPreferences","getDocumentData","getDocumentPermissions","getHasScheduledPublish","getIsLocked","getVersions","handleLivePreview","handlePreview","isEditing","getIsEditing","getPreferences","NotFoundView","UnauthorizedViewWithGutter","getDocumentView","recordRecentlyViewed","renderDocumentSlots","renderDocument","disableActions","documentSubViewType","drawerSlug","importMap","initialData","initPageResult","overrideEntityVisibility","params","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","redirectAfterRestore","searchParams","versions","viewType","collectionConfig","docID","idFromArgs","globalConfig","locale","permissions","req","i18n","payload","config","routes","admin","adminRoute","api","apiRoute","user","visibleEntities","segments","Array","isArray","collectionSlug","slug","undefined","globalSlug","id","doc","redirectURL","path","encodeURIComponent","server","redirect","Error","isTrashedDoc","Boolean","deletedAt","reqForPermissions","transactionID","reqForLockCheck","docPreferences","docPermissions","hasDeletePermission","hasPublishPermission","hasSavePermission","hasTrashPermission","currentEditor","isLocked","lastUpdateTime","entityPreferences","Promise","all","data","collection","operation","recentlyViewedPromise","hasPublishedDoc","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","state","formState","hasScheduledPublish","code","fallbackLocale","readOnly","renderAllFields","schemaPath","skipValidation","documentViewServerProps","routeSegments","collections","find","visibleSlug","globals","formattedParams","URLSearchParams","append","apiQueryParams","toString","apiURL","View","showHeader","RootViewOverride","components","views","edit","root","Component","shouldAutosave","validateDraftData","drafts","validate","create","depth","draft","documentSlots","Description","clientProps","isLivePreviewEnabled","livePreviewConfig","livePreviewURL","isPreviewEnabled","previewURL","Document","_jsx","initialState","isTrashed","_jsxs","breakpoints","isLivePreviewing","value","editViewType","openByDefault","typeofLivePreviewURL","url","AfterHeader","serverProps","DocumentView","props","RenderedDocument","error","message","startsWith","err","notFound"],"sources":["../../../src/views/Document/index.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n CollectionPreferences,\n Data,\n DocumentViewClientProps,\n DocumentViewServerProps,\n DocumentViewServerPropsOnly,\n EditViewComponent,\n PayloadComponent,\n RenderDocumentVersionsProperties,\n} from 'payload'\n\nimport { isolateObjectProperty, logError } from 'payload'\nimport { formatAdminURL, hasAutosaveEnabled, hasDraftsEnabled } from 'payload/shared'\nimport React from 'react'\n\nimport { DocumentHeader } from '../../elements/DocumentHeader/index.js'\nimport { RenderServerComponent } from '../../elements/RenderServerComponent/index.js'\n/* eslint-disable payload/no-imports-from-exports-dir -- Server component must reference exports/client bundle for proper client boundary in prod builds */\nimport {\n DocumentInfoProvider,\n EditDepthProvider,\n HydrateAuthProvider,\n LivePreviewProvider,\n} from '../../exports/client/index.js'\n/* eslint-enable payload/no-imports-from-exports-dir */\nimport { buildFormState } from '../../utilities/buildFormState.js'\nimport { getDocPreferences } from '../../utilities/getDocPreferences.js'\nimport { getDocumentData } from '../../utilities/getDocumentData.js'\nimport { getDocumentPermissions } from '../../utilities/getDocumentPermissions.js'\nimport { getHasScheduledPublish } from '../../utilities/getHasScheduledPublish.js'\nimport { getIsLocked } from '../../utilities/getIsLocked.js'\nimport { getVersions } from '../../utilities/getVersions.js'\nimport { handleLivePreview } from '../../utilities/handleLivePreview.js'\nimport { handlePreview } from '../../utilities/handlePreview.js'\nimport { isEditing as getIsEditing } from '../../utilities/isEditing.js'\nimport { getPreferences } from '../../utilities/upsertPreferences.js'\nimport { NotFoundView } from '../NotFound/index.js'\nimport { UnauthorizedViewWithGutter } from '../Unauthorized/index.js'\nimport { getDocumentView } from './getDocumentView.js'\nimport { recordRecentlyViewed } from './recordRecentlyViewed.js'\nimport { renderDocumentSlots } from './renderDocumentSlots.js'\n\nexport { getDocumentView } from './getDocumentView.js'\n\nexport type ViewToRender =\n | EditViewComponent\n | PayloadComponent<DocumentViewServerProps>\n | React.FC\n | React.FC<DocumentViewClientProps>\n\n/**\n * This function is responsible for rendering\n * an Edit Document view on the server for both:\n * - default document edit views\n * - on-demand edit views within drawers\n */\nexport const renderDocument = async ({\n disableActions,\n documentSubViewType,\n drawerSlug,\n importMap,\n initialData,\n initPageResult,\n overrideEntityVisibility,\n params,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n searchParams,\n versions,\n viewType,\n}: {\n drawerSlug?: string\n overrideEntityVisibility?: boolean\n readonly redirectAfterCreate?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly redirectAfterRestore?: boolean\n versions?: RenderDocumentVersionsProperties\n} & AdminViewServerProps): Promise<{\n data: Data\n Document: React.ReactNode\n}> => {\n const {\n collectionConfig,\n docID: idFromArgs,\n globalConfig,\n locale,\n permissions,\n req,\n req: {\n i18n,\n payload,\n payload: {\n config,\n config: {\n routes: { admin: adminRoute, api: apiRoute },\n },\n },\n user,\n },\n visibleEntities,\n } = initPageResult\n\n const segments = Array.isArray(params?.segments) ? params.segments : []\n const collectionSlug = collectionConfig?.slug || undefined\n const globalSlug = globalConfig?.slug || undefined\n let isEditing = getIsEditing({ id: idFromArgs, collectionSlug, globalSlug })\n\n // Fetch the doc required for the view\n let doc =\n !idFromArgs && !globalSlug\n ? initialData || null\n : await getDocumentData({\n id: idFromArgs,\n collectionSlug,\n globalSlug,\n locale,\n payload,\n req,\n segments,\n user,\n })\n\n if (isEditing && !doc) {\n // If it's a collection document that doesn't exist, redirect to collection list\n if (collectionSlug) {\n const redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}?notFound=${encodeURIComponent(idFromArgs)}`,\n })\n req.server.redirect(redirectURL)\n } else {\n // For globals or other cases, keep the 404 behavior\n throw new Error('not-found')\n }\n }\n\n const isTrashedDoc = Boolean(doc && 'deletedAt' in doc && typeof doc?.deletedAt === 'string')\n\n // CRITICAL FIX FOR TRANSACTION RACE CONDITION:\n // When running parallel operations with Promise.all, if they share the same req object\n // and one operation calls initTransaction() which MUTATES req.transactionID, that mutation\n // is visible to all parallel operations. This causes:\n // 1. Operation A (e.g., getDocumentPermissions → docAccessOperation) calls initTransaction()\n // which sets req.transactionID = Promise, then resolves it to a UUID\n // 2. Operation B (e.g., getIsLocked) running in parallel receives the SAME req with the mutated transactionID\n // 3. Operation A (does not even know that Operation B even exists and is stil using the transactionID) commits/ends its transaction\n // 4. Operation B tries to use the now-expired session → MongoExpiredSessionError!\n //\n // Solution: Use isolateObjectProperty to create a Proxy that isolates the 'transactionID' property.\n // This allows each operation to have its own transactionID without affecting the parent req.\n // If parent req already has a transaction, preserve it (don't isolate), since this\n // issue only arises when one of the operations calls initTransaction() themselves -\n // because then, that operation will also try to commit/end the transaction itself.\n\n // If the transactionID is already set, the parallel operations will not try to\n // commit/end the transaction themselves, so we don't need to isolate the\n // transactionID property.\n const reqForPermissions = req.transactionID ? req : isolateObjectProperty(req, 'transactionID')\n const reqForLockCheck = req.transactionID ? req : isolateObjectProperty(req, 'transactionID')\n\n const [\n docPreferences,\n {\n docPermissions,\n hasDeletePermission,\n hasPublishPermission,\n hasSavePermission,\n hasTrashPermission,\n },\n { currentEditor, isLocked, lastUpdateTime },\n entityPreferences,\n ] = await Promise.all([\n // Get document preferences\n getDocPreferences({\n id: idFromArgs,\n collectionSlug,\n globalSlug,\n payload,\n user,\n }),\n\n // Get permissions - isolated transactionID prevents cross-contamination\n getDocumentPermissions({\n id: idFromArgs,\n collectionConfig,\n data: doc,\n globalConfig,\n req: reqForPermissions,\n }),\n\n // Fetch document lock state - isolated transactionID prevents cross-contamination\n getIsLocked({\n id: idFromArgs,\n collectionConfig,\n globalConfig,\n isEditing,\n req: reqForLockCheck,\n }),\n\n // get entity preferences\n getPreferences<CollectionPreferences>(\n collectionSlug ? `collection-${collectionSlug}` : `global-${globalSlug}`,\n payload,\n req.user.id,\n req.user.collection,\n ),\n ])\n\n const operation = (collectionSlug && idFromArgs) || globalSlug ? 'update' : 'create'\n\n // Record the document as recently viewed (collections only, never on the create route or for\n // trashed docs). Runs concurrently with the work below and never throws.\n const recentlyViewedPromise =\n collectionSlug && idFromArgs && doc && !isTrashedDoc\n ? recordRecentlyViewed({ id: idFromArgs, collectionSlug, req })\n : undefined\n\n const [\n { hasPublishedDoc, mostRecentVersionIsAutosaved, unpublishedVersionCount, versionCount },\n { state: formState },\n hasScheduledPublish,\n ] = await Promise.all([\n getVersions({\n id: idFromArgs,\n collectionConfig,\n doc,\n docPermissions,\n globalConfig,\n locale: locale?.code,\n payload,\n user,\n }),\n buildFormState({\n id: idFromArgs,\n collectionSlug,\n data: doc,\n docPermissions,\n docPreferences,\n fallbackLocale: false,\n globalSlug,\n locale: locale?.code,\n operation,\n readOnly: isTrashedDoc || isLocked,\n renderAllFields: true,\n req,\n schemaPath: collectionSlug || globalSlug,\n skipValidation: true,\n }),\n getHasScheduledPublish({\n id: idFromArgs,\n collectionConfig,\n globalConfig,\n hasPublishPermission,\n payload,\n user,\n }),\n ])\n\n await recentlyViewedPromise\n\n const documentViewServerProps: DocumentViewServerPropsOnly = {\n doc,\n hasPublishedDoc,\n i18n,\n initPageResult,\n locale,\n params,\n payload,\n permissions,\n routeSegments: segments,\n searchParams,\n server: req.server,\n user,\n versions,\n }\n\n if (\n !overrideEntityVisibility &&\n ((collectionSlug &&\n !visibleEntities?.collections?.find((visibleSlug) => visibleSlug === collectionSlug)) ||\n (globalSlug && !visibleEntities?.globals?.find((visibleSlug) => visibleSlug === globalSlug)))\n ) {\n throw new Error('not-found')\n }\n\n const formattedParams = new URLSearchParams()\n\n if (hasDraftsEnabled(collectionConfig || globalConfig)) {\n formattedParams.append('draft', 'true')\n }\n\n if (locale?.code) {\n formattedParams.append('locale', locale.code)\n }\n\n const apiQueryParams = `?${formattedParams.toString()}`\n\n const apiURL = formatAdminURL({\n apiRoute,\n path: collectionSlug\n ? `/${collectionSlug}/${idFromArgs}${apiQueryParams}`\n : globalSlug\n ? `/${globalSlug}${apiQueryParams}`\n : '',\n })\n\n let View: ViewToRender = null\n\n let showHeader = true\n\n const RootViewOverride =\n collectionConfig?.admin?.components?.views?.edit?.root &&\n 'Component' in collectionConfig.admin.components.views.edit.root\n ? collectionConfig?.admin?.components?.views?.edit?.root?.Component\n : globalConfig?.admin?.components?.views?.edit?.root &&\n 'Component' in globalConfig.admin.components.views.edit.root\n ? globalConfig?.admin?.components?.views?.edit?.root?.Component\n : null\n\n if (RootViewOverride) {\n View = RootViewOverride\n showHeader = false\n } else {\n ;({ View } = getDocumentView({\n collectionConfig,\n config,\n docPermissions,\n globalConfig,\n routeSegments: segments,\n }))\n\n if (View === UnauthorizedViewWithGutter) {\n showHeader = false\n }\n }\n\n if (!View) {\n View = NotFoundView as React.FC<AdminViewServerProps>\n }\n\n /**\n * Handle case where autoSave is enabled and the document is being created\n * => create document and redirect\n */\n const shouldAutosave = hasSavePermission && hasAutosaveEnabled(collectionConfig || globalConfig)\n\n const validateDraftData =\n collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.validate\n\n let id = idFromArgs\n\n if (shouldAutosave && !validateDraftData && !idFromArgs && collectionSlug) {\n doc = await payload.create({\n collection: collectionSlug,\n data: initialData || {},\n depth: 0,\n draft: true,\n fallbackLocale: false,\n locale: locale?.code,\n req,\n user,\n })\n\n if (doc?.id) {\n id = doc.id\n isEditing = getIsEditing({ id: doc.id, collectionSlug, globalSlug })\n\n if (!drawerSlug && redirectAfterCreate !== false) {\n const redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${doc.id}`,\n })\n\n req.server.redirect(redirectURL)\n }\n } else {\n throw new Error('not-found')\n }\n }\n\n const documentSlots = renderDocumentSlots({\n id,\n collectionConfig,\n doc: doc as Record<string, unknown>,\n globalConfig,\n hasSavePermission,\n locale,\n permissions,\n req,\n })\n\n // Extract Description from documentSlots to pass to DocumentHeader\n const { Description } = documentSlots\n\n const clientProps: DocumentViewClientProps = {\n formState,\n ...documentSlots,\n documentSubViewType,\n viewType,\n }\n\n const { isLivePreviewEnabled, livePreviewConfig, livePreviewURL } = await handleLivePreview({\n collectionSlug,\n config,\n data: doc,\n globalSlug,\n operation,\n req,\n })\n\n const { isPreviewEnabled, previewURL } = await handlePreview({\n collectionSlug,\n config,\n data: doc,\n globalSlug,\n operation,\n req,\n })\n\n return {\n data: doc,\n Document: (\n <DocumentInfoProvider\n apiURL={apiURL}\n collectionSlug={collectionConfig?.slug}\n currentEditor={currentEditor}\n disableActions={disableActions ?? false}\n docPermissions={docPermissions}\n globalSlug={globalConfig?.slug}\n hasDeletePermission={hasDeletePermission}\n hasPublishedDoc={hasPublishedDoc}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n hasScheduledPublish={hasScheduledPublish}\n hasTrashPermission={hasTrashPermission}\n id={id}\n initialData={doc}\n initialState={formState}\n isEditing={isEditing}\n isLocked={isLocked}\n isTrashed={isTrashedDoc}\n key={locale?.code}\n lastUpdateTime={lastUpdateTime}\n mostRecentVersionIsAutosaved={mostRecentVersionIsAutosaved}\n redirectAfterCreate={redirectAfterCreate}\n redirectAfterDelete={redirectAfterDelete}\n redirectAfterDuplicate={redirectAfterDuplicate}\n redirectAfterRestore={redirectAfterRestore}\n unpublishedVersionCount={unpublishedVersionCount}\n versionCount={versionCount}\n >\n <LivePreviewProvider\n breakpoints={livePreviewConfig?.breakpoints}\n isLivePreviewEnabled={isLivePreviewEnabled && operation !== 'create'}\n isLivePreviewing={Boolean(\n (entityPreferences?.value?.editViewType === undefined\n ? livePreviewConfig?.openByDefault\n : entityPreferences.value.editViewType === 'live-preview') && livePreviewURL,\n )}\n isPreviewEnabled={Boolean(isPreviewEnabled)}\n previewURL={previewURL}\n typeofLivePreviewURL={typeof livePreviewConfig?.url as 'function' | 'string' | undefined}\n url={livePreviewURL}\n >\n {showHeader && !drawerSlug && (\n <DocumentHeader\n AfterHeader={Description}\n collectionConfig={collectionConfig}\n globalConfig={globalConfig}\n permissions={permissions}\n req={req}\n />\n )}\n <HydrateAuthProvider permissions={permissions} />\n <EditDepthProvider>\n {RenderServerComponent({\n clientProps,\n Component: View,\n importMap,\n serverProps: documentViewServerProps,\n })}\n </EditDepthProvider>\n </LivePreviewProvider>\n </DocumentInfoProvider>\n ),\n }\n}\n\nexport async function DocumentView(props: AdminViewServerProps) {\n try {\n const { Document: RenderedDocument } = await renderDocument(props)\n return RenderedDocument\n } catch (error) {\n if (error?.message === 'NEXT_REDIRECT') {\n throw error\n }\n\n // The TanStack adapter's `req.server.redirect()` throws `redirect:<url>` as a\n // control-flow signal — the target is already recorded on `req.server` and\n // honored upstream in `loadAdminPage`. It isn't a real error, so swallow it\n // without logging, mirroring the `NEXT_REDIRECT` guard above.\n if (error?.message?.startsWith('redirect:')) {\n return\n }\n\n logError({ err: error, payload: props.initPageResult.req.payload })\n\n if (error.message === 'not-found') {\n props.initPageResult.req.server.notFound()\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["isolateObjectProperty","logError","formatAdminURL","hasAutosaveEnabled","hasDraftsEnabled","MAIN_BRANCH","React","DocumentHeader","RenderServerComponent","DocumentInfoProvider","EditDepthProvider","HydrateAuthProvider","LivePreviewProvider","buildFormState","getDocPreferences","getDocumentData","getDocumentPermissions","getHasScheduledPublish","getIsLocked","getVersions","handleLivePreview","handlePreview","isEditing","getIsEditing","getPreferences","NotFoundView","UnauthorizedViewWithGutter","getDocumentView","recordRecentlyViewed","renderDocumentSlots","renderDocument","disableActions","documentSubViewType","drawerSlug","importMap","initialData","initPageResult","overrideEntityVisibility","params","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","redirectAfterRestore","searchParams","versions","viewType","collectionConfig","docID","idFromArgs","globalConfig","locale","permissions","req","i18n","payload","config","routes","admin","adminRoute","api","apiRoute","user","visibleEntities","segments","Array","isArray","collectionSlug","slug","undefined","globalSlug","id","doc","redirectURL","path","encodeURIComponent","server","redirect","Error","isTrashedDoc","Boolean","deletedAt","reqForPermissions","transactionID","reqForLockCheck","docPreferences","docPermissions","hasDeletePermission","hasPublishPermission","hasSavePermission","hasTrashPermission","currentEditor","isLocked","lastUpdateTime","entityPreferences","Promise","all","data","collection","operation","recentlyViewedPromise","hasPublishedDoc","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","state","formState","hasScheduledPublish","branch","code","fallbackLocale","readOnly","renderAllFields","schemaPath","skipValidation","documentViewServerProps","routeSegments","collections","find","visibleSlug","globals","formattedParams","URLSearchParams","append","apiQueryParams","toString","apiURL","View","showHeader","RootViewOverride","components","views","edit","root","Component","shouldAutosave","validateDraftData","drafts","validate","create","depth","draft","documentSlots","Description","clientProps","isLivePreviewEnabled","livePreviewConfig","livePreviewURL","isPreviewEnabled","previewURL","Document","_jsx","initialState","isTrashed","_jsxs","breakpoints","isLivePreviewing","value","editViewType","openByDefault","typeofLivePreviewURL","url","AfterHeader","serverProps","DocumentView","props","RenderedDocument","error","message","startsWith","err","notFound"],"sources":["../../../src/views/Document/index.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n CollectionPreferences,\n Data,\n DocumentViewClientProps,\n DocumentViewServerProps,\n DocumentViewServerPropsOnly,\n EditViewComponent,\n PayloadComponent,\n RenderDocumentVersionsProperties,\n} from 'payload'\n\nimport { isolateObjectProperty, logError } from 'payload'\nimport { formatAdminURL, hasAutosaveEnabled, hasDraftsEnabled, MAIN_BRANCH } from 'payload/shared'\nimport React from 'react'\n\nimport { DocumentHeader } from '../../elements/DocumentHeader/index.js'\nimport { RenderServerComponent } from '../../elements/RenderServerComponent/index.js'\n/* eslint-disable payload/no-imports-from-exports-dir -- Server component must reference exports/client bundle for proper client boundary in prod builds */\nimport {\n DocumentInfoProvider,\n EditDepthProvider,\n HydrateAuthProvider,\n LivePreviewProvider,\n} from '../../exports/client/index.js'\n/* eslint-enable payload/no-imports-from-exports-dir */\nimport { buildFormState } from '../../utilities/buildFormState.js'\nimport { getDocPreferences } from '../../utilities/getDocPreferences.js'\nimport { getDocumentData } from '../../utilities/getDocumentData.js'\nimport { getDocumentPermissions } from '../../utilities/getDocumentPermissions.js'\nimport { getHasScheduledPublish } from '../../utilities/getHasScheduledPublish.js'\nimport { getIsLocked } from '../../utilities/getIsLocked.js'\nimport { getVersions } from '../../utilities/getVersions.js'\nimport { handleLivePreview } from '../../utilities/handleLivePreview.js'\nimport { handlePreview } from '../../utilities/handlePreview.js'\nimport { isEditing as getIsEditing } from '../../utilities/isEditing.js'\nimport { getPreferences } from '../../utilities/upsertPreferences.js'\nimport { NotFoundView } from '../NotFound/index.js'\nimport { UnauthorizedViewWithGutter } from '../Unauthorized/index.js'\nimport { getDocumentView } from './getDocumentView.js'\nimport { recordRecentlyViewed } from './recordRecentlyViewed.js'\nimport { renderDocumentSlots } from './renderDocumentSlots.js'\n\nexport { getDocumentView } from './getDocumentView.js'\n\nexport type ViewToRender =\n | EditViewComponent\n | PayloadComponent<DocumentViewServerProps>\n | React.FC\n | React.FC<DocumentViewClientProps>\n\n/**\n * This function is responsible for rendering\n * an Edit Document view on the server for both:\n * - default document edit views\n * - on-demand edit views within drawers\n */\nexport const renderDocument = async ({\n disableActions,\n documentSubViewType,\n drawerSlug,\n importMap,\n initialData,\n initPageResult,\n overrideEntityVisibility,\n params,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n searchParams,\n versions,\n viewType,\n}: {\n drawerSlug?: string\n overrideEntityVisibility?: boolean\n readonly redirectAfterCreate?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly redirectAfterRestore?: boolean\n versions?: RenderDocumentVersionsProperties\n} & AdminViewServerProps): Promise<{\n data: Data\n Document: React.ReactNode\n}> => {\n const {\n collectionConfig,\n docID: idFromArgs,\n globalConfig,\n locale,\n permissions,\n req,\n req: {\n i18n,\n payload,\n payload: {\n config,\n config: {\n routes: { admin: adminRoute, api: apiRoute },\n },\n },\n user,\n },\n visibleEntities,\n } = initPageResult\n\n const segments = Array.isArray(params?.segments) ? params.segments : []\n const collectionSlug = collectionConfig?.slug || undefined\n const globalSlug = globalConfig?.slug || undefined\n let isEditing = getIsEditing({ id: idFromArgs, collectionSlug, globalSlug })\n\n // Fetch the doc required for the view\n let doc =\n !idFromArgs && !globalSlug\n ? initialData || null\n : await getDocumentData({\n id: idFromArgs,\n collectionSlug,\n globalSlug,\n locale,\n payload,\n req,\n segments,\n user,\n })\n\n if (isEditing && !doc) {\n // If it's a collection document that doesn't exist, redirect to collection list\n if (collectionSlug) {\n const redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}?notFound=${encodeURIComponent(idFromArgs)}`,\n })\n req.server.redirect(redirectURL)\n } else {\n // For globals or other cases, keep the 404 behavior\n throw new Error('not-found')\n }\n }\n\n const isTrashedDoc = Boolean(doc && 'deletedAt' in doc && typeof doc?.deletedAt === 'string')\n\n // CRITICAL FIX FOR TRANSACTION RACE CONDITION:\n // When running parallel operations with Promise.all, if they share the same req object\n // and one operation calls initTransaction() which MUTATES req.transactionID, that mutation\n // is visible to all parallel operations. This causes:\n // 1. Operation A (e.g., getDocumentPermissions → docAccessOperation) calls initTransaction()\n // which sets req.transactionID = Promise, then resolves it to a UUID\n // 2. Operation B (e.g., getIsLocked) running in parallel receives the SAME req with the mutated transactionID\n // 3. Operation A (does not even know that Operation B even exists and is stil using the transactionID) commits/ends its transaction\n // 4. Operation B tries to use the now-expired session → MongoExpiredSessionError!\n //\n // Solution: Use isolateObjectProperty to create a Proxy that isolates the 'transactionID' property.\n // This allows each operation to have its own transactionID without affecting the parent req.\n // If parent req already has a transaction, preserve it (don't isolate), since this\n // issue only arises when one of the operations calls initTransaction() themselves -\n // because then, that operation will also try to commit/end the transaction itself.\n\n // If the transactionID is already set, the parallel operations will not try to\n // commit/end the transaction themselves, so we don't need to isolate the\n // transactionID property.\n const reqForPermissions = req.transactionID ? req : isolateObjectProperty(req, 'transactionID')\n const reqForLockCheck = req.transactionID ? req : isolateObjectProperty(req, 'transactionID')\n\n const [\n docPreferences,\n {\n docPermissions,\n hasDeletePermission,\n hasPublishPermission,\n hasSavePermission,\n hasTrashPermission,\n },\n { currentEditor, isLocked, lastUpdateTime },\n entityPreferences,\n ] = await Promise.all([\n // Get document preferences\n getDocPreferences({\n id: idFromArgs,\n collectionSlug,\n globalSlug,\n payload,\n user,\n }),\n\n // Get permissions - isolated transactionID prevents cross-contamination\n getDocumentPermissions({\n id: idFromArgs,\n collectionConfig,\n data: doc,\n globalConfig,\n req: reqForPermissions,\n }),\n\n // Fetch document lock state - isolated transactionID prevents cross-contamination\n getIsLocked({\n id: idFromArgs,\n collectionConfig,\n globalConfig,\n isEditing,\n req: reqForLockCheck,\n }),\n\n // get entity preferences\n getPreferences<CollectionPreferences>(\n collectionSlug ? `collection-${collectionSlug}` : `global-${globalSlug}`,\n payload,\n req.user.id,\n req.user.collection,\n ),\n ])\n\n const operation = (collectionSlug && idFromArgs) || globalSlug ? 'update' : 'create'\n\n // Record the document as recently viewed (collections only, never on the create route or for\n // trashed docs). Runs concurrently with the work below and never throws.\n const recentlyViewedPromise =\n collectionSlug && idFromArgs && doc && !isTrashedDoc\n ? recordRecentlyViewed({ id: idFromArgs, collectionSlug, req })\n : undefined\n\n const [\n { hasPublishedDoc, mostRecentVersionIsAutosaved, unpublishedVersionCount, versionCount },\n { state: formState },\n hasScheduledPublish,\n ] = await Promise.all([\n getVersions({\n id: idFromArgs,\n branch: req?.branch,\n collectionConfig,\n doc,\n docPermissions,\n globalConfig,\n locale: locale?.code,\n payload,\n user,\n }),\n buildFormState({\n id: idFromArgs,\n collectionSlug,\n data: doc,\n docPermissions,\n docPreferences,\n fallbackLocale: false,\n globalSlug,\n locale: locale?.code,\n operation,\n readOnly: isTrashedDoc || isLocked,\n renderAllFields: true,\n req,\n schemaPath: collectionSlug || globalSlug,\n skipValidation: true,\n }),\n getHasScheduledPublish({\n id: idFromArgs,\n collectionConfig,\n globalConfig,\n hasPublishPermission,\n payload,\n user,\n }),\n ])\n\n await recentlyViewedPromise\n\n const documentViewServerProps: DocumentViewServerPropsOnly = {\n doc,\n hasPublishedDoc,\n i18n,\n initPageResult,\n locale,\n params,\n payload,\n permissions,\n routeSegments: segments,\n searchParams,\n server: req.server,\n user,\n versions,\n }\n\n if (\n !overrideEntityVisibility &&\n ((collectionSlug &&\n !visibleEntities?.collections?.find((visibleSlug) => visibleSlug === collectionSlug)) ||\n (globalSlug && !visibleEntities?.globals?.find((visibleSlug) => visibleSlug === globalSlug)))\n ) {\n throw new Error('not-found')\n }\n\n const formattedParams = new URLSearchParams()\n\n if (hasDraftsEnabled(collectionConfig || globalConfig)) {\n formattedParams.append('draft', 'true')\n }\n\n if (locale?.code) {\n formattedParams.append('locale', locale.code)\n }\n\n // The API view shows this URL as the request it made, so it has to name the\n // branch the rest of the view is scoped to — otherwise it displays, and fetches,\n // main's copy of the document being edited.\n if (req.branch && req.branch !== MAIN_BRANCH) {\n formattedParams.append('branch', req.branch)\n }\n\n const apiQueryParams = `?${formattedParams.toString()}`\n\n const apiURL = formatAdminURL({\n apiRoute,\n path: collectionSlug\n ? `/${collectionSlug}/${idFromArgs}${apiQueryParams}`\n : globalSlug\n ? `/${globalSlug}${apiQueryParams}`\n : '',\n })\n\n let View: ViewToRender = null\n\n let showHeader = true\n\n const RootViewOverride =\n collectionConfig?.admin?.components?.views?.edit?.root &&\n 'Component' in collectionConfig.admin.components.views.edit.root\n ? collectionConfig?.admin?.components?.views?.edit?.root?.Component\n : globalConfig?.admin?.components?.views?.edit?.root &&\n 'Component' in globalConfig.admin.components.views.edit.root\n ? globalConfig?.admin?.components?.views?.edit?.root?.Component\n : null\n\n if (RootViewOverride) {\n View = RootViewOverride\n showHeader = false\n } else {\n ;({ View } = getDocumentView({\n collectionConfig,\n config,\n docPermissions,\n globalConfig,\n routeSegments: segments,\n }))\n\n if (View === UnauthorizedViewWithGutter) {\n showHeader = false\n }\n }\n\n if (!View) {\n View = NotFoundView as React.FC<AdminViewServerProps>\n }\n\n /**\n * Handle case where autoSave is enabled and the document is being created\n * => create document and redirect\n */\n const shouldAutosave = hasSavePermission && hasAutosaveEnabled(collectionConfig || globalConfig)\n\n const validateDraftData =\n collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.validate\n\n let id = idFromArgs\n\n if (shouldAutosave && !validateDraftData && !idFromArgs && collectionSlug) {\n doc = await payload.create({\n collection: collectionSlug,\n data: initialData || {},\n depth: 0,\n draft: true,\n fallbackLocale: false,\n locale: locale?.code,\n req,\n user,\n })\n\n if (doc?.id) {\n id = doc.id\n isEditing = getIsEditing({ id: doc.id, collectionSlug, globalSlug })\n\n if (!drawerSlug && redirectAfterCreate !== false) {\n const redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${doc.id}`,\n })\n\n req.server.redirect(redirectURL)\n }\n } else {\n throw new Error('not-found')\n }\n }\n\n const documentSlots = renderDocumentSlots({\n id,\n collectionConfig,\n doc: doc as Record<string, unknown>,\n globalConfig,\n hasSavePermission,\n locale,\n permissions,\n req,\n })\n\n // Extract Description from documentSlots to pass to DocumentHeader\n const { Description } = documentSlots\n\n const clientProps: DocumentViewClientProps = {\n formState,\n ...documentSlots,\n documentSubViewType,\n viewType,\n }\n\n const { isLivePreviewEnabled, livePreviewConfig, livePreviewURL } = await handleLivePreview({\n collectionSlug,\n config,\n data: doc,\n globalSlug,\n operation,\n req,\n })\n\n const { isPreviewEnabled, previewURL } = await handlePreview({\n collectionSlug,\n config,\n data: doc,\n globalSlug,\n operation,\n req,\n })\n\n return {\n data: doc,\n Document: (\n <DocumentInfoProvider\n apiURL={apiURL}\n collectionSlug={collectionConfig?.slug}\n currentEditor={currentEditor}\n disableActions={disableActions ?? false}\n docPermissions={docPermissions}\n globalSlug={globalConfig?.slug}\n hasDeletePermission={hasDeletePermission}\n hasPublishedDoc={hasPublishedDoc}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n hasScheduledPublish={hasScheduledPublish}\n hasTrashPermission={hasTrashPermission}\n id={id}\n initialData={doc}\n initialState={formState}\n isEditing={isEditing}\n isLocked={isLocked}\n isTrashed={isTrashedDoc}\n key={locale?.code}\n lastUpdateTime={lastUpdateTime}\n mostRecentVersionIsAutosaved={mostRecentVersionIsAutosaved}\n redirectAfterCreate={redirectAfterCreate}\n redirectAfterDelete={redirectAfterDelete}\n redirectAfterDuplicate={redirectAfterDuplicate}\n redirectAfterRestore={redirectAfterRestore}\n unpublishedVersionCount={unpublishedVersionCount}\n versionCount={versionCount}\n >\n <LivePreviewProvider\n breakpoints={livePreviewConfig?.breakpoints}\n isLivePreviewEnabled={isLivePreviewEnabled && operation !== 'create'}\n isLivePreviewing={Boolean(\n (entityPreferences?.value?.editViewType === undefined\n ? livePreviewConfig?.openByDefault\n : entityPreferences.value.editViewType === 'live-preview') && livePreviewURL,\n )}\n isPreviewEnabled={Boolean(isPreviewEnabled)}\n previewURL={previewURL}\n typeofLivePreviewURL={typeof livePreviewConfig?.url as 'function' | 'string' | undefined}\n url={livePreviewURL}\n >\n {showHeader && !drawerSlug && (\n <DocumentHeader\n AfterHeader={Description}\n collectionConfig={collectionConfig}\n globalConfig={globalConfig}\n permissions={permissions}\n req={req}\n />\n )}\n <HydrateAuthProvider permissions={permissions} />\n <EditDepthProvider>\n {RenderServerComponent({\n clientProps,\n Component: View,\n importMap,\n serverProps: documentViewServerProps,\n })}\n </EditDepthProvider>\n </LivePreviewProvider>\n </DocumentInfoProvider>\n ),\n }\n}\n\nexport async function DocumentView(\n props: { overrideEntityVisibility?: boolean } & AdminViewServerProps,\n) {\n try {\n const { Document: RenderedDocument } = await renderDocument(props)\n return RenderedDocument\n } catch (error) {\n if (error?.message === 'NEXT_REDIRECT') {\n throw error\n }\n\n // The TanStack adapter's `req.server.redirect()` throws `redirect:<url>` as a\n // control-flow signal — the target is already recorded on `req.server` and\n // honored upstream in `loadAdminPage`. It isn't a real error, so swallow it\n // without logging, mirroring the `NEXT_REDIRECT` guard above.\n if (error?.message?.startsWith('redirect:')) {\n return\n }\n\n logError({ err: error, payload: props.initPageResult.req.payload })\n\n if (error.message === 'not-found') {\n props.initPageResult.req.server.notFound()\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/HierarchyList/HierarchyTable/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AASnD,OAAO,KAAyC,MAAM,OAAO,CAAA;AAE7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iDAAiD,CAAA;AACvF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAA;AAElF,OAAO,KAAK,EAAE,YAAY,EAAY,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/HierarchyList/HierarchyTable/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AASnD,OAAO,KAAyC,MAAM,OAAO,CAAA;AAE7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iDAAiD,CAAA;AACvF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAA;AAElF,OAAO,KAAK,EAAE,YAAY,EAAY,MAAM,YAAY,CAAA;AAgBxD,OAAO,aAAa,CAAA;AAcpB,MAAM,MAAM,mBAAmB,GAAG;IAChC,gFAAgF;IAChF,UAAU,CAAC,EAAE,KAAK,CAAA;IAClB,YAAY,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;IAC/C,2DAA2D;IAC3D,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAChC,cAAc,EAAE,MAAM,CAAA;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,wCAAwC;IACxC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC/B,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAA;IAChC,sEAAsE;IACtE,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC1C,aAAa,EAAE,YAAY,EAAE,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,wBAAgB,cAAc,CAAC,EAC7B,UAAU,EACV,YAAY,EACZ,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,eAAe,EACf,QAAQ,EACR,kBAAkB,EAClB,aAAa,EACb,MAAM,EACN,UAAU,GACX,EAAE,mBAAmB,qBA6drB"}
|
|
@@ -9,6 +9,7 @@ import { CreateDocumentButton } from '../../../elements/CreateDocumentButton/ind
|
|
|
9
9
|
import { NoListResults } from '../../../elements/NoListResults/index.js';
|
|
10
10
|
import { SimplePagination } from '../../../elements/Pagination/SimplePagination/index.js';
|
|
11
11
|
import { TableSection } from '../../../elements/TableSection/index.js';
|
|
12
|
+
import { useBranchParam } from '../../../providers/Branch/index.js';
|
|
12
13
|
import { useConfig } from '../../../providers/Config/index.js';
|
|
13
14
|
import { useDocumentSelection } from '../../../providers/DocumentSelection/index.js';
|
|
14
15
|
import { useRouteCache } from '../../../providers/RouteCache/index.js';
|
|
@@ -61,6 +62,7 @@ export function HierarchyTable({
|
|
|
61
62
|
},
|
|
62
63
|
getEntityConfig
|
|
63
64
|
} = useConfig();
|
|
65
|
+
const branch = useBranchParam();
|
|
64
66
|
// Children pagination state
|
|
65
67
|
const [childDocs, setChildDocs] = useState(childrenData?.docs || []);
|
|
66
68
|
const [childPaginationData, setChildPaginationData] = useState({
|
|
@@ -135,6 +137,7 @@ export function HierarchyTable({
|
|
|
135
137
|
} : undefined;
|
|
136
138
|
const where = combineWhereConstraints([parentCondition, searchCondition, baseFilter]);
|
|
137
139
|
const queryString = qs.stringify({
|
|
140
|
+
branch,
|
|
138
141
|
limit: DEFAULT_HIERARCHY_LIST_LIMIT,
|
|
139
142
|
page,
|
|
140
143
|
where
|
|
@@ -168,7 +171,7 @@ export function HierarchyTable({
|
|
|
168
171
|
} finally {
|
|
169
172
|
setChildLoading(false);
|
|
170
173
|
}
|
|
171
|
-
}, [apiRoute, baseFilter, childLoading, collectionSlug, parentFieldName, parentId, search, serverURL, useAsTitle]);
|
|
174
|
+
}, [branch, apiRoute, baseFilter, childLoading, collectionSlug, parentFieldName, parentId, search, serverURL, useAsTitle]);
|
|
172
175
|
// Page change for a related collection
|
|
173
176
|
const handlePageChangeRelated = useCallback(async (relatedSlug, page_0) => {
|
|
174
177
|
const state = relatedState[relatedSlug];
|
|
@@ -233,6 +236,7 @@ export function HierarchyTable({
|
|
|
233
236
|
const relatedBaseFilter = relatedBaseFilters?.[relatedSlug];
|
|
234
237
|
const where_0 = combineWhereConstraints([relationshipCondition, searchCondition_0, relatedBaseFilter]);
|
|
235
238
|
const queryString_0 = qs.stringify({
|
|
239
|
+
branch,
|
|
236
240
|
limit: DEFAULT_HIERARCHY_LIST_LIMIT,
|
|
237
241
|
page: page_0,
|
|
238
242
|
where: where_0
|
|
@@ -274,7 +278,7 @@ export function HierarchyTable({
|
|
|
274
278
|
}
|
|
275
279
|
}));
|
|
276
280
|
}
|
|
277
|
-
}, [apiRoute, getEntityConfig, parentFieldName, parentId, relatedBaseFilters, relatedGroups, relatedState, search, serverURL]);
|
|
281
|
+
}, [branch, apiRoute, getEntityConfig, parentFieldName, parentId, relatedBaseFilters, relatedGroups, relatedState, search, serverURL]);
|
|
278
282
|
// Get allowedCollections field name from hierarchy config
|
|
279
283
|
const allowedCollectionsFieldName = useMemo(() => {
|
|
280
284
|
const config = getEntityConfig({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["getTranslation","combineWhereConstraints","DEFAULT_HIERARCHY_LIST_LIMIT","formatAdminURL","qs","React","useCallback","useMemo","useState","CreateDocumentButton","NoListResults","SimplePagination","TableSection","useConfig","useDocumentSelection","useRouteCache","useTranslation","ChildNameCell","DateCell","RelatedNameCell","SlotTable","baseClass","NameCell","props","row","_hasChildren","undefined","_jsx","CollectionCell","_collectionLabel","HierarchyTable","baseFilter","childrenData","collections","collectionSlug","hasCreatePermission","HierarchyIcon","hierarchyLabel","parentFieldName","parentId","relatedBaseFilters","relatedGroups","search","useAsTitle","i18n","t","clearRouteCache","config","routes","api","apiRoute","serverURL","getEntityConfig","childDocs","setChildDocs","docs","childPaginationData","setChildPaginationData","hasNextPage","hasPrevPage","limit","page","pagingCounter","totalDocs","totalPages","childLoading","setChildLoading","relatedState","setRelatedState","initial","group","data","isLoading","isLocked","isSelected","toggleAllInCollection","toggleSelection","getRowLockedUser","locked","id","_collectionSlug","_userEditing","handlePageChangeChildren","parentCondition","equals","or","exists","searchCondition","like","where","queryString","stringify","addQueryPrefix","url","path","response","fetch","credentials","ok","Error","result","json","_error","handlePageChangeRelated","relatedSlug","state","find","g","prev","relationshipCondition","fieldName","in","conditions","hasMany","push","relatedConfig","relatedUseAsTitle","admin","relatedBaseFilter","allowedCollectionsFieldName","hierarchy","collectionSpecific","childrenLabel","labels","plural","childTableData","map","doc","_allowedCollections","Boolean","_hierarchyIcon","hasChildren","hasRelated","some","allGroups","groups","slug","isChildren","isHierarchyEnabled","label","onCheckboxChange","metadata","allowedCollections","onPageChange","onSelectAllChange","paginationData","relatedLabel","relatedTableData","columns","accessor","Cell","className","heading","canShowCreateButton","length","Actions","drawerSlug","onSave","description","title","withMargin","_jsxs","Header","onChange","Content","enableCheckbox","enableDragHandle","enableHeader","enableSelectAll","mergeCheckboxHeader","selectedIds","Set","filter"],"sources":["../../../../src/views/HierarchyList/HierarchyTable/index.tsx"],"sourcesContent":["'use client'\n\nimport type { PaginatedDocs, Where } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n combineWhereConstraints,\n DEFAULT_HIERARCHY_LIST_LIMIT,\n formatAdminURL,\n} from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useMemo, useState } from 'react'\n\nimport type { CollectionOption } from '../../../elements/CreateDocumentButton/index.js'\nimport type { HierarchyDocument } from '../../../elements/Hierarchy/Tree/types.js'\nimport type { SlotColumn } from './SlotTable.js'\nimport type { RelatedGroup, TableRow } from './types.js'\n\nimport { CreateDocumentButton } from '../../../elements/CreateDocumentButton/index.js'\nimport { NoListResults } from '../../../elements/NoListResults/index.js'\nimport { SimplePagination } from '../../../elements/Pagination/SimplePagination/index.js'\nimport { TableSection } from '../../../elements/TableSection/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentSelection } from '../../../providers/DocumentSelection/index.js'\nimport { useRouteCache } from '../../../providers/RouteCache/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { ChildNameCell } from './ChildNameCell.js'\nimport { DateCell } from './DateCell.js'\nimport { RelatedNameCell } from './RelatedNameCell.js'\nimport { SlotTable } from './SlotTable.js'\nimport { baseClass } from './types.js'\nimport './index.css'\n\n// Top-level cell components to avoid nested component eslint errors\nconst NameCell: SlotColumn<TableRow>['Cell'] = (props) =>\n props.row._hasChildren !== undefined ? (\n <ChildNameCell {...props} />\n ) : (\n <RelatedNameCell {...props} />\n )\n\nconst CollectionCell: SlotColumn<TableRow>['Cell'] = ({ row }) => (\n <span>{row._collectionLabel}</span>\n)\n\nexport type HierarchyTableProps = {\n /** Base filter applied to hierarchy collection queries (e.g., tenant filter) */\n baseFilter?: Where\n childrenData?: PaginatedDocs<HierarchyDocument>\n /** Collections available for creation (for empty state) */\n collections?: CollectionOption[]\n collectionSlug: string\n hasCreatePermission?: boolean\n /** Resolved hierarchy icon component */\n HierarchyIcon?: React.ReactNode\n hierarchyLabel: string\n parentFieldName?: string\n parentId: null | number | string\n /** Base filters for related collections (keyed by collection slug) */\n relatedBaseFilters?: Record<string, Where>\n relatedGroups: RelatedGroup[]\n search?: string\n useAsTitle: string\n}\n\nexport function HierarchyTable({\n baseFilter,\n childrenData,\n collections,\n collectionSlug,\n hasCreatePermission,\n HierarchyIcon,\n hierarchyLabel,\n parentFieldName,\n parentId,\n relatedBaseFilters,\n relatedGroups,\n search,\n useAsTitle,\n}: HierarchyTableProps) {\n const { i18n, t } = useTranslation()\n const { clearRouteCache } = useRouteCache()\n const {\n config: {\n routes: { api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n // Children pagination state\n const [childDocs, setChildDocs] = useState(childrenData?.docs || [])\n const [childPaginationData, setChildPaginationData] = useState<Partial<PaginatedDocs>>({\n hasNextPage: childrenData?.hasNextPage || false,\n hasPrevPage: childrenData?.hasPrevPage || false,\n limit: childrenData?.limit || DEFAULT_HIERARCHY_LIST_LIMIT,\n page: childrenData?.page || 1,\n pagingCounter: childrenData?.pagingCounter || 1,\n totalDocs: childrenData?.totalDocs || 0,\n totalPages: childrenData?.totalPages || 1,\n })\n const [childLoading, setChildLoading] = useState(false)\n\n // Related groups pagination state (per collection)\n const [relatedState, setRelatedState] = useState<\n Record<\n string,\n {\n isLoading: boolean\n } & Partial<PaginatedDocs>\n >\n >(() => {\n const initial: Record<\n string,\n {\n isLoading: boolean\n } & Partial<PaginatedDocs>\n > = {}\n for (const group of relatedGroups) {\n initial[group.collectionSlug] = {\n docs: group.data.docs,\n hasNextPage: group.data.hasNextPage,\n hasPrevPage: group.data.hasPrevPage || false,\n isLoading: false,\n limit: group.data.limit || DEFAULT_HIERARCHY_LIST_LIMIT,\n page: group.data.page || 1,\n pagingCounter: group.data.pagingCounter || 1,\n totalDocs: group.data.totalDocs,\n totalPages: group.data.totalPages || 1,\n }\n }\n return initial\n })\n\n // Get selection functions from context\n const { isLocked, isSelected, toggleAllInCollection, toggleSelection } = useDocumentSelection()\n\n // Get the user who is locking a row (for SlotTable to show lock icon instead of checkbox)\n const getRowLockedUser = useCallback(\n (row: TableRow) => {\n const locked = isLocked({ id: row.id, collectionSlug: row._collectionSlug })\n return locked ? row._userEditing : undefined\n },\n [isLocked],\n )\n\n // Page change for children\n const handlePageChangeChildren = useCallback(\n async (page: number) => {\n if (childLoading) {\n return\n }\n\n setChildLoading(true)\n\n try {\n const parentCondition = parentId\n ? { [parentFieldName]: { equals: parentId } }\n : {\n or: [\n { [parentFieldName]: { exists: false } },\n { [parentFieldName]: { equals: null } },\n ],\n }\n\n const searchCondition = search ? { [useAsTitle]: { like: search } } : undefined\n const where = combineWhereConstraints([parentCondition, searchCondition, baseFilter])\n\n const queryString = qs.stringify(\n { limit: DEFAULT_HIERARCHY_LIST_LIMIT, page, where },\n { addQueryPrefix: true },\n )\n const url = formatAdminURL({\n apiRoute,\n path: `/${collectionSlug}${queryString}`,\n serverURL,\n })\n\n const response = await fetch(url, { credentials: 'include' })\n\n if (!response.ok) {\n throw new Error('Failed to load page')\n }\n\n const result: PaginatedDocs = await response.json()\n\n setChildDocs(result.docs)\n setChildPaginationData({\n hasNextPage: result.hasNextPage,\n hasPrevPage: result.hasPrevPage,\n limit: result.limit,\n page: result.page,\n pagingCounter: result.pagingCounter,\n totalDocs: result.totalDocs,\n totalPages: result.totalPages,\n })\n } catch (_error) {\n // Silently fail\n } finally {\n setChildLoading(false)\n }\n },\n [\n apiRoute,\n baseFilter,\n childLoading,\n collectionSlug,\n parentFieldName,\n parentId,\n search,\n serverURL,\n useAsTitle,\n ],\n )\n\n // Page change for a related collection\n const handlePageChangeRelated = useCallback(\n async (relatedSlug: string, page: number) => {\n const state = relatedState[relatedSlug]\n if (!state || state.isLoading) {\n return\n }\n\n // Find the group to get field info\n const group = relatedGroups.find((g) => g.collectionSlug === relatedSlug)\n if (!group) {\n return\n }\n\n setRelatedState((prev) => ({\n ...prev,\n [relatedSlug]: { ...prev[relatedSlug], isLoading: true },\n }))\n\n try {\n // Build relationship condition based on whether we're at root or in a parent\n let relationshipCondition: Record<string, unknown>\n if (parentId) {\n // Nested level: find documents assigned to this hierarchy item\n // \"in\" operator works for both hasMany and single relationship fields\n relationshipCondition = { [group.fieldName]: { in: [parentId] } }\n } else {\n // Root level: find documents where hierarchy field doesn't exist, is null, or is empty array\n const conditions: Record<string, unknown>[] = [\n { [group.fieldName]: { exists: false } },\n { [group.fieldName]: { equals: null } },\n ]\n if (group.hasMany) {\n // hasMany fields store cleared values as empty arrays\n conditions.push({ [group.fieldName]: { equals: [] } })\n }\n relationshipCondition = { or: conditions }\n }\n\n const relatedConfig = getEntityConfig({ collectionSlug: relatedSlug })\n const relatedUseAsTitle = relatedConfig?.admin?.useAsTitle || 'id'\n\n const searchCondition = search ? { [relatedUseAsTitle]: { like: search } } : undefined\n const relatedBaseFilter = relatedBaseFilters?.[relatedSlug]\n const where = combineWhereConstraints([\n relationshipCondition,\n searchCondition,\n relatedBaseFilter,\n ])\n\n const queryString = qs.stringify(\n { limit: DEFAULT_HIERARCHY_LIST_LIMIT, page, where },\n { addQueryPrefix: true },\n )\n const url = formatAdminURL({\n apiRoute,\n path: `/${relatedSlug}${queryString}`,\n serverURL,\n })\n\n const response = await fetch(url, { credentials: 'include' })\n\n if (!response.ok) {\n throw new Error('Failed to load page')\n }\n\n const result: PaginatedDocs = await response.json()\n\n setRelatedState((prev) => ({\n ...prev,\n [relatedSlug]: {\n docs: result.docs,\n hasNextPage: result.hasNextPage,\n hasPrevPage: result.hasPrevPage,\n isLoading: false,\n limit: result.limit,\n page: result.page,\n pagingCounter: result.pagingCounter,\n totalDocs: result.totalDocs,\n totalPages: result.totalPages,\n },\n }))\n } catch (_error) {\n setRelatedState((prev) => ({\n ...prev,\n [relatedSlug]: { ...prev[relatedSlug], isLoading: false },\n }))\n }\n },\n [\n apiRoute,\n getEntityConfig,\n parentFieldName,\n parentId,\n relatedBaseFilters,\n relatedGroups,\n relatedState,\n search,\n serverURL,\n ],\n )\n\n // Get allowedCollections field name from hierarchy config\n const allowedCollectionsFieldName = useMemo(() => {\n const config = getEntityConfig({ collectionSlug })\n const hierarchy = config?.hierarchy\n\n if (hierarchy && typeof hierarchy === 'object' && hierarchy.collectionSpecific) {\n return hierarchy.collectionSpecific.fieldName\n }\n\n return undefined\n }, [collectionSlug, getEntityConfig])\n\n // Compute collection label for children (once)\n const childrenLabel = useMemo(\n () =>\n getTranslation(getEntityConfig({ collectionSlug })?.labels?.plural, i18n) || hierarchyLabel,\n [collectionSlug, getEntityConfig, hierarchyLabel, i18n],\n )\n\n // Build children data for table\n const childTableData: TableRow[] = useMemo(\n () =>\n childDocs.map((doc) => ({\n ...doc,\n id: doc.id,\n _allowedCollections: allowedCollectionsFieldName\n ? (doc[allowedCollectionsFieldName] as string[] | undefined)\n : undefined,\n _collectionLabel: childrenLabel,\n _collectionSlug: collectionSlug,\n _hasChildren: Boolean(doc._hasChildren),\n _hierarchyIcon: HierarchyIcon,\n })),\n [HierarchyIcon, allowedCollectionsFieldName, childDocs, childrenLabel, collectionSlug],\n )\n\n const hasChildren = (childPaginationData.totalDocs || 0) > 0\n const hasRelated = relatedGroups.some((g) => relatedState[g.collectionSlug]?.totalDocs > 0)\n\n // Unified groups array\n type GroupState = {\n docs: TableRow[]\n isChildren: boolean\n isHierarchyEnabled: boolean\n isLoading: boolean\n label: string\n onCheckboxChange: (row: TableRow) => void\n onPageChange: (page: number) => void\n onSelectAllChange: () => void\n paginationData: PaginatedDocs\n slug: string\n }\n\n const allGroups: GroupState[] = useMemo(() => {\n const groups: GroupState[] = []\n\n // Children group\n if (hasChildren) {\n groups.push({\n slug: collectionSlug,\n docs: childTableData,\n isChildren: true,\n isHierarchyEnabled: true,\n isLoading: childLoading,\n label: childrenLabel,\n onCheckboxChange: (row: TableRow) =>\n toggleSelection({\n id: row.id,\n collectionSlug,\n metadata: {\n allowedCollections: row._allowedCollections as string[] | undefined,\n },\n }),\n onPageChange: (page: number) => void handlePageChangeChildren(page),\n onSelectAllChange: () => toggleAllInCollection({ collectionSlug }),\n paginationData: {\n docs: childDocs,\n hasNextPage: childPaginationData.hasNextPage || false,\n hasPrevPage: childPaginationData.hasPrevPage || false,\n limit: childPaginationData.limit || DEFAULT_HIERARCHY_LIST_LIMIT,\n page: childPaginationData.page || 1,\n pagingCounter: childPaginationData.pagingCounter || 1,\n totalDocs: childPaginationData.totalDocs || 0,\n totalPages: childPaginationData.totalPages || 1,\n },\n })\n }\n\n // Related groups\n for (const group of relatedGroups) {\n const state = relatedState[group.collectionSlug]\n if (!state || state.totalDocs === 0) {\n continue\n }\n\n const relatedConfig = getEntityConfig({ collectionSlug: group.collectionSlug })\n const relatedLabel = getTranslation(relatedConfig?.labels?.plural, i18n) || group.label\n\n const relatedTableData: TableRow[] = state.docs.map((doc: Record<string, unknown>) => ({\n ...doc,\n id: doc.id as number | string,\n _collectionLabel: relatedLabel,\n _collectionSlug: group.collectionSlug,\n }))\n\n groups.push({\n slug: group.collectionSlug,\n docs: relatedTableData,\n isChildren: false,\n isHierarchyEnabled: false,\n isLoading: state.isLoading,\n label: relatedLabel,\n onCheckboxChange: (row: TableRow) =>\n toggleSelection({\n id: row.id,\n collectionSlug: group.collectionSlug,\n metadata: {}, // Related items don't have allowedCollections - their collection slug is the constraint\n }),\n onPageChange: (page: number) => void handlePageChangeRelated(group.collectionSlug, page),\n onSelectAllChange: () => toggleAllInCollection({ collectionSlug: group.collectionSlug }),\n paginationData: {\n docs: state.docs || [],\n hasNextPage: state.hasNextPage || false,\n hasPrevPage: state.hasPrevPage || false,\n limit: state.limit || DEFAULT_HIERARCHY_LIST_LIMIT,\n page: state.page || 1,\n pagingCounter: state.pagingCounter || 1,\n totalDocs: state.totalDocs || 0,\n totalPages: state.totalPages || 1,\n },\n })\n }\n\n return groups\n }, [\n childDocs,\n childLoading,\n childPaginationData,\n childrenLabel,\n childTableData,\n collectionSlug,\n getEntityConfig,\n handlePageChangeChildren,\n handlePageChangeRelated,\n hasChildren,\n i18n,\n relatedGroups,\n relatedState,\n toggleAllInCollection,\n toggleSelection,\n ])\n\n // Column definitions\n const columns: SlotColumn<TableRow>[] = useMemo(\n () => [\n {\n accessor: 'name',\n Cell: NameCell,\n className: `${baseClass}__col-name`,\n heading: t('general:name'),\n },\n {\n accessor: 'collection',\n Cell: CollectionCell,\n className: `${baseClass}__col-collection`,\n heading: t('general:collection'),\n },\n {\n accessor: 'updatedAt',\n Cell: DateCell,\n className: `${baseClass}__col-date`,\n heading: t('general:updatedAt'),\n },\n ],\n [t],\n )\n\n if (!hasChildren && !hasRelated) {\n const canShowCreateButton = hasCreatePermission && collections && collections.length > 0\n\n return (\n <NoListResults\n Actions={\n canShowCreateButton\n ? [\n <CreateDocumentButton\n collections={collections}\n drawerSlug={`hierarchy-create-empty-${collectionSlug}`}\n key=\"create\"\n onSave={clearRouteCache}\n />,\n ]\n : undefined\n }\n description={t('general:noResultsDescription')}\n title={t('general:noResultsFound')}\n withMargin\n />\n )\n }\n\n return (\n <div className={baseClass}>\n {allGroups.map((group) => (\n <TableSection key={group.slug}>\n <TableSection.Header heading={group.label}>\n <SimplePagination data={group.paginationData} onChange={group.onPageChange} />\n </TableSection.Header>\n <TableSection.Content>\n <SlotTable\n collectionSlug={group.slug}\n columns={columns}\n data={group.docs}\n enableCheckbox={true}\n enableDragHandle={false}\n enableHeader={true}\n enableSelectAll={true}\n getRowLockedUser={getRowLockedUser}\n mergeCheckboxHeader={false}\n onCheckboxChange={group.onCheckboxChange}\n onSelectAllChange={group.onSelectAllChange}\n parentId={parentId}\n selectedIds={\n new Set(\n group.docs\n .filter((row) => isSelected({ id: row.id, collectionSlug: group.slug }))\n .map((row) => row.id),\n )\n }\n />\n </TableSection.Content>\n </TableSection>\n ))}\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAIA,SAASA,cAAc,QAAQ;AAC/B,SACEC,uBAAuB,EACvBC,4BAA4B,EAC5BC,cAAc,QACT;AACP,YAAYC,EAAA,MAAQ;AACpB,OAAOC,KAAA,IAASC,WAAW,EAAEC,OAAO,EAAEC,QAAQ,QAAQ;AAOtD,SAASC,oBAAoB,QAAQ;AACrC,SAASC,aAAa,QAAQ;AAC9B,SAASC,gBAAgB,QAAQ;AACjC,SAASC,YAAY,QAAQ;AAC7B,SAASC,SAAS,QAAQ;AAC1B,SAASC,oBAAoB,QAAQ;AACrC,SAASC,aAAa,QAAQ;AAC9B,SAASC,cAAc,QAAQ;AAC/B,SAASC,aAAa,QAAQ;AAC9B,SAASC,QAAQ,QAAQ;AACzB,SAASC,eAAe,QAAQ;AAChC,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,OAAO;AAEP;AACA,MAAMC,QAAA,GAA0CC,KAAA,IAC9CA,KAAA,CAAMC,GAAG,CAACC,YAAY,KAAKC,SAAA,gBACzBC,IAAA,CAACV,aAAA;EAAe,GAAGM;kBAEnBI,IAAA,CAACR,eAAA;EAAiB,GAAGI;;AAGzB,MAAMK,cAAA,GAA+CA,CAAC;EAAEJ;AAAG,CAAE,kBAC3DG,IAAA,CAAC;YAAMH,GAAA,CAAIK;;AAuBb,OAAO,SAASC,eAAe;EAC7BC,UAAU;EACVC,YAAY;EACZC,WAAW;EACXC,cAAc;EACdC,mBAAmB;EACnBC,aAAa;EACbC,cAAc;EACdC,eAAe;EACfC,QAAQ;EACRC,kBAAkB;EAClBC,aAAa;EACbC,MAAM;EACNC;AAAU,CACU;EACpB,MAAM;IAAEC,IAAI;IAAEC;EAAC,CAAE,GAAG7B,cAAA;EACpB,MAAM;IAAE8B;EAAe,CAAE,GAAG/B,aAAA;EAC5B,MAAM;IACJgC,MAAA,EAAQ;MACNC,MAAA,EAAQ;QAAEC,GAAA,EAAKC;MAAQ,CAAE;MACzBC;IAAS,CACV;IACDC;EAAe,CAChB,GAAGvC,SAAA;EAEJ;EACA,MAAM,CAACwC,SAAA,EAAWC,YAAA,CAAa,GAAG9C,QAAA,CAASwB,YAAA,EAAcuB,IAAA,IAAQ,EAAE;EACnE,MAAM,CAACC,mBAAA,EAAqBC,sBAAA,CAAuB,GAAGjD,QAAA,CAAiC;IACrFkD,WAAA,EAAa1B,YAAA,EAAc0B,WAAA,IAAe;IAC1CC,WAAA,EAAa3B,YAAA,EAAc2B,WAAA,IAAe;IAC1CC,KAAA,EAAO5B,YAAA,EAAc4B,KAAA,IAAS1D,4BAAA;IAC9B2D,IAAA,EAAM7B,YAAA,EAAc6B,IAAA,IAAQ;IAC5BC,aAAA,EAAe9B,YAAA,EAAc8B,aAAA,IAAiB;IAC9CC,SAAA,EAAW/B,YAAA,EAAc+B,SAAA,IAAa;IACtCC,UAAA,EAAYhC,YAAA,EAAcgC,UAAA,IAAc;EAC1C;EACA,MAAM,CAACC,YAAA,EAAcC,eAAA,CAAgB,GAAG1D,QAAA,CAAS;EAEjD;EACA,MAAM,CAAC2D,YAAA,EAAcC,eAAA,CAAgB,GAAG5D,QAAA,CAOtC;IACA,MAAM6D,OAAA,GAKF,CAAC;IACL,KAAK,MAAMC,KAAA,IAAS7B,aAAA,EAAe;MACjC4B,OAAO,CAACC,KAAA,CAAMpC,cAAc,CAAC,GAAG;QAC9BqB,IAAA,EAAMe,KAAA,CAAMC,IAAI,CAAChB,IAAI;QACrBG,WAAA,EAAaY,KAAA,CAAMC,IAAI,CAACb,WAAW;QACnCC,WAAA,EAAaW,KAAA,CAAMC,IAAI,CAACZ,WAAW,IAAI;QACvCa,SAAA,EAAW;QACXZ,KAAA,EAAOU,KAAA,CAAMC,IAAI,CAACX,KAAK,IAAI1D,4BAAA;QAC3B2D,IAAA,EAAMS,KAAA,CAAMC,IAAI,CAACV,IAAI,IAAI;QACzBC,aAAA,EAAeQ,KAAA,CAAMC,IAAI,CAACT,aAAa,IAAI;QAC3CC,SAAA,EAAWO,KAAA,CAAMC,IAAI,CAACR,SAAS;QAC/BC,UAAA,EAAYM,KAAA,CAAMC,IAAI,CAACP,UAAU,IAAI;MACvC;IACF;IACA,OAAOK,OAAA;EACT;EAEA;EACA,MAAM;IAAEI,QAAQ;IAAEC,UAAU;IAAEC,qBAAqB;IAAEC;EAAe,CAAE,GAAG9D,oBAAA;EAEzE;EACA,MAAM+D,gBAAA,GAAmBvE,WAAA,CACtBkB,GAAA;IACC,MAAMsD,MAAA,GAASL,QAAA,CAAS;MAAEM,EAAA,EAAIvD,GAAA,CAAIuD,EAAE;MAAE7C,cAAA,EAAgBV,GAAA,CAAIwD;IAAgB;IAC1E,OAAOF,MAAA,GAAStD,GAAA,CAAIyD,YAAY,GAAGvD,SAAA;EACrC,GACA,CAAC+C,QAAA,CAAS;EAGZ;EACA,MAAMS,wBAAA,GAA2B5E,WAAA,CAC/B,MAAOuD,IAAA;IACL,IAAII,YAAA,EAAc;MAChB;IACF;IAEAC,eAAA,CAAgB;IAEhB,IAAI;MACF,MAAMiB,eAAA,GAAkB5C,QAAA,GACpB;QAAE,CAACD,eAAA,GAAkB;UAAE8C,MAAA,EAAQ7C;QAAS;MAAE,IAC1C;QACE8C,EAAA,EAAI,CACF;UAAE,CAAC/C,eAAA,GAAkB;YAAEgD,MAAA,EAAQ;UAAM;QAAE,GACvC;UAAE,CAAChD,eAAA,GAAkB;YAAE8C,MAAA,EAAQ;UAAK;QAAE;MAE1C;MAEJ,MAAMG,eAAA,GAAkB7C,MAAA,GAAS;QAAE,CAACC,UAAA,GAAa;UAAE6C,IAAA,EAAM9C;QAAO;MAAE,IAAIhB,SAAA;MACtE,MAAM+D,KAAA,GAAQxF,uBAAA,CAAwB,CAACkF,eAAA,EAAiBI,eAAA,EAAiBxD,UAAA,CAAW;MAEpF,MAAM2D,WAAA,GAActF,EAAA,CAAGuF,SAAS,CAC9B;QAAE/B,KAAA,EAAO1D,4BAAA;QAA8B2D,IAAA;QAAM4B;MAAM,GACnD;QAAEG,cAAA,EAAgB;MAAK;MAEzB,MAAMC,GAAA,GAAM1F,cAAA,CAAe;QACzB+C,QAAA;QACA4C,IAAA,EAAM,IAAI5D,cAAA,GAAiBwD,WAAA,EAAa;QACxCvC;MACF;MAEA,MAAM4C,QAAA,GAAW,MAAMC,KAAA,CAAMH,GAAA,EAAK;QAAEI,WAAA,EAAa;MAAU;MAE3D,IAAI,CAACF,QAAA,CAASG,EAAE,EAAE;QAChB,MAAM,IAAIC,KAAA,CAAM;MAClB;MAEA,MAAMC,MAAA,GAAwB,MAAML,QAAA,CAASM,IAAI;MAEjD/C,YAAA,CAAa8C,MAAA,CAAO7C,IAAI;MACxBE,sBAAA,CAAuB;QACrBC,WAAA,EAAa0C,MAAA,CAAO1C,WAAW;QAC/BC,WAAA,EAAayC,MAAA,CAAOzC,WAAW;QAC/BC,KAAA,EAAOwC,MAAA,CAAOxC,KAAK;QACnBC,IAAA,EAAMuC,MAAA,CAAOvC,IAAI;QACjBC,aAAA,EAAesC,MAAA,CAAOtC,aAAa;QACnCC,SAAA,EAAWqC,MAAA,CAAOrC,SAAS;QAC3BC,UAAA,EAAYoC,MAAA,CAAOpC;MACrB;IACF,EAAE,OAAOsC,MAAA,EAAQ;MACf;IAAA,CACF,SAAU;MACRpC,eAAA,CAAgB;IAClB;EACF,GACA,CACEhB,QAAA,EACAnB,UAAA,EACAkC,YAAA,EACA/B,cAAA,EACAI,eAAA,EACAC,QAAA,EACAG,MAAA,EACAS,SAAA,EACAR,UAAA,CACD;EAGH;EACA,MAAM4D,uBAAA,GAA0BjG,WAAA,CAC9B,OAAOkG,WAAA,EAAqB3C,MAAA;IAC1B,MAAM4C,KAAA,GAAQtC,YAAY,CAACqC,WAAA,CAAY;IACvC,IAAI,CAACC,KAAA,IAASA,KAAA,CAAMjC,SAAS,EAAE;MAC7B;IACF;IAEA;IACA,MAAMF,OAAA,GAAQ7B,aAAA,CAAciE,IAAI,CAAEC,CAAA,IAAMA,CAAA,CAAEzE,cAAc,KAAKsE,WAAA;IAC7D,IAAI,CAAClC,OAAA,EAAO;MACV;IACF;IAEAF,eAAA,CAAiBwC,IAAA,KAAU;MACzB,GAAGA,IAAI;MACP,CAACJ,WAAA,GAAc;QAAE,GAAGI,IAAI,CAACJ,WAAA,CAAY;QAAEhC,SAAA,EAAW;MAAK;IACzD;IAEA,IAAI;MACF;MACA,IAAIqC,qBAAA;MACJ,IAAItE,QAAA,EAAU;QACZ;QACA;QACAsE,qBAAA,GAAwB;UAAE,CAACvC,OAAA,CAAMwC,SAAS,GAAG;YAAEC,EAAA,EAAI,CAACxE,QAAA;UAAU;QAAE;MAClE,OAAO;QACL;QACA,MAAMyE,UAAA,GAAwC,CAC5C;UAAE,CAAC1C,OAAA,CAAMwC,SAAS,GAAG;YAAExB,MAAA,EAAQ;UAAM;QAAE,GACvC;UAAE,CAAChB,OAAA,CAAMwC,SAAS,GAAG;YAAE1B,MAAA,EAAQ;UAAK;QAAE,EACvC;QACD,IAAId,OAAA,CAAM2C,OAAO,EAAE;UACjB;UACAD,UAAA,CAAWE,IAAI,CAAC;YAAE,CAAC5C,OAAA,CAAMwC,SAAS,GAAG;cAAE1B,MAAA,EAAQ;YAAG;UAAE;QACtD;QACAyB,qBAAA,GAAwB;UAAExB,EAAA,EAAI2B;QAAW;MAC3C;MAEA,MAAMG,aAAA,GAAgB/D,eAAA,CAAgB;QAAElB,cAAA,EAAgBsE;MAAY;MACpE,MAAMY,iBAAA,GAAoBD,aAAA,EAAeE,KAAA,EAAO1E,UAAA,IAAc;MAE9D,MAAM4C,iBAAA,GAAkB7C,MAAA,GAAS;QAAE,CAAC0E,iBAAA,GAAoB;UAAE5B,IAAA,EAAM9C;QAAO;MAAE,IAAIhB,SAAA;MAC7E,MAAM4F,iBAAA,GAAoB9E,kBAAA,GAAqBgE,WAAA,CAAY;MAC3D,MAAMf,OAAA,GAAQxF,uBAAA,CAAwB,CACpC4G,qBAAA,EACAtB,iBAAA,EACA+B,iBAAA,CACD;MAED,MAAM5B,aAAA,GAActF,EAAA,CAAGuF,SAAS,CAC9B;QAAE/B,KAAA,EAAO1D,4BAAA;QAA8B2D,IAAA,EAAAA,MAAA;QAAM4B,KAAA,EAAAA;MAAM,GACnD;QAAEG,cAAA,EAAgB;MAAK;MAEzB,MAAMC,KAAA,GAAM1F,cAAA,CAAe;QACzB+C,QAAA;QACA4C,IAAA,EAAM,IAAIU,WAAA,GAAcd,aAAA,EAAa;QACrCvC;MACF;MAEA,MAAM4C,UAAA,GAAW,MAAMC,KAAA,CAAMH,KAAA,EAAK;QAAEI,WAAA,EAAa;MAAU;MAE3D,IAAI,CAACF,UAAA,CAASG,EAAE,EAAE;QAChB,MAAM,IAAIC,KAAA,CAAM;MAClB;MAEA,MAAMC,QAAA,GAAwB,MAAML,UAAA,CAASM,IAAI;MAEjDjC,eAAA,CAAiBwC,MAAA,KAAU;QACzB,GAAGA,MAAI;QACP,CAACJ,WAAA,GAAc;UACbjD,IAAA,EAAM6C,QAAA,CAAO7C,IAAI;UACjBG,WAAA,EAAa0C,QAAA,CAAO1C,WAAW;UAC/BC,WAAA,EAAayC,QAAA,CAAOzC,WAAW;UAC/Ba,SAAA,EAAW;UACXZ,KAAA,EAAOwC,QAAA,CAAOxC,KAAK;UACnBC,IAAA,EAAMuC,QAAA,CAAOvC,IAAI;UACjBC,aAAA,EAAesC,QAAA,CAAOtC,aAAa;UACnCC,SAAA,EAAWqC,QAAA,CAAOrC,SAAS;UAC3BC,UAAA,EAAYoC,QAAA,CAAOpC;QACrB;MACF;IACF,EAAE,OAAOsC,QAAA,EAAQ;MACflC,eAAA,CAAiBwC,MAAA,KAAU;QACzB,GAAGA,MAAI;QACP,CAACJ,WAAA,GAAc;UAAE,GAAGI,MAAI,CAACJ,WAAA,CAAY;UAAEhC,SAAA,EAAW;QAAM;MAC1D;IACF;EACF,GACA,CACEtB,QAAA,EACAE,eAAA,EACAd,eAAA,EACAC,QAAA,EACAC,kBAAA,EACAC,aAAA,EACA0B,YAAA,EACAzB,MAAA,EACAS,SAAA,CACD;EAGH;EACA,MAAMoE,2BAAA,GAA8BhH,OAAA,CAAQ;IAC1C,MAAMwC,MAAA,GAASK,eAAA,CAAgB;MAAElB;IAAe;IAChD,MAAMsF,SAAA,GAAYzE,MAAA,EAAQyE,SAAA;IAE1B,IAAIA,SAAA,IAAa,OAAOA,SAAA,KAAc,YAAYA,SAAA,CAAUC,kBAAkB,EAAE;MAC9E,OAAOD,SAAA,CAAUC,kBAAkB,CAACX,SAAS;IAC/C;IAEA,OAAOpF,SAAA;EACT,GAAG,CAACQ,cAAA,EAAgBkB,eAAA,CAAgB;EAEpC;EACA,MAAMsE,aAAA,GAAgBnH,OAAA,CACpB,MACEP,cAAA,CAAeoD,eAAA,CAAgB;IAAElB;EAAe,IAAIyF,MAAA,EAAQC,MAAA,EAAQhF,IAAA,KAASP,cAAA,EAC/E,CAACH,cAAA,EAAgBkB,eAAA,EAAiBf,cAAA,EAAgBO,IAAA,CAAK;EAGzD;EACA,MAAMiF,cAAA,GAA6BtH,OAAA,CACjC,MACE8C,SAAA,CAAUyE,GAAG,CAAEC,GAAA,KAAS;IACtB,GAAGA,GAAG;IACNhD,EAAA,EAAIgD,GAAA,CAAIhD,EAAE;IACViD,mBAAA,EAAqBT,2BAAA,GAChBQ,GAAG,CAACR,2BAAA,CAA4B,GACjC7F,SAAA;IACJG,gBAAA,EAAkB6F,aAAA;IAClB1C,eAAA,EAAiB9C,cAAA;IACjBT,YAAA,EAAcwG,OAAA,CAAQF,GAAA,CAAItG,YAAY;IACtCyG,cAAA,EAAgB9F;EAClB,KACF,CAACA,aAAA,EAAemF,2BAAA,EAA6BlE,SAAA,EAAWqE,aAAA,EAAexF,cAAA,CAAe;EAGxF,MAAMiG,WAAA,GAAc,CAAC3E,mBAAA,CAAoBO,SAAS,IAAI,KAAK;EAC3D,MAAMqE,UAAA,GAAa3F,aAAA,CAAc4F,IAAI,CAAE1B,GAAA,IAAMxC,YAAY,CAACwC,GAAA,CAAEzE,cAAc,CAAC,EAAE6B,SAAA,GAAY;EAgBzF,MAAMuE,SAAA,GAA0B/H,OAAA,CAAQ;IACtC,MAAMgI,MAAA,GAAuB,EAAE;IAE/B;IACA,IAAIJ,WAAA,EAAa;MACfI,MAAA,CAAOrB,IAAI,CAAC;QACVsB,IAAA,EAAMtG,cAAA;QACNqB,IAAA,EAAMsE,cAAA;QACNY,UAAA,EAAY;QACZC,kBAAA,EAAoB;QACpBlE,SAAA,EAAWP,YAAA;QACX0E,KAAA,EAAOjB,aAAA;QACPkB,gBAAA,EAAmBpH,KAAA,IACjBoD,eAAA,CAAgB;UACdG,EAAA,EAAIvD,KAAA,CAAIuD,EAAE;UACV7C,cAAA;UACA2G,QAAA,EAAU;YACRC,kBAAA,EAAoBtH,KAAA,CAAIwG;UAC1B;QACF;QACFe,YAAA,EAAelF,MAAA,IAAiB,KAAKqB,wBAAA,CAAyBrB,MAAA;QAC9DmF,iBAAA,EAAmBA,CAAA,KAAMrE,qBAAA,CAAsB;UAAEzC;QAAe;QAChE+G,cAAA,EAAgB;UACd1F,IAAA,EAAMF,SAAA;UACNK,WAAA,EAAaF,mBAAA,CAAoBE,WAAW,IAAI;UAChDC,WAAA,EAAaH,mBAAA,CAAoBG,WAAW,IAAI;UAChDC,KAAA,EAAOJ,mBAAA,CAAoBI,KAAK,IAAI1D,4BAAA;UACpC2D,IAAA,EAAML,mBAAA,CAAoBK,IAAI,IAAI;UAClCC,aAAA,EAAeN,mBAAA,CAAoBM,aAAa,IAAI;UACpDC,SAAA,EAAWP,mBAAA,CAAoBO,SAAS,IAAI;UAC5CC,UAAA,EAAYR,mBAAA,CAAoBQ,UAAU,IAAI;QAChD;MACF;IACF;IAEA;IACA,KAAK,MAAMM,OAAA,IAAS7B,aAAA,EAAe;MACjC,MAAMgE,OAAA,GAAQtC,YAAY,CAACG,OAAA,CAAMpC,cAAc,CAAC;MAChD,IAAI,CAACuE,OAAA,IAASA,OAAA,CAAM1C,SAAS,KAAK,GAAG;QACnC;MACF;MAEA,MAAMoD,eAAA,GAAgB/D,eAAA,CAAgB;QAAElB,cAAA,EAAgBoC,OAAA,CAAMpC;MAAe;MAC7E,MAAMgH,YAAA,GAAelJ,cAAA,CAAemH,eAAA,EAAeQ,MAAA,EAAQC,MAAA,EAAQhF,IAAA,KAAS0B,OAAA,CAAMqE,KAAK;MAEvF,MAAMQ,gBAAA,GAA+B1C,OAAA,CAAMlD,IAAI,CAACuE,GAAG,CAAEC,KAAA,KAAkC;QACrF,GAAGA,KAAG;QACNhD,EAAA,EAAIgD,KAAA,CAAIhD,EAAE;QACVlD,gBAAA,EAAkBqH,YAAA;QAClBlE,eAAA,EAAiBV,OAAA,CAAMpC;MACzB;MAEAqG,MAAA,CAAOrB,IAAI,CAAC;QACVsB,IAAA,EAAMlE,OAAA,CAAMpC,cAAc;QAC1BqB,IAAA,EAAM4F,gBAAA;QACNV,UAAA,EAAY;QACZC,kBAAA,EAAoB;QACpBlE,SAAA,EAAWiC,OAAA,CAAMjC,SAAS;QAC1BmE,KAAA,EAAOO,YAAA;QACPN,gBAAA,EAAmBpH,KAAA,IACjBoD,eAAA,CAAgB;UACdG,EAAA,EAAIvD,KAAA,CAAIuD,EAAE;UACV7C,cAAA,EAAgBoC,OAAA,CAAMpC,cAAc;UACpC2G,QAAA,EAAU,CAAC;QACb;QACFE,YAAA,EAAelF,MAAA,IAAiB,KAAK0C,uBAAA,CAAwBjC,OAAA,CAAMpC,cAAc,EAAE2B,MAAA;QACnFmF,iBAAA,EAAmBA,CAAA,KAAMrE,qBAAA,CAAsB;UAAEzC,cAAA,EAAgBoC,OAAA,CAAMpC;QAAe;QACtF+G,cAAA,EAAgB;UACd1F,IAAA,EAAMkD,OAAA,CAAMlD,IAAI,IAAI,EAAE;UACtBG,WAAA,EAAa+C,OAAA,CAAM/C,WAAW,IAAI;UAClCC,WAAA,EAAa8C,OAAA,CAAM9C,WAAW,IAAI;UAClCC,KAAA,EAAO6C,OAAA,CAAM7C,KAAK,IAAI1D,4BAAA;UACtB2D,IAAA,EAAM4C,OAAA,CAAM5C,IAAI,IAAI;UACpBC,aAAA,EAAe2C,OAAA,CAAM3C,aAAa,IAAI;UACtCC,SAAA,EAAW0C,OAAA,CAAM1C,SAAS,IAAI;UAC9BC,UAAA,EAAYyC,OAAA,CAAMzC,UAAU,IAAI;QAClC;MACF;IACF;IAEA,OAAOuE,MAAA;EACT,GAAG,CACDlF,SAAA,EACAY,YAAA,EACAT,mBAAA,EACAkE,aAAA,EACAG,cAAA,EACA3F,cAAA,EACAkB,eAAA,EACA8B,wBAAA,EACAqB,uBAAA,EACA4B,WAAA,EACAvF,IAAA,EACAH,aAAA,EACA0B,YAAA,EACAQ,qBAAA,EACAC,eAAA,CACD;EAED;EACA,MAAMwE,OAAA,GAAkC7I,OAAA,CACtC,MAAM,CACJ;IACE8I,QAAA,EAAU;IACVC,IAAA,EAAMhI,QAAA;IACNiI,SAAA,EAAW,GAAGlI,SAAA,YAAqB;IACnCmI,OAAA,EAAS3G,CAAA,CAAE;EACb,GACA;IACEwG,QAAA,EAAU;IACVC,IAAA,EAAM1H,cAAA;IACN2H,SAAA,EAAW,GAAGlI,SAAA,kBAA2B;IACzCmI,OAAA,EAAS3G,CAAA,CAAE;EACb,GACA;IACEwG,QAAA,EAAU;IACVC,IAAA,EAAMpI,QAAA;IACNqI,SAAA,EAAW,GAAGlI,SAAA,YAAqB;IACnCmI,OAAA,EAAS3G,CAAA,CAAE;EACb,EACD,EACD,CAACA,CAAA,CAAE;EAGL,IAAI,CAACsF,WAAA,IAAe,CAACC,UAAA,EAAY;IAC/B,MAAMqB,mBAAA,GAAsBtH,mBAAA,IAAuBF,WAAA,IAAeA,WAAA,CAAYyH,MAAM,GAAG;IAEvF,oBACE/H,IAAA,CAACjB,aAAA;MACCiJ,OAAA,EACEF,mBAAA,GACI,C,aACE9H,IAAA,CAAClB,oBAAA;QACCwB,WAAA,EAAaA,WAAA;QACb2H,UAAA,EAAY,0BAA0B1H,cAAA,EAAgB;QAEtD2H,MAAA,EAAQ/G;SADJ,UAGP,GACDpB,SAAA;MAENoI,WAAA,EAAajH,CAAA,CAAE;MACfkH,KAAA,EAAOlH,CAAA,CAAE;MACTmH,UAAU;;EAGhB;EAEA,oBACErI,IAAA,CAAC;IAAI4H,SAAA,EAAWlI,SAAA;cACbiH,SAAA,CAAUR,GAAG,CAAExD,OAAA,iBACd2F,KAAA,CAACrJ,YAAA;8BACCe,IAAA,CAACf,YAAA,CAAasJ,MAAM;QAACV,OAAA,EAASlF,OAAA,CAAMqE,KAAK;kBACvC,aAAAhH,IAAA,CAAChB,gBAAA;UAAiB4D,IAAA,EAAMD,OAAA,CAAM2E,cAAc;UAAEkB,QAAA,EAAU7F,OAAA,CAAMyE;;uBAEhEpH,IAAA,CAACf,YAAA,CAAawJ,OAAO;kBACnB,aAAAzI,IAAA,CAACP,SAAA;UACCc,cAAA,EAAgBoC,OAAA,CAAMkE,IAAI;UAC1BY,OAAA,EAASA,OAAA;UACT7E,IAAA,EAAMD,OAAA,CAAMf,IAAI;UAChB8G,cAAA,EAAgB;UAChBC,gBAAA,EAAkB;UAClBC,YAAA,EAAc;UACdC,eAAA,EAAiB;UACjB3F,gBAAA,EAAkBA,gBAAA;UAClB4F,mBAAA,EAAqB;UACrB7B,gBAAA,EAAkBtE,OAAA,CAAMsE,gBAAgB;UACxCI,iBAAA,EAAmB1E,OAAA,CAAM0E,iBAAiB;UAC1CzG,QAAA,EAAUA,QAAA;UACVmI,WAAA,EACE,IAAIC,GAAA,CACFrG,OAAA,CAAMf,IAAI,CACPqH,MAAM,CAAEpJ,KAAA,IAAQkD,UAAA,CAAW;YAAEK,EAAA,EAAIvD,KAAA,CAAIuD,EAAE;YAAE7C,cAAA,EAAgBoC,OAAA,CAAMkE;UAAK,IACpEV,GAAG,CAAEtG,KAAA,IAAQA,KAAA,CAAIuD,EAAE;;;OAtBbT,OAAA,CAAMkE,IAAI;;AA+BrC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["getTranslation","combineWhereConstraints","DEFAULT_HIERARCHY_LIST_LIMIT","formatAdminURL","qs","React","useCallback","useMemo","useState","CreateDocumentButton","NoListResults","SimplePagination","TableSection","useBranchParam","useConfig","useDocumentSelection","useRouteCache","useTranslation","ChildNameCell","DateCell","RelatedNameCell","SlotTable","baseClass","NameCell","props","row","_hasChildren","undefined","_jsx","CollectionCell","_collectionLabel","HierarchyTable","baseFilter","childrenData","collections","collectionSlug","hasCreatePermission","HierarchyIcon","hierarchyLabel","parentFieldName","parentId","relatedBaseFilters","relatedGroups","search","useAsTitle","i18n","t","clearRouteCache","config","routes","api","apiRoute","serverURL","getEntityConfig","branch","childDocs","setChildDocs","docs","childPaginationData","setChildPaginationData","hasNextPage","hasPrevPage","limit","page","pagingCounter","totalDocs","totalPages","childLoading","setChildLoading","relatedState","setRelatedState","initial","group","data","isLoading","isLocked","isSelected","toggleAllInCollection","toggleSelection","getRowLockedUser","locked","id","_collectionSlug","_userEditing","handlePageChangeChildren","parentCondition","equals","or","exists","searchCondition","like","where","queryString","stringify","addQueryPrefix","url","path","response","fetch","credentials","ok","Error","result","json","_error","handlePageChangeRelated","relatedSlug","state","find","g","prev","relationshipCondition","fieldName","in","conditions","hasMany","push","relatedConfig","relatedUseAsTitle","admin","relatedBaseFilter","allowedCollectionsFieldName","hierarchy","collectionSpecific","childrenLabel","labels","plural","childTableData","map","doc","_allowedCollections","Boolean","_hierarchyIcon","hasChildren","hasRelated","some","allGroups","groups","slug","isChildren","isHierarchyEnabled","label","onCheckboxChange","metadata","allowedCollections","onPageChange","onSelectAllChange","paginationData","relatedLabel","relatedTableData","columns","accessor","Cell","className","heading","canShowCreateButton","length","Actions","drawerSlug","onSave","description","title","withMargin","_jsxs","Header","onChange","Content","enableCheckbox","enableDragHandle","enableHeader","enableSelectAll","mergeCheckboxHeader","selectedIds","Set","filter"],"sources":["../../../../src/views/HierarchyList/HierarchyTable/index.tsx"],"sourcesContent":["'use client'\n\nimport type { PaginatedDocs, Where } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n combineWhereConstraints,\n DEFAULT_HIERARCHY_LIST_LIMIT,\n formatAdminURL,\n} from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useMemo, useState } from 'react'\n\nimport type { CollectionOption } from '../../../elements/CreateDocumentButton/index.js'\nimport type { HierarchyDocument } from '../../../elements/Hierarchy/Tree/types.js'\nimport type { SlotColumn } from './SlotTable.js'\nimport type { RelatedGroup, TableRow } from './types.js'\n\nimport { CreateDocumentButton } from '../../../elements/CreateDocumentButton/index.js'\nimport { NoListResults } from '../../../elements/NoListResults/index.js'\nimport { SimplePagination } from '../../../elements/Pagination/SimplePagination/index.js'\nimport { TableSection } from '../../../elements/TableSection/index.js'\nimport { useBranchParam } from '../../../providers/Branch/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentSelection } from '../../../providers/DocumentSelection/index.js'\nimport { useRouteCache } from '../../../providers/RouteCache/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { ChildNameCell } from './ChildNameCell.js'\nimport { DateCell } from './DateCell.js'\nimport { RelatedNameCell } from './RelatedNameCell.js'\nimport { SlotTable } from './SlotTable.js'\nimport { baseClass } from './types.js'\nimport './index.css'\n\n// Top-level cell components to avoid nested component eslint errors\nconst NameCell: SlotColumn<TableRow>['Cell'] = (props) =>\n props.row._hasChildren !== undefined ? (\n <ChildNameCell {...props} />\n ) : (\n <RelatedNameCell {...props} />\n )\n\nconst CollectionCell: SlotColumn<TableRow>['Cell'] = ({ row }) => (\n <span>{row._collectionLabel}</span>\n)\n\nexport type HierarchyTableProps = {\n /** Base filter applied to hierarchy collection queries (e.g., tenant filter) */\n baseFilter?: Where\n childrenData?: PaginatedDocs<HierarchyDocument>\n /** Collections available for creation (for empty state) */\n collections?: CollectionOption[]\n collectionSlug: string\n hasCreatePermission?: boolean\n /** Resolved hierarchy icon component */\n HierarchyIcon?: React.ReactNode\n hierarchyLabel: string\n parentFieldName?: string\n parentId: null | number | string\n /** Base filters for related collections (keyed by collection slug) */\n relatedBaseFilters?: Record<string, Where>\n relatedGroups: RelatedGroup[]\n search?: string\n useAsTitle: string\n}\n\nexport function HierarchyTable({\n baseFilter,\n childrenData,\n collections,\n collectionSlug,\n hasCreatePermission,\n HierarchyIcon,\n hierarchyLabel,\n parentFieldName,\n parentId,\n relatedBaseFilters,\n relatedGroups,\n search,\n useAsTitle,\n}: HierarchyTableProps) {\n const { i18n, t } = useTranslation()\n const { clearRouteCache } = useRouteCache()\n const {\n config: {\n routes: { api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const branch = useBranchParam()\n\n // Children pagination state\n const [childDocs, setChildDocs] = useState(childrenData?.docs || [])\n const [childPaginationData, setChildPaginationData] = useState<Partial<PaginatedDocs>>({\n hasNextPage: childrenData?.hasNextPage || false,\n hasPrevPage: childrenData?.hasPrevPage || false,\n limit: childrenData?.limit || DEFAULT_HIERARCHY_LIST_LIMIT,\n page: childrenData?.page || 1,\n pagingCounter: childrenData?.pagingCounter || 1,\n totalDocs: childrenData?.totalDocs || 0,\n totalPages: childrenData?.totalPages || 1,\n })\n const [childLoading, setChildLoading] = useState(false)\n\n // Related groups pagination state (per collection)\n const [relatedState, setRelatedState] = useState<\n Record<\n string,\n {\n isLoading: boolean\n } & Partial<PaginatedDocs>\n >\n >(() => {\n const initial: Record<\n string,\n {\n isLoading: boolean\n } & Partial<PaginatedDocs>\n > = {}\n for (const group of relatedGroups) {\n initial[group.collectionSlug] = {\n docs: group.data.docs,\n hasNextPage: group.data.hasNextPage,\n hasPrevPage: group.data.hasPrevPage || false,\n isLoading: false,\n limit: group.data.limit || DEFAULT_HIERARCHY_LIST_LIMIT,\n page: group.data.page || 1,\n pagingCounter: group.data.pagingCounter || 1,\n totalDocs: group.data.totalDocs,\n totalPages: group.data.totalPages || 1,\n }\n }\n return initial\n })\n\n // Get selection functions from context\n const { isLocked, isSelected, toggleAllInCollection, toggleSelection } = useDocumentSelection()\n\n // Get the user who is locking a row (for SlotTable to show lock icon instead of checkbox)\n const getRowLockedUser = useCallback(\n (row: TableRow) => {\n const locked = isLocked({ id: row.id, collectionSlug: row._collectionSlug })\n return locked ? row._userEditing : undefined\n },\n [isLocked],\n )\n\n // Page change for children\n const handlePageChangeChildren = useCallback(\n async (page: number) => {\n if (childLoading) {\n return\n }\n\n setChildLoading(true)\n\n try {\n const parentCondition = parentId\n ? { [parentFieldName]: { equals: parentId } }\n : {\n or: [\n { [parentFieldName]: { exists: false } },\n { [parentFieldName]: { equals: null } },\n ],\n }\n\n const searchCondition = search ? { [useAsTitle]: { like: search } } : undefined\n const where = combineWhereConstraints([parentCondition, searchCondition, baseFilter])\n\n const queryString = qs.stringify(\n { branch, limit: DEFAULT_HIERARCHY_LIST_LIMIT, page, where },\n { addQueryPrefix: true },\n )\n const url = formatAdminURL({\n apiRoute,\n path: `/${collectionSlug}${queryString}`,\n serverURL,\n })\n\n const response = await fetch(url, { credentials: 'include' })\n\n if (!response.ok) {\n throw new Error('Failed to load page')\n }\n\n const result: PaginatedDocs = await response.json()\n\n setChildDocs(result.docs)\n setChildPaginationData({\n hasNextPage: result.hasNextPage,\n hasPrevPage: result.hasPrevPage,\n limit: result.limit,\n page: result.page,\n pagingCounter: result.pagingCounter,\n totalDocs: result.totalDocs,\n totalPages: result.totalPages,\n })\n } catch (_error) {\n // Silently fail\n } finally {\n setChildLoading(false)\n }\n },\n [\n branch,\n apiRoute,\n baseFilter,\n childLoading,\n collectionSlug,\n parentFieldName,\n parentId,\n search,\n serverURL,\n useAsTitle,\n ],\n )\n\n // Page change for a related collection\n const handlePageChangeRelated = useCallback(\n async (relatedSlug: string, page: number) => {\n const state = relatedState[relatedSlug]\n if (!state || state.isLoading) {\n return\n }\n\n // Find the group to get field info\n const group = relatedGroups.find((g) => g.collectionSlug === relatedSlug)\n if (!group) {\n return\n }\n\n setRelatedState((prev) => ({\n ...prev,\n [relatedSlug]: { ...prev[relatedSlug], isLoading: true },\n }))\n\n try {\n // Build relationship condition based on whether we're at root or in a parent\n let relationshipCondition: Record<string, unknown>\n if (parentId) {\n // Nested level: find documents assigned to this hierarchy item\n // \"in\" operator works for both hasMany and single relationship fields\n relationshipCondition = { [group.fieldName]: { in: [parentId] } }\n } else {\n // Root level: find documents where hierarchy field doesn't exist, is null, or is empty array\n const conditions: Record<string, unknown>[] = [\n { [group.fieldName]: { exists: false } },\n { [group.fieldName]: { equals: null } },\n ]\n if (group.hasMany) {\n // hasMany fields store cleared values as empty arrays\n conditions.push({ [group.fieldName]: { equals: [] } })\n }\n relationshipCondition = { or: conditions }\n }\n\n const relatedConfig = getEntityConfig({ collectionSlug: relatedSlug })\n const relatedUseAsTitle = relatedConfig?.admin?.useAsTitle || 'id'\n\n const searchCondition = search ? { [relatedUseAsTitle]: { like: search } } : undefined\n const relatedBaseFilter = relatedBaseFilters?.[relatedSlug]\n const where = combineWhereConstraints([\n relationshipCondition,\n searchCondition,\n relatedBaseFilter,\n ])\n\n const queryString = qs.stringify(\n { branch, limit: DEFAULT_HIERARCHY_LIST_LIMIT, page, where },\n { addQueryPrefix: true },\n )\n const url = formatAdminURL({\n apiRoute,\n path: `/${relatedSlug}${queryString}`,\n serverURL,\n })\n\n const response = await fetch(url, { credentials: 'include' })\n\n if (!response.ok) {\n throw new Error('Failed to load page')\n }\n\n const result: PaginatedDocs = await response.json()\n\n setRelatedState((prev) => ({\n ...prev,\n [relatedSlug]: {\n docs: result.docs,\n hasNextPage: result.hasNextPage,\n hasPrevPage: result.hasPrevPage,\n isLoading: false,\n limit: result.limit,\n page: result.page,\n pagingCounter: result.pagingCounter,\n totalDocs: result.totalDocs,\n totalPages: result.totalPages,\n },\n }))\n } catch (_error) {\n setRelatedState((prev) => ({\n ...prev,\n [relatedSlug]: { ...prev[relatedSlug], isLoading: false },\n }))\n }\n },\n [\n branch,\n apiRoute,\n getEntityConfig,\n parentFieldName,\n parentId,\n relatedBaseFilters,\n relatedGroups,\n relatedState,\n search,\n serverURL,\n ],\n )\n\n // Get allowedCollections field name from hierarchy config\n const allowedCollectionsFieldName = useMemo(() => {\n const config = getEntityConfig({ collectionSlug })\n const hierarchy = config?.hierarchy\n\n if (hierarchy && typeof hierarchy === 'object' && hierarchy.collectionSpecific) {\n return hierarchy.collectionSpecific.fieldName\n }\n\n return undefined\n }, [collectionSlug, getEntityConfig])\n\n // Compute collection label for children (once)\n const childrenLabel = useMemo(\n () =>\n getTranslation(getEntityConfig({ collectionSlug })?.labels?.plural, i18n) || hierarchyLabel,\n [collectionSlug, getEntityConfig, hierarchyLabel, i18n],\n )\n\n // Build children data for table\n const childTableData: TableRow[] = useMemo(\n () =>\n childDocs.map((doc) => ({\n ...doc,\n id: doc.id,\n _allowedCollections: allowedCollectionsFieldName\n ? (doc[allowedCollectionsFieldName] as string[] | undefined)\n : undefined,\n _collectionLabel: childrenLabel,\n _collectionSlug: collectionSlug,\n _hasChildren: Boolean(doc._hasChildren),\n _hierarchyIcon: HierarchyIcon,\n })),\n [HierarchyIcon, allowedCollectionsFieldName, childDocs, childrenLabel, collectionSlug],\n )\n\n const hasChildren = (childPaginationData.totalDocs || 0) > 0\n const hasRelated = relatedGroups.some((g) => relatedState[g.collectionSlug]?.totalDocs > 0)\n\n // Unified groups array\n type GroupState = {\n docs: TableRow[]\n isChildren: boolean\n isHierarchyEnabled: boolean\n isLoading: boolean\n label: string\n onCheckboxChange: (row: TableRow) => void\n onPageChange: (page: number) => void\n onSelectAllChange: () => void\n paginationData: PaginatedDocs\n slug: string\n }\n\n const allGroups: GroupState[] = useMemo(() => {\n const groups: GroupState[] = []\n\n // Children group\n if (hasChildren) {\n groups.push({\n slug: collectionSlug,\n docs: childTableData,\n isChildren: true,\n isHierarchyEnabled: true,\n isLoading: childLoading,\n label: childrenLabel,\n onCheckboxChange: (row: TableRow) =>\n toggleSelection({\n id: row.id,\n collectionSlug,\n metadata: {\n allowedCollections: row._allowedCollections as string[] | undefined,\n },\n }),\n onPageChange: (page: number) => void handlePageChangeChildren(page),\n onSelectAllChange: () => toggleAllInCollection({ collectionSlug }),\n paginationData: {\n docs: childDocs,\n hasNextPage: childPaginationData.hasNextPage || false,\n hasPrevPage: childPaginationData.hasPrevPage || false,\n limit: childPaginationData.limit || DEFAULT_HIERARCHY_LIST_LIMIT,\n page: childPaginationData.page || 1,\n pagingCounter: childPaginationData.pagingCounter || 1,\n totalDocs: childPaginationData.totalDocs || 0,\n totalPages: childPaginationData.totalPages || 1,\n },\n })\n }\n\n // Related groups\n for (const group of relatedGroups) {\n const state = relatedState[group.collectionSlug]\n if (!state || state.totalDocs === 0) {\n continue\n }\n\n const relatedConfig = getEntityConfig({ collectionSlug: group.collectionSlug })\n const relatedLabel = getTranslation(relatedConfig?.labels?.plural, i18n) || group.label\n\n const relatedTableData: TableRow[] = state.docs.map((doc: Record<string, unknown>) => ({\n ...doc,\n id: doc.id as number | string,\n _collectionLabel: relatedLabel,\n _collectionSlug: group.collectionSlug,\n }))\n\n groups.push({\n slug: group.collectionSlug,\n docs: relatedTableData,\n isChildren: false,\n isHierarchyEnabled: false,\n isLoading: state.isLoading,\n label: relatedLabel,\n onCheckboxChange: (row: TableRow) =>\n toggleSelection({\n id: row.id,\n collectionSlug: group.collectionSlug,\n metadata: {}, // Related items don't have allowedCollections - their collection slug is the constraint\n }),\n onPageChange: (page: number) => void handlePageChangeRelated(group.collectionSlug, page),\n onSelectAllChange: () => toggleAllInCollection({ collectionSlug: group.collectionSlug }),\n paginationData: {\n docs: state.docs || [],\n hasNextPage: state.hasNextPage || false,\n hasPrevPage: state.hasPrevPage || false,\n limit: state.limit || DEFAULT_HIERARCHY_LIST_LIMIT,\n page: state.page || 1,\n pagingCounter: state.pagingCounter || 1,\n totalDocs: state.totalDocs || 0,\n totalPages: state.totalPages || 1,\n },\n })\n }\n\n return groups\n }, [\n childDocs,\n childLoading,\n childPaginationData,\n childrenLabel,\n childTableData,\n collectionSlug,\n getEntityConfig,\n handlePageChangeChildren,\n handlePageChangeRelated,\n hasChildren,\n i18n,\n relatedGroups,\n relatedState,\n toggleAllInCollection,\n toggleSelection,\n ])\n\n // Column definitions\n const columns: SlotColumn<TableRow>[] = useMemo(\n () => [\n {\n accessor: 'name',\n Cell: NameCell,\n className: `${baseClass}__col-name`,\n heading: t('general:name'),\n },\n {\n accessor: 'collection',\n Cell: CollectionCell,\n className: `${baseClass}__col-collection`,\n heading: t('general:collection'),\n },\n {\n accessor: 'updatedAt',\n Cell: DateCell,\n className: `${baseClass}__col-date`,\n heading: t('general:updatedAt'),\n },\n ],\n [t],\n )\n\n if (!hasChildren && !hasRelated) {\n const canShowCreateButton = hasCreatePermission && collections && collections.length > 0\n\n return (\n <NoListResults\n Actions={\n canShowCreateButton\n ? [\n <CreateDocumentButton\n collections={collections}\n drawerSlug={`hierarchy-create-empty-${collectionSlug}`}\n key=\"create\"\n onSave={clearRouteCache}\n />,\n ]\n : undefined\n }\n description={t('general:noResultsDescription')}\n title={t('general:noResultsFound')}\n withMargin\n />\n )\n }\n\n return (\n <div className={baseClass}>\n {allGroups.map((group) => (\n <TableSection key={group.slug}>\n <TableSection.Header heading={group.label}>\n <SimplePagination data={group.paginationData} onChange={group.onPageChange} />\n </TableSection.Header>\n <TableSection.Content>\n <SlotTable\n collectionSlug={group.slug}\n columns={columns}\n data={group.docs}\n enableCheckbox={true}\n enableDragHandle={false}\n enableHeader={true}\n enableSelectAll={true}\n getRowLockedUser={getRowLockedUser}\n mergeCheckboxHeader={false}\n onCheckboxChange={group.onCheckboxChange}\n onSelectAllChange={group.onSelectAllChange}\n parentId={parentId}\n selectedIds={\n new Set(\n group.docs\n .filter((row) => isSelected({ id: row.id, collectionSlug: group.slug }))\n .map((row) => row.id),\n )\n }\n />\n </TableSection.Content>\n </TableSection>\n ))}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { I18nClient
|
|
1
|
+
import type { I18nClient } from '@payloadcms/translations';
|
|
2
2
|
import type { ClientCollectionConfig, ViewTypes } from 'payload';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import './index.css';
|
|
@@ -17,16 +17,7 @@ export type ListHeaderProps = {
|
|
|
17
17
|
isTrashEnabled?: boolean;
|
|
18
18
|
newDocumentURL: string;
|
|
19
19
|
onBulkUploadSuccess?: () => void;
|
|
20
|
-
/** @deprecated This prop will be removed in the next major version.
|
|
21
|
-
*
|
|
22
|
-
* Opening of the bulk upload modal is handled internally.
|
|
23
|
-
*
|
|
24
|
-
* Prefer `onBulkUploadSuccess` usage to handle the success of the bulk upload.
|
|
25
|
-
*/
|
|
26
|
-
openBulkUpload: () => void;
|
|
27
20
|
smallBreak: boolean;
|
|
28
|
-
/** @deprecated This prop will be removed in the next major version. */
|
|
29
|
-
t?: TFunction;
|
|
30
21
|
TitleActions?: React.ReactNode[];
|
|
31
22
|
viewType?: ViewTypes;
|
|
32
23
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/List/ListHeader/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/List/ListHeader/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAGhE,OAAO,KAAK,MAAM,OAAO,CAAA;AAezB,OAAO,aAAa,CAAA;AAIpB,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,IAAI,EAAE,UAAU,CAAA;IAChB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC,UAAU,EAAE,OAAO,CAAA;IACnB,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAChC,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA+F1D,CAAA"}
|
|
@@ -26,7 +26,6 @@ export const CollectionListHeader = ({
|
|
|
26
26
|
isBulkUploadEnabled,
|
|
27
27
|
isTrashEnabled,
|
|
28
28
|
onBulkUploadSuccess,
|
|
29
|
-
openBulkUpload,
|
|
30
29
|
smallBreak,
|
|
31
30
|
viewType
|
|
32
31
|
}) => {
|
|
@@ -84,8 +83,7 @@ export const CollectionListHeader = ({
|
|
|
84
83
|
collectionSlug: collectionConfig.slug,
|
|
85
84
|
hasCreatePermission: hasCreatePermission,
|
|
86
85
|
isBulkUploadEnabled: isBulkUploadEnabled,
|
|
87
|
-
onBulkUploadSuccess: onBulkUploadSuccess
|
|
88
|
-
openBulkUpload: openBulkUpload
|
|
86
|
+
onBulkUploadSuccess: onBulkUploadSuccess
|
|
89
87
|
}, "list-header-bulk-upload"), hasDeletePermission && isTrashEnabled && viewType === 'trash' && /*#__PURE__*/_jsx(ListEmptyTrashButton, {
|
|
90
88
|
collectionConfig: collectionConfig,
|
|
91
89
|
hasDeletePermission: hasDeletePermission
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["getTranslation","React","CloseModalButton","DefaultListViewTabs","useListDrawerContext","DrawerRelationshipSelect","ListDrawerCreateNewDocButton","ListHeader","ListBulkUploadButton","ListEmptyTrashButton","useConfig","useListQuery","ListSelection","drawerBaseClass","CollectionListHeader","className","collectionConfig","Description","disableBulkDelete","disableBulkEdit","hasCreatePermission","hasDeletePermission","hasTrashPermission","i18n","isBulkUploadEnabled","isTrashEnabled","onBulkUploadSuccess","
|
|
1
|
+
{"version":3,"file":"index.js","names":["getTranslation","React","CloseModalButton","DefaultListViewTabs","useListDrawerContext","DrawerRelationshipSelect","ListDrawerCreateNewDocButton","ListHeader","ListBulkUploadButton","ListEmptyTrashButton","useConfig","useListQuery","ListSelection","drawerBaseClass","CollectionListHeader","className","collectionConfig","Description","disableBulkDelete","disableBulkEdit","hasCreatePermission","hasDeletePermission","hasTrashPermission","i18n","isBulkUploadEnabled","isTrashEnabled","onBulkUploadSuccess","smallBreak","viewType","config","getEntityConfig","drawerSlug","isInDrawer","selectedOption","isTrashRoute","isGroupingBy","_jsx","Actions","AfterListHeaderContent","_jsxs","_Fragment","BeforeTitle","slug","title","collectionSlug","value","labels","plural","TitleActions","filter","Boolean","label","showSelectAllAcrossPages"],"sources":["../../../../src/views/List/ListHeader/index.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { ClientCollectionConfig, ViewTypes } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport { CloseModalButton } from '../../../elements/CloseModalButton/index.js'\nimport { DefaultListViewTabs } from '../../../elements/DefaultListViewTabs/index.js'\nimport { useListDrawerContext } from '../../../elements/ListDrawer/Provider.js'\nimport { DrawerRelationshipSelect } from '../../../elements/ListHeader/DrawerRelationshipSelect/index.js'\nimport { ListDrawerCreateNewDocButton } from '../../../elements/ListHeader/DrawerTitleActions/index.js'\nimport { ListHeader } from '../../../elements/ListHeader/index.js'\nimport {\n ListBulkUploadButton,\n ListEmptyTrashButton,\n} from '../../../elements/ListHeader/TitleActions/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useListQuery } from '../../../providers/ListQuery/index.js'\nimport { ListSelection } from '../ListSelection/index.js'\nimport './index.css'\n\nconst drawerBaseClass = 'list-drawer'\n\nexport type ListHeaderProps = {\n Actions?: React.ReactNode[]\n className?: string\n collectionConfig: ClientCollectionConfig\n Description?: React.ReactNode\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n hasCreatePermission: boolean\n hasDeletePermission?: boolean\n hasTrashPermission?: boolean\n i18n: I18nClient\n isBulkUploadEnabled: boolean\n isTrashEnabled?: boolean\n newDocumentURL: string\n onBulkUploadSuccess?: () => void\n smallBreak: boolean\n TitleActions?: React.ReactNode[]\n viewType?: ViewTypes\n}\n\nexport const CollectionListHeader: React.FC<ListHeaderProps> = ({\n className,\n collectionConfig,\n Description,\n disableBulkDelete,\n disableBulkEdit,\n hasCreatePermission,\n hasDeletePermission,\n hasTrashPermission,\n i18n,\n isBulkUploadEnabled,\n isTrashEnabled,\n onBulkUploadSuccess,\n smallBreak,\n viewType,\n}) => {\n const { config, getEntityConfig } = useConfig()\n const { drawerSlug, isInDrawer, selectedOption } = useListDrawerContext()\n const isTrashRoute = viewType === 'trash'\n const { isGroupingBy } = useListQuery()\n\n if (isInDrawer) {\n return (\n <ListHeader\n Actions={[]}\n AfterListHeaderContent={\n <>\n {Description}\n {<DrawerRelationshipSelect />}\n </>\n }\n BeforeTitle={\n <CloseModalButton className={`${drawerBaseClass}__header-close`} slug={drawerSlug} />\n }\n className={`${drawerBaseClass}__header`}\n title={getTranslation(\n getEntityConfig({ collectionSlug: selectedOption.value })?.labels?.plural,\n i18n,\n )}\n TitleActions={[\n <ListDrawerCreateNewDocButton\n hasCreatePermission={hasCreatePermission}\n key=\"list-drawer-create-new-doc\"\n />,\n ].filter(Boolean)}\n />\n )\n }\n\n return (\n <ListHeader\n Actions={[\n !smallBreak && !isGroupingBy && (\n <ListSelection\n collectionConfig={collectionConfig}\n disableBulkDelete={disableBulkDelete}\n disableBulkEdit={disableBulkEdit}\n hasDeletePermission={hasDeletePermission}\n hasTrashPermission={hasTrashPermission}\n key=\"list-selection\"\n label={getTranslation(collectionConfig?.labels?.plural, i18n)}\n showSelectAllAcrossPages={!isGroupingBy}\n viewType={viewType}\n />\n ),\n <DefaultListViewTabs\n collectionConfig={collectionConfig}\n config={config}\n key=\"default-list-actions\"\n viewType={viewType}\n />,\n ].filter(Boolean)}\n AfterListHeaderContent={Description}\n className={className}\n title={getTranslation(collectionConfig?.labels?.plural, i18n)}\n TitleActions={[\n hasCreatePermission && isBulkUploadEnabled && !isTrashRoute && (\n <ListBulkUploadButton\n collectionSlug={collectionConfig.slug}\n hasCreatePermission={hasCreatePermission}\n isBulkUploadEnabled={isBulkUploadEnabled}\n key=\"list-header-bulk-upload\"\n onBulkUploadSuccess={onBulkUploadSuccess}\n />\n ),\n hasDeletePermission && isTrashEnabled && viewType === 'trash' && (\n <ListEmptyTrashButton\n collectionConfig={collectionConfig}\n hasDeletePermission={hasDeletePermission}\n key=\"list-header-empty-trash\"\n />\n ),\n ].filter(Boolean)}\n />\n )\n}\n"],"mappings":";AAGA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAElB,SAASC,gBAAgB,QAAQ;AACjC,SAASC,mBAAmB,QAAQ;AACpC,SAASC,oBAAoB,QAAQ;AACrC,SAASC,wBAAwB,QAAQ;AACzC,SAASC,4BAA4B,QAAQ;AAC7C,SAASC,UAAU,QAAQ;AAC3B,SACEC,oBAAoB,EACpBC,oBAAoB,QACf;AACP,SAASC,SAAS,QAAQ;AAC1B,SAASC,YAAY,QAAQ;AAC7B,SAASC,aAAa,QAAQ;AAC9B,OAAO;AAEP,MAAMC,eAAA,GAAkB;AAsBxB,OAAO,MAAMC,oBAAA,GAAkDA,CAAC;EAC9DC,SAAS;EACTC,gBAAgB;EAChBC,WAAW;EACXC,iBAAiB;EACjBC,eAAe;EACfC,mBAAmB;EACnBC,mBAAmB;EACnBC,kBAAkB;EAClBC,IAAI;EACJC,mBAAmB;EACnBC,cAAc;EACdC,mBAAmB;EACnBC,UAAU;EACVC;AAAQ,CACT;EACC,MAAM;IAAEC,MAAM;IAAEC;EAAe,CAAE,GAAGpB,SAAA;EACpC,MAAM;IAAEqB,UAAU;IAAEC,UAAU;IAAEC;EAAc,CAAE,GAAG7B,oBAAA;EACnD,MAAM8B,YAAA,GAAeN,QAAA,KAAa;EAClC,MAAM;IAAEO;EAAY,CAAE,GAAGxB,YAAA;EAEzB,IAAIqB,UAAA,EAAY;IACd,oBACEI,IAAA,CAAC7B,UAAA;MACC8B,OAAA,EAAS,EAAE;MACXC,sBAAA,eACEC,KAAA,CAAAC,SAAA;mBACGvB,WAAA,E,aACAmB,IAAA,CAAC/B,wBAAA;;MAGNoC,WAAA,eACEL,IAAA,CAAClC,gBAAA;QAAiBa,SAAA,EAAW,GAAGF,eAAA,gBAA+B;QAAE6B,IAAA,EAAMX;;MAEzEhB,SAAA,EAAW,GAAGF,eAAA,UAAyB;MACvC8B,KAAA,EAAO3C,cAAA,CACL8B,eAAA,CAAgB;QAAEc,cAAA,EAAgBX,cAAA,CAAeY;MAAM,IAAIC,MAAA,EAAQC,MAAA,EACnExB,IAAA;MAEFyB,YAAA,EAAc,C,aACZZ,IAAA,CAAC9B,4BAAA;QACCc,mBAAA,EAAqBA;SACjB,8BAEP,CAAC6B,MAAM,CAACC,OAAA;;EAGf;EAEA,oBACEd,IAAA,CAAC7B,UAAA;IACC8B,OAAA,EAAS,CACP,CAACV,UAAA,IAAc,CAACQ,YAAA,iBACdC,IAAA,CAACxB,aAAA;MACCI,gBAAA,EAAkBA,gBAAA;MAClBE,iBAAA,EAAmBA,iBAAA;MACnBC,eAAA,EAAiBA,eAAA;MACjBE,mBAAA,EAAqBA,mBAAA;MACrBC,kBAAA,EAAoBA,kBAAA;MAEpB6B,KAAA,EAAOnD,cAAA,CAAegB,gBAAA,EAAkB8B,MAAA,EAAQC,MAAA,EAAQxB,IAAA;MACxD6B,wBAAA,EAA0B,CAACjB,YAAA;MAC3BP,QAAA,EAAUA;OAHN,mB,aAMRQ,IAAA,CAACjC,mBAAA;MACCa,gBAAA,EAAkBA,gBAAA;MAClBa,MAAA,EAAQA,MAAA;MAERD,QAAA,EAAUA;OADN,wBAGP,CAACqB,MAAM,CAACC,OAAA;IACTZ,sBAAA,EAAwBrB,WAAA;IACxBF,SAAA,EAAWA,SAAA;IACX4B,KAAA,EAAO3C,cAAA,CAAegB,gBAAA,EAAkB8B,MAAA,EAAQC,MAAA,EAAQxB,IAAA;IACxDyB,YAAA,EAAc,CACZ5B,mBAAA,IAAuBI,mBAAA,IAAuB,CAACU,YAAA,iBAC7CE,IAAA,CAAC5B,oBAAA;MACCoC,cAAA,EAAgB5B,gBAAA,CAAiB0B,IAAI;MACrCtB,mBAAA,EAAqBA,mBAAA;MACrBI,mBAAA,EAAqBA,mBAAA;MAErBE,mBAAA,EAAqBA;OADjB,4BAIRL,mBAAA,IAAuBI,cAAA,IAAkBG,QAAA,KAAa,wBACpDQ,IAAA,CAAC3B,oBAAA;MACCO,gBAAA,EAAkBA,gBAAA;MAClBK,mBAAA,EAAqBA;OACjB,2BAGT,CAAC4B,MAAM,CAACC,OAAA;;AAGf","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/List/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAIlD,OAAO,KAAgD,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/List/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAIlD,OAAO,KAAgD,MAAM,OAAO,CAAA;AA0BpE,OAAO,aAAa,CAAA;AAIpB,wBAAgB,eAAe,CAAC,KAAK,EAAE,mBAAmB,qBAyUzD"}
|
|
@@ -4,7 +4,6 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
4
4
|
import { getTranslation } from '@payloadcms/translations';
|
|
5
5
|
import { formatAdminURL, formatFilesize } from 'payload/shared';
|
|
6
6
|
import React, { Fragment, useEffect, useRef, useState } from 'react';
|
|
7
|
-
import { useBulkUpload } from '../../elements/BulkUpload/index.js';
|
|
8
7
|
import { Button } from '../../elements/Button/index.js';
|
|
9
8
|
import { ListControls } from '../../elements/ListControls/index.js';
|
|
10
9
|
import { useListDrawerContext } from '../../elements/ListDrawer/Provider.js';
|
|
@@ -21,7 +20,6 @@ import { useControllableState } from '../../hooks/useControllableState.js';
|
|
|
21
20
|
import { useConfig } from '../../providers/Config/index.js';
|
|
22
21
|
import { DocumentSelectionProvider } from '../../providers/DocumentSelection/index.js';
|
|
23
22
|
import { useListQuery } from '../../providers/ListQuery/index.js';
|
|
24
|
-
import { useRouter } from '../../providers/RouterAdapter/index.js';
|
|
25
23
|
import { SelectionProvider } from '../../providers/Selection/index.js';
|
|
26
24
|
import { TableColumnsProvider } from '../../providers/TableColumns/index.js';
|
|
27
25
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
@@ -77,7 +75,6 @@ export function DefaultListView(props) {
|
|
|
77
75
|
},
|
|
78
76
|
getEntityConfig
|
|
79
77
|
} = useConfig();
|
|
80
|
-
const router = useRouter();
|
|
81
78
|
const {
|
|
82
79
|
data,
|
|
83
80
|
hasActiveFilters,
|
|
@@ -97,11 +94,6 @@ export function DefaultListView(props) {
|
|
|
97
94
|
const {
|
|
98
95
|
openModal
|
|
99
96
|
} = useModal();
|
|
100
|
-
const {
|
|
101
|
-
modalSlug: bulkUploadModalSlug,
|
|
102
|
-
setCollectionSlug,
|
|
103
|
-
setOnSuccess
|
|
104
|
-
} = useBulkUpload();
|
|
105
97
|
const collectionConfig = getEntityConfig({
|
|
106
98
|
collectionSlug
|
|
107
99
|
});
|
|
@@ -136,11 +128,6 @@ export function DefaultListView(props) {
|
|
|
136
128
|
return data?.docs;
|
|
137
129
|
}
|
|
138
130
|
}, [data?.docs, isUploadCollection]);
|
|
139
|
-
const openBulkUpload = React.useCallback(() => {
|
|
140
|
-
setCollectionSlug(collectionSlug);
|
|
141
|
-
openModal(bulkUploadModalSlug);
|
|
142
|
-
setOnSuccess(() => router.refresh());
|
|
143
|
-
}, [router, collectionSlug, bulkUploadModalSlug, openModal, setCollectionSlug, setOnSuccess]);
|
|
144
131
|
useEffect(() => {
|
|
145
132
|
if (!isInDrawer) {
|
|
146
133
|
const baseLabel = {
|
|
@@ -202,7 +189,6 @@ export function DefaultListView(props) {
|
|
|
202
189
|
isBulkUploadEnabled: isBulkUploadEnabled && !upload.hideFileInputOnCreate,
|
|
203
190
|
isTrashEnabled: isTrashEnabled,
|
|
204
191
|
newDocumentURL: newDocumentURL,
|
|
205
|
-
openBulkUpload: openBulkUpload,
|
|
206
192
|
smallBreak: smallBreak,
|
|
207
193
|
viewType: viewType
|
|
208
194
|
}), /*#__PURE__*/_jsx(ListControls, {
|