@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,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsxDEV as _jsxDEV, Fragment as _Fragment } from "react/jsx-dev-runtime";
|
|
2
2
|
import { APIError, formatErrors, getFolderData } from 'payload';
|
|
3
3
|
import { buildFolderWhereConstraints, combineWhereConstraints } from 'payload/shared';
|
|
4
|
-
import { FolderFileTable, ItemCardGrid } from
|
|
4
|
+
import { FolderFileTable, ItemCardGrid } from // eslint-disable-next-line payload/no-imports-from-exports-dir -- This component is returned via server functions, it must reference the exports dir
|
|
5
|
+
'../exports/client/index.js';
|
|
5
6
|
export const getFolderResultsComponentAndDataHandler = async (args)=>{
|
|
6
7
|
const { req } = args;
|
|
7
8
|
try {
|
|
@@ -95,29 +96,45 @@ export const getFolderResultsComponentAndDataHandler = async (args)=>{
|
|
|
95
96
|
});
|
|
96
97
|
let FolderResultsComponent = null;
|
|
97
98
|
if (displayAs === 'grid') {
|
|
98
|
-
FolderResultsComponent = /*#__PURE__*/
|
|
99
|
+
FolderResultsComponent = /*#__PURE__*/ _jsxDEV("div", {
|
|
99
100
|
children: [
|
|
100
|
-
folderData.subfolders.length ? /*#__PURE__*/
|
|
101
|
-
children: /*#__PURE__*/
|
|
101
|
+
folderData.subfolders.length ? /*#__PURE__*/ _jsxDEV(_Fragment, {
|
|
102
|
+
children: /*#__PURE__*/ _jsxDEV(ItemCardGrid, {
|
|
102
103
|
items: folderData.subfolders,
|
|
103
104
|
title: 'Folders',
|
|
104
105
|
type: "folder"
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
106
|
+
}, void 0, false, {
|
|
107
|
+
fileName: "src/utilities/getFolderResultsComponentAndData.tsx",
|
|
108
|
+
lineNumber: 169,
|
|
109
|
+
columnNumber: 13
|
|
110
|
+
}, this)
|
|
111
|
+
}, void 0, false) : null,
|
|
112
|
+
folderData.documents.length ? /*#__PURE__*/ _jsxDEV(_Fragment, {
|
|
113
|
+
children: /*#__PURE__*/ _jsxDEV(ItemCardGrid, {
|
|
109
114
|
items: folderData.documents,
|
|
110
115
|
subfolderCount: folderData.subfolders.length,
|
|
111
116
|
title: 'Documents',
|
|
112
117
|
type: "file"
|
|
113
|
-
}
|
|
114
|
-
|
|
118
|
+
}, void 0, false, {
|
|
119
|
+
fileName: "src/utilities/getFolderResultsComponentAndData.tsx",
|
|
120
|
+
lineNumber: 175,
|
|
121
|
+
columnNumber: 13
|
|
122
|
+
}, this)
|
|
123
|
+
}, void 0, false) : null
|
|
115
124
|
]
|
|
116
|
-
}
|
|
125
|
+
}, void 0, true, {
|
|
126
|
+
fileName: "src/utilities/getFolderResultsComponentAndData.tsx",
|
|
127
|
+
lineNumber: 166,
|
|
128
|
+
columnNumber: 7
|
|
129
|
+
}, this);
|
|
117
130
|
} else {
|
|
118
|
-
FolderResultsComponent = /*#__PURE__*/
|
|
131
|
+
FolderResultsComponent = /*#__PURE__*/ _jsxDEV(FolderFileTable, {
|
|
119
132
|
showRelationCell: browseByFolder
|
|
120
|
-
}
|
|
133
|
+
}, void 0, false, {
|
|
134
|
+
fileName: "src/utilities/getFolderResultsComponentAndData.tsx",
|
|
135
|
+
lineNumber: 186,
|
|
136
|
+
columnNumber: 30
|
|
137
|
+
}, this);
|
|
121
138
|
}
|
|
122
139
|
return {
|
|
123
140
|
breadcrumbs: folderData.breadcrumbs,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/getFolderResultsComponentAndData.tsx"],"sourcesContent":["import type {\n CollectionSlug,\n ErrorResult,\n GetFolderResultsComponentAndDataArgs,\n ServerFunction,\n Where,\n} from 'payload'\nimport type { FolderBreadcrumb, FolderOrDocument } from 'payload/shared'\n\nimport { APIError, formatErrors, getFolderData } from 'payload'\nimport { buildFolderWhereConstraints, combineWhereConstraints } from 'payload/shared'\n\nimport {\n FolderFileTable,\n ItemCardGrid,\n // eslint-disable-next-line payload/no-imports-from-exports-dir -- This component is returned via server functions, it must reference the exports dir\n} from '../exports/client/index.js'\n\ntype GetFolderResultsComponentAndDataResult = {\n breadcrumbs?: FolderBreadcrumb[]\n documents?: FolderOrDocument[]\n folderAssignedCollections?: CollectionSlug[]\n FolderResultsComponent: React.ReactNode\n subfolders?: FolderOrDocument[]\n}\n\ntype GetFolderResultsComponentAndDataErrorResult = {\n breadcrumbs?: never\n documents?: never\n FolderResultsComponent?: never\n subfolders?: never\n} & (\n | {\n message: string\n }\n | ErrorResult\n)\n\nexport const getFolderResultsComponentAndDataHandler: ServerFunction<\n GetFolderResultsComponentAndDataArgs,\n Promise<GetFolderResultsComponentAndDataErrorResult | GetFolderResultsComponentAndDataResult>\n> = async (args) => {\n const { req } = args\n\n try {\n const res = await getFolderResultsComponentAndData(args)\n return res\n } catch (err) {\n req.payload.logger.error({\n err,\n msg: `There was an error getting the folder results component and data`,\n })\n\n return formatErrors(err)\n }\n}\n\n/**\n * This function is responsible for fetching folder data, building the results component\n * and returns the data and component together.\n */\nexport const getFolderResultsComponentAndData = async ({\n browseByFolder = false,\n collectionsToDisplay: activeCollectionSlugs,\n displayAs,\n folderAssignedCollections,\n folderID = undefined,\n req,\n sort,\n}: GetFolderResultsComponentAndDataArgs): Promise<GetFolderResultsComponentAndDataResult> => {\n const { payload } = req\n\n if (!payload.config.folders) {\n throw new APIError('Folders are not enabled in the configuration.')\n }\n\n const emptyQuery = {\n id: {\n exists: false,\n },\n }\n\n let collectionSlug: CollectionSlug | undefined = undefined\n let documentWhere: undefined | Where =\n Array.isArray(activeCollectionSlugs) && !activeCollectionSlugs.length ? emptyQuery : undefined\n let folderWhere: undefined | Where =\n Array.isArray(activeCollectionSlugs) && !activeCollectionSlugs.length ? emptyQuery : undefined\n\n // todo(perf): - collect promises and resolve them in parallel\n for (const activeCollectionSlug of activeCollectionSlugs) {\n if (activeCollectionSlug === payload.config.folders.slug) {\n const folderCollectionConstraints = await buildFolderWhereConstraints({\n collectionConfig: payload.collections[activeCollectionSlug].config,\n folderID,\n localeCode: req?.locale,\n req,\n search: typeof req?.query?.search === 'string' ? req.query.search : undefined,\n sort,\n })\n\n if (folderCollectionConstraints) {\n folderWhere = folderCollectionConstraints\n }\n\n folderWhere = combineWhereConstraints([\n folderWhere,\n Array.isArray(folderAssignedCollections) &&\n folderAssignedCollections.length &&\n payload.config.folders.collectionSpecific\n ? {\n or: [\n {\n folderType: {\n in: folderAssignedCollections,\n },\n },\n // if the folderType is not set, it means it accepts all collections and should appear in the results\n {\n folderType: {\n exists: false,\n },\n },\n ],\n }\n : undefined,\n ])\n } else if ((browseByFolder && folderID) || !browseByFolder) {\n if (!browseByFolder) {\n collectionSlug = activeCollectionSlug\n }\n\n if (!documentWhere) {\n documentWhere = {\n or: [],\n }\n }\n\n const collectionConstraints = await buildFolderWhereConstraints({\n collectionConfig: payload.collections[activeCollectionSlug].config,\n folderID,\n localeCode: req?.locale,\n req,\n search: typeof req?.query?.search === 'string' ? req.query.search : undefined,\n sort,\n })\n\n if (collectionConstraints) {\n documentWhere.or.push(collectionConstraints)\n }\n }\n }\n\n const folderData = await getFolderData({\n collectionSlug,\n documentWhere,\n folderID,\n folderWhere,\n req,\n sort,\n })\n\n let FolderResultsComponent = null\n\n if (displayAs === 'grid') {\n FolderResultsComponent = (\n <div>\n {folderData.subfolders.length ? (\n <>\n <ItemCardGrid items={folderData.subfolders} title={'Folders'} type=\"folder\" />\n </>\n ) : null}\n\n {folderData.documents.length ? (\n <>\n <ItemCardGrid\n items={folderData.documents}\n subfolderCount={folderData.subfolders.length}\n title={'Documents'}\n type=\"file\"\n />\n </>\n ) : null}\n </div>\n )\n } else {\n FolderResultsComponent = <FolderFileTable showRelationCell={browseByFolder} />\n }\n\n return {\n breadcrumbs: folderData.breadcrumbs,\n documents: folderData.documents,\n folderAssignedCollections: folderData.folderAssignedCollections,\n FolderResultsComponent,\n subfolders: folderData.subfolders,\n }\n}\n"],"names":["APIError","formatErrors","getFolderData","buildFolderWhereConstraints","combineWhereConstraints","FolderFileTable","ItemCardGrid","getFolderResultsComponentAndDataHandler","args","req","res","getFolderResultsComponentAndData","err","payload","logger","error","msg","browseByFolder","collectionsToDisplay","activeCollectionSlugs","displayAs","folderAssignedCollections","folderID","undefined","sort","config","folders","emptyQuery","id","exists","collectionSlug","documentWhere","Array","isArray","length","folderWhere","activeCollectionSlug","slug","folderCollectionConstraints","collectionConfig","collections","localeCode","locale","search","query","collectionSpecific","or","folderType","in","collectionConstraints","push","folderData","FolderResultsComponent","div","subfolders","items","title","type","documents","subfolderCount","showRelationCell","breadcrumbs"],"mappings":";AASA,SAASA,QAAQ,EAAEC,YAAY,EAAEC,aAAa,QAAQ,UAAS;AAC/D,SAASC,2BAA2B,EAAEC,uBAAuB,QAAQ,iBAAgB;AAErF,SACEC,eAAe,EACfC,YAAY,
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/getFolderResultsComponentAndData.tsx"],"sourcesContent":["import type {\n CollectionSlug,\n ErrorResult,\n GetFolderResultsComponentAndDataArgs,\n ServerFunction,\n Where,\n} from 'payload'\nimport type { FolderBreadcrumb, FolderOrDocument } from 'payload/shared'\n\nimport { APIError, formatErrors, getFolderData } from 'payload'\nimport { buildFolderWhereConstraints, combineWhereConstraints } from 'payload/shared'\n\nimport {\n FolderFileTable,\n ItemCardGrid,\n // eslint-disable-next-line payload/no-imports-from-exports-dir -- This component is returned via server functions, it must reference the exports dir\n} from '../exports/client/index.js'\n\ntype GetFolderResultsComponentAndDataResult = {\n breadcrumbs?: FolderBreadcrumb[]\n documents?: FolderOrDocument[]\n folderAssignedCollections?: CollectionSlug[]\n FolderResultsComponent: React.ReactNode\n subfolders?: FolderOrDocument[]\n}\n\ntype GetFolderResultsComponentAndDataErrorResult = {\n breadcrumbs?: never\n documents?: never\n FolderResultsComponent?: never\n subfolders?: never\n} & (\n | {\n message: string\n }\n | ErrorResult\n)\n\nexport const getFolderResultsComponentAndDataHandler: ServerFunction<\n GetFolderResultsComponentAndDataArgs,\n Promise<GetFolderResultsComponentAndDataErrorResult | GetFolderResultsComponentAndDataResult>\n> = async (args) => {\n const { req } = args\n\n try {\n const res = await getFolderResultsComponentAndData(args)\n return res\n } catch (err) {\n req.payload.logger.error({\n err,\n msg: `There was an error getting the folder results component and data`,\n })\n\n return formatErrors(err)\n }\n}\n\n/**\n * This function is responsible for fetching folder data, building the results component\n * and returns the data and component together.\n */\nexport const getFolderResultsComponentAndData = async ({\n browseByFolder = false,\n collectionsToDisplay: activeCollectionSlugs,\n displayAs,\n folderAssignedCollections,\n folderID = undefined,\n req,\n sort,\n}: GetFolderResultsComponentAndDataArgs): Promise<GetFolderResultsComponentAndDataResult> => {\n const { payload } = req\n\n if (!payload.config.folders) {\n throw new APIError('Folders are not enabled in the configuration.')\n }\n\n const emptyQuery = {\n id: {\n exists: false,\n },\n }\n\n let collectionSlug: CollectionSlug | undefined = undefined\n let documentWhere: undefined | Where =\n Array.isArray(activeCollectionSlugs) && !activeCollectionSlugs.length ? emptyQuery : undefined\n let folderWhere: undefined | Where =\n Array.isArray(activeCollectionSlugs) && !activeCollectionSlugs.length ? emptyQuery : undefined\n\n // todo(perf): - collect promises and resolve them in parallel\n for (const activeCollectionSlug of activeCollectionSlugs) {\n if (activeCollectionSlug === payload.config.folders.slug) {\n const folderCollectionConstraints = await buildFolderWhereConstraints({\n collectionConfig: payload.collections[activeCollectionSlug].config,\n folderID,\n localeCode: req?.locale,\n req,\n search: typeof req?.query?.search === 'string' ? req.query.search : undefined,\n sort,\n })\n\n if (folderCollectionConstraints) {\n folderWhere = folderCollectionConstraints\n }\n\n folderWhere = combineWhereConstraints([\n folderWhere,\n Array.isArray(folderAssignedCollections) &&\n folderAssignedCollections.length &&\n payload.config.folders.collectionSpecific\n ? {\n or: [\n {\n folderType: {\n in: folderAssignedCollections,\n },\n },\n // if the folderType is not set, it means it accepts all collections and should appear in the results\n {\n folderType: {\n exists: false,\n },\n },\n ],\n }\n : undefined,\n ])\n } else if ((browseByFolder && folderID) || !browseByFolder) {\n if (!browseByFolder) {\n collectionSlug = activeCollectionSlug\n }\n\n if (!documentWhere) {\n documentWhere = {\n or: [],\n }\n }\n\n const collectionConstraints = await buildFolderWhereConstraints({\n collectionConfig: payload.collections[activeCollectionSlug].config,\n folderID,\n localeCode: req?.locale,\n req,\n search: typeof req?.query?.search === 'string' ? req.query.search : undefined,\n sort,\n })\n\n if (collectionConstraints) {\n documentWhere.or.push(collectionConstraints)\n }\n }\n }\n\n const folderData = await getFolderData({\n collectionSlug,\n documentWhere,\n folderID,\n folderWhere,\n req,\n sort,\n })\n\n let FolderResultsComponent = null\n\n if (displayAs === 'grid') {\n FolderResultsComponent = (\n <div>\n {folderData.subfolders.length ? (\n <>\n <ItemCardGrid items={folderData.subfolders} title={'Folders'} type=\"folder\" />\n </>\n ) : null}\n\n {folderData.documents.length ? (\n <>\n <ItemCardGrid\n items={folderData.documents}\n subfolderCount={folderData.subfolders.length}\n title={'Documents'}\n type=\"file\"\n />\n </>\n ) : null}\n </div>\n )\n } else {\n FolderResultsComponent = <FolderFileTable showRelationCell={browseByFolder} />\n }\n\n return {\n breadcrumbs: folderData.breadcrumbs,\n documents: folderData.documents,\n folderAssignedCollections: folderData.folderAssignedCollections,\n FolderResultsComponent,\n subfolders: folderData.subfolders,\n }\n}\n"],"names":["APIError","formatErrors","getFolderData","buildFolderWhereConstraints","combineWhereConstraints","FolderFileTable","ItemCardGrid","getFolderResultsComponentAndDataHandler","args","req","res","getFolderResultsComponentAndData","err","payload","logger","error","msg","browseByFolder","collectionsToDisplay","activeCollectionSlugs","displayAs","folderAssignedCollections","folderID","undefined","sort","config","folders","emptyQuery","id","exists","collectionSlug","documentWhere","Array","isArray","length","folderWhere","activeCollectionSlug","slug","folderCollectionConstraints","collectionConfig","collections","localeCode","locale","search","query","collectionSpecific","or","folderType","in","collectionConstraints","push","folderData","FolderResultsComponent","div","subfolders","items","title","type","documents","subfolderCount","showRelationCell","breadcrumbs"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const lockDurationDefault = 300
|
|
2
|
-
|
|
1
|
+
const lockDurationDefault = 300;
|
|
2
|
+
// Default 5 minutes in seconds
|
|
3
3
|
export const handleFormStateLocking = async ({ id, collectionSlug, globalSlug, req, updateLastEdited })=>{
|
|
4
4
|
let result;
|
|
5
5
|
if (id || globalSlug) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/handleFormStateLocking.ts"],"sourcesContent":["import type { PayloadRequest, TypedUser } from 'payload'\n\ntype Args = {\n collectionSlug?: string\n globalSlug?: string\n id?: number | string\n req: PayloadRequest\n updateLastEdited?: boolean\n}\n\ntype Result = {\n isLocked: boolean\n lastEditedAt: string\n user: TypedUser\n}\n\nconst lockDurationDefault = 300 // Default 5 minutes in seconds\n\nexport const handleFormStateLocking = async ({\n id,\n collectionSlug,\n globalSlug,\n req,\n updateLastEdited,\n}: Args): Promise<Result> => {\n let result: Result\n\n if (id || globalSlug) {\n let lockedDocumentQuery\n\n if (collectionSlug) {\n lockedDocumentQuery = {\n and: [\n { 'document.relationTo': { equals: collectionSlug } },\n { 'document.value': { equals: id } },\n ],\n }\n } else if (globalSlug) {\n lockedDocumentQuery = {\n and: [{ globalSlug: { equals: globalSlug } }],\n }\n }\n\n const lockDocumentsProp = collectionSlug\n ? req.payload.collections?.[collectionSlug]?.config.lockDocuments\n : req.payload.config.globals.find((g) => g.slug === globalSlug)?.lockDocuments\n\n const lockDuration =\n typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault\n const lockDurationInMilliseconds = lockDuration * 1000\n const now = new Date().getTime()\n\n if (lockedDocumentQuery) {\n // Query where the lock is newer than the current time minus the lock duration\n lockedDocumentQuery.and.push({\n updatedAt: {\n greater_than: new Date(now - lockDurationInMilliseconds).toISOString(),\n },\n })\n\n const lockedDocument = await req.payload.find({\n collection: 'payload-locked-documents',\n depth: 1,\n limit: 1,\n overrideAccess: false,\n pagination: false,\n user: req.user,\n where: lockedDocumentQuery,\n })\n\n if (lockedDocument.docs && lockedDocument.docs.length > 0) {\n result = {\n isLocked: true,\n lastEditedAt: lockedDocument.docs[0]?.updatedAt,\n user: lockedDocument.docs[0]?.user?.value,\n }\n\n const lockOwnerID =\n typeof lockedDocument.docs[0]?.user?.value === 'object'\n ? lockedDocument.docs[0]?.user?.value?.id\n : lockedDocument.docs[0]?.user?.value\n // Should only update doc if the incoming / current user is also the owner of the locked doc\n if (updateLastEdited && req.user && lockOwnerID === req.user.id) {\n await req.payload.db.updateOne({\n id: lockedDocument.docs[0].id,\n collection: 'payload-locked-documents',\n data: {},\n returning: false,\n })\n }\n } else {\n // If NO ACTIVE lock document exists, first delete any expired locks and then create a fresh lock\n // Where updatedAt is older than the duration that is specified in the config\n let deleteExpiredLocksQuery\n\n if (collectionSlug) {\n deleteExpiredLocksQuery = {\n and: [\n { 'document.relationTo': { equals: collectionSlug } },\n {\n updatedAt: {\n less_than: new Date(now - lockDurationInMilliseconds).toISOString(),\n },\n },\n ],\n }\n } else if (globalSlug) {\n deleteExpiredLocksQuery = {\n and: [\n { globalSlug: { equals: globalSlug } },\n {\n updatedAt: {\n less_than: new Date(now - lockDurationInMilliseconds).toISOString(),\n },\n },\n ],\n }\n }\n\n await req.payload.db.deleteMany({\n collection: 'payload-locked-documents',\n where: deleteExpiredLocksQuery,\n })\n\n await req.payload.db.create({\n collection: 'payload-locked-documents',\n data: {\n document: collectionSlug\n ? {\n relationTo: collectionSlug,\n value: id,\n }\n : undefined,\n globalSlug: globalSlug ? globalSlug : undefined,\n user: {\n relationTo: req.user.collection,\n value: req.user.id,\n },\n },\n returning: false,\n })\n\n result = {\n isLocked: true,\n lastEditedAt: new Date().toISOString(),\n user: req.user,\n }\n }\n }\n }\n\n return result\n}\n"],"names":["lockDurationDefault","handleFormStateLocking","id","collectionSlug","globalSlug","req","updateLastEdited","result","lockedDocumentQuery","and","equals","lockDocumentsProp","payload","collections","config","lockDocuments","globals","find","g","slug","lockDuration","duration","lockDurationInMilliseconds","now","Date","getTime","push","updatedAt","greater_than","toISOString","lockedDocument","collection","depth","limit","overrideAccess","pagination","user","where","docs","length","isLocked","lastEditedAt","value","lockOwnerID","db","updateOne","data","returning","deleteExpiredLocksQuery","less_than","deleteMany","create","document","relationTo","undefined"],"mappings":"AAgBA,MAAMA,sBAAsB
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/handleFormStateLocking.ts"],"sourcesContent":["import type { PayloadRequest, TypedUser } from 'payload'\n\ntype Args = {\n collectionSlug?: string\n globalSlug?: string\n id?: number | string\n req: PayloadRequest\n updateLastEdited?: boolean\n}\n\ntype Result = {\n isLocked: boolean\n lastEditedAt: string\n user: TypedUser\n}\n\nconst lockDurationDefault = 300 // Default 5 minutes in seconds\n\nexport const handleFormStateLocking = async ({\n id,\n collectionSlug,\n globalSlug,\n req,\n updateLastEdited,\n}: Args): Promise<Result> => {\n let result: Result\n\n if (id || globalSlug) {\n let lockedDocumentQuery\n\n if (collectionSlug) {\n lockedDocumentQuery = {\n and: [\n { 'document.relationTo': { equals: collectionSlug } },\n { 'document.value': { equals: id } },\n ],\n }\n } else if (globalSlug) {\n lockedDocumentQuery = {\n and: [{ globalSlug: { equals: globalSlug } }],\n }\n }\n\n const lockDocumentsProp = collectionSlug\n ? req.payload.collections?.[collectionSlug]?.config.lockDocuments\n : req.payload.config.globals.find((g) => g.slug === globalSlug)?.lockDocuments\n\n const lockDuration =\n typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault\n const lockDurationInMilliseconds = lockDuration * 1000\n const now = new Date().getTime()\n\n if (lockedDocumentQuery) {\n // Query where the lock is newer than the current time minus the lock duration\n lockedDocumentQuery.and.push({\n updatedAt: {\n greater_than: new Date(now - lockDurationInMilliseconds).toISOString(),\n },\n })\n\n const lockedDocument = await req.payload.find({\n collection: 'payload-locked-documents',\n depth: 1,\n limit: 1,\n overrideAccess: false,\n pagination: false,\n user: req.user,\n where: lockedDocumentQuery,\n })\n\n if (lockedDocument.docs && lockedDocument.docs.length > 0) {\n result = {\n isLocked: true,\n lastEditedAt: lockedDocument.docs[0]?.updatedAt,\n user: lockedDocument.docs[0]?.user?.value,\n }\n\n const lockOwnerID =\n typeof lockedDocument.docs[0]?.user?.value === 'object'\n ? lockedDocument.docs[0]?.user?.value?.id\n : lockedDocument.docs[0]?.user?.value\n // Should only update doc if the incoming / current user is also the owner of the locked doc\n if (updateLastEdited && req.user && lockOwnerID === req.user.id) {\n await req.payload.db.updateOne({\n id: lockedDocument.docs[0].id,\n collection: 'payload-locked-documents',\n data: {},\n returning: false,\n })\n }\n } else {\n // If NO ACTIVE lock document exists, first delete any expired locks and then create a fresh lock\n // Where updatedAt is older than the duration that is specified in the config\n let deleteExpiredLocksQuery\n\n if (collectionSlug) {\n deleteExpiredLocksQuery = {\n and: [\n { 'document.relationTo': { equals: collectionSlug } },\n {\n updatedAt: {\n less_than: new Date(now - lockDurationInMilliseconds).toISOString(),\n },\n },\n ],\n }\n } else if (globalSlug) {\n deleteExpiredLocksQuery = {\n and: [\n { globalSlug: { equals: globalSlug } },\n {\n updatedAt: {\n less_than: new Date(now - lockDurationInMilliseconds).toISOString(),\n },\n },\n ],\n }\n }\n\n await req.payload.db.deleteMany({\n collection: 'payload-locked-documents',\n where: deleteExpiredLocksQuery,\n })\n\n await req.payload.db.create({\n collection: 'payload-locked-documents',\n data: {\n document: collectionSlug\n ? {\n relationTo: collectionSlug,\n value: id,\n }\n : undefined,\n globalSlug: globalSlug ? globalSlug : undefined,\n user: {\n relationTo: req.user.collection,\n value: req.user.id,\n },\n },\n returning: false,\n })\n\n result = {\n isLocked: true,\n lastEditedAt: new Date().toISOString(),\n user: req.user,\n }\n }\n }\n }\n\n return result\n}\n"],"names":["lockDurationDefault","handleFormStateLocking","id","collectionSlug","globalSlug","req","updateLastEdited","result","lockedDocumentQuery","and","equals","lockDocumentsProp","payload","collections","config","lockDocuments","globals","find","g","slug","lockDuration","duration","lockDurationInMilliseconds","now","Date","getTime","push","updatedAt","greater_than","toISOString","lockedDocument","collection","depth","limit","overrideAccess","pagination","user","where","docs","length","isLocked","lastEditedAt","value","lockOwnerID","db","updateOne","data","returning","deleteExpiredLocksQuery","less_than","deleteMany","create","document","relationTo","undefined"],"mappings":"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"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
export const hasSavePermission = (args)
|
|
1
|
+
export const hasSavePermission = (args)=>/*
|
|
2
|
+
* Pass either `collectionSlug` or `globalSlug`
|
|
3
|
+
*/ /*
|
|
4
|
+
* Pass either `collectionSlug` or `globalSlug`
|
|
5
|
+
*/ {
|
|
2
6
|
const { collectionSlug, docPermissions, globalSlug, isEditing } = args;
|
|
3
7
|
if (collectionSlug) {
|
|
4
8
|
return Boolean(isEditing && docPermissions?.update || !isEditing && docPermissions?.create);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/hasSavePermission.ts"],"sourcesContent":["import type {\n SanitizedCollectionPermission,\n SanitizedDocumentPermissions,\n SanitizedGlobalPermission,\n} from 'payload'\n\nexport const hasSavePermission = (args: {\n /*\n * Pass either `collectionSlug` or `globalSlug`\n */\n collectionSlug?: string\n docPermissions: SanitizedDocumentPermissions\n /*\n * Pass either `collectionSlug` or `globalSlug`\n */\n globalSlug?: string\n isEditing: boolean\n}) => {\n const { collectionSlug, docPermissions, globalSlug, isEditing } = args\n\n if (collectionSlug) {\n return Boolean(\n (isEditing && docPermissions?.update) ||\n (!isEditing && (docPermissions as SanitizedCollectionPermission)?.create),\n )\n }\n\n if (globalSlug) {\n return Boolean((docPermissions as SanitizedGlobalPermission)?.update)\n }\n\n return false\n}\n"],"names":["hasSavePermission","args","collectionSlug","docPermissions","globalSlug","isEditing","Boolean","update","create"],"mappings":"AAMA,OAAO,MAAMA,oBAAoB,CAACC;
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/hasSavePermission.ts"],"sourcesContent":["import type {\n SanitizedCollectionPermission,\n SanitizedDocumentPermissions,\n SanitizedGlobalPermission,\n} from 'payload'\n\nexport const hasSavePermission = (args: {\n /*\n * Pass either `collectionSlug` or `globalSlug`\n */\n collectionSlug?: string\n docPermissions: SanitizedDocumentPermissions\n /*\n * Pass either `collectionSlug` or `globalSlug`\n */\n globalSlug?: string\n isEditing: boolean\n}) => {\n const { collectionSlug, docPermissions, globalSlug, isEditing } = args\n\n if (collectionSlug) {\n return Boolean(\n (isEditing && docPermissions?.update) ||\n (!isEditing && (docPermissions as SanitizedCollectionPermission)?.create),\n )\n }\n\n if (globalSlug) {\n return Boolean((docPermissions as SanitizedGlobalPermission)?.update)\n }\n\n return false\n}\n"],"names":["hasSavePermission","args","collectionSlug","docPermissions","globalSlug","isEditing","Boolean","update","create"],"mappings":"AAMA,OAAO,MAAMA,oBAAoB,CAACC,OAChC;;GAEC,GAGD;;GAEC;IAID,MAAM,EAAEC,cAAc,EAAEC,cAAc,EAAEC,UAAU,EAAEC,SAAS,EAAE,GAAGJ;IAElE,IAAIC,gBAAgB;QAClB,OAAOI,QACL,AAACD,aAAaF,gBAAgBI,UAC3B,CAACF,aAAcF,gBAAkDK;IAExE;IAEA,IAAIJ,YAAY;QACd,OAAOE,QAASH,gBAA8CI;IAChE;IAEA,OAAO;AACT,EAAC"}
|
|
@@ -13,9 +13,9 @@ export const isURLAllowed = (url, allowList)=>{
|
|
|
13
13
|
}
|
|
14
14
|
if (key === 'pathname') {
|
|
15
15
|
// Convert wildcards to a regex
|
|
16
|
-
const regexPattern = value.replace(/\*\*/g, '.*')
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
const regexPattern = value.replace(/\*\*/g, '.*').// Match any path
|
|
17
|
+
replace(/\*/g, '[^/]*');
|
|
18
|
+
// Match any part of a path segment
|
|
19
19
|
const regex = new RegExp(`^${regexPattern}$`);
|
|
20
20
|
return regex.test(parsedUrl.pathname);
|
|
21
21
|
}
|
|
@@ -24,9 +24,9 @@ export const isURLAllowed = (url, allowList)=>{
|
|
|
24
24
|
});
|
|
25
25
|
});
|
|
26
26
|
} catch {
|
|
27
|
-
return false
|
|
28
|
-
;
|
|
27
|
+
return false;
|
|
29
28
|
}
|
|
30
|
-
}
|
|
29
|
+
} // If the URL is invalid, deny by default
|
|
30
|
+
;
|
|
31
31
|
|
|
32
32
|
//# sourceMappingURL=isURLAllowed.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/isURLAllowed.ts"],"sourcesContent":["import type { AllowList } from 'payload'\n\nexport const isURLAllowed = (url: string, allowList: AllowList): boolean => {\n try {\n const parsedUrl = new URL(url)\n\n return allowList.some((allowItem) => {\n return Object.entries(allowItem).every(([key, value]) => {\n // Skip undefined or null values\n if (!value) {\n return true\n }\n // Compare protocol with colon\n if (key === 'protocol') {\n return typeof value === 'string' && parsedUrl.protocol === `${value}:`\n }\n\n if (key === 'pathname') {\n // Convert wildcards to a regex\n const regexPattern = value\n .replace(/\\*\\*/g, '.*') // Match any path\n .replace(/\\*/g, '[^/]*') // Match any part of a path segment\n const regex = new RegExp(`^${regexPattern}$`)\n return regex.test(parsedUrl.pathname)\n }\n\n // Default comparison for all other properties (hostname, port, search)\n return parsedUrl[key as keyof URL] === value\n })\n })\n } catch {\n return false // If the URL is invalid, deny by default\n }\n}\n"],"names":["isURLAllowed","url","allowList","parsedUrl","URL","some","allowItem","Object","entries","every","key","value","protocol","regexPattern","replace","regex","RegExp","test","pathname"],"mappings":"AAEA,OAAO,MAAMA,eAAe,CAACC,KAAaC;IACxC,IAAI;QACF,MAAMC,YAAY,IAAIC,IAAIH;QAE1B,OAAOC,UAAUG,IAAI,CAAC,CAACC;YACrB,OAAOC,OAAOC,OAAO,CAACF,WAAWG,KAAK,CAAC,CAAC,CAACC,KAAKC,MAAM;gBAClD,gCAAgC;gBAChC,IAAI,CAACA,OAAO;oBACV,OAAO;gBACT;gBACA,8BAA8B;gBAC9B,IAAID,QAAQ,YAAY;oBACtB,OAAO,OAAOC,UAAU,YAAYR,UAAUS,QAAQ,KAAK,GAAGD,MAAM,CAAC,CAAC;gBACxE;gBAEA,IAAID,QAAQ,YAAY;oBACtB,+BAA+B;oBAC/B,MAAMG,eAAeF,MAClBG,OAAO,CAAC,SAAS,MAAM,iBAAiB;
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/isURLAllowed.ts"],"sourcesContent":["import type { AllowList } from 'payload'\n\nexport const isURLAllowed = (url: string, allowList: AllowList): boolean => {\n try {\n const parsedUrl = new URL(url)\n\n return allowList.some((allowItem) => {\n return Object.entries(allowItem).every(([key, value]) => {\n // Skip undefined or null values\n if (!value) {\n return true\n }\n // Compare protocol with colon\n if (key === 'protocol') {\n return typeof value === 'string' && parsedUrl.protocol === `${value}:`\n }\n\n if (key === 'pathname') {\n // Convert wildcards to a regex\n const regexPattern = value\n .replace(/\\*\\*/g, '.*') // Match any path\n .replace(/\\*/g, '[^/]*') // Match any part of a path segment\n const regex = new RegExp(`^${regexPattern}$`)\n return regex.test(parsedUrl.pathname)\n }\n\n // Default comparison for all other properties (hostname, port, search)\n return parsedUrl[key as keyof URL] === value\n })\n })\n } catch {\n return false // If the URL is invalid, deny by default\n }\n}\n"],"names":["isURLAllowed","url","allowList","parsedUrl","URL","some","allowItem","Object","entries","every","key","value","protocol","regexPattern","replace","regex","RegExp","test","pathname"],"mappings":"AAEA,OAAO,MAAMA,eAAe,CAACC,KAAaC;IACxC,IAAI;QACF,MAAMC,YAAY,IAAIC,IAAIH;QAE1B,OAAOC,UAAUG,IAAI,CAAC,CAACC;YACrB,OAAOC,OAAOC,OAAO,CAACF,WAAWG,KAAK,CAAC,CAAC,CAACC,KAAKC,MAAM;gBAClD,gCAAgC;gBAChC,IAAI,CAACA,OAAO;oBACV,OAAO;gBACT;gBACA,8BAA8B;gBAC9B,IAAID,QAAQ,YAAY;oBACtB,OAAO,OAAOC,UAAU,YAAYR,UAAUS,QAAQ,KAAK,GAAGD,MAAM,CAAC,CAAC;gBACxE;gBAEA,IAAID,QAAQ,YAAY;oBACtB,+BAA+B;oBAC/B,MAAMG,eAAeF,MAClBG,OAAO,CAAC,SAAS,MAAM,iBAAiB;oBACxCA,OAAO,CAAC,OAAO;oBAAS,mCAAmC;oBAC9D,MAAMC,QAAQ,IAAIC,OAAO,CAAC,CAAC,EAAEH,aAAa,CAAC,CAAC;oBAC5C,OAAOE,MAAME,IAAI,CAACd,UAAUe,QAAQ;gBACtC;gBAEA,uEAAuE;gBACvE,OAAOf,SAAS,CAACO,IAAiB,KAAKC;YACzC;QACF;IACF,EAAE,OAAM;QACN,OAAO;IACT;AACF,EAFiB,yCAAyC;CAEzD"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
2
2
|
import { getTranslation } from '@payloadcms/translations';
|
|
3
3
|
import { fieldAffectsData, fieldIsHiddenOrDisabled } from 'payload/shared';
|
|
4
4
|
import React from 'react';
|
|
5
5
|
import { RenderServerComponent } from '../elements/RenderServerComponent/index.js';
|
|
6
|
-
import { GroupByHeader, GroupByPageControls, OrderableTable, Pill, SelectAll, SelectionProvider, SelectRow, SortHeader, SortRow, Table } from
|
|
6
|
+
import { GroupByHeader, GroupByPageControls, OrderableTable, Pill, SelectAll, SelectionProvider, SelectRow, SortHeader, SortRow, Table } from // eslint-disable-next-line payload/no-imports-from-exports-dir -- these MUST reference the exports dir: https://github.com/payloadcms/payload/issues/12002#issuecomment-2791493587
|
|
7
|
+
'../exports/client/index.js';
|
|
7
8
|
import { filterFieldsWithPermissions } from '../providers/TableColumns/buildColumnState/filterFieldsWithPermissions.js';
|
|
8
9
|
import { buildColumnState } from '../providers/TableColumns/buildColumnState/index.js';
|
|
9
10
|
export const renderFilters = (fields, importMap)=>fields.reduce((acc, field)=>{
|
|
@@ -98,10 +99,14 @@ export const renderTable = ({ clientCollectionConfig, clientConfig, collectionCo
|
|
|
98
99
|
hidden: true
|
|
99
100
|
},
|
|
100
101
|
Heading: i18n.t('version:type'),
|
|
101
|
-
renderedCells: (data?.docs || []).map((doc, i)=>/*#__PURE__*/
|
|
102
|
+
renderedCells: (data?.docs || []).map((doc, i)=>/*#__PURE__*/ _jsxDEV(Pill, {
|
|
102
103
|
size: "small",
|
|
103
104
|
children: getTranslation(collections ? payload.collections[doc.relationTo].config.labels.singular : clientCollectionConfig.labels.singular, i18n)
|
|
104
|
-
}, i
|
|
105
|
+
}, i, false, {
|
|
106
|
+
fileName: "src/utilities/renderTable.tsx",
|
|
107
|
+
lineNumber: 224,
|
|
108
|
+
columnNumber: 9
|
|
109
|
+
}, this))
|
|
105
110
|
});
|
|
106
111
|
}
|
|
107
112
|
if (enableRowSelections) {
|
|
@@ -114,58 +119,94 @@ export const renderTable = ({ clientCollectionConfig, clientConfig, collectionCo
|
|
|
114
119
|
},
|
|
115
120
|
hidden: true
|
|
116
121
|
},
|
|
117
|
-
Heading: /*#__PURE__*/
|
|
118
|
-
|
|
122
|
+
Heading: /*#__PURE__*/ _jsxDEV(SelectAll, {}, void 0, false, {
|
|
123
|
+
fileName: "src/utilities/renderTable.tsx",
|
|
124
|
+
lineNumber: 246,
|
|
125
|
+
columnNumber: 16
|
|
126
|
+
}, this),
|
|
127
|
+
renderedCells: (data?.docs || []).map((_, i)=>/*#__PURE__*/ _jsxDEV(SelectRow, {
|
|
119
128
|
rowData: data?.docs[i]
|
|
120
|
-
}, i
|
|
129
|
+
}, i, false, {
|
|
130
|
+
fileName: "src/utilities/renderTable.tsx",
|
|
131
|
+
lineNumber: 248,
|
|
132
|
+
columnNumber: 9
|
|
133
|
+
}, this))
|
|
121
134
|
});
|
|
122
135
|
}
|
|
123
136
|
if (isGroupingBy) {
|
|
124
137
|
return {
|
|
125
138
|
columnState,
|
|
126
139
|
// key is required since Next.js 15.2.0 to prevent React key error
|
|
127
|
-
Table: /*#__PURE__*/
|
|
140
|
+
Table: /*#__PURE__*/ _jsxDEV("div", {
|
|
128
141
|
className: [
|
|
129
142
|
'table-wrap',
|
|
130
143
|
groupByValue !== undefined && `table-wrap--group-by`
|
|
131
144
|
].filter(Boolean).join(' '),
|
|
132
|
-
children: /*#__PURE__*/
|
|
145
|
+
children: /*#__PURE__*/ _jsxDEV(SelectionProvider, {
|
|
133
146
|
docs: data?.docs || [],
|
|
134
147
|
totalDocs: data?.totalDocs || 0,
|
|
135
148
|
children: [
|
|
136
|
-
/*#__PURE__*/
|
|
149
|
+
/*#__PURE__*/ _jsxDEV(GroupByHeader, {
|
|
137
150
|
collectionConfig: clientCollectionConfig,
|
|
138
151
|
groupByFieldPath: groupByFieldPath,
|
|
139
152
|
groupByValue: groupByValue,
|
|
140
153
|
heading: heading
|
|
141
|
-
}
|
|
142
|
-
|
|
154
|
+
}, void 0, false, {
|
|
155
|
+
fileName: "src/utilities/renderTable.tsx",
|
|
156
|
+
lineNumber: 265,
|
|
157
|
+
columnNumber: 13
|
|
158
|
+
}, this),
|
|
159
|
+
/*#__PURE__*/ _jsxDEV(Table, {
|
|
143
160
|
appearance: tableAppearance,
|
|
144
161
|
columns: columnsToUse,
|
|
145
162
|
data: data?.docs || []
|
|
146
|
-
}
|
|
147
|
-
|
|
163
|
+
}, void 0, false, {
|
|
164
|
+
fileName: "src/utilities/renderTable.tsx",
|
|
165
|
+
lineNumber: 271,
|
|
166
|
+
columnNumber: 13
|
|
167
|
+
}, this),
|
|
168
|
+
/*#__PURE__*/ _jsxDEV(GroupByPageControls, {
|
|
148
169
|
collectionConfig: clientCollectionConfig,
|
|
149
170
|
data: data,
|
|
150
171
|
groupByValue: groupByValue
|
|
151
|
-
}
|
|
172
|
+
}, void 0, false, {
|
|
173
|
+
fileName: "src/utilities/renderTable.tsx",
|
|
174
|
+
lineNumber: 272,
|
|
175
|
+
columnNumber: 13
|
|
176
|
+
}, this)
|
|
152
177
|
]
|
|
153
|
-
}
|
|
154
|
-
|
|
178
|
+
}, void 0, true, {
|
|
179
|
+
fileName: "src/utilities/renderTable.tsx",
|
|
180
|
+
lineNumber: 264,
|
|
181
|
+
columnNumber: 11
|
|
182
|
+
}, this)
|
|
183
|
+
}, key, false, {
|
|
184
|
+
fileName: "src/utilities/renderTable.tsx",
|
|
185
|
+
lineNumber: 258,
|
|
186
|
+
columnNumber: 9
|
|
187
|
+
}, this)
|
|
155
188
|
};
|
|
156
189
|
}
|
|
157
190
|
if (!orderableFieldName) {
|
|
158
191
|
return {
|
|
159
192
|
columnState,
|
|
160
193
|
// key is required since Next.js 15.2.0 to prevent React key error
|
|
161
|
-
Table: /*#__PURE__*/
|
|
194
|
+
Table: /*#__PURE__*/ _jsxDEV("div", {
|
|
162
195
|
className: "table-wrap",
|
|
163
|
-
children: /*#__PURE__*/
|
|
196
|
+
children: /*#__PURE__*/ _jsxDEV(Table, {
|
|
164
197
|
appearance: tableAppearance,
|
|
165
198
|
columns: columnsToUse,
|
|
166
199
|
data: data?.docs || []
|
|
167
|
-
}
|
|
168
|
-
|
|
200
|
+
}, void 0, false, {
|
|
201
|
+
fileName: "src/utilities/renderTable.tsx",
|
|
202
|
+
lineNumber: 289,
|
|
203
|
+
columnNumber: 11
|
|
204
|
+
}, this)
|
|
205
|
+
}, key, false, {
|
|
206
|
+
fileName: "src/utilities/renderTable.tsx",
|
|
207
|
+
lineNumber: 288,
|
|
208
|
+
columnNumber: 9
|
|
209
|
+
}, this)
|
|
169
210
|
};
|
|
170
211
|
}
|
|
171
212
|
columnsToUse.unshift({
|
|
@@ -177,21 +218,37 @@ export const renderTable = ({ clientCollectionConfig, clientConfig, collectionCo
|
|
|
177
218
|
},
|
|
178
219
|
hidden: true
|
|
179
220
|
},
|
|
180
|
-
Heading: /*#__PURE__*/
|
|
181
|
-
|
|
221
|
+
Heading: /*#__PURE__*/ _jsxDEV(SortHeader, {}, void 0, false, {
|
|
222
|
+
fileName: "src/utilities/renderTable.tsx",
|
|
223
|
+
lineNumber: 304,
|
|
224
|
+
columnNumber: 14
|
|
225
|
+
}, this),
|
|
226
|
+
renderedCells: (data?.docs || []).map((_, i)=>/*#__PURE__*/ _jsxDEV(SortRow, {}, i, false, {
|
|
227
|
+
fileName: "src/utilities/renderTable.tsx",
|
|
228
|
+
lineNumber: 305,
|
|
229
|
+
columnNumber: 53
|
|
230
|
+
}, this))
|
|
182
231
|
});
|
|
183
232
|
return {
|
|
184
233
|
columnState,
|
|
185
234
|
// key is required since Next.js 15.2.0 to prevent React key error
|
|
186
|
-
Table: /*#__PURE__*/
|
|
235
|
+
Table: /*#__PURE__*/ _jsxDEV("div", {
|
|
187
236
|
className: "table-wrap",
|
|
188
|
-
children: /*#__PURE__*/
|
|
237
|
+
children: /*#__PURE__*/ _jsxDEV(OrderableTable, {
|
|
189
238
|
appearance: tableAppearance,
|
|
190
239
|
collection: clientCollectionConfig,
|
|
191
240
|
columns: columnsToUse,
|
|
192
241
|
data: data?.docs || []
|
|
193
|
-
}
|
|
194
|
-
|
|
242
|
+
}, void 0, false, {
|
|
243
|
+
fileName: "src/utilities/renderTable.tsx",
|
|
244
|
+
lineNumber: 313,
|
|
245
|
+
columnNumber: 9
|
|
246
|
+
}, this)
|
|
247
|
+
}, key, false, {
|
|
248
|
+
fileName: "src/utilities/renderTable.tsx",
|
|
249
|
+
lineNumber: 312,
|
|
250
|
+
columnNumber: 7
|
|
251
|
+
}, this)
|
|
195
252
|
};
|
|
196
253
|
};
|
|
197
254
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/renderTable.tsx"],"sourcesContent":["import type {\n ClientCollectionConfig,\n ClientConfig,\n ClientField,\n CollectionConfig,\n Column,\n ColumnPreference,\n Field,\n ImportMap,\n ListQuery,\n PaginatedDocs,\n Payload,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedFieldsPermissions,\n ViewTypes,\n} from 'payload'\n\nimport { getTranslation, type I18nClient } from '@payloadcms/translations'\nimport { fieldAffectsData, fieldIsHiddenOrDisabled } from 'payload/shared'\nimport React from 'react'\n\nimport type { BuildColumnStateArgs } from '../providers/TableColumns/buildColumnState/index.js'\n\nimport { RenderServerComponent } from '../elements/RenderServerComponent/index.js'\nimport {\n GroupByHeader,\n GroupByPageControls,\n OrderableTable,\n Pill,\n SelectAll,\n SelectionProvider,\n SelectRow,\n SortHeader,\n SortRow,\n Table,\n // eslint-disable-next-line payload/no-imports-from-exports-dir -- these MUST reference the exports dir: https://github.com/payloadcms/payload/issues/12002#issuecomment-2791493587\n} from '../exports/client/index.js'\nimport { filterFieldsWithPermissions } from '../providers/TableColumns/buildColumnState/filterFieldsWithPermissions.js'\nimport { buildColumnState } from '../providers/TableColumns/buildColumnState/index.js'\n\nexport const renderFilters = (\n fields: Field[],\n importMap: ImportMap,\n): Map<string, React.ReactNode> =>\n fields.reduce(\n (acc, field) => {\n if (fieldIsHiddenOrDisabled(field)) {\n return acc\n }\n\n if ('name' in field && field.admin?.components?.Filter) {\n acc.set(\n field.name,\n RenderServerComponent({\n Component: field.admin.components?.Filter,\n importMap,\n }),\n )\n }\n\n return acc\n },\n new Map() as Map<string, React.ReactNode>,\n )\n\nexport const renderTable = ({\n clientCollectionConfig,\n clientConfig,\n collectionConfig,\n collections,\n columns,\n customCellProps,\n data,\n enableRowSelections,\n fieldPermissions,\n groupByFieldPath,\n groupByValue,\n heading,\n i18n,\n key = 'table',\n orderableFieldName,\n payload,\n query,\n renderRowTypes,\n req,\n tableAppearance,\n useAsTitle,\n viewType,\n}: {\n clientCollectionConfig?: ClientCollectionConfig\n clientConfig?: ClientConfig\n collectionConfig?: SanitizedCollectionConfig\n collections?: string[]\n columns: ColumnPreference[]\n customCellProps?: Record<string, unknown>\n data?: PaginatedDocs | undefined\n drawerSlug?: string\n enableRowSelections: boolean\n fieldPermissions?: SanitizedFieldsPermissions\n groupByFieldPath?: string\n groupByValue?: string\n heading?: string\n i18n: I18nClient\n key?: string\n orderableFieldName: string\n payload: Payload\n query?: ListQuery\n renderRowTypes?: boolean\n req?: PayloadRequest\n tableAppearance?: 'condensed' | 'default'\n useAsTitle: CollectionConfig['admin']['useAsTitle']\n viewType?: ViewTypes\n}): {\n columnState: Column[]\n Table: React.ReactNode\n} => {\n // Ensure that columns passed as args comply with the field config, i.e. `hidden`, `disableListColumn`, etc.\n\n let columnState: Column[]\n let clientFields: ClientField[] = clientCollectionConfig?.fields || []\n let serverFields: Field[] = collectionConfig?.fields || []\n const isPolymorphic = collections\n\n const isGroupingBy = Boolean(collectionConfig?.admin?.groupBy && query?.groupBy)\n\n if (isPolymorphic) {\n clientFields = []\n serverFields = []\n\n for (const collection of collections) {\n const clientCollectionConfig = clientConfig.collections.find(\n (each) => each.slug === collection,\n )\n\n for (const field of filterFieldsWithPermissions({\n fieldPermissions,\n fields: clientCollectionConfig.fields,\n })) {\n if (fieldAffectsData(field)) {\n if (clientFields.some((each) => fieldAffectsData(each) && each.name === field.name)) {\n continue\n }\n }\n\n clientFields.push(field)\n }\n\n const serverCollectionConfig = payload.collections[collection].config\n\n for (const field of filterFieldsWithPermissions<Field>({\n fieldPermissions,\n fields: serverCollectionConfig.fields,\n })) {\n if (fieldAffectsData(field)) {\n if (serverFields.some((each) => fieldAffectsData(each) && each.name === field.name)) {\n continue\n }\n }\n\n serverFields.push(field)\n }\n }\n }\n\n const sharedArgs: Pick<\n BuildColumnStateArgs,\n | 'clientFields'\n | 'columns'\n | 'customCellProps'\n | 'enableRowSelections'\n | 'fieldPermissions'\n | 'i18n'\n | 'payload'\n | 'req'\n | 'serverFields'\n | 'useAsTitle'\n | 'viewType'\n > = {\n clientFields,\n columns,\n enableRowSelections,\n fieldPermissions,\n i18n,\n // sortColumnProps,\n customCellProps,\n payload,\n req,\n serverFields,\n useAsTitle,\n viewType,\n }\n\n if (isPolymorphic) {\n columnState = buildColumnState({\n ...sharedArgs,\n collectionSlug: undefined,\n dataType: 'polymorphic',\n docs: data?.docs || [],\n })\n } else {\n columnState = buildColumnState({\n ...sharedArgs,\n collectionSlug: clientCollectionConfig.slug,\n dataType: 'monomorphic',\n docs: data?.docs || [],\n })\n }\n\n const columnsToUse = [...columnState]\n\n if (renderRowTypes) {\n columnsToUse.unshift({\n accessor: 'collection',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: i18n.t('version:type'),\n renderedCells: (data?.docs || []).map((doc, i) => (\n <Pill key={i} size=\"small\">\n {getTranslation(\n collections\n ? payload.collections[doc.relationTo].config.labels.singular\n : clientCollectionConfig.labels.singular,\n i18n,\n )}\n </Pill>\n )),\n } as Column)\n }\n\n if (enableRowSelections) {\n columnsToUse.unshift({\n accessor: '_select',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: <SelectAll />,\n renderedCells: (data?.docs || []).map((_, i) => (\n <SelectRow key={i} rowData={data?.docs[i]} />\n )),\n } as Column)\n }\n\n if (isGroupingBy) {\n return {\n columnState,\n // key is required since Next.js 15.2.0 to prevent React key error\n Table: (\n <div\n className={['table-wrap', groupByValue !== undefined && `table-wrap--group-by`]\n .filter(Boolean)\n .join(' ')}\n key={key}\n >\n <SelectionProvider docs={data?.docs || []} totalDocs={data?.totalDocs || 0}>\n <GroupByHeader\n collectionConfig={clientCollectionConfig}\n groupByFieldPath={groupByFieldPath}\n groupByValue={groupByValue}\n heading={heading}\n />\n <Table appearance={tableAppearance} columns={columnsToUse} data={data?.docs || []} />\n <GroupByPageControls\n collectionConfig={clientCollectionConfig}\n data={data}\n groupByValue={groupByValue}\n />\n </SelectionProvider>\n </div>\n ),\n }\n }\n\n if (!orderableFieldName) {\n return {\n columnState,\n // key is required since Next.js 15.2.0 to prevent React key error\n Table: (\n <div className=\"table-wrap\" key={key}>\n <Table appearance={tableAppearance} columns={columnsToUse} data={data?.docs || []} />\n </div>\n ),\n }\n }\n\n columnsToUse.unshift({\n accessor: '_dragHandle',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: <SortHeader />,\n renderedCells: (data?.docs || []).map((_, i) => <SortRow key={i} />),\n } as Column)\n\n return {\n columnState,\n // key is required since Next.js 15.2.0 to prevent React key error\n Table: (\n <div className=\"table-wrap\" key={key}>\n <OrderableTable\n appearance={tableAppearance}\n collection={clientCollectionConfig}\n columns={columnsToUse}\n data={data?.docs || []}\n />\n </div>\n ),\n }\n}\n"],"names":["getTranslation","fieldAffectsData","fieldIsHiddenOrDisabled","React","RenderServerComponent","GroupByHeader","GroupByPageControls","OrderableTable","Pill","SelectAll","SelectionProvider","SelectRow","SortHeader","SortRow","Table","filterFieldsWithPermissions","buildColumnState","renderFilters","fields","importMap","reduce","acc","field","admin","components","Filter","set","name","Component","Map","renderTable","clientCollectionConfig","clientConfig","collectionConfig","collections","columns","customCellProps","data","enableRowSelections","fieldPermissions","groupByFieldPath","groupByValue","heading","i18n","key","orderableFieldName","payload","query","renderRowTypes","req","tableAppearance","useAsTitle","viewType","columnState","clientFields","serverFields","isPolymorphic","isGroupingBy","Boolean","groupBy","collection","find","each","slug","some","push","serverCollectionConfig","config","sharedArgs","collectionSlug","undefined","dataType","docs","columnsToUse","unshift","accessor","active","disabled","hidden","Heading","t","renderedCells","map","doc","i","size","relationTo","labels","singular","_","rowData","div","className","filter","join","totalDocs","appearance"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/renderTable.tsx"],"sourcesContent":["import type {\n ClientCollectionConfig,\n ClientConfig,\n ClientField,\n CollectionConfig,\n Column,\n ColumnPreference,\n Field,\n ImportMap,\n ListQuery,\n PaginatedDocs,\n Payload,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedFieldsPermissions,\n ViewTypes,\n} from 'payload'\n\nimport { getTranslation, type I18nClient } from '@payloadcms/translations'\nimport { fieldAffectsData, fieldIsHiddenOrDisabled } from 'payload/shared'\nimport React from 'react'\n\nimport type { BuildColumnStateArgs } from '../providers/TableColumns/buildColumnState/index.js'\n\nimport { RenderServerComponent } from '../elements/RenderServerComponent/index.js'\nimport {\n GroupByHeader,\n GroupByPageControls,\n OrderableTable,\n Pill,\n SelectAll,\n SelectionProvider,\n SelectRow,\n SortHeader,\n SortRow,\n Table,\n // eslint-disable-next-line payload/no-imports-from-exports-dir -- these MUST reference the exports dir: https://github.com/payloadcms/payload/issues/12002#issuecomment-2791493587\n} from '../exports/client/index.js'\nimport { filterFieldsWithPermissions } from '../providers/TableColumns/buildColumnState/filterFieldsWithPermissions.js'\nimport { buildColumnState } from '../providers/TableColumns/buildColumnState/index.js'\n\nexport const renderFilters = (\n fields: Field[],\n importMap: ImportMap,\n): Map<string, React.ReactNode> =>\n fields.reduce(\n (acc, field) => {\n if (fieldIsHiddenOrDisabled(field)) {\n return acc\n }\n\n if ('name' in field && field.admin?.components?.Filter) {\n acc.set(\n field.name,\n RenderServerComponent({\n Component: field.admin.components?.Filter,\n importMap,\n }),\n )\n }\n\n return acc\n },\n new Map() as Map<string, React.ReactNode>,\n )\n\nexport const renderTable = ({\n clientCollectionConfig,\n clientConfig,\n collectionConfig,\n collections,\n columns,\n customCellProps,\n data,\n enableRowSelections,\n fieldPermissions,\n groupByFieldPath,\n groupByValue,\n heading,\n i18n,\n key = 'table',\n orderableFieldName,\n payload,\n query,\n renderRowTypes,\n req,\n tableAppearance,\n useAsTitle,\n viewType,\n}: {\n clientCollectionConfig?: ClientCollectionConfig\n clientConfig?: ClientConfig\n collectionConfig?: SanitizedCollectionConfig\n collections?: string[]\n columns: ColumnPreference[]\n customCellProps?: Record<string, unknown>\n data?: PaginatedDocs | undefined\n drawerSlug?: string\n enableRowSelections: boolean\n fieldPermissions?: SanitizedFieldsPermissions\n groupByFieldPath?: string\n groupByValue?: string\n heading?: string\n i18n: I18nClient\n key?: string\n orderableFieldName: string\n payload: Payload\n query?: ListQuery\n renderRowTypes?: boolean\n req?: PayloadRequest\n tableAppearance?: 'condensed' | 'default'\n useAsTitle: CollectionConfig['admin']['useAsTitle']\n viewType?: ViewTypes\n}): {\n columnState: Column[]\n Table: React.ReactNode\n} => {\n // Ensure that columns passed as args comply with the field config, i.e. `hidden`, `disableListColumn`, etc.\n\n let columnState: Column[]\n let clientFields: ClientField[] = clientCollectionConfig?.fields || []\n let serverFields: Field[] = collectionConfig?.fields || []\n const isPolymorphic = collections\n\n const isGroupingBy = Boolean(collectionConfig?.admin?.groupBy && query?.groupBy)\n\n if (isPolymorphic) {\n clientFields = []\n serverFields = []\n\n for (const collection of collections) {\n const clientCollectionConfig = clientConfig.collections.find(\n (each) => each.slug === collection,\n )\n\n for (const field of filterFieldsWithPermissions({\n fieldPermissions,\n fields: clientCollectionConfig.fields,\n })) {\n if (fieldAffectsData(field)) {\n if (clientFields.some((each) => fieldAffectsData(each) && each.name === field.name)) {\n continue\n }\n }\n\n clientFields.push(field)\n }\n\n const serverCollectionConfig = payload.collections[collection].config\n\n for (const field of filterFieldsWithPermissions<Field>({\n fieldPermissions,\n fields: serverCollectionConfig.fields,\n })) {\n if (fieldAffectsData(field)) {\n if (serverFields.some((each) => fieldAffectsData(each) && each.name === field.name)) {\n continue\n }\n }\n\n serverFields.push(field)\n }\n }\n }\n\n const sharedArgs: Pick<\n BuildColumnStateArgs,\n | 'clientFields'\n | 'columns'\n | 'customCellProps'\n | 'enableRowSelections'\n | 'fieldPermissions'\n | 'i18n'\n | 'payload'\n | 'req'\n | 'serverFields'\n | 'useAsTitle'\n | 'viewType'\n > = {\n clientFields,\n columns,\n enableRowSelections,\n fieldPermissions,\n i18n,\n // sortColumnProps,\n customCellProps,\n payload,\n req,\n serverFields,\n useAsTitle,\n viewType,\n }\n\n if (isPolymorphic) {\n columnState = buildColumnState({\n ...sharedArgs,\n collectionSlug: undefined,\n dataType: 'polymorphic',\n docs: data?.docs || [],\n })\n } else {\n columnState = buildColumnState({\n ...sharedArgs,\n collectionSlug: clientCollectionConfig.slug,\n dataType: 'monomorphic',\n docs: data?.docs || [],\n })\n }\n\n const columnsToUse = [...columnState]\n\n if (renderRowTypes) {\n columnsToUse.unshift({\n accessor: 'collection',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: i18n.t('version:type'),\n renderedCells: (data?.docs || []).map((doc, i) => (\n <Pill key={i} size=\"small\">\n {getTranslation(\n collections\n ? payload.collections[doc.relationTo].config.labels.singular\n : clientCollectionConfig.labels.singular,\n i18n,\n )}\n </Pill>\n )),\n } as Column)\n }\n\n if (enableRowSelections) {\n columnsToUse.unshift({\n accessor: '_select',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: <SelectAll />,\n renderedCells: (data?.docs || []).map((_, i) => (\n <SelectRow key={i} rowData={data?.docs[i]} />\n )),\n } as Column)\n }\n\n if (isGroupingBy) {\n return {\n columnState,\n // key is required since Next.js 15.2.0 to prevent React key error\n Table: (\n <div\n className={['table-wrap', groupByValue !== undefined && `table-wrap--group-by`]\n .filter(Boolean)\n .join(' ')}\n key={key}\n >\n <SelectionProvider docs={data?.docs || []} totalDocs={data?.totalDocs || 0}>\n <GroupByHeader\n collectionConfig={clientCollectionConfig}\n groupByFieldPath={groupByFieldPath}\n groupByValue={groupByValue}\n heading={heading}\n />\n <Table appearance={tableAppearance} columns={columnsToUse} data={data?.docs || []} />\n <GroupByPageControls\n collectionConfig={clientCollectionConfig}\n data={data}\n groupByValue={groupByValue}\n />\n </SelectionProvider>\n </div>\n ),\n }\n }\n\n if (!orderableFieldName) {\n return {\n columnState,\n // key is required since Next.js 15.2.0 to prevent React key error\n Table: (\n <div className=\"table-wrap\" key={key}>\n <Table appearance={tableAppearance} columns={columnsToUse} data={data?.docs || []} />\n </div>\n ),\n }\n }\n\n columnsToUse.unshift({\n accessor: '_dragHandle',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: <SortHeader />,\n renderedCells: (data?.docs || []).map((_, i) => <SortRow key={i} />),\n } as Column)\n\n return {\n columnState,\n // key is required since Next.js 15.2.0 to prevent React key error\n Table: (\n <div className=\"table-wrap\" key={key}>\n <OrderableTable\n appearance={tableAppearance}\n collection={clientCollectionConfig}\n columns={columnsToUse}\n data={data?.docs || []}\n />\n </div>\n ),\n }\n}\n"],"names":["getTranslation","fieldAffectsData","fieldIsHiddenOrDisabled","React","RenderServerComponent","GroupByHeader","GroupByPageControls","OrderableTable","Pill","SelectAll","SelectionProvider","SelectRow","SortHeader","SortRow","Table","filterFieldsWithPermissions","buildColumnState","renderFilters","fields","importMap","reduce","acc","field","admin","components","Filter","set","name","Component","Map","renderTable","clientCollectionConfig","clientConfig","collectionConfig","collections","columns","customCellProps","data","enableRowSelections","fieldPermissions","groupByFieldPath","groupByValue","heading","i18n","key","orderableFieldName","payload","query","renderRowTypes","req","tableAppearance","useAsTitle","viewType","columnState","clientFields","serverFields","isPolymorphic","isGroupingBy","Boolean","groupBy","collection","find","each","slug","some","push","serverCollectionConfig","config","sharedArgs","collectionSlug","undefined","dataType","docs","columnsToUse","unshift","accessor","active","disabled","hidden","Heading","t","renderedCells","map","doc","i","size","relationTo","labels","singular","_","rowData","div","className","filter","join","totalDocs","appearance"],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { canAccessAdmin } from 'payload';
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* The job id to delete to remove a scheduled publish event
|
|
4
|
+
*/ export const schedulePublishHandler = async ({ type, date, deleteID, doc, global, locale, req, timezone })=>{
|
|
3
5
|
const { i18n, payload, user } = req;
|
|
4
6
|
await canAccessAdmin({
|
|
5
7
|
req
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/schedulePublishHandler.ts"],"sourcesContent":["import { canAccessAdmin, type PayloadRequest, type SchedulePublishTaskInput } from 'payload'\n\nexport type SchedulePublishHandlerArgs = {\n date?: Date\n /**\n * The job id to delete to remove a scheduled publish event\n */\n deleteID?: number | string\n req: PayloadRequest\n timezone?: string\n} & SchedulePublishTaskInput\n\nexport const schedulePublishHandler = async ({\n type,\n date,\n deleteID,\n doc,\n global,\n locale,\n req,\n timezone,\n}: SchedulePublishHandlerArgs) => {\n const { i18n, payload, user } = req\n\n await canAccessAdmin({ req })\n\n try {\n if (deleteID) {\n await payload.delete({\n collection: 'payload-jobs',\n req,\n where: { id: { equals: deleteID } },\n })\n }\n\n await payload.jobs.queue({\n input: {\n type,\n doc,\n global,\n locale,\n timezone,\n user: user.id,\n },\n task: 'schedulePublish',\n waitUntil: date,\n })\n } catch (err) {\n let error\n\n if (deleteID) {\n error = `Error deleting scheduled publish event with ID ${deleteID}`\n } else {\n error = `Error scheduling ${type} for `\n if (doc) {\n error += `document with ID ${doc.value} in collection ${doc.relationTo}`\n }\n }\n\n payload.logger.error(error)\n payload.logger.error(err)\n\n return {\n error,\n }\n }\n\n return { message: i18n.t('general:success') }\n}\n"],"names":["canAccessAdmin","schedulePublishHandler","type","date","deleteID","doc","global","locale","req","timezone","i18n","payload","user","delete","collection","where","id","equals","jobs","queue","input","task","waitUntil","err","error","value","relationTo","logger","message","t"],"mappings":"AAAA,SAASA,cAAc,QAA4D,UAAS;
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/schedulePublishHandler.ts"],"sourcesContent":["import { canAccessAdmin, type PayloadRequest, type SchedulePublishTaskInput } from 'payload'\n\nexport type SchedulePublishHandlerArgs = {\n date?: Date\n /**\n * The job id to delete to remove a scheduled publish event\n */\n deleteID?: number | string\n req: PayloadRequest\n timezone?: string\n} & SchedulePublishTaskInput\n\nexport const schedulePublishHandler = async ({\n type,\n date,\n deleteID,\n doc,\n global,\n locale,\n req,\n timezone,\n}: SchedulePublishHandlerArgs) => {\n const { i18n, payload, user } = req\n\n await canAccessAdmin({ req })\n\n try {\n if (deleteID) {\n await payload.delete({\n collection: 'payload-jobs',\n req,\n where: { id: { equals: deleteID } },\n })\n }\n\n await payload.jobs.queue({\n input: {\n type,\n doc,\n global,\n locale,\n timezone,\n user: user.id,\n },\n task: 'schedulePublish',\n waitUntil: date,\n })\n } catch (err) {\n let error\n\n if (deleteID) {\n error = `Error deleting scheduled publish event with ID ${deleteID}`\n } else {\n error = `Error scheduling ${type} for `\n if (doc) {\n error += `document with ID ${doc.value} in collection ${doc.relationTo}`\n }\n }\n\n payload.logger.error(error)\n payload.logger.error(err)\n\n return {\n error,\n }\n }\n\n return { message: i18n.t('general:success') }\n}\n"],"names":["canAccessAdmin","schedulePublishHandler","type","date","deleteID","doc","global","locale","req","timezone","i18n","payload","user","delete","collection","where","id","equals","jobs","queue","input","task","waitUntil","err","error","value","relationTo","logger","message","t"],"mappings":"AAAA,SAASA,cAAc,QAA4D,UAAS;AAI1F;;GAEC,GAMH,OAAO,MAAMC,yBAAyB,OAAO,EAC3CC,IAAI,EACJC,IAAI,EACJC,QAAQ,EACRC,GAAG,EACHC,MAAM,EACNC,MAAM,EACNC,GAAG,EACHC,QAAQ,EACmB;IAC3B,MAAM,EAAEC,IAAI,EAAEC,OAAO,EAAEC,IAAI,EAAE,GAAGJ;IAEhC,MAAMR,eAAe;QAAEQ;IAAI;IAE3B,IAAI;QACF,IAAIJ,UAAU;YACZ,MAAMO,QAAQE,MAAM,CAAC;gBACnBC,YAAY;gBACZN;gBACAO,OAAO;oBAAEC,IAAI;wBAAEC,QAAQb;oBAAS;gBAAE;YACpC;QACF;QAEA,MAAMO,QAAQO,IAAI,CAACC,KAAK,CAAC;YACvBC,OAAO;gBACLlB;gBACAG;gBACAC;gBACAC;gBACAE;gBACAG,MAAMA,KAAKI,EAAE;YACf;YACAK,MAAM;YACNC,WAAWnB;QACb;IACF,EAAE,OAAOoB,KAAK;QACZ,IAAIC;QAEJ,IAAIpB,UAAU;YACZoB,QAAQ,CAAC,+CAA+C,EAAEpB,UAAU;QACtE,OAAO;YACLoB,QAAQ,CAAC,iBAAiB,EAAEtB,KAAK,KAAK,CAAC;YACvC,IAAIG,KAAK;gBACPmB,SAAS,CAAC,iBAAiB,EAAEnB,IAAIoB,KAAK,CAAC,eAAe,EAAEpB,IAAIqB,UAAU,EAAE;YAC1E;QACF;QAEAf,QAAQgB,MAAM,CAACH,KAAK,CAACA;QACrBb,QAAQgB,MAAM,CAACH,KAAK,CAACD;QAErB,OAAO;YACLC;QACF;IACF;IAEA,OAAO;QAAEI,SAASlB,KAAKmB,CAAC,CAAC;IAAmB;AAC9C,EAAC"}
|
|
@@ -3,6 +3,7 @@ import { cache } from 'react';
|
|
|
3
3
|
import { removeUndefined } from './removeUndefined.js';
|
|
4
4
|
const defaultMerge = (existingValue, incomingValue)=>({
|
|
5
5
|
...typeof existingValue === 'object' ? existingValue : {},
|
|
6
|
+
// Shallow merge existing prefs to acquire any missing keys from incoming value
|
|
6
7
|
...removeUndefined(incomingValue || {})
|
|
7
8
|
});
|
|
8
9
|
export const getPreferences = cache(async (key, payload, userID, userSlug)=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/upsertPreferences.ts"],"sourcesContent":["import type { DefaultDocumentIDType, Payload, PayloadRequest } from 'payload'\n\nimport { dequal } from 'dequal/lite'\nimport { cache } from 'react'\n\nimport { removeUndefined } from './removeUndefined.js'\n\ntype PreferenceDoc<T> = {\n id: DefaultDocumentIDType | undefined\n value?: T | undefined\n}\n\ntype DefaultMerge = <T>(existingValue: T, incomingValue: T | undefined) => T\n\nconst defaultMerge: DefaultMerge = <T>(existingValue: T, incomingValue: T | undefined) =>\n ({\n ...(typeof existingValue === 'object' ? existingValue : {}), // Shallow merge existing prefs to acquire any missing keys from incoming value\n ...removeUndefined(incomingValue || {}),\n }) as T\n\nexport const getPreferences = cache(\n async <T>(\n key: string,\n payload: Payload,\n userID: DefaultDocumentIDType,\n userSlug: string,\n ): Promise<PreferenceDoc<T>> => {\n const result = (await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n pagination: false,\n where: {\n and: [\n {\n key: {\n equals: key,\n },\n },\n {\n 'user.relationTo': {\n equals: userSlug,\n },\n },\n {\n 'user.value': {\n equals: userID,\n },\n },\n ],\n },\n })\n .then((res) => res.docs?.[0])) as { id: DefaultDocumentIDType; value: T }\n\n return result\n },\n)\n\n/**\n * Will update the given preferences by key, creating a new record if it doesn't already exist, or merging existing preferences with the new value.\n * This is not possible to do with the existing `db.upsert` operation because it stores on the `value` key and does not perform a deep merge beyond the first level.\n * I.e. if you have a preferences record with a `value` key, `db.upsert` will overwrite the existing value. In the future if this supported we should use that instead.\n * @param req - The PayloadRequest object\n * @param key - The key of the preferences to update\n * @param value - The new value to merge with the existing preferences\n */\nexport const upsertPreferences = async <T extends Record<string, unknown> | string>({\n customMerge,\n key,\n req,\n value: incomingValue,\n}: {\n customMerge?: (existingValue: T, incomingValue: T, defaultMerge: DefaultMerge) => T\n key: string\n req: PayloadRequest\n value: T\n}): Promise<T> => {\n const existingPrefs: PreferenceDoc<T> = req.user\n ? await getPreferences<T>(key, req.payload, req.user.id, req.user.collection)\n : ({} as PreferenceDoc<T>)\n\n let newPrefs = existingPrefs?.value\n\n if (!existingPrefs?.id) {\n await req.payload.create({\n collection: 'payload-preferences',\n data: {\n key,\n user: {\n collection: req.user.collection,\n value: req.user.id,\n },\n value: incomingValue,\n },\n depth: 0,\n disableTransaction: true,\n user: req.user,\n })\n } else {\n let mergedPrefs: T\n\n if (typeof customMerge === 'function') {\n mergedPrefs = customMerge(existingPrefs.value, incomingValue, defaultMerge)\n } else {\n // Strings are valid JSON, i.e. `locale` saved as a string to the locale preferences\n mergedPrefs =\n typeof incomingValue === 'object'\n ? defaultMerge<T>(existingPrefs.value, incomingValue)\n : incomingValue\n }\n\n if (!dequal(mergedPrefs, existingPrefs.value)) {\n newPrefs = await req.payload\n .update({\n id: existingPrefs.id,\n collection: 'payload-preferences',\n data: {\n key,\n user: {\n collection: req.user.collection,\n value: req.user.id,\n },\n value: mergedPrefs,\n },\n depth: 0,\n disableTransaction: true,\n user: req.user,\n })\n ?.then((res) => res.value)\n }\n }\n\n return newPrefs\n}\n"],"names":["dequal","cache","removeUndefined","defaultMerge","existingValue","incomingValue","getPreferences","key","payload","userID","userSlug","result","find","collection","depth","limit","pagination","where","and","equals","then","res","docs","upsertPreferences","customMerge","req","value","existingPrefs","user","id","newPrefs","create","data","disableTransaction","mergedPrefs","update"],"mappings":"AAEA,SAASA,MAAM,QAAQ,cAAa;AACpC,SAASC,KAAK,QAAQ,QAAO;AAE7B,SAASC,eAAe,QAAQ,uBAAsB;AAStD,MAAMC,eAA6B,CAAIC,eAAkBC,gBACtD,CAAA;QACC,GAAI,OAAOD,kBAAkB,WAAWA,gBAAgB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/upsertPreferences.ts"],"sourcesContent":["import type { DefaultDocumentIDType, Payload, PayloadRequest } from 'payload'\n\nimport { dequal } from 'dequal/lite'\nimport { cache } from 'react'\n\nimport { removeUndefined } from './removeUndefined.js'\n\ntype PreferenceDoc<T> = {\n id: DefaultDocumentIDType | undefined\n value?: T | undefined\n}\n\ntype DefaultMerge = <T>(existingValue: T, incomingValue: T | undefined) => T\n\nconst defaultMerge: DefaultMerge = <T>(existingValue: T, incomingValue: T | undefined) =>\n ({\n ...(typeof existingValue === 'object' ? existingValue : {}), // Shallow merge existing prefs to acquire any missing keys from incoming value\n ...removeUndefined(incomingValue || {}),\n }) as T\n\nexport const getPreferences = cache(\n async <T>(\n key: string,\n payload: Payload,\n userID: DefaultDocumentIDType,\n userSlug: string,\n ): Promise<PreferenceDoc<T>> => {\n const result = (await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n pagination: false,\n where: {\n and: [\n {\n key: {\n equals: key,\n },\n },\n {\n 'user.relationTo': {\n equals: userSlug,\n },\n },\n {\n 'user.value': {\n equals: userID,\n },\n },\n ],\n },\n })\n .then((res) => res.docs?.[0])) as { id: DefaultDocumentIDType; value: T }\n\n return result\n },\n)\n\n/**\n * Will update the given preferences by key, creating a new record if it doesn't already exist, or merging existing preferences with the new value.\n * This is not possible to do with the existing `db.upsert` operation because it stores on the `value` key and does not perform a deep merge beyond the first level.\n * I.e. if you have a preferences record with a `value` key, `db.upsert` will overwrite the existing value. In the future if this supported we should use that instead.\n * @param req - The PayloadRequest object\n * @param key - The key of the preferences to update\n * @param value - The new value to merge with the existing preferences\n */\nexport const upsertPreferences = async <T extends Record<string, unknown> | string>({\n customMerge,\n key,\n req,\n value: incomingValue,\n}: {\n customMerge?: (existingValue: T, incomingValue: T, defaultMerge: DefaultMerge) => T\n key: string\n req: PayloadRequest\n value: T\n}): Promise<T> => {\n const existingPrefs: PreferenceDoc<T> = req.user\n ? await getPreferences<T>(key, req.payload, req.user.id, req.user.collection)\n : ({} as PreferenceDoc<T>)\n\n let newPrefs = existingPrefs?.value\n\n if (!existingPrefs?.id) {\n await req.payload.create({\n collection: 'payload-preferences',\n data: {\n key,\n user: {\n collection: req.user.collection,\n value: req.user.id,\n },\n value: incomingValue,\n },\n depth: 0,\n disableTransaction: true,\n user: req.user,\n })\n } else {\n let mergedPrefs: T\n\n if (typeof customMerge === 'function') {\n mergedPrefs = customMerge(existingPrefs.value, incomingValue, defaultMerge)\n } else {\n // Strings are valid JSON, i.e. `locale` saved as a string to the locale preferences\n mergedPrefs =\n typeof incomingValue === 'object'\n ? defaultMerge<T>(existingPrefs.value, incomingValue)\n : incomingValue\n }\n\n if (!dequal(mergedPrefs, existingPrefs.value)) {\n newPrefs = await req.payload\n .update({\n id: existingPrefs.id,\n collection: 'payload-preferences',\n data: {\n key,\n user: {\n collection: req.user.collection,\n value: req.user.id,\n },\n value: mergedPrefs,\n },\n depth: 0,\n disableTransaction: true,\n user: req.user,\n })\n ?.then((res) => res.value)\n }\n }\n\n return newPrefs\n}\n"],"names":["dequal","cache","removeUndefined","defaultMerge","existingValue","incomingValue","getPreferences","key","payload","userID","userSlug","result","find","collection","depth","limit","pagination","where","and","equals","then","res","docs","upsertPreferences","customMerge","req","value","existingPrefs","user","id","newPrefs","create","data","disableTransaction","mergedPrefs","update"],"mappings":"AAEA,SAASA,MAAM,QAAQ,cAAa;AACpC,SAASC,KAAK,QAAQ,QAAO;AAE7B,SAASC,eAAe,QAAQ,uBAAsB;AAStD,MAAMC,eAA6B,CAAIC,eAAkBC,gBACtD,CAAA;QACC,GAAI,OAAOD,kBAAkB,WAAWA,gBAAgB,CAAC,CAAC;QAAG,+EAA+E;QAC5I,GAAGF,gBAAgBG,iBAAiB,CAAC,EAAE;IACzC,CAAA;AAEF,OAAO,MAAMC,iBAAiBL,MAC5B,OACEM,KACAC,SACAC,QACAC;IAEA,MAAMC,SAAU,MAAMH,QACnBI,IAAI,CAAC;QACJC,YAAY;QACZC,OAAO;QACPC,OAAO;QACPC,YAAY;QACZC,OAAO;YACLC,KAAK;gBACH;oBACEX,KAAK;wBACHY,QAAQZ;oBACV;gBACF;gBACA;oBACE,mBAAmB;wBACjBY,QAAQT;oBACV;gBACF;gBACA;oBACE,cAAc;wBACZS,QAAQV;oBACV;gBACF;aACD;QACH;IACF,GACCW,IAAI,CAAC,CAACC,MAAQA,IAAIC,IAAI,EAAE,CAAC,EAAE;IAE9B,OAAOX;AACT,GACD;AAED;;;;;;;CAOC,GACD,OAAO,MAAMY,oBAAoB,OAAmD,EAClFC,WAAW,EACXjB,GAAG,EACHkB,GAAG,EACHC,OAAOrB,aAAa,EAMrB;IACC,MAAMsB,gBAAkCF,IAAIG,IAAI,GAC5C,MAAMtB,eAAkBC,KAAKkB,IAAIjB,OAAO,EAAEiB,IAAIG,IAAI,CAACC,EAAE,EAAEJ,IAAIG,IAAI,CAACf,UAAU,IACzE,CAAC;IAEN,IAAIiB,WAAWH,eAAeD;IAE9B,IAAI,CAACC,eAAeE,IAAI;QACtB,MAAMJ,IAAIjB,OAAO,CAACuB,MAAM,CAAC;YACvBlB,YAAY;YACZmB,MAAM;gBACJzB;gBACAqB,MAAM;oBACJf,YAAYY,IAAIG,IAAI,CAACf,UAAU;oBAC/Ba,OAAOD,IAAIG,IAAI,CAACC,EAAE;gBACpB;gBACAH,OAAOrB;YACT;YACAS,OAAO;YACPmB,oBAAoB;YACpBL,MAAMH,IAAIG,IAAI;QAChB;IACF,OAAO;QACL,IAAIM;QAEJ,IAAI,OAAOV,gBAAgB,YAAY;YACrCU,cAAcV,YAAYG,cAAcD,KAAK,EAAErB,eAAeF;QAChE,OAAO;YACL,oFAAoF;YACpF+B,cACE,OAAO7B,kBAAkB,WACrBF,aAAgBwB,cAAcD,KAAK,EAAErB,iBACrCA;QACR;QAEA,IAAI,CAACL,OAAOkC,aAAaP,cAAcD,KAAK,GAAG;YAC7CI,WAAW,MAAML,IAAIjB,OAAO,CACzB2B,MAAM,CAAC;gBACNN,IAAIF,cAAcE,EAAE;gBACpBhB,YAAY;gBACZmB,MAAM;oBACJzB;oBACAqB,MAAM;wBACJf,YAAYY,IAAIG,IAAI,CAACf,UAAU;wBAC/Ba,OAAOD,IAAIG,IAAI,CAACC,EAAE;oBACpB;oBACAH,OAAOQ;gBACT;gBACApB,OAAO;gBACPmB,oBAAoB;gBACpBL,MAAMH,IAAIG,IAAI;YAChB,IACER,KAAK,CAACC,MAAQA,IAAIK,KAAK;QAC7B;IACF;IAEA,OAAOI;AACT,EAAC"}
|