@payloadcms/ui 4.0.0-internal.934870d → 4.0.0-internal.970009e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/css/app.css +2 -2
- package/dist/css/colors.css +65 -0
- package/dist/css/preflight.css +21 -2
- package/dist/elements/APIKeyInput/index.js +22 -23
- package/dist/elements/APIKeyInput/index.js.map +1 -1
- package/dist/elements/AddNewRelation/index.js +17 -19
- package/dist/elements/AddNewRelation/index.js.map +1 -1
- package/dist/elements/AppHeader/index.css +1 -1
- package/dist/elements/AppHeader/index.d.ts.map +1 -1
- package/dist/elements/AppHeader/index.js +5 -1
- package/dist/elements/AppHeader/index.js.map +1 -1
- package/dist/elements/ArrayAction/index.js +39 -30
- package/dist/elements/ArrayAction/index.js.map +1 -1
- package/dist/elements/Autosave/index.js +234 -142
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
- package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditMany/index.js +29 -21
- package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +1 -34
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/BulkUpload/index.js +63 -23
- package/dist/elements/BulkUpload/index.js.map +1 -1
- package/dist/elements/BulkUpload/useUploadCollectionOptions.js.map +1 -1
- package/dist/elements/Button/index.css +3 -3
- package/dist/elements/Button/index.d.ts.map +1 -1
- package/dist/elements/Button/index.js +2 -1
- package/dist/elements/Button/index.js.map +1 -1
- package/dist/elements/Button/types.d.ts +1 -0
- package/dist/elements/Button/types.d.ts.map +1 -1
- package/dist/elements/Button/types.js.map +1 -1
- package/dist/elements/CardGrid/index.css +0 -1
- package/dist/elements/Chip/index.js.map +1 -1
- package/dist/elements/ClipboardAction/ClipboardActionLabel.js.map +1 -1
- package/dist/elements/ClipboardAction/index.js +213 -88
- package/dist/elements/ClipboardAction/index.js.map +1 -1
- package/dist/elements/CloseModalOnRouteChange/index.d.ts.map +1 -1
- package/dist/elements/CloseModalOnRouteChange/index.js +27 -19
- package/dist/elements/CloseModalOnRouteChange/index.js.map +1 -1
- package/dist/elements/CodeEditor/CodeEditor.d.ts.map +1 -1
- package/dist/elements/CodeEditor/CodeEditor.js +95 -56
- package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
- package/dist/elements/CollapseAllToggle/index.js +47 -32
- package/dist/elements/CollapseAllToggle/index.js.map +1 -1
- package/dist/elements/Collapsible/index.css +15 -4
- package/dist/elements/Collapsible/index.d.ts.map +1 -1
- package/dist/elements/Collapsible/index.js +46 -38
- package/dist/elements/Collapsible/index.js.map +1 -1
- package/dist/elements/Collapsible/provider.js +37 -14
- package/dist/elements/Collapsible/provider.js.map +1 -1
- package/dist/elements/ColumnSelection/Popup.css +4 -0
- package/dist/elements/ColumnSelection/Popup.js +10 -2
- package/dist/elements/ColumnSelection/Popup.js.map +1 -1
- package/dist/elements/ColumnSelection/index.js.map +1 -1
- package/dist/elements/CommandPalette/index.css +8 -0
- package/dist/elements/ConfirmationModal/index.d.ts +3 -0
- package/dist/elements/ConfirmationModal/index.d.ts.map +1 -1
- package/dist/elements/ConfirmationModal/index.js +2 -0
- package/dist/elements/ConfirmationModal/index.js.map +1 -1
- package/dist/elements/CopyLocaleData/index.js.map +1 -1
- package/dist/elements/CopyToClipboard/index.js.map +1 -1
- package/dist/elements/CreateDocumentButton/index.js +45 -43
- package/dist/elements/CreateDocumentButton/index.js.map +1 -1
- package/dist/elements/DatePicker/DatePicker.js +6 -2
- package/dist/elements/DatePicker/DatePicker.js.map +1 -1
- package/dist/elements/DatePicker/index.css +40 -25
- package/dist/elements/DatePicker/useDatePickerKeyboard.js.map +1 -1
- package/dist/elements/DefaultListViewTabs/index.css +4 -0
- package/dist/elements/DefaultListViewTabs/index.js +47 -37
- package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
- package/dist/elements/DelayedSpinner/index.js.map +1 -1
- package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
- package/dist/elements/DeleteDocument/index.js +1 -3
- package/dist/elements/DeleteDocument/index.js.map +1 -1
- package/dist/elements/Dialog/DialogCancel/index.js.map +1 -1
- package/dist/elements/Dialog/DialogConfirm/index.js.map +1 -1
- package/dist/elements/Dialog/DialogHeader/index.js.map +1 -1
- package/dist/elements/Dialog/DialogModal/index.js.map +1 -1
- package/dist/elements/DocumentCard/index.d.ts +2 -0
- package/dist/elements/DocumentCard/index.d.ts.map +1 -1
- package/dist/elements/DocumentCard/index.js +2 -0
- package/dist/elements/DocumentCard/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.css +13 -10
- package/dist/elements/DocumentControls/index.js +1 -1
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/index.js.map +1 -1
- package/dist/elements/DocumentFields/index.css +7 -7
- package/dist/elements/DocumentFields/index.d.ts.map +1 -1
- package/dist/elements/DocumentFields/index.js +125 -65
- package/dist/elements/DocumentFields/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +80 -34
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.css +4 -0
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
- package/dist/elements/DocumentLocked/index.d.ts.map +1 -1
- package/dist/elements/DocumentLocked/index.js +1 -0
- package/dist/elements/DocumentLocked/index.js.map +1 -1
- package/dist/elements/DocumentStaleData/index.js.map +1 -1
- package/dist/elements/DocumentTakeOver/index.js.map +1 -1
- package/dist/elements/DraggableSortable/DragOverlayPreview/index.js +2 -0
- package/dist/elements/DraggableSortable/DragOverlayPreview/index.js.map +1 -1
- package/dist/elements/DraggableSortable/DraggableSortableItem/index.d.ts.map +1 -1
- package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +10 -7
- package/dist/elements/DraggableSortable/DraggableSortableItem/index.js.map +1 -1
- package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts +2 -0
- package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts.map +1 -1
- package/dist/elements/DraggableSortable/DraggableSortableItem/types.js.map +1 -1
- package/dist/elements/DraggableSortable/index.d.ts.map +1 -1
- package/dist/elements/DraggableSortable/index.js +104 -170
- package/dist/elements/DraggableSortable/index.js.map +1 -1
- package/dist/elements/DraggableSortable/types.d.ts +1 -0
- package/dist/elements/DraggableSortable/types.d.ts.map +1 -1
- package/dist/elements/DraggableSortable/types.js.map +1 -1
- package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
- package/dist/elements/DraggableSortable/useRowAccessibility.d.ts +14 -0
- package/dist/elements/DraggableSortable/useRowAccessibility.d.ts.map +1 -0
- package/dist/elements/DraggableSortable/useRowAccessibility.js +99 -0
- package/dist/elements/DraggableSortable/useRowAccessibility.js.map +1 -0
- package/dist/elements/Drawer/index.js +138 -81
- package/dist/elements/Drawer/index.js.map +1 -1
- package/dist/elements/Drawer/useDrawerSlug.js.map +1 -1
- package/dist/elements/DrawerActionHeader/index.js.map +1 -1
- package/dist/elements/DrawerHeader/index.js.map +1 -1
- package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +177 -62
- package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
- package/dist/elements/EditMany/DrawerContent.js +1 -1
- package/dist/elements/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/EditMany/index.js.map +1 -1
- package/dist/elements/FieldDiffContainer/index.d.ts.map +1 -1
- package/dist/elements/FieldDiffContainer/index.js +7 -1
- package/dist/elements/FieldDiffContainer/index.js.map +1 -1
- package/dist/elements/FieldDiffLabel/index.d.ts +1 -0
- package/dist/elements/FieldDiffLabel/index.d.ts.map +1 -1
- package/dist/elements/FieldDiffLabel/index.js +2 -0
- package/dist/elements/FieldDiffLabel/index.js.map +1 -1
- package/dist/elements/FieldSelect/index.js +23 -14
- package/dist/elements/FieldSelect/index.js.map +1 -1
- package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
- package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
- package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
- package/dist/elements/FileManager/FilePreview/index.js.map +1 -1
- package/dist/elements/FileManager/index.js.map +1 -1
- package/dist/elements/FullscreenModal/index.js.map +1 -1
- package/dist/elements/GenerateConfirmation/index.js +21 -21
- package/dist/elements/GenerateConfirmation/index.js.map +1 -1
- package/dist/elements/GroupBy/Popup.js.map +1 -1
- package/dist/elements/GroupBy/index.js +120 -66
- package/dist/elements/GroupBy/index.js.map +1 -1
- package/dist/elements/HTMLDiff/colors.css +7 -0
- package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js.map +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js +51 -42
- package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js.map +1 -1
- package/dist/elements/Hierarchy/DocHeaderButton/index.js +1 -1
- package/dist/elements/Hierarchy/DocHeaderButton/index.js.map +1 -1
- package/dist/elements/Hierarchy/EditButton/index.js.map +1 -1
- package/dist/elements/Hierarchy/HydrateProvider/index.js.map +1 -1
- package/dist/elements/Hierarchy/Modal/Footer/index.js.map +1 -1
- package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.js +25 -18
- package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.js.map +1 -1
- package/dist/elements/Hierarchy/Search/HierarchySearchResults.js.map +1 -1
- package/dist/elements/Hierarchy/Search/index.js.map +1 -1
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +1 -1
- package/dist/elements/Hierarchy/Tree/TreeFocusContext.js.map +1 -1
- package/dist/elements/Hierarchy/Tree/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Tree/index.js +10 -5
- package/dist/elements/Hierarchy/Tree/index.js.map +1 -1
- package/dist/elements/HierarchyTypeField/index.d.ts.map +1 -1
- package/dist/elements/HierarchyTypeField/index.js.map +1 -1
- package/dist/elements/HydrateAuthProvider/index.js.map +1 -1
- package/dist/elements/HydratePreferences/index.js.map +1 -1
- package/dist/elements/IDLabel/index.js.map +1 -1
- package/dist/elements/InputStepper/index.js.map +1 -1
- package/dist/elements/ItemsDrawer/ItemSearch/index.js.map +1 -1
- package/dist/elements/ItemsDrawer/index.js +186 -105
- package/dist/elements/ItemsDrawer/index.js.map +1 -1
- package/dist/elements/LLMInstructionsDescription/index.js.map +1 -1
- package/dist/elements/LLMInstructionsMenuItem/index.js.map +1 -1
- package/dist/elements/LayoutToggle/index.js.map +1 -1
- package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
- package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +1 -1
- package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
- package/dist/elements/Link/index.js +1 -1
- package/dist/elements/Link/index.js.map +1 -1
- package/dist/elements/ListColumnSelectionButton/index.js.map +1 -1
- 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 +3 -2
- package/dist/elements/ListDrawer/Provider.d.ts.map +1 -1
- package/dist/elements/ListDrawer/Provider.js.map +1 -1
- package/dist/elements/ListDrawer/index.js.map +1 -1
- package/dist/elements/ListGroupByButton/index.js.map +1 -1
- package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js.map +1 -1
- package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerConfirmSelectionButton.js.map +1 -1
- package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js +11 -12
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +1 -1
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
- package/dist/elements/ListSelection/index.js.map +1 -1
- package/dist/elements/ListWhereBuilder/index.js.map +1 -1
- package/dist/elements/LivePreview/DeviceContainer/index.js.map +1 -1
- package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -1
- package/dist/elements/LivePreview/Toolbar/SizeInput/index.js.map +1 -1
- package/dist/elements/LivePreview/Toolbar/index.js.map +1 -1
- package/dist/elements/LivePreview/ToolbarArea/index.js.map +1 -1
- package/dist/elements/LivePreview/Window/index.css +7 -1
- package/dist/elements/LivePreview/Window/index.d.ts.map +1 -1
- package/dist/elements/LivePreview/Window/index.js +6 -1
- package/dist/elements/LivePreview/Window/index.js.map +1 -1
- package/dist/elements/LoadMoreRow/index.js.map +1 -1
- package/dist/elements/Loading/index.js +62 -18
- package/dist/elements/Loading/index.js.map +1 -1
- package/dist/elements/LoadingOverlay/index.js +93 -49
- package/dist/elements/LoadingOverlay/index.js.map +1 -1
- package/dist/elements/Localizer/index.js +133 -108
- package/dist/elements/Localizer/index.js.map +1 -1
- package/dist/elements/Locked/index.js +54 -37
- package/dist/elements/Locked/index.js.map +1 -1
- package/dist/elements/Logout/index.js.map +1 -1
- package/dist/elements/MiniCarousel/index.js +102 -38
- package/dist/elements/MiniCarousel/index.js.map +1 -1
- package/dist/elements/Modal/index.d.ts.map +1 -1
- package/dist/elements/Modal/index.js +13 -1
- package/dist/elements/Modal/index.js.map +1 -1
- package/dist/elements/Nav/NavSidebarToggle/index.js.map +1 -1
- package/dist/elements/Nav/NavWrapper/index.d.ts.map +1 -1
- package/dist/elements/Nav/NavWrapper/index.js +10 -6
- package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
- package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
- package/dist/elements/Nav/SidebarTabs/TabError/index.js.map +1 -1
- package/dist/elements/Nav/SidebarTabs/index.client.d.ts.map +1 -1
- package/dist/elements/Nav/SidebarTabs/index.client.js +32 -21
- package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -1
- package/dist/elements/Nav/index.client.js.map +1 -1
- package/dist/elements/Nav/index.css +5 -0
- package/dist/elements/NavGroup/index.css +27 -3
- package/dist/elements/NavGroup/index.js +31 -38
- package/dist/elements/NavGroup/index.js.map +1 -1
- package/dist/elements/NoListResults/index.css +1 -0
- package/dist/elements/NoListResults/index.js +1 -1
- package/dist/elements/NoListResults/index.js.map +1 -1
- package/dist/elements/PageControls/GroupByPageControls.js.map +1 -1
- package/dist/elements/PageControls/index.js.map +1 -1
- package/dist/elements/Pagination/ClickableArrow/index.js +10 -11
- package/dist/elements/Pagination/ClickableArrow/index.js.map +1 -1
- package/dist/elements/Pagination/SimplePagination/index.js.map +1 -1
- package/dist/elements/Pagination/index.js +36 -37
- package/dist/elements/Pagination/index.js.map +1 -1
- package/dist/elements/PerPage/index.js.map +1 -1
- package/dist/elements/Pill/index.js.map +1 -1
- package/dist/elements/Popup/index.d.ts.map +1 -1
- package/dist/elements/Popup/index.js +19 -3
- package/dist/elements/Popup/index.js.map +1 -1
- package/dist/elements/PreviewButton/index.js.map +1 -1
- package/dist/elements/PreviewSizes/index.js +141 -70
- package/dist/elements/PreviewSizes/index.js.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.js +16 -8
- package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
- package/dist/elements/PublishButton/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/index.js +1 -0
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/PublishMany/DrawerContent.js +1 -1
- package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/PublishMany/index.js +32 -24
- package/dist/elements/PublishMany/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/ColumnsField/index.js +194 -100
- package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/GroupByField/index.js +78 -29
- package/dist/elements/QueryPresets/fields/GroupByField/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/Heading/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
- package/dist/elements/ReactSelect/ClearIndicator/index.js.map +1 -1
- package/dist/elements/ReactSelect/DefaultMenuPortal.d.ts.map +1 -1
- package/dist/elements/ReactSelect/DefaultMenuPortal.js.map +1 -1
- package/dist/elements/ReactSelect/MultiValue/index.js +19 -9
- package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
- package/dist/elements/ReactSelect/MultiValueLabel/index.js.map +1 -1
- package/dist/elements/ReactSelect/MultiValueRemove/index.js +38 -29
- package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
- package/dist/elements/ReactSelect/ValueContainer/index.js.map +1 -1
- package/dist/elements/ReactSelect/index.css +4 -0
- package/dist/elements/RelationshipTable/AddNewButton.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/AddNewButton.js +3 -0
- package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
- package/dist/elements/RelationshipTable/Pagination.js.map +1 -1
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
- package/dist/elements/RelationshipTable/index.js +1 -1
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/RenderIfInViewport/index.js.map +1 -1
- package/dist/elements/RenderTitle/index.js.map +1 -1
- package/dist/elements/RestoreMany/index.js +1 -1
- package/dist/elements/RestoreMany/index.js.map +1 -1
- package/dist/elements/SchedulePublishButton/index.js +111 -39
- package/dist/elements/SchedulePublishButton/index.js.map +1 -1
- package/dist/elements/Search/SearchInput/index.js.map +1 -1
- package/dist/elements/SegmentedControl/index.css +50 -7
- package/dist/elements/SegmentedControl/index.js.map +1 -1
- package/dist/elements/SelectAll/index.js.map +1 -1
- package/dist/elements/SelectRow/index.js +31 -21
- package/dist/elements/SelectRow/index.js.map +1 -1
- package/dist/elements/ShimmerEffect/index.js.map +1 -1
- package/dist/elements/SidebarToggle/index.js.map +1 -1
- package/dist/elements/SkipToContent/index.js.map +1 -1
- package/dist/elements/SortHeader/index.js.map +1 -1
- package/dist/elements/SortRow/index.js.map +1 -1
- package/dist/elements/Spinner/index.js.map +1 -1
- package/dist/elements/StayLoggedIn/index.js.map +1 -1
- package/dist/elements/StepNav/SetStepNav.js.map +1 -1
- package/dist/elements/StepNav/context.js.map +1 -1
- package/dist/elements/Switch/index.css +2 -2
- package/dist/elements/Switch/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Array/index.js +28 -9
- package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Blocks/index.js +80 -27
- package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js +9 -10
- package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/JSON/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/JSON/index.js +21 -32
- package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Status/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +6 -1
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/Table/GridNavigation/useGridNavigation.js.map +1 -1
- package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
- package/dist/elements/Table/TableIdentity.js +32 -16
- package/dist/elements/Table/TableIdentity.js.map +1 -1
- package/dist/elements/Table/index.js.map +1 -1
- package/dist/elements/Table/useAriaSort.js.map +1 -1
- package/dist/elements/Tabs/index.css +4 -3
- package/dist/elements/Thumbnail/index.js +133 -53
- package/dist/elements/Thumbnail/index.js.map +1 -1
- package/dist/elements/ThumbnailCard/index.js.map +1 -1
- package/dist/elements/TimezonePicker/index.d.ts.map +1 -1
- package/dist/elements/TimezonePicker/index.js +113 -54
- package/dist/elements/TimezonePicker/index.js.map +1 -1
- package/dist/elements/Toasts/fieldErrors.js.map +1 -1
- package/dist/elements/Tooltip/index.js.map +1 -1
- package/dist/elements/Translation/index.js +1 -1
- package/dist/elements/Translation/index.js.map +1 -1
- package/dist/elements/TrashBanner/index.js.map +1 -1
- package/dist/elements/UnpublishMany/DrawerContent.js +1 -1
- package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/UnpublishMany/index.js +32 -24
- package/dist/elements/UnpublishMany/index.js.map +1 -1
- package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -1
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/Upload/usePasteFromClipboard.js.map +1 -1
- package/dist/elements/Upload/useUploadFromUrl.js.map +1 -1
- package/dist/elements/UserMenu/LanguageMenu/index.js.map +1 -1
- package/dist/elements/UserMenu/SettingsMenu/index.js.map +1 -1
- package/dist/elements/UserMenu/ThemeMenu/index.js.map +1 -1
- package/dist/elements/UserMenu/index.d.ts.map +1 -1
- package/dist/elements/UserMenu/index.js +2 -1
- package/dist/elements/UserMenu/index.js.map +1 -1
- package/dist/elements/ViewDescription/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Date/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Text/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js +1 -0
- package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
- package/dist/exports/client/{CodeEditor-S7MOGZSR.js → CodeEditor-23ZGBN6S.js} +2 -2
- package/dist/exports/client/{DatePicker-POZJVQP4.js → DatePicker-AZBZPMY6.js} +2 -2
- package/dist/exports/client/chunk-EXVR6BZK.js +27 -0
- package/dist/exports/client/chunk-EXVR6BZK.js.map +7 -0
- package/dist/exports/client/{chunk-AVJIZPR3.js → chunk-SMBFG6XU.js} +1 -1
- package/dist/exports/client/{chunk-AVJIZPR3.js.map → chunk-SMBFG6XU.js.map} +1 -1
- package/dist/exports/client/{chunk-2AY67NFV.js → chunk-ZP2PB6M4.js} +2 -2
- package/dist/exports/client/chunk-ZP2PB6M4.js.map +7 -0
- package/dist/exports/client/index.d.ts +2 -2
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +27 -27
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/rsc/index.d.ts +1 -1
- package/dist/exports/rsc/index.d.ts.map +1 -1
- package/dist/exports/rsc/index.js +1 -1
- package/dist/exports/rsc/index.js.map +1 -1
- package/dist/exports/shared/index.js +2 -2
- package/dist/exports/shared/index.js.map +3 -3
- package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
- package/dist/fields/Array/ArrayRow.js +207 -99
- package/dist/fields/Array/ArrayRow.js.map +1 -1
- package/dist/fields/Array/index.d.ts.map +1 -1
- package/dist/fields/Array/index.js +521 -308
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
- package/dist/fields/Blocks/BlockRow.js +224 -136
- package/dist/fields/Blocks/BlockRow.js.map +1 -1
- package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js.map +1 -1
- package/dist/fields/Blocks/BlockSelector/index.js +114 -74
- package/dist/fields/Blocks/BlockSelector/index.js.map +1 -1
- package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
- package/dist/fields/Blocks/RowActions.js +75 -55
- package/dist/fields/Blocks/RowActions.js.map +1 -1
- package/dist/fields/Blocks/SectionTitle/index.css +4 -0
- package/dist/fields/Blocks/SectionTitle/index.js.map +1 -1
- package/dist/fields/Blocks/index.d.ts.map +1 -1
- package/dist/fields/Blocks/index.js +1 -0
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Checkbox/index.css +3 -3
- package/dist/fields/Checkbox/index.js.map +1 -1
- package/dist/fields/Code/index.d.ts.map +1 -1
- package/dist/fields/Code/index.js +3 -2
- package/dist/fields/Code/index.js.map +1 -1
- package/dist/fields/Collapsible/index.js +114 -73
- package/dist/fields/Collapsible/index.js.map +1 -1
- package/dist/fields/ConfirmPassword/index.js.map +1 -1
- package/dist/fields/DateTime/index.js +215 -121
- package/dist/fields/DateTime/index.js.map +1 -1
- package/dist/fields/Email/index.d.ts.map +1 -1
- package/dist/fields/Email/index.js.map +1 -1
- package/dist/fields/FieldDescription/index.js +29 -21
- package/dist/fields/FieldDescription/index.js.map +1 -1
- package/dist/fields/FieldError/index.js.map +1 -1
- package/dist/fields/FieldLabel/index.js.map +1 -1
- package/dist/fields/Group/index.css +3 -5
- package/dist/fields/Group/index.js +75 -46
- package/dist/fields/Group/index.js.map +1 -1
- package/dist/fields/Hidden/index.js +23 -15
- package/dist/fields/Hidden/index.js.map +1 -1
- package/dist/fields/JSON/index.d.ts.map +1 -1
- package/dist/fields/JSON/index.js +3 -2
- package/dist/fields/JSON/index.js.map +1 -1
- package/dist/fields/Number/Input.js.map +1 -1
- package/dist/fields/Number/index.d.ts.map +1 -1
- package/dist/fields/Number/index.js.map +1 -1
- package/dist/fields/Password/index.d.ts.map +1 -1
- package/dist/fields/Password/index.js.map +1 -1
- package/dist/fields/Password/input.js +46 -27
- package/dist/fields/Password/input.js.map +1 -1
- package/dist/fields/RadioGroup/Radio/index.js +35 -35
- package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
- package/dist/fields/RadioGroup/index.d.ts.map +1 -1
- package/dist/fields/RadioGroup/index.js.map +1 -1
- package/dist/fields/Relationship/Input.js +14 -14
- package/dist/fields/Relationship/Input.js.map +1 -1
- package/dist/fields/Relationship/index.js +216 -111
- package/dist/fields/Relationship/index.js.map +1 -1
- package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
- package/dist/fields/Relationship/select-components/SingleValue/index.js +9 -11
- package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
- package/dist/fields/Select/Input.js +26 -10
- package/dist/fields/Select/Input.js.map +1 -1
- package/dist/fields/Select/index.d.ts.map +1 -1
- package/dist/fields/Select/index.js +158 -77
- package/dist/fields/Select/index.js.map +1 -1
- package/dist/fields/Tabs/Tab/index.js.map +1 -1
- package/dist/fields/Tabs/index.css +17 -21
- package/dist/fields/Tabs/index.js +120 -112
- package/dist/fields/Tabs/index.js.map +1 -1
- package/dist/fields/Text/Input.d.ts.map +1 -1
- package/dist/fields/Text/Input.js +2 -2
- package/dist/fields/Text/Input.js.map +1 -1
- package/dist/fields/Text/index.js +172 -95
- package/dist/fields/Text/index.js.map +1 -1
- package/dist/fields/Text/types.d.ts +2 -1
- package/dist/fields/Text/types.d.ts.map +1 -1
- package/dist/fields/Text/types.js.map +1 -1
- package/dist/fields/Textarea/Input.js +58 -28
- package/dist/fields/Textarea/Input.js.map +1 -1
- package/dist/fields/Textarea/index.js +97 -55
- package/dist/fields/Textarea/index.js.map +1 -1
- package/dist/fields/Upload/HasMany/index.js.map +1 -1
- package/dist/fields/Upload/Input.d.ts.map +1 -1
- package/dist/fields/Upload/Input.js +19 -8
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
- package/dist/fields/Upload/index.css +9 -0
- package/dist/fields/Upload/index.js +101 -63
- package/dist/fields/Upload/index.js.map +1 -1
- package/dist/fields/shared/useRowFocus.js.map +1 -1
- package/dist/forms/Form/context.js.map +1 -1
- package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
- package/dist/forms/Form/fieldReducer.js.map +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +27 -8
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/Form/reduceToSerializableFields.d.ts +9 -4
- package/dist/forms/Form/reduceToSerializableFields.d.ts.map +1 -1
- package/dist/forms/Form/reduceToSerializableFields.js +34 -7
- package/dist/forms/Form/reduceToSerializableFields.js.map +1 -1
- package/dist/forms/Form/types.d.ts +1 -1
- package/dist/forms/Form/types.d.ts.map +1 -1
- package/dist/forms/Form/types.js.map +1 -1
- package/dist/forms/NullifyField/index.js.map +1 -1
- package/dist/forms/RenderFields/RenderField.js.map +1 -1
- package/dist/forms/RenderFields/context.js +3 -2
- package/dist/forms/RenderFields/context.js.map +1 -1
- package/dist/forms/RenderFields/index.css +2 -2
- package/dist/forms/RenderFields/index.js.map +1 -1
- package/dist/forms/RowLabel/Context/index.d.ts.map +1 -1
- package/dist/forms/RowLabel/Context/index.js +58 -18
- package/dist/forms/RowLabel/Context/index.js.map +1 -1
- package/dist/forms/Submit/index.js +12 -13
- package/dist/forms/Submit/index.js.map +1 -1
- package/dist/forms/WatchChildErrors/index.js.map +1 -1
- package/dist/forms/useField/index.js +1 -1
- package/dist/forms/useField/index.js.map +1 -1
- package/dist/forms/withCondition/WatchCondition.js.map +1 -1
- package/dist/graphics/Account/Gravatar/index.js +32 -17
- package/dist/graphics/Account/Gravatar/index.js.map +1 -1
- package/dist/graphics/Account/index.js +27 -18
- package/dist/graphics/Account/index.js.map +1 -1
- package/dist/hooks/useControllableState.js.map +1 -1
- package/dist/hooks/useDebounce.js.map +1 -1
- package/dist/hooks/useDebouncedCallback.js.map +1 -1
- package/dist/hooks/useDebouncedEffect.js.map +1 -1
- package/dist/hooks/useDelay.js.map +1 -1
- package/dist/hooks/useDelayedRender.js.map +1 -1
- package/dist/hooks/useElementHeightVariable.js.map +1 -1
- package/dist/hooks/useHotkey.js.map +1 -1
- package/dist/hooks/useIntersect.js.map +1 -1
- package/dist/hooks/usePayloadAPI.js.map +1 -1
- package/dist/hooks/usePopupWindow.js.map +1 -1
- package/dist/hooks/useRelatedCollections.js.map +1 -1
- package/dist/hooks/useResize.js.map +1 -1
- package/dist/hooks/useThrottledEffect.d.ts.map +1 -1
- package/dist/hooks/useThrottledEffect.js +21 -24
- package/dist/hooks/useThrottledEffect.js.map +1 -1
- package/dist/hooks/useUseAsTitle.js.map +1 -1
- package/dist/icons/Sidebar/index.d.ts.map +1 -1
- package/dist/icons/Sidebar/index.js +2 -0
- package/dist/icons/Sidebar/index.js.map +1 -1
- package/dist/icons/Table/index.css +5 -1
- package/dist/layouts/Root/RootProviders.d.ts.map +1 -1
- package/dist/layouts/Root/RootProviders.js +31 -28
- package/dist/layouts/Root/RootProviders.js.map +1 -1
- package/dist/layouts/Root/index.d.ts +1 -1
- package/dist/layouts/Root/index.d.ts.map +1 -1
- package/dist/layouts/Root/index.js +4 -15
- package/dist/layouts/Root/index.js.map +1 -1
- package/dist/providers/Actions/index.js.map +1 -1
- package/dist/providers/Auth/AuthSessionDebug/index.js.map +1 -1
- package/dist/providers/Auth/index.js +2 -2
- package/dist/providers/Auth/index.js.map +1 -1
- package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +1 -1
- package/dist/providers/ClientFunction/index.js.map +1 -1
- package/dist/providers/Config/index.js +65 -32
- package/dist/providers/Config/index.js.map +1 -1
- package/dist/providers/DocumentEvents/index.js.map +1 -1
- package/dist/providers/EditDepth/index.js.map +1 -1
- package/dist/providers/Embed/index.js.map +1 -1
- package/dist/providers/EntityVisibility/index.js.map +1 -1
- package/dist/providers/ListQuery/index.d.ts.map +1 -1
- package/dist/providers/ListQuery/index.js +5 -5
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/providers/ListQuery/mergeQuery.d.ts.map +1 -1
- package/dist/providers/ListQuery/mergeQuery.js.map +1 -1
- package/dist/providers/ListQuery/sanitizeQuery.js.map +1 -1
- package/dist/providers/ListQuery/types.d.ts +6 -1
- package/dist/providers/ListQuery/types.d.ts.map +1 -1
- package/dist/providers/ListQuery/types.js.map +1 -1
- package/dist/providers/ModalAccessibility/index.js.map +1 -1
- package/dist/providers/ModalFocus/index.d.ts +15 -0
- package/dist/providers/ModalFocus/index.d.ts.map +1 -0
- package/dist/providers/ModalFocus/index.js +70 -0
- package/dist/providers/ModalFocus/index.js.map +1 -0
- package/dist/providers/RouteCache/index.d.ts.map +1 -1
- package/dist/providers/RouteCache/index.js +37 -25
- package/dist/providers/RouteCache/index.js.map +1 -1
- package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
- package/dist/providers/RouteTransition/index.d.ts +3 -2
- package/dist/providers/RouteTransition/index.d.ts.map +1 -1
- package/dist/providers/RouteTransition/index.js +78 -105
- package/dist/providers/RouteTransition/index.js.map +1 -1
- package/dist/providers/RouterAdapter/index.js.map +1 -1
- package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
- package/dist/providers/ServerFunctions/index.js +34 -23
- package/dist/providers/ServerFunctions/index.js.map +1 -1
- package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +1 -1
- package/dist/providers/TableColumns/index.d.ts.map +1 -1
- package/dist/providers/TableColumns/index.js +18 -35
- package/dist/providers/TableColumns/index.js.map +1 -1
- package/dist/providers/Theme/index.js.map +1 -1
- package/dist/providers/ToastContainer/index.js.map +1 -1
- package/dist/providers/Translation/index.js.map +1 -1
- package/dist/providers/UploadControls/index.js.map +1 -1
- package/dist/providers/UploadEdits/index.js.map +1 -1
- package/dist/providers/UploadHandlers/index.js.map +1 -1
- package/dist/styles.css +87 -3
- package/dist/templates/Default/Wrapper/index.js.map +1 -1
- package/dist/templates/Default/index.css +0 -1
- package/dist/utilities/buildClientFieldSchemaMap/traverseFields.d.ts.map +1 -1
- package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +32 -6
- package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -1
- package/dist/utilities/formatDocTitle/formatLexicalDocTitle.js.map +1 -1
- package/dist/utilities/getDisplayedFieldValue.d.ts +8 -2
- package/dist/utilities/getDisplayedFieldValue.d.ts.map +1 -1
- package/dist/utilities/getDisplayedFieldValue.js +11 -1
- package/dist/utilities/getDisplayedFieldValue.js.map +1 -1
- package/dist/utilities/getHasScheduledPublish.js.map +1 -1
- package/dist/utilities/groupNavItems.js.map +1 -1
- package/dist/utilities/handleLivePreview.js.map +1 -1
- package/dist/utilities/handleServerFunctions.d.ts +2 -10
- package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
- package/dist/utilities/handleServerFunctions.js +3 -7
- package/dist/utilities/handleServerFunctions.js.map +1 -1
- package/dist/utilities/hasSavePermission.js.map +1 -1
- package/dist/utilities/schedulePublishHandler.js.map +1 -1
- package/dist/utilities/serverFunctionRegistry.d.ts +2 -7
- package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
- package/dist/utilities/serverFunctionRegistry.js +4 -9
- package/dist/utilities/serverFunctionRegistry.js.map +1 -1
- package/dist/views/API/LocaleSelector/index.js.map +1 -1
- package/dist/views/API/index.client.d.ts.map +1 -1
- package/dist/views/API/index.client.js +1 -0
- package/dist/views/API/index.client.js.map +1 -1
- package/dist/views/Account/ResetPreferences/index.js +17 -17
- package/dist/views/Account/ResetPreferences/index.js.map +1 -1
- package/dist/views/Account/Settings/LanguageSelector.js.map +1 -1
- package/dist/views/Account/ToggleHighContrast/index.js.map +1 -1
- package/dist/views/Account/ToggleTheme/index.js +106 -27
- package/dist/views/Account/ToggleTheme/index.js.map +1 -1
- package/dist/views/Account/index.client.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +30 -21
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +373 -151
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js +18 -5
- package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/utils/localeUtils.js.map +1 -1
- package/dist/views/Document/generateEditViewMetadata.js.map +1 -1
- package/dist/views/Document/index.js +1 -1
- package/dist/views/Document/index.js.map +1 -1
- package/dist/views/Document/renderDocumentSlots.js.map +1 -1
- package/dist/views/Edit/Auth/APIKeyGenerationModal.js.map +1 -1
- package/dist/views/Edit/Auth/index.d.ts.map +1 -1
- package/dist/views/Edit/Auth/index.js +13 -11
- package/dist/views/Edit/Auth/index.js.map +1 -1
- package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
- package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
- package/dist/views/Edit/index.css +26 -0
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +28 -17
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +45 -41
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
- package/dist/views/HierarchyList/DocumentListSelection/index.js.map +1 -1
- package/dist/views/HierarchyList/HierarchyListHeader/index.js.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/DateCell.js +8 -9
- package/dist/views/HierarchyList/HierarchyTable/DateCell.js.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.js.map +1 -1
- package/dist/views/HierarchyList/TypeFilter/index.js.map +1 -1
- package/dist/views/HierarchyList/index.js +2 -2
- package/dist/views/HierarchyList/index.js.map +1 -1
- package/dist/views/List/DocumentGrid/index.js.map +1 -1
- package/dist/views/List/GroupedDocumentGrid/index.js.map +1 -1
- package/dist/views/List/ListSelection/index.js.map +1 -1
- package/dist/views/Login/LoginField/index.js.map +1 -1
- package/dist/views/Login/LoginForm/index.js.map +1 -1
- package/dist/views/Logout/LogoutClient.js.map +1 -1
- package/dist/views/Logout/index.js.map +1 -1
- package/dist/views/NotFound/index.client.js.map +1 -1
- package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -1
- package/dist/views/Verify/index.client.js.map +1 -1
- package/dist/views/Version/Default/SetStepNav.js.map +1 -1
- package/dist/views/Version/Default/index.js +321 -181
- package/dist/views/Version/Default/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js +9 -11
- package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +41 -29
- package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +19 -19
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
- package/dist/views/Version/Restore/index.d.ts.map +1 -1
- package/dist/views/Version/Restore/index.js +176 -77
- package/dist/views/Version/Restore/index.js.map +1 -1
- package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js.map +1 -1
- package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -1
- package/dist/views/Version/SelectComparison/index.js +113 -33
- package/dist/views/Version/SelectComparison/index.js.map +1 -1
- package/dist/views/Version/SelectLocales/index.js.map +1 -1
- package/dist/views/Version/index.js.map +1 -1
- package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js.map +1 -1
- package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
- package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
- package/dist/views/Versions/cells/VersionDrawerCreatedAtCell/index.js.map +1 -1
- package/dist/views/Versions/index.client.js +9 -11
- package/dist/views/Versions/index.client.js.map +1 -1
- package/dist/views/Versions/index.js +2 -2
- package/dist/views/Versions/index.js.map +1 -1
- package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.css +28 -0
- package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.d.ts +16 -0
- package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.d.ts.map +1 -0
- package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.js +98 -0
- package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.js.map +1 -0
- package/dist/widgets/Activity/Tabs/PinnedDocuments/index.css +70 -0
- package/dist/widgets/Activity/Tabs/PinnedDocuments/index.d.ts +13 -0
- package/dist/widgets/Activity/Tabs/PinnedDocuments/index.d.ts.map +1 -0
- package/dist/widgets/Activity/Tabs/PinnedDocuments/index.js +81 -0
- package/dist/widgets/Activity/Tabs/PinnedDocuments/index.js.map +1 -0
- package/dist/widgets/{RecentlyViewed/pinnedPreferences.d.ts → Activity/Tabs/PinnedDocuments/preferences.d.ts} +6 -9
- package/dist/widgets/Activity/Tabs/PinnedDocuments/preferences.d.ts.map +1 -0
- package/dist/widgets/{RecentlyViewed/pinnedPreferences.js → Activity/Tabs/PinnedDocuments/preferences.js} +3 -22
- package/dist/widgets/Activity/Tabs/PinnedDocuments/preferences.js.map +1 -0
- package/dist/widgets/Activity/Tabs/PinnedDocuments/usePinnedDocuments.d.ts +39 -0
- package/dist/widgets/Activity/Tabs/PinnedDocuments/usePinnedDocuments.d.ts.map +1 -0
- package/dist/widgets/Activity/Tabs/PinnedDocuments/usePinnedDocuments.js +83 -0
- package/dist/widgets/Activity/Tabs/PinnedDocuments/usePinnedDocuments.js.map +1 -0
- package/dist/widgets/Activity/Tabs/RecentDocuments/index.d.ts +9 -0
- package/dist/widgets/Activity/Tabs/RecentDocuments/index.d.ts.map +1 -0
- package/dist/widgets/Activity/Tabs/RecentDocuments/index.js +23 -0
- package/dist/widgets/Activity/Tabs/RecentDocuments/index.js.map +1 -0
- package/dist/widgets/Activity/components/DocumentList/index.css +61 -0
- package/dist/widgets/Activity/components/DocumentList/index.d.ts +15 -0
- package/dist/widgets/Activity/components/DocumentList/index.d.ts.map +1 -0
- package/dist/widgets/Activity/components/DocumentList/index.js +56 -0
- package/dist/widgets/Activity/components/DocumentList/index.js.map +1 -0
- package/dist/widgets/Activity/components/EmptyState/index.css +47 -0
- package/dist/widgets/Activity/components/EmptyState/index.d.ts +12 -0
- package/dist/widgets/Activity/components/EmptyState/index.d.ts.map +1 -0
- package/dist/widgets/Activity/components/EmptyState/index.js +37 -0
- package/dist/widgets/Activity/components/EmptyState/index.js.map +1 -0
- package/dist/widgets/Activity/components/Pagination/index.css +42 -0
- package/dist/widgets/Activity/components/Pagination/index.d.ts +20 -0
- package/dist/widgets/Activity/components/Pagination/index.d.ts.map +1 -0
- package/dist/widgets/Activity/components/Pagination/index.js +125 -0
- package/dist/widgets/Activity/components/Pagination/index.js.map +1 -0
- package/dist/widgets/Activity/components/StatusPill/index.css +24 -0
- package/dist/widgets/Activity/components/StatusPill/index.d.ts +8 -0
- package/dist/widgets/Activity/components/StatusPill/index.d.ts.map +1 -0
- package/dist/widgets/Activity/components/StatusPill/index.js +18 -0
- package/dist/widgets/Activity/components/StatusPill/index.js.map +1 -0
- package/dist/widgets/Activity/index.client.d.ts +15 -0
- package/dist/widgets/Activity/index.client.d.ts.map +1 -0
- package/dist/widgets/Activity/index.client.js +186 -0
- package/dist/widgets/Activity/index.client.js.map +1 -0
- package/dist/widgets/Activity/index.css +320 -0
- package/dist/widgets/Activity/index.d.ts +13 -0
- package/dist/widgets/Activity/index.d.ts.map +1 -0
- package/dist/widgets/Activity/index.js +100 -0
- package/dist/widgets/Activity/index.js.map +1 -0
- package/dist/widgets/{RecentlyViewed/index.client.d.ts → Activity/types.d.ts} +6 -13
- package/dist/widgets/Activity/types.d.ts.map +1 -0
- package/dist/widgets/Activity/types.js +2 -0
- package/dist/widgets/Activity/types.js.map +1 -0
- package/dist/widgets/Activity/utils/cache.d.ts +33 -0
- package/dist/widgets/Activity/utils/cache.d.ts.map +1 -0
- package/dist/widgets/Activity/utils/cache.js +72 -0
- package/dist/widgets/Activity/utils/cache.js.map +1 -0
- package/dist/widgets/Activity/utils/constants.d.ts +5 -0
- package/dist/widgets/Activity/utils/constants.d.ts.map +1 -0
- package/dist/widgets/Activity/utils/constants.js +4 -0
- package/dist/widgets/Activity/utils/constants.js.map +1 -0
- package/dist/widgets/Activity/utils/documents.d.ts +11 -0
- package/dist/widgets/Activity/utils/documents.d.ts.map +1 -0
- package/dist/widgets/Activity/utils/documents.js +38 -0
- package/dist/widgets/Activity/utils/documents.js.map +1 -0
- package/dist/widgets/Activity/utils/getActivityWidgetDocs.d.ts +20 -0
- package/dist/widgets/Activity/utils/getActivityWidgetDocs.d.ts.map +1 -0
- package/dist/widgets/{RecentlyViewed/getDocuments.js → Activity/utils/getActivityWidgetDocs.js} +24 -21
- package/dist/widgets/Activity/utils/getActivityWidgetDocs.js.map +1 -0
- package/dist/widgets/Activity/utils/state.d.ts +44 -0
- package/dist/widgets/Activity/utils/state.d.ts.map +1 -0
- package/dist/widgets/Activity/utils/state.js +80 -0
- package/dist/widgets/Activity/utils/state.js.map +1 -0
- package/dist/widgets/Activity/utils/useActivityDocuments.d.ts +35 -0
- package/dist/widgets/Activity/utils/useActivityDocuments.d.ts.map +1 -0
- package/dist/widgets/Activity/utils/useActivityDocuments.js +141 -0
- package/dist/widgets/Activity/utils/useActivityDocuments.js.map +1 -0
- package/dist/widgets/Activity/utils/usePageSize.d.ts +11 -0
- package/dist/widgets/Activity/utils/usePageSize.d.ts.map +1 -0
- package/dist/widgets/Activity/utils/usePageSize.js +35 -0
- package/dist/widgets/Activity/utils/usePageSize.js.map +1 -0
- package/dist/widgets/CollectionCards/index.client.d.ts +3 -0
- package/dist/widgets/CollectionCards/index.client.d.ts.map +1 -1
- package/dist/widgets/CollectionCards/index.client.js +3 -0
- package/dist/widgets/CollectionCards/index.client.js.map +1 -1
- package/dist/widgets/CollectionCards/index.d.ts +3 -0
- package/dist/widgets/CollectionCards/index.d.ts.map +1 -1
- package/dist/widgets/CollectionCards/index.js +3 -0
- package/dist/widgets/CollectionCards/index.js.map +1 -1
- package/dist/widgets/CollectionQuery/SortField/index.d.ts +3 -0
- package/dist/widgets/CollectionQuery/SortField/index.d.ts.map +1 -1
- package/dist/widgets/CollectionQuery/SortField/index.js +181 -73
- package/dist/widgets/CollectionQuery/SortField/index.js.map +1 -1
- package/dist/widgets/CollectionQuery/index.d.ts +3 -0
- package/dist/widgets/CollectionQuery/index.d.ts.map +1 -1
- package/dist/widgets/CollectionQuery/index.js +3 -0
- package/dist/widgets/CollectionQuery/index.js.map +1 -1
- package/dist/widgets/UploadDropzone/CollectionsField/index.d.ts +3 -0
- package/dist/widgets/UploadDropzone/CollectionsField/index.d.ts.map +1 -1
- package/dist/widgets/UploadDropzone/CollectionsField/index.js +65 -14
- package/dist/widgets/UploadDropzone/CollectionsField/index.js.map +1 -1
- package/dist/widgets/UploadDropzone/index.client.d.ts +3 -0
- package/dist/widgets/UploadDropzone/index.client.d.ts.map +1 -1
- package/dist/widgets/UploadDropzone/index.client.js +3 -0
- package/dist/widgets/UploadDropzone/index.client.js.map +1 -1
- package/dist/widgets/UploadDropzone/index.d.ts +3 -0
- package/dist/widgets/UploadDropzone/index.d.ts.map +1 -1
- package/dist/widgets/UploadDropzone/index.js +3 -0
- package/dist/widgets/UploadDropzone/index.js.map +1 -1
- package/dist/widgets/Welcome/index.d.ts +3 -0
- package/dist/widgets/Welcome/index.d.ts.map +1 -1
- package/dist/widgets/Welcome/index.js +3 -0
- package/dist/widgets/Welcome/index.js.map +1 -1
- package/dist/widgets/WidgetCard/index.css +0 -20
- package/dist/widgets/{RecentlyViewed/CollectionsField → shared/CollectionFilter}/index.css +2 -2
- package/dist/widgets/{RecentlyViewed/CollectionsField → shared/CollectionFilter}/index.d.ts +3 -1
- package/dist/widgets/shared/CollectionFilter/index.d.ts.map +1 -0
- package/dist/widgets/shared/CollectionFilter/index.js +170 -0
- package/dist/widgets/shared/CollectionFilter/index.js.map +1 -0
- package/package.json +21 -23
- package/dist/exports/client/chunk-2AY67NFV.js.map +0 -7
- package/dist/exports/client/chunk-Z42OBP5U.js +0 -27
- package/dist/exports/client/chunk-Z42OBP5U.js.map +0 -7
- package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts.map +0 -1
- package/dist/widgets/RecentlyViewed/CollectionsField/index.js +0 -102
- package/dist/widgets/RecentlyViewed/CollectionsField/index.js.map +0 -1
- package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.css +0 -73
- package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.d.ts +0 -19
- package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.d.ts.map +0 -1
- package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.js +0 -122
- package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.js.map +0 -1
- package/dist/widgets/RecentlyViewed/getDocuments.d.ts +0 -20
- package/dist/widgets/RecentlyViewed/getDocuments.d.ts.map +0 -1
- package/dist/widgets/RecentlyViewed/getDocuments.js.map +0 -1
- package/dist/widgets/RecentlyViewed/index.client.d.ts.map +0 -1
- package/dist/widgets/RecentlyViewed/index.client.js +0 -401
- package/dist/widgets/RecentlyViewed/index.client.js.map +0 -1
- package/dist/widgets/RecentlyViewed/index.css +0 -318
- package/dist/widgets/RecentlyViewed/index.d.ts +0 -10
- package/dist/widgets/RecentlyViewed/index.d.ts.map +0 -1
- package/dist/widgets/RecentlyViewed/index.js +0 -45
- package/dist/widgets/RecentlyViewed/index.js.map +0 -1
- package/dist/widgets/RecentlyViewed/pinnedPreferences.d.ts.map +0 -1
- package/dist/widgets/RecentlyViewed/pinnedPreferences.js.map +0 -1
- package/dist/widgets/RecentlyViewed/recents.d.ts +0 -8
- package/dist/widgets/RecentlyViewed/recents.d.ts.map +0 -1
- package/dist/widgets/RecentlyViewed/recents.js +0 -19
- package/dist/widgets/RecentlyViewed/recents.js.map +0 -1
- /package/dist/exports/client/{CodeEditor-S7MOGZSR.js.map → CodeEditor-23ZGBN6S.js.map} +0 -0
- /package/dist/exports/client/{DatePicker-POZJVQP4.js.map → DatePicker-AZBZPMY6.js.map} +0 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export const documentKey = ({
|
|
2
|
+
id,
|
|
3
|
+
collectionSlug
|
|
4
|
+
}) => `${collectionSlug}:${String(id)}`;
|
|
5
|
+
export function getValueByPath({
|
|
6
|
+
object,
|
|
7
|
+
path
|
|
8
|
+
}) {
|
|
9
|
+
if (!path) {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
return path.split('.').reduce((value, segment) => {
|
|
13
|
+
if (!value || typeof value !== 'object') {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
return value[segment];
|
|
17
|
+
}, object);
|
|
18
|
+
}
|
|
19
|
+
export function getDocumentReferences({
|
|
20
|
+
value
|
|
21
|
+
}) {
|
|
22
|
+
if (!value || typeof value !== 'object' || !('items' in value) || !Array.isArray(value.items)) {
|
|
23
|
+
return [];
|
|
24
|
+
}
|
|
25
|
+
const keys = new Set();
|
|
26
|
+
return value.items.filter(item => {
|
|
27
|
+
if (!item || typeof item !== 'object' || typeof item.collectionSlug !== 'string' || typeof item.id !== 'string' && typeof item.id !== 'number') {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
const key = documentKey(item);
|
|
31
|
+
if (keys.has(key)) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
keys.add(key);
|
|
35
|
+
return true;
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=documents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documents.js","names":["documentKey","id","collectionSlug","String","getValueByPath","object","path","undefined","split","reduce","value","segment","getDocumentReferences","Array","isArray","items","keys","Set","filter","item","key","has","add"],"sources":["../../../../src/widgets/Activity/utils/documents.ts"],"sourcesContent":["import type { PinnedDocument } from 'payload'\n\nexport type DocumentReference = PinnedDocument\n\nexport const documentKey = ({ id, collectionSlug }: DocumentReference): string =>\n `${collectionSlug}:${String(id)}`\n\nexport function getValueByPath({\n object,\n path,\n}: {\n object: Record<string, unknown>\n path: string\n}): unknown {\n if (!path) {\n return undefined\n }\n\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\nexport function getDocumentReferences({ value }: { value: unknown }): DocumentReference[] {\n if (!value || typeof value !== 'object' || !('items' in value) || !Array.isArray(value.items)) {\n return []\n }\n const keys = new Set<string>()\n\n return value.items.filter((item): item is DocumentReference => {\n if (\n !item ||\n typeof item !== 'object' ||\n typeof item.collectionSlug !== 'string' ||\n (typeof item.id !== 'string' && typeof item.id !== 'number')\n ) {\n return false\n }\n const key = documentKey(item)\n\n if (keys.has(key)) {\n return false\n }\n keys.add(key)\n return true\n })\n}\n"],"mappings":"AAIA,OAAO,MAAMA,WAAA,GAAcA,CAAC;EAAEC,EAAE;EAAEC;AAAc,CAAqB,KACnE,GAAGA,cAAA,IAAkBC,MAAA,CAAOF,EAAA,GAAK;AAEnC,OAAO,SAASG,eAAe;EAC7BC,MAAM;EACNC;AAAI,CAIL;EACC,IAAI,CAACA,IAAA,EAAM;IACT,OAAOC,SAAA;EACT;EAEA,OAAOD,IAAA,CAAKE,KAAK,CAAC,KAAKC,MAAM,CAAU,CAACC,KAAA,EAAOC,OAAA;IAC7C,IAAI,CAACD,KAAA,IAAS,OAAOA,KAAA,KAAU,UAAU;MACvC,OAAOH,SAAA;IACT;IAEA,OAAOG,KAAkC,CAACC,OAAA,CAAQ;EACpD,GAAGN,MAAA;AACL;AAEA,OAAO,SAASO,sBAAsB;EAAEF;AAAK,CAAsB;EACjE,IAAI,CAACA,KAAA,IAAS,OAAOA,KAAA,KAAU,YAAY,EAAE,WAAWA,KAAI,KAAM,CAACG,KAAA,CAAMC,OAAO,CAACJ,KAAA,CAAMK,KAAK,GAAG;IAC7F,OAAO,EAAE;EACX;EACA,MAAMC,IAAA,GAAO,IAAIC,GAAA;EAEjB,OAAOP,KAAA,CAAMK,KAAK,CAACG,MAAM,CAAEC,IAAA;IACzB,IACE,CAACA,IAAA,IACD,OAAOA,IAAA,KAAS,YAChB,OAAOA,IAAA,CAAKjB,cAAc,KAAK,YAC9B,OAAOiB,IAAA,CAAKlB,EAAE,KAAK,YAAY,OAAOkB,IAAA,CAAKlB,EAAE,KAAK,UACnD;MACA,OAAO;IACT;IACA,MAAMmB,GAAA,GAAMpB,WAAA,CAAYmB,IAAA;IAExB,IAAIH,IAAA,CAAKK,GAAG,CAACD,GAAA,GAAM;MACjB,OAAO;IACT;IACAJ,IAAA,CAAKM,GAAG,CAACF,GAAA;IACT,OAAO;EACT;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { PayloadRequest, ServerFunction } from 'payload';
|
|
2
|
+
import type { ActivityDocument } from '../types.js';
|
|
3
|
+
export type ActivityDocumentType = 'pinned' | 'recents';
|
|
4
|
+
export type ActivityDocumentsArgs = {
|
|
5
|
+
excludedCollections?: string[];
|
|
6
|
+
limit: number;
|
|
7
|
+
page: number;
|
|
8
|
+
shouldIncludePinPlaceholder?: boolean;
|
|
9
|
+
type: ActivityDocumentType;
|
|
10
|
+
};
|
|
11
|
+
export type ActivityDocumentsPage = {
|
|
12
|
+
items: ActivityDocument[];
|
|
13
|
+
page: number;
|
|
14
|
+
totalDocs: number;
|
|
15
|
+
};
|
|
16
|
+
export declare const getActivityWidgetDocsHandler: ServerFunction<ActivityDocumentsArgs, Promise<ActivityDocumentsPage>>;
|
|
17
|
+
export declare function getActivityWidgetDocs({ type, excludedCollections, limit, page, req, shouldIncludePinPlaceholder, }: {
|
|
18
|
+
req: PayloadRequest;
|
|
19
|
+
} & ActivityDocumentsArgs): Promise<ActivityDocumentsPage>;
|
|
20
|
+
//# sourceMappingURL=getActivityWidgetDocs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getActivityWidgetDocs.d.ts","sourceRoot":"","sources":["../../../../src/widgets/Activity/utils/getActivityWidgetDocs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAS,MAAM,SAAS,CAAA;AAMpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAUnD,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,SAAS,CAAA;AACvD,MAAM,MAAM,qBAAqB,GAAG;IAClC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,2BAA2B,CAAC,EAAE,OAAO,CAAA;IACrC,IAAI,EAAE,oBAAoB,CAAA;CAC3B,CAAA;AACD,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,gBAAgB,EAAE,CAAA;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAKD,eAAO,MAAM,4BAA4B,EAAE,cAAc,CACvD,qBAAqB,EACrB,OAAO,CAAC,qBAAqB,CAAC,CACP,CAAA;AAEzB,wBAAsB,qBAAqB,CAAC,EAC1C,IAAI,EACJ,mBAAwB,EACxB,KAAK,EACL,IAAI,EACJ,GAAG,EACH,2BAAmC,GACpC,EAAE;IAAE,GAAG,EAAE,cAAc,CAAA;CAAE,GAAG,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAsElF"}
|
package/dist/widgets/{RecentlyViewed/getDocuments.js → Activity/utils/getActivityWidgetDocs.js}
RENAMED
|
@@ -1,32 +1,31 @@
|
|
|
1
1
|
import { getTranslation } from '@payloadcms/translations';
|
|
2
2
|
import { UnauthorizedError } from 'payload';
|
|
3
3
|
import { formatAdminURL, PREFERENCE_KEYS } from 'payload/shared';
|
|
4
|
-
import { formatRelativeDate, getRelativeTimeFormat } from '
|
|
5
|
-
import { getDocumentThumbnail } from '
|
|
6
|
-
import { getDocumentThumbnailPopulate } from '
|
|
7
|
-
import { getDocumentThumbnailSelect } from '
|
|
8
|
-
import { enrichDocsWithVersionStatus } from '
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
export
|
|
12
|
-
|
|
4
|
+
import { formatRelativeDate, getRelativeTimeFormat } from '../../../utilities/formatRelativeDate.js';
|
|
5
|
+
import { getDocumentThumbnail } from '../../../utilities/getDocumentThumbnail.js';
|
|
6
|
+
import { getDocumentThumbnailPopulate } from '../../../utilities/getDocumentThumbnailPopulate.js';
|
|
7
|
+
import { getDocumentThumbnailSelect } from '../../../utilities/getDocumentThumbnailSelect.js';
|
|
8
|
+
import { enrichDocsWithVersionStatus } from '../../../views/List/enrichDocsWithVersionStatus.js';
|
|
9
|
+
import { documentKey, getDocumentReferences, getValueByPath } from './documents.js';
|
|
10
|
+
export const getActivityWidgetDocsHandler = getActivityWidgetDocs;
|
|
11
|
+
export async function getActivityWidgetDocs({
|
|
12
|
+
type,
|
|
13
13
|
excludedCollections = [],
|
|
14
14
|
limit,
|
|
15
15
|
page,
|
|
16
16
|
req,
|
|
17
|
-
shouldIncludePinPlaceholder = false
|
|
18
|
-
tab
|
|
17
|
+
shouldIncludePinPlaceholder = false
|
|
19
18
|
}) {
|
|
20
19
|
if (!req.user) {
|
|
21
20
|
throw new UnauthorizedError(req.t);
|
|
22
21
|
}
|
|
23
|
-
if (!
|
|
22
|
+
if (!Number.isSafeInteger(limit) || limit < 1 || limit > 100 || !Number.isSafeInteger(page) || page < 1) {
|
|
24
23
|
throw new Error('Invalid dashboard page');
|
|
25
24
|
}
|
|
26
|
-
if (
|
|
27
|
-
throw new Error('Invalid
|
|
25
|
+
if (type !== 'pinned' && type !== 'recents') {
|
|
26
|
+
throw new Error('Invalid activity document type');
|
|
28
27
|
}
|
|
29
|
-
const key =
|
|
28
|
+
const key = type === 'pinned' ? PREFERENCE_KEYS.PINNED_DOCUMENTS : PREFERENCE_KEYS.RECENTLY_VIEWED;
|
|
30
29
|
const preference = await req.payload.find({
|
|
31
30
|
collection: 'payload-preferences',
|
|
32
31
|
depth: 0,
|
|
@@ -44,18 +43,21 @@ export async function getDashboardDocuments({
|
|
|
44
43
|
}]
|
|
45
44
|
}
|
|
46
45
|
});
|
|
47
|
-
const excluded = new Set(
|
|
48
|
-
const storedReferences =
|
|
46
|
+
const excluded = new Set(type === 'recents' ? excludedCollections : []);
|
|
47
|
+
const storedReferences = getDocumentReferences({
|
|
49
48
|
value: preference.docs[0]?.value
|
|
50
49
|
}).filter(({
|
|
51
50
|
collectionSlug
|
|
52
|
-
}) =>
|
|
51
|
+
}) => {
|
|
52
|
+
const collection = req.payload.collections[collectionSlug];
|
|
53
|
+
return !excluded.has(collectionSlug) && collection && collection.config.admin.group !== false;
|
|
54
|
+
});
|
|
53
55
|
const availableReferences = await getAvailableReferences({
|
|
54
56
|
references: storedReferences,
|
|
55
57
|
req
|
|
56
58
|
});
|
|
57
59
|
const totalDocs = availableReferences.length;
|
|
58
|
-
const lastPage = Math.max(1, Math.ceil((totalDocs + Number(
|
|
60
|
+
const lastPage = Math.max(1, Math.ceil((totalDocs + Number(type === 'pinned' && shouldIncludePinPlaceholder)) / limit));
|
|
59
61
|
page = Math.min(page, lastPage);
|
|
60
62
|
const references = availableReferences.slice((page - 1) * limit, page * limit);
|
|
61
63
|
const documents = await loadDocuments({
|
|
@@ -64,7 +66,7 @@ export async function getDashboardDocuments({
|
|
|
64
66
|
});
|
|
65
67
|
const items = references.map(reference => {
|
|
66
68
|
const document = documents.get(documentKey(reference));
|
|
67
|
-
if (!document ||
|
|
69
|
+
if (!document || type !== 'recents') {
|
|
68
70
|
return document;
|
|
69
71
|
}
|
|
70
72
|
const viewedAt = reference.viewedAt;
|
|
@@ -236,6 +238,7 @@ function enrichDocument({
|
|
|
236
238
|
adminRoute: payload.config.routes.admin,
|
|
237
239
|
path: `/collections/${collectionSlug}/${encodeURIComponent(String(doc.id))}`
|
|
238
240
|
}),
|
|
241
|
+
isChanged: status === 'changed',
|
|
239
242
|
isDraft: status === 'draft',
|
|
240
243
|
statusLabel: status === 'draft' ? i18n.t('version:draft') : status === 'changed' ? i18n.t('version:changed') : status === 'published' ? i18n.t('version:published') : undefined,
|
|
241
244
|
thumbnailURL: getDocumentThumbnail({
|
|
@@ -247,4 +250,4 @@ function enrichDocument({
|
|
|
247
250
|
updatedAt: doc.updatedAt
|
|
248
251
|
};
|
|
249
252
|
}
|
|
250
|
-
//# sourceMappingURL=
|
|
253
|
+
//# sourceMappingURL=getActivityWidgetDocs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getActivityWidgetDocs.js","names":["getTranslation","UnauthorizedError","formatAdminURL","PREFERENCE_KEYS","formatRelativeDate","getRelativeTimeFormat","getDocumentThumbnail","getDocumentThumbnailPopulate","getDocumentThumbnailSelect","enrichDocsWithVersionStatus","documentKey","getDocumentReferences","getValueByPath","getActivityWidgetDocsHandler","getActivityWidgetDocs","type","excludedCollections","limit","page","req","shouldIncludePinPlaceholder","user","t","Number","isSafeInteger","Error","key","PINNED_DOCUMENTS","RECENTLY_VIEWED","preference","payload","find","collection","depth","overrideAccess","where","and","ownerWhere","equals","excluded","Set","storedReferences","value","docs","filter","collectionSlug","collections","has","config","admin","group","availableReferences","getAvailableReferences","references","totalDocs","length","lastPage","Math","max","ceil","min","slice","documents","loadDocuments","items","map","reference","document","get","viewedAt","dateLabel","relativeTimeFormat","i18n","language","undefined","dateTime","item","Boolean","available","Promise","all","groupReferenceIDs","entries","ids","result","disableErrors","draft","pagination","select","id","sort","in","doc","add","idsByCollection","Map","push","set","collectionConfig","useAsTitle","split","_status","updatedAt","useAsThumbnail","upload","width","populate","enriched","data","enrichDocument","rawTitle","object","path","status","_displayStatus","href","adminRoute","routes","encodeURIComponent","String","isChanged","isDraft","statusLabel","thumbnailURL","title","typeLabel","labels","plural"],"sources":["../../../../src/widgets/Activity/utils/getActivityWidgetDocs.ts"],"sourcesContent":["import type { PayloadRequest, ServerFunction, Where } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { UnauthorizedError } from 'payload'\nimport { formatAdminURL, PREFERENCE_KEYS } from 'payload/shared'\n\nimport type { ActivityDocument } from '../types.js'\nimport type { DocumentReference } from './documents.js'\n\nimport { formatRelativeDate, getRelativeTimeFormat } from '../../../utilities/formatRelativeDate.js'\nimport { getDocumentThumbnail } from '../../../utilities/getDocumentThumbnail.js'\nimport { getDocumentThumbnailPopulate } from '../../../utilities/getDocumentThumbnailPopulate.js'\nimport { getDocumentThumbnailSelect } from '../../../utilities/getDocumentThumbnailSelect.js'\nimport { enrichDocsWithVersionStatus } from '../../../views/List/enrichDocsWithVersionStatus.js'\nimport { documentKey, getDocumentReferences, getValueByPath } from './documents.js'\n\nexport type ActivityDocumentType = 'pinned' | 'recents'\nexport type ActivityDocumentsArgs = {\n excludedCollections?: string[]\n limit: number\n page: number\n shouldIncludePinPlaceholder?: boolean\n type: ActivityDocumentType\n}\nexport type ActivityDocumentsPage = {\n items: ActivityDocument[]\n page: number\n totalDocs: number\n}\n\ntype Reference = { viewedAt?: string } & DocumentReference\ntype QueryDoc = { id: number | string; updatedAt?: string } & Record<string, unknown>\n\nexport const getActivityWidgetDocsHandler: ServerFunction<\n ActivityDocumentsArgs,\n Promise<ActivityDocumentsPage>\n> = getActivityWidgetDocs\n\nexport async function getActivityWidgetDocs({\n type,\n excludedCollections = [],\n limit,\n page,\n req,\n shouldIncludePinPlaceholder = false,\n}: { req: PayloadRequest } & ActivityDocumentsArgs): Promise<ActivityDocumentsPage> {\n if (!req.user) {\n throw new UnauthorizedError(req.t)\n }\n if (\n !Number.isSafeInteger(limit) ||\n limit < 1 ||\n limit > 100 ||\n !Number.isSafeInteger(page) ||\n page < 1\n ) {\n throw new Error('Invalid dashboard page')\n }\n if (type !== 'pinned' && type !== 'recents') {\n throw new Error('Invalid activity document type')\n }\n\n const key = type === 'pinned' ? PREFERENCE_KEYS.PINNED_DOCUMENTS : PREFERENCE_KEYS.RECENTLY_VIEWED\n const preference = await req.payload.find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n overrideAccess: false,\n req,\n user: req.user,\n where: { and: [ownerWhere({ req }), { key: { equals: key } }] },\n })\n const excluded = new Set(type === 'recents' ? excludedCollections : [])\n const storedReferences = getDocumentReferences({ value: preference.docs[0]?.value }).filter(\n ({ collectionSlug }) => {\n const collection = req.payload.collections[collectionSlug]\n\n return !excluded.has(collectionSlug) && collection && collection.config.admin.group !== false\n },\n )\n const availableReferences = await getAvailableReferences({ references: storedReferences, req })\n const totalDocs = availableReferences.length\n const lastPage = Math.max(\n 1,\n Math.ceil((totalDocs + Number(type === 'pinned' && shouldIncludePinPlaceholder)) / limit),\n )\n\n page = Math.min(page, lastPage)\n const references = availableReferences.slice((page - 1) * limit, page * limit)\n\n const documents = await loadDocuments({ references, req })\n const items = references\n .map((reference): ActivityDocument | undefined => {\n const document = documents.get(documentKey(reference))\n if (!document || type !== 'recents') {\n return document\n }\n\n const viewedAt = reference.viewedAt\n\n return {\n ...document,\n dateLabel: viewedAt\n ? formatRelativeDate({\n relativeTimeFormat: getRelativeTimeFormat(req.i18n.language),\n value: viewedAt,\n })\n : undefined,\n dateTime: viewedAt,\n viewedAt,\n }\n })\n .filter((item): item is ActivityDocument => Boolean(item))\n\n return { items, page, totalDocs }\n}\n\n/** Check identities without populating documents, so deleted or forbidden references do not create empty pages. */\nasync function getAvailableReferences({\n references,\n req,\n}: {\n references: Reference[]\n req: PayloadRequest\n}): Promise<Reference[]> {\n const available = new Set<string>()\n\n await Promise.all(\n [...groupReferenceIDs({ references }).entries()].map(async ([collectionSlug, ids]) => {\n const result = await req.payload.find({\n collection: collectionSlug,\n depth: 0,\n disableErrors: true,\n draft: true,\n limit: ids.length,\n overrideAccess: false,\n pagination: false,\n req,\n select: { id: true },\n sort: 'id',\n user: req.user,\n where: { id: { in: ids } },\n })\n\n for (const doc of result.docs) {\n available.add(documentKey({ id: doc.id, collectionSlug }))\n }\n }),\n )\n\n return references.filter((reference) => available.has(documentKey(reference)))\n}\n\nfunction groupReferenceIDs({\n references,\n}: {\n references: Reference[]\n}): Map<string, Array<number | string>> {\n const idsByCollection = new Map<string, Array<number | string>>()\n\n for (const reference of references) {\n const ids = idsByCollection.get(reference.collectionSlug) ?? []\n\n ids.push(reference.id)\n idsByCollection.set(reference.collectionSlug, ids)\n }\n\n return idsByCollection\n}\n\nasync function loadDocuments({\n references,\n req,\n}: {\n references: Reference[]\n req: PayloadRequest\n}): Promise<Map<string, ActivityDocument>> {\n const documents = new Map<string, ActivityDocument>()\n await Promise.all(\n [...groupReferenceIDs({ references }).entries()].map(async ([collectionSlug, ids]) => {\n const config = req.payload.collections[collectionSlug].config\n const select = getDocumentThumbnailSelect({\n collectionConfig: config,\n select: {\n id: true,\n [(config.admin.useAsTitle || 'id').split('.')[0]]: true,\n _status: true,\n updatedAt: true,\n ...(config.admin.useAsThumbnail ? { [config.admin.useAsThumbnail]: true } : {}),\n ...(config.upload ? { width: true } : {}),\n },\n })\n const result = await req.payload.find({\n collection: collectionSlug,\n depth: 1,\n disableErrors: true,\n draft: true,\n limit: ids.length,\n overrideAccess: false,\n populate: getDocumentThumbnailPopulate({\n collectionConfig: config,\n collections: req.payload.config.collections,\n }),\n req,\n select,\n sort: 'id',\n user: req.user,\n where: { id: { in: ids } },\n })\n const enriched = await enrichDocsWithVersionStatus({\n collectionConfig: config,\n data: result,\n req,\n })\n\n for (const doc of enriched.docs as QueryDoc[]) {\n const item = enrichDocument({ collectionSlug, doc, req })\n documents.set(documentKey(item), item)\n }\n }),\n )\n return documents\n}\n\nfunction ownerWhere({ req }: { req: PayloadRequest }): Where {\n return {\n and: [\n { 'user.relationTo': { equals: req.user.collection } },\n { 'user.value': { equals: req.user.id } },\n ],\n }\n}\n\nfunction enrichDocument({\n collectionSlug,\n doc,\n req,\n}: {\n collectionSlug: string\n doc: QueryDoc\n req: PayloadRequest\n}): ActivityDocument {\n const { i18n, payload } = req\n const config = payload.collections[collectionSlug].config\n const rawTitle = getValueByPath({ object: doc, path: config.admin?.useAsTitle || 'id' })\n const status = doc._displayStatus || doc._status\n return {\n id: doc.id,\n collectionSlug,\n dateLabel: doc.updatedAt\n ? formatRelativeDate({\n relativeTimeFormat: getRelativeTimeFormat(i18n.language),\n value: doc.updatedAt,\n })\n : undefined,\n dateTime: doc.updatedAt,\n href: formatAdminURL({\n adminRoute: payload.config.routes.admin,\n path: `/collections/${collectionSlug}/${encodeURIComponent(String(doc.id))}`,\n }),\n isChanged: status === 'changed',\n isDraft: status === 'draft',\n statusLabel:\n status === 'draft'\n ? i18n.t('version:draft')\n : status === 'changed'\n ? i18n.t('version:changed')\n : status === 'published'\n ? i18n.t('version:published')\n : undefined,\n thumbnailURL: getDocumentThumbnail({\n doc,\n useAsThumbnail: config.admin?.useAsThumbnail,\n }),\n title: typeof rawTitle === 'string' && rawTitle ? rawTitle : String(doc.id),\n typeLabel: getTranslation(config.labels.plural, i18n),\n updatedAt: doc.updatedAt,\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { DocumentCache } from './cache.js';
|
|
2
|
+
import type { DocumentReference } from './documents.js';
|
|
3
|
+
import type { ActivityDocumentsPage } from './getActivityWidgetDocs.js';
|
|
4
|
+
export type DocumentState = {
|
|
5
|
+
cache?: DocumentCache;
|
|
6
|
+
initialPage?: ActivityDocumentsPage;
|
|
7
|
+
/** Set after a pin change, so cached batches are bypassed until a reload succeeds. */
|
|
8
|
+
isStale: boolean;
|
|
9
|
+
/** Offset of the page currently shown. It only moves once the target page has loaded. */
|
|
10
|
+
offset: number;
|
|
11
|
+
/** Bumped to request a reload even when no batch is missing. */
|
|
12
|
+
revision: number;
|
|
13
|
+
status: 'delayed' | 'error' | 'idle' | 'loading';
|
|
14
|
+
};
|
|
15
|
+
type Action = {
|
|
16
|
+
cache?: DocumentCache;
|
|
17
|
+
type: 'restore';
|
|
18
|
+
} | {
|
|
19
|
+
document: DocumentReference;
|
|
20
|
+
type: 'remove';
|
|
21
|
+
} | {
|
|
22
|
+
initialPage?: ActivityDocumentsPage;
|
|
23
|
+
type: 'reset';
|
|
24
|
+
} | {
|
|
25
|
+
offset: number;
|
|
26
|
+
pages: ActivityDocumentsPage[];
|
|
27
|
+
type: 'receive';
|
|
28
|
+
} | {
|
|
29
|
+
offset: number;
|
|
30
|
+
type: 'show';
|
|
31
|
+
} | {
|
|
32
|
+
status: DocumentState['status'];
|
|
33
|
+
type: 'status';
|
|
34
|
+
} | {
|
|
35
|
+
type: 'refresh';
|
|
36
|
+
} | {
|
|
37
|
+
type: 'retry';
|
|
38
|
+
};
|
|
39
|
+
export declare function createDocumentState({ initialPage, }: {
|
|
40
|
+
initialPage?: ActivityDocumentsPage;
|
|
41
|
+
}): DocumentState;
|
|
42
|
+
export declare function documentReducer(state: DocumentState, action: Action): DocumentState;
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../src/widgets/Activity/utils/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAKvE,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,WAAW,CAAC,EAAE,qBAAqB,CAAA;IACnC,sFAAsF;IACtF,OAAO,EAAE,OAAO,CAAA;IAChB,yFAAyF;IACzF,MAAM,EAAE,MAAM,CAAA;IACd,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;CACjD,CAAA;AAED,KAAK,MAAM,GACP;IAAE,KAAK,CAAC,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC1C;IAAE,QAAQ,EAAE,iBAAiB,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC/C;IAAE,WAAW,CAAC,EAAE,qBAAqB,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GACtD;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GACnE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAA;AAErB,wBAAgB,mBAAmB,CAAC,EAClC,WAAW,GACZ,EAAE;IACD,WAAW,CAAC,EAAE,qBAAqB,CAAA;CACpC,GAAG,aAAa,CAShB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAsDnF"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { createDocumentCache, mergeDocumentPages } from './cache.js';
|
|
2
|
+
import { documentKey } from './documents.js';
|
|
3
|
+
export function createDocumentState({
|
|
4
|
+
initialPage
|
|
5
|
+
}) {
|
|
6
|
+
return {
|
|
7
|
+
cache: createDocumentCache({
|
|
8
|
+
page: initialPage
|
|
9
|
+
}),
|
|
10
|
+
initialPage,
|
|
11
|
+
isStale: false,
|
|
12
|
+
offset: 0,
|
|
13
|
+
revision: 0,
|
|
14
|
+
status: 'idle'
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export function documentReducer(state, action) {
|
|
18
|
+
switch (action.type) {
|
|
19
|
+
case 'receive':
|
|
20
|
+
return {
|
|
21
|
+
...state,
|
|
22
|
+
cache: mergeDocumentPages({
|
|
23
|
+
cache: state.cache,
|
|
24
|
+
isReplacing: state.isStale,
|
|
25
|
+
pages: action.pages
|
|
26
|
+
}),
|
|
27
|
+
isStale: false,
|
|
28
|
+
offset: action.offset,
|
|
29
|
+
status: 'idle'
|
|
30
|
+
};
|
|
31
|
+
case 'refresh':
|
|
32
|
+
return {
|
|
33
|
+
...state,
|
|
34
|
+
isStale: true,
|
|
35
|
+
revision: state.revision + 1,
|
|
36
|
+
status: 'idle'
|
|
37
|
+
};
|
|
38
|
+
case 'remove':
|
|
39
|
+
{
|
|
40
|
+
if (!state.cache) {
|
|
41
|
+
return state;
|
|
42
|
+
}
|
|
43
|
+
const key = documentKey(action.document);
|
|
44
|
+
return {
|
|
45
|
+
...state,
|
|
46
|
+
cache: {
|
|
47
|
+
batches: Object.fromEntries(Object.entries(state.cache.batches).map(([batch, items]) => [batch, items.filter(item => documentKey(item) !== key)])),
|
|
48
|
+
totalDocs: Math.max(0, state.cache.totalDocs - 1)
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
case 'reset':
|
|
53
|
+
return createDocumentState({
|
|
54
|
+
initialPage: action.initialPage
|
|
55
|
+
});
|
|
56
|
+
case 'restore':
|
|
57
|
+
return {
|
|
58
|
+
...state,
|
|
59
|
+
cache: action.cache
|
|
60
|
+
};
|
|
61
|
+
case 'retry':
|
|
62
|
+
return {
|
|
63
|
+
...state,
|
|
64
|
+
revision: state.revision + 1,
|
|
65
|
+
status: 'idle'
|
|
66
|
+
};
|
|
67
|
+
case 'show':
|
|
68
|
+
return state.offset === action.offset && state.status === 'idle' ? state : {
|
|
69
|
+
...state,
|
|
70
|
+
offset: action.offset,
|
|
71
|
+
status: 'idle'
|
|
72
|
+
};
|
|
73
|
+
case 'status':
|
|
74
|
+
return {
|
|
75
|
+
...state,
|
|
76
|
+
status: action.status
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","names":["createDocumentCache","mergeDocumentPages","documentKey","createDocumentState","initialPage","cache","page","isStale","offset","revision","status","documentReducer","state","action","type","isReplacing","pages","key","document","batches","Object","fromEntries","entries","map","batch","items","filter","item","totalDocs","Math","max"],"sources":["../../../../src/widgets/Activity/utils/state.ts"],"sourcesContent":["import type { DocumentCache } from './cache.js'\nimport type { DocumentReference } from './documents.js'\nimport type { ActivityDocumentsPage } from './getActivityWidgetDocs.js'\n\nimport { createDocumentCache, mergeDocumentPages } from './cache.js'\nimport { documentKey } from './documents.js'\n\nexport type DocumentState = {\n cache?: DocumentCache\n initialPage?: ActivityDocumentsPage\n /** Set after a pin change, so cached batches are bypassed until a reload succeeds. */\n isStale: boolean\n /** Offset of the page currently shown. It only moves once the target page has loaded. */\n offset: number\n /** Bumped to request a reload even when no batch is missing. */\n revision: number\n status: 'delayed' | 'error' | 'idle' | 'loading'\n}\n\ntype Action =\n | { cache?: DocumentCache; type: 'restore' }\n | { document: DocumentReference; type: 'remove' }\n | { initialPage?: ActivityDocumentsPage; type: 'reset' }\n | { offset: number; pages: ActivityDocumentsPage[]; type: 'receive' }\n | { offset: number; type: 'show' }\n | { status: DocumentState['status']; type: 'status' }\n | { type: 'refresh' }\n | { type: 'retry' }\n\nexport function createDocumentState({\n initialPage,\n}: {\n initialPage?: ActivityDocumentsPage\n}): DocumentState {\n return {\n cache: createDocumentCache({ page: initialPage }),\n initialPage,\n isStale: false,\n offset: 0,\n revision: 0,\n status: 'idle',\n }\n}\n\nexport function documentReducer(state: DocumentState, action: Action): DocumentState {\n switch (action.type) {\n case 'receive':\n return {\n ...state,\n cache: mergeDocumentPages({\n cache: state.cache,\n isReplacing: state.isStale,\n pages: action.pages,\n }),\n isStale: false,\n offset: action.offset,\n status: 'idle',\n }\n case 'refresh':\n return {\n ...state,\n isStale: true,\n revision: state.revision + 1,\n status: 'idle',\n }\n case 'remove': {\n if (!state.cache) {\n return state\n }\n\n const key = documentKey(action.document)\n\n return {\n ...state,\n cache: {\n batches: Object.fromEntries(\n Object.entries(state.cache.batches).map(([batch, items]) => [\n batch,\n items.filter((item) => documentKey(item) !== key),\n ]),\n ),\n totalDocs: Math.max(0, state.cache.totalDocs - 1),\n },\n }\n }\n case 'reset':\n return createDocumentState({ initialPage: action.initialPage })\n case 'restore':\n return { ...state, cache: action.cache }\n case 'retry':\n return { ...state, revision: state.revision + 1, status: 'idle' }\n case 'show':\n return state.offset === action.offset && state.status === 'idle'\n ? state\n : { ...state, offset: action.offset, status: 'idle' }\n case 'status':\n return { ...state, status: action.status }\n }\n}\n"],"mappings":"AAIA,SAASA,mBAAmB,EAAEC,kBAAkB,QAAQ;AACxD,SAASC,WAAW,QAAQ;AAwB5B,OAAO,SAASC,oBAAoB;EAClCC;AAAW,CAGZ;EACC,OAAO;IACLC,KAAA,EAAOL,mBAAA,CAAoB;MAAEM,IAAA,EAAMF;IAAY;IAC/CA,WAAA;IACAG,OAAA,EAAS;IACTC,MAAA,EAAQ;IACRC,QAAA,EAAU;IACVC,MAAA,EAAQ;EACV;AACF;AAEA,OAAO,SAASC,gBAAgBC,KAAoB,EAAEC,MAAc;EAClE,QAAQA,MAAA,CAAOC,IAAI;IACjB,KAAK;MACH,OAAO;QACL,GAAGF,KAAK;QACRP,KAAA,EAAOJ,kBAAA,CAAmB;UACxBI,KAAA,EAAOO,KAAA,CAAMP,KAAK;UAClBU,WAAA,EAAaH,KAAA,CAAML,OAAO;UAC1BS,KAAA,EAAOH,MAAA,CAAOG;QAChB;QACAT,OAAA,EAAS;QACTC,MAAA,EAAQK,MAAA,CAAOL,MAAM;QACrBE,MAAA,EAAQ;MACV;IACF,KAAK;MACH,OAAO;QACL,GAAGE,KAAK;QACRL,OAAA,EAAS;QACTE,QAAA,EAAUG,KAAA,CAAMH,QAAQ,GAAG;QAC3BC,MAAA,EAAQ;MACV;IACF,KAAK;MAAU;QACb,IAAI,CAACE,KAAA,CAAMP,KAAK,EAAE;UAChB,OAAOO,KAAA;QACT;QAEA,MAAMK,GAAA,GAAMf,WAAA,CAAYW,MAAA,CAAOK,QAAQ;QAEvC,OAAO;UACL,GAAGN,KAAK;UACRP,KAAA,EAAO;YACLc,OAAA,EAASC,MAAA,CAAOC,WAAW,CACzBD,MAAA,CAAOE,OAAO,CAACV,KAAA,CAAMP,KAAK,CAACc,OAAO,EAAEI,GAAG,CAAC,CAAC,CAACC,KAAA,EAAOC,KAAA,CAAM,KAAK,CAC1DD,KAAA,EACAC,KAAA,CAAMC,MAAM,CAAEC,IAAA,IAASzB,WAAA,CAAYyB,IAAA,MAAUV,GAAA,EAC9C;YAEHW,SAAA,EAAWC,IAAA,CAAKC,GAAG,CAAC,GAAGlB,KAAA,CAAMP,KAAK,CAACuB,SAAS,GAAG;UACjD;QACF;MACF;IACA,KAAK;MACH,OAAOzB,mBAAA,CAAoB;QAAEC,WAAA,EAAaS,MAAA,CAAOT;MAAY;IAC/D,KAAK;MACH,OAAO;QAAE,GAAGQ,KAAK;QAAEP,KAAA,EAAOQ,MAAA,CAAOR;MAAM;IACzC,KAAK;MACH,OAAO;QAAE,GAAGO,KAAK;QAAEH,QAAA,EAAUG,KAAA,CAAMH,QAAQ,GAAG;QAAGC,MAAA,EAAQ;MAAO;IAClE,KAAK;MACH,OAAOE,KAAA,CAAMJ,MAAM,KAAKK,MAAA,CAAOL,MAAM,IAAII,KAAA,CAAMF,MAAM,KAAK,SACtDE,KAAA,GACA;QAAE,GAAGA,KAAK;QAAEJ,MAAA,EAAQK,MAAA,CAAOL,MAAM;QAAEE,MAAA,EAAQ;MAAO;IACxD,KAAK;MACH,OAAO;QAAE,GAAGE,KAAK;QAAEF,MAAA,EAAQG,MAAA,CAAOH;MAAO;EAC7C;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { DocumentReference } from './documents.js';
|
|
2
|
+
import type { ActivityDocumentsPage, ActivityDocumentType } from './getActivityWidgetDocs.js';
|
|
3
|
+
/**
|
|
4
|
+
* Loads the batches the page at `offset` needs. The current page stays visible while the target
|
|
5
|
+
* page loads, and loading feedback only appears after a short delay.
|
|
6
|
+
*/
|
|
7
|
+
export declare function useActivityDocuments({ type, excludedCollections, hasPinPlaceholder, initialPage, isActive, isPaused, offset, pageSize, }: {
|
|
8
|
+
excludedCollections?: string[];
|
|
9
|
+
hasPinPlaceholder?: boolean;
|
|
10
|
+
initialPage?: ActivityDocumentsPage;
|
|
11
|
+
isActive: boolean;
|
|
12
|
+
isPaused?: boolean;
|
|
13
|
+
offset: number;
|
|
14
|
+
pageSize: number;
|
|
15
|
+
type: ActivityDocumentType;
|
|
16
|
+
}): {
|
|
17
|
+
currentPage: number;
|
|
18
|
+
items: import("../types.js").ActivityDocument[];
|
|
19
|
+
missingBatches: number[];
|
|
20
|
+
start: number;
|
|
21
|
+
totalDocs: number;
|
|
22
|
+
totalPages: number;
|
|
23
|
+
hasLoadError: boolean;
|
|
24
|
+
isBusy: boolean;
|
|
25
|
+
/** Reloads the tab from the server, bypassing cached batches until the reload succeeds. */
|
|
26
|
+
refresh: () => void;
|
|
27
|
+
/** Removes a document optimistically and returns a function that restores it. */
|
|
28
|
+
removeDocument: ({ document }: {
|
|
29
|
+
document: DocumentReference;
|
|
30
|
+
}) => () => void;
|
|
31
|
+
retry: () => void;
|
|
32
|
+
shouldShowLoading: boolean;
|
|
33
|
+
};
|
|
34
|
+
export type DocumentsController = ReturnType<typeof useActivityDocuments>;
|
|
35
|
+
//# sourceMappingURL=useActivityDocuments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useActivityDocuments.d.ts","sourceRoot":"","sources":["../../../../src/widgets/Activity/utils/useActivityDocuments.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAS7F;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,mBAAmB,EACnB,iBAAyB,EACzB,WAAW,EACX,QAAQ,EACR,QAAgB,EAChB,MAAM,EACN,QAAQ,GACT,EAAE;IACD,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,WAAW,CAAC,EAAE,qBAAqB,CAAA;IACnC,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,oBAAoB,CAAA;CAC3B;;;;;;;;;IA0GG,2FAA2F;;IAE3F,iFAAiF;mCAClD;QAAE,QAAQ,EAAE,iBAAiB,CAAA;KAAE;;;EASjE;AAED,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAA"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { useEffect, useMemo, useReducer } from 'react';
|
|
2
|
+
import { useServerFunctions } from '../../../providers/ServerFunctions/index.js';
|
|
3
|
+
import { getDocumentPage } from './cache.js';
|
|
4
|
+
import { DOCUMENTS_BATCH_SIZE } from './constants.js';
|
|
5
|
+
import { createDocumentState, documentReducer } from './state.js';
|
|
6
|
+
const LOADING_FEEDBACK_DELAY_MS = 180;
|
|
7
|
+
/**
|
|
8
|
+
* Loads the batches the page at `offset` needs. The current page stays visible while the target
|
|
9
|
+
* page loads, and loading feedback only appears after a short delay.
|
|
10
|
+
*/
|
|
11
|
+
export function useActivityDocuments({
|
|
12
|
+
type,
|
|
13
|
+
excludedCollections,
|
|
14
|
+
hasPinPlaceholder = false,
|
|
15
|
+
initialPage,
|
|
16
|
+
isActive,
|
|
17
|
+
isPaused = false,
|
|
18
|
+
offset,
|
|
19
|
+
pageSize
|
|
20
|
+
}) {
|
|
21
|
+
const {
|
|
22
|
+
serverFunction
|
|
23
|
+
} = useServerFunctions();
|
|
24
|
+
const [state, dispatch] = useReducer(documentReducer, {
|
|
25
|
+
initialPage
|
|
26
|
+
}, createDocumentState);
|
|
27
|
+
// A server refresh replaces the documents and supersedes requests for the previous data.
|
|
28
|
+
if (state.initialPage !== initialPage) {
|
|
29
|
+
dispatch({
|
|
30
|
+
type: 'reset',
|
|
31
|
+
initialPage
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
const {
|
|
35
|
+
missingBatches,
|
|
36
|
+
targetPage
|
|
37
|
+
} = useMemo(() => {
|
|
38
|
+
const targetPage = getDocumentPage({
|
|
39
|
+
cache: state.cache,
|
|
40
|
+
hasPinPlaceholder,
|
|
41
|
+
offset,
|
|
42
|
+
pageSize
|
|
43
|
+
});
|
|
44
|
+
const missingBatches = state.isStale ? getDocumentPage({
|
|
45
|
+
cache: state.cache && {
|
|
46
|
+
...state.cache,
|
|
47
|
+
batches: {}
|
|
48
|
+
},
|
|
49
|
+
hasPinPlaceholder,
|
|
50
|
+
offset,
|
|
51
|
+
pageSize
|
|
52
|
+
}).missingBatches : targetPage.missingBatches;
|
|
53
|
+
// A stale placeholder-only page still needs the server's updated total.
|
|
54
|
+
return {
|
|
55
|
+
missingBatches: state.isStale && !missingBatches.length ? [Math.floor(targetPage.start / DOCUMENTS_BATCH_SIZE)] : missingBatches,
|
|
56
|
+
targetPage
|
|
57
|
+
};
|
|
58
|
+
}, [hasPinPlaceholder, offset, pageSize, state.cache, state.isStale]);
|
|
59
|
+
const isBusy = missingBatches.length > 0;
|
|
60
|
+
const page = isBusy ? getDocumentPage({
|
|
61
|
+
cache: state.cache,
|
|
62
|
+
hasPinPlaceholder,
|
|
63
|
+
offset: state.offset,
|
|
64
|
+
pageSize
|
|
65
|
+
}) : targetPage;
|
|
66
|
+
useEffect(() => {
|
|
67
|
+
if (!isActive || isPaused) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
if (!missingBatches.length) {
|
|
71
|
+
dispatch({
|
|
72
|
+
type: 'show',
|
|
73
|
+
offset
|
|
74
|
+
});
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
let isCurrent = true;
|
|
78
|
+
dispatch({
|
|
79
|
+
type: 'status',
|
|
80
|
+
status: 'loading'
|
|
81
|
+
});
|
|
82
|
+
const timeout = setTimeout(() => dispatch({
|
|
83
|
+
type: 'status',
|
|
84
|
+
status: 'delayed'
|
|
85
|
+
}), LOADING_FEEDBACK_DELAY_MS);
|
|
86
|
+
void Promise.all(missingBatches.map(batch => serverFunction({
|
|
87
|
+
name: 'get-activity-widget-docs',
|
|
88
|
+
args: {
|
|
89
|
+
type,
|
|
90
|
+
excludedCollections,
|
|
91
|
+
limit: DOCUMENTS_BATCH_SIZE,
|
|
92
|
+
page: batch + 1
|
|
93
|
+
}
|
|
94
|
+
}))).then(pages => {
|
|
95
|
+
if (isCurrent) {
|
|
96
|
+
dispatch({
|
|
97
|
+
type: 'receive',
|
|
98
|
+
offset,
|
|
99
|
+
pages
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}).catch(() => {
|
|
103
|
+
if (isCurrent) {
|
|
104
|
+
dispatch({
|
|
105
|
+
type: 'status',
|
|
106
|
+
status: 'error'
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}).finally(() => clearTimeout(timeout));
|
|
110
|
+
return () => {
|
|
111
|
+
isCurrent = false;
|
|
112
|
+
clearTimeout(timeout);
|
|
113
|
+
};
|
|
114
|
+
}, [excludedCollections, initialPage, isActive, isPaused, missingBatches, offset, serverFunction, state.revision, type]);
|
|
115
|
+
return {
|
|
116
|
+
...page,
|
|
117
|
+
hasLoadError: isBusy && state.status === 'error',
|
|
118
|
+
isBusy,
|
|
119
|
+
/** Reloads the tab from the server, bypassing cached batches until the reload succeeds. */refresh: () => dispatch({
|
|
120
|
+
type: 'refresh'
|
|
121
|
+
}),
|
|
122
|
+
/** Removes a document optimistically and returns a function that restores it. */removeDocument: ({
|
|
123
|
+
document
|
|
124
|
+
}) => {
|
|
125
|
+
const cache = state.cache;
|
|
126
|
+
dispatch({
|
|
127
|
+
type: 'remove',
|
|
128
|
+
document
|
|
129
|
+
});
|
|
130
|
+
return () => dispatch({
|
|
131
|
+
type: 'restore',
|
|
132
|
+
cache
|
|
133
|
+
});
|
|
134
|
+
},
|
|
135
|
+
retry: () => dispatch({
|
|
136
|
+
type: 'retry'
|
|
137
|
+
}),
|
|
138
|
+
shouldShowLoading: isBusy && state.status === 'delayed'
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=useActivityDocuments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useActivityDocuments.js","names":["useEffect","useMemo","useReducer","useServerFunctions","getDocumentPage","DOCUMENTS_BATCH_SIZE","createDocumentState","documentReducer","LOADING_FEEDBACK_DELAY_MS","useActivityDocuments","type","excludedCollections","hasPinPlaceholder","initialPage","isActive","isPaused","offset","pageSize","serverFunction","state","dispatch","missingBatches","targetPage","cache","isStale","batches","length","Math","floor","start","isBusy","page","isCurrent","status","timeout","setTimeout","Promise","all","map","batch","name","args","limit","then","pages","catch","finally","clearTimeout","revision","hasLoadError","refresh","removeDocument","document","retry","shouldShowLoading"],"sources":["../../../../src/widgets/Activity/utils/useActivityDocuments.ts"],"sourcesContent":["import { useEffect, useMemo, useReducer } from 'react'\n\nimport type { DocumentReference } from './documents.js'\nimport type { ActivityDocumentsPage, ActivityDocumentType } from './getActivityWidgetDocs.js'\n\nimport { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { getDocumentPage } from './cache.js'\nimport { DOCUMENTS_BATCH_SIZE } from './constants.js'\nimport { createDocumentState, documentReducer } from './state.js'\n\nconst LOADING_FEEDBACK_DELAY_MS = 180\n\n/**\n * Loads the batches the page at `offset` needs. The current page stays visible while the target\n * page loads, and loading feedback only appears after a short delay.\n */\nexport function useActivityDocuments({\n type,\n excludedCollections,\n hasPinPlaceholder = false,\n initialPage,\n isActive,\n isPaused = false,\n offset,\n pageSize,\n}: {\n excludedCollections?: string[]\n hasPinPlaceholder?: boolean\n initialPage?: ActivityDocumentsPage\n isActive: boolean\n isPaused?: boolean\n offset: number\n pageSize: number\n type: ActivityDocumentType\n}) {\n const { serverFunction } = useServerFunctions()\n const [state, dispatch] = useReducer(documentReducer, { initialPage }, createDocumentState)\n\n // A server refresh replaces the documents and supersedes requests for the previous data.\n if (state.initialPage !== initialPage) {\n dispatch({ type: 'reset', initialPage })\n }\n\n const { missingBatches, targetPage } = useMemo(() => {\n const targetPage = getDocumentPage({\n cache: state.cache,\n hasPinPlaceholder,\n offset,\n pageSize,\n })\n const missingBatches = state.isStale\n ? getDocumentPage({\n cache: state.cache && { ...state.cache, batches: {} },\n hasPinPlaceholder,\n offset,\n pageSize,\n }).missingBatches\n : targetPage.missingBatches\n\n // A stale placeholder-only page still needs the server's updated total.\n return {\n missingBatches:\n state.isStale && !missingBatches.length\n ? [Math.floor(targetPage.start / DOCUMENTS_BATCH_SIZE)]\n : missingBatches,\n targetPage,\n }\n }, [hasPinPlaceholder, offset, pageSize, state.cache, state.isStale])\n const isBusy = missingBatches.length > 0\n const page = isBusy\n ? getDocumentPage({\n cache: state.cache,\n hasPinPlaceholder,\n offset: state.offset,\n pageSize,\n })\n : targetPage\n\n useEffect(() => {\n if (!isActive || isPaused) {\n return\n }\n if (!missingBatches.length) {\n dispatch({ type: 'show', offset })\n return\n }\n\n let isCurrent = true\n dispatch({ type: 'status', status: 'loading' })\n const timeout = setTimeout(\n () => dispatch({ type: 'status', status: 'delayed' }),\n LOADING_FEEDBACK_DELAY_MS,\n )\n\n void Promise.all(\n missingBatches.map(\n (batch) =>\n serverFunction({\n name: 'get-activity-widget-docs',\n args: {\n type,\n excludedCollections,\n limit: DOCUMENTS_BATCH_SIZE,\n page: batch + 1,\n },\n }) as Promise<ActivityDocumentsPage>,\n ),\n )\n .then((pages) => {\n if (isCurrent) {\n dispatch({ type: 'receive', offset, pages })\n }\n })\n .catch(() => {\n if (isCurrent) {\n dispatch({ type: 'status', status: 'error' })\n }\n })\n .finally(() => clearTimeout(timeout))\n\n return () => {\n isCurrent = false\n clearTimeout(timeout)\n }\n }, [\n excludedCollections,\n initialPage,\n isActive,\n isPaused,\n missingBatches,\n offset,\n serverFunction,\n state.revision,\n type,\n ])\n\n return {\n ...page,\n hasLoadError: isBusy && state.status === 'error',\n isBusy,\n /** Reloads the tab from the server, bypassing cached batches until the reload succeeds. */\n refresh: () => dispatch({ type: 'refresh' }),\n /** Removes a document optimistically and returns a function that restores it. */\n removeDocument: ({ document }: { document: DocumentReference }) => {\n const cache = state.cache\n\n dispatch({ type: 'remove', document })\n return () => dispatch({ type: 'restore', cache })\n },\n retry: () => dispatch({ type: 'retry' }),\n shouldShowLoading: isBusy && state.status === 'delayed',\n }\n}\n\nexport type DocumentsController = ReturnType<typeof useActivityDocuments>\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,OAAO,EAAEC,UAAU,QAAQ;AAK/C,SAASC,kBAAkB,QAAQ;AACnC,SAASC,eAAe,QAAQ;AAChC,SAASC,oBAAoB,QAAQ;AACrC,SAASC,mBAAmB,EAAEC,eAAe,QAAQ;AAErD,MAAMC,yBAAA,GAA4B;AAElC;;;;AAIA,OAAO,SAASC,qBAAqB;EACnCC,IAAI;EACJC,mBAAmB;EACnBC,iBAAA,GAAoB,KAAK;EACzBC,WAAW;EACXC,QAAQ;EACRC,QAAA,GAAW,KAAK;EAChBC,MAAM;EACNC;AAAQ,CAUT;EACC,MAAM;IAAEC;EAAc,CAAE,GAAGf,kBAAA;EAC3B,MAAM,CAACgB,KAAA,EAAOC,QAAA,CAAS,GAAGlB,UAAA,CAAWK,eAAA,EAAiB;IAAEM;EAAY,GAAGP,mBAAA;EAEvE;EACA,IAAIa,KAAA,CAAMN,WAAW,KAAKA,WAAA,EAAa;IACrCO,QAAA,CAAS;MAAEV,IAAA,EAAM;MAASG;IAAY;EACxC;EAEA,MAAM;IAAEQ,cAAc;IAAEC;EAAU,CAAE,GAAGrB,OAAA,CAAQ;IAC7C,MAAMqB,UAAA,GAAalB,eAAA,CAAgB;MACjCmB,KAAA,EAAOJ,KAAA,CAAMI,KAAK;MAClBX,iBAAA;MACAI,MAAA;MACAC;IACF;IACA,MAAMI,cAAA,GAAiBF,KAAA,CAAMK,OAAO,GAChCpB,eAAA,CAAgB;MACdmB,KAAA,EAAOJ,KAAA,CAAMI,KAAK,IAAI;QAAE,GAAGJ,KAAA,CAAMI,KAAK;QAAEE,OAAA,EAAS,CAAC;MAAE;MACpDb,iBAAA;MACAI,MAAA;MACAC;IACF,GAAGI,cAAc,GACjBC,UAAA,CAAWD,cAAc;IAE7B;IACA,OAAO;MACLA,cAAA,EACEF,KAAA,CAAMK,OAAO,IAAI,CAACH,cAAA,CAAeK,MAAM,GACnC,CAACC,IAAA,CAAKC,KAAK,CAACN,UAAA,CAAWO,KAAK,GAAGxB,oBAAA,EAAsB,GACrDgB,cAAA;MACNC;IACF;EACF,GAAG,CAACV,iBAAA,EAAmBI,MAAA,EAAQC,QAAA,EAAUE,KAAA,CAAMI,KAAK,EAAEJ,KAAA,CAAMK,OAAO,CAAC;EACpE,MAAMM,MAAA,GAAST,cAAA,CAAeK,MAAM,GAAG;EACvC,MAAMK,IAAA,GAAOD,MAAA,GACT1B,eAAA,CAAgB;IACdmB,KAAA,EAAOJ,KAAA,CAAMI,KAAK;IAClBX,iBAAA;IACAI,MAAA,EAAQG,KAAA,CAAMH,MAAM;IACpBC;EACF,KACAK,UAAA;EAEJtB,SAAA,CAAU;IACR,IAAI,CAACc,QAAA,IAAYC,QAAA,EAAU;MACzB;IACF;IACA,IAAI,CAACM,cAAA,CAAeK,MAAM,EAAE;MAC1BN,QAAA,CAAS;QAAEV,IAAA,EAAM;QAAQM;MAAO;MAChC;IACF;IAEA,IAAIgB,SAAA,GAAY;IAChBZ,QAAA,CAAS;MAAEV,IAAA,EAAM;MAAUuB,MAAA,EAAQ;IAAU;IAC7C,MAAMC,OAAA,GAAUC,UAAA,CACd,MAAMf,QAAA,CAAS;MAAEV,IAAA,EAAM;MAAUuB,MAAA,EAAQ;IAAU,IACnDzB,yBAAA;IAGF,KAAK4B,OAAA,CAAQC,GAAG,CACdhB,cAAA,CAAeiB,GAAG,CACfC,KAAA,IACCrB,cAAA,CAAe;MACbsB,IAAA,EAAM;MACNC,IAAA,EAAM;QACJ/B,IAAA;QACAC,mBAAA;QACA+B,KAAA,EAAOrC,oBAAA;QACP0B,IAAA,EAAMQ,KAAA,GAAQ;MAChB;IACF,KAGHI,IAAI,CAAEC,KAAA;MACL,IAAIZ,SAAA,EAAW;QACbZ,QAAA,CAAS;UAAEV,IAAA,EAAM;UAAWM,MAAA;UAAQ4B;QAAM;MAC5C;IACF,GACCC,KAAK,CAAC;MACL,IAAIb,SAAA,EAAW;QACbZ,QAAA,CAAS;UAAEV,IAAA,EAAM;UAAUuB,MAAA,EAAQ;QAAQ;MAC7C;IACF,GACCa,OAAO,CAAC,MAAMC,YAAA,CAAab,OAAA;IAE9B,OAAO;MACLF,SAAA,GAAY;MACZe,YAAA,CAAab,OAAA;IACf;EACF,GAAG,CACDvB,mBAAA,EACAE,WAAA,EACAC,QAAA,EACAC,QAAA,EACAM,cAAA,EACAL,MAAA,EACAE,cAAA,EACAC,KAAA,CAAM6B,QAAQ,EACdtC,IAAA,CACD;EAED,OAAO;IACL,GAAGqB,IAAI;IACPkB,YAAA,EAAcnB,MAAA,IAAUX,KAAA,CAAMc,MAAM,KAAK;IACzCH,MAAA;IACA,2FACAoB,OAAA,EAASA,CAAA,KAAM9B,QAAA,CAAS;MAAEV,IAAA,EAAM;IAAU;IAC1C,iFACAyC,cAAA,EAAgBA,CAAC;MAAEC;IAAQ,CAAmC;MAC5D,MAAM7B,KAAA,GAAQJ,KAAA,CAAMI,KAAK;MAEzBH,QAAA,CAAS;QAAEV,IAAA,EAAM;QAAU0C;MAAS;MACpC,OAAO,MAAMhC,QAAA,CAAS;QAAEV,IAAA,EAAM;QAAWa;MAAM;IACjD;IACA8B,KAAA,EAAOA,CAAA,KAAMjC,QAAA,CAAS;MAAEV,IAAA,EAAM;IAAQ;IACtC4C,iBAAA,EAAmBxB,MAAA,IAAUX,KAAA,CAAMc,MAAM,KAAK;EAChD;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { RefObject } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Reads the page size the CSS container tiers set on the viewport. It is `null` until the first
|
|
4
|
+
* read, while the server-rendered full batch is shown.
|
|
5
|
+
*/
|
|
6
|
+
export declare function usePageSize({ paginationFocusRef, viewportRef, }: {
|
|
7
|
+
/** Set when the page size changes while pagination has focus, so focus can be restored. */
|
|
8
|
+
paginationFocusRef: RefObject<boolean>;
|
|
9
|
+
viewportRef: RefObject<HTMLDivElement | null>;
|
|
10
|
+
}): number;
|
|
11
|
+
//# sourceMappingURL=usePageSize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePageSize.d.ts","sourceRoot":"","sources":["../../../../src/widgets/Activity/utils/usePageSize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAC1B,kBAAkB,EAClB,WAAW,GACZ,EAAE;IACD,2FAA2F;IAC3F,kBAAkB,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IACtC,WAAW,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;CAC9C,UAmCA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { useLayoutEffect, useState } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Reads the page size the CSS container tiers set on the viewport. It is `null` until the first
|
|
4
|
+
* read, while the server-rendered full batch is shown.
|
|
5
|
+
*/
|
|
6
|
+
export function usePageSize({
|
|
7
|
+
paginationFocusRef,
|
|
8
|
+
viewportRef
|
|
9
|
+
}) {
|
|
10
|
+
const [pageSize, setPageSize] = useState(null);
|
|
11
|
+
// A layout effect, so no click is handled with the full-batch fallback size after hydration.
|
|
12
|
+
useLayoutEffect(() => {
|
|
13
|
+
const element = viewportRef.current;
|
|
14
|
+
if (!element) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
let previousSize = 0;
|
|
18
|
+
const readPageSize = () => {
|
|
19
|
+
const size = Number(getComputedStyle(element).getPropertyValue('--activity-page-size'));
|
|
20
|
+
if (size > 0 && size !== previousSize) {
|
|
21
|
+
previousSize = size;
|
|
22
|
+
if (element.parentElement?.contains(document.activeElement) && document.activeElement?.closest('.activity-widget__pagination')) {
|
|
23
|
+
paginationFocusRef.current = true;
|
|
24
|
+
}
|
|
25
|
+
setPageSize(size);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
readPageSize();
|
|
29
|
+
const observer = new ResizeObserver(readPageSize);
|
|
30
|
+
observer.observe(element);
|
|
31
|
+
return () => observer.disconnect();
|
|
32
|
+
}, [paginationFocusRef, viewportRef]);
|
|
33
|
+
return pageSize;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=usePageSize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePageSize.js","names":["useLayoutEffect","useState","usePageSize","paginationFocusRef","viewportRef","pageSize","setPageSize","element","current","previousSize","readPageSize","size","Number","getComputedStyle","getPropertyValue","parentElement","contains","document","activeElement","closest","observer","ResizeObserver","observe","disconnect"],"sources":["../../../../src/widgets/Activity/utils/usePageSize.ts"],"sourcesContent":["import type { RefObject } from 'react'\n\nimport { useLayoutEffect, useState } from 'react'\n\n/**\n * Reads the page size the CSS container tiers set on the viewport. It is `null` until the first\n * read, while the server-rendered full batch is shown.\n */\nexport function usePageSize({\n paginationFocusRef,\n viewportRef,\n}: {\n /** Set when the page size changes while pagination has focus, so focus can be restored. */\n paginationFocusRef: RefObject<boolean>\n viewportRef: RefObject<HTMLDivElement | null>\n}) {\n const [pageSize, setPageSize] = useState<null | number>(null)\n\n // A layout effect, so no click is handled with the full-batch fallback size after hydration.\n useLayoutEffect(() => {\n const element = viewportRef.current\n\n if (!element) {\n return\n }\n\n let previousSize = 0\n const readPageSize = () => {\n const size = Number(getComputedStyle(element).getPropertyValue('--activity-page-size'))\n\n if (size > 0 && size !== previousSize) {\n previousSize = size\n if (\n element.parentElement?.contains(document.activeElement) &&\n document.activeElement?.closest('.activity-widget__pagination')\n ) {\n paginationFocusRef.current = true\n }\n setPageSize(size)\n }\n }\n\n readPageSize()\n const observer = new ResizeObserver(readPageSize)\n observer.observe(element)\n\n return () => observer.disconnect()\n }, [paginationFocusRef, viewportRef])\n\n return pageSize\n}\n"],"mappings":"AAEA,SAASA,eAAe,EAAEC,QAAQ,QAAQ;AAE1C;;;;AAIA,OAAO,SAASC,YAAY;EAC1BC,kBAAkB;EAClBC;AAAW,CAKZ;EACC,MAAM,CAACC,QAAA,EAAUC,WAAA,CAAY,GAAGL,QAAA,CAAwB;EAExD;EACAD,eAAA,CAAgB;IACd,MAAMO,OAAA,GAAUH,WAAA,CAAYI,OAAO;IAEnC,IAAI,CAACD,OAAA,EAAS;MACZ;IACF;IAEA,IAAIE,YAAA,GAAe;IACnB,MAAMC,YAAA,GAAeA,CAAA;MACnB,MAAMC,IAAA,GAAOC,MAAA,CAAOC,gBAAA,CAAiBN,OAAA,EAASO,gBAAgB,CAAC;MAE/D,IAAIH,IAAA,GAAO,KAAKA,IAAA,KAASF,YAAA,EAAc;QACrCA,YAAA,GAAeE,IAAA;QACf,IACEJ,OAAA,CAAQQ,aAAa,EAAEC,QAAA,CAASC,QAAA,CAASC,aAAa,KACtDD,QAAA,CAASC,aAAa,EAAEC,OAAA,CAAQ,iCAChC;UACAhB,kBAAA,CAAmBK,OAAO,GAAG;QAC/B;QACAF,WAAA,CAAYK,IAAA;MACd;IACF;IAEAD,YAAA;IACA,MAAMU,QAAA,GAAW,IAAIC,cAAA,CAAeX,YAAA;IACpCU,QAAA,CAASE,OAAO,CAACf,OAAA;IAEjB,OAAO,MAAMa,QAAA,CAASG,UAAU;EAClC,GAAG,CAACpB,kBAAA,EAAoBC,WAAA,CAAY;EAEpC,OAAOC,QAAA;AACT","ignoreList":[]}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { CollectionCardsData } from './getCollectionCardsData.js';
|
|
3
3
|
import './index.css';
|
|
4
|
+
/**
|
|
5
|
+
* @internal - may change or be removed without a major version bump
|
|
6
|
+
*/
|
|
4
7
|
export declare const CollectionCardsClient: React.FC<CollectionCardsData>;
|
|
5
8
|
//# sourceMappingURL=index.client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/widgets/CollectionCards/index.client.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEtE,OAAO,aAAa,CAAA;AAQpB,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAmH/D,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/widgets/CollectionCards/index.client.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEtE,OAAO,aAAa,CAAA;AAQpB;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAmH/D,CAAA"}
|