@payloadcms/ui 3.80.0-internal.0311fce → 3.80.0-internal.37a8509
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js +12 -0
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/Button/index.d.ts.map +1 -1
- package/dist/elements/Button/index.js +3 -5
- package/dist/elements/Button/index.js.map +1 -1
- package/dist/elements/Button/index.scss +5 -38
- package/dist/elements/Button/types.d.ts +1 -1
- package/dist/elements/Button/types.d.ts.map +1 -1
- package/dist/elements/Button/types.js.map +1 -1
- package/dist/elements/CheckboxPopup/index.d.ts.map +1 -1
- package/dist/elements/CheckboxPopup/index.js +1 -0
- package/dist/elements/CheckboxPopup/index.js.map +1 -1
- package/dist/elements/CheckboxPopup/index.scss +0 -1
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts.map +1 -1
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +4 -2
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js +157 -0
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js.map +1 -1
- package/dist/elements/DefaultListViewTabs/index.d.ts.map +1 -1
- package/dist/elements/DefaultListViewTabs/index.js +54 -28
- package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.d.ts +0 -1
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js +10 -6
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.scss +1 -1
- package/dist/elements/DocumentDrawer/index.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/index.js +141 -54
- package/dist/elements/DocumentDrawer/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/types.d.ts +1 -7
- package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/types.js.map +1 -1
- package/dist/elements/DrawerActionHeader/index.d.ts.map +1 -1
- package/dist/elements/DrawerActionHeader/index.js +0 -2
- package/dist/elements/DrawerActionHeader/index.js.map +1 -1
- package/dist/elements/DrawerActionHeader/index.scss +2 -2
- package/dist/elements/FolderView/Breadcrumbs/index.d.ts +19 -0
- package/dist/elements/FolderView/Breadcrumbs/index.d.ts.map +1 -0
- package/dist/elements/FolderView/Breadcrumbs/index.js +96 -0
- package/dist/elements/FolderView/Breadcrumbs/index.js.map +1 -0
- package/dist/elements/FolderView/Breadcrumbs/index.scss +56 -0
- package/dist/elements/FolderView/BrowseByFolderButton/index.d.ts +6 -0
- package/dist/elements/FolderView/BrowseByFolderButton/index.d.ts.map +1 -0
- package/dist/elements/FolderView/BrowseByFolderButton/index.js +40 -0
- package/dist/elements/FolderView/BrowseByFolderButton/index.js.map +1 -0
- package/dist/elements/FolderView/BrowseByFolderButton/index.scss +30 -0
- package/dist/elements/FolderView/Cell/index.client.d.ts +13 -0
- package/dist/elements/FolderView/Cell/index.client.d.ts.map +1 -0
- package/dist/elements/FolderView/Cell/index.client.js +95 -0
- package/dist/elements/FolderView/Cell/index.client.js.map +1 -0
- package/dist/elements/FolderView/Cell/index.server.d.ts +4 -0
- package/dist/elements/FolderView/Cell/index.server.d.ts.map +1 -0
- package/dist/elements/FolderView/Cell/index.server.js +18 -0
- package/dist/elements/FolderView/Cell/index.server.js.map +1 -0
- package/dist/elements/FolderView/ColoredFolderIcon/index.d.ts +3 -0
- package/dist/elements/FolderView/ColoredFolderIcon/index.d.ts.map +1 -0
- package/dist/elements/FolderView/ColoredFolderIcon/index.js +9 -0
- package/dist/elements/FolderView/ColoredFolderIcon/index.js.map +1 -0
- package/dist/elements/FolderView/ColoredFolderIcon/index.scss +5 -0
- package/dist/elements/FolderView/CurrentFolderActions/index.d.ts +7 -0
- package/dist/elements/FolderView/CurrentFolderActions/index.d.ts.map +1 -0
- package/dist/elements/FolderView/CurrentFolderActions/index.js +162 -0
- package/dist/elements/FolderView/CurrentFolderActions/index.js.map +1 -0
- package/dist/elements/FolderView/DragOverlaySelection/index.d.ts +11 -0
- package/dist/elements/FolderView/DragOverlaySelection/index.d.ts.map +1 -0
- package/dist/elements/FolderView/DragOverlaySelection/index.js +62 -0
- package/dist/elements/FolderView/DragOverlaySelection/index.js.map +1 -0
- package/dist/elements/FolderView/DragOverlaySelection/index.scss +35 -0
- package/dist/elements/FolderView/DraggableTableRow/index.d.ts +18 -0
- package/dist/elements/FolderView/DraggableTableRow/index.d.ts.map +1 -0
- package/dist/elements/FolderView/DraggableTableRow/index.js +63 -0
- package/dist/elements/FolderView/DraggableTableRow/index.js.map +1 -0
- package/dist/elements/FolderView/DraggableTableRow/index.scss +135 -0
- package/dist/elements/FolderView/DraggableWithClick/index.d.ts +15 -0
- package/dist/elements/FolderView/DraggableWithClick/index.d.ts.map +1 -0
- package/dist/elements/FolderView/DraggableWithClick/index.js +86 -0
- package/dist/elements/FolderView/DraggableWithClick/index.js.map +1 -0
- package/dist/elements/FolderView/DraggableWithClick/index.scss +5 -0
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.d.ts +7 -0
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.d.ts.map +1 -0
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.js +39 -0
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.js.map +1 -0
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts +37 -0
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts.map +1 -0
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +609 -0
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -0
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.scss +30 -0
- package/dist/elements/FolderView/FilterFolderTypePill/index.d.ts +4 -0
- package/dist/elements/FolderView/FilterFolderTypePill/index.d.ts.map +1 -0
- package/dist/elements/FolderView/FilterFolderTypePill/index.js +102 -0
- package/dist/elements/FolderView/FilterFolderTypePill/index.js.map +1 -0
- package/dist/elements/FolderView/FilterFolderTypePill/index.scss +16 -0
- package/dist/elements/FolderView/FolderField/index.scss +12 -0
- package/dist/elements/FolderView/FolderField/index.server.d.ts +4 -0
- package/dist/elements/FolderView/FolderField/index.server.d.ts.map +1 -0
- package/dist/elements/FolderView/FolderField/index.server.js +16 -0
- package/dist/elements/FolderView/FolderField/index.server.js.map +1 -0
- package/dist/elements/FolderView/FolderFileCard/index.d.ts +30 -0
- package/dist/elements/FolderView/FolderFileCard/index.d.ts.map +1 -0
- package/dist/elements/FolderView/FolderFileCard/index.js +209 -0
- package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -0
- package/dist/elements/FolderView/FolderFileCard/index.scss +247 -0
- package/dist/elements/FolderView/FolderFileTable/index.d.ts +8 -0
- package/dist/elements/FolderView/FolderFileTable/index.d.ts.map +1 -0
- package/dist/elements/FolderView/FolderFileTable/index.js +284 -0
- package/dist/elements/FolderView/FolderFileTable/index.js.map +1 -0
- package/dist/elements/FolderView/FolderFileTable/index.scss +11 -0
- package/dist/elements/FolderView/FolderTypeField/index.d.ts +4 -0
- package/dist/elements/FolderView/FolderTypeField/index.d.ts.map +1 -0
- package/dist/elements/FolderView/FolderTypeField/index.js +123 -0
- package/dist/elements/FolderView/FolderTypeField/index.js.map +1 -0
- package/dist/elements/FolderView/ItemCardGrid/index.d.ts +16 -0
- package/dist/elements/FolderView/ItemCardGrid/index.d.ts.map +1 -0
- package/dist/elements/FolderView/ItemCardGrid/index.js +34 -0
- package/dist/elements/FolderView/ItemCardGrid/index.js.map +1 -0
- package/dist/elements/FolderView/ItemCardGrid/index.scss +16 -0
- package/dist/elements/FolderView/MoveDocToFolder/index.d.ts +37 -0
- package/dist/elements/FolderView/MoveDocToFolder/index.d.ts.map +1 -0
- package/dist/elements/FolderView/MoveDocToFolder/index.js +292 -0
- package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -0
- package/dist/elements/{HierarchyButton → FolderView/MoveDocToFolder}/index.scss +1 -7
- package/dist/elements/FolderView/SimpleTable/index.d.ts +19 -0
- package/dist/elements/FolderView/SimpleTable/index.d.ts.map +1 -0
- package/dist/elements/FolderView/SimpleTable/index.js +95 -0
- package/dist/elements/FolderView/SimpleTable/index.js.map +1 -0
- package/dist/elements/FolderView/SimpleTable/index.scss +59 -0
- package/dist/elements/FolderView/SortByPill/index.d.ts +4 -0
- package/dist/elements/FolderView/SortByPill/index.d.ts.map +1 -0
- package/dist/elements/FolderView/SortByPill/index.js +112 -0
- package/dist/elements/FolderView/SortByPill/index.js.map +1 -0
- package/dist/elements/FolderView/SortByPill/index.scss +16 -0
- package/dist/elements/FolderView/ToggleViewButtons/index.d.ts +8 -0
- package/dist/elements/FolderView/ToggleViewButtons/index.d.ts.map +1 -0
- package/dist/elements/FolderView/ToggleViewButtons/index.js +31 -0
- package/dist/elements/FolderView/ToggleViewButtons/index.js.map +1 -0
- package/dist/elements/FolderView/ToggleViewButtons/index.scss +17 -0
- package/dist/elements/Link/index.d.ts +0 -4
- package/dist/elements/Link/index.d.ts.map +1 -1
- package/dist/elements/Link/index.js +0 -5
- package/dist/elements/Link/index.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.d.ts +15 -0
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.d.ts.map +1 -0
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +182 -0
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -0
- package/dist/elements/ListHeader/TitleActions/index.d.ts +1 -0
- package/dist/elements/ListHeader/TitleActions/index.d.ts.map +1 -1
- package/dist/elements/ListHeader/TitleActions/index.js +1 -0
- package/dist/elements/ListHeader/TitleActions/index.js.map +1 -1
- package/dist/elements/ListHeader/index.js +2 -2
- package/dist/elements/ListHeader/index.js.map +1 -1
- package/dist/elements/ListSelection/index.scss +1 -2
- package/dist/elements/Locked/index.scss +1 -1
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js +17 -12
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/StepNav/index.d.ts.map +1 -1
- package/dist/elements/StepNav/index.js +1 -10
- package/dist/elements/StepNav/index.js.map +1 -1
- package/dist/elements/StepNav/types.d.ts +0 -1
- package/dist/elements/StepNav/types.d.ts.map +1 -1
- package/dist/elements/StepNav/types.js.map +1 -1
- package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +0 -20
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/Tooltip/index.js +1 -1
- package/dist/elements/Tooltip/index.js.map +1 -1
- package/dist/elements/Tooltip/index.scss +15 -1
- package/dist/elements/withMergedProps/index.d.ts +1 -1
- package/dist/elements/withMergedProps/index.js +1 -1
- package/dist/elements/withMergedProps/index.js.map +1 -1
- package/dist/exports/client/index.d.ts +9 -30
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +24 -26
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/rsc/index.d.ts +3 -3
- package/dist/exports/rsc/index.d.ts.map +1 -1
- package/dist/exports/rsc/index.js +3 -3
- package/dist/exports/rsc/index.js.map +1 -1
- package/dist/exports/shared/index.js.map +1 -1
- package/dist/fields/Join/index.d.ts.map +1 -1
- package/dist/fields/Join/index.js +1 -1
- package/dist/fields/Join/index.js.map +1 -1
- package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
- package/dist/forms/Form/mergeServerFormState.js +101 -24
- package/dist/forms/Form/mergeServerFormState.js.map +1 -1
- package/dist/icons/Chevron/index.d.ts.map +1 -1
- package/dist/icons/Chevron/index.js +1 -5
- package/dist/icons/Chevron/index.js.map +1 -1
- package/dist/icons/Document/index.d.ts +1 -3
- package/dist/icons/Document/index.d.ts.map +1 -1
- package/dist/icons/Document/index.js +2 -4
- package/dist/icons/Document/index.js.map +1 -1
- package/dist/icons/Document/index.scss +0 -4
- package/dist/icons/Folder/index.d.ts +2 -4
- package/dist/icons/Folder/index.d.ts.map +1 -1
- package/dist/icons/Folder/index.js +2 -4
- package/dist/icons/Folder/index.js.map +1 -1
- package/dist/icons/Folder/index.scss +0 -8
- package/dist/icons/Lock/index.scss +1 -1
- package/dist/icons/Plus/index.d.ts.map +1 -1
- package/dist/icons/Plus/index.js +1 -2
- package/dist/icons/Plus/index.js.map +1 -1
- package/dist/providers/Folders/groupItemIDsByRelation.d.ts +3 -0
- package/dist/providers/Folders/groupItemIDsByRelation.d.ts.map +1 -0
- package/dist/providers/Folders/groupItemIDsByRelation.js +10 -0
- package/dist/providers/Folders/groupItemIDsByRelation.js.map +1 -0
- package/dist/providers/Folders/index.d.ts +143 -0
- package/dist/providers/Folders/index.d.ts.map +1 -0
- package/dist/providers/Folders/index.js +641 -0
- package/dist/providers/Folders/index.js.map +1 -0
- package/dist/providers/Root/index.d.ts.map +1 -1
- package/dist/providers/Root/index.js +15 -18
- package/dist/providers/Root/index.js.map +1 -1
- package/dist/providers/ServerFunctions/index.d.ts +6 -1
- package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
- package/dist/providers/ServerFunctions/index.js +18 -0
- package/dist/providers/ServerFunctions/index.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts +1 -2
- package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.js +1 -34
- package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/getFolderResultsComponentAndData.d.ts +25 -0
- package/dist/utilities/getFolderResultsComponentAndData.d.ts.map +1 -0
- package/dist/utilities/getFolderResultsComponentAndData.js +135 -0
- package/dist/utilities/getFolderResultsComponentAndData.js.map +1 -0
- package/dist/utilities/handleLivePreview.d.ts.map +1 -1
- package/dist/utilities/renderTable.d.ts +1 -3
- package/dist/utilities/renderTable.d.ts.map +1 -1
- package/dist/utilities/renderTable.js +3 -9
- package/dist/utilities/renderTable.js.map +1 -1
- package/dist/views/BrowseByFolder/index.d.ts +5 -0
- package/dist/views/BrowseByFolder/index.d.ts.map +1 -0
- package/dist/views/BrowseByFolder/index.js +342 -0
- package/dist/views/BrowseByFolder/index.js.map +1 -0
- package/dist/views/BrowseByFolder/index.scss +174 -0
- package/dist/views/CollectionFolder/ListSelection/index.d.ts +9 -0
- package/dist/views/CollectionFolder/ListSelection/index.d.ts.map +1 -0
- package/dist/views/CollectionFolder/ListSelection/index.js +180 -0
- package/dist/views/CollectionFolder/ListSelection/index.js.map +1 -0
- package/dist/views/CollectionFolder/index.d.ts +5 -0
- package/dist/views/CollectionFolder/index.d.ts.map +1 -0
- package/dist/views/CollectionFolder/index.js +325 -0
- package/dist/views/CollectionFolder/index.js.map +1 -0
- package/dist/views/CollectionFolder/index.scss +162 -0
- package/dist/views/Edit/index.d.ts +1 -1
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +12 -5
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +7 -51
- package/dist/views/List/index.js.map +1 -1
- package/package.json +5 -5
- package/dist/elements/CreateDocumentButton/index.d.ts +0 -26
- package/dist/elements/CreateDocumentButton/index.d.ts.map +0 -1
- package/dist/elements/CreateDocumentButton/index.js +0 -182
- package/dist/elements/CreateDocumentButton/index.js.map +0 -1
- package/dist/elements/DelayedSpinner/index.d.ts +0 -23
- package/dist/elements/DelayedSpinner/index.d.ts.map +0 -1
- package/dist/elements/DelayedSpinner/index.js +0 -61
- package/dist/elements/DelayedSpinner/index.js.map +0 -1
- package/dist/elements/HierarchyButton/index.d.ts +0 -11
- package/dist/elements/HierarchyButton/index.d.ts.map +0 -1
- package/dist/elements/HierarchyButton/index.js +0 -126
- package/dist/elements/HierarchyButton/index.js.map +0 -1
- package/dist/elements/HierarchyButton/index.server.d.ts +0 -10
- package/dist/elements/HierarchyButton/index.server.d.ts.map +0 -1
- package/dist/elements/HierarchyButton/index.server.js +0 -34
- package/dist/elements/HierarchyButton/index.server.js.map +0 -1
- package/dist/elements/HierarchyColumnBrowser/Column/index.d.ts +0 -5
- package/dist/elements/HierarchyColumnBrowser/Column/index.d.ts.map +0 -1
- package/dist/elements/HierarchyColumnBrowser/Column/index.js +0 -166
- package/dist/elements/HierarchyColumnBrowser/Column/index.js.map +0 -1
- package/dist/elements/HierarchyColumnBrowser/Column/index.scss +0 -63
- package/dist/elements/HierarchyColumnBrowser/ColumnItem/index.d.ts +0 -5
- package/dist/elements/HierarchyColumnBrowser/ColumnItem/index.d.ts.map +0 -1
- package/dist/elements/HierarchyColumnBrowser/ColumnItem/index.js +0 -161
- package/dist/elements/HierarchyColumnBrowser/ColumnItem/index.js.map +0 -1
- package/dist/elements/HierarchyColumnBrowser/ColumnItem/index.scss +0 -105
- package/dist/elements/HierarchyColumnBrowser/index.d.ts +0 -8
- package/dist/elements/HierarchyColumnBrowser/index.d.ts.map +0 -1
- package/dist/elements/HierarchyColumnBrowser/index.js +0 -470
- package/dist/elements/HierarchyColumnBrowser/index.js.map +0 -1
- package/dist/elements/HierarchyColumnBrowser/index.scss +0 -20
- package/dist/elements/HierarchyColumnBrowser/types.d.ts +0 -103
- package/dist/elements/HierarchyColumnBrowser/types.d.ts.map +0 -1
- package/dist/elements/HierarchyColumnBrowser/types.js +0 -2
- package/dist/elements/HierarchyColumnBrowser/types.js.map +0 -1
- package/dist/elements/HierarchyDrawer/Drawer/index.d.ts +0 -20
- package/dist/elements/HierarchyDrawer/Drawer/index.d.ts.map +0 -1
- package/dist/elements/HierarchyDrawer/Drawer/index.js +0 -289
- package/dist/elements/HierarchyDrawer/Drawer/index.js.map +0 -1
- package/dist/elements/HierarchyDrawer/Drawer/index.scss +0 -81
- package/dist/elements/HierarchyDrawer/fetchAncestorPath.d.ts +0 -15
- package/dist/elements/HierarchyDrawer/fetchAncestorPath.d.ts.map +0 -1
- package/dist/elements/HierarchyDrawer/fetchAncestorPath.js +0 -60
- package/dist/elements/HierarchyDrawer/fetchAncestorPath.js.map +0 -1
- package/dist/elements/HierarchyDrawer/index.d.ts +0 -30
- package/dist/elements/HierarchyDrawer/index.d.ts.map +0 -1
- package/dist/elements/HierarchyDrawer/index.js +0 -146
- package/dist/elements/HierarchyDrawer/index.js.map +0 -1
- package/dist/elements/HierarchyDrawer/types.d.ts +0 -65
- package/dist/elements/HierarchyDrawer/types.d.ts.map +0 -1
- package/dist/elements/HierarchyDrawer/types.js +0 -3
- package/dist/elements/HierarchyDrawer/types.js.map +0 -1
- package/dist/elements/HierarchyField/SelectedHierarchies.d.ts +0 -13
- package/dist/elements/HierarchyField/SelectedHierarchies.d.ts.map +0 -1
- package/dist/elements/HierarchyField/SelectedHierarchies.js +0 -194
- package/dist/elements/HierarchyField/SelectedHierarchies.js.map +0 -1
- package/dist/elements/HierarchyField/SelectedHierarchies.scss +0 -78
- package/dist/elements/HierarchyField/index.client.d.ts +0 -8
- package/dist/elements/HierarchyField/index.client.d.ts.map +0 -1
- package/dist/elements/HierarchyField/index.client.js +0 -198
- package/dist/elements/HierarchyField/index.client.js.map +0 -1
- package/dist/elements/HierarchyField/index.scss +0 -35
- package/dist/elements/HierarchyField/index.server.d.ts +0 -3
- package/dist/elements/HierarchyField/index.server.d.ts.map +0 -1
- package/dist/elements/HierarchyField/index.server.js +0 -30
- package/dist/elements/HierarchyField/index.server.js.map +0 -1
- package/dist/elements/HierarchySearch/HierarchySearchInput.d.ts +0 -18
- package/dist/elements/HierarchySearch/HierarchySearchInput.d.ts.map +0 -1
- package/dist/elements/HierarchySearch/HierarchySearchInput.js +0 -115
- package/dist/elements/HierarchySearch/HierarchySearchInput.js.map +0 -1
- package/dist/elements/HierarchySearch/HierarchySearchResultItem.d.ts +0 -13
- package/dist/elements/HierarchySearch/HierarchySearchResultItem.d.ts.map +0 -1
- package/dist/elements/HierarchySearch/HierarchySearchResultItem.js +0 -88
- package/dist/elements/HierarchySearch/HierarchySearchResultItem.js.map +0 -1
- package/dist/elements/HierarchySearch/HierarchySearchResults.d.ts +0 -17
- package/dist/elements/HierarchySearch/HierarchySearchResults.d.ts.map +0 -1
- package/dist/elements/HierarchySearch/HierarchySearchResults.js +0 -85
- package/dist/elements/HierarchySearch/HierarchySearchResults.js.map +0 -1
- package/dist/elements/HierarchySearch/index.d.ts +0 -10
- package/dist/elements/HierarchySearch/index.d.ts.map +0 -1
- package/dist/elements/HierarchySearch/index.js +0 -144
- package/dist/elements/HierarchySearch/index.js.map +0 -1
- package/dist/elements/HierarchySearch/index.scss +0 -212
- package/dist/elements/HierarchySearch/types.d.ts +0 -21
- package/dist/elements/HierarchySearch/types.d.ts.map +0 -1
- package/dist/elements/HierarchySearch/types.js +0 -2
- package/dist/elements/HierarchySearch/types.js.map +0 -1
- package/dist/elements/HierarchySearch/useHierarchySearch.d.ts +0 -20
- package/dist/elements/HierarchySearch/useHierarchySearch.d.ts.map +0 -1
- package/dist/elements/HierarchySearch/useHierarchySearch.js +0 -122
- package/dist/elements/HierarchySearch/useHierarchySearch.js.map +0 -1
- package/dist/elements/HierarchyTree/HierarchySidebarTab.d.ts +0 -20
- package/dist/elements/HierarchyTree/HierarchySidebarTab.d.ts.map +0 -1
- package/dist/elements/HierarchyTree/HierarchySidebarTab.js +0 -159
- package/dist/elements/HierarchyTree/HierarchySidebarTab.js.map +0 -1
- package/dist/elements/HierarchyTree/HierarchySidebarTab.server.d.ts +0 -7
- package/dist/elements/HierarchyTree/HierarchySidebarTab.server.d.ts.map +0 -1
- package/dist/elements/HierarchyTree/HierarchySidebarTab.server.js +0 -167
- package/dist/elements/HierarchyTree/HierarchySidebarTab.server.js.map +0 -1
- package/dist/elements/HierarchyTree/LoadMore/LoadMoreButton.d.ts +0 -8
- package/dist/elements/HierarchyTree/LoadMore/LoadMoreButton.d.ts.map +0 -1
- package/dist/elements/HierarchyTree/LoadMore/LoadMoreButton.js +0 -36
- package/dist/elements/HierarchyTree/LoadMore/LoadMoreButton.js.map +0 -1
- package/dist/elements/HierarchyTree/LoadMore/index.d.ts +0 -12
- package/dist/elements/HierarchyTree/LoadMore/index.d.ts.map +0 -1
- package/dist/elements/HierarchyTree/LoadMore/index.js +0 -29
- package/dist/elements/HierarchyTree/LoadMore/index.js.map +0 -1
- package/dist/elements/HierarchyTree/LoadMore/index.scss +0 -26
- package/dist/elements/HierarchyTree/TreeConnector.d.ts +0 -7
- package/dist/elements/HierarchyTree/TreeConnector.d.ts.map +0 -1
- package/dist/elements/HierarchyTree/TreeConnector.js +0 -23
- package/dist/elements/HierarchyTree/TreeConnector.js.map +0 -1
- package/dist/elements/HierarchyTree/TreeFocusContext.d.ts +0 -28
- package/dist/elements/HierarchyTree/TreeFocusContext.d.ts.map +0 -1
- package/dist/elements/HierarchyTree/TreeFocusContext.js +0 -140
- package/dist/elements/HierarchyTree/TreeFocusContext.js.map +0 -1
- package/dist/elements/HierarchyTree/TreeNode/index.d.ts +0 -5
- package/dist/elements/HierarchyTree/TreeNode/index.d.ts.map +0 -1
- package/dist/elements/HierarchyTree/TreeNode/index.js +0 -201
- package/dist/elements/HierarchyTree/TreeNode/index.js.map +0 -1
- package/dist/elements/HierarchyTree/TreeNode/index.scss +0 -99
- package/dist/elements/HierarchyTree/index.d.ts +0 -4
- package/dist/elements/HierarchyTree/index.d.ts.map +0 -1
- package/dist/elements/HierarchyTree/index.js +0 -68
- package/dist/elements/HierarchyTree/index.js.map +0 -1
- package/dist/elements/HierarchyTree/index.scss +0 -42
- package/dist/elements/HierarchyTree/types.d.ts +0 -57
- package/dist/elements/HierarchyTree/types.d.ts.map +0 -1
- package/dist/elements/HierarchyTree/types.js +0 -2
- package/dist/elements/HierarchyTree/types.js.map +0 -1
- package/dist/elements/HierarchyTree/useChildren.d.ts +0 -26
- package/dist/elements/HierarchyTree/useChildren.d.ts.map +0 -1
- package/dist/elements/HierarchyTree/useChildren.js +0 -150
- package/dist/elements/HierarchyTree/useChildren.js.map +0 -1
- package/dist/elements/HierarchyTree/useTreeState.d.ts +0 -9
- package/dist/elements/HierarchyTree/useTreeState.d.ts.map +0 -1
- package/dist/elements/HierarchyTree/useTreeState.js +0 -50
- package/dist/elements/HierarchyTree/useTreeState.js.map +0 -1
- package/dist/elements/HydrateHierarchyProvider/index.d.ts +0 -4
- package/dist/elements/HydrateHierarchyProvider/index.d.ts.map +0 -1
- package/dist/elements/HydrateHierarchyProvider/index.js +0 -70
- package/dist/elements/HydrateHierarchyProvider/index.js.map +0 -1
- package/dist/elements/LoadMoreRow/index.d.ts +0 -15
- package/dist/elements/LoadMoreRow/index.d.ts.map +0 -1
- package/dist/elements/LoadMoreRow/index.js +0 -75
- package/dist/elements/LoadMoreRow/index.js.map +0 -1
- package/dist/elements/LoadMoreRow/index.scss +0 -42
- package/dist/elements/MoveMany/index.d.ts +0 -22
- package/dist/elements/MoveMany/index.d.ts.map +0 -1
- package/dist/elements/MoveMany/index.js +0 -278
- package/dist/elements/MoveMany/index.js.map +0 -1
- package/dist/elements/MoveMany/index.scss +0 -7
- package/dist/elements/Spinner/index.d.ts +0 -16
- package/dist/elements/Spinner/index.d.ts.map +0 -1
- package/dist/elements/Spinner/index.js +0 -49
- package/dist/elements/Spinner/index.js.map +0 -1
- package/dist/elements/Spinner/index.scss +0 -39
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts +0 -6
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts.map +0 -1
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js +0 -187
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js.map +0 -1
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.scss +0 -29
- package/dist/elements/Tree/LoadMore/LoadMoreButton.d.ts +0 -8
- package/dist/elements/Tree/LoadMore/LoadMoreButton.d.ts.map +0 -1
- package/dist/elements/Tree/LoadMore/LoadMoreButton.js +0 -36
- package/dist/elements/Tree/LoadMore/LoadMoreButton.js.map +0 -1
- package/dist/elements/Tree/LoadMore/index.d.ts +0 -12
- package/dist/elements/Tree/LoadMore/index.d.ts.map +0 -1
- package/dist/elements/Tree/LoadMore/index.js +0 -29
- package/dist/elements/Tree/LoadMore/index.js.map +0 -1
- package/dist/elements/Tree/LoadMore/index.scss +0 -26
- package/dist/elements/Tree/TreeConnector.d.ts +0 -7
- package/dist/elements/Tree/TreeConnector.d.ts.map +0 -1
- package/dist/elements/Tree/TreeConnector.js +0 -23
- package/dist/elements/Tree/TreeConnector.js.map +0 -1
- package/dist/elements/Tree/TreeFocusContext.d.ts +0 -28
- package/dist/elements/Tree/TreeFocusContext.d.ts.map +0 -1
- package/dist/elements/Tree/TreeFocusContext.js +0 -140
- package/dist/elements/Tree/TreeFocusContext.js.map +0 -1
- package/dist/elements/Tree/TreeNode/index.d.ts +0 -5
- package/dist/elements/Tree/TreeNode/index.d.ts.map +0 -1
- package/dist/elements/Tree/TreeNode/index.js +0 -218
- package/dist/elements/Tree/TreeNode/index.js.map +0 -1
- package/dist/elements/Tree/TreeNode/index.scss +0 -110
- package/dist/elements/Tree/index.d.ts +0 -5
- package/dist/elements/Tree/index.d.ts.map +0 -1
- package/dist/elements/Tree/index.js +0 -258
- package/dist/elements/Tree/index.js.map +0 -1
- package/dist/elements/Tree/index.scss +0 -63
- package/dist/elements/Tree/types.d.ts +0 -69
- package/dist/elements/Tree/types.d.ts.map +0 -1
- package/dist/elements/Tree/types.js +0 -2
- package/dist/elements/Tree/types.js.map +0 -1
- package/dist/elements/Tree/useChildren.d.ts +0 -25
- package/dist/elements/Tree/useChildren.d.ts.map +0 -1
- package/dist/elements/Tree/useChildren.js +0 -213
- package/dist/elements/Tree/useChildren.js.map +0 -1
- package/dist/fields/Null/index.d.ts +0 -11
- package/dist/fields/Null/index.d.ts.map +0 -1
- package/dist/fields/Null/index.js +0 -13
- package/dist/fields/Null/index.js.map +0 -1
- package/dist/icons/Filter/index.d.ts +0 -4
- package/dist/icons/Filter/index.d.ts.map +0 -1
- package/dist/icons/Filter/index.js +0 -15
- package/dist/icons/Filter/index.js.map +0 -1
- package/dist/icons/Filter/index.scss +0 -13
- package/dist/icons/Tag/index.d.ts +0 -8
- package/dist/icons/Tag/index.d.ts.map +0 -1
- package/dist/icons/Tag/index.js +0 -22
- package/dist/icons/Tag/index.js.map +0 -1
- package/dist/icons/Tag/index.scss +0 -14
- package/dist/providers/DocumentSelection/index.d.ts +0 -8
- package/dist/providers/DocumentSelection/index.d.ts.map +0 -1
- package/dist/providers/DocumentSelection/index.js +0 -239
- package/dist/providers/DocumentSelection/index.js.map +0 -1
- package/dist/providers/DocumentSelection/types.d.ts +0 -122
- package/dist/providers/DocumentSelection/types.d.ts.map +0 -1
- package/dist/providers/DocumentSelection/types.js +0 -5
- package/dist/providers/DocumentSelection/types.js.map +0 -1
- package/dist/providers/Hierarchy/index.d.ts +0 -5
- package/dist/providers/Hierarchy/index.d.ts.map +0 -1
- package/dist/providers/Hierarchy/index.js +0 -346
- package/dist/providers/Hierarchy/index.js.map +0 -1
- package/dist/providers/Hierarchy/types.d.ts +0 -105
- package/dist/providers/Hierarchy/types.d.ts.map +0 -1
- package/dist/providers/Hierarchy/types.js +0 -2
- package/dist/providers/Hierarchy/types.js.map +0 -1
- package/dist/utilities/isSuperset.d.ts +0 -6
- package/dist/utilities/isSuperset.d.ts.map +0 -1
- package/dist/utilities/isSuperset.js +0 -10
- package/dist/utilities/isSuperset.js.map +0 -1
- package/dist/views/HierarchyList/DocumentListSelection/index.d.ts +0 -10
- package/dist/views/HierarchyList/DocumentListSelection/index.d.ts.map +0 -1
- package/dist/views/HierarchyList/DocumentListSelection/index.js +0 -135
- package/dist/views/HierarchyList/DocumentListSelection/index.js.map +0 -1
- package/dist/views/HierarchyList/HierarchyListHeader/index.d.ts +0 -21
- package/dist/views/HierarchyList/HierarchyListHeader/index.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyListHeader/index.js +0 -67
- package/dist/views/HierarchyList/HierarchyListHeader/index.js.map +0 -1
- package/dist/views/HierarchyList/HierarchyListHeader/index.scss +0 -9
- package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.d.ts +0 -4
- package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js +0 -104
- package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/DateCell.d.ts +0 -4
- package/dist/views/HierarchyList/HierarchyTable/DateCell.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/DateCell.js +0 -53
- package/dist/views/HierarchyList/HierarchyTable/DateCell.js.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.d.ts +0 -4
- package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.js +0 -128
- package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.js.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.d.ts +0 -99
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.js +0 -118
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.js.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.scss +0 -214
- package/dist/views/HierarchyList/HierarchyTable/index.d.ts +0 -23
- package/dist/views/HierarchyList/HierarchyTable/index.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/index.js +0 -387
- package/dist/views/HierarchyList/HierarchyTable/index.js.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/index.scss +0 -148
- package/dist/views/HierarchyList/HierarchyTable/types.d.ts +0 -20
- package/dist/views/HierarchyList/HierarchyTable/types.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/types.js +0 -2
- package/dist/views/HierarchyList/HierarchyTable/types.js.map +0 -1
- package/dist/views/HierarchyList/TypeFilter/index.d.ts +0 -15
- package/dist/views/HierarchyList/TypeFilter/index.d.ts.map +0 -1
- package/dist/views/HierarchyList/TypeFilter/index.js +0 -37
- package/dist/views/HierarchyList/TypeFilter/index.js.map +0 -1
- package/dist/views/HierarchyList/TypeFilter/index.scss +0 -32
- package/dist/views/HierarchyList/index.d.ts +0 -5
- package/dist/views/HierarchyList/index.d.ts.map +0 -1
- package/dist/views/HierarchyList/index.js +0 -303
- package/dist/views/HierarchyList/index.js.map +0 -1
- package/dist/views/HierarchyList/index.scss +0 -72
|
@@ -1,6 +1,41 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import { dequal } from 'dequal/lite'; // lite: no need for Map and Set support
|
|
4
|
+
/**
|
|
5
|
+
* Parses an array field path to extract the array path, row index, and field path.
|
|
6
|
+
* Handles nested arrays by finding the deepest numeric index.
|
|
7
|
+
*
|
|
8
|
+
* @param path - The field path to parse (e.g., 'array.1.text' or 'blocks.0.items.1.title')
|
|
9
|
+
* @returns Object with arrayPath, rowIndex, and fieldPath, or null if not an array field
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* parseArrayFieldPath('array.1.text')
|
|
13
|
+
* // Returns: { arrayPath: 'array', rowIndex: 1, fieldPath: 'text' }
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* parseArrayFieldPath('blocks.0.items.1.title')
|
|
17
|
+
* // Returns: { arrayPath: 'blocks.0.items', rowIndex: 1, fieldPath: 'title' }
|
|
18
|
+
*/
|
|
19
|
+
function parseArrayFieldPath(path) {
|
|
20
|
+
const segments = path.split('.');
|
|
21
|
+
// Find the last numeric index (indicates array row)
|
|
22
|
+
let lastNumericIndex = -1;
|
|
23
|
+
for (let i = segments.length - 1; i >= 0; i--) {
|
|
24
|
+
if (/^\d+$/.test(segments[i])) {
|
|
25
|
+
lastNumericIndex = i;
|
|
26
|
+
break;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
// Not an array field if no numeric index or nothing after it
|
|
30
|
+
if (lastNumericIndex === -1 || lastNumericIndex === segments.length - 1) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
return {
|
|
34
|
+
arrayPath: segments.slice(0, lastNumericIndex).join('.'),
|
|
35
|
+
fieldPath: segments.slice(lastNumericIndex + 1).join('.'),
|
|
36
|
+
rowIndex: parseInt(segments[lastNumericIndex], 10)
|
|
37
|
+
};
|
|
38
|
+
}
|
|
4
39
|
/**
|
|
5
40
|
* This function receives form state from the server and intelligently merges it into the client state.
|
|
6
41
|
* The server contains extra properties that the client may not have, e.g. custom components and error states.
|
|
@@ -31,9 +66,32 @@ export const mergeServerFormState = ({
|
|
|
31
66
|
* a. accept all values when explicitly requested, e.g. on submit
|
|
32
67
|
* b. only accept values for unmodified fields, e.g. on autosave
|
|
33
68
|
*/
|
|
34
|
-
|
|
69
|
+
let shouldAcceptValue = incomingField.addedByServer || acceptValues === true || typeof acceptValues === 'object' && acceptValues !== null &&
|
|
35
70
|
// Note: Must be explicitly `false`, allow `null` or `undefined` to mean true
|
|
36
71
|
acceptValues.overrideLocalChanges === false && !currentState[path]?.isModified;
|
|
72
|
+
/**
|
|
73
|
+
* For array row fields, verify the row IDs match at the given index before accepting
|
|
74
|
+
* server values. If rows were reordered or deleted while the request was in-flight,
|
|
75
|
+
* the same index may refer to different rows, and accepting the server value would
|
|
76
|
+
* overwrite the wrong row's data.
|
|
77
|
+
*
|
|
78
|
+
* This guard only applies during autosave. On explicit save (acceptValues === true),
|
|
79
|
+
* the server response is authoritative and this check is bypassed.
|
|
80
|
+
*/
|
|
81
|
+
if (shouldAcceptValue && !incomingField.addedByServer && acceptValues !== true) {
|
|
82
|
+
const parsed = parseArrayFieldPath(path);
|
|
83
|
+
if (parsed) {
|
|
84
|
+
const {
|
|
85
|
+
arrayPath,
|
|
86
|
+
rowIndex
|
|
87
|
+
} = parsed;
|
|
88
|
+
const clientRowId = currentState[arrayPath]?.rows?.[rowIndex]?.id;
|
|
89
|
+
const serverRowId = incomingState[arrayPath]?.rows?.[rowIndex]?.id;
|
|
90
|
+
if (clientRowId === undefined || serverRowId && clientRowId !== serverRowId) {
|
|
91
|
+
shouldAcceptValue = false;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
37
95
|
let sanitizedIncomingField = incomingField;
|
|
38
96
|
if (!shouldAcceptValue) {
|
|
39
97
|
/**
|
|
@@ -60,32 +118,51 @@ export const mergeServerFormState = ({
|
|
|
60
118
|
* For example, the server response could come back with a row which has been deleted on the client
|
|
61
119
|
* Loop over the incoming rows, if it exists in client side form state, merge in any new properties from the server
|
|
62
120
|
* Note: read `currentState` and not `newState` here, as the `rows` property have already been merged above
|
|
121
|
+
*
|
|
122
|
+
* On explicit save (acceptValues === true), the server is authoritative - accept server row order.
|
|
123
|
+
* On autosave (acceptValues !== true), the client is source of truth - use ID-based matching.
|
|
63
124
|
*/
|
|
64
125
|
if (Array.isArray(incomingField.rows) && path in currentState) {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
126
|
+
if (acceptValues === true) {
|
|
127
|
+
// Explicit save: server is authoritative, use index-based merging
|
|
128
|
+
newState[path].rows = incomingField.rows.map((serverRow, index) => ({
|
|
129
|
+
...(currentState[path]?.rows?.[index] || {}),
|
|
130
|
+
...serverRow
|
|
131
|
+
}));
|
|
132
|
+
} else {
|
|
133
|
+
// Autosave: client is source of truth, use ID-based matching
|
|
134
|
+
newState[path].rows = [...(currentState[path]?.rows || [])]; // shallow copy to avoid mutating the original array
|
|
135
|
+
incomingField.rows.forEach(row => {
|
|
136
|
+
const indexInCurrentState = currentState[path].rows?.findIndex(existingRow => existingRow.id === row.id);
|
|
137
|
+
if (indexInCurrentState > -1) {
|
|
138
|
+
newState[path].rows[indexInCurrentState] = {
|
|
139
|
+
...currentState[path].rows[indexInCurrentState],
|
|
140
|
+
...row
|
|
141
|
+
};
|
|
142
|
+
} else if (row.addedByServer) {
|
|
143
|
+
/**
|
|
144
|
+
* Note: This is a known limitation of computed array and block rows
|
|
145
|
+
* If a new row was added by the server, we append it to the _end_ of this array
|
|
146
|
+
* This is because the client is the source of truth, and it has arrays ordered in a certain position
|
|
147
|
+
* For example, the user may have re-ordered rows client-side while a long running request is processing
|
|
148
|
+
* This means that we _cannot_ slice a new row into the second position on the server, for example
|
|
149
|
+
* By the time it gets back to the client, its index is stale
|
|
150
|
+
*/
|
|
151
|
+
const newRow = {
|
|
152
|
+
...row
|
|
153
|
+
};
|
|
154
|
+
delete newRow.addedByServer;
|
|
155
|
+
newState[path].rows.push(newRow);
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
/**
|
|
159
|
+
* Sync the value field to match the actual row count after merging.
|
|
160
|
+
* Client is source of truth for row count when rows were added/removed during the request.
|
|
161
|
+
*/
|
|
162
|
+
if ('value' in incomingField && newState[path].rows.length !== incomingField.value) {
|
|
163
|
+
newState[path].value = newState[path].rows.length;
|
|
87
164
|
}
|
|
88
|
-
}
|
|
165
|
+
}
|
|
89
166
|
}
|
|
90
167
|
// If `valid` is `undefined`, mark it as `true`
|
|
91
168
|
if (incomingField.valid !== false) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeServerFormState.js","names":["dequal","mergeServerFormState","acceptValues","currentState","incomingState","newState","path","incomingField","Object","entries","addedByServer","shouldAcceptValue","overrideLocalChanges","isModified","sanitizedIncomingField","initialValue","value","rest","errorPaths","Array","isArray","rows","forEach","row","indexInCurrentState","findIndex","existingRow","id","newRow","push","valid","passesCondition","blocksFilterOptions"],"sources":["../../../src/forms/Form/mergeServerFormState.ts"],"sourcesContent":["'use client'\nimport type { FormState } from 'payload'\n\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\n\n/**\n * If true, will accept all values from the server, overriding any current values in local state.\n * Can also provide an options object for more granular control.\n */\nexport type AcceptValues =\n | {\n /**\n * When `false`, will accept the values from the server _UNLESS_ the value has been modified locally since the request was made.\n * This is useful for autosave, for example, where hooks may have modified the field's value on the server while you were still making changes.\n * @default undefined\n */\n overrideLocalChanges?: boolean\n }\n | boolean\n\ntype Args = {\n acceptValues?: AcceptValues\n currentState?: FormState\n incomingState: FormState\n}\n\n/**\n * This function receives form state from the server and intelligently merges it into the client state.\n * The server contains extra properties that the client may not have, e.g. custom components and error states.\n * We typically do not want to merge properties that rely on user input, however, such as values, unless explicitly requested.\n * Doing this would cause the client to lose any local changes to those fields.\n *\n * Note: Local state is the source of truth, not the new server state that is getting merged in. This is critical for array row\n * manipulation specifically, where the user may have added, removed, or reordered rows while a request was pending and is now stale.\n *\n * This function applies some defaults, as well as cleans up the server response in preparation for the client.\n * e.g. it will set `valid` and `passesCondition` to true if undefined, and remove `addedByServer` from the response.\n */\nexport const mergeServerFormState = ({\n acceptValues,\n currentState = {},\n incomingState,\n}: Args): FormState => {\n const newState = { ...currentState }\n\n for (const [path, incomingField] of Object.entries(incomingState || {})) {\n if (!(path in currentState) && !incomingField.addedByServer) {\n continue\n }\n\n /**\n * If it's a new field added by the server, always accept the value.\n * Otherwise:\n * a. accept all values when explicitly requested, e.g. on submit\n * b. only accept values for unmodified fields, e.g. on autosave\n */\n const shouldAcceptValue =\n incomingField.addedByServer ||\n acceptValues === true ||\n (typeof acceptValues === 'object' &&\n acceptValues !== null &&\n // Note: Must be explicitly `false`, allow `null` or `undefined` to mean true\n acceptValues.overrideLocalChanges === false &&\n !currentState[path]?.isModified)\n\n let sanitizedIncomingField = incomingField\n\n if (!shouldAcceptValue) {\n /**\n * Note: do not delete properties off `incomingField` as this will mutate the original object\n * Instead, omit them from the destructured object by excluding specific keys\n * This will also ensure we don't set `undefined` into the result unnecessarily\n */\n const { initialValue, value, ...rest } = incomingField\n sanitizedIncomingField = rest\n }\n\n newState[path] = {\n ...currentState[path],\n ...sanitizedIncomingField,\n }\n\n if (\n currentState[path] &&\n 'errorPaths' in currentState[path] &&\n !('errorPaths' in incomingField)\n ) {\n newState[path].errorPaths = []\n }\n\n /**\n * Deeply merge the rows array to ensure changes to local state are not lost while the request was pending\n * For example, the server response could come back with a row which has been deleted on the client\n * Loop over the incoming rows, if it exists in client side form state, merge in any new properties from the server\n * Note: read `currentState` and not `newState` here, as the `rows` property have already been merged above\n */\n if (Array.isArray(incomingField.rows) && path in currentState) {\n newState[path].rows = [...(currentState[path]?.rows || [])] // shallow copy to avoid mutating the original array\n\n incomingField.rows.forEach((row) => {\n const indexInCurrentState = currentState[path].rows?.findIndex(\n (existingRow) => existingRow.id === row.id,\n )\n\n if (indexInCurrentState > -1) {\n newState[path].rows[indexInCurrentState] = {\n ...currentState[path].rows[indexInCurrentState],\n ...row,\n }\n } else if (row.addedByServer) {\n /**\n * Note: This is a known limitation of computed array and block rows\n * If a new row was added by the server, we append it to the _end_ of this array\n * This is because the client is the source of truth, and it has arrays ordered in a certain position\n * For example, the user may have re-ordered rows client-side while a long running request is processing\n * This means that we _cannot_ slice a new row into the second position on the server, for example\n * By the time it gets back to the client, its index is stale\n */\n const newRow = { ...row }\n delete newRow.addedByServer\n newState[path].rows.push(newRow)\n }\n })\n }\n\n // If `valid` is `undefined`, mark it as `true`\n if (incomingField.valid !== false) {\n newState[path].valid = true\n }\n\n // If `passesCondition` is `undefined`, mark it as `true`\n if (incomingField.passesCondition !== false) {\n newState[path].passesCondition = true\n }\n\n /**\n * Undefined values for blocksFilterOptions coming back should be treated as \"all blocks allowed\" and\n * should always be merged in.\n * Without this, an undefined value coming back will incorrectly be ignored, and the previous filter will remain.\n */\n if (!incomingField.blocksFilterOptions) {\n delete newState[path].blocksFilterOptions\n }\n\n // Strip away the `addedByServer` property from the client\n // This will prevent it from being passed back to the server\n delete newState[path].addedByServer\n }\n\n // Return the original object reference if the state is unchanged\n // This will avoid unnecessary re-renders and dependency updates\n return dequal(newState, currentState) ? currentState : newState\n}\n"],"mappings":"AAAA;;AAGA,SAASA,MAAM,QAAQ,cAAa,CAAC;AAuBrC;;;;;;;;;;;;AAYA,OAAO,MAAMC,oBAAA,GAAuBA,CAAC;EACnCC,YAAY;EACZC,YAAA,GAAe,CAAC,CAAC;EACjBC;AAAa,CACR;EACL,MAAMC,QAAA,GAAW;IAAE,GAAGF;EAAa;EAEnC,KAAK,MAAM,CAACG,IAAA,EAAMC,aAAA,CAAc,IAAIC,MAAA,CAAOC,OAAO,CAACL,aAAA,IAAiB,CAAC,IAAI;IACvE,IAAI,EAAEE,IAAA,IAAQH,YAAW,KAAM,CAACI,aAAA,CAAcG,aAAa,EAAE;MAC3D;IACF;IAEA;;;;;;IAMA,MAAMC,iBAAA,GACJJ,aAAA,CAAcG,aAAa,IAC3BR,YAAA,KAAiB,QAChB,OAAOA,YAAA,KAAiB,YACvBA,YAAA,KAAiB;IACjB;IACAA,YAAA,CAAaU,oBAAoB,KAAK,SACtC,CAACT,YAAY,CAACG,IAAA,CAAK,EAAEO,UAAA;IAEzB,IAAIC,sBAAA,GAAyBP,aAAA;IAE7B,IAAI,CAACI,iBAAA,EAAmB;MACtB;;;;;MAKA,MAAM;QAAEI,YAAY;QAAEC,KAAK;QAAE,GAAGC;MAAA,CAAM,GAAGV,aAAA;MACzCO,sBAAA,GAAyBG,IAAA;IAC3B;IAEAZ,QAAQ,CAACC,IAAA,CAAK,GAAG;MACf,GAAGH,YAAY,CAACG,IAAA,CAAK;MACrB,GAAGQ;IACL;IAEA,IACEX,YAAY,CAACG,IAAA,CAAK,IAClB,gBAAgBH,YAAY,CAACG,IAAA,CAAK,IAClC,EAAE,gBAAgBC,aAAY,GAC9B;MACAF,QAAQ,CAACC,IAAA,CAAK,CAACY,UAAU,GAAG,EAAE;IAChC;IAEA;;;;;;IAMA,IAAIC,KAAA,CAAMC,OAAO,CAACb,aAAA,CAAcc,IAAI,KAAKf,IAAA,IAAQH,YAAA,EAAc;MAC7DE,QAAQ,CAACC,IAAA,CAAK,CAACe,IAAI,GAAG,C,IAAKlB,YAAY,CAACG,IAAA,CAAK,EAAEe,IAAA,IAAQ,EAAE,EAAE,EAAC;MAE5Dd,aAAA,CAAcc,IAAI,CAACC,OAAO,CAAEC,GAAA;QAC1B,MAAMC,mBAAA,GAAsBrB,YAAY,CAACG,IAAA,CAAK,CAACe,IAAI,EAAEI,SAAA,CAClDC,WAAA,IAAgBA,WAAA,CAAYC,EAAE,KAAKJ,GAAA,CAAII,EAAE;QAG5C,IAAIH,mBAAA,GAAsB,CAAC,GAAG;UAC5BnB,QAAQ,CAACC,IAAA,CAAK,CAACe,IAAI,CAACG,mBAAA,CAAoB,GAAG;YACzC,GAAGrB,YAAY,CAACG,IAAA,CAAK,CAACe,IAAI,CAACG,mBAAA,CAAoB;YAC/C,GAAGD;UACL;QACF,OAAO,IAAIA,GAAA,CAAIb,aAAa,EAAE;UAC5B;;;;;;;;UAQA,MAAMkB,MAAA,GAAS;YAAE,GAAGL;UAAI;UACxB,OAAOK,MAAA,CAAOlB,aAAa;UAC3BL,QAAQ,CAACC,IAAA,CAAK,CAACe,IAAI,CAACQ,IAAI,CAACD,MAAA;QAC3B;MACF;IACF;IAEA;IACA,IAAIrB,aAAA,CAAcuB,KAAK,KAAK,OAAO;MACjCzB,QAAQ,CAACC,IAAA,CAAK,CAACwB,KAAK,GAAG;IACzB;IAEA;IACA,IAAIvB,aAAA,CAAcwB,eAAe,KAAK,OAAO;MAC3C1B,QAAQ,CAACC,IAAA,CAAK,CAACyB,eAAe,GAAG;IACnC;IAEA;;;;;IAKA,IAAI,CAACxB,aAAA,CAAcyB,mBAAmB,EAAE;MACtC,OAAO3B,QAAQ,CAACC,IAAA,CAAK,CAAC0B,mBAAmB;IAC3C;IAEA;IACA;IACA,OAAO3B,QAAQ,CAACC,IAAA,CAAK,CAACI,aAAa;EACrC;EAEA;EACA;EACA,OAAOV,MAAA,CAAOK,QAAA,EAAUF,YAAA,IAAgBA,YAAA,GAAeE,QAAA;AACzD","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"mergeServerFormState.js","names":["dequal","parseArrayFieldPath","path","segments","split","lastNumericIndex","i","length","test","arrayPath","slice","join","fieldPath","rowIndex","parseInt","mergeServerFormState","acceptValues","currentState","incomingState","newState","incomingField","Object","entries","addedByServer","shouldAcceptValue","overrideLocalChanges","isModified","parsed","clientRowId","rows","id","serverRowId","undefined","sanitizedIncomingField","initialValue","value","rest","errorPaths","Array","isArray","map","serverRow","index","forEach","row","indexInCurrentState","findIndex","existingRow","newRow","push","valid","passesCondition","blocksFilterOptions"],"sources":["../../../src/forms/Form/mergeServerFormState.ts"],"sourcesContent":["'use client'\nimport type { FormState } from 'payload'\n\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\n\n/**\n * If true, will accept all values from the server, overriding any current values in local state.\n * Can also provide an options object for more granular control.\n */\nexport type AcceptValues =\n | {\n /**\n * When `false`, will accept the values from the server _UNLESS_ the value has been modified locally since the request was made.\n * This is useful for autosave, for example, where hooks may have modified the field's value on the server while you were still making changes.\n * @default undefined\n */\n overrideLocalChanges?: boolean\n }\n | boolean\n\ntype Args = {\n acceptValues?: AcceptValues\n currentState?: FormState\n incomingState: FormState\n}\n\n/**\n * Parses an array field path to extract the array path, row index, and field path.\n * Handles nested arrays by finding the deepest numeric index.\n *\n * @param path - The field path to parse (e.g., 'array.1.text' or 'blocks.0.items.1.title')\n * @returns Object with arrayPath, rowIndex, and fieldPath, or null if not an array field\n *\n * @example\n * parseArrayFieldPath('array.1.text')\n * // Returns: { arrayPath: 'array', rowIndex: 1, fieldPath: 'text' }\n *\n * @example\n * parseArrayFieldPath('blocks.0.items.1.title')\n * // Returns: { arrayPath: 'blocks.0.items', rowIndex: 1, fieldPath: 'title' }\n */\nfunction parseArrayFieldPath(path: string): {\n arrayPath: string\n fieldPath: string\n rowIndex: number\n} | null {\n const segments = path.split('.')\n\n // Find the last numeric index (indicates array row)\n let lastNumericIndex = -1\n for (let i = segments.length - 1; i >= 0; i--) {\n if (/^\\d+$/.test(segments[i])) {\n lastNumericIndex = i\n break\n }\n }\n\n // Not an array field if no numeric index or nothing after it\n if (lastNumericIndex === -1 || lastNumericIndex === segments.length - 1) {\n return null\n }\n\n return {\n arrayPath: segments.slice(0, lastNumericIndex).join('.'),\n fieldPath: segments.slice(lastNumericIndex + 1).join('.'),\n rowIndex: parseInt(segments[lastNumericIndex], 10),\n }\n}\n\n/**\n * This function receives form state from the server and intelligently merges it into the client state.\n * The server contains extra properties that the client may not have, e.g. custom components and error states.\n * We typically do not want to merge properties that rely on user input, however, such as values, unless explicitly requested.\n * Doing this would cause the client to lose any local changes to those fields.\n *\n * Note: Local state is the source of truth, not the new server state that is getting merged in. This is critical for array row\n * manipulation specifically, where the user may have added, removed, or reordered rows while a request was pending and is now stale.\n *\n * This function applies some defaults, as well as cleans up the server response in preparation for the client.\n * e.g. it will set `valid` and `passesCondition` to true if undefined, and remove `addedByServer` from the response.\n */\nexport const mergeServerFormState = ({\n acceptValues,\n currentState = {},\n incomingState,\n}: Args): FormState => {\n const newState = { ...currentState }\n\n for (const [path, incomingField] of Object.entries(incomingState || {})) {\n if (!(path in currentState) && !incomingField.addedByServer) {\n continue\n }\n\n /**\n * If it's a new field added by the server, always accept the value.\n * Otherwise:\n * a. accept all values when explicitly requested, e.g. on submit\n * b. only accept values for unmodified fields, e.g. on autosave\n */\n let shouldAcceptValue =\n incomingField.addedByServer ||\n acceptValues === true ||\n (typeof acceptValues === 'object' &&\n acceptValues !== null &&\n // Note: Must be explicitly `false`, allow `null` or `undefined` to mean true\n acceptValues.overrideLocalChanges === false &&\n !currentState[path]?.isModified)\n\n /**\n * For array row fields, verify the row IDs match at the given index before accepting\n * server values. If rows were reordered or deleted while the request was in-flight,\n * the same index may refer to different rows, and accepting the server value would\n * overwrite the wrong row's data.\n *\n * This guard only applies during autosave. On explicit save (acceptValues === true),\n * the server response is authoritative and this check is bypassed.\n */\n if (shouldAcceptValue && !incomingField.addedByServer && acceptValues !== true) {\n const parsed = parseArrayFieldPath(path)\n if (parsed) {\n const { arrayPath, rowIndex } = parsed\n const clientRowId = currentState[arrayPath]?.rows?.[rowIndex]?.id\n const serverRowId = incomingState[arrayPath]?.rows?.[rowIndex]?.id\n\n if (clientRowId === undefined || (serverRowId && clientRowId !== serverRowId)) {\n shouldAcceptValue = false\n }\n }\n }\n\n let sanitizedIncomingField = incomingField\n\n if (!shouldAcceptValue) {\n /**\n * Note: do not delete properties off `incomingField` as this will mutate the original object\n * Instead, omit them from the destructured object by excluding specific keys\n * This will also ensure we don't set `undefined` into the result unnecessarily\n */\n const { initialValue, value, ...rest } = incomingField\n sanitizedIncomingField = rest\n }\n\n newState[path] = {\n ...currentState[path],\n ...sanitizedIncomingField,\n }\n\n if (\n currentState[path] &&\n 'errorPaths' in currentState[path] &&\n !('errorPaths' in incomingField)\n ) {\n newState[path].errorPaths = []\n }\n\n /**\n * Deeply merge the rows array to ensure changes to local state are not lost while the request was pending\n * For example, the server response could come back with a row which has been deleted on the client\n * Loop over the incoming rows, if it exists in client side form state, merge in any new properties from the server\n * Note: read `currentState` and not `newState` here, as the `rows` property have already been merged above\n *\n * On explicit save (acceptValues === true), the server is authoritative - accept server row order.\n * On autosave (acceptValues !== true), the client is source of truth - use ID-based matching.\n */\n if (Array.isArray(incomingField.rows) && path in currentState) {\n if (acceptValues === true) {\n // Explicit save: server is authoritative, use index-based merging\n newState[path].rows = incomingField.rows.map((serverRow, index) => ({\n ...(currentState[path]?.rows?.[index] || {}),\n ...serverRow,\n }))\n } else {\n // Autosave: client is source of truth, use ID-based matching\n newState[path].rows = [...(currentState[path]?.rows || [])] // shallow copy to avoid mutating the original array\n\n incomingField.rows.forEach((row) => {\n const indexInCurrentState = currentState[path].rows?.findIndex(\n (existingRow) => existingRow.id === row.id,\n )\n\n if (indexInCurrentState > -1) {\n newState[path].rows[indexInCurrentState] = {\n ...currentState[path].rows[indexInCurrentState],\n ...row,\n }\n } else if (row.addedByServer) {\n /**\n * Note: This is a known limitation of computed array and block rows\n * If a new row was added by the server, we append it to the _end_ of this array\n * This is because the client is the source of truth, and it has arrays ordered in a certain position\n * For example, the user may have re-ordered rows client-side while a long running request is processing\n * This means that we _cannot_ slice a new row into the second position on the server, for example\n * By the time it gets back to the client, its index is stale\n */\n const newRow = { ...row }\n delete newRow.addedByServer\n newState[path].rows.push(newRow)\n }\n })\n\n /**\n * Sync the value field to match the actual row count after merging.\n * Client is source of truth for row count when rows were added/removed during the request.\n */\n if ('value' in incomingField && newState[path].rows.length !== incomingField.value) {\n newState[path].value = newState[path].rows.length\n }\n }\n }\n\n // If `valid` is `undefined`, mark it as `true`\n if (incomingField.valid !== false) {\n newState[path].valid = true\n }\n\n // If `passesCondition` is `undefined`, mark it as `true`\n if (incomingField.passesCondition !== false) {\n newState[path].passesCondition = true\n }\n\n /**\n * Undefined values for blocksFilterOptions coming back should be treated as \"all blocks allowed\" and\n * should always be merged in.\n * Without this, an undefined value coming back will incorrectly be ignored, and the previous filter will remain.\n */\n if (!incomingField.blocksFilterOptions) {\n delete newState[path].blocksFilterOptions\n }\n\n // Strip away the `addedByServer` property from the client\n // This will prevent it from being passed back to the server\n delete newState[path].addedByServer\n }\n\n // Return the original object reference if the state is unchanged\n // This will avoid unnecessary re-renders and dependency updates\n return dequal(newState, currentState) ? currentState : newState\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/icons/Chevron/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;IACrD,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;CAClC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/icons/Chevron/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;IACrD,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;CAClC,CAuBA,CAAA"}
|
|
@@ -10,8 +10,6 @@ export const ChevronIcon = ({
|
|
|
10
10
|
"aria-label": ariaLabel,
|
|
11
11
|
className: ['icon icon--chevron', className, size && `icon--size-${size}`].filter(Boolean).join(' '),
|
|
12
12
|
height: "100%",
|
|
13
|
-
strokeLinecap: "round",
|
|
14
|
-
strokeLinejoin: "round",
|
|
15
13
|
style: {
|
|
16
14
|
transform: direction === 'left' ? 'rotate(90deg)' : direction === 'right' ? 'rotate(-90deg)' : direction === 'up' ? 'rotate(180deg)' : undefined
|
|
17
15
|
},
|
|
@@ -21,9 +19,7 @@ export const ChevronIcon = ({
|
|
|
21
19
|
children: /*#__PURE__*/_jsx("path", {
|
|
22
20
|
className: "stroke",
|
|
23
21
|
d: "M14 8L10 12L6 8",
|
|
24
|
-
|
|
25
|
-
strokeLinecap: "round",
|
|
26
|
-
strokeLinejoin: "round"
|
|
22
|
+
strokeLinecap: "square"
|
|
27
23
|
})
|
|
28
24
|
});
|
|
29
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","ChevronIcon","ariaLabel","className","direction","size","_jsx","filter","Boolean","join","height","
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","ChevronIcon","ariaLabel","className","direction","size","_jsx","filter","Boolean","join","height","style","transform","undefined","viewBox","width","xmlns","d","strokeLinecap"],"sources":["../../../src/icons/Chevron/index.tsx"],"sourcesContent":["import React from 'react'\n\nimport './index.scss'\n\nexport const ChevronIcon: React.FC<{\n readonly ariaLabel?: string\n readonly className?: string\n readonly direction?: 'down' | 'left' | 'right' | 'up'\n readonly size?: 'large' | 'small'\n}> = ({ ariaLabel, className, direction, size }) => (\n <svg\n aria-label={ariaLabel}\n className={['icon icon--chevron', className, size && `icon--size-${size}`]\n .filter(Boolean)\n .join(' ')}\n height=\"100%\"\n style={{\n transform:\n direction === 'left'\n ? 'rotate(90deg)'\n : direction === 'right'\n ? 'rotate(-90deg)'\n : direction === 'up'\n ? 'rotate(180deg)'\n : undefined,\n }}\n viewBox=\"0 0 20 20\"\n width=\"100%\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path className=\"stroke\" d=\"M14 8L10 12L6 8\" strokeLinecap=\"square\" />\n </svg>\n)\n"],"mappings":";AAAA,OAAOA,KAAA,MAAW;AAElB,OAAO;AAEP,OAAO,MAAMC,WAAA,GAKRA,CAAC;EAAEC,SAAS;EAAEC,SAAS;EAAEC,SAAS;EAAEC;AAAI,CAAE,kBAC7CC,IAAA,CAAC;EACC,cAAYJ,SAAA;EACZC,SAAA,EAAW,CAAC,sBAAsBA,SAAA,EAAWE,IAAA,IAAQ,cAAcA,IAAA,EAAM,CAAC,CACvEE,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;EACRC,MAAA,EAAO;EACPC,KAAA,EAAO;IACLC,SAAA,EACER,SAAA,KAAc,SACV,kBACAA,SAAA,KAAc,UACZ,mBACAA,SAAA,KAAc,OACZ,mBACAS;EACZ;EACAC,OAAA,EAAQ;EACRC,KAAA,EAAM;EACNC,KAAA,EAAM;YAEN,aAAAV,IAAA,CAAC;IAAKH,SAAA,EAAU;IAASc,CAAA,EAAE;IAAkBC,aAAA,EAAc","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/icons/Document/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/icons/Document/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,YAAY,yBAkBxB,CAAA"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import './index.scss';
|
|
4
|
-
export const DocumentIcon = ({
|
|
5
|
-
color
|
|
6
|
-
}) => {
|
|
4
|
+
export const DocumentIcon = () => {
|
|
7
5
|
return /*#__PURE__*/_jsx("svg", {
|
|
8
|
-
className:
|
|
6
|
+
className: "icon icon--document",
|
|
9
7
|
fill: "none",
|
|
10
8
|
height: "16",
|
|
11
9
|
viewBox: "0 0 16 16",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","DocumentIcon","
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","DocumentIcon","_jsx","className","fill","height","viewBox","width","xmlns","clipRule","d","fillRule"],"sources":["../../../src/icons/Document/index.tsx"],"sourcesContent":["import React from 'react'\n\nimport './index.scss'\n\nexport const DocumentIcon = () => {\n return (\n <svg\n className=\"icon icon--document\"\n fill=\"none\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n width=\"16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M3.5 1C2.94772 1 2.5 1.44772 2.5 2V14C2.5 14.5523 2.94771 15 3.5 15H12.5C13.0523 15 13.5 14.5523 13.5 14V4.41421C13.5 4.149 13.3946 3.89464 13.2071 3.70711L10.7929 1.29289C10.6054 1.10536 10.351 1 10.0858 1H3.5ZM5 5.5C5 5.22386 5.22386 5 5.5 5H10.5C10.7761 5 11 5.22386 11 5.5C11 5.77614 10.7761 6 10.5 6H5.5C5.22386 6 5 5.77614 5 5.5ZM5 8.5C5 8.22386 5.22386 8 5.5 8H10.5C10.7761 8 11 8.22386 11 8.5C11 8.77614 10.7761 9 10.5 9H5.5C5.22386 9 5 8.77614 5 8.5ZM5 11.5C5 11.2239 5.22386 11 5.5 11H10.5C10.7761 11 11 11.2239 11 11.5C11 11.7761 10.7761 12 10.5 12H5.5C5.22386 12 5 11.7761 5 11.5Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n )\n}\n"],"mappings":";AAAA,OAAOA,KAAA,MAAW;AAElB,OAAO;AAEP,OAAO,MAAMC,YAAA,GAAeA,CAAA;EAC1B,oBACEC,IAAA,CAAC;IACCC,SAAA,EAAU;IACVC,IAAA,EAAK;IACLC,MAAA,EAAO;IACPC,OAAA,EAAQ;IACRC,KAAA,EAAM;IACNC,KAAA,EAAM;cAEN,aAAAN,IAAA,CAAC;MACCO,QAAA,EAAS;MACTC,CAAA,EAAE;MACFN,IAAA,EAAK;MACLO,QAAA,EAAS;;;AAIjB","ignoreList":[]}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import './index.scss';
|
|
3
|
-
export
|
|
3
|
+
export declare function FolderIcon({ className }: {
|
|
4
4
|
className?: string;
|
|
5
|
-
|
|
6
|
-
};
|
|
7
|
-
export declare function FolderIcon({ className, color }: FolderIconProps): React.JSX.Element;
|
|
5
|
+
}): React.JSX.Element;
|
|
8
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/icons/Folder/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAErB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/icons/Folder/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAErB,wBAAgB,UAAU,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,qBAgB/D"}
|
|
@@ -2,12 +2,10 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import './index.scss';
|
|
4
4
|
export function FolderIcon({
|
|
5
|
-
className
|
|
6
|
-
color
|
|
5
|
+
className
|
|
7
6
|
}) {
|
|
8
|
-
const colorClass = color ? `icon--folder--${color}` : '';
|
|
9
7
|
return /*#__PURE__*/_jsx("svg", {
|
|
10
|
-
className: [className, 'icon icon--folder'
|
|
8
|
+
className: [className, 'icon icon--folder'].filter(Boolean).join(' '),
|
|
11
9
|
fill: "none",
|
|
12
10
|
height: "16",
|
|
13
11
|
viewBox: "0 0 16 16",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","FolderIcon","className","
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","FolderIcon","className","_jsx","filter","Boolean","join","fill","height","viewBox","width","xmlns","d"],"sources":["../../../src/icons/Folder/index.tsx"],"sourcesContent":["import React from 'react'\n\nimport './index.scss'\n\nexport function FolderIcon({ className }: { className?: string }) {\n return (\n <svg\n className={[className, 'icon icon--folder'].filter(Boolean).join(' ')}\n fill=\"none\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n width=\"16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M13.3333 13.3333C13.6869 13.3333 14.026 13.1929 14.2761 12.9428C14.5261 12.6928 14.6666 12.3536 14.6666 12V5.33333C14.6666 4.97971 14.5261 4.64057 14.2761 4.39052C14.026 4.14048 13.6869 4 13.3333 4H8.06659C7.84359 4.00219 7.62362 3.94841 7.42679 3.84359C7.22996 3.73877 7.06256 3.58625 6.93992 3.4L6.39992 2.6C6.27851 2.41565 6.11323 2.26432 5.91892 2.1596C5.7246 2.05488 5.50732 2.00004 5.28659 2H2.66659C2.31296 2 1.97382 2.14048 1.72378 2.39052C1.47373 2.64057 1.33325 2.97971 1.33325 3.33333V12C1.33325 12.3536 1.47373 12.6928 1.72378 12.9428C1.97382 13.1929 2.31296 13.3333 2.66659 13.3333H13.3333Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n"],"mappings":";AAAA,OAAOA,KAAA,MAAW;AAElB,OAAO;AAEP,OAAO,SAASC,WAAW;EAAEC;AAAS,CAA0B;EAC9D,oBACEC,IAAA,CAAC;IACCD,SAAA,EAAW,CAACA,SAAA,EAAW,oBAAoB,CAACE,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;IACjEC,IAAA,EAAK;IACLC,MAAA,EAAO;IACPC,OAAA,EAAQ;IACRC,KAAA,EAAM;IACNC,KAAA,EAAM;cAEN,aAAAR,IAAA,CAAC;MACCS,CAAA,EAAE;MACFL,IAAA,EAAK;;;AAIb","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/icons/Plus/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/icons/Plus/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAc5B,CAAA"}
|
package/dist/icons/Plus/index.js
CHANGED
|
@@ -10,8 +10,7 @@ export const PlusIcon = () => /*#__PURE__*/_jsx("svg", {
|
|
|
10
10
|
children: /*#__PURE__*/_jsx("path", {
|
|
11
11
|
className: "stroke",
|
|
12
12
|
d: "M5.33333 9.99998H14.6667M9.99999 5.33331V14.6666",
|
|
13
|
-
strokeLinecap: "
|
|
14
|
-
strokeLinejoin: "round"
|
|
13
|
+
strokeLinecap: "square"
|
|
15
14
|
})
|
|
16
15
|
});
|
|
17
16
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","PlusIcon","_jsx","className","height","viewBox","width","xmlns","d","strokeLinecap"
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","PlusIcon","_jsx","className","height","viewBox","width","xmlns","d","strokeLinecap"],"sources":["../../../src/icons/Plus/index.tsx"],"sourcesContent":["import React from 'react'\n\nimport './index.scss'\n\nexport const PlusIcon: React.FC = () => (\n <svg\n className=\"icon icon--plus\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n className=\"stroke\"\n d=\"M5.33333 9.99998H14.6667M9.99999 5.33331V14.6666\"\n strokeLinecap=\"square\"\n />\n </svg>\n)\n"],"mappings":";AAAA,OAAOA,KAAA,MAAW;AAElB,OAAO;AAEP,OAAO,MAAMC,QAAA,GAAqBA,CAAA,kBAChCC,IAAA,CAAC;EACCC,SAAA,EAAU;EACVC,MAAA,EAAO;EACPC,OAAA,EAAQ;EACRC,KAAA,EAAM;EACNC,KAAA,EAAM;YAEN,aAAAL,IAAA,CAAC;IACCC,SAAA,EAAU;IACVK,CAAA,EAAE;IACFC,aAAA,EAAc","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groupItemIDsByRelation.d.ts","sourceRoot":"","sources":["../../../src/providers/Folders/groupItemIDsByRelation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEtD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,EAAE,uCAY/D"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function groupItemIDsByRelation(items) {
|
|
2
|
+
return items.reduce((acc, item) => {
|
|
3
|
+
if (!acc[item.relationTo]) {
|
|
4
|
+
acc[item.relationTo] = [];
|
|
5
|
+
}
|
|
6
|
+
acc[item.relationTo].push(item.value.id);
|
|
7
|
+
return acc;
|
|
8
|
+
}, {});
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=groupItemIDsByRelation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groupItemIDsByRelation.js","names":["groupItemIDsByRelation","items","reduce","acc","item","relationTo","push","value","id"],"sources":["../../../src/providers/Folders/groupItemIDsByRelation.ts"],"sourcesContent":["import type { FolderOrDocument } from 'payload/shared'\n\nexport function groupItemIDsByRelation(items: FolderOrDocument[]) {\n return items.reduce(\n (acc, item) => {\n if (!acc[item.relationTo]) {\n acc[item.relationTo] = []\n }\n acc[item.relationTo].push(item.value.id)\n\n return acc\n },\n {} as Record<string, (number | string)[]>,\n )\n}\n"],"mappings":"AAEA,OAAO,SAASA,uBAAuBC,KAAyB;EAC9D,OAAOA,KAAA,CAAMC,MAAM,CACjB,CAACC,GAAA,EAAKC,IAAA;IACJ,IAAI,CAACD,GAAG,CAACC,IAAA,CAAKC,UAAU,CAAC,EAAE;MACzBF,GAAG,CAACC,IAAA,CAAKC,UAAU,CAAC,GAAG,EAAE;IAC3B;IACAF,GAAG,CAACC,IAAA,CAAKC,UAAU,CAAC,CAACC,IAAI,CAACF,IAAA,CAAKG,KAAK,CAACC,EAAE;IAEvC,OAAOL,GAAA;EACT,GACA,CAAC;AAEL","ignoreList":[]}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import type { ClientCollectionConfig, CollectionSlug, FolderSortKeys } from 'payload';
|
|
2
|
+
import type { FolderBreadcrumb, FolderDocumentItemKey, FolderOrDocument } from 'payload/shared';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
type FolderQueryParams = {
|
|
5
|
+
page?: string;
|
|
6
|
+
relationTo?: CollectionSlug[];
|
|
7
|
+
search?: string;
|
|
8
|
+
sort?: string;
|
|
9
|
+
};
|
|
10
|
+
export type FileCardData = {
|
|
11
|
+
filename: string;
|
|
12
|
+
id: number | string;
|
|
13
|
+
mimeType: string;
|
|
14
|
+
name: string;
|
|
15
|
+
url: string;
|
|
16
|
+
};
|
|
17
|
+
export type FolderContextValue = {
|
|
18
|
+
/**
|
|
19
|
+
* The collection slugs that a view can be filtered by
|
|
20
|
+
* Used in the browse-by-folder view
|
|
21
|
+
*/
|
|
22
|
+
activeCollectionFolderSlugs: CollectionSlug[];
|
|
23
|
+
/**
|
|
24
|
+
* Folder enabled collection slugs that can be populated within the provider
|
|
25
|
+
*/
|
|
26
|
+
readonly allCollectionFolderSlugs?: CollectionSlug[];
|
|
27
|
+
allowCreateCollectionSlugs: CollectionSlug[];
|
|
28
|
+
breadcrumbs?: FolderBreadcrumb[];
|
|
29
|
+
checkIfItemIsDisabled: (item: FolderOrDocument) => boolean;
|
|
30
|
+
clearSelections: () => void;
|
|
31
|
+
currentFolder?: FolderOrDocument | null;
|
|
32
|
+
documents?: FolderOrDocument[];
|
|
33
|
+
dragOverlayItem?: FolderOrDocument | undefined;
|
|
34
|
+
focusedRowIndex: number;
|
|
35
|
+
folderCollectionConfig: ClientCollectionConfig;
|
|
36
|
+
folderCollectionSlug: string;
|
|
37
|
+
folderFieldName: string;
|
|
38
|
+
folderID?: number | string;
|
|
39
|
+
FolderResultsComponent: React.ReactNode;
|
|
40
|
+
folderType: CollectionSlug[] | undefined;
|
|
41
|
+
getFolderRoute: (toFolderID?: number | string) => string;
|
|
42
|
+
getSelectedItems?: () => FolderOrDocument[];
|
|
43
|
+
isDragging: boolean;
|
|
44
|
+
itemKeysToMove?: Set<FolderDocumentItemKey>;
|
|
45
|
+
moveToFolder: (args: {
|
|
46
|
+
itemsToMove: FolderOrDocument[];
|
|
47
|
+
toFolderID?: number | string;
|
|
48
|
+
}) => Promise<void>;
|
|
49
|
+
onItemClick: (args: {
|
|
50
|
+
event: React.MouseEvent;
|
|
51
|
+
index: number;
|
|
52
|
+
item: FolderOrDocument;
|
|
53
|
+
}) => void;
|
|
54
|
+
onItemKeyPress: (args: {
|
|
55
|
+
event: React.KeyboardEvent;
|
|
56
|
+
index: number;
|
|
57
|
+
item: FolderOrDocument;
|
|
58
|
+
}) => void;
|
|
59
|
+
refineFolderData: (args: {
|
|
60
|
+
query?: FolderQueryParams;
|
|
61
|
+
updateURL: boolean;
|
|
62
|
+
}) => void;
|
|
63
|
+
search: string;
|
|
64
|
+
selectedFolderCollections?: CollectionSlug[];
|
|
65
|
+
readonly selectedItemKeys: Set<FolderDocumentItemKey>;
|
|
66
|
+
setBreadcrumbs: React.Dispatch<React.SetStateAction<FolderBreadcrumb[]>>;
|
|
67
|
+
setFocusedRowIndex: React.Dispatch<React.SetStateAction<number>>;
|
|
68
|
+
setIsDragging: React.Dispatch<React.SetStateAction<boolean>>;
|
|
69
|
+
sort: FolderSortKeys;
|
|
70
|
+
subfolders?: FolderOrDocument[];
|
|
71
|
+
};
|
|
72
|
+
export type FolderProviderProps = {
|
|
73
|
+
/**
|
|
74
|
+
* The collection slugs that are being viewed
|
|
75
|
+
*/
|
|
76
|
+
readonly activeCollectionFolderSlugs?: CollectionSlug[];
|
|
77
|
+
/**
|
|
78
|
+
* Folder enabled collection slugs that can be populated within the provider
|
|
79
|
+
*/
|
|
80
|
+
readonly allCollectionFolderSlugs: CollectionSlug[];
|
|
81
|
+
/**
|
|
82
|
+
* Array of slugs that can be created in the folder view
|
|
83
|
+
*/
|
|
84
|
+
readonly allowCreateCollectionSlugs: CollectionSlug[];
|
|
85
|
+
readonly allowMultiSelection?: boolean;
|
|
86
|
+
/**
|
|
87
|
+
* The base folder route path
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* `/collections/:collectionSlug/:folderCollectionSlug`
|
|
91
|
+
* or
|
|
92
|
+
* `/browse-by-folder`
|
|
93
|
+
*/
|
|
94
|
+
readonly baseFolderPath?: `/${string}`;
|
|
95
|
+
/**
|
|
96
|
+
* Breadcrumbs for the current folder
|
|
97
|
+
*/
|
|
98
|
+
readonly breadcrumbs?: FolderBreadcrumb[];
|
|
99
|
+
/**
|
|
100
|
+
* Children to render inside the provider
|
|
101
|
+
*/
|
|
102
|
+
readonly children: React.ReactNode;
|
|
103
|
+
/**
|
|
104
|
+
* All documents in the current folder
|
|
105
|
+
*/
|
|
106
|
+
readonly documents: FolderOrDocument[];
|
|
107
|
+
/**
|
|
108
|
+
* The name of the field that contains the folder relation
|
|
109
|
+
*/
|
|
110
|
+
readonly folderFieldName: string;
|
|
111
|
+
/**
|
|
112
|
+
* The ID of the current folder
|
|
113
|
+
*/
|
|
114
|
+
readonly folderID?: number | string;
|
|
115
|
+
/**
|
|
116
|
+
* The component to render the folder results
|
|
117
|
+
*/
|
|
118
|
+
readonly FolderResultsComponent: React.ReactNode;
|
|
119
|
+
/**
|
|
120
|
+
* Optional function to call when an item is clicked
|
|
121
|
+
*/
|
|
122
|
+
readonly onItemClick?: (itme: FolderOrDocument) => void;
|
|
123
|
+
/**
|
|
124
|
+
* The intial search query
|
|
125
|
+
*/
|
|
126
|
+
readonly search?: string;
|
|
127
|
+
/**
|
|
128
|
+
* The sort order of the documents
|
|
129
|
+
*
|
|
130
|
+
* @example
|
|
131
|
+
* `name` for descending
|
|
132
|
+
* `-name` for ascending
|
|
133
|
+
*/
|
|
134
|
+
readonly sort?: FolderSortKeys;
|
|
135
|
+
/**
|
|
136
|
+
* All subfolders in the current folder
|
|
137
|
+
*/
|
|
138
|
+
readonly subfolders: FolderOrDocument[];
|
|
139
|
+
};
|
|
140
|
+
export declare function FolderProvider({ activeCollectionFolderSlugs: activeCollectionSlugs, allCollectionFolderSlugs, allowCreateCollectionSlugs, allowMultiSelection, baseFolderPath, breadcrumbs: _breadcrumbsFromProps, children, documents, folderFieldName, folderID, FolderResultsComponent: InitialFolderResultsComponent, onItemClick: onItemClickFromProps, search, sort, subfolders, }: FolderProviderProps): React.JSX.Element;
|
|
141
|
+
export declare function useFolder(): FolderContextValue;
|
|
142
|
+
export {};
|
|
143
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Folders/index.tsx"],"names":[],"mappings":"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"}
|