@payloadcms/ui 3.80.0-internal.21e9c47 → 3.80.0-internal.60d6f94
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js +12 -0
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/Button/index.d.ts.map +1 -1
- package/dist/elements/Button/index.js +3 -5
- package/dist/elements/Button/index.js.map +1 -1
- package/dist/elements/Button/index.scss +5 -38
- package/dist/elements/Button/types.d.ts +1 -1
- package/dist/elements/Button/types.d.ts.map +1 -1
- package/dist/elements/Button/types.js.map +1 -1
- package/dist/elements/CheckboxPopup/index.d.ts.map +1 -1
- package/dist/elements/CheckboxPopup/index.js +1 -0
- package/dist/elements/CheckboxPopup/index.js.map +1 -1
- package/dist/elements/CheckboxPopup/index.scss +0 -1
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts.map +1 -1
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +49 -1
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js +384 -0
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js.map +1 -0
- package/dist/elements/Combobox/index.d.ts.map +1 -1
- package/dist/elements/Combobox/index.js +1 -0
- package/dist/elements/Combobox/index.js.map +1 -1
- package/dist/elements/DefaultListViewTabs/index.d.ts.map +1 -1
- package/dist/elements/DefaultListViewTabs/index.js +54 -28
- package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.d.ts +0 -1
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js +10 -6
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.scss +1 -1
- package/dist/elements/DocumentDrawer/index.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/index.js +141 -54
- package/dist/elements/DocumentDrawer/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/types.d.ts +1 -7
- package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/types.js.map +1 -1
- package/dist/elements/DrawerActionHeader/index.d.ts.map +1 -1
- package/dist/elements/DrawerActionHeader/index.js +0 -2
- package/dist/elements/DrawerActionHeader/index.js.map +1 -1
- package/dist/elements/DrawerActionHeader/index.scss +2 -2
- package/dist/elements/FolderView/Breadcrumbs/index.d.ts +19 -0
- package/dist/elements/FolderView/Breadcrumbs/index.d.ts.map +1 -0
- package/dist/elements/FolderView/Breadcrumbs/index.js +96 -0
- package/dist/elements/FolderView/Breadcrumbs/index.js.map +1 -0
- package/dist/elements/FolderView/Breadcrumbs/index.scss +56 -0
- package/dist/elements/FolderView/BrowseByFolderButton/index.d.ts +6 -0
- package/dist/elements/FolderView/BrowseByFolderButton/index.d.ts.map +1 -0
- package/dist/elements/FolderView/BrowseByFolderButton/index.js +40 -0
- package/dist/elements/FolderView/BrowseByFolderButton/index.js.map +1 -0
- package/dist/elements/FolderView/BrowseByFolderButton/index.scss +30 -0
- package/dist/elements/FolderView/Cell/index.client.d.ts +13 -0
- package/dist/elements/FolderView/Cell/index.client.d.ts.map +1 -0
- package/dist/elements/FolderView/Cell/index.client.js +95 -0
- package/dist/elements/FolderView/Cell/index.client.js.map +1 -0
- package/dist/elements/FolderView/Cell/index.server.d.ts +4 -0
- package/dist/elements/FolderView/Cell/index.server.d.ts.map +1 -0
- package/dist/elements/FolderView/Cell/index.server.js +18 -0
- package/dist/elements/FolderView/Cell/index.server.js.map +1 -0
- package/dist/elements/FolderView/ColoredFolderIcon/index.d.ts +3 -0
- package/dist/elements/FolderView/ColoredFolderIcon/index.d.ts.map +1 -0
- package/dist/elements/FolderView/ColoredFolderIcon/index.js +9 -0
- package/dist/elements/FolderView/ColoredFolderIcon/index.js.map +1 -0
- package/dist/elements/FolderView/ColoredFolderIcon/index.scss +5 -0
- package/dist/elements/FolderView/CurrentFolderActions/index.d.ts +7 -0
- package/dist/elements/FolderView/CurrentFolderActions/index.d.ts.map +1 -0
- package/dist/elements/FolderView/CurrentFolderActions/index.js +162 -0
- package/dist/elements/FolderView/CurrentFolderActions/index.js.map +1 -0
- package/dist/elements/FolderView/DragOverlaySelection/index.d.ts +11 -0
- package/dist/elements/FolderView/DragOverlaySelection/index.d.ts.map +1 -0
- package/dist/elements/FolderView/DragOverlaySelection/index.js +62 -0
- package/dist/elements/FolderView/DragOverlaySelection/index.js.map +1 -0
- package/dist/elements/FolderView/DragOverlaySelection/index.scss +35 -0
- package/dist/elements/FolderView/DraggableTableRow/index.d.ts +18 -0
- package/dist/elements/FolderView/DraggableTableRow/index.d.ts.map +1 -0
- package/dist/elements/FolderView/DraggableTableRow/index.js +63 -0
- package/dist/elements/FolderView/DraggableTableRow/index.js.map +1 -0
- package/dist/elements/FolderView/DraggableTableRow/index.scss +135 -0
- package/dist/elements/FolderView/DraggableWithClick/index.d.ts +15 -0
- package/dist/elements/FolderView/DraggableWithClick/index.d.ts.map +1 -0
- package/dist/elements/FolderView/DraggableWithClick/index.js +86 -0
- package/dist/elements/FolderView/DraggableWithClick/index.js.map +1 -0
- package/dist/elements/FolderView/DraggableWithClick/index.scss +5 -0
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.d.ts +7 -0
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.d.ts.map +1 -0
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.js +39 -0
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.js.map +1 -0
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts +37 -0
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts.map +1 -0
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +609 -0
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -0
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.scss +30 -0
- package/dist/elements/FolderView/FilterFolderTypePill/index.d.ts +4 -0
- package/dist/elements/FolderView/FilterFolderTypePill/index.d.ts.map +1 -0
- package/dist/elements/FolderView/FilterFolderTypePill/index.js +102 -0
- package/dist/elements/FolderView/FilterFolderTypePill/index.js.map +1 -0
- package/dist/elements/FolderView/FilterFolderTypePill/index.scss +16 -0
- package/dist/elements/FolderView/FolderField/index.scss +12 -0
- package/dist/elements/FolderView/FolderField/index.server.d.ts +4 -0
- package/dist/elements/FolderView/FolderField/index.server.d.ts.map +1 -0
- package/dist/elements/FolderView/FolderField/index.server.js +16 -0
- package/dist/elements/FolderView/FolderField/index.server.js.map +1 -0
- package/dist/elements/FolderView/FolderFileCard/index.d.ts +30 -0
- package/dist/elements/FolderView/FolderFileCard/index.d.ts.map +1 -0
- package/dist/elements/FolderView/FolderFileCard/index.js +209 -0
- package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -0
- package/dist/elements/FolderView/FolderFileCard/index.scss +247 -0
- package/dist/elements/FolderView/FolderFileTable/index.d.ts +8 -0
- package/dist/elements/FolderView/FolderFileTable/index.d.ts.map +1 -0
- package/dist/elements/FolderView/FolderFileTable/index.js +284 -0
- package/dist/elements/FolderView/FolderFileTable/index.js.map +1 -0
- package/dist/elements/FolderView/FolderFileTable/index.scss +11 -0
- package/dist/elements/FolderView/FolderTypeField/index.d.ts +4 -0
- package/dist/elements/FolderView/FolderTypeField/index.d.ts.map +1 -0
- package/dist/elements/FolderView/FolderTypeField/index.js +123 -0
- package/dist/elements/FolderView/FolderTypeField/index.js.map +1 -0
- package/dist/elements/FolderView/ItemCardGrid/index.d.ts +16 -0
- package/dist/elements/FolderView/ItemCardGrid/index.d.ts.map +1 -0
- package/dist/elements/FolderView/ItemCardGrid/index.js +34 -0
- package/dist/elements/FolderView/ItemCardGrid/index.js.map +1 -0
- package/dist/elements/FolderView/ItemCardGrid/index.scss +16 -0
- package/dist/elements/FolderView/MoveDocToFolder/index.d.ts +37 -0
- package/dist/elements/FolderView/MoveDocToFolder/index.d.ts.map +1 -0
- package/dist/elements/FolderView/MoveDocToFolder/index.js +292 -0
- package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -0
- package/dist/elements/{HierarchyButton → FolderView/MoveDocToFolder}/index.scss +1 -7
- package/dist/elements/FolderView/SimpleTable/index.d.ts +19 -0
- package/dist/elements/FolderView/SimpleTable/index.d.ts.map +1 -0
- package/dist/elements/FolderView/SimpleTable/index.js +95 -0
- package/dist/elements/FolderView/SimpleTable/index.js.map +1 -0
- package/dist/elements/FolderView/SimpleTable/index.scss +59 -0
- package/dist/elements/FolderView/SortByPill/index.d.ts +4 -0
- package/dist/elements/FolderView/SortByPill/index.d.ts.map +1 -0
- package/dist/elements/FolderView/SortByPill/index.js +112 -0
- package/dist/elements/FolderView/SortByPill/index.js.map +1 -0
- package/dist/elements/FolderView/SortByPill/index.scss +16 -0
- package/dist/elements/FolderView/ToggleViewButtons/index.d.ts +8 -0
- package/dist/elements/FolderView/ToggleViewButtons/index.d.ts.map +1 -0
- package/dist/elements/FolderView/ToggleViewButtons/index.js +31 -0
- package/dist/elements/FolderView/ToggleViewButtons/index.js.map +1 -0
- package/dist/elements/FolderView/ToggleViewButtons/index.scss +17 -0
- package/dist/elements/Link/index.d.ts +0 -4
- package/dist/elements/Link/index.d.ts.map +1 -1
- package/dist/elements/Link/index.js +0 -5
- package/dist/elements/Link/index.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.d.ts +15 -0
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.d.ts.map +1 -0
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +182 -0
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -0
- package/dist/elements/ListHeader/TitleActions/index.d.ts +1 -0
- package/dist/elements/ListHeader/TitleActions/index.d.ts.map +1 -1
- package/dist/elements/ListHeader/TitleActions/index.js +1 -0
- package/dist/elements/ListHeader/TitleActions/index.js.map +1 -1
- package/dist/elements/ListHeader/index.js +2 -2
- package/dist/elements/ListHeader/index.js.map +1 -1
- package/dist/elements/ListSelection/index.scss +1 -2
- package/dist/elements/Locked/index.scss +1 -1
- package/dist/elements/PublishButton/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/index.js +3 -1
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js +17 -12
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/StepNav/index.d.ts.map +1 -1
- package/dist/elements/StepNav/index.js +1 -10
- package/dist/elements/StepNav/index.js.map +1 -1
- package/dist/elements/StepNav/types.d.ts +0 -1
- package/dist/elements/StepNav/types.d.ts.map +1 -1
- package/dist/elements/StepNav/types.js.map +1 -1
- package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +0 -20
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/Toasts/fieldErrors.d.ts +4 -0
- package/dist/elements/Toasts/fieldErrors.d.ts.map +1 -1
- package/dist/elements/Toasts/fieldErrors.js +4 -2
- package/dist/elements/Toasts/fieldErrors.js.map +1 -1
- package/dist/elements/Toasts/fieldErrors.spec.js +46 -0
- package/dist/elements/Toasts/fieldErrors.spec.js.map +1 -0
- package/dist/elements/Tooltip/index.js +1 -1
- package/dist/elements/Tooltip/index.js.map +1 -1
- package/dist/elements/Tooltip/index.scss +15 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js +8 -6
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
- package/dist/elements/WhereBuilder/field-types.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/field-types.js +2 -5
- package/dist/elements/WhereBuilder/field-types.js.map +1 -1
- package/dist/elements/withMergedProps/index.d.ts +1 -1
- package/dist/elements/withMergedProps/index.js +1 -1
- package/dist/elements/withMergedProps/index.js.map +1 -1
- package/dist/exports/client/{DatePicker-CL2EGBVQ.js → DatePicker-T2DMDMM5.js} +2 -2
- package/dist/exports/client/chunk-WDZJLNNB.js +29 -0
- package/dist/exports/client/{chunk-SH42NW5R.js.map → chunk-WDZJLNNB.js.map} +4 -4
- package/dist/exports/client/index.d.ts +9 -30
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +12 -14
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/rsc/index.d.ts +3 -3
- package/dist/exports/rsc/index.d.ts.map +1 -1
- package/dist/exports/rsc/index.js +3 -3
- package/dist/exports/rsc/index.js.map +1 -1
- package/dist/exports/shared/index.js.map +1 -1
- package/dist/fields/Join/index.d.ts.map +1 -1
- package/dist/fields/Join/index.js +1 -1
- package/dist/fields/Join/index.js.map +1 -1
- package/dist/icons/Chevron/index.d.ts.map +1 -1
- package/dist/icons/Chevron/index.js +1 -5
- package/dist/icons/Chevron/index.js.map +1 -1
- package/dist/icons/Document/index.d.ts +1 -3
- package/dist/icons/Document/index.d.ts.map +1 -1
- package/dist/icons/Document/index.js +2 -4
- package/dist/icons/Document/index.js.map +1 -1
- package/dist/icons/Document/index.scss +0 -4
- package/dist/icons/Folder/index.d.ts +2 -4
- package/dist/icons/Folder/index.d.ts.map +1 -1
- package/dist/icons/Folder/index.js +2 -4
- package/dist/icons/Folder/index.js.map +1 -1
- package/dist/icons/Folder/index.scss +0 -8
- package/dist/icons/Lock/index.scss +1 -1
- package/dist/icons/Plus/index.d.ts.map +1 -1
- package/dist/icons/Plus/index.js +1 -2
- package/dist/icons/Plus/index.js.map +1 -1
- package/dist/providers/Folders/groupItemIDsByRelation.d.ts +3 -0
- package/dist/providers/Folders/groupItemIDsByRelation.d.ts.map +1 -0
- package/dist/providers/Folders/groupItemIDsByRelation.js +10 -0
- package/dist/providers/Folders/groupItemIDsByRelation.js.map +1 -0
- package/dist/providers/Folders/index.d.ts +143 -0
- package/dist/providers/Folders/index.d.ts.map +1 -0
- package/dist/providers/Folders/index.js +641 -0
- package/dist/providers/Folders/index.js.map +1 -0
- package/dist/providers/Root/index.d.ts.map +1 -1
- package/dist/providers/Root/index.js +15 -18
- package/dist/providers/Root/index.js.map +1 -1
- package/dist/providers/ServerFunctions/index.d.ts +6 -1
- package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
- package/dist/providers/ServerFunctions/index.js +18 -0
- package/dist/providers/ServerFunctions/index.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts +1 -2
- package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.js +1 -34
- package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/getFolderResultsComponentAndData.d.ts +25 -0
- package/dist/utilities/getFolderResultsComponentAndData.d.ts.map +1 -0
- package/dist/utilities/getFolderResultsComponentAndData.js +135 -0
- package/dist/utilities/getFolderResultsComponentAndData.js.map +1 -0
- package/dist/utilities/handleLivePreview.d.ts.map +1 -1
- package/dist/utilities/renderTable.d.ts +1 -3
- package/dist/utilities/renderTable.d.ts.map +1 -1
- package/dist/utilities/renderTable.js +3 -9
- package/dist/utilities/renderTable.js.map +1 -1
- package/dist/views/BrowseByFolder/index.d.ts +5 -0
- package/dist/views/BrowseByFolder/index.d.ts.map +1 -0
- package/dist/views/BrowseByFolder/index.js +342 -0
- package/dist/views/BrowseByFolder/index.js.map +1 -0
- package/dist/views/BrowseByFolder/index.scss +174 -0
- package/dist/views/CollectionFolder/ListSelection/index.d.ts +9 -0
- package/dist/views/CollectionFolder/ListSelection/index.d.ts.map +1 -0
- package/dist/views/CollectionFolder/ListSelection/index.js +180 -0
- package/dist/views/CollectionFolder/ListSelection/index.js.map +1 -0
- package/dist/views/CollectionFolder/index.d.ts +5 -0
- package/dist/views/CollectionFolder/index.d.ts.map +1 -0
- package/dist/views/CollectionFolder/index.js +325 -0
- package/dist/views/CollectionFolder/index.js.map +1 -0
- package/dist/views/CollectionFolder/index.scss +162 -0
- package/dist/views/Edit/index.d.ts +1 -1
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +1 -3
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +7 -51
- package/dist/views/List/index.js.map +1 -1
- package/package.json +4 -4
- package/dist/elements/CreateDocumentButton/index.d.ts +0 -26
- package/dist/elements/CreateDocumentButton/index.d.ts.map +0 -1
- package/dist/elements/CreateDocumentButton/index.js +0 -182
- package/dist/elements/CreateDocumentButton/index.js.map +0 -1
- package/dist/elements/DelayedSpinner/index.d.ts +0 -23
- package/dist/elements/DelayedSpinner/index.d.ts.map +0 -1
- package/dist/elements/DelayedSpinner/index.js +0 -61
- package/dist/elements/DelayedSpinner/index.js.map +0 -1
- package/dist/elements/HierarchyButton/index.d.ts +0 -11
- package/dist/elements/HierarchyButton/index.d.ts.map +0 -1
- package/dist/elements/HierarchyButton/index.js +0 -126
- package/dist/elements/HierarchyButton/index.js.map +0 -1
- package/dist/elements/HierarchyButton/index.server.d.ts +0 -10
- package/dist/elements/HierarchyButton/index.server.d.ts.map +0 -1
- package/dist/elements/HierarchyButton/index.server.js +0 -34
- package/dist/elements/HierarchyButton/index.server.js.map +0 -1
- package/dist/elements/HierarchyColumnBrowser/Column/index.d.ts +0 -5
- package/dist/elements/HierarchyColumnBrowser/Column/index.d.ts.map +0 -1
- package/dist/elements/HierarchyColumnBrowser/Column/index.js +0 -166
- package/dist/elements/HierarchyColumnBrowser/Column/index.js.map +0 -1
- package/dist/elements/HierarchyColumnBrowser/Column/index.scss +0 -63
- package/dist/elements/HierarchyColumnBrowser/ColumnItem/index.d.ts +0 -5
- package/dist/elements/HierarchyColumnBrowser/ColumnItem/index.d.ts.map +0 -1
- package/dist/elements/HierarchyColumnBrowser/ColumnItem/index.js +0 -161
- package/dist/elements/HierarchyColumnBrowser/ColumnItem/index.js.map +0 -1
- package/dist/elements/HierarchyColumnBrowser/ColumnItem/index.scss +0 -105
- package/dist/elements/HierarchyColumnBrowser/index.d.ts +0 -8
- package/dist/elements/HierarchyColumnBrowser/index.d.ts.map +0 -1
- package/dist/elements/HierarchyColumnBrowser/index.js +0 -470
- package/dist/elements/HierarchyColumnBrowser/index.js.map +0 -1
- package/dist/elements/HierarchyColumnBrowser/index.scss +0 -20
- package/dist/elements/HierarchyColumnBrowser/types.d.ts +0 -103
- package/dist/elements/HierarchyColumnBrowser/types.d.ts.map +0 -1
- package/dist/elements/HierarchyColumnBrowser/types.js +0 -2
- package/dist/elements/HierarchyColumnBrowser/types.js.map +0 -1
- package/dist/elements/HierarchyDrawer/Drawer/index.d.ts +0 -20
- package/dist/elements/HierarchyDrawer/Drawer/index.d.ts.map +0 -1
- package/dist/elements/HierarchyDrawer/Drawer/index.js +0 -289
- package/dist/elements/HierarchyDrawer/Drawer/index.js.map +0 -1
- package/dist/elements/HierarchyDrawer/Drawer/index.scss +0 -81
- package/dist/elements/HierarchyDrawer/fetchAncestorPath.d.ts +0 -15
- package/dist/elements/HierarchyDrawer/fetchAncestorPath.d.ts.map +0 -1
- package/dist/elements/HierarchyDrawer/fetchAncestorPath.js +0 -60
- package/dist/elements/HierarchyDrawer/fetchAncestorPath.js.map +0 -1
- package/dist/elements/HierarchyDrawer/index.d.ts +0 -30
- package/dist/elements/HierarchyDrawer/index.d.ts.map +0 -1
- package/dist/elements/HierarchyDrawer/index.js +0 -146
- package/dist/elements/HierarchyDrawer/index.js.map +0 -1
- package/dist/elements/HierarchyDrawer/types.d.ts +0 -65
- package/dist/elements/HierarchyDrawer/types.d.ts.map +0 -1
- package/dist/elements/HierarchyDrawer/types.js +0 -3
- package/dist/elements/HierarchyDrawer/types.js.map +0 -1
- package/dist/elements/HierarchyField/SelectedHierarchies.d.ts +0 -13
- package/dist/elements/HierarchyField/SelectedHierarchies.d.ts.map +0 -1
- package/dist/elements/HierarchyField/SelectedHierarchies.js +0 -194
- package/dist/elements/HierarchyField/SelectedHierarchies.js.map +0 -1
- package/dist/elements/HierarchyField/SelectedHierarchies.scss +0 -78
- package/dist/elements/HierarchyField/index.client.d.ts +0 -8
- package/dist/elements/HierarchyField/index.client.d.ts.map +0 -1
- package/dist/elements/HierarchyField/index.client.js +0 -198
- package/dist/elements/HierarchyField/index.client.js.map +0 -1
- package/dist/elements/HierarchyField/index.scss +0 -35
- package/dist/elements/HierarchyField/index.server.d.ts +0 -3
- package/dist/elements/HierarchyField/index.server.d.ts.map +0 -1
- package/dist/elements/HierarchyField/index.server.js +0 -30
- package/dist/elements/HierarchyField/index.server.js.map +0 -1
- package/dist/elements/HierarchySearch/HierarchySearchInput.d.ts +0 -18
- package/dist/elements/HierarchySearch/HierarchySearchInput.d.ts.map +0 -1
- package/dist/elements/HierarchySearch/HierarchySearchInput.js +0 -115
- package/dist/elements/HierarchySearch/HierarchySearchInput.js.map +0 -1
- package/dist/elements/HierarchySearch/HierarchySearchResultItem.d.ts +0 -13
- package/dist/elements/HierarchySearch/HierarchySearchResultItem.d.ts.map +0 -1
- package/dist/elements/HierarchySearch/HierarchySearchResultItem.js +0 -88
- package/dist/elements/HierarchySearch/HierarchySearchResultItem.js.map +0 -1
- package/dist/elements/HierarchySearch/HierarchySearchResults.d.ts +0 -17
- package/dist/elements/HierarchySearch/HierarchySearchResults.d.ts.map +0 -1
- package/dist/elements/HierarchySearch/HierarchySearchResults.js +0 -85
- package/dist/elements/HierarchySearch/HierarchySearchResults.js.map +0 -1
- package/dist/elements/HierarchySearch/index.d.ts +0 -10
- package/dist/elements/HierarchySearch/index.d.ts.map +0 -1
- package/dist/elements/HierarchySearch/index.js +0 -144
- package/dist/elements/HierarchySearch/index.js.map +0 -1
- package/dist/elements/HierarchySearch/index.scss +0 -212
- package/dist/elements/HierarchySearch/types.d.ts +0 -21
- package/dist/elements/HierarchySearch/types.d.ts.map +0 -1
- package/dist/elements/HierarchySearch/types.js +0 -2
- package/dist/elements/HierarchySearch/types.js.map +0 -1
- package/dist/elements/HierarchySearch/useHierarchySearch.d.ts +0 -20
- package/dist/elements/HierarchySearch/useHierarchySearch.d.ts.map +0 -1
- package/dist/elements/HierarchySearch/useHierarchySearch.js +0 -122
- package/dist/elements/HierarchySearch/useHierarchySearch.js.map +0 -1
- package/dist/elements/HierarchyTree/HierarchySidebarTab.d.ts +0 -20
- package/dist/elements/HierarchyTree/HierarchySidebarTab.d.ts.map +0 -1
- package/dist/elements/HierarchyTree/HierarchySidebarTab.js +0 -156
- package/dist/elements/HierarchyTree/HierarchySidebarTab.js.map +0 -1
- package/dist/elements/HierarchyTree/HierarchySidebarTab.server.d.ts +0 -7
- package/dist/elements/HierarchyTree/HierarchySidebarTab.server.d.ts.map +0 -1
- package/dist/elements/HierarchyTree/HierarchySidebarTab.server.js +0 -167
- package/dist/elements/HierarchyTree/HierarchySidebarTab.server.js.map +0 -1
- package/dist/elements/HierarchyTree/LoadMore/LoadMoreButton.d.ts +0 -8
- package/dist/elements/HierarchyTree/LoadMore/LoadMoreButton.d.ts.map +0 -1
- package/dist/elements/HierarchyTree/LoadMore/LoadMoreButton.js +0 -36
- package/dist/elements/HierarchyTree/LoadMore/LoadMoreButton.js.map +0 -1
- package/dist/elements/HierarchyTree/LoadMore/index.d.ts +0 -12
- package/dist/elements/HierarchyTree/LoadMore/index.d.ts.map +0 -1
- package/dist/elements/HierarchyTree/LoadMore/index.js +0 -29
- package/dist/elements/HierarchyTree/LoadMore/index.js.map +0 -1
- package/dist/elements/HierarchyTree/LoadMore/index.scss +0 -26
- package/dist/elements/HierarchyTree/TreeConnector.d.ts +0 -7
- package/dist/elements/HierarchyTree/TreeConnector.d.ts.map +0 -1
- package/dist/elements/HierarchyTree/TreeConnector.js +0 -23
- package/dist/elements/HierarchyTree/TreeConnector.js.map +0 -1
- package/dist/elements/HierarchyTree/TreeFocusContext.d.ts +0 -28
- package/dist/elements/HierarchyTree/TreeFocusContext.d.ts.map +0 -1
- package/dist/elements/HierarchyTree/TreeFocusContext.js +0 -140
- package/dist/elements/HierarchyTree/TreeFocusContext.js.map +0 -1
- package/dist/elements/HierarchyTree/TreeNode/index.d.ts +0 -5
- package/dist/elements/HierarchyTree/TreeNode/index.d.ts.map +0 -1
- package/dist/elements/HierarchyTree/TreeNode/index.js +0 -201
- package/dist/elements/HierarchyTree/TreeNode/index.js.map +0 -1
- package/dist/elements/HierarchyTree/TreeNode/index.scss +0 -99
- package/dist/elements/HierarchyTree/index.d.ts +0 -4
- package/dist/elements/HierarchyTree/index.d.ts.map +0 -1
- package/dist/elements/HierarchyTree/index.js +0 -64
- package/dist/elements/HierarchyTree/index.js.map +0 -1
- package/dist/elements/HierarchyTree/index.scss +0 -42
- package/dist/elements/HierarchyTree/types.d.ts +0 -55
- package/dist/elements/HierarchyTree/types.d.ts.map +0 -1
- package/dist/elements/HierarchyTree/types.js +0 -2
- package/dist/elements/HierarchyTree/types.js.map +0 -1
- package/dist/elements/HierarchyTree/useChildren.d.ts +0 -26
- package/dist/elements/HierarchyTree/useChildren.d.ts.map +0 -1
- package/dist/elements/HierarchyTree/useChildren.js +0 -150
- package/dist/elements/HierarchyTree/useChildren.js.map +0 -1
- package/dist/elements/HierarchyTree/useTreeState.d.ts +0 -9
- package/dist/elements/HierarchyTree/useTreeState.d.ts.map +0 -1
- package/dist/elements/HierarchyTree/useTreeState.js +0 -50
- package/dist/elements/HierarchyTree/useTreeState.js.map +0 -1
- package/dist/elements/HydrateHierarchyProvider/index.d.ts +0 -4
- package/dist/elements/HydrateHierarchyProvider/index.d.ts.map +0 -1
- package/dist/elements/HydrateHierarchyProvider/index.js +0 -67
- package/dist/elements/HydrateHierarchyProvider/index.js.map +0 -1
- package/dist/elements/LoadMoreRow/index.d.ts +0 -15
- package/dist/elements/LoadMoreRow/index.d.ts.map +0 -1
- package/dist/elements/LoadMoreRow/index.js +0 -75
- package/dist/elements/LoadMoreRow/index.js.map +0 -1
- package/dist/elements/LoadMoreRow/index.scss +0 -42
- package/dist/elements/MoveMany/index.d.ts +0 -22
- package/dist/elements/MoveMany/index.d.ts.map +0 -1
- package/dist/elements/MoveMany/index.js +0 -278
- package/dist/elements/MoveMany/index.js.map +0 -1
- package/dist/elements/MoveMany/index.scss +0 -7
- package/dist/elements/Spinner/index.d.ts +0 -16
- package/dist/elements/Spinner/index.d.ts.map +0 -1
- package/dist/elements/Spinner/index.js +0 -49
- package/dist/elements/Spinner/index.js.map +0 -1
- package/dist/elements/Spinner/index.scss +0 -39
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts +0 -6
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts.map +0 -1
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js +0 -187
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js.map +0 -1
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.scss +0 -29
- package/dist/elements/Tree/LoadMore/LoadMoreButton.d.ts +0 -8
- package/dist/elements/Tree/LoadMore/LoadMoreButton.d.ts.map +0 -1
- package/dist/elements/Tree/LoadMore/LoadMoreButton.js +0 -36
- package/dist/elements/Tree/LoadMore/LoadMoreButton.js.map +0 -1
- package/dist/elements/Tree/LoadMore/index.d.ts +0 -12
- package/dist/elements/Tree/LoadMore/index.d.ts.map +0 -1
- package/dist/elements/Tree/LoadMore/index.js +0 -29
- package/dist/elements/Tree/LoadMore/index.js.map +0 -1
- package/dist/elements/Tree/LoadMore/index.scss +0 -26
- package/dist/elements/Tree/TreeConnector.d.ts +0 -7
- package/dist/elements/Tree/TreeConnector.d.ts.map +0 -1
- package/dist/elements/Tree/TreeConnector.js +0 -23
- package/dist/elements/Tree/TreeConnector.js.map +0 -1
- package/dist/elements/Tree/TreeFocusContext.d.ts +0 -28
- package/dist/elements/Tree/TreeFocusContext.d.ts.map +0 -1
- package/dist/elements/Tree/TreeFocusContext.js +0 -140
- package/dist/elements/Tree/TreeFocusContext.js.map +0 -1
- package/dist/elements/Tree/TreeNode/index.d.ts +0 -5
- package/dist/elements/Tree/TreeNode/index.d.ts.map +0 -1
- package/dist/elements/Tree/TreeNode/index.js +0 -218
- package/dist/elements/Tree/TreeNode/index.js.map +0 -1
- package/dist/elements/Tree/TreeNode/index.scss +0 -110
- package/dist/elements/Tree/index.d.ts +0 -5
- package/dist/elements/Tree/index.d.ts.map +0 -1
- package/dist/elements/Tree/index.js +0 -258
- package/dist/elements/Tree/index.js.map +0 -1
- package/dist/elements/Tree/index.scss +0 -63
- package/dist/elements/Tree/types.d.ts +0 -67
- package/dist/elements/Tree/types.d.ts.map +0 -1
- package/dist/elements/Tree/types.js +0 -2
- package/dist/elements/Tree/types.js.map +0 -1
- package/dist/elements/Tree/useChildren.d.ts +0 -25
- package/dist/elements/Tree/useChildren.d.ts.map +0 -1
- package/dist/elements/Tree/useChildren.js +0 -213
- package/dist/elements/Tree/useChildren.js.map +0 -1
- package/dist/exports/client/chunk-SH42NW5R.js +0 -29
- package/dist/fields/Null/index.d.ts +0 -11
- package/dist/fields/Null/index.d.ts.map +0 -1
- package/dist/fields/Null/index.js +0 -13
- package/dist/fields/Null/index.js.map +0 -1
- package/dist/icons/Filter/index.d.ts +0 -4
- package/dist/icons/Filter/index.d.ts.map +0 -1
- package/dist/icons/Filter/index.js +0 -15
- package/dist/icons/Filter/index.js.map +0 -1
- package/dist/icons/Filter/index.scss +0 -13
- package/dist/icons/Tag/index.d.ts +0 -8
- package/dist/icons/Tag/index.d.ts.map +0 -1
- package/dist/icons/Tag/index.js +0 -22
- package/dist/icons/Tag/index.js.map +0 -1
- package/dist/icons/Tag/index.scss +0 -14
- package/dist/providers/DocumentSelection/index.d.ts +0 -8
- package/dist/providers/DocumentSelection/index.d.ts.map +0 -1
- package/dist/providers/DocumentSelection/index.js +0 -239
- package/dist/providers/DocumentSelection/index.js.map +0 -1
- package/dist/providers/DocumentSelection/types.d.ts +0 -122
- package/dist/providers/DocumentSelection/types.d.ts.map +0 -1
- package/dist/providers/DocumentSelection/types.js +0 -5
- package/dist/providers/DocumentSelection/types.js.map +0 -1
- package/dist/providers/Hierarchy/index.d.ts +0 -5
- package/dist/providers/Hierarchy/index.d.ts.map +0 -1
- package/dist/providers/Hierarchy/index.js +0 -337
- package/dist/providers/Hierarchy/index.js.map +0 -1
- package/dist/providers/Hierarchy/types.d.ts +0 -101
- package/dist/providers/Hierarchy/types.d.ts.map +0 -1
- package/dist/providers/Hierarchy/types.js +0 -2
- package/dist/providers/Hierarchy/types.js.map +0 -1
- package/dist/utilities/isSuperset.d.ts +0 -6
- package/dist/utilities/isSuperset.d.ts.map +0 -1
- package/dist/utilities/isSuperset.js +0 -10
- package/dist/utilities/isSuperset.js.map +0 -1
- package/dist/views/HierarchyList/DocumentListSelection/index.d.ts +0 -10
- package/dist/views/HierarchyList/DocumentListSelection/index.d.ts.map +0 -1
- package/dist/views/HierarchyList/DocumentListSelection/index.js +0 -135
- package/dist/views/HierarchyList/DocumentListSelection/index.js.map +0 -1
- package/dist/views/HierarchyList/HierarchyListHeader/index.d.ts +0 -21
- package/dist/views/HierarchyList/HierarchyListHeader/index.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyListHeader/index.js +0 -67
- package/dist/views/HierarchyList/HierarchyListHeader/index.js.map +0 -1
- package/dist/views/HierarchyList/HierarchyListHeader/index.scss +0 -9
- package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.d.ts +0 -4
- package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js +0 -104
- package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/DateCell.d.ts +0 -4
- package/dist/views/HierarchyList/HierarchyTable/DateCell.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/DateCell.js +0 -53
- package/dist/views/HierarchyList/HierarchyTable/DateCell.js.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.d.ts +0 -4
- package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.js +0 -128
- package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.js.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.d.ts +0 -99
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.js +0 -118
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.js.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.scss +0 -214
- package/dist/views/HierarchyList/HierarchyTable/index.d.ts +0 -23
- package/dist/views/HierarchyList/HierarchyTable/index.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/index.js +0 -387
- package/dist/views/HierarchyList/HierarchyTable/index.js.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/index.scss +0 -148
- package/dist/views/HierarchyList/HierarchyTable/types.d.ts +0 -20
- package/dist/views/HierarchyList/HierarchyTable/types.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/types.js +0 -2
- package/dist/views/HierarchyList/HierarchyTable/types.js.map +0 -1
- package/dist/views/HierarchyList/TypeFilter/index.d.ts +0 -15
- package/dist/views/HierarchyList/TypeFilter/index.d.ts.map +0 -1
- package/dist/views/HierarchyList/TypeFilter/index.js +0 -37
- package/dist/views/HierarchyList/TypeFilter/index.js.map +0 -1
- package/dist/views/HierarchyList/TypeFilter/index.scss +0 -32
- package/dist/views/HierarchyList/index.d.ts +0 -5
- package/dist/views/HierarchyList/index.d.ts.map +0 -1
- package/dist/views/HierarchyList/index.js +0 -303
- package/dist/views/HierarchyList/index.js.map +0 -1
- package/dist/views/HierarchyList/index.scss +0 -72
- /package/dist/exports/client/{DatePicker-CL2EGBVQ.js.map → DatePicker-T2DMDMM5.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","getTranslation","fieldAffectsData","fieldIsID","React","useConfig","useTranslation","formatAdminURL","getDisplayedFieldValue","isValidReactElement","Link","CodeCell","HierarchyCell","cellComponents","DefaultCell","props","$","cellData","className","classNameFromProps","collectionSlug","field","t0","link","linkURL","onClick","onClickFromProps","rowData","viewType","admin","i18n","config","t1","getEntityConfig","routes","t2","adminRoute","t3","t4","Symbol","for","collectionConfig","classNameFromConfigContext","undefined","WrapElement","wrapElementProps","prefetch","href","slug","path","encodeURIComponent","id","type","_jsx","children","nowrap","displayedValue","isHierarchyField","relationTo","relatedCollection","Boolean","hierarchy","DefaultCellComponent","CellComponent","upload","name","FileCellComponent","File","_jsxs","t","label","JSON","stringify","options","length","classes","Array","isArray","map","_temp","join","className_0","filter","value"],"sources":["../../../../src/elements/Table/DefaultCell/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps, UploadFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { fieldAffectsData, fieldIsID } from 'payload/shared'\nimport React from 'react' // TODO: abstract this out to support all routers\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { formatAdminURL } from '../../../utilities/formatAdminURL.js'\nimport { getDisplayedFieldValue } from '../../../utilities/getDisplayedFieldValue.js'\nimport { isValidReactElement } from '../../../utilities/isValidReactElement.js'\nimport { Link } from '../../Link/index.js'\nimport { CodeCell } from './fields/Code/index.js'\nimport { HierarchyCell } from './fields/Hierarchy/index.js'\nimport { cellComponents } from './fields/index.js'\n\nexport const DefaultCell: React.FC<DefaultCellComponentProps> = (props) => {\n const {\n cellData,\n className: classNameFromProps,\n collectionSlug,\n field,\n field: { admin },\n link,\n linkURL,\n onClick: onClickFromProps,\n rowData,\n viewType,\n } = props\n\n const { i18n } = useTranslation()\n\n const {\n config: {\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const classNameFromConfigContext = admin && 'className' in admin ? admin.className : undefined\n\n const className =\n classNameFromProps ||\n (field.admin && 'className' in field.admin ? field.admin.className : null) ||\n classNameFromConfigContext\n\n const onClick = onClickFromProps\n\n let WrapElement: React.ComponentType<any> | string = 'span'\n\n const wrapElementProps: {\n className?: string\n href?: string\n onClick?: () => void\n prefetch?: false\n type?: 'button'\n } = {\n className,\n }\n\n if (link) {\n wrapElementProps.prefetch = false\n WrapElement = Link\n\n // Use custom linkURL if provided, otherwise use default URL generation\n if (linkURL) {\n wrapElementProps.href = linkURL\n } else {\n wrapElementProps.href = collectionConfig?.slug\n ? formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}${viewType === 'trash' ? '/trash' : ''}/${encodeURIComponent(rowData.id)}`,\n })\n : ''\n }\n }\n\n if (typeof onClick === 'function') {\n WrapElement = 'button'\n wrapElementProps.type = 'button'\n wrapElementProps.onClick = () => {\n onClick({\n cellData,\n collectionSlug: collectionConfig?.slug,\n rowData,\n })\n }\n }\n\n if (fieldIsID(field)) {\n return (\n <WrapElement {...wrapElementProps}>\n <CodeCell\n cellData={`ID: ${cellData}`}\n collectionConfig={collectionConfig}\n collectionSlug={collectionSlug}\n field={{\n ...field,\n type: 'code',\n }}\n nowrap\n rowData={rowData}\n />\n </WrapElement>\n )\n }\n\n const displayedValue = getDisplayedFieldValue(cellData, field, i18n)\n\n // Check if this is a hierarchy relationship field by checking if the related collection has hierarchy config\n const isHierarchyField =\n field.type === 'relationship' &&\n (() => {\n const relationTo = 'relationTo' in field ? field.relationTo : undefined\n if (typeof relationTo !== 'string') {\n return false\n }\n const relatedCollection = getEntityConfig({ collectionSlug: relationTo })\n return Boolean(relatedCollection?.hierarchy)\n })()\n\n // For hierarchy fields, render the HierarchyCell directly (no wrapper needed)\n if (isHierarchyField && field.type === 'relationship') {\n return <HierarchyCell cellData={cellData} rowData={rowData} {...props} field={field} />\n }\n\n const DefaultCellComponent: React.FC<DefaultCellComponentProps> =\n typeof cellData !== 'undefined' && cellComponents[field.type]\n\n let CellComponent: React.ReactNode = null\n\n // Handle JSX labels before using DefaultCellComponent\n if (isValidReactElement(displayedValue)) {\n CellComponent = displayedValue\n } else if (DefaultCellComponent) {\n CellComponent = <DefaultCellComponent cellData={cellData} rowData={rowData} {...props} />\n } else if (!DefaultCellComponent) {\n // DefaultCellComponent does not exist for certain field types like `text`\n if (\n collectionConfig?.upload &&\n fieldAffectsData(field) &&\n field.name === 'filename' &&\n field.type === 'text'\n ) {\n const FileCellComponent = cellComponents.File\n\n CellComponent = (\n <FileCellComponent\n cellData={cellData}\n rowData={rowData}\n {...(props as DefaultCellComponentProps<UploadFieldClient>)}\n collectionConfig={collectionConfig}\n field={field}\n />\n )\n } else {\n return (\n <WrapElement {...wrapElementProps}>\n {(displayedValue === '' ||\n typeof displayedValue === 'undefined' ||\n displayedValue === null) &&\n i18n.t('general:noLabel', {\n label: getTranslation(('label' in field ? field.label : null) || 'data', i18n),\n })}\n {typeof displayedValue === 'string' && displayedValue}\n {typeof displayedValue === 'number' && displayedValue}\n {typeof displayedValue === 'object' &&\n displayedValue !== null &&\n JSON.stringify(displayedValue)}\n </WrapElement>\n )\n }\n }\n\n if ((field.type === 'select' || field.type === 'radio') && field.options.length && cellData) {\n const classes = Array.isArray(cellData)\n ? cellData.map((value) => `selected--${value}`).join(' ')\n : `selected--${cellData}`\n\n const className = [wrapElementProps.className, classes].filter(Boolean).join(' ')\n\n return (\n <WrapElement {...wrapElementProps} className={className}>\n {CellComponent}\n </WrapElement>\n )\n }\n\n return <WrapElement {...wrapElementProps}>{CellComponent}</WrapElement>\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","getTranslation","fieldAffectsData","fieldIsID","React","useConfig","useTranslation","formatAdminURL","getDisplayedFieldValue","isValidReactElement","Link","CodeCell","cellComponents","DefaultCell","props","$","cellData","className","classNameFromProps","collectionSlug","field","t0","link","linkURL","onClick","onClickFromProps","rowData","viewType","admin","i18n","config","t1","getEntityConfig","routes","t2","adminRoute","t3","t4","Symbol","for","collectionConfig","classNameFromConfigContext","undefined","WrapElement","wrapElementProps","prefetch","href","slug","path","encodeURIComponent","id","type","_jsx","children","nowrap","displayedValue","DefaultCellComponent","CellComponent","upload","name","FileCellComponent","File","_jsxs","t","label","JSON","stringify","options","length","classes","Array","isArray","map","_temp","join","className_0","filter","Boolean","value"],"sources":["../../../../src/elements/Table/DefaultCell/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps, UploadFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { fieldAffectsData, fieldIsID } from 'payload/shared'\nimport React from 'react' // TODO: abstract this out to support all routers\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { formatAdminURL } from '../../../utilities/formatAdminURL.js'\nimport { getDisplayedFieldValue } from '../../../utilities/getDisplayedFieldValue.js'\nimport { isValidReactElement } from '../../../utilities/isValidReactElement.js'\nimport { Link } from '../../Link/index.js'\nimport { CodeCell } from './fields/Code/index.js'\nimport { cellComponents } from './fields/index.js'\n\nexport const DefaultCell: React.FC<DefaultCellComponentProps> = (props) => {\n const {\n cellData,\n className: classNameFromProps,\n collectionSlug,\n field,\n field: { admin },\n link,\n linkURL,\n onClick: onClickFromProps,\n rowData,\n viewType,\n } = props\n\n const { i18n } = useTranslation()\n\n const {\n config: {\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const classNameFromConfigContext = admin && 'className' in admin ? admin.className : undefined\n\n const className =\n classNameFromProps ||\n (field.admin && 'className' in field.admin ? field.admin.className : null) ||\n classNameFromConfigContext\n\n const onClick = onClickFromProps\n\n let WrapElement: React.ComponentType<any> | string = 'span'\n\n const wrapElementProps: {\n className?: string\n href?: string\n onClick?: () => void\n prefetch?: false\n type?: 'button'\n } = {\n className,\n }\n\n if (link) {\n wrapElementProps.prefetch = false\n WrapElement = Link\n\n // Use custom linkURL if provided, otherwise use default URL generation\n if (linkURL) {\n wrapElementProps.href = linkURL\n } else {\n wrapElementProps.href = collectionConfig?.slug\n ? formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}${viewType === 'trash' ? '/trash' : ''}/${encodeURIComponent(rowData.id)}`,\n })\n : ''\n }\n }\n\n if (typeof onClick === 'function') {\n WrapElement = 'button'\n wrapElementProps.type = 'button'\n wrapElementProps.onClick = () => {\n onClick({\n cellData,\n collectionSlug: collectionConfig?.slug,\n rowData,\n })\n }\n }\n\n if (fieldIsID(field)) {\n return (\n <WrapElement {...wrapElementProps}>\n <CodeCell\n cellData={`ID: ${cellData}`}\n collectionConfig={collectionConfig}\n collectionSlug={collectionSlug}\n field={{\n ...field,\n type: 'code',\n }}\n nowrap\n rowData={rowData}\n />\n </WrapElement>\n )\n }\n\n const displayedValue = getDisplayedFieldValue(cellData, field, i18n)\n\n const DefaultCellComponent: React.FC<DefaultCellComponentProps> =\n typeof cellData !== 'undefined' && cellComponents[field.type]\n\n let CellComponent: React.ReactNode = null\n\n // Handle JSX labels before using DefaultCellComponent\n if (isValidReactElement(displayedValue)) {\n CellComponent = displayedValue\n } else if (DefaultCellComponent) {\n CellComponent = <DefaultCellComponent cellData={cellData} rowData={rowData} {...props} />\n } else if (!DefaultCellComponent) {\n // DefaultCellComponent does not exist for certain field types like `text`\n if (\n collectionConfig?.upload &&\n fieldAffectsData(field) &&\n field.name === 'filename' &&\n field.type === 'text'\n ) {\n const FileCellComponent = cellComponents.File\n\n CellComponent = (\n <FileCellComponent\n cellData={cellData}\n rowData={rowData}\n {...(props as DefaultCellComponentProps<UploadFieldClient>)}\n collectionConfig={collectionConfig}\n field={field}\n />\n )\n } else {\n return (\n <WrapElement {...wrapElementProps}>\n {(displayedValue === '' ||\n typeof displayedValue === 'undefined' ||\n displayedValue === null) &&\n i18n.t('general:noLabel', {\n label: getTranslation(('label' in field ? field.label : null) || 'data', i18n),\n })}\n {typeof displayedValue === 'string' && displayedValue}\n {typeof displayedValue === 'number' && displayedValue}\n {typeof displayedValue === 'object' &&\n displayedValue !== null &&\n JSON.stringify(displayedValue)}\n </WrapElement>\n )\n }\n }\n\n if ((field.type === 'select' || field.type === 'radio') && field.options.length && cellData) {\n const classes = Array.isArray(cellData)\n ? cellData.map((value) => `selected--${value}`).join(' ')\n : `selected--${cellData}`\n\n const className = [wrapElementProps.className, classes].filter(Boolean).join(' ')\n\n return (\n <WrapElement {...wrapElementProps} className={className}>\n {CellComponent}\n </WrapElement>\n )\n }\n\n return <WrapElement {...wrapElementProps}>{CellComponent}</WrapElement>\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldErrors.d.ts","sourceRoot":"","sources":["../../../src/elements/Toasts/fieldErrors.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"fieldErrors.d.ts","sourceRoot":"","sources":["../../../src/elements/Toasts/fieldErrors.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AA6BzB,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG;IACxD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAChB,CAwBA;AAED,wBAAgB,gBAAgB,CAAC,EAAE,YAAY,EAAE;;CAAA,qBAmBhD"}
|
|
@@ -25,8 +25,10 @@ function groupSimilarErrors(items) {
|
|
|
25
25
|
}
|
|
26
26
|
return result;
|
|
27
27
|
}
|
|
28
|
-
function createErrorsFromMessage(message) {
|
|
29
|
-
const
|
|
28
|
+
export function createErrorsFromMessage(message) {
|
|
29
|
+
const colonIndex = message.indexOf(':');
|
|
30
|
+
const intro = colonIndex >= 0 ? message.slice(0, colonIndex) : message;
|
|
31
|
+
const errorsString = colonIndex >= 0 ? message.slice(colonIndex + 1) : undefined;
|
|
30
32
|
if (!errorsString) {
|
|
31
33
|
return {
|
|
32
34
|
message: intro
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldErrors.js","names":["c","_c","React","groupSimilarErrors","items","result","item","parts","split","inserted","i","length","startsWith","splice","push","createErrorsFromMessage","message","intro","errorsString","errors","map","error","replaceAll","trim","FieldErrorsToast","t0","$","errorMessage","t1","t2","useState","t3","_jsxs","children","Array","isArray","_jsx","_temp","index"],"sources":["../../../src/elements/Toasts/fieldErrors.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nfunction groupSimilarErrors(items: string[]): string[] {\n const result: string[] = []\n\n for (const item of items) {\n if (item) {\n const parts = item.split(' → ')\n let inserted = false\n\n // Find a place where a similar path exists\n for (let i = 0; i < result.length; i++) {\n if (result[i].startsWith(parts[0])) {\n result.splice(i + 1, 0, item)\n inserted = true\n break\n }\n }\n\n // If no similar path was found, add to the end\n if (!inserted) {\n result.push(item)\n }\n }\n }\n\n return result\n}\n\
|
|
1
|
+
{"version":3,"file":"fieldErrors.js","names":["c","_c","React","groupSimilarErrors","items","result","item","parts","split","inserted","i","length","startsWith","splice","push","createErrorsFromMessage","message","colonIndex","indexOf","intro","slice","errorsString","undefined","errors","map","error","replaceAll","trim","FieldErrorsToast","t0","$","errorMessage","t1","t2","useState","t3","_jsxs","children","Array","isArray","_jsx","_temp","index"],"sources":["../../../src/elements/Toasts/fieldErrors.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nfunction groupSimilarErrors(items: string[]): string[] {\n const result: string[] = []\n\n for (const item of items) {\n if (item) {\n const parts = item.split(' → ')\n let inserted = false\n\n // Find a place where a similar path exists\n for (let i = 0; i < result.length; i++) {\n if (result[i].startsWith(parts[0])) {\n result.splice(i + 1, 0, item)\n inserted = true\n break\n }\n }\n\n // If no similar path was found, add to the end\n if (!inserted) {\n result.push(item)\n }\n }\n }\n\n return result\n}\n\nexport function createErrorsFromMessage(message: string): {\n errors?: string[]\n message: string\n} {\n const colonIndex = message.indexOf(':')\n const intro = colonIndex >= 0 ? message.slice(0, colonIndex) : message\n const errorsString = colonIndex >= 0 ? message.slice(colonIndex + 1) : undefined\n\n if (!errorsString) {\n return {\n message: intro,\n }\n }\n\n const errors = errorsString.split(',').map((error) => error.replaceAll(' > ', ' → ').trim())\n\n if (errors.length === 1) {\n return {\n errors,\n message: `${intro}: `,\n }\n }\n\n return {\n errors: groupSimilarErrors(errors),\n message: `${intro} (${errors.length}):`,\n }\n}\n\nexport function FieldErrorsToast({ errorMessage }) {\n const [{ errors, message }] = React.useState(() => createErrorsFromMessage(errorMessage))\n\n return (\n <div>\n {message}\n {Array.isArray(errors) && errors.length > 0 ? (\n errors.length === 1 ? (\n <span data-testid=\"field-error\">{errors[0]}</span>\n ) : (\n <ul data-testid=\"field-errors\">\n {errors.map((error, index) => {\n return <li key={index}>{error}</li>\n })}\n </ul>\n )\n ) : null}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { createErrorsFromMessage } from './fieldErrors.js';
|
|
3
|
+
describe('createErrorsFromMessage', () => {
|
|
4
|
+
it('should return the full message when there is no colon', () => {
|
|
5
|
+
const result = createErrorsFromMessage('Something went wrong');
|
|
6
|
+
expect(result).toEqual({
|
|
7
|
+
message: 'Something went wrong'
|
|
8
|
+
});
|
|
9
|
+
});
|
|
10
|
+
it('should split a single field error after the colon', () => {
|
|
11
|
+
const result = createErrorsFromMessage('Validation failed: email');
|
|
12
|
+
expect(result).toEqual({
|
|
13
|
+
errors: ['email'],
|
|
14
|
+
message: 'Validation failed: '
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
it('should split multiple comma-separated field errors after the colon', () => {
|
|
18
|
+
const result = createErrorsFromMessage('The following fields are invalid: email, name');
|
|
19
|
+
expect(result).toEqual({
|
|
20
|
+
errors: ['email', 'name'],
|
|
21
|
+
message: 'The following fields are invalid (2):'
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
it('should preserve the full message when it contains multiple colons', () => {
|
|
25
|
+
const result = createErrorsFromMessage('With: multiple: colons');
|
|
26
|
+
expect(result).toEqual({
|
|
27
|
+
errors: ['multiple: colons'],
|
|
28
|
+
message: 'With: '
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
it('should replace " > " with " → " in error paths', () => {
|
|
32
|
+
const result = createErrorsFromMessage('Invalid: parent > child');
|
|
33
|
+
expect(result).toEqual({
|
|
34
|
+
errors: ['parent → child'],
|
|
35
|
+
message: 'Invalid: '
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
it('should group similar errors and count them', () => {
|
|
39
|
+
const result = createErrorsFromMessage('Invalid: blocks > 0, blocks > 1, other');
|
|
40
|
+
expect(result).toEqual({
|
|
41
|
+
errors: ['blocks → 0', 'blocks → 1', 'other'],
|
|
42
|
+
message: 'Invalid (3):'
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=fieldErrors.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fieldErrors.spec.js","names":["describe","expect","it","createErrorsFromMessage","result","toEqual","message","errors"],"sources":["../../../src/elements/Toasts/fieldErrors.spec.ts"],"sourcesContent":["import { describe, expect, it } from 'vitest'\n\nimport { createErrorsFromMessage } from './fieldErrors.js'\n\ndescribe('createErrorsFromMessage', () => {\n it('should return the full message when there is no colon', () => {\n const result = createErrorsFromMessage('Something went wrong')\n\n expect(result).toEqual({ message: 'Something went wrong' })\n })\n\n it('should split a single field error after the colon', () => {\n const result = createErrorsFromMessage('Validation failed: email')\n\n expect(result).toEqual({ errors: ['email'], message: 'Validation failed: ' })\n })\n\n it('should split multiple comma-separated field errors after the colon', () => {\n const result = createErrorsFromMessage('The following fields are invalid: email, name')\n\n expect(result).toEqual({\n errors: ['email', 'name'],\n message: 'The following fields are invalid (2):',\n })\n })\n\n it('should preserve the full message when it contains multiple colons', () => {\n const result = createErrorsFromMessage('With: multiple: colons')\n\n expect(result).toEqual({ errors: ['multiple: colons'], message: 'With: ' })\n })\n\n it('should replace \" > \" with \" → \" in error paths', () => {\n const result = createErrorsFromMessage('Invalid: parent > child')\n\n expect(result).toEqual({ errors: ['parent → child'], message: 'Invalid: ' })\n })\n\n it('should group similar errors and count them', () => {\n const result = createErrorsFromMessage('Invalid: blocks > 0, blocks > 1, other')\n\n expect(result).toEqual({\n errors: ['blocks → 0', 'blocks → 1', 'other'],\n message: 'Invalid (3):',\n })\n })\n})\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ;AAErC,SAASC,uBAAuB,QAAQ;AAExCH,QAAA,CAAS,2BAA2B;EAClCE,EAAA,CAAG,yDAAyD;IAC1D,MAAME,MAAA,GAASD,uBAAA,CAAwB;IAEvCF,MAAA,CAAOG,MAAA,EAAQC,OAAO,CAAC;MAAEC,OAAA,EAAS;IAAuB;EAC3D;EAEAJ,EAAA,CAAG,qDAAqD;IACtD,MAAME,MAAA,GAASD,uBAAA,CAAwB;IAEvCF,MAAA,CAAOG,MAAA,EAAQC,OAAO,CAAC;MAAEE,MAAA,EAAQ,CAAC,QAAQ;MAAED,OAAA,EAAS;IAAsB;EAC7E;EAEAJ,EAAA,CAAG,sEAAsE;IACvE,MAAME,MAAA,GAASD,uBAAA,CAAwB;IAEvCF,MAAA,CAAOG,MAAA,EAAQC,OAAO,CAAC;MACrBE,MAAA,EAAQ,CAAC,SAAS,OAAO;MACzBD,OAAA,EAAS;IACX;EACF;EAEAJ,EAAA,CAAG,qEAAqE;IACtE,MAAME,MAAA,GAASD,uBAAA,CAAwB;IAEvCF,MAAA,CAAOG,MAAA,EAAQC,OAAO,CAAC;MAAEE,MAAA,EAAQ,CAAC,mBAAmB;MAAED,OAAA,EAAS;IAAS;EAC3E;EAEAJ,EAAA,CAAG,kDAAkD;IACnD,MAAME,MAAA,GAASD,uBAAA,CAAwB;IAEvCF,MAAA,CAAOG,MAAA,EAAQC,OAAO,CAAC;MAAEE,MAAA,EAAQ,CAAC,iBAAiB;MAAED,OAAA,EAAS;IAAY;EAC5E;EAEAJ,EAAA,CAAG,8CAA8C;IAC/C,MAAME,MAAA,GAASD,uBAAA,CAAwB;IAEvCF,MAAA,CAAOG,MAAA,EAAQC,OAAO,CAAC;MACrBE,MAAA,EAAQ,CAAC,cAAc,cAAc,QAAQ;MAC7CD,OAAA,EAAS;IACX;EACF;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useEffect","useIntersect","Tooltip","props","alignCaret","boundingRef","children","className","delay","position","positionFromProps","show","showFromProps","staticPositioning","setShow","useState","setPosition","getTitleAttribute","content","ref","intersectionEntry","root","current","rootMargin","threshold","timerID","setTimeout","clearTimeout","isIntersecting","_jsxs","Fragment","_jsx","filter","Boolean","join","style","opacity","title"],"sources":["../../../src/elements/Tooltip/index.tsx"],"sourcesContent":["'use client'\nimport React, { useEffect } from 'react'\n\nimport { useIntersect } from '../../hooks/useIntersect.js'\nimport './index.scss'\n\nexport type Props = {\n alignCaret?: 'center' | 'left' | 'right'\n boundingRef?: React.RefObject<HTMLElement | null>\n children: React.ReactNode\n className?: string\n delay?: number\n position?: 'bottom' | 'top'\n show?: boolean\n /**\n * If the tooltip position should not change depending on if the toolbar is outside the boundingRef. @default false\n */\n staticPositioning?: boolean\n}\n\nexport const Tooltip: React.FC<Props> = (props) => {\n const {\n alignCaret = 'center',\n boundingRef,\n children,\n className,\n delay =
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useEffect","useIntersect","Tooltip","props","alignCaret","boundingRef","children","className","delay","position","positionFromProps","show","showFromProps","staticPositioning","setShow","useState","setPosition","getTitleAttribute","content","ref","intersectionEntry","root","current","rootMargin","threshold","timerID","setTimeout","clearTimeout","isIntersecting","_jsxs","Fragment","_jsx","filter","Boolean","join","style","opacity","title"],"sources":["../../../src/elements/Tooltip/index.tsx"],"sourcesContent":["'use client'\nimport React, { useEffect } from 'react'\n\nimport { useIntersect } from '../../hooks/useIntersect.js'\nimport './index.scss'\n\nexport type Props = {\n alignCaret?: 'center' | 'left' | 'right'\n boundingRef?: React.RefObject<HTMLElement | null>\n children: React.ReactNode\n className?: string\n delay?: number\n position?: 'bottom' | 'top'\n show?: boolean\n /**\n * If the tooltip position should not change depending on if the toolbar is outside the boundingRef. @default false\n */\n staticPositioning?: boolean\n}\n\nexport const Tooltip: React.FC<Props> = (props) => {\n const {\n alignCaret = 'center',\n boundingRef,\n children,\n className,\n delay = 350,\n position: positionFromProps,\n show: showFromProps = true,\n staticPositioning = false,\n } = props\n\n const [show, setShow] = React.useState(showFromProps)\n const [position, setPosition] = React.useState<'bottom' | 'top'>('top')\n\n const getTitleAttribute = (content) => (typeof content === 'string' ? content : '')\n\n const [ref, intersectionEntry] = useIntersect(\n {\n root: boundingRef?.current || null,\n rootMargin: '-145px 0px 0px 100px',\n threshold: 0,\n },\n staticPositioning,\n )\n\n useEffect(() => {\n let timerID: NodeJS.Timeout\n\n // do not use the delay on transition-out\n if (delay && showFromProps) {\n timerID = setTimeout(() => {\n setShow(showFromProps)\n }, delay)\n } else {\n setShow(showFromProps)\n }\n\n return () => {\n if (timerID) {\n clearTimeout(timerID)\n }\n }\n }, [showFromProps, delay])\n\n useEffect(() => {\n if (staticPositioning) {\n return\n }\n setPosition(intersectionEntry?.isIntersecting ? 'top' : 'bottom')\n }, [intersectionEntry, staticPositioning])\n\n // The first aside is always on top. The purpose of that is that it can reliably be used for the interaction observer (as it's not moving around), to calculate the position of the actual tooltip.\n return (\n <React.Fragment>\n {!staticPositioning && (\n <aside\n aria-hidden=\"true\"\n className={['tooltip', className, `tooltip--caret-${alignCaret}`, 'tooltip--position-top']\n .filter(Boolean)\n .join(' ')}\n ref={ref}\n style={{ opacity: '0' }}\n >\n <div className=\"tooltip-content\">{children}</div>\n </aside>\n )}\n <aside\n className={[\n 'tooltip',\n className,\n show && 'tooltip--show',\n `tooltip--caret-${alignCaret}`,\n `tooltip--position-${positionFromProps || position}`,\n ]\n .filter(Boolean)\n .join(' ')}\n title={getTitleAttribute(children)}\n >\n <div className=\"tooltip-content\">{children}</div>\n </aside>\n </React.Fragment>\n )\n}\n"],"mappings":"AAAA;;;AACA,OAAOA,KAAA,IAASC,SAAS,QAAQ;AAEjC,SAASC,YAAY,QAAQ;AAC7B,OAAO;AAgBP,OAAO,MAAMC,OAAA,GAA4BC,KAAA;EACvC,MAAM;IACJC,UAAA,GAAa,QAAQ;IACrBC,WAAW;IACXC,QAAQ;IACRC,SAAS;IACTC,KAAA,GAAQ,GAAG;IACXC,QAAA,EAAUC,iBAAiB;IAC3BC,IAAA,EAAMC,aAAA,GAAgB,IAAI;IAC1BC,iBAAA,GAAoB;EAAK,CAC1B,GAAGV,KAAA;EAEJ,MAAM,CAACQ,IAAA,EAAMG,OAAA,CAAQ,GAAGf,KAAA,CAAMgB,QAAQ,CAACH,aAAA;EACvC,MAAM,CAACH,QAAA,EAAUO,WAAA,CAAY,GAAGjB,KAAA,CAAMgB,QAAQ,CAAmB;EAEjE,MAAME,iBAAA,GAAqBC,OAAA,IAAa,OAAOA,OAAA,KAAY,WAAWA,OAAA,GAAU;EAEhF,MAAM,CAACC,GAAA,EAAKC,iBAAA,CAAkB,GAAGnB,YAAA,CAC/B;IACEoB,IAAA,EAAMhB,WAAA,EAAaiB,OAAA,IAAW;IAC9BC,UAAA,EAAY;IACZC,SAAA,EAAW;EACb,GACAX,iBAAA;EAGFb,SAAA,CAAU;IACR,IAAIyB,OAAA;IAEJ;IACA,IAAIjB,KAAA,IAASI,aAAA,EAAe;MAC1Ba,OAAA,GAAUC,UAAA,CAAW;QACnBZ,OAAA,CAAQF,aAAA;MACV,GAAGJ,KAAA;IACL,OAAO;MACLM,OAAA,CAAQF,aAAA;IACV;IAEA,OAAO;MACL,IAAIa,OAAA,EAAS;QACXE,YAAA,CAAaF,OAAA;MACf;IACF;EACF,GAAG,CAACb,aAAA,EAAeJ,KAAA,CAAM;EAEzBR,SAAA,CAAU;IACR,IAAIa,iBAAA,EAAmB;MACrB;IACF;IACAG,WAAA,CAAYI,iBAAA,EAAmBQ,cAAA,GAAiB,QAAQ;EAC1D,GAAG,CAACR,iBAAA,EAAmBP,iBAAA,CAAkB;EAEzC;EACA,oBACEgB,KAAA,CAAC9B,KAAA,CAAM+B,QAAQ;eACZ,CAACjB,iBAAA,iBACAkB,IAAA,CAAC;MACC,eAAY;MACZxB,SAAA,EAAW,CAAC,WAAWA,SAAA,EAAW,kBAAkBH,UAAA,EAAY,EAAE,wBAAwB,CACvF4B,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;MACRf,GAAA,EAAKA,GAAA;MACLgB,KAAA,EAAO;QAAEC,OAAA,EAAS;MAAI;gBAEtB,aAAAL,IAAA,CAAC;QAAIxB,SAAA,EAAU;kBAAmBD;;qBAGtCyB,IAAA,CAAC;MACCxB,SAAA,EAAW,CACT,WACAA,SAAA,EACAI,IAAA,IAAQ,iBACR,kBAAkBP,UAAA,EAAY,EAC9B,qBAAqBM,iBAAA,IAAqBD,QAAA,EAAU,CACrD,CACEuB,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;MACRG,KAAA,EAAOpB,iBAAA,CAAkBX,QAAA;gBAEzB,aAAAyB,IAAA,CAAC;QAAIxB,SAAA,EAAU;kBAAmBD;;;;AAI1C","ignoreList":[]}
|
|
@@ -33,7 +33,6 @@
|
|
|
33
33
|
opacity: 1;
|
|
34
34
|
transition: opacity 0.2s ease-in-out;
|
|
35
35
|
cursor: default;
|
|
36
|
-
z-index: 10000;
|
|
37
36
|
}
|
|
38
37
|
|
|
39
38
|
&--caret-center {
|
|
@@ -84,4 +83,19 @@
|
|
|
84
83
|
display: none;
|
|
85
84
|
}
|
|
86
85
|
}
|
|
86
|
+
|
|
87
|
+
html[data-theme='light'] {
|
|
88
|
+
.tooltip:not(.field-error) {
|
|
89
|
+
background-color: var(--theme-elevation-100);
|
|
90
|
+
color: var(--theme-elevation-1000);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.tooltip--position-top:not(.field-error):after {
|
|
94
|
+
border-top-color: var(--theme-elevation-100);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.tooltip--position-bottom:not(.field-error):after {
|
|
98
|
+
border-bottom-color: var(--theme-elevation-100);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
87
101
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/WhereBuilder/Condition/Relationship/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAuD,MAAM,OAAO,CAAA;AAG3E,OAAO,KAAK,EAAE,uBAAuB,IAAI,KAAK,EAAqB,MAAM,YAAY,CAAA;AAQrF,OAAO,cAAc,CAAA;AAOrB,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/WhereBuilder/Condition/Relationship/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAuD,MAAM,OAAO,CAAA;AAG3E,OAAO,KAAK,EAAE,uBAAuB,IAAI,KAAK,EAAqB,MAAM,YAAY,CAAA;AAQrF,OAAO,cAAc,CAAA;AAOrB,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA2Z9C,CAAA"}
|
|
@@ -24,10 +24,12 @@ export const RelationshipFilter = props => {
|
|
|
24
24
|
},
|
|
25
25
|
filterOptions,
|
|
26
26
|
onChange,
|
|
27
|
+
operator,
|
|
27
28
|
value
|
|
28
29
|
} = props;
|
|
29
30
|
const placeholder = 'placeholder' in admin ? admin?.placeholder : undefined;
|
|
30
31
|
const isSortable = admin?.isSortable;
|
|
32
|
+
const isMultiValue = hasMany || ['in', 'not_in'].includes(operator);
|
|
31
33
|
const {
|
|
32
34
|
config: {
|
|
33
35
|
routes: {
|
|
@@ -150,7 +152,7 @@ export const RelationshipFilter = props => {
|
|
|
150
152
|
}, []);
|
|
151
153
|
const findOptionsByValue = useCallback(() => {
|
|
152
154
|
if (value) {
|
|
153
|
-
if (
|
|
155
|
+
if (isMultiValue) {
|
|
154
156
|
if (Array.isArray(value)) {
|
|
155
157
|
return value.map(val => {
|
|
156
158
|
if (hasMultipleRelations) {
|
|
@@ -192,7 +194,7 @@ export const RelationshipFilter = props => {
|
|
|
192
194
|
return options.find(opt_2 => opt_2.value == value);
|
|
193
195
|
}
|
|
194
196
|
return undefined;
|
|
195
|
-
}, [
|
|
197
|
+
}, [isMultiValue, hasMultipleRelations, value, options]);
|
|
196
198
|
const handleInputChange = useCallback(input => {
|
|
197
199
|
if (input !== search) {
|
|
198
200
|
dispatchOptions({
|
|
@@ -276,7 +278,7 @@ export const RelationshipFilter = props => {
|
|
|
276
278
|
*/
|
|
277
279
|
useEffect(() => {
|
|
278
280
|
if (value && hasLoadedFirstOptions) {
|
|
279
|
-
if (
|
|
281
|
+
if (isMultiValue) {
|
|
280
282
|
const matchedOptions = findOptionsByValue();
|
|
281
283
|
(matchedOptions || []).forEach((option, i) => {
|
|
282
284
|
if (!option) {
|
|
@@ -299,7 +301,7 @@ export const RelationshipFilter = props => {
|
|
|
299
301
|
}
|
|
300
302
|
}
|
|
301
303
|
}
|
|
302
|
-
}, [addOptionByID, findOptionsByValue,
|
|
304
|
+
}, [addOptionByID, findOptionsByValue, isMultiValue, hasMultipleRelations, relationTo, value, hasLoadedFirstOptions]);
|
|
303
305
|
const classes = ['field-type', baseClass, errorLoading && 'error-loading'].filter(Boolean).join(' ');
|
|
304
306
|
const valueToRender = findOptionsByValue() || value;
|
|
305
307
|
return /*#__PURE__*/_jsx("div", {
|
|
@@ -309,14 +311,14 @@ export const RelationshipFilter = props => {
|
|
|
309
311
|
children: errorLoading
|
|
310
312
|
}) : /*#__PURE__*/_jsx(ReactSelect, {
|
|
311
313
|
disabled: disabled,
|
|
312
|
-
isMulti:
|
|
314
|
+
isMulti: isMultiValue,
|
|
313
315
|
isSortable: isSortable,
|
|
314
316
|
onChange: selected => {
|
|
315
317
|
if (!selected) {
|
|
316
318
|
onChange(null);
|
|
317
319
|
return;
|
|
318
320
|
}
|
|
319
|
-
if (
|
|
321
|
+
if (isMultiValue && Array.isArray(selected)) {
|
|
320
322
|
onChange(selected ? selected.map(option_0 => {
|
|
321
323
|
if (hasMultipleRelations) {
|
|
322
324
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["formatAdminURL","qs","React","useCallback","useEffect","useReducer","useState","useDebounce","useEffectEvent","useConfig","useLocale","useTranslation","ReactSelect","optionsReducer","baseClass","maxResultsPerRequest","RelationshipFilter","props","disabled","field","admin","hasMany","relationTo","filterOptions","onChange","value","placeholder","undefined","isSortable","config","routes","api","getEntityConfig","hasMultipleRelations","Array","isArray","options","dispatchOptions","search","setSearch","debouncedSearch","errorLoading","setErrorLoading","hasLoadedFirstOptions","setHasLoadedFirstOptions","i18n","t","locale","relationSlugs","loadedRelationships","useRef","Map","map","relation","hasLoadedAll","nextPage","addOptions","data","collection","collectionSlug","type","loadOptions","abortController","relationSlug","loadedRelationship","current","get","fieldToSearch","useAsTitle","where","and","query","depth","limit","code","page","select","push","like","response","fetch","apiRoute","path","stringify","addQueryPrefix","credentials","headers","language","signal","ok","json","docs","length","set","e","aborted","console","error","handleScrollToBottom","relationshipToLoad","entries","next","AbortController","findOptionsByValue","val","matchedOption","forEach","opt","some","subOpt","find","valueWithRelation","handleInputChange","input","required","addOptionByID","id","relations","abortControllers","controller","abort","_err","matchedOptions","option","i","classes","filter","Boolean","join","valueToRender","_jsx","className","isMulti","selected","onInputChange","onMenuScrollToBottom"],"sources":["../../../../../src/elements/WhereBuilder/Condition/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { PaginatedDocs, Where } from 'payload'\n\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useReducer, useState } from 'react'\n\nimport type { Option } from '../../../ReactSelect/types.js'\nimport type { RelationshipFilterProps as Props, ValueWithRelation } from './types.js'\n\nimport { useDebounce } from '../../../../hooks/useDebounce.js'\nimport { useEffectEvent } from '../../../../hooks/useEffectEvent.js'\nimport { useConfig } from '../../../../providers/Config/index.js'\nimport { useLocale } from '../../../../providers/Locale/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { ReactSelect } from '../../../ReactSelect/index.js'\nimport './index.scss'\nimport optionsReducer from './optionsReducer.js'\n\nconst baseClass = 'condition-value-relationship'\n\nconst maxResultsPerRequest = 10\n\nexport const RelationshipFilter: React.FC<Props> = (props) => {\n const {\n disabled,\n field: { admin = {}, hasMany, relationTo },\n filterOptions,\n onChange,\n value,\n } = props\n\n const placeholder = 'placeholder' in admin ? admin?.placeholder : undefined\n const isSortable = admin?.isSortable\n\n const {\n config: {\n routes: { api },\n },\n getEntityConfig,\n } = useConfig()\n\n const hasMultipleRelations = Array.isArray(relationTo)\n const [options, dispatchOptions] = useReducer(optionsReducer, [])\n const [search, setSearch] = useState('')\n const debouncedSearch = useDebounce(search, 300)\n const [errorLoading, setErrorLoading] = useState('')\n const [hasLoadedFirstOptions, setHasLoadedFirstOptions] = useState(false)\n const { i18n, t } = useTranslation()\n const locale = useLocale()\n\n const relationSlugs = hasMultipleRelations ? relationTo : [relationTo]\n\n const loadedRelationships = React.useRef<\n Map<\n string,\n {\n hasLoadedAll: boolean\n nextPage: number\n }\n >\n >(\n new Map(\n relationSlugs.map((relation) => [\n relation,\n {\n hasLoadedAll: false,\n nextPage: 1,\n },\n ]),\n ),\n )\n\n const addOptions = useCallback(\n (data, relation) => {\n const collection = getEntityConfig({ collectionSlug: relation })\n dispatchOptions({ type: 'ADD', collection, data, hasMultipleRelations, i18n, relation })\n },\n [hasMultipleRelations, i18n, getEntityConfig],\n )\n\n const loadOptions = useEffectEvent(\n async ({\n abortController,\n relationSlug,\n }: {\n abortController: AbortController\n relationSlug: string\n }) => {\n const loadedRelationship = loadedRelationships.current.get(relationSlug)\n\n if (relationSlug && !loadedRelationship.hasLoadedAll) {\n const collection = getEntityConfig({\n collectionSlug: relationSlug,\n })\n\n const fieldToSearch = collection?.admin?.useAsTitle || 'id'\n\n const where: Where = {\n and: [],\n }\n\n const query = {\n depth: 0,\n limit: maxResultsPerRequest,\n locale: locale.code,\n page: loadedRelationship.nextPage,\n select: {\n [fieldToSearch]: true,\n },\n where,\n }\n\n if (filterOptions && filterOptions?.[relationSlug]) {\n query.where.and.push(filterOptions[relationSlug])\n }\n\n if (debouncedSearch) {\n query.where.and.push({\n [fieldToSearch]: {\n like: debouncedSearch,\n },\n })\n }\n\n try {\n const response = await fetch(\n formatAdminURL({\n apiRoute: api,\n path: `/${relationSlug}${qs.stringify(query, { addQueryPrefix: true })}`,\n }),\n {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n signal: abortController.signal,\n },\n )\n\n if (response.ok) {\n const data: PaginatedDocs = await response.json()\n if (data.docs.length > 0) {\n addOptions(data, relationSlug)\n\n if (data.nextPage) {\n loadedRelationships.current.set(relationSlug, {\n hasLoadedAll: false,\n nextPage: data.nextPage,\n })\n } else {\n loadedRelationships.current.set(relationSlug, {\n hasLoadedAll: true,\n nextPage: null,\n })\n }\n }\n } else {\n setErrorLoading(t('error:unspecific'))\n }\n } catch (e) {\n if (!abortController.signal.aborted) {\n console.error(e) // eslint-disable-line no-console\n }\n }\n }\n\n setHasLoadedFirstOptions(true)\n },\n )\n\n const handleScrollToBottom = React.useCallback(() => {\n const relationshipToLoad = loadedRelationships.current.entries().next().value\n\n if (relationshipToLoad[0] && !relationshipToLoad[1].hasLoadedAll) {\n const abortController = new AbortController()\n\n void loadOptions({\n abortController,\n relationSlug: relationshipToLoad[0],\n })\n }\n }, [])\n\n const findOptionsByValue = useCallback((): Option | Option[] => {\n if (value) {\n if (hasMany) {\n if (Array.isArray(value)) {\n return value.map((val) => {\n if (hasMultipleRelations) {\n let matchedOption: Option\n\n options.forEach((opt) => {\n if (opt.options) {\n opt.options.some((subOpt) => {\n if (subOpt?.value == val.value) {\n matchedOption = subOpt\n return true\n }\n\n return false\n })\n }\n })\n\n return matchedOption\n }\n\n return options.find((opt) => opt.value == val)\n })\n }\n\n return undefined\n }\n\n if (hasMultipleRelations) {\n let matchedOption: Option\n\n const valueWithRelation = value as ValueWithRelation\n\n options.forEach((opt) => {\n if (opt?.options) {\n opt.options.some((subOpt) => {\n if (subOpt?.value == valueWithRelation.value) {\n matchedOption = subOpt\n return true\n }\n return false\n })\n }\n })\n\n return matchedOption\n }\n\n return options.find((opt) => opt.value == value)\n }\n\n return undefined\n }, [hasMany, hasMultipleRelations, value, options])\n\n const handleInputChange = useCallback(\n (input: string) => {\n if (input !== search) {\n dispatchOptions({ type: 'CLEAR', i18n, required: false })\n\n const relationSlugs = Array.isArray(relationTo) ? relationTo : [relationTo]\n\n loadedRelationships.current = new Map(\n relationSlugs.map((relation) => [\n relation,\n {\n hasLoadedAll: false,\n nextPage: 1,\n },\n ]),\n )\n\n setSearch(input)\n }\n },\n [i18n, relationTo, search],\n )\n\n const addOptionByID = useCallback(\n async (id, relation) => {\n if (!errorLoading && id !== 'null' && id && relation) {\n const response = await fetch(\n formatAdminURL({ apiRoute: api, path: `/${relation}/${id}?depth=0` }),\n {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n },\n )\n\n if (response.ok) {\n const data = await response.json()\n addOptions({ docs: [data] }, relation)\n } else {\n // eslint-disable-next-line no-console\n console.error(t('error:loadingDocument', { id }))\n }\n }\n },\n [i18n, addOptions, api, errorLoading, t],\n )\n\n /**\n * When `relationTo` changes externally, reset the options and reload them from scratch\n * The `loadOptions` dependency is a useEffectEvent which has no dependencies of its own\n * This means we can safely depend on it without it triggering this effect to run\n * This is useful because this effect should _only_ run when `relationTo` changes\n */\n useEffect(() => {\n const relations = Array.isArray(relationTo) ? relationTo : [relationTo]\n\n loadedRelationships.current = new Map(\n relations.map((relation) => [\n relation,\n {\n hasLoadedAll: false,\n nextPage: 1,\n },\n ]),\n )\n\n dispatchOptions({ type: 'CLEAR', i18n, required: false })\n setHasLoadedFirstOptions(false)\n\n const abortControllers: AbortController[] = []\n\n relations.forEach((relation) => {\n const abortController = new AbortController()\n\n void loadOptions({\n abortController,\n relationSlug: relation,\n })\n\n abortControllers.push(abortController)\n })\n\n return () => {\n abortControllers.forEach((controller) => {\n if (controller.signal) {\n try {\n controller.abort()\n } catch (_err) {\n // swallow error\n }\n }\n })\n }\n }, [i18n, relationTo, debouncedSearch, filterOptions])\n\n /**\n * Load any other options that might exist in the value that were not loaded already\n */\n useEffect(() => {\n if (value && hasLoadedFirstOptions) {\n if (hasMany) {\n const matchedOptions = findOptionsByValue()\n\n ;((matchedOptions as Option[]) || []).forEach((option, i) => {\n if (!option) {\n if (hasMultipleRelations) {\n void addOptionByID(value[i].value, value[i].relationTo)\n } else {\n void addOptionByID(value[i], relationTo)\n }\n }\n })\n } else {\n const matchedOption = findOptionsByValue()\n\n if (!matchedOption) {\n if (hasMultipleRelations) {\n const valueWithRelation = value as ValueWithRelation\n void addOptionByID(valueWithRelation.value, valueWithRelation.relationTo)\n } else {\n void addOptionByID(value, relationTo)\n }\n }\n }\n }\n }, [\n addOptionByID,\n findOptionsByValue,\n hasMany,\n hasMultipleRelations,\n relationTo,\n value,\n hasLoadedFirstOptions,\n ])\n\n const classes = ['field-type', baseClass, errorLoading && 'error-loading']\n .filter(Boolean)\n .join(' ')\n\n const valueToRender = (findOptionsByValue() || value) as Option\n\n return (\n <div className={classes}>\n {errorLoading ? (\n <div className={`${baseClass}__error-loading`}>{errorLoading}</div>\n ) : (\n <ReactSelect\n disabled={disabled}\n isMulti={hasMany}\n isSortable={isSortable}\n onChange={(selected) => {\n if (!selected) {\n onChange(null)\n return\n }\n\n if (hasMany && Array.isArray(selected)) {\n onChange(\n selected\n ? selected.map((option) => {\n if (hasMultipleRelations) {\n return {\n relationTo: option?.relationTo,\n value: option?.value,\n }\n }\n\n return option?.value\n })\n : null,\n )\n } else if (hasMultipleRelations && !Array.isArray(selected)) {\n onChange({\n relationTo: selected?.relationTo,\n value: selected?.value,\n })\n } else if (!Array.isArray(selected)) {\n onChange(selected?.value)\n }\n }}\n onInputChange={handleInputChange}\n onMenuScrollToBottom={handleScrollToBottom}\n options={options}\n placeholder={placeholder}\n value={valueToRender}\n />\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["formatAdminURL","qs","React","useCallback","useEffect","useReducer","useState","useDebounce","useEffectEvent","useConfig","useLocale","useTranslation","ReactSelect","optionsReducer","baseClass","maxResultsPerRequest","RelationshipFilter","props","disabled","field","admin","hasMany","relationTo","filterOptions","onChange","operator","value","placeholder","undefined","isSortable","isMultiValue","includes","config","routes","api","getEntityConfig","hasMultipleRelations","Array","isArray","options","dispatchOptions","search","setSearch","debouncedSearch","errorLoading","setErrorLoading","hasLoadedFirstOptions","setHasLoadedFirstOptions","i18n","t","locale","relationSlugs","loadedRelationships","useRef","Map","map","relation","hasLoadedAll","nextPage","addOptions","data","collection","collectionSlug","type","loadOptions","abortController","relationSlug","loadedRelationship","current","get","fieldToSearch","useAsTitle","where","and","query","depth","limit","code","page","select","push","like","response","fetch","apiRoute","path","stringify","addQueryPrefix","credentials","headers","language","signal","ok","json","docs","length","set","e","aborted","console","error","handleScrollToBottom","relationshipToLoad","entries","next","AbortController","findOptionsByValue","val","matchedOption","forEach","opt","some","subOpt","find","valueWithRelation","handleInputChange","input","required","addOptionByID","id","relations","abortControllers","controller","abort","_err","matchedOptions","option","i","classes","filter","Boolean","join","valueToRender","_jsx","className","isMulti","selected","onInputChange","onMenuScrollToBottom"],"sources":["../../../../../src/elements/WhereBuilder/Condition/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { PaginatedDocs, Where } from 'payload'\n\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useReducer, useState } from 'react'\n\nimport type { Option } from '../../../ReactSelect/types.js'\nimport type { RelationshipFilterProps as Props, ValueWithRelation } from './types.js'\n\nimport { useDebounce } from '../../../../hooks/useDebounce.js'\nimport { useEffectEvent } from '../../../../hooks/useEffectEvent.js'\nimport { useConfig } from '../../../../providers/Config/index.js'\nimport { useLocale } from '../../../../providers/Locale/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { ReactSelect } from '../../../ReactSelect/index.js'\nimport './index.scss'\nimport optionsReducer from './optionsReducer.js'\n\nconst baseClass = 'condition-value-relationship'\n\nconst maxResultsPerRequest = 10\n\nexport const RelationshipFilter: React.FC<Props> = (props) => {\n const {\n disabled,\n field: { admin = {}, hasMany, relationTo },\n filterOptions,\n onChange,\n operator,\n value,\n } = props\n\n const placeholder = 'placeholder' in admin ? admin?.placeholder : undefined\n const isSortable = admin?.isSortable\n\n const isMultiValue = hasMany || ['in', 'not_in'].includes(operator)\n\n const {\n config: {\n routes: { api },\n },\n getEntityConfig,\n } = useConfig()\n\n const hasMultipleRelations = Array.isArray(relationTo)\n const [options, dispatchOptions] = useReducer(optionsReducer, [])\n const [search, setSearch] = useState('')\n const debouncedSearch = useDebounce(search, 300)\n const [errorLoading, setErrorLoading] = useState('')\n const [hasLoadedFirstOptions, setHasLoadedFirstOptions] = useState(false)\n const { i18n, t } = useTranslation()\n const locale = useLocale()\n\n const relationSlugs = hasMultipleRelations ? relationTo : [relationTo]\n\n const loadedRelationships = React.useRef<\n Map<\n string,\n {\n hasLoadedAll: boolean\n nextPage: number\n }\n >\n >(\n new Map(\n relationSlugs.map((relation) => [\n relation,\n {\n hasLoadedAll: false,\n nextPage: 1,\n },\n ]),\n ),\n )\n\n const addOptions = useCallback(\n (data, relation) => {\n const collection = getEntityConfig({ collectionSlug: relation })\n dispatchOptions({ type: 'ADD', collection, data, hasMultipleRelations, i18n, relation })\n },\n [hasMultipleRelations, i18n, getEntityConfig],\n )\n\n const loadOptions = useEffectEvent(\n async ({\n abortController,\n relationSlug,\n }: {\n abortController: AbortController\n relationSlug: string\n }) => {\n const loadedRelationship = loadedRelationships.current.get(relationSlug)\n\n if (relationSlug && !loadedRelationship.hasLoadedAll) {\n const collection = getEntityConfig({\n collectionSlug: relationSlug,\n })\n\n const fieldToSearch = collection?.admin?.useAsTitle || 'id'\n\n const where: Where = {\n and: [],\n }\n\n const query = {\n depth: 0,\n limit: maxResultsPerRequest,\n locale: locale.code,\n page: loadedRelationship.nextPage,\n select: {\n [fieldToSearch]: true,\n },\n where,\n }\n\n if (filterOptions && filterOptions?.[relationSlug]) {\n query.where.and.push(filterOptions[relationSlug])\n }\n\n if (debouncedSearch) {\n query.where.and.push({\n [fieldToSearch]: {\n like: debouncedSearch,\n },\n })\n }\n\n try {\n const response = await fetch(\n formatAdminURL({\n apiRoute: api,\n path: `/${relationSlug}${qs.stringify(query, { addQueryPrefix: true })}`,\n }),\n {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n signal: abortController.signal,\n },\n )\n\n if (response.ok) {\n const data: PaginatedDocs = await response.json()\n if (data.docs.length > 0) {\n addOptions(data, relationSlug)\n\n if (data.nextPage) {\n loadedRelationships.current.set(relationSlug, {\n hasLoadedAll: false,\n nextPage: data.nextPage,\n })\n } else {\n loadedRelationships.current.set(relationSlug, {\n hasLoadedAll: true,\n nextPage: null,\n })\n }\n }\n } else {\n setErrorLoading(t('error:unspecific'))\n }\n } catch (e) {\n if (!abortController.signal.aborted) {\n console.error(e) // eslint-disable-line no-console\n }\n }\n }\n\n setHasLoadedFirstOptions(true)\n },\n )\n\n const handleScrollToBottom = React.useCallback(() => {\n const relationshipToLoad = loadedRelationships.current.entries().next().value\n\n if (relationshipToLoad[0] && !relationshipToLoad[1].hasLoadedAll) {\n const abortController = new AbortController()\n\n void loadOptions({\n abortController,\n relationSlug: relationshipToLoad[0],\n })\n }\n }, [])\n\n const findOptionsByValue = useCallback((): Option | Option[] => {\n if (value) {\n if (isMultiValue) {\n if (Array.isArray(value)) {\n return value.map((val) => {\n if (hasMultipleRelations) {\n let matchedOption: Option\n\n options.forEach((opt) => {\n if (opt.options) {\n opt.options.some((subOpt) => {\n if (subOpt?.value == val.value) {\n matchedOption = subOpt\n return true\n }\n\n return false\n })\n }\n })\n\n return matchedOption\n }\n\n return options.find((opt) => opt.value == val)\n })\n }\n\n return undefined\n }\n\n if (hasMultipleRelations) {\n let matchedOption: Option\n\n const valueWithRelation = value as ValueWithRelation\n\n options.forEach((opt) => {\n if (opt?.options) {\n opt.options.some((subOpt) => {\n if (subOpt?.value == valueWithRelation.value) {\n matchedOption = subOpt\n return true\n }\n return false\n })\n }\n })\n\n return matchedOption\n }\n\n return options.find((opt) => opt.value == value)\n }\n\n return undefined\n }, [isMultiValue, hasMultipleRelations, value, options])\n\n const handleInputChange = useCallback(\n (input: string) => {\n if (input !== search) {\n dispatchOptions({ type: 'CLEAR', i18n, required: false })\n\n const relationSlugs = Array.isArray(relationTo) ? relationTo : [relationTo]\n\n loadedRelationships.current = new Map(\n relationSlugs.map((relation) => [\n relation,\n {\n hasLoadedAll: false,\n nextPage: 1,\n },\n ]),\n )\n\n setSearch(input)\n }\n },\n [i18n, relationTo, search],\n )\n\n const addOptionByID = useCallback(\n async (id, relation) => {\n if (!errorLoading && id !== 'null' && id && relation) {\n const response = await fetch(\n formatAdminURL({ apiRoute: api, path: `/${relation}/${id}?depth=0` }),\n {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n },\n )\n\n if (response.ok) {\n const data = await response.json()\n addOptions({ docs: [data] }, relation)\n } else {\n // eslint-disable-next-line no-console\n console.error(t('error:loadingDocument', { id }))\n }\n }\n },\n [i18n, addOptions, api, errorLoading, t],\n )\n\n /**\n * When `relationTo` changes externally, reset the options and reload them from scratch\n * The `loadOptions` dependency is a useEffectEvent which has no dependencies of its own\n * This means we can safely depend on it without it triggering this effect to run\n * This is useful because this effect should _only_ run when `relationTo` changes\n */\n useEffect(() => {\n const relations = Array.isArray(relationTo) ? relationTo : [relationTo]\n\n loadedRelationships.current = new Map(\n relations.map((relation) => [\n relation,\n {\n hasLoadedAll: false,\n nextPage: 1,\n },\n ]),\n )\n\n dispatchOptions({ type: 'CLEAR', i18n, required: false })\n setHasLoadedFirstOptions(false)\n\n const abortControllers: AbortController[] = []\n\n relations.forEach((relation) => {\n const abortController = new AbortController()\n\n void loadOptions({\n abortController,\n relationSlug: relation,\n })\n\n abortControllers.push(abortController)\n })\n\n return () => {\n abortControllers.forEach((controller) => {\n if (controller.signal) {\n try {\n controller.abort()\n } catch (_err) {\n // swallow error\n }\n }\n })\n }\n }, [i18n, relationTo, debouncedSearch, filterOptions])\n\n /**\n * Load any other options that might exist in the value that were not loaded already\n */\n useEffect(() => {\n if (value && hasLoadedFirstOptions) {\n if (isMultiValue) {\n const matchedOptions = findOptionsByValue()\n\n ;((matchedOptions as Option[]) || []).forEach((option, i) => {\n if (!option) {\n if (hasMultipleRelations) {\n void addOptionByID(value[i].value, value[i].relationTo)\n } else {\n void addOptionByID(value[i], relationTo)\n }\n }\n })\n } else {\n const matchedOption = findOptionsByValue()\n\n if (!matchedOption) {\n if (hasMultipleRelations) {\n const valueWithRelation = value as ValueWithRelation\n void addOptionByID(valueWithRelation.value, valueWithRelation.relationTo)\n } else {\n void addOptionByID(value, relationTo)\n }\n }\n }\n }\n }, [\n addOptionByID,\n findOptionsByValue,\n isMultiValue,\n hasMultipleRelations,\n relationTo,\n value,\n hasLoadedFirstOptions,\n ])\n\n const classes = ['field-type', baseClass, errorLoading && 'error-loading']\n .filter(Boolean)\n .join(' ')\n\n const valueToRender = (findOptionsByValue() || value) as Option\n\n return (\n <div className={classes}>\n {errorLoading ? (\n <div className={`${baseClass}__error-loading`}>{errorLoading}</div>\n ) : (\n <ReactSelect\n disabled={disabled}\n isMulti={isMultiValue}\n isSortable={isSortable}\n onChange={(selected) => {\n if (!selected) {\n onChange(null)\n return\n }\n\n if (isMultiValue && Array.isArray(selected)) {\n onChange(\n selected\n ? selected.map((option) => {\n if (hasMultipleRelations) {\n return {\n relationTo: option?.relationTo,\n value: option?.value,\n }\n }\n\n return option?.value\n })\n : null,\n )\n } else if (hasMultipleRelations && !Array.isArray(selected)) {\n onChange({\n relationTo: selected?.relationTo,\n value: selected?.value,\n })\n } else if (!Array.isArray(selected)) {\n onChange(selected?.value)\n }\n }}\n onInputChange={handleInputChange}\n onMenuScrollToBottom={handleScrollToBottom}\n options={options}\n placeholder={placeholder}\n value={valueToRender}\n />\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-types.d.ts","sourceRoot":"","sources":["../../../src/elements/WhereBuilder/field-types.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAa1C,eAAO,MAAM,cAAc;;;GAS1B,CAAA;AA8DD,eAAO,MAAM,mBAAmB,EAAE;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,SAAS,EAAE,MAAM,CAAA;QACjB,SAAS,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAC9C,CAAA;CA0DF,CAAA;AAED,eAAO,MAAM,sBAAsB,yBAGhC;IACD,KAAK,EAAE,WAAW,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,KAAG;IACF,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE;QACd,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;KACd,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"field-types.d.ts","sourceRoot":"","sources":["../../../src/elements/WhereBuilder/field-types.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAa1C,eAAO,MAAM,cAAc;;;GAS1B,CAAA;AA8DD,eAAO,MAAM,mBAAmB,EAAE;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,SAAS,EAAE,MAAM,CAAA;QACjB,SAAS,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAC9C,CAAA;CA0DF,CAAA;AAED,eAAO,MAAM,sBAAsB,yBAGhC;IACD,KAAK,EAAE,WAAW,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,KAAG;IACF,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE;QACd,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;KACd,EAAE,CAAA;CAqBJ,CAAA"}
|
|
@@ -120,11 +120,8 @@ export const getValidFieldOperators = ({
|
|
|
120
120
|
}) => {
|
|
121
121
|
let validOperators = [];
|
|
122
122
|
if (field.type === 'relationship' && Array.isArray(field.relationTo)) {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
} else {
|
|
126
|
-
validOperators = [...base];
|
|
127
|
-
}
|
|
123
|
+
// Polymorphic relationships store {relationTo, value} - in/not_in only match value, not both properties
|
|
124
|
+
validOperators = [...equalsOperators, exists];
|
|
128
125
|
} else {
|
|
129
126
|
validOperators = [...fieldTypeConditions[field.type].operators];
|
|
130
127
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-types.js","names":["equalsOperators","label","value","arrayOperators","exists","base","numeric","geo","within","intersects","like","notLike","contains","fieldTypeConditions","checkbox","component","operators","code","date","email","json","number","point","radio","relationship","richText","select","text","textarea","upload","getValidFieldOperators","field","operator","validOperators","type","Array","isArray","relationTo","
|
|
1
|
+
{"version":3,"file":"field-types.js","names":["equalsOperators","label","value","arrayOperators","exists","base","numeric","geo","within","intersects","like","notLike","contains","fieldTypeConditions","checkbox","component","operators","code","date","email","json","number","point","radio","relationship","richText","select","text","textarea","upload","getValidFieldOperators","field","operator","validOperators","type","Array","isArray","relationTo","validOperator","find"],"sources":["../../../src/elements/WhereBuilder/field-types.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientField } from 'payload'\n\nconst equalsOperators = [\n {\n label: 'equals',\n value: 'equals',\n },\n {\n label: 'isNotEqualTo',\n value: 'not_equals',\n },\n]\n\nexport const arrayOperators = [\n {\n label: 'isIn',\n value: 'in',\n },\n {\n label: 'isNotIn',\n value: 'not_in',\n },\n]\n\nconst exists = {\n label: 'exists',\n value: 'exists',\n}\n\nconst base = [...equalsOperators, ...arrayOperators, exists]\n\nconst numeric = [\n ...base,\n {\n label: 'isGreaterThan',\n value: 'greater_than',\n },\n {\n label: 'isLessThan',\n value: 'less_than',\n },\n {\n label: 'isLessThanOrEqualTo',\n value: 'less_than_equal',\n },\n {\n label: 'isGreaterThanOrEqualTo',\n value: 'greater_than_equal',\n },\n]\n\nconst geo = [\n ...equalsOperators,\n {\n label: 'near',\n value: 'near',\n },\n]\n\nconst within = {\n label: 'within',\n value: 'within',\n}\n\nconst intersects = {\n label: 'intersects',\n value: 'intersects',\n}\n\nconst like = {\n label: 'isLike',\n value: 'like',\n}\n\nconst notLike = {\n label: 'isNotLike',\n value: 'not_like',\n}\n\nconst contains = {\n label: 'contains',\n value: 'contains',\n}\n\nexport const fieldTypeConditions: {\n [key: string]: {\n component: string\n operators: { label: string; value: string }[]\n }\n} = {\n checkbox: {\n component: 'Text',\n operators: [...equalsOperators, exists],\n },\n code: {\n component: 'Text',\n operators: [...base, like, notLike, contains],\n },\n date: {\n component: 'Date',\n operators: [...numeric, exists],\n },\n email: {\n component: 'Text',\n operators: [...base, contains],\n },\n json: {\n component: 'Text',\n operators: [...base, like, contains, notLike, within, intersects],\n },\n number: {\n component: 'Number',\n operators: [...numeric, exists],\n },\n point: {\n component: 'Point',\n operators: [...geo, exists, within, intersects],\n },\n radio: {\n component: 'Select',\n operators: [...base],\n },\n relationship: {\n component: 'Relationship',\n operators: [...base],\n },\n richText: {\n component: 'Text',\n operators: [...base, like, notLike, contains],\n },\n select: {\n component: 'Select',\n operators: [...base],\n },\n text: {\n component: 'Text',\n operators: [...base, like, notLike, contains],\n },\n textarea: {\n component: 'Text',\n operators: [...base, like, notLike, contains],\n },\n upload: {\n component: 'Relationship',\n operators: [...base],\n },\n}\n\nexport const getValidFieldOperators = ({\n field,\n operator,\n}: {\n field: ClientField\n operator?: string\n}): {\n validOperator: string\n validOperators: {\n label: string\n value: string\n }[]\n} => {\n let validOperators: {\n label: string\n value: string\n }[] = []\n\n if (field.type === 'relationship' && Array.isArray(field.relationTo)) {\n // Polymorphic relationships store {relationTo, value} - in/not_in only match value, not both properties\n validOperators = [...equalsOperators, exists]\n } else {\n validOperators = [...fieldTypeConditions[field.type].operators]\n }\n\n return {\n validOperator:\n operator && validOperators.find(({ value }) => value === operator)\n ? operator\n : validOperators[0].value,\n validOperators,\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,7 +8,7 @@ import React from 'react';
|
|
|
8
8
|
* rendering the original component.
|
|
9
9
|
*
|
|
10
10
|
* @example
|
|
11
|
-
* const PredefinedComponent =
|
|
11
|
+
* const PredefinedComponent = withMergedProps({
|
|
12
12
|
* Component: OriginalComponent,
|
|
13
13
|
* toMergeIntoProps: { someExtraValue: 5 }
|
|
14
14
|
* });
|
|
@@ -10,7 +10,7 @@ import React from 'react';
|
|
|
10
10
|
* rendering the original component.
|
|
11
11
|
*
|
|
12
12
|
* @example
|
|
13
|
-
* const PredefinedComponent =
|
|
13
|
+
* const PredefinedComponent = withMergedProps({
|
|
14
14
|
* Component: OriginalComponent,
|
|
15
15
|
* toMergeIntoProps: { someExtraValue: 5 }
|
|
16
16
|
* });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["isReactServerComponentOrFunction","serverProps","React","withMergedProps","Component","sanitizeServerOnlyProps","toMergeIntoProps","undefined","MergedPropsComponent","passedProps","mergedProps","simpleMergeProps","forEach","prop","_jsx","props","toMerge"],"sources":["../../../src/elements/withMergedProps/index.tsx"],"sourcesContent":["import { isReactServerComponentOrFunction, serverProps } from 'payload/shared'\nimport React from 'react'\n\n/**\n * Creates a higher-order component (HOC) that merges predefined properties (`toMergeIntoProps`)\n * with any properties passed to the resulting component.\n *\n * Use this when you want to pre-specify some props for a component, while also allowing users to\n * pass in their own props. The HOC ensures the passed props and predefined props are combined before\n * rendering the original component.\n *\n * @example\n * const PredefinedComponent =
|
|
1
|
+
{"version":3,"file":"index.js","names":["isReactServerComponentOrFunction","serverProps","React","withMergedProps","Component","sanitizeServerOnlyProps","toMergeIntoProps","undefined","MergedPropsComponent","passedProps","mergedProps","simpleMergeProps","forEach","prop","_jsx","props","toMerge"],"sources":["../../../src/elements/withMergedProps/index.tsx"],"sourcesContent":["import { isReactServerComponentOrFunction, serverProps } from 'payload/shared'\nimport React from 'react'\n\n/**\n * Creates a higher-order component (HOC) that merges predefined properties (`toMergeIntoProps`)\n * with any properties passed to the resulting component.\n *\n * Use this when you want to pre-specify some props for a component, while also allowing users to\n * pass in their own props. The HOC ensures the passed props and predefined props are combined before\n * rendering the original component.\n *\n * @example\n * const PredefinedComponent = withMergedProps({\n * Component: OriginalComponent,\n * toMergeIntoProps: { someExtraValue: 5 }\n * });\n * // Using <PredefinedComponent customProp=\"value\" /> will result in\n * // <OriginalComponent customProp=\"value\" someExtraValue={5} />\n *\n * @returns A higher-order component with combined properties.\n *\n * @param Component - The original component to wrap.\n * @param sanitizeServerOnlyProps - If true, server-only props will be removed from the merged props. @default true if the component is not a server component, false otherwise.\n * @param toMergeIntoProps - The properties to merge into the passed props.\n */\nexport function withMergedProps<ToMergeIntoProps, CompleteReturnProps>({\n Component,\n sanitizeServerOnlyProps,\n toMergeIntoProps,\n}: {\n Component: React.FC<CompleteReturnProps>\n sanitizeServerOnlyProps?: boolean\n toMergeIntoProps: ToMergeIntoProps\n}): React.FC<CompleteReturnProps> {\n if (sanitizeServerOnlyProps === undefined) {\n sanitizeServerOnlyProps = !isReactServerComponentOrFunction(Component)\n }\n // A wrapper around the args.Component to inject the args.toMergeArgs as props, which are merged with the passed props\n const MergedPropsComponent: React.FC<CompleteReturnProps> = (passedProps) => {\n const mergedProps = simpleMergeProps(passedProps, toMergeIntoProps) as CompleteReturnProps\n\n if (sanitizeServerOnlyProps) {\n serverProps.forEach((prop) => {\n delete mergedProps[prop]\n })\n }\n\n return <Component {...mergedProps} />\n }\n\n return MergedPropsComponent\n}\n\nfunction simpleMergeProps(props, toMerge) {\n return { ...props, ...toMerge }\n}\n"],"mappings":";AAAA,SAASA,gCAAgC,EAAEC,WAAW,QAAQ;AAC9D,OAAOC,KAAA,MAAW;AAElB;;;;;;;;;;;;;;;;;;;;;;AAsBA,OAAO,SAASC,gBAAuD;EACrEC,SAAS;EACTC,uBAAuB;EACvBC;AAAgB,CAKjB;EACC,IAAID,uBAAA,KAA4BE,SAAA,EAAW;IACzCF,uBAAA,GAA0B,CAACL,gCAAA,CAAiCI,SAAA;EAC9D;EACA;EACA,MAAMI,oBAAA,GAAuDC,WAAA;IAC3D,MAAMC,WAAA,GAAcC,gBAAA,CAAiBF,WAAA,EAAaH,gBAAA;IAElD,IAAID,uBAAA,EAAyB;MAC3BJ,WAAA,CAAYW,OAAO,CAAEC,IAAA;QACnB,OAAOH,WAAW,CAACG,IAAA,CAAK;MAC1B;IACF;IAEA,oBAAOC,IAAA,CAACV,SAAA;MAAW,GAAGM;;EACxB;EAEA,OAAOF,oBAAA;AACT;AAEA,SAASG,iBAAiBI,KAAK,EAAEC,OAAO;EACtC,OAAO;IAAE,GAAGD,KAAK;IAAE,GAAGC;EAAQ;AAChC","ignoreList":[]}
|
|
@@ -10,5 +10,5 @@ function require(m) {
|
|
|
10
10
|
}
|
|
11
11
|
// Workaround end
|
|
12
12
|
|
|
13
|
-
import{n as a}from"./chunk-
|
|
14
|
-
//# sourceMappingURL=DatePicker-
|
|
13
|
+
import{n as a}from"./chunk-WDZJLNNB.js";import"./chunk-5LKBKI4T.js";export{a as default};
|
|
14
|
+
//# sourceMappingURL=DatePicker-T2DMDMM5.js.map
|