@webiny/app-headless-cms 6.3.0 → 6.4.0-beta.0
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/ContentEntryEditorConfig.js +42 -41
- package/ContentEntryEditorConfig.js.map +1 -1
- package/ContentEntryListConfig.js +6 -5
- package/ContentEntryListConfig.js.map +1 -1
- package/HeadlessCMS.js +24 -35
- package/HeadlessCMS.js.map +1 -1
- package/admin/RoutesConfig.js +44 -51
- package/admin/RoutesConfig.js.map +1 -1
- package/admin/components/ContentEntries/BottomInfoBar/BottomInfoBar.js +13 -14
- package/admin/components/ContentEntries/BottomInfoBar/BottomInfoBar.js.map +1 -1
- package/admin/components/ContentEntries/BottomInfoBar/ListMeta.js +10 -13
- package/admin/components/ContentEntries/BottomInfoBar/ListMeta.js.map +1 -1
- package/admin/components/ContentEntries/BottomInfoBar/ListStatus.js +13 -16
- package/admin/components/ContentEntries/BottomInfoBar/ListStatus.js.map +1 -1
- package/admin/components/ContentEntries/BottomInfoBar/index.js +0 -2
- package/admin/components/ContentEntries/BulkActions/ActionDelete.js +65 -92
- package/admin/components/ContentEntries/BulkActions/ActionDelete.js.map +1 -1
- package/admin/components/ContentEntries/BulkActions/ActionMove.js +85 -103
- package/admin/components/ContentEntries/BulkActions/ActionMove.js.map +1 -1
- package/admin/components/ContentEntries/BulkActions/ActionPublish.js +70 -95
- package/admin/components/ContentEntries/BulkActions/ActionPublish.js.map +1 -1
- package/admin/components/ContentEntries/BulkActions/ActionUnpublish.js +69 -94
- package/admin/components/ContentEntries/BulkActions/ActionUnpublish.js.map +1 -1
- package/admin/components/ContentEntries/BulkActions/BulkActions.js +56 -69
- package/admin/components/ContentEntries/BulkActions/BulkActions.js.map +1 -1
- package/admin/components/ContentEntries/BulkActions/index.js +1 -3
- package/admin/components/ContentEntries/Empty/index.js +40 -53
- package/admin/components/ContentEntries/Empty/index.js.map +1 -1
- package/admin/components/ContentEntries/Empty/styled.js +9 -22
- package/admin/components/ContentEntries/Empty/styled.js.map +1 -1
- package/admin/components/ContentEntries/Filters/FieldsMapper.js +66 -45
- package/admin/components/ContentEntries/Filters/FieldsMapper.js.map +1 -1
- package/admin/components/ContentEntries/Filters/FilterByStatus.js +45 -40
- package/admin/components/ContentEntries/Filters/FilterByStatus.js.map +1 -1
- package/admin/components/ContentEntries/Filters/Filters.js +35 -44
- package/admin/components/ContentEntries/Filters/Filters.js.map +1 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/adapters/EntriesGatewayInterface.js +0 -3
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/adapters/EntriesGraphQLGateway.js +33 -50
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/adapters/EntriesGraphQLGateway.js.map +1 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/adapters/entries.gql.js +6 -5
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/adapters/entries.gql.js.map +1 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/adapters/entries.types.js +0 -3
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/adapters/index.js +0 -2
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/components/AutoComplete.js +36 -32
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/components/AutoComplete.js.map +1 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/components/Ref.js +35 -38
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/components/Ref.js.map +1 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/components/RefPresenter.js +40 -51
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/components/RefPresenter.js.map +1 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/components/RefPresenter.test.js +134 -146
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/components/RefPresenter.test.js.map +1 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/components/index.js +0 -2
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/domain/Entry.js +11 -10
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/domain/Entry.js.map +1 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/domain/EntryMapper.js +18 -17
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/domain/EntryMapper.js.map +1 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/domain/EntryRepository.js +38 -40
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/domain/EntryRepository.js.map +1 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/domain/EntryRepositoryFactory.js +16 -14
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/domain/EntryRepositoryFactory.js.map +1 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/domain/Loading.js +47 -46
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/domain/Loading.js.map +1 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/domain/index.js +0 -2
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/index.js +0 -2
- package/admin/components/ContentEntries/Filters/index.js +0 -2
- package/admin/components/ContentEntries/Header/ButtonFilters/ButtonFilters.js +15 -15
- package/admin/components/ContentEntries/Header/ButtonFilters/ButtonFilters.js.map +1 -1
- package/admin/components/ContentEntries/Header/ButtonFilters/index.js +0 -2
- package/admin/components/ContentEntries/Header/ButtonRefresh/ButtonRefresh.js +14 -13
- package/admin/components/ContentEntries/Header/ButtonRefresh/ButtonRefresh.js.map +1 -1
- package/admin/components/ContentEntries/Header/ButtonRefresh/index.js +0 -2
- package/admin/components/ContentEntries/Header/ButtonsCreate/ButtonsCreate.js +27 -37
- package/admin/components/ContentEntries/Header/ButtonsCreate/ButtonsCreate.js.map +1 -1
- package/admin/components/ContentEntries/Header/ButtonsCreate/index.js +0 -2
- package/admin/components/ContentEntries/Header/Header.js +27 -35
- package/admin/components/ContentEntries/Header/Header.js.map +1 -1
- package/admin/components/ContentEntries/Header/Title/Title.js +24 -26
- package/admin/components/ContentEntries/Header/Title/Title.js.map +1 -1
- package/admin/components/ContentEntries/Header/Title/index.js +0 -2
- package/admin/components/ContentEntries/Header/index.js +0 -2
- package/admin/components/ContentEntries/LoadMoreButton/LoadMoreButton.js +11 -18
- package/admin/components/ContentEntries/LoadMoreButton/LoadMoreButton.js.map +1 -1
- package/admin/components/ContentEntries/LoadMoreButton/index.js +0 -2
- package/admin/components/ContentEntries/LoadingContentModel/LoadingContentModel.js +7 -8
- package/admin/components/ContentEntries/LoadingContentModel/LoadingContentModel.js.map +1 -1
- package/admin/components/ContentEntries/LoadingContentModel/index.js +0 -2
- package/admin/components/ContentEntries/SidebarContent/SidebarContent.js +14 -18
- package/admin/components/ContentEntries/SidebarContent/SidebarContent.js.map +1 -1
- package/admin/components/ContentEntries/SidebarContent/index.js +0 -2
- package/admin/components/ContentEntries/SidebarFooter/SidebarFooter.js +5 -8
- package/admin/components/ContentEntries/SidebarFooter/SidebarFooter.js.map +1 -1
- package/admin/components/ContentEntries/SidebarFooter/index.js +0 -2
- package/admin/components/ContentEntries/SidebarHeader/SidebarHeader.js +24 -25
- package/admin/components/ContentEntries/SidebarHeader/SidebarHeader.js.map +1 -1
- package/admin/components/ContentEntries/SidebarHeader/index.js +0 -2
- package/admin/components/ContentEntries/Table/Actions/ChangeEntryStatus.js +25 -38
- package/admin/components/ContentEntries/Table/Actions/ChangeEntryStatus.js.map +1 -1
- package/admin/components/ContentEntries/Table/Actions/DeleteEntry.js +20 -27
- package/admin/components/ContentEntries/Table/Actions/DeleteEntry.js.map +1 -1
- package/admin/components/ContentEntries/Table/Actions/EditEntry.js +15 -24
- package/admin/components/ContentEntries/Table/Actions/EditEntry.js.map +1 -1
- package/admin/components/ContentEntries/Table/Actions/MoveEntry.js +15 -18
- package/admin/components/ContentEntries/Table/Actions/MoveEntry.js.map +1 -1
- package/admin/components/ContentEntries/Table/Actions/index.js +0 -2
- package/admin/components/ContentEntries/Table/Cells/CellActions.js +21 -30
- package/admin/components/ContentEntries/Table/Cells/CellActions.js.map +1 -1
- package/admin/components/ContentEntries/Table/Cells/CellAuthor.js +7 -12
- package/admin/components/ContentEntries/Table/Cells/CellAuthor.js.map +1 -1
- package/admin/components/ContentEntries/Table/Cells/CellCreated.js +10 -15
- package/admin/components/ContentEntries/Table/Cells/CellCreated.js.map +1 -1
- package/admin/components/ContentEntries/Table/Cells/CellLive.js +13 -21
- package/admin/components/ContentEntries/Table/Cells/CellLive.js.map +1 -1
- package/admin/components/ContentEntries/Table/Cells/CellModified.js +10 -15
- package/admin/components/ContentEntries/Table/Cells/CellModified.js.map +1 -1
- package/admin/components/ContentEntries/Table/Cells/CellName.js +51 -75
- package/admin/components/ContentEntries/Table/Cells/CellName.js.map +1 -1
- package/admin/components/ContentEntries/Table/Cells/CellStatus.js +23 -27
- package/admin/components/ContentEntries/Table/Cells/CellStatus.js.map +1 -1
- package/admin/components/ContentEntries/Table/Cells/index.js +0 -2
- package/admin/components/ContentEntries/Table/index.js +33 -32
- package/admin/components/ContentEntries/Table/index.js.map +1 -1
- package/admin/components/ContentEntries/TrashBin/adapters/TrashBinBulkActionsGraphQLGateway.js +16 -24
- package/admin/components/ContentEntries/TrashBin/adapters/TrashBinBulkActionsGraphQLGateway.js.map +1 -1
- package/admin/components/ContentEntries/TrashBin/adapters/TrashBinDeleteItemGraphQLGateway.js +17 -25
- package/admin/components/ContentEntries/TrashBin/adapters/TrashBinDeleteItemGraphQLGateway.js.map +1 -1
- package/admin/components/ContentEntries/TrashBin/adapters/TrashBinItemMapper.js +16 -15
- package/admin/components/ContentEntries/TrashBin/adapters/TrashBinItemMapper.js.map +1 -1
- package/admin/components/ContentEntries/TrashBin/adapters/TrashBinListGraphQLGateway.js +31 -31
- package/admin/components/ContentEntries/TrashBin/adapters/TrashBinListGraphQLGateway.js.map +1 -1
- package/admin/components/ContentEntries/TrashBin/adapters/TrashBinRestoreItemGraphQLGateway.js +16 -24
- package/admin/components/ContentEntries/TrashBin/adapters/TrashBinRestoreItemGraphQLGateway.js.map +1 -1
- package/admin/components/ContentEntries/TrashBin/adapters/TrashBinRestoreItemGraphQLGatewayWithCallback.js +14 -13
- package/admin/components/ContentEntries/TrashBin/adapters/TrashBinRestoreItemGraphQLGatewayWithCallback.js.map +1 -1
- package/admin/components/ContentEntries/TrashBin/adapters/index.js +0 -2
- package/admin/components/ContentEntries/TrashBin/components/TrashBin.js +50 -57
- package/admin/components/ContentEntries/TrashBin/components/TrashBin.js.map +1 -1
- package/admin/components/ContentEntries/TrashBin/components/TrashBin.styled.js +32 -42
- package/admin/components/ContentEntries/TrashBin/components/TrashBin.styled.js.map +1 -1
- package/admin/components/ContentEntries/TrashBin/components/TrashBinButton.js +13 -14
- package/admin/components/ContentEntries/TrashBin/components/TrashBinButton.js.map +1 -1
- package/admin/components/ContentEntries/TrashBin/components/index.js +0 -2
- package/admin/components/ContentEntries/TrashBin/index.js +0 -2
- package/admin/components/ContentEntryForm/ContentEntryForm.js +43 -57
- package/admin/components/ContentEntryForm/ContentEntryForm.js.map +1 -1
- package/admin/components/ContentEntryForm/ContentEntryFormPreview.js +25 -30
- package/admin/components/ContentEntryForm/ContentEntryFormPreview.js.map +1 -1
- package/admin/components/ContentEntryForm/ContentEntryFormProvider.js +107 -125
- package/admin/components/ContentEntryForm/ContentEntryFormProvider.js.map +1 -1
- package/admin/components/ContentEntryForm/CustomLayout.js +18 -22
- package/admin/components/ContentEntryForm/CustomLayout.js.map +1 -1
- package/admin/components/ContentEntryForm/DefaultLayout.js +8 -18
- package/admin/components/ContentEntryForm/DefaultLayout.js.map +1 -1
- package/admin/components/ContentEntryForm/FieldElement.js +0 -2
- package/admin/components/ContentEntryForm/Fields.js +0 -2
- package/admin/components/ContentEntryForm/Header/ContentFormOptionsMenu/ContentFormOptionsMenu.js +8 -9
- package/admin/components/ContentEntryForm/Header/ContentFormOptionsMenu/ContentFormOptionsMenu.js.map +1 -1
- package/admin/components/ContentEntryForm/Header/ContentFormOptionsMenu/index.js +0 -2
- package/admin/components/ContentEntryForm/Header/DeleteEntry/DeleteEntry.js +21 -34
- package/admin/components/ContentEntryForm/Header/DeleteEntry/DeleteEntry.js.map +1 -1
- package/admin/components/ContentEntryForm/Header/DeleteEntry/index.js +0 -2
- package/admin/components/ContentEntryForm/Header/Header.js +15 -18
- package/admin/components/ContentEntryForm/Header/Header.js.map +1 -1
- package/admin/components/ContentEntryForm/Header/RevisionSelector/RevisionSelector.d.ts +1 -1
- package/admin/components/ContentEntryForm/Header/RevisionSelector/RevisionSelector.js +45 -50
- package/admin/components/ContentEntryForm/Header/RevisionSelector/RevisionSelector.js.map +1 -1
- package/admin/components/ContentEntryForm/Header/RevisionSelector/index.js +0 -2
- package/admin/components/ContentEntryForm/Header/SaveAndPublishContent/SaveAndPublishContent.js +20 -34
- package/admin/components/ContentEntryForm/Header/SaveAndPublishContent/SaveAndPublishContent.js.map +1 -1
- package/admin/components/ContentEntryForm/Header/SaveAndPublishContent/index.js +0 -2
- package/admin/components/ContentEntryForm/Header/SaveContent/SaveContent.js +18 -26
- package/admin/components/ContentEntryForm/Header/SaveContent/SaveContent.js.map +1 -1
- package/admin/components/ContentEntryForm/Header/SaveContent/index.js +0 -2
- package/admin/components/ContentEntryForm/Header/ShowRevisionsList/ShowRevisionList.js +16 -18
- package/admin/components/ContentEntryForm/Header/ShowRevisionsList/ShowRevisionList.js.map +1 -1
- package/admin/components/ContentEntryForm/Header/ShowRevisionsList/index.js +0 -2
- package/admin/components/ContentEntryForm/Header/index.js +0 -2
- package/admin/components/ContentEntryForm/Label.js +0 -2
- package/admin/components/ContentEntryForm/ParentValue.js +41 -48
- package/admin/components/ContentEntryForm/ParentValue.js.map +1 -1
- package/admin/components/ContentEntryForm/SingletonHeader/SaveAction.js +11 -18
- package/admin/components/ContentEntryForm/SingletonHeader/SaveAction.js.map +1 -1
- package/admin/components/ContentEntryForm/SingletonHeader/SingletonHeader.js +21 -22
- package/admin/components/ContentEntryForm/SingletonHeader/SingletonHeader.js.map +1 -1
- package/admin/components/ContentEntryForm/SingletonHeader/index.js +0 -2
- package/admin/components/ContentEntryForm/createValidationContainer.js +0 -2
- package/admin/components/ContentEntryForm/functions/getValue.js +7 -15
- package/admin/components/ContentEntryForm/functions/getValue.js.map +1 -1
- package/admin/components/ContentEntryForm/functions/setValue.js +10 -18
- package/admin/components/ContentEntryForm/functions/setValue.js.map +1 -1
- package/admin/components/ContentEntryForm/useBind.js +0 -2
- package/admin/components/ContentEntryForm/useContentEntryForm.js +6 -7
- package/admin/components/ContentEntryForm/useContentEntryForm.js.map +1 -1
- package/admin/components/ContentEntryForm/useDefaultValues.js +33 -74
- package/admin/components/ContentEntryForm/useDefaultValues.js.map +1 -1
- package/admin/components/ContentEntryForm/useFormRenderer.js +2 -3
- package/admin/components/ContentEntryForm/useFormRenderer.js.map +1 -1
- package/admin/components/ContentEntryForm/useGoToRevision.js +16 -17
- package/admin/components/ContentEntryForm/useGoToRevision.js.map +1 -1
- package/admin/components/ContentEntryForm/useRenderPlugins.js +0 -2
- package/admin/components/ContentModelEditor/ContentModelEditor.js +106 -117
- package/admin/components/ContentModelEditor/ContentModelEditor.js.map +1 -1
- package/admin/components/ContentModelEditor/ContentModelEditorProvider.js +164 -197
- package/admin/components/ContentModelEditor/ContentModelEditorProvider.js.map +1 -1
- package/admin/components/ContentModelEditor/FieldsSidebar.js +76 -97
- package/admin/components/ContentModelEditor/FieldsSidebar.js.map +1 -1
- package/admin/components/ContentModelEditor/Header.js +12 -13
- package/admin/components/ContentModelEditor/Header.js.map +1 -1
- package/admin/components/ContentModelEditor/ModelIsBeingDeletedError/ModelIsBeingDeletedError.js +48 -68
- package/admin/components/ContentModelEditor/ModelIsBeingDeletedError/ModelIsBeingDeletedError.js.map +1 -1
- package/admin/components/ContentModelEditor/ModelIsBeingDeletedError/SecureRouteError.js +297 -0
- package/admin/components/ContentModelEditor/ModelIsBeingDeletedError/SecureRouteError.js.map +1 -0
- package/admin/components/ContentModelEditor/ModelIsBeingDeletedError/index.js +0 -2
- package/admin/components/ContentModelEditor/PreviewTab.js +9 -12
- package/admin/components/ContentModelEditor/PreviewTab.js.map +1 -1
- package/admin/components/ContentModelEditor/icons/round-assignment-24px.js +19 -0
- package/admin/components/ContentModelEditor/icons/round-assignment-24px.js.map +1 -0
- package/admin/components/ContentModelEditor/icons/round-drag_indicator-24px.js +19 -0
- package/admin/components/ContentModelEditor/icons/round-drag_indicator-24px.js.map +1 -0
- package/admin/components/ContentModelEditor/index.js +0 -2
- package/admin/components/ContentModelEditor/useModelEditor.js +6 -7
- package/admin/components/ContentModelEditor/useModelEditor.js.map +1 -1
- package/admin/components/ContentModelsWidget.js +19 -20
- package/admin/components/ContentModelsWidget.js.map +1 -1
- package/admin/components/Decorators/ShowConfirmationOnDelete.js +57 -83
- package/admin/components/Decorators/ShowConfirmationOnDelete.js.map +1 -1
- package/admin/components/Decorators/ShowConfirmationOnDeleteRevision/EntryRevisionDeletedSnackbarMessage.js +5 -9
- package/admin/components/Decorators/ShowConfirmationOnDeleteRevision/EntryRevisionDeletedSnackbarMessage.js.map +1 -1
- package/admin/components/Decorators/ShowConfirmationOnDeleteRevision.js +60 -86
- package/admin/components/Decorators/ShowConfirmationOnDeleteRevision.js.map +1 -1
- package/admin/components/Decorators/ShowConfirmationOnPublish.js +90 -90
- package/admin/components/Decorators/ShowConfirmationOnPublish.js.map +1 -1
- package/admin/components/Decorators/ShowConfirmationOnUnpublish.js +61 -90
- package/admin/components/Decorators/ShowConfirmationOnUnpublish.js.map +1 -1
- package/admin/components/Dialog.d.ts +4 -2
- package/admin/components/Dialog.js +4 -17
- package/admin/components/Dialog.js.map +1 -1
- package/admin/components/DragPreview.js +52 -73
- package/admin/components/DragPreview.js.map +1 -1
- package/admin/components/Draggable.js +28 -37
- package/admin/components/Draggable.js.map +1 -1
- package/admin/components/DropZone/Center.js +40 -51
- package/admin/components/DropZone/Center.js.map +1 -1
- package/admin/components/DropZone/Horizontal.js +31 -46
- package/admin/components/DropZone/Horizontal.js.map +1 -1
- package/admin/components/DropZone/Vertical.js +31 -46
- package/admin/components/DropZone/Vertical.js.map +1 -1
- package/admin/components/DropZone/index.js +3 -6
- package/admin/components/Droppable.js +28 -42
- package/admin/components/Droppable.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab/LegacyRichTextInput.js +11 -12
- package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab/LegacyRichTextInput.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab/RendererOptions.js +16 -23
- package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab/RendererOptions.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.js +60 -72
- package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/FieldSettingsTabs.js +55 -54
- package/admin/components/FieldEditor/EditFieldDialog/FieldSettingsTabs.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js +137 -164
- package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/PermissionsEditor/CannotUsePermissions.js +10 -11
- package/admin/components/FieldEditor/EditFieldDialog/PermissionsEditor/CannotUsePermissions.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/PermissionsEditor/FieldPermissionsSelection.js +105 -120
- package/admin/components/FieldEditor/EditFieldDialog/PermissionsEditor/FieldPermissionsSelection.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/PermissionsEditor/PermissionsEditor.js +60 -57
- package/admin/components/FieldEditor/EditFieldDialog/PermissionsEditor/PermissionsEditor.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.js +38 -51
- package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/RulesEditor/RulesEditor.js +218 -193
- package/admin/components/FieldEditor/EditFieldDialog/RulesEditor/RulesEditor.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/RulesEditor/index.js +0 -2
- package/admin/components/FieldEditor/EditFieldDialog/ValidationTab/ValidationTab.js +21 -24
- package/admin/components/FieldEditor/EditFieldDialog/ValidationTab/ValidationTab.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/ValidationTab/ValidationsSection.js +18 -24
- package/admin/components/FieldEditor/EditFieldDialog/ValidationTab/ValidationsSection.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/ValidationTab/ValidatorsList.js +143 -196
- package/admin/components/FieldEditor/EditFieldDialog/ValidationTab/ValidatorsList.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/ValidationTab/index.js +0 -2
- package/admin/components/FieldEditor/EditFieldDialog/functions/getValue.js +6 -11
- package/admin/components/FieldEditor/EditFieldDialog/functions/getValue.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/functions/setValue.js +8 -13
- package/admin/components/FieldEditor/EditFieldDialog/functions/setValue.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/getValidators.js +46 -65
- package/admin/components/FieldEditor/EditFieldDialog/getValidators.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/useRendererPlugins.js +13 -27
- package/admin/components/FieldEditor/EditFieldDialog/useRendererPlugins.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog.js +51 -81
- package/admin/components/FieldEditor/EditFieldDialog.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialogContainer.js +25 -34
- package/admin/components/FieldEditor/EditFieldDialogContainer.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDrawerContainer.js +25 -34
- package/admin/components/FieldEditor/EditFieldDrawerContainer.js.map +1 -1
- package/admin/components/FieldEditor/Field.js +187 -211
- package/admin/components/FieldEditor/Field.js.map +1 -1
- package/admin/components/FieldEditor/FieldEditor.js +193 -227
- package/admin/components/FieldEditor/FieldEditor.js.map +1 -1
- package/admin/components/FieldEditor/FieldEditorContext.js +323 -532
- package/admin/components/FieldEditor/FieldEditorContext.js.map +1 -1
- package/admin/components/FieldEditor/LayoutCell.js +21 -28
- package/admin/components/FieldEditor/LayoutCell.js.map +1 -1
- package/admin/components/FieldEditor/index.js +0 -2
- package/admin/components/FieldEditor/useModelFieldEditor.js +5 -6
- package/admin/components/FieldEditor/useModelFieldEditor.js.map +1 -1
- package/admin/components/FieldEditor/utils/deleteField.js +25 -39
- package/admin/components/FieldEditor/utils/deleteField.js.map +1 -1
- package/admin/components/FieldEditor/utils/getFieldPosition.js +17 -23
- package/admin/components/FieldEditor/utils/getFieldPosition.js.map +1 -1
- package/admin/components/FieldEditor/utils/index.js +0 -2
- package/admin/components/FieldEditor/utils/moveField.js +36 -47
- package/admin/components/FieldEditor/utils/moveField.js.map +1 -1
- package/admin/components/FieldEditor/utils/moveRow.js +13 -10
- package/admin/components/FieldEditor/utils/moveRow.js.map +1 -1
- package/admin/components/IconPicker.js +25 -35
- package/admin/components/IconPicker.js.map +1 -1
- package/admin/components/IsModelPublishable.js +5 -4
- package/admin/components/IsModelPublishable.js.map +1 -1
- package/admin/components/LexicalCmsEditor/LexicalCmsEditor.js +24 -24
- package/admin/components/LexicalCmsEditor/LexicalCmsEditor.js.map +1 -1
- package/admin/components/LexicalCmsEditor/LexicalEditorCmsPlugin.js +81 -85
- package/admin/components/LexicalCmsEditor/LexicalEditorCmsPlugin.js.map +1 -1
- package/admin/components/LexicalCmsEditor/TypographyDropDown.js +55 -73
- package/admin/components/LexicalCmsEditor/TypographyDropDown.js.map +1 -1
- package/admin/components/ModelFieldProvider/index.js +0 -2
- package/admin/components/ModelProvider/index.js +0 -2
- package/admin/config/IsApplicableToCurrentModel.js +6 -12
- package/admin/config/IsApplicableToCurrentModel.js.map +1 -1
- package/admin/config/contentEntries/editor/Actions/BaseAction.js +28 -35
- package/admin/config/contentEntries/editor/Actions/BaseAction.js.map +1 -1
- package/admin/config/contentEntries/editor/Actions/ButtonAction.js +8 -8
- package/admin/config/contentEntries/editor/Actions/ButtonAction.js.map +1 -1
- package/admin/config/contentEntries/editor/Actions/MenuItemAction.js +8 -8
- package/admin/config/contentEntries/editor/Actions/MenuItemAction.js.map +1 -1
- package/admin/config/contentEntries/editor/Actions/index.js +4 -3
- package/admin/config/contentEntries/editor/Actions/index.js.map +1 -1
- package/admin/config/contentEntries/editor/ContentEntryEditorConfig.js +21 -14
- package/admin/config/contentEntries/editor/ContentEntryEditorConfig.js.map +1 -1
- package/admin/config/contentEntries/editor/FieldElement.js +8 -11
- package/admin/config/contentEntries/editor/FieldElement.js.map +1 -1
- package/admin/config/contentEntries/editor/ValidationIndicators.js +11 -13
- package/admin/config/contentEntries/editor/ValidationIndicators.js.map +1 -1
- package/admin/config/contentEntries/editor/Width.js +9 -13
- package/admin/config/contentEntries/editor/Width.js.map +1 -1
- package/admin/config/contentEntries/editor/index.js +0 -2
- package/admin/config/contentEntries/index.js +0 -2
- package/admin/config/contentEntries/list/Browser/AdvancedSearch/FieldRenderer.js +10 -18
- package/admin/config/contentEntries/list/Browser/AdvancedSearch/FieldRenderer.js.map +1 -1
- package/admin/config/contentEntries/list/Browser/AdvancedSearch/index.js +3 -2
- package/admin/config/contentEntries/list/Browser/AdvancedSearch/index.js.map +1 -1
- package/admin/config/contentEntries/list/Browser/BulkAction.js +64 -90
- package/admin/config/contentEntries/list/Browser/BulkAction.js.map +1 -1
- package/admin/config/contentEntries/list/Browser/EntryAction.js +9 -15
- package/admin/config/contentEntries/list/Browser/EntryAction.js.map +1 -1
- package/admin/config/contentEntries/list/Browser/Filter.js +34 -50
- package/admin/config/contentEntries/list/Browser/Filter.js.map +1 -1
- package/admin/config/contentEntries/list/Browser/FiltersToWhere.js +13 -19
- package/admin/config/contentEntries/list/Browser/FiltersToWhere.js.map +1 -1
- package/admin/config/contentEntries/list/Browser/FolderAction.js +9 -17
- package/admin/config/contentEntries/list/Browser/FolderAction.js.map +1 -1
- package/admin/config/contentEntries/list/Browser/FolderDropConfirmation.js +7 -15
- package/admin/config/contentEntries/list/Browser/FolderDropConfirmation.js.map +1 -1
- package/admin/config/contentEntries/list/Browser/FolderFieldDecorator.js +7 -22
- package/admin/config/contentEntries/list/Browser/FolderFieldDecorator.js.map +1 -1
- package/admin/config/contentEntries/list/Browser/Table/Column.js +10 -18
- package/admin/config/contentEntries/list/Browser/Table/Column.js.map +1 -1
- package/admin/config/contentEntries/list/Browser/Table/index.js +3 -2
- package/admin/config/contentEntries/list/Browser/Table/index.js.map +1 -1
- package/admin/config/contentEntries/list/Browser/index.js +19 -18
- package/admin/config/contentEntries/list/Browser/index.js.map +1 -1
- package/admin/config/contentEntries/list/ContentEntryListConfig.js +40 -43
- package/admin/config/contentEntries/list/ContentEntryListConfig.js.map +1 -1
- package/admin/config/contentEntries/list/index.js +0 -2
- package/admin/constants.js +7 -6
- package/admin/constants.js.map +1 -1
- package/admin/contexts/Cms/NetworkError.js +2 -2
- package/admin/contexts/Cms/NetworkError.js.map +1 -1
- package/admin/contexts/Cms/index.d.ts +7 -0
- package/admin/contexts/Cms/index.js +374 -489
- package/admin/contexts/Cms/index.js.map +1 -1
- package/admin/graphql/contentModels.js +6 -16
- package/admin/graphql/contentModels.js.map +1 -1
- package/admin/hooks/index.js +4 -6
- package/admin/hooks/useApolloClient.js +5 -6
- package/admin/hooks/useApolloClient.js.map +1 -1
- package/admin/hooks/useCms.js +7 -7
- package/admin/hooks/useCms.js.map +1 -1
- package/admin/hooks/useContentModels.js +25 -34
- package/admin/hooks/useContentModels.js.map +1 -1
- package/admin/hooks/useEntry.js +14 -18
- package/admin/hooks/useEntry.js.map +1 -1
- package/admin/hooks/useIsModelPublishable.js +6 -5
- package/admin/hooks/useIsModelPublishable.js.map +1 -1
- package/admin/hooks/useLazyQuery.js +10 -10
- package/admin/hooks/useLazyQuery.js.map +1 -1
- package/admin/hooks/useModelFieldGraphqlContext.js +10 -13
- package/admin/hooks/useModelFieldGraphqlContext.js.map +1 -1
- package/admin/hooks/useMutation.js +10 -10
- package/admin/hooks/useMutation.js.map +1 -1
- package/admin/hooks/usePermission.js +145 -210
- package/admin/hooks/usePermission.js.map +1 -1
- package/admin/hooks/usePersistEntry.js +32 -37
- package/admin/hooks/usePersistEntry.js.map +1 -1
- package/admin/hooks/useQuery.js +11 -11
- package/admin/hooks/useQuery.js.map +1 -1
- package/admin/icons/add.js +20 -0
- package/admin/icons/add.js.map +1 -0
- package/admin/icons/arrow_forward-24px.js +19 -0
- package/admin/icons/arrow_forward-24px.js.map +1 -0
- package/admin/icons/baseline-autorenew-24px.js +19 -0
- package/admin/icons/baseline-autorenew-24px.js.map +1 -0
- package/admin/icons/beenhere.js +19 -0
- package/admin/icons/beenhere.js.map +1 -0
- package/admin/icons/call_split-24px.js +20 -0
- package/admin/icons/call_split-24px.js.map +1 -0
- package/admin/icons/clone.js +17 -0
- package/admin/icons/clone.js.map +1 -0
- package/admin/icons/close.js +21 -0
- package/admin/icons/close.js.map +1 -0
- package/admin/icons/delete.js +18 -0
- package/admin/icons/delete.js.map +1 -0
- package/admin/icons/devices_other-black-24px.js +16 -0
- package/admin/icons/devices_other-black-24px.js.map +1 -0
- package/admin/icons/done-24px.js +19 -0
- package/admin/icons/done-24px.js.map +1 -0
- package/admin/icons/draft.js +18 -0
- package/admin/icons/draft.js.map +1 -0
- package/admin/icons/edit.js +20 -0
- package/admin/icons/edit.js.map +1 -0
- package/admin/icons/emoji_people-24px.js +26 -0
- package/admin/icons/emoji_people-24px.js.map +1 -0
- package/admin/icons/gesture.js +19 -0
- package/admin/icons/gesture.js.map +1 -0
- package/admin/icons/help_outline.js +19 -0
- package/admin/icons/help_outline.js.map +1 -0
- package/admin/icons/how_to_vote-24px.js +19 -0
- package/admin/icons/how_to_vote-24px.js.map +1 -0
- package/admin/icons/info.js +19 -0
- package/admin/icons/info.js.map +1 -0
- package/admin/icons/lock.js +23 -0
- package/admin/icons/lock.js.map +1 -0
- package/admin/icons/more_vert.js +20 -0
- package/admin/icons/more_vert.js.map +1 -0
- package/admin/icons/publish.js +19 -0
- package/admin/icons/publish.js.map +1 -0
- package/admin/icons/published.js +18 -0
- package/admin/icons/published.js.map +1 -0
- package/admin/icons/round-arrow_drop_down-24px.js +20 -0
- package/admin/icons/round-arrow_drop_down-24px.js.map +1 -0
- package/admin/icons/round-drag_indicator-24px.js +19 -0
- package/admin/icons/round-drag_indicator-24px.js.map +1 -0
- package/admin/icons/round-translate-24px.js +19 -0
- package/admin/icons/round-translate-24px.js.map +1 -0
- package/admin/icons/rule-24px.js +19 -0
- package/admin/icons/rule-24px.js.map +1 -0
- package/admin/icons/title-24px.js +19 -0
- package/admin/icons/title-24px.js.map +1 -0
- package/admin/icons/unpublish.js +19 -0
- package/admin/icons/unpublish.js.map +1 -0
- package/admin/icons/unpublished.js +18 -0
- package/admin/icons/unpublished.js.map +1 -0
- package/admin/icons/view_list.js +20 -0
- package/admin/icons/view_list.js.map +1 -0
- package/admin/icons/visibility.js +20 -0
- package/admin/icons/visibility.js.map +1 -0
- package/admin/lexicalConfig/LexicalEditorConfig.js +14 -27
- package/admin/lexicalConfig/LexicalEditorConfig.js.map +1 -1
- package/admin/menus/CmsMenuLoader.js +57 -80
- package/admin/menus/CmsMenuLoader.js.map +1 -1
- package/admin/menus/ContentGroupsMenuItems.js +14 -15
- package/admin/menus/ContentGroupsMenuItems.js.map +1 -1
- package/admin/menus/GroupContentModels.js +34 -44
- package/admin/menus/GroupContentModels.js.map +1 -1
- package/admin/menus/GroupMenu.js +17 -24
- package/admin/menus/GroupMenu.js.map +1 -1
- package/admin/menus/HasContentEntryPermissions.js +13 -22
- package/admin/menus/HasContentEntryPermissions.js.map +1 -1
- package/admin/plugins/apiInformation/index.js +46 -53
- package/admin/plugins/apiInformation/index.js.map +1 -1
- package/admin/plugins/apiInformation/placeholder.manage.graphql.js +2 -1
- package/admin/plugins/apiInformation/placeholder.manage.graphql.js.map +1 -1
- package/admin/plugins/apiInformation/placeholder.preview.graphql.js +2 -1
- package/admin/plugins/apiInformation/placeholder.preview.graphql.js.map +1 -1
- package/admin/plugins/apiInformation/placeholder.read.graphql.js +2 -1
- package/admin/plugins/apiInformation/placeholder.read.graphql.js.map +1 -1
- package/admin/plugins/arrayUtils.js +23 -32
- package/admin/plugins/arrayUtils.js.map +1 -1
- package/admin/plugins/definitions/CmsEditorFieldValidatorFileTypePlugin.js +27 -24
- package/admin/plugins/definitions/CmsEditorFieldValidatorFileTypePlugin.js.map +1 -1
- package/admin/plugins/definitions/CmsFieldValidatorFileTypePlugin.js +12 -9
- package/admin/plugins/definitions/CmsFieldValidatorFileTypePlugin.js.map +1 -1
- package/admin/plugins/editor/defaultBar/BackButton.js +12 -13
- package/admin/plugins/editor/defaultBar/BackButton.js.map +1 -1
- package/admin/plugins/editor/defaultBar/CreateContentButton.js +30 -34
- package/admin/plugins/editor/defaultBar/CreateContentButton.js.map +1 -1
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettings.js +55 -68
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettings.js.map +1 -1
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsButton.js +19 -18
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsButton.js.map +1 -1
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsStyled.js +31 -48
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsStyled.js.map +1 -1
- package/admin/plugins/editor/defaultBar/FormSettings/index.js +0 -2
- package/admin/plugins/editor/defaultBar/Name/Name.js +57 -60
- package/admin/plugins/editor/defaultBar/Name/Name.js.map +1 -1
- package/admin/plugins/editor/defaultBar/Name/index.js +0 -2
- package/admin/plugins/editor/defaultBar/SaveContentModelButton.js +24 -29
- package/admin/plugins/editor/defaultBar/SaveContentModelButton.js.map +1 -1
- package/admin/plugins/editor/defaultBar/index.js +39 -32
- package/admin/plugins/editor/defaultBar/index.js.map +1 -1
- package/admin/plugins/editor/formSettings/components/GeneralSettings.js +60 -61
- package/admin/plugins/editor/formSettings/components/GeneralSettings.js.map +1 -1
- package/admin/plugins/editor/formSettings/components/GroupSelect.d.ts +1 -1
- package/admin/plugins/editor/formSettings/components/GroupSelect.js +19 -23
- package/admin/plugins/editor/formSettings/components/GroupSelect.js.map +1 -1
- package/admin/plugins/editor/formSettings/icons/round-settings-24px.js +19 -0
- package/admin/plugins/editor/formSettings/icons/round-settings-24px.js.map +1 -0
- package/admin/plugins/editor/formSettings/index.js +13 -12
- package/admin/plugins/editor/formSettings/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/AccordionRenderSettings.js +15 -20
- package/admin/plugins/fieldRenderers/AccordionRenderSettings.js.map +1 -1
- package/admin/plugins/fieldRenderers/DynamicSection.js +69 -93
- package/admin/plugins/fieldRenderers/DynamicSection.js.map +1 -1
- package/admin/plugins/fieldRenderers/MultiValueRendererSettings.js +14 -19
- package/admin/plugins/fieldRenderers/MultiValueRendererSettings.js.map +1 -1
- package/admin/plugins/fieldRenderers/boolean/booleanSwitch.js +27 -31
- package/admin/plugins/fieldRenderers/boolean/booleanSwitch.js.map +1 -1
- package/admin/plugins/fieldRenderers/boolean/index.js +4 -1
- package/admin/plugins/fieldRenderers/boolean/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/checkboxes.js +45 -55
- package/admin/plugins/fieldRenderers/checkboxes.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/DateOnly.js +28 -35
- package/admin/plugins/fieldRenderers/dateTime/DateOnly.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.js +84 -107
- package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.js +67 -80
- package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/Input.js +33 -38
- package/admin/plugins/fieldRenderers/dateTime/Input.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/Select.js +16 -16
- package/admin/plugins/fieldRenderers/dateTime/Select.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/Time.js +28 -33
- package/admin/plugins/fieldRenderers/dateTime/Time.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/dateTimeField.js +40 -46
- package/admin/plugins/fieldRenderers/dateTime/dateTimeField.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/dateTimeFields.js +56 -68
- package/admin/plugins/fieldRenderers/dateTime/dateTimeFields.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/index.js +5 -1
- package/admin/plugins/fieldRenderers/dateTime/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/utils.js +49 -65
- package/admin/plugins/fieldRenderers/dateTime/utils.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/AddTemplate.js +28 -29
- package/admin/plugins/fieldRenderers/dynamicZone/AddTemplate.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.js +128 -158
- package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.js +74 -86
- package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateGallery.js +23 -37
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateGallery.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateIcon.js +10 -13
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateIcon.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateItem.js +37 -40
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateItem.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateProvider.js +14 -14
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateProvider.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/dynamicZoneRenderer.js +66 -93
- package/admin/plugins/fieldRenderers/dynamicZone/dynamicZoneRenderer.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/index.js +2 -4
- package/admin/plugins/fieldRenderers/dynamicZone/useTemplateTypename.js +23 -23
- package/admin/plugins/fieldRenderers/dynamicZone/useTemplateTypename.js.map +1 -1
- package/admin/plugins/fieldRenderers/hidden.js +14 -13
- package/admin/plugins/fieldRenderers/hidden.js.map +1 -1
- package/admin/plugins/fieldRenderers/lexicalText/index.js +5 -3
- package/admin/plugins/fieldRenderers/lexicalText/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInput.js +46 -51
- package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInput.js.map +1 -1
- package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInputs.js +49 -50
- package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInputs.js.map +1 -1
- package/admin/plugins/fieldRenderers/lexicalText/utils.js +2 -3
- package/admin/plugins/fieldRenderers/lexicalText/utils.js.map +1 -1
- package/admin/plugins/fieldRenderers/lexicalText/withHtml.js +7 -8
- package/admin/plugins/fieldRenderers/lexicalText/withHtml.js.map +1 -1
- package/admin/plugins/fieldRenderers/longText/index.js +5 -1
- package/admin/plugins/fieldRenderers/longText/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/longText/longText.js +34 -39
- package/admin/plugins/fieldRenderers/longText/longText.js.map +1 -1
- package/admin/plugins/fieldRenderers/longText/longTexts.js +48 -53
- package/admin/plugins/fieldRenderers/longText/longTexts.js.map +1 -1
- package/admin/plugins/fieldRenderers/number/index.js +5 -1
- package/admin/plugins/fieldRenderers/number/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/number/numberInput.js +34 -39
- package/admin/plugins/fieldRenderers/number/numberInput.js.map +1 -1
- package/admin/plugins/fieldRenderers/number/numberInputs.js +45 -50
- package/admin/plugins/fieldRenderers/number/numberInputs.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/FieldSettings.js +24 -37
- package/admin/plugins/fieldRenderers/object/FieldSettings.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/MultiValueContainer.js +93 -105
- package/admin/plugins/fieldRenderers/object/MultiValueContainer.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/MultiValueItemContainer.js +40 -49
- package/admin/plugins/fieldRenderers/object/MultiValueItemContainer.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/StyledComponents.js +39 -65
- package/admin/plugins/fieldRenderers/object/StyledComponents.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/index.js +8 -3
- package/admin/plugins/fieldRenderers/object/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/multipleObjectsAccordion.js +44 -50
- package/admin/plugins/fieldRenderers/object/multipleObjectsAccordion.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/singleObjectAccordion.js +52 -61
- package/admin/plugins/fieldRenderers/object/singleObjectAccordion.js.map +1 -1
- package/admin/plugins/fieldRenderers/passthrough.js +21 -24
- package/admin/plugins/fieldRenderers/passthrough.js.map +1 -1
- package/admin/plugins/fieldRenderers/radioButtons.js +41 -55
- package/admin/plugins/fieldRenderers/radioButtons.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceField.js +177 -194
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceField.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceSettings.js +21 -19
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceSettings.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedSingleReferenceField.js +150 -166
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedSingleReferenceField.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/Container.js +5 -10
- package/admin/plugins/fieldRenderers/ref/advanced/components/Container.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/Entries.js +20 -24
- package/admin/plugins/fieldRenderers/ref/advanced/components/Entries.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/Entry.js +112 -125
- package/admin/plugins/fieldRenderers/ref/advanced/components/Entry.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/NoEntries.js +6 -10
- package/admin/plugins/fieldRenderers/ref/advanced/components/NoEntries.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/Options.js +53 -60
- package/admin/plugins/fieldRenderers/ref/advanced/components/Options.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/ReferencesDialog.js +103 -141
- package/admin/plugins/fieldRenderers/ref/advanced/components/ReferencesDialog.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/Search.js +17 -24
- package/admin/plugins/fieldRenderers/ref/advanced/components/Search.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/assets/add-circle.js +15 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/assets/add-circle.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/assets/down-arrow.js +15 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/assets/down-arrow.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/assets/link.js +15 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/assets/link.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/assets/search.js +16 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/assets/search.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Box.js +31 -72
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Box.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/CreatedBy.js +9 -13
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/CreatedBy.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Description.js +11 -14
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Description.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Image.js +16 -21
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Image.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/ModelName.js +8 -11
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/ModelName.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/ModifiedBy.js +12 -16
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/ModifiedBy.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Select.js +24 -24
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Select.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Status.js +35 -38
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Status.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/move-down.js +18 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/move-down.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/move-up.js +18 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/move-up.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/remove.js +18 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/remove.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/selected.js +18 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/selected.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/status-draft.js +18 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/status-draft.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/status-published.js +18 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/status-published.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/status-unpublished.js +18 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/status-unpublished.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/view.js +18 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/view.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/elements/ButtonLink.js +58 -66
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/elements/ButtonLink.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/options/OptionsModelList.js +9 -15
- package/admin/plugins/fieldRenderers/ref/advanced/components/options/OptionsModelList.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/options/OptionsModelListItem.js +32 -36
- package/admin/plugins/fieldRenderers/ref/advanced/components/options/OptionsModelListItem.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/detailedReferenceRenderer.js +25 -35
- package/admin/plugins/fieldRenderers/ref/advanced/detailedReferenceRenderer.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/detailedReferencesRenderer.js +26 -38
- package/admin/plugins/fieldRenderers/ref/advanced/detailedReferencesRenderer.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/hooks/graphql.js +4 -5
- package/admin/plugins/fieldRenderers/ref/advanced/hooks/graphql.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/hooks/useEntries.js +128 -134
- package/admin/plugins/fieldRenderers/ref/advanced/hooks/useEntries.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/hooks/useReferences.js +123 -155
- package/admin/plugins/fieldRenderers/ref/advanced/hooks/useReferences.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/index.js +5 -3
- package/admin/plugins/fieldRenderers/ref/advanced/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.js +84 -88
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.js +96 -106
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/EntryStatus.d.ts +2 -2
- package/admin/plugins/fieldRenderers/ref/components/EntryStatus.js +30 -63
- package/admin/plugins/fieldRenderers/ref/components/EntryStatus.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/MissingEntryHelpText.js +19 -35
- package/admin/plugins/fieldRenderers/ref/components/MissingEntryHelpText.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/NewEntryButton.js +13 -28
- package/admin/plugins/fieldRenderers/ref/components/NewEntryButton.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/NewReferencedEntryDialog.js +131 -170
- package/admin/plugins/fieldRenderers/ref/components/NewReferencedEntryDialog.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/createEntryUrl.js +8 -10
- package/admin/plugins/fieldRenderers/ref/components/createEntryUrl.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/dialog/Dialog.d.ts +2 -2
- package/admin/plugins/fieldRenderers/ref/components/dialog/Dialog.js +20 -27
- package/admin/plugins/fieldRenderers/ref/components/dialog/Dialog.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/graphql.js +5 -26
- package/admin/plugins/fieldRenderers/ref/components/graphql.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/helpers.js +30 -36
- package/admin/plugins/fieldRenderers/ref/components/helpers.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/renderItem.js +20 -40
- package/admin/plugins/fieldRenderers/ref/components/renderItem.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/types.js +0 -3
- package/admin/plugins/fieldRenderers/ref/components/useReference.js +132 -180
- package/admin/plugins/fieldRenderers/ref/components/useReference.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/useReferences.js +120 -152
- package/admin/plugins/fieldRenderers/ref/components/useReferences.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.js +23 -47
- package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/index.js +7 -1
- package/admin/plugins/fieldRenderers/ref/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/refInput.js +20 -20
- package/admin/plugins/fieldRenderers/ref/refInput.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/refInputs.js +24 -27
- package/admin/plugins/fieldRenderers/ref/refInputs.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/simple/components/Loader.js +11 -12
- package/admin/plugins/fieldRenderers/ref/simple/components/Loader.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleMultipleRenderer.js +44 -53
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleMultipleRenderer.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleSingleRenderer.js +44 -52
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleSingleRenderer.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/simple/components/useContentModels.js +16 -23
- package/admin/plugins/fieldRenderers/ref/simple/components/useContentModels.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/simple/components/useReferences.js +45 -56
- package/admin/plugins/fieldRenderers/ref/simple/components/useReferences.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/simple/index.js +5 -3
- package/admin/plugins/fieldRenderers/ref/simple/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/simple/simpleMultipleRenderer.js +22 -28
- package/admin/plugins/fieldRenderers/ref/simple/simpleMultipleRenderer.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/simple/simpleSingleRenderer.js +22 -28
- package/admin/plugins/fieldRenderers/ref/simple/simpleSingleRenderer.js.map +1 -1
- package/admin/plugins/fieldRenderers/select.js +37 -51
- package/admin/plugins/fieldRenderers/select.js.map +1 -1
- package/admin/plugins/fieldRenderers/text/index.js +6 -1
- package/admin/plugins/fieldRenderers/text/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/text/tags.js +29 -35
- package/admin/plugins/fieldRenderers/text/tags.js.map +1 -1
- package/admin/plugins/fieldRenderers/text/textInput.js +34 -40
- package/admin/plugins/fieldRenderers/text/textInput.js.map +1 -1
- package/admin/plugins/fieldRenderers/text/textInputs.js +45 -50
- package/admin/plugins/fieldRenderers/text/textInputs.js.map +1 -1
- package/admin/plugins/fieldValidators/date/availableValidators.js +14 -8
- package/admin/plugins/fieldValidators/date/availableValidators.js.map +1 -1
- package/admin/plugins/fieldValidators/date/createDateInputField.js +17 -20
- package/admin/plugins/fieldValidators/date/createDateInputField.js.map +1 -1
- package/admin/plugins/fieldValidators/dateGte.js +38 -50
- package/admin/plugins/fieldValidators/dateGte.js.map +1 -1
- package/admin/plugins/fieldValidators/dateLte.js +38 -50
- package/admin/plugins/fieldValidators/dateLte.js.map +1 -1
- package/admin/plugins/fieldValidators/dynamicZone.js +53 -62
- package/admin/plugins/fieldValidators/dynamicZone.js.map +1 -1
- package/admin/plugins/fieldValidators/gte.js +29 -33
- package/admin/plugins/fieldValidators/gte.js.map +1 -1
- package/admin/plugins/fieldValidators/in.js +28 -32
- package/admin/plugins/fieldValidators/in.js.map +1 -1
- package/admin/plugins/fieldValidators/lte.js +29 -33
- package/admin/plugins/fieldValidators/lte.js.map +1 -1
- package/admin/plugins/fieldValidators/maxLength.js +38 -44
- package/admin/plugins/fieldValidators/maxLength.js.map +1 -1
- package/admin/plugins/fieldValidators/minLength.js +38 -44
- package/admin/plugins/fieldValidators/minLength.js.map +1 -1
- package/admin/plugins/fieldValidators/pattern.js +83 -99
- package/admin/plugins/fieldValidators/pattern.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/email.js +12 -11
- package/admin/plugins/fieldValidators/patternPlugins/email.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/lowerCase.js +12 -11
- package/admin/plugins/fieldValidators/patternPlugins/lowerCase.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/lowerCaseSpace.js +12 -11
- package/admin/plugins/fieldValidators/patternPlugins/lowerCaseSpace.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/upperCase.js +12 -11
- package/admin/plugins/fieldValidators/patternPlugins/upperCase.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/upperCaseSpace.js +12 -11
- package/admin/plugins/fieldValidators/patternPlugins/upperCaseSpace.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/url.js +12 -11
- package/admin/plugins/fieldValidators/patternPlugins/url.js.map +1 -1
- package/admin/plugins/fieldValidators/required.js +11 -12
- package/admin/plugins/fieldValidators/required.js.map +1 -1
- package/admin/plugins/fieldValidators/unique.js +12 -18
- package/admin/plugins/fieldValidators/unique.js.map +1 -1
- package/admin/plugins/fields/PredefinedValuesDynamicFieldset.js +91 -115
- package/admin/plugins/fields/PredefinedValuesDynamicFieldset.js.map +1 -1
- package/admin/plugins/fields/boolean.js +54 -55
- package/admin/plugins/fields/boolean.js.map +1 -1
- package/admin/plugins/fields/dateTime.js +82 -72
- package/admin/plugins/fields/dateTime.js.map +1 -1
- package/admin/plugins/fields/dynamicZone/AddTemplate.js +65 -74
- package/admin/plugins/fields/dynamicZone/AddTemplate.js.map +1 -1
- package/admin/plugins/fields/dynamicZone/DynamicZone.js +44 -43
- package/admin/plugins/fields/dynamicZone/DynamicZone.js.map +1 -1
- package/admin/plugins/fields/dynamicZone/DynamicZoneTemplate.js +88 -88
- package/admin/plugins/fields/dynamicZone/DynamicZoneTemplate.js.map +1 -1
- package/admin/plugins/fields/dynamicZone/TemplateDialog.js +112 -122
- package/admin/plugins/fields/dynamicZone/TemplateDialog.js.map +1 -1
- package/admin/plugins/fields/dynamicZone/commonValidators.js +27 -19
- package/admin/plugins/fields/dynamicZone/commonValidators.js.map +1 -1
- package/admin/plugins/fields/dynamicZone.js +64 -65
- package/admin/plugins/fields/dynamicZone.js.map +1 -1
- package/admin/plugins/fields/icons/ballot_black_24dp.js +19 -0
- package/admin/plugins/fields/icons/ballot_black_24dp.js.map +1 -0
- package/admin/plugins/fields/icons/dropdown-icon.js +36 -0
- package/admin/plugins/fields/icons/dropdown-icon.js.map +1 -0
- package/admin/plugins/fields/icons/notes-black-24px.js +19 -0
- package/admin/plugins/fields/icons/notes-black-24px.js.map +1 -0
- package/admin/plugins/fields/icons/round-check_box-24px.js +19 -0
- package/admin/plugins/fields/icons/round-check_box-24px.js.map +1 -0
- package/admin/plugins/fields/icons/round-link-24px.js +19 -0
- package/admin/plugins/fields/icons/round-link-24px.js.map +1 -0
- package/admin/plugins/fields/icons/round-looks_3-24px.js +19 -0
- package/admin/plugins/fields/icons/round-looks_3-24px.js.map +1 -0
- package/admin/plugins/fields/icons/round-notes.js +19 -0
- package/admin/plugins/fields/icons/round-notes.js.map +1 -0
- package/admin/plugins/fields/icons/round-radio_button_checked-24px.js +24 -0
- package/admin/plugins/fields/icons/round-radio_button_checked-24px.js.map +1 -0
- package/admin/plugins/fields/icons/round-short_text.js +19 -0
- package/admin/plugins/fields/icons/round-short_text.js.map +1 -0
- package/admin/plugins/fields/icons/round-subject.js +19 -0
- package/admin/plugins/fields/icons/round-subject.js.map +1 -0
- package/admin/plugins/fields/icons/round-text_fields-24px.js +19 -0
- package/admin/plugins/fields/icons/round-text_fields-24px.js.map +1 -0
- package/admin/plugins/fields/icons/round-visibility_off-24px.js +19 -0
- package/admin/plugins/fields/icons/round-visibility_off-24px.js.map +1 -0
- package/admin/plugins/fields/icons/round_insert_drive_file-24px.js +19 -0
- package/admin/plugins/fields/icons/round_insert_drive_file-24px.js.map +1 -0
- package/admin/plugins/fields/icons/schedule-black-24px.js +19 -0
- package/admin/plugins/fields/icons/schedule-black-24px.js.map +1 -0
- package/admin/plugins/fields/icons/title-black-24px.js +19 -0
- package/admin/plugins/fields/icons/title-black-24px.js.map +1 -0
- package/admin/plugins/fields/icons/toggle_on-black-24px.js +19 -0
- package/admin/plugins/fields/icons/toggle_on-black-24px.js.map +1 -0
- package/admin/plugins/fields/json.js +27 -26
- package/admin/plugins/fields/json.js.map +1 -1
- package/admin/plugins/fields/longText.js +40 -35
- package/admin/plugins/fields/longText.js.map +1 -1
- package/admin/plugins/fields/number.js +54 -47
- package/admin/plugins/fields/number.js.map +1 -1
- package/admin/plugins/fields/object/ObjectFields.js +22 -29
- package/admin/plugins/fields/object/ObjectFields.js.map +1 -1
- package/admin/plugins/fields/object.js +40 -43
- package/admin/plugins/fields/object.js.map +1 -1
- package/admin/plugins/fields/ref/graphql.js +3 -2
- package/admin/plugins/fields/ref/graphql.js.map +1 -1
- package/admin/plugins/fields/ref/renderInfo.js +42 -65
- package/admin/plugins/fields/ref/renderInfo.js.map +1 -1
- package/admin/plugins/fields/ref.js +89 -102
- package/admin/plugins/fields/ref.js.map +1 -1
- package/admin/plugins/fields/richText.js +34 -33
- package/admin/plugins/fields/richText.js.map +1 -1
- package/admin/plugins/fields/searchableJson.js +27 -26
- package/admin/plugins/fields/searchableJson.js.map +1 -1
- package/admin/plugins/fields/text.js +46 -39
- package/admin/plugins/fields/text.js.map +1 -1
- package/admin/plugins/fields/ui/TabsLayoutEditor.js +414 -447
- package/admin/plugins/fields/ui/TabsLayoutEditor.js.map +1 -1
- package/admin/plugins/fields/ui/alert.js +142 -148
- package/admin/plugins/fields/ui/alert.js.map +1 -1
- package/admin/plugins/fields/ui/index.js +0 -2
- package/admin/plugins/fields/ui/separator.js +123 -134
- package/admin/plugins/fields/ui/separator.js.map +1 -1
- package/admin/plugins/fields/ui/tabs.js +53 -77
- package/admin/plugins/fields/ui/tabs.js.map +1 -1
- package/admin/plugins/getObjectId.js +8 -7
- package/admin/plugins/getObjectId.js.map +1 -1
- package/admin/plugins/icons.js +21 -24
- package/admin/plugins/icons.js.map +1 -1
- package/admin/plugins/index.js +9 -2
- package/admin/plugins/index.js.map +1 -1
- package/admin/plugins/permissionRenderer/CmsPermissions.js +205 -256
- package/admin/plugins/permissionRenderer/CmsPermissions.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/ContentEntryPermission.js +89 -80
- package/admin/plugins/permissionRenderer/components/ContentEntryPermission.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/ContentModelGroupPermission.js +78 -69
- package/admin/plugins/permissionRenderer/components/ContentModelGroupPermission.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/ContentModelList.js +21 -31
- package/admin/plugins/permissionRenderer/components/ContentModelList.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/ContentModelPermission.js +89 -82
- package/admin/plugins/permissionRenderer/components/ContentModelPermission.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/types.js +0 -3
- package/admin/plugins/permissionRenderer/components/useCmsData.js +13 -23
- package/admin/plugins/permissionRenderer/components/useCmsData.js.map +1 -1
- package/admin/plugins/permissionRenderer/index.js +11 -12
- package/admin/plugins/permissionRenderer/index.js.map +1 -1
- package/admin/plugins/transformers/dateTransformer.js +81 -105
- package/admin/plugins/transformers/dateTransformer.js.map +1 -1
- package/admin/plugins/transformers/dynamicZoneTransformer.js +16 -20
- package/admin/plugins/transformers/dynamicZoneTransformer.js.map +1 -1
- package/admin/plugins/transformers/index.js +7 -1
- package/admin/plugins/transformers/index.js.map +1 -1
- package/admin/plugins/transformers/numberTransformer.js +13 -17
- package/admin/plugins/transformers/numberTransformer.js.map +1 -1
- package/admin/plugins/transformers/objectTransformer.js +11 -12
- package/admin/plugins/transformers/objectTransformer.js.map +1 -1
- package/admin/views/contentEntries/ContentEntries.js +11 -14
- package/admin/views/contentEntries/ContentEntries.js.map +1 -1
- package/admin/views/contentEntries/ContentEntriesContainer.js +29 -44
- package/admin/views/contentEntries/ContentEntriesContainer.js.map +1 -1
- package/admin/views/contentEntries/ContentEntriesContext.js +14 -19
- package/admin/views/contentEntries/ContentEntriesContext.js.map +1 -1
- package/admin/views/contentEntries/ContentEntriesModule.js +106 -112
- package/admin/views/contentEntries/ContentEntriesModule.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.d.ts +2 -0
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js +229 -272
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/FullScreenContentEntry/FullScreenContentEntry.js +31 -45
- package/admin/views/contentEntries/ContentEntry/FullScreenContentEntry/FullScreenContentEntry.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/FullScreenContentEntry/FullScreenContentEntry.styled.js +32 -52
- package/admin/views/contentEntries/ContentEntry/FullScreenContentEntry/FullScreenContentEntry.styled.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/FullScreenContentEntry/FullScreenContentEntryHeaderLeft.js +36 -44
- package/admin/views/contentEntries/ContentEntry/FullScreenContentEntry/FullScreenContentEntryHeaderLeft.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/FullScreenContentEntry/RevisionListDrawer/RevisionListDrawer.js +25 -22
- package/admin/views/contentEntries/ContentEntry/FullScreenContentEntry/RevisionListDrawer/RevisionListDrawer.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/FullScreenContentEntry/RevisionListDrawer/index.js +0 -2
- package/admin/views/contentEntries/ContentEntry/FullScreenContentEntry/index.js +0 -2
- package/admin/views/contentEntries/ContentEntry/FullScreenContentEntry/useFullScreenContentEntry.js +4 -6
- package/admin/views/contentEntries/ContentEntry/FullScreenContentEntry/useFullScreenContentEntry.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/RevisionsList/PublishEntryRevisionListItem.js +4 -5
- package/admin/views/contentEntries/ContentEntry/RevisionsList/PublishEntryRevisionListItem.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/RevisionsList/RevisionListItem.js +122 -120
- package/admin/views/contentEntries/ContentEntry/RevisionsList/RevisionListItem.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/RevisionsList/RevisionsList.d.ts +7 -1
- package/admin/views/contentEntries/ContentEntry/RevisionsList/RevisionsList.js +14 -18
- package/admin/views/contentEntries/ContentEntry/RevisionsList/RevisionsList.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/RevisionsList/useRevision.js +79 -123
- package/admin/views/contentEntries/ContentEntry/RevisionsList/useRevision.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/SingletonContentEntry.js +27 -39
- package/admin/views/contentEntries/ContentEntry/SingletonContentEntry.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/SingletonContentEntryContext.js +42 -59
- package/admin/views/contentEntries/ContentEntry/SingletonContentEntryContext.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/useMockRecords.js +2 -3
- package/admin/views/contentEntries/ContentEntry/useMockRecords.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry.js +50 -50
- package/admin/views/contentEntries/ContentEntry.js.map +1 -1
- package/admin/views/contentEntries/SingletonContentEntryModule.js +12 -19
- package/admin/views/contentEntries/SingletonContentEntryModule.js.map +1 -1
- package/admin/views/contentEntries/Table/Main.js +90 -108
- package/admin/views/contentEntries/Table/Main.js.map +1 -1
- package/admin/views/contentEntries/Table/Sidebar.js +5 -6
- package/admin/views/contentEntries/Table/Sidebar.js.map +1 -1
- package/admin/views/contentEntries/Table/index.js +44 -52
- package/admin/views/contentEntries/Table/index.js.map +1 -1
- package/admin/views/contentEntries/ValidationIndicators.js +137 -56
- package/admin/views/contentEntries/ValidationIndicators.js.map +1 -1
- package/admin/views/contentEntries/hooks/index.js +0 -2
- package/admin/views/contentEntries/hooks/useContentEntries.js +5 -6
- package/admin/views/contentEntries/hooks/useContentEntries.js.map +1 -1
- package/admin/views/contentEntries/hooks/useContentEntriesList.d.ts +3 -3
- package/admin/views/contentEntries/hooks/useContentEntriesList.js +122 -165
- package/admin/views/contentEntries/hooks/useContentEntriesList.js.map +1 -1
- package/admin/views/contentEntries/hooks/useContentEntry.js +5 -6
- package/admin/views/contentEntries/hooks/useContentEntry.js.map +1 -1
- package/admin/views/contentEntries/hooks/useMoveContentEntryToFolder.js +24 -31
- package/admin/views/contentEntries/hooks/useMoveContentEntryToFolder.js.map +1 -1
- package/admin/views/contentEntries/hooks/useSingletonContentEntry.js +5 -6
- package/admin/views/contentEntries/hooks/useSingletonContentEntry.js.map +1 -1
- package/admin/views/contentModelGroups/ContentModelGroups.js +25 -30
- package/admin/views/contentModelGroups/ContentModelGroups.js.map +1 -1
- package/admin/views/contentModelGroups/ContentModelGroupsDataList.js +155 -175
- package/admin/views/contentModelGroups/ContentModelGroupsDataList.js.map +1 -1
- package/admin/views/contentModelGroups/ContentModelGroupsForm.js +190 -226
- package/admin/views/contentModelGroups/ContentModelGroupsForm.js.map +1 -1
- package/admin/views/contentModelGroups/graphql.js +7 -33
- package/admin/views/contentModelGroups/graphql.js.map +1 -1
- package/admin/views/contentModels/CloneContentModelDialog.d.ts +1 -2
- package/admin/views/contentModels/CloneContentModelDialog.js +168 -174
- package/admin/views/contentModels/CloneContentModelDialog.js.map +1 -1
- package/admin/views/contentModels/ContentModelEditor.js +14 -17
- package/admin/views/contentModels/ContentModelEditor.js.map +1 -1
- package/admin/views/contentModels/ContentModels.js +53 -57
- package/admin/views/contentModels/ContentModels.js.map +1 -1
- package/admin/views/contentModels/ContentModelsDataList.js +227 -253
- package/admin/views/contentModels/ContentModelsDataList.js.map +1 -1
- package/admin/views/contentModels/NewContentModelDialog.js +189 -211
- package/admin/views/contentModels/NewContentModelDialog.js.map +1 -1
- package/admin/views/contentModels/OptionsMenu.js +21 -39
- package/admin/views/contentModels/OptionsMenu.js.map +1 -1
- package/admin/views/contentModels/cache.js +94 -147
- package/admin/views/contentModels/cache.js.map +1 -1
- package/admin/views/contentModels/exporting/download.js +19 -20
- package/admin/views/contentModels/exporting/download.js.map +1 -1
- package/admin/views/contentModels/exporting/graphql.js +3 -2
- package/admin/views/contentModels/exporting/graphql.js.map +1 -1
- package/admin/views/contentModels/exporting/runExport.js +48 -53
- package/admin/views/contentModels/exporting/runExport.js.map +1 -1
- package/admin/views/contentModels/exporting/useModelExport.js +25 -27
- package/admin/views/contentModels/exporting/useModelExport.js.map +1 -1
- package/admin/views/contentModels/fullDelete/FullyDeleteModelDialog.js +77 -91
- package/admin/views/contentModels/fullDelete/FullyDeleteModelDialog.js.map +1 -1
- package/admin/views/contentModels/fullDelete/ModelIsBeingDeleted.js +52 -55
- package/admin/views/contentModels/fullDelete/ModelIsBeingDeleted.js.map +1 -1
- package/admin/views/contentModels/fullDelete/dialog/Confirmation.js +24 -27
- package/admin/views/contentModels/fullDelete/dialog/Confirmation.js.map +1 -1
- package/admin/views/contentModels/fullDelete/dialog/Content.js +17 -26
- package/admin/views/contentModels/fullDelete/dialog/Content.js.map +1 -1
- package/admin/views/contentModels/fullDelete/dialog/Information.js +9 -10
- package/admin/views/contentModels/fullDelete/dialog/Information.js.map +1 -1
- package/admin/views/contentModels/fullDelete/dialog/Processed.js +11 -12
- package/admin/views/contentModels/fullDelete/dialog/Processed.js.map +1 -1
- package/admin/views/contentModels/fullDelete/dialog/process.js +44 -57
- package/admin/views/contentModels/fullDelete/dialog/process.js.map +1 -1
- package/admin/views/contentModels/fullDelete/dialog/state.js +94 -96
- package/admin/views/contentModels/fullDelete/dialog/state.js.map +1 -1
- package/admin/views/contentModels/fullDelete/dialog/validationValue.js +2 -3
- package/admin/views/contentModels/fullDelete/dialog/validationValue.js.map +1 -1
- package/admin/views/contentModels/fullDelete/types.js +8 -7
- package/admin/views/contentModels/fullDelete/types.js.map +1 -1
- package/admin/views/contentModels/fullDelete/useCancelDelete.js +33 -46
- package/admin/views/contentModels/fullDelete/useCancelDelete.js.map +1 -1
- package/admin/views/contentModels/helpers/apiNameValidator.js +36 -60
- package/admin/views/contentModels/helpers/apiNameValidator.js.map +1 -1
- package/admin/views/contentModels/helpers/nameValidator.js +17 -25
- package/admin/views/contentModels/helpers/nameValidator.js.map +1 -1
- package/admin/views/contentModels/importing/ImportContentModelsDialog.js +31 -38
- package/admin/views/contentModels/importing/ImportContentModelsDialog.js.map +1 -1
- package/admin/views/contentModels/importing/ImportContext.js +343 -390
- package/admin/views/contentModels/importing/ImportContext.js.map +1 -1
- package/admin/views/contentModels/importing/components/DataList.js +13 -21
- package/admin/views/contentModels/importing/components/DataList.js.map +1 -1
- package/admin/views/contentModels/importing/components/DataListGroup.js +17 -42
- package/admin/views/contentModels/importing/components/DataListGroup.js.map +1 -1
- package/admin/views/contentModels/importing/components/Errors.js +28 -41
- package/admin/views/contentModels/importing/components/Errors.js.map +1 -1
- package/admin/views/contentModels/importing/components/FileUpload.js +28 -40
- package/admin/views/contentModels/importing/components/FileUpload.js.map +1 -1
- package/admin/views/contentModels/importing/components/ImportButton.js +9 -12
- package/admin/views/contentModels/importing/components/ImportButton.js.map +1 -1
- package/admin/views/contentModels/importing/components/Model/DataListInstructions.js +9 -20
- package/admin/views/contentModels/importing/components/Model/DataListInstructions.js.map +1 -1
- package/admin/views/contentModels/importing/components/Model/DataListModelItem.js +81 -161
- package/admin/views/contentModels/importing/components/Model/DataListModelItem.js.map +1 -1
- package/admin/views/contentModels/importing/components/Model/DataListModelItemError.js +40 -71
- package/admin/views/contentModels/importing/components/Model/DataListModelItemError.js.map +1 -1
- package/admin/views/contentModels/importing/components/Model/DataListModelItemInfo.js +17 -31
- package/admin/views/contentModels/importing/components/Model/DataListModelItemInfo.js.map +1 -1
- package/admin/views/contentModels/importing/components/Model/DataListModels.js +16 -30
- package/admin/views/contentModels/importing/components/Model/DataListModels.js.map +1 -1
- package/admin/views/contentModels/importing/components/Model/index.js +0 -2
- package/admin/views/contentModels/importing/graphql.js +5 -4
- package/admin/views/contentModels/importing/graphql.js.map +1 -1
- package/admin/views/contentModels/importing/types.js +7 -6
- package/admin/views/contentModels/importing/types.js.map +1 -1
- package/admin/views/contentModels/importing/useImport.js +6 -7
- package/admin/views/contentModels/importing/useImport.js.map +1 -1
- package/admin/views/contentModels/types.js +0 -3
- package/admin/views/utils.js +9 -7
- package/admin/views/utils.js.map +1 -1
- package/admin/viewsGraphql.js +12 -46
- package/admin/viewsGraphql.js.map +1 -1
- package/allPlugins.js +86 -38
- package/allPlugins.js.map +1 -1
- package/domain/permissionsSchema.js +51 -30
- package/domain/permissionsSchema.js.map +1 -1
- package/exports/admin/cms/entry/editor.js +0 -3
- package/exports/admin/cms/entry/list.js +0 -2
- package/exports/admin/cms/field-renderers/common.js +1 -4
- package/exports/admin/cms/field-renderers/dynamic-zone.js +1 -9
- package/exports/admin/cms/field-renderers/object.js +0 -2
- package/exports/admin/cms/lexical.js +1 -18
- package/exports/admin/cms/model.js +0 -2
- package/exports/admin/cms.js +1 -5
- package/features/ListCache.d.ts +2 -29
- package/features/ListCache.js +1 -43
- package/features/contentEntry/events/EntryAfterCreateEvent.js +8 -5
- package/features/contentEntry/events/EntryAfterCreateEvent.js.map +1 -1
- package/features/contentEntry/events/EntryAfterDeleteEvent.js +8 -5
- package/features/contentEntry/events/EntryAfterDeleteEvent.js.map +1 -1
- package/features/contentEntry/events/EntryAfterUpdateEvent.js +8 -5
- package/features/contentEntry/events/EntryAfterUpdateEvent.js.map +1 -1
- package/features/contentEntry/events/abstractions.js +4 -3
- package/features/contentEntry/events/abstractions.js.map +1 -1
- package/features/contentEntry/events/index.js +1 -3
- package/features/graphQLClient/CmsGraphQLClient.js +17 -13
- package/features/graphQLClient/CmsGraphQLClient.js.map +1 -1
- package/features/graphQLClient/abstractions.js +2 -1
- package/features/graphQLClient/abstractions.js.map +1 -1
- package/features/graphQLClient/feature.js +11 -10
- package/features/graphQLClient/feature.js.map +1 -1
- package/features/graphQLClient/index.js +0 -2
- package/features/modelGroup/abstractions.d.ts +1 -1
- package/features/modelGroup/abstractions.js +2 -1
- package/features/modelGroup/abstractions.js.map +1 -1
- package/features/modelGroup/createModelGroup/CreateModelGroupGateway.js +22 -24
- package/features/modelGroup/createModelGroup/CreateModelGroupGateway.js.map +1 -1
- package/features/modelGroup/createModelGroup/CreateModelGroupRepository.js +19 -13
- package/features/modelGroup/createModelGroup/CreateModelGroupRepository.js.map +1 -1
- package/features/modelGroup/createModelGroup/CreateModelGroupUseCase.js +13 -10
- package/features/modelGroup/createModelGroup/CreateModelGroupUseCase.js.map +1 -1
- package/features/modelGroup/createModelGroup/abstractions.js +4 -12
- package/features/modelGroup/createModelGroup/abstractions.js.map +1 -1
- package/features/modelGroup/createModelGroup/feature.js +15 -14
- package/features/modelGroup/createModelGroup/feature.js.map +1 -1
- package/features/modelGroup/deleteModelGroup/DeleteModelGroupGateway.js +21 -23
- package/features/modelGroup/deleteModelGroup/DeleteModelGroupGateway.js.map +1 -1
- package/features/modelGroup/deleteModelGroup/DeleteModelGroupRepository.js +16 -12
- package/features/modelGroup/deleteModelGroup/DeleteModelGroupRepository.js.map +1 -1
- package/features/modelGroup/deleteModelGroup/DeleteModelGroupUseCase.js +13 -10
- package/features/modelGroup/deleteModelGroup/DeleteModelGroupUseCase.js.map +1 -1
- package/features/modelGroup/deleteModelGroup/abstractions.js +4 -12
- package/features/modelGroup/deleteModelGroup/abstractions.js.map +1 -1
- package/features/modelGroup/deleteModelGroup/feature.js +15 -14
- package/features/modelGroup/deleteModelGroup/feature.js.map +1 -1
- package/features/modelGroup/feature.js +11 -10
- package/features/modelGroup/feature.js.map +1 -1
- package/features/modelGroup/getModelGroup/GetModelGroupGateway.js +22 -24
- package/features/modelGroup/getModelGroup/GetModelGroupGateway.js.map +1 -1
- package/features/modelGroup/getModelGroup/GetModelGroupRepository.js +19 -13
- package/features/modelGroup/getModelGroup/GetModelGroupRepository.js.map +1 -1
- package/features/modelGroup/getModelGroup/GetModelGroupUseCase.js +13 -10
- package/features/modelGroup/getModelGroup/GetModelGroupUseCase.js.map +1 -1
- package/features/modelGroup/getModelGroup/abstractions.js +4 -12
- package/features/modelGroup/getModelGroup/abstractions.js.map +1 -1
- package/features/modelGroup/getModelGroup/feature.js +15 -14
- package/features/modelGroup/getModelGroup/feature.js.map +1 -1
- package/features/modelGroup/listModelGroups/ListModelGroupsGateway.js +19 -21
- package/features/modelGroup/listModelGroups/ListModelGroupsGateway.js.map +1 -1
- package/features/modelGroup/listModelGroups/ListModelGroupsRepository.js +18 -16
- package/features/modelGroup/listModelGroups/ListModelGroupsRepository.js.map +1 -1
- package/features/modelGroup/listModelGroups/ListModelGroupsUseCase.js +13 -10
- package/features/modelGroup/listModelGroups/ListModelGroupsUseCase.js.map +1 -1
- package/features/modelGroup/listModelGroups/abstractions.js +4 -12
- package/features/modelGroup/listModelGroups/abstractions.js.map +1 -1
- package/features/modelGroup/listModelGroups/feature.js +15 -14
- package/features/modelGroup/listModelGroups/feature.js.map +1 -1
- package/features/modelGroup/updateModelGroup/UpdateModelGroupGateway.js +23 -25
- package/features/modelGroup/updateModelGroup/UpdateModelGroupGateway.js.map +1 -1
- package/features/modelGroup/updateModelGroup/UpdateModelGroupRepository.js +24 -25
- package/features/modelGroup/updateModelGroup/UpdateModelGroupRepository.js.map +1 -1
- package/features/modelGroup/updateModelGroup/UpdateModelGroupUseCase.js +13 -10
- package/features/modelGroup/updateModelGroup/UpdateModelGroupUseCase.js.map +1 -1
- package/features/modelGroup/updateModelGroup/abstractions.js +4 -12
- package/features/modelGroup/updateModelGroup/abstractions.js.map +1 -1
- package/features/modelGroup/updateModelGroup/feature.js +15 -14
- package/features/modelGroup/updateModelGroup/feature.js.map +1 -1
- package/features/permissions/abstractions.js +2 -1
- package/features/permissions/abstractions.js.map +1 -1
- package/features/permissions/feature.js +2 -1
- package/features/permissions/feature.js.map +1 -1
- package/index.js +9 -9
- package/index.js.map +1 -1
- package/legacyPluginAdapters/CmsContentFormRenderer.js +11 -10
- package/legacyPluginAdapters/CmsContentFormRenderer.js.map +1 -1
- package/legacyPluginAdapters/CmsModelFieldRenderer.js +10 -9
- package/legacyPluginAdapters/CmsModelFieldRenderer.js.map +1 -1
- package/legacyPluginAdapters/CmsModelFieldType.js +10 -9
- package/legacyPluginAdapters/CmsModelFieldType.js.map +1 -1
- package/legacyPluginAdapters/CmsModelFieldValidator.js +10 -9
- package/legacyPluginAdapters/CmsModelFieldValidator.js.map +1 -1
- package/legacyPluginAdapters/CmsModelLayoutFieldRenderer.js +11 -10
- package/legacyPluginAdapters/CmsModelLayoutFieldRenderer.js.map +1 -1
- package/legacyPluginAdapters/CmsModelLayoutFieldType.js +10 -9
- package/legacyPluginAdapters/CmsModelLayoutFieldType.js.map +1 -1
- package/package.json +26 -29
- package/plugins/CmsContentFormRendererPlugin.js +4 -3
- package/plugins/CmsContentFormRendererPlugin.js.map +1 -1
- package/plugins/index.js +0 -2
- package/presentation/modelGroup/hooks/index.js +0 -2
- package/presentation/modelGroup/hooks/useCreateModelGroup.js +6 -7
- package/presentation/modelGroup/hooks/useCreateModelGroup.js.map +1 -1
- package/presentation/modelGroup/hooks/useDeleteModelGroup.js +6 -7
- package/presentation/modelGroup/hooks/useDeleteModelGroup.js.map +1 -1
- package/presentation/modelGroup/hooks/useGetModelGroup.js +6 -7
- package/presentation/modelGroup/hooks/useGetModelGroup.js.map +1 -1
- package/presentation/modelGroup/hooks/useListModelGroups.js +9 -10
- package/presentation/modelGroup/hooks/useListModelGroups.js.map +1 -1
- package/presentation/modelGroup/hooks/useUpdateModelGroup.js +6 -7
- package/presentation/modelGroup/hooks/useUpdateModelGroup.js.map +1 -1
- package/routes.js +38 -43
- package/routes.js.map +1 -1
- package/static/svg/SecureRouteError.e8b15981.svg +1 -0
- package/static/svg/add-circle.e3d74594.svg +1 -0
- package/static/svg/add.23223716.svg +5 -0
- package/static/svg/arrow_forward-24px.9bc970d4.svg +1 -0
- package/static/svg/ballot_black_24dp.f73e2e82.svg +1 -0
- package/static/svg/baseline-autorenew-24px.b851349f.svg +4 -0
- package/static/svg/beenhere.f0a9cdbb.svg +1 -0
- package/static/svg/call_split-24px.4485022a.svg +4 -0
- package/static/svg/clone.0afc9a4a.svg +14 -0
- package/static/svg/close.187f2c20.svg +13 -0
- package/static/svg/delete.b574109c.svg +12 -0
- package/static/svg/devices_other-black-24px.1c6732ba.svg +1 -0
- package/static/svg/done-24px.35a02c84.svg +1 -0
- package/static/svg/down-arrow.145c8d7d.svg +1 -0
- package/static/svg/draft.2e3c269f.svg +3 -0
- package/static/svg/dropdown-icon.b7d965fb.svg +16 -0
- package/static/svg/edit.1b515b45.svg +17 -0
- package/static/svg/emoji_people-24px.68344715.svg +1 -0
- package/static/svg/gesture.8eca6347.svg +1 -0
- package/static/svg/help_outline.84de19a8.svg +1 -0
- package/static/svg/how_to_vote-24px.3d42fbcf.svg +4 -0
- package/static/svg/info.8d4b78f2.svg +1 -0
- package/static/svg/link.3a8c598d.svg +1 -0
- package/static/svg/lock.e3e5d6b4.svg +1 -0
- package/static/svg/more_vert.68d41b07.svg +12 -0
- package/static/svg/move-down.6844e6c6.svg +3 -0
- package/static/svg/move-up.0c20aff0.svg +3 -0
- package/static/svg/notes-black-24px.6bf6c4e4.svg +1 -0
- package/static/svg/publish.94bff016.svg +1 -0
- package/static/svg/published.3c28c3d9.svg +3 -0
- package/static/svg/remove.51bf2460.svg +3 -0
- package/static/svg/round-arrow_drop_down-24px.53e4d276.svg +12 -0
- package/static/svg/round-assignment-24px.2a87eab8.svg +4 -0
- package/static/svg/round-check_box-24px.83bd31d3.svg +4 -0
- package/static/svg/round-drag_indicator-24px.cab1e300.svg +4 -0
- package/static/svg/round-link-24px.d5303917.svg +1 -0
- package/static/svg/round-looks_3-24px.3758bbb1.svg +4 -0
- package/static/svg/round-notes.6bf6c4e4.svg +1 -0
- package/static/svg/round-radio_button_checked-24px.0711de0a.svg +5 -0
- package/static/svg/round-settings-24px.77b44bea.svg +1 -0
- package/static/svg/round-short_text.26e207b7.svg +1 -0
- package/static/svg/round-subject.ea39f0d9.svg +1 -0
- package/static/svg/round-text_fields-24px.00a40bc7.svg +4 -0
- package/static/svg/round-translate-24px.a2341ad7.svg +4 -0
- package/static/svg/round-visibility_off-24px.954aa025.svg +4 -0
- package/static/svg/round_insert_drive_file-24px.3faa1e29.svg +1 -0
- package/static/svg/rule-24px.490519b3.svg +1 -0
- package/static/svg/schedule-black-24px.f87fab07.svg +1 -0
- package/static/svg/search.e8c000e9.svg +1 -0
- package/static/svg/selected.388fbbbb.svg +3 -0
- package/static/svg/status-draft.067687bc.svg +3 -0
- package/static/svg/status-published.207fdc94.svg +3 -0
- package/static/svg/status-unpublished.9cf24b8c.svg +3 -0
- package/static/svg/title-24px.dc61882c.svg +1 -0
- package/static/svg/title-black-24px.17f27b45.svg +1 -0
- package/static/svg/toggle_on-black-24px.1d1e8da4.svg +1 -0
- package/static/svg/unpublish.67520c5f.svg +4 -0
- package/static/svg/unpublished.54fc3f65.svg +3 -0
- package/static/svg/view.4b2c6624.svg +3 -0
- package/static/svg/view_list.c4c9d31d.svg +1 -0
- package/static/svg/visibility.2b9cb52f.svg +16 -0
- package/types.js +1 -7
- package/utils/CmsModelFieldValidatorConfigAdapter.js +37 -38
- package/utils/CmsModelFieldValidatorConfigAdapter.js.map +1 -1
- package/utils/createTypeName.js +2 -3
- package/utils/createTypeName.js.map +1 -1
- package/utils/createValidators.js +0 -2
- package/utils/getFetchPolicy.js +4 -7
- package/utils/getFetchPolicy.js.map +1 -1
- package/utils/getModelTitleFieldId.js +4 -5
- package/utils/getModelTitleFieldId.js.map +1 -1
- package/utils/normalizeIcon.js +8 -7
- package/utils/normalizeIcon.js.map +1 -1
- package/admin/components/ContentEntries/BottomInfoBar/index.js.map +0 -1
- package/admin/components/ContentEntries/BulkActions/index.js.map +0 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/adapters/EntriesGatewayInterface.js.map +0 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/adapters/entries.types.js.map +0 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/adapters/index.js.map +0 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/components/index.js.map +0 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/domain/index.js.map +0 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/index.js.map +0 -1
- package/admin/components/ContentEntries/Filters/index.js.map +0 -1
- package/admin/components/ContentEntries/Header/ButtonFilters/index.js.map +0 -1
- package/admin/components/ContentEntries/Header/ButtonRefresh/index.js.map +0 -1
- package/admin/components/ContentEntries/Header/ButtonsCreate/index.js.map +0 -1
- package/admin/components/ContentEntries/Header/Title/index.js.map +0 -1
- package/admin/components/ContentEntries/Header/index.js.map +0 -1
- package/admin/components/ContentEntries/LoadMoreButton/index.js.map +0 -1
- package/admin/components/ContentEntries/LoadingContentModel/index.js.map +0 -1
- package/admin/components/ContentEntries/SidebarContent/index.js.map +0 -1
- package/admin/components/ContentEntries/SidebarFooter/index.js.map +0 -1
- package/admin/components/ContentEntries/SidebarHeader/index.js.map +0 -1
- package/admin/components/ContentEntries/Table/Actions/index.js.map +0 -1
- package/admin/components/ContentEntries/Table/Cells/index.js.map +0 -1
- package/admin/components/ContentEntries/TrashBin/adapters/index.js.map +0 -1
- package/admin/components/ContentEntries/TrashBin/components/index.js.map +0 -1
- package/admin/components/ContentEntries/TrashBin/index.js.map +0 -1
- package/admin/components/ContentEntryForm/FieldElement.js.map +0 -1
- package/admin/components/ContentEntryForm/Fields.js.map +0 -1
- package/admin/components/ContentEntryForm/Header/ContentFormOptionsMenu/index.js.map +0 -1
- package/admin/components/ContentEntryForm/Header/DeleteEntry/index.js.map +0 -1
- package/admin/components/ContentEntryForm/Header/RevisionSelector/index.js.map +0 -1
- package/admin/components/ContentEntryForm/Header/SaveAndPublishContent/index.js.map +0 -1
- package/admin/components/ContentEntryForm/Header/SaveContent/index.js.map +0 -1
- package/admin/components/ContentEntryForm/Header/ShowRevisionsList/index.js.map +0 -1
- package/admin/components/ContentEntryForm/Header/index.js.map +0 -1
- package/admin/components/ContentEntryForm/Label.js.map +0 -1
- package/admin/components/ContentEntryForm/SingletonHeader/index.js.map +0 -1
- package/admin/components/ContentEntryForm/createValidationContainer.js.map +0 -1
- package/admin/components/ContentEntryForm/useBind.js.map +0 -1
- package/admin/components/ContentEntryForm/useRenderPlugins.js.map +0 -1
- package/admin/components/ContentModelEditor/ModelIsBeingDeletedError/index.js.map +0 -1
- package/admin/components/ContentModelEditor/index.js.map +0 -1
- package/admin/components/DropZone/index.js.map +0 -1
- package/admin/components/FieldEditor/EditFieldDialog/RulesEditor/index.js.map +0 -1
- package/admin/components/FieldEditor/EditFieldDialog/ValidationTab/index.js.map +0 -1
- package/admin/components/FieldEditor/index.js.map +0 -1
- package/admin/components/FieldEditor/utils/index.js.map +0 -1
- package/admin/components/ModelFieldProvider/index.js.map +0 -1
- package/admin/components/ModelProvider/index.js.map +0 -1
- package/admin/config/contentEntries/editor/index.js.map +0 -1
- package/admin/config/contentEntries/index.js.map +0 -1
- package/admin/config/contentEntries/list/index.js.map +0 -1
- package/admin/hooks/index.js.map +0 -1
- package/admin/plugins/editor/defaultBar/FormSettings/index.js.map +0 -1
- package/admin/plugins/editor/defaultBar/Name/index.js.map +0 -1
- package/admin/plugins/fieldRenderers/dynamicZone/index.js.map +0 -1
- package/admin/plugins/fieldRenderers/ref/components/types.js.map +0 -1
- package/admin/plugins/fields/ui/index.js.map +0 -1
- package/admin/plugins/permissionRenderer/components/types.js.map +0 -1
- package/admin/views/contentEntries/ContentEntry/FullScreenContentEntry/RevisionListDrawer/index.js.map +0 -1
- package/admin/views/contentEntries/ContentEntry/FullScreenContentEntry/index.js.map +0 -1
- package/admin/views/contentEntries/hooks/index.js.map +0 -1
- package/admin/views/contentModels/importing/components/Model/index.js.map +0 -1
- package/admin/views/contentModels/types.js.map +0 -1
- package/exports/admin/cms/entry/editor.js.map +0 -1
- package/exports/admin/cms/entry/list.js.map +0 -1
- package/exports/admin/cms/field-renderers/common.js.map +0 -1
- package/exports/admin/cms/field-renderers/dynamic-zone.js.map +0 -1
- package/exports/admin/cms/field-renderers/object.js.map +0 -1
- package/exports/admin/cms/lexical.js.map +0 -1
- package/exports/admin/cms/model.js.map +0 -1
- package/exports/admin/cms.js.map +0 -1
- package/features/ListCache.js.map +0 -1
- package/features/contentEntry/events/index.js.map +0 -1
- package/features/graphQLClient/index.js.map +0 -1
- package/plugins/index.js.map +0 -1
- package/presentation/modelGroup/hooks/index.js.map +0 -1
- package/types.js.map +0 -1
- package/utils/createValidators.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useState","dot","useDeepCompareEffect","isLayoutField","plugins","utils","useModelFieldEditor","generateAlphaNumericLowerCaseId","FieldEditorContext","createContext","undefined","maxGenerateIdIterations","generateFieldId","layout","id","iteration","includes","Error","FieldEditorProvider","parent","fields","onChange","children","depth","parentEditorContext","editor","state","setState","field","dropTarget","row","index","editField","onDropTarget","fieldId","onFieldDrop","source","pos","type","fieldType","parentId","forEach","insertField","position","moveRow","plugin","getLayoutFieldPlugin","layoutFieldType","layoutField","createField","insertLayoutCell","length","f","addField","moveLayoutCell","moveField","getFieldPlugin","fieldData","canEditSettings","onEndDrag","monitor","didDrop","monitorResult","getDropResult","deleteLayoutCell","removeFields","deleteField","getFieldsInLayout","filter","arr","map","cell","getField","Boolean","byType","find","getFieldRendererPlugin","name","renderer","rendererName","query","key","flat","c","fieldPlugin","prev","next","concat","data","destination","updateField","i","set","some","removeField","newLayout","splice","r","updateLayoutCell","tabsField","fieldIdsInTabs","Set","tabs","tab","add","size","has","sourceRow","ri","withoutSource","sourceRowEmptied","targetRow","cleaned","Math","max","min","noConflict","isVisible","item","sameParent","draggedFields","push","join","value","createElement","Provider"],"sources":["FieldEditorContext.tsx"],"sourcesContent":["import React, { useCallback, useState } from \"react\";\nimport dot from \"dot-prop-immutable\";\nimport useDeepCompareEffect from \"use-deep-compare-effect\";\nimport type {\n CmsEditorFieldId,\n CmsModelFieldRendererPlugin,\n CmsEditorFieldsLayout,\n CmsModelFieldTypePlugin,\n CmsModelLayoutFieldTypePlugin,\n CmsModelField,\n DragSource,\n FieldLayoutPosition\n} from \"~/types.js\";\nimport type {\n CmsLayoutField,\n CmsEditorLayoutCell\n} from \"@webiny/app-headless-cms-common/types/model.js\";\nimport { isLayoutField } from \"@webiny/app-headless-cms-common/types/model.js\";\nimport { plugins } from \"@webiny/plugins\";\nimport * as utils from \"./utils/index.js\";\nimport type { FieldEditorProps } from \"./FieldEditor.js\";\nimport type { DragSourceMonitor } from \"react-dnd\";\nimport { useModelFieldEditor } from \"~/admin/components/FieldEditor/useModelFieldEditor.js\";\nimport { generateAlphaNumericLowerCaseId } from \"@webiny/utils\";\nimport type { DragObject } from \"../Droppable.js\";\n\ninterface DropTarget {\n row: number;\n index: number | null;\n}\n\n/**\n * Property in GetFieldParams can be any key from CmsEditorField, but TS does not allow union types\n */\ninterface GetFieldParams {\n id?: string;\n fieldId?: string;\n}\ninterface InsertFieldParams {\n field: CmsModelField;\n position: FieldLayoutPosition;\n}\ninterface AddFieldCallable {\n (field: CmsModelField): void;\n}\ninterface RemoveFieldCallable {\n (fieldId: string): void;\n}\ninterface MoveFieldParams {\n field: CmsEditorFieldId | CmsModelField;\n position: FieldLayoutPosition;\n}\ninterface GetFieldsInLayoutCallable {\n (): (CmsModelField | CmsLayoutField)[][];\n}\ninterface InsertLayoutCellCallable {\n (field: Omit<CmsLayoutField, \"id\"> | CmsLayoutField, position: FieldLayoutPosition): void;\n}\ninterface UpdateLayoutCellCallable {\n (fieldId: string, field: CmsLayoutField): void;\n}\ninterface DeleteLayoutCellCallable {\n (fieldId: string): void;\n}\ninterface MoveLayoutCellCallable {\n (fieldId: string, position: FieldLayoutPosition): void;\n}\ninterface GetLayoutFieldPluginCallable {\n (type: string): CmsModelLayoutFieldTypePlugin | undefined;\n}\ninterface GetFieldPluginCallable {\n (type: string): CmsModelFieldTypePlugin | undefined;\n}\ninterface GetFieldCallable {\n (query: GetFieldParams): CmsModelField | undefined;\n}\ninterface GetFieldRendererCallable {\n (rendererName: string): CmsModelFieldRendererPlugin | undefined;\n}\ninterface OnFieldDropCallable {\n (source: Partial<DragSource>, target: DropTarget): void;\n}\ninterface InsertFieldCallable {\n (params: InsertFieldParams): void;\n}\ninterface MoveFieldCallable {\n (params: MoveFieldParams): void;\n}\ninterface OnEndDragCallable<DragObject = unknown, DropResult = unknown> {\n (item: DragSource, monitor: DragSourceMonitor<DragObject, DropResult>): void;\n}\ninterface MoveRowCallable {\n (source: number, destination: number): void;\n}\ninterface UpdateFieldCallable {\n (field: CmsModelField): void;\n}\ninterface DeleteFieldCallable {\n (field: Pick<CmsModelField, \"id\">): void;\n}\nexport interface IsVisibleCallable {\n (item: DragSource): boolean;\n}\ninterface NoConflictCallable {\n (cb?: IsVisibleCallable): (item: DragSource) => boolean;\n}\nexport interface FieldEditorContext {\n fields: (CmsModelField | CmsLayoutField)[][];\n noConflict: NoConflictCallable;\n layout: CmsEditorFieldsLayout;\n onChange?: (data: any) => void;\n getFieldsInLayout: GetFieldsInLayoutCallable;\n getFieldPlugin: GetFieldPluginCallable;\n getField: GetFieldCallable;\n getFieldRendererPlugin: GetFieldRendererCallable;\n editField: (field: CmsModelField | null) => void;\n field: CmsModelField | null;\n parent?: CmsModelField;\n parentEditorContext?: FieldEditorContext;\n depth: number;\n dropTarget: DropTarget;\n onFieldDrop: OnFieldDropCallable;\n onEndDrag: OnEndDragCallable;\n insertField: InsertFieldCallable;\n moveField: MoveFieldCallable;\n moveRow: MoveRowCallable;\n updateField: UpdateFieldCallable;\n deleteField: DeleteFieldCallable;\n insertLayoutCell: InsertLayoutCellCallable;\n updateLayoutCell: UpdateLayoutCellCallable;\n deleteLayoutCell: DeleteLayoutCellCallable;\n moveLayoutCell: MoveLayoutCellCallable;\n getLayoutFieldPlugin: GetLayoutFieldPluginCallable;\n addField: AddFieldCallable;\n removeField: RemoveFieldCallable;\n}\n\ninterface FieldEditorProviderProps extends FieldEditorProps {\n children: React.ReactElement;\n}\n\ntype DropResult = {\n dropTarget: string | null;\n};\n\nexport const FieldEditorContext = React.createContext<FieldEditorContext | undefined>(undefined);\n/**\n * We try to generate the random id string but with the check that it does not exist already.\n * Chances that the same string exists are quite small, but let's check it anyway.\n *\n * In most cases, there will be no iterations anyway...\n */\nconst maxGenerateIdIterations = 100;\nconst generateFieldId = (layout: string[]): string => {\n let id = generateAlphaNumericLowerCaseId(8);\n\n let iteration = 0;\n while (layout.includes(id) && iteration < maxGenerateIdIterations) {\n id = generateAlphaNumericLowerCaseId(8);\n iteration++;\n }\n if (iteration >= maxGenerateIdIterations) {\n throw new Error(`Could not generate field ID in ${maxGenerateIdIterations} iterations.`);\n }\n return id;\n};\n\ninterface State {\n layout: CmsEditorFieldsLayout;\n fields: CmsModelField[];\n field: CmsModelField | null;\n dropTarget: DropTarget;\n}\nexport const FieldEditorProvider = ({\n parent,\n fields,\n layout,\n onChange,\n children\n}: FieldEditorProviderProps) => {\n // We need to determine depth of this provider so we can render drop zones with correct z-indexes.\n let depth = 0;\n let parentEditorContext: FieldEditorContext | undefined;\n try {\n const editor = useModelFieldEditor();\n depth = editor.depth + 1;\n parentEditorContext = editor;\n } catch {\n // There's no parent provider, so this is the top-level one.\n }\n\n const [state, setState] = useState<State>({\n layout,\n fields,\n field: null,\n dropTarget: {\n row: -1,\n index: null\n }\n });\n\n useDeepCompareEffect(() => {\n onChange({ fields: state.fields, layout: state.layout });\n }, [state.fields, state.layout]);\n\n const editField = useCallback((field: CmsModelField | null) => {\n setState(state => ({ ...state, field }));\n }, []);\n\n const onDropTarget = {\n dropTarget: parent ? parent.fieldId : null\n };\n\n const onFieldDrop = useCallback<OnFieldDropCallable>((source, dropTarget) => {\n const { pos, type, fieldType, field, fields = [] } = source;\n\n const parentId = parent ? parent.fieldId : null;\n\n if (type === \"row\") {\n if (parentId !== source.parent) {\n // We're dragging an existing row from another fieldset\n fields.forEach((field, index) => {\n insertField({\n field,\n position: {\n row: dropTarget.row,\n index: index === 0 ? null : index\n }\n });\n });\n } else if (pos && pos.row !== undefined) {\n // We're dragging a row within the same fieldset\n moveRow(pos.row, dropTarget.row);\n }\n\n return onDropTarget;\n }\n\n // Handle new layout field drops (separator, alert, tabs, etc.)\n if (type === \"newLayoutField\") {\n const plugin = getLayoutFieldPlugin(source.layoutFieldType || \"\");\n if (!plugin) {\n return null;\n }\n const layoutField = plugin.field.createField();\n insertLayoutCell(layoutField, dropTarget);\n return null;\n }\n\n // Handle moving an existing layout field to a new position\n if (type === \"layoutField\") {\n if (source.layoutField) {\n if (parentId !== source.parent) {\n // Cross-parent: insert a copy of the layout field into this context\n insertLayoutCell(source.layoutField, dropTarget);\n // Also add any fields carried by this layout field (e.g. fields inside tabs)\n if (fields.length > 0) {\n for (const f of fields) {\n addField(f);\n }\n }\n } else {\n // Same parent: move within this context\n moveLayoutCell(source.layoutField.id, dropTarget);\n }\n }\n return onDropTarget;\n }\n\n // If source pos is set, we are moving an existing field.\n if (pos) {\n if (!field) {\n return onDropTarget;\n }\n if (parentId !== source.parent) {\n // We're dragging an existing field from another fieldset\n insertField({ field, position: dropTarget });\n } else {\n // We're dragging a field within the same fieldset\n moveField({ field, position: dropTarget });\n }\n return onDropTarget;\n }\n\n if (!fieldType) {\n return null;\n }\n const plugin = getFieldPlugin(fieldType);\n if (!plugin) {\n return null;\n }\n\n const fieldData = plugin.field.createField() as CmsModelField;\n\n if (plugin.field.canEditSettings !== false) {\n editField(fieldData);\n setState(state => ({\n ...state,\n dropTarget\n }));\n } else {\n insertField({ field: fieldData, position: dropTarget });\n }\n return null;\n }, []);\n\n const onEndDrag: OnEndDragCallable<DragObject, DropResult> = (\n { type, field, fields, layoutField },\n monitor\n ) => {\n if (!monitor.didDrop()) {\n return;\n }\n\n // Check if we dropped outside of the source fieldset, and if yes, remove the item from the original parent.\n const monitorResult = monitor.getDropResult();\n const parentId = parent ? parent.fieldId : null;\n if (monitorResult?.dropTarget === parentId) {\n return;\n }\n\n if (type === \"layoutField\" && layoutField?.id) {\n deleteLayoutCell(layoutField.id);\n return;\n }\n\n const removeFields = type === \"row\" ? fields || [] : field ? [field] : [];\n removeFields.forEach(field => deleteField(field));\n };\n\n const getFieldsInLayout: GetFieldsInLayoutCallable = () => {\n // Replace every field ID with actual field object, pass through layout fields.\n return state.layout\n .filter(arr => arr.length)\n .map(row => {\n return row\n .map((cell: CmsEditorLayoutCell) => {\n if (isLayoutField(cell)) {\n return cell;\n }\n return getField({ id: cell });\n })\n .filter(Boolean);\n })\n .filter(row => {\n return row.length > 0;\n }) as (CmsModelField | CmsLayoutField)[][];\n };\n\n /**\n * Return field plugin.\n */\n const getFieldPlugin: GetFieldPluginCallable = type => {\n return plugins\n .byType<CmsModelFieldTypePlugin>(\"cms-editor-field-type\")\n .find(plugin => plugin.field.type === type);\n };\n\n const getFieldRendererPlugin: GetFieldRendererCallable = name => {\n return plugins\n .byType<CmsModelFieldRendererPlugin>(\"cms-editor-field-renderer\")\n .find(plugin => plugin.renderer.rendererName === name);\n };\n\n /**\n * Checks if field of given type already exists in the list of fields.\n */\n const getField: GetFieldCallable = query => {\n return state.fields.find(field => {\n for (const key in query) {\n if (!(key in field)) {\n return false;\n }\n\n if (field[key as keyof typeof field] !== query[key as keyof typeof query]) {\n return false;\n }\n }\n\n return true;\n });\n };\n\n /**\n * Inserts a new field into the target position.\n */\n const insertField: InsertFieldCallable = ({ field, position }) => {\n if (!field.id) {\n field.id = generateFieldId(\n layout.flat().filter((c): c is string => typeof c === \"string\")\n );\n }\n\n if (!field.type) {\n throw new Error(`Field \"type\" missing.`);\n }\n\n const fieldPlugin = getFieldPlugin(field.type);\n if (!fieldPlugin) {\n throw new Error(`No plugin found for field type \"${field.type}\".`);\n }\n\n setState(prev => {\n const next: State = {\n ...prev,\n fields: (prev.fields || []).concat(field)\n };\n\n // Move field to position where it was dropped.\n return utils.moveField({ field, position, data: next });\n });\n };\n\n /**\n * Moves field to the given target position.\n */\n const moveField: MoveFieldCallable = ({ field, position }) => {\n setState(data => {\n return utils.moveField<State>({ field, position, data });\n });\n };\n\n /**\n * Moves row to a destination row.\n */\n const moveRow: MoveRowCallable = (source, destination) => {\n setState(data => {\n return utils.moveRow({ data, source, destination });\n });\n };\n\n /**\n * Updates field.\n */\n const updateField: UpdateFieldCallable = field => {\n setState(data => {\n for (let i = 0; i < data.fields.length; i++) {\n if (data.fields[i].id === field.id) {\n return dot.set(data, `fields.${i}`, field);\n }\n }\n return data;\n });\n };\n\n /**\n * Deletes a field (both from the list of field and the layout).\n */\n const deleteField: DeleteFieldCallable = field => {\n setState(data => {\n return utils.deleteField({ field, data });\n });\n };\n\n /**\n * Add a field to the fields array without placing it in the layout.\n * Used by tabs to hoist fields to the parent context.\n */\n const addField: AddFieldCallable = field => {\n setState(prev => {\n // Don't add if already exists\n if (prev.fields.some(f => f.id === field.id)) {\n return prev;\n }\n return { ...prev, fields: [...prev.fields, field] };\n });\n };\n\n /**\n * Remove a field from the fields array by ID.\n * Used by tabs to un-hoist fields from the parent context.\n */\n const removeField: RemoveFieldCallable = fieldId => {\n setState(prev => ({\n ...prev,\n fields: prev.fields.filter(f => f.id !== fieldId)\n }));\n };\n\n /**\n * Return layout field plugin by type.\n */\n const getLayoutFieldPlugin: GetLayoutFieldPluginCallable = type => {\n return plugins\n .byType<CmsModelLayoutFieldTypePlugin>(\"cms-editor-layout-field-type\")\n .find(plugin => plugin.field.type === type);\n };\n\n /**\n * Insert a layout field into the layout at the given position.\n */\n const insertLayoutCell: InsertLayoutCellCallable = (layoutField, position) => {\n // Auto-assign a unique ID to the layout field.\n const cell = {\n ...layoutField,\n id: generateAlphaNumericLowerCaseId(8)\n } as CmsLayoutField;\n\n setState(prev => {\n const newLayout = [...prev.layout.map(row => [...row])];\n const { row } = position;\n\n // Layout fields always occupy a full row.\n newLayout.splice(row, 0, [cell]);\n\n return { ...prev, layout: newLayout.filter(r => r.length > 0) };\n });\n };\n\n /**\n * Update a layout field found by its ID.\n */\n const updateLayoutCell: UpdateLayoutCellCallable = (fieldId, layoutField) => {\n setState(prev => {\n const newLayout = prev.layout.map(row =>\n row.map(cell => {\n if (isLayoutField(cell) && cell.id === fieldId) {\n return { ...layoutField, id: fieldId };\n }\n return cell;\n })\n );\n return { ...prev, layout: newLayout };\n });\n };\n\n /**\n * Delete a layout field found by its ID.\n * If it's a tabs layout field, also remove all hoisted fields from the fields array.\n */\n const deleteLayoutCell: DeleteLayoutCellCallable = fieldId => {\n setState(prev => {\n let fields = prev.fields;\n\n // Find the descriptor to check if it's tabs (need to clean up hoisted fields)\n for (const row of prev.layout) {\n for (const cell of row) {\n if (isLayoutField(cell) && cell.id === fieldId && cell.type === \"tabs\") {\n const tabsField =\n cell as import(\"@webiny/app-headless-cms-common/types/model.js\").CmsTabLayoutField;\n const fieldIdsInTabs = new Set<string>();\n tabsField.tabs.forEach(tab => {\n tab.layout.forEach(r => {\n r.forEach(c => {\n if (typeof c === \"string\") {\n fieldIdsInTabs.add(c);\n }\n });\n });\n });\n if (fieldIdsInTabs.size > 0) {\n fields = fields.filter(f => !fieldIdsInTabs.has(f.id));\n }\n }\n }\n }\n\n const newLayout = prev.layout.map(row =>\n row.filter(cell => !(isLayoutField(cell) && cell.id === fieldId))\n );\n\n return {\n ...prev,\n fields,\n layout: newLayout.filter(r => r.length > 0)\n };\n });\n };\n\n /**\n * Move a layout field (found by its ID) to a new position.\n */\n const moveLayoutCell: MoveLayoutCellCallable = (fieldId, position) => {\n setState(prev => {\n // Find the layout field by ID.\n let layoutField: CmsLayoutField | undefined;\n let sourceRow = -1;\n\n for (let ri = 0; ri < prev.layout.length; ri++) {\n for (const cell of prev.layout[ri]) {\n if (isLayoutField(cell) && cell.id === fieldId) {\n layoutField = cell;\n sourceRow = ri;\n break;\n }\n }\n if (layoutField) {\n break;\n }\n }\n\n if (!layoutField || sourceRow === -1) {\n return prev;\n }\n\n // 1. Remove the layout field from its source position.\n const withoutSource = prev.layout.map(row =>\n row.filter(cell => !(isLayoutField(cell) && cell.id === fieldId))\n );\n\n // 2. Was the source row emptied?\n const sourceRowEmptied = withoutSource[sourceRow].length === 0;\n\n // 3. Calculate the effective target row index.\n // The drop target row was computed against the original layout.\n // If we emptied a source row that was BEFORE the target, shift down by 1.\n let targetRow = position.row;\n if (sourceRowEmptied && sourceRow < targetRow) {\n targetRow--;\n }\n\n // 4. Remove empty rows.\n const cleaned = withoutSource.filter(r => r.length > 0);\n\n // 5. Clamp target row and insert the layout field as its own row.\n targetRow = Math.max(0, Math.min(targetRow, cleaned.length));\n cleaned.splice(targetRow, 0, [layoutField]);\n\n return { ...prev, layout: cleaned };\n });\n };\n\n const noConflict: NoConflictCallable = useCallback(\n (isVisible?: IsVisibleCallable) => item => {\n const sameParent = item.parent === onDropTarget.dropTarget;\n const draggedFields: string[] = [];\n switch (item.type) {\n case \"row\":\n (item.fields || []).forEach(field => draggedFields.push(field.fieldId));\n break;\n case \"field\":\n if (!item.field) {\n break;\n }\n draggedFields.push(item.field.fieldId);\n break;\n default:\n break;\n }\n\n if (\n draggedFields.length &&\n !sameParent &&\n fields.some(field => draggedFields.includes(field.fieldId))\n ) {\n return false;\n }\n\n return typeof isVisible === \"function\" ? isVisible(item) : true;\n },\n [fields.map(f => f.fieldId).join(\".\")]\n );\n\n const value: FieldEditorContext = {\n parent,\n parentEditorContext,\n depth,\n getFieldsInLayout,\n getFieldPlugin,\n getFieldRendererPlugin,\n getField,\n editField,\n field: state.field,\n dropTarget: state.dropTarget,\n onFieldDrop,\n onEndDrag,\n insertField,\n moveField,\n moveRow,\n updateField,\n deleteField,\n insertLayoutCell,\n updateLayoutCell,\n deleteLayoutCell,\n moveLayoutCell,\n getLayoutFieldPlugin,\n addField,\n removeField,\n fields: getFieldsInLayout(),\n noConflict,\n layout: state.layout\n };\n\n return <FieldEditorContext.Provider value={value}>{children}</FieldEditorContext.Provider>;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,QAAQ,QAAQ,OAAO;AACpD,OAAOC,GAAG,MAAM,oBAAoB;AACpC,OAAOC,oBAAoB,MAAM,yBAAyB;AAe1D,SAASC,aAAa,QAAQ,gDAAgD;AAC9E,SAASC,OAAO,QAAQ,iBAAiB;AACzC,OAAO,KAAKC,KAAK;AAGjB,SAASC,mBAAmB;AAC5B,SAASC,+BAA+B,QAAQ,eAAe;;AAQ/D;AACA;AACA;;AAgHA,OAAO,MAAMC,kBAAkB,gBAAGV,KAAK,CAACW,aAAa,CAAiCC,SAAS,CAAC;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,uBAAuB,GAAG,GAAG;AACnC,MAAMC,eAAe,GAAIC,MAAgB,IAAa;EAClD,IAAIC,EAAE,GAAGP,+BAA+B,CAAC,CAAC,CAAC;EAE3C,IAAIQ,SAAS,GAAG,CAAC;EACjB,OAAOF,MAAM,CAACG,QAAQ,CAACF,EAAE,CAAC,IAAIC,SAAS,GAAGJ,uBAAuB,EAAE;IAC/DG,EAAE,GAAGP,+BAA+B,CAAC,CAAC,CAAC;IACvCQ,SAAS,EAAE;EACf;EACA,IAAIA,SAAS,IAAIJ,uBAAuB,EAAE;IACtC,MAAM,IAAIM,KAAK,CAAC,kCAAkCN,uBAAuB,cAAc,CAAC;EAC5F;EACA,OAAOG,EAAE;AACb,CAAC;AAQD,OAAO,MAAMI,mBAAmB,GAAGA,CAAC;EAChCC,MAAM;EACNC,MAAM;EACNP,MAAM;EACNQ,QAAQ;EACRC;AACsB,CAAC,KAAK;EAC5B;EACA,IAAIC,KAAK,GAAG,CAAC;EACb,IAAIC,mBAAmD;EACvD,IAAI;IACA,MAAMC,MAAM,GAAGnB,mBAAmB,CAAC,CAAC;IACpCiB,KAAK,GAAGE,MAAM,CAACF,KAAK,GAAG,CAAC;IACxBC,mBAAmB,GAAGC,MAAM;EAChC,CAAC,CAAC,MAAM;IACJ;EAAA;EAGJ,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAG3B,QAAQ,CAAQ;IACtCa,MAAM;IACNO,MAAM;IACNQ,KAAK,EAAE,IAAI;IACXC,UAAU,EAAE;MACRC,GAAG,EAAE,CAAC,CAAC;MACPC,KAAK,EAAE;IACX;EACJ,CAAC,CAAC;EAEF7B,oBAAoB,CAAC,MAAM;IACvBmB,QAAQ,CAAC;MAAED,MAAM,EAAEM,KAAK,CAACN,MAAM;MAAEP,MAAM,EAAEa,KAAK,CAACb;IAAO,CAAC,CAAC;EAC5D,CAAC,EAAE,CAACa,KAAK,CAACN,MAAM,EAAEM,KAAK,CAACb,MAAM,CAAC,CAAC;EAEhC,MAAMmB,SAAS,GAAGjC,WAAW,CAAE6B,KAA2B,IAAK;IAC3DD,QAAQ,CAACD,KAAK,KAAK;MAAE,GAAGA,KAAK;MAAEE;IAAM,CAAC,CAAC,CAAC;EAC5C,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMK,YAAY,GAAG;IACjBJ,UAAU,EAAEV,MAAM,GAAGA,MAAM,CAACe,OAAO,GAAG;EAC1C,CAAC;EAED,MAAMC,WAAW,GAAGpC,WAAW,CAAsB,CAACqC,MAAM,EAAEP,UAAU,KAAK;IACzE,MAAM;MAAEQ,GAAG;MAAEC,IAAI;MAAEC,SAAS;MAAEX,KAAK;MAAER,MAAM,GAAG;IAAG,CAAC,GAAGgB,MAAM;IAE3D,MAAMI,QAAQ,GAAGrB,MAAM,GAAGA,MAAM,CAACe,OAAO,GAAG,IAAI;IAE/C,IAAII,IAAI,KAAK,KAAK,EAAE;MAChB,IAAIE,QAAQ,KAAKJ,MAAM,CAACjB,MAAM,EAAE;QAC5B;QACAC,MAAM,CAACqB,OAAO,CAAC,CAACb,KAAK,EAAEG,KAAK,KAAK;UAC7BW,WAAW,CAAC;YACRd,KAAK;YACLe,QAAQ,EAAE;cACNb,GAAG,EAAED,UAAU,CAACC,GAAG;cACnBC,KAAK,EAAEA,KAAK,KAAK,CAAC,GAAG,IAAI,GAAGA;YAChC;UACJ,CAAC,CAAC;QACN,CAAC,CAAC;MACN,CAAC,MAAM,IAAIM,GAAG,IAAIA,GAAG,CAACP,GAAG,KAAKpB,SAAS,EAAE;QACrC;QACAkC,OAAO,CAACP,GAAG,CAACP,GAAG,EAAED,UAAU,CAACC,GAAG,CAAC;MACpC;MAEA,OAAOG,YAAY;IACvB;;IAEA;IACA,IAAIK,IAAI,KAAK,gBAAgB,EAAE;MAC3B,MAAMO,MAAM,GAAGC,oBAAoB,CAACV,MAAM,CAACW,eAAe,IAAI,EAAE,CAAC;MACjE,IAAI,CAACF,MAAM,EAAE;QACT,OAAO,IAAI;MACf;MACA,MAAMG,WAAW,GAAGH,MAAM,CAACjB,KAAK,CAACqB,WAAW,CAAC,CAAC;MAC9CC,gBAAgB,CAACF,WAAW,EAAEnB,UAAU,CAAC;MACzC,OAAO,IAAI;IACf;;IAEA;IACA,IAAIS,IAAI,KAAK,aAAa,EAAE;MACxB,IAAIF,MAAM,CAACY,WAAW,EAAE;QACpB,IAAIR,QAAQ,KAAKJ,MAAM,CAACjB,MAAM,EAAE;UAC5B;UACA+B,gBAAgB,CAACd,MAAM,CAACY,WAAW,EAAEnB,UAAU,CAAC;UAChD;UACA,IAAIT,MAAM,CAAC+B,MAAM,GAAG,CAAC,EAAE;YACnB,KAAK,MAAMC,CAAC,IAAIhC,MAAM,EAAE;cACpBiC,QAAQ,CAACD,CAAC,CAAC;YACf;UACJ;QACJ,CAAC,MAAM;UACH;UACAE,cAAc,CAAClB,MAAM,CAACY,WAAW,CAAClC,EAAE,EAAEe,UAAU,CAAC;QACrD;MACJ;MACA,OAAOI,YAAY;IACvB;;IAEA;IACA,IAAII,GAAG,EAAE;MACL,IAAI,CAACT,KAAK,EAAE;QACR,OAAOK,YAAY;MACvB;MACA,IAAIO,QAAQ,KAAKJ,MAAM,CAACjB,MAAM,EAAE;QAC5B;QACAuB,WAAW,CAAC;UAAEd,KAAK;UAAEe,QAAQ,EAAEd;QAAW,CAAC,CAAC;MAChD,CAAC,MAAM;QACH;QACA0B,SAAS,CAAC;UAAE3B,KAAK;UAAEe,QAAQ,EAAEd;QAAW,CAAC,CAAC;MAC9C;MACA,OAAOI,YAAY;IACvB;IAEA,IAAI,CAACM,SAAS,EAAE;MACZ,OAAO,IAAI;IACf;IACA,MAAMM,MAAM,GAAGW,cAAc,CAACjB,SAAS,CAAC;IACxC,IAAI,CAACM,MAAM,EAAE;MACT,OAAO,IAAI;IACf;IAEA,MAAMY,SAAS,GAAGZ,MAAM,CAACjB,KAAK,CAACqB,WAAW,CAAC,CAAkB;IAE7D,IAAIJ,MAAM,CAACjB,KAAK,CAAC8B,eAAe,KAAK,KAAK,EAAE;MACxC1B,SAAS,CAACyB,SAAS,CAAC;MACpB9B,QAAQ,CAACD,KAAK,KAAK;QACf,GAAGA,KAAK;QACRG;MACJ,CAAC,CAAC,CAAC;IACP,CAAC,MAAM;MACHa,WAAW,CAAC;QAAEd,KAAK,EAAE6B,SAAS;QAAEd,QAAQ,EAAEd;MAAW,CAAC,CAAC;IAC3D;IACA,OAAO,IAAI;EACf,CAAC,EAAE,EAAE,CAAC;EAEN,MAAM8B,SAAoD,GAAGA,CACzD;IAAErB,IAAI;IAAEV,KAAK;IAAER,MAAM;IAAE4B;EAAY,CAAC,EACpCY,OAAO,KACN;IACD,IAAI,CAACA,OAAO,CAACC,OAAO,CAAC,CAAC,EAAE;MACpB;IACJ;;IAEA;IACA,MAAMC,aAAa,GAAGF,OAAO,CAACG,aAAa,CAAC,CAAC;IAC7C,MAAMvB,QAAQ,GAAGrB,MAAM,GAAGA,MAAM,CAACe,OAAO,GAAG,IAAI;IAC/C,IAAI4B,aAAa,EAAEjC,UAAU,KAAKW,QAAQ,EAAE;MACxC;IACJ;IAEA,IAAIF,IAAI,KAAK,aAAa,IAAIU,WAAW,EAAElC,EAAE,EAAE;MAC3CkD,gBAAgB,CAAChB,WAAW,CAAClC,EAAE,CAAC;MAChC;IACJ;IAEA,MAAMmD,YAAY,GAAG3B,IAAI,KAAK,KAAK,GAAGlB,MAAM,IAAI,EAAE,GAAGQ,KAAK,GAAG,CAACA,KAAK,CAAC,GAAG,EAAE;IACzEqC,YAAY,CAACxB,OAAO,CAACb,KAAK,IAAIsC,WAAW,CAACtC,KAAK,CAAC,CAAC;EACrD,CAAC;EAED,MAAMuC,iBAA4C,GAAGA,CAAA,KAAM;IACvD;IACA,OAAOzC,KAAK,CAACb,MAAM,CACduD,MAAM,CAACC,GAAG,IAAIA,GAAG,CAAClB,MAAM,CAAC,CACzBmB,GAAG,CAACxC,GAAG,IAAI;MACR,OAAOA,GAAG,CACLwC,GAAG,CAAEC,IAAyB,IAAK;QAChC,IAAIpE,aAAa,CAACoE,IAAI,CAAC,EAAE;UACrB,OAAOA,IAAI;QACf;QACA,OAAOC,QAAQ,CAAC;UAAE1D,EAAE,EAAEyD;QAAK,CAAC,CAAC;MACjC,CAAC,CAAC,CACDH,MAAM,CAACK,OAAO,CAAC;IACxB,CAAC,CAAC,CACDL,MAAM,CAACtC,GAAG,IAAI;MACX,OAAOA,GAAG,CAACqB,MAAM,GAAG,CAAC;IACzB,CAAC,CAAC;EACV,CAAC;;EAED;AACJ;AACA;EACI,MAAMK,cAAsC,GAAGlB,IAAI,IAAI;IACnD,OAAOlC,OAAO,CACTsE,MAAM,CAA0B,uBAAuB,CAAC,CACxDC,IAAI,CAAC9B,MAAM,IAAIA,MAAM,CAACjB,KAAK,CAACU,IAAI,KAAKA,IAAI,CAAC;EACnD,CAAC;EAED,MAAMsC,sBAAgD,GAAGC,IAAI,IAAI;IAC7D,OAAOzE,OAAO,CACTsE,MAAM,CAA8B,2BAA2B,CAAC,CAChEC,IAAI,CAAC9B,MAAM,IAAIA,MAAM,CAACiC,QAAQ,CAACC,YAAY,KAAKF,IAAI,CAAC;EAC9D,CAAC;;EAED;AACJ;AACA;EACI,MAAML,QAA0B,GAAGQ,KAAK,IAAI;IACxC,OAAOtD,KAAK,CAACN,MAAM,CAACuD,IAAI,CAAC/C,KAAK,IAAI;MAC9B,KAAK,MAAMqD,GAAG,IAAID,KAAK,EAAE;QACrB,IAAI,EAAEC,GAAG,IAAIrD,KAAK,CAAC,EAAE;UACjB,OAAO,KAAK;QAChB;QAEA,IAAIA,KAAK,CAACqD,GAAG,CAAuB,KAAKD,KAAK,CAACC,GAAG,CAAuB,EAAE;UACvE,OAAO,KAAK;QAChB;MACJ;MAEA,OAAO,IAAI;IACf,CAAC,CAAC;EACN,CAAC;;EAED;AACJ;AACA;EACI,MAAMvC,WAAgC,GAAGA,CAAC;IAAEd,KAAK;IAAEe;EAAS,CAAC,KAAK;IAC9D,IAAI,CAACf,KAAK,CAACd,EAAE,EAAE;MACXc,KAAK,CAACd,EAAE,GAAGF,eAAe,CACtBC,MAAM,CAACqE,IAAI,CAAC,CAAC,CAACd,MAAM,CAAEe,CAAC,IAAkB,OAAOA,CAAC,KAAK,QAAQ,CAClE,CAAC;IACL;IAEA,IAAI,CAACvD,KAAK,CAACU,IAAI,EAAE;MACb,MAAM,IAAIrB,KAAK,CAAC,uBAAuB,CAAC;IAC5C;IAEA,MAAMmE,WAAW,GAAG5B,cAAc,CAAC5B,KAAK,CAACU,IAAI,CAAC;IAC9C,IAAI,CAAC8C,WAAW,EAAE;MACd,MAAM,IAAInE,KAAK,CAAC,mCAAmCW,KAAK,CAACU,IAAI,IAAI,CAAC;IACtE;IAEAX,QAAQ,CAAC0D,IAAI,IAAI;MACb,MAAMC,IAAW,GAAG;QAChB,GAAGD,IAAI;QACPjE,MAAM,EAAE,CAACiE,IAAI,CAACjE,MAAM,IAAI,EAAE,EAAEmE,MAAM,CAAC3D,KAAK;MAC5C,CAAC;;MAED;MACA,OAAOvB,KAAK,CAACkD,SAAS,CAAC;QAAE3B,KAAK;QAAEe,QAAQ;QAAE6C,IAAI,EAAEF;MAAK,CAAC,CAAC;IAC3D,CAAC,CAAC;EACN,CAAC;;EAED;AACJ;AACA;EACI,MAAM/B,SAA4B,GAAGA,CAAC;IAAE3B,KAAK;IAAEe;EAAS,CAAC,KAAK;IAC1DhB,QAAQ,CAAC6D,IAAI,IAAI;MACb,OAAOnF,KAAK,CAACkD,SAAS,CAAQ;QAAE3B,KAAK;QAAEe,QAAQ;QAAE6C;MAAK,CAAC,CAAC;IAC5D,CAAC,CAAC;EACN,CAAC;;EAED;AACJ;AACA;EACI,MAAM5C,OAAwB,GAAGA,CAACR,MAAM,EAAEqD,WAAW,KAAK;IACtD9D,QAAQ,CAAC6D,IAAI,IAAI;MACb,OAAOnF,KAAK,CAACuC,OAAO,CAAC;QAAE4C,IAAI;QAAEpD,MAAM;QAAEqD;MAAY,CAAC,CAAC;IACvD,CAAC,CAAC;EACN,CAAC;;EAED;AACJ;AACA;EACI,MAAMC,WAAgC,GAAG9D,KAAK,IAAI;IAC9CD,QAAQ,CAAC6D,IAAI,IAAI;MACb,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,IAAI,CAACpE,MAAM,CAAC+B,MAAM,EAAEwC,CAAC,EAAE,EAAE;QACzC,IAAIH,IAAI,CAACpE,MAAM,CAACuE,CAAC,CAAC,CAAC7E,EAAE,KAAKc,KAAK,CAACd,EAAE,EAAE;UAChC,OAAOb,GAAG,CAAC2F,GAAG,CAACJ,IAAI,EAAE,UAAUG,CAAC,EAAE,EAAE/D,KAAK,CAAC;QAC9C;MACJ;MACA,OAAO4D,IAAI;IACf,CAAC,CAAC;EACN,CAAC;;EAED;AACJ;AACA;EACI,MAAMtB,WAAgC,GAAGtC,KAAK,IAAI;IAC9CD,QAAQ,CAAC6D,IAAI,IAAI;MACb,OAAOnF,KAAK,CAAC6D,WAAW,CAAC;QAAEtC,KAAK;QAAE4D;MAAK,CAAC,CAAC;IAC7C,CAAC,CAAC;EACN,CAAC;;EAED;AACJ;AACA;AACA;EACI,MAAMnC,QAA0B,GAAGzB,KAAK,IAAI;IACxCD,QAAQ,CAAC0D,IAAI,IAAI;MACb;MACA,IAAIA,IAAI,CAACjE,MAAM,CAACyE,IAAI,CAACzC,CAAC,IAAIA,CAAC,CAACtC,EAAE,KAAKc,KAAK,CAACd,EAAE,CAAC,EAAE;QAC1C,OAAOuE,IAAI;MACf;MACA,OAAO;QAAE,GAAGA,IAAI;QAAEjE,MAAM,EAAE,CAAC,GAAGiE,IAAI,CAACjE,MAAM,EAAEQ,KAAK;MAAE,CAAC;IACvD,CAAC,CAAC;EACN,CAAC;;EAED;AACJ;AACA;AACA;EACI,MAAMkE,WAAgC,GAAG5D,OAAO,IAAI;IAChDP,QAAQ,CAAC0D,IAAI,KAAK;MACd,GAAGA,IAAI;MACPjE,MAAM,EAAEiE,IAAI,CAACjE,MAAM,CAACgD,MAAM,CAAChB,CAAC,IAAIA,CAAC,CAACtC,EAAE,KAAKoB,OAAO;IACpD,CAAC,CAAC,CAAC;EACP,CAAC;;EAED;AACJ;AACA;EACI,MAAMY,oBAAkD,GAAGR,IAAI,IAAI;IAC/D,OAAOlC,OAAO,CACTsE,MAAM,CAAgC,8BAA8B,CAAC,CACrEC,IAAI,CAAC9B,MAAM,IAAIA,MAAM,CAACjB,KAAK,CAACU,IAAI,KAAKA,IAAI,CAAC;EACnD,CAAC;;EAED;AACJ;AACA;EACI,MAAMY,gBAA0C,GAAGA,CAACF,WAAW,EAAEL,QAAQ,KAAK;IAC1E;IACA,MAAM4B,IAAI,GAAG;MACT,GAAGvB,WAAW;MACdlC,EAAE,EAAEP,+BAA+B,CAAC,CAAC;IACzC,CAAmB;IAEnBoB,QAAQ,CAAC0D,IAAI,IAAI;MACb,MAAMU,SAAS,GAAG,CAAC,GAAGV,IAAI,CAACxE,MAAM,CAACyD,GAAG,CAACxC,GAAG,IAAI,CAAC,GAAGA,GAAG,CAAC,CAAC,CAAC;MACvD,MAAM;QAAEA;MAAI,CAAC,GAAGa,QAAQ;;MAExB;MACAoD,SAAS,CAACC,MAAM,CAAClE,GAAG,EAAE,CAAC,EAAE,CAACyC,IAAI,CAAC,CAAC;MAEhC,OAAO;QAAE,GAAGc,IAAI;QAAExE,MAAM,EAAEkF,SAAS,CAAC3B,MAAM,CAAC6B,CAAC,IAAIA,CAAC,CAAC9C,MAAM,GAAG,CAAC;MAAE,CAAC;IACnE,CAAC,CAAC;EACN,CAAC;;EAED;AACJ;AACA;EACI,MAAM+C,gBAA0C,GAAGA,CAAChE,OAAO,EAAEc,WAAW,KAAK;IACzErB,QAAQ,CAAC0D,IAAI,IAAI;MACb,MAAMU,SAAS,GAAGV,IAAI,CAACxE,MAAM,CAACyD,GAAG,CAACxC,GAAG,IACjCA,GAAG,CAACwC,GAAG,CAACC,IAAI,IAAI;QACZ,IAAIpE,aAAa,CAACoE,IAAI,CAAC,IAAIA,IAAI,CAACzD,EAAE,KAAKoB,OAAO,EAAE;UAC5C,OAAO;YAAE,GAAGc,WAAW;YAAElC,EAAE,EAAEoB;UAAQ,CAAC;QAC1C;QACA,OAAOqC,IAAI;MACf,CAAC,CACL,CAAC;MACD,OAAO;QAAE,GAAGc,IAAI;QAAExE,MAAM,EAAEkF;MAAU,CAAC;IACzC,CAAC,CAAC;EACN,CAAC;;EAED;AACJ;AACA;AACA;EACI,MAAM/B,gBAA0C,GAAG9B,OAAO,IAAI;IAC1DP,QAAQ,CAAC0D,IAAI,IAAI;MACb,IAAIjE,MAAM,GAAGiE,IAAI,CAACjE,MAAM;;MAExB;MACA,KAAK,MAAMU,GAAG,IAAIuD,IAAI,CAACxE,MAAM,EAAE;QAC3B,KAAK,MAAM0D,IAAI,IAAIzC,GAAG,EAAE;UACpB,IAAI3B,aAAa,CAACoE,IAAI,CAAC,IAAIA,IAAI,CAACzD,EAAE,KAAKoB,OAAO,IAAIqC,IAAI,CAACjC,IAAI,KAAK,MAAM,EAAE;YACpE,MAAM6D,SAAS,GACX5B,IAAkF;YACtF,MAAM6B,cAAc,GAAG,IAAIC,GAAG,CAAS,CAAC;YACxCF,SAAS,CAACG,IAAI,CAAC7D,OAAO,CAAC8D,GAAG,IAAI;cAC1BA,GAAG,CAAC1F,MAAM,CAAC4B,OAAO,CAACwD,CAAC,IAAI;gBACpBA,CAAC,CAACxD,OAAO,CAAC0C,CAAC,IAAI;kBACX,IAAI,OAAOA,CAAC,KAAK,QAAQ,EAAE;oBACvBiB,cAAc,CAACI,GAAG,CAACrB,CAAC,CAAC;kBACzB;gBACJ,CAAC,CAAC;cACN,CAAC,CAAC;YACN,CAAC,CAAC;YACF,IAAIiB,cAAc,CAACK,IAAI,GAAG,CAAC,EAAE;cACzBrF,MAAM,GAAGA,MAAM,CAACgD,MAAM,CAAChB,CAAC,IAAI,CAACgD,cAAc,CAACM,GAAG,CAACtD,CAAC,CAACtC,EAAE,CAAC,CAAC;YAC1D;UACJ;QACJ;MACJ;MAEA,MAAMiF,SAAS,GAAGV,IAAI,CAACxE,MAAM,CAACyD,GAAG,CAACxC,GAAG,IACjCA,GAAG,CAACsC,MAAM,CAACG,IAAI,IAAI,EAAEpE,aAAa,CAACoE,IAAI,CAAC,IAAIA,IAAI,CAACzD,EAAE,KAAKoB,OAAO,CAAC,CACpE,CAAC;MAED,OAAO;QACH,GAAGmD,IAAI;QACPjE,MAAM;QACNP,MAAM,EAAEkF,SAAS,CAAC3B,MAAM,CAAC6B,CAAC,IAAIA,CAAC,CAAC9C,MAAM,GAAG,CAAC;MAC9C,CAAC;IACL,CAAC,CAAC;EACN,CAAC;;EAED;AACJ;AACA;EACI,MAAMG,cAAsC,GAAGA,CAACpB,OAAO,EAAES,QAAQ,KAAK;IAClEhB,QAAQ,CAAC0D,IAAI,IAAI;MACb;MACA,IAAIrC,WAAuC;MAC3C,IAAI2D,SAAS,GAAG,CAAC,CAAC;MAElB,KAAK,IAAIC,EAAE,GAAG,CAAC,EAAEA,EAAE,GAAGvB,IAAI,CAACxE,MAAM,CAACsC,MAAM,EAAEyD,EAAE,EAAE,EAAE;QAC5C,KAAK,MAAMrC,IAAI,IAAIc,IAAI,CAACxE,MAAM,CAAC+F,EAAE,CAAC,EAAE;UAChC,IAAIzG,aAAa,CAACoE,IAAI,CAAC,IAAIA,IAAI,CAACzD,EAAE,KAAKoB,OAAO,EAAE;YAC5Cc,WAAW,GAAGuB,IAAI;YAClBoC,SAAS,GAAGC,EAAE;YACd;UACJ;QACJ;QACA,IAAI5D,WAAW,EAAE;UACb;QACJ;MACJ;MAEA,IAAI,CAACA,WAAW,IAAI2D,SAAS,KAAK,CAAC,CAAC,EAAE;QAClC,OAAOtB,IAAI;MACf;;MAEA;MACA,MAAMwB,aAAa,GAAGxB,IAAI,CAACxE,MAAM,CAACyD,GAAG,CAACxC,GAAG,IACrCA,GAAG,CAACsC,MAAM,CAACG,IAAI,IAAI,EAAEpE,aAAa,CAACoE,IAAI,CAAC,IAAIA,IAAI,CAACzD,EAAE,KAAKoB,OAAO,CAAC,CACpE,CAAC;;MAED;MACA,MAAM4E,gBAAgB,GAAGD,aAAa,CAACF,SAAS,CAAC,CAACxD,MAAM,KAAK,CAAC;;MAE9D;MACA;MACA;MACA,IAAI4D,SAAS,GAAGpE,QAAQ,CAACb,GAAG;MAC5B,IAAIgF,gBAAgB,IAAIH,SAAS,GAAGI,SAAS,EAAE;QAC3CA,SAAS,EAAE;MACf;;MAEA;MACA,MAAMC,OAAO,GAAGH,aAAa,CAACzC,MAAM,CAAC6B,CAAC,IAAIA,CAAC,CAAC9C,MAAM,GAAG,CAAC,CAAC;;MAEvD;MACA4D,SAAS,GAAGE,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAACJ,SAAS,EAAEC,OAAO,CAAC7D,MAAM,CAAC,CAAC;MAC5D6D,OAAO,CAAChB,MAAM,CAACe,SAAS,EAAE,CAAC,EAAE,CAAC/D,WAAW,CAAC,CAAC;MAE3C,OAAO;QAAE,GAAGqC,IAAI;QAAExE,MAAM,EAAEmG;MAAQ,CAAC;IACvC,CAAC,CAAC;EACN,CAAC;EAED,MAAMI,UAA8B,GAAGrH,WAAW,CAC7CsH,SAA6B,IAAKC,IAAI,IAAI;IACvC,MAAMC,UAAU,GAAGD,IAAI,CAACnG,MAAM,KAAKc,YAAY,CAACJ,UAAU;IAC1D,MAAM2F,aAAuB,GAAG,EAAE;IAClC,QAAQF,IAAI,CAAChF,IAAI;MACb,KAAK,KAAK;QACN,CAACgF,IAAI,CAAClG,MAAM,IAAI,EAAE,EAAEqB,OAAO,CAACb,KAAK,IAAI4F,aAAa,CAACC,IAAI,CAAC7F,KAAK,CAACM,OAAO,CAAC,CAAC;QACvE;MACJ,KAAK,OAAO;QACR,IAAI,CAACoF,IAAI,CAAC1F,KAAK,EAAE;UACb;QACJ;QACA4F,aAAa,CAACC,IAAI,CAACH,IAAI,CAAC1F,KAAK,CAACM,OAAO,CAAC;QACtC;MACJ;QACI;IACR;IAEA,IACIsF,aAAa,CAACrE,MAAM,IACpB,CAACoE,UAAU,IACXnG,MAAM,CAACyE,IAAI,CAACjE,KAAK,IAAI4F,aAAa,CAACxG,QAAQ,CAACY,KAAK,CAACM,OAAO,CAAC,CAAC,EAC7D;MACE,OAAO,KAAK;IAChB;IAEA,OAAO,OAAOmF,SAAS,KAAK,UAAU,GAAGA,SAAS,CAACC,IAAI,CAAC,GAAG,IAAI;EACnE,CAAC,EACD,CAAClG,MAAM,CAACkD,GAAG,CAAClB,CAAC,IAAIA,CAAC,CAAClB,OAAO,CAAC,CAACwF,IAAI,CAAC,GAAG,CAAC,CACzC,CAAC;EAED,MAAMC,KAAyB,GAAG;IAC9BxG,MAAM;IACNK,mBAAmB;IACnBD,KAAK;IACL4C,iBAAiB;IACjBX,cAAc;IACdoB,sBAAsB;IACtBJ,QAAQ;IACRxC,SAAS;IACTJ,KAAK,EAAEF,KAAK,CAACE,KAAK;IAClBC,UAAU,EAAEH,KAAK,CAACG,UAAU;IAC5BM,WAAW;IACXwB,SAAS;IACTjB,WAAW;IACXa,SAAS;IACTX,OAAO;IACP8C,WAAW;IACXxB,WAAW;IACXhB,gBAAgB;IAChBgD,gBAAgB;IAChBlC,gBAAgB;IAChBV,cAAc;IACdR,oBAAoB;IACpBO,QAAQ;IACRyC,WAAW;IACX1E,MAAM,EAAE+C,iBAAiB,CAAC,CAAC;IAC3BiD,UAAU;IACVvG,MAAM,EAAEa,KAAK,CAACb;EAClB,CAAC;EAED,oBAAOf,KAAA,CAAA8H,aAAA,CAACpH,kBAAkB,CAACqH,QAAQ;IAACF,KAAK,EAAEA;EAAM,GAAErG,QAAsC,CAAC;AAC9F,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"admin/components/FieldEditor/FieldEditorContext.js","sources":["../../../../src/admin/components/FieldEditor/FieldEditorContext.tsx"],"sourcesContent":["import React, { useCallback, useState } from \"react\";\nimport dot from \"dot-prop-immutable\";\nimport useDeepCompareEffect from \"use-deep-compare-effect\";\nimport type {\n CmsEditorFieldId,\n CmsModelFieldRendererPlugin,\n CmsEditorFieldsLayout,\n CmsModelFieldTypePlugin,\n CmsModelLayoutFieldTypePlugin,\n CmsModelField,\n DragSource,\n FieldLayoutPosition\n} from \"~/types.js\";\nimport type {\n CmsLayoutField,\n CmsEditorLayoutCell\n} from \"@webiny/app-headless-cms-common/types/model.js\";\nimport { isLayoutField } from \"@webiny/app-headless-cms-common/types/model.js\";\nimport { plugins } from \"@webiny/plugins\";\nimport * as utils from \"./utils/index.js\";\nimport type { FieldEditorProps } from \"./FieldEditor.js\";\nimport type { DragSourceMonitor } from \"react-dnd\";\nimport { useModelFieldEditor } from \"~/admin/components/FieldEditor/useModelFieldEditor.js\";\nimport { generateAlphaNumericLowerCaseId } from \"@webiny/utils\";\nimport type { DragObject } from \"../Droppable.js\";\n\ninterface DropTarget {\n row: number;\n index: number | null;\n}\n\n/**\n * Property in GetFieldParams can be any key from CmsEditorField, but TS does not allow union types\n */\ninterface GetFieldParams {\n id?: string;\n fieldId?: string;\n}\ninterface InsertFieldParams {\n field: CmsModelField;\n position: FieldLayoutPosition;\n}\ninterface AddFieldCallable {\n (field: CmsModelField): void;\n}\ninterface RemoveFieldCallable {\n (fieldId: string): void;\n}\ninterface MoveFieldParams {\n field: CmsEditorFieldId | CmsModelField;\n position: FieldLayoutPosition;\n}\ninterface GetFieldsInLayoutCallable {\n (): (CmsModelField | CmsLayoutField)[][];\n}\ninterface InsertLayoutCellCallable {\n (field: Omit<CmsLayoutField, \"id\"> | CmsLayoutField, position: FieldLayoutPosition): void;\n}\ninterface UpdateLayoutCellCallable {\n (fieldId: string, field: CmsLayoutField): void;\n}\ninterface DeleteLayoutCellCallable {\n (fieldId: string): void;\n}\ninterface MoveLayoutCellCallable {\n (fieldId: string, position: FieldLayoutPosition): void;\n}\ninterface GetLayoutFieldPluginCallable {\n (type: string): CmsModelLayoutFieldTypePlugin | undefined;\n}\ninterface GetFieldPluginCallable {\n (type: string): CmsModelFieldTypePlugin | undefined;\n}\ninterface GetFieldCallable {\n (query: GetFieldParams): CmsModelField | undefined;\n}\ninterface GetFieldRendererCallable {\n (rendererName: string): CmsModelFieldRendererPlugin | undefined;\n}\ninterface OnFieldDropCallable {\n (source: Partial<DragSource>, target: DropTarget): void;\n}\ninterface InsertFieldCallable {\n (params: InsertFieldParams): void;\n}\ninterface MoveFieldCallable {\n (params: MoveFieldParams): void;\n}\ninterface OnEndDragCallable<DragObject = unknown, DropResult = unknown> {\n (item: DragSource, monitor: DragSourceMonitor<DragObject, DropResult>): void;\n}\ninterface MoveRowCallable {\n (source: number, destination: number): void;\n}\ninterface UpdateFieldCallable {\n (field: CmsModelField): void;\n}\ninterface DeleteFieldCallable {\n (field: Pick<CmsModelField, \"id\">): void;\n}\nexport interface IsVisibleCallable {\n (item: DragSource): boolean;\n}\ninterface NoConflictCallable {\n (cb?: IsVisibleCallable): (item: DragSource) => boolean;\n}\nexport interface FieldEditorContext {\n fields: (CmsModelField | CmsLayoutField)[][];\n noConflict: NoConflictCallable;\n layout: CmsEditorFieldsLayout;\n onChange?: (data: any) => void;\n getFieldsInLayout: GetFieldsInLayoutCallable;\n getFieldPlugin: GetFieldPluginCallable;\n getField: GetFieldCallable;\n getFieldRendererPlugin: GetFieldRendererCallable;\n editField: (field: CmsModelField | null) => void;\n field: CmsModelField | null;\n parent?: CmsModelField;\n parentEditorContext?: FieldEditorContext;\n depth: number;\n dropTarget: DropTarget;\n onFieldDrop: OnFieldDropCallable;\n onEndDrag: OnEndDragCallable;\n insertField: InsertFieldCallable;\n moveField: MoveFieldCallable;\n moveRow: MoveRowCallable;\n updateField: UpdateFieldCallable;\n deleteField: DeleteFieldCallable;\n insertLayoutCell: InsertLayoutCellCallable;\n updateLayoutCell: UpdateLayoutCellCallable;\n deleteLayoutCell: DeleteLayoutCellCallable;\n moveLayoutCell: MoveLayoutCellCallable;\n getLayoutFieldPlugin: GetLayoutFieldPluginCallable;\n addField: AddFieldCallable;\n removeField: RemoveFieldCallable;\n}\n\ninterface FieldEditorProviderProps extends FieldEditorProps {\n children: React.ReactElement;\n}\n\ntype DropResult = {\n dropTarget: string | null;\n};\n\nexport const FieldEditorContext = React.createContext<FieldEditorContext | undefined>(undefined);\n/**\n * We try to generate the random id string but with the check that it does not exist already.\n * Chances that the same string exists are quite small, but let's check it anyway.\n *\n * In most cases, there will be no iterations anyway...\n */\nconst maxGenerateIdIterations = 100;\nconst generateFieldId = (layout: string[]): string => {\n let id = generateAlphaNumericLowerCaseId(8);\n\n let iteration = 0;\n while (layout.includes(id) && iteration < maxGenerateIdIterations) {\n id = generateAlphaNumericLowerCaseId(8);\n iteration++;\n }\n if (iteration >= maxGenerateIdIterations) {\n throw new Error(`Could not generate field ID in ${maxGenerateIdIterations} iterations.`);\n }\n return id;\n};\n\ninterface State {\n layout: CmsEditorFieldsLayout;\n fields: CmsModelField[];\n field: CmsModelField | null;\n dropTarget: DropTarget;\n}\nexport const FieldEditorProvider = ({\n parent,\n fields,\n layout,\n onChange,\n children\n}: FieldEditorProviderProps) => {\n // We need to determine depth of this provider so we can render drop zones with correct z-indexes.\n let depth = 0;\n let parentEditorContext: FieldEditorContext | undefined;\n try {\n const editor = useModelFieldEditor();\n depth = editor.depth + 1;\n parentEditorContext = editor;\n } catch {\n // There's no parent provider, so this is the top-level one.\n }\n\n const [state, setState] = useState<State>({\n layout,\n fields,\n field: null,\n dropTarget: {\n row: -1,\n index: null\n }\n });\n\n useDeepCompareEffect(() => {\n onChange({ fields: state.fields, layout: state.layout });\n }, [state.fields, state.layout]);\n\n const editField = useCallback((field: CmsModelField | null) => {\n setState(state => ({ ...state, field }));\n }, []);\n\n const onDropTarget = {\n dropTarget: parent ? parent.fieldId : null\n };\n\n const onFieldDrop = useCallback<OnFieldDropCallable>((source, dropTarget) => {\n const { pos, type, fieldType, field, fields = [] } = source;\n\n const parentId = parent ? parent.fieldId : null;\n\n if (type === \"row\") {\n if (parentId !== source.parent) {\n // We're dragging an existing row from another fieldset\n fields.forEach((field, index) => {\n insertField({\n field,\n position: {\n row: dropTarget.row,\n index: index === 0 ? null : index\n }\n });\n });\n } else if (pos && pos.row !== undefined) {\n // We're dragging a row within the same fieldset\n moveRow(pos.row, dropTarget.row);\n }\n\n return onDropTarget;\n }\n\n // Handle new layout field drops (separator, alert, tabs, etc.)\n if (type === \"newLayoutField\") {\n const plugin = getLayoutFieldPlugin(source.layoutFieldType || \"\");\n if (!plugin) {\n return null;\n }\n const layoutField = plugin.field.createField();\n insertLayoutCell(layoutField, dropTarget);\n return null;\n }\n\n // Handle moving an existing layout field to a new position\n if (type === \"layoutField\") {\n if (source.layoutField) {\n if (parentId !== source.parent) {\n // Cross-parent: insert a copy of the layout field into this context\n insertLayoutCell(source.layoutField, dropTarget);\n // Also add any fields carried by this layout field (e.g. fields inside tabs)\n if (fields.length > 0) {\n for (const f of fields) {\n addField(f);\n }\n }\n } else {\n // Same parent: move within this context\n moveLayoutCell(source.layoutField.id, dropTarget);\n }\n }\n return onDropTarget;\n }\n\n // If source pos is set, we are moving an existing field.\n if (pos) {\n if (!field) {\n return onDropTarget;\n }\n if (parentId !== source.parent) {\n // We're dragging an existing field from another fieldset\n insertField({ field, position: dropTarget });\n } else {\n // We're dragging a field within the same fieldset\n moveField({ field, position: dropTarget });\n }\n return onDropTarget;\n }\n\n if (!fieldType) {\n return null;\n }\n const plugin = getFieldPlugin(fieldType);\n if (!plugin) {\n return null;\n }\n\n const fieldData = plugin.field.createField() as CmsModelField;\n\n if (plugin.field.canEditSettings !== false) {\n editField(fieldData);\n setState(state => ({\n ...state,\n dropTarget\n }));\n } else {\n insertField({ field: fieldData, position: dropTarget });\n }\n return null;\n }, []);\n\n const onEndDrag: OnEndDragCallable<DragObject, DropResult> = (\n { type, field, fields, layoutField },\n monitor\n ) => {\n if (!monitor.didDrop()) {\n return;\n }\n\n // Check if we dropped outside of the source fieldset, and if yes, remove the item from the original parent.\n const monitorResult = monitor.getDropResult();\n const parentId = parent ? parent.fieldId : null;\n if (monitorResult?.dropTarget === parentId) {\n return;\n }\n\n if (type === \"layoutField\" && layoutField?.id) {\n deleteLayoutCell(layoutField.id);\n return;\n }\n\n const removeFields = type === \"row\" ? fields || [] : field ? [field] : [];\n removeFields.forEach(field => deleteField(field));\n };\n\n const getFieldsInLayout: GetFieldsInLayoutCallable = () => {\n // Replace every field ID with actual field object, pass through layout fields.\n return state.layout\n .filter(arr => arr.length)\n .map(row => {\n return row\n .map((cell: CmsEditorLayoutCell) => {\n if (isLayoutField(cell)) {\n return cell;\n }\n return getField({ id: cell });\n })\n .filter(Boolean);\n })\n .filter(row => {\n return row.length > 0;\n }) as (CmsModelField | CmsLayoutField)[][];\n };\n\n /**\n * Return field plugin.\n */\n const getFieldPlugin: GetFieldPluginCallable = type => {\n return plugins\n .byType<CmsModelFieldTypePlugin>(\"cms-editor-field-type\")\n .find(plugin => plugin.field.type === type);\n };\n\n const getFieldRendererPlugin: GetFieldRendererCallable = name => {\n return plugins\n .byType<CmsModelFieldRendererPlugin>(\"cms-editor-field-renderer\")\n .find(plugin => plugin.renderer.rendererName === name);\n };\n\n /**\n * Checks if field of given type already exists in the list of fields.\n */\n const getField: GetFieldCallable = query => {\n return state.fields.find(field => {\n for (const key in query) {\n if (!(key in field)) {\n return false;\n }\n\n if (field[key as keyof typeof field] !== query[key as keyof typeof query]) {\n return false;\n }\n }\n\n return true;\n });\n };\n\n /**\n * Inserts a new field into the target position.\n */\n const insertField: InsertFieldCallable = ({ field, position }) => {\n if (!field.id) {\n field.id = generateFieldId(\n layout.flat().filter((c): c is string => typeof c === \"string\")\n );\n }\n\n if (!field.type) {\n throw new Error(`Field \"type\" missing.`);\n }\n\n const fieldPlugin = getFieldPlugin(field.type);\n if (!fieldPlugin) {\n throw new Error(`No plugin found for field type \"${field.type}\".`);\n }\n\n setState(prev => {\n const next: State = {\n ...prev,\n fields: (prev.fields || []).concat(field)\n };\n\n // Move field to position where it was dropped.\n return utils.moveField({ field, position, data: next });\n });\n };\n\n /**\n * Moves field to the given target position.\n */\n const moveField: MoveFieldCallable = ({ field, position }) => {\n setState(data => {\n return utils.moveField<State>({ field, position, data });\n });\n };\n\n /**\n * Moves row to a destination row.\n */\n const moveRow: MoveRowCallable = (source, destination) => {\n setState(data => {\n return utils.moveRow({ data, source, destination });\n });\n };\n\n /**\n * Updates field.\n */\n const updateField: UpdateFieldCallable = field => {\n setState(data => {\n for (let i = 0; i < data.fields.length; i++) {\n if (data.fields[i].id === field.id) {\n return dot.set(data, `fields.${i}`, field);\n }\n }\n return data;\n });\n };\n\n /**\n * Deletes a field (both from the list of field and the layout).\n */\n const deleteField: DeleteFieldCallable = field => {\n setState(data => {\n return utils.deleteField({ field, data });\n });\n };\n\n /**\n * Add a field to the fields array without placing it in the layout.\n * Used by tabs to hoist fields to the parent context.\n */\n const addField: AddFieldCallable = field => {\n setState(prev => {\n // Don't add if already exists\n if (prev.fields.some(f => f.id === field.id)) {\n return prev;\n }\n return { ...prev, fields: [...prev.fields, field] };\n });\n };\n\n /**\n * Remove a field from the fields array by ID.\n * Used by tabs to un-hoist fields from the parent context.\n */\n const removeField: RemoveFieldCallable = fieldId => {\n setState(prev => ({\n ...prev,\n fields: prev.fields.filter(f => f.id !== fieldId)\n }));\n };\n\n /**\n * Return layout field plugin by type.\n */\n const getLayoutFieldPlugin: GetLayoutFieldPluginCallable = type => {\n return plugins\n .byType<CmsModelLayoutFieldTypePlugin>(\"cms-editor-layout-field-type\")\n .find(plugin => plugin.field.type === type);\n };\n\n /**\n * Insert a layout field into the layout at the given position.\n */\n const insertLayoutCell: InsertLayoutCellCallable = (layoutField, position) => {\n // Auto-assign a unique ID to the layout field.\n const cell = {\n ...layoutField,\n id: generateAlphaNumericLowerCaseId(8)\n } as CmsLayoutField;\n\n setState(prev => {\n const newLayout = [...prev.layout.map(row => [...row])];\n const { row } = position;\n\n // Layout fields always occupy a full row.\n newLayout.splice(row, 0, [cell]);\n\n return { ...prev, layout: newLayout.filter(r => r.length > 0) };\n });\n };\n\n /**\n * Update a layout field found by its ID.\n */\n const updateLayoutCell: UpdateLayoutCellCallable = (fieldId, layoutField) => {\n setState(prev => {\n const newLayout = prev.layout.map(row =>\n row.map(cell => {\n if (isLayoutField(cell) && cell.id === fieldId) {\n return { ...layoutField, id: fieldId };\n }\n return cell;\n })\n );\n return { ...prev, layout: newLayout };\n });\n };\n\n /**\n * Delete a layout field found by its ID.\n * If it's a tabs layout field, also remove all hoisted fields from the fields array.\n */\n const deleteLayoutCell: DeleteLayoutCellCallable = fieldId => {\n setState(prev => {\n let fields = prev.fields;\n\n // Find the descriptor to check if it's tabs (need to clean up hoisted fields)\n for (const row of prev.layout) {\n for (const cell of row) {\n if (isLayoutField(cell) && cell.id === fieldId && cell.type === \"tabs\") {\n const tabsField =\n cell as import(\"@webiny/app-headless-cms-common/types/model.js\").CmsTabLayoutField;\n const fieldIdsInTabs = new Set<string>();\n tabsField.tabs.forEach(tab => {\n tab.layout.forEach(r => {\n r.forEach(c => {\n if (typeof c === \"string\") {\n fieldIdsInTabs.add(c);\n }\n });\n });\n });\n if (fieldIdsInTabs.size > 0) {\n fields = fields.filter(f => !fieldIdsInTabs.has(f.id));\n }\n }\n }\n }\n\n const newLayout = prev.layout.map(row =>\n row.filter(cell => !(isLayoutField(cell) && cell.id === fieldId))\n );\n\n return {\n ...prev,\n fields,\n layout: newLayout.filter(r => r.length > 0)\n };\n });\n };\n\n /**\n * Move a layout field (found by its ID) to a new position.\n */\n const moveLayoutCell: MoveLayoutCellCallable = (fieldId, position) => {\n setState(prev => {\n // Find the layout field by ID.\n let layoutField: CmsLayoutField | undefined;\n let sourceRow = -1;\n\n for (let ri = 0; ri < prev.layout.length; ri++) {\n for (const cell of prev.layout[ri]) {\n if (isLayoutField(cell) && cell.id === fieldId) {\n layoutField = cell;\n sourceRow = ri;\n break;\n }\n }\n if (layoutField) {\n break;\n }\n }\n\n if (!layoutField || sourceRow === -1) {\n return prev;\n }\n\n // 1. Remove the layout field from its source position.\n const withoutSource = prev.layout.map(row =>\n row.filter(cell => !(isLayoutField(cell) && cell.id === fieldId))\n );\n\n // 2. Was the source row emptied?\n const sourceRowEmptied = withoutSource[sourceRow].length === 0;\n\n // 3. Calculate the effective target row index.\n // The drop target row was computed against the original layout.\n // If we emptied a source row that was BEFORE the target, shift down by 1.\n let targetRow = position.row;\n if (sourceRowEmptied && sourceRow < targetRow) {\n targetRow--;\n }\n\n // 4. Remove empty rows.\n const cleaned = withoutSource.filter(r => r.length > 0);\n\n // 5. Clamp target row and insert the layout field as its own row.\n targetRow = Math.max(0, Math.min(targetRow, cleaned.length));\n cleaned.splice(targetRow, 0, [layoutField]);\n\n return { ...prev, layout: cleaned };\n });\n };\n\n const noConflict: NoConflictCallable = useCallback(\n (isVisible?: IsVisibleCallable) => item => {\n const sameParent = item.parent === onDropTarget.dropTarget;\n const draggedFields: string[] = [];\n switch (item.type) {\n case \"row\":\n (item.fields || []).forEach(field => draggedFields.push(field.fieldId));\n break;\n case \"field\":\n if (!item.field) {\n break;\n }\n draggedFields.push(item.field.fieldId);\n break;\n default:\n break;\n }\n\n if (\n draggedFields.length &&\n !sameParent &&\n fields.some(field => draggedFields.includes(field.fieldId))\n ) {\n return false;\n }\n\n return typeof isVisible === \"function\" ? isVisible(item) : true;\n },\n [fields.map(f => f.fieldId).join(\".\")]\n );\n\n const value: FieldEditorContext = {\n parent,\n parentEditorContext,\n depth,\n getFieldsInLayout,\n getFieldPlugin,\n getFieldRendererPlugin,\n getField,\n editField,\n field: state.field,\n dropTarget: state.dropTarget,\n onFieldDrop,\n onEndDrag,\n insertField,\n moveField,\n moveRow,\n updateField,\n deleteField,\n insertLayoutCell,\n updateLayoutCell,\n deleteLayoutCell,\n moveLayoutCell,\n getLayoutFieldPlugin,\n addField,\n removeField,\n fields: getFieldsInLayout(),\n noConflict,\n layout: state.layout\n };\n\n return <FieldEditorContext.Provider value={value}>{children}</FieldEditorContext.Provider>;\n};\n"],"names":["FieldEditorContext","React","undefined","maxGenerateIdIterations","generateFieldId","layout","id","generateAlphaNumericLowerCaseId","iteration","Error","FieldEditorProvider","parent","fields","onChange","children","depth","parentEditorContext","editor","useModelFieldEditor","state","setState","useState","useDeepCompareEffect","editField","useCallback","field","onDropTarget","onFieldDrop","source","dropTarget","pos","type","fieldType","parentId","index","insertField","moveRow","plugin","getLayoutFieldPlugin","layoutField","insertLayoutCell","f","addField","moveLayoutCell","moveField","getFieldPlugin","fieldData","onEndDrag","monitor","monitorResult","deleteLayoutCell","removeFields","deleteField","getFieldsInLayout","arr","row","cell","isLayoutField","getField","Boolean","plugins","getFieldRendererPlugin","name","query","key","position","c","fieldPlugin","prev","next","utils","data","destination","updateField","i","dot","removeField","fieldId","newLayout","r","updateLayoutCell","tabsField","fieldIdsInTabs","Set","tab","sourceRow","ri","withoutSource","sourceRowEmptied","targetRow","cleaned","Math","noConflict","isVisible","item","sameParent","draggedFields","value"],"mappings":"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"}
|
|
@@ -1,33 +1,26 @@
|
|
|
1
|
-
import
|
|
1
|
+
import react from "react";
|
|
2
2
|
import { useModelFieldEditor } from "./useModelFieldEditor.js";
|
|
3
3
|
import { Text } from "@webiny/admin-ui";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const onDelete = () => {
|
|
24
|
-
deleteLayoutCell(field.id);
|
|
25
|
-
};
|
|
26
|
-
return plugin.field.render({
|
|
27
|
-
field,
|
|
28
|
-
onUpdate,
|
|
29
|
-
onDelete
|
|
30
|
-
});
|
|
4
|
+
const LayoutCell = ({ field })=>{
|
|
5
|
+
const { getLayoutFieldPlugin, updateLayoutCell, deleteLayoutCell } = useModelFieldEditor();
|
|
6
|
+
const plugin = getLayoutFieldPlugin(field.type);
|
|
7
|
+
if (!plugin) return /*#__PURE__*/ react.createElement("div", {
|
|
8
|
+
className: "p-md bg-destructive-dimmed rounded-xs"
|
|
9
|
+
}, /*#__PURE__*/ react.createElement(Text, {
|
|
10
|
+
size: "sm"
|
|
11
|
+
}, 'Unknown layout field type: "', field.type, '"'));
|
|
12
|
+
const onUpdate = (d)=>{
|
|
13
|
+
updateLayoutCell(field.id, d);
|
|
14
|
+
};
|
|
15
|
+
const onDelete = ()=>{
|
|
16
|
+
deleteLayoutCell(field.id);
|
|
17
|
+
};
|
|
18
|
+
return plugin.field.render({
|
|
19
|
+
field,
|
|
20
|
+
onUpdate,
|
|
21
|
+
onDelete
|
|
22
|
+
});
|
|
31
23
|
};
|
|
24
|
+
export { LayoutCell };
|
|
32
25
|
|
|
33
26
|
//# sourceMappingURL=LayoutCell.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"admin/components/FieldEditor/LayoutCell.js","sources":["../../../../src/admin/components/FieldEditor/LayoutCell.tsx"],"sourcesContent":["import React from \"react\";\nimport type { CmsLayoutField } from \"@webiny/app-headless-cms-common/types/model.js\";\nimport { useModelFieldEditor } from \"./useModelFieldEditor.js\";\nimport { Text } from \"@webiny/admin-ui\";\n\ninterface LayoutCellProps {\n field: CmsLayoutField;\n rowIndex: number;\n cellIndex: number;\n}\n\nexport const LayoutCell = ({ field }: LayoutCellProps) => {\n const { getLayoutFieldPlugin, updateLayoutCell, deleteLayoutCell } = useModelFieldEditor();\n\n const plugin = getLayoutFieldPlugin(field.type);\n\n if (!plugin) {\n return (\n <div className={\"p-md bg-destructive-dimmed rounded-xs\"}>\n <Text size={\"sm\"}>Unknown layout field type: "{field.type}"</Text>\n </div>\n );\n }\n\n const onUpdate = (d: CmsLayoutField) => {\n updateLayoutCell(field.id, d);\n };\n\n const onDelete = () => {\n deleteLayoutCell(field.id);\n };\n\n return plugin.field.render({ field, onUpdate, onDelete });\n};\n"],"names":["LayoutCell","field","getLayoutFieldPlugin","updateLayoutCell","deleteLayoutCell","useModelFieldEditor","plugin","Text","onUpdate","d","onDelete"],"mappings":";;;AAWO,MAAMA,aAAa,CAAC,EAAEC,KAAK,EAAmB;IACjD,MAAM,EAAEC,oBAAoB,EAAEC,gBAAgB,EAAEC,gBAAgB,EAAE,GAAGC;IAErE,MAAMC,SAASJ,qBAAqBD,MAAM,IAAI;IAE9C,IAAI,CAACK,QACD,OAAO,WAAP,GACI,oBAAC;QAAI,WAAW;qBACZ,oBAACC,MAAIA;QAAC,MAAM;OAAM,gCAAkCN,MAAM,IAAI,EAAC;IAK3E,MAAMO,WAAW,CAACC;QACdN,iBAAiBF,MAAM,EAAE,EAAEQ;IAC/B;IAEA,MAAMC,WAAW;QACbN,iBAAiBH,MAAM,EAAE;IAC7B;IAEA,OAAOK,OAAO,KAAK,CAAC,MAAM,CAAC;QAAEL;QAAOO;QAAUE;IAAS;AAC3D"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { useContext } from "react";
|
|
2
2
|
import { FieldEditorContext } from "./FieldEditorContext.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
return context;
|
|
3
|
+
function useModelFieldEditor() {
|
|
4
|
+
const context = useContext(FieldEditorContext);
|
|
5
|
+
if (!context) throw Error('FieldEditorContext is missing in the component tree. Are you useing the "useFieldEditor()" hook in the right place?');
|
|
6
|
+
return context;
|
|
9
7
|
}
|
|
8
|
+
export { useModelFieldEditor };
|
|
10
9
|
|
|
11
10
|
//# sourceMappingURL=useModelFieldEditor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"admin/components/FieldEditor/useModelFieldEditor.js","sources":["../../../../src/admin/components/FieldEditor/useModelFieldEditor.ts"],"sourcesContent":["import { useContext } from \"react\";\nimport { FieldEditorContext } from \"./FieldEditorContext.js\";\n\nexport function useModelFieldEditor() {\n const context = useContext(FieldEditorContext);\n if (!context) {\n throw Error(\n `FieldEditorContext is missing in the component tree. Are you useing the \"useFieldEditor()\" hook in the right place?`\n );\n }\n\n return context;\n}\n"],"names":["useModelFieldEditor","context","useContext","FieldEditorContext","Error"],"mappings":";;AAGO,SAASA;IACZ,MAAMC,UAAUC,WAAWC;IAC3B,IAAI,CAACF,SACD,MAAMG,MACF;IAIR,OAAOH;AACX"}
|
|
@@ -1,43 +1,29 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
field
|
|
5
|
-
data
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
newLayout[currentRowIndex].push(cell);
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
const field = data.fields.find(item => item.id === cell);
|
|
29
|
-
if (!field) {
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
if (!Array.isArray(newLayout[currentRowIndex])) {
|
|
33
|
-
newLayout[currentRowIndex] = [];
|
|
34
|
-
}
|
|
35
|
-
newLayout[currentRowIndex].push(cell);
|
|
36
|
-
});
|
|
37
|
-
newLayout[currentRowIndex] && newLayout[currentRowIndex].length && currentRowIndex++;
|
|
1
|
+
import dot_prop_immutable from "dot-prop-immutable";
|
|
2
|
+
const deleteField = (params)=>{
|
|
3
|
+
const { field, data: prev } = params;
|
|
4
|
+
const fieldIndex = prev.fields.findIndex((item)=>item.id === field.id);
|
|
5
|
+
const data = dot_prop_immutable["delete"](prev, `fields.${fieldIndex}`);
|
|
6
|
+
return dot_prop_immutable.set(data, "layout", (layout)=>{
|
|
7
|
+
if (!layout) return [];
|
|
8
|
+
const newLayout = [];
|
|
9
|
+
let currentRowIndex = 0;
|
|
10
|
+
layout.forEach((row)=>{
|
|
11
|
+
row.forEach((cell)=>{
|
|
12
|
+
if ("string" != typeof cell) {
|
|
13
|
+
if (!Array.isArray(newLayout[currentRowIndex])) newLayout[currentRowIndex] = [];
|
|
14
|
+
newLayout[currentRowIndex].push(cell);
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const field = data.fields.find((item)=>item.id === cell);
|
|
18
|
+
if (!field) return;
|
|
19
|
+
if (!Array.isArray(newLayout[currentRowIndex])) newLayout[currentRowIndex] = [];
|
|
20
|
+
newLayout[currentRowIndex].push(cell);
|
|
21
|
+
});
|
|
22
|
+
newLayout[currentRowIndex] && newLayout[currentRowIndex].length && currentRowIndex++;
|
|
23
|
+
});
|
|
24
|
+
return newLayout;
|
|
38
25
|
});
|
|
39
|
-
return newLayout;
|
|
40
|
-
});
|
|
41
26
|
};
|
|
27
|
+
export default deleteField;
|
|
42
28
|
|
|
43
29
|
//# sourceMappingURL=deleteField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"admin/components/FieldEditor/utils/deleteField.js","sources":["../../../../../src/admin/components/FieldEditor/utils/deleteField.ts"],"sourcesContent":["import dot from \"dot-prop-immutable\";\nimport type { CmsModelField, CmsModel } from \"~/types.js\";\nimport type { CmsEditorLayoutCell } from \"@webiny/app-headless-cms-common/types/model.js\";\n\ntype DeleteFieldParamsData = Pick<CmsModel, \"fields\" | \"layout\">;\ninterface DeleteFieldParams {\n field: Pick<CmsModelField, \"id\">;\n data: DeleteFieldParamsData;\n}\nexport default (params: DeleteFieldParams) => {\n const { field, data: prev } = params;\n // Remove the field from fields list...\n const fieldIndex = prev.fields.findIndex(item => item.id === field.id);\n const data = dot.delete(prev, `fields.${fieldIndex}`) as DeleteFieldParamsData;\n\n // ...and rebuild the layout object, preserving layout descriptors.\n return dot.set(data, \"layout\", (layout: DeleteFieldParamsData[\"layout\"]) => {\n if (!layout) {\n return [];\n }\n const newLayout: CmsEditorLayoutCell[][] = [];\n let currentRowIndex = 0;\n layout.forEach(row => {\n row.forEach(cell => {\n // Preserve layout descriptors (objects) as-is\n if (typeof cell !== \"string\") {\n if (!Array.isArray(newLayout[currentRowIndex])) {\n newLayout[currentRowIndex] = [];\n }\n newLayout[currentRowIndex].push(cell);\n return;\n }\n const field = data.fields.find(item => item.id === cell);\n if (!field) {\n return;\n }\n if (!Array.isArray(newLayout[currentRowIndex])) {\n newLayout[currentRowIndex] = [];\n }\n\n newLayout[currentRowIndex].push(cell);\n });\n newLayout[currentRowIndex] && newLayout[currentRowIndex].length && currentRowIndex++;\n });\n\n return newLayout;\n });\n};\n"],"names":["params","field","prev","fieldIndex","item","data","dot","layout","newLayout","currentRowIndex","row","cell","Array"],"mappings":";AASA,oBAAgB,CAAAA;IACZ,MAAM,EAAEC,KAAK,EAAE,MAAMC,IAAI,EAAE,GAAGF;IAE9B,MAAMG,aAAaD,KAAK,MAAM,CAAC,SAAS,CAACE,CAAAA,OAAQA,KAAK,EAAE,KAAKH,MAAM,EAAE;IACrE,MAAMI,OAAOC,kBAAAA,CAAAA,SAAU,CAACJ,MAAM,CAAC,OAAO,EAAEC,YAAY;IAGpD,OAAOG,mBAAAA,GAAO,CAACD,MAAM,UAAU,CAACE;QAC5B,IAAI,CAACA,QACD,OAAO,EAAE;QAEb,MAAMC,YAAqC,EAAE;QAC7C,IAAIC,kBAAkB;QACtBF,OAAO,OAAO,CAACG,CAAAA;YACXA,IAAI,OAAO,CAACC,CAAAA;gBAER,IAAI,AAAgB,YAAhB,OAAOA,MAAmB;oBAC1B,IAAI,CAACC,MAAM,OAAO,CAACJ,SAAS,CAACC,gBAAgB,GACzCD,SAAS,CAACC,gBAAgB,GAAG,EAAE;oBAEnCD,SAAS,CAACC,gBAAgB,CAAC,IAAI,CAACE;oBAChC;gBACJ;gBACA,MAAMV,QAAQI,KAAK,MAAM,CAAC,IAAI,CAACD,CAAAA,OAAQA,KAAK,EAAE,KAAKO;gBACnD,IAAI,CAACV,OACD;gBAEJ,IAAI,CAACW,MAAM,OAAO,CAACJ,SAAS,CAACC,gBAAgB,GACzCD,SAAS,CAACC,gBAAgB,GAAG,EAAE;gBAGnCD,SAAS,CAACC,gBAAgB,CAAC,IAAI,CAACE;YACpC;YACAH,SAAS,CAACC,gBAAgB,IAAID,SAAS,CAACC,gBAAgB,CAAC,MAAM,IAAIA;QACvE;QAEA,OAAOD;IACX;AACJ"}
|
|
@@ -1,27 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
field
|
|
4
|
-
data
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
if (cell === id) {
|
|
17
|
-
return {
|
|
18
|
-
row: i,
|
|
19
|
-
index: j
|
|
20
|
-
};
|
|
21
|
-
}
|
|
1
|
+
const getFieldPosition = (params)=>{
|
|
2
|
+
const { field, data } = params;
|
|
3
|
+
const id = "string" == typeof field ? field : field.id;
|
|
4
|
+
const layout = data.layout ? data.layout : [];
|
|
5
|
+
for(let i = 0; i < layout.length; i++){
|
|
6
|
+
const row = layout[i];
|
|
7
|
+
for(let j = 0; j < row.length; j++){
|
|
8
|
+
const cell = row[j];
|
|
9
|
+
if ("string" == typeof cell) {
|
|
10
|
+
if (cell === id) return {
|
|
11
|
+
row: i,
|
|
12
|
+
index: j
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
}
|
|
22
16
|
}
|
|
23
|
-
|
|
24
|
-
return null;
|
|
17
|
+
return null;
|
|
25
18
|
};
|
|
19
|
+
export default getFieldPosition;
|
|
26
20
|
|
|
27
21
|
//# sourceMappingURL=getFieldPosition.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"admin/components/FieldEditor/utils/getFieldPosition.js","sources":["../../../../../src/admin/components/FieldEditor/utils/getFieldPosition.ts"],"sourcesContent":["import type { CmsModelField, CmsModel, FieldLayoutPosition } from \"~/types.js\";\n\ninterface GetFieldPositionParams {\n field: string | CmsModelField;\n data: Pick<CmsModel, \"layout\">;\n}\nexport default (params: GetFieldPositionParams): FieldLayoutPosition | null => {\n const { field, data } = params;\n const id = typeof field === \"string\" ? field : field.id;\n const layout = data.layout ? data.layout : [];\n for (let i = 0; i < layout.length; i++) {\n const row = layout[i];\n for (let j = 0; j < row.length; j++) {\n const cell = row[j];\n // Skip layout descriptors (objects) — only match string field IDs\n if (typeof cell !== \"string\") {\n continue;\n }\n if (cell === id) {\n return { row: i, index: j };\n }\n }\n }\n\n return null;\n};\n"],"names":["params","field","data","id","layout","i","row","j","cell"],"mappings":"AAMA,yBAAgB,CAAAA;IACZ,MAAM,EAAEC,KAAK,EAAEC,IAAI,EAAE,GAAGF;IACxB,MAAMG,KAAK,AAAiB,YAAjB,OAAOF,QAAqBA,QAAQA,MAAM,EAAE;IACvD,MAAMG,SAASF,KAAK,MAAM,GAAGA,KAAK,MAAM,GAAG,EAAE;IAC7C,IAAK,IAAIG,IAAI,GAAGA,IAAID,OAAO,MAAM,EAAEC,IAAK;QACpC,MAAMC,MAAMF,MAAM,CAACC,EAAE;QACrB,IAAK,IAAIE,IAAI,GAAGA,IAAID,IAAI,MAAM,EAAEC,IAAK;YACjC,MAAMC,OAAOF,GAAG,CAACC,EAAE;YAEnB,IAAI,AAAgB,YAAhB,OAAOC,MAGX;gBAAA,IAAIA,SAASL,IACT,OAAO;oBAAE,KAAKE;oBAAG,OAAOE;gBAAE;YAC9B;QACJ;IACJ;IAEA,OAAO;AACX"}
|
|
@@ -2,5 +2,3 @@ export { default as getFieldPosition } from "./getFieldPosition.js";
|
|
|
2
2
|
export { default as moveField } from "./moveField.js";
|
|
3
3
|
export { default as deleteField } from "./deleteField.js";
|
|
4
4
|
export { default as moveRow } from "./moveRow.js";
|
|
5
|
-
|
|
6
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1,52 +1,41 @@
|
|
|
1
|
-
import
|
|
1
|
+
import dot_prop_immutable from "dot-prop-immutable";
|
|
2
2
|
import getFieldPosition from "./getFieldPosition.js";
|
|
3
|
-
const moveField = params
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
return
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
return dot.set(next, "layout", layout => {
|
|
35
|
-
const newLayout = [...layout];
|
|
36
|
-
newLayout.splice(row, 0, [fieldId]);
|
|
37
|
-
return newLayout;
|
|
3
|
+
const moveField = (params)=>{
|
|
4
|
+
const { field, position, data: prev } = params;
|
|
5
|
+
const { row, index } = position;
|
|
6
|
+
const fieldId = "string" == typeof field ? field : field.id;
|
|
7
|
+
let next = {
|
|
8
|
+
...prev,
|
|
9
|
+
layout: prev.layout ? prev.layout || [] : []
|
|
10
|
+
};
|
|
11
|
+
const existingPosition = getFieldPosition({
|
|
12
|
+
field: fieldId,
|
|
13
|
+
data: prev
|
|
14
|
+
});
|
|
15
|
+
if (existingPosition) next = dot_prop_immutable["delete"](prev, `layout.${existingPosition.row}.${existingPosition.index}`);
|
|
16
|
+
if (!next.layout[row]) return dot_prop_immutable.set(next, `layout.${row}`, [
|
|
17
|
+
fieldId
|
|
18
|
+
]);
|
|
19
|
+
if (null === index) return dot_prop_immutable.set(next, "layout", (layout)=>{
|
|
20
|
+
const newLayout = [
|
|
21
|
+
...layout
|
|
22
|
+
];
|
|
23
|
+
newLayout.splice(row, 0, [
|
|
24
|
+
fieldId
|
|
25
|
+
]);
|
|
26
|
+
return newLayout;
|
|
27
|
+
});
|
|
28
|
+
return dot_prop_immutable.set(next, `layout.${row}`, (layout)=>{
|
|
29
|
+
const newLayout = [
|
|
30
|
+
...layout
|
|
31
|
+
];
|
|
32
|
+
newLayout.splice(index, 0, fieldId);
|
|
33
|
+
return newLayout;
|
|
38
34
|
});
|
|
39
|
-
}
|
|
40
|
-
return dot.set(next, `layout.${row}`, layout => {
|
|
41
|
-
const newLayout = [...layout];
|
|
42
|
-
newLayout.splice(index, 0, fieldId);
|
|
43
|
-
return newLayout;
|
|
44
|
-
});
|
|
45
|
-
};
|
|
46
|
-
export default params => {
|
|
47
|
-
return dot.set(moveField(params), "layout", layout => {
|
|
48
|
-
return [...layout].filter(row => row.length > 0);
|
|
49
|
-
});
|
|
50
35
|
};
|
|
36
|
+
const utils_moveField = (params)=>dot_prop_immutable.set(moveField(params), "layout", (layout)=>[
|
|
37
|
+
...layout
|
|
38
|
+
].filter((row)=>row.length > 0));
|
|
39
|
+
export default utils_moveField;
|
|
51
40
|
|
|
52
41
|
//# sourceMappingURL=moveField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"admin/components/FieldEditor/utils/moveField.js","sources":["../../../../../src/admin/components/FieldEditor/utils/moveField.ts"],"sourcesContent":["import dot from \"dot-prop-immutable\";\nimport type {\n CmsModelField,\n CmsEditorFieldId,\n CmsModel as BaseCmsModel,\n FieldLayoutPosition\n} from \"~/types.js\";\nimport getFieldPosition from \"./getFieldPosition.js\";\n\ntype CmsModel = Required<Pick<BaseCmsModel, \"fields\" | \"layout\">>;\n\ninterface MoveFieldParams<T> {\n field: CmsEditorFieldId | Pick<CmsModelField, \"id\">;\n position: FieldLayoutPosition;\n data: T;\n}\n\nconst moveField = <T extends CmsModel>(params: MoveFieldParams<T>) => {\n const { field, position, data: prev } = params;\n const { row, index } = position;\n const fieldId = typeof field === \"string\" ? field : field.id;\n\n let next: T = {\n ...prev,\n layout: prev.layout ? prev.layout || [] : []\n };\n\n const existingPosition = getFieldPosition({ field: fieldId, data: prev });\n\n if (existingPosition) {\n next = dot.delete(prev, `layout.${existingPosition.row}.${existingPosition.index}`) as T;\n }\n\n // Setting a form field into a new non-existing row.\n if (!next.layout[row]) {\n return dot.set(next, `layout.${row}`, [fieldId]);\n }\n\n // Drop the field at the specified index.\n if (index === null) {\n // Create a new row with the new field at the given row index,\n return dot.set(next, \"layout\", (layout: string[][]) => {\n const newLayout = [...layout];\n newLayout.splice(row, 0, [fieldId]);\n return newLayout;\n });\n }\n\n return dot.set(next, `layout.${row}`, (layout: string[]) => {\n const newLayout = [...layout];\n newLayout.splice(index, 0, fieldId);\n return newLayout;\n });\n};\n\nexport default <T extends CmsModel>(params: MoveFieldParams<T>): T => {\n return dot.set(moveField<T>(params), \"layout\", (layout: string[][]) => {\n return [...layout].filter(row => row.length > 0);\n });\n};\n"],"names":["moveField","params","field","position","prev","row","index","fieldId","next","existingPosition","getFieldPosition","dot","layout","newLayout"],"mappings":";;AAiBA,MAAMA,YAAY,CAAqBC;IACnC,MAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAE,MAAMC,IAAI,EAAE,GAAGH;IACxC,MAAM,EAAEI,GAAG,EAAEC,KAAK,EAAE,GAAGH;IACvB,MAAMI,UAAU,AAAiB,YAAjB,OAAOL,QAAqBA,QAAQA,MAAM,EAAE;IAE5D,IAAIM,OAAU;QACV,GAAGJ,IAAI;QACP,QAAQA,KAAK,MAAM,GAAGA,KAAK,MAAM,IAAI,EAAE,GAAG,EAAE;IAChD;IAEA,MAAMK,mBAAmBC,iBAAiB;QAAE,OAAOH;QAAS,MAAMH;IAAK;IAEvE,IAAIK,kBACAD,OAAOG,kBAAAA,CAAAA,SAAU,CAACP,MAAM,CAAC,OAAO,EAAEK,iBAAiB,GAAG,CAAC,CAAC,EAAEA,iBAAiB,KAAK,EAAE;IAItF,IAAI,CAACD,KAAK,MAAM,CAACH,IAAI,EACjB,OAAOM,mBAAAA,GAAO,CAACH,MAAM,CAAC,OAAO,EAAEH,KAAK,EAAE;QAACE;KAAQ;IAInD,IAAID,AAAU,SAAVA,OAEA,OAAOK,mBAAAA,GAAO,CAACH,MAAM,UAAU,CAACI;QAC5B,MAAMC,YAAY;eAAID;SAAO;QAC7BC,UAAU,MAAM,CAACR,KAAK,GAAG;YAACE;SAAQ;QAClC,OAAOM;IACX;IAGJ,OAAOF,mBAAAA,GAAO,CAACH,MAAM,CAAC,OAAO,EAAEH,KAAK,EAAE,CAACO;QACnC,MAAMC,YAAY;eAAID;SAAO;QAC7BC,UAAU,MAAM,CAACP,OAAO,GAAGC;QAC3B,OAAOM;IACX;AACJ;AAEA,wBAAe,CAAqBZ,SACzBU,mBAAAA,GAAO,CAACX,UAAaC,SAAS,UAAU,CAACW,SACrC;eAAIA;SAAO,CAAC,MAAM,CAACP,CAAAA,MAAOA,IAAI,MAAM,GAAG"}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import dot_prop_immutable from "dot-prop-immutable";
|
|
2
|
+
const moveRow = ({ data, source, destination })=>dot_prop_immutable.set(data, "layout", (layout)=>source < destination ? [
|
|
3
|
+
...layout.slice(0, source),
|
|
4
|
+
...layout.slice(source + 1, destination),
|
|
5
|
+
layout[source],
|
|
6
|
+
...layout.slice(destination)
|
|
7
|
+
] : [
|
|
8
|
+
...layout.slice(0, destination),
|
|
9
|
+
layout[source],
|
|
10
|
+
...layout.slice(destination, source),
|
|
11
|
+
...layout.slice(source + 1)
|
|
12
|
+
]);
|
|
13
|
+
export default moveRow;
|
|
11
14
|
|
|
12
15
|
//# sourceMappingURL=moveRow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"admin/components/FieldEditor/utils/moveRow.js","sources":["../../../../../src/admin/components/FieldEditor/utils/moveRow.ts"],"sourcesContent":["import dot from \"dot-prop-immutable\";\nimport type { CmsModel } from \"~/types.js\";\n\ninterface Params {\n source: number;\n destination: number;\n data: Pick<CmsModel, \"layout\">;\n}\nexport default ({ data, source, destination }: Params) => {\n return dot.set(data, \"layout\", (layout: string[][]) => {\n return source < destination\n ? [\n ...layout.slice(0, source),\n ...layout.slice(source + 1, destination),\n layout[source],\n ...layout.slice(destination)\n ]\n : [\n ...layout.slice(0, destination),\n layout[source],\n ...layout.slice(destination, source),\n ...layout.slice(source + 1)\n ];\n });\n};\n"],"names":["data","source","destination","dot","layout"],"mappings":";AAQA,gBAAgB,GAAEA,IAAI,EAAEC,MAAM,EAAEC,WAAW,EAAU,GAC1CC,mBAAAA,GAAO,CAACH,MAAM,UAAU,CAACI,SACrBH,SAASC,cACV;eACOE,OAAO,KAAK,CAAC,GAAGH;eAChBG,OAAO,KAAK,CAACH,SAAS,GAAGC;YAC5BE,MAAM,CAACH,OAAO;eACXG,OAAO,KAAK,CAACF;SACnB,GACD;eACOE,OAAO,KAAK,CAAC,GAAGF;YACnBE,MAAM,CAACH,OAAO;eACXG,OAAO,KAAK,CAACF,aAAaD;eAC1BG,OAAO,KAAK,CAACH,SAAS;SAC5B"}
|