@payloadcms/ui 4.0.0-canary.3 → 4.0.0-canary.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/css/colors.css +3 -0
- package/dist/css/utilities.css +3 -2
- package/dist/elements/AppHeader/index.d.ts.map +1 -1
- package/dist/elements/AppHeader/index.js +7 -0
- package/dist/elements/AppHeader/index.js.map +1 -1
- package/dist/elements/ArrayAction/index.js +2 -2
- package/dist/elements/ArrayAction/index.js.map +1 -1
- package/dist/elements/BulkUpload/ActionsBar/index.css +4 -8
- package/dist/elements/BulkUpload/ActionsBar/index.d.ts +1 -5
- package/dist/elements/BulkUpload/ActionsBar/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/ActionsBar/index.js +15 -22
- package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
- package/dist/elements/BulkUpload/AddFilesView/index.css +14 -8
- package/dist/elements/BulkUpload/AddFilesView/index.d.ts +2 -2
- package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/AddFilesView/index.js +41 -36
- package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/AddingFilesView/index.css +158 -6
- package/dist/elements/BulkUpload/AddingFilesView/index.d.ts +5 -1
- package/dist/elements/BulkUpload/AddingFilesView/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/AddingFilesView/index.js +134 -65
- package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js +4 -4
- package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.d.ts +1 -1
- package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js +16 -17
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditForm/types.d.ts +2 -3
- package/dist/elements/BulkUpload/EditForm/types.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditForm/types.js.map +1 -1
- package/dist/elements/BulkUpload/EditMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditMany/DrawerContent.js +78 -64
- package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/BulkUpload/EditMany/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditMany/index.js +28 -10
- package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.css +63 -143
- package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.js +42 -175
- package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/BulkUpload/index.css +48 -0
- package/dist/elements/BulkUpload/index.d.ts +6 -5
- package/dist/elements/BulkUpload/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/index.js +42 -41
- package/dist/elements/BulkUpload/index.js.map +1 -1
- package/dist/elements/Button/index.d.ts.map +1 -1
- package/dist/elements/Button/index.js +5 -0
- package/dist/elements/Button/index.js.map +1 -1
- package/dist/elements/Card/index.css +1 -1
- package/dist/elements/ClipboardAction/index.d.ts.map +1 -1
- package/dist/elements/ClipboardAction/index.js +1 -0
- package/dist/elements/ClipboardAction/index.js.map +1 -1
- package/dist/elements/Collapsible/index.d.ts.map +1 -1
- package/dist/elements/Collapsible/index.js +2 -0
- package/dist/elements/Collapsible/index.js.map +1 -1
- package/dist/elements/ColumnSelection/Popup.d.ts +12 -0
- package/dist/elements/ColumnSelection/Popup.d.ts.map +1 -0
- package/dist/elements/{ColumnSelector/index.js → ColumnSelection/Popup.js} +23 -12
- package/dist/elements/ColumnSelection/Popup.js.map +1 -0
- package/dist/elements/ColumnSelection/index.d.ts +10 -0
- package/dist/elements/ColumnSelection/index.d.ts.map +1 -0
- package/dist/elements/{ColumnsButton → ColumnSelection}/index.js +23 -17
- package/dist/elements/ColumnSelection/index.js.map +1 -0
- package/dist/elements/CopyLocaleData/index.js +1 -1
- package/dist/elements/CopyLocaleData/index.js.map +1 -1
- package/dist/elements/CreateDocumentButton/index.d.ts.map +1 -1
- package/dist/elements/CreateDocumentButton/index.js +0 -1
- package/dist/elements/CreateDocumentButton/index.js.map +1 -1
- package/dist/elements/DatePicker/index.css +8 -8
- package/dist/elements/Dialog/DialogHeader/index.d.ts +4 -0
- package/dist/elements/Dialog/DialogHeader/index.d.ts.map +1 -1
- package/dist/elements/Dialog/DialogHeader/index.js +45 -30
- package/dist/elements/Dialog/DialogHeader/index.js.map +1 -1
- package/dist/elements/Dialog/DialogModal/index.d.ts +5 -0
- package/dist/elements/Dialog/DialogModal/index.d.ts.map +1 -1
- package/dist/elements/Dialog/DialogModal/index.js +58 -31
- package/dist/elements/Dialog/DialogModal/index.js.map +1 -1
- package/dist/elements/Dialog/DialogTitle/index.css +9 -0
- package/dist/elements/Dialog/DialogTitle/index.d.ts +5 -0
- package/dist/elements/Dialog/DialogTitle/index.d.ts.map +1 -0
- package/dist/elements/Dialog/DialogTitle/index.js +10 -0
- package/dist/elements/Dialog/DialogTitle/index.js.map +1 -0
- package/dist/elements/Dialog/index.css +7 -1
- package/dist/elements/DocumentControls/index.css +1 -1
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js +13 -3
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerHeader/index.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerHeader/index.js +5 -3
- package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
- package/dist/elements/DocumentFields/index.css +5 -2
- package/dist/elements/DocumentFields/index.d.ts +5 -0
- package/dist/elements/DocumentFields/index.d.ts.map +1 -1
- package/dist/elements/DocumentFields/index.js +9 -1
- package/dist/elements/DocumentFields/index.js.map +1 -1
- package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.d.ts +12 -0
- package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.d.ts.map +1 -0
- package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.js +28 -0
- package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.js.map +1 -0
- package/dist/elements/DocumentHeader/index.js +2 -3
- package/dist/elements/DocumentHeader/index.js.map +1 -1
- package/dist/elements/DraggableSortable/DragOverlayPreview/index.css +1 -1
- package/dist/elements/DrawerActionHeader/index.css +1 -1
- package/dist/elements/{BulkUpload/Header → DrawerHeader}/index.css +7 -1
- package/dist/elements/DrawerHeader/index.d.ts +10 -0
- package/dist/elements/DrawerHeader/index.d.ts.map +1 -0
- package/dist/elements/{BulkUpload/Header → DrawerHeader}/index.js +16 -11
- package/dist/elements/DrawerHeader/index.js.map +1 -0
- package/dist/elements/Dropzone/index.css +5 -13
- package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +1 -1
- package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
- package/dist/elements/EditUpload/index.css +97 -158
- package/dist/elements/EditUpload/index.d.ts +2 -1
- package/dist/elements/EditUpload/index.d.ts.map +1 -1
- package/dist/elements/EditUpload/index.js +205 -231
- package/dist/elements/EditUpload/index.js.map +1 -1
- package/dist/elements/EditUpload/{library.scss → library.css} +108 -46
- package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts +1 -1
- package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts.map +1 -1
- package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
- package/dist/elements/FileDetails/FileMeta/index.css +27 -0
- package/dist/elements/FileDetails/FileMeta/index.d.ts +1 -1
- package/dist/elements/FileDetails/FileMeta/index.d.ts.map +1 -1
- package/dist/elements/FileDetails/FileMeta/index.js +1 -1
- package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
- package/dist/elements/FileDetails/StaticFileDetails/index.css +140 -0
- package/dist/elements/FileDetails/StaticFileDetails/index.d.ts +2 -2
- package/dist/elements/FileDetails/StaticFileDetails/index.d.ts.map +1 -1
- package/dist/elements/FileDetails/StaticFileDetails/index.js +1 -1
- package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
- package/dist/elements/FileDetails/index.d.ts +1 -1
- package/dist/elements/FileDetails/index.d.ts.map +1 -1
- package/dist/elements/FileDetails/index.js.map +1 -1
- package/dist/elements/FileManager/FilePreview/AudioPreview/index.css +8 -0
- package/dist/elements/FileManager/FilePreview/AudioPreview/index.d.ts +10 -0
- package/dist/elements/FileManager/FilePreview/AudioPreview/index.d.ts.map +1 -0
- package/dist/elements/FileManager/FilePreview/AudioPreview/index.js +24 -0
- package/dist/elements/FileManager/FilePreview/AudioPreview/index.js.map +1 -0
- package/dist/elements/FileManager/FilePreview/PdfPreview/index.css +9 -0
- package/dist/elements/FileManager/FilePreview/PdfPreview/index.d.ts +12 -0
- package/dist/elements/FileManager/FilePreview/PdfPreview/index.d.ts.map +1 -0
- package/dist/elements/FileManager/FilePreview/PdfPreview/index.js +27 -0
- package/dist/elements/FileManager/FilePreview/PdfPreview/index.js.map +1 -0
- package/dist/elements/FileManager/FilePreview/VideoPreview/index.css +8 -0
- package/dist/elements/FileManager/FilePreview/VideoPreview/index.d.ts +10 -0
- package/dist/elements/FileManager/FilePreview/VideoPreview/index.d.ts.map +1 -0
- package/dist/elements/FileManager/FilePreview/VideoPreview/index.js +24 -0
- package/dist/elements/FileManager/FilePreview/VideoPreview/index.js.map +1 -0
- package/dist/elements/FileManager/FilePreview/index.css +83 -0
- package/dist/elements/FileManager/FilePreview/index.d.ts +13 -0
- package/dist/elements/FileManager/FilePreview/index.d.ts.map +1 -0
- package/dist/elements/FileManager/FilePreview/index.js +140 -0
- package/dist/elements/FileManager/FilePreview/index.js.map +1 -0
- package/dist/elements/FileManager/FileToolbar/index.css +91 -0
- package/dist/elements/FileManager/FileToolbar/index.d.ts +14 -0
- package/dist/elements/FileManager/FileToolbar/index.d.ts.map +1 -0
- package/dist/elements/FileManager/FileToolbar/index.js +106 -0
- package/dist/elements/FileManager/FileToolbar/index.js.map +1 -0
- package/dist/elements/FileManager/index.css +154 -0
- package/dist/elements/FileManager/index.d.ts +19 -0
- package/dist/elements/FileManager/index.d.ts.map +1 -0
- package/dist/elements/FileManager/index.js +424 -0
- package/dist/elements/FileManager/index.js.map +1 -0
- package/dist/elements/GroupBy/Popup.d.ts +21 -0
- package/dist/elements/GroupBy/Popup.d.ts.map +1 -0
- package/dist/elements/GroupBy/Popup.js +268 -0
- package/dist/elements/GroupBy/Popup.js.map +1 -0
- package/dist/elements/GroupBy/index.d.ts +12 -0
- package/dist/elements/GroupBy/index.d.ts.map +1 -0
- package/dist/elements/GroupBy/index.js +91 -0
- package/dist/elements/GroupBy/index.js.map +1 -0
- package/dist/elements/Hierarchy/ColumnBrowser/Column/index.css +2 -2
- package/dist/elements/Hierarchy/Drawer/index.css +1 -1
- package/dist/elements/ListColumnSelectionButton/index.d.ts +11 -0
- package/dist/elements/ListColumnSelectionButton/index.d.ts.map +1 -0
- package/dist/elements/ListColumnSelectionButton/index.js +37 -0
- package/dist/elements/ListColumnSelectionButton/index.js.map +1 -0
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +7 -8
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/ListDrawer/Provider.d.ts +1 -1
- package/dist/elements/ListDrawer/Provider.d.ts.map +1 -1
- package/dist/elements/ListDrawer/Provider.js.map +1 -1
- package/dist/elements/ListGroupByButton/index.d.ts +12 -0
- package/dist/elements/ListGroupByButton/index.d.ts.map +1 -0
- package/dist/elements/ListGroupByButton/index.js +55 -0
- package/dist/elements/ListGroupByButton/index.js.map +1 -0
- package/dist/elements/ListHeader/DrawerRelationshipSelect/index.d.ts.map +1 -1
- package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js +2 -0
- package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +4 -4
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
- package/dist/elements/ListWhereBuilder/index.d.ts +16 -0
- package/dist/elements/ListWhereBuilder/index.d.ts.map +1 -0
- package/dist/elements/ListWhereBuilder/index.js +62 -0
- package/dist/elements/ListWhereBuilder/index.js.map +1 -0
- package/dist/elements/LivePreview/Toolbar/Controls/index.js +2 -2
- package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -1
- package/dist/elements/LivePreview/Toolbar/SizeInput/index.css +5 -44
- package/dist/elements/LivePreview/Toolbar/SizeInput/index.d.ts.map +1 -1
- package/dist/elements/LivePreview/Toolbar/SizeInput/index.js +25 -43
- package/dist/elements/LivePreview/Toolbar/SizeInput/index.js.map +1 -1
- package/dist/elements/MiniCarousel/index.css +94 -0
- package/dist/elements/MiniCarousel/index.d.ts +15 -0
- package/dist/elements/MiniCarousel/index.d.ts.map +1 -0
- package/dist/elements/MiniCarousel/index.js +84 -0
- package/dist/elements/MiniCarousel/index.js.map +1 -0
- package/dist/elements/Nav/SettingsMenuButton/index.css +5 -0
- package/dist/elements/Nav/SettingsMenuButton/index.d.ts +1 -1
- package/dist/elements/Nav/SettingsMenuButton/index.d.ts.map +1 -1
- package/dist/elements/Nav/SettingsMenuButton/index.js +1 -1
- package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
- package/dist/elements/Nav/index.css +2 -2
- package/dist/elements/NavGroup/index.css +1 -1
- package/dist/elements/Popup/PopupTrigger/index.d.ts +1 -0
- package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
- package/dist/elements/Popup/PopupTrigger/index.js +3 -0
- package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
- package/dist/elements/Popup/index.d.ts +7 -1
- package/dist/elements/Popup/index.d.ts.map +1 -1
- package/dist/elements/Popup/index.js +45 -12
- package/dist/elements/Popup/index.js.map +1 -1
- package/dist/elements/PreviewSizes/index.css +149 -0
- package/dist/elements/PreviewSizes/index.d.ts +2 -2
- package/dist/elements/PreviewSizes/index.d.ts.map +1 -1
- package/dist/elements/PreviewSizes/index.js +1 -1
- package/dist/elements/PreviewSizes/index.js.map +1 -1
- package/dist/elements/QueryPresets/cells/ColumnsCell/{index.scss → index.css} +1 -3
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.d.ts +1 -1
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.d.ts.map +1 -1
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.js +1 -1
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts +1 -1
- package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts.map +1 -1
- package/dist/elements/QueryPresets/fields/ColumnsField/index.js +77 -48
- package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/GroupByField/index.d.ts +1 -1
- package/dist/elements/QueryPresets/fields/GroupByField/index.d.ts.map +1 -1
- package/dist/elements/QueryPresets/fields/GroupByField/index.js +12 -21
- package/dist/elements/QueryPresets/fields/GroupByField/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/Heading/index.css +52 -0
- package/dist/elements/QueryPresets/fields/Heading/index.d.ts +7 -0
- package/dist/elements/QueryPresets/fields/Heading/index.d.ts.map +1 -0
- package/dist/elements/QueryPresets/fields/Heading/index.js +31 -0
- package/dist/elements/QueryPresets/fields/Heading/index.js.map +1 -0
- package/dist/elements/QueryPresets/fields/WhereField/index.d.ts +1 -1
- package/dist/elements/QueryPresets/fields/WhereField/index.d.ts.map +1 -1
- package/dist/elements/QueryPresets/fields/WhereField/index.js +24 -23
- package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/fields.css +23 -0
- package/dist/elements/ReactSelect/DropdownIndicator/index.css +1 -1
- package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts.map +1 -1
- package/dist/elements/ReactSelect/DropdownIndicator/index.js +19 -12
- package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -1
- package/dist/elements/ReactSelect/types.d.ts +1 -0
- package/dist/elements/ReactSelect/types.d.ts.map +1 -1
- package/dist/elements/ReactSelect/types.js.map +1 -1
- package/dist/elements/RelationshipTable/AddNewButton.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/AddNewButton.js +1 -2
- package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
- package/dist/elements/RelationshipTable/index.js +2 -2
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/Search/SearchInput/index.js +1 -1
- package/dist/elements/Search/SearchInput/index.js.map +1 -1
- package/dist/elements/SortColumn/index.css +1 -1
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js +21 -2
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js.map +1 -1
- package/dist/elements/Table/index.css +24 -2
- package/dist/elements/Thumbnail/index.css +41 -0
- package/dist/elements/Thumbnail/index.d.ts +3 -3
- package/dist/elements/Thumbnail/index.d.ts.map +1 -1
- package/dist/elements/Thumbnail/index.js +1 -1
- package/dist/elements/Thumbnail/index.js.map +1 -1
- package/dist/elements/Upload/UploadFromURLModal/index.d.ts +11 -0
- package/dist/elements/Upload/UploadFromURLModal/index.d.ts.map +1 -0
- package/dist/elements/Upload/UploadFromURLModal/index.js +88 -0
- package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -0
- package/dist/elements/Upload/index.css +134 -45
- package/dist/elements/Upload/index.d.ts +3 -8
- package/dist/elements/Upload/index.d.ts.map +1 -1
- package/dist/elements/Upload/index.js +71 -92
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.d.ts +1 -0
- package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js +17 -2
- package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
- package/dist/elements/WhereBuilder/index.d.ts +4 -3
- package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/index.js +71 -62
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/elements/WhereBuilder/types.d.ts +6 -5
- package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/types.js.map +1 -1
- package/dist/exports/client/index.d.ts +6 -2
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +26 -26
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/rsc/index.d.ts +1 -0
- package/dist/exports/rsc/index.d.ts.map +1 -1
- package/dist/exports/rsc/index.js +1 -0
- package/dist/exports/rsc/index.js.map +1 -1
- package/dist/exports/shared/index.js +2 -2
- package/dist/exports/shared/index.js.map +2 -2
- package/dist/fields/Blocks/BlockSelector/BlockSearch/index.css +1 -1
- package/dist/fields/Blocks/BlockSelector/index.css +2 -5
- package/dist/fields/Blocks/SectionTitle/index.d.ts.map +1 -1
- package/dist/fields/Blocks/SectionTitle/index.js +1 -0
- package/dist/fields/Blocks/SectionTitle/index.js.map +1 -1
- package/dist/fields/Checkbox/index.css +2 -2
- package/dist/fields/Group/index.css +3 -3
- package/dist/fields/Number/Input.d.ts.map +1 -1
- package/dist/fields/Number/Input.js +47 -35
- package/dist/fields/Number/Input.js.map +1 -1
- package/dist/fields/Number/index.css +19 -0
- package/dist/fields/Number/types.d.ts +6 -0
- package/dist/fields/Number/types.d.ts.map +1 -1
- package/dist/fields/Number/types.js.map +1 -1
- package/dist/fields/Relationship/Input.d.ts.map +1 -1
- package/dist/fields/Relationship/Input.js +2 -0
- package/dist/fields/Relationship/Input.js.map +1 -1
- package/dist/fields/Relationship/select-components/MultiValueLabel/index.css +1 -1
- package/dist/fields/Select/Input.d.ts.map +1 -1
- package/dist/fields/Select/Input.js +1 -0
- package/dist/fields/Select/Input.js.map +1 -1
- package/dist/fields/Text/Input.d.ts.map +1 -1
- package/dist/fields/Text/Input.js +31 -28
- package/dist/fields/Text/Input.js.map +1 -1
- package/dist/fields/Text/types.d.ts +5 -0
- package/dist/fields/Text/types.d.ts.map +1 -1
- package/dist/fields/Text/types.js.map +1 -1
- package/dist/fields/Upload/Input.d.ts.map +1 -1
- package/dist/fields/Upload/Input.js +12 -11
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/fields/Upload/index.js +1 -1
- package/dist/fields/Upload/index.js.map +1 -1
- package/dist/graphics/Icon/index.js +1 -1
- package/dist/graphics/Icon/index.js.map +1 -1
- package/dist/hooks/useElementHeightVariable.d.ts +15 -0
- package/dist/hooks/useElementHeightVariable.d.ts.map +1 -0
- package/dist/hooks/useElementHeightVariable.js +53 -0
- package/dist/hooks/useElementHeightVariable.js.map +1 -0
- package/dist/icons/Crop/index.css +5 -0
- package/dist/icons/Crop/index.d.ts +7 -0
- package/dist/icons/Crop/index.d.ts.map +1 -0
- package/dist/icons/Crop/index.js +24 -0
- package/dist/icons/Crop/index.js.map +1 -0
- package/dist/icons/Download/index.css +5 -0
- package/dist/icons/{ExternalLink → Download}/index.d.ts +1 -1
- package/dist/icons/Download/index.d.ts.map +1 -0
- package/dist/icons/Download/index.js +27 -0
- package/dist/icons/Download/index.js.map +1 -0
- package/dist/icons/{ExternalLink → NewTab}/index.css +1 -1
- package/dist/icons/NewTab/index.d.ts +7 -0
- package/dist/icons/NewTab/index.d.ts.map +1 -0
- package/dist/icons/NewTab/index.js +25 -0
- package/dist/icons/NewTab/index.js.map +1 -0
- package/dist/icons/Replace/index.css +5 -0
- package/dist/icons/Replace/index.d.ts +6 -0
- package/dist/icons/Replace/index.d.ts.map +1 -0
- package/dist/icons/Replace/index.js +20 -0
- package/dist/icons/Replace/index.js.map +1 -0
- package/dist/icons/Reset/index.css +5 -0
- package/dist/icons/Reset/index.d.ts +7 -0
- package/dist/icons/Reset/index.d.ts.map +1 -0
- package/dist/icons/Reset/index.js +25 -0
- package/dist/icons/Reset/index.js.map +1 -0
- package/dist/icons/Swap/index.js +1 -1
- package/dist/icons/Swap/index.js.map +1 -1
- package/dist/scss/app.scss +9 -2
- package/dist/styles.css +1 -1
- package/dist/templates/Default/index.js +1 -1
- package/dist/templates/Default/index.js.map +1 -1
- package/dist/utilities/reduceFieldsToOptions.js +1 -1
- package/dist/utilities/reduceFieldsToOptions.js.map +1 -1
- package/dist/views/API/index.client.js +2 -2
- package/dist/views/API/index.client.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.js +27 -23
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.css +2 -0
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js +2 -2
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +2 -2
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
- package/dist/views/Document/index.d.ts.map +1 -1
- package/dist/views/Document/index.js +1 -0
- package/dist/views/Document/index.js.map +1 -1
- package/dist/views/Document/renderDocumentSlots.d.ts +1 -0
- package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
- package/dist/views/Document/renderDocumentSlots.js +47 -1
- package/dist/views/Document/renderDocumentSlots.js.map +1 -1
- package/dist/views/Edit/index.css +143 -6
- package/dist/views/Edit/index.d.ts +1 -1
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +34 -31
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.css +2 -2
- package/dist/views/List/ListHeader/index.css +5 -0
- package/dist/views/List/index.client.d.ts.map +1 -1
- package/dist/views/List/index.client.js +6 -6
- package/dist/views/List/index.client.js.map +1 -1
- package/dist/views/Version/SelectComparison/index.d.ts.map +1 -1
- package/dist/views/Version/SelectComparison/index.js +1 -0
- package/dist/views/Version/SelectComparison/index.js.map +1 -1
- package/dist/views/Versions/index.css +0 -4
- package/dist/widgets/CollectionQuery/SortField/index.d.ts +3 -0
- package/dist/widgets/CollectionQuery/SortField/index.d.ts.map +1 -0
- package/dist/widgets/CollectionQuery/SortField/index.js +118 -0
- package/dist/widgets/CollectionQuery/SortField/index.js.map +1 -0
- package/dist/widgets/CollectionQuery/getCollectionFieldPaths.d.ts +18 -0
- package/dist/widgets/CollectionQuery/getCollectionFieldPaths.d.ts.map +1 -0
- package/dist/widgets/CollectionQuery/getCollectionFieldPaths.js +91 -0
- package/dist/widgets/CollectionQuery/getCollectionFieldPaths.js.map +1 -0
- package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js +100 -0
- package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js.map +1 -0
- package/dist/widgets/CollectionQuery/index.css +206 -0
- package/dist/widgets/CollectionQuery/index.d.ts +17 -0
- package/dist/widgets/CollectionQuery/index.d.ts.map +1 -0
- package/dist/widgets/CollectionQuery/index.js +399 -0
- package/dist/widgets/CollectionQuery/index.js.map +1 -0
- package/package.json +5 -5
- package/dist/elements/BulkUpload/Header/index.d.ts +0 -9
- package/dist/elements/BulkUpload/Header/index.d.ts.map +0 -1
- package/dist/elements/BulkUpload/Header/index.js.map +0 -1
- package/dist/elements/ColumnSelector/index.d.ts +0 -9
- package/dist/elements/ColumnSelector/index.d.ts.map +0 -1
- package/dist/elements/ColumnSelector/index.js.map +0 -1
- package/dist/elements/ColumnsButton/index.d.ts +0 -7
- package/dist/elements/ColumnsButton/index.d.ts.map +0 -1
- package/dist/elements/ColumnsButton/index.js.map +0 -1
- package/dist/elements/FileDetails/FileMeta/index.scss +0 -31
- package/dist/elements/FileDetails/StaticFileDetails/index.scss +0 -134
- package/dist/elements/GroupByBuilder/index.d.ts +0 -12
- package/dist/elements/GroupByBuilder/index.d.ts.map +0 -1
- package/dist/elements/GroupByBuilder/index.js +0 -164
- package/dist/elements/GroupByBuilder/index.js.map +0 -1
- package/dist/elements/GroupByBuilder/index.scss +0 -39
- package/dist/elements/GroupByControl/index.d.ts +0 -9
- package/dist/elements/GroupByControl/index.d.ts.map +0 -1
- package/dist/elements/GroupByControl/index.js +0 -254
- package/dist/elements/GroupByControl/index.js.map +0 -1
- package/dist/elements/Nav/SettingsMenuButton/index.scss +0 -11
- package/dist/elements/PreviewSizes/index.scss +0 -147
- package/dist/elements/QueryPresets/fields/ColumnsField/index.scss +0 -17
- package/dist/elements/QueryPresets/fields/GroupByField/index.scss +0 -17
- package/dist/elements/QueryPresets/fields/WhereField/index.scss +0 -23
- package/dist/elements/Thumbnail/index.scss +0 -53
- package/dist/icons/ExternalLink/index.d.ts.map +0 -1
- package/dist/icons/ExternalLink/index.js +0 -26
- package/dist/icons/ExternalLink/index.js.map +0 -1
- /package/dist/elements/{ColumnSelector/index.css → ColumnSelection/Popup.css} +0 -0
- /package/dist/elements/{GroupByControl/index.css → GroupBy/Popup.css} +0 -0
|
@@ -0,0 +1,399 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { getTranslation } from '@payloadcms/translations';
|
|
3
|
+
import { formatAdminURL } from 'payload/shared';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import '../../elements/Card/index.css';
|
|
6
|
+
import './index.css';
|
|
7
|
+
import { getCollectionFieldPaths } from './getCollectionFieldPaths.js';
|
|
8
|
+
const minLimit = 1;
|
|
9
|
+
const maxLimit = 25;
|
|
10
|
+
const emptyFieldPaths = {
|
|
11
|
+
filterableFieldPaths: new Set(),
|
|
12
|
+
relationshipFieldPaths: new Set(),
|
|
13
|
+
sortableFieldPaths: new Set()
|
|
14
|
+
};
|
|
15
|
+
export async function CollectionQueryWidget({
|
|
16
|
+
req,
|
|
17
|
+
widgetData
|
|
18
|
+
}) {
|
|
19
|
+
const {
|
|
20
|
+
i18n,
|
|
21
|
+
payload,
|
|
22
|
+
user
|
|
23
|
+
} = req;
|
|
24
|
+
const {
|
|
25
|
+
relatedCollection,
|
|
26
|
+
sortDirection = 'desc',
|
|
27
|
+
sortField,
|
|
28
|
+
title: titleFromData,
|
|
29
|
+
where
|
|
30
|
+
} = widgetData ?? {};
|
|
31
|
+
const limit = clampLimit(widgetData?.limit);
|
|
32
|
+
const collectionConfig = relatedCollection ? payload.collections[relatedCollection]?.config : undefined;
|
|
33
|
+
const title = titleFromData || (collectionConfig ? getTranslation(collectionConfig.labels.plural, i18n) : i18n.t('dashboard:widgetTitleFallback'));
|
|
34
|
+
const fieldPaths = collectionConfig ? getCollectionFieldPaths(collectionConfig.fields) : emptyFieldPaths;
|
|
35
|
+
const validationErrors = getValidationErrors({
|
|
36
|
+
collectionConfig,
|
|
37
|
+
fieldPaths,
|
|
38
|
+
i18n,
|
|
39
|
+
relatedCollection,
|
|
40
|
+
sortField,
|
|
41
|
+
where
|
|
42
|
+
});
|
|
43
|
+
if (validationErrors.length > 0 || !relatedCollection || !collectionConfig) {
|
|
44
|
+
return /*#__PURE__*/_jsx(CollectionQueryError, {
|
|
45
|
+
errors: validationErrors,
|
|
46
|
+
i18n: i18n,
|
|
47
|
+
title: title
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
const sort = sortField ? `${sortDirection === 'desc' ? '-' : ''}${sortField}` : undefined;
|
|
51
|
+
const adminRoute = payload.config.routes.admin;
|
|
52
|
+
let docs;
|
|
53
|
+
try {
|
|
54
|
+
const result = await payload.find({
|
|
55
|
+
collection: relatedCollection,
|
|
56
|
+
depth: 0,
|
|
57
|
+
limit,
|
|
58
|
+
overrideAccess: false,
|
|
59
|
+
sort,
|
|
60
|
+
user,
|
|
61
|
+
where
|
|
62
|
+
});
|
|
63
|
+
docs = result.docs;
|
|
64
|
+
} catch (err) {
|
|
65
|
+
payload.logger.error({
|
|
66
|
+
err,
|
|
67
|
+
msg: `CollectionQueryWidget: failed to query collection "${relatedCollection}"`
|
|
68
|
+
});
|
|
69
|
+
return /*#__PURE__*/_jsx(CollectionQueryError, {
|
|
70
|
+
errors: [i18n.t('dashboard:widgetQueryError')],
|
|
71
|
+
i18n: i18n,
|
|
72
|
+
title: title
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
const documentLabelPath = getCollectionDocumentLabelPath(collectionConfig.admin);
|
|
76
|
+
const relativeTimeFormat = getRelativeTimeFormat(i18n.language);
|
|
77
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
78
|
+
className: "card collection-query-widget",
|
|
79
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
80
|
+
className: "collection-query-widget__header",
|
|
81
|
+
children: /*#__PURE__*/_jsx("h3", {
|
|
82
|
+
className: "collection-query-widget__title",
|
|
83
|
+
children: title
|
|
84
|
+
})
|
|
85
|
+
}), docs.length > 0 ? /*#__PURE__*/_jsx("ul", {
|
|
86
|
+
className: "collection-query-widget__rows",
|
|
87
|
+
children: docs.map(doc => {
|
|
88
|
+
const sortMeta = getDocSortMeta({
|
|
89
|
+
doc,
|
|
90
|
+
i18n,
|
|
91
|
+
relativeTimeFormat,
|
|
92
|
+
sortField
|
|
93
|
+
});
|
|
94
|
+
return /*#__PURE__*/_jsx("li", {
|
|
95
|
+
className: "collection-query-widget__row",
|
|
96
|
+
children: /*#__PURE__*/_jsxs("a", {
|
|
97
|
+
className: "collection-query-widget__row-link",
|
|
98
|
+
href: getDocumentHref({
|
|
99
|
+
id: doc.id,
|
|
100
|
+
adminRoute,
|
|
101
|
+
collectionSlug: relatedCollection
|
|
102
|
+
}),
|
|
103
|
+
children: [/*#__PURE__*/_jsx("span", {
|
|
104
|
+
className: "collection-query-widget__row-main",
|
|
105
|
+
children: /*#__PURE__*/_jsx("span", {
|
|
106
|
+
className: "collection-query-widget__row-title",
|
|
107
|
+
children: getDocLabel({
|
|
108
|
+
doc,
|
|
109
|
+
documentLabelPath
|
|
110
|
+
})
|
|
111
|
+
})
|
|
112
|
+
}), /*#__PURE__*/_jsx("span", {
|
|
113
|
+
className: "collection-query-widget__row-meta",
|
|
114
|
+
children: sortMeta ? sortMeta.dateTime ? /*#__PURE__*/_jsx("time", {
|
|
115
|
+
dateTime: sortMeta.dateTime,
|
|
116
|
+
children: sortMeta.label
|
|
117
|
+
}) : sortMeta.label : null
|
|
118
|
+
})]
|
|
119
|
+
})
|
|
120
|
+
}, doc.id);
|
|
121
|
+
})
|
|
122
|
+
}) : /*#__PURE__*/_jsx("p", {
|
|
123
|
+
className: "collection-query-widget__empty",
|
|
124
|
+
children: i18n.t('general:noResultsFound')
|
|
125
|
+
})]
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
function CollectionQueryError({
|
|
129
|
+
errors,
|
|
130
|
+
i18n,
|
|
131
|
+
title
|
|
132
|
+
}) {
|
|
133
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
134
|
+
className: "card collection-query-widget collection-query-widget--error",
|
|
135
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
136
|
+
className: "collection-query-widget__header",
|
|
137
|
+
children: /*#__PURE__*/_jsx("h3", {
|
|
138
|
+
className: "collection-query-widget__title",
|
|
139
|
+
children: title
|
|
140
|
+
})
|
|
141
|
+
}), /*#__PURE__*/_jsxs("div", {
|
|
142
|
+
className: "collection-query-widget__error",
|
|
143
|
+
children: [/*#__PURE__*/_jsx("p", {
|
|
144
|
+
className: "collection-query-widget__error-title",
|
|
145
|
+
children: i18n.t('dashboard:widgetConfigurationError')
|
|
146
|
+
}), /*#__PURE__*/_jsx("ul", {
|
|
147
|
+
className: "collection-query-widget__error-list",
|
|
148
|
+
children: errors.map(error => /*#__PURE__*/_jsx("li", {
|
|
149
|
+
children: error
|
|
150
|
+
}, error))
|
|
151
|
+
})]
|
|
152
|
+
})]
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
function clampLimit(limit) {
|
|
156
|
+
if (typeof limit !== 'number' || Number.isNaN(limit)) {
|
|
157
|
+
return 5;
|
|
158
|
+
}
|
|
159
|
+
return Math.min(Math.max(Math.floor(limit), minLimit), maxLimit);
|
|
160
|
+
}
|
|
161
|
+
function getCollectionDocumentLabelPath(adminConfig) {
|
|
162
|
+
return adminConfig.useAsTitle || 'id';
|
|
163
|
+
}
|
|
164
|
+
function getDocSortMeta({
|
|
165
|
+
doc,
|
|
166
|
+
i18n,
|
|
167
|
+
relativeTimeFormat,
|
|
168
|
+
sortField
|
|
169
|
+
}) {
|
|
170
|
+
const value = sortField ? getValueByPath({
|
|
171
|
+
object: doc,
|
|
172
|
+
path: sortField
|
|
173
|
+
}) : doc.updatedAt || doc.createdAt;
|
|
174
|
+
if (value === null || typeof value === 'undefined' || value === '') {
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
177
|
+
if (value instanceof Date) {
|
|
178
|
+
const dateTime = value.toISOString();
|
|
179
|
+
return {
|
|
180
|
+
dateTime,
|
|
181
|
+
label: formatRelativeDate({
|
|
182
|
+
relativeTimeFormat,
|
|
183
|
+
value: dateTime
|
|
184
|
+
})
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
if (typeof value === 'string') {
|
|
188
|
+
if (isDateString(value)) {
|
|
189
|
+
return {
|
|
190
|
+
dateTime: value,
|
|
191
|
+
label: formatRelativeDate({
|
|
192
|
+
relativeTimeFormat,
|
|
193
|
+
value
|
|
194
|
+
})
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
return {
|
|
198
|
+
label: value
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
if (typeof value === 'number') {
|
|
202
|
+
return {
|
|
203
|
+
label: value.toLocaleString(i18n.language)
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
if (typeof value === 'boolean') {
|
|
207
|
+
return {
|
|
208
|
+
label: value ? i18n.t('general:true') : i18n.t('general:false')
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
return null;
|
|
212
|
+
}
|
|
213
|
+
function getDocLabel({
|
|
214
|
+
doc,
|
|
215
|
+
documentLabelPath
|
|
216
|
+
}) {
|
|
217
|
+
const title = getValueByPath({
|
|
218
|
+
object: doc,
|
|
219
|
+
path: documentLabelPath
|
|
220
|
+
});
|
|
221
|
+
return typeof title === 'string' && title ? title : String(doc.id);
|
|
222
|
+
}
|
|
223
|
+
function getValidationErrors({
|
|
224
|
+
collectionConfig,
|
|
225
|
+
fieldPaths,
|
|
226
|
+
i18n,
|
|
227
|
+
relatedCollection,
|
|
228
|
+
sortField,
|
|
229
|
+
where
|
|
230
|
+
}) {
|
|
231
|
+
const errors = [];
|
|
232
|
+
if (!relatedCollection) {
|
|
233
|
+
errors.push(i18n.t('dashboard:widgetCollectionRequired'));
|
|
234
|
+
return errors;
|
|
235
|
+
}
|
|
236
|
+
if (!collectionConfig) {
|
|
237
|
+
errors.push(i18n.t('dashboard:widgetInvalidCollection', {
|
|
238
|
+
collection: relatedCollection
|
|
239
|
+
}));
|
|
240
|
+
return errors;
|
|
241
|
+
}
|
|
242
|
+
if (sortField) {
|
|
243
|
+
if (!fieldPaths.filterableFieldPaths.has(sortField)) {
|
|
244
|
+
errors.push(i18n.t('dashboard:widgetInvalidSortField', {
|
|
245
|
+
collection: relatedCollection,
|
|
246
|
+
field: sortField
|
|
247
|
+
}));
|
|
248
|
+
} else if (!fieldPaths.sortableFieldPaths.has(sortField)) {
|
|
249
|
+
errors.push(i18n.t('dashboard:widgetNonSortableSortField', {
|
|
250
|
+
collection: relatedCollection,
|
|
251
|
+
field: sortField
|
|
252
|
+
}));
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
for (const fieldPath of getWhereFieldPaths(where)) {
|
|
256
|
+
if (fieldPaths.filterableFieldPaths.has(fieldPath) || hasRelationshipAncestor({
|
|
257
|
+
path: fieldPath,
|
|
258
|
+
relationshipFieldPaths: fieldPaths.relationshipFieldPaths
|
|
259
|
+
})) {
|
|
260
|
+
continue;
|
|
261
|
+
}
|
|
262
|
+
errors.push(i18n.t('dashboard:widgetInvalidFilterField', {
|
|
263
|
+
collection: relatedCollection,
|
|
264
|
+
field: fieldPath
|
|
265
|
+
}));
|
|
266
|
+
}
|
|
267
|
+
return errors;
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* A `where` path that traverses into a relationship (e.g. `category.name`) cannot be validated
|
|
271
|
+
* against this collection's fields because it targets another collection, so accept it when any
|
|
272
|
+
* ancestor segment is a relationship.
|
|
273
|
+
*/
|
|
274
|
+
function hasRelationshipAncestor({
|
|
275
|
+
path,
|
|
276
|
+
relationshipFieldPaths
|
|
277
|
+
}) {
|
|
278
|
+
const segments = path.split('.');
|
|
279
|
+
let prefix = '';
|
|
280
|
+
for (const segment of segments) {
|
|
281
|
+
prefix = prefix ? `${prefix}.${segment}` : segment;
|
|
282
|
+
if (relationshipFieldPaths.has(prefix)) {
|
|
283
|
+
return true;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
return false;
|
|
287
|
+
}
|
|
288
|
+
function getWhereFieldPaths(where) {
|
|
289
|
+
const fieldPaths = new Set();
|
|
290
|
+
collectWhereFieldPaths({
|
|
291
|
+
fieldPaths,
|
|
292
|
+
value: where
|
|
293
|
+
});
|
|
294
|
+
return fieldPaths;
|
|
295
|
+
}
|
|
296
|
+
function collectWhereFieldPaths({
|
|
297
|
+
fieldPaths,
|
|
298
|
+
value
|
|
299
|
+
}) {
|
|
300
|
+
if (!value || typeof value !== 'object') {
|
|
301
|
+
return;
|
|
302
|
+
}
|
|
303
|
+
if (Array.isArray(value)) {
|
|
304
|
+
for (const item of value) {
|
|
305
|
+
collectWhereFieldPaths({
|
|
306
|
+
fieldPaths,
|
|
307
|
+
value: item
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
for (const [key, childValue] of Object.entries(value)) {
|
|
313
|
+
if (key === 'and' || key === 'or') {
|
|
314
|
+
collectWhereFieldPaths({
|
|
315
|
+
fieldPaths,
|
|
316
|
+
value: childValue
|
|
317
|
+
});
|
|
318
|
+
continue;
|
|
319
|
+
}
|
|
320
|
+
fieldPaths.add(key);
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
function getDocumentHref({
|
|
324
|
+
id,
|
|
325
|
+
adminRoute,
|
|
326
|
+
collectionSlug
|
|
327
|
+
}) {
|
|
328
|
+
return formatAdminURL({
|
|
329
|
+
adminRoute,
|
|
330
|
+
path: `/collections/${collectionSlug}/${id}`
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
function getValueByPath({
|
|
334
|
+
object,
|
|
335
|
+
path
|
|
336
|
+
}) {
|
|
337
|
+
return path.split('.').reduce((value, segment) => {
|
|
338
|
+
if (!value || typeof value !== 'object') {
|
|
339
|
+
return undefined;
|
|
340
|
+
}
|
|
341
|
+
return value[segment];
|
|
342
|
+
}, object);
|
|
343
|
+
}
|
|
344
|
+
function getRelativeTimeFormat(language) {
|
|
345
|
+
try {
|
|
346
|
+
return new Intl.RelativeTimeFormat(language, {
|
|
347
|
+
numeric: 'auto',
|
|
348
|
+
style: 'narrow'
|
|
349
|
+
});
|
|
350
|
+
} catch {
|
|
351
|
+
return new Intl.RelativeTimeFormat('en', {
|
|
352
|
+
numeric: 'auto',
|
|
353
|
+
style: 'narrow'
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
const relativeTimeDivisions = [{
|
|
358
|
+
amount: 60,
|
|
359
|
+
unit: 'seconds'
|
|
360
|
+
}, {
|
|
361
|
+
amount: 60,
|
|
362
|
+
unit: 'minutes'
|
|
363
|
+
}, {
|
|
364
|
+
amount: 24,
|
|
365
|
+
unit: 'hours'
|
|
366
|
+
}, {
|
|
367
|
+
amount: 7,
|
|
368
|
+
unit: 'days'
|
|
369
|
+
}, {
|
|
370
|
+
amount: 4.34524,
|
|
371
|
+
unit: 'weeks'
|
|
372
|
+
}, {
|
|
373
|
+
amount: 12,
|
|
374
|
+
unit: 'months'
|
|
375
|
+
}, {
|
|
376
|
+
amount: Number.POSITIVE_INFINITY,
|
|
377
|
+
unit: 'years'
|
|
378
|
+
}];
|
|
379
|
+
function formatRelativeDate({
|
|
380
|
+
relativeTimeFormat,
|
|
381
|
+
value
|
|
382
|
+
}) {
|
|
383
|
+
const date = new Date(value);
|
|
384
|
+
if (Number.isNaN(date.getTime())) {
|
|
385
|
+
return value;
|
|
386
|
+
}
|
|
387
|
+
let duration = (date.getTime() - Date.now()) / 1000;
|
|
388
|
+
for (const division of relativeTimeDivisions) {
|
|
389
|
+
if (Math.abs(duration) < division.amount) {
|
|
390
|
+
return relativeTimeFormat.format(Math.round(duration), division.unit);
|
|
391
|
+
}
|
|
392
|
+
duration /= division.amount;
|
|
393
|
+
}
|
|
394
|
+
return relativeTimeFormat.format(Math.round(duration), 'years');
|
|
395
|
+
}
|
|
396
|
+
function isDateString(value) {
|
|
397
|
+
return /^\d{4}-\d{2}-\d{2}/.test(value) && !Number.isNaN(new Date(value).getTime());
|
|
398
|
+
}
|
|
399
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["getTranslation","formatAdminURL","React","getCollectionFieldPaths","minLimit","maxLimit","emptyFieldPaths","filterableFieldPaths","Set","relationshipFieldPaths","sortableFieldPaths","CollectionQueryWidget","req","widgetData","i18n","payload","user","relatedCollection","sortDirection","sortField","title","titleFromData","where","limit","clampLimit","collectionConfig","collections","config","undefined","labels","plural","t","fieldPaths","fields","validationErrors","getValidationErrors","length","_jsx","CollectionQueryError","errors","sort","adminRoute","routes","admin","docs","result","find","collection","depth","overrideAccess","err","logger","error","msg","documentLabelPath","getCollectionDocumentLabelPath","relativeTimeFormat","getRelativeTimeFormat","language","_jsxs","className","map","doc","sortMeta","getDocSortMeta","href","getDocumentHref","id","collectionSlug","getDocLabel","dateTime","label","Number","isNaN","Math","min","max","floor","adminConfig","useAsTitle","value","getValueByPath","object","path","updatedAt","createdAt","Date","toISOString","formatRelativeDate","isDateString","toLocaleString","String","push","has","field","fieldPath","getWhereFieldPaths","hasRelationshipAncestor","segments","split","prefix","segment","collectWhereFieldPaths","Array","isArray","item","key","childValue","Object","entries","add","reduce","Intl","RelativeTimeFormat","numeric","style","relativeTimeDivisions","amount","unit","POSITIVE_INFINITY","date","getTime","duration","now","division","abs","format","round","test"],"sources":["../../../src/widgets/CollectionQuery/index.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { CollectionSlug, Where, WidgetServerProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL } from 'payload/shared'\nimport React from 'react'\n\nimport type { CollectionFieldPaths } from './getCollectionFieldPaths.js'\n\nimport '../../elements/Card/index.css'\nimport './index.css'\nimport { getCollectionFieldPaths } from './getCollectionFieldPaths.js'\n\ntype CollectionQueryWidgetData = {\n limit?: number\n relatedCollection?: CollectionSlug\n sortDirection?: 'asc' | 'desc'\n sortField?: string\n title?: string\n where?: Where\n}\n\ntype QueryDoc = {\n createdAt?: string\n id: number | string\n updatedAt?: string\n} & Record<string, unknown>\n\nconst minLimit = 1\nconst maxLimit = 25\n\nconst emptyFieldPaths: CollectionFieldPaths = {\n filterableFieldPaths: new Set<string>(),\n relationshipFieldPaths: new Set<string>(),\n sortableFieldPaths: new Set<string>(),\n}\n\nexport async function CollectionQueryWidget({\n req,\n widgetData,\n}: WidgetServerProps<{ data?: CollectionQueryWidgetData }>) {\n const { i18n, payload, user } = req\n const {\n relatedCollection,\n sortDirection = 'desc',\n sortField,\n title: titleFromData,\n where,\n } = widgetData ?? {}\n const limit = clampLimit(widgetData?.limit)\n const collectionConfig = relatedCollection\n ? payload.collections[relatedCollection]?.config\n : undefined\n\n const title =\n titleFromData ||\n (collectionConfig\n ? getTranslation(collectionConfig.labels.plural, i18n)\n : i18n.t('dashboard:widgetTitleFallback'))\n\n const fieldPaths = collectionConfig\n ? getCollectionFieldPaths(collectionConfig.fields)\n : emptyFieldPaths\n const validationErrors = getValidationErrors({\n collectionConfig,\n fieldPaths,\n i18n,\n relatedCollection,\n sortField,\n where,\n })\n\n if (validationErrors.length > 0 || !relatedCollection || !collectionConfig) {\n return <CollectionQueryError errors={validationErrors} i18n={i18n} title={title} />\n }\n\n const sort = sortField ? `${sortDirection === 'desc' ? '-' : ''}${sortField}` : undefined\n const adminRoute = payload.config.routes.admin\n\n let docs: QueryDoc[]\n\n try {\n const result = await payload.find({\n collection: relatedCollection,\n depth: 0,\n limit,\n overrideAccess: false,\n sort,\n user,\n where,\n })\n\n docs = result.docs as QueryDoc[]\n } catch (err) {\n payload.logger.error({\n err,\n msg: `CollectionQueryWidget: failed to query collection \"${relatedCollection}\"`,\n })\n\n return (\n <CollectionQueryError\n errors={[i18n.t('dashboard:widgetQueryError')]}\n i18n={i18n}\n title={title}\n />\n )\n }\n\n const documentLabelPath = getCollectionDocumentLabelPath(collectionConfig.admin)\n const relativeTimeFormat = getRelativeTimeFormat(i18n.language)\n\n return (\n <div className=\"card collection-query-widget\">\n <div className=\"collection-query-widget__header\">\n <h3 className=\"collection-query-widget__title\">{title}</h3>\n </div>\n {docs.length > 0 ? (\n <ul className=\"collection-query-widget__rows\">\n {docs.map((doc) => {\n const sortMeta = getDocSortMeta({ doc, i18n, relativeTimeFormat, sortField })\n\n return (\n <li className=\"collection-query-widget__row\" key={doc.id}>\n <a\n className=\"collection-query-widget__row-link\"\n href={getDocumentHref({\n id: doc.id,\n adminRoute,\n collectionSlug: relatedCollection,\n })}\n >\n <span className=\"collection-query-widget__row-main\">\n <span className=\"collection-query-widget__row-title\">\n {getDocLabel({ doc, documentLabelPath })}\n </span>\n </span>\n <span className=\"collection-query-widget__row-meta\">\n {sortMeta ? (\n sortMeta.dateTime ? (\n <time dateTime={sortMeta.dateTime}>{sortMeta.label}</time>\n ) : (\n sortMeta.label\n )\n ) : null}\n </span>\n </a>\n </li>\n )\n })}\n </ul>\n ) : (\n <p className=\"collection-query-widget__empty\">{i18n.t('general:noResultsFound')}</p>\n )}\n </div>\n )\n}\n\nfunction CollectionQueryError({\n errors,\n i18n,\n title,\n}: {\n errors: string[]\n i18n: I18n\n title: string\n}) {\n return (\n <div className=\"card collection-query-widget collection-query-widget--error\">\n <div className=\"collection-query-widget__header\">\n <h3 className=\"collection-query-widget__title\">{title}</h3>\n </div>\n <div className=\"collection-query-widget__error\">\n <p className=\"collection-query-widget__error-title\">\n {i18n.t('dashboard:widgetConfigurationError')}\n </p>\n <ul className=\"collection-query-widget__error-list\">\n {errors.map((error) => (\n <li key={error}>{error}</li>\n ))}\n </ul>\n </div>\n </div>\n )\n}\n\nfunction clampLimit(limit: number | undefined) {\n if (typeof limit !== 'number' || Number.isNaN(limit)) {\n return 5\n }\n\n return Math.min(Math.max(Math.floor(limit), minLimit), maxLimit)\n}\n\nfunction getCollectionDocumentLabelPath(adminConfig: { useAsTitle?: string }) {\n return adminConfig.useAsTitle || 'id'\n}\n\nfunction getDocSortMeta({\n doc,\n i18n,\n relativeTimeFormat,\n sortField,\n}: {\n doc: QueryDoc\n i18n: I18n\n relativeTimeFormat: Intl.RelativeTimeFormat\n sortField?: string\n}) {\n const value = sortField\n ? getValueByPath({ object: doc, path: sortField })\n : doc.updatedAt || doc.createdAt\n\n if (value === null || typeof value === 'undefined' || value === '') {\n return null\n }\n\n if (value instanceof Date) {\n const dateTime = value.toISOString()\n\n return {\n dateTime,\n label: formatRelativeDate({ relativeTimeFormat, value: dateTime }),\n }\n }\n\n if (typeof value === 'string') {\n if (isDateString(value)) {\n return {\n dateTime: value,\n label: formatRelativeDate({ relativeTimeFormat, value }),\n }\n }\n\n return { label: value }\n }\n\n if (typeof value === 'number') {\n return { label: value.toLocaleString(i18n.language) }\n }\n\n if (typeof value === 'boolean') {\n return { label: value ? i18n.t('general:true') : i18n.t('general:false') }\n }\n\n return null\n}\n\nfunction getDocLabel({ doc, documentLabelPath }: { doc: QueryDoc; documentLabelPath: string }) {\n const title = getValueByPath({ object: doc, path: documentLabelPath })\n\n return typeof title === 'string' && title ? title : String(doc.id)\n}\n\nfunction getValidationErrors({\n collectionConfig,\n fieldPaths,\n i18n,\n relatedCollection,\n sortField,\n where,\n}: {\n collectionConfig: unknown\n fieldPaths: CollectionFieldPaths\n i18n: I18n\n relatedCollection?: CollectionSlug\n sortField?: string\n where?: Where\n}) {\n const errors: string[] = []\n\n if (!relatedCollection) {\n errors.push(i18n.t('dashboard:widgetCollectionRequired'))\n\n return errors\n }\n\n if (!collectionConfig) {\n errors.push(i18n.t('dashboard:widgetInvalidCollection', { collection: relatedCollection }))\n\n return errors\n }\n\n if (sortField) {\n if (!fieldPaths.filterableFieldPaths.has(sortField)) {\n errors.push(\n i18n.t('dashboard:widgetInvalidSortField', {\n collection: relatedCollection,\n field: sortField,\n }),\n )\n } else if (!fieldPaths.sortableFieldPaths.has(sortField)) {\n errors.push(\n i18n.t('dashboard:widgetNonSortableSortField', {\n collection: relatedCollection,\n field: sortField,\n }),\n )\n }\n }\n\n for (const fieldPath of getWhereFieldPaths(where)) {\n if (\n fieldPaths.filterableFieldPaths.has(fieldPath) ||\n hasRelationshipAncestor({\n path: fieldPath,\n relationshipFieldPaths: fieldPaths.relationshipFieldPaths,\n })\n ) {\n continue\n }\n\n errors.push(\n i18n.t('dashboard:widgetInvalidFilterField', {\n collection: relatedCollection,\n field: fieldPath,\n }),\n )\n }\n\n return errors\n}\n\n/**\n * A `where` path that traverses into a relationship (e.g. `category.name`) cannot be validated\n * against this collection's fields because it targets another collection, so accept it when any\n * ancestor segment is a relationship.\n */\nfunction hasRelationshipAncestor({\n path,\n relationshipFieldPaths,\n}: {\n path: string\n relationshipFieldPaths: Set<string>\n}) {\n const segments = path.split('.')\n let prefix = ''\n\n for (const segment of segments) {\n prefix = prefix ? `${prefix}.${segment}` : segment\n\n if (relationshipFieldPaths.has(prefix)) {\n return true\n }\n }\n\n return false\n}\n\nfunction getWhereFieldPaths(where: undefined | Where) {\n const fieldPaths = new Set<string>()\n\n collectWhereFieldPaths({ fieldPaths, value: where })\n\n return fieldPaths\n}\n\nfunction collectWhereFieldPaths({\n fieldPaths,\n value,\n}: {\n fieldPaths: Set<string>\n value: unknown\n}) {\n if (!value || typeof value !== 'object') {\n return\n }\n\n if (Array.isArray(value)) {\n for (const item of value) {\n collectWhereFieldPaths({ fieldPaths, value: item })\n }\n\n return\n }\n\n for (const [key, childValue] of Object.entries(value)) {\n if (key === 'and' || key === 'or') {\n collectWhereFieldPaths({ fieldPaths, value: childValue })\n\n continue\n }\n\n fieldPaths.add(key)\n }\n}\n\nfunction getDocumentHref({\n id,\n adminRoute,\n collectionSlug,\n}: {\n adminRoute: string\n collectionSlug: CollectionSlug\n id: number | string\n}) {\n return formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${id}`,\n })\n}\n\nfunction getValueByPath({ object, path }: { object: Record<string, unknown>; path: string }) {\n return path.split('.').reduce<unknown>((value, segment) => {\n if (!value || typeof value !== 'object') {\n return undefined\n }\n\n return (value as Record<string, unknown>)[segment]\n }, object)\n}\n\nfunction getRelativeTimeFormat(language: string) {\n try {\n return new Intl.RelativeTimeFormat(language, { numeric: 'auto', style: 'narrow' })\n } catch {\n return new Intl.RelativeTimeFormat('en', { numeric: 'auto', style: 'narrow' })\n }\n}\n\nconst relativeTimeDivisions: { amount: number; unit: Intl.RelativeTimeFormatUnit }[] = [\n { amount: 60, unit: 'seconds' },\n { amount: 60, unit: 'minutes' },\n { amount: 24, unit: 'hours' },\n { amount: 7, unit: 'days' },\n { amount: 4.34524, unit: 'weeks' },\n { amount: 12, unit: 'months' },\n { amount: Number.POSITIVE_INFINITY, unit: 'years' },\n]\n\nfunction formatRelativeDate({\n relativeTimeFormat,\n value,\n}: {\n relativeTimeFormat: Intl.RelativeTimeFormat\n value: string\n}) {\n const date = new Date(value)\n\n if (Number.isNaN(date.getTime())) {\n return value\n }\n\n let duration = (date.getTime() - Date.now()) / 1000\n\n for (const division of relativeTimeDivisions) {\n if (Math.abs(duration) < division.amount) {\n return relativeTimeFormat.format(Math.round(duration), division.unit)\n }\n\n duration /= division.amount\n }\n\n return relativeTimeFormat.format(Math.round(duration), 'years')\n}\n\nfunction isDateString(value: string) {\n return /^\\d{4}-\\d{2}-\\d{2}/.test(value) && !Number.isNaN(new Date(value).getTime())\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/ui",
|
|
3
|
-
"version": "4.0.0-canary.
|
|
3
|
+
"version": "4.0.0-canary.5",
|
|
4
4
|
"homepage": "https://payloadcms.com",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -243,7 +243,7 @@
|
|
|
243
243
|
"ts-essentials": "10.0.3",
|
|
244
244
|
"use-context-selector": "2.0.0",
|
|
245
245
|
"uuid": "14.0.0",
|
|
246
|
-
"@payloadcms/translations": "4.0.0-canary.
|
|
246
|
+
"@payloadcms/translations": "4.0.0-canary.5"
|
|
247
247
|
},
|
|
248
248
|
"devDependencies": {
|
|
249
249
|
"@babel/cli": "7.27.2",
|
|
@@ -257,13 +257,13 @@
|
|
|
257
257
|
"babel-plugin-react-compiler": "19.1.0-rc.3",
|
|
258
258
|
"esbuild": "0.27.1",
|
|
259
259
|
"esbuild-sass-plugin": "3.3.1",
|
|
260
|
-
"
|
|
261
|
-
"
|
|
260
|
+
"@payloadcms/eslint-config": "3.28.0",
|
|
261
|
+
"payload": "4.0.0-canary.5"
|
|
262
262
|
},
|
|
263
263
|
"peerDependencies": {
|
|
264
264
|
"react": "^19.0.1 || ^19.1.2 || ^19.2.1",
|
|
265
265
|
"react-dom": "^19.0.1 || ^19.1.2 || ^19.2.1",
|
|
266
|
-
"payload": "4.0.0-canary.
|
|
266
|
+
"payload": "4.0.0-canary.5"
|
|
267
267
|
},
|
|
268
268
|
"engines": {
|
|
269
269
|
"node": ">=24.15.0"
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import './index.css';
|
|
3
|
-
type Props = {
|
|
4
|
-
readonly onClose: () => void;
|
|
5
|
-
readonly title: string;
|
|
6
|
-
};
|
|
7
|
-
export declare function DrawerHeader({ onClose, title }: Props): React.JSX.Element;
|
|
8
|
-
export {};
|
|
9
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/Header/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,aAAa,CAAA;AAIpB,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB,CAAA;AACD,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,qBAcrD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","ChevronIcon","useTranslation","Button","baseClass","DrawerHeader","t0","$","onClose","title","t","t1","_jsxs","className","children","_jsx","buttonStyle","icon","direction","size"],"sources":["../../../../src/elements/BulkUpload/Header/index.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport { ChevronIcon } from '../../../icons/Chevron/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport './index.css'\n\nconst baseClass = 'bulk-upload--drawer-header'\n\ntype Props = {\n readonly onClose: () => void\n readonly title: string\n}\nexport function DrawerHeader({ onClose, title }: Props) {\n const { t } = useTranslation()\n\n return (\n <div className={baseClass}>\n <Button\n aria-label={t('general:close')}\n buttonStyle=\"ghost\"\n icon={<ChevronIcon direction=\"left\" size={24} />}\n onClick={onClose}\n />\n <h2 title={title}>{title}</h2>\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,MAAW;AAElB,SAASC,WAAW,QAAQ;AAC5B,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAMlB,OAAO,SAAAC,aAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAR,EAAA;EAAsB;IAAAS,OAAA;IAAAC;EAAA,IAAAH,EAAyB;EACpD;IAAAI;EAAA,IAAcR,cAAA;EAAA,IAAAS,EAAA;EAAA,IAAAJ,CAAA,QAAAC,OAAA,IAAAD,CAAA,QAAAG,CAAA,IAAAH,CAAA,QAAAE,KAAA;IAGZE,EAAA,GAAAC,KAAA,CAAC;MAAAC,SAAA,EAAAT,SAAA;MAAAU,QAAA,GACCC,IAAA,CAAAZ,MAAA;QAAA,cACcO,CAAA,CAAE;QAAAM,WAAA,EACF;QAAAC,IAAA,EACNF,IAAA,CAAAd,WAAA;UAAAiB,SAAA,EAAuB;UAAAC,IAAA;QAAA,C;iBACpBX;MAAA,C,GAEXO,IAAA,CAAC;QAAAN,KAAA;QAAAK,QAAA,EAAkBL;MAAA,C;;;;;;;;;SAPrBE,E","ignoreList":[]}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { SanitizedCollectionConfig } from 'payload';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import './index.css';
|
|
4
|
-
export type Props = {
|
|
5
|
-
readonly collectionSlug: SanitizedCollectionConfig['slug'];
|
|
6
|
-
readonly onClose?: () => void;
|
|
7
|
-
};
|
|
8
|
-
export declare const ColumnSelector: React.FC<Props>;
|
|
9
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ColumnSelector/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAe,MAAM,SAAS,CAAA;AAIrE,OAAO,KAAyE,MAAM,OAAO,CAAA;AAY7F,OAAO,aAAa,CAAA;AA8CpB,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAC1D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CAC9B,CAAA;AAkDD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAsM1C,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","getTranslation","fieldIsHiddenOrDisabled","fieldIsID","isFieldDisabled","React","useCallback","useId","useLayoutEffect","useMemo","useRef","useState","AlignJustifiedIcon","SearchIcon","XIcon","useEditDepth","useTableColumns","useTranslation","Button","DraggableSortable","useDraggableSortable","Switch","baseClass","parseNestedLabel","label","includes","segments","split","length","NestedLabel","_jsx","_Fragment","map","segment","index","_jsxs","Fragment","className","ColumnItem","t0","$","id","active","labelText","onToggle","t","t1","attributes","isDragging","isOver","isSorting","listeners","setNodeRef","transform","t2","t3","t4","t5","filter","Boolean","t6","join","t7","undefined","t8","ref","style","children","size","checked","onChange","ColumnSelector","collectionSlug","onClose","columns","moveColumn","toggleColumn","i18n","uuid","editDepth","searchQuery","setSearchQuery","containerRef","lockedWidth","setLockedWidth","current","offsetWidth","filteredColumns","col","field","columnItems","all","hidden","shown","items","i","accessor","labelWithPrefix","name","filtered","item","toLowerCase","handleDragEnd","moveFromIndex","moveToIndex","allItems","shownCount","fromItem","toItem","fromIsShown","toIsShown","fromIndex","toIndex","allIds","containerStyle","buttonStyle","icon","onClick","e","target","value","placeholder","type","ids","onDragEnd"],"sources":["../../../src/elements/ColumnSelector/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SanitizedCollectionConfig, StaticLabel } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { fieldIsHiddenOrDisabled, fieldIsID, isFieldDisabled } from 'payload/shared'\nimport React, { useCallback, useId, useLayoutEffect, useMemo, useRef, useState } from 'react'\n\nimport { AlignJustifiedIcon } from '../../icons/AlignJustified/index.js'\nimport { SearchIcon } from '../../icons/Search/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useTableColumns } from '../../providers/TableColumns/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { useDraggableSortable } from '../DraggableSortable/useDraggableSortable/index.js'\nimport { Switch } from '../Switch/index.js'\nimport './index.css'\n\nconst baseClass = 'column-selector'\n\n/**\n * Parses a nested field label and returns segments for rendering.\n * - For deeply nested paths (more than 3 segments), truncates to [First, \"...\", Last]\n */\nfunction parseNestedLabel(label: string): string[] {\n if (!label.includes(' > ')) {\n return [label]\n }\n\n const segments = label.split(' > ')\n\n if (segments.length <= 3) {\n return segments\n }\n\n // For deep nesting, show: First / ... / Last\n return [segments[0], '...', segments[segments.length - 1]]\n}\n\ntype NestedLabelProps = {\n readonly label: string\n}\n\nconst NestedLabel: React.FC<NestedLabelProps> = ({ label }) => {\n const segments = parseNestedLabel(label)\n\n if (segments.length === 1) {\n return <>{segments[0]}</>\n }\n\n return (\n <>\n {segments.map((segment, index) => (\n <React.Fragment key={index}>\n {index > 0 && <span className={`${baseClass}__separator`}>/</span>}\n {segment}\n </React.Fragment>\n ))}\n </>\n )\n}\n\nexport type Props = {\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n readonly onClose?: () => void\n}\n\ntype ColumnItemProps = {\n readonly active: boolean\n readonly id: string\n readonly labelText: string\n readonly onToggle: () => void\n}\n\nconst ColumnItem: React.FC<ColumnItemProps> = ({ id, active, labelText, onToggle }) => {\n const { t } = useTranslation()\n const { attributes, isDragging, isOver, isSorting, listeners, setNodeRef, transform } =\n useDraggableSortable({\n id,\n })\n\n return (\n <div\n aria-label={labelText}\n className={[\n `${baseClass}__item`,\n !active && `${baseClass}__item--inactive`,\n isDragging && `${baseClass}__item--dragging`,\n isOver && isSorting && !isDragging && `${baseClass}__item--over`,\n ]\n .filter(Boolean)\n .join(' ')}\n ref={setNodeRef}\n style={{\n // Keep item in place while dragging - don't apply transform\n transform: isDragging ? undefined : transform,\n ...attributes.style,\n }}\n {...attributes}\n >\n <span\n aria-label={t('general:dragToReorder')}\n className={`${baseClass}__drag-handle`}\n {...listeners}\n >\n <AlignJustifiedIcon size={16} />\n </span>\n <span className={`${baseClass}__item-label`}>\n <NestedLabel label={labelText} />\n </span>\n <Switch checked={active} onChange={onToggle} />\n </div>\n )\n}\n\nexport const ColumnSelector: React.FC<Props> = ({ collectionSlug, onClose }) => {\n const { columns, moveColumn, toggleColumn } = useTableColumns()\n const { i18n, t } = useTranslation()\n\n const uuid = useId()\n const editDepth = useEditDepth()\n const [searchQuery, setSearchQuery] = useState('')\n const containerRef = useRef<HTMLDivElement>(null)\n const [lockedWidth, setLockedWidth] = useState<null | number>(null)\n\n // Lock the width when search starts to prevent layout shift\n useLayoutEffect(() => {\n if (!containerRef.current) {\n return\n }\n\n if (searchQuery && lockedWidth === null) {\n // Capture width when search starts\n setLockedWidth(containerRef.current.offsetWidth)\n } else if (!searchQuery && lockedWidth !== null) {\n // Release width lock when search is cleared\n setLockedWidth(null)\n }\n }, [searchQuery, lockedWidth])\n\n const filteredColumns = useMemo(\n () =>\n columns?.filter(\n (col) =>\n !(fieldIsHiddenOrDisabled(col.field) && !fieldIsID(col.field)) &&\n !isFieldDisabled(col.field, 'column'),\n ),\n [columns],\n )\n\n const columnItems = useMemo(() => {\n if (!filteredColumns) {\n return { all: [], hidden: [], shown: [] }\n }\n\n const items = filteredColumns.map((col, i) => {\n const { accessor, active, field } = col\n\n const label =\n 'labelWithPrefix' in field && field.labelWithPrefix !== undefined\n ? field.labelWithPrefix\n : 'label' in field && field.label !== undefined && field.label !== false\n ? field.label\n : 'name' in field && field.name !== undefined\n ? field.name\n : accessor\n\n const labelText =\n typeof label === 'string' ? label : getTranslation(label as StaticLabel, i18n)\n\n return {\n id: `${collectionSlug}-${accessor}-${i}${editDepth ? `-${editDepth}-` : ''}${uuid}`,\n accessor,\n active,\n index: i,\n label,\n labelText,\n }\n })\n\n // Filter by search query\n const filtered = searchQuery\n ? items.filter((item) => item.labelText.toLowerCase().includes(searchQuery.toLowerCase()))\n : items\n\n return {\n all: items,\n hidden: filtered.filter((item) => !item.active),\n shown: filtered.filter((item) => item.active),\n }\n }, [collectionSlug, editDepth, filteredColumns, i18n, searchQuery, uuid])\n\n const handleDragEnd = useCallback(\n ({ moveFromIndex, moveToIndex }: { moveFromIndex: number; moveToIndex: number }) => {\n if (moveFromIndex === moveToIndex) {\n return\n }\n\n // All shown items first, then all hidden items\n const allItems = [...columnItems.shown, ...columnItems.hidden]\n const shownCount = columnItems.shown.length\n const fromItem = allItems[moveFromIndex]\n const toItem = allItems[moveToIndex]\n\n if (!fromItem || !toItem) {\n return\n }\n\n // Determine if crossing sections\n const fromIsShown = moveFromIndex < shownCount\n const toIsShown = moveToIndex < shownCount\n\n if (fromIsShown !== toIsShown) {\n // Cross-section move: just toggle the column's active state (show/hide)\n void toggleColumn(fromItem.accessor)\n // Don't reorder when crossing sections - the toggle handles the change\n return\n }\n\n // Same-section move: perform the reorder\n void moveColumn({\n fromIndex: fromItem.index,\n toIndex: toItem.index,\n })\n },\n [columnItems.shown, columnItems.hidden, moveColumn, toggleColumn],\n )\n\n if (!filteredColumns) {\n return null\n }\n\n // Combined IDs: shown items first, then hidden items\n const allIds = [...columnItems.shown, ...columnItems.hidden].map((item) => item.id)\n\n const containerStyle = lockedWidth\n ? ({ '--column-selector-locked-width': `${lockedWidth}px` } as React.CSSProperties)\n : undefined\n\n return (\n <div\n className={baseClass}\n data-popup-prevent-close\n data-width-locked={lockedWidth ? 'true' : undefined}\n ref={containerRef}\n style={containerStyle}\n >\n <div className={`${baseClass}__header`}>\n <span className={`${baseClass}__title`}>{t('general:editColumns')}</span>\n {onClose && (\n <Button\n aria-label={t('general:close')}\n buttonStyle=\"ghost\"\n className={`${baseClass}__close`}\n icon={<XIcon size={24} />}\n onClick={onClose}\n />\n )}\n </div>\n <div className={`${baseClass}__search`}>\n <div className={`${baseClass}__search-bar`}>\n <SearchIcon size={24} />\n <input\n aria-label={t('general:searchColumns')}\n className={`${baseClass}__search-input`}\n onChange={(e) => setSearchQuery(e.target.value)}\n placeholder={t('general:searchColumns')}\n type=\"text\"\n value={searchQuery}\n />\n </div>\n </div>\n <div className={`${baseClass}__content`}>\n <DraggableSortable ids={allIds} onDragEnd={handleDragEnd}>\n {columnItems.shown.length === 0 && columnItems.hidden.length === 0 && searchQuery && (\n <div className={`${baseClass}__no-results`}>{t('general:noMatchesFound')}</div>\n )}\n {columnItems.shown.length > 0 && (\n <div className={`${baseClass}__section`}>\n <div className={`${baseClass}__section-header`}>{t('general:shownInTable')}</div>\n {columnItems.shown.map((item) => (\n <ColumnItem\n active={item.active}\n id={item.id}\n key={item.id}\n labelText={item.labelText}\n onToggle={() => {\n void toggleColumn(item.accessor)\n }}\n />\n ))}\n </div>\n )}\n {columnItems.hidden.length > 0 && (\n <div className={`${baseClass}__section`}>\n <div className={`${baseClass}__section-header`}>{t('general:notShownInTable')}</div>\n {columnItems.hidden.map((item) => (\n <ColumnItem\n active={item.active}\n id={item.id}\n key={item.id}\n labelText={item.labelText}\n onToggle={() => {\n void toggleColumn(item.accessor)\n }}\n />\n ))}\n </div>\n )}\n </DraggableSortable>\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { SanitizedCollectionConfig } from 'payload';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
export type ColumnsButtonProps = {
|
|
4
|
-
readonly collectionSlug: SanitizedCollectionConfig['slug'];
|
|
5
|
-
};
|
|
6
|
-
export declare const ColumnsButton: React.FC<ColumnsButtonProps>;
|
|
7
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ColumnsButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAExD,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;CAC3D,CAAA;AAID,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAwBtD,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","ChevronIcon","useTranslation","Button","ColumnSelector","Popup","baseClass","ColumnsButton","t0","$","collectionSlug","t","t1","t2","close","_jsx","onClose","t3","active","props","buttonStyle","className","icon","direction","size","children","horizontalAlign","render","verticalAlign"],"sources":["../../../src/elements/ColumnsButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport React from 'react'\n\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { Popup } from '../Popup/index.js'\n\nexport type ColumnsButtonProps = {\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n}\n\nconst baseClass = 'columns-button'\n\nexport const ColumnsButton: React.FC<ColumnsButtonProps> = ({ collectionSlug }) => {\n const { t } = useTranslation()\n\n return (\n <Popup\n className={baseClass}\n horizontalAlign=\"right\"\n render={({ close }) => <ColumnSelector collectionSlug={collectionSlug} onClose={close} />}\n renderButton={({ active, ...props }) => (\n <Button\n {...props}\n buttonStyle=\"secondary\"\n className={`${baseClass}__button`}\n icon={<ChevronIcon direction={active ? 'up' : 'down'} size={16} />}\n selected={active}\n size=\"medium\"\n >\n {t('general:columns')}\n </Button>\n )}\n theme=\"auto\"\n verticalAlign=\"bottom\"\n />\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAIA,OAAOC,KAAA,MAAW;AAElB,SAASC,WAAW,QAAQ;AAC5B,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,cAAc,QAAQ;AAC/B,SAASC,KAAK,QAAQ;AAMtB,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,aAAA,GAA8CC,EAAA;EAAA,MAAAC,CAAA,GAAAV,EAAA;EAAC;IAAAW;EAAA,IAAAF,EAAkB;EAC5E;IAAAG;EAAA,IAAcT,cAAA;EAAA,IAAAU,EAAA;EAAA,IAAAH,CAAA,QAAAC,cAAA;IAMFE,EAAA,GAAAC,EAAA;MAAC;QAAAC;MAAA,IAAAD,EAAS;MAAA,OAAKE,IAAA,CAAAX,cAAA;QAAAM,cAAA;QAAAM,OAAA,EAAyDF;MAAA,C;;;;;;;;;IAClED,EAAA,GAAAI,EAAA;MAAC;QAAAC,MAAA;QAAA,GAAAC;MAAA,IAAAF,EAAoB;MAAA,OACjCF,IAAA,CAAAZ,MAAA;QAAA,GACMgB,KAAK;QAAAC,WAAA,EACG;QAAAC,SAAA,EACD,GAAAf,SAAA,UAAsB;QAAAgB,IAAA,EAC3BP,IAAA,CAAAd,WAAA;UAAAsB,SAAA,EAAwBL,MAAA,GAAS,OAAO;UAAAM,IAAA;QAAA,C;kBACpCN,MAAA;QAAAM,IAAA,EACL;QAAAC,QAAA,EAEJd,CAAA,CAAE;MAAA,C;;;;;;;;;IAbTM,EAAA,GAAAF,IAAA,CAAAV,KAAA;MAAAgB,SAAA,EAAAf,SAAA;MAAAoB,eAAA,EAEkB;MAAAC,MAAA,EACRf,E;oBACMC,E;aAYR;MAAAe,aAAA,EACQ;IAAA,C;;;;;;;SAjBhBX,E;CAoBJ","ignoreList":[]}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
@import '../../../scss/styles.scss';
|
|
2
|
-
|
|
3
|
-
@layer payload-default {
|
|
4
|
-
.file-meta {
|
|
5
|
-
&__url {
|
|
6
|
-
display: flex;
|
|
7
|
-
gap: base(0.4);
|
|
8
|
-
|
|
9
|
-
a {
|
|
10
|
-
font-weight: 600;
|
|
11
|
-
text-decoration: none;
|
|
12
|
-
|
|
13
|
-
&:hover,
|
|
14
|
-
&:focus-visible {
|
|
15
|
-
text-decoration: underline;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
&__size-type,
|
|
21
|
-
&__url a {
|
|
22
|
-
overflow: hidden;
|
|
23
|
-
text-overflow: ellipsis;
|
|
24
|
-
white-space: nowrap;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
&__edit {
|
|
28
|
-
position: relative;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|