@payloadcms/ui 3.80.0-internal.cdd7ef7 → 3.80.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js +12 -0
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +29 -7
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/Button/index.d.ts.map +1 -1
- package/dist/elements/Button/index.js +3 -5
- package/dist/elements/Button/index.js.map +1 -1
- package/dist/elements/Button/index.scss +5 -38
- package/dist/elements/Button/types.d.ts +1 -1
- package/dist/elements/Button/types.d.ts.map +1 -1
- package/dist/elements/Button/types.js.map +1 -1
- package/dist/elements/CheckboxPopup/index.d.ts.map +1 -1
- package/dist/elements/CheckboxPopup/index.js +1 -0
- package/dist/elements/CheckboxPopup/index.js.map +1 -1
- package/dist/elements/CheckboxPopup/index.scss +0 -1
- package/dist/elements/DefaultListViewTabs/index.d.ts.map +1 -1
- package/dist/elements/DefaultListViewTabs/index.js +54 -28
- package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.d.ts +0 -1
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js +10 -6
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.scss +1 -1
- package/dist/elements/DocumentDrawer/index.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/index.js +141 -54
- package/dist/elements/DocumentDrawer/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/types.d.ts +1 -7
- package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/types.js.map +1 -1
- package/dist/elements/DrawerActionHeader/index.d.ts.map +1 -1
- package/dist/elements/DrawerActionHeader/index.js +0 -2
- package/dist/elements/DrawerActionHeader/index.js.map +1 -1
- package/dist/elements/DrawerActionHeader/index.scss +2 -2
- package/dist/elements/FolderView/Breadcrumbs/index.d.ts +19 -0
- package/dist/elements/FolderView/Breadcrumbs/index.d.ts.map +1 -0
- package/dist/elements/FolderView/Breadcrumbs/index.js +96 -0
- package/dist/elements/FolderView/Breadcrumbs/index.js.map +1 -0
- package/dist/elements/FolderView/Breadcrumbs/index.scss +56 -0
- package/dist/elements/FolderView/BrowseByFolderButton/index.d.ts +6 -0
- package/dist/elements/FolderView/BrowseByFolderButton/index.d.ts.map +1 -0
- package/dist/elements/FolderView/BrowseByFolderButton/index.js +40 -0
- package/dist/elements/FolderView/BrowseByFolderButton/index.js.map +1 -0
- package/dist/elements/FolderView/BrowseByFolderButton/index.scss +30 -0
- package/dist/elements/FolderView/Cell/index.client.d.ts +13 -0
- package/dist/elements/FolderView/Cell/index.client.d.ts.map +1 -0
- package/dist/elements/FolderView/Cell/index.client.js +95 -0
- package/dist/elements/FolderView/Cell/index.client.js.map +1 -0
- package/dist/elements/FolderView/Cell/index.server.d.ts +4 -0
- package/dist/elements/FolderView/Cell/index.server.d.ts.map +1 -0
- package/dist/elements/FolderView/Cell/index.server.js +18 -0
- package/dist/elements/FolderView/Cell/index.server.js.map +1 -0
- package/dist/elements/FolderView/ColoredFolderIcon/index.d.ts +3 -0
- package/dist/elements/FolderView/ColoredFolderIcon/index.d.ts.map +1 -0
- package/dist/elements/FolderView/ColoredFolderIcon/index.js +9 -0
- package/dist/elements/FolderView/ColoredFolderIcon/index.js.map +1 -0
- package/dist/elements/FolderView/ColoredFolderIcon/index.scss +5 -0
- package/dist/elements/FolderView/CurrentFolderActions/index.d.ts +7 -0
- package/dist/elements/FolderView/CurrentFolderActions/index.d.ts.map +1 -0
- package/dist/elements/FolderView/CurrentFolderActions/index.js +162 -0
- package/dist/elements/FolderView/CurrentFolderActions/index.js.map +1 -0
- package/dist/elements/FolderView/DragOverlaySelection/index.d.ts +11 -0
- package/dist/elements/FolderView/DragOverlaySelection/index.d.ts.map +1 -0
- package/dist/elements/FolderView/DragOverlaySelection/index.js +62 -0
- package/dist/elements/FolderView/DragOverlaySelection/index.js.map +1 -0
- package/dist/elements/FolderView/DragOverlaySelection/index.scss +35 -0
- package/dist/elements/FolderView/DraggableTableRow/index.d.ts +18 -0
- package/dist/elements/FolderView/DraggableTableRow/index.d.ts.map +1 -0
- package/dist/elements/FolderView/DraggableTableRow/index.js +63 -0
- package/dist/elements/FolderView/DraggableTableRow/index.js.map +1 -0
- package/dist/elements/FolderView/DraggableTableRow/index.scss +135 -0
- package/dist/elements/FolderView/DraggableWithClick/index.d.ts +15 -0
- package/dist/elements/FolderView/DraggableWithClick/index.d.ts.map +1 -0
- package/dist/elements/FolderView/DraggableWithClick/index.js +86 -0
- package/dist/elements/FolderView/DraggableWithClick/index.js.map +1 -0
- package/dist/elements/FolderView/DraggableWithClick/index.scss +5 -0
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.d.ts +7 -0
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.d.ts.map +1 -0
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.js +39 -0
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.js.map +1 -0
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts +37 -0
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts.map +1 -0
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +609 -0
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -0
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.scss +30 -0
- package/dist/elements/FolderView/FilterFolderTypePill/index.d.ts +4 -0
- package/dist/elements/FolderView/FilterFolderTypePill/index.d.ts.map +1 -0
- package/dist/elements/FolderView/FilterFolderTypePill/index.js +102 -0
- package/dist/elements/FolderView/FilterFolderTypePill/index.js.map +1 -0
- package/dist/elements/FolderView/FilterFolderTypePill/index.scss +16 -0
- package/dist/elements/FolderView/FolderField/index.scss +12 -0
- package/dist/elements/FolderView/FolderField/index.server.d.ts +4 -0
- package/dist/elements/FolderView/FolderField/index.server.d.ts.map +1 -0
- package/dist/elements/FolderView/FolderField/index.server.js +16 -0
- package/dist/elements/FolderView/FolderField/index.server.js.map +1 -0
- package/dist/elements/FolderView/FolderFileCard/index.d.ts +30 -0
- package/dist/elements/FolderView/FolderFileCard/index.d.ts.map +1 -0
- package/dist/elements/FolderView/FolderFileCard/index.js +209 -0
- package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -0
- package/dist/elements/FolderView/FolderFileCard/index.scss +247 -0
- package/dist/elements/FolderView/FolderFileTable/index.d.ts +8 -0
- package/dist/elements/FolderView/FolderFileTable/index.d.ts.map +1 -0
- package/dist/elements/FolderView/FolderFileTable/index.js +284 -0
- package/dist/elements/FolderView/FolderFileTable/index.js.map +1 -0
- package/dist/elements/FolderView/FolderFileTable/index.scss +11 -0
- package/dist/elements/FolderView/FolderTypeField/index.d.ts +4 -0
- package/dist/elements/FolderView/FolderTypeField/index.d.ts.map +1 -0
- package/dist/elements/FolderView/FolderTypeField/index.js +123 -0
- package/dist/elements/FolderView/FolderTypeField/index.js.map +1 -0
- package/dist/elements/FolderView/ItemCardGrid/index.d.ts +16 -0
- package/dist/elements/FolderView/ItemCardGrid/index.d.ts.map +1 -0
- package/dist/elements/FolderView/ItemCardGrid/index.js +34 -0
- package/dist/elements/FolderView/ItemCardGrid/index.js.map +1 -0
- package/dist/elements/FolderView/ItemCardGrid/index.scss +16 -0
- package/dist/elements/FolderView/MoveDocToFolder/index.d.ts +37 -0
- package/dist/elements/FolderView/MoveDocToFolder/index.d.ts.map +1 -0
- package/dist/elements/FolderView/MoveDocToFolder/index.js +292 -0
- package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -0
- package/dist/elements/{Hierarchy/DocHeaderButton → FolderView/MoveDocToFolder}/index.scss +1 -7
- package/dist/elements/FolderView/SimpleTable/index.d.ts +19 -0
- package/dist/elements/FolderView/SimpleTable/index.d.ts.map +1 -0
- package/dist/elements/FolderView/SimpleTable/index.js +95 -0
- package/dist/elements/FolderView/SimpleTable/index.js.map +1 -0
- package/dist/elements/FolderView/SimpleTable/index.scss +59 -0
- package/dist/elements/FolderView/SortByPill/index.d.ts +4 -0
- package/dist/elements/FolderView/SortByPill/index.d.ts.map +1 -0
- package/dist/elements/FolderView/SortByPill/index.js +112 -0
- package/dist/elements/FolderView/SortByPill/index.js.map +1 -0
- package/dist/elements/FolderView/SortByPill/index.scss +16 -0
- package/dist/elements/FolderView/ToggleViewButtons/index.d.ts +8 -0
- package/dist/elements/FolderView/ToggleViewButtons/index.d.ts.map +1 -0
- package/dist/elements/FolderView/ToggleViewButtons/index.js +31 -0
- package/dist/elements/FolderView/ToggleViewButtons/index.js.map +1 -0
- package/dist/elements/FolderView/ToggleViewButtons/index.scss +17 -0
- package/dist/elements/Link/index.d.ts +0 -4
- package/dist/elements/Link/index.d.ts.map +1 -1
- package/dist/elements/Link/index.js +0 -5
- package/dist/elements/Link/index.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.d.ts +15 -0
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.d.ts.map +1 -0
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +182 -0
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -0
- package/dist/elements/ListHeader/TitleActions/index.d.ts +1 -0
- package/dist/elements/ListHeader/TitleActions/index.d.ts.map +1 -1
- package/dist/elements/ListHeader/TitleActions/index.js +1 -0
- package/dist/elements/ListHeader/TitleActions/index.js.map +1 -1
- package/dist/elements/ListHeader/index.js +2 -2
- package/dist/elements/ListHeader/index.js.map +1 -1
- package/dist/elements/ListSelection/index.scss +1 -2
- package/dist/elements/LivePreview/Window/index.d.ts.map +1 -1
- package/dist/elements/LivePreview/Window/index.js +9 -7
- package/dist/elements/LivePreview/Window/index.js.map +1 -1
- package/dist/elements/Locked/index.scss +1 -1
- package/dist/elements/RelationshipTable/index.js +3 -3
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/StepNav/index.d.ts.map +1 -1
- package/dist/elements/StepNav/index.js +1 -10
- package/dist/elements/StepNav/index.js.map +1 -1
- package/dist/elements/StepNav/types.d.ts +0 -1
- package/dist/elements/StepNav/types.d.ts.map +1 -1
- package/dist/elements/StepNav/types.js.map +1 -1
- package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +0 -20
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/Tooltip/index.js +1 -1
- package/dist/elements/Tooltip/index.js.map +1 -1
- package/dist/elements/Tooltip/index.scss +15 -1
- package/dist/exports/client/index.d.ts +10 -27
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +24 -26
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/rsc/index.d.ts +3 -3
- package/dist/exports/rsc/index.d.ts.map +1 -1
- package/dist/exports/rsc/index.js +3 -3
- package/dist/exports/rsc/index.js.map +1 -1
- package/dist/fields/Join/index.d.ts.map +1 -1
- package/dist/fields/Join/index.js +1 -1
- package/dist/fields/Join/index.js.map +1 -1
- package/dist/fields/shared/index.d.ts +2 -2
- package/dist/fields/shared/index.d.ts.map +1 -1
- package/dist/fields/shared/index.js.map +1 -1
- package/dist/icons/Chevron/index.d.ts.map +1 -1
- package/dist/icons/Chevron/index.js +1 -5
- package/dist/icons/Chevron/index.js.map +1 -1
- package/dist/icons/Document/index.d.ts +1 -3
- package/dist/icons/Document/index.d.ts.map +1 -1
- package/dist/icons/Document/index.js +2 -4
- package/dist/icons/Document/index.js.map +1 -1
- package/dist/icons/Document/index.scss +0 -4
- package/dist/icons/Folder/index.d.ts +2 -4
- package/dist/icons/Folder/index.d.ts.map +1 -1
- package/dist/icons/Folder/index.js +2 -4
- package/dist/icons/Folder/index.js.map +1 -1
- package/dist/icons/Folder/index.scss +0 -8
- package/dist/icons/Lock/index.scss +1 -1
- package/dist/icons/Plus/index.d.ts.map +1 -1
- package/dist/icons/Plus/index.js +1 -2
- package/dist/icons/Plus/index.js.map +1 -1
- package/dist/providers/Folders/groupItemIDsByRelation.d.ts +3 -0
- package/dist/providers/Folders/groupItemIDsByRelation.d.ts.map +1 -0
- package/dist/providers/Folders/groupItemIDsByRelation.js +10 -0
- package/dist/providers/Folders/groupItemIDsByRelation.js.map +1 -0
- package/dist/providers/Folders/index.d.ts +143 -0
- package/dist/providers/Folders/index.d.ts.map +1 -0
- package/dist/providers/Folders/index.js +641 -0
- package/dist/providers/Folders/index.js.map +1 -0
- package/dist/providers/LivePreview/context.d.ts +6 -0
- package/dist/providers/LivePreview/context.d.ts.map +1 -1
- package/dist/providers/LivePreview/context.js +1 -0
- package/dist/providers/LivePreview/context.js.map +1 -1
- package/dist/providers/LivePreview/index.d.ts.map +1 -1
- package/dist/providers/LivePreview/index.js +13 -1
- package/dist/providers/LivePreview/index.js.map +1 -1
- package/dist/providers/Root/index.d.ts.map +1 -1
- package/dist/providers/Root/index.js +15 -18
- package/dist/providers/Root/index.js.map +1 -1
- package/dist/providers/ServerFunctions/index.d.ts +6 -1
- package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
- package/dist/providers/ServerFunctions/index.js +18 -0
- package/dist/providers/ServerFunctions/index.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts +1 -2
- package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.js +1 -34
- package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/getFolderResultsComponentAndData.d.ts +25 -0
- package/dist/utilities/getFolderResultsComponentAndData.d.ts.map +1 -0
- package/dist/utilities/getFolderResultsComponentAndData.js +135 -0
- package/dist/utilities/getFolderResultsComponentAndData.js.map +1 -0
- package/dist/utilities/handleLivePreview.d.ts.map +1 -1
- package/dist/utilities/renderTable.d.ts +1 -3
- package/dist/utilities/renderTable.d.ts.map +1 -1
- package/dist/utilities/renderTable.js +3 -9
- package/dist/utilities/renderTable.js.map +1 -1
- package/dist/views/BrowseByFolder/index.d.ts +5 -0
- package/dist/views/BrowseByFolder/index.d.ts.map +1 -0
- package/dist/views/BrowseByFolder/index.js +342 -0
- package/dist/views/BrowseByFolder/index.js.map +1 -0
- package/dist/views/BrowseByFolder/index.scss +174 -0
- package/dist/views/CollectionFolder/ListSelection/index.d.ts +9 -0
- package/dist/views/CollectionFolder/ListSelection/index.d.ts.map +1 -0
- package/dist/views/CollectionFolder/ListSelection/index.js +180 -0
- package/dist/views/CollectionFolder/ListSelection/index.js.map +1 -0
- package/dist/views/CollectionFolder/index.d.ts +5 -0
- package/dist/views/CollectionFolder/index.d.ts.map +1 -0
- package/dist/views/CollectionFolder/index.js +325 -0
- package/dist/views/CollectionFolder/index.js.map +1 -0
- package/dist/views/CollectionFolder/index.scss +162 -0
- package/dist/views/Edit/index.d.ts +1 -1
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +10 -8
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +7 -51
- package/dist/views/List/index.js.map +1 -1
- package/package.json +4 -4
- package/dist/elements/CreateDocumentButton/index.d.ts +0 -26
- package/dist/elements/CreateDocumentButton/index.d.ts.map +0 -1
- package/dist/elements/CreateDocumentButton/index.js +0 -182
- package/dist/elements/CreateDocumentButton/index.js.map +0 -1
- package/dist/elements/DelayedSpinner/index.d.ts +0 -23
- package/dist/elements/DelayedSpinner/index.d.ts.map +0 -1
- package/dist/elements/DelayedSpinner/index.js +0 -61
- package/dist/elements/DelayedSpinner/index.js.map +0 -1
- package/dist/elements/Hierarchy/ColumnBrowser/Column/index.d.ts +0 -5
- package/dist/elements/Hierarchy/ColumnBrowser/Column/index.d.ts.map +0 -1
- package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js +0 -166
- package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js.map +0 -1
- package/dist/elements/Hierarchy/ColumnBrowser/Column/index.scss +0 -63
- package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.d.ts +0 -5
- package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.d.ts.map +0 -1
- package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js +0 -161
- package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js.map +0 -1
- package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.scss +0 -105
- package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts +0 -8
- package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts.map +0 -1
- package/dist/elements/Hierarchy/ColumnBrowser/index.js +0 -473
- package/dist/elements/Hierarchy/ColumnBrowser/index.js.map +0 -1
- package/dist/elements/Hierarchy/ColumnBrowser/index.scss +0 -20
- package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts +0 -106
- package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts.map +0 -1
- package/dist/elements/Hierarchy/ColumnBrowser/types.js +0 -2
- package/dist/elements/Hierarchy/ColumnBrowser/types.js.map +0 -1
- package/dist/elements/Hierarchy/DocHeaderButton/index.d.ts +0 -11
- package/dist/elements/Hierarchy/DocHeaderButton/index.d.ts.map +0 -1
- package/dist/elements/Hierarchy/DocHeaderButton/index.js +0 -126
- package/dist/elements/Hierarchy/DocHeaderButton/index.js.map +0 -1
- package/dist/elements/Hierarchy/DocHeaderButton/index.server.d.ts +0 -10
- package/dist/elements/Hierarchy/DocHeaderButton/index.server.d.ts.map +0 -1
- package/dist/elements/Hierarchy/DocHeaderButton/index.server.js +0 -34
- package/dist/elements/Hierarchy/DocHeaderButton/index.server.js.map +0 -1
- package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.d.ts +0 -15
- package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.js +0 -60
- package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.js.map +0 -1
- package/dist/elements/Hierarchy/Drawer/index.d.ts +0 -20
- package/dist/elements/Hierarchy/Drawer/index.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Drawer/index.js +0 -291
- package/dist/elements/Hierarchy/Drawer/index.js.map +0 -1
- package/dist/elements/Hierarchy/Drawer/index.scss +0 -81
- package/dist/elements/Hierarchy/Drawer/types.d.ts +0 -68
- package/dist/elements/Hierarchy/Drawer/types.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Drawer/types.js +0 -3
- package/dist/elements/Hierarchy/Drawer/types.js.map +0 -1
- package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.d.ts +0 -30
- package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.js +0 -148
- package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.js.map +0 -1
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts +0 -13
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.js +0 -185
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.js.map +0 -1
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.scss +0 -78
- package/dist/elements/Hierarchy/Field/index.client.d.ts +0 -8
- package/dist/elements/Hierarchy/Field/index.client.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Field/index.client.js +0 -186
- package/dist/elements/Hierarchy/Field/index.client.js.map +0 -1
- package/dist/elements/Hierarchy/Field/index.scss +0 -35
- package/dist/elements/Hierarchy/Field/index.server.d.ts +0 -3
- package/dist/elements/Hierarchy/Field/index.server.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Field/index.server.js +0 -30
- package/dist/elements/Hierarchy/Field/index.server.js.map +0 -1
- package/dist/elements/Hierarchy/HydrateProvider/index.d.ts +0 -4
- package/dist/elements/Hierarchy/HydrateProvider/index.d.ts.map +0 -1
- package/dist/elements/Hierarchy/HydrateProvider/index.js +0 -70
- package/dist/elements/Hierarchy/HydrateProvider/index.js.map +0 -1
- package/dist/elements/Hierarchy/MoveMany/index.d.ts +0 -22
- package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +0 -1
- package/dist/elements/Hierarchy/MoveMany/index.js +0 -278
- package/dist/elements/Hierarchy/MoveMany/index.js.map +0 -1
- package/dist/elements/Hierarchy/MoveMany/index.scss +0 -7
- package/dist/elements/Hierarchy/Search/HierarchySearchInput.d.ts +0 -18
- package/dist/elements/Hierarchy/Search/HierarchySearchInput.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Search/HierarchySearchInput.js +0 -115
- package/dist/elements/Hierarchy/Search/HierarchySearchInput.js.map +0 -1
- package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.d.ts +0 -13
- package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.js +0 -88
- package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.js.map +0 -1
- package/dist/elements/Hierarchy/Search/HierarchySearchResults.d.ts +0 -17
- package/dist/elements/Hierarchy/Search/HierarchySearchResults.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Search/HierarchySearchResults.js +0 -85
- package/dist/elements/Hierarchy/Search/HierarchySearchResults.js.map +0 -1
- package/dist/elements/Hierarchy/Search/index.d.ts +0 -10
- package/dist/elements/Hierarchy/Search/index.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Search/index.js +0 -144
- package/dist/elements/Hierarchy/Search/index.js.map +0 -1
- package/dist/elements/Hierarchy/Search/index.scss +0 -212
- package/dist/elements/Hierarchy/Search/types.d.ts +0 -21
- package/dist/elements/Hierarchy/Search/types.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Search/types.js +0 -2
- package/dist/elements/Hierarchy/Search/types.js.map +0 -1
- package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts +0 -20
- package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Search/useHierarchySearch.js +0 -122
- package/dist/elements/Hierarchy/Search/useHierarchySearch.js.map +0 -1
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts +0 -21
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js +0 -162
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +0 -1
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.d.ts +0 -7
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js +0 -177
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js.map +0 -1
- package/dist/elements/Hierarchy/Tree/LoadMore/LoadMoreButton.d.ts +0 -8
- package/dist/elements/Hierarchy/Tree/LoadMore/LoadMoreButton.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Tree/LoadMore/LoadMoreButton.js +0 -36
- package/dist/elements/Hierarchy/Tree/LoadMore/LoadMoreButton.js.map +0 -1
- package/dist/elements/Hierarchy/Tree/LoadMore/index.d.ts +0 -12
- package/dist/elements/Hierarchy/Tree/LoadMore/index.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Tree/LoadMore/index.js +0 -29
- package/dist/elements/Hierarchy/Tree/LoadMore/index.js.map +0 -1
- package/dist/elements/Hierarchy/Tree/LoadMore/index.scss +0 -26
- package/dist/elements/Hierarchy/Tree/TreeConnector.d.ts +0 -7
- package/dist/elements/Hierarchy/Tree/TreeConnector.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Tree/TreeConnector.js +0 -23
- package/dist/elements/Hierarchy/Tree/TreeConnector.js.map +0 -1
- package/dist/elements/Hierarchy/Tree/TreeFocusContext.d.ts +0 -28
- package/dist/elements/Hierarchy/Tree/TreeFocusContext.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Tree/TreeFocusContext.js +0 -140
- package/dist/elements/Hierarchy/Tree/TreeFocusContext.js.map +0 -1
- package/dist/elements/Hierarchy/Tree/TreeNode/index.d.ts +0 -5
- package/dist/elements/Hierarchy/Tree/TreeNode/index.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Tree/TreeNode/index.js +0 -225
- package/dist/elements/Hierarchy/Tree/TreeNode/index.js.map +0 -1
- package/dist/elements/Hierarchy/Tree/TreeNode/index.scss +0 -110
- package/dist/elements/Hierarchy/Tree/index.d.ts +0 -5
- package/dist/elements/Hierarchy/Tree/index.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Tree/index.js +0 -270
- package/dist/elements/Hierarchy/Tree/index.js.map +0 -1
- package/dist/elements/Hierarchy/Tree/index.scss +0 -60
- package/dist/elements/Hierarchy/Tree/types.d.ts +0 -76
- package/dist/elements/Hierarchy/Tree/types.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Tree/types.js +0 -2
- package/dist/elements/Hierarchy/Tree/types.js.map +0 -1
- package/dist/elements/Hierarchy/Tree/useChildren.d.ts +0 -32
- package/dist/elements/Hierarchy/Tree/useChildren.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Tree/useChildren.js +0 -229
- package/dist/elements/Hierarchy/Tree/useChildren.js.map +0 -1
- package/dist/elements/LoadMoreRow/index.d.ts +0 -15
- package/dist/elements/LoadMoreRow/index.d.ts.map +0 -1
- package/dist/elements/LoadMoreRow/index.js +0 -75
- package/dist/elements/LoadMoreRow/index.js.map +0 -1
- package/dist/elements/LoadMoreRow/index.scss +0 -42
- package/dist/elements/Spinner/index.d.ts +0 -16
- package/dist/elements/Spinner/index.d.ts.map +0 -1
- package/dist/elements/Spinner/index.js +0 -49
- package/dist/elements/Spinner/index.js.map +0 -1
- package/dist/elements/Spinner/index.scss +0 -39
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts +0 -6
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts.map +0 -1
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js +0 -187
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js.map +0 -1
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.scss +0 -29
- package/dist/fields/Null/index.d.ts +0 -11
- package/dist/fields/Null/index.d.ts.map +0 -1
- package/dist/fields/Null/index.js +0 -13
- package/dist/fields/Null/index.js.map +0 -1
- package/dist/icons/Filter/index.d.ts +0 -4
- package/dist/icons/Filter/index.d.ts.map +0 -1
- package/dist/icons/Filter/index.js +0 -15
- package/dist/icons/Filter/index.js.map +0 -1
- package/dist/icons/Filter/index.scss +0 -13
- package/dist/icons/TableView/index.d.ts +0 -3
- package/dist/icons/TableView/index.d.ts.map +0 -1
- package/dist/icons/TableView/index.js +0 -16
- package/dist/icons/TableView/index.js.map +0 -1
- package/dist/icons/Tag/index.d.ts +0 -8
- package/dist/icons/Tag/index.d.ts.map +0 -1
- package/dist/icons/Tag/index.js +0 -22
- package/dist/icons/Tag/index.js.map +0 -1
- package/dist/icons/Tag/index.scss +0 -14
- package/dist/providers/DocumentSelection/index.d.ts +0 -8
- package/dist/providers/DocumentSelection/index.d.ts.map +0 -1
- package/dist/providers/DocumentSelection/index.js +0 -239
- package/dist/providers/DocumentSelection/index.js.map +0 -1
- package/dist/providers/DocumentSelection/types.d.ts +0 -122
- package/dist/providers/DocumentSelection/types.d.ts.map +0 -1
- package/dist/providers/DocumentSelection/types.js +0 -5
- package/dist/providers/DocumentSelection/types.js.map +0 -1
- package/dist/providers/Hierarchy/index.d.ts +0 -5
- package/dist/providers/Hierarchy/index.d.ts.map +0 -1
- package/dist/providers/Hierarchy/index.js +0 -350
- package/dist/providers/Hierarchy/index.js.map +0 -1
- package/dist/providers/Hierarchy/types.d.ts +0 -106
- package/dist/providers/Hierarchy/types.d.ts.map +0 -1
- package/dist/providers/Hierarchy/types.js +0 -2
- package/dist/providers/Hierarchy/types.js.map +0 -1
- package/dist/providers/SidebarTabs/index.d.ts +0 -19
- package/dist/providers/SidebarTabs/index.d.ts.map +0 -1
- package/dist/providers/SidebarTabs/index.js +0 -24
- package/dist/providers/SidebarTabs/index.js.map +0 -1
- package/dist/utilities/isSuperset.d.ts +0 -6
- package/dist/utilities/isSuperset.d.ts.map +0 -1
- package/dist/utilities/isSuperset.js +0 -10
- package/dist/utilities/isSuperset.js.map +0 -1
- package/dist/views/HierarchyList/DocumentListSelection/index.d.ts +0 -10
- package/dist/views/HierarchyList/DocumentListSelection/index.d.ts.map +0 -1
- package/dist/views/HierarchyList/DocumentListSelection/index.js +0 -194
- package/dist/views/HierarchyList/DocumentListSelection/index.js.map +0 -1
- package/dist/views/HierarchyList/HierarchyListHeader/index.d.ts +0 -21
- package/dist/views/HierarchyList/HierarchyListHeader/index.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyListHeader/index.js +0 -67
- package/dist/views/HierarchyList/HierarchyListHeader/index.js.map +0 -1
- package/dist/views/HierarchyList/HierarchyListHeader/index.scss +0 -9
- package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.d.ts +0 -4
- package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js +0 -104
- package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/DateCell.d.ts +0 -4
- package/dist/views/HierarchyList/HierarchyTable/DateCell.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/DateCell.js +0 -53
- package/dist/views/HierarchyList/HierarchyTable/DateCell.js.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.d.ts +0 -4
- package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.js +0 -128
- package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.js.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.d.ts +0 -99
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.js +0 -118
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.js.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.scss +0 -214
- package/dist/views/HierarchyList/HierarchyTable/index.d.ts +0 -27
- package/dist/views/HierarchyList/HierarchyTable/index.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/index.js +0 -388
- package/dist/views/HierarchyList/HierarchyTable/index.js.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/index.scss +0 -148
- package/dist/views/HierarchyList/HierarchyTable/types.d.ts +0 -20
- package/dist/views/HierarchyList/HierarchyTable/types.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/types.js +0 -2
- package/dist/views/HierarchyList/HierarchyTable/types.js.map +0 -1
- package/dist/views/HierarchyList/TypeFilter/index.d.ts +0 -15
- package/dist/views/HierarchyList/TypeFilter/index.d.ts.map +0 -1
- package/dist/views/HierarchyList/TypeFilter/index.js +0 -37
- package/dist/views/HierarchyList/TypeFilter/index.js.map +0 -1
- package/dist/views/HierarchyList/TypeFilter/index.scss +0 -32
- package/dist/views/HierarchyList/index.d.ts +0 -5
- package/dist/views/HierarchyList/index.d.ts.map +0 -1
- package/dist/views/HierarchyList/index.js +0 -305
- package/dist/views/HierarchyList/index.js.map +0 -1
- package/dist/views/HierarchyList/index.scss +0 -72
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/elements/Hierarchy/ColumnBrowser/types.ts"],"sourcesContent":["import type { Where } from 'payload'\nimport type React from 'react'\n\nexport type ColumnItemData = {\n /** For folders with collectionSpecific config, the allowed collection slugs */\n allowedCollections?: string[]\n hasChildren: boolean\n id: number | string\n title: string\n}\n\nexport type PathSegment = {\n id: number | string\n title: string\n}\n\nexport type ColumnItemProps = {\n disabled?: boolean\n /** Required collections that the folder must allow (for superset check) */\n filterByCollection?: string[]\n hasSelectedDescendants: boolean\n isExpanded: boolean\n isSelected: boolean\n item: ColumnItemData\n onExpand: (params: { id: number | string }) => void\n onSelect: (params: { id: number | string }) => void\n}\n\nexport type ColumnProps = {\n ancestorsWithSelections: Set<number | string>\n /** Whether user can create new documents */\n canCreate: boolean\n /** Label for the collection (e.g., \"Folder\") */\n collectionLabel: string\n disabled?: boolean\n /** IDs that should be disabled (e.g., items being moved can't be selected as destination) */\n disabledIds?: Set<number | string>\n expandedId: null | number | string\n /** Required collections for superset check (passed to ColumnItem) */\n filterByCollection?: string[]\n hasNextPage: boolean\n isLoading: boolean\n items: ColumnItemData[]\n /** Called when user clicks \"New\" button - parent should open drawer with parentId */\n onCreateNew: (params: { parentId: null | number | string }) => void\n onExpand: (params: { id: number | string }) => void\n onLoadMore: () => void\n onSelect: (params: { id: number | string; path: PathSegment[] }) => void\n parentId: null | number | string\n parentTitle?: string\n pathToColumn: PathSegment[]\n selectedIds: Set<number | string>\n totalDocs: number\n}\n\nexport type ColumnState = {\n hasNextPage: boolean\n isLoading: boolean\n items: ColumnItemData[]\n page: number\n parentId: null | number | string\n parentTitle?: string\n totalDocs: number\n}\n\nexport type HierarchyColumnBrowserRef = {\n /** Refetch a specific column by parentId */\n refreshColumn: (parentId: null | number | string) => Promise<void>\n}\n\nexport type HierarchyColumnBrowserProps = {\n ancestorsWithSelections: Set<number | string>\n /** Base filter constraint (e.g., tenant filter) to apply to all queries */\n baseFilter?: null | Where\n /** IDs that should be disabled (e.g., items being moved can't be selected as destination) */\n disabledIds?: Set<number | string>\n /**\n * Filters hierarchy items based on collection type restrictions:\n * - `undefined`: No filtering, show all folders\n * - `[]` (empty array): No filtering, show all folders (no constraints)\n * - `['posts', ...]`: Show folders accepting ANY of these collections OR unrestricted folders\n *\n * Note: Query uses ANY semantics due to PG hasMany enum limitations.\n * Client-side enforcement can disable selection of folders that don't allow ALL required collections.\n */\n filterByCollection?: string[]\n hierarchyCollectionSlug: string\n initialExpandedPath?: (number | string)[]\n /** Whether the initial expanded path is still being loaded */\n isLoadingPath?: boolean\n /** Called when user clicks \"New\" button to create a new item */\n onCreateNew?: (params: { parentId: null | number | string }) => void\n onSelect: (params: { id: number | string; path: PathSegment[] }) => void\n parentFieldName: string\n selectedIds: Set<number | string>\n useAsTitle?: string\n}\n"],"mappings":"AAsEA","ignoreList":[]}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import './index.scss';
|
|
3
|
-
export type HierarchyButtonClientProps = {
|
|
4
|
-
fieldName: string;
|
|
5
|
-
hasMany?: boolean;
|
|
6
|
-
hierarchyCollectionSlug: string;
|
|
7
|
-
Icon?: React.ReactNode;
|
|
8
|
-
readOnly?: boolean;
|
|
9
|
-
};
|
|
10
|
-
export declare const HierarchyButtonClient: React.FC<HierarchyButtonClientProps>;
|
|
11
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/DocHeaderButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAUxE,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,0BAA0B,GAAG;IACvC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CA+HtE,CAAA"}
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
4
|
-
import { formatAdminURL } from 'payload/shared';
|
|
5
|
-
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
6
|
-
import { useForm, useFormFields } from '../../../forms/Form/context.js';
|
|
7
|
-
import { useConfig } from '../../../providers/Config/index.js';
|
|
8
|
-
import { useDocumentInfo } from '../../../providers/DocumentInfo/index.js';
|
|
9
|
-
import { useTranslation } from '../../../providers/Translation/index.js';
|
|
10
|
-
import { Button } from '../../Button/index.js';
|
|
11
|
-
import { useHierarchyDrawer } from '../Drawer/useHierarchyDrawer.js';
|
|
12
|
-
import './index.scss';
|
|
13
|
-
const baseClass = 'hierarchy-button';
|
|
14
|
-
export const HierarchyButtonClient = ({
|
|
15
|
-
fieldName,
|
|
16
|
-
hasMany = false,
|
|
17
|
-
hierarchyCollectionSlug,
|
|
18
|
-
Icon,
|
|
19
|
-
readOnly
|
|
20
|
-
}) => {
|
|
21
|
-
const {
|
|
22
|
-
t
|
|
23
|
-
} = useTranslation();
|
|
24
|
-
const {
|
|
25
|
-
config,
|
|
26
|
-
getEntityConfig
|
|
27
|
-
} = useConfig();
|
|
28
|
-
const {
|
|
29
|
-
collectionSlug: documentCollectionSlug
|
|
30
|
-
} = useDocumentInfo();
|
|
31
|
-
const {
|
|
32
|
-
setModified
|
|
33
|
-
} = useForm();
|
|
34
|
-
const dispatchField = useFormFields(([_, dispatch]) => dispatch);
|
|
35
|
-
const currentFieldValue = useFormFields(([fields]) => fields && fields?.[fieldName] || null);
|
|
36
|
-
const currentId = currentFieldValue?.value;
|
|
37
|
-
const [displayName, setDisplayName] = useState('');
|
|
38
|
-
const [isLoading, setIsLoading] = useState(true);
|
|
39
|
-
const collectionConfig = getEntityConfig({
|
|
40
|
-
collectionSlug: hierarchyCollectionSlug
|
|
41
|
-
});
|
|
42
|
-
const useAsTitle = collectionConfig?.admin?.useAsTitle || 'name';
|
|
43
|
-
const isHierarchyCollection = documentCollectionSlug === hierarchyCollectionSlug;
|
|
44
|
-
// When in hierarchy collection, let the drawer use allowedCollections from context
|
|
45
|
-
// When in other collections, filter by that collection's slug
|
|
46
|
-
// Memoize to prevent new array references on every render
|
|
47
|
-
const filterByCollection = useMemo(() => isHierarchyCollection || !documentCollectionSlug ? undefined : [documentCollectionSlug], [isHierarchyCollection, documentCollectionSlug]);
|
|
48
|
-
const [HierarchyDrawer,, {
|
|
49
|
-
openDrawer
|
|
50
|
-
}] = useHierarchyDrawer({
|
|
51
|
-
filterByCollection,
|
|
52
|
-
hierarchyCollectionSlug,
|
|
53
|
-
Icon
|
|
54
|
-
});
|
|
55
|
-
// Fetch item name when currentId changes
|
|
56
|
-
useEffect(() => {
|
|
57
|
-
const fetchItemName = async () => {
|
|
58
|
-
if (currentId && (typeof currentId === 'string' || typeof currentId === 'number')) {
|
|
59
|
-
setIsLoading(true);
|
|
60
|
-
try {
|
|
61
|
-
const response = await fetch(formatAdminURL({
|
|
62
|
-
apiRoute: config.routes.api,
|
|
63
|
-
path: `/${hierarchyCollectionSlug}/${currentId}`,
|
|
64
|
-
serverURL: config.serverURL
|
|
65
|
-
}), {
|
|
66
|
-
credentials: 'include'
|
|
67
|
-
});
|
|
68
|
-
if (response.ok) {
|
|
69
|
-
const itemData = await response.json();
|
|
70
|
-
const title = itemData?.[useAsTitle] || itemData?.name || itemData?.id;
|
|
71
|
-
setDisplayName(String(title));
|
|
72
|
-
} else {
|
|
73
|
-
setDisplayName(t('general:none'));
|
|
74
|
-
}
|
|
75
|
-
} catch {
|
|
76
|
-
setDisplayName(t('general:none'));
|
|
77
|
-
} finally {
|
|
78
|
-
setIsLoading(false);
|
|
79
|
-
}
|
|
80
|
-
} else {
|
|
81
|
-
setDisplayName(t('general:none'));
|
|
82
|
-
setIsLoading(false);
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
void fetchItemName();
|
|
86
|
-
}, [currentId, hierarchyCollectionSlug, config.routes.api, config.serverURL, useAsTitle, t]);
|
|
87
|
-
const handleDrawerSave = useCallback(({
|
|
88
|
-
closeDrawer,
|
|
89
|
-
selections
|
|
90
|
-
}) => {
|
|
91
|
-
const ids = Array.from(selections.keys());
|
|
92
|
-
const newValue = hasMany ? ids : ids[0] ?? null;
|
|
93
|
-
if (currentFieldValue?.value !== newValue) {
|
|
94
|
-
dispatchField({
|
|
95
|
-
type: 'UPDATE',
|
|
96
|
-
path: fieldName,
|
|
97
|
-
value: newValue
|
|
98
|
-
});
|
|
99
|
-
setModified(true);
|
|
100
|
-
}
|
|
101
|
-
closeDrawer();
|
|
102
|
-
}, [currentFieldValue?.value, dispatchField, fieldName, hasMany, setModified]);
|
|
103
|
-
const handleClick = useCallback(() => {
|
|
104
|
-
if (!readOnly) {
|
|
105
|
-
openDrawer();
|
|
106
|
-
}
|
|
107
|
-
}, [openDrawer, readOnly]);
|
|
108
|
-
const label = isLoading ? `${t('general:loading')}...` : displayName;
|
|
109
|
-
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
110
|
-
children: [/*#__PURE__*/_jsx(Button, {
|
|
111
|
-
buttonStyle: "subtle",
|
|
112
|
-
className: [baseClass, readOnly && `${baseClass}--read-only`].filter(Boolean).join(' '),
|
|
113
|
-
disabled: readOnly,
|
|
114
|
-
icon: Icon,
|
|
115
|
-
iconPosition: "left",
|
|
116
|
-
margin: false,
|
|
117
|
-
onClick: handleClick,
|
|
118
|
-
children: label
|
|
119
|
-
}), /*#__PURE__*/_jsx(HierarchyDrawer, {
|
|
120
|
-
hasMany: hasMany,
|
|
121
|
-
initialSelections: currentId ? [currentId] : undefined,
|
|
122
|
-
onSave: handleDrawerSave
|
|
123
|
-
})]
|
|
124
|
-
});
|
|
125
|
-
};
|
|
126
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["formatAdminURL","React","useCallback","useEffect","useMemo","useState","useForm","useFormFields","useConfig","useDocumentInfo","useTranslation","Button","useHierarchyDrawer","baseClass","HierarchyButtonClient","fieldName","hasMany","hierarchyCollectionSlug","Icon","readOnly","t","config","getEntityConfig","collectionSlug","documentCollectionSlug","setModified","dispatchField","_","dispatch","currentFieldValue","fields","currentId","value","displayName","setDisplayName","isLoading","setIsLoading","collectionConfig","useAsTitle","admin","isHierarchyCollection","filterByCollection","undefined","HierarchyDrawer","openDrawer","fetchItemName","response","fetch","apiRoute","routes","api","path","serverURL","credentials","ok","itemData","json","title","name","id","String","handleDrawerSave","closeDrawer","selections","ids","Array","from","keys","newValue","type","handleClick","label","_jsxs","_Fragment","_jsx","buttonStyle","className","filter","Boolean","join","disabled","icon","iconPosition","margin","onClick","initialSelections","onSave"],"sources":["../../../../src/elements/Hierarchy/DocHeaderButton/index.tsx"],"sourcesContent":["'use client'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { SelectionWithPath } from '../Drawer/types.js'\n\nimport { useForm, useFormFields } from '../../../forms/Form/context.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { useHierarchyDrawer } from '../Drawer/useHierarchyDrawer.js'\nimport './index.scss'\n\nconst baseClass = 'hierarchy-button'\n\nexport type HierarchyButtonClientProps = {\n fieldName: string\n hasMany?: boolean\n hierarchyCollectionSlug: string\n Icon?: React.ReactNode\n readOnly?: boolean\n}\n\nexport const HierarchyButtonClient: React.FC<HierarchyButtonClientProps> = ({\n fieldName,\n hasMany = false,\n hierarchyCollectionSlug,\n Icon,\n readOnly,\n}) => {\n const { t } = useTranslation()\n const { config, getEntityConfig } = useConfig()\n const { collectionSlug: documentCollectionSlug } = useDocumentInfo()\n const { setModified } = useForm()\n const dispatchField = useFormFields(([_, dispatch]) => dispatch)\n\n const currentFieldValue = useFormFields(([fields]) => (fields && fields?.[fieldName]) || null)\n const currentId = currentFieldValue?.value as null | number | string\n\n const [displayName, setDisplayName] = useState<string>('')\n const [isLoading, setIsLoading] = useState(true)\n\n const collectionConfig = getEntityConfig({ collectionSlug: hierarchyCollectionSlug })\n const useAsTitle = collectionConfig?.admin?.useAsTitle || 'name'\n\n const isHierarchyCollection = documentCollectionSlug === hierarchyCollectionSlug\n\n // When in hierarchy collection, let the drawer use allowedCollections from context\n // When in other collections, filter by that collection's slug\n // Memoize to prevent new array references on every render\n const filterByCollection = useMemo(\n () => (isHierarchyCollection || !documentCollectionSlug ? undefined : [documentCollectionSlug]),\n [isHierarchyCollection, documentCollectionSlug],\n )\n\n const [HierarchyDrawer, , { openDrawer }] = useHierarchyDrawer({\n filterByCollection,\n hierarchyCollectionSlug,\n Icon,\n })\n\n // Fetch item name when currentId changes\n useEffect(() => {\n const fetchItemName = async () => {\n if (currentId && (typeof currentId === 'string' || typeof currentId === 'number')) {\n setIsLoading(true)\n try {\n const response = await fetch(\n formatAdminURL({\n apiRoute: config.routes.api,\n path: `/${hierarchyCollectionSlug}/${currentId}`,\n serverURL: config.serverURL,\n }),\n { credentials: 'include' },\n )\n\n if (response.ok) {\n const itemData = await response.json()\n const title = itemData?.[useAsTitle] || itemData?.name || itemData?.id\n\n setDisplayName(String(title))\n } else {\n setDisplayName(t('general:none'))\n }\n } catch {\n setDisplayName(t('general:none'))\n } finally {\n setIsLoading(false)\n }\n } else {\n setDisplayName(t('general:none'))\n setIsLoading(false)\n }\n }\n\n void fetchItemName()\n }, [currentId, hierarchyCollectionSlug, config.routes.api, config.serverURL, useAsTitle, t])\n\n const handleDrawerSave = useCallback(\n ({\n closeDrawer,\n selections,\n }: {\n closeDrawer: () => void\n selections: Map<number | string, SelectionWithPath>\n }) => {\n const ids = Array.from(selections.keys())\n const newValue = hasMany ? ids : (ids[0] ?? null)\n\n if (currentFieldValue?.value !== newValue) {\n dispatchField({\n type: 'UPDATE',\n path: fieldName,\n value: newValue,\n })\n setModified(true)\n }\n closeDrawer()\n },\n [currentFieldValue?.value, dispatchField, fieldName, hasMany, setModified],\n )\n\n const handleClick = useCallback(() => {\n if (!readOnly) {\n openDrawer()\n }\n }, [openDrawer, readOnly])\n\n const label = isLoading ? `${t('general:loading')}...` : displayName\n\n return (\n <>\n <Button\n buttonStyle=\"subtle\"\n className={[baseClass, readOnly && `${baseClass}--read-only`].filter(Boolean).join(' ')}\n disabled={readOnly}\n icon={Icon}\n iconPosition=\"left\"\n margin={false}\n onClick={handleClick}\n >\n {label}\n </Button>\n <HierarchyDrawer\n hasMany={hasMany}\n initialSelections={currentId ? [currentId] : undefined}\n onSave={handleDrawerSave}\n />\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { Payload } from 'payload';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
export type HierarchyButtonServerProps = {
|
|
4
|
-
fieldName: string;
|
|
5
|
-
hasMany?: boolean;
|
|
6
|
-
hierarchyCollectionSlug: string;
|
|
7
|
-
payload: Payload;
|
|
8
|
-
};
|
|
9
|
-
export declare const HierarchyButton: React.FC<HierarchyButtonServerProps>;
|
|
10
|
-
//# sourceMappingURL=index.server.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.server.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/DocHeaderButton/index.server.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,MAAM,MAAM,0BAA0B,GAAG;IACvC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAqChE,CAAA"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import { FolderIcon } from '../../../icons/Folder/index.js';
|
|
4
|
-
import { RenderServerComponent } from '../../RenderServerComponent/index.js';
|
|
5
|
-
// eslint-disable-next-line payload/no-imports-from-exports-dir -- Server component must reference exports dir for proper client boundary
|
|
6
|
-
import { HierarchyButtonClient } from '../../../exports/client/index.js';
|
|
7
|
-
export const HierarchyButton = ({
|
|
8
|
-
fieldName,
|
|
9
|
-
hasMany,
|
|
10
|
-
hierarchyCollectionSlug,
|
|
11
|
-
payload
|
|
12
|
-
}) => {
|
|
13
|
-
const hierarchyCollectionConfig = payload.config.collections.find(c => c.slug === hierarchyCollectionSlug);
|
|
14
|
-
const hierarchyConfig = hierarchyCollectionConfig?.hierarchy && typeof hierarchyCollectionConfig.hierarchy === 'object' ? hierarchyCollectionConfig.hierarchy : undefined;
|
|
15
|
-
const IconComponent = hierarchyConfig?.admin.components.Icon;
|
|
16
|
-
// Render the custom icon if provided, otherwise use FolderIcon directly
|
|
17
|
-
// Important: Must render the icon here on server to avoid hydration mismatch
|
|
18
|
-
// For default FolderIcon path, render directly to avoid import map requirement
|
|
19
|
-
const isDefaultFolderIcon = !IconComponent || IconComponent === '@payloadcms/ui#FolderIcon';
|
|
20
|
-
const renderedIcon = isDefaultFolderIcon ? /*#__PURE__*/_jsx(FolderIcon, {
|
|
21
|
-
color: "muted"
|
|
22
|
-
}) : RenderServerComponent({
|
|
23
|
-
Component: IconComponent,
|
|
24
|
-
importMap: payload.importMap,
|
|
25
|
-
key: `hierarchy-button-icon-${hierarchyCollectionSlug}`
|
|
26
|
-
});
|
|
27
|
-
return /*#__PURE__*/_jsx(HierarchyButtonClient, {
|
|
28
|
-
fieldName: fieldName,
|
|
29
|
-
hasMany: hasMany,
|
|
30
|
-
hierarchyCollectionSlug: hierarchyCollectionSlug,
|
|
31
|
-
Icon: renderedIcon
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
//# sourceMappingURL=index.server.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.server.js","names":["React","FolderIcon","RenderServerComponent","HierarchyButtonClient","HierarchyButton","fieldName","hasMany","hierarchyCollectionSlug","payload","hierarchyCollectionConfig","config","collections","find","c","slug","hierarchyConfig","hierarchy","undefined","IconComponent","admin","components","Icon","isDefaultFolderIcon","renderedIcon","_jsx","color","Component","importMap","key"],"sources":["../../../../src/elements/Hierarchy/DocHeaderButton/index.server.tsx"],"sourcesContent":["import type { Payload } from 'payload'\n\nimport React from 'react'\n\nimport { FolderIcon } from '../../../icons/Folder/index.js'\nimport { RenderServerComponent } from '../../RenderServerComponent/index.js'\n// eslint-disable-next-line payload/no-imports-from-exports-dir -- Server component must reference exports dir for proper client boundary\nimport { HierarchyButtonClient } from '../../../exports/client/index.js'\n\nexport type HierarchyButtonServerProps = {\n fieldName: string\n hasMany?: boolean\n hierarchyCollectionSlug: string\n payload: Payload\n}\n\nexport const HierarchyButton: React.FC<HierarchyButtonServerProps> = ({\n fieldName,\n hasMany,\n hierarchyCollectionSlug,\n payload,\n}) => {\n const hierarchyCollectionConfig = payload.config.collections.find(\n (c) => c.slug === hierarchyCollectionSlug,\n )\n const hierarchyConfig =\n hierarchyCollectionConfig?.hierarchy && typeof hierarchyCollectionConfig.hierarchy === 'object'\n ? hierarchyCollectionConfig.hierarchy\n : undefined\n const IconComponent = hierarchyConfig?.admin.components.Icon\n\n // Render the custom icon if provided, otherwise use FolderIcon directly\n // Important: Must render the icon here on server to avoid hydration mismatch\n // For default FolderIcon path, render directly to avoid import map requirement\n const isDefaultFolderIcon = !IconComponent || IconComponent === '@payloadcms/ui#FolderIcon'\n const renderedIcon = isDefaultFolderIcon ? (\n <FolderIcon color=\"muted\" />\n ) : (\n RenderServerComponent({\n Component: IconComponent,\n importMap: payload.importMap,\n key: `hierarchy-button-icon-${hierarchyCollectionSlug}`,\n })\n )\n\n return (\n <HierarchyButtonClient\n fieldName={fieldName}\n hasMany={hasMany}\n hierarchyCollectionSlug={hierarchyCollectionSlug}\n Icon={renderedIcon}\n />\n )\n}\n"],"mappings":";AAEA,OAAOA,KAAA,MAAW;AAElB,SAASC,UAAU,QAAQ;AAC3B,SAASC,qBAAqB,QAAQ;AACtC;AACA,SAASC,qBAAqB,QAAQ;AAStC,OAAO,MAAMC,eAAA,GAAwDA,CAAC;EACpEC,SAAS;EACTC,OAAO;EACPC,uBAAuB;EACvBC;AAAO,CACR;EACC,MAAMC,yBAAA,GAA4BD,OAAA,CAAQE,MAAM,CAACC,WAAW,CAACC,IAAI,CAC9DC,CAAA,IAAMA,CAAA,CAAEC,IAAI,KAAKP,uBAAA;EAEpB,MAAMQ,eAAA,GACJN,yBAAA,EAA2BO,SAAA,IAAa,OAAOP,yBAAA,CAA0BO,SAAS,KAAK,WACnFP,yBAAA,CAA0BO,SAAS,GACnCC,SAAA;EACN,MAAMC,aAAA,GAAgBH,eAAA,EAAiBI,KAAA,CAAMC,UAAA,CAAWC,IAAA;EAExD;EACA;EACA;EACA,MAAMC,mBAAA,GAAsB,CAACJ,aAAA,IAAiBA,aAAA,KAAkB;EAChE,MAAMK,YAAA,GAAeD,mBAAA,gBACnBE,IAAA,CAACvB,UAAA;IAAWwB,KAAA,EAAM;OAElBvB,qBAAA,CAAsB;IACpBwB,SAAA,EAAWR,aAAA;IACXS,SAAA,EAAWnB,OAAA,CAAQmB,SAAS;IAC5BC,GAAA,EAAK,yBAAyBrB,uBAAA;EAChC;EAGF,oBACEiB,IAAA,CAACrB,qBAAA;IACCE,SAAA,EAAWA,SAAA;IACXC,OAAA,EAASA,OAAA;IACTC,uBAAA,EAAyBA,uBAAA;IACzBc,IAAA,EAAME;;AAGZ","ignoreList":[]}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
type FetchAncestorPathArgs = {
|
|
2
|
-
api: string;
|
|
3
|
-
collectionSlug: string;
|
|
4
|
-
itemId: number | string;
|
|
5
|
-
parentFieldName: string;
|
|
6
|
-
serverURL: string;
|
|
7
|
-
};
|
|
8
|
-
/**
|
|
9
|
-
* Fetches the ancestor path for an item using a single API call with depth.
|
|
10
|
-
* Returns array of ancestor IDs from root to item's parent.
|
|
11
|
-
* Example: item at level 3 returns [grandparentId, parentId]
|
|
12
|
-
*/
|
|
13
|
-
export declare function fetchAncestorPath({ api, collectionSlug, itemId, parentFieldName, serverURL, }: FetchAncestorPathArgs): Promise<(number | string)[]>;
|
|
14
|
-
export {};
|
|
15
|
-
//# sourceMappingURL=fetchAncestorPath.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetchAncestorPath.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/Drawer/fetchAncestorPath.ts"],"names":[],"mappings":"AAGA,KAAK,qBAAqB,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,eAAe,EAAE,MAAM,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAID;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,EACtC,GAAG,EACH,cAAc,EACd,MAAM,EACN,eAAe,EACf,SAAS,GACV,EAAE,qBAAqB,GAAG,OAAO,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,CA+CtD"}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { formatAdminURL } from 'payload/shared';
|
|
2
|
-
import * as qs from 'qs-esm';
|
|
3
|
-
const MAX_HIERARCHY_DEPTH = 20;
|
|
4
|
-
/**
|
|
5
|
-
* Fetches the ancestor path for an item using a single API call with depth.
|
|
6
|
-
* Returns array of ancestor IDs from root to item's parent.
|
|
7
|
-
* Example: item at level 3 returns [grandparentId, parentId]
|
|
8
|
-
*/
|
|
9
|
-
export async function fetchAncestorPath({
|
|
10
|
-
api,
|
|
11
|
-
collectionSlug,
|
|
12
|
-
itemId,
|
|
13
|
-
parentFieldName,
|
|
14
|
-
serverURL
|
|
15
|
-
}) {
|
|
16
|
-
const queryString = qs.stringify({
|
|
17
|
-
depth: MAX_HIERARCHY_DEPTH,
|
|
18
|
-
limit: 1,
|
|
19
|
-
select: {
|
|
20
|
-
[parentFieldName]: true
|
|
21
|
-
},
|
|
22
|
-
where: {
|
|
23
|
-
id: {
|
|
24
|
-
equals: itemId
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}, {
|
|
28
|
-
addQueryPrefix: true
|
|
29
|
-
});
|
|
30
|
-
const url = formatAdminURL({
|
|
31
|
-
apiRoute: api,
|
|
32
|
-
path: `/${collectionSlug}${queryString}`,
|
|
33
|
-
serverURL
|
|
34
|
-
});
|
|
35
|
-
const response = await fetch(url, {
|
|
36
|
-
credentials: 'include'
|
|
37
|
-
});
|
|
38
|
-
if (!response.ok) {
|
|
39
|
-
return [];
|
|
40
|
-
}
|
|
41
|
-
const data = await response.json();
|
|
42
|
-
const doc = data.docs?.[0];
|
|
43
|
-
if (!doc) {
|
|
44
|
-
return [];
|
|
45
|
-
}
|
|
46
|
-
// Walk the nested parent chain to build path from root to immediate parent
|
|
47
|
-
const path = [];
|
|
48
|
-
let current = doc[parentFieldName];
|
|
49
|
-
while (current !== null && current !== undefined) {
|
|
50
|
-
// Parent could be an ID (number/string) or a populated object
|
|
51
|
-
const parentId = typeof current === 'object' ? current.id : current;
|
|
52
|
-
if (parentId !== null && parentId !== undefined) {
|
|
53
|
-
path.unshift(parentId);
|
|
54
|
-
}
|
|
55
|
-
// Move to next parent (only if current is populated object)
|
|
56
|
-
current = typeof current === 'object' ? current[parentFieldName] : null;
|
|
57
|
-
}
|
|
58
|
-
return path;
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=fetchAncestorPath.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetchAncestorPath.js","names":["formatAdminURL","qs","MAX_HIERARCHY_DEPTH","fetchAncestorPath","api","collectionSlug","itemId","parentFieldName","serverURL","queryString","stringify","depth","limit","select","where","id","equals","addQueryPrefix","url","apiRoute","path","response","fetch","credentials","ok","data","json","doc","docs","current","undefined","parentId","unshift"],"sources":["../../../../src/elements/Hierarchy/Drawer/fetchAncestorPath.ts"],"sourcesContent":["import { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\n\ntype FetchAncestorPathArgs = {\n api: string\n collectionSlug: string\n itemId: number | string\n parentFieldName: string\n serverURL: string\n}\n\nconst MAX_HIERARCHY_DEPTH = 20\n\n/**\n * Fetches the ancestor path for an item using a single API call with depth.\n * Returns array of ancestor IDs from root to item's parent.\n * Example: item at level 3 returns [grandparentId, parentId]\n */\nexport async function fetchAncestorPath({\n api,\n collectionSlug,\n itemId,\n parentFieldName,\n serverURL,\n}: FetchAncestorPathArgs): Promise<(number | string)[]> {\n const queryString = qs.stringify(\n {\n depth: MAX_HIERARCHY_DEPTH,\n limit: 1,\n select: { [parentFieldName]: true },\n where: { id: { equals: itemId } },\n },\n { addQueryPrefix: true },\n )\n\n const url = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}${queryString}`,\n serverURL,\n })\n\n const response = await fetch(url, { credentials: 'include' })\n\n if (!response.ok) {\n return []\n }\n\n const data = await response.json()\n const doc = data.docs?.[0]\n\n if (!doc) {\n return []\n }\n\n // Walk the nested parent chain to build path from root to immediate parent\n const path: (number | string)[] = []\n let current = doc[parentFieldName]\n\n while (current !== null && current !== undefined) {\n // Parent could be an ID (number/string) or a populated object\n const parentId = typeof current === 'object' ? current.id : current\n\n if (parentId !== null && parentId !== undefined) {\n path.unshift(parentId)\n }\n\n // Move to next parent (only if current is populated object)\n current = typeof current === 'object' ? current[parentFieldName] : null\n }\n\n return path\n}\n"],"mappings":"AAAA,SAASA,cAAc,QAAQ;AAC/B,YAAYC,EAAA,MAAQ;AAUpB,MAAMC,mBAAA,GAAsB;AAE5B;;;;;AAKA,OAAO,eAAeC,kBAAkB;EACtCC,GAAG;EACHC,cAAc;EACdC,MAAM;EACNC,eAAe;EACfC;AAAS,CACa;EACtB,MAAMC,WAAA,GAAcR,EAAA,CAAGS,SAAS,CAC9B;IACEC,KAAA,EAAOT,mBAAA;IACPU,KAAA,EAAO;IACPC,MAAA,EAAQ;MAAE,CAACN,eAAA,GAAkB;IAAK;IAClCO,KAAA,EAAO;MAAEC,EAAA,EAAI;QAAEC,MAAA,EAAQV;MAAO;IAAE;EAClC,GACA;IAAEW,cAAA,EAAgB;EAAK;EAGzB,MAAMC,GAAA,GAAMlB,cAAA,CAAe;IACzBmB,QAAA,EAAUf,GAAA;IACVgB,IAAA,EAAM,IAAIf,cAAA,GAAiBI,WAAA,EAAa;IACxCD;EACF;EAEA,MAAMa,QAAA,GAAW,MAAMC,KAAA,CAAMJ,GAAA,EAAK;IAAEK,WAAA,EAAa;EAAU;EAE3D,IAAI,CAACF,QAAA,CAASG,EAAE,EAAE;IAChB,OAAO,EAAE;EACX;EAEA,MAAMC,IAAA,GAAO,MAAMJ,QAAA,CAASK,IAAI;EAChC,MAAMC,GAAA,GAAMF,IAAA,CAAKG,IAAI,GAAG,EAAE;EAE1B,IAAI,CAACD,GAAA,EAAK;IACR,OAAO,EAAE;EACX;EAEA;EACA,MAAMP,IAAA,GAA4B,EAAE;EACpC,IAAIS,OAAA,GAAUF,GAAG,CAACpB,eAAA,CAAgB;EAElC,OAAOsB,OAAA,KAAY,QAAQA,OAAA,KAAYC,SAAA,EAAW;IAChD;IACA,MAAMC,QAAA,GAAW,OAAOF,OAAA,KAAY,WAAWA,OAAA,CAAQd,EAAE,GAAGc,OAAA;IAE5D,IAAIE,QAAA,KAAa,QAAQA,QAAA,KAAaD,SAAA,EAAW;MAC/CV,IAAA,CAAKY,OAAO,CAACD,QAAA;IACf;IAEA;IACAF,OAAA,GAAU,OAAOA,OAAA,KAAY,WAAWA,OAAO,CAACtB,eAAA,CAAgB,GAAG;EACrE;EAEA,OAAOa,IAAA;AACT","ignoreList":[]}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { HierarchyColumnBrowserRef } from '../ColumnBrowser/index.js';
|
|
3
|
-
import type { HierarchyDrawerInternalProps } from './types.js';
|
|
4
|
-
import './index.scss';
|
|
5
|
-
export declare const baseClass = "hierarchy-drawer";
|
|
6
|
-
type HierarchyDrawerContentProps = {
|
|
7
|
-
columnBrowserRef?: React.RefObject<HierarchyColumnBrowserRef | null>;
|
|
8
|
-
onCreateNew?: (params: {
|
|
9
|
-
parentId: null | number | string;
|
|
10
|
-
}) => void;
|
|
11
|
-
} & HierarchyDrawerInternalProps;
|
|
12
|
-
export type HierarchyDrawerContentRef = {
|
|
13
|
-
selectItem: (id: number | string) => void;
|
|
14
|
-
};
|
|
15
|
-
export declare const HierarchyDrawerContent: ({ baseFilter, closeDrawer, columnBrowserRef, disabledIds, filterByCollection, hasMany, hierarchyCollectionSlug, Icon, initialSelections, onCreateNew, onMoveToRoot, onSave, parentFieldName, ref, showMoveToRoot, useAsTitle, }: {
|
|
16
|
-
ref?: React.RefObject<HierarchyDrawerContentRef | null>;
|
|
17
|
-
} & HierarchyDrawerContentProps) => React.JSX.Element;
|
|
18
|
-
export declare const HierarchyDrawer: React.FC<HierarchyDrawerInternalProps>;
|
|
19
|
-
export {};
|
|
20
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/Drawer/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAON,MAAM,OAAO,CAAA;AAEd,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,KAAK,EAAE,4BAA4B,EAAqB,MAAM,YAAY,CAAA;AAWjF,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,SAAS,qBAAqB,CAAA;AAE3C,KAAK,2BAA2B,GAAG;IACjC,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAA;IACpE,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;CACrE,GAAG,4BAA4B,CAAA;AAEhC,MAAM,MAAM,yBAAyB,GAAG;IACtC,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAA;CAC1C,CAAA;AAED,eAAO,MAAM,sBAAsB,oOAiBhC;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAA;CAAE,GAAG,2BAA2B,sBAwL3F,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CA2FlE,CAAA"}
|
|
@@ -1,291 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
4
|
-
import { getTranslation } from '@payloadcms/translations';
|
|
5
|
-
import React, { useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
|
|
6
|
-
import { useEffectEvent } from '../../../hooks/useEffectEvent.js';
|
|
7
|
-
import { TagIcon } from '../../../icons/Tag/index.js';
|
|
8
|
-
import { useConfig } from '../../../providers/Config/index.js';
|
|
9
|
-
import { useTranslation } from '../../../providers/Translation/index.js';
|
|
10
|
-
import { useDocumentDrawer } from '../../DocumentDrawer/index.js';
|
|
11
|
-
import { Drawer, DrawerDepthProvider } from '../../Drawer/index.js';
|
|
12
|
-
import { DrawerActionHeader } from '../../DrawerActionHeader/index.js';
|
|
13
|
-
import { HierarchyColumnBrowser } from '../ColumnBrowser/index.js';
|
|
14
|
-
import { fetchAncestorPath } from './fetchAncestorPath.js';
|
|
15
|
-
import './index.scss';
|
|
16
|
-
export const baseClass = 'hierarchy-drawer';
|
|
17
|
-
export const HierarchyDrawerContent = function HierarchyDrawerContent({
|
|
18
|
-
baseFilter,
|
|
19
|
-
closeDrawer,
|
|
20
|
-
columnBrowserRef,
|
|
21
|
-
disabledIds,
|
|
22
|
-
filterByCollection,
|
|
23
|
-
hasMany = false,
|
|
24
|
-
hierarchyCollectionSlug,
|
|
25
|
-
Icon,
|
|
26
|
-
initialSelections,
|
|
27
|
-
onCreateNew,
|
|
28
|
-
onMoveToRoot,
|
|
29
|
-
onSave,
|
|
30
|
-
parentFieldName,
|
|
31
|
-
ref,
|
|
32
|
-
showMoveToRoot,
|
|
33
|
-
useAsTitle
|
|
34
|
-
}) {
|
|
35
|
-
const {
|
|
36
|
-
i18n,
|
|
37
|
-
t
|
|
38
|
-
} = useTranslation();
|
|
39
|
-
// NOTE: Do NOT use useModal() here - it causes re-renders when any modal state changes
|
|
40
|
-
// Use closeDrawer prop instead which already handles closing the modal
|
|
41
|
-
const {
|
|
42
|
-
config: {
|
|
43
|
-
routes: {
|
|
44
|
-
api
|
|
45
|
-
},
|
|
46
|
-
serverURL
|
|
47
|
-
},
|
|
48
|
-
getEntityConfig
|
|
49
|
-
} = useConfig();
|
|
50
|
-
const collectionConfig = getEntityConfig({
|
|
51
|
-
collectionSlug: hierarchyCollectionSlug
|
|
52
|
-
});
|
|
53
|
-
const collectionLabel = collectionConfig ? getTranslation(collectionConfig.labels?.plural || hierarchyCollectionSlug, i18n) : hierarchyCollectionSlug;
|
|
54
|
-
const parentFieldName_internal = collectionConfig?.hierarchy && typeof collectionConfig.hierarchy === 'object' ? collectionConfig.hierarchy.parentFieldName : parentFieldName;
|
|
55
|
-
const [initialExpandedPath, setInitialExpandedPath] = useState();
|
|
56
|
-
const [isLoadingPath, setIsLoadingPath] = useState(Boolean(initialSelections?.length));
|
|
57
|
-
const hasLoadedPathRef = React.useRef(false);
|
|
58
|
-
const firstSelection = initialSelections?.[0];
|
|
59
|
-
const loadAncestorPath = useEffectEvent(async itemId => {
|
|
60
|
-
if (!itemId) {
|
|
61
|
-
setIsLoadingPath(false);
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
try {
|
|
65
|
-
const path = await fetchAncestorPath({
|
|
66
|
-
api,
|
|
67
|
-
collectionSlug: hierarchyCollectionSlug,
|
|
68
|
-
itemId,
|
|
69
|
-
parentFieldName: parentFieldName_internal,
|
|
70
|
-
serverURL
|
|
71
|
-
});
|
|
72
|
-
setInitialExpandedPath(path);
|
|
73
|
-
} catch {
|
|
74
|
-
// Silently handle fetch errors - will just start at root
|
|
75
|
-
} finally {
|
|
76
|
-
setIsLoadingPath(false);
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
// Load ancestor path on mount
|
|
80
|
-
useEffect(() => {
|
|
81
|
-
if (hasLoadedPathRef.current) {
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
hasLoadedPathRef.current = true;
|
|
85
|
-
void loadAncestorPath(firstSelection);
|
|
86
|
-
}, [firstSelection]);
|
|
87
|
-
const [selections, setSelections] = useState(() => {
|
|
88
|
-
const map = new Map();
|
|
89
|
-
if (initialSelections) {
|
|
90
|
-
for (const id of initialSelections) {
|
|
91
|
-
map.set(id, {
|
|
92
|
-
id,
|
|
93
|
-
path: []
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
return map;
|
|
98
|
-
});
|
|
99
|
-
const selectedIds = useMemo(() => new Set(selections.keys()), [selections]);
|
|
100
|
-
// For now, ancestorsWithSelections is empty - will be computed when we have path tracking
|
|
101
|
-
const ancestorsWithSelections = useMemo(() => new Set(), []);
|
|
102
|
-
const handleCancel = useCallback(() => {
|
|
103
|
-
closeDrawer();
|
|
104
|
-
}, [closeDrawer]);
|
|
105
|
-
const handleSave = useCallback(() => {
|
|
106
|
-
onSave({
|
|
107
|
-
closeDrawer,
|
|
108
|
-
selections
|
|
109
|
-
});
|
|
110
|
-
}, [onSave, selections, closeDrawer]);
|
|
111
|
-
const handleSelect = useCallback(({
|
|
112
|
-
id: id_0,
|
|
113
|
-
path: path_0
|
|
114
|
-
}) => {
|
|
115
|
-
setSelections(prev => {
|
|
116
|
-
const next = new Map(prev);
|
|
117
|
-
if (next.has(id_0)) {
|
|
118
|
-
next.delete(id_0);
|
|
119
|
-
} else {
|
|
120
|
-
if (!hasMany) {
|
|
121
|
-
// Single select: clear previous selections
|
|
122
|
-
next.clear();
|
|
123
|
-
}
|
|
124
|
-
next.set(id_0, {
|
|
125
|
-
id: id_0,
|
|
126
|
-
path: path_0
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
return next;
|
|
130
|
-
});
|
|
131
|
-
}, [hasMany]);
|
|
132
|
-
const handleClearAll = useCallback(() => {
|
|
133
|
-
setSelections(new Map());
|
|
134
|
-
}, []);
|
|
135
|
-
// Expose selectItem for programmatic selection (e.g., after creating a new item)
|
|
136
|
-
useImperativeHandle(ref, () => ({
|
|
137
|
-
selectItem: id_1 => {
|
|
138
|
-
setSelections(prev_0 => {
|
|
139
|
-
const next_0 = new Map(prev_0);
|
|
140
|
-
if (!hasMany) {
|
|
141
|
-
next_0.clear();
|
|
142
|
-
}
|
|
143
|
-
// Path will be empty for newly created items - could be enhanced later
|
|
144
|
-
next_0.set(id_1, {
|
|
145
|
-
id: id_1,
|
|
146
|
-
path: []
|
|
147
|
-
});
|
|
148
|
-
return next_0;
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
}), [hasMany]);
|
|
152
|
-
const selectionCount = selections.size;
|
|
153
|
-
return /*#__PURE__*/_jsxs("div", {
|
|
154
|
-
className: `${baseClass}__content`,
|
|
155
|
-
children: [/*#__PURE__*/_jsx(DrawerActionHeader, {
|
|
156
|
-
onCancel: handleCancel,
|
|
157
|
-
onSave: handleSave,
|
|
158
|
-
saveLabel: t('general:select'),
|
|
159
|
-
title: t('general:selectValue', {
|
|
160
|
-
label: collectionLabel
|
|
161
|
-
})
|
|
162
|
-
}), /*#__PURE__*/_jsxs("div", {
|
|
163
|
-
className: `${baseClass}__subheader`,
|
|
164
|
-
children: [/*#__PURE__*/_jsxs("div", {
|
|
165
|
-
className: `${baseClass}__subheader-left`,
|
|
166
|
-
children: [Icon || /*#__PURE__*/_jsx(TagIcon, {
|
|
167
|
-
color: "muted"
|
|
168
|
-
}), /*#__PURE__*/_jsx("h4", {
|
|
169
|
-
children: collectionLabel
|
|
170
|
-
})]
|
|
171
|
-
}), /*#__PURE__*/_jsxs("div", {
|
|
172
|
-
className: `${baseClass}__subheader-right`,
|
|
173
|
-
children: [showMoveToRoot && onMoveToRoot && /*#__PURE__*/_jsx("button", {
|
|
174
|
-
className: `${baseClass}__move-to-root`,
|
|
175
|
-
onClick: onMoveToRoot,
|
|
176
|
-
type: "button",
|
|
177
|
-
children: t('hierarchy:moveToRoot')
|
|
178
|
-
}), selectionCount > 0 && /*#__PURE__*/_jsxs(_Fragment, {
|
|
179
|
-
children: [/*#__PURE__*/_jsxs("span", {
|
|
180
|
-
className: `${baseClass}__selection-info`,
|
|
181
|
-
children: [selectionCount, " selected"]
|
|
182
|
-
}), /*#__PURE__*/_jsx("span", {
|
|
183
|
-
children: "—"
|
|
184
|
-
}), /*#__PURE__*/_jsx("button", {
|
|
185
|
-
className: `${baseClass}__clear-all`,
|
|
186
|
-
onClick: handleClearAll,
|
|
187
|
-
type: "button",
|
|
188
|
-
children: t('general:clearAll')
|
|
189
|
-
})]
|
|
190
|
-
})]
|
|
191
|
-
})]
|
|
192
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
193
|
-
className: `${baseClass}__columns`,
|
|
194
|
-
children: /*#__PURE__*/_jsx(HierarchyColumnBrowser, {
|
|
195
|
-
ancestorsWithSelections: ancestorsWithSelections,
|
|
196
|
-
baseFilter: baseFilter,
|
|
197
|
-
disabledIds: disabledIds,
|
|
198
|
-
filterByCollection: filterByCollection,
|
|
199
|
-
hierarchyCollectionSlug: hierarchyCollectionSlug,
|
|
200
|
-
initialExpandedPath: initialExpandedPath,
|
|
201
|
-
isLoadingPath: isLoadingPath,
|
|
202
|
-
onCreateNew: onCreateNew,
|
|
203
|
-
onSelect: handleSelect,
|
|
204
|
-
parentFieldName: parentFieldName,
|
|
205
|
-
ref: columnBrowserRef,
|
|
206
|
-
selectedIds: selectedIds,
|
|
207
|
-
useAsTitle: useAsTitle
|
|
208
|
-
})
|
|
209
|
-
})]
|
|
210
|
-
});
|
|
211
|
-
};
|
|
212
|
-
export const HierarchyDrawer = props => {
|
|
213
|
-
const {
|
|
214
|
-
drawerSlug,
|
|
215
|
-
hierarchyCollectionSlug,
|
|
216
|
-
parentFieldName
|
|
217
|
-
} = props;
|
|
218
|
-
// Get parentFieldName from hierarchy config
|
|
219
|
-
const {
|
|
220
|
-
getEntityConfig
|
|
221
|
-
} = useConfig();
|
|
222
|
-
const collectionConfig = getEntityConfig({
|
|
223
|
-
collectionSlug: hierarchyCollectionSlug
|
|
224
|
-
});
|
|
225
|
-
const parentFieldName_internal = collectionConfig?.hierarchy && typeof collectionConfig.hierarchy === 'object' ? collectionConfig.hierarchy.parentFieldName : parentFieldName;
|
|
226
|
-
// Track which parentId is being used for the document drawer - use state to trigger re-render
|
|
227
|
-
const [createParentId, setCreateParentId] = useState(null);
|
|
228
|
-
// Ref to access column browser's refresh function
|
|
229
|
-
const columnBrowserRef = useRef(null);
|
|
230
|
-
// Ref to access drawer content's selectItem function
|
|
231
|
-
const drawerContentRef = useRef(null);
|
|
232
|
-
// Key for DocumentDrawer to force remount when parentId changes
|
|
233
|
-
const [documentDrawerKey, setDocumentDrawerKey] = useState(0);
|
|
234
|
-
// Stable drawer slug for the document drawer - must not change on remount
|
|
235
|
-
const documentDrawerSlug = `${drawerSlug}-create-doc`;
|
|
236
|
-
// Document drawer for creating new items - rendered OUTSIDE the Drawer to avoid nested modal issues
|
|
237
|
-
const [DocumentDrawer,, {
|
|
238
|
-
closeDrawer: closeDocumentDrawer,
|
|
239
|
-
openDrawer: openDocumentDrawer
|
|
240
|
-
}] = useDocumentDrawer({
|
|
241
|
-
collectionSlug: hierarchyCollectionSlug,
|
|
242
|
-
drawerSlug: documentDrawerSlug
|
|
243
|
-
});
|
|
244
|
-
const handleCreateNew = useCallback(({
|
|
245
|
-
parentId
|
|
246
|
-
}) => {
|
|
247
|
-
// Increment key to force DocumentDrawer remount with new initialData
|
|
248
|
-
setDocumentDrawerKey(prev => prev + 1);
|
|
249
|
-
setCreateParentId(parentId);
|
|
250
|
-
// Use setTimeout to ensure state update triggers re-render before opening drawer
|
|
251
|
-
setTimeout(() => {
|
|
252
|
-
openDocumentDrawer();
|
|
253
|
-
}, 0);
|
|
254
|
-
}, [openDocumentDrawer]);
|
|
255
|
-
// Refresh the column, select the new item, and close the document drawer after creation
|
|
256
|
-
const handleDocumentSave = useCallback(({
|
|
257
|
-
doc
|
|
258
|
-
}) => {
|
|
259
|
-
if (columnBrowserRef.current && createParentId !== undefined) {
|
|
260
|
-
void columnBrowserRef.current.refreshColumn(createParentId);
|
|
261
|
-
}
|
|
262
|
-
if (drawerContentRef.current && doc?.id) {
|
|
263
|
-
drawerContentRef.current.selectItem(doc.id);
|
|
264
|
-
}
|
|
265
|
-
closeDocumentDrawer();
|
|
266
|
-
}, [closeDocumentDrawer, createParentId]);
|
|
267
|
-
// Memoize the content - only depends on stable values
|
|
268
|
-
const drawerContent = useMemo(() => /*#__PURE__*/_jsx(HierarchyDrawerContent, {
|
|
269
|
-
...props,
|
|
270
|
-
columnBrowserRef: columnBrowserRef,
|
|
271
|
-
onCreateNew: handleCreateNew,
|
|
272
|
-
ref: drawerContentRef
|
|
273
|
-
}), [handleCreateNew, props]);
|
|
274
|
-
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
275
|
-
children: [/*#__PURE__*/_jsx(Drawer, {
|
|
276
|
-
className: baseClass,
|
|
277
|
-
gutter: false,
|
|
278
|
-
Header: null,
|
|
279
|
-
slug: drawerSlug,
|
|
280
|
-
children: drawerContent
|
|
281
|
-
}), /*#__PURE__*/_jsx(DrawerDepthProvider, {
|
|
282
|
-
children: /*#__PURE__*/_jsx(DocumentDrawer, {
|
|
283
|
-
initialData: createParentId !== null ? {
|
|
284
|
-
[parentFieldName_internal]: createParentId
|
|
285
|
-
} : undefined,
|
|
286
|
-
onSave: handleDocumentSave
|
|
287
|
-
}, documentDrawerKey)
|
|
288
|
-
})]
|
|
289
|
-
});
|
|
290
|
-
};
|
|
291
|
-
//# sourceMappingURL=index.js.map
|