@payloadcms/ui 3.80.0-internal.8d9ec7c → 3.80.0-internal.bd498b0
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/BulkUpload/FormsManager/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +29 -7
- package/dist/elements/BulkUpload/FormsManager/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/exports/client/index.d.ts +10 -31
- 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/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/fields/shared/index.d.ts +2 -2
- package/dist/fields/shared/index.d.ts.map +1 -1
- package/dist/fields/shared/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 +17 -6
- 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 -473
- 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 -106
- 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 -291
- 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 -148
- package/dist/elements/HierarchyDrawer/index.js.map +0 -1
- package/dist/elements/HierarchyDrawer/types.d.ts +0 -68
- 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 -21
- package/dist/elements/HierarchyTree/HierarchySidebarTab.d.ts.map +0 -1
- package/dist/elements/HierarchyTree/HierarchySidebarTab.js +0 -167
- 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 -176
- 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 -66
- 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 -221
- 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 -270
- 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 -70
- 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 -28
- 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 -27
- package/dist/views/HierarchyList/HierarchyTable/index.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/index.js +0 -388
- 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 -305
- package/dist/views/HierarchyList/index.js.map +0 -1
- package/dist/views/HierarchyList/index.scss +0 -72
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["CheckboxInput","Popup","baseClass","CheckboxPopup","Button","className","onChange","options","selectedValues","popupProps","_jsx","button","filter","Boolean","join","horizontalAlign","render","close","map","label","value","checked","includes","onToggle","newSelectedValues","v","verticalAlign"],"sources":["../../../src/elements/CheckboxPopup/index.tsx"],"sourcesContent":["import type { PopupProps } from '../Popup/index.js'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { Popup } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'checkbox-popup'\n\ntype CheckboxPopupProps = {\n Button: React.ReactNode\n onChange: (args: { close: () => void; selectedValues: string[] }) => void\n options: {\n label: string\n value: string\n }[]\n selectedValues: string[]\n} & Omit<PopupProps, 'button' | 'render'>\nexport function CheckboxPopup({\n Button,\n className,\n onChange,\n options,\n selectedValues,\n ...popupProps\n}: CheckboxPopupProps) {\n return (\n <Popup\n button={Button}\n className={[baseClass, className].filter(Boolean).join(' ')}\n horizontalAlign=\"right\"\n render={({ close }) => (\n <div className={`${baseClass}__options`}>\n {options.map(({ label, value }) => (\n <CheckboxInput\n checked={selectedValues?.includes(value)}\n key={value}\n label={label}\n onToggle={() => {\n const newSelectedValues = selectedValues?.includes(value)\n ? selectedValues.filter((v) => v !== value)\n : [...selectedValues, value]\n onChange({ close, selectedValues: newSelectedValues })\n }}\n />\n ))}\n </div>\n )}\n verticalAlign=\"bottom\"\n {...popupProps}\n />\n )\n}\n"],"mappings":";AAEA,SAASA,aAAa,QAAQ;AAC9B,SAASC,KAAK,QAAQ;AACtB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAWlB,OAAO,SAASC,cAAc;EAC5BC,MAAM;EACNC,SAAS;EACTC,QAAQ;EACRC,OAAO;EACPC,cAAc;EACd,GAAGC;AAAA,CACgB;EACnB,oBACEC,IAAA,CAACT,KAAA;IACCU,MAAA,EAAQP,MAAA;IACRC,SAAA,EAAW,CAACH,SAAA,EAAWG,SAAA,CAAU,CAACO,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;IACvDC,eAAA,EAAgB;IAChBC,MAAA,EAAQA,CAAC;MAAEC;IAAK,CAAE,kBAChBP,IAAA,CAAC;MAAIL,SAAA,EAAW,GAAGH,SAAA,WAAoB;gBACpCK,OAAA,CAAQW,GAAG,CAAC,CAAC;QAAEC,KAAK;QAAEC;MAAK,CAAE,kBAC5BV,IAAA,CAACV,aAAA;QACCqB,OAAA,EAASb,cAAA,EAAgBc,QAAA,CAASF,KAAA;QAElCD,KAAA,EAAOA,KAAA;QACPI,QAAA,EAAUA,CAAA;UACR,MAAMC,iBAAA,GAAoBhB,cAAA,EAAgBc,QAAA,CAASF,KAAA,IAC/CZ,cAAA,CAAeI,MAAM,CAAEa,CAAA,IAAMA,CAAA,KAAML,KAAA,IACnC,C,GAAIZ,cAAA,EAAgBY,KAAA,CAAM;UAC9Bd,QAAA,CAAS;YAAEW,KAAA;YAAOT,cAAA,EAAgBgB;UAAkB;QACtD;SAPKJ,KAAA;;IAYbM,aAAA,EAAc;IACb,
|
|
1
|
+
{"version":3,"file":"index.js","names":["CheckboxInput","Popup","baseClass","CheckboxPopup","Button","className","onChange","options","selectedValues","popupProps","_jsx","button","filter","Boolean","join","horizontalAlign","render","close","map","label","value","checked","includes","onToggle","newSelectedValues","v","showScrollbar","verticalAlign"],"sources":["../../../src/elements/CheckboxPopup/index.tsx"],"sourcesContent":["import type { PopupProps } from '../Popup/index.js'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { Popup } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'checkbox-popup'\n\ntype CheckboxPopupProps = {\n Button: React.ReactNode\n onChange: (args: { close: () => void; selectedValues: string[] }) => void\n options: {\n label: string\n value: string\n }[]\n selectedValues: string[]\n} & Omit<PopupProps, 'button' | 'render'>\nexport function CheckboxPopup({\n Button,\n className,\n onChange,\n options,\n selectedValues,\n ...popupProps\n}: CheckboxPopupProps) {\n return (\n <Popup\n button={Button}\n className={[baseClass, className].filter(Boolean).join(' ')}\n horizontalAlign=\"right\"\n render={({ close }) => (\n <div className={`${baseClass}__options`}>\n {options.map(({ label, value }) => (\n <CheckboxInput\n checked={selectedValues?.includes(value)}\n key={value}\n label={label}\n onToggle={() => {\n const newSelectedValues = selectedValues?.includes(value)\n ? selectedValues.filter((v) => v !== value)\n : [...selectedValues, value]\n onChange({ close, selectedValues: newSelectedValues })\n }}\n />\n ))}\n </div>\n )}\n showScrollbar\n verticalAlign=\"bottom\"\n {...popupProps}\n />\n )\n}\n"],"mappings":";AAEA,SAASA,aAAa,QAAQ;AAC9B,SAASC,KAAK,QAAQ;AACtB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAWlB,OAAO,SAASC,cAAc;EAC5BC,MAAM;EACNC,SAAS;EACTC,QAAQ;EACRC,OAAO;EACPC,cAAc;EACd,GAAGC;AAAA,CACgB;EACnB,oBACEC,IAAA,CAACT,KAAA;IACCU,MAAA,EAAQP,MAAA;IACRC,SAAA,EAAW,CAACH,SAAA,EAAWG,SAAA,CAAU,CAACO,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;IACvDC,eAAA,EAAgB;IAChBC,MAAA,EAAQA,CAAC;MAAEC;IAAK,CAAE,kBAChBP,IAAA,CAAC;MAAIL,SAAA,EAAW,GAAGH,SAAA,WAAoB;gBACpCK,OAAA,CAAQW,GAAG,CAAC,CAAC;QAAEC,KAAK;QAAEC;MAAK,CAAE,kBAC5BV,IAAA,CAACV,aAAA;QACCqB,OAAA,EAASb,cAAA,EAAgBc,QAAA,CAASF,KAAA;QAElCD,KAAA,EAAOA,KAAA;QACPI,QAAA,EAAUA,CAAA;UACR,MAAMC,iBAAA,GAAoBhB,cAAA,EAAgBc,QAAA,CAASF,KAAA,IAC/CZ,cAAA,CAAeI,MAAM,CAAEa,CAAA,IAAMA,CAAA,KAAML,KAAA,IACnC,C,GAAIZ,cAAA,EAAgBY,KAAA,CAAM;UAC9Bd,QAAA,CAAS;YAAEW,KAAA;YAAOT,cAAA,EAAgBgB;UAAkB;QACtD;SAPKJ,KAAA;;IAYbM,aAAa;IACbC,aAAA,EAAc;IACb,GAAGlB;;AAGV","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeFormStateFromClipboard.d.ts","sourceRoot":"","sources":["../../../src/elements/ClipboardAction/mergeFormStateFromClipboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAIpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAIpD,wBAAgB,qBAAqB,CAAC,EACpC,SAAS,EACT,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,SAAS,EAAE,SAAS,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,8BAyBA;AAED,wBAAgB,2BAA2B,CAAC,EAC1C,iBAAiB,EAAE,aAAa,EAChC,SAAS,EACT,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,iBAAiB,EAAE,kBAAkB,CAAA;IACrC,SAAS,EAAE,SAAS,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,
|
|
1
|
+
{"version":3,"file":"mergeFormStateFromClipboard.d.ts","sourceRoot":"","sources":["../../../src/elements/ClipboardAction/mergeFormStateFromClipboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAIpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAIpD,wBAAgB,qBAAqB,CAAC,EACpC,SAAS,EACT,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,SAAS,EAAE,SAAS,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,8BAyBA;AAED,wBAAgB,2BAA2B,CAAC,EAC1C,iBAAiB,EAAE,aAAa,EAChC,SAAS,EACT,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,iBAAiB,EAAE,kBAAkB,CAAA;IACrC,SAAS,EAAE,SAAS,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,aA0IA"}
|
|
@@ -86,8 +86,10 @@ export function mergeFormStateFromClipboard({
|
|
|
86
86
|
// Map to track old IDs to new IDs for regenerating nested IDs
|
|
87
87
|
const idReplacements = new Map();
|
|
88
88
|
for (const clipboardPath in dataFromClipboard) {
|
|
89
|
-
//
|
|
90
|
-
|
|
89
|
+
// When pasting into a specific row, skip only the direct row ID to avoid overwriting
|
|
90
|
+
// the target row's identity. Nested IDs (array item IDs within the block) should
|
|
91
|
+
// still be processed so they get regenerated below, preventing server-side duplication.
|
|
92
|
+
if (!pasteIntoField && clipboardPath === `${pathToReplace}.id` || !clipboardPath.startsWith(pathToReplace)) {
|
|
91
93
|
continue;
|
|
92
94
|
}
|
|
93
95
|
const newPath = clipboardPath.replace(pathToReplace, targetSegment);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeFormStateFromClipboard.js","names":["ObjectIdImport","ObjectId","default","reduceFormStateByPath","formState","path","rowIndex","filteredState","prefix","key","startsWith","customComponents","_","validate","__","field","Array","isArray","rows","map","row","serializableRow","mergeFormStateFromClipboard","dataFromClipboard","clipboardData","type","typeFromClipboard","data","pathFromClipboard","rowIndexFromClipboard","copyFromField","pasteIntoField","fromRowToField","pathToReplace","targetSegment","lastRenderedPath","rowIDFromClipboard","value","hasRows","length","id","isLoading","initialValue","disableFormData","fieldPath","idReplacements","Map","clipboardPath","endsWith","newPath","replace","undefined","oldID","isValid","newID","toHexString","set","relativePath","segments","split","parseInt","parentFieldPath","slice","join","fullParentPath","parentRows","isNaN","targetParts","lastPart","rowIndexFromTarget"],"sources":["../../../src/elements/ClipboardAction/mergeFormStateFromClipboard.ts"],"sourcesContent":["import type { FieldState, FormState } from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\n\nimport type { ClipboardPasteData } from './types.js'\n\nconst ObjectId = 'default' in ObjectIdImport ? ObjectIdImport.default : ObjectIdImport\n\nexport function reduceFormStateByPath({\n formState,\n path,\n rowIndex,\n}: {\n formState: FormState\n path: string\n rowIndex?: number\n}) {\n const filteredState: Record<string, FieldState> = {}\n const prefix = typeof rowIndex !== 'number' ? path : `${path}.${rowIndex}`\n\n for (const key in formState) {\n if (!key.startsWith(prefix)) {\n continue\n }\n\n const { customComponents: _, validate: __, ...field } = formState[key]\n\n if (Array.isArray(field.rows)) {\n field.rows = field.rows.map((row) => {\n if (!row || typeof row !== 'object') {\n return row\n }\n const { customComponents: _, ...serializableRow } = row\n return serializableRow\n })\n }\n\n filteredState[key] = field\n }\n\n return filteredState\n}\n\nexport function mergeFormStateFromClipboard({\n dataFromClipboard: clipboardData,\n formState,\n path,\n rowIndex,\n}: {\n dataFromClipboard: ClipboardPasteData\n formState: FormState\n path: string\n rowIndex?: number\n}) {\n const {\n type: typeFromClipboard,\n data: dataFromClipboard,\n path: pathFromClipboard,\n rowIndex: rowIndexFromClipboard,\n } = clipboardData\n\n const copyFromField = typeof rowIndexFromClipboard !== 'number'\n const pasteIntoField = typeof rowIndex !== 'number'\n const fromRowToField = !copyFromField && pasteIntoField\n const isArray = typeFromClipboard === 'array'\n\n let pathToReplace: string\n if (copyFromField && pasteIntoField) {\n pathToReplace = pathFromClipboard\n } else if (copyFromField) {\n pathToReplace = `${pathFromClipboard}.${rowIndex}`\n } else {\n pathToReplace = `${pathFromClipboard}.${rowIndexFromClipboard}`\n }\n\n let targetSegment: string\n if (!pasteIntoField) {\n targetSegment = `${path}.${rowIndex}`\n } else if (fromRowToField) {\n targetSegment = `${path}.0`\n } else {\n targetSegment = path\n }\n\n if (fromRowToField) {\n const lastRenderedPath = `${path}.0`\n const rowIDFromClipboard = dataFromClipboard[`${pathToReplace}.id`]?.value as string\n const hasRows = formState[path].rows?.length\n\n formState[path].rows = [\n {\n ...(hasRows && isArray ? formState[path].rows[0] : {}),\n id: rowIDFromClipboard,\n isLoading: false,\n lastRenderedPath,\n },\n ]\n formState[path].value = 1\n formState[path].initialValue = 1\n formState[path].disableFormData = true\n\n for (const fieldPath in formState) {\n if (\n fieldPath !== path &&\n !fieldPath.startsWith(lastRenderedPath) &&\n fieldPath.startsWith(path)\n ) {\n delete formState[fieldPath]\n }\n }\n }\n\n // Map to track old IDs to new IDs for regenerating nested IDs\n const idReplacements: Map<string, string> = new Map()\n\n for (const clipboardPath in dataFromClipboard) {\n // Pasting a row id, skip overwriting\n if (\n (!pasteIntoField && clipboardPath.endsWith('.id')) ||\n !clipboardPath.startsWith(pathToReplace)\n ) {\n continue\n }\n\n const newPath = clipboardPath.replace(pathToReplace, targetSegment)\n\n const customComponents = isArray ? formState[newPath]?.customComponents : undefined\n const validate = isArray ? formState[newPath]?.validate : undefined\n\n // If this is an ID field, generate a new ID to prevent duplicates\n if (clipboardPath.endsWith('.id') && dataFromClipboard[clipboardPath]?.value) {\n const oldID = dataFromClipboard[clipboardPath].value as string\n if (typeof oldID === 'string' && ObjectId.isValid(oldID)) {\n const newID = new ObjectId().toHexString()\n idReplacements.set(clipboardPath, newID)\n\n formState[newPath] = {\n customComponents,\n validate,\n ...dataFromClipboard[clipboardPath],\n initialValue: newID,\n value: newID,\n }\n continue\n }\n }\n\n formState[newPath] = {\n customComponents,\n validate,\n ...dataFromClipboard[clipboardPath],\n }\n }\n\n // Update parent field rows with new IDs\n for (const [clipboardPath, newID] of idReplacements) {\n const relativePath = clipboardPath.replace(`${pathToReplace}.`, '')\n const segments = relativePath.split('.')\n\n if (segments.length >= 2) {\n const rowIndex = parseInt(segments[segments.length - 2], 10)\n const parentFieldPath = segments.slice(0, segments.length - 2).join('.')\n const fullParentPath = parentFieldPath ? `${targetSegment}.${parentFieldPath}` : targetSegment\n\n if (formState[fullParentPath] && Array.isArray(formState[fullParentPath].rows)) {\n const parentRows = formState[fullParentPath].rows\n if (!isNaN(rowIndex) && parentRows[rowIndex]) {\n parentRows[rowIndex].id = newID\n }\n }\n } else if (segments.length === 1 && segments[0] === 'id') {\n // Top-level block ID - extract field path and row index from targetSegment\n const targetParts = targetSegment.split('.')\n const lastPart = targetParts[targetParts.length - 1]\n const rowIndexFromTarget = !isNaN(parseInt(lastPart, 10)) ? parseInt(lastPart, 10) : 0\n const fieldPath = !isNaN(parseInt(lastPart, 10))\n ? targetParts.slice(0, -1).join('.')\n : targetSegment\n\n if (formState[fieldPath] && Array.isArray(formState[fieldPath].rows)) {\n const rows = formState[fieldPath].rows\n if (rows[rowIndexFromTarget]) {\n rows[rowIndexFromTarget].id = newID\n }\n }\n }\n }\n\n return formState\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"mergeFormStateFromClipboard.js","names":["ObjectIdImport","ObjectId","default","reduceFormStateByPath","formState","path","rowIndex","filteredState","prefix","key","startsWith","customComponents","_","validate","__","field","Array","isArray","rows","map","row","serializableRow","mergeFormStateFromClipboard","dataFromClipboard","clipboardData","type","typeFromClipboard","data","pathFromClipboard","rowIndexFromClipboard","copyFromField","pasteIntoField","fromRowToField","pathToReplace","targetSegment","lastRenderedPath","rowIDFromClipboard","value","hasRows","length","id","isLoading","initialValue","disableFormData","fieldPath","idReplacements","Map","clipboardPath","newPath","replace","undefined","endsWith","oldID","isValid","newID","toHexString","set","relativePath","segments","split","parseInt","parentFieldPath","slice","join","fullParentPath","parentRows","isNaN","targetParts","lastPart","rowIndexFromTarget"],"sources":["../../../src/elements/ClipboardAction/mergeFormStateFromClipboard.ts"],"sourcesContent":["import type { FieldState, FormState } from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\n\nimport type { ClipboardPasteData } from './types.js'\n\nconst ObjectId = 'default' in ObjectIdImport ? ObjectIdImport.default : ObjectIdImport\n\nexport function reduceFormStateByPath({\n formState,\n path,\n rowIndex,\n}: {\n formState: FormState\n path: string\n rowIndex?: number\n}) {\n const filteredState: Record<string, FieldState> = {}\n const prefix = typeof rowIndex !== 'number' ? path : `${path}.${rowIndex}`\n\n for (const key in formState) {\n if (!key.startsWith(prefix)) {\n continue\n }\n\n const { customComponents: _, validate: __, ...field } = formState[key]\n\n if (Array.isArray(field.rows)) {\n field.rows = field.rows.map((row) => {\n if (!row || typeof row !== 'object') {\n return row\n }\n const { customComponents: _, ...serializableRow } = row\n return serializableRow\n })\n }\n\n filteredState[key] = field\n }\n\n return filteredState\n}\n\nexport function mergeFormStateFromClipboard({\n dataFromClipboard: clipboardData,\n formState,\n path,\n rowIndex,\n}: {\n dataFromClipboard: ClipboardPasteData\n formState: FormState\n path: string\n rowIndex?: number\n}) {\n const {\n type: typeFromClipboard,\n data: dataFromClipboard,\n path: pathFromClipboard,\n rowIndex: rowIndexFromClipboard,\n } = clipboardData\n\n const copyFromField = typeof rowIndexFromClipboard !== 'number'\n const pasteIntoField = typeof rowIndex !== 'number'\n const fromRowToField = !copyFromField && pasteIntoField\n const isArray = typeFromClipboard === 'array'\n\n let pathToReplace: string\n if (copyFromField && pasteIntoField) {\n pathToReplace = pathFromClipboard\n } else if (copyFromField) {\n pathToReplace = `${pathFromClipboard}.${rowIndex}`\n } else {\n pathToReplace = `${pathFromClipboard}.${rowIndexFromClipboard}`\n }\n\n let targetSegment: string\n if (!pasteIntoField) {\n targetSegment = `${path}.${rowIndex}`\n } else if (fromRowToField) {\n targetSegment = `${path}.0`\n } else {\n targetSegment = path\n }\n\n if (fromRowToField) {\n const lastRenderedPath = `${path}.0`\n const rowIDFromClipboard = dataFromClipboard[`${pathToReplace}.id`]?.value as string\n const hasRows = formState[path].rows?.length\n\n formState[path].rows = [\n {\n ...(hasRows && isArray ? formState[path].rows[0] : {}),\n id: rowIDFromClipboard,\n isLoading: false,\n lastRenderedPath,\n },\n ]\n formState[path].value = 1\n formState[path].initialValue = 1\n formState[path].disableFormData = true\n\n for (const fieldPath in formState) {\n if (\n fieldPath !== path &&\n !fieldPath.startsWith(lastRenderedPath) &&\n fieldPath.startsWith(path)\n ) {\n delete formState[fieldPath]\n }\n }\n }\n\n // Map to track old IDs to new IDs for regenerating nested IDs\n const idReplacements: Map<string, string> = new Map()\n\n for (const clipboardPath in dataFromClipboard) {\n // When pasting into a specific row, skip only the direct row ID to avoid overwriting\n // the target row's identity. Nested IDs (array item IDs within the block) should\n // still be processed so they get regenerated below, preventing server-side duplication.\n if (\n (!pasteIntoField && clipboardPath === `${pathToReplace}.id`) ||\n !clipboardPath.startsWith(pathToReplace)\n ) {\n continue\n }\n\n const newPath = clipboardPath.replace(pathToReplace, targetSegment)\n\n const customComponents = isArray ? formState[newPath]?.customComponents : undefined\n const validate = isArray ? formState[newPath]?.validate : undefined\n\n // If this is an ID field, generate a new ID to prevent duplicates\n if (clipboardPath.endsWith('.id') && dataFromClipboard[clipboardPath]?.value) {\n const oldID = dataFromClipboard[clipboardPath].value as string\n if (typeof oldID === 'string' && ObjectId.isValid(oldID)) {\n const newID = new ObjectId().toHexString()\n idReplacements.set(clipboardPath, newID)\n\n formState[newPath] = {\n customComponents,\n validate,\n ...dataFromClipboard[clipboardPath],\n initialValue: newID,\n value: newID,\n }\n continue\n }\n }\n\n formState[newPath] = {\n customComponents,\n validate,\n ...dataFromClipboard[clipboardPath],\n }\n }\n\n // Update parent field rows with new IDs\n for (const [clipboardPath, newID] of idReplacements) {\n const relativePath = clipboardPath.replace(`${pathToReplace}.`, '')\n const segments = relativePath.split('.')\n\n if (segments.length >= 2) {\n const rowIndex = parseInt(segments[segments.length - 2], 10)\n const parentFieldPath = segments.slice(0, segments.length - 2).join('.')\n const fullParentPath = parentFieldPath ? `${targetSegment}.${parentFieldPath}` : targetSegment\n\n if (formState[fullParentPath] && Array.isArray(formState[fullParentPath].rows)) {\n const parentRows = formState[fullParentPath].rows\n if (!isNaN(rowIndex) && parentRows[rowIndex]) {\n parentRows[rowIndex].id = newID\n }\n }\n } else if (segments.length === 1 && segments[0] === 'id') {\n // Top-level block ID - extract field path and row index from targetSegment\n const targetParts = targetSegment.split('.')\n const lastPart = targetParts[targetParts.length - 1]\n const rowIndexFromTarget = !isNaN(parseInt(lastPart, 10)) ? parseInt(lastPart, 10) : 0\n const fieldPath = !isNaN(parseInt(lastPart, 10))\n ? targetParts.slice(0, -1).join('.')\n : targetSegment\n\n if (formState[fieldPath] && Array.isArray(formState[fieldPath].rows)) {\n const rows = formState[fieldPath].rows\n if (rows[rowIndexFromTarget]) {\n rows[rowIndexFromTarget].id = newID\n }\n }\n }\n }\n\n return formState\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -198,6 +198,163 @@ describe('mergeFormStateFromClipboard', () => {
|
|
|
198
198
|
expect(result['duplicate.0.number'].value).toEqual(342);
|
|
199
199
|
});
|
|
200
200
|
});
|
|
201
|
+
describe('block row paste with nested array', () => {
|
|
202
|
+
it('should regenerate nested array item IDs when pasting a block row', () => {
|
|
203
|
+
const copiedBlockID = new ObjectId().toHexString();
|
|
204
|
+
const copiedArrayItemID1 = new ObjectId().toHexString();
|
|
205
|
+
const copiedArrayItemID2 = new ObjectId().toHexString();
|
|
206
|
+
const copiedArrayItemID3 = new ObjectId().toHexString();
|
|
207
|
+
const targetBlockID = new ObjectId().toHexString();
|
|
208
|
+
// Target form state: block at index 1 with empty buttons array
|
|
209
|
+
const formState = {
|
|
210
|
+
ctas: {
|
|
211
|
+
valid: true,
|
|
212
|
+
value: 2,
|
|
213
|
+
initialValue: 2,
|
|
214
|
+
rows: [{
|
|
215
|
+
id: copiedBlockID,
|
|
216
|
+
blockType: 'callToAction',
|
|
217
|
+
isLoading: false
|
|
218
|
+
}, {
|
|
219
|
+
id: targetBlockID,
|
|
220
|
+
blockType: 'callToAction',
|
|
221
|
+
isLoading: false
|
|
222
|
+
}]
|
|
223
|
+
},
|
|
224
|
+
'ctas.0': {
|
|
225
|
+
value: 'callToAction',
|
|
226
|
+
valid: true
|
|
227
|
+
},
|
|
228
|
+
'ctas.0.id': {
|
|
229
|
+
value: copiedBlockID,
|
|
230
|
+
valid: true
|
|
231
|
+
},
|
|
232
|
+
'ctas.0.buttons': {
|
|
233
|
+
valid: true,
|
|
234
|
+
value: 3,
|
|
235
|
+
rows: [{
|
|
236
|
+
id: copiedArrayItemID1,
|
|
237
|
+
isLoading: false
|
|
238
|
+
}, {
|
|
239
|
+
id: copiedArrayItemID2,
|
|
240
|
+
isLoading: false
|
|
241
|
+
}, {
|
|
242
|
+
id: copiedArrayItemID3,
|
|
243
|
+
isLoading: false
|
|
244
|
+
}]
|
|
245
|
+
},
|
|
246
|
+
'ctas.0.buttons.0.id': {
|
|
247
|
+
value: copiedArrayItemID1,
|
|
248
|
+
valid: true
|
|
249
|
+
},
|
|
250
|
+
'ctas.0.buttons.1.id': {
|
|
251
|
+
value: copiedArrayItemID2,
|
|
252
|
+
valid: true
|
|
253
|
+
},
|
|
254
|
+
'ctas.0.buttons.2.id': {
|
|
255
|
+
value: copiedArrayItemID3,
|
|
256
|
+
valid: true
|
|
257
|
+
},
|
|
258
|
+
'ctas.1': {
|
|
259
|
+
value: 'callToAction',
|
|
260
|
+
valid: true
|
|
261
|
+
},
|
|
262
|
+
'ctas.1.id': {
|
|
263
|
+
value: targetBlockID,
|
|
264
|
+
valid: true
|
|
265
|
+
},
|
|
266
|
+
'ctas.1.buttons': {
|
|
267
|
+
valid: true,
|
|
268
|
+
value: 0,
|
|
269
|
+
rows: []
|
|
270
|
+
}
|
|
271
|
+
};
|
|
272
|
+
// Clipboard: block row 0 (source) with 3 buttons
|
|
273
|
+
const clipboardData = {
|
|
274
|
+
type: 'blocks',
|
|
275
|
+
path: 'ctas',
|
|
276
|
+
blocks: [],
|
|
277
|
+
rowIndex: 0,
|
|
278
|
+
data: {
|
|
279
|
+
'ctas.0': {
|
|
280
|
+
value: 'callToAction',
|
|
281
|
+
valid: true
|
|
282
|
+
},
|
|
283
|
+
'ctas.0.id': {
|
|
284
|
+
value: copiedBlockID,
|
|
285
|
+
valid: true
|
|
286
|
+
},
|
|
287
|
+
'ctas.0.buttons': {
|
|
288
|
+
valid: true,
|
|
289
|
+
value: 3,
|
|
290
|
+
rows: [{
|
|
291
|
+
id: copiedArrayItemID1,
|
|
292
|
+
isLoading: false
|
|
293
|
+
}, {
|
|
294
|
+
id: copiedArrayItemID2,
|
|
295
|
+
isLoading: false
|
|
296
|
+
}, {
|
|
297
|
+
id: copiedArrayItemID3,
|
|
298
|
+
isLoading: false
|
|
299
|
+
}]
|
|
300
|
+
},
|
|
301
|
+
'ctas.0.buttons.0.id': {
|
|
302
|
+
value: copiedArrayItemID1,
|
|
303
|
+
valid: true
|
|
304
|
+
},
|
|
305
|
+
'ctas.0.buttons.0.label': {
|
|
306
|
+
value: 'Button 1',
|
|
307
|
+
valid: true
|
|
308
|
+
},
|
|
309
|
+
'ctas.0.buttons.1.id': {
|
|
310
|
+
value: copiedArrayItemID2,
|
|
311
|
+
valid: true
|
|
312
|
+
},
|
|
313
|
+
'ctas.0.buttons.1.label': {
|
|
314
|
+
value: 'Button 2',
|
|
315
|
+
valid: true
|
|
316
|
+
},
|
|
317
|
+
'ctas.0.buttons.2.id': {
|
|
318
|
+
value: copiedArrayItemID3,
|
|
319
|
+
valid: true
|
|
320
|
+
},
|
|
321
|
+
'ctas.0.buttons.2.label': {
|
|
322
|
+
value: 'Button 3',
|
|
323
|
+
valid: true
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
};
|
|
327
|
+
// Paste into block row 1 (target)
|
|
328
|
+
const result = mergeFormStateFromClipboard({
|
|
329
|
+
dataFromClipboard: clipboardData,
|
|
330
|
+
formState,
|
|
331
|
+
path: 'ctas',
|
|
332
|
+
rowIndex: 1
|
|
333
|
+
});
|
|
334
|
+
// Target block ID should NOT be overwritten
|
|
335
|
+
expect(result['ctas.1.id'].value).toEqual(targetBlockID);
|
|
336
|
+
// Nested array items should have NEW IDs (not the source IDs)
|
|
337
|
+
expect(result['ctas.1.buttons.0.id']).toBeDefined();
|
|
338
|
+
expect(result['ctas.1.buttons.0.id'].value).not.toEqual(copiedArrayItemID1);
|
|
339
|
+
expect(ObjectId.isValid(result['ctas.1.buttons.0.id'].value)).toBe(true);
|
|
340
|
+
expect(result['ctas.1.buttons.1.id']).toBeDefined();
|
|
341
|
+
expect(result['ctas.1.buttons.1.id'].value).not.toEqual(copiedArrayItemID2);
|
|
342
|
+
expect(result['ctas.1.buttons.2.id']).toBeDefined();
|
|
343
|
+
expect(result['ctas.1.buttons.2.id'].value).not.toEqual(copiedArrayItemID3);
|
|
344
|
+
// The rows metadata in ctas.1.buttons should have the new IDs
|
|
345
|
+
expect(result['ctas.1.buttons'].rows).toHaveLength(3);
|
|
346
|
+
expect(result['ctas.1.buttons'].rows[0].id).toEqual(result['ctas.1.buttons.0.id'].value);
|
|
347
|
+
expect(result['ctas.1.buttons'].rows[1].id).toEqual(result['ctas.1.buttons.1.id'].value);
|
|
348
|
+
expect(result['ctas.1.buttons'].rows[2].id).toEqual(result['ctas.1.buttons.2.id'].value);
|
|
349
|
+
// Field values should be copied
|
|
350
|
+
expect(result['ctas.1.buttons.0.label'].value).toEqual('Button 1');
|
|
351
|
+
expect(result['ctas.1.buttons.1.label'].value).toEqual('Button 2');
|
|
352
|
+
expect(result['ctas.1.buttons.2.label'].value).toEqual('Button 3');
|
|
353
|
+
// Source block should be untouched
|
|
354
|
+
expect(result['ctas.0.id'].value).toEqual(copiedBlockID);
|
|
355
|
+
expect(result['ctas.0.buttons'].rows).toHaveLength(3);
|
|
356
|
+
});
|
|
357
|
+
});
|
|
201
358
|
describe('array ID regeneration', () => {
|
|
202
359
|
it('should generate new IDs when pasting arrays to prevent duplicates', () => {
|
|
203
360
|
const copiedArrayID = new ObjectId().toHexString();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeFormStateFromClipboard.spec.js","names":["ObjectIdImport","describe","expect","it","mergeFormStateFromClipboard","ObjectId","default","copiedBlockID","toHexString","formState","layout","valid","value","initialValue","rows","clipboardData","type","path","blocks","data","rowIndex","result","dataFromClipboard","toBeDefined","not","toEqual","isValid","toBe","toHaveLength","id","copiedNestedBlockID","duplicate","copiedArrayID","items","fields","copiedNestedArrayID","disableSort"],"sources":["../../../src/elements/ClipboardAction/mergeFormStateFromClipboard.spec.ts"],"sourcesContent":["import type { FormState } from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { describe, expect, it } from 'vitest'\n\nimport { mergeFormStateFromClipboard } from './mergeFormStateFromClipboard.js'\nimport type { ClipboardPasteData } from './types.js'\n\nconst ObjectId = (\n 'default' in ObjectIdImport ? ObjectIdImport.default : ObjectIdImport\n) as typeof ObjectIdImport\n\ndescribe('mergeFormStateFromClipboard', () => {\n describe('block ID regeneration', () => {\n it('should generate new IDs when pasting blocks to prevent duplicates', () => {\n const copiedBlockID = new ObjectId().toHexString()\n\n const formState: FormState = {\n layout: {\n valid: true,\n value: 0,\n initialValue: 0,\n rows: [],\n },\n }\n\n const clipboardData: ClipboardPasteData = {\n type: 'blocks',\n path: 'layout',\n blocks: [],\n data: {\n 'layout.0.id': {\n value: copiedBlockID,\n valid: true,\n },\n 'layout.0.blockType': {\n value: 'content',\n valid: true,\n },\n 'layout.0.text': {\n value: 'test content',\n valid: true,\n },\n },\n rowIndex: 0,\n }\n\n const result = mergeFormStateFromClipboard({\n dataFromClipboard: clipboardData,\n formState,\n path: 'layout',\n })\n\n // Check that a new ID was generated\n expect(result['layout.0.id']).toBeDefined()\n expect(result['layout.0.id'].value).toBeDefined()\n expect(result['layout.0.id'].value).not.toEqual(copiedBlockID)\n expect(ObjectId.isValid(result['layout.0.id'].value as string)).toBe(true)\n\n // Check that the row metadata also has the new ID\n expect(result.layout.rows).toHaveLength(1)\n expect(result.layout.rows?.[0]?.id).not.toEqual(copiedBlockID)\n expect(result.layout.rows?.[0]?.id).toEqual(result['layout.0.id'].value)\n })\n\n it('should generate new IDs for nested blocks', () => {\n const copiedBlockID = new ObjectId().toHexString()\n const copiedNestedBlockID = new ObjectId().toHexString()\n\n const formState: FormState = {\n layout: {\n valid: true,\n value: 0,\n initialValue: 0,\n rows: [],\n },\n }\n\n const clipboardData: ClipboardPasteData = {\n type: 'blocks',\n path: 'layout',\n blocks: [],\n data: {\n 'layout.0.id': {\n value: copiedBlockID,\n valid: true,\n },\n 'layout.0.blockType': {\n value: 'container',\n valid: true,\n },\n 'layout.0.subBlocks': {\n value: 1,\n valid: true,\n rows: [{ id: copiedNestedBlockID }],\n },\n 'layout.0.subBlocks.0.id': {\n value: copiedNestedBlockID,\n valid: true,\n },\n 'layout.0.subBlocks.0.blockType': {\n value: 'content',\n valid: true,\n },\n },\n rowIndex: 0,\n }\n\n const result = mergeFormStateFromClipboard({\n dataFromClipboard: clipboardData,\n formState,\n path: 'layout',\n })\n\n // Check that parent block got new ID\n expect(result['layout.0.id'].value).not.toEqual(copiedBlockID)\n expect(ObjectId.isValid(result['layout.0.id'].value as string)).toBe(true)\n\n // Check that nested block got new ID\n expect(result['layout.0.subBlocks.0.id'].value).not.toEqual(copiedNestedBlockID)\n expect(ObjectId.isValid(result['layout.0.subBlocks.0.id'].value as string)).toBe(true)\n\n // Check that parent and nested IDs are different\n expect(result['layout.0.id'].value).not.toEqual(result['layout.0.subBlocks.0.id'].value)\n\n // Check that parent row metadata has new ID\n expect(result.layout.rows?.[0]?.id).toEqual(result['layout.0.id'].value)\n\n // Check that nested row metadata has new ID\n expect(result['layout.0.subBlocks'].rows?.[0]?.id).toEqual(\n result['layout.0.subBlocks.0.id'].value,\n )\n })\n\n it('should preserve non-ID field values when pasting', () => {\n const copiedBlockID = new ObjectId().toHexString()\n\n const formState: FormState = {\n layout: {\n valid: true,\n value: 0,\n initialValue: 0,\n rows: [],\n },\n }\n\n const clipboardData: ClipboardPasteData = {\n type: 'blocks',\n path: 'layout',\n blocks: [],\n data: {\n 'layout.0.id': {\n value: copiedBlockID,\n valid: true,\n },\n 'layout.0.blockType': {\n value: 'content',\n valid: true,\n },\n 'layout.0.text': {\n value: 'preserved text content',\n valid: true,\n },\n },\n rowIndex: 0,\n }\n\n const result = mergeFormStateFromClipboard({\n dataFromClipboard: clipboardData,\n formState,\n path: 'layout',\n })\n\n // Non-ID fields should be preserved\n expect(result['layout.0.blockType'].value).toEqual('content')\n expect(result['layout.0.text'].value).toEqual('preserved text content')\n })\n\n it('should generate new ID when pasting from row to field', () => {\n const copiedBlockID = new ObjectId().toHexString()\n\n const formState: FormState = {\n duplicate: {\n valid: true,\n value: 0,\n initialValue: 0,\n rows: [],\n },\n }\n\n // Simulating copying from blocks.1 and pasting into duplicate field\n const clipboardData = {\n type: 'blocks' as const,\n path: 'blocks',\n blocks: [],\n data: {\n 'blocks.1.id': {\n value: copiedBlockID,\n valid: true,\n },\n 'blocks.1.blockType': {\n value: 'number',\n valid: true,\n },\n 'blocks.1.number': {\n value: 342,\n valid: true,\n },\n },\n rowIndex: 1,\n }\n\n const result = mergeFormStateFromClipboard({\n dataFromClipboard: clipboardData,\n formState,\n path: 'duplicate',\n })\n\n // Check that a new ID was generated\n expect(result['duplicate.0.id']).toBeDefined()\n expect(result['duplicate.0.id'].value).toBeDefined()\n expect(result['duplicate.0.id'].value).not.toEqual(copiedBlockID)\n expect(ObjectId.isValid(result['duplicate.0.id'].value as string)).toBe(true)\n\n // Check that the row metadata has the new ID (not the copied ID)\n expect(result.duplicate.rows).toBeDefined()\n expect(result.duplicate.rows).toHaveLength(1)\n expect(result.duplicate.rows![0].id).not.toEqual(copiedBlockID)\n expect(result.duplicate.rows![0].id).toEqual(result['duplicate.0.id'].value)\n\n // Check that other fields were preserved\n expect(result['duplicate.0.number'].value).toEqual(342)\n })\n })\n\n describe('array ID regeneration', () => {\n it('should generate new IDs when pasting arrays to prevent duplicates', () => {\n const copiedArrayID = new ObjectId().toHexString()\n\n const formState: FormState = {\n items: {\n valid: true,\n value: 0,\n initialValue: 0,\n rows: [],\n },\n }\n\n const clipboardData: ClipboardPasteData = {\n type: 'array',\n path: 'items',\n fields: [],\n data: {\n 'items.0.id': {\n value: copiedArrayID,\n valid: true,\n },\n 'items.0.text': {\n value: 'test content',\n valid: true,\n },\n },\n rowIndex: 0,\n }\n\n const result = mergeFormStateFromClipboard({\n dataFromClipboard: clipboardData,\n formState,\n path: 'items',\n })\n\n // Check that a new ID was generated\n expect(result['items.0.id']).toBeDefined()\n expect(result['items.0.id'].value).toBeDefined()\n expect(result['items.0.id'].value).not.toEqual(copiedArrayID)\n expect(ObjectId.isValid(result['items.0.id'].value as string)).toBe(true)\n\n // Check that the row metadata also has the new ID\n expect(result.items.rows).toHaveLength(1)\n expect(result.items.rows?.[0]?.id).not.toEqual(copiedArrayID)\n expect(result.items.rows?.[0]?.id).toEqual(result['items.0.id'].value)\n })\n\n it('should generate new IDs for nested arrays', () => {\n const copiedArrayID = new ObjectId().toHexString()\n const copiedNestedArrayID = new ObjectId().toHexString()\n\n const formState: FormState = {\n items: {\n valid: true,\n value: 0,\n initialValue: 0,\n rows: [],\n },\n }\n\n const clipboardData: ClipboardPasteData = {\n type: 'array',\n path: 'items',\n fields: [],\n data: {\n 'items.0.id': {\n value: copiedArrayID,\n valid: true,\n },\n 'items.0.text': {\n value: 'parent array',\n valid: true,\n },\n 'items.0.subArray': {\n value: 1,\n valid: true,\n rows: [{ id: copiedNestedArrayID }],\n },\n 'items.0.subArray.0.id': {\n value: copiedNestedArrayID,\n valid: true,\n },\n 'items.0.subArray.0.text': {\n value: 'nested array',\n valid: true,\n },\n },\n rowIndex: 0,\n }\n\n const result = mergeFormStateFromClipboard({\n dataFromClipboard: clipboardData,\n formState,\n path: 'items',\n })\n\n // Check that parent array got new ID\n expect(result['items.0.id'].value).not.toEqual(copiedArrayID)\n expect(ObjectId.isValid(result['items.0.id'].value as string)).toBe(true)\n\n // Check that nested array got new ID\n expect(result['items.0.subArray.0.id'].value).not.toEqual(copiedNestedArrayID)\n expect(ObjectId.isValid(result['items.0.subArray.0.id'].value as string)).toBe(true)\n\n // Check that parent and nested IDs are different\n expect(result['items.0.id'].value).not.toEqual(result['items.0.subArray.0.id'].value)\n\n // Check that parent row metadata has new ID\n expect(result.items.rows?.[0]?.id).toEqual(result['items.0.id'].value)\n\n // Check that nested row metadata has new ID\n expect(result['items.0.subArray'].rows?.[0]?.id).toEqual(\n result['items.0.subArray.0.id'].value,\n )\n })\n\n it('should preserve non-ID field values when pasting arrays', () => {\n const copiedArrayID = new ObjectId().toHexString()\n\n const formState: FormState = {\n items: {\n valid: true,\n value: 0,\n initialValue: 0,\n rows: [],\n },\n }\n\n const clipboardData: ClipboardPasteData = {\n type: 'array',\n path: 'items',\n fields: [],\n data: {\n 'items.0.id': {\n value: copiedArrayID,\n valid: true,\n },\n 'items.0.text': {\n value: 'preserved array text',\n valid: true,\n },\n },\n rowIndex: 0,\n }\n\n const result = mergeFormStateFromClipboard({\n dataFromClipboard: clipboardData,\n formState,\n path: 'items',\n })\n\n // Non-ID fields should be preserved\n expect(result['items.0.text'].value).toEqual('preserved array text')\n })\n\n it('should generate new ID when pasting from array row to field', () => {\n const copiedArrayID = new ObjectId().toHexString()\n\n const formState: FormState = {\n disableSort: {\n valid: true,\n value: 0,\n initialValue: 0,\n rows: [],\n },\n }\n\n // Simulating copying from items.0 and pasting into disableSort field\n const clipboardData = {\n type: 'array' as const,\n path: 'items',\n fields: [],\n data: {\n 'items.0.id': {\n value: copiedArrayID,\n valid: true,\n },\n 'items.0.text': {\n value: 'row one',\n valid: true,\n },\n },\n rowIndex: 0,\n }\n\n const result = mergeFormStateFromClipboard({\n dataFromClipboard: clipboardData,\n formState,\n path: 'disableSort',\n })\n\n // Check that a new ID was generated\n expect(result['disableSort.0.id']).toBeDefined()\n expect(result['disableSort.0.id'].value).toBeDefined()\n expect(result['disableSort.0.id'].value).not.toEqual(copiedArrayID)\n expect(ObjectId.isValid(result['disableSort.0.id'].value as string)).toBe(true)\n\n // Check that the row metadata has the new ID (not the copied ID)\n expect(result.disableSort.rows).toBeDefined()\n expect(result.disableSort.rows).toHaveLength(1)\n expect(result.disableSort.rows![0].id).not.toEqual(copiedArrayID)\n expect(result.disableSort.rows![0].id).toEqual(result['disableSort.0.id'].value)\n\n // Check that other fields were preserved\n expect(result['disableSort.0.text'].value).toEqual('row one')\n })\n })\n})\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"mergeFormStateFromClipboard.spec.js","names":["ObjectIdImport","describe","expect","it","mergeFormStateFromClipboard","ObjectId","default","copiedBlockID","toHexString","formState","layout","valid","value","initialValue","rows","clipboardData","type","path","blocks","data","rowIndex","result","dataFromClipboard","toBeDefined","not","toEqual","isValid","toBe","toHaveLength","id","copiedNestedBlockID","duplicate","copiedArrayItemID1","copiedArrayItemID2","copiedArrayItemID3","targetBlockID","ctas","blockType","isLoading","copiedArrayID","items","fields","copiedNestedArrayID","disableSort"],"sources":["../../../src/elements/ClipboardAction/mergeFormStateFromClipboard.spec.ts"],"sourcesContent":["import type { FormState } from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { describe, expect, it } from 'vitest'\n\nimport { mergeFormStateFromClipboard } from './mergeFormStateFromClipboard.js'\nimport type { ClipboardPasteData } from './types.js'\n\nconst ObjectId = (\n 'default' in ObjectIdImport ? ObjectIdImport.default : ObjectIdImport\n) as typeof ObjectIdImport\n\ndescribe('mergeFormStateFromClipboard', () => {\n describe('block ID regeneration', () => {\n it('should generate new IDs when pasting blocks to prevent duplicates', () => {\n const copiedBlockID = new ObjectId().toHexString()\n\n const formState: FormState = {\n layout: {\n valid: true,\n value: 0,\n initialValue: 0,\n rows: [],\n },\n }\n\n const clipboardData: ClipboardPasteData = {\n type: 'blocks',\n path: 'layout',\n blocks: [],\n data: {\n 'layout.0.id': {\n value: copiedBlockID,\n valid: true,\n },\n 'layout.0.blockType': {\n value: 'content',\n valid: true,\n },\n 'layout.0.text': {\n value: 'test content',\n valid: true,\n },\n },\n rowIndex: 0,\n }\n\n const result = mergeFormStateFromClipboard({\n dataFromClipboard: clipboardData,\n formState,\n path: 'layout',\n })\n\n // Check that a new ID was generated\n expect(result['layout.0.id']).toBeDefined()\n expect(result['layout.0.id'].value).toBeDefined()\n expect(result['layout.0.id'].value).not.toEqual(copiedBlockID)\n expect(ObjectId.isValid(result['layout.0.id'].value as string)).toBe(true)\n\n // Check that the row metadata also has the new ID\n expect(result.layout.rows).toHaveLength(1)\n expect(result.layout.rows?.[0]?.id).not.toEqual(copiedBlockID)\n expect(result.layout.rows?.[0]?.id).toEqual(result['layout.0.id'].value)\n })\n\n it('should generate new IDs for nested blocks', () => {\n const copiedBlockID = new ObjectId().toHexString()\n const copiedNestedBlockID = new ObjectId().toHexString()\n\n const formState: FormState = {\n layout: {\n valid: true,\n value: 0,\n initialValue: 0,\n rows: [],\n },\n }\n\n const clipboardData: ClipboardPasteData = {\n type: 'blocks',\n path: 'layout',\n blocks: [],\n data: {\n 'layout.0.id': {\n value: copiedBlockID,\n valid: true,\n },\n 'layout.0.blockType': {\n value: 'container',\n valid: true,\n },\n 'layout.0.subBlocks': {\n value: 1,\n valid: true,\n rows: [{ id: copiedNestedBlockID }],\n },\n 'layout.0.subBlocks.0.id': {\n value: copiedNestedBlockID,\n valid: true,\n },\n 'layout.0.subBlocks.0.blockType': {\n value: 'content',\n valid: true,\n },\n },\n rowIndex: 0,\n }\n\n const result = mergeFormStateFromClipboard({\n dataFromClipboard: clipboardData,\n formState,\n path: 'layout',\n })\n\n // Check that parent block got new ID\n expect(result['layout.0.id'].value).not.toEqual(copiedBlockID)\n expect(ObjectId.isValid(result['layout.0.id'].value as string)).toBe(true)\n\n // Check that nested block got new ID\n expect(result['layout.0.subBlocks.0.id'].value).not.toEqual(copiedNestedBlockID)\n expect(ObjectId.isValid(result['layout.0.subBlocks.0.id'].value as string)).toBe(true)\n\n // Check that parent and nested IDs are different\n expect(result['layout.0.id'].value).not.toEqual(result['layout.0.subBlocks.0.id'].value)\n\n // Check that parent row metadata has new ID\n expect(result.layout.rows?.[0]?.id).toEqual(result['layout.0.id'].value)\n\n // Check that nested row metadata has new ID\n expect(result['layout.0.subBlocks'].rows?.[0]?.id).toEqual(\n result['layout.0.subBlocks.0.id'].value,\n )\n })\n\n it('should preserve non-ID field values when pasting', () => {\n const copiedBlockID = new ObjectId().toHexString()\n\n const formState: FormState = {\n layout: {\n valid: true,\n value: 0,\n initialValue: 0,\n rows: [],\n },\n }\n\n const clipboardData: ClipboardPasteData = {\n type: 'blocks',\n path: 'layout',\n blocks: [],\n data: {\n 'layout.0.id': {\n value: copiedBlockID,\n valid: true,\n },\n 'layout.0.blockType': {\n value: 'content',\n valid: true,\n },\n 'layout.0.text': {\n value: 'preserved text content',\n valid: true,\n },\n },\n rowIndex: 0,\n }\n\n const result = mergeFormStateFromClipboard({\n dataFromClipboard: clipboardData,\n formState,\n path: 'layout',\n })\n\n // Non-ID fields should be preserved\n expect(result['layout.0.blockType'].value).toEqual('content')\n expect(result['layout.0.text'].value).toEqual('preserved text content')\n })\n\n it('should generate new ID when pasting from row to field', () => {\n const copiedBlockID = new ObjectId().toHexString()\n\n const formState: FormState = {\n duplicate: {\n valid: true,\n value: 0,\n initialValue: 0,\n rows: [],\n },\n }\n\n // Simulating copying from blocks.1 and pasting into duplicate field\n const clipboardData = {\n type: 'blocks' as const,\n path: 'blocks',\n blocks: [],\n data: {\n 'blocks.1.id': {\n value: copiedBlockID,\n valid: true,\n },\n 'blocks.1.blockType': {\n value: 'number',\n valid: true,\n },\n 'blocks.1.number': {\n value: 342,\n valid: true,\n },\n },\n rowIndex: 1,\n }\n\n const result = mergeFormStateFromClipboard({\n dataFromClipboard: clipboardData,\n formState,\n path: 'duplicate',\n })\n\n // Check that a new ID was generated\n expect(result['duplicate.0.id']).toBeDefined()\n expect(result['duplicate.0.id'].value).toBeDefined()\n expect(result['duplicate.0.id'].value).not.toEqual(copiedBlockID)\n expect(ObjectId.isValid(result['duplicate.0.id'].value as string)).toBe(true)\n\n // Check that the row metadata has the new ID (not the copied ID)\n expect(result.duplicate.rows).toBeDefined()\n expect(result.duplicate.rows).toHaveLength(1)\n expect(result.duplicate.rows![0].id).not.toEqual(copiedBlockID)\n expect(result.duplicate.rows![0].id).toEqual(result['duplicate.0.id'].value)\n\n // Check that other fields were preserved\n expect(result['duplicate.0.number'].value).toEqual(342)\n })\n })\n\n describe('block row paste with nested array', () => {\n it('should regenerate nested array item IDs when pasting a block row', () => {\n const copiedBlockID = new ObjectId().toHexString()\n const copiedArrayItemID1 = new ObjectId().toHexString()\n const copiedArrayItemID2 = new ObjectId().toHexString()\n const copiedArrayItemID3 = new ObjectId().toHexString()\n const targetBlockID = new ObjectId().toHexString()\n\n // Target form state: block at index 1 with empty buttons array\n const formState: FormState = {\n ctas: {\n valid: true,\n value: 2,\n initialValue: 2,\n rows: [\n { id: copiedBlockID, blockType: 'callToAction', isLoading: false },\n { id: targetBlockID, blockType: 'callToAction', isLoading: false },\n ],\n },\n 'ctas.0': { value: 'callToAction', valid: true },\n 'ctas.0.id': { value: copiedBlockID, valid: true },\n 'ctas.0.buttons': {\n valid: true,\n value: 3,\n rows: [\n { id: copiedArrayItemID1, isLoading: false },\n { id: copiedArrayItemID2, isLoading: false },\n { id: copiedArrayItemID3, isLoading: false },\n ],\n },\n 'ctas.0.buttons.0.id': { value: copiedArrayItemID1, valid: true },\n 'ctas.0.buttons.1.id': { value: copiedArrayItemID2, valid: true },\n 'ctas.0.buttons.2.id': { value: copiedArrayItemID3, valid: true },\n 'ctas.1': { value: 'callToAction', valid: true },\n 'ctas.1.id': { value: targetBlockID, valid: true },\n 'ctas.1.buttons': {\n valid: true,\n value: 0,\n rows: [],\n },\n }\n\n // Clipboard: block row 0 (source) with 3 buttons\n const clipboardData: ClipboardPasteData = {\n type: 'blocks',\n path: 'ctas',\n blocks: [],\n rowIndex: 0,\n data: {\n 'ctas.0': { value: 'callToAction', valid: true },\n 'ctas.0.id': { value: copiedBlockID, valid: true },\n 'ctas.0.buttons': {\n valid: true,\n value: 3,\n rows: [\n { id: copiedArrayItemID1, isLoading: false },\n { id: copiedArrayItemID2, isLoading: false },\n { id: copiedArrayItemID3, isLoading: false },\n ],\n },\n 'ctas.0.buttons.0.id': { value: copiedArrayItemID1, valid: true },\n 'ctas.0.buttons.0.label': { value: 'Button 1', valid: true },\n 'ctas.0.buttons.1.id': { value: copiedArrayItemID2, valid: true },\n 'ctas.0.buttons.1.label': { value: 'Button 2', valid: true },\n 'ctas.0.buttons.2.id': { value: copiedArrayItemID3, valid: true },\n 'ctas.0.buttons.2.label': { value: 'Button 3', valid: true },\n },\n }\n\n // Paste into block row 1 (target)\n const result = mergeFormStateFromClipboard({\n dataFromClipboard: clipboardData,\n formState,\n path: 'ctas',\n rowIndex: 1,\n })\n\n // Target block ID should NOT be overwritten\n expect(result['ctas.1.id'].value).toEqual(targetBlockID)\n\n // Nested array items should have NEW IDs (not the source IDs)\n expect(result['ctas.1.buttons.0.id']).toBeDefined()\n expect(result['ctas.1.buttons.0.id'].value).not.toEqual(copiedArrayItemID1)\n expect(ObjectId.isValid(result['ctas.1.buttons.0.id'].value as string)).toBe(true)\n\n expect(result['ctas.1.buttons.1.id']).toBeDefined()\n expect(result['ctas.1.buttons.1.id'].value).not.toEqual(copiedArrayItemID2)\n\n expect(result['ctas.1.buttons.2.id']).toBeDefined()\n expect(result['ctas.1.buttons.2.id'].value).not.toEqual(copiedArrayItemID3)\n\n // The rows metadata in ctas.1.buttons should have the new IDs\n expect(result['ctas.1.buttons'].rows).toHaveLength(3)\n expect(result['ctas.1.buttons'].rows![0].id).toEqual(result['ctas.1.buttons.0.id'].value)\n expect(result['ctas.1.buttons'].rows![1].id).toEqual(result['ctas.1.buttons.1.id'].value)\n expect(result['ctas.1.buttons'].rows![2].id).toEqual(result['ctas.1.buttons.2.id'].value)\n\n // Field values should be copied\n expect(result['ctas.1.buttons.0.label'].value).toEqual('Button 1')\n expect(result['ctas.1.buttons.1.label'].value).toEqual('Button 2')\n expect(result['ctas.1.buttons.2.label'].value).toEqual('Button 3')\n\n // Source block should be untouched\n expect(result['ctas.0.id'].value).toEqual(copiedBlockID)\n expect(result['ctas.0.buttons'].rows).toHaveLength(3)\n })\n })\n\n describe('array ID regeneration', () => {\n it('should generate new IDs when pasting arrays to prevent duplicates', () => {\n const copiedArrayID = new ObjectId().toHexString()\n\n const formState: FormState = {\n items: {\n valid: true,\n value: 0,\n initialValue: 0,\n rows: [],\n },\n }\n\n const clipboardData: ClipboardPasteData = {\n type: 'array',\n path: 'items',\n fields: [],\n data: {\n 'items.0.id': {\n value: copiedArrayID,\n valid: true,\n },\n 'items.0.text': {\n value: 'test content',\n valid: true,\n },\n },\n rowIndex: 0,\n }\n\n const result = mergeFormStateFromClipboard({\n dataFromClipboard: clipboardData,\n formState,\n path: 'items',\n })\n\n // Check that a new ID was generated\n expect(result['items.0.id']).toBeDefined()\n expect(result['items.0.id'].value).toBeDefined()\n expect(result['items.0.id'].value).not.toEqual(copiedArrayID)\n expect(ObjectId.isValid(result['items.0.id'].value as string)).toBe(true)\n\n // Check that the row metadata also has the new ID\n expect(result.items.rows).toHaveLength(1)\n expect(result.items.rows?.[0]?.id).not.toEqual(copiedArrayID)\n expect(result.items.rows?.[0]?.id).toEqual(result['items.0.id'].value)\n })\n\n it('should generate new IDs for nested arrays', () => {\n const copiedArrayID = new ObjectId().toHexString()\n const copiedNestedArrayID = new ObjectId().toHexString()\n\n const formState: FormState = {\n items: {\n valid: true,\n value: 0,\n initialValue: 0,\n rows: [],\n },\n }\n\n const clipboardData: ClipboardPasteData = {\n type: 'array',\n path: 'items',\n fields: [],\n data: {\n 'items.0.id': {\n value: copiedArrayID,\n valid: true,\n },\n 'items.0.text': {\n value: 'parent array',\n valid: true,\n },\n 'items.0.subArray': {\n value: 1,\n valid: true,\n rows: [{ id: copiedNestedArrayID }],\n },\n 'items.0.subArray.0.id': {\n value: copiedNestedArrayID,\n valid: true,\n },\n 'items.0.subArray.0.text': {\n value: 'nested array',\n valid: true,\n },\n },\n rowIndex: 0,\n }\n\n const result = mergeFormStateFromClipboard({\n dataFromClipboard: clipboardData,\n formState,\n path: 'items',\n })\n\n // Check that parent array got new ID\n expect(result['items.0.id'].value).not.toEqual(copiedArrayID)\n expect(ObjectId.isValid(result['items.0.id'].value as string)).toBe(true)\n\n // Check that nested array got new ID\n expect(result['items.0.subArray.0.id'].value).not.toEqual(copiedNestedArrayID)\n expect(ObjectId.isValid(result['items.0.subArray.0.id'].value as string)).toBe(true)\n\n // Check that parent and nested IDs are different\n expect(result['items.0.id'].value).not.toEqual(result['items.0.subArray.0.id'].value)\n\n // Check that parent row metadata has new ID\n expect(result.items.rows?.[0]?.id).toEqual(result['items.0.id'].value)\n\n // Check that nested row metadata has new ID\n expect(result['items.0.subArray'].rows?.[0]?.id).toEqual(\n result['items.0.subArray.0.id'].value,\n )\n })\n\n it('should preserve non-ID field values when pasting arrays', () => {\n const copiedArrayID = new ObjectId().toHexString()\n\n const formState: FormState = {\n items: {\n valid: true,\n value: 0,\n initialValue: 0,\n rows: [],\n },\n }\n\n const clipboardData: ClipboardPasteData = {\n type: 'array',\n path: 'items',\n fields: [],\n data: {\n 'items.0.id': {\n value: copiedArrayID,\n valid: true,\n },\n 'items.0.text': {\n value: 'preserved array text',\n valid: true,\n },\n },\n rowIndex: 0,\n }\n\n const result = mergeFormStateFromClipboard({\n dataFromClipboard: clipboardData,\n formState,\n path: 'items',\n })\n\n // Non-ID fields should be preserved\n expect(result['items.0.text'].value).toEqual('preserved array text')\n })\n\n it('should generate new ID when pasting from array row to field', () => {\n const copiedArrayID = new ObjectId().toHexString()\n\n const formState: FormState = {\n disableSort: {\n valid: true,\n value: 0,\n initialValue: 0,\n rows: [],\n },\n }\n\n // Simulating copying from items.0 and pasting into disableSort field\n const clipboardData = {\n type: 'array' as const,\n path: 'items',\n fields: [],\n data: {\n 'items.0.id': {\n value: copiedArrayID,\n valid: true,\n },\n 'items.0.text': {\n value: 'row one',\n valid: true,\n },\n },\n rowIndex: 0,\n }\n\n const result = mergeFormStateFromClipboard({\n dataFromClipboard: clipboardData,\n formState,\n path: 'disableSort',\n })\n\n // Check that a new ID was generated\n expect(result['disableSort.0.id']).toBeDefined()\n expect(result['disableSort.0.id'].value).toBeDefined()\n expect(result['disableSort.0.id'].value).not.toEqual(copiedArrayID)\n expect(ObjectId.isValid(result['disableSort.0.id'].value as string)).toBe(true)\n\n // Check that the row metadata has the new ID (not the copied ID)\n expect(result.disableSort.rows).toBeDefined()\n expect(result.disableSort.rows).toHaveLength(1)\n expect(result.disableSort.rows![0].id).not.toEqual(copiedArrayID)\n expect(result.disableSort.rows![0].id).toEqual(result['disableSort.0.id'].value)\n\n // Check that other fields were preserved\n expect(result['disableSort.0.text'].value).toEqual('row one')\n })\n })\n})\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DefaultListViewTabs/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAK9E,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DefaultListViewTabs/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAK9E,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,cAAc,CAAA;AAIrB,KAAK,wBAAwB,GAAG;IAC9B,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,MAAM,EAAE,YAAY,CAAA;IACpB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,IAAI,CAAA;IACxC,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAqGlE,CAAA"}
|
|
@@ -6,12 +6,13 @@ import { getTranslation } from '@payloadcms/translations';
|
|
|
6
6
|
import { useRouter } from 'next/navigation.js';
|
|
7
7
|
import { formatAdminURL } from 'payload/shared';
|
|
8
8
|
import React from 'react';
|
|
9
|
+
import { usePreferences } from '../../providers/Preferences/index.js';
|
|
9
10
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
10
11
|
import { Button } from '../Button/index.js';
|
|
11
12
|
import './index.scss';
|
|
12
13
|
const baseClass = 'default-list-view-tabs';
|
|
13
14
|
export const DefaultListViewTabs = t0 => {
|
|
14
|
-
const $ = _c(
|
|
15
|
+
const $ = _c(20);
|
|
15
16
|
const {
|
|
16
17
|
collectionConfig,
|
|
17
18
|
config,
|
|
@@ -22,19 +23,35 @@ export const DefaultListViewTabs = t0 => {
|
|
|
22
23
|
i18n,
|
|
23
24
|
t
|
|
24
25
|
} = useTranslation();
|
|
26
|
+
const {
|
|
27
|
+
setPreference
|
|
28
|
+
} = usePreferences();
|
|
25
29
|
const router = useRouter();
|
|
26
30
|
const isTrashEnabled = collectionConfig.trash;
|
|
27
|
-
|
|
31
|
+
const isFoldersEnabled = collectionConfig.folders && config.folders;
|
|
32
|
+
if (!isTrashEnabled && !isFoldersEnabled) {
|
|
28
33
|
return null;
|
|
29
34
|
}
|
|
30
35
|
let t1;
|
|
31
|
-
if ($[0] !== collectionConfig.slug || $[1] !== config || $[2] !== onChange || $[3] !== router) {
|
|
32
|
-
t1 = newViewType => {
|
|
36
|
+
if ($[0] !== collectionConfig.slug || $[1] !== config || $[2] !== onChange || $[3] !== router || $[4] !== setPreference) {
|
|
37
|
+
t1 = async newViewType => {
|
|
33
38
|
if (onChange) {
|
|
34
39
|
onChange(newViewType);
|
|
35
40
|
}
|
|
41
|
+
if (newViewType === "list" || newViewType === "folders") {
|
|
42
|
+
await setPreference(`collection-${collectionConfig.slug}`, {
|
|
43
|
+
listViewType: newViewType
|
|
44
|
+
});
|
|
45
|
+
}
|
|
36
46
|
let path = `/collections/${collectionConfig.slug}`;
|
|
37
|
-
switch (newViewType) {
|
|
47
|
+
bb21: switch (newViewType) {
|
|
48
|
+
case "folders":
|
|
49
|
+
{
|
|
50
|
+
if (config.folders) {
|
|
51
|
+
path = `/collections/${collectionConfig.slug}/${config.folders.slug}`;
|
|
52
|
+
}
|
|
53
|
+
break bb21;
|
|
54
|
+
}
|
|
38
55
|
case "trash":
|
|
39
56
|
{
|
|
40
57
|
path = `/collections/${collectionConfig.slug}/trash`;
|
|
@@ -50,38 +67,39 @@ export const DefaultListViewTabs = t0 => {
|
|
|
50
67
|
$[1] = config;
|
|
51
68
|
$[2] = onChange;
|
|
52
69
|
$[3] = router;
|
|
53
|
-
$[4] =
|
|
70
|
+
$[4] = setPreference;
|
|
71
|
+
$[5] = t1;
|
|
54
72
|
} else {
|
|
55
|
-
t1 = $[
|
|
73
|
+
t1 = $[5];
|
|
56
74
|
}
|
|
57
75
|
const handleViewChange = t1;
|
|
58
76
|
const allButtonLabel = `${t("general:all")} ${getTranslation(collectionConfig?.labels?.plural, i18n)}`;
|
|
59
77
|
let t2;
|
|
60
|
-
if ($[
|
|
78
|
+
if ($[6] !== allButtonLabel || $[7] !== collectionConfig.labels?.plural || $[8] !== handleViewChange || $[9] !== i18n || $[10] !== isFoldersEnabled || $[11] !== isTrashEnabled || $[12] !== t || $[13] !== viewType) {
|
|
61
79
|
let t3;
|
|
62
|
-
if ($[
|
|
80
|
+
if ($[15] === Symbol.for("react.memo_cache_sentinel")) {
|
|
63
81
|
t3 = /\s+/g;
|
|
64
|
-
$[
|
|
82
|
+
$[15] = t3;
|
|
65
83
|
} else {
|
|
66
|
-
t3 = $[
|
|
84
|
+
t3 = $[15];
|
|
67
85
|
}
|
|
68
86
|
const allButtonId = allButtonLabel.toLowerCase().replace(t3, "-");
|
|
69
87
|
const t4 = viewType === "list" && `${baseClass}__button--active`;
|
|
70
88
|
let t5;
|
|
71
|
-
if ($[
|
|
89
|
+
if ($[16] !== t4) {
|
|
72
90
|
t5 = [`${baseClass}__button`, t4].filter(Boolean);
|
|
73
|
-
$[
|
|
74
|
-
$[
|
|
91
|
+
$[16] = t4;
|
|
92
|
+
$[17] = t5;
|
|
75
93
|
} else {
|
|
76
|
-
t5 = $[
|
|
94
|
+
t5 = $[17];
|
|
77
95
|
}
|
|
78
96
|
let t6;
|
|
79
|
-
if ($[
|
|
97
|
+
if ($[18] !== handleViewChange) {
|
|
80
98
|
t6 = () => handleViewChange("list");
|
|
81
|
-
$[
|
|
82
|
-
$[
|
|
99
|
+
$[18] = handleViewChange;
|
|
100
|
+
$[19] = t6;
|
|
83
101
|
} else {
|
|
84
|
-
t6 = $[
|
|
102
|
+
t6 = $[19];
|
|
85
103
|
}
|
|
86
104
|
t2 = _jsxs("div", {
|
|
87
105
|
className: baseClass,
|
|
@@ -93,6 +111,13 @@ export const DefaultListViewTabs = t0 => {
|
|
|
93
111
|
id: allButtonId,
|
|
94
112
|
onClick: t6,
|
|
95
113
|
children: [t("general:all"), " ", getTranslation(collectionConfig?.labels?.plural, i18n)]
|
|
114
|
+
}), isFoldersEnabled && _jsx(Button, {
|
|
115
|
+
buttonStyle: "tab",
|
|
116
|
+
className: [`${baseClass}__button`, viewType === "folders" && `${baseClass}__button--active`].filter(Boolean).join(" "),
|
|
117
|
+
disabled: viewType === "folders",
|
|
118
|
+
el: "button",
|
|
119
|
+
onClick: () => handleViewChange("folders"),
|
|
120
|
+
children: t("folder:byFolder")
|
|
96
121
|
}), isTrashEnabled && _jsx(Button, {
|
|
97
122
|
buttonStyle: "tab",
|
|
98
123
|
className: [`${baseClass}__button`, viewType === "trash" && `${baseClass}__button--active`].filter(Boolean).join(" "),
|
|
@@ -103,16 +128,17 @@ export const DefaultListViewTabs = t0 => {
|
|
|
103
128
|
children: t("general:trash")
|
|
104
129
|
})]
|
|
105
130
|
});
|
|
106
|
-
$[
|
|
107
|
-
$[
|
|
108
|
-
$[
|
|
109
|
-
$[
|
|
110
|
-
$[
|
|
111
|
-
$[
|
|
112
|
-
$[
|
|
113
|
-
$[
|
|
131
|
+
$[6] = allButtonLabel;
|
|
132
|
+
$[7] = collectionConfig.labels?.plural;
|
|
133
|
+
$[8] = handleViewChange;
|
|
134
|
+
$[9] = i18n;
|
|
135
|
+
$[10] = isFoldersEnabled;
|
|
136
|
+
$[11] = isTrashEnabled;
|
|
137
|
+
$[12] = t;
|
|
138
|
+
$[13] = viewType;
|
|
139
|
+
$[14] = t2;
|
|
114
140
|
} else {
|
|
115
|
-
t2 = $[
|
|
141
|
+
t2 = $[14];
|
|
116
142
|
}
|
|
117
143
|
return t2;
|
|
118
144
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","getTranslation","useRouter","formatAdminURL","React","useTranslation","Button","baseClass","DefaultListViewTabs","t0","$","collectionConfig","config","onChange","viewType","i18n","t","router","isTrashEnabled","trash","t1","slug","newViewType","path","url","adminRoute","routes","admin","push","handleViewChange","allButtonLabel","labels","plural","t2","t3","Symbol","for","allButtonId","toLowerCase","replace","t4","t5","filter","Boolean","t6","_jsxs","className","children","buttonStyle","join","disabled","el","id","onClick","_jsx"],"sources":["../../../src/elements/DefaultListViewTabs/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, ClientConfig, ViewTypes } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React from 'react'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport './index.scss'\n\nconst baseClass = 'default-list-view-tabs'\n\ntype DefaultListViewTabsProps = {\n collectionConfig: ClientCollectionConfig\n config: ClientConfig\n onChange?: (viewType: ViewTypes) => void\n viewType?: ViewTypes\n}\n\nexport const DefaultListViewTabs: React.FC<DefaultListViewTabsProps> = ({\n collectionConfig,\n config,\n onChange,\n viewType,\n}) => {\n const { i18n, t } = useTranslation()\n const router = useRouter()\n const isTrashEnabled = collectionConfig.trash\n\n if (!isTrashEnabled) {\n return null\n }\n\n const handleViewChange = (newViewType: ViewTypes) => {\n if (onChange) {\n onChange(newViewType)\n }\n\n let path: `/${string}` = `/collections/${collectionConfig.slug}`\n switch (newViewType) {\n case 'trash':\n path = `/collections/${collectionConfig.slug}/trash`\n break\n }\n\n const url = formatAdminURL({\n adminRoute: config.routes.admin,\n path,\n })\n\n router.push(url)\n }\n\n const allButtonLabel = `${t('general:all')} ${getTranslation(collectionConfig?.labels?.plural, i18n)}`\n const allButtonId = allButtonLabel.toLowerCase().replace(/\\s+/g, '-')\n\n return (\n <div className={baseClass}>\n <Button\n buttonStyle=\"tab\"\n className={[`${baseClass}__button`, viewType === 'list' && `${baseClass}__button--active`]\n .filter(Boolean)\n .join(' ')}\n disabled={viewType === 'list'}\n el=\"button\"\n id={allButtonId}\n onClick={() => handleViewChange('list')}\n >\n {t('general:all')} {getTranslation(collectionConfig?.labels?.plural, i18n)}\n </Button>\n\n {isTrashEnabled && (\n <Button\n buttonStyle=\"tab\"\n className={[\n `${baseClass}__button`,\n viewType === 'trash' && `${baseClass}__button--active`,\n ]\n .filter(Boolean)\n .join(' ')}\n disabled={viewType === 'trash'}\n el=\"button\"\n id=\"trash-view-pill\"\n onClick={() => handleViewChange('trash')}\n >\n {t('general:trash')}\n </Button>\n )}\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAIA,SAASC,cAAc,QAAQ;AAC/B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAElB,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,OAAO;AAEP,MAAMC,SAAA,GAAY;AASlB,OAAO,MAAMC,mBAAA,GAA0DC,EAAA;EAAA,MAAAC,CAAA,
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","getTranslation","useRouter","formatAdminURL","React","usePreferences","useTranslation","Button","baseClass","DefaultListViewTabs","t0","$","collectionConfig","config","onChange","viewType","i18n","t","setPreference","router","isTrashEnabled","trash","isFoldersEnabled","folders","t1","slug","newViewType","listViewType","path","bb21","url","adminRoute","routes","admin","push","handleViewChange","allButtonLabel","labels","plural","t2","t3","Symbol","for","allButtonId","toLowerCase","replace","t4","t5","filter","Boolean","t6","_jsxs","className","children","buttonStyle","join","disabled","el","id","onClick","_jsx"],"sources":["../../../src/elements/DefaultListViewTabs/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, ClientConfig, ViewTypes } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React from 'react'\n\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport './index.scss'\n\nconst baseClass = 'default-list-view-tabs'\n\ntype DefaultListViewTabsProps = {\n collectionConfig: ClientCollectionConfig\n config: ClientConfig\n onChange?: (viewType: ViewTypes) => void\n viewType?: ViewTypes\n}\n\nexport const DefaultListViewTabs: React.FC<DefaultListViewTabsProps> = ({\n collectionConfig,\n config,\n onChange,\n viewType,\n}) => {\n const { i18n, t } = useTranslation()\n const { setPreference } = usePreferences()\n const router = useRouter()\n const isTrashEnabled = collectionConfig.trash\n const isFoldersEnabled = collectionConfig.folders && config.folders\n\n if (!isTrashEnabled && !isFoldersEnabled) {\n return null\n }\n\n const handleViewChange = async (newViewType: ViewTypes) => {\n if (onChange) {\n onChange(newViewType)\n }\n\n if (newViewType === 'list' || newViewType === 'folders') {\n await setPreference(`collection-${collectionConfig.slug}`, {\n listViewType: newViewType,\n })\n }\n\n let path: `/${string}` = `/collections/${collectionConfig.slug}`\n switch (newViewType) {\n case 'folders':\n if (config.folders) {\n path = `/collections/${collectionConfig.slug}/${config.folders.slug}`\n }\n break\n case 'trash':\n path = `/collections/${collectionConfig.slug}/trash`\n break\n }\n\n const url = formatAdminURL({\n adminRoute: config.routes.admin,\n path,\n })\n\n router.push(url)\n }\n\n const allButtonLabel = `${t('general:all')} ${getTranslation(collectionConfig?.labels?.plural, i18n)}`\n const allButtonId = allButtonLabel.toLowerCase().replace(/\\s+/g, '-')\n\n return (\n <div className={baseClass}>\n <Button\n buttonStyle=\"tab\"\n className={[`${baseClass}__button`, viewType === 'list' && `${baseClass}__button--active`]\n .filter(Boolean)\n .join(' ')}\n disabled={viewType === 'list'}\n el=\"button\"\n id={allButtonId}\n onClick={() => handleViewChange('list')}\n >\n {t('general:all')} {getTranslation(collectionConfig?.labels?.plural, i18n)}\n </Button>\n\n {isFoldersEnabled && (\n <Button\n buttonStyle=\"tab\"\n className={[\n `${baseClass}__button`,\n viewType === 'folders' && `${baseClass}__button--active`,\n ]\n .filter(Boolean)\n .join(' ')}\n disabled={viewType === 'folders'}\n el=\"button\"\n onClick={() => handleViewChange('folders')}\n >\n {t('folder:byFolder')}\n </Button>\n )}\n\n {isTrashEnabled && (\n <Button\n buttonStyle=\"tab\"\n className={[\n `${baseClass}__button`,\n viewType === 'trash' && `${baseClass}__button--active`,\n ]\n .filter(Boolean)\n .join(' ')}\n disabled={viewType === 'trash'}\n el=\"button\"\n id=\"trash-view-pill\"\n onClick={() => handleViewChange('trash')}\n >\n {t('general:trash')}\n </Button>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,7 +5,6 @@ import './index.scss';
|
|
|
5
5
|
export declare const DocumentControls: React.FC<{
|
|
6
6
|
readonly apiURL: string;
|
|
7
7
|
readonly BeforeDocumentControls?: React.ReactNode;
|
|
8
|
-
readonly BeforeDocumentMeta?: React.ReactNode;
|
|
9
8
|
readonly customComponents?: {
|
|
10
9
|
readonly PreviewButton?: React.ReactNode;
|
|
11
10
|
readonly PublishButton?: React.ReactNode;
|