@payloadcms/ui 3.68.0-internal-debug.2eb12b9 → 3.68.0-internal-debug.dafc24d
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/AddNewRelation/index.js +83 -27
- package/dist/elements/AddNewRelation/index.js.map +1 -1
- package/dist/elements/AnimateHeight/index.js +13 -5
- package/dist/elements/AnimateHeight/index.js.map +1 -1
- package/dist/elements/AnimateHeight/usePatchAnimateHeight.js +2 -2
- package/dist/elements/AnimateHeight/usePatchAnimateHeight.js.map +1 -1
- package/dist/elements/AppHeader/index.js +107 -35
- package/dist/elements/AppHeader/index.js.map +1 -1
- package/dist/elements/ArrayAction/index.js +116 -36
- package/dist/elements/ArrayAction/index.js.map +1 -1
- package/dist/elements/Autosave/index.js +19 -6
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/Banner/index.js +25 -9
- package/dist/elements/Banner/index.js.map +1 -1
- package/dist/elements/BulkUpload/ActionsBar/index.js +97 -33
- package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
- package/dist/elements/BulkUpload/AddFilesView/index.js +43 -15
- package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/AddingFilesView/index.js +47 -15
- package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js +7 -3
- package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
- package/dist/elements/BulkUpload/DrawerCloseButton/index.js +12 -4
- package/dist/elements/BulkUpload/DrawerCloseButton/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js +53 -17
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditMany/DrawerContent.js +90 -30
- package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/BulkUpload/EditMany/index.js +33 -13
- package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.js +214 -70
- package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +21 -13
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/BulkUpload/Header/index.js +19 -7
- package/dist/elements/BulkUpload/Header/index.js.map +1 -1
- package/dist/elements/BulkUpload/index.js +70 -19
- package/dist/elements/BulkUpload/index.js.map +1 -1
- package/dist/elements/Button/index.js +103 -35
- package/dist/elements/Button/index.js.map +1 -1
- package/dist/elements/Button/types.js +13 -1
- package/dist/elements/Button/types.js.map +1 -1
- package/dist/elements/Card/index.js +30 -10
- package/dist/elements/Card/index.js.map +1 -1
- package/dist/elements/CheckboxPopup/index.js +19 -7
- package/dist/elements/CheckboxPopup/index.js.map +1 -1
- package/dist/elements/ClipboardAction/ClipboardActionLabel.js +16 -4
- package/dist/elements/ClipboardAction/ClipboardActionLabel.js.map +1 -1
- package/dist/elements/ClipboardAction/index.js +42 -14
- package/dist/elements/ClipboardAction/index.js.map +1 -1
- package/dist/elements/CloseModalButton/index.js +12 -4
- package/dist/elements/CloseModalButton/index.js.map +1 -1
- package/dist/elements/CodeEditor/CodeEditor.js +15 -7
- package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
- package/dist/elements/CodeEditor/index.js +18 -6
- package/dist/elements/CodeEditor/index.js.map +1 -1
- package/dist/elements/CodeEditor/types.js +3 -1
- package/dist/elements/CodeEditor/types.js.map +1 -1
- package/dist/elements/Collapsible/index.js +92 -29
- package/dist/elements/Collapsible/index.js.map +1 -1
- package/dist/elements/Collapsible/provider.js +7 -3
- package/dist/elements/Collapsible/provider.js.map +1 -1
- package/dist/elements/ColumnSelector/index.js +13 -5
- package/dist/elements/ColumnSelector/index.js.map +1 -1
- package/dist/elements/Combobox/index.js +43 -13
- package/dist/elements/Combobox/index.js.map +1 -1
- package/dist/elements/ConfirmationModal/index.js +49 -17
- package/dist/elements/ConfirmationModal/index.js.map +1 -1
- package/dist/elements/CopyLocaleData/index.js +73 -25
- package/dist/elements/CopyLocaleData/index.js.map +1 -1
- package/dist/elements/CopyToClipboard/index.js +18 -6
- package/dist/elements/CopyToClipboard/index.js.map +1 -1
- package/dist/elements/DatePicker/DatePicker.js +42 -13
- package/dist/elements/DatePicker/DatePicker.js.map +1 -1
- package/dist/elements/DatePicker/getFormattedLocale.js +1 -0
- package/dist/elements/DatePicker/getFormattedLocale.js.map +1 -1
- package/dist/elements/DatePicker/index.js +19 -7
- package/dist/elements/DatePicker/index.js.map +1 -1
- package/dist/elements/DefaultListViewTabs/index.js +25 -9
- package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
- package/dist/elements/DeleteDocument/index.js +49 -17
- package/dist/elements/DeleteDocument/index.js.map +1 -1
- package/dist/elements/DeleteMany/index.js +98 -26
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.js +304 -96
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js +12 -4
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerHeader/index.js +59 -19
- package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/Provider.js +12 -4
- package/dist/elements/DocumentDrawer/Provider.js.map +1 -1
- package/dist/elements/DocumentDrawer/index.js +32 -10
- package/dist/elements/DocumentDrawer/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/types.js +11 -1
- package/dist/elements/DocumentDrawer/types.js.map +1 -1
- package/dist/elements/DocumentFields/index.js +54 -18
- package/dist/elements/DocumentFields/index.js.map +1 -1
- package/dist/elements/DocumentLocked/index.js +73 -25
- package/dist/elements/DocumentLocked/index.js.map +1 -1
- package/dist/elements/DocumentTakeOver/index.js +49 -17
- package/dist/elements/DocumentTakeOver/index.js.map +1 -1
- package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +7 -3
- package/dist/elements/DraggableSortable/DraggableSortableItem/index.js.map +1 -1
- package/dist/elements/DraggableSortable/index.js +19 -7
- package/dist/elements/DraggableSortable/index.js.map +1 -1
- package/dist/elements/DraggableSortable/useDraggableSortable/index.js +1 -0
- package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
- package/dist/elements/Drawer/index.js +80 -26
- package/dist/elements/Drawer/index.js.map +1 -1
- package/dist/elements/DrawerActionHeader/index.js +37 -13
- package/dist/elements/DrawerActionHeader/index.js.map +1 -1
- package/dist/elements/DrawerContentContainer/index.js +7 -3
- package/dist/elements/DrawerContentContainer/index.js.map +1 -1
- package/dist/elements/Dropzone/index.js +7 -3
- package/dist/elements/Dropzone/index.js.map +1 -1
- package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +61 -21
- package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
- package/dist/elements/DuplicateDocument/index.js +25 -9
- package/dist/elements/DuplicateDocument/index.js.map +1 -1
- package/dist/elements/EditMany/DrawerContent.js +146 -44
- package/dist/elements/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/EditMany/index.js +40 -14
- package/dist/elements/EditMany/index.js.map +1 -1
- package/dist/elements/EditUpload/index.js +232 -76
- package/dist/elements/EditUpload/index.js.map +1 -1
- package/dist/elements/EmailAndUsername/index.js +31 -11
- package/dist/elements/EmailAndUsername/index.js.map +1 -1
- package/dist/elements/ErrorPill/index.js +19 -7
- package/dist/elements/ErrorPill/index.js.map +1 -1
- package/dist/elements/FieldDiffContainer/index.js +25 -9
- package/dist/elements/FieldDiffContainer/index.js.map +1 -1
- package/dist/elements/FieldDiffLabel/index.js +7 -3
- package/dist/elements/FieldDiffLabel/index.js.map +1 -1
- package/dist/elements/FieldSelect/index.js +19 -7
- package/dist/elements/FieldSelect/index.js.map +1 -1
- package/dist/elements/FileDetails/DraggableFileDetails/index.js +70 -22
- package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
- package/dist/elements/FileDetails/FileMeta/index.js +43 -15
- package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
- package/dist/elements/FileDetails/StaticFileDetails/index.js +43 -15
- package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
- package/dist/elements/FileDetails/index.js +13 -5
- package/dist/elements/FileDetails/index.js.map +1 -1
- package/dist/elements/FolderView/Breadcrumbs/index.js +31 -11
- package/dist/elements/FolderView/Breadcrumbs/index.js.map +1 -1
- package/dist/elements/FolderView/BrowseByFolderButton/index.js +12 -4
- package/dist/elements/FolderView/BrowseByFolderButton/index.js.map +1 -1
- package/dist/elements/FolderView/Cell/index.client.js +7 -3
- package/dist/elements/FolderView/Cell/index.client.js.map +1 -1
- package/dist/elements/FolderView/Cell/index.server.js +7 -3
- package/dist/elements/FolderView/Cell/index.server.js.map +1 -1
- package/dist/elements/FolderView/ColoredFolderIcon/index.js +7 -3
- package/dist/elements/FolderView/ColoredFolderIcon/index.js.map +1 -1
- package/dist/elements/FolderView/CurrentFolderActions/index.js +68 -24
- package/dist/elements/FolderView/CurrentFolderActions/index.js.map +1 -1
- package/dist/elements/FolderView/DragOverlaySelection/index.js +31 -11
- package/dist/elements/FolderView/DragOverlaySelection/index.js.map +1 -1
- package/dist/elements/FolderView/DraggableTableRow/index.js +25 -9
- package/dist/elements/FolderView/DraggableTableRow/index.js.map +1 -1
- package/dist/elements/FolderView/DraggableWithClick/index.js +7 -3
- package/dist/elements/FolderView/DraggableWithClick/index.js.map +1 -1
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.js +15 -7
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.js.map +1 -1
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +189 -62
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -1
- package/dist/elements/FolderView/FilterFolderTypePill/index.js +19 -7
- package/dist/elements/FolderView/FilterFolderTypePill/index.js.map +1 -1
- package/dist/elements/FolderView/FolderField/index.server.js +7 -3
- package/dist/elements/FolderView/FolderField/index.server.js.map +1 -1
- package/dist/elements/FolderView/FolderFileCard/index.js +104 -31
- package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -1
- package/dist/elements/FolderView/FolderFileTable/index.js +49 -17
- package/dist/elements/FolderView/FolderFileTable/index.js.map +1 -1
- package/dist/elements/FolderView/FolderTypeField/index.js +7 -3
- package/dist/elements/FolderView/FolderTypeField/index.js.map +1 -1
- package/dist/elements/FolderView/ItemCardGrid/index.js +21 -9
- package/dist/elements/FolderView/ItemCardGrid/index.js.map +1 -1
- package/dist/elements/FolderView/MoveDocToFolder/index.js +28 -13
- package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -1
- package/dist/elements/FolderView/SimpleTable/index.js +67 -23
- package/dist/elements/FolderView/SimpleTable/index.js.map +1 -1
- package/dist/elements/FolderView/SortByPill/index.js +86 -30
- package/dist/elements/FolderView/SortByPill/index.js.map +1 -1
- package/dist/elements/FolderView/ToggleViewButtons/index.js +25 -9
- package/dist/elements/FolderView/ToggleViewButtons/index.js.map +1 -1
- package/dist/elements/FullscreenModal/index.js +7 -3
- package/dist/elements/FullscreenModal/index.js.map +1 -1
- package/dist/elements/GenerateConfirmation/index.js +31 -11
- package/dist/elements/GenerateConfirmation/index.js.map +1 -1
- package/dist/elements/GroupByBuilder/index.js +43 -15
- package/dist/elements/GroupByBuilder/index.js.map +1 -1
- package/dist/elements/Gutter/index.js +7 -3
- package/dist/elements/Gutter/index.js.map +1 -1
- package/dist/elements/HTMLDiff/diff/index.js +24 -3
- package/dist/elements/HTMLDiff/diff/index.js.map +1 -1
- package/dist/elements/HTMLDiff/index.js +13 -5
- package/dist/elements/HTMLDiff/index.js.map +1 -1
- package/dist/elements/Hamburger/index.js +35 -11
- package/dist/elements/Hamburger/index.js.map +1 -1
- package/dist/elements/HydrateAuthProvider/index.js +6 -1
- package/dist/elements/HydrateAuthProvider/index.js.map +1 -1
- package/dist/elements/IDLabel/index.js +13 -5
- package/dist/elements/IDLabel/index.js.map +1 -1
- package/dist/elements/LeaveWithoutSaving/index.js +13 -5
- package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
- package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +3 -1
- package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
- package/dist/elements/Link/index.js +12 -4
- package/dist/elements/Link/index.js.map +1 -1
- package/dist/elements/ListControls/index.js +126 -42
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListControls/types.js +7 -1
- package/dist/elements/ListControls/types.js.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +20 -8
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/ListDrawer/Provider.js +15 -4
- package/dist/elements/ListDrawer/Provider.js.map +1 -1
- package/dist/elements/ListDrawer/index.js +34 -11
- package/dist/elements/ListDrawer/index.js.map +1 -1
- package/dist/elements/ListDrawer/types.js +5 -1
- package/dist/elements/ListDrawer/types.js.map +1 -1
- package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js +19 -7
- package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js.map +1 -1
- package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js +13 -5
- package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +12 -4
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js +7 -3
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +48 -16
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +37 -13
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
- package/dist/elements/ListHeader/index.js +43 -15
- package/dist/elements/ListHeader/index.js.map +1 -1
- package/dist/elements/ListSelection/index.js +66 -20
- package/dist/elements/ListSelection/index.js.map +1 -1
- package/dist/elements/LivePreview/Device/index.js +13 -5
- package/dist/elements/LivePreview/Device/index.js.map +1 -1
- package/dist/elements/LivePreview/DeviceContainer/index.js +7 -3
- package/dist/elements/LivePreview/DeviceContainer/index.js.map +1 -1
- package/dist/elements/LivePreview/IFrame/index.js +7 -3
- package/dist/elements/LivePreview/IFrame/index.js.map +1 -1
- package/dist/elements/LivePreview/Toggler/index.js +13 -5
- package/dist/elements/LivePreview/Toggler/index.js.map +1 -1
- package/dist/elements/LivePreview/Toolbar/Controls/index.js +137 -45
- package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -1
- package/dist/elements/LivePreview/Toolbar/SizeInput/index.js +7 -3
- package/dist/elements/LivePreview/Toolbar/SizeInput/index.js.map +1 -1
- package/dist/elements/LivePreview/Toolbar/index.js +48 -16
- package/dist/elements/LivePreview/Toolbar/index.js.map +1 -1
- package/dist/elements/LivePreview/ToolbarArea/index.js +7 -3
- package/dist/elements/LivePreview/ToolbarArea/index.js.map +1 -1
- package/dist/elements/LivePreview/Window/index.js +41 -13
- package/dist/elements/LivePreview/Window/index.js.map +1 -1
- package/dist/elements/Loading/index.js +55 -19
- package/dist/elements/Loading/index.js.map +1 -1
- package/dist/elements/LoadingOverlay/index.js +13 -5
- package/dist/elements/LoadingOverlay/index.js.map +1 -1
- package/dist/elements/Localizer/LocalizerLabel/index.js +31 -11
- package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
- package/dist/elements/Localizer/index.js +47 -15
- package/dist/elements/Localizer/index.js.map +1 -1
- package/dist/elements/Locked/index.js +18 -6
- package/dist/elements/Locked/index.js.map +1 -1
- package/dist/elements/Logout/index.js +17 -5
- package/dist/elements/Logout/index.js.map +1 -1
- package/dist/elements/Nav/NavToggler/index.js +7 -3
- package/dist/elements/Nav/NavToggler/index.js.map +1 -1
- package/dist/elements/Nav/context.js +7 -3
- package/dist/elements/Nav/context.js.map +1 -1
- package/dist/elements/NavGroup/index.js +49 -17
- package/dist/elements/NavGroup/index.js.map +1 -1
- package/dist/elements/NoListResults/index.js +19 -7
- package/dist/elements/NoListResults/index.js.map +1 -1
- package/dist/elements/PageControls/GroupByPageControls.js +7 -3
- package/dist/elements/PageControls/GroupByPageControls.js.map +1 -1
- package/dist/elements/PageControls/index.js +37 -13
- package/dist/elements/PageControls/index.js.map +1 -1
- package/dist/elements/Pagination/ClickableArrow/index.js +12 -4
- package/dist/elements/Pagination/ClickableArrow/index.js.map +1 -1
- package/dist/elements/Pagination/Page/index.js +7 -3
- package/dist/elements/Pagination/Page/index.js.map +1 -1
- package/dist/elements/Pagination/Separator/index.js +7 -3
- package/dist/elements/Pagination/Separator/index.js.map +1 -1
- package/dist/elements/Pagination/index.js +19 -7
- package/dist/elements/Pagination/index.js.map +1 -1
- package/dist/elements/PerPage/index.js +61 -21
- package/dist/elements/PerPage/index.js.map +1 -1
- package/dist/elements/PermanentlyDeleteButton/index.js +31 -11
- package/dist/elements/PermanentlyDeleteButton/index.js.map +1 -1
- package/dist/elements/Pill/index.js +42 -15
- package/dist/elements/Pill/index.js.map +1 -1
- package/dist/elements/PillSelector/index.js +34 -10
- package/dist/elements/PillSelector/index.js.map +1 -1
- package/dist/elements/Popup/PopupButtonList/index.js +25 -9
- package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
- package/dist/elements/Popup/PopupDivider/index.js +7 -3
- package/dist/elements/Popup/PopupDivider/index.js.map +1 -1
- package/dist/elements/Popup/PopupGroupLabel/index.js +7 -3
- package/dist/elements/Popup/PopupGroupLabel/index.js.map +1 -1
- package/dist/elements/Popup/PopupTrigger/index.js +13 -5
- package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
- package/dist/elements/Popup/index.js +60 -20
- package/dist/elements/Popup/index.js.map +1 -1
- package/dist/elements/PreviewButton/index.js +12 -4
- package/dist/elements/PreviewButton/index.js.map +1 -1
- package/dist/elements/PreviewSizes/index.js +97 -33
- package/dist/elements/PreviewSizes/index.js.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js +67 -23
- package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.js +165 -53
- package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
- package/dist/elements/PublishButton/index.js +49 -17
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/PublishMany/DrawerContent.js +7 -3
- package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/PublishMany/index.js +28 -10
- package/dist/elements/PublishMany/index.js.map +1 -1
- package/dist/elements/QueryPresets/QueryPresetBar/index.js +109 -38
- package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
- package/dist/elements/QueryPresets/QueryPresetToggler/index.js +42 -14
- package/dist/elements/QueryPresets/QueryPresetToggler/index.js.map +1 -1
- package/dist/elements/QueryPresets/cells/AccessCell/index.js +25 -9
- package/dist/elements/QueryPresets/cells/AccessCell/index.js.map +1 -1
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.js +13 -5
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.js.map +1 -1
- package/dist/elements/QueryPresets/cells/GroupByCell/index.js +13 -5
- package/dist/elements/QueryPresets/cells/GroupByCell/index.js.map +1 -1
- package/dist/elements/QueryPresets/cells/WhereCell/index.js +7 -3
- package/dist/elements/QueryPresets/cells/WhereCell/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/ColumnsField/index.js +25 -9
- package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/GroupByField/index.js +31 -11
- package/dist/elements/QueryPresets/fields/GroupByField/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/WhereField/index.js +79 -27
- package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
- package/dist/elements/ReactSelect/ClearIndicator/index.js +13 -5
- package/dist/elements/ReactSelect/ClearIndicator/index.js.map +1 -1
- package/dist/elements/ReactSelect/Control/index.js +13 -5
- package/dist/elements/ReactSelect/Control/index.js.map +1 -1
- package/dist/elements/ReactSelect/DropdownIndicator/index.js +13 -5
- package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -1
- package/dist/elements/ReactSelect/Input/index.js +13 -5
- package/dist/elements/ReactSelect/Input/index.js.map +1 -1
- package/dist/elements/ReactSelect/MultiValue/index.js +13 -5
- package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
- package/dist/elements/ReactSelect/MultiValueLabel/index.js +13 -5
- package/dist/elements/ReactSelect/MultiValueLabel/index.js.map +1 -1
- package/dist/elements/ReactSelect/MultiValueRemove/index.js +19 -7
- package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
- package/dist/elements/ReactSelect/SingleValue/index.js +13 -5
- package/dist/elements/ReactSelect/SingleValue/index.js.map +1 -1
- package/dist/elements/ReactSelect/ValueContainer/index.js +19 -7
- package/dist/elements/ReactSelect/ValueContainer/index.js.map +1 -1
- package/dist/elements/ReactSelect/index.js +45 -17
- package/dist/elements/ReactSelect/index.js.map +1 -1
- package/dist/elements/ReactSelect/types.js +8 -1
- package/dist/elements/ReactSelect/types.js.map +1 -1
- package/dist/elements/RelationshipTable/AddNewButton.js +37 -13
- package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
- package/dist/elements/RelationshipTable/Pagination.js +7 -3
- package/dist/elements/RelationshipTable/Pagination.js.map +1 -1
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +24 -8
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
- package/dist/elements/RelationshipTable/index.js +121 -41
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/RenderComponent/index.js +19 -7
- package/dist/elements/RenderComponent/index.js.map +1 -1
- package/dist/elements/RenderIfInViewport/index.js +7 -3
- package/dist/elements/RenderIfInViewport/index.js.map +1 -1
- package/dist/elements/RenderServerComponent/index.js +13 -5
- package/dist/elements/RenderServerComponent/index.js.map +1 -1
- package/dist/elements/RenderTitle/index.js +25 -9
- package/dist/elements/RenderTitle/index.js.map +1 -1
- package/dist/elements/RestoreButton/index.js +49 -17
- package/dist/elements/RestoreButton/index.js.map +1 -1
- package/dist/elements/RestoreMany/index.js +38 -13
- package/dist/elements/RestoreMany/index.js.map +1 -1
- package/dist/elements/SaveButton/index.js +8 -5
- package/dist/elements/SaveButton/index.js.map +1 -1
- package/dist/elements/SaveDraftButton/index.js +8 -5
- package/dist/elements/SaveDraftButton/index.js.map +1 -1
- package/dist/elements/SearchBar/index.js +24 -8
- package/dist/elements/SearchBar/index.js.map +1 -1
- package/dist/elements/SearchFilter/index.js +13 -5
- package/dist/elements/SearchFilter/index.js.map +1 -1
- package/dist/elements/SearchFilter/types.js +19 -1
- package/dist/elements/SearchFilter/types.js.map +1 -1
- package/dist/elements/SelectAll/index.js +7 -3
- package/dist/elements/SelectAll/index.js.map +1 -1
- package/dist/elements/SelectMany/index.js +7 -3
- package/dist/elements/SelectMany/index.js.map +1 -1
- package/dist/elements/SelectRow/index.js +13 -5
- package/dist/elements/SelectRow/index.js.map +1 -1
- package/dist/elements/ShimmerEffect/index.js +31 -11
- package/dist/elements/ShimmerEffect/index.js.map +1 -1
- package/dist/elements/SortColumn/index.js +48 -16
- package/dist/elements/SortColumn/index.js.map +1 -1
- package/dist/elements/SortComplex/index.js +55 -19
- package/dist/elements/SortComplex/index.js.map +1 -1
- package/dist/elements/SortHeader/index.js +24 -8
- package/dist/elements/SortHeader/index.js.map +1 -1
- package/dist/elements/SortRow/index.js +13 -5
- package/dist/elements/SortRow/index.js.map +1 -1
- package/dist/elements/Status/index.js +63 -23
- package/dist/elements/Status/index.js.map +1 -1
- package/dist/elements/StayLoggedIn/index.js +7 -3
- package/dist/elements/StayLoggedIn/index.js.map +1 -1
- package/dist/elements/StepNav/context.js +7 -3
- package/dist/elements/StepNav/context.js.map +1 -1
- package/dist/elements/StepNav/index.js +109 -33
- package/dist/elements/StepNav/index.js.map +1 -1
- package/dist/elements/StickyToolbar/index.js +7 -3
- package/dist/elements/StickyToolbar/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Array/index.js +7 -3
- package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Blocks/index.js +7 -3
- package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js +13 -5
- package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Code/index.js +13 -5
- package/dist/elements/Table/DefaultCell/fields/Code/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Date/index.js +7 -3
- package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/File/index.js +21 -9
- package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/JSON/index.js +13 -5
- package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +19 -7
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Select/index.js +11 -7
- package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Textarea/index.js +7 -3
- package/dist/elements/Table/DefaultCell/fields/Textarea/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +45 -16
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/Table/OrderableRow.js +25 -9
- package/dist/elements/Table/OrderableRow.js.map +1 -1
- package/dist/elements/Table/OrderableRowDragPreview.js +19 -7
- package/dist/elements/Table/OrderableRowDragPreview.js.map +1 -1
- package/dist/elements/Table/OrderableTable.js +79 -27
- package/dist/elements/Table/OrderableTable.js.map +1 -1
- package/dist/elements/Table/RelationshipProvider/index.js +10 -3
- package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
- package/dist/elements/Table/index.js +55 -19
- package/dist/elements/Table/index.js.map +1 -1
- package/dist/elements/Thumbnail/createThumbnail.js +12 -12
- package/dist/elements/Thumbnail/createThumbnail.js.map +1 -1
- package/dist/elements/Thumbnail/index.js +47 -15
- package/dist/elements/Thumbnail/index.js.map +1 -1
- package/dist/elements/ThumbnailCard/index.js +19 -7
- package/dist/elements/ThumbnailCard/index.js.map +1 -1
- package/dist/elements/TimezonePicker/index.js +19 -7
- package/dist/elements/TimezonePicker/index.js.map +1 -1
- package/dist/elements/Toasts/fieldErrors.js +24 -8
- package/dist/elements/Toasts/fieldErrors.js.map +1 -1
- package/dist/elements/Tooltip/index.js +34 -12
- package/dist/elements/Tooltip/index.js.map +1 -1
- package/dist/elements/Translation/index.js +25 -9
- package/dist/elements/Translation/index.js.map +1 -1
- package/dist/elements/TrashBanner/index.js +18 -6
- package/dist/elements/TrashBanner/index.js.map +1 -1
- package/dist/elements/UnpublishMany/DrawerContent.js +7 -3
- package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/UnpublishMany/index.js +28 -10
- package/dist/elements/UnpublishMany/index.js.map +1 -1
- package/dist/elements/Upload/index.js +235 -83
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/ViewDescription/index.js +7 -3
- package/dist/elements/ViewDescription/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Date/index.js +13 -5
- package/dist/elements/WhereBuilder/Condition/Date/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js +37 -13
- package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Number/index.js +13 -4
- package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js +23 -12
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Select/index.js +7 -3
- package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Text/index.js +13 -4
- package/dist/elements/WhereBuilder/Condition/Text/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js +73 -25
- package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
- package/dist/elements/WhereBuilder/index.js +87 -31
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/elements/WithServerSideProps/index.js +7 -3
- package/dist/elements/WithServerSideProps/index.js.map +1 -1
- package/dist/elements/withMergedProps/index.js +7 -3
- package/dist/elements/withMergedProps/index.js.map +1 -1
- package/dist/exports/client/index.js +26 -2
- package/dist/exports/client/index.js.map +1 -1
- package/dist/exports/shared/index.js +2 -1
- package/dist/exports/shared/index.js.map +1 -1
- package/dist/fields/Array/ArrayRow.js +52 -16
- package/dist/fields/Array/ArrayRow.js.map +1 -1
- package/dist/fields/Array/index.js +169 -57
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Blocks/BlockRow.js +72 -24
- package/dist/fields/Blocks/BlockRow.js.map +1 -1
- package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js +18 -6
- package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js.map +1 -1
- package/dist/fields/Blocks/BlockSelector/index.js +74 -24
- package/dist/fields/Blocks/BlockSelector/index.js.map +1 -1
- package/dist/fields/Blocks/BlocksDrawer/index.js +13 -5
- package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
- package/dist/fields/Blocks/RowActions.js +19 -7
- package/dist/fields/Blocks/RowActions.js.map +1 -1
- package/dist/fields/Blocks/SectionTitle/index.js +13 -5
- package/dist/fields/Blocks/SectionTitle/index.js.map +1 -1
- package/dist/fields/Blocks/index.js +187 -63
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Checkbox/Input.js +47 -15
- package/dist/fields/Checkbox/Input.js.map +1 -1
- package/dist/fields/Checkbox/index.js +37 -13
- package/dist/fields/Checkbox/index.js.map +1 -1
- package/dist/fields/Code/index.js +55 -19
- package/dist/fields/Code/index.js.map +1 -1
- package/dist/fields/Collapsible/index.js +61 -21
- package/dist/fields/Collapsible/index.js.map +1 -1
- package/dist/fields/ConfirmPassword/index.js +31 -11
- package/dist/fields/ConfirmPassword/index.js.map +1 -1
- package/dist/fields/DateTime/index.js +61 -21
- package/dist/fields/DateTime/index.js.map +1 -1
- package/dist/fields/Email/index.js +55 -19
- package/dist/fields/Email/index.js.map +1 -1
- package/dist/fields/FieldDescription/index.js +7 -3
- package/dist/fields/FieldDescription/index.js.map +1 -1
- package/dist/fields/FieldError/index.js +7 -3
- package/dist/fields/FieldError/index.js.map +1 -1
- package/dist/fields/FieldLabel/index.js +19 -7
- package/dist/fields/FieldLabel/index.js.map +1 -1
- package/dist/fields/Group/index.js +78 -26
- package/dist/fields/Group/index.js.map +1 -1
- package/dist/fields/Group/provider.js +7 -3
- package/dist/fields/Group/provider.js.map +1 -1
- package/dist/fields/Hidden/index.js +7 -3
- package/dist/fields/Hidden/index.js.map +1 -1
- package/dist/fields/JSON/index.js +55 -19
- package/dist/fields/JSON/index.js.map +1 -1
- package/dist/fields/Join/index.js +49 -17
- package/dist/fields/Join/index.js.map +1 -1
- package/dist/fields/Number/index.js +71 -25
- package/dist/fields/Number/index.js.map +1 -1
- package/dist/fields/Password/index.js +7 -3
- package/dist/fields/Password/index.js.map +1 -1
- package/dist/fields/Password/input.js +61 -21
- package/dist/fields/Password/input.js.map +1 -1
- package/dist/fields/Password/types.js +11 -1
- package/dist/fields/Password/types.js.map +1 -1
- package/dist/fields/Point/index.js +97 -33
- package/dist/fields/Point/index.js.map +1 -1
- package/dist/fields/RadioGroup/Radio/index.js +31 -11
- package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
- package/dist/fields/RadioGroup/index.js +67 -23
- package/dist/fields/RadioGroup/index.js.map +1 -1
- package/dist/fields/Relationship/Input.js +84 -28
- package/dist/fields/Relationship/Input.js.map +1 -1
- package/dist/fields/Relationship/index.js +7 -3
- package/dist/fields/Relationship/index.js.map +1 -1
- package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +47 -16
- package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
- package/dist/fields/Relationship/select-components/SingleValue/index.js +52 -17
- package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
- package/dist/fields/Row/index.js +19 -7
- package/dist/fields/Row/index.js.map +1 -1
- package/dist/fields/Row/provider.js +7 -3
- package/dist/fields/Row/provider.js.map +1 -1
- package/dist/fields/Select/Input.js +55 -19
- package/dist/fields/Select/Input.js.map +1 -1
- package/dist/fields/Select/index.js +7 -3
- package/dist/fields/Select/index.js.map +1 -1
- package/dist/fields/Slug/index.js +37 -13
- package/dist/fields/Slug/index.js.map +1 -1
- package/dist/fields/Tabs/Tab/index.js +25 -9
- package/dist/fields/Tabs/Tab/index.js.map +1 -1
- package/dist/fields/Tabs/index.js +67 -23
- package/dist/fields/Tabs/index.js.map +1 -1
- package/dist/fields/Tabs/provider.js +7 -3
- package/dist/fields/Tabs/provider.js.map +1 -1
- package/dist/fields/Text/Input.js +60 -20
- package/dist/fields/Text/Input.js.map +1 -1
- package/dist/fields/Text/index.js +10 -5
- package/dist/fields/Text/index.js.map +1 -1
- package/dist/fields/Textarea/Input.js +61 -21
- package/dist/fields/Textarea/Input.js.map +1 -1
- package/dist/fields/Textarea/index.js +7 -3
- package/dist/fields/Textarea/index.js.map +1 -1
- package/dist/fields/Upload/HasMany/index.js +48 -16
- package/dist/fields/Upload/HasMany/index.js.map +1 -1
- package/dist/fields/Upload/HasOne/index.js +13 -5
- package/dist/fields/Upload/HasOne/index.js.map +1 -1
- package/dist/fields/Upload/Input.js +154 -56
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/fields/Upload/RelationshipContent/index.js +73 -25
- package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
- package/dist/fields/Upload/UploadCard/index.js +7 -3
- package/dist/fields/Upload/UploadCard/index.js.map +1 -1
- package/dist/fields/Upload/index.js +13 -5
- package/dist/fields/Upload/index.js.map +1 -1
- package/dist/fields/Upload/types.js +1 -0
- package/dist/fields/Upload/types.js.map +1 -1
- package/dist/fields/shared/index.js +2 -3
- package/dist/fields/shared/index.js.map +1 -1
- package/dist/forms/Form/fieldReducer.js +2 -1
- package/dist/forms/Form/fieldReducer.js.map +1 -1
- package/dist/forms/Form/index.js +78 -31
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/Form/mergeServerFormState.js +11 -3
- package/dist/forms/Form/mergeServerFormState.js.map +1 -1
- package/dist/forms/Form/reduceToSerializableFields.js +2 -2
- package/dist/forms/Form/reduceToSerializableFields.js.map +1 -1
- package/dist/forms/Form/types.js +52 -1
- package/dist/forms/Form/types.js.map +1 -1
- package/dist/forms/NullifyField/index.js +15 -6
- package/dist/forms/NullifyField/index.js.map +1 -1
- package/dist/forms/RenderFields/RenderField.js +138 -46
- package/dist/forms/RenderFields/RenderField.js.map +1 -1
- package/dist/forms/RenderFields/index.js +19 -7
- package/dist/forms/RenderFields/index.js.map +1 -1
- package/dist/forms/RowLabel/Context/index.js +7 -3
- package/dist/forms/RowLabel/Context/index.js.map +1 -1
- package/dist/forms/RowLabel/index.js +19 -7
- package/dist/forms/RowLabel/index.js.map +1 -1
- package/dist/forms/Submit/index.js +13 -5
- package/dist/forms/Submit/index.js.map +1 -1
- package/dist/forms/WatchChildErrors/index.js +6 -1
- package/dist/forms/WatchChildErrors/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +20 -0
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/index.js +33 -1
- package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/isRowCollapsed.js +2 -2
- package/dist/forms/fieldSchemasToFormState/isRowCollapsed.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.js +16 -0
- package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js +21 -9
- package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +22 -1
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/types.js +5 -1
- package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
- package/dist/forms/useField/index.js +1 -0
- package/dist/forms/useField/index.js.map +1 -1
- package/dist/forms/useField/types.js +19 -1
- package/dist/forms/useField/types.js.map +1 -1
- package/dist/forms/withCondition/index.js +13 -5
- package/dist/forms/withCondition/index.js.map +1 -1
- package/dist/graphics/Account/Default/index.js +25 -9
- package/dist/graphics/Account/Default/index.js.map +1 -1
- package/dist/graphics/Account/Gravatar/index.js +7 -3
- package/dist/graphics/Account/Gravatar/index.js.map +1 -1
- package/dist/graphics/Account/index.js +12 -4
- package/dist/graphics/Account/index.js.map +1 -1
- package/dist/graphics/DefaultBlockImage/index.js +67 -23
- package/dist/graphics/DefaultBlockImage/index.js.map +1 -1
- package/dist/graphics/File/index.js +19 -7
- package/dist/graphics/File/index.js.map +1 -1
- package/dist/graphics/Icon/index.js +19 -7
- package/dist/graphics/Icon/index.js.map +1 -1
- package/dist/graphics/Logo/index.js +85 -29
- package/dist/graphics/Logo/index.js.map +1 -1
- package/dist/hooks/useControllableState.js +9 -1
- package/dist/hooks/useControllableState.js.map +1 -1
- package/dist/hooks/useDelayedRender.js +3 -1
- package/dist/hooks/useDelayedRender.js.map +1 -1
- package/dist/hooks/useHotkey.js +2 -2
- package/dist/hooks/useHotkey.js.map +1 -1
- package/dist/hooks/usePayloadAPI.js +3 -4
- package/dist/hooks/usePayloadAPI.js.map +1 -1
- package/dist/hooks/usePopupWindow.js +2 -2
- package/dist/hooks/usePopupWindow.js.map +1 -1
- package/dist/hooks/useQueue.js +15 -7
- package/dist/hooks/useQueue.js.map +1 -1
- package/dist/hooks/useResize.js +4 -3
- package/dist/hooks/useResize.js.map +1 -1
- package/dist/icons/Calendar/index.js +13 -5
- package/dist/icons/Calendar/index.js.map +1 -1
- package/dist/icons/Check/index.js +13 -5
- package/dist/icons/Check/index.js.map +1 -1
- package/dist/icons/Chevron/index.js +13 -5
- package/dist/icons/Chevron/index.js.map +1 -1
- package/dist/icons/CloseMenu/index.js +13 -5
- package/dist/icons/CloseMenu/index.js.map +1 -1
- package/dist/icons/CodeBlock/index.js +13 -5
- package/dist/icons/CodeBlock/index.js.map +1 -1
- package/dist/icons/Copy/index.js +13 -5
- package/dist/icons/Copy/index.js.map +1 -1
- package/dist/icons/Document/index.js +13 -5
- package/dist/icons/Document/index.js.map +1 -1
- package/dist/icons/Dots/index.js +22 -6
- package/dist/icons/Dots/index.js.map +1 -1
- package/dist/icons/DragHandle/index.js +43 -15
- package/dist/icons/DragHandle/index.js.map +1 -1
- package/dist/icons/Edit/index.js +13 -5
- package/dist/icons/Edit/index.js.map +1 -1
- package/dist/icons/ExternalLink/index.js +13 -5
- package/dist/icons/ExternalLink/index.js.map +1 -1
- package/dist/icons/Eye/index.js +36 -12
- package/dist/icons/Eye/index.js.map +1 -1
- package/dist/icons/Folder/index.js +13 -5
- package/dist/icons/Folder/index.js.map +1 -1
- package/dist/icons/Gear/index.js +19 -7
- package/dist/icons/Gear/index.js.map +1 -1
- package/dist/icons/GridView/index.js +31 -11
- package/dist/icons/GridView/index.js.map +1 -1
- package/dist/icons/Line/index.js +13 -5
- package/dist/icons/Line/index.js.map +1 -1
- package/dist/icons/Link/index.js +13 -5
- package/dist/icons/Link/index.js.map +1 -1
- package/dist/icons/ListView/index.js +13 -5
- package/dist/icons/ListView/index.js.map +1 -1
- package/dist/icons/Lock/index.js +19 -7
- package/dist/icons/Lock/index.js.map +1 -1
- package/dist/icons/LogOut/index.js +13 -5
- package/dist/icons/LogOut/index.js.map +1 -1
- package/dist/icons/Menu/index.js +13 -5
- package/dist/icons/Menu/index.js.map +1 -1
- package/dist/icons/MinimizeMaximize/index.js +18 -6
- package/dist/icons/MinimizeMaximize/index.js.map +1 -1
- package/dist/icons/More/index.js +25 -9
- package/dist/icons/More/index.js.map +1 -1
- package/dist/icons/MoveFolder/index.js +37 -13
- package/dist/icons/MoveFolder/index.js.map +1 -1
- package/dist/icons/People/index.js +13 -5
- package/dist/icons/People/index.js.map +1 -1
- package/dist/icons/Plus/index.js +13 -5
- package/dist/icons/Plus/index.js.map +1 -1
- package/dist/icons/Search/index.js +13 -5
- package/dist/icons/Search/index.js.map +1 -1
- package/dist/icons/Sort/index.js +25 -9
- package/dist/icons/Sort/index.js.map +1 -1
- package/dist/icons/Swap/index.js +13 -5
- package/dist/icons/Swap/index.js.map +1 -1
- package/dist/icons/ThreeDots/index.js +22 -6
- package/dist/icons/ThreeDots/index.js.map +1 -1
- package/dist/icons/Trash/index.js +13 -5
- package/dist/icons/Trash/index.js.map +1 -1
- package/dist/icons/X/index.js +13 -5
- package/dist/icons/X/index.js.map +1 -1
- package/dist/providers/Actions/index.js +7 -3
- package/dist/providers/Actions/index.js.map +1 -1
- package/dist/providers/Auth/index.js +42 -6
- package/dist/providers/Auth/index.js.map +1 -1
- package/dist/providers/ClickOutside/index.js +7 -3
- package/dist/providers/ClickOutside/index.js.map +1 -1
- package/dist/providers/ClientFunction/index.js +13 -5
- package/dist/providers/ClientFunction/index.js.map +1 -1
- package/dist/providers/Config/index.js +23 -6
- package/dist/providers/Config/index.js.map +1 -1
- package/dist/providers/DocumentEvents/index.js +7 -3
- package/dist/providers/DocumentEvents/index.js.map +1 -1
- package/dist/providers/DocumentInfo/index.js +31 -16
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/providers/DocumentInfo/types.js +25 -1
- package/dist/providers/DocumentInfo/types.js.map +1 -1
- package/dist/providers/DocumentTitle/index.js +7 -3
- package/dist/providers/DocumentTitle/index.js.map +1 -1
- package/dist/providers/EditDepth/index.js +7 -3
- package/dist/providers/EditDepth/index.js.map +1 -1
- package/dist/providers/EntityVisibility/index.js +7 -3
- package/dist/providers/EntityVisibility/index.js.map +1 -1
- package/dist/providers/Folders/index.js +51 -5
- package/dist/providers/Folders/index.js.map +1 -1
- package/dist/providers/ListQuery/index.js +13 -5
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/providers/ListQuery/types.js +5 -1
- package/dist/providers/ListQuery/types.js.map +1 -1
- package/dist/providers/LivePreview/context.js +11 -1
- package/dist/providers/LivePreview/context.js.map +1 -1
- package/dist/providers/LivePreview/index.js +20 -9
- package/dist/providers/LivePreview/index.js.map +1 -1
- package/dist/providers/Locale/index.js +13 -5
- package/dist/providers/Locale/index.js.map +1 -1
- package/dist/providers/Operation/index.js +7 -3
- package/dist/providers/Operation/index.js.map +1 -1
- package/dist/providers/Params/index.js +7 -3
- package/dist/providers/Params/index.js.map +1 -1
- package/dist/providers/Preferences/index.js +14 -5
- package/dist/providers/Preferences/index.js.map +1 -1
- package/dist/providers/Root/index.js +154 -50
- package/dist/providers/Root/index.js.map +1 -1
- package/dist/providers/RouteCache/index.js +7 -3
- package/dist/providers/RouteCache/index.js.map +1 -1
- package/dist/providers/RouteTransition/ProgressBar/index.js +13 -5
- package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
- package/dist/providers/RouteTransition/index.js +16 -12
- package/dist/providers/RouteTransition/index.js.map +1 -1
- package/dist/providers/SearchParams/index.js +7 -3
- package/dist/providers/SearchParams/index.js.map +1 -1
- package/dist/providers/Selection/index.js +14 -5
- package/dist/providers/Selection/index.js.map +1 -1
- package/dist/providers/ServerFunctions/index.js +32 -25
- package/dist/providers/ServerFunctions/index.js.map +1 -1
- package/dist/providers/TableColumns/RenderDefaultCell/index.js +13 -5
- package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/index.js +17 -12
- package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.js +17 -8
- package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
- package/dist/providers/TableColumns/index.js +7 -3
- package/dist/providers/TableColumns/index.js.map +1 -1
- package/dist/providers/TableColumns/types.js +17 -1
- package/dist/providers/TableColumns/types.js.map +1 -1
- package/dist/providers/Theme/index.js +7 -3
- package/dist/providers/Theme/index.js.map +1 -1
- package/dist/providers/ToastContainer/icons/Error.js +19 -7
- package/dist/providers/ToastContainer/icons/Error.js.map +1 -1
- package/dist/providers/ToastContainer/icons/Info.js +19 -7
- package/dist/providers/ToastContainer/icons/Info.js.map +1 -1
- package/dist/providers/ToastContainer/icons/Success.js +19 -7
- package/dist/providers/ToastContainer/icons/Success.js.map +1 -1
- package/dist/providers/ToastContainer/icons/Warning.js +19 -7
- package/dist/providers/ToastContainer/icons/Warning.js.map +1 -1
- package/dist/providers/ToastContainer/index.js +27 -7
- package/dist/providers/ToastContainer/index.js.map +1 -1
- package/dist/providers/Translation/index.js +7 -3
- package/dist/providers/Translation/index.js.map +1 -1
- package/dist/providers/UploadControls/index.js +7 -3
- package/dist/providers/UploadControls/index.js.map +1 -1
- package/dist/providers/UploadEdits/index.js +7 -3
- package/dist/providers/UploadEdits/index.js.map +1 -1
- package/dist/providers/UploadHandlers/index.js +7 -3
- package/dist/providers/UploadHandlers/index.js.map +1 -1
- package/dist/utilities/abortAndIgnore.js +4 -6
- package/dist/utilities/abortAndIgnore.js.map +1 -1
- package/dist/utilities/buildFieldSchemaMap/traverseFields.js +2 -2
- package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -1
- package/dist/utilities/combineFieldLabel.js +37 -13
- package/dist/utilities/combineFieldLabel.js.map +1 -1
- package/dist/utilities/copyDataFromLocale.js +6 -2
- package/dist/utilities/copyDataFromLocale.js.map +1 -1
- package/dist/utilities/getDisplayedFieldValue.js +8 -8
- package/dist/utilities/getDisplayedFieldValue.js.map +1 -1
- package/dist/utilities/getFolderResultsComponentAndData.js +31 -14
- package/dist/utilities/getFolderResultsComponentAndData.js.map +1 -1
- package/dist/utilities/handleFormStateLocking.js +2 -2
- package/dist/utilities/handleFormStateLocking.js.map +1 -1
- package/dist/utilities/hasSavePermission.js +5 -1
- package/dist/utilities/hasSavePermission.js.map +1 -1
- package/dist/utilities/isURLAllowed.js +6 -6
- package/dist/utilities/isURLAllowed.js.map +1 -1
- package/dist/utilities/renderTable.js +84 -27
- package/dist/utilities/renderTable.js.map +1 -1
- package/dist/utilities/schedulePublishHandler.js +3 -1
- package/dist/utilities/schedulePublishHandler.js.map +1 -1
- package/dist/utilities/upsertPreferences.js +1 -0
- package/dist/utilities/upsertPreferences.js.map +1 -1
- package/dist/views/BrowseByFolder/index.js +168 -56
- package/dist/views/BrowseByFolder/index.js.map +1 -1
- package/dist/views/CollectionFolder/ListSelection/index.js +67 -23
- package/dist/views/CollectionFolder/ListSelection/index.js.map +1 -1
- package/dist/views/CollectionFolder/index.js +147 -47
- package/dist/views/CollectionFolder/index.js.map +1 -1
- package/dist/views/Edit/Auth/APIKey.js +67 -23
- package/dist/views/Edit/Auth/APIKey.js.map +1 -1
- package/dist/views/Edit/Auth/index.js +91 -31
- package/dist/views/Edit/Auth/index.js.map +1 -1
- package/dist/views/Edit/index.js +124 -48
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/List/GroupByHeader/index.js +19 -7
- package/dist/views/List/GroupByHeader/index.js.map +1 -1
- package/dist/views/List/ListHeader/index.js +68 -23
- package/dist/views/List/ListHeader/index.js.map +1 -1
- package/dist/views/List/ListSelection/index.js +49 -17
- package/dist/views/List/ListSelection/index.js.map +1 -1
- package/dist/views/List/index.js +162 -54
- package/dist/views/List/index.js.map +1 -1
- package/package.json +7 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/fields/Upload/Input.tsx"],"sourcesContent":["'use client'\n\nimport type {\n ClientCollectionConfig,\n FieldLabelClientProps,\n FilterOptionsResult,\n JsonObject,\n StaticDescription,\n StaticLabel,\n UploadFieldClient,\n UploadField as UploadFieldType,\n ValueWithRelation,\n} from 'payload'\nimport type { MarkOptional } from 'ts-essentials'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo } from 'react'\n\nimport type { ListDrawerProps } from '../../elements/ListDrawer/types.js'\nimport type { ReloadDoc, ValueAsDataWithRelation } from './types.js'\n\nimport { type BulkUploadContext, useBulkUpload } from '../../elements/BulkUpload/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { Dropzone } from '../../elements/Dropzone/index.js'\nimport { useListDrawer } from '../../elements/ListDrawer/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { ShimmerEffect } from '../../elements/ShimmerEffect/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { normalizeRelationshipValue } from '../../utilities/normalizeRelationshipValue.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { UploadComponentHasMany } from './HasMany/index.js'\nimport { UploadComponentHasOne } from './HasOne/index.js'\nimport './index.scss'\n\nexport const baseClass = 'upload'\n\ntype PopulatedDocs = { relationTo: string; value: JsonObject }[]\n\nexport type UploadInputProps = {\n readonly AfterInput?: React.ReactNode\n readonly allowCreate?: boolean\n /**\n * Controls the visibility of the \"Create new collection\" button\n */\n readonly api?: string\n readonly BeforeInput?: React.ReactNode\n readonly className?: string\n readonly collection?: ClientCollectionConfig\n readonly customUploadActions?: React.ReactNode[]\n readonly Description?: React.ReactNode\n readonly description?: StaticDescription\n readonly displayPreview?: boolean\n readonly Error?: React.ReactNode\n readonly filterOptions?: FilterOptionsResult\n readonly hasMany?: boolean\n readonly hideRemoveFile?: boolean\n readonly isSortable?: boolean\n readonly Label?: React.ReactNode\n readonly label?: StaticLabel\n readonly labelProps?: FieldLabelClientProps<MarkOptional<UploadFieldClient, 'type'>>\n readonly localized?: boolean\n readonly maxRows?: number\n readonly onChange?: (e) => void\n readonly path: string\n readonly readOnly?: boolean\n readonly relationTo: UploadFieldType['relationTo']\n readonly required?: boolean\n readonly serverURL?: string\n readonly showError?: boolean\n readonly style?: React.CSSProperties\n readonly value?: (number | string)[] | number | string | ValueWithRelation | ValueWithRelation[]\n}\n\nexport function UploadInput(props: UploadInputProps) {\n const {\n AfterInput,\n allowCreate,\n api,\n BeforeInput,\n className,\n Description,\n description,\n displayPreview,\n Error,\n filterOptions: filterOptionsFromProps,\n hasMany,\n isSortable,\n Label,\n label,\n localized,\n maxRows,\n onChange: onChangeFromProps,\n path,\n readOnly,\n relationTo,\n required,\n serverURL,\n showError,\n style,\n value,\n } = props\n\n const [populatedDocs, setPopulatedDocs] = React.useState<\n {\n relationTo: string\n value: JsonObject\n }[]\n >()\n\n const [activeRelationTo] = React.useState<string>(\n Array.isArray(relationTo) ? relationTo[0] : relationTo,\n )\n\n const { openModal } = useModal()\n const {\n drawerSlug,\n setCollectionSlug,\n setInitialFiles,\n setMaxFiles,\n setOnSuccess,\n setSelectableCollections,\n } = useBulkUpload()\n const { permissions } = useAuth()\n const { code } = useLocale()\n const { i18n, t } = useTranslation()\n\n // This will be used by the bulk upload to allow you to select only collections you have create permissions for\n const collectionSlugsWithCreatePermission = useMemo(() => {\n if (Array.isArray(relationTo)) {\n return relationTo.filter(\n (relation) => permissions?.collections && permissions.collections?.[relation]?.create,\n )\n }\n return []\n }, [relationTo, permissions])\n\n const filterOptions: FilterOptionsResult = useMemo(() => {\n const isPoly = Array.isArray(relationTo)\n\n if (!value) {\n return filterOptionsFromProps\n }\n\n // Group existing IDs by relation\n const existingIdsByRelation: Record<string, (number | string)[]> = {}\n\n const values = Array.isArray(value) ? value : [value]\n\n for (const val of values) {\n if (isPoly && typeof val === 'object' && 'relationTo' in val) {\n // Poly upload - group by relationTo\n if (!existingIdsByRelation[val.relationTo]) {\n existingIdsByRelation[val.relationTo] = []\n }\n existingIdsByRelation[val.relationTo].push(val.value)\n } else if (!isPoly) {\n // Non-poly upload - all IDs belong to the single collection\n const collection = relationTo\n if (!existingIdsByRelation[collection]) {\n existingIdsByRelation[collection] = []\n }\n const id = typeof val === 'object' && 'value' in val ? val.value : val\n if (typeof id === 'string' || typeof id === 'number') {\n existingIdsByRelation[collection].push(id)\n }\n }\n }\n\n // Build filter options for each collection\n const newFilterOptions = { ...filterOptionsFromProps }\n const relations = isPoly ? relationTo : [relationTo]\n\n relations.forEach((relation) => {\n const existingIds = existingIdsByRelation[relation] || []\n\n newFilterOptions[relation] = {\n ...((filterOptionsFromProps?.[relation] as any) || {}),\n id: {\n ...((filterOptionsFromProps?.[relation] as any)?.id || {}),\n not_in: ((filterOptionsFromProps?.[relation] as any)?.id?.not_in || []).concat(\n existingIds,\n ),\n },\n }\n })\n\n return newFilterOptions\n }, [value, filterOptionsFromProps, relationTo])\n\n const [ListDrawer, , { closeDrawer: closeListDrawer, openDrawer: openListDrawer }] =\n useListDrawer({\n collectionSlugs: typeof relationTo === 'string' ? [relationTo] : relationTo,\n filterOptions,\n })\n\n const [\n CreateDocDrawer,\n ,\n { closeDrawer: closeCreateDocDrawer, openDrawer: openCreateDocDrawer },\n ] = useDocumentDrawer({\n collectionSlug: activeRelationTo,\n })\n\n /**\n * Track the last loaded value to prevent unnecessary reloads\n */\n const loadedValueRef = React.useRef<\n (number | string)[] | null | number | string | ValueWithRelation | ValueWithRelation[]\n >(null)\n\n const canCreate = useMemo(() => {\n if (!allowCreate) {\n return false\n }\n\n if (typeof activeRelationTo === 'string') {\n if (permissions?.collections && permissions.collections?.[activeRelationTo]?.create) {\n return true\n }\n }\n\n return false\n }, [activeRelationTo, permissions, allowCreate])\n\n const onChange = React.useCallback(\n (newValue) => {\n if (typeof onChangeFromProps === 'function') {\n onChangeFromProps(newValue)\n }\n },\n [onChangeFromProps],\n )\n\n const populateDocs = React.useCallback(\n async (items: ValueWithRelation[]): Promise<ValueAsDataWithRelation[]> => {\n if (!items?.length) {\n return []\n }\n\n // 1. Group IDs by collection\n const grouped: Record<string, (number | string)[]> = {}\n items.forEach(({ relationTo, value }) => {\n if (!grouped[relationTo]) {\n grouped[relationTo] = []\n }\n // Ensure we extract the actual ID value, not an object\n let idValue: number | string = value\n\n if (value && typeof value === 'object' && 'value' in (value as any)) {\n idValue = (value as any).value\n }\n\n grouped[relationTo].push(idValue)\n })\n\n // 2. Fetch per collection\n const fetches = Object.entries(grouped).map(async ([collection, ids]) => {\n const query = {\n depth: 0,\n draft: true,\n limit: ids.length,\n locale: code,\n where: {\n and: [\n {\n id: {\n in: ids,\n },\n },\n ],\n },\n }\n const response = await fetch(`${serverURL}${api}/${collection}`, {\n body: qs.stringify(query),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-Payload-HTTP-Method-Override': 'GET',\n },\n method: 'POST',\n })\n let docs: any[] = []\n if (response.ok) {\n const data = await response.json()\n docs = data.docs\n }\n // Map docs by ID for fast lookup\n const docsById = docs.reduce((acc, doc) => {\n acc[doc.id] = doc\n return acc\n }, {})\n return { collection, docsById }\n })\n\n const results = await Promise.all(fetches)\n\n // 3. Build lookup\n const lookup: Record<string, Record<string, any>> = {}\n results.forEach(({ collection, docsById }) => {\n lookup[collection] = docsById\n })\n\n // 4. Reconstruct in input order, add placeholders if missing\n const sortedDocs = items.map(({ relationTo, value }) => {\n const doc = lookup[relationTo]?.[value] || {\n id: value,\n filename: `${t('general:untitled')} - ID: ${value}`,\n isPlaceholder: true,\n }\n return { relationTo, value: doc }\n })\n\n return sortedDocs\n },\n [serverURL, api, code, i18n.language, t],\n )\n\n const normalizeValue = useCallback(\n (value: any): any => normalizeRelationshipValue(value, relationTo),\n [relationTo],\n )\n\n const onUploadSuccess: BulkUploadContext['onSuccess'] = useCallback(\n (uploadedForms) => {\n const isPoly = Array.isArray(relationTo)\n\n if (hasMany) {\n const newValues = uploadedForms.map((form) =>\n isPoly ? { relationTo: form.collectionSlug, value: form.doc.id } : form.doc.id,\n )\n // Normalize existing values before merging\n const normalizedExisting = Array.isArray(value) ? value.map(normalizeValue) : []\n const mergedValue = [...normalizedExisting, ...newValues]\n onChange(mergedValue)\n setPopulatedDocs((currentDocs) => [\n ...(currentDocs || []),\n ...uploadedForms.map((form) => ({\n relationTo: form.collectionSlug,\n value: form.doc,\n })),\n ])\n } else {\n const firstDoc = uploadedForms[0]\n const newValue = isPoly\n ? { relationTo: firstDoc.collectionSlug, value: firstDoc.doc.id }\n : firstDoc.doc.id\n onChange(newValue)\n setPopulatedDocs([\n {\n relationTo: firstDoc.collectionSlug,\n value: firstDoc.doc,\n },\n ])\n }\n },\n [value, onChange, hasMany, relationTo, normalizeValue],\n )\n\n const onLocalFileSelection = React.useCallback(\n (fileList?: FileList) => {\n let fileListToUse = fileList\n if (!hasMany && fileList && fileList.length > 1) {\n const dataTransfer = new DataTransfer()\n dataTransfer.items.add(fileList[0])\n fileListToUse = dataTransfer.files\n }\n if (fileListToUse) {\n setInitialFiles(fileListToUse)\n }\n // Use activeRelationTo for poly uploads, or relationTo as string for single collection\n const collectionToUse = Array.isArray(relationTo) ? activeRelationTo : relationTo\n\n setCollectionSlug(collectionToUse)\n if (Array.isArray(collectionSlugsWithCreatePermission)) {\n setSelectableCollections(collectionSlugsWithCreatePermission)\n }\n\n if (typeof maxRows === 'number') {\n setMaxFiles(maxRows)\n }\n\n openModal(drawerSlug)\n },\n [\n hasMany,\n relationTo,\n activeRelationTo,\n setCollectionSlug,\n collectionSlugsWithCreatePermission,\n maxRows,\n openModal,\n drawerSlug,\n setInitialFiles,\n setSelectableCollections,\n setMaxFiles,\n ],\n )\n\n // only hasMany can bulk select\n const onListBulkSelect = React.useCallback<NonNullable<ListDrawerProps['onBulkSelect']>>(\n async (docs) => {\n const isPoly = Array.isArray(relationTo)\n const selectedDocIDs = []\n\n for (const [id, isSelected] of docs) {\n if (isSelected) {\n selectedDocIDs.push(id)\n }\n }\n\n const itemsToLoad = selectedDocIDs.map((id) => ({\n relationTo: activeRelationTo,\n value: id,\n }))\n\n const loadedDocs = await populateDocs(itemsToLoad)\n if (loadedDocs) {\n setPopulatedDocs((currentDocs) => [...(currentDocs || []), ...loadedDocs])\n }\n\n const newValues = selectedDocIDs.map((id) =>\n isPoly ? { relationTo: activeRelationTo, value: id } : id,\n )\n // Normalize existing values before merging\n const normalizedExisting = Array.isArray(value) ? value.map(normalizeValue) : []\n onChange([...normalizedExisting, ...newValues])\n closeListDrawer()\n },\n [activeRelationTo, closeListDrawer, onChange, populateDocs, value, relationTo, normalizeValue],\n )\n\n const onDocCreate = React.useCallback(\n (data) => {\n const isPoly = Array.isArray(relationTo)\n if (data.doc) {\n setPopulatedDocs((currentDocs) => [\n ...(currentDocs || []),\n {\n relationTo: activeRelationTo,\n value: data.doc,\n },\n ])\n\n const newValue = isPoly ? { relationTo: activeRelationTo, value: data.doc.id } : data.doc.id\n onChange(newValue)\n }\n closeCreateDocDrawer()\n },\n [closeCreateDocDrawer, activeRelationTo, onChange, relationTo],\n )\n\n const onListSelect = useCallback<NonNullable<ListDrawerProps['onSelect']>>(\n async ({ collectionSlug, doc }) => {\n const isPoly = Array.isArray(relationTo)\n\n const loadedDocs = await populateDocs([{ relationTo: collectionSlug, value: doc.id }])\n const selectedDoc = loadedDocs?.[0] || null\n\n setPopulatedDocs((currentDocs) => {\n if (selectedDoc) {\n if (hasMany) {\n return [...(currentDocs || []), selectedDoc]\n }\n return [selectedDoc]\n }\n return currentDocs\n })\n\n if (hasMany) {\n const newValue = isPoly ? { relationTo: collectionSlug, value: doc.id } : doc.id\n // Normalize existing values before merging\n const normalizedExisting = Array.isArray(value) ? value.map(normalizeValue) : []\n const valueToUse = [...normalizedExisting, newValue]\n onChange(valueToUse)\n } else {\n const valueToUse = isPoly ? { relationTo: collectionSlug, value: doc.id } : doc.id\n onChange(valueToUse)\n }\n closeListDrawer()\n },\n [closeListDrawer, hasMany, populateDocs, onChange, value, relationTo, normalizeValue],\n )\n\n const reloadDoc = React.useCallback<ReloadDoc>(\n async (docID, collectionSlug) => {\n const docs = await populateDocs([{ relationTo: collectionSlug, value: docID }])\n\n if (docs[0]) {\n let updatedDocsToPropogate = []\n setPopulatedDocs((currentDocs) => {\n const existingDocIndex = currentDocs?.findIndex((doc) => {\n const hasExisting = doc.value?.id === docs[0].value.id || doc.value?.isPlaceholder\n return hasExisting && doc.relationTo === collectionSlug\n })\n if (existingDocIndex > -1) {\n const updatedDocs = [...currentDocs]\n updatedDocs[existingDocIndex] = docs[0]\n updatedDocsToPropogate = updatedDocs\n return updatedDocs\n }\n return currentDocs\n })\n\n if (updatedDocsToPropogate.length && hasMany) {\n onChange(updatedDocsToPropogate.map((doc) => doc.value?.id))\n }\n }\n },\n [populateDocs, onChange, hasMany],\n )\n\n // only hasMany can reorder\n const onReorder = React.useCallback(\n (newValue) => {\n const isPoly = Array.isArray(relationTo)\n const newValueToSave = newValue.map(({ relationTo: rel, value }) =>\n isPoly ? { relationTo: rel, value: value.id } : value.id,\n )\n onChange(newValueToSave)\n setPopulatedDocs(newValue)\n },\n [onChange, relationTo],\n )\n\n const onRemove = React.useCallback(\n (newValue?: PopulatedDocs) => {\n const isPoly = Array.isArray(relationTo)\n\n if (!newValue || newValue.length === 0) {\n onChange(hasMany ? [] : null)\n setPopulatedDocs(hasMany ? [] : null)\n return\n }\n\n const newValueToSave = newValue.map(({ relationTo: rel, value }) =>\n isPoly ? { relationTo: rel, value: value.id } : value.id,\n )\n\n onChange(hasMany ? newValueToSave : newValueToSave[0])\n setPopulatedDocs(newValue)\n },\n [onChange, hasMany, relationTo],\n )\n\n useEffect(() => {\n async function loadInitialDocs() {\n if (value) {\n let itemsToLoad: ValueWithRelation[] = []\n if (\n Array.isArray(relationTo) &&\n ((typeof value === 'object' && 'relationTo' in value) ||\n (Array.isArray(value) &&\n value.length > 0 &&\n typeof value[0] === 'object' &&\n 'relationTo' in value[0]))\n ) {\n // For poly uploads, value should already be in the format { relationTo, value }\n const values = Array.isArray(value) ? value : [value]\n itemsToLoad = values\n .filter((v): v is ValueWithRelation => typeof v === 'object' && 'relationTo' in v)\n .map((v) => {\n // Ensure the value property is a simple ID, not nested\n let idValue: any = v.value\n while (\n idValue &&\n typeof idValue === 'object' &&\n idValue !== null &&\n 'value' in idValue\n ) {\n idValue = idValue.value\n }\n return {\n relationTo: v.relationTo,\n value: idValue as number | string,\n }\n })\n } else {\n // This check is here to satisfy TypeScript that relationTo is a string\n if (!Array.isArray(relationTo)) {\n // For single collection uploads, we need to wrap the IDs\n const ids = Array.isArray(value) ? value : [value]\n itemsToLoad = ids.map((id): ValueWithRelation => {\n // Extract the actual ID, handling nested objects\n let idValue: any = id\n while (\n idValue &&\n typeof idValue === 'object' &&\n idValue !== null &&\n 'value' in idValue\n ) {\n idValue = idValue.value\n }\n return {\n relationTo,\n value: idValue as number | string,\n }\n })\n }\n }\n\n if (itemsToLoad.length > 0) {\n const loadedDocs = await populateDocs(itemsToLoad)\n\n if (loadedDocs) {\n setPopulatedDocs(loadedDocs)\n loadedValueRef.current = value\n }\n }\n } else {\n // Clear populated docs when value is cleared\n setPopulatedDocs([])\n loadedValueRef.current = null\n }\n }\n\n // Only load if value has changed from what we last loaded\n const valueChanged = loadedValueRef.current !== value\n if (valueChanged) {\n void loadInitialDocs()\n }\n }, [populateDocs, value, relationTo])\n\n useEffect(() => {\n setOnSuccess(onUploadSuccess)\n }, [value, path, onUploadSuccess, setOnSuccess])\n\n const showDropzone =\n !value ||\n (hasMany && Array.isArray(value) && (typeof maxRows !== 'number' || value.length < maxRows)) ||\n (!hasMany && populatedDocs?.[0] && typeof populatedDocs[0].value === 'undefined')\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && 'error',\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path?.replace(/\\./g, '__')}`}\n style={style}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${baseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n </div>\n {BeforeInput}\n <div className={`${baseClass}__dropzoneAndUpload`}>\n {hasMany && Array.isArray(value) && value.length > 0 ? (\n <>\n {populatedDocs && populatedDocs?.length > 0 ? (\n <UploadComponentHasMany\n displayPreview={displayPreview}\n fileDocs={populatedDocs}\n isSortable={isSortable && !readOnly}\n onRemove={onRemove}\n onReorder={onReorder}\n readonly={readOnly}\n reloadDoc={reloadDoc}\n serverURL={serverURL}\n showCollectionSlug={Array.isArray(relationTo)}\n />\n ) : (\n <div className={`${baseClass}__loadingRows`}>\n {value.map((id) => (\n <ShimmerEffect height=\"40px\" key={typeof id === 'object' ? id.value : id} />\n ))}\n </div>\n )}\n </>\n ) : null}\n {!hasMany && value ? (\n <>\n {populatedDocs && populatedDocs?.length > 0 && populatedDocs[0].value ? (\n <UploadComponentHasOne\n displayPreview={displayPreview}\n fileDoc={populatedDocs[0]}\n onRemove={onRemove}\n readonly={readOnly}\n reloadDoc={reloadDoc}\n serverURL={serverURL}\n showCollectionSlug={Array.isArray(relationTo)}\n />\n ) : populatedDocs && value && !populatedDocs?.[0]?.value ? (\n <>\n {t('general:untitled')} - ID: {value}\n </>\n ) : (\n <ShimmerEffect height=\"62px\" />\n )}\n </>\n ) : null}\n {showDropzone ? (\n <Dropzone\n disabled={readOnly || !canCreate}\n multipleFiles={hasMany}\n onChange={onLocalFileSelection}\n >\n <div className={`${baseClass}__dropzoneContent`}>\n <div className={`${baseClass}__dropzoneContent__buttons`}>\n {canCreate && (\n <>\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__createNewToggler`}\n disabled={readOnly || !canCreate}\n onClick={() => {\n if (!readOnly) {\n if (hasMany) {\n onLocalFileSelection()\n } else {\n openCreateDocDrawer()\n }\n }\n }}\n size=\"small\"\n >\n {t('general:createNew')}\n </Button>\n <span className={`${baseClass}__dropzoneContent__orText`}>\n {t('general:or')}\n </span>\n </>\n )}\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__listToggler`}\n disabled={readOnly}\n onClick={openListDrawer}\n size=\"small\"\n >\n {t('fields:chooseFromExisting')}\n </Button>\n <CreateDocDrawer onSave={onDocCreate} />\n <ListDrawer\n allowCreate={canCreate}\n enableRowSelections={hasMany}\n onBulkSelect={onListBulkSelect}\n onSelect={onListSelect}\n />\n </div>\n\n {canCreate && !readOnly && (\n <p className={`${baseClass}__dragAndDropText`}>\n {t('general:or')} {t('upload:dragAndDrop')}\n </p>\n )}\n </div>\n </Dropzone>\n ) : (\n <>\n {!readOnly &&\n !populatedDocs &&\n (!value ||\n typeof maxRows !== 'number' ||\n (Array.isArray(value) && value.length < maxRows)) ? (\n <ShimmerEffect height=\"40px\" />\n ) : null}\n </>\n )}\n </div>\n {AfterInput}\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n"],"names":["useModal","qs","React","useCallback","useEffect","useMemo","useBulkUpload","Button","useDocumentDrawer","Dropzone","useListDrawer","RenderCustomComponent","ShimmerEffect","FieldDescription","FieldError","FieldLabel","useAuth","useLocale","useTranslation","normalizeRelationshipValue","fieldBaseClass","UploadComponentHasMany","UploadComponentHasOne","baseClass","UploadInput","props","AfterInput","allowCreate","api","BeforeInput","className","Description","description","displayPreview","Error","filterOptions","filterOptionsFromProps","hasMany","isSortable","Label","label","localized","maxRows","onChange","onChangeFromProps","path","readOnly","relationTo","required","serverURL","showError","style","value","populatedDocs","setPopulatedDocs","useState","activeRelationTo","Array","isArray","openModal","drawerSlug","setCollectionSlug","setInitialFiles","setMaxFiles","setOnSuccess","setSelectableCollections","permissions","code","i18n","t","collectionSlugsWithCreatePermission","filter","relation","collections","create","isPoly","existingIdsByRelation","values","val","push","collection","id","newFilterOptions","relations","forEach","existingIds","not_in","concat","ListDrawer","closeDrawer","closeListDrawer","openDrawer","openListDrawer","collectionSlugs","CreateDocDrawer","closeCreateDocDrawer","openCreateDocDrawer","collectionSlug","loadedValueRef","useRef","canCreate","newValue","populateDocs","items","length","grouped","idValue","fetches","Object","entries","map","ids","query","depth","draft","limit","locale","where","and","in","response","fetch","body","stringify","credentials","headers","language","method","docs","ok","data","json","docsById","reduce","acc","doc","results","Promise","all","lookup","sortedDocs","filename","isPlaceholder","normalizeValue","onUploadSuccess","uploadedForms","newValues","form","normalizedExisting","mergedValue","currentDocs","firstDoc","onLocalFileSelection","fileList","fileListToUse","dataTransfer","DataTransfer","add","files","collectionToUse","onListBulkSelect","selectedDocIDs","isSelected","itemsToLoad","loadedDocs","onDocCreate","onListSelect","selectedDoc","valueToUse","reloadDoc","docID","updatedDocsToPropogate","existingDocIndex","findIndex","hasExisting","updatedDocs","onReorder","newValueToSave","rel","onRemove","loadInitialDocs","v","current","valueChanged","showDropzone","div","Boolean","join","replace","CustomComponent","Fallback","fileDocs","readonly","showCollectionSlug","height","fileDoc","disabled","multipleFiles","buttonStyle","onClick","size","span","onSave","enableRowSelections","onBulkSelect","onSelect","p"],"mappings":"AAAA;;AAeA,SAASA,QAAQ,QAAQ,qBAAoB;AAC7C,YAAYC,QAAQ,SAAQ;AAC5B,OAAOC,SAASC,WAAW,EAAEC,SAAS,EAAEC,OAAO,QAAQ,QAAO;AAK9D,SAAiCC,aAAa,QAAQ,qCAAoC;AAC1F,SAASC,MAAM,QAAQ,iCAAgC;AACvD,SAASC,iBAAiB,QAAQ,yCAAwC;AAC1E,SAASC,QAAQ,QAAQ,mCAAkC;AAC3D,SAASC,aAAa,QAAQ,qCAAoC;AAClE,SAASC,qBAAqB,QAAQ,gDAA+C;AACrF,SAASC,aAAa,QAAQ,wCAAuC;AACrE,SAASC,gBAAgB,QAAQ,yCAAwC;AACzE,SAASC,UAAU,QAAQ,mCAAkC;AAC7D,SAASC,UAAU,QAAQ,mCAAkC;AAC7D,SAASC,OAAO,QAAQ,gCAA+B;AACvD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,0BAA0B,QAAQ,gDAA+C;AAC1F,SAASC,cAAc,QAAQ,qBAAoB;AACnD,SAASC,sBAAsB,QAAQ,qBAAoB;AAC3D,SAASC,qBAAqB,QAAQ,oBAAmB;AACzD,OAAO,eAAc;AAErB,OAAO,MAAMC,YAAY,SAAQ;AAuCjC,OAAO,SAASC,YAAYC,KAAuB;IACjD,MAAM,EACJC,UAAU,EACVC,WAAW,EACXC,GAAG,EACHC,WAAW,EACXC,SAAS,EACTC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,KAAK,EACLC,eAAeC,sBAAsB,EACrCC,OAAO,EACPC,UAAU,EACVC,KAAK,EACLC,KAAK,EACLC,SAAS,EACTC,OAAO,EACPC,UAAUC,iBAAiB,EAC3BC,IAAI,EACJC,QAAQ,EACRC,UAAU,EACVC,QAAQ,EACRC,SAAS,EACTC,SAAS,EACTC,KAAK,EACLC,KAAK,EACN,GAAG3B;IAEJ,MAAM,CAAC4B,eAAeC,iBAAiB,GAAGpD,MAAMqD,QAAQ;IAOxD,MAAM,CAACC,iBAAiB,GAAGtD,MAAMqD,QAAQ,CACvCE,MAAMC,OAAO,CAACX,cAAcA,UAAU,CAAC,EAAE,GAAGA;IAG9C,MAAM,EAAEY,SAAS,EAAE,GAAG3D;IACtB,MAAM,EACJ4D,UAAU,EACVC,iBAAiB,EACjBC,eAAe,EACfC,WAAW,EACXC,YAAY,EACZC,wBAAwB,EACzB,GAAG3D;IACJ,MAAM,EAAE4D,WAAW,EAAE,GAAGlD;IACxB,MAAM,EAAEmD,IAAI,EAAE,GAAGlD;IACjB,MAAM,EAAEmD,IAAI,EAAEC,CAAC,EAAE,GAAGnD;IAEpB,+GAA+G;IAC/G,MAAMoD,sCAAsCjE,QAAQ;QAClD,IAAIoD,MAAMC,OAAO,CAACX,aAAa;YAC7B,OAAOA,WAAWwB,MAAM,CACtB,CAACC,WAAaN,aAAaO,eAAeP,YAAYO,WAAW,EAAE,CAACD,SAAS,EAAEE;QAEnF;QACA,OAAO,EAAE;IACX,GAAG;QAAC3B;QAAYmB;KAAY;IAE5B,MAAM/B,gBAAqC9B,QAAQ;QACjD,MAAMsE,SAASlB,MAAMC,OAAO,CAACX;QAE7B,IAAI,CAACK,OAAO;YACV,OAAOhB;QACT;QAEA,iCAAiC;QACjC,MAAMwC,wBAA6D,CAAC;QAEpE,MAAMC,SAASpB,MAAMC,OAAO,CAACN,SAASA,QAAQ;YAACA;SAAM;QAErD,KAAK,MAAM0B,OAAOD,OAAQ;YACxB,IAAIF,UAAU,OAAOG,QAAQ,YAAY,gBAAgBA,KAAK;gBAC5D,oCAAoC;gBACpC,IAAI,CAACF,qBAAqB,CAACE,IAAI/B,UAAU,CAAC,EAAE;oBAC1C6B,qBAAqB,CAACE,IAAI/B,UAAU,CAAC,GAAG,EAAE;gBAC5C;gBACA6B,qBAAqB,CAACE,IAAI/B,UAAU,CAAC,CAACgC,IAAI,CAACD,IAAI1B,KAAK;YACtD,OAAO,IAAI,CAACuB,QAAQ;gBAClB,4DAA4D;gBAC5D,MAAMK,aAAajC;gBACnB,IAAI,CAAC6B,qBAAqB,CAACI,WAAW,EAAE;oBACtCJ,qBAAqB,CAACI,WAAW,GAAG,EAAE;gBACxC;gBACA,MAAMC,KAAK,OAAOH,QAAQ,YAAY,WAAWA,MAAMA,IAAI1B,KAAK,GAAG0B;gBACnE,IAAI,OAAOG,OAAO,YAAY,OAAOA,OAAO,UAAU;oBACpDL,qBAAqB,CAACI,WAAW,CAACD,IAAI,CAACE;gBACzC;YACF;QACF;QAEA,2CAA2C;QAC3C,MAAMC,mBAAmB;YAAE,GAAG9C,sBAAsB;QAAC;QACrD,MAAM+C,YAAYR,SAAS5B,aAAa;YAACA;SAAW;QAEpDoC,UAAUC,OAAO,CAAC,CAACZ;YACjB,MAAMa,cAAcT,qBAAqB,CAACJ,SAAS,IAAI,EAAE;YAEzDU,gBAAgB,CAACV,SAAS,GAAG;gBAC3B,GAAI,AAACpC,wBAAwB,CAACoC,SAAS,IAAY,CAAC,CAAC;gBACrDS,IAAI;oBACF,GAAI,AAAC7C,wBAAwB,CAACoC,SAAS,EAAUS,MAAM,CAAC,CAAC;oBACzDK,QAAQ,AAAC,CAAA,AAAClD,wBAAwB,CAACoC,SAAS,EAAUS,IAAIK,UAAU,EAAE,AAAD,EAAGC,MAAM,CAC5EF;gBAEJ;YACF;QACF;QAEA,OAAOH;IACT,GAAG;QAAC9B;QAAOhB;QAAwBW;KAAW;IAE9C,MAAM,CAACyC,cAAc,EAAEC,aAAaC,eAAe,EAAEC,YAAYC,cAAc,EAAE,CAAC,GAChFlF,cAAc;QACZmF,iBAAiB,OAAO9C,eAAe,WAAW;YAACA;SAAW,GAAGA;QACjEZ;IACF;IAEF,MAAM,CACJ2D,mBAEA,EAAEL,aAAaM,oBAAoB,EAAEJ,YAAYK,mBAAmB,EAAE,CACvE,GAAGxF,kBAAkB;QACpByF,gBAAgBzC;IAClB;IAEA;;GAEC,GACD,MAAM0C,iBAAiBhG,MAAMiG,MAAM,CAEjC;IAEF,MAAMC,YAAY/F,QAAQ;QACxB,IAAI,CAACsB,aAAa;YAChB,OAAO;QACT;QAEA,IAAI,OAAO6B,qBAAqB,UAAU;YACxC,IAAIU,aAAaO,eAAeP,YAAYO,WAAW,EAAE,CAACjB,iBAAiB,EAAEkB,QAAQ;gBACnF,OAAO;YACT;QACF;QAEA,OAAO;IACT,GAAG;QAAClB;QAAkBU;QAAavC;KAAY;IAE/C,MAAMgB,WAAWzC,MAAMC,WAAW,CAChC,CAACkG;QACC,IAAI,OAAOzD,sBAAsB,YAAY;YAC3CA,kBAAkByD;QACpB;IACF,GACA;QAACzD;KAAkB;IAGrB,MAAM0D,eAAepG,MAAMC,WAAW,CACpC,OAAOoG;QACL,IAAI,CAACA,OAAOC,QAAQ;YAClB,OAAO,EAAE;QACX;QAEA,6BAA6B;QAC7B,MAAMC,UAA+C,CAAC;QACtDF,MAAMnB,OAAO,CAAC,CAAC,EAAErC,UAAU,EAAEK,KAAK,EAAE;YAClC,IAAI,CAACqD,OAAO,CAAC1D,WAAW,EAAE;gBACxB0D,OAAO,CAAC1D,WAAW,GAAG,EAAE;YAC1B;YACA,uDAAuD;YACvD,IAAI2D,UAA2BtD;YAE/B,IAAIA,SAAS,OAAOA,UAAU,YAAY,WAAYA,OAAe;gBACnEsD,UAAU,AAACtD,MAAcA,KAAK;YAChC;YAEAqD,OAAO,CAAC1D,WAAW,CAACgC,IAAI,CAAC2B;QAC3B;QAEA,0BAA0B;QAC1B,MAAMC,UAAUC,OAAOC,OAAO,CAACJ,SAASK,GAAG,CAAC,OAAO,CAAC9B,YAAY+B,IAAI;YAClE,MAAMC,QAAQ;gBACZC,OAAO;gBACPC,OAAO;gBACPC,OAAOJ,IAAIP,MAAM;gBACjBY,QAAQjD;gBACRkD,OAAO;oBACLC,KAAK;wBACH;4BACErC,IAAI;gCACFsC,IAAIR;4BACN;wBACF;qBACD;gBACH;YACF;YACA,MAAMS,WAAW,MAAMC,MAAM,GAAGxE,YAAYrB,IAAI,CAAC,EAAEoD,YAAY,EAAE;gBAC/D0C,MAAMzH,GAAG0H,SAAS,CAACX;gBACnBY,aAAa;gBACbC,SAAS;oBACP,mBAAmBzD,KAAK0D,QAAQ;oBAChC,gBAAgB;oBAChB,kCAAkC;gBACpC;gBACAC,QAAQ;YACV;YACA,IAAIC,OAAc,EAAE;YACpB,IAAIR,SAASS,EAAE,EAAE;gBACf,MAAMC,OAAO,MAAMV,SAASW,IAAI;gBAChCH,OAAOE,KAAKF,IAAI;YAClB;YACA,iCAAiC;YACjC,MAAMI,WAAWJ,KAAKK,MAAM,CAAC,CAACC,KAAKC;gBACjCD,GAAG,CAACC,IAAItD,EAAE,CAAC,GAAGsD;gBACd,OAAOD;YACT,GAAG,CAAC;YACJ,OAAO;gBAAEtD;gBAAYoD;YAAS;QAChC;QAEA,MAAMI,UAAU,MAAMC,QAAQC,GAAG,CAAC/B;QAElC,kBAAkB;QAClB,MAAMgC,SAA8C,CAAC;QACrDH,QAAQpD,OAAO,CAAC,CAAC,EAAEJ,UAAU,EAAEoD,QAAQ,EAAE;YACvCO,MAAM,CAAC3D,WAAW,GAAGoD;QACvB;QAEA,6DAA6D;QAC7D,MAAMQ,aAAarC,MAAMO,GAAG,CAAC,CAAC,EAAE/D,UAAU,EAAEK,KAAK,EAAE;YACjD,MAAMmF,MAAMI,MAAM,CAAC5F,WAAW,EAAE,CAACK,MAAM,IAAI;gBACzC6B,IAAI7B;gBACJyF,UAAU,GAAGxE,EAAE,oBAAoB,OAAO,EAAEjB,OAAO;gBACnD0F,eAAe;YACjB;YACA,OAAO;gBAAE/F;gBAAYK,OAAOmF;YAAI;QAClC;QAEA,OAAOK;IACT,GACA;QAAC3F;QAAWrB;QAAKuC;QAAMC,KAAK0D,QAAQ;QAAEzD;KAAE;IAG1C,MAAM0E,iBAAiB5I,YACrB,CAACiD,QAAoBjC,2BAA2BiC,OAAOL,aACvD;QAACA;KAAW;IAGd,MAAMiG,kBAAkD7I,YACtD,CAAC8I;QACC,MAAMtE,SAASlB,MAAMC,OAAO,CAACX;QAE7B,IAAIV,SAAS;YACX,MAAM6G,YAAYD,cAAcnC,GAAG,CAAC,CAACqC,OACnCxE,SAAS;oBAAE5B,YAAYoG,KAAKlD,cAAc;oBAAE7C,OAAO+F,KAAKZ,GAAG,CAACtD,EAAE;gBAAC,IAAIkE,KAAKZ,GAAG,CAACtD,EAAE;YAEhF,2CAA2C;YAC3C,MAAMmE,qBAAqB3F,MAAMC,OAAO,CAACN,SAASA,MAAM0D,GAAG,CAACiC,kBAAkB,EAAE;YAChF,MAAMM,cAAc;mBAAID;mBAAuBF;aAAU;YACzDvG,SAAS0G;YACT/F,iBAAiB,CAACgG,cAAgB;uBAC5BA,eAAe,EAAE;uBAClBL,cAAcnC,GAAG,CAAC,CAACqC,OAAU,CAAA;4BAC9BpG,YAAYoG,KAAKlD,cAAc;4BAC/B7C,OAAO+F,KAAKZ,GAAG;wBACjB,CAAA;iBACD;QACH,OAAO;YACL,MAAMgB,WAAWN,aAAa,CAAC,EAAE;YACjC,MAAM5C,WAAW1B,SACb;gBAAE5B,YAAYwG,SAAStD,cAAc;gBAAE7C,OAAOmG,SAAShB,GAAG,CAACtD,EAAE;YAAC,IAC9DsE,SAAShB,GAAG,CAACtD,EAAE;YACnBtC,SAAS0D;YACT/C,iBAAiB;gBACf;oBACEP,YAAYwG,SAAStD,cAAc;oBACnC7C,OAAOmG,SAAShB,GAAG;gBACrB;aACD;QACH;IACF,GACA;QAACnF;QAAOT;QAAUN;QAASU;QAAYgG;KAAe;IAGxD,MAAMS,uBAAuBtJ,MAAMC,WAAW,CAC5C,CAACsJ;QACC,IAAIC,gBAAgBD;QACpB,IAAI,CAACpH,WAAWoH,YAAYA,SAASjD,MAAM,GAAG,GAAG;YAC/C,MAAMmD,eAAe,IAAIC;YACzBD,aAAapD,KAAK,CAACsD,GAAG,CAACJ,QAAQ,CAAC,EAAE;YAClCC,gBAAgBC,aAAaG,KAAK;QACpC;QACA,IAAIJ,eAAe;YACjB5F,gBAAgB4F;QAClB;QACA,uFAAuF;QACvF,MAAMK,kBAAkBtG,MAAMC,OAAO,CAACX,cAAcS,mBAAmBT;QAEvEc,kBAAkBkG;QAClB,IAAItG,MAAMC,OAAO,CAACY,sCAAsC;YACtDL,yBAAyBK;QAC3B;QAEA,IAAI,OAAO5B,YAAY,UAAU;YAC/BqB,YAAYrB;QACd;QAEAiB,UAAUC;IACZ,GACA;QACEvB;QACAU;QACAS;QACAK;QACAS;QACA5B;QACAiB;QACAC;QACAE;QACAG;QACAF;KACD;IAGH,+BAA+B;IAC/B,MAAMiG,mBAAmB9J,MAAMC,WAAW,CACxC,OAAO6H;QACL,MAAMrD,SAASlB,MAAMC,OAAO,CAACX;QAC7B,MAAMkH,iBAAiB,EAAE;QAEzB,KAAK,MAAM,CAAChF,IAAIiF,WAAW,IAAIlC,KAAM;YACnC,IAAIkC,YAAY;gBACdD,eAAelF,IAAI,CAACE;YACtB;QACF;QAEA,MAAMkF,cAAcF,eAAenD,GAAG,CAAC,CAAC7B,KAAQ,CAAA;gBAC9ClC,YAAYS;gBACZJ,OAAO6B;YACT,CAAA;QAEA,MAAMmF,aAAa,MAAM9D,aAAa6D;QACtC,IAAIC,YAAY;YACd9G,iBAAiB,CAACgG,cAAgB;uBAAKA,eAAe,EAAE;uBAAMc;iBAAW;QAC3E;QAEA,MAAMlB,YAAYe,eAAenD,GAAG,CAAC,CAAC7B,KACpCN,SAAS;gBAAE5B,YAAYS;gBAAkBJ,OAAO6B;YAAG,IAAIA;QAEzD,2CAA2C;QAC3C,MAAMmE,qBAAqB3F,MAAMC,OAAO,CAACN,SAASA,MAAM0D,GAAG,CAACiC,kBAAkB,EAAE;QAChFpG,SAAS;eAAIyG;eAAuBF;SAAU;QAC9CxD;IACF,GACA;QAAClC;QAAkBkC;QAAiB/C;QAAU2D;QAAclD;QAAOL;QAAYgG;KAAe;IAGhG,MAAMsB,cAAcnK,MAAMC,WAAW,CACnC,CAAC+H;QACC,MAAMvD,SAASlB,MAAMC,OAAO,CAACX;QAC7B,IAAImF,KAAKK,GAAG,EAAE;YACZjF,iBAAiB,CAACgG,cAAgB;uBAC5BA,eAAe,EAAE;oBACrB;wBACEvG,YAAYS;wBACZJ,OAAO8E,KAAKK,GAAG;oBACjB;iBACD;YAED,MAAMlC,WAAW1B,SAAS;gBAAE5B,YAAYS;gBAAkBJ,OAAO8E,KAAKK,GAAG,CAACtD,EAAE;YAAC,IAAIiD,KAAKK,GAAG,CAACtD,EAAE;YAC5FtC,SAAS0D;QACX;QACAN;IACF,GACA;QAACA;QAAsBvC;QAAkBb;QAAUI;KAAW;IAGhE,MAAMuH,eAAenK,YACnB,OAAO,EAAE8F,cAAc,EAAEsC,GAAG,EAAE;QAC5B,MAAM5D,SAASlB,MAAMC,OAAO,CAACX;QAE7B,MAAMqH,aAAa,MAAM9D,aAAa;YAAC;gBAAEvD,YAAYkD;gBAAgB7C,OAAOmF,IAAItD,EAAE;YAAC;SAAE;QACrF,MAAMsF,cAAcH,YAAY,CAAC,EAAE,IAAI;QAEvC9G,iBAAiB,CAACgG;YAChB,IAAIiB,aAAa;gBACf,IAAIlI,SAAS;oBACX,OAAO;2BAAKiH,eAAe,EAAE;wBAAGiB;qBAAY;gBAC9C;gBACA,OAAO;oBAACA;iBAAY;YACtB;YACA,OAAOjB;QACT;QAEA,IAAIjH,SAAS;YACX,MAAMgE,WAAW1B,SAAS;gBAAE5B,YAAYkD;gBAAgB7C,OAAOmF,IAAItD,EAAE;YAAC,IAAIsD,IAAItD,EAAE;YAChF,2CAA2C;YAC3C,MAAMmE,qBAAqB3F,MAAMC,OAAO,CAACN,SAASA,MAAM0D,GAAG,CAACiC,kBAAkB,EAAE;YAChF,MAAMyB,aAAa;mBAAIpB;gBAAoB/C;aAAS;YACpD1D,SAAS6H;QACX,OAAO;YACL,MAAMA,aAAa7F,SAAS;gBAAE5B,YAAYkD;gBAAgB7C,OAAOmF,IAAItD,EAAE;YAAC,IAAIsD,IAAItD,EAAE;YAClFtC,SAAS6H;QACX;QACA9E;IACF,GACA;QAACA;QAAiBrD;QAASiE;QAAc3D;QAAUS;QAAOL;QAAYgG;KAAe;IAGvF,MAAM0B,YAAYvK,MAAMC,WAAW,CACjC,OAAOuK,OAAOzE;QACZ,MAAM+B,OAAO,MAAM1B,aAAa;YAAC;gBAAEvD,YAAYkD;gBAAgB7C,OAAOsH;YAAM;SAAE;QAE9E,IAAI1C,IAAI,CAAC,EAAE,EAAE;YACX,IAAI2C,yBAAyB,EAAE;YAC/BrH,iBAAiB,CAACgG;gBAChB,MAAMsB,mBAAmBtB,aAAauB,UAAU,CAACtC;oBAC/C,MAAMuC,cAAcvC,IAAInF,KAAK,EAAE6B,OAAO+C,IAAI,CAAC,EAAE,CAAC5E,KAAK,CAAC6B,EAAE,IAAIsD,IAAInF,KAAK,EAAE0F;oBACrE,OAAOgC,eAAevC,IAAIxF,UAAU,KAAKkD;gBAC3C;gBACA,IAAI2E,mBAAmB,CAAC,GAAG;oBACzB,MAAMG,cAAc;2BAAIzB;qBAAY;oBACpCyB,WAAW,CAACH,iBAAiB,GAAG5C,IAAI,CAAC,EAAE;oBACvC2C,yBAAyBI;oBACzB,OAAOA;gBACT;gBACA,OAAOzB;YACT;YAEA,IAAIqB,uBAAuBnE,MAAM,IAAInE,SAAS;gBAC5CM,SAASgI,uBAAuB7D,GAAG,CAAC,CAACyB,MAAQA,IAAInF,KAAK,EAAE6B;YAC1D;QACF;IACF,GACA;QAACqB;QAAc3D;QAAUN;KAAQ;IAGnC,2BAA2B;IAC3B,MAAM2I,YAAY9K,MAAMC,WAAW,CACjC,CAACkG;QACC,MAAM1B,SAASlB,MAAMC,OAAO,CAACX;QAC7B,MAAMkI,iBAAiB5E,SAASS,GAAG,CAAC,CAAC,EAAE/D,YAAYmI,GAAG,EAAE9H,KAAK,EAAE,GAC7DuB,SAAS;gBAAE5B,YAAYmI;gBAAK9H,OAAOA,MAAM6B,EAAE;YAAC,IAAI7B,MAAM6B,EAAE;QAE1DtC,SAASsI;QACT3H,iBAAiB+C;IACnB,GACA;QAAC1D;QAAUI;KAAW;IAGxB,MAAMoI,WAAWjL,MAAMC,WAAW,CAChC,CAACkG;QACC,MAAM1B,SAASlB,MAAMC,OAAO,CAACX;QAE7B,IAAI,CAACsD,YAAYA,SAASG,MAAM,KAAK,GAAG;YACtC7D,SAASN,UAAU,EAAE,GAAG;YACxBiB,iBAAiBjB,UAAU,EAAE,GAAG;YAChC;QACF;QAEA,MAAM4I,iBAAiB5E,SAASS,GAAG,CAAC,CAAC,EAAE/D,YAAYmI,GAAG,EAAE9H,KAAK,EAAE,GAC7DuB,SAAS;gBAAE5B,YAAYmI;gBAAK9H,OAAOA,MAAM6B,EAAE;YAAC,IAAI7B,MAAM6B,EAAE;QAG1DtC,SAASN,UAAU4I,iBAAiBA,cAAc,CAAC,EAAE;QACrD3H,iBAAiB+C;IACnB,GACA;QAAC1D;QAAUN;QAASU;KAAW;IAGjC3C,UAAU;QACR,eAAegL;YACb,IAAIhI,OAAO;gBACT,IAAI+G,cAAmC,EAAE;gBACzC,IACE1G,MAAMC,OAAO,CAACX,eACb,CAAA,AAAC,OAAOK,UAAU,YAAY,gBAAgBA,SAC5CK,MAAMC,OAAO,CAACN,UACbA,MAAMoD,MAAM,GAAG,KACf,OAAOpD,KAAK,CAAC,EAAE,KAAK,YACpB,gBAAgBA,KAAK,CAAC,EAAE,GAC5B;oBACA,gFAAgF;oBAChF,MAAMyB,SAASpB,MAAMC,OAAO,CAACN,SAASA,QAAQ;wBAACA;qBAAM;oBACrD+G,cAActF,OACXN,MAAM,CAAC,CAAC8G,IAA8B,OAAOA,MAAM,YAAY,gBAAgBA,GAC/EvE,GAAG,CAAC,CAACuE;wBACJ,uDAAuD;wBACvD,IAAI3E,UAAe2E,EAAEjI,KAAK;wBAC1B,MACEsD,WACA,OAAOA,YAAY,YACnBA,YAAY,QACZ,WAAWA,QACX;4BACAA,UAAUA,QAAQtD,KAAK;wBACzB;wBACA,OAAO;4BACLL,YAAYsI,EAAEtI,UAAU;4BACxBK,OAAOsD;wBACT;oBACF;gBACJ,OAAO;oBACL,uEAAuE;oBACvE,IAAI,CAACjD,MAAMC,OAAO,CAACX,aAAa;wBAC9B,yDAAyD;wBACzD,MAAMgE,MAAMtD,MAAMC,OAAO,CAACN,SAASA,QAAQ;4BAACA;yBAAM;wBAClD+G,cAAcpD,IAAID,GAAG,CAAC,CAAC7B;4BACrB,iDAAiD;4BACjD,IAAIyB,UAAezB;4BACnB,MACEyB,WACA,OAAOA,YAAY,YACnBA,YAAY,QACZ,WAAWA,QACX;gCACAA,UAAUA,QAAQtD,KAAK;4BACzB;4BACA,OAAO;gCACLL;gCACAK,OAAOsD;4BACT;wBACF;oBACF;gBACF;gBAEA,IAAIyD,YAAY3D,MAAM,GAAG,GAAG;oBAC1B,MAAM4D,aAAa,MAAM9D,aAAa6D;oBAEtC,IAAIC,YAAY;wBACd9G,iBAAiB8G;wBACjBlE,eAAeoF,OAAO,GAAGlI;oBAC3B;gBACF;YACF,OAAO;gBACL,6CAA6C;gBAC7CE,iBAAiB,EAAE;gBACnB4C,eAAeoF,OAAO,GAAG;YAC3B;QACF;QAEA,0DAA0D;QAC1D,MAAMC,eAAerF,eAAeoF,OAAO,KAAKlI;QAChD,IAAImI,cAAc;YAChB,KAAKH;QACP;IACF,GAAG;QAAC9E;QAAclD;QAAOL;KAAW;IAEpC3C,UAAU;QACR4D,aAAagF;IACf,GAAG;QAAC5F;QAAOP;QAAMmG;QAAiBhF;KAAa;IAE/C,MAAMwH,eACJ,CAACpI,SACAf,WAAWoB,MAAMC,OAAO,CAACN,UAAW,CAAA,OAAOV,YAAY,YAAYU,MAAMoD,MAAM,GAAG9D,OAAM,KACxF,CAACL,WAAWgB,eAAe,CAAC,EAAE,IAAI,OAAOA,aAAa,CAAC,EAAE,CAACD,KAAK,KAAK;IAEvE,qBACE,MAACqI;QACC3J,WAAW;YACTV;YACAG;YACAO;YACAoB,aAAa;YACbJ,YAAY;SACb,CACEyB,MAAM,CAACmH,SACPC,IAAI,CAAC;QACR1G,IAAI,CAAC,MAAM,EAAEpC,MAAM+I,QAAQ,OAAO,OAAO;QACzCzI,OAAOA;;0BAEP,KAACxC;gBACCkL,iBAAiBtJ;gBACjBuJ,wBACE,KAAC/K;oBAAWyB,OAAOA;oBAAOC,WAAWA;oBAAWI,MAAMA;oBAAMG,UAAUA;;;0BAG1E,KAACyI;gBAAI3J,WAAW,GAAGP,UAAU,MAAM,CAAC;0BAClC,cAAA,KAACZ;oBACCkL,iBAAiB3J;oBACjB4J,wBAAU,KAAChL;wBAAW+B,MAAMA;wBAAMK,WAAWA;;;;YAGhDrB;0BACD,MAAC4J;gBAAI3J,WAAW,GAAGP,UAAU,mBAAmB,CAAC;;oBAC9Cc,WAAWoB,MAAMC,OAAO,CAACN,UAAUA,MAAMoD,MAAM,GAAG,kBACjD;kCACGnD,iBAAiBA,eAAemD,SAAS,kBACxC,KAACnF;4BACCY,gBAAgBA;4BAChB8J,UAAU1I;4BACVf,YAAYA,cAAc,CAACQ;4BAC3BqI,UAAUA;4BACVH,WAAWA;4BACXgB,UAAUlJ;4BACV2H,WAAWA;4BACXxH,WAAWA;4BACXgJ,oBAAoBxI,MAAMC,OAAO,CAACX;2CAGpC,KAAC0I;4BAAI3J,WAAW,GAAGP,UAAU,aAAa,CAAC;sCACxC6B,MAAM0D,GAAG,CAAC,CAAC7B,mBACV,KAACrE;oCAAcsL,QAAO;mCAAY,OAAOjH,OAAO,WAAWA,GAAG7B,KAAK,GAAG6B;;yBAK5E;oBACH,CAAC5C,WAAWe,sBACX;kCACGC,iBAAiBA,eAAemD,SAAS,KAAKnD,aAAa,CAAC,EAAE,CAACD,KAAK,iBACnE,KAAC9B;4BACCW,gBAAgBA;4BAChBkK,SAAS9I,aAAa,CAAC,EAAE;4BACzB8H,UAAUA;4BACVa,UAAUlJ;4BACV2H,WAAWA;4BACXxH,WAAWA;4BACXgJ,oBAAoBxI,MAAMC,OAAO,CAACX;6BAElCM,iBAAiBD,SAAS,CAACC,eAAe,CAAC,EAAE,EAAED,sBACjD;;gCACGiB,EAAE;gCAAoB;gCAAQjB;;2CAGjC,KAACxC;4BAAcsL,QAAO;;yBAGxB;oBACHV,6BACC,KAAC/K;wBACC2L,UAAUtJ,YAAY,CAACsD;wBACvBiG,eAAehK;wBACfM,UAAU6G;kCAEV,cAAA,MAACiC;4BAAI3J,WAAW,GAAGP,UAAU,iBAAiB,CAAC;;8CAC7C,MAACkK;oCAAI3J,WAAW,GAAGP,UAAU,0BAA0B,CAAC;;wCACrD6E,2BACC;;8DACE,KAAC7F;oDACC+L,aAAY;oDACZxK,WAAW,GAAGP,UAAU,kBAAkB,CAAC;oDAC3C6K,UAAUtJ,YAAY,CAACsD;oDACvBmG,SAAS;wDACP,IAAI,CAACzJ,UAAU;4DACb,IAAIT,SAAS;gEACXmH;4DACF,OAAO;gEACLxD;4DACF;wDACF;oDACF;oDACAwG,MAAK;8DAEJnI,EAAE;;8DAEL,KAACoI;oDAAK3K,WAAW,GAAGP,UAAU,yBAAyB,CAAC;8DACrD8C,EAAE;;;;sDAIT,KAAC9D;4CACC+L,aAAY;4CACZxK,WAAW,GAAGP,UAAU,aAAa,CAAC;4CACtC6K,UAAUtJ;4CACVyJ,SAAS3G;4CACT4G,MAAK;sDAEJnI,EAAE;;sDAEL,KAACyB;4CAAgB4G,QAAQrC;;sDACzB,KAAC7E;4CACC7D,aAAayE;4CACbuG,qBAAqBtK;4CACrBuK,cAAc5C;4CACd6C,UAAUvC;;;;gCAIblE,aAAa,CAACtD,0BACb,MAACgK;oCAAEhL,WAAW,GAAGP,UAAU,iBAAiB,CAAC;;wCAC1C8C,EAAE;wCAAc;wCAAEA,EAAE;;;;;uCAM7B;kCACG,CAACvB,YACF,CAACO,iBACA,CAAA,CAACD,SACA,OAAOV,YAAY,YAClBe,MAAMC,OAAO,CAACN,UAAUA,MAAMoD,MAAM,GAAG9D,OAAO,kBAC/C,KAAC9B;4BAAcsL,QAAO;6BACpB;;;;YAITxK;0BACD,KAACf;gBACCkL,iBAAiB9J;gBACjB+J,wBAAU,KAACjL;oBAAiBmB,aAAaA;oBAAaa,MAAMA;;;;;AAIpE"}
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/Upload/Input.tsx"],"sourcesContent":["'use client'\n\nimport type {\n ClientCollectionConfig,\n FieldLabelClientProps,\n FilterOptionsResult,\n JsonObject,\n StaticDescription,\n StaticLabel,\n UploadFieldClient,\n UploadField as UploadFieldType,\n ValueWithRelation,\n} from 'payload'\nimport type { MarkOptional } from 'ts-essentials'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo } from 'react'\n\nimport type { ListDrawerProps } from '../../elements/ListDrawer/types.js'\nimport type { ReloadDoc, ValueAsDataWithRelation } from './types.js'\n\nimport { type BulkUploadContext, useBulkUpload } from '../../elements/BulkUpload/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { Dropzone } from '../../elements/Dropzone/index.js'\nimport { useListDrawer } from '../../elements/ListDrawer/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { ShimmerEffect } from '../../elements/ShimmerEffect/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { normalizeRelationshipValue } from '../../utilities/normalizeRelationshipValue.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { UploadComponentHasMany } from './HasMany/index.js'\nimport { UploadComponentHasOne } from './HasOne/index.js'\nimport './index.scss'\n\nexport const baseClass = 'upload'\n\ntype PopulatedDocs = { relationTo: string; value: JsonObject }[]\n\nexport type UploadInputProps = {\n readonly AfterInput?: React.ReactNode\n readonly allowCreate?: boolean\n /**\n * Controls the visibility of the \"Create new collection\" button\n */\n readonly api?: string\n readonly BeforeInput?: React.ReactNode\n readonly className?: string\n readonly collection?: ClientCollectionConfig\n readonly customUploadActions?: React.ReactNode[]\n readonly Description?: React.ReactNode\n readonly description?: StaticDescription\n readonly displayPreview?: boolean\n readonly Error?: React.ReactNode\n readonly filterOptions?: FilterOptionsResult\n readonly hasMany?: boolean\n readonly hideRemoveFile?: boolean\n readonly isSortable?: boolean\n readonly Label?: React.ReactNode\n readonly label?: StaticLabel\n readonly labelProps?: FieldLabelClientProps<MarkOptional<UploadFieldClient, 'type'>>\n readonly localized?: boolean\n readonly maxRows?: number\n readonly onChange?: (e) => void\n readonly path: string\n readonly readOnly?: boolean\n readonly relationTo: UploadFieldType['relationTo']\n readonly required?: boolean\n readonly serverURL?: string\n readonly showError?: boolean\n readonly style?: React.CSSProperties\n readonly value?: (number | string)[] | number | string | ValueWithRelation | ValueWithRelation[]\n}\n\nexport function UploadInput(props: UploadInputProps) {\n const {\n AfterInput,\n allowCreate,\n api,\n BeforeInput,\n className,\n Description,\n description,\n displayPreview,\n Error,\n filterOptions: filterOptionsFromProps,\n hasMany,\n isSortable,\n Label,\n label,\n localized,\n maxRows,\n onChange: onChangeFromProps,\n path,\n readOnly,\n relationTo,\n required,\n serverURL,\n showError,\n style,\n value,\n } = props\n\n const [populatedDocs, setPopulatedDocs] = React.useState<\n {\n relationTo: string\n value: JsonObject\n }[]\n >()\n\n const [activeRelationTo] = React.useState<string>(\n Array.isArray(relationTo) ? relationTo[0] : relationTo,\n )\n\n const { openModal } = useModal()\n const {\n drawerSlug,\n setCollectionSlug,\n setInitialFiles,\n setMaxFiles,\n setOnSuccess,\n setSelectableCollections,\n } = useBulkUpload()\n const { permissions } = useAuth()\n const { code } = useLocale()\n const { i18n, t } = useTranslation()\n\n // This will be used by the bulk upload to allow you to select only collections you have create permissions for\n const collectionSlugsWithCreatePermission = useMemo(() => {\n if (Array.isArray(relationTo)) {\n return relationTo.filter(\n (relation) => permissions?.collections && permissions.collections?.[relation]?.create,\n )\n }\n return []\n }, [relationTo, permissions])\n\n const filterOptions: FilterOptionsResult = useMemo(() => {\n const isPoly = Array.isArray(relationTo)\n\n if (!value) {\n return filterOptionsFromProps\n }\n\n // Group existing IDs by relation\n const existingIdsByRelation: Record<string, (number | string)[]> = {}\n\n const values = Array.isArray(value) ? value : [value]\n\n for (const val of values) {\n if (isPoly && typeof val === 'object' && 'relationTo' in val) {\n // Poly upload - group by relationTo\n if (!existingIdsByRelation[val.relationTo]) {\n existingIdsByRelation[val.relationTo] = []\n }\n existingIdsByRelation[val.relationTo].push(val.value)\n } else if (!isPoly) {\n // Non-poly upload - all IDs belong to the single collection\n const collection = relationTo\n if (!existingIdsByRelation[collection]) {\n existingIdsByRelation[collection] = []\n }\n const id = typeof val === 'object' && 'value' in val ? val.value : val\n if (typeof id === 'string' || typeof id === 'number') {\n existingIdsByRelation[collection].push(id)\n }\n }\n }\n\n // Build filter options for each collection\n const newFilterOptions = { ...filterOptionsFromProps }\n const relations = isPoly ? relationTo : [relationTo]\n\n relations.forEach((relation) => {\n const existingIds = existingIdsByRelation[relation] || []\n\n newFilterOptions[relation] = {\n ...((filterOptionsFromProps?.[relation] as any) || {}),\n id: {\n ...((filterOptionsFromProps?.[relation] as any)?.id || {}),\n not_in: ((filterOptionsFromProps?.[relation] as any)?.id?.not_in || []).concat(\n existingIds,\n ),\n },\n }\n })\n\n return newFilterOptions\n }, [value, filterOptionsFromProps, relationTo])\n\n const [ListDrawer, , { closeDrawer: closeListDrawer, openDrawer: openListDrawer }] =\n useListDrawer({\n collectionSlugs: typeof relationTo === 'string' ? [relationTo] : relationTo,\n filterOptions,\n })\n\n const [\n CreateDocDrawer,\n ,\n { closeDrawer: closeCreateDocDrawer, openDrawer: openCreateDocDrawer },\n ] = useDocumentDrawer({\n collectionSlug: activeRelationTo,\n })\n\n /**\n * Track the last loaded value to prevent unnecessary reloads\n */\n const loadedValueRef = React.useRef<\n (number | string)[] | null | number | string | ValueWithRelation | ValueWithRelation[]\n >(null)\n\n const canCreate = useMemo(() => {\n if (!allowCreate) {\n return false\n }\n\n if (typeof activeRelationTo === 'string') {\n if (permissions?.collections && permissions.collections?.[activeRelationTo]?.create) {\n return true\n }\n }\n\n return false\n }, [activeRelationTo, permissions, allowCreate])\n\n const onChange = React.useCallback(\n (newValue) => {\n if (typeof onChangeFromProps === 'function') {\n onChangeFromProps(newValue)\n }\n },\n [onChangeFromProps],\n )\n\n const populateDocs = React.useCallback(\n async (items: ValueWithRelation[]): Promise<ValueAsDataWithRelation[]> => {\n if (!items?.length) {\n return []\n }\n\n // 1. Group IDs by collection\n const grouped: Record<string, (number | string)[]> = {}\n items.forEach(({ relationTo, value }) => {\n if (!grouped[relationTo]) {\n grouped[relationTo] = []\n }\n // Ensure we extract the actual ID value, not an object\n let idValue: number | string = value\n\n if (value && typeof value === 'object' && 'value' in (value as any)) {\n idValue = (value as any).value\n }\n\n grouped[relationTo].push(idValue)\n })\n\n // 2. Fetch per collection\n const fetches = Object.entries(grouped).map(async ([collection, ids]) => {\n const query = {\n depth: 0,\n draft: true,\n limit: ids.length,\n locale: code,\n where: {\n and: [\n {\n id: {\n in: ids,\n },\n },\n ],\n },\n }\n const response = await fetch(`${serverURL}${api}/${collection}`, {\n body: qs.stringify(query),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-Payload-HTTP-Method-Override': 'GET',\n },\n method: 'POST',\n })\n let docs: any[] = []\n if (response.ok) {\n const data = await response.json()\n docs = data.docs\n }\n // Map docs by ID for fast lookup\n const docsById = docs.reduce((acc, doc) => {\n acc[doc.id] = doc\n return acc\n }, {})\n return { collection, docsById }\n })\n\n const results = await Promise.all(fetches)\n\n // 3. Build lookup\n const lookup: Record<string, Record<string, any>> = {}\n results.forEach(({ collection, docsById }) => {\n lookup[collection] = docsById\n })\n\n // 4. Reconstruct in input order, add placeholders if missing\n const sortedDocs = items.map(({ relationTo, value }) => {\n const doc = lookup[relationTo]?.[value] || {\n id: value,\n filename: `${t('general:untitled')} - ID: ${value}`,\n isPlaceholder: true,\n }\n return { relationTo, value: doc }\n })\n\n return sortedDocs\n },\n [serverURL, api, code, i18n.language, t],\n )\n\n const normalizeValue = useCallback(\n (value: any): any => normalizeRelationshipValue(value, relationTo),\n [relationTo],\n )\n\n const onUploadSuccess: BulkUploadContext['onSuccess'] = useCallback(\n (uploadedForms) => {\n const isPoly = Array.isArray(relationTo)\n\n if (hasMany) {\n const newValues = uploadedForms.map((form) =>\n isPoly ? { relationTo: form.collectionSlug, value: form.doc.id } : form.doc.id,\n )\n // Normalize existing values before merging\n const normalizedExisting = Array.isArray(value) ? value.map(normalizeValue) : []\n const mergedValue = [...normalizedExisting, ...newValues]\n onChange(mergedValue)\n setPopulatedDocs((currentDocs) => [\n ...(currentDocs || []),\n ...uploadedForms.map((form) => ({\n relationTo: form.collectionSlug,\n value: form.doc,\n })),\n ])\n } else {\n const firstDoc = uploadedForms[0]\n const newValue = isPoly\n ? { relationTo: firstDoc.collectionSlug, value: firstDoc.doc.id }\n : firstDoc.doc.id\n onChange(newValue)\n setPopulatedDocs([\n {\n relationTo: firstDoc.collectionSlug,\n value: firstDoc.doc,\n },\n ])\n }\n },\n [value, onChange, hasMany, relationTo, normalizeValue],\n )\n\n const onLocalFileSelection = React.useCallback(\n (fileList?: FileList) => {\n let fileListToUse = fileList\n if (!hasMany && fileList && fileList.length > 1) {\n const dataTransfer = new DataTransfer()\n dataTransfer.items.add(fileList[0])\n fileListToUse = dataTransfer.files\n }\n if (fileListToUse) {\n setInitialFiles(fileListToUse)\n }\n // Use activeRelationTo for poly uploads, or relationTo as string for single collection\n const collectionToUse = Array.isArray(relationTo) ? activeRelationTo : relationTo\n\n setCollectionSlug(collectionToUse)\n if (Array.isArray(collectionSlugsWithCreatePermission)) {\n setSelectableCollections(collectionSlugsWithCreatePermission)\n }\n\n if (typeof maxRows === 'number') {\n setMaxFiles(maxRows)\n }\n\n openModal(drawerSlug)\n },\n [\n hasMany,\n relationTo,\n activeRelationTo,\n setCollectionSlug,\n collectionSlugsWithCreatePermission,\n maxRows,\n openModal,\n drawerSlug,\n setInitialFiles,\n setSelectableCollections,\n setMaxFiles,\n ],\n )\n\n // only hasMany can bulk select\n const onListBulkSelect = React.useCallback<NonNullable<ListDrawerProps['onBulkSelect']>>(\n async (docs) => {\n const isPoly = Array.isArray(relationTo)\n const selectedDocIDs = []\n\n for (const [id, isSelected] of docs) {\n if (isSelected) {\n selectedDocIDs.push(id)\n }\n }\n\n const itemsToLoad = selectedDocIDs.map((id) => ({\n relationTo: activeRelationTo,\n value: id,\n }))\n\n const loadedDocs = await populateDocs(itemsToLoad)\n if (loadedDocs) {\n setPopulatedDocs((currentDocs) => [...(currentDocs || []), ...loadedDocs])\n }\n\n const newValues = selectedDocIDs.map((id) =>\n isPoly ? { relationTo: activeRelationTo, value: id } : id,\n )\n // Normalize existing values before merging\n const normalizedExisting = Array.isArray(value) ? value.map(normalizeValue) : []\n onChange([...normalizedExisting, ...newValues])\n closeListDrawer()\n },\n [activeRelationTo, closeListDrawer, onChange, populateDocs, value, relationTo, normalizeValue],\n )\n\n const onDocCreate = React.useCallback(\n (data) => {\n const isPoly = Array.isArray(relationTo)\n if (data.doc) {\n setPopulatedDocs((currentDocs) => [\n ...(currentDocs || []),\n {\n relationTo: activeRelationTo,\n value: data.doc,\n },\n ])\n\n const newValue = isPoly ? { relationTo: activeRelationTo, value: data.doc.id } : data.doc.id\n onChange(newValue)\n }\n closeCreateDocDrawer()\n },\n [closeCreateDocDrawer, activeRelationTo, onChange, relationTo],\n )\n\n const onListSelect = useCallback<NonNullable<ListDrawerProps['onSelect']>>(\n async ({ collectionSlug, doc }) => {\n const isPoly = Array.isArray(relationTo)\n\n const loadedDocs = await populateDocs([{ relationTo: collectionSlug, value: doc.id }])\n const selectedDoc = loadedDocs?.[0] || null\n\n setPopulatedDocs((currentDocs) => {\n if (selectedDoc) {\n if (hasMany) {\n return [...(currentDocs || []), selectedDoc]\n }\n return [selectedDoc]\n }\n return currentDocs\n })\n\n if (hasMany) {\n const newValue = isPoly ? { relationTo: collectionSlug, value: doc.id } : doc.id\n // Normalize existing values before merging\n const normalizedExisting = Array.isArray(value) ? value.map(normalizeValue) : []\n const valueToUse = [...normalizedExisting, newValue]\n onChange(valueToUse)\n } else {\n const valueToUse = isPoly ? { relationTo: collectionSlug, value: doc.id } : doc.id\n onChange(valueToUse)\n }\n closeListDrawer()\n },\n [closeListDrawer, hasMany, populateDocs, onChange, value, relationTo, normalizeValue],\n )\n\n const reloadDoc = React.useCallback<ReloadDoc>(\n async (docID, collectionSlug) => {\n const docs = await populateDocs([{ relationTo: collectionSlug, value: docID }])\n\n if (docs[0]) {\n let updatedDocsToPropogate = []\n setPopulatedDocs((currentDocs) => {\n const existingDocIndex = currentDocs?.findIndex((doc) => {\n const hasExisting = doc.value?.id === docs[0].value.id || doc.value?.isPlaceholder\n return hasExisting && doc.relationTo === collectionSlug\n })\n if (existingDocIndex > -1) {\n const updatedDocs = [...currentDocs]\n updatedDocs[existingDocIndex] = docs[0]\n updatedDocsToPropogate = updatedDocs\n return updatedDocs\n }\n return currentDocs\n })\n\n if (updatedDocsToPropogate.length && hasMany) {\n onChange(updatedDocsToPropogate.map((doc) => doc.value?.id))\n }\n }\n },\n [populateDocs, onChange, hasMany],\n )\n\n // only hasMany can reorder\n const onReorder = React.useCallback(\n (newValue) => {\n const isPoly = Array.isArray(relationTo)\n const newValueToSave = newValue.map(({ relationTo: rel, value }) =>\n isPoly ? { relationTo: rel, value: value.id } : value.id,\n )\n onChange(newValueToSave)\n setPopulatedDocs(newValue)\n },\n [onChange, relationTo],\n )\n\n const onRemove = React.useCallback(\n (newValue?: PopulatedDocs) => {\n const isPoly = Array.isArray(relationTo)\n\n if (!newValue || newValue.length === 0) {\n onChange(hasMany ? [] : null)\n setPopulatedDocs(hasMany ? [] : null)\n return\n }\n\n const newValueToSave = newValue.map(({ relationTo: rel, value }) =>\n isPoly ? { relationTo: rel, value: value.id } : value.id,\n )\n\n onChange(hasMany ? newValueToSave : newValueToSave[0])\n setPopulatedDocs(newValue)\n },\n [onChange, hasMany, relationTo],\n )\n\n useEffect(() => {\n async function loadInitialDocs() {\n if (value) {\n let itemsToLoad: ValueWithRelation[] = []\n if (\n Array.isArray(relationTo) &&\n ((typeof value === 'object' && 'relationTo' in value) ||\n (Array.isArray(value) &&\n value.length > 0 &&\n typeof value[0] === 'object' &&\n 'relationTo' in value[0]))\n ) {\n // For poly uploads, value should already be in the format { relationTo, value }\n const values = Array.isArray(value) ? value : [value]\n itemsToLoad = values\n .filter((v): v is ValueWithRelation => typeof v === 'object' && 'relationTo' in v)\n .map((v) => {\n // Ensure the value property is a simple ID, not nested\n let idValue: any = v.value\n while (\n idValue &&\n typeof idValue === 'object' &&\n idValue !== null &&\n 'value' in idValue\n ) {\n idValue = idValue.value\n }\n return {\n relationTo: v.relationTo,\n value: idValue as number | string,\n }\n })\n } else {\n // This check is here to satisfy TypeScript that relationTo is a string\n if (!Array.isArray(relationTo)) {\n // For single collection uploads, we need to wrap the IDs\n const ids = Array.isArray(value) ? value : [value]\n itemsToLoad = ids.map((id): ValueWithRelation => {\n // Extract the actual ID, handling nested objects\n let idValue: any = id\n while (\n idValue &&\n typeof idValue === 'object' &&\n idValue !== null &&\n 'value' in idValue\n ) {\n idValue = idValue.value\n }\n return {\n relationTo,\n value: idValue as number | string,\n }\n })\n }\n }\n\n if (itemsToLoad.length > 0) {\n const loadedDocs = await populateDocs(itemsToLoad)\n\n if (loadedDocs) {\n setPopulatedDocs(loadedDocs)\n loadedValueRef.current = value\n }\n }\n } else {\n // Clear populated docs when value is cleared\n setPopulatedDocs([])\n loadedValueRef.current = null\n }\n }\n\n // Only load if value has changed from what we last loaded\n const valueChanged = loadedValueRef.current !== value\n if (valueChanged) {\n void loadInitialDocs()\n }\n }, [populateDocs, value, relationTo])\n\n useEffect(() => {\n setOnSuccess(onUploadSuccess)\n }, [value, path, onUploadSuccess, setOnSuccess])\n\n const showDropzone =\n !value ||\n (hasMany && Array.isArray(value) && (typeof maxRows !== 'number' || value.length < maxRows)) ||\n (!hasMany && populatedDocs?.[0] && typeof populatedDocs[0].value === 'undefined')\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && 'error',\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path?.replace(/\\./g, '__')}`}\n style={style}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${baseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n </div>\n {BeforeInput}\n <div className={`${baseClass}__dropzoneAndUpload`}>\n {hasMany && Array.isArray(value) && value.length > 0 ? (\n <>\n {populatedDocs && populatedDocs?.length > 0 ? (\n <UploadComponentHasMany\n displayPreview={displayPreview}\n fileDocs={populatedDocs}\n isSortable={isSortable && !readOnly}\n onRemove={onRemove}\n onReorder={onReorder}\n readonly={readOnly}\n reloadDoc={reloadDoc}\n serverURL={serverURL}\n showCollectionSlug={Array.isArray(relationTo)}\n />\n ) : (\n <div className={`${baseClass}__loadingRows`}>\n {value.map((id) => (\n <ShimmerEffect height=\"40px\" key={typeof id === 'object' ? id.value : id} />\n ))}\n </div>\n )}\n </>\n ) : null}\n {!hasMany && value ? (\n <>\n {populatedDocs && populatedDocs?.length > 0 && populatedDocs[0].value ? (\n <UploadComponentHasOne\n displayPreview={displayPreview}\n fileDoc={populatedDocs[0]}\n onRemove={onRemove}\n readonly={readOnly}\n reloadDoc={reloadDoc}\n serverURL={serverURL}\n showCollectionSlug={Array.isArray(relationTo)}\n />\n ) : populatedDocs && value && !populatedDocs?.[0]?.value ? (\n <>\n {t('general:untitled')} - ID: {value}\n </>\n ) : (\n <ShimmerEffect height=\"62px\" />\n )}\n </>\n ) : null}\n {showDropzone ? (\n <Dropzone\n disabled={readOnly || !canCreate}\n multipleFiles={hasMany}\n onChange={onLocalFileSelection}\n >\n <div className={`${baseClass}__dropzoneContent`}>\n <div className={`${baseClass}__dropzoneContent__buttons`}>\n {canCreate && (\n <>\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__createNewToggler`}\n disabled={readOnly || !canCreate}\n onClick={() => {\n if (!readOnly) {\n if (hasMany) {\n onLocalFileSelection()\n } else {\n openCreateDocDrawer()\n }\n }\n }}\n size=\"small\"\n >\n {t('general:createNew')}\n </Button>\n <span className={`${baseClass}__dropzoneContent__orText`}>\n {t('general:or')}\n </span>\n </>\n )}\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__listToggler`}\n disabled={readOnly}\n onClick={openListDrawer}\n size=\"small\"\n >\n {t('fields:chooseFromExisting')}\n </Button>\n <CreateDocDrawer onSave={onDocCreate} />\n <ListDrawer\n allowCreate={canCreate}\n enableRowSelections={hasMany}\n onBulkSelect={onListBulkSelect}\n onSelect={onListSelect}\n />\n </div>\n\n {canCreate && !readOnly && (\n <p className={`${baseClass}__dragAndDropText`}>\n {t('general:or')} {t('upload:dragAndDrop')}\n </p>\n )}\n </div>\n </Dropzone>\n ) : (\n <>\n {!readOnly &&\n !populatedDocs &&\n (!value ||\n typeof maxRows !== 'number' ||\n (Array.isArray(value) && value.length < maxRows)) ? (\n <ShimmerEffect height=\"40px\" />\n ) : null}\n </>\n )}\n </div>\n {AfterInput}\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n"],"names":["useModal","qs","React","useCallback","useEffect","useMemo","useBulkUpload","Button","useDocumentDrawer","Dropzone","useListDrawer","RenderCustomComponent","ShimmerEffect","FieldDescription","FieldError","FieldLabel","useAuth","useLocale","useTranslation","normalizeRelationshipValue","fieldBaseClass","UploadComponentHasMany","UploadComponentHasOne","baseClass","UploadInput","props","AfterInput","allowCreate","api","BeforeInput","className","Description","description","displayPreview","Error","filterOptions","filterOptionsFromProps","hasMany","isSortable","Label","label","localized","maxRows","onChange","onChangeFromProps","path","readOnly","relationTo","required","serverURL","showError","style","value","populatedDocs","setPopulatedDocs","useState","activeRelationTo","Array","isArray","openModal","drawerSlug","setCollectionSlug","setInitialFiles","setMaxFiles","setOnSuccess","setSelectableCollections","permissions","code","i18n","t","collectionSlugsWithCreatePermission","filter","relation","collections","create","isPoly","existingIdsByRelation","values","val","push","collection","id","newFilterOptions","relations","forEach","existingIds","not_in","concat","ListDrawer","closeDrawer","closeListDrawer","openDrawer","openListDrawer","collectionSlugs","CreateDocDrawer","closeCreateDocDrawer","openCreateDocDrawer","collectionSlug","loadedValueRef","useRef","canCreate","newValue","populateDocs","items","length","grouped","idValue","fetches","Object","entries","map","ids","query","depth","draft","limit","locale","where","and","in","response","fetch","body","stringify","credentials","headers","language","method","docs","ok","data","json","docsById","reduce","acc","doc","results","Promise","all","lookup","sortedDocs","filename","isPlaceholder","normalizeValue","onUploadSuccess","uploadedForms","newValues","form","normalizedExisting","mergedValue","currentDocs","firstDoc","onLocalFileSelection","fileList","fileListToUse","dataTransfer","DataTransfer","add","files","collectionToUse","onListBulkSelect","selectedDocIDs","isSelected","itemsToLoad","loadedDocs","onDocCreate","onListSelect","selectedDoc","valueToUse","reloadDoc","docID","updatedDocsToPropogate","existingDocIndex","findIndex","hasExisting","updatedDocs","onReorder","newValueToSave","rel","onRemove","loadInitialDocs","v","current","valueChanged","showDropzone","div","Boolean","join","replace","CustomComponent","Fallback","fileDocs","readonly","showCollectionSlug","height","fileDoc","disabled","multipleFiles","buttonStyle","onClick","size","span","onSave","enableRowSelections","onBulkSelect","onSelect","p"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
2
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
3
3
|
import { getTranslation } from '@payloadcms/translations';
|
|
4
4
|
import { formatFilesize } from 'payload/shared';
|
|
5
5
|
import React from 'react';
|
|
@@ -39,69 +39,117 @@ export function RelationshipContent(props) {
|
|
|
39
39
|
}
|
|
40
40
|
const metaText = withMeta ? generateMetaText(mimeType, byteSize) : '';
|
|
41
41
|
const previewAllowed = displayPreview ?? collectionConfig?.upload?.displayPreview ?? true;
|
|
42
|
-
return /*#__PURE__*/
|
|
42
|
+
return /*#__PURE__*/ _jsxDEV("div", {
|
|
43
43
|
className: [
|
|
44
44
|
baseClass,
|
|
45
45
|
className
|
|
46
46
|
].filter(Boolean).join(' '),
|
|
47
47
|
children: [
|
|
48
|
-
/*#__PURE__*/
|
|
48
|
+
/*#__PURE__*/ _jsxDEV("div", {
|
|
49
49
|
className: `${baseClass}__imageAndDetails`,
|
|
50
50
|
children: [
|
|
51
|
-
previewAllowed && /*#__PURE__*/
|
|
51
|
+
previewAllowed && /*#__PURE__*/ _jsxDEV(ThumbnailComponent, {
|
|
52
52
|
alt: alt,
|
|
53
53
|
className: `${baseClass}__thumbnail`,
|
|
54
54
|
filename: filename,
|
|
55
55
|
fileSrc: thumbnailSrc,
|
|
56
56
|
size: "small"
|
|
57
|
-
}
|
|
58
|
-
|
|
57
|
+
}, void 0, false, {
|
|
58
|
+
fileName: "src/fields/Upload/RelationshipContent/index.tsx",
|
|
59
|
+
lineNumber: 104,
|
|
60
|
+
columnNumber: 11
|
|
61
|
+
}, this),
|
|
62
|
+
showCollectionSlug && collectionConfig ? /*#__PURE__*/ _jsxDEV(Pill, {
|
|
59
63
|
size: "small",
|
|
60
64
|
children: getTranslation(collectionConfig.labels.singular, i18n)
|
|
61
|
-
}
|
|
62
|
-
|
|
65
|
+
}, void 0, false, {
|
|
66
|
+
fileName: "src/fields/Upload/RelationshipContent/index.tsx",
|
|
67
|
+
lineNumber: 113,
|
|
68
|
+
columnNumber: 11
|
|
69
|
+
}, this) : null,
|
|
70
|
+
/*#__PURE__*/ _jsxDEV("div", {
|
|
63
71
|
className: `${baseClass}__details`,
|
|
64
72
|
children: [
|
|
65
|
-
/*#__PURE__*/
|
|
73
|
+
/*#__PURE__*/ _jsxDEV("p", {
|
|
66
74
|
className: `${baseClass}__filename`,
|
|
67
|
-
children: src ? /*#__PURE__*/
|
|
75
|
+
children: src ? /*#__PURE__*/ _jsxDEV("a", {
|
|
68
76
|
href: src,
|
|
69
77
|
target: "_blank",
|
|
70
78
|
children: filename
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
|
|
79
|
+
}, void 0, false, {
|
|
80
|
+
fileName: "src/fields/Upload/RelationshipContent/index.tsx",
|
|
81
|
+
lineNumber: 118,
|
|
82
|
+
columnNumber: 15
|
|
83
|
+
}, this) : filename
|
|
84
|
+
}, void 0, false, {
|
|
85
|
+
fileName: "src/fields/Upload/RelationshipContent/index.tsx",
|
|
86
|
+
lineNumber: 116,
|
|
87
|
+
columnNumber: 11
|
|
88
|
+
}, this),
|
|
89
|
+
withMeta ? /*#__PURE__*/ _jsxDEV("p", {
|
|
74
90
|
className: `${baseClass}__meta`,
|
|
75
91
|
children: metaText
|
|
76
|
-
}
|
|
92
|
+
}, void 0, false, {
|
|
93
|
+
fileName: "src/fields/Upload/RelationshipContent/index.tsx",
|
|
94
|
+
lineNumber: 125,
|
|
95
|
+
columnNumber: 23
|
|
96
|
+
}, this) : null
|
|
77
97
|
]
|
|
78
|
-
}
|
|
98
|
+
}, void 0, true, {
|
|
99
|
+
fileName: "src/fields/Upload/RelationshipContent/index.tsx",
|
|
100
|
+
lineNumber: 115,
|
|
101
|
+
columnNumber: 9
|
|
102
|
+
}, this)
|
|
79
103
|
]
|
|
80
|
-
}
|
|
81
|
-
|
|
104
|
+
}, void 0, true, {
|
|
105
|
+
fileName: "src/fields/Upload/RelationshipContent/index.tsx",
|
|
106
|
+
lineNumber: 102,
|
|
107
|
+
columnNumber: 7
|
|
108
|
+
}, this),
|
|
109
|
+
allowEdit !== false || allowRemove !== false ? /*#__PURE__*/ _jsxDEV("div", {
|
|
82
110
|
className: `${baseClass}__actions`,
|
|
83
111
|
children: [
|
|
84
|
-
allowEdit !== false ? /*#__PURE__*/
|
|
112
|
+
allowEdit !== false ? /*#__PURE__*/ _jsxDEV(Button, {
|
|
85
113
|
buttonStyle: "icon-label",
|
|
86
114
|
className: `${baseClass}__edit`,
|
|
87
115
|
icon: "edit",
|
|
88
116
|
iconStyle: "none",
|
|
89
117
|
onClick: openDrawer
|
|
90
|
-
}
|
|
91
|
-
|
|
118
|
+
}, void 0, false, {
|
|
119
|
+
fileName: "src/fields/Upload/RelationshipContent/index.tsx",
|
|
120
|
+
lineNumber: 132,
|
|
121
|
+
columnNumber: 13
|
|
122
|
+
}, this) : null,
|
|
123
|
+
allowRemove !== false ? /*#__PURE__*/ _jsxDEV(Button, {
|
|
92
124
|
buttonStyle: "icon-label",
|
|
93
125
|
className: `${baseClass}__remove`,
|
|
94
126
|
icon: "x",
|
|
95
127
|
iconStyle: "none",
|
|
96
128
|
onClick: ()=>onRemove()
|
|
97
|
-
}
|
|
98
|
-
|
|
129
|
+
}, void 0, false, {
|
|
130
|
+
fileName: "src/fields/Upload/RelationshipContent/index.tsx",
|
|
131
|
+
lineNumber: 141,
|
|
132
|
+
columnNumber: 13
|
|
133
|
+
}, this) : null,
|
|
134
|
+
/*#__PURE__*/ _jsxDEV(DocumentDrawer, {
|
|
99
135
|
onSave: onSave
|
|
100
|
-
}
|
|
136
|
+
}, void 0, false, {
|
|
137
|
+
fileName: "src/fields/Upload/RelationshipContent/index.tsx",
|
|
138
|
+
lineNumber: 149,
|
|
139
|
+
columnNumber: 11
|
|
140
|
+
}, this)
|
|
101
141
|
]
|
|
102
|
-
}
|
|
142
|
+
}, void 0, true, {
|
|
143
|
+
fileName: "src/fields/Upload/RelationshipContent/index.tsx",
|
|
144
|
+
lineNumber: 130,
|
|
145
|
+
columnNumber: 9
|
|
146
|
+
}, this) : null
|
|
103
147
|
]
|
|
104
|
-
}
|
|
148
|
+
}, void 0, true, {
|
|
149
|
+
fileName: "src/fields/Upload/RelationshipContent/index.tsx",
|
|
150
|
+
lineNumber: 101,
|
|
151
|
+
columnNumber: 5
|
|
152
|
+
}, this);
|
|
105
153
|
}
|
|
106
154
|
|
|
107
155
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/fields/Upload/RelationshipContent/index.tsx"],"sourcesContent":["'use client'\n\nimport type { TypeWithID } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatFilesize } from 'payload/shared'\nimport React from 'react'\n\nimport type { ReloadDoc } from '../types.js'\n\nimport { Button } from '../../../elements/Button/index.js'\nimport { useDocumentDrawer } from '../../../elements/DocumentDrawer/index.js'\nimport { Pill } from '../../../elements/Pill/index.js'\nimport { ThumbnailComponent } from '../../../elements/Thumbnail/index.js'\nimport './index.scss'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\n\nconst baseClass = 'upload-relationship-details'\n\ntype Props = {\n readonly allowEdit?: boolean\n readonly allowRemove?: boolean\n readonly alt: string\n readonly byteSize: number\n readonly className?: string\n readonly collectionSlug: string\n readonly displayPreview?: boolean\n readonly filename: string\n readonly id?: number | string\n readonly mimeType: string\n readonly onRemove: () => void\n readonly reloadDoc: ReloadDoc\n readonly showCollectionSlug?: boolean\n readonly src: string\n readonly thumbnailSrc: string\n readonly withMeta?: boolean\n readonly x?: number\n readonly y?: number\n}\nexport function RelationshipContent(props: Props) {\n const {\n id,\n allowEdit,\n allowRemove,\n alt,\n byteSize,\n className,\n collectionSlug,\n displayPreview,\n filename,\n mimeType,\n onRemove,\n reloadDoc,\n showCollectionSlug = false,\n src,\n thumbnailSrc,\n withMeta = true,\n x,\n y,\n } = props\n\n const { config } = useConfig()\n const { i18n } = useTranslation()\n const collectionConfig =\n 'collections' in config\n ? config.collections.find((collection) => collection.slug === collectionSlug)\n : undefined\n\n const [DocumentDrawer, _, { openDrawer }] = useDocumentDrawer({\n id: src ? id : undefined,\n collectionSlug,\n })\n\n const onSave = React.useCallback(\n async ({ doc }: { doc: TypeWithID }) => reloadDoc(doc.id, collectionSlug),\n [reloadDoc, collectionSlug],\n )\n\n function generateMetaText(mimeType: string, size: number): string {\n const sections: string[] = []\n if (size) {\n sections.push(formatFilesize(size))\n }\n\n if (x && y) {\n sections.push(`${x}x${y}`)\n }\n\n if (mimeType) {\n sections.push(mimeType)\n }\n\n return sections.join(' — ')\n }\n\n const metaText = withMeta ? generateMetaText(mimeType, byteSize) : ''\n const previewAllowed = displayPreview ?? collectionConfig?.upload?.displayPreview ?? true\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <div className={`${baseClass}__imageAndDetails`}>\n {previewAllowed && (\n <ThumbnailComponent\n alt={alt}\n className={`${baseClass}__thumbnail`}\n filename={filename}\n fileSrc={thumbnailSrc}\n size=\"small\"\n />\n )}\n {showCollectionSlug && collectionConfig ? (\n <Pill size=\"small\">{getTranslation(collectionConfig.labels.singular, i18n)}</Pill>\n ) : null}\n <div className={`${baseClass}__details`}>\n <p className={`${baseClass}__filename`}>\n {src ? (\n <a href={src} target=\"_blank\">\n {filename}\n </a>\n ) : (\n filename\n )}\n </p>\n {withMeta ? <p className={`${baseClass}__meta`}>{metaText}</p> : null}\n </div>\n </div>\n\n {allowEdit !== false || allowRemove !== false ? (\n <div className={`${baseClass}__actions`}>\n {allowEdit !== false ? (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__edit`}\n icon=\"edit\"\n iconStyle=\"none\"\n onClick={openDrawer}\n />\n ) : null}\n {allowRemove !== false ? (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n iconStyle=\"none\"\n onClick={() => onRemove()}\n />\n ) : null}\n <DocumentDrawer onSave={onSave} />\n </div>\n ) : null}\n </div>\n )\n}\n"],"names":["getTranslation","formatFilesize","React","Button","useDocumentDrawer","Pill","ThumbnailComponent","useConfig","useTranslation","baseClass","RelationshipContent","props","id","allowEdit","allowRemove","alt","byteSize","className","collectionSlug","displayPreview","filename","mimeType","onRemove","reloadDoc","showCollectionSlug","src","thumbnailSrc","withMeta","x","y","config","i18n","collectionConfig","collections","find","collection","slug","undefined","DocumentDrawer","_","openDrawer","onSave","useCallback","doc","generateMetaText","size","sections","push","join","metaText","previewAllowed","upload","div","filter","Boolean","fileSrc","labels","singular","p","a","href","target","buttonStyle","icon","iconStyle","onClick"],"mappings":"AAAA;;AAIA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SAASC,cAAc,QAAQ,iBAAgB;AAC/C,OAAOC,WAAW,QAAO;AAIzB,SAASC,MAAM,QAAQ,oCAAmC;AAC1D,SAASC,iBAAiB,QAAQ,4CAA2C;AAC7E,SAASC,IAAI,QAAQ,kCAAiC;AACtD,SAASC,kBAAkB,QAAQ,uCAAsC;AACzE,OAAO,eAAc;AACrB,SAASC,SAAS,QAAQ,qCAAoC;AAC9D,SAASC,cAAc,QAAQ,0CAAyC;AAExE,MAAMC,YAAY;AAsBlB,OAAO,SAASC,oBAAoBC,KAAY;IAC9C,MAAM,EACJC,EAAE,EACFC,SAAS,EACTC,WAAW,EACXC,GAAG,EACHC,QAAQ,EACRC,SAAS,EACTC,cAAc,EACdC,cAAc,EACdC,QAAQ,EACRC,QAAQ,EACRC,QAAQ,EACRC,SAAS,EACTC,qBAAqB,KAAK,EAC1BC,GAAG,EACHC,YAAY,EACZC,WAAW,IAAI,EACfC,CAAC,EACDC,CAAC,EACF,GAAGlB;IAEJ,MAAM,EAAEmB,MAAM,EAAE,GAAGvB;IACnB,MAAM,EAAEwB,IAAI,EAAE,GAAGvB;IACjB,MAAMwB,mBACJ,iBAAiBF,SACbA,OAAOG,WAAW,CAACC,IAAI,CAAC,CAACC,aAAeA,WAAWC,IAAI,KAAKlB,kBAC5DmB;IAEN,MAAM,CAACC,gBAAgBC,GAAG,EAAEC,UAAU,EAAE,CAAC,GAAGpC,kBAAkB;QAC5DQ,IAAIa,MAAMb,KAAKyB;QACfnB;IACF;IAEA,MAAMuB,SAASvC,MAAMwC,WAAW,CAC9B,OAAO,EAAEC,GAAG,EAAuB,GAAKpB,UAAUoB,IAAI/B,EAAE,EAAEM,iBAC1D;QAACK;QAAWL;KAAe;IAG7B,SAAS0B,iBAAiBvB,QAAgB,EAAEwB,IAAY;QACtD,MAAMC,WAAqB,EAAE;QAC7B,IAAID,MAAM;YACRC,SAASC,IAAI,CAAC9C,eAAe4C;QAC/B;QAEA,IAAIjB,KAAKC,GAAG;YACViB,SAASC,IAAI,CAAC,GAAGnB,EAAE,CAAC,EAAEC,GAAG;QAC3B;QAEA,IAAIR,UAAU;YACZyB,SAASC,IAAI,CAAC1B;QAChB;QAEA,OAAOyB,SAASE,IAAI,CAAC;IACvB;IAEA,MAAMC,WAAWtB,WAAWiB,iBAAiBvB,UAAUL,YAAY;IACnE,MAAMkC,iBAAiB/B,kBAAkBa,kBAAkBmB,QAAQhC,kBAAkB;IAErF,qBACE,
|
|
1
|
+
{"version":3,"sources":["../../../../src/fields/Upload/RelationshipContent/index.tsx"],"sourcesContent":["'use client'\n\nimport type { TypeWithID } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatFilesize } from 'payload/shared'\nimport React from 'react'\n\nimport type { ReloadDoc } from '../types.js'\n\nimport { Button } from '../../../elements/Button/index.js'\nimport { useDocumentDrawer } from '../../../elements/DocumentDrawer/index.js'\nimport { Pill } from '../../../elements/Pill/index.js'\nimport { ThumbnailComponent } from '../../../elements/Thumbnail/index.js'\nimport './index.scss'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\n\nconst baseClass = 'upload-relationship-details'\n\ntype Props = {\n readonly allowEdit?: boolean\n readonly allowRemove?: boolean\n readonly alt: string\n readonly byteSize: number\n readonly className?: string\n readonly collectionSlug: string\n readonly displayPreview?: boolean\n readonly filename: string\n readonly id?: number | string\n readonly mimeType: string\n readonly onRemove: () => void\n readonly reloadDoc: ReloadDoc\n readonly showCollectionSlug?: boolean\n readonly src: string\n readonly thumbnailSrc: string\n readonly withMeta?: boolean\n readonly x?: number\n readonly y?: number\n}\nexport function RelationshipContent(props: Props) {\n const {\n id,\n allowEdit,\n allowRemove,\n alt,\n byteSize,\n className,\n collectionSlug,\n displayPreview,\n filename,\n mimeType,\n onRemove,\n reloadDoc,\n showCollectionSlug = false,\n src,\n thumbnailSrc,\n withMeta = true,\n x,\n y,\n } = props\n\n const { config } = useConfig()\n const { i18n } = useTranslation()\n const collectionConfig =\n 'collections' in config\n ? config.collections.find((collection) => collection.slug === collectionSlug)\n : undefined\n\n const [DocumentDrawer, _, { openDrawer }] = useDocumentDrawer({\n id: src ? id : undefined,\n collectionSlug,\n })\n\n const onSave = React.useCallback(\n async ({ doc }: { doc: TypeWithID }) => reloadDoc(doc.id, collectionSlug),\n [reloadDoc, collectionSlug],\n )\n\n function generateMetaText(mimeType: string, size: number): string {\n const sections: string[] = []\n if (size) {\n sections.push(formatFilesize(size))\n }\n\n if (x && y) {\n sections.push(`${x}x${y}`)\n }\n\n if (mimeType) {\n sections.push(mimeType)\n }\n\n return sections.join(' — ')\n }\n\n const metaText = withMeta ? generateMetaText(mimeType, byteSize) : ''\n const previewAllowed = displayPreview ?? collectionConfig?.upload?.displayPreview ?? true\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <div className={`${baseClass}__imageAndDetails`}>\n {previewAllowed && (\n <ThumbnailComponent\n alt={alt}\n className={`${baseClass}__thumbnail`}\n filename={filename}\n fileSrc={thumbnailSrc}\n size=\"small\"\n />\n )}\n {showCollectionSlug && collectionConfig ? (\n <Pill size=\"small\">{getTranslation(collectionConfig.labels.singular, i18n)}</Pill>\n ) : null}\n <div className={`${baseClass}__details`}>\n <p className={`${baseClass}__filename`}>\n {src ? (\n <a href={src} target=\"_blank\">\n {filename}\n </a>\n ) : (\n filename\n )}\n </p>\n {withMeta ? <p className={`${baseClass}__meta`}>{metaText}</p> : null}\n </div>\n </div>\n\n {allowEdit !== false || allowRemove !== false ? (\n <div className={`${baseClass}__actions`}>\n {allowEdit !== false ? (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__edit`}\n icon=\"edit\"\n iconStyle=\"none\"\n onClick={openDrawer}\n />\n ) : null}\n {allowRemove !== false ? (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n iconStyle=\"none\"\n onClick={() => onRemove()}\n />\n ) : null}\n <DocumentDrawer onSave={onSave} />\n </div>\n ) : null}\n </div>\n )\n}\n"],"names":["getTranslation","formatFilesize","React","Button","useDocumentDrawer","Pill","ThumbnailComponent","useConfig","useTranslation","baseClass","RelationshipContent","props","id","allowEdit","allowRemove","alt","byteSize","className","collectionSlug","displayPreview","filename","mimeType","onRemove","reloadDoc","showCollectionSlug","src","thumbnailSrc","withMeta","x","y","config","i18n","collectionConfig","collections","find","collection","slug","undefined","DocumentDrawer","_","openDrawer","onSave","useCallback","doc","generateMetaText","size","sections","push","join","metaText","previewAllowed","upload","div","filter","Boolean","fileSrc","labels","singular","p","a","href","target","buttonStyle","icon","iconStyle","onClick"],"mappings":"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"}
|
|
@@ -1,16 +1,20 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import './index.scss';
|
|
4
4
|
const baseClass = 'upload-field-card';
|
|
5
5
|
export function UploadCard({ children, className, size = 'medium' }) {
|
|
6
|
-
return /*#__PURE__*/
|
|
6
|
+
return /*#__PURE__*/ _jsxDEV("div", {
|
|
7
7
|
className: [
|
|
8
8
|
baseClass,
|
|
9
9
|
className,
|
|
10
10
|
`${baseClass}--size-${size}`
|
|
11
11
|
].filter(Boolean).join(' '),
|
|
12
12
|
children: children
|
|
13
|
-
}
|
|
13
|
+
}, void 0, false, {
|
|
14
|
+
fileName: "src/fields/Upload/UploadCard/index.tsx",
|
|
15
|
+
lineNumber: 14,
|
|
16
|
+
columnNumber: 5
|
|
17
|
+
}, this);
|
|
14
18
|
}
|
|
15
19
|
|
|
16
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/fields/Upload/UploadCard/index.tsx"],"sourcesContent":["import React from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'upload-field-card'\n\ntype Props = {\n readonly children: React.ReactNode\n readonly className?: string\n readonly size?: 'medium' | 'small'\n}\nexport function UploadCard({ children, className, size = 'medium' }: Props) {\n return (\n <div className={[baseClass, className, `${baseClass}--size-${size}`].filter(Boolean).join(' ')}>\n {children}\n </div>\n )\n}\n"],"names":["React","baseClass","UploadCard","children","className","size","div","filter","Boolean","join"],"mappings":";AAAA,OAAOA,WAAW,QAAO;AAEzB,OAAO,eAAc;AAErB,MAAMC,YAAY;AAOlB,OAAO,SAASC,WAAW,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,OAAO,QAAQ,EAAS;IACxE,qBACE,
|
|
1
|
+
{"version":3,"sources":["../../../../src/fields/Upload/UploadCard/index.tsx"],"sourcesContent":["import React from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'upload-field-card'\n\ntype Props = {\n readonly children: React.ReactNode\n readonly className?: string\n readonly size?: 'medium' | 'small'\n}\nexport function UploadCard({ children, className, size = 'medium' }: Props) {\n return (\n <div className={[baseClass, className, `${baseClass}--size-${size}`].filter(Boolean).join(' ')}>\n {children}\n </div>\n )\n}\n"],"names":["React","baseClass","UploadCard","children","className","size","div","filter","Boolean","join"],"mappings":";AAAA,OAAOA,WAAW,QAAO;AAEzB,OAAO,eAAc;AAErB,MAAMC,YAAY;AAOlB,OAAO,SAASC,WAAW,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,OAAO,QAAQ,EAAS;IACxE,qBACE,QAACC;QAAIF,WAAW;YAACH;YAAWG;YAAW,GAAGH,UAAU,OAAO,EAAEI,MAAM;SAAC,CAACE,MAAM,CAACC,SAASC,IAAI,CAAC;kBACvFN;;;;;;AAGP"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
2
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
3
3
|
import React, { useMemo } from 'react';
|
|
4
4
|
import { BulkUploadProvider } from '../../elements/BulkUpload/index.js';
|
|
5
5
|
import { useField } from '../../forms/useField/index.js';
|
|
@@ -51,9 +51,9 @@ export function UploadComponent(props) {
|
|
|
51
51
|
const styles = useMemo(()=>mergeFieldStyles(field), [
|
|
52
52
|
field
|
|
53
53
|
]);
|
|
54
|
-
return /*#__PURE__*/
|
|
54
|
+
return /*#__PURE__*/ _jsxDEV(BulkUploadProvider, {
|
|
55
55
|
drawerSlugPrefix: pathFromProps,
|
|
56
|
-
children: /*#__PURE__*/
|
|
56
|
+
children: /*#__PURE__*/ _jsxDEV(UploadInput, {
|
|
57
57
|
AfterInput: AfterInput,
|
|
58
58
|
allowCreate: allowCreate !== false,
|
|
59
59
|
api: config.routes.api,
|
|
@@ -79,8 +79,16 @@ export function UploadComponent(props) {
|
|
|
79
79
|
showError: showError,
|
|
80
80
|
style: styles,
|
|
81
81
|
value: memoizedValue
|
|
82
|
-
}
|
|
83
|
-
|
|
82
|
+
}, void 0, false, {
|
|
83
|
+
fileName: "src/fields/Upload/index.tsx",
|
|
84
|
+
lineNumber: 96,
|
|
85
|
+
columnNumber: 7
|
|
86
|
+
}, this)
|
|
87
|
+
}, void 0, false, {
|
|
88
|
+
fileName: "src/fields/Upload/index.tsx",
|
|
89
|
+
lineNumber: 95,
|
|
90
|
+
columnNumber: 5
|
|
91
|
+
}, this);
|
|
84
92
|
}
|
|
85
93
|
export const UploadField = withCondition(UploadComponent);
|
|
86
94
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/fields/Upload/index.tsx"],"sourcesContent":["'use client'\n\nimport type { UploadFieldClientProps, ValueWithRelation } from 'payload'\n\nimport React, { useMemo } from 'react'\n\nimport { BulkUploadProvider } from '../../elements/BulkUpload/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { UploadInput } from './Input.js'\nimport './index.scss'\n\nexport { UploadInput } from './Input.js'\nexport type { UploadInputProps } from './Input.js'\n\nexport const baseClass = 'upload'\n\nexport function UploadComponent(props: UploadFieldClientProps) {\n const {\n field,\n field: {\n admin: { allowCreate, className, description, isSortable } = {},\n hasMany,\n label,\n localized,\n maxRows,\n relationTo: relationToFromProps,\n required,\n },\n path: pathFromProps,\n readOnly,\n validate,\n } = props\n\n const { config } = useConfig()\n\n const displayPreview = field.displayPreview\n\n const memoizedValidate = React.useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, required })\n }\n },\n [validate, required],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled,\n filterOptions,\n path,\n setValue,\n showError,\n value,\n } = useField<string | string[]>({\n potentiallyStalePath: pathFromProps,\n validate: memoizedValidate,\n })\n\n const isPolymorphic = Array.isArray(relationToFromProps)\n\n const memoizedValue:\n | (number | string)[]\n | number\n | string\n | ValueWithRelation\n | ValueWithRelation[] = React.useMemo(() => {\n if (hasMany === true) {\n return (\n Array.isArray(value)\n ? value.map((val) => {\n return isPolymorphic\n ? val\n : {\n relationTo: Array.isArray(relationToFromProps)\n ? relationToFromProps[0]\n : relationToFromProps,\n value: val,\n }\n })\n : value\n ) as ValueWithRelation[]\n } else {\n // Value comes in as string when not polymorphic and with the object with the right relationTo when it is polymorphic\n return value\n }\n }, [hasMany, value, isPolymorphic, relationToFromProps])\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <BulkUploadProvider drawerSlugPrefix={pathFromProps}>\n <UploadInput\n AfterInput={AfterInput}\n allowCreate={allowCreate !== false}\n api={config.routes.api}\n BeforeInput={BeforeInput}\n className={className}\n Description={Description}\n description={description}\n displayPreview={displayPreview}\n Error={Error}\n filterOptions={filterOptions}\n hasMany={hasMany}\n isSortable={isSortable}\n label={label}\n Label={Label}\n localized={localized}\n maxRows={maxRows}\n onChange={setValue}\n path={path}\n readOnly={readOnly || disabled}\n relationTo={relationToFromProps}\n required={required}\n serverURL={config.serverURL}\n showError={showError}\n style={styles}\n value={memoizedValue}\n />\n </BulkUploadProvider>\n )\n}\n\nexport const UploadField = withCondition(UploadComponent)\n"],"names":["React","useMemo","BulkUploadProvider","useField","withCondition","useConfig","mergeFieldStyles","UploadInput","baseClass","UploadComponent","props","field","admin","allowCreate","className","description","isSortable","hasMany","label","localized","maxRows","relationTo","relationToFromProps","required","path","pathFromProps","readOnly","validate","config","displayPreview","memoizedValidate","useCallback","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","filterOptions","setValue","showError","potentiallyStalePath","isPolymorphic","Array","isArray","memoizedValue","map","val","styles","drawerSlugPrefix","api","routes","onChange","serverURL","style","UploadField"],"mappings":"AAAA;;AAIA,OAAOA,SAASC,OAAO,QAAQ,QAAO;AAEtC,SAASC,kBAAkB,QAAQ,qCAAoC;AACvE,SAASC,QAAQ,QAAQ,gCAA+B;AACxD,SAASC,aAAa,QAAQ,qCAAoC;AAClE,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,gBAAgB,QAAQ,yBAAwB;AACzD,SAASC,WAAW,QAAQ,aAAY;AACxC,OAAO,eAAc;AAErB,SAASA,WAAW,QAAQ,aAAY;AAGxC,OAAO,MAAMC,YAAY,SAAQ;AAEjC,OAAO,SAASC,gBAAgBC,KAA6B;IAC3D,MAAM,EACJC,KAAK,EACLA,OAAO,EACLC,OAAO,EAAEC,WAAW,EAAEC,SAAS,EAAEC,WAAW,EAAEC,UAAU,EAAE,GAAG,CAAC,CAAC,EAC/DC,OAAO,EACPC,KAAK,EACLC,SAAS,EACTC,OAAO,EACPC,YAAYC,mBAAmB,EAC/BC,QAAQ,EACT,EACDC,MAAMC,aAAa,EACnBC,QAAQ,EACRC,QAAQ,EACT,GAAGjB;IAEJ,MAAM,EAAEkB,MAAM,EAAE,GAAGvB;IAEnB,MAAMwB,iBAAiBlB,MAAMkB,cAAc;IAE3C,MAAMC,mBAAmB9B,MAAM+B,WAAW,CACxC,CAACC,OAAOC;QACN,IAAI,OAAON,aAAa,YAAY;YAClC,OAAOA,SAASK,OAAO;gBAAE,GAAGC,OAAO;gBAAEV;YAAS;QAChD;IACF,GACA;QAACI;QAAUJ;KAAS;IAGtB,MAAM,EACJW,kBAAkB,EAAEC,UAAU,EAAEC,WAAW,EAAEC,WAAW,EAAEC,KAAK,EAAEC,KAAK,EAAE,GAAG,CAAC,CAAC,EAC7EC,QAAQ,EACRC,aAAa,EACbjB,IAAI,EACJkB,QAAQ,EACRC,SAAS,EACTX,KAAK,EACN,GAAG7B,SAA4B;QAC9ByC,sBAAsBnB;QACtBE,UAAUG;IACZ;IAEA,MAAMe,gBAAgBC,MAAMC,OAAO,CAACzB;IAEpC,MAAM0B,gBAKoBhD,MAAMC,OAAO,CAAC;QACtC,IAAIgB,YAAY,MAAM;YACpB,OACE6B,MAAMC,OAAO,CAACf,SACVA,MAAMiB,GAAG,CAAC,CAACC;gBACT,OAAOL,gBACHK,MACA;oBACE7B,YAAYyB,MAAMC,OAAO,CAACzB,uBACtBA,mBAAmB,CAAC,EAAE,GACtBA;oBACJU,OAAOkB;gBACT;YACN,KACAlB;QAER,OAAO;YACL,qHAAqH;YACrH,OAAOA;QACT;IACF,GAAG;QAACf;QAASe;QAAOa;QAAevB;KAAoB;IAEvD,MAAM6B,SAASlD,QAAQ,IAAMK,iBAAiBK,QAAQ;QAACA;KAAM;IAE7D,qBACE,
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/Upload/index.tsx"],"sourcesContent":["'use client'\n\nimport type { UploadFieldClientProps, ValueWithRelation } from 'payload'\n\nimport React, { useMemo } from 'react'\n\nimport { BulkUploadProvider } from '../../elements/BulkUpload/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { UploadInput } from './Input.js'\nimport './index.scss'\n\nexport { UploadInput } from './Input.js'\nexport type { UploadInputProps } from './Input.js'\n\nexport const baseClass = 'upload'\n\nexport function UploadComponent(props: UploadFieldClientProps) {\n const {\n field,\n field: {\n admin: { allowCreate, className, description, isSortable } = {},\n hasMany,\n label,\n localized,\n maxRows,\n relationTo: relationToFromProps,\n required,\n },\n path: pathFromProps,\n readOnly,\n validate,\n } = props\n\n const { config } = useConfig()\n\n const displayPreview = field.displayPreview\n\n const memoizedValidate = React.useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, required })\n }\n },\n [validate, required],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled,\n filterOptions,\n path,\n setValue,\n showError,\n value,\n } = useField<string | string[]>({\n potentiallyStalePath: pathFromProps,\n validate: memoizedValidate,\n })\n\n const isPolymorphic = Array.isArray(relationToFromProps)\n\n const memoizedValue:\n | (number | string)[]\n | number\n | string\n | ValueWithRelation\n | ValueWithRelation[] = React.useMemo(() => {\n if (hasMany === true) {\n return (\n Array.isArray(value)\n ? value.map((val) => {\n return isPolymorphic\n ? val\n : {\n relationTo: Array.isArray(relationToFromProps)\n ? relationToFromProps[0]\n : relationToFromProps,\n value: val,\n }\n })\n : value\n ) as ValueWithRelation[]\n } else {\n // Value comes in as string when not polymorphic and with the object with the right relationTo when it is polymorphic\n return value\n }\n }, [hasMany, value, isPolymorphic, relationToFromProps])\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <BulkUploadProvider drawerSlugPrefix={pathFromProps}>\n <UploadInput\n AfterInput={AfterInput}\n allowCreate={allowCreate !== false}\n api={config.routes.api}\n BeforeInput={BeforeInput}\n className={className}\n Description={Description}\n description={description}\n displayPreview={displayPreview}\n Error={Error}\n filterOptions={filterOptions}\n hasMany={hasMany}\n isSortable={isSortable}\n label={label}\n Label={Label}\n localized={localized}\n maxRows={maxRows}\n onChange={setValue}\n path={path}\n readOnly={readOnly || disabled}\n relationTo={relationToFromProps}\n required={required}\n serverURL={config.serverURL}\n showError={showError}\n style={styles}\n value={memoizedValue}\n />\n </BulkUploadProvider>\n )\n}\n\nexport const UploadField = withCondition(UploadComponent)\n"],"names":["React","useMemo","BulkUploadProvider","useField","withCondition","useConfig","mergeFieldStyles","UploadInput","baseClass","UploadComponent","props","field","admin","allowCreate","className","description","isSortable","hasMany","label","localized","maxRows","relationTo","relationToFromProps","required","path","pathFromProps","readOnly","validate","config","displayPreview","memoizedValidate","useCallback","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","filterOptions","setValue","showError","potentiallyStalePath","isPolymorphic","Array","isArray","memoizedValue","map","val","styles","drawerSlugPrefix","api","routes","onChange","serverURL","style","UploadField"],"mappings":"AAAA;;AAIA,OAAOA,SAASC,OAAO,QAAQ,QAAO;AAEtC,SAASC,kBAAkB,QAAQ,qCAAoC;AACvE,SAASC,QAAQ,QAAQ,gCAA+B;AACxD,SAASC,aAAa,QAAQ,qCAAoC;AAClE,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,gBAAgB,QAAQ,yBAAwB;AACzD,SAASC,WAAW,QAAQ,aAAY;AACxC,OAAO,eAAc;AAErB,SAASA,WAAW,QAAQ,aAAY;AAGxC,OAAO,MAAMC,YAAY,SAAQ;AAEjC,OAAO,SAASC,gBAAgBC,KAA6B;IAC3D,MAAM,EACJC,KAAK,EACLA,OAAO,EACLC,OAAO,EAAEC,WAAW,EAAEC,SAAS,EAAEC,WAAW,EAAEC,UAAU,EAAE,GAAG,CAAC,CAAC,EAC/DC,OAAO,EACPC,KAAK,EACLC,SAAS,EACTC,OAAO,EACPC,YAAYC,mBAAmB,EAC/BC,QAAQ,EACT,EACDC,MAAMC,aAAa,EACnBC,QAAQ,EACRC,QAAQ,EACT,GAAGjB;IAEJ,MAAM,EAAEkB,MAAM,EAAE,GAAGvB;IAEnB,MAAMwB,iBAAiBlB,MAAMkB,cAAc;IAE3C,MAAMC,mBAAmB9B,MAAM+B,WAAW,CACxC,CAACC,OAAOC;QACN,IAAI,OAAON,aAAa,YAAY;YAClC,OAAOA,SAASK,OAAO;gBAAE,GAAGC,OAAO;gBAAEV;YAAS;QAChD;IACF,GACA;QAACI;QAAUJ;KAAS;IAGtB,MAAM,EACJW,kBAAkB,EAAEC,UAAU,EAAEC,WAAW,EAAEC,WAAW,EAAEC,KAAK,EAAEC,KAAK,EAAE,GAAG,CAAC,CAAC,EAC7EC,QAAQ,EACRC,aAAa,EACbjB,IAAI,EACJkB,QAAQ,EACRC,SAAS,EACTX,KAAK,EACN,GAAG7B,SAA4B;QAC9ByC,sBAAsBnB;QACtBE,UAAUG;IACZ;IAEA,MAAMe,gBAAgBC,MAAMC,OAAO,CAACzB;IAEpC,MAAM0B,gBAKoBhD,MAAMC,OAAO,CAAC;QACtC,IAAIgB,YAAY,MAAM;YACpB,OACE6B,MAAMC,OAAO,CAACf,SACVA,MAAMiB,GAAG,CAAC,CAACC;gBACT,OAAOL,gBACHK,MACA;oBACE7B,YAAYyB,MAAMC,OAAO,CAACzB,uBACtBA,mBAAmB,CAAC,EAAE,GACtBA;oBACJU,OAAOkB;gBACT;YACN,KACAlB;QAER,OAAO;YACL,qHAAqH;YACrH,OAAOA;QACT;IACF,GAAG;QAACf;QAASe;QAAOa;QAAevB;KAAoB;IAEvD,MAAM6B,SAASlD,QAAQ,IAAMK,iBAAiBK,QAAQ;QAACA;KAAM;IAE7D,qBACE,QAACT;QAAmBkD,kBAAkB3B;kBACpC,cAAA,QAAClB;YACC4B,YAAYA;YACZtB,aAAaA,gBAAgB;YAC7BwC,KAAKzB,OAAO0B,MAAM,CAACD,GAAG;YACtBjB,aAAaA;YACbtB,WAAWA;YACXuB,aAAaA;YACbtB,aAAaA;YACbc,gBAAgBA;YAChBS,OAAOA;YACPG,eAAeA;YACfxB,SAASA;YACTD,YAAYA;YACZE,OAAOA;YACPqB,OAAOA;YACPpB,WAAWA;YACXC,SAASA;YACTmC,UAAUb;YACVlB,MAAMA;YACNE,UAAUA,YAAYc;YACtBnB,YAAYC;YACZC,UAAUA;YACViC,WAAW5B,OAAO4B,SAAS;YAC3Bb,WAAWA;YACXc,OAAON;YACPnB,OAAOgB;;;;;;;;;;;AAIf;AAEA,OAAO,MAAMU,cAActD,cAAcK,iBAAgB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/fields/Upload/types.ts"],"sourcesContent":["import type { PaginatedDocs, ValueWithRelation } from 'payload'\n\nexport type ValueAsDataWithRelation = {\n relationTo: string\n value: any\n}\n\ntype PopulateDocsDeprecated = (\n ids: (number | string)[],\n items: never,\n collectionSlug?: string, // kept for compatibility, not used\n) => Promise<null | PaginatedDocs>\n\ntype PopulateDocsNew = (\n items: ValueWithRelation[],\n ids: never,\n collectionSlug: never,\n) => Promise<null | ValueAsDataWithRelation[]>\n\nexport type PopulateDocs = PopulateDocsDeprecated | PopulateDocsNew\n\nexport type ReloadDoc = (doc: number | string, collectionSlug: string) => Promise<void>\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/Upload/types.ts"],"sourcesContent":["import type { PaginatedDocs, ValueWithRelation } from 'payload'\n\nexport type ValueAsDataWithRelation = {\n relationTo: string\n value: any\n}\n\ntype PopulateDocsDeprecated = (\n ids: (number | string)[],\n items: never,\n collectionSlug?: string, // kept for compatibility, not used\n) => Promise<null | PaginatedDocs>\n\ntype PopulateDocsNew = (\n items: ValueWithRelation[],\n ids: never,\n collectionSlug: never,\n) => Promise<null | ValueAsDataWithRelation[]>\n\nexport type PopulateDocs = PopulateDocsDeprecated | PopulateDocsNew\n\nexport type ReloadDoc = (doc: number | string, collectionSlug: string) => Promise<void>\n"],"names":[],"mappings":"AAU2B,mCAAmC;AAW9D,WAAuF"}
|
|
@@ -9,8 +9,7 @@ export const fieldBaseClass = 'field-type';
|
|
|
9
9
|
const isCurrentLocaleDefaultLocale = locale?.code === localizationConfig?.defaultLocale;
|
|
10
10
|
return fieldRTL !== false && locale?.rtl === true && (fieldLocalized || !fieldLocalized && !hasMultipleLocales || // If there is only one locale which is also rtl, that field is rtl too
|
|
11
11
|
!fieldLocalized && isCurrentLocaleDefaultLocale) || // If the current locale is the default locale, but the field is not localized, that field is rtl too
|
|
12
|
-
fieldRTL === true
|
|
13
|
-
|
|
14
|
-
}
|
|
12
|
+
fieldRTL === true;
|
|
13
|
+
} // If fieldRTL is true. This should be useful for when no localization is set at all in the payload config, but you still want fields to be rtl.
|
|
15
14
|
|
|
16
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/fields/shared/index.tsx"],"sourcesContent":["'use client'\nimport type { Locale, SanitizedLocalizationConfig } from 'payload'\n\nexport const fieldBaseClass = 'field-type'\n\n/**\n * Determines whether a field should be displayed as right-to-left (RTL) based on its configuration, payload's localization configuration and the adming user's currently enabled locale.\n\n * @returns Whether the field should be displayed as RTL.\n */\nexport function isFieldRTL({\n fieldLocalized,\n fieldRTL,\n locale,\n localizationConfig,\n}: {\n fieldLocalized: boolean\n fieldRTL: boolean\n locale: Locale\n localizationConfig?: SanitizedLocalizationConfig\n}) {\n const hasMultipleLocales =\n locale &&\n localizationConfig &&\n localizationConfig.locales &&\n localizationConfig.locales.length > 1\n\n const isCurrentLocaleDefaultLocale = locale?.code === localizationConfig?.defaultLocale\n\n return (\n (fieldRTL !== false &&\n locale?.rtl === true &&\n (fieldLocalized ||\n (!fieldLocalized && !hasMultipleLocales) || // If there is only one locale which is also rtl, that field is rtl too\n (!fieldLocalized && isCurrentLocaleDefaultLocale))) || // If the current locale is the default locale, but the field is not localized, that field is rtl too\n fieldRTL === true\n ) // If fieldRTL is true. This should be useful for when no localization is set at all in the payload config, but you still want fields to be rtl.\n}\n"],"names":["fieldBaseClass","isFieldRTL","fieldLocalized","fieldRTL","locale","localizationConfig","hasMultipleLocales","locales","length","isCurrentLocaleDefaultLocale","code","defaultLocale","rtl"],"mappings":"AAAA;AAGA,OAAO,MAAMA,iBAAiB,aAAY;AAE1C;;;;CAIC,GACD,OAAO,SAASC,WAAW,EACzBC,cAAc,EACdC,QAAQ,EACRC,MAAM,EACNC,kBAAkB,EAMnB;IACC,MAAMC,qBACJF,UACAC,sBACAA,mBAAmBE,OAAO,IAC1BF,mBAAmBE,OAAO,CAACC,MAAM,GAAG;IAEtC,MAAMC,+BAA+BL,QAAQM,SAASL,oBAAoBM;IAE1E,OACE,AAACR,aAAa,SACZC,QAAQQ,QAAQ,QACfV,CAAAA,kBACE,CAACA,kBAAkB,CAACI,sBAAuB,uEAAuE;IAClH,CAACJ,kBAAkBO,4BAA4B,KAAO,qGAAqG;IAChKN,aAAa,
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/shared/index.tsx"],"sourcesContent":["'use client'\nimport type { Locale, SanitizedLocalizationConfig } from 'payload'\n\nexport const fieldBaseClass = 'field-type'\n\n/**\n * Determines whether a field should be displayed as right-to-left (RTL) based on its configuration, payload's localization configuration and the adming user's currently enabled locale.\n\n * @returns Whether the field should be displayed as RTL.\n */\nexport function isFieldRTL({\n fieldLocalized,\n fieldRTL,\n locale,\n localizationConfig,\n}: {\n fieldLocalized: boolean\n fieldRTL: boolean\n locale: Locale\n localizationConfig?: SanitizedLocalizationConfig\n}) {\n const hasMultipleLocales =\n locale &&\n localizationConfig &&\n localizationConfig.locales &&\n localizationConfig.locales.length > 1\n\n const isCurrentLocaleDefaultLocale = locale?.code === localizationConfig?.defaultLocale\n\n return (\n (fieldRTL !== false &&\n locale?.rtl === true &&\n (fieldLocalized ||\n (!fieldLocalized && !hasMultipleLocales) || // If there is only one locale which is also rtl, that field is rtl too\n (!fieldLocalized && isCurrentLocaleDefaultLocale))) || // If the current locale is the default locale, but the field is not localized, that field is rtl too\n fieldRTL === true\n ) // If fieldRTL is true. This should be useful for when no localization is set at all in the payload config, but you still want fields to be rtl.\n}\n"],"names":["fieldBaseClass","isFieldRTL","fieldLocalized","fieldRTL","locale","localizationConfig","hasMultipleLocales","locales","length","isCurrentLocaleDefaultLocale","code","defaultLocale","rtl"],"mappings":"AAAA;AAGA,OAAO,MAAMA,iBAAiB,aAAY;AAE1C;;;;CAIC,GACD,OAAO,SAASC,WAAW,EACzBC,cAAc,EACdC,QAAQ,EACRC,MAAM,EACNC,kBAAkB,EAMnB;IACC,MAAMC,qBACJF,UACAC,sBACAA,mBAAmBE,OAAO,IAC1BF,mBAAmBE,OAAO,CAACC,MAAM,GAAG;IAEtC,MAAMC,+BAA+BL,QAAQM,SAASL,oBAAoBM;IAE1E,OACE,AAACR,aAAa,SACZC,QAAQQ,QAAQ,QACfV,CAAAA,kBACE,CAACA,kBAAkB,CAACI,sBAAuB,uEAAuE;IAClH,CAACJ,kBAAkBO,4BAA4B,KAAO,qGAAqG;IAChKN,aAAa;AAEjB,EADI,gJAAgJ"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import ObjectIdImport from 'bson-objectid';
|
|
3
|
-
import { dequal } from 'dequal/lite';
|
|
3
|
+
import { dequal } from 'dequal/lite';
|
|
4
|
+
// lite: no need for Map and Set support
|
|
4
5
|
import { deepCopyObjectSimpleWithoutReactComponents } from 'payload/shared';
|
|
5
6
|
import { mergeServerFormState } from './mergeServerFormState.js';
|
|
6
7
|
import { flattenRows, separateRows } from './rows.js';
|