@payloadcms/ui 4.0.0-internal.cd47d20 → 4.0.0-internal.ce66a41
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/css/app.css +1 -1
- package/dist/css/forms.css +0 -1
- package/dist/css/spacing.css +1 -1
- package/dist/css/typography.css +161 -55
- package/dist/elements/APIKeyInput/index.css +2 -2
- package/dist/elements/AddNewRelation/index.css +0 -4
- package/dist/elements/AddNewRelation/index.js +2 -2
- package/dist/elements/AddNewRelation/index.js.map +1 -1
- package/dist/elements/AppHeader/index.css +4 -0
- package/dist/elements/AppHeader/index.d.ts +1 -8
- package/dist/elements/AppHeader/index.d.ts.map +1 -1
- package/dist/elements/AppHeader/index.js +10 -19
- package/dist/elements/AppHeader/index.js.map +1 -1
- package/dist/elements/Banner/index.css +3 -4
- package/dist/elements/BulkUpload/ActionsBar/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/ActionsBar/index.js +12 -10
- package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
- package/dist/elements/BulkUpload/AddFilesView/index.css +5 -0
- package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/AddFilesView/index.js +49 -8
- package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/AddingFilesView/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/AddingFilesView/index.js +25 -20
- package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditMany/index.css +4 -5
- package/dist/elements/BulkUpload/FileSidebar/index.css +0 -1
- package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.js +28 -35
- package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.d.ts +2 -1
- package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +175 -60
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/BulkUpload/useUploadCollectionOptions.d.ts +6 -0
- package/dist/elements/BulkUpload/useUploadCollectionOptions.d.ts.map +1 -0
- package/dist/elements/BulkUpload/useUploadCollectionOptions.js +74 -0
- package/dist/elements/BulkUpload/useUploadCollectionOptions.js.map +1 -0
- package/dist/elements/Button/index.css +7 -1
- 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/Card/index.css +7 -8
- package/dist/elements/CardGrid/index.css +20 -0
- package/dist/elements/CardGrid/index.d.ts +13 -0
- package/dist/elements/CardGrid/index.d.ts.map +1 -0
- package/dist/elements/CardGrid/index.js +23 -0
- package/dist/elements/CardGrid/index.js.map +1 -0
- package/dist/elements/Chip/index.css +0 -1
- package/dist/elements/CollapseAllToggle/index.d.ts +3 -0
- package/dist/elements/CollapseAllToggle/index.d.ts.map +1 -1
- package/dist/elements/CollapseAllToggle/index.js +36 -22
- package/dist/elements/CollapseAllToggle/index.js.map +1 -1
- package/dist/elements/Collapsible/index.css +4 -1
- package/dist/elements/Collapsible/index.d.ts +2 -0
- package/dist/elements/Collapsible/index.d.ts.map +1 -1
- package/dist/elements/Collapsible/index.js +67 -46
- package/dist/elements/Collapsible/index.js.map +1 -1
- package/dist/elements/ColumnSelection/Popup.css +14 -11
- package/dist/elements/ColumnSelection/Popup.d.ts.map +1 -1
- package/dist/elements/ColumnSelection/Popup.js +22 -14
- package/dist/elements/ColumnSelection/Popup.js.map +1 -1
- package/dist/elements/CommandPalette/index.css +3 -8
- package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
- package/dist/elements/CopyLocaleData/index.js +1 -0
- package/dist/elements/CopyLocaleData/index.js.map +1 -1
- package/dist/elements/CreateDocumentButton/index.d.ts.map +1 -1
- package/dist/elements/CreateDocumentButton/index.js +56 -33
- package/dist/elements/CreateDocumentButton/index.js.map +1 -1
- package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
- package/dist/elements/DatePicker/DatePicker.js +33 -2
- package/dist/elements/DatePicker/DatePicker.js.map +1 -1
- package/dist/elements/DatePicker/hasAmbiguousYearInput.d.ts +8 -0
- package/dist/elements/DatePicker/hasAmbiguousYearInput.d.ts.map +1 -0
- package/dist/elements/DatePicker/hasAmbiguousYearInput.js +37 -0
- package/dist/elements/DatePicker/hasAmbiguousYearInput.js.map +1 -0
- package/dist/elements/DatePicker/index.css +27 -17
- package/dist/elements/DefaultListViewTabs/index.d.ts.map +1 -1
- package/dist/elements/DefaultListViewTabs/index.js +9 -7
- package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
- package/dist/elements/Dialog/DialogModal/index.d.ts.map +1 -1
- package/dist/elements/Dialog/DialogModal/index.js +40 -28
- package/dist/elements/Dialog/DialogModal/index.js.map +1 -1
- package/dist/elements/Dialog/DialogTitle/index.css +1 -1
- package/dist/elements/Dialog/index.css +1 -2
- package/dist/elements/DocumentCard/index.css +73 -0
- package/dist/elements/DocumentCard/index.d.ts +18 -0
- package/dist/elements/DocumentCard/index.d.ts.map +1 -0
- package/dist/elements/DocumentCard/index.js +182 -0
- package/dist/elements/DocumentCard/index.js.map +1 -0
- package/dist/elements/DocumentControls/index.css +1 -5
- package/dist/elements/DocumentDrawer/DrawerHeader/index.css +4 -7
- package/dist/elements/DocumentDrawer/types.d.ts +1 -1
- package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/types.js.map +1 -1
- package/dist/elements/DocumentFields/RequiredFieldsInfo/index.css +40 -0
- package/dist/elements/DocumentFields/RequiredFieldsInfo/index.d.ts +4 -0
- package/dist/elements/DocumentFields/RequiredFieldsInfo/index.d.ts.map +1 -0
- package/dist/elements/DocumentFields/RequiredFieldsInfo/index.js +88 -0
- package/dist/elements/DocumentFields/RequiredFieldsInfo/index.js.map +1 -0
- package/dist/elements/DocumentFields/index.d.ts.map +1 -1
- package/dist/elements/DocumentFields/index.js +2 -1
- package/dist/elements/DocumentFields/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js +0 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
- package/dist/elements/DocumentHeader/index.css +1 -1
- package/dist/elements/DraggableSortable/index.d.ts.map +1 -1
- package/dist/elements/DraggableSortable/index.js +13 -10
- package/dist/elements/DraggableSortable/index.js.map +1 -1
- package/dist/elements/DraggableSortable/types.d.ts +1 -0
- package/dist/elements/DraggableSortable/types.d.ts.map +1 -1
- package/dist/elements/DraggableSortable/types.js.map +1 -1
- package/dist/elements/Drawer/index.css +4 -5
- package/dist/elements/Drawer/types.d.ts +2 -2
- package/dist/elements/Drawer/types.d.ts.map +1 -1
- package/dist/elements/Drawer/types.js.map +1 -1
- package/dist/elements/Dropzone/index.d.ts +2 -1
- package/dist/elements/Dropzone/index.d.ts.map +1 -1
- package/dist/elements/Dropzone/index.js +9 -10
- package/dist/elements/Dropzone/index.js.map +1 -1
- package/dist/elements/EditMany/index.css +4 -5
- package/dist/elements/EditUpload/index.css +3 -4
- package/dist/elements/ErrorPill/index.css +0 -1
- package/dist/elements/FieldDiffContainer/index.css +0 -1
- package/dist/elements/FieldDiffLabel/index.css +4 -5
- package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts +1 -1
- package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts.map +1 -1
- package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
- package/dist/elements/FileDetails/FileMeta/index.d.ts +1 -1
- package/dist/elements/FileDetails/FileMeta/index.d.ts.map +1 -1
- package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
- package/dist/elements/FileDetails/StaticFileDetails/index.d.ts +1 -1
- package/dist/elements/FileDetails/StaticFileDetails/index.d.ts.map +1 -1
- package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
- package/dist/elements/FileDetails/index.d.ts +1 -1
- package/dist/elements/FileDetails/index.d.ts.map +1 -1
- package/dist/elements/FileDetails/index.js.map +1 -1
- package/dist/elements/FileManager/FilePreview/index.css +2 -3
- package/dist/elements/FileManager/FilePreview/index.js +4 -4
- package/dist/elements/FileManager/FilePreview/index.js.map +1 -1
- package/dist/elements/FileManager/FileToolbar/index.css +2 -3
- package/dist/elements/FileManager/index.css +0 -1
- package/dist/elements/FileManager/index.d.ts.map +1 -1
- package/dist/elements/FileManager/index.js +197 -177
- package/dist/elements/FileManager/index.js.map +1 -1
- package/dist/elements/FormHeader/index.css +0 -2
- package/dist/elements/GroupBy/Popup.css +3 -6
- package/dist/elements/HTMLDiff/index.css +0 -1
- package/dist/elements/HTMLDiff/index.d.ts +3 -1
- package/dist/elements/HTMLDiff/index.d.ts.map +1 -1
- package/dist/elements/HTMLDiff/index.js +9 -3
- package/dist/elements/HTMLDiff/index.js.map +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js +40 -36
- package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js.map +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/index.js +15 -58
- package/dist/elements/Hierarchy/ColumnBrowser/index.js.map +1 -1
- package/dist/elements/Hierarchy/DocHeaderButton/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/DocHeaderButton/index.js +29 -1
- package/dist/elements/Hierarchy/DocHeaderButton/index.js.map +1 -1
- package/dist/elements/Hierarchy/Field/getHierarchyFilterOptions.d.ts +9 -0
- package/dist/elements/Hierarchy/Field/getHierarchyFilterOptions.d.ts.map +1 -0
- package/dist/elements/Hierarchy/Field/getHierarchyFilterOptions.js +41 -0
- package/dist/elements/Hierarchy/Field/getHierarchyFilterOptions.js.map +1 -0
- package/dist/elements/Hierarchy/Field/index.client.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Field/index.client.js +120 -105
- package/dist/elements/Hierarchy/Field/index.client.js.map +1 -1
- package/dist/elements/Hierarchy/Field/index.css +0 -1
- package/dist/elements/Hierarchy/Modal/index.d.ts +1 -1
- package/dist/elements/Hierarchy/Modal/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Modal/index.js +28 -39
- package/dist/elements/Hierarchy/Modal/index.js.map +1 -1
- package/dist/elements/Hierarchy/Modal/selection.d.ts +12 -0
- package/dist/elements/Hierarchy/Modal/selection.d.ts.map +1 -0
- package/dist/elements/Hierarchy/Modal/selection.js +40 -0
- package/dist/elements/Hierarchy/Modal/selection.js.map +1 -0
- package/dist/elements/Hierarchy/Modal/types.d.ts +2 -0
- package/dist/elements/Hierarchy/Modal/types.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Modal/types.js.map +1 -1
- package/dist/elements/Hierarchy/Modal/useHierarchyModal.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Modal/useHierarchyModal.js +1 -1
- package/dist/elements/Hierarchy/Modal/useHierarchyModal.js.map +1 -1
- package/dist/elements/Hierarchy/MoveMany/index.d.ts +3 -1
- package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/MoveMany/index.js +17 -8
- package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
- package/dist/elements/Hierarchy/Search/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Search/index.js +11 -0
- package/dist/elements/Hierarchy/Search/index.js.map +1 -1
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js +7 -1
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +1 -1
- package/dist/elements/Hierarchy/Tree/TreeFocusContext.d.ts +2 -1
- package/dist/elements/Hierarchy/Tree/TreeFocusContext.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Tree/TreeFocusContext.js +30 -28
- package/dist/elements/Hierarchy/Tree/TreeFocusContext.js.map +1 -1
- package/dist/elements/Hierarchy/Tree/TreeNode/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Tree/TreeNode/index.js +6 -2
- package/dist/elements/Hierarchy/Tree/TreeNode/index.js.map +1 -1
- package/dist/elements/Hierarchy/Tree/index.css +3 -1
- package/dist/elements/Hierarchy/Tree/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Tree/index.js +25 -26
- package/dist/elements/Hierarchy/Tree/index.js.map +1 -1
- package/dist/elements/HydratePreferences/index.d.ts +8 -0
- package/dist/elements/HydratePreferences/index.d.ts.map +1 -0
- package/dist/elements/HydratePreferences/index.js +34 -0
- package/dist/elements/HydratePreferences/index.js.map +1 -0
- package/dist/elements/IDLabel/index.css +5 -7
- package/dist/elements/IframeLoader/index.d.ts.map +1 -1
- package/dist/elements/IframeLoader/index.js +34 -6
- package/dist/elements/IframeLoader/index.js.map +1 -1
- package/dist/elements/ItemsDrawer/ItemSearch/index.css +0 -1
- package/dist/elements/ItemsDrawer/index.d.ts.map +1 -1
- package/dist/elements/ItemsDrawer/index.js +23 -1
- package/dist/elements/ItemsDrawer/index.js.map +1 -1
- package/dist/elements/LLMInstructionsCell/index.css +11 -0
- package/dist/elements/LLMInstructionsCell/index.d.ts +5 -0
- package/dist/elements/LLMInstructionsCell/index.d.ts.map +1 -0
- package/dist/elements/LLMInstructionsCell/index.js +24 -0
- package/dist/elements/LLMInstructionsCell/index.js.map +1 -0
- package/dist/elements/LLMInstructionsDescription/index.css +79 -0
- package/dist/elements/LLMInstructionsDescription/index.d.ts +6 -0
- package/dist/elements/LLMInstructionsDescription/index.d.ts.map +1 -0
- package/dist/elements/LLMInstructionsDescription/index.js +40 -0
- package/dist/elements/LLMInstructionsDescription/index.js.map +1 -0
- package/dist/elements/LLMInstructionsMenuItem/index.d.ts +5 -0
- package/dist/elements/LLMInstructionsMenuItem/index.d.ts.map +1 -0
- package/dist/elements/LLMInstructionsMenuItem/index.js +46 -0
- package/dist/elements/LLMInstructionsMenuItem/index.js.map +1 -0
- package/dist/elements/LayoutToggle/index.d.ts +8 -0
- package/dist/elements/LayoutToggle/index.d.ts.map +1 -0
- package/dist/elements/LayoutToggle/index.js +56 -0
- package/dist/elements/LayoutToggle/index.js.map +1 -0
- package/dist/elements/Link/index.d.ts.map +1 -1
- package/dist/elements/Link/index.js +3 -0
- package/dist/elements/Link/index.js.map +1 -1
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +5 -2
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListControls/types.d.ts +1 -0
- package/dist/elements/ListControls/types.d.ts.map +1 -1
- package/dist/elements/ListControls/types.js.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerConfirmSelectionButton.d.ts +6 -0
- package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerConfirmSelectionButton.d.ts.map +1 -0
- package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerConfirmSelectionButton.js +61 -0
- package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerConfirmSelectionButton.js.map +1 -0
- package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js +1 -1
- package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js.map +1 -1
- package/dist/elements/ListHeader/DrawerTitleActions/index.d.ts +1 -0
- package/dist/elements/ListHeader/DrawerTitleActions/index.d.ts.map +1 -1
- package/dist/elements/ListHeader/DrawerTitleActions/index.js +1 -0
- package/dist/elements/ListHeader/DrawerTitleActions/index.js.map +1 -1
- package/dist/elements/ListHeader/index.css +4 -5
- package/dist/elements/Loading/index.d.ts.map +1 -1
- package/dist/elements/Loading/index.js +1 -0
- package/dist/elements/Loading/index.js.map +1 -1
- package/dist/elements/MiniCarousel/index.d.ts +1 -1
- package/dist/elements/MiniCarousel/index.d.ts.map +1 -1
- package/dist/elements/MiniCarousel/index.js +6 -6
- package/dist/elements/MiniCarousel/index.js.map +1 -1
- package/dist/elements/Nav/NavSidebarToggle/index.d.ts.map +1 -1
- package/dist/elements/Nav/NavSidebarToggle/index.js +29 -24
- package/dist/elements/Nav/NavSidebarToggle/index.js.map +1 -1
- package/dist/elements/Nav/NavWrapper/index.d.ts +1 -0
- package/dist/elements/Nav/NavWrapper/index.d.ts.map +1 -1
- package/dist/elements/Nav/NavWrapper/index.js +15 -13
- package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
- package/dist/elements/Nav/SidebarTabs/index.client.js +1 -1
- package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -1
- package/dist/elements/Nav/SidebarTabs/index.css +3 -3
- package/dist/elements/Nav/context.d.ts +1 -1
- package/dist/elements/Nav/context.d.ts.map +1 -1
- package/dist/elements/Nav/context.js +32 -11
- package/dist/elements/Nav/context.js.map +1 -1
- package/dist/elements/Nav/index.client.d.ts.map +1 -1
- package/dist/elements/Nav/index.client.js +1 -10
- package/dist/elements/Nav/index.client.js.map +1 -1
- package/dist/elements/Nav/index.css +45 -34
- package/dist/elements/Nav/index.d.ts +4 -0
- package/dist/elements/Nav/index.d.ts.map +1 -1
- package/dist/elements/Nav/index.js +15 -1
- package/dist/elements/Nav/index.js.map +1 -1
- package/dist/elements/NavGroup/index.css +32 -19
- package/dist/elements/NavGroup/index.d.ts.map +1 -1
- package/dist/elements/NavGroup/index.js +31 -28
- package/dist/elements/NavGroup/index.js.map +1 -1
- package/dist/elements/NoListResults/index.css +2 -3
- package/dist/elements/PageControls/index.css +4 -1
- package/dist/elements/PageControls/index.d.ts +1 -0
- package/dist/elements/PageControls/index.d.ts.map +1 -1
- package/dist/elements/PageControls/index.js +41 -21
- package/dist/elements/PageControls/index.js.map +1 -1
- package/dist/elements/Pagination/ClickableArrow/index.d.ts.map +1 -1
- package/dist/elements/Pagination/ClickableArrow/index.js +45 -11
- package/dist/elements/Pagination/ClickableArrow/index.js.map +1 -1
- package/dist/elements/Pagination/SimplePagination/index.css +0 -1
- package/dist/elements/Pagination/index.css +0 -2
- package/dist/elements/Pagination/index.d.ts.map +1 -1
- package/dist/elements/Pagination/index.js +32 -18
- package/dist/elements/Pagination/index.js.map +1 -1
- package/dist/elements/PerPage/index.css +0 -1
- package/dist/elements/PerPage/index.js +3 -1
- package/dist/elements/PerPage/index.js.map +1 -1
- package/dist/elements/Pill/index.css +0 -1
- package/dist/elements/Popup/PopupButtonList/SubmenuTrigger/index.css +53 -0
- package/dist/elements/Popup/PopupButtonList/SubmenuTrigger/index.d.ts +13 -0
- package/dist/elements/Popup/PopupButtonList/SubmenuTrigger/index.d.ts.map +1 -0
- package/dist/elements/Popup/PopupButtonList/SubmenuTrigger/index.js +44 -0
- package/dist/elements/Popup/PopupButtonList/SubmenuTrigger/index.js.map +1 -0
- package/dist/elements/Popup/PopupButtonList/index.css +30 -8
- package/dist/elements/Popup/PopupButtonList/index.d.ts +1 -0
- package/dist/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
- package/dist/elements/Popup/PopupButtonList/index.js +1 -0
- package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
- package/dist/elements/Popup/PopupGroupLabel/index.css +0 -1
- package/dist/elements/Popup/SubmenuScope.d.ts +21 -0
- package/dist/elements/Popup/SubmenuScope.d.ts.map +1 -0
- package/dist/elements/Popup/SubmenuScope.js +89 -0
- package/dist/elements/Popup/SubmenuScope.js.map +1 -0
- package/dist/elements/Popup/index.css +5 -0
- package/dist/elements/Popup/index.d.ts +3 -0
- package/dist/elements/Popup/index.d.ts.map +1 -1
- package/dist/elements/Popup/index.js +75 -10
- package/dist/elements/Popup/index.js.map +1 -1
- package/dist/elements/Popup/useSubmenuPointerIntent.d.ts +13 -0
- package/dist/elements/Popup/useSubmenuPointerIntent.d.ts.map +1 -0
- package/dist/elements/Popup/useSubmenuPointerIntent.js +42 -0
- package/dist/elements/Popup/useSubmenuPointerIntent.js.map +1 -0
- package/dist/elements/PreviewSizes/index.d.ts +1 -1
- package/dist/elements/PreviewSizes/index.d.ts.map +1 -1
- package/dist/elements/PreviewSizes/index.js +9 -9
- package/dist/elements/PreviewSizes/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/Heading/index.css +0 -1
- package/dist/elements/ReactSelect/MultiValueLabel/index.css +0 -1
- package/dist/elements/ReactSelect/ValueContainer/index.d.ts.map +1 -1
- package/dist/elements/ReactSelect/ValueContainer/index.js +23 -1
- package/dist/elements/ReactSelect/ValueContainer/index.js.map +1 -1
- package/dist/elements/ReactSelect/index.css +5 -3
- package/dist/elements/ReactSelect/types.d.ts +3 -0
- package/dist/elements/ReactSelect/types.d.ts.map +1 -1
- package/dist/elements/ReactSelect/types.js.map +1 -1
- package/dist/elements/RenderTitle/index.css +9 -7
- package/dist/elements/Search/ListSearchFilter/index.d.ts +2 -1
- package/dist/elements/Search/ListSearchFilter/index.d.ts.map +1 -1
- package/dist/elements/Search/ListSearchFilter/index.js +33 -17
- package/dist/elements/Search/ListSearchFilter/index.js.map +1 -1
- package/dist/elements/Search/SearchInput/index.css +0 -1
- package/dist/elements/Search/SearchInput/index.d.ts +1 -0
- package/dist/elements/Search/SearchInput/index.d.ts.map +1 -1
- package/dist/elements/Search/SearchInput/index.js +23 -20
- package/dist/elements/Search/SearchInput/index.js.map +1 -1
- package/dist/elements/SegmentedControl/index.css +9 -0
- package/dist/elements/SegmentedControl/index.d.ts +20 -0
- package/dist/elements/SegmentedControl/index.d.ts.map +1 -0
- package/dist/elements/SegmentedControl/index.js +162 -0
- package/dist/elements/SegmentedControl/index.js.map +1 -0
- package/dist/elements/SelectRow/index.d.ts +1 -0
- package/dist/elements/SelectRow/index.d.ts.map +1 -1
- package/dist/elements/SelectRow/index.js +35 -27
- package/dist/elements/SelectRow/index.js.map +1 -1
- package/dist/elements/SidebarRow/index.css +43 -2
- package/dist/elements/SidebarToggle/index.css +3 -1
- package/dist/elements/SkipToContent/index.css +21 -0
- package/dist/elements/SkipToContent/index.d.ts +4 -0
- package/dist/elements/SkipToContent/index.d.ts.map +1 -0
- package/dist/elements/SkipToContent/index.js +63 -0
- package/dist/elements/SkipToContent/index.js.map +1 -0
- package/dist/elements/SortColumn/index.css +1 -2
- package/dist/elements/SortColumn/index.d.ts.map +1 -1
- package/dist/elements/SortColumn/index.js +7 -3
- package/dist/elements/SortColumn/index.js.map +1 -1
- package/dist/elements/Spinner/index.css +0 -2
- package/dist/elements/Status/index.css +3 -4
- package/dist/elements/StepNav/index.css +15 -9
- package/dist/elements/Switch/index.css +0 -1
- package/dist/elements/Switch/index.d.ts +1 -0
- package/dist/elements/Switch/index.d.ts.map +1 -1
- package/dist/elements/Switch/index.js +18 -16
- package/dist/elements/Switch/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Checkbox/index.css +0 -1
- package/dist/elements/Table/DefaultCell/fields/Code/index.css +0 -1
- package/dist/elements/Table/DefaultCell/fields/File/index.css +18 -13
- package/dist/elements/Table/DefaultCell/fields/File/index.js +1 -1
- package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.css +26 -7
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js +42 -8
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/JSON/index.css +0 -1
- package/dist/elements/Table/DefaultCell/fields/Status/index.css +0 -1
- package/dist/elements/Table/GridNavigation/useGridNavigation.d.ts +8 -0
- package/dist/elements/Table/GridNavigation/useGridNavigation.d.ts.map +1 -0
- package/dist/elements/Table/GridNavigation/useGridNavigation.js +397 -0
- package/dist/elements/Table/GridNavigation/useGridNavigation.js.map +1 -0
- package/dist/elements/Table/TableIdentity.d.ts +3 -0
- package/dist/elements/Table/TableIdentity.d.ts.map +1 -1
- package/dist/elements/Table/TableIdentity.js +13 -8
- package/dist/elements/Table/TableIdentity.js.map +1 -1
- package/dist/elements/Table/index.css +23 -3
- package/dist/elements/Table/index.d.ts +2 -0
- package/dist/elements/Table/index.d.ts.map +1 -1
- package/dist/elements/Table/index.js +77 -83
- package/dist/elements/Table/index.js.map +1 -1
- package/dist/elements/TableSection/index.css +4 -5
- package/dist/elements/Tabs/index.css +1 -2
- package/dist/elements/Tabs/index.d.ts +4 -0
- package/dist/elements/Tabs/index.d.ts.map +1 -1
- package/dist/elements/Tabs/index.js +30 -1
- package/dist/elements/Tabs/index.js.map +1 -1
- package/dist/elements/ThumbnailCard/index.css +0 -1
- package/dist/elements/TimezonePicker/index.css +0 -3
- package/dist/elements/Tooltip/index.css +2 -2
- package/dist/elements/Tooltip/index.d.ts +5 -5
- package/dist/elements/Tooltip/index.d.ts.map +1 -1
- package/dist/elements/Tooltip/index.js +20 -13
- package/dist/elements/Tooltip/index.js.map +1 -1
- package/dist/elements/Upload/index.css +2 -3
- package/dist/elements/Upload/index.d.ts +1 -1
- package/dist/elements/Upload/index.d.ts.map +1 -1
- package/dist/elements/Upload/index.js +6 -6
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/UserMenu/LanguageMenu/index.d.ts.map +1 -1
- package/dist/elements/UserMenu/LanguageMenu/index.js +12 -30
- package/dist/elements/UserMenu/LanguageMenu/index.js.map +1 -1
- package/dist/elements/UserMenu/SettingsMenu/index.d.ts.map +1 -1
- package/dist/elements/UserMenu/SettingsMenu/index.js +12 -30
- package/dist/elements/UserMenu/SettingsMenu/index.js.map +1 -1
- package/dist/elements/UserMenu/ThemeMenu/index.d.ts.map +1 -1
- package/dist/elements/UserMenu/ThemeMenu/index.js +12 -30
- package/dist/elements/UserMenu/ThemeMenu/index.js.map +1 -1
- package/dist/elements/UserMenu/index.css +29 -15
- package/dist/elements/UserMenu/index.d.ts +1 -0
- package/dist/elements/UserMenu/index.d.ts.map +1 -1
- package/dist/elements/UserMenu/index.js +60 -46
- package/dist/elements/UserMenu/index.js.map +1 -1
- package/dist/exports/client/CodeEditor-UKD3EPUY.js +14 -0
- package/dist/exports/client/CodeEditor-UKD3EPUY.js.map +7 -0
- package/dist/exports/client/DatePicker-BBZ3XRWP.js +14 -0
- package/dist/exports/client/DatePicker-BBZ3XRWP.js.map +7 -0
- package/dist/exports/client/chunk-6XCSN54Q.js +27 -0
- package/dist/exports/client/chunk-6XCSN54Q.js.map +7 -0
- package/dist/exports/client/chunk-AVJIZPR3.js +14 -0
- package/dist/exports/client/chunk-AVJIZPR3.js.map +7 -0
- package/dist/exports/client/chunk-USFUVW7C.js +29 -0
- package/dist/exports/client/chunk-USFUVW7C.js.map +7 -0
- package/dist/exports/client/index.d.ts +22 -2
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +100 -1
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/rsc/index.d.ts +3 -0
- package/dist/exports/rsc/index.d.ts.map +1 -1
- package/dist/exports/rsc/index.js +3 -0
- package/dist/exports/rsc/index.js.map +1 -1
- package/dist/exports/shared/index.js +1 -1
- package/dist/exports/shared/index.js.map +3 -3
- package/dist/fields/Array/index.css +4 -0
- package/dist/fields/Array/index.d.ts.map +1 -1
- package/dist/fields/Array/index.js +14 -5
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Blocks/SectionTitle/index.css +3 -5
- package/dist/fields/Blocks/index.css +2 -2
- package/dist/fields/Blocks/index.d.ts.map +1 -1
- package/dist/fields/Blocks/index.js +20 -11
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Checkbox/Input.d.ts +2 -2
- package/dist/fields/Checkbox/Input.d.ts.map +1 -1
- package/dist/fields/Checkbox/Input.js +134 -152
- package/dist/fields/Checkbox/Input.js.map +1 -1
- package/dist/fields/Checkbox/index.css +189 -155
- package/dist/fields/Code/index.d.ts.map +1 -1
- package/dist/fields/Code/index.js +20 -3
- package/dist/fields/Code/index.js.map +1 -1
- package/dist/fields/Collapsible/index.d.ts.map +1 -1
- package/dist/fields/Collapsible/index.js +1 -0
- package/dist/fields/Collapsible/index.js.map +1 -1
- package/dist/fields/ConfirmPassword/index.d.ts.map +1 -1
- package/dist/fields/ConfirmPassword/index.js +45 -31
- package/dist/fields/ConfirmPassword/index.js.map +1 -1
- package/dist/fields/Email/index.d.ts.map +1 -1
- package/dist/fields/Email/index.js +11 -0
- package/dist/fields/Email/index.js.map +1 -1
- package/dist/fields/FieldError/index.css +12 -0
- package/dist/fields/FieldError/index.d.ts.map +1 -1
- package/dist/fields/FieldError/index.js +4 -1
- package/dist/fields/FieldError/index.js.map +1 -1
- package/dist/fields/FieldLabel/index.css +5 -4
- package/dist/fields/FieldLabel/index.d.ts.map +1 -1
- package/dist/fields/FieldLabel/index.js +28 -10
- package/dist/fields/FieldLabel/index.js.map +1 -1
- package/dist/fields/Group/index.css +2 -3
- package/dist/fields/JSON/index.d.ts.map +1 -1
- package/dist/fields/JSON/index.js +15 -1
- package/dist/fields/JSON/index.js.map +1 -1
- package/dist/fields/Join/index.css +3 -4
- package/dist/fields/Password/input.d.ts.map +1 -1
- package/dist/fields/Password/input.js +73 -95
- package/dist/fields/Password/input.js.map +1 -1
- package/dist/fields/Point/index.d.ts.map +1 -1
- package/dist/fields/Point/index.js +15 -2
- package/dist/fields/Point/index.js.map +1 -1
- package/dist/fields/RadioGroup/Radio/index.css +0 -1
- package/dist/fields/Relationship/Input.d.ts.map +1 -1
- package/dist/fields/Relationship/Input.js +25 -17
- package/dist/fields/Relationship/Input.js.map +1 -1
- package/dist/fields/Relationship/optionsReducer.d.ts.map +1 -1
- package/dist/fields/Relationship/optionsReducer.js +2 -0
- package/dist/fields/Relationship/optionsReducer.js.map +1 -1
- package/dist/fields/Relationship/types.d.ts +8 -0
- package/dist/fields/Relationship/types.d.ts.map +1 -1
- package/dist/fields/Relationship/types.js.map +1 -1
- package/dist/fields/Select/Input.d.ts.map +1 -1
- package/dist/fields/Select/Input.js +70 -51
- package/dist/fields/Select/Input.js.map +1 -1
- package/dist/fields/Select/index.css +7 -0
- package/dist/fields/Tabs/Tab/index.d.ts +2 -0
- package/dist/fields/Tabs/Tab/index.d.ts.map +1 -1
- package/dist/fields/Tabs/Tab/index.js +15 -9
- package/dist/fields/Tabs/Tab/index.js.map +1 -1
- package/dist/fields/Tabs/index.d.ts.map +1 -1
- package/dist/fields/Tabs/index.js +179 -116
- package/dist/fields/Tabs/index.js.map +1 -1
- package/dist/fields/Text/Input.d.ts.map +1 -1
- package/dist/fields/Text/Input.js +53 -34
- package/dist/fields/Text/Input.js.map +1 -1
- package/dist/fields/Upload/HasMany/index.js +1 -1
- package/dist/fields/Upload/HasMany/index.js.map +1 -1
- package/dist/fields/Upload/HasOne/index.js +1 -1
- package/dist/fields/Upload/HasOne/index.js.map +1 -1
- package/dist/fields/Upload/Input.d.ts.map +1 -1
- package/dist/fields/Upload/Input.js +13 -4
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/fields/shared/useRowFocus.d.ts +5 -0
- package/dist/fields/shared/useRowFocus.d.ts.map +1 -0
- package/dist/fields/shared/useRowFocus.js +50 -0
- package/dist/fields/shared/useRowFocus.js.map +1 -0
- package/dist/forms/NullifyField/index.d.ts +10 -0
- package/dist/forms/NullifyField/index.d.ts.map +1 -1
- package/dist/forms/NullifyField/index.js +14 -4
- package/dist/forms/NullifyField/index.js.map +1 -1
- package/dist/forms/RenderFields/index.css +3 -6
- package/dist/forms/fieldSchemasToFormState/renderField.js +2 -2
- package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
- package/dist/graphics/Logo/index.d.ts.map +1 -1
- package/dist/graphics/Logo/index.js +2 -0
- package/dist/graphics/Logo/index.js.map +1 -1
- package/dist/icons/ImageStack/index.d.ts +3 -0
- package/dist/icons/ImageStack/index.d.ts.map +1 -0
- package/dist/icons/ImageStack/index.js +17 -0
- package/dist/icons/ImageStack/index.js.map +1 -0
- package/dist/icons/Table/index.css +1 -0
- package/dist/icons/Table/index.d.ts +7 -0
- package/dist/icons/Table/index.d.ts.map +1 -0
- package/dist/icons/Table/index.js +25 -0
- package/dist/icons/Table/index.js.map +1 -0
- package/dist/layouts/Root/DocumentRoot.d.ts +24 -0
- package/dist/layouts/Root/DocumentRoot.d.ts.map +1 -0
- package/dist/layouts/Root/DocumentRoot.js +40 -0
- package/dist/layouts/Root/DocumentRoot.js.map +1 -0
- package/dist/layouts/Root/ResolveThemeOnClient.d.ts +12 -0
- package/dist/layouts/Root/ResolveThemeOnClient.d.ts.map +1 -0
- package/dist/layouts/Root/ResolveThemeOnClient.js +35 -0
- package/dist/layouts/Root/ResolveThemeOnClient.js.map +1 -0
- package/dist/layouts/Root/RootProviders.d.ts +11 -0
- package/dist/layouts/Root/RootProviders.d.ts.map +1 -0
- package/dist/layouts/Root/RootProviders.js +164 -0
- package/dist/layouts/Root/RootProviders.js.map +1 -0
- package/dist/layouts/Root/getRootLayoutData.d.ts +29 -0
- package/dist/layouts/Root/getRootLayoutData.d.ts.map +1 -0
- package/dist/layouts/Root/getRootLayoutData.js +72 -0
- package/dist/layouts/Root/getRootLayoutData.js.map +1 -0
- package/dist/layouts/Root/index.d.ts.map +1 -1
- package/dist/layouts/Root/index.js +48 -103
- package/dist/layouts/Root/index.js.map +1 -1
- package/dist/providers/ListQuery/getSearchWithListQuery.d.ts +7 -0
- package/dist/providers/ListQuery/getSearchWithListQuery.d.ts.map +1 -0
- package/dist/providers/ListQuery/getSearchWithListQuery.js +22 -0
- package/dist/providers/ListQuery/getSearchWithListQuery.js.map +1 -0
- package/dist/providers/ListQuery/index.d.ts.map +1 -1
- package/dist/providers/ListQuery/index.js +16 -12
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/providers/ListQuery/types.d.ts +4 -0
- package/dist/providers/ListQuery/types.d.ts.map +1 -1
- package/dist/providers/ListQuery/types.js.map +1 -1
- package/dist/providers/Preferences/index.d.ts +7 -1
- package/dist/providers/Preferences/index.d.ts.map +1 -1
- package/dist/providers/Preferences/index.js +62 -20
- package/dist/providers/Preferences/index.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/index.d.ts +1 -0
- package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/index.js +2 -0
- package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts +2 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.js +12 -28
- package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
- package/dist/providers/ToastContainer/index.css +6 -7
- package/dist/providers/ToastContainer/index.d.ts.map +1 -1
- package/dist/providers/ToastContainer/index.js +15 -4
- package/dist/providers/ToastContainer/index.js.map +1 -1
- package/dist/providers/Translation/index.d.ts.map +1 -1
- package/dist/providers/Translation/index.js +11 -1
- package/dist/providers/Translation/index.js.map +1 -1
- package/dist/styles.css +163 -58
- package/dist/templates/Default/Wrapper/index.css +20 -5
- package/dist/templates/Default/Wrapper/index.d.ts.map +1 -1
- package/dist/templates/Default/Wrapper/index.js +4 -3
- package/dist/templates/Default/Wrapper/index.js.map +1 -1
- package/dist/templates/Default/index.d.ts.map +1 -1
- package/dist/templates/Default/index.js +19 -14
- package/dist/templates/Default/index.js.map +1 -1
- package/dist/utilities/filterLLMInstructionsMenuItems.d.ts +9 -0
- package/dist/utilities/filterLLMInstructionsMenuItems.d.ts.map +1 -0
- package/dist/utilities/filterLLMInstructionsMenuItems.js +37 -0
- package/dist/utilities/filterLLMInstructionsMenuItems.js.map +1 -0
- package/dist/utilities/filterOutUploadFields.js +1 -1
- package/dist/utilities/filterOutUploadFields.js.map +1 -1
- package/dist/utilities/generateFieldID.d.ts +1 -1
- package/dist/utilities/generateFieldID.d.ts.map +1 -1
- package/dist/utilities/generateFieldID.js.map +1 -1
- package/dist/utilities/getClientConfig.d.ts +5 -1
- package/dist/utilities/getClientConfig.d.ts.map +1 -1
- package/dist/utilities/getClientConfig.js +2 -1
- package/dist/utilities/getClientConfig.js.map +1 -1
- package/dist/utilities/getRequestTheme.d.ts +8 -1
- package/dist/utilities/getRequestTheme.d.ts.map +1 -1
- package/dist/utilities/getRequestTheme.js +16 -4
- package/dist/utilities/getRequestTheme.js.map +1 -1
- package/dist/utilities/hierarchyCollectionRestrictions.d.ts +15 -0
- package/dist/utilities/hierarchyCollectionRestrictions.d.ts.map +1 -0
- package/dist/utilities/hierarchyCollectionRestrictions.js +17 -0
- package/dist/utilities/hierarchyCollectionRestrictions.js.map +1 -0
- package/dist/utilities/renderTable.d.ts +2 -1
- package/dist/utilities/renderTable.d.ts.map +1 -1
- package/dist/utilities/renderTable.js +4 -0
- package/dist/utilities/renderTable.js.map +1 -1
- package/dist/views/API/index.client.d.ts.map +1 -1
- package/dist/views/API/index.client.js +19 -1
- package/dist/views/API/index.client.js.map +1 -1
- package/dist/views/API/index.css +1 -2
- package/dist/views/CreateFirstUser/index.css +0 -2
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +75 -116
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetContent/index.d.ts +7 -0
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetContent/index.d.ts.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetContent/index.js +65 -0
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetContent/index.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.d.ts +2 -1
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js +8 -2
- 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 +127 -91
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.css +9 -6
- package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js +3 -0
- package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/utils/sensors.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/utils/sensors.js +2 -38
- package/dist/views/Dashboard/Default/ModularDashboard/utils/sensors.js.map +1 -1
- package/dist/views/Document/index.js +1 -1
- package/dist/views/Document/index.js.map +1 -1
- package/dist/views/Document/renderDocumentSlots.d.ts +1 -1
- package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
- package/dist/views/Document/renderDocumentSlots.js +10 -3
- package/dist/views/Document/renderDocumentSlots.js.map +1 -1
- package/dist/views/Edit/Auth/index.css +4 -5
- package/dist/views/ForgotPassword/index.d.ts.map +1 -1
- package/dist/views/ForgotPassword/index.js +1 -3
- package/dist/views/ForgotPassword/index.js.map +1 -1
- package/dist/views/HierarchyList/DocumentListSelection/index.d.ts.map +1 -1
- package/dist/views/HierarchyList/DocumentListSelection/index.js +104 -105
- package/dist/views/HierarchyList/DocumentListSelection/index.js.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.d.ts.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js +79 -63
- package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.d.ts.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.js +35 -87
- package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.js.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.css +0 -101
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.d.ts +2 -0
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.d.ts.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.js +45 -32
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.js.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/index.css +51 -41
- package/dist/views/HierarchyList/HierarchyTable/index.d.ts +3 -1
- package/dist/views/HierarchyList/HierarchyTable/index.d.ts.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/index.js +80 -6
- package/dist/views/HierarchyList/HierarchyTable/index.js.map +1 -1
- package/dist/views/HierarchyList/getHierarchyListURL.d.ts +7 -0
- package/dist/views/HierarchyList/getHierarchyListURL.d.ts.map +1 -0
- package/dist/views/HierarchyList/getHierarchyListURL.js +22 -0
- package/dist/views/HierarchyList/getHierarchyListURL.js.map +1 -0
- package/dist/views/HierarchyList/index.d.ts.map +1 -1
- package/dist/views/HierarchyList/index.js +32 -11
- package/dist/views/HierarchyList/index.js.map +1 -1
- package/dist/views/List/DocumentGrid/index.d.ts +17 -0
- package/dist/views/List/DocumentGrid/index.d.ts.map +1 -0
- package/dist/views/List/DocumentGrid/index.js +152 -0
- package/dist/views/List/DocumentGrid/index.js.map +1 -0
- package/dist/views/List/GroupedDocumentGrid/index.css +17 -0
- package/dist/views/List/GroupedDocumentGrid/index.d.ts +14 -0
- package/dist/views/List/GroupedDocumentGrid/index.d.ts.map +1 -0
- package/dist/views/List/GroupedDocumentGrid/index.js +99 -0
- package/dist/views/List/GroupedDocumentGrid/index.js.map +1 -0
- package/dist/views/List/ListHeader/index.css +4 -5
- package/dist/views/List/ListHeader/index.d.ts +1 -0
- package/dist/views/List/ListHeader/index.d.ts.map +1 -1
- package/dist/views/List/ListHeader/index.js +5 -2
- package/dist/views/List/ListHeader/index.js.map +1 -1
- package/dist/views/List/getDocumentListItemURL.d.ts +9 -0
- package/dist/views/List/getDocumentListItemURL.d.ts.map +1 -0
- package/dist/views/List/getDocumentListItemURL.js +23 -0
- package/dist/views/List/getDocumentListItemURL.js.map +1 -0
- package/dist/views/List/handleGroupBy.d.ts +6 -2
- package/dist/views/List/handleGroupBy.d.ts.map +1 -1
- package/dist/views/List/handleGroupBy.js +13 -3
- package/dist/views/List/handleGroupBy.js.map +1 -1
- package/dist/views/List/index.client.d.ts.map +1 -1
- package/dist/views/List/index.client.js +207 -129
- package/dist/views/List/index.client.js.map +1 -1
- package/dist/views/List/index.css +1 -2
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +57 -3
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/List/renderListViewSlots.d.ts +3 -2
- package/dist/views/List/renderListViewSlots.d.ts.map +1 -1
- package/dist/views/List/renderListViewSlots.js +12 -4
- package/dist/views/List/renderListViewSlots.js.map +1 -1
- package/dist/views/List/resolveDocumentListItemURL.d.ts +11 -0
- package/dist/views/List/resolveDocumentListItemURL.d.ts.map +1 -0
- package/dist/views/List/resolveDocumentListItemURL.js +30 -0
- package/dist/views/List/resolveDocumentListItemURL.js.map +1 -0
- package/dist/views/NotFound/index.css +0 -2
- package/dist/views/ResetPassword/index.d.ts.map +1 -1
- package/dist/views/ResetPassword/index.js +1 -3
- package/dist/views/ResetPassword/index.js.map +1 -1
- package/dist/views/Root/getRouteData.d.ts +1 -8
- package/dist/views/Root/getRouteData.d.ts.map +1 -1
- package/dist/views/Root/getRouteData.js +3 -12
- package/dist/views/Root/getRouteData.js.map +1 -1
- package/dist/views/Unauthorized/index.css +0 -2
- package/dist/views/Unauthorized/index.d.ts.map +1 -1
- package/dist/views/Unauthorized/index.js +2 -1
- package/dist/views/Unauthorized/index.js.map +1 -1
- package/dist/views/Version/Default/index.css +7 -11
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.css +0 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.css +0 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.css +3 -4
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.css +0 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +3 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.css +0 -1
- package/dist/views/Versions/VersionPillLabel/index.css +1 -2
- package/dist/views/Versions/index.client.d.ts.map +1 -1
- package/dist/views/Versions/index.client.js +3 -1
- package/dist/views/Versions/index.client.js.map +1 -1
- package/dist/views/Versions/index.css +1 -1
- package/dist/widgets/CollectionCards/index.client.d.ts.map +1 -1
- package/dist/widgets/CollectionCards/index.client.js +8 -6
- package/dist/widgets/CollectionCards/index.client.js.map +1 -1
- package/dist/widgets/CollectionCards/index.css +30 -38
- package/dist/widgets/CollectionCards/index.d.ts.map +1 -1
- package/dist/widgets/CollectionCards/index.js +7 -5
- package/dist/widgets/CollectionCards/index.js.map +1 -1
- package/dist/widgets/CollectionQuery/index.css +4 -6
- package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts +1 -1
- package/dist/widgets/RecentlyViewed/CollectionsField/index.js +1 -1
- package/dist/widgets/RecentlyViewed/CollectionsField/index.js.map +1 -1
- package/dist/widgets/UploadDropzone/CollectionsField/index.d.ts +4 -0
- package/dist/widgets/UploadDropzone/CollectionsField/index.d.ts.map +1 -0
- package/dist/widgets/UploadDropzone/CollectionsField/index.js +29 -0
- package/dist/widgets/UploadDropzone/CollectionsField/index.js.map +1 -0
- package/dist/widgets/UploadDropzone/index.client.d.ts +10 -0
- package/dist/widgets/UploadDropzone/index.client.d.ts.map +1 -0
- package/dist/widgets/UploadDropzone/index.client.js +78 -0
- package/dist/widgets/UploadDropzone/index.client.js.map +1 -0
- package/dist/widgets/UploadDropzone/index.css +80 -0
- package/dist/widgets/UploadDropzone/index.d.ts +12 -0
- package/dist/widgets/UploadDropzone/index.d.ts.map +1 -0
- package/dist/widgets/UploadDropzone/index.js +58 -0
- package/dist/widgets/UploadDropzone/index.js.map +1 -0
- package/dist/widgets/Welcome/getWelcomeDisplay.d.ts +7 -0
- package/dist/widgets/Welcome/getWelcomeDisplay.d.ts.map +1 -0
- package/dist/widgets/Welcome/getWelcomeDisplay.js +21 -0
- package/dist/widgets/Welcome/getWelcomeDisplay.js.map +1 -0
- package/dist/widgets/Welcome/index.css +25 -0
- package/dist/widgets/Welcome/index.d.ts +5 -0
- package/dist/widgets/Welcome/index.d.ts.map +1 -0
- package/dist/widgets/Welcome/index.js +25 -0
- package/dist/widgets/Welcome/index.js.map +1 -0
- package/dist/widgets/WidgetCard/index.css +4 -8
- package/package.json +35 -10
- package/dist/providers/Root/index.d.ts +0 -25
- package/dist/providers/Root/index.d.ts.map +0 -1
- package/dist/providers/Root/index.js +0 -156
- package/dist/providers/Root/index.js.map +0 -1
- package/dist/utilities/dateLocales.d.ts +0 -30
- package/dist/utilities/dateLocales.d.ts.map +0 -1
- package/dist/utilities/dateLocales.js +0 -57
- package/dist/utilities/dateLocales.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["getTranslation","combineWhereConstraints","DEFAULT_HIERARCHY_TREE_LIMIT","formatAdminURL","qs","React","useCallback","useEffect","useImperativeHandle","useRef","useState","useEffectEvent","useAuth","useConfig","useTranslation","isSuperset","Spinner","Column","baseClass","HierarchyColumnBrowser","ancestorsWithSelections","baseFilter","disabledIds","filterByCollection","hierarchyCollectionSlug","initialExpandedPath","isLoadingPath","onCreateNew","onSelect","parentFieldName","ref","selectedIds","useAsTitle","i18n","permissions","config","routes","api","serverURL","getEntityConfig","collectionConfig","collectionSlug","hierarchyConfig","hierarchy","undefined","treeLimit","admin","collectionLabel","labels","singular","canCreate","Boolean","collections","create","columns","setColumns","expandedPath","setExpandedPath","containerRef","lastColumnRef","hasLoadedRef","fetchItems","page","parentId","parentWhere","exists","equals","where","collectionSpecific","typeFieldName","fieldName","length","allPossibleTypes","Object","keys","relatedCollections","and","or","in","not_in","whereWithBaseFilter","queryString","stringify","limit","sort","addQueryPrefix","url","apiRoute","path","response","fetch","credentials","ok","Error","data","json","allItems","docs","map","doc","id","allowedCollections","hasChildren","title","String","items","filter","item","hasNextPage","totalDocs","refreshColumn","columnIndex","findIndex","col","prev","updated","isLoading","loadColumns","parentIds","push","results","Promise","all","index","parentTitle","columnsWithTitles","prevColumn","parentItem","find","current","scrollIntoView","behavior","inline","handleExpand","itemId","column","i","newExpandedPath","slice","newColumns","targetIndex","handleLoadMore","nextPage","newItems","getPathToColumn","_jsxs","className","isLastColumn","expandedId","pathToColumn","_jsx","disabled","onExpand","onLoadMore"],"sources":["../../../../src/elements/Hierarchy/ColumnBrowser/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n combineWhereConstraints,\n DEFAULT_HIERARCHY_TREE_LIMIT,\n formatAdminURL,\n} from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react'\n\nimport type {\n ColumnItemData,\n ColumnState,\n HierarchyColumnBrowserProps,\n HierarchyColumnBrowserRef,\n} from './types.js'\n\nimport { useEffectEvent } from '../../../hooks/useEffectEvent.js'\nimport { useAuth } from '../../../providers/Auth/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { isSuperset } from '../../../utilities/isSuperset.js'\nimport { Spinner } from '../../Spinner/index.js'\nimport { Column } from './Column/index.js'\nimport './index.css'\n\nconst baseClass = 'hierarchy-column-browser'\n\nexport const HierarchyColumnBrowser = function HierarchyColumnBrowser({\n ancestorsWithSelections,\n baseFilter,\n disabledIds,\n filterByCollection,\n hierarchyCollectionSlug,\n initialExpandedPath,\n isLoadingPath,\n onCreateNew,\n onSelect,\n parentFieldName,\n ref,\n selectedIds,\n useAsTitle = 'id',\n}: { ref?: React.RefObject<HierarchyColumnBrowserRef | null> } & HierarchyColumnBrowserProps) {\n const { i18n } = useTranslation()\n const { permissions } = useAuth()\n const {\n config: {\n routes: { api },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: hierarchyCollectionSlug })\n const hierarchyConfig =\n collectionConfig?.hierarchy && typeof collectionConfig.hierarchy === 'object'\n ? collectionConfig.hierarchy\n : undefined\n const treeLimit = hierarchyConfig?.admin?.treeLimit ?? DEFAULT_HIERARCHY_TREE_LIMIT\n\n const collectionLabel = collectionConfig\n ? getTranslation(collectionConfig.labels?.singular || hierarchyCollectionSlug, i18n)\n : hierarchyCollectionSlug\n const canCreate = Boolean(permissions?.collections?.[hierarchyCollectionSlug]?.create)\n\n const [columns, setColumns] = useState<ColumnState[]>([])\n const [expandedPath, setExpandedPath] = useState<(number | string)[]>([])\n const containerRef = useRef<HTMLDivElement>(null)\n const lastColumnRef = useRef<HTMLDivElement>(null)\n const hasLoadedRef = useRef(false)\n\n const fetchItems = useCallback(\n async ({\n page,\n parentId,\n }: {\n page: number\n parentId: null | number | string\n }): Promise<{\n hasNextPage: boolean\n items: ColumnItemData[]\n totalDocs: number\n }> => {\n const parentWhere =\n parentId === null\n ? { [parentFieldName]: { exists: false } }\n : { [parentFieldName]: { equals: parentId } }\n\n // Build the final where clause, adding collectionSpecific filtering if configured\n let where: Record<string, unknown> = parentWhere\n\n // Filter by collection type if collectionSpecific is configured and filterByCollection is defined\n // - undefined: no filtering, show all folders\n // - [] empty: show all folders (no constraints)\n // - ['posts', ...]: show folders that allow ANY of these OR unrestricted\n // Note: Ideally we'd enforce ALL (superset) but hasMany enum fields in PG\n // do not support \"contains all\" queries easily\n if (hierarchyConfig?.collectionSpecific && filterByCollection !== undefined) {\n const typeFieldName = hierarchyConfig.collectionSpecific.fieldName\n\n if (filterByCollection.length > 0) {\n // Get all possible type field values from relatedCollections\n // This is used to detect \"unrestricted\" folders (empty allowedTypes array)\n const allPossibleTypes = Object.keys(hierarchyConfig.relatedCollections || {})\n\n where = {\n and: [\n parentWhere,\n {\n or: [\n // items that allow ANY of the selected collections\n { [typeFieldName]: { in: filterByCollection } },\n // OR items that are unrestricted (no type field exists)\n { [typeFieldName]: { exists: false } },\n // OR items with empty allowedTypes array (unrestricted)\n // Using not_in with all possible values matches empty arrays in both MongoDB and Postgres\n ...(allPossibleTypes.length > 0\n ? [{ [typeFieldName]: { not_in: allPossibleTypes } }]\n : []),\n ],\n },\n ],\n }\n } else {\n // Empty array: show all items of this parent\n where = parentWhere\n }\n }\n\n // Combine with baseFilter if provided\n const whereWithBaseFilter = combineWhereConstraints([where, baseFilter])\n\n const queryString = qs.stringify(\n { limit: treeLimit, page, sort: useAsTitle, where: whereWithBaseFilter },\n { addQueryPrefix: true },\n )\n\n const url = formatAdminURL({\n apiRoute: api,\n path: `/${hierarchyCollectionSlug}${queryString}`,\n serverURL,\n })\n\n const response = await fetch(url, {\n credentials: 'include',\n })\n\n if (!response.ok) {\n throw new Error('Failed to fetch items')\n }\n\n const data = await response.json()\n\n const typeFieldName = hierarchyConfig?.collectionSpecific\n ? hierarchyConfig.collectionSpecific.fieldName\n : undefined\n\n const allItems: ColumnItemData[] = (data.docs || []).map(\n (doc: { id: number | string } & Record<string, unknown>) => ({\n id: doc.id,\n allowedCollections: typeFieldName\n ? (doc[typeFieldName] as string[] | undefined)\n : undefined,\n hasChildren: true, // Always allow expansion - empty children handled gracefully\n title: String(doc[useAsTitle] || doc.id),\n }),\n )\n\n // Client-side filter: only show items that are a superset of required collections\n // Server query uses ANY (due to PG limitations), but we want ALL (superset)\n const items =\n filterByCollection && filterByCollection.length > 0\n ? allItems.filter((item) => isSuperset(item.allowedCollections, filterByCollection))\n : allItems\n\n return {\n hasNextPage: data.hasNextPage || false,\n items,\n totalDocs: data.totalDocs || 0,\n }\n },\n [\n api,\n baseFilter,\n filterByCollection,\n hierarchyConfig,\n parentFieldName,\n serverURL,\n hierarchyCollectionSlug,\n treeLimit,\n useAsTitle,\n ],\n )\n\n const refreshColumn = useCallback(\n async (parentId: null | number | string) => {\n const columnIndex = columns.findIndex((col) => col.parentId === parentId)\n if (columnIndex === -1) {\n return\n }\n\n setColumns((prev) => {\n const updated = [...prev]\n updated[columnIndex] = { ...updated[columnIndex], isLoading: true }\n return updated\n })\n\n try {\n const { hasNextPage, items, totalDocs } = await fetchItems({ page: 1, parentId })\n\n setColumns((prev) => {\n const updated = [...prev]\n if (updated[columnIndex]) {\n updated[columnIndex] = {\n ...updated[columnIndex],\n hasNextPage,\n isLoading: false,\n items,\n page: 1,\n totalDocs,\n }\n }\n return updated\n })\n } catch {\n setColumns((prev) => {\n const updated = [...prev]\n if (updated[columnIndex]) {\n updated[columnIndex] = { ...updated[columnIndex], isLoading: false }\n }\n return updated\n })\n }\n },\n [columns, fetchItems],\n )\n\n useImperativeHandle(ref, () => ({ refreshColumn }), [refreshColumn])\n\n const loadColumns = useEffectEvent(async (path?: (number | string)[]) => {\n // Build list of parentIds to fetch: [null, ...path]\n const parentIds: (null | number | string)[] = [null]\n if (path?.length) {\n parentIds.push(...path)\n }\n\n // Set initial loading state for all columns\n setColumns(\n parentIds.map((parentId) => ({\n hasNextPage: false,\n isLoading: true,\n items: [],\n page: 1,\n parentId,\n totalDocs: 0,\n })),\n )\n\n // Set expanded path to match (excluding null/root)\n if (path?.length) {\n setExpandedPath(path)\n }\n\n // Fetch all columns in parallel\n const results = await Promise.all(\n parentIds.map(async (parentId, index) => {\n try {\n const { hasNextPage, items, totalDocs } = await fetchItems({ page: 1, parentId })\n let parentTitle: string | undefined\n if (index > 0 && parentId !== null) {\n // Will be filled in after all fetches complete\n }\n return {\n hasNextPage,\n isLoading: false,\n items,\n page: 1,\n parentId,\n parentTitle,\n totalDocs,\n }\n } catch {\n return {\n hasNextPage: false,\n isLoading: false,\n items: [],\n page: 1,\n parentId,\n parentTitle: undefined,\n totalDocs: 0,\n }\n }\n }),\n )\n\n // Fill in parent titles from previous columns\n const columnsWithTitles = results.map((col, index) => {\n if (index === 0 || col.parentId === null) {\n return col\n }\n const prevColumn = results[index - 1]\n const parentItem = prevColumn?.items.find((item) => item.id === col.parentId)\n return {\n ...col,\n parentTitle: parentItem?.title || String(col.parentId),\n }\n })\n\n setColumns(columnsWithTitles)\n })\n\n // Load columns on mount - wait for path loading to complete\n useEffect(() => {\n if (isLoadingPath || hasLoadedRef.current) {\n return\n }\n hasLoadedRef.current = true\n void loadColumns(initialExpandedPath)\n }, [initialExpandedPath, isLoadingPath])\n\n // Auto-scroll to the last column when columns change\n useEffect(() => {\n if (lastColumnRef.current && columns.length > 1) {\n lastColumnRef.current.scrollIntoView({ behavior: 'instant', inline: 'start' })\n }\n }, [columns.length])\n\n const handleExpand = useCallback(\n async ({ columnIndex, itemId }: { columnIndex: number; itemId: number | string }) => {\n const column = columns[columnIndex]\n if (!column) {\n return\n }\n\n const item = column.items.find((i) => i.id === itemId)\n if (!item) {\n return\n }\n\n // Update expanded path - keep path up to this column, add new item\n const newExpandedPath = [...expandedPath.slice(0, columnIndex), itemId]\n setExpandedPath(newExpandedPath)\n\n // Remove columns to the right and add new loading column\n const newColumns = columns.slice(0, columnIndex + 1)\n newColumns.push({\n hasNextPage: false,\n isLoading: true,\n items: [],\n page: 1,\n parentId: itemId,\n parentTitle: item.title,\n totalDocs: 0,\n })\n\n setColumns(newColumns)\n\n // Fetch children\n try {\n const { hasNextPage, items, totalDocs } = await fetchItems({ page: 1, parentId: itemId })\n\n setColumns((prev) => {\n const updated = [...prev]\n const targetIndex = columnIndex + 1\n\n if (updated[targetIndex]?.parentId === itemId) {\n updated[targetIndex] = {\n hasNextPage,\n isLoading: false,\n items,\n page: 1,\n parentId: itemId,\n parentTitle: item.title,\n totalDocs,\n }\n }\n\n return updated\n })\n } catch {\n setColumns((prev) => {\n const updated = [...prev]\n const targetIndex = columnIndex + 1\n\n if (updated[targetIndex]?.parentId === itemId) {\n updated[targetIndex] = {\n hasNextPage: false,\n isLoading: false,\n items: [],\n page: 1,\n parentId: itemId,\n parentTitle: item.title,\n totalDocs: 0,\n }\n }\n\n return updated\n })\n }\n },\n [columns, expandedPath, fetchItems],\n )\n\n const handleLoadMore = useCallback(\n async ({ columnIndex }: { columnIndex: number }) => {\n const column = columns[columnIndex]\n if (!column || column.isLoading || !column.hasNextPage) {\n return\n }\n\n const nextPage = column.page + 1\n\n // Set loading state\n setColumns((prev) => {\n const updated = [...prev]\n updated[columnIndex] = { ...updated[columnIndex], isLoading: true }\n return updated\n })\n\n try {\n const { hasNextPage, items: newItems } = await fetchItems({\n page: nextPage,\n parentId: column.parentId,\n })\n\n setColumns((prev) => {\n const updated = [...prev]\n\n if (updated[columnIndex]) {\n updated[columnIndex] = {\n ...updated[columnIndex],\n hasNextPage,\n isLoading: false,\n items: [...updated[columnIndex].items, ...newItems],\n page: nextPage,\n }\n }\n\n return updated\n })\n } catch {\n setColumns((prev) => {\n const updated = [...prev]\n\n if (updated[columnIndex]) {\n updated[columnIndex] = { ...updated[columnIndex], isLoading: false }\n }\n\n return updated\n })\n }\n },\n [columns, fetchItems],\n )\n\n // Build path for each column based on parent info\n const getPathToColumn = (columnIndex: number) => {\n const path: Array<{ id: number | string; title: string }> = []\n\n for (let i = 1; i <= columnIndex; i++) {\n const col = columns[i]\n if (col?.parentId !== null && col?.parentId !== undefined) {\n path.push({\n id: col.parentId,\n title: col.parentTitle || String(col.parentId),\n })\n }\n }\n\n return path\n }\n\n return (\n <div className={baseClass} ref={containerRef}>\n {columns.map((column, index) => {\n const isLastColumn = index === columns.length - 1 && !isLoadingPath\n const expandedId = expandedPath[index] ?? null\n const pathToColumn = getPathToColumn(index)\n\n return (\n <div\n className={`${baseClass}__column-wrapper`}\n key={`${column.parentId ?? 'root'}-${index}`}\n ref={isLastColumn ? lastColumnRef : undefined}\n >\n <Column\n ancestorsWithSelections={ancestorsWithSelections}\n canCreate={canCreate && Boolean(onCreateNew)}\n collectionLabel={collectionLabel}\n disabled={isLoadingPath}\n disabledIds={disabledIds}\n expandedId={expandedId}\n filterByCollection={filterByCollection}\n hasNextPage={column.hasNextPage}\n isLoading={column.isLoading}\n items={column.items}\n onCreateNew={onCreateNew || (() => {})}\n onExpand={({ id }) => handleExpand({ columnIndex: index, itemId: id })}\n onLoadMore={() => handleLoadMore({ columnIndex: index })}\n onSelect={onSelect}\n parentId={column.parentId}\n parentTitle={column.parentTitle}\n pathToColumn={pathToColumn}\n selectedIds={selectedIds}\n totalDocs={column.totalDocs}\n />\n </div>\n )\n })}\n {isLoadingPath && (\n <div className={`${baseClass}__column-wrapper ${baseClass}__column-wrapper--loading`}>\n <Spinner />\n </div>\n )}\n </div>\n )\n}\n\nexport type {\n ColumnItemData,\n HierarchyColumnBrowserProps,\n HierarchyColumnBrowserRef,\n PathSegment,\n} from './types.js'\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["getTranslation","combineWhereConstraints","DEFAULT_HIERARCHY_TREE_LIMIT","formatAdminURL","qs","React","useCallback","useEffect","useImperativeHandle","useRef","useState","useEffectEvent","useAuth","useConfig","useTranslation","Spinner","Column","baseClass","HierarchyColumnBrowser","ancestorsWithSelections","baseFilter","disabledIds","filterByCollection","hierarchyCollectionSlug","initialExpandedPath","isLoadingPath","onCreateNew","onSelect","parentFieldName","ref","selectedIds","useAsTitle","i18n","permissions","config","routes","api","serverURL","getEntityConfig","collectionConfig","collectionSlug","hierarchyConfig","hierarchy","undefined","treeLimit","admin","collectionLabel","labels","singular","canCreate","Boolean","collections","create","columns","setColumns","expandedPath","setExpandedPath","containerRef","lastColumnRef","hasLoadedRef","fetchItems","page","parentId","parentWhere","exists","equals","whereWithBaseFilter","queryString","stringify","limit","sort","where","addQueryPrefix","url","apiRoute","path","response","fetch","credentials","ok","Error","data","json","typeFieldName","collectionSpecific","fieldName","items","docs","map","doc","id","allowedCollections","hasChildren","title","String","hasNextPage","totalDocs","refreshColumn","columnIndex","findIndex","col","prev","updated","isLoading","loadColumns","parentIds","length","push","results","Promise","all","index","parentTitle","columnsWithTitles","prevColumn","parentItem","find","item","current","scrollIntoView","behavior","inline","handleExpand","itemId","column","i","newExpandedPath","slice","newColumns","targetIndex","handleLoadMore","nextPage","newItems","getPathToColumn","_jsxs","className","isLastColumn","expandedId","pathToColumn","_jsx","disabled","onExpand","onLoadMore"],"sources":["../../../../src/elements/Hierarchy/ColumnBrowser/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n combineWhereConstraints,\n DEFAULT_HIERARCHY_TREE_LIMIT,\n formatAdminURL,\n} from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react'\n\nimport type {\n ColumnItemData,\n ColumnState,\n HierarchyColumnBrowserProps,\n HierarchyColumnBrowserRef,\n} from './types.js'\n\nimport { useEffectEvent } from '../../../hooks/useEffectEvent.js'\nimport { useAuth } from '../../../providers/Auth/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Spinner } from '../../Spinner/index.js'\nimport { Column } from './Column/index.js'\nimport './index.css'\n\nconst baseClass = 'hierarchy-column-browser'\n\nexport const HierarchyColumnBrowser = function HierarchyColumnBrowser({\n ancestorsWithSelections,\n baseFilter,\n disabledIds,\n filterByCollection,\n hierarchyCollectionSlug,\n initialExpandedPath,\n isLoadingPath,\n onCreateNew,\n onSelect,\n parentFieldName,\n ref,\n selectedIds,\n useAsTitle = 'id',\n}: { ref?: React.RefObject<HierarchyColumnBrowserRef | null> } & HierarchyColumnBrowserProps) {\n const { i18n } = useTranslation()\n const { permissions } = useAuth()\n const {\n config: {\n routes: { api },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: hierarchyCollectionSlug })\n const hierarchyConfig =\n collectionConfig?.hierarchy && typeof collectionConfig.hierarchy === 'object'\n ? collectionConfig.hierarchy\n : undefined\n const treeLimit = hierarchyConfig?.admin?.treeLimit ?? DEFAULT_HIERARCHY_TREE_LIMIT\n\n const collectionLabel = collectionConfig\n ? getTranslation(collectionConfig.labels?.singular || hierarchyCollectionSlug, i18n)\n : hierarchyCollectionSlug\n const canCreate = Boolean(permissions?.collections?.[hierarchyCollectionSlug]?.create)\n\n const [columns, setColumns] = useState<ColumnState[]>([])\n const [expandedPath, setExpandedPath] = useState<(number | string)[]>([])\n const containerRef = useRef<HTMLDivElement>(null)\n const lastColumnRef = useRef<HTMLDivElement>(null)\n const hasLoadedRef = useRef(false)\n\n const fetchItems = useCallback(\n async ({\n page,\n parentId,\n }: {\n page: number\n parentId: null | number | string\n }): Promise<{\n hasNextPage: boolean\n items: ColumnItemData[]\n totalDocs: number\n }> => {\n const parentWhere =\n parentId === null\n ? { [parentFieldName]: { exists: false } }\n : { [parentFieldName]: { equals: parentId } }\n\n // Combine with baseFilter if provided\n const whereWithBaseFilter = combineWhereConstraints([parentWhere, baseFilter])\n\n const queryString = qs.stringify(\n { limit: treeLimit, page, sort: useAsTitle, where: whereWithBaseFilter },\n { addQueryPrefix: true },\n )\n\n const url = formatAdminURL({\n apiRoute: api,\n path: `/${hierarchyCollectionSlug}${queryString}`,\n serverURL,\n })\n\n const response = await fetch(url, {\n credentials: 'include',\n })\n\n if (!response.ok) {\n throw new Error('Failed to fetch items')\n }\n\n const data = await response.json()\n\n const typeFieldName = hierarchyConfig?.collectionSpecific\n ? hierarchyConfig.collectionSpecific.fieldName\n : undefined\n\n const items: ColumnItemData[] = (data.docs || []).map(\n (doc: { id: number | string } & Record<string, unknown>) => ({\n id: doc.id,\n allowedCollections: typeFieldName\n ? (doc[typeFieldName] as string[] | undefined)\n : undefined,\n hasChildren: true, // Always allow expansion - empty children handled gracefully\n title: String(doc[useAsTitle] || doc.id),\n }),\n )\n\n return {\n hasNextPage: data.hasNextPage || false,\n items,\n totalDocs: data.totalDocs || 0,\n }\n },\n [\n api,\n baseFilter,\n hierarchyConfig,\n parentFieldName,\n serverURL,\n hierarchyCollectionSlug,\n treeLimit,\n useAsTitle,\n ],\n )\n\n const refreshColumn = useCallback(\n async (parentId: null | number | string) => {\n const columnIndex = columns.findIndex((col) => col.parentId === parentId)\n if (columnIndex === -1) {\n return\n }\n\n setColumns((prev) => {\n const updated = [...prev]\n updated[columnIndex] = { ...updated[columnIndex], isLoading: true }\n return updated\n })\n\n try {\n const { hasNextPage, items, totalDocs } = await fetchItems({ page: 1, parentId })\n\n setColumns((prev) => {\n const updated = [...prev]\n if (updated[columnIndex]) {\n updated[columnIndex] = {\n ...updated[columnIndex],\n hasNextPage,\n isLoading: false,\n items,\n page: 1,\n totalDocs,\n }\n }\n return updated\n })\n } catch {\n setColumns((prev) => {\n const updated = [...prev]\n if (updated[columnIndex]) {\n updated[columnIndex] = { ...updated[columnIndex], isLoading: false }\n }\n return updated\n })\n }\n },\n [columns, fetchItems],\n )\n\n useImperativeHandle(ref, () => ({ refreshColumn }), [refreshColumn])\n\n const loadColumns = useEffectEvent(async (path?: (number | string)[]) => {\n // Build list of parentIds to fetch: [null, ...path]\n const parentIds: (null | number | string)[] = [null]\n if (path?.length) {\n parentIds.push(...path)\n }\n\n // Set initial loading state for all columns\n setColumns(\n parentIds.map((parentId) => ({\n hasNextPage: false,\n isLoading: true,\n items: [],\n page: 1,\n parentId,\n totalDocs: 0,\n })),\n )\n\n // Set expanded path to match (excluding null/root)\n if (path?.length) {\n setExpandedPath(path)\n }\n\n // Fetch all columns in parallel\n const results = await Promise.all(\n parentIds.map(async (parentId, index) => {\n try {\n const { hasNextPage, items, totalDocs } = await fetchItems({ page: 1, parentId })\n let parentTitle: string | undefined\n if (index > 0 && parentId !== null) {\n // Will be filled in after all fetches complete\n }\n return {\n hasNextPage,\n isLoading: false,\n items,\n page: 1,\n parentId,\n parentTitle,\n totalDocs,\n }\n } catch {\n return {\n hasNextPage: false,\n isLoading: false,\n items: [],\n page: 1,\n parentId,\n parentTitle: undefined,\n totalDocs: 0,\n }\n }\n }),\n )\n\n // Fill in parent titles from previous columns\n const columnsWithTitles = results.map((col, index) => {\n if (index === 0 || col.parentId === null) {\n return col\n }\n const prevColumn = results[index - 1]\n const parentItem = prevColumn?.items.find((item) => item.id === col.parentId)\n return {\n ...col,\n parentTitle: parentItem?.title || String(col.parentId),\n }\n })\n\n setColumns(columnsWithTitles)\n })\n\n // Load columns on mount - wait for path loading to complete\n useEffect(() => {\n if (isLoadingPath || hasLoadedRef.current) {\n return\n }\n hasLoadedRef.current = true\n void loadColumns(initialExpandedPath)\n }, [initialExpandedPath, isLoadingPath])\n\n // Auto-scroll to the last column when columns change\n useEffect(() => {\n if (lastColumnRef.current && columns.length > 1) {\n lastColumnRef.current.scrollIntoView({ behavior: 'instant', inline: 'start' })\n }\n }, [columns.length])\n\n const handleExpand = useCallback(\n async ({ columnIndex, itemId }: { columnIndex: number; itemId: number | string }) => {\n const column = columns[columnIndex]\n if (!column) {\n return\n }\n\n const item = column.items.find((i) => i.id === itemId)\n if (!item) {\n return\n }\n\n // Update expanded path - keep path up to this column, add new item\n const newExpandedPath = [...expandedPath.slice(0, columnIndex), itemId]\n setExpandedPath(newExpandedPath)\n\n // Remove columns to the right and add new loading column\n if (columns[columnIndex + 1]?.parentId === itemId) {\n setColumns(columns.slice(0, columnIndex + 2))\n return\n }\n\n const newColumns = columns.slice(0, columnIndex + 1)\n newColumns.push({\n hasNextPage: false,\n isLoading: true,\n items: [],\n page: 1,\n parentId: itemId,\n parentTitle: item.title,\n totalDocs: 0,\n })\n\n setColumns(newColumns)\n\n // Fetch children\n try {\n const { hasNextPage, items, totalDocs } = await fetchItems({ page: 1, parentId: itemId })\n\n setColumns((prev) => {\n const updated = [...prev]\n const targetIndex = columnIndex + 1\n\n if (updated[targetIndex]?.parentId === itemId) {\n updated[targetIndex] = {\n hasNextPage,\n isLoading: false,\n items,\n page: 1,\n parentId: itemId,\n parentTitle: item.title,\n totalDocs,\n }\n }\n\n return updated\n })\n } catch {\n setColumns((prev) => {\n const updated = [...prev]\n const targetIndex = columnIndex + 1\n\n if (updated[targetIndex]?.parentId === itemId) {\n updated[targetIndex] = {\n hasNextPage: false,\n isLoading: false,\n items: [],\n page: 1,\n parentId: itemId,\n parentTitle: item.title,\n totalDocs: 0,\n }\n }\n\n return updated\n })\n }\n },\n [columns, expandedPath, fetchItems],\n )\n\n const handleLoadMore = useCallback(\n async ({ columnIndex }: { columnIndex: number }) => {\n const column = columns[columnIndex]\n if (!column || column.isLoading || !column.hasNextPage) {\n return\n }\n\n const nextPage = column.page + 1\n\n // Set loading state\n setColumns((prev) => {\n const updated = [...prev]\n updated[columnIndex] = { ...updated[columnIndex], isLoading: true }\n return updated\n })\n\n try {\n const { hasNextPage, items: newItems } = await fetchItems({\n page: nextPage,\n parentId: column.parentId,\n })\n\n setColumns((prev) => {\n const updated = [...prev]\n\n if (updated[columnIndex]) {\n updated[columnIndex] = {\n ...updated[columnIndex],\n hasNextPage,\n isLoading: false,\n items: [...updated[columnIndex].items, ...newItems],\n page: nextPage,\n }\n }\n\n return updated\n })\n } catch {\n setColumns((prev) => {\n const updated = [...prev]\n\n if (updated[columnIndex]) {\n updated[columnIndex] = { ...updated[columnIndex], isLoading: false }\n }\n\n return updated\n })\n }\n },\n [columns, fetchItems],\n )\n\n // Build path for each column based on parent info\n const getPathToColumn = (columnIndex: number) => {\n const path: Array<{ id: number | string; title: string }> = []\n\n for (let i = 1; i <= columnIndex; i++) {\n const col = columns[i]\n if (col?.parentId !== null && col?.parentId !== undefined) {\n path.push({\n id: col.parentId,\n title: col.parentTitle || String(col.parentId),\n })\n }\n }\n\n return path\n }\n\n return (\n <div className={baseClass} ref={containerRef}>\n {columns.map((column, index) => {\n const isLastColumn = index === columns.length - 1 && !isLoadingPath\n const expandedId = expandedPath[index] ?? null\n const pathToColumn = getPathToColumn(index)\n\n return (\n <div\n className={`${baseClass}__column-wrapper`}\n key={`${column.parentId ?? 'root'}-${index}`}\n ref={isLastColumn ? lastColumnRef : undefined}\n >\n <Column\n ancestorsWithSelections={ancestorsWithSelections}\n canCreate={canCreate && Boolean(onCreateNew)}\n collectionLabel={collectionLabel}\n disabled={isLoadingPath}\n disabledIds={disabledIds}\n expandedId={expandedId}\n filterByCollection={filterByCollection}\n hasNextPage={column.hasNextPage}\n isLoading={column.isLoading}\n items={column.items}\n onCreateNew={onCreateNew || (() => {})}\n onExpand={({ id }) => handleExpand({ columnIndex: index, itemId: id })}\n onLoadMore={() => handleLoadMore({ columnIndex: index })}\n onSelect={onSelect}\n parentId={column.parentId}\n parentTitle={column.parentTitle}\n pathToColumn={pathToColumn}\n selectedIds={selectedIds}\n totalDocs={column.totalDocs}\n />\n </div>\n )\n })}\n {isLoadingPath && (\n <div className={`${baseClass}__column-wrapper ${baseClass}__column-wrapper--loading`}>\n <Spinner />\n </div>\n )}\n </div>\n )\n}\n\nexport type {\n ColumnItemData,\n HierarchyColumnBrowserProps,\n HierarchyColumnBrowserRef,\n PathSegment,\n} from './types.js'\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/DocHeaderButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoD,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/DocHeaderButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAcxE,OAAO,aAAa,CAAA;AAIpB,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;IAClB,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CA+JtE,CAAA"}
|
|
@@ -7,6 +7,7 @@ import { useForm, useFormFields } from '../../../forms/Form/context.js';
|
|
|
7
7
|
import { useConfig } from '../../../providers/Config/index.js';
|
|
8
8
|
import { useDocumentInfo } from '../../../providers/DocumentInfo/index.js';
|
|
9
9
|
import { useTranslation } from '../../../providers/Translation/index.js';
|
|
10
|
+
import { getEffectiveHierarchyCollections, getHierarchyCollectionRestrictions } from '../../../utilities/hierarchyCollectionRestrictions.js';
|
|
10
11
|
import { Button } from '../../Button/index.js';
|
|
11
12
|
import { useHierarchyModal } from '../Modal/useHierarchyModal.js';
|
|
12
13
|
import './index.css';
|
|
@@ -27,6 +28,7 @@ export const HierarchyButtonClient = ({
|
|
|
27
28
|
getEntityConfig
|
|
28
29
|
} = useConfig();
|
|
29
30
|
const {
|
|
31
|
+
id: documentId,
|
|
30
32
|
collectionSlug: documentCollectionSlug
|
|
31
33
|
} = useDocumentInfo();
|
|
32
34
|
const {
|
|
@@ -43,14 +45,40 @@ export const HierarchyButtonClient = ({
|
|
|
43
45
|
collectionSlug: hierarchyCollectionSlug
|
|
44
46
|
});
|
|
45
47
|
const useAsTitle = collectionConfig?.admin?.useAsTitle || 'name';
|
|
48
|
+
const {
|
|
49
|
+
relatedCollectionSlugs,
|
|
50
|
+
typeFieldName
|
|
51
|
+
} = useMemo(() => getHierarchyCollectionRestrictions({
|
|
52
|
+
collectionConfig
|
|
53
|
+
}), [collectionConfig]);
|
|
54
|
+
const allowedCollections = useFormFields(([fields_0]) => {
|
|
55
|
+
const value = typeFieldName ? fields_0?.[typeFieldName]?.value : undefined;
|
|
56
|
+
return Array.isArray(value) ? value : undefined;
|
|
57
|
+
});
|
|
46
58
|
const isHierarchyCollection = documentCollectionSlug === hierarchyCollectionSlug;
|
|
47
59
|
// When in hierarchy collection, let the modal use allowedCollections from context
|
|
48
60
|
// When in other collections, filter by that collection's slug
|
|
49
61
|
// Memoize to prevent new array references on every render
|
|
50
|
-
const filterByCollection = useMemo(() =>
|
|
62
|
+
const filterByCollection = useMemo(() => {
|
|
63
|
+
if (!documentCollectionSlug) {
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
if (!isHierarchyCollection) {
|
|
67
|
+
return [documentCollectionSlug];
|
|
68
|
+
}
|
|
69
|
+
if (!typeFieldName) {
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
return getEffectiveHierarchyCollections({
|
|
73
|
+
allowedCollections,
|
|
74
|
+
relatedCollectionSlugs
|
|
75
|
+
});
|
|
76
|
+
}, [allowedCollections, documentCollectionSlug, isHierarchyCollection, relatedCollectionSlugs, typeFieldName]);
|
|
77
|
+
const disabledIds = useMemo(() => isHierarchyCollection && documentId !== undefined ? new Set([documentId]) : undefined, [documentId, isHierarchyCollection]);
|
|
51
78
|
const [HierarchyModal,, {
|
|
52
79
|
openModal
|
|
53
80
|
}] = useHierarchyModal({
|
|
81
|
+
disabledIds,
|
|
54
82
|
filterByCollection,
|
|
55
83
|
hierarchyCollectionSlug,
|
|
56
84
|
Icon
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["formatAdminURL","React","useCallback","useEffect","useMemo","useState","useForm","useFormFields","useConfig","useDocumentInfo","useTranslation","Button","useHierarchyModal","baseClass","HierarchyButtonClient","fieldName","hasMany","hierarchyCollectionSlug","Icon","readOnly","readOnlyFromProps","SmallIcon","t","config","getEntityConfig","collectionSlug","documentCollectionSlug","disabled","formDisabled","setModified","dispatchField","_","dispatch","currentFieldValue","fields","currentId","value","displayName","setDisplayName","isLoading","setIsLoading","collectionConfig","useAsTitle","admin","isHierarchyCollection","filterByCollection","undefined","HierarchyModal","openModal","fetchItemName","response","fetch","apiRoute","routes","api","path","serverURL","credentials","ok","itemData","json","title","name","id","String","handleModalSave","closeModal","selections","ids","Array","from","keys","newValue","type","handleClick","label","_jsxs","_Fragment","_jsx","buttonStyle","className","filter","Boolean","join","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 '../Modal/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 { useHierarchyModal } from '../Modal/useHierarchyModal.js'\nimport './index.css'\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 SmallIcon?: React.ReactNode\n}\n\nexport const HierarchyButtonClient: React.FC<HierarchyButtonClientProps> = ({\n fieldName,\n hasMany = false,\n hierarchyCollectionSlug,\n Icon,\n readOnly: readOnlyFromProps,\n SmallIcon,\n}) => {\n const { t } = useTranslation()\n const { config, getEntityConfig } = useConfig()\n const { collectionSlug: documentCollectionSlug } = useDocumentInfo()\n const { disabled: formDisabled, setModified } = useForm()\n const readOnly = readOnlyFromProps || formDisabled\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 modal 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 [HierarchyModal, , { openModal }] = useHierarchyModal({\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 handleModalSave = useCallback(\n ({\n closeModal,\n selections,\n }: {\n closeModal: () => 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 closeModal()\n },\n [currentFieldValue?.value, dispatchField, fieldName, hasMany, setModified],\n )\n\n const handleClick = useCallback(() => {\n if (!readOnly) {\n openModal()\n }\n }, [openModal, readOnly])\n\n const label = isLoading ? `${t('general:loading')}...` : displayName\n\n return (\n <>\n <Button\n buttonStyle=\"secondary\"\n className={[baseClass, readOnly && `${baseClass}--read-only`].filter(Boolean).join(' ')}\n disabled={readOnly}\n icon={SmallIcon ?? Icon}\n iconPosition=\"left\"\n margin={false}\n onClick={handleClick}\n >\n {label}\n </Button>\n <HierarchyModal\n hasMany={hasMany}\n initialSelections={currentId ? [currentId] : undefined}\n onSave={handleModalSave}\n />\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["formatAdminURL","React","useCallback","useEffect","useMemo","useState","useForm","useFormFields","useConfig","useDocumentInfo","useTranslation","getEffectiveHierarchyCollections","getHierarchyCollectionRestrictions","Button","useHierarchyModal","baseClass","HierarchyButtonClient","fieldName","hasMany","hierarchyCollectionSlug","Icon","readOnly","readOnlyFromProps","SmallIcon","t","config","getEntityConfig","id","documentId","collectionSlug","documentCollectionSlug","disabled","formDisabled","setModified","dispatchField","_","dispatch","currentFieldValue","fields","currentId","value","displayName","setDisplayName","isLoading","setIsLoading","collectionConfig","useAsTitle","admin","relatedCollectionSlugs","typeFieldName","allowedCollections","undefined","Array","isArray","isHierarchyCollection","filterByCollection","disabledIds","Set","HierarchyModal","openModal","fetchItemName","response","fetch","apiRoute","routes","api","path","serverURL","credentials","ok","itemData","json","title","name","String","handleModalSave","closeModal","selections","ids","from","keys","newValue","type","handleClick","label","_jsxs","_Fragment","_jsx","buttonStyle","className","filter","Boolean","join","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 '../Modal/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 {\n getEffectiveHierarchyCollections,\n getHierarchyCollectionRestrictions,\n} from '../../../utilities/hierarchyCollectionRestrictions.js'\nimport { Button } from '../../Button/index.js'\nimport { useHierarchyModal } from '../Modal/useHierarchyModal.js'\nimport './index.css'\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 SmallIcon?: React.ReactNode\n}\n\nexport const HierarchyButtonClient: React.FC<HierarchyButtonClientProps> = ({\n fieldName,\n hasMany = false,\n hierarchyCollectionSlug,\n Icon,\n readOnly: readOnlyFromProps,\n SmallIcon,\n}) => {\n const { t } = useTranslation()\n const { config, getEntityConfig } = useConfig()\n const { id: documentId, collectionSlug: documentCollectionSlug } = useDocumentInfo()\n const { disabled: formDisabled, setModified } = useForm()\n const readOnly = readOnlyFromProps || formDisabled\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 const { relatedCollectionSlugs, typeFieldName } = useMemo(\n () => getHierarchyCollectionRestrictions({ collectionConfig }),\n [collectionConfig],\n )\n\n const allowedCollections = useFormFields(([fields]) => {\n const value = typeFieldName ? fields?.[typeFieldName]?.value : undefined\n\n return Array.isArray(value) ? (value as string[]) : undefined\n })\n\n const isHierarchyCollection = documentCollectionSlug === hierarchyCollectionSlug\n\n // When in hierarchy collection, let the modal 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 if (!documentCollectionSlug) {\n return undefined\n }\n if (!isHierarchyCollection) {\n return [documentCollectionSlug]\n }\n if (!typeFieldName) {\n return undefined\n }\n return getEffectiveHierarchyCollections({ allowedCollections, relatedCollectionSlugs })\n }, [\n allowedCollections,\n documentCollectionSlug,\n isHierarchyCollection,\n relatedCollectionSlugs,\n typeFieldName,\n ])\n\n const disabledIds = useMemo(\n () => (isHierarchyCollection && documentId !== undefined ? new Set([documentId]) : undefined),\n [documentId, isHierarchyCollection],\n )\n\n const [HierarchyModal, , { openModal }] = useHierarchyModal({\n disabledIds,\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 handleModalSave = useCallback(\n ({\n closeModal,\n selections,\n }: {\n closeModal: () => 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 closeModal()\n },\n [currentFieldValue?.value, dispatchField, fieldName, hasMany, setModified],\n )\n\n const handleClick = useCallback(() => {\n if (!readOnly) {\n openModal()\n }\n }, [openModal, readOnly])\n\n const label = isLoading ? `${t('general:loading')}...` : displayName\n\n return (\n <>\n <Button\n buttonStyle=\"secondary\"\n className={[baseClass, readOnly && `${baseClass}--read-only`].filter(Boolean).join(' ')}\n disabled={readOnly}\n icon={SmallIcon ?? Icon}\n iconPosition=\"left\"\n margin={false}\n onClick={handleClick}\n >\n {label}\n </Button>\n <HierarchyModal\n hasMany={hasMany}\n initialSelections={currentId ? [currentId] : undefined}\n onSave={handleModalSave}\n />\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { FilterOptionsResult, SanitizedHierarchyConfig, Where } from 'payload';
|
|
2
|
+
export declare const getHierarchyFilterOptions: ({ baseFilter, documentCollectionSlug, filterOptions, hierarchyConfig, hierarchySlug, }: {
|
|
3
|
+
baseFilter?: null | Where;
|
|
4
|
+
documentCollectionSlug?: string;
|
|
5
|
+
filterOptions?: FilterOptionsResult;
|
|
6
|
+
hierarchyConfig?: Pick<SanitizedHierarchyConfig, 'collectionSpecific' | 'relatedCollections'>;
|
|
7
|
+
hierarchySlug: string;
|
|
8
|
+
}) => FilterOptionsResult | undefined;
|
|
9
|
+
//# sourceMappingURL=getHierarchyFilterOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getHierarchyFilterOptions.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/Field/getHierarchyFilterOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAInF,eAAO,MAAM,yBAAyB,2FAMnC;IACD,UAAU,CAAC,EAAE,IAAI,GAAG,KAAK,CAAA;IACzB,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,eAAe,CAAC,EAAE,IAAI,CAAC,wBAAwB,EAAE,oBAAoB,GAAG,oBAAoB,CAAC,CAAA;IAC7F,aAAa,EAAE,MAAM,CAAA;CACtB,KAAG,mBAAmB,GAAG,SAkCzB,CAAA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { combineWhereConstraints } from 'payload/shared';
|
|
2
|
+
export const getHierarchyFilterOptions = ({
|
|
3
|
+
baseFilter,
|
|
4
|
+
documentCollectionSlug,
|
|
5
|
+
filterOptions,
|
|
6
|
+
hierarchyConfig,
|
|
7
|
+
hierarchySlug
|
|
8
|
+
}) => {
|
|
9
|
+
const existingFilter = filterOptions?.[hierarchySlug];
|
|
10
|
+
if (existingFilter === false) {
|
|
11
|
+
return filterOptions;
|
|
12
|
+
}
|
|
13
|
+
let collectionFilter;
|
|
14
|
+
if (documentCollectionSlug && hierarchyConfig?.collectionSpecific) {
|
|
15
|
+
const typeFieldName = hierarchyConfig.collectionSpecific.fieldName;
|
|
16
|
+
const configuredTypes = Object.keys(hierarchyConfig.relatedCollections);
|
|
17
|
+
collectionFilter = {
|
|
18
|
+
or: [{
|
|
19
|
+
[typeFieldName]: {
|
|
20
|
+
in: [documentCollectionSlug]
|
|
21
|
+
}
|
|
22
|
+
}, {
|
|
23
|
+
[typeFieldName]: {
|
|
24
|
+
exists: false
|
|
25
|
+
}
|
|
26
|
+
}, ...(configuredTypes.length > 0 ? [{
|
|
27
|
+
[typeFieldName]: {
|
|
28
|
+
not_in: configuredTypes
|
|
29
|
+
}
|
|
30
|
+
}] : [])]
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
if (!baseFilter && !collectionFilter) {
|
|
34
|
+
return filterOptions;
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
...filterOptions,
|
|
38
|
+
[hierarchySlug]: combineWhereConstraints([typeof existingFilter === 'object' ? existingFilter : undefined, baseFilter ?? undefined, collectionFilter])
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=getHierarchyFilterOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getHierarchyFilterOptions.js","names":["combineWhereConstraints","getHierarchyFilterOptions","baseFilter","documentCollectionSlug","filterOptions","hierarchyConfig","hierarchySlug","existingFilter","collectionFilter","collectionSpecific","typeFieldName","fieldName","configuredTypes","Object","keys","relatedCollections","or","in","exists","length","not_in","undefined"],"sources":["../../../../src/elements/Hierarchy/Field/getHierarchyFilterOptions.ts"],"sourcesContent":["import type { FilterOptionsResult, SanitizedHierarchyConfig, Where } from 'payload'\n\nimport { combineWhereConstraints } from 'payload/shared'\n\nexport const getHierarchyFilterOptions = ({\n baseFilter,\n documentCollectionSlug,\n filterOptions,\n hierarchyConfig,\n hierarchySlug,\n}: {\n baseFilter?: null | Where\n documentCollectionSlug?: string\n filterOptions?: FilterOptionsResult\n hierarchyConfig?: Pick<SanitizedHierarchyConfig, 'collectionSpecific' | 'relatedCollections'>\n hierarchySlug: string\n}): FilterOptionsResult | undefined => {\n const existingFilter = filterOptions?.[hierarchySlug]\n\n if (existingFilter === false) {\n return filterOptions\n }\n\n let collectionFilter: undefined | Where\n\n if (documentCollectionSlug && hierarchyConfig?.collectionSpecific) {\n const typeFieldName = hierarchyConfig.collectionSpecific.fieldName\n const configuredTypes = Object.keys(hierarchyConfig.relatedCollections)\n\n collectionFilter = {\n or: [\n { [typeFieldName]: { in: [documentCollectionSlug] } },\n { [typeFieldName]: { exists: false } },\n ...(configuredTypes.length > 0 ? [{ [typeFieldName]: { not_in: configuredTypes } }] : []),\n ],\n }\n }\n\n if (!baseFilter && !collectionFilter) {\n return filterOptions\n }\n\n return {\n ...filterOptions,\n [hierarchySlug]: combineWhereConstraints([\n typeof existingFilter === 'object' ? existingFilter : undefined,\n baseFilter ?? undefined,\n collectionFilter,\n ]),\n }\n}\n"],"mappings":"AAEA,SAASA,uBAAuB,QAAQ;AAExC,OAAO,MAAMC,yBAAA,GAA4BA,CAAC;EACxCC,UAAU;EACVC,sBAAsB;EACtBC,aAAa;EACbC,eAAe;EACfC;AAAa,CAOd;EACC,MAAMC,cAAA,GAAiBH,aAAA,GAAgBE,aAAA,CAAc;EAErD,IAAIC,cAAA,KAAmB,OAAO;IAC5B,OAAOH,aAAA;EACT;EAEA,IAAII,gBAAA;EAEJ,IAAIL,sBAAA,IAA0BE,eAAA,EAAiBI,kBAAA,EAAoB;IACjE,MAAMC,aAAA,GAAgBL,eAAA,CAAgBI,kBAAkB,CAACE,SAAS;IAClE,MAAMC,eAAA,GAAkBC,MAAA,CAAOC,IAAI,CAACT,eAAA,CAAgBU,kBAAkB;IAEtEP,gBAAA,GAAmB;MACjBQ,EAAA,EAAI,CACF;QAAE,CAACN,aAAA,GAAgB;UAAEO,EAAA,EAAI,CAACd,sBAAA;QAAwB;MAAE,GACpD;QAAE,CAACO,aAAA,GAAgB;UAAEQ,MAAA,EAAQ;QAAM;MAAE,G,IACjCN,eAAA,CAAgBO,MAAM,GAAG,IAAI,CAAC;QAAE,CAACT,aAAA,GAAgB;UAAEU,MAAA,EAAQR;QAAgB;MAAE,EAAE,GAAG,EAAE;IAE5F;EACF;EAEA,IAAI,CAACV,UAAA,IAAc,CAACM,gBAAA,EAAkB;IACpC,OAAOJ,aAAA;EACT;EAEA,OAAO;IACL,GAAGA,aAAa;IAChB,CAACE,aAAA,GAAgBN,uBAAA,CAAwB,CACvC,OAAOO,cAAA,KAAmB,WAAWA,cAAA,GAAiBc,SAAA,EACtDnB,UAAA,IAAcmB,SAAA,EACdb,gBAAA,CACD;EACH;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/Field/index.client.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/Field/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,4BAA4B,EAAqB,MAAM,SAAS,CAAA;AAG9E,OAAO,KAAyC,MAAM,OAAO,CAAA;AAgB7D,OAAO,aAAa,CAAA;AAQpB,MAAM,MAAM,yBAAyB,GAAG;IAAE,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,GAAG,4BAA4B,CAAA;AAEjG,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA8NpE,CAAA"}
|
|
@@ -2,30 +2,30 @@
|
|
|
2
2
|
|
|
3
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { getTranslation } from '@payloadcms/translations';
|
|
5
|
-
import React, { useCallback, useMemo } from 'react';
|
|
6
|
-
import { FieldDescription } from '../../../fields/FieldDescription/index.js';
|
|
7
|
-
import { FieldError } from '../../../fields/FieldError/index.js';
|
|
8
|
-
import { FieldLabel } from '../../../fields/FieldLabel/index.js';
|
|
5
|
+
import React, { Fragment, useCallback, useMemo } from 'react';
|
|
9
6
|
import { mergeFieldStyles } from '../../../fields/mergeFieldStyles.js';
|
|
10
|
-
import {
|
|
7
|
+
import { RelationshipInput } from '../../../fields/Relationship/Input.js';
|
|
11
8
|
import { useField } from '../../../forms/useField/index.js';
|
|
12
|
-
import {
|
|
9
|
+
import { TagIcon } from '../../../icons/Tag/index.js';
|
|
13
10
|
import { useConfig } from '../../../providers/Config/index.js';
|
|
14
11
|
import { useDocumentInfo } from '../../../providers/DocumentInfo/index.js';
|
|
12
|
+
import { useHierarchy } from '../../../providers/Hierarchy/index.js';
|
|
15
13
|
import { useTranslation } from '../../../providers/Translation/index.js';
|
|
16
14
|
import { Button } from '../../Button/index.js';
|
|
17
|
-
import { RenderCustomComponent } from '../../RenderCustomComponent/index.js';
|
|
18
15
|
import { useHierarchyModal } from '../Modal/useHierarchyModal.js';
|
|
19
|
-
import {
|
|
16
|
+
import { getHierarchyFilterOptions } from './getHierarchyFilterOptions.js';
|
|
20
17
|
import './index.css';
|
|
21
18
|
const baseClass = 'hierarchy-field';
|
|
19
|
+
const flattenOptionGroups = groups => groups.flatMap(group => group.options);
|
|
22
20
|
export const HierarchyFieldClient = props => {
|
|
23
21
|
const {
|
|
24
22
|
field,
|
|
25
23
|
field: {
|
|
26
24
|
admin: {
|
|
27
25
|
className,
|
|
28
|
-
description
|
|
26
|
+
description,
|
|
27
|
+
isSortable = true,
|
|
28
|
+
placeholder
|
|
29
29
|
} = {},
|
|
30
30
|
hasMany,
|
|
31
31
|
label,
|
|
@@ -45,6 +45,9 @@ export const HierarchyFieldClient = props => {
|
|
|
45
45
|
const {
|
|
46
46
|
collectionSlug: documentCollectionSlug
|
|
47
47
|
} = useDocumentInfo();
|
|
48
|
+
const {
|
|
49
|
+
baseFilter
|
|
50
|
+
} = useHierarchy();
|
|
48
51
|
const {
|
|
49
52
|
i18n,
|
|
50
53
|
t
|
|
@@ -52,14 +55,12 @@ export const HierarchyFieldClient = props => {
|
|
|
52
55
|
const collectionConfig = getEntityConfig({
|
|
53
56
|
collectionSlug: hierarchySlug
|
|
54
57
|
});
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}
|
|
62
|
-
}, [validate, required]);
|
|
58
|
+
const hierarchyConfig = collectionConfig?.hierarchy && typeof collectionConfig.hierarchy === 'object' ? collectionConfig.hierarchy : undefined;
|
|
59
|
+
const titlePathFieldName = hierarchyConfig?.titlePathFieldName;
|
|
60
|
+
const memoizedValidate = useCallback((value, validationOptions) => typeof validate === 'function' ? validate(value, {
|
|
61
|
+
...validationOptions,
|
|
62
|
+
required
|
|
63
|
+
}) : undefined, [required, validate]);
|
|
63
64
|
const {
|
|
64
65
|
customComponents: {
|
|
65
66
|
AfterInput,
|
|
@@ -69,6 +70,8 @@ export const HierarchyFieldClient = props => {
|
|
|
69
70
|
Label
|
|
70
71
|
} = {},
|
|
71
72
|
disabled,
|
|
73
|
+
filterOptions,
|
|
74
|
+
initialValue,
|
|
72
75
|
path,
|
|
73
76
|
setValue,
|
|
74
77
|
showError,
|
|
@@ -77,28 +80,31 @@ export const HierarchyFieldClient = props => {
|
|
|
77
80
|
potentiallyStalePath: pathFromProps,
|
|
78
81
|
validate: memoizedValidate
|
|
79
82
|
});
|
|
83
|
+
const isReadOnly = readOnly || field.admin?.readOnly || disabled;
|
|
84
|
+
const hierarchyFilterOptions = useMemo(() => getHierarchyFilterOptions({
|
|
85
|
+
baseFilter,
|
|
86
|
+
documentCollectionSlug,
|
|
87
|
+
filterOptions,
|
|
88
|
+
hierarchyConfig,
|
|
89
|
+
hierarchySlug
|
|
90
|
+
}), [baseFilter, documentCollectionSlug, filterOptions, hierarchyConfig, hierarchySlug]);
|
|
91
|
+
const [relationTo] = React.useState(() => [hierarchySlug]);
|
|
80
92
|
const styles = useMemo(() => mergeFieldStyles(field), [field]);
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
return value_0;
|
|
88
|
-
}
|
|
89
|
-
return [value_0];
|
|
90
|
-
}, [value_0]);
|
|
91
|
-
// Initialize selections for the modal - use current value so modal expands to current selection
|
|
92
|
-
const initialSelections = useMemo(() => {
|
|
93
|
-
if (!value_0) {
|
|
94
|
-
return [];
|
|
95
|
-
}
|
|
96
|
-
if (Array.isArray(value_0)) {
|
|
97
|
-
return value_0;
|
|
93
|
+
const toRelationValues = useCallback(ids => {
|
|
94
|
+
if (hasMany) {
|
|
95
|
+
return Array.isArray(ids) ? ids.map(id => ({
|
|
96
|
+
relationTo: hierarchySlug,
|
|
97
|
+
value: id
|
|
98
|
+
})) : null;
|
|
98
99
|
}
|
|
99
|
-
return
|
|
100
|
-
|
|
101
|
-
|
|
100
|
+
return ids === null || typeof ids === 'undefined' ? null : {
|
|
101
|
+
relationTo: hierarchySlug,
|
|
102
|
+
value: ids
|
|
103
|
+
};
|
|
104
|
+
}, [hasMany, hierarchySlug]);
|
|
105
|
+
const relationshipValue = useMemo(() => toRelationValues(value_0), [toRelationValues, value_0]);
|
|
106
|
+
const relationshipInitialValue = useMemo(() => toRelationValues(initialValue), [initialValue, toRelationValues]);
|
|
107
|
+
const initialSelections = useMemo(() => value_0 === null || typeof value_0 === 'undefined' ? [] : Array.isArray(value_0) ? value_0 : [value_0], [value_0]);
|
|
102
108
|
const filterByCollection = useMemo(() => documentCollectionSlug ? [documentCollectionSlug] : undefined, [documentCollectionSlug]);
|
|
103
109
|
const [HierarchyModal,, {
|
|
104
110
|
openModal
|
|
@@ -111,79 +117,88 @@ export const HierarchyFieldClient = props => {
|
|
|
111
117
|
closeModal,
|
|
112
118
|
selections
|
|
113
119
|
}) => {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
120
|
+
if (isReadOnly) {
|
|
121
|
+
closeModal();
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
const ids_0 = Array.from(selections.keys());
|
|
125
|
+
setValue(hasMany ? ids_0 : ids_0[0] ?? null);
|
|
117
126
|
closeModal();
|
|
118
|
-
}, [hasMany, setValue]);
|
|
119
|
-
const
|
|
120
|
-
|
|
127
|
+
}, [hasMany, isReadOnly, setValue]);
|
|
128
|
+
const handleChangeHasMany = useCallback(newValue => {
|
|
129
|
+
const ids_1 = newValue?.map(item => item.value) ?? [];
|
|
130
|
+
setValue(ids_1, Array.isArray(value_0) && ids_1.length === value_0.length && value_0.every((id_0, i) => id_0 === ids_1[i]));
|
|
131
|
+
}, [setValue, value_0]);
|
|
132
|
+
const handleChangeSingle = useCallback(newValue_0 => setValue(newValue_0?.value ?? null, value_0 === newValue_0?.value), [setValue, value_0]);
|
|
133
|
+
const selectOptionFields = useMemo(() => titlePathFieldName ? {
|
|
134
|
+
[titlePathFieldName]: true
|
|
135
|
+
} : undefined, [titlePathFieldName]);
|
|
136
|
+
const formatOptionLabel = useCallback(({
|
|
137
|
+
context,
|
|
138
|
+
defaultLabel,
|
|
139
|
+
doc
|
|
121
140
|
}) => {
|
|
122
|
-
if (
|
|
123
|
-
|
|
124
|
-
setValue(newIds.length > 0 ? newIds : null);
|
|
125
|
-
} else {
|
|
126
|
-
setValue(null);
|
|
141
|
+
if (context !== 'menu' || typeof doc?.[titlePathFieldName ?? ''] !== 'string') {
|
|
142
|
+
return defaultLabel;
|
|
127
143
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
}, [openModal]);
|
|
144
|
+
const titlePath = doc[titlePathFieldName ?? ''];
|
|
145
|
+
return typeof titlePath === 'string' ? titlePath.split('/').map(part => part.trim()).join(' / ') : defaultLabel;
|
|
146
|
+
}, [titlePathFieldName]);
|
|
132
147
|
const hierarchyLabel = getTranslation(hasMany ? collectionConfig?.labels?.plural : collectionConfig?.labels?.singular, i18n) || hierarchySlug;
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
})
|
|
153
|
-
}), BeforeInput, /*#__PURE__*/_jsxs("div", {
|
|
154
|
-
className: `${baseClass}__content`,
|
|
155
|
-
children: [selectedIds.length > 0 && /*#__PURE__*/_jsx(SelectedHierarchies, {
|
|
156
|
-
hierarchySlug: hierarchySlug,
|
|
157
|
-
onRemove: handleRemove,
|
|
158
|
-
readOnly: readOnly || disabled,
|
|
159
|
-
selectedIds: selectedIds
|
|
160
|
-
}), !readOnly && (hasMany || selectedIds.length === 0) && /*#__PURE__*/_jsx(Button, {
|
|
161
|
-
buttonStyle: "dashed",
|
|
162
|
-
className: `${baseClass}__manage-button`,
|
|
163
|
-
disabled: disabled,
|
|
164
|
-
icon: /*#__PURE__*/_jsx(CirclePlusIcon, {
|
|
165
|
-
size: 24
|
|
166
|
-
}),
|
|
167
|
-
iconPosition: "left",
|
|
168
|
-
margin: false,
|
|
169
|
-
onClick: handleOpenModal,
|
|
170
|
-
size: "medium",
|
|
171
|
-
children: t('general:selectLabel', {
|
|
172
|
-
label: hierarchyLabel
|
|
173
|
-
})
|
|
174
|
-
})]
|
|
175
|
-
}), AfterInput, /*#__PURE__*/_jsx(RenderCustomComponent, {
|
|
176
|
-
CustomComponent: Description,
|
|
177
|
-
Fallback: /*#__PURE__*/_jsx(FieldDescription, {
|
|
178
|
-
description: description,
|
|
179
|
-
path: path
|
|
180
|
-
})
|
|
148
|
+
const BrowseButton = useMemo(() => /*#__PURE__*/_jsx(Button, {
|
|
149
|
+
"aria-label": t('general:selectLabel', {
|
|
150
|
+
label: hierarchyLabel
|
|
151
|
+
}),
|
|
152
|
+
buttonStyle: "secondary",
|
|
153
|
+
className: `${baseClass}__browse-button`,
|
|
154
|
+
disabled: isReadOnly,
|
|
155
|
+
icon: Icon ?? /*#__PURE__*/_jsx(TagIcon, {}),
|
|
156
|
+
margin: false,
|
|
157
|
+
onClick: openModal,
|
|
158
|
+
size: "large"
|
|
159
|
+
}), [Icon, hierarchyLabel, isReadOnly, openModal, t]);
|
|
160
|
+
return /*#__PURE__*/_jsx(RelationshipInput, {
|
|
161
|
+
AddNewRelationButton: BrowseButton,
|
|
162
|
+
AfterInput: /*#__PURE__*/_jsxs(Fragment, {
|
|
163
|
+
children: [AfterInput, /*#__PURE__*/_jsx(HierarchyModal, {
|
|
164
|
+
hasMany: hasMany,
|
|
165
|
+
initialSelections: initialSelections,
|
|
166
|
+
onSave: handleModalSave
|
|
181
167
|
})]
|
|
182
|
-
}),
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
168
|
+
}),
|
|
169
|
+
allowEdit: false,
|
|
170
|
+
BeforeInput: BeforeInput,
|
|
171
|
+
className: [baseClass, className].filter(Boolean).join(' '),
|
|
172
|
+
Description: Description,
|
|
173
|
+
description: description,
|
|
174
|
+
Error: Error,
|
|
175
|
+
filterOptions: hierarchyFilterOptions,
|
|
176
|
+
formatDisplayedOptions: flattenOptionGroups,
|
|
177
|
+
formatOptionLabel: formatOptionLabel,
|
|
178
|
+
isSortable: isSortable,
|
|
179
|
+
Label: Label,
|
|
180
|
+
label: label,
|
|
181
|
+
localized: localized,
|
|
182
|
+
maxResultsPerRequest: 10,
|
|
183
|
+
path: path,
|
|
184
|
+
placeholder: placeholder,
|
|
185
|
+
readOnly: isReadOnly,
|
|
186
|
+
relationTo: relationTo,
|
|
187
|
+
required: required,
|
|
188
|
+
selectOptionFields: selectOptionFields,
|
|
189
|
+
showError: showError,
|
|
190
|
+
style: styles,
|
|
191
|
+
...(hasMany === true ? {
|
|
192
|
+
hasMany: true,
|
|
193
|
+
initialValue: relationshipInitialValue,
|
|
194
|
+
onChange: handleChangeHasMany,
|
|
195
|
+
value: relationshipValue
|
|
196
|
+
} : {
|
|
197
|
+
hasMany: false,
|
|
198
|
+
initialValue: relationshipInitialValue,
|
|
199
|
+
onChange: handleChangeSingle,
|
|
200
|
+
value: relationshipValue
|
|
201
|
+
})
|
|
187
202
|
});
|
|
188
203
|
};
|
|
189
204
|
//# sourceMappingURL=index.client.js.map
|