@webiny/app-headless-cms 6.0.0-alpha.0 → 6.0.0-alpha.2
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/ContentEntryListConfig.d.ts +7 -2
- package/HeadlessCMS.d.ts +1 -1
- package/HeadlessCMS.js.map +1 -1
- package/admin/components/ContentEntries/Filters/FieldsMapper.d.ts +2 -2
- package/admin/components/ContentEntries/Filters/FieldsMapper.js.map +1 -1
- package/admin/components/ContentEntries/Filters/FilterByStatus.js.map +1 -1
- package/admin/components/ContentEntries/Filters/Filters.js.map +1 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/adapters/EntriesGatewayInterface.d.ts +1 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/adapters/EntriesGatewayInterface.js.map +1 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/adapters/EntriesGraphQLGateway.d.ts +2 -2
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/adapters/EntriesGraphQLGateway.js.map +1 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/adapters/entries.types.d.ts +2 -2
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/adapters/entries.types.js.map +1 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/components/AutoComplete.d.ts +1 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/components/AutoComplete.js.map +1 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/components/RefPresenter.d.ts +1 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/components/RefPresenter.js.map +1 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/components/RefPresenter.test.js.map +1 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/domain/EntryMapper.d.ts +1 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/domain/EntryMapper.js.map +1 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/domain/EntryRepository.d.ts +2 -2
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/domain/EntryRepository.js.map +1 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/domain/EntryRepositoryFactory.d.ts +1 -1
- package/admin/components/ContentEntries/Filters/RefFieldRenderer/domain/EntryRepositoryFactory.js.map +1 -1
- package/admin/components/ContentEntries/Scheduler/actions/ScheduleEntryAction.d.ts +2 -0
- package/admin/components/ContentEntries/Scheduler/actions/ScheduleEntryAction.js +82 -0
- package/admin/components/ContentEntries/Scheduler/actions/ScheduleEntryAction.js.map +1 -0
- package/admin/components/ContentEntries/Scheduler/actions/hooks/useGetSchedulerItem.d.ts +11 -0
- package/admin/components/ContentEntries/Scheduler/actions/hooks/useGetSchedulerItem.js +35 -0
- package/admin/components/ContentEntries/Scheduler/actions/hooks/useGetSchedulerItem.js.map +1 -0
- package/admin/components/ContentEntries/Scheduler/adapters/SchedulerCancelGraphQLGateway.d.ts +7 -0
- package/admin/components/ContentEntries/Scheduler/adapters/SchedulerCancelGraphQLGateway.js +46 -0
- package/admin/components/ContentEntries/Scheduler/adapters/SchedulerCancelGraphQLGateway.js.map +1 -0
- package/admin/components/ContentEntries/Scheduler/adapters/SchedulerGetGraphQLGateway.d.ts +20 -0
- package/admin/components/ContentEntries/Scheduler/adapters/SchedulerGetGraphQLGateway.js +69 -0
- package/admin/components/ContentEntries/Scheduler/adapters/SchedulerGetGraphQLGateway.js.map +1 -0
- package/admin/components/ContentEntries/Scheduler/adapters/SchedulerListGraphQLGateway.d.ts +7 -0
- package/admin/components/ContentEntries/Scheduler/adapters/SchedulerListGraphQLGateway.js +86 -0
- package/admin/components/ContentEntries/Scheduler/adapters/SchedulerListGraphQLGateway.js.map +1 -0
- package/admin/components/ContentEntries/Scheduler/adapters/SchedulerPublishGraphQLGateway.d.ts +7 -0
- package/admin/components/ContentEntries/Scheduler/adapters/SchedulerPublishGraphQLGateway.js +73 -0
- package/admin/components/ContentEntries/Scheduler/adapters/SchedulerPublishGraphQLGateway.js.map +1 -0
- package/admin/components/ContentEntries/Scheduler/adapters/SchedulerUnpublishGraphQLGateway.d.ts +23 -0
- package/admin/components/ContentEntries/Scheduler/adapters/SchedulerUnpublishGraphQLGateway.js +69 -0
- package/admin/components/ContentEntries/Scheduler/adapters/SchedulerUnpublishGraphQLGateway.js.map +1 -0
- package/admin/components/ContentEntries/Scheduler/adapters/graphql/fields.d.ts +1 -0
- package/admin/components/ContentEntries/Scheduler/adapters/graphql/fields.js +20 -0
- package/admin/components/ContentEntries/Scheduler/adapters/graphql/fields.js.map +1 -0
- package/admin/components/ContentEntries/Scheduler/adapters/index.d.ts +5 -0
- package/admin/components/ContentEntries/Scheduler/adapters/index.js +7 -0
- package/admin/components/ContentEntries/Scheduler/adapters/index.js.map +1 -0
- package/admin/components/ContentEntries/Scheduler/adapters/schema/schedulerEntry.d.ts +61 -0
- package/admin/components/ContentEntries/Scheduler/adapters/schema/schedulerEntry.js +26 -0
- package/admin/components/ContentEntries/Scheduler/adapters/schema/schedulerEntry.js.map +1 -0
- package/admin/components/ContentEntries/Scheduler/components/ScheduleSidebarButton.d.ts +5 -0
- package/admin/components/ContentEntries/Scheduler/components/ScheduleSidebarButton.js +17 -0
- package/admin/components/ContentEntries/Scheduler/components/ScheduleSidebarButton.js.map +1 -0
- package/admin/components/ContentEntries/Scheduler/components/Scheduler.d.ts +2 -0
- package/admin/components/ContentEntries/Scheduler/components/Scheduler.js +54 -0
- package/admin/components/ContentEntries/Scheduler/components/Scheduler.js.map +1 -0
- package/admin/components/ContentEntries/Scheduler/components/index.d.ts +1 -0
- package/admin/components/ContentEntries/Scheduler/components/index.js +3 -0
- package/admin/components/ContentEntries/Scheduler/components/index.js.map +1 -0
- package/admin/components/ContentEntries/Scheduler/index.d.ts +1 -0
- package/admin/components/ContentEntries/Scheduler/index.js +3 -0
- package/admin/components/ContentEntries/Scheduler/index.js.map +1 -0
- package/admin/components/ContentEntries/SidebarFooter/SidebarFooter.js +3 -2
- package/admin/components/ContentEntries/SidebarFooter/SidebarFooter.js.map +1 -1
- package/admin/components/ContentEntries/Table/Cells/CellActions.js +3 -3
- package/admin/components/ContentEntries/Table/Cells/CellActions.js.map +1 -1
- package/admin/components/ContentEntries/Table/Cells/CellAuthor.js +1 -1
- package/admin/components/ContentEntries/Table/Cells/CellAuthor.js.map +1 -1
- package/admin/components/ContentEntries/Table/Cells/CellCreated.js +1 -1
- package/admin/components/ContentEntries/Table/Cells/CellCreated.js.map +1 -1
- package/admin/components/ContentEntries/Table/Cells/CellModified.js +1 -1
- package/admin/components/ContentEntries/Table/Cells/CellModified.js.map +1 -1
- package/admin/components/ContentEntries/Table/Cells/CellName.d.ts +4 -4
- package/admin/components/ContentEntries/Table/Cells/CellName.js +2 -2
- package/admin/components/ContentEntries/Table/Cells/CellName.js.map +1 -1
- package/admin/components/ContentEntries/Table/Cells/CellStatus.js +4 -3
- package/admin/components/ContentEntries/Table/Cells/CellStatus.js.map +1 -1
- package/admin/components/ContentEntries/Table/index.js +6 -3
- package/admin/components/ContentEntries/Table/index.js.map +1 -1
- package/admin/components/ContentEntries/TrashBin/adapters/TrashBinBulkActionsGraphQLGateway.d.ts +4 -4
- package/admin/components/ContentEntries/TrashBin/adapters/TrashBinBulkActionsGraphQLGateway.js.map +1 -1
- package/admin/components/ContentEntries/TrashBin/adapters/TrashBinDeleteItemGraphQLGateway.d.ts +3 -3
- package/admin/components/ContentEntries/TrashBin/adapters/TrashBinDeleteItemGraphQLGateway.js.map +1 -1
- package/admin/components/ContentEntries/TrashBin/adapters/TrashBinItemMapper.d.ts +2 -2
- package/admin/components/ContentEntries/TrashBin/adapters/TrashBinItemMapper.js.map +1 -1
- package/admin/components/ContentEntries/TrashBin/adapters/TrashBinListGraphQLGateway.d.ts +4 -4
- package/admin/components/ContentEntries/TrashBin/adapters/TrashBinListGraphQLGateway.js.map +1 -1
- package/admin/components/ContentEntries/TrashBin/adapters/TrashBinRestoreItemGraphQLGateway.d.ts +3 -3
- package/admin/components/ContentEntries/TrashBin/adapters/TrashBinRestoreItemGraphQLGateway.js.map +1 -1
- package/admin/components/ContentEntries/TrashBin/adapters/TrashBinRestoreItemGraphQLGatewayWithCallback.d.ts +2 -2
- package/admin/components/ContentEntries/TrashBin/adapters/TrashBinRestoreItemGraphQLGatewayWithCallback.js.map +1 -1
- package/admin/components/ContentEntryForm/ContentEntryForm.d.ts +3 -3
- package/admin/components/ContentEntryForm/ContentEntryForm.js.map +1 -1
- package/admin/components/ContentEntryForm/ContentEntryFormPreview.d.ts +1 -1
- package/admin/components/ContentEntryForm/ContentEntryFormPreview.js.map +1 -1
- package/admin/components/ContentEntryForm/CustomLayout.d.ts +1 -1
- package/admin/components/ContentEntryForm/CustomLayout.js.map +1 -1
- package/admin/components/ContentEntryForm/DefaultLayout.d.ts +1 -1
- package/admin/components/ContentEntryForm/DefaultLayout.js.map +1 -1
- package/admin/components/ContentEntryForm/Header/RevisionSelector/RevisionSelector.js.map +1 -1
- package/admin/components/ContentEntryForm/ParentValue.d.ts +1 -1
- package/admin/components/ContentEntryForm/ParentValue.js.map +1 -1
- package/admin/components/ContentEntryForm/functions/getValue.d.ts +2 -2
- package/admin/components/ContentEntryForm/functions/getValue.js.map +1 -1
- package/admin/components/ContentEntryForm/functions/setValue.d.ts +2 -2
- package/admin/components/ContentEntryForm/functions/setValue.js.map +1 -1
- package/admin/components/ContentEntryForm/useDefaultValues.d.ts +1 -1
- package/admin/components/ContentEntryForm/useDefaultValues.js.map +1 -1
- package/admin/components/ContentEntryForm/useFormRenderer.d.ts +1 -1
- package/admin/components/ContentEntryForm/useFormRenderer.js.map +1 -1
- package/admin/components/ContentModelEditor/ContentModelEditor.js.map +1 -1
- package/admin/components/ContentModelEditor/ContentModelEditorProvider.d.ts +4 -4
- package/admin/components/ContentModelEditor/ContentModelEditorProvider.js.map +1 -1
- package/admin/components/ContentModelEditor/FieldsSidebar.d.ts +2 -1
- package/admin/components/ContentModelEditor/FieldsSidebar.js.map +1 -1
- package/admin/components/ContentModelEditor/PreviewTab.d.ts +1 -1
- package/admin/components/ContentModelEditor/PreviewTab.js.map +1 -1
- package/admin/components/Decorators/ShowConfirmationOnDelete.js +1 -1
- package/admin/components/Decorators/ShowConfirmationOnDelete.js.map +1 -1
- package/admin/components/Decorators/ShowConfirmationOnDeleteRevision/EntryRevisionDeletedSnackbarMessage.d.ts +1 -1
- package/admin/components/Decorators/ShowConfirmationOnDeleteRevision/EntryRevisionDeletedSnackbarMessage.js.map +1 -1
- package/admin/components/Decorators/ShowConfirmationOnDeleteRevision.js +1 -1
- package/admin/components/Decorators/ShowConfirmationOnDeleteRevision.js.map +1 -1
- package/admin/components/Decorators/ShowConfirmationOnPublish.js +1 -1
- package/admin/components/Decorators/ShowConfirmationOnPublish.js.map +1 -1
- package/admin/components/Decorators/ShowConfirmationOnUnpublish.js +1 -1
- package/admin/components/Decorators/ShowConfirmationOnUnpublish.js.map +1 -1
- package/admin/components/DragPreview.js.map +1 -1
- package/admin/components/Draggable.d.ts +3 -2
- package/admin/components/Draggable.js.map +1 -1
- package/admin/components/DropZone/Center.d.ts +3 -2
- package/admin/components/DropZone/Center.js.map +1 -1
- package/admin/components/DropZone/Horizontal.d.ts +2 -2
- package/admin/components/DropZone/Horizontal.js.map +1 -1
- package/admin/components/DropZone/Vertical.d.ts +2 -2
- package/admin/components/DropZone/Vertical.js.map +1 -1
- package/admin/components/Droppable.d.ts +2 -2
- package/admin/components/Droppable.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab/RendererOptions.d.ts +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab/RendererOptions.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/ValidationTab/ValidationsSection.d.ts +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/ValidationTab/ValidationsSection.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/ValidationTab/ValidatorsList.d.ts +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/ValidationTab/ValidatorsList.js +4 -4
- package/admin/components/FieldEditor/EditFieldDialog/ValidationTab/ValidatorsList.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/functions/getValue.d.ts +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/functions/getValue.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/functions/setValue.d.ts +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/functions/setValue.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/getValidators.d.ts +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/getValidators.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/useRendererPlugins.d.ts +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/useRendererPlugins.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog.d.ts +2 -2
- package/admin/components/FieldEditor/EditFieldDialog.js.map +1 -1
- package/admin/components/FieldEditor/Field.d.ts +1 -1
- package/admin/components/FieldEditor/Field.js.map +1 -1
- package/admin/components/FieldEditor/FieldEditor.d.ts +1 -1
- package/admin/components/FieldEditor/FieldEditor.js.map +1 -1
- package/admin/components/FieldEditor/FieldEditorContext.d.ts +3 -3
- package/admin/components/FieldEditor/FieldEditorContext.js.map +1 -1
- package/admin/components/FieldEditor/utils/deleteField.d.ts +1 -1
- package/admin/components/FieldEditor/utils/deleteField.js.map +1 -1
- package/admin/components/FieldEditor/utils/getFieldPosition.d.ts +1 -1
- package/admin/components/FieldEditor/utils/getFieldPosition.js.map +1 -1
- package/admin/components/FieldEditor/utils/moveField.d.ts +1 -1
- package/admin/components/FieldEditor/utils/moveField.js.map +1 -1
- package/admin/components/FieldEditor/utils/moveRow.d.ts +1 -1
- package/admin/components/FieldEditor/utils/moveRow.js.map +1 -1
- package/admin/components/IconPicker.d.ts +1 -1
- package/admin/components/IconPicker.js.map +1 -1
- package/admin/components/LexicalCmsEditor/LexicalCmsEditor.d.ts +1 -1
- package/admin/components/LexicalCmsEditor/LexicalCmsEditor.js.map +1 -1
- package/admin/components/LexicalCmsEditor/LexicalEditorCmsPlugin.d.ts +1 -1
- package/admin/components/LexicalCmsEditor/LexicalEditorCmsPlugin.js.map +1 -1
- package/admin/components/LexicalCmsEditor/TypographyDropDown.js.map +1 -1
- package/admin/config/contentEntries/editor/Actions/ButtonAction.d.ts +1 -1
- package/admin/config/contentEntries/editor/Actions/ButtonAction.js.map +1 -1
- package/admin/config/contentEntries/editor/Actions/MenuItemAction.d.ts +1 -1
- package/admin/config/contentEntries/editor/Actions/MenuItemAction.js.map +1 -1
- package/admin/config/contentEntries/editor/Actions/index.d.ts +3 -3
- package/admin/config/contentEntries/editor/Actions/index.js.map +1 -1
- package/admin/config/contentEntries/editor/ContentEntryEditorConfig.js.map +1 -1
- package/admin/config/contentEntries/list/Browser/AdvancedSearch/FieldRenderer.d.ts +2 -2
- package/admin/config/contentEntries/list/Browser/AdvancedSearch/FieldRenderer.js +1 -2
- package/admin/config/contentEntries/list/Browser/AdvancedSearch/FieldRenderer.js.map +1 -1
- package/admin/config/contentEntries/list/Browser/AdvancedSearch/index.d.ts +1 -1
- package/admin/config/contentEntries/list/Browser/AdvancedSearch/index.js.map +1 -1
- package/admin/config/contentEntries/list/Browser/BulkAction.d.ts +2 -2
- package/admin/config/contentEntries/list/Browser/BulkAction.js.map +1 -1
- package/admin/config/contentEntries/list/Browser/EntryAction.d.ts +2 -2
- package/admin/config/contentEntries/list/Browser/EntryAction.js +1 -2
- package/admin/config/contentEntries/list/Browser/EntryAction.js.map +1 -1
- package/admin/config/contentEntries/list/Browser/FolderAction.d.ts +2 -2
- package/admin/config/contentEntries/list/Browser/FolderAction.js +1 -2
- package/admin/config/contentEntries/list/Browser/FolderAction.js.map +1 -1
- package/admin/config/contentEntries/list/Browser/FolderFieldDecorator.d.ts +2 -2
- package/admin/config/contentEntries/list/Browser/FolderFieldDecorator.js.map +1 -1
- package/admin/config/contentEntries/list/Browser/Table/Column.d.ts +10 -5
- package/admin/config/contentEntries/list/Browser/Table/Column.js +5 -3
- package/admin/config/contentEntries/list/Browser/Table/Column.js.map +1 -1
- package/admin/config/contentEntries/list/Browser/Table/index.d.ts +8 -3
- package/admin/config/contentEntries/list/Browser/Table/index.js.map +1 -1
- package/admin/config/contentEntries/list/Browser/index.d.ts +14 -9
- package/admin/config/contentEntries/list/Browser/index.js.map +1 -1
- package/admin/config/contentEntries/list/ContentEntryListConfig.d.ts +7 -2
- package/admin/config/contentEntries/list/ContentEntryListConfig.js.map +1 -1
- package/admin/contexts/Cms/index.d.ts +2 -2
- package/admin/contexts/Cms/index.js.map +1 -1
- package/admin/elements/NothingToShowElement.d.ts +3 -2
- package/admin/elements/NothingToShowElement.js +3 -3
- package/admin/elements/NothingToShowElement.js.map +1 -1
- package/admin/graphql/contentModels.d.ts +1 -1
- package/admin/graphql/contentModels.js.map +1 -1
- package/admin/hooks/useApolloClient.d.ts +1 -1
- package/admin/hooks/useApolloClient.js.map +1 -1
- package/admin/hooks/useContentModels.d.ts +1 -1
- package/admin/hooks/useContentModels.js.map +1 -1
- package/admin/hooks/useEntry.d.ts +3 -3
- package/admin/hooks/useEntry.js.map +1 -1
- package/admin/hooks/useLazyQuery.d.ts +3 -3
- package/admin/hooks/useLazyQuery.js.map +1 -1
- package/admin/hooks/useModelFieldGraphqlContext.d.ts +1 -1
- package/admin/hooks/useMutation.d.ts +3 -3
- package/admin/hooks/useMutation.js.map +1 -1
- package/admin/hooks/usePermission.d.ts +1 -1
- package/admin/hooks/usePermission.js.map +1 -1
- package/admin/hooks/usePersistEntry.d.ts +1 -1
- package/admin/hooks/usePersistEntry.js.map +1 -1
- package/admin/hooks/useQuery.d.ts +3 -3
- package/admin/hooks/useQuery.js.map +1 -1
- package/admin/hooks/useQueryLocale.d.ts +3 -3
- package/admin/hooks/useQueryLocale.js.map +1 -1
- package/admin/menus/ContentGroupsMenuItems.js.map +1 -1
- package/admin/plugins/apiInformation/index.d.ts +1 -1
- package/admin/plugins/apiInformation/index.js.map +1 -1
- package/admin/plugins/editor/defaultBar/CreateContentButton.js.map +1 -1
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettings.js.map +1 -1
- package/admin/plugins/editor/formSettings/components/GeneralSettings.d.ts +1 -1
- 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.map +1 -1
- package/admin/plugins/editor/formSettings/index.d.ts +1 -1
- package/admin/plugins/editor/formSettings/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/Accordion.d.ts +2 -1
- package/admin/plugins/fieldRenderers/Accordion.js +4 -4
- package/admin/plugins/fieldRenderers/Accordion.js.map +1 -1
- package/admin/plugins/fieldRenderers/AccordionRenderSettings.d.ts +1 -1
- package/admin/plugins/fieldRenderers/AccordionRenderSettings.js.map +1 -1
- package/admin/plugins/fieldRenderers/DynamicSection.d.ts +2 -2
- package/admin/plugins/fieldRenderers/DynamicSection.js +1 -1
- package/admin/plugins/fieldRenderers/DynamicSection.js.map +1 -1
- package/admin/plugins/fieldRenderers/boolean/booleanSwitch.d.ts +1 -1
- package/admin/plugins/fieldRenderers/boolean/booleanSwitch.js.map +1 -1
- package/admin/plugins/fieldRenderers/checkboxes.d.ts +1 -1
- package/admin/plugins/fieldRenderers/checkboxes.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/DateOnly.d.ts +3 -3
- package/admin/plugins/fieldRenderers/dateTime/DateOnly.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.d.ts +2 -2
- package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.d.ts +2 -2
- package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/Input.d.ts +2 -2
- package/admin/plugins/fieldRenderers/dateTime/Input.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/Select.d.ts +1 -1
- package/admin/plugins/fieldRenderers/dateTime/Select.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/Time.d.ts +1 -1
- package/admin/plugins/fieldRenderers/dateTime/Time.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/dateTimeField.d.ts +1 -1
- package/admin/plugins/fieldRenderers/dateTime/dateTimeField.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/dateTimeFields.d.ts +1 -1
- package/admin/plugins/fieldRenderers/dateTime/dateTimeFields.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/utils.d.ts +1 -1
- package/admin/plugins/fieldRenderers/dateTime/utils.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/AddTemplate.d.ts +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/AddTemplate.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.d.ts +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.d.ts +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateGallery.d.ts +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateGallery.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateIcon.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateItem.d.ts +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateItem.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateProvider.d.ts +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateProvider.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/dynamicZoneRenderer.d.ts +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/dynamicZoneRenderer.js +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/dynamicZoneRenderer.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/index.d.ts +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/index.js +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/useTemplateTypename.d.ts +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/useTemplateTypename.js.map +1 -1
- package/admin/plugins/fieldRenderers/hidden.d.ts +1 -1
- package/admin/plugins/fieldRenderers/hidden.js.map +1 -1
- package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInput.d.ts +1 -1
- package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInput.js.map +1 -1
- package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInputs.d.ts +1 -1
- package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInputs.js.map +1 -1
- package/admin/plugins/fieldRenderers/lexicalText/utils.d.ts +1 -1
- package/admin/plugins/fieldRenderers/lexicalText/utils.js.map +1 -1
- package/admin/plugins/fieldRenderers/longText/longText.d.ts +1 -1
- package/admin/plugins/fieldRenderers/longText/longText.js.map +1 -1
- package/admin/plugins/fieldRenderers/longText/longTexts.d.ts +1 -1
- package/admin/plugins/fieldRenderers/longText/longTexts.js.map +1 -1
- package/admin/plugins/fieldRenderers/number/numberInput.d.ts +1 -1
- package/admin/plugins/fieldRenderers/number/numberInput.js.map +1 -1
- package/admin/plugins/fieldRenderers/number/numberInputs.d.ts +1 -1
- package/admin/plugins/fieldRenderers/number/numberInputs.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/FieldSettings.d.ts +2 -2
- package/admin/plugins/fieldRenderers/object/FieldSettings.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/MultiValueContainer.d.ts +1 -1
- package/admin/plugins/fieldRenderers/object/MultiValueContainer.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/MultiValueItemContainer.d.ts +1 -1
- package/admin/plugins/fieldRenderers/object/MultiValueItemContainer.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/multipleObjects.d.ts +1 -1
- package/admin/plugins/fieldRenderers/object/multipleObjects.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/multipleObjectsAccordion.d.ts +1 -1
- package/admin/plugins/fieldRenderers/object/multipleObjectsAccordion.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/singleObjectAccordion.d.ts +1 -1
- package/admin/plugins/fieldRenderers/object/singleObjectAccordion.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/singleObjectInline.d.ts +1 -1
- package/admin/plugins/fieldRenderers/object/singleObjectInline.js.map +1 -1
- package/admin/plugins/fieldRenderers/radioButtons.d.ts +1 -1
- package/admin/plugins/fieldRenderers/radioButtons.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceField.d.ts +2 -2
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceField.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedSingleReferenceField.d.ts +2 -2
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedSingleReferenceField.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/Entries.d.ts +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/Entries.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/Entry.d.ts +2 -2
- package/admin/plugins/fieldRenderers/ref/advanced/components/Entry.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/Options.d.ts +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/Options.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/ReferencesDialog.d.ts +2 -2
- package/admin/plugins/fieldRenderers/ref/advanced/components/ReferencesDialog.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/CreatedBy.d.ts +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/CreatedBy.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Excerpt.d.ts +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Excerpt.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Image.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/ModifiedBy.d.ts +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/ModifiedBy.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Remove.d.ts +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Remove.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Select.d.ts +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Select.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Status.d.ts +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Status.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/View.d.ts +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/View.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/options/OptionsModelList.d.ts +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/options/OptionsModelList.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/options/OptionsModelListItem.d.ts +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/options/OptionsModelListItem.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/detailedReferenceRenderer.d.ts +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/detailedReferenceRenderer.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/detailedReferencesRenderer.d.ts +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/detailedReferencesRenderer.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/hooks/graphql.d.ts +3 -3
- package/admin/plugins/fieldRenderers/ref/advanced/hooks/graphql.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/hooks/useEntries.d.ts +2 -2
- package/admin/plugins/fieldRenderers/ref/advanced/hooks/useEntries.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/hooks/useReferences.d.ts +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/hooks/useReferences.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.d.ts +2 -2
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.d.ts +2 -2
- 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 +3 -3
- package/admin/plugins/fieldRenderers/ref/components/EntryStatus.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/NewReferencedEntryDialog.d.ts +1 -1
- package/admin/plugins/fieldRenderers/ref/components/NewReferencedEntryDialog.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/graphql.d.ts +2 -2
- package/admin/plugins/fieldRenderers/ref/components/graphql.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/helpers.d.ts +2 -2
- package/admin/plugins/fieldRenderers/ref/components/helpers.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/renderItem.d.ts +1 -1
- package/admin/plugins/fieldRenderers/ref/components/renderItem.js +2 -2
- package/admin/plugins/fieldRenderers/ref/components/renderItem.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/types.d.ts +1 -1
- package/admin/plugins/fieldRenderers/ref/components/types.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/useReference.d.ts +3 -3
- package/admin/plugins/fieldRenderers/ref/components/useReference.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/useReferences.d.ts +3 -3
- package/admin/plugins/fieldRenderers/ref/components/useReferences.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.d.ts +1 -1
- package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/refInput.d.ts +1 -1
- package/admin/plugins/fieldRenderers/ref/refInput.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/refInputs.d.ts +1 -1
- package/admin/plugins/fieldRenderers/ref/refInputs.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleMultipleRenderer.d.ts +2 -2
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleMultipleRenderer.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleSingleRenderer.d.ts +2 -2
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleSingleRenderer.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/simple/components/useContentModels.d.ts +1 -1
- package/admin/plugins/fieldRenderers/ref/simple/components/useContentModels.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/simple/components/useReferences.d.ts +2 -2
- package/admin/plugins/fieldRenderers/ref/simple/components/useReferences.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/simple/simpleMultipleRenderer.d.ts +1 -1
- package/admin/plugins/fieldRenderers/ref/simple/simpleMultipleRenderer.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/simple/simpleSingleRenderer.d.ts +1 -1
- package/admin/plugins/fieldRenderers/ref/simple/simpleSingleRenderer.js.map +1 -1
- package/admin/plugins/fieldRenderers/richText/richTextInput.d.ts +1 -1
- package/admin/plugins/fieldRenderers/richText/richTextInput.js.map +1 -1
- package/admin/plugins/fieldRenderers/richText/richTextInputs.d.ts +1 -1
- package/admin/plugins/fieldRenderers/richText/richTextInputs.js +1 -1
- package/admin/plugins/fieldRenderers/richText/richTextInputs.js.map +1 -1
- package/admin/plugins/fieldRenderers/richText/utils.d.ts +1 -1
- package/admin/plugins/fieldRenderers/richText/utils.js.map +1 -1
- package/admin/plugins/fieldRenderers/select.d.ts +1 -1
- package/admin/plugins/fieldRenderers/select.js.map +1 -1
- package/admin/plugins/fieldRenderers/text/tags.d.ts +1 -1
- package/admin/plugins/fieldRenderers/text/tags.js.map +1 -1
- package/admin/plugins/fieldRenderers/text/textInput.d.ts +1 -1
- package/admin/plugins/fieldRenderers/text/textInput.js.map +1 -1
- package/admin/plugins/fieldRenderers/text/textInputs.d.ts +1 -1
- package/admin/plugins/fieldRenderers/text/textInputs.js.map +1 -1
- package/admin/plugins/fieldValidators/date/createDateInputField.d.ts +2 -2
- package/admin/plugins/fieldValidators/date/createDateInputField.js.map +1 -1
- package/admin/plugins/fieldValidators/dateGte.d.ts +1 -1
- package/admin/plugins/fieldValidators/dateGte.js.map +1 -1
- package/admin/plugins/fieldValidators/dateLte.d.ts +1 -1
- package/admin/plugins/fieldValidators/dateLte.js.map +1 -1
- package/admin/plugins/fieldValidators/dynamicZone.d.ts +1 -1
- package/admin/plugins/fieldValidators/dynamicZone.js.map +1 -1
- package/admin/plugins/fieldValidators/gte.d.ts +1 -1
- package/admin/plugins/fieldValidators/gte.js.map +1 -1
- package/admin/plugins/fieldValidators/in.d.ts +1 -1
- package/admin/plugins/fieldValidators/in.js.map +1 -1
- package/admin/plugins/fieldValidators/lte.d.ts +1 -1
- package/admin/plugins/fieldValidators/lte.js.map +1 -1
- package/admin/plugins/fieldValidators/maxLength.d.ts +1 -1
- package/admin/plugins/fieldValidators/maxLength.js.map +1 -1
- package/admin/plugins/fieldValidators/minLength.d.ts +1 -1
- package/admin/plugins/fieldValidators/minLength.js.map +1 -1
- package/admin/plugins/fieldValidators/pattern.d.ts +1 -1
- package/admin/plugins/fieldValidators/pattern.js +16 -14
- package/admin/plugins/fieldValidators/pattern.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/email.d.ts +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/email.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/lowerCase.d.ts +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/lowerCase.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/lowerCaseSpace.d.ts +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/lowerCaseSpace.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/upperCase.d.ts +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/upperCase.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/upperCaseSpace.d.ts +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/upperCaseSpace.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/url.d.ts +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/url.js.map +1 -1
- package/admin/plugins/fieldValidators/required.d.ts +1 -1
- package/admin/plugins/fieldValidators/required.js.map +1 -1
- package/admin/plugins/fieldValidators/unique.d.ts +1 -1
- package/admin/plugins/fieldValidators/unique.js.map +1 -1
- package/admin/plugins/fields/PredefinedValuesDynamicFieldset.d.ts +1 -1
- package/admin/plugins/fields/PredefinedValuesDynamicFieldset.js.map +1 -1
- package/admin/plugins/fields/boolean.d.ts +1 -1
- package/admin/plugins/fields/boolean.js.map +1 -1
- package/admin/plugins/fields/dateTime.d.ts +1 -1
- package/admin/plugins/fields/dateTime.js.map +1 -1
- package/admin/plugins/fields/dynamicZone/AddTemplate.d.ts +1 -1
- package/admin/plugins/fields/dynamicZone/AddTemplate.js.map +1 -1
- package/admin/plugins/fields/dynamicZone/DynamicZone.js.map +1 -1
- package/admin/plugins/fields/dynamicZone/DynamicZoneTemplate.d.ts +1 -1
- package/admin/plugins/fields/dynamicZone/DynamicZoneTemplate.js.map +1 -1
- package/admin/plugins/fields/dynamicZone/TemplateDialog.d.ts +1 -1
- package/admin/plugins/fields/dynamicZone/TemplateDialog.js.map +1 -1
- package/admin/plugins/fields/dynamicZone/commonValidators.d.ts +1 -1
- package/admin/plugins/fields/dynamicZone/commonValidators.js.map +1 -1
- package/admin/plugins/fields/dynamicZone.d.ts +1 -1
- package/admin/plugins/fields/dynamicZone.js.map +1 -1
- package/admin/plugins/fields/json.d.ts +1 -1
- package/admin/plugins/fields/json.js.map +1 -1
- package/admin/plugins/fields/longText.d.ts +1 -1
- package/admin/plugins/fields/longText.js.map +1 -1
- package/admin/plugins/fields/number.d.ts +1 -1
- package/admin/plugins/fields/number.js.map +1 -1
- package/admin/plugins/fields/object/ObjectFields.d.ts +1 -1
- package/admin/plugins/fields/object/ObjectFields.js.map +1 -1
- package/admin/plugins/fields/object.d.ts +1 -1
- package/admin/plugins/fields/object.js.map +1 -1
- package/admin/plugins/fields/ref/graphql.d.ts +1 -1
- package/admin/plugins/fields/ref/graphql.js.map +1 -1
- package/admin/plugins/fields/ref/renderInfo.d.ts +1 -1
- package/admin/plugins/fields/ref/renderInfo.js.map +1 -1
- package/admin/plugins/fields/ref.d.ts +1 -1
- package/admin/plugins/fields/ref.js.map +1 -1
- package/admin/plugins/fields/richText.d.ts +1 -1
- package/admin/plugins/fields/richText.js.map +1 -1
- package/admin/plugins/fields/searchableJson.d.ts +1 -1
- package/admin/plugins/fields/searchableJson.js.map +1 -1
- package/admin/plugins/fields/text.d.ts +1 -1
- package/admin/plugins/fields/text.js.map +1 -1
- package/admin/plugins/icons.d.ts +1 -1
- package/admin/plugins/icons.js.map +1 -1
- package/admin/plugins/index.d.ts +3 -3
- package/admin/plugins/install.d.ts +2 -2
- package/admin/plugins/install.js +1 -1
- package/admin/plugins/install.js.map +1 -1
- package/admin/plugins/permissionRenderer/CmsPermissions.d.ts +1 -1
- package/admin/plugins/permissionRenderer/CmsPermissions.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/ContentEntryPermission.d.ts +2 -2
- package/admin/plugins/permissionRenderer/components/ContentEntryPermission.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/ContentModelGroupPermission.d.ts +2 -2
- package/admin/plugins/permissionRenderer/components/ContentModelGroupPermission.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/ContentModelList.d.ts +1 -1
- package/admin/plugins/permissionRenderer/components/ContentModelList.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/ContentModelPermission.d.ts +2 -2
- package/admin/plugins/permissionRenderer/components/ContentModelPermission.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/PermissionSelector.d.ts +2 -2
- package/admin/plugins/permissionRenderer/components/PermissionSelector.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/useCmsData.js.map +1 -1
- package/admin/plugins/permissionRenderer/index.d.ts +1 -1
- package/admin/plugins/permissionRenderer/index.js.map +1 -1
- package/admin/plugins/routes.d.ts +1 -1
- package/admin/plugins/routes.js.map +1 -1
- package/admin/plugins/transformers/dateTransformer.d.ts +1 -1
- package/admin/plugins/transformers/dateTransformer.js.map +1 -1
- package/admin/plugins/transformers/dynamicZoneTransformer.d.ts +1 -1
- package/admin/plugins/transformers/dynamicZoneTransformer.js.map +1 -1
- package/admin/plugins/transformers/index.d.ts +1 -1
- package/admin/plugins/transformers/index.js.map +1 -1
- package/admin/plugins/transformers/numberTransformer.d.ts +1 -1
- package/admin/plugins/transformers/numberTransformer.js.map +1 -1
- package/admin/plugins/transformers/objectTransformer.d.ts +1 -1
- package/admin/plugins/transformers/objectTransformer.js.map +1 -1
- package/admin/plugins/welcomeScreenWidget.d.ts +1 -1
- package/admin/plugins/welcomeScreenWidget.js.map +1 -1
- package/admin/views/contentEntries/ContentEntriesContainer.js.map +1 -1
- package/admin/views/contentEntries/ContentEntriesContext.d.ts +1 -1
- package/admin/views/contentEntries/ContentEntriesContext.js.map +1 -1
- package/admin/views/contentEntries/ContentEntriesModule.js +4 -0
- package/admin/views/contentEntries/ContentEntriesModule.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.d.ts +4 -4
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/RevisionsList/RevisionListItem.d.ts +1 -1
- package/admin/views/contentEntries/ContentEntry/RevisionsList/RevisionListItem.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/RevisionsList/useRevision.d.ts +2 -2
- package/admin/views/contentEntries/ContentEntry/RevisionsList/useRevision.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/SingletonContentEntry.js +3 -3
- package/admin/views/contentEntries/ContentEntry/SingletonContentEntry.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/useMockRecords.d.ts +1 -1
- package/admin/views/contentEntries/ContentEntry/useMockRecords.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry.js.map +1 -1
- package/admin/views/contentEntries/hooks/useContentEntriesList.d.ts +7 -6
- package/admin/views/contentEntries/hooks/useContentEntriesList.js +5 -12
- package/admin/views/contentEntries/hooks/useContentEntriesList.js.map +1 -1
- package/admin/views/contentEntries/hooks/useMoveContentEntryToFolder.d.ts +2 -2
- package/admin/views/contentEntries/hooks/useMoveContentEntryToFolder.js.map +1 -1
- package/admin/views/contentModelGroups/ContentModelGroups.js.map +1 -1
- package/admin/views/contentModelGroups/ContentModelGroupsDataList.js.map +1 -1
- package/admin/views/contentModelGroups/ContentModelGroupsForm.js.map +1 -1
- package/admin/views/contentModelGroups/graphql.d.ts +1 -1
- package/admin/views/contentModelGroups/graphql.js.map +1 -1
- package/admin/views/contentModels/CloneContentModelDialog.d.ts +1 -1
- package/admin/views/contentModels/CloneContentModelDialog.js.map +1 -1
- package/admin/views/contentModels/ContentModels.js.map +1 -1
- package/admin/views/contentModels/NewContentModelDialog.js.map +1 -1
- package/admin/views/contentModels/cache.d.ts +3 -3
- package/admin/views/contentModels/cache.js.map +1 -1
- package/admin/views/contentModels/exporting/download.d.ts +1 -1
- package/admin/views/contentModels/exporting/download.js.map +1 -1
- package/admin/views/contentModels/exporting/runExport.d.ts +2 -2
- package/admin/views/contentModels/exporting/runExport.js.map +1 -1
- package/admin/views/contentModels/exporting/useModelExport.d.ts +1 -1
- package/admin/views/contentModels/exporting/useModelExport.js.map +1 -1
- package/admin/views/contentModels/fullDelete/dialog/process.d.ts +1 -1
- package/admin/views/contentModels/fullDelete/dialog/process.js.map +1 -1
- package/admin/views/contentModels/fullDelete/dialog/state.d.ts +1 -1
- package/admin/views/contentModels/fullDelete/dialog/state.js.map +1 -1
- package/admin/views/contentModels/fullDelete/types.d.ts +2 -2
- package/admin/views/contentModels/fullDelete/types.js.map +1 -1
- package/admin/views/contentModels/fullDelete/useCancelDelete.d.ts +1 -1
- package/admin/views/contentModels/fullDelete/useCancelDelete.js.map +1 -1
- package/admin/views/contentModels/helpers/apiNameValidator.d.ts +2 -2
- package/admin/views/contentModels/helpers/apiNameValidator.js.map +1 -1
- package/admin/views/contentModels/helpers/nameValidator.d.ts +1 -1
- package/admin/views/contentModels/helpers/nameValidator.js.map +1 -1
- package/admin/views/contentModels/importing/ImportContext.d.ts +2 -2
- package/admin/views/contentModels/importing/ImportContext.js.map +1 -1
- package/admin/views/contentModels/importing/components/DataList.js.map +1 -1
- package/admin/views/contentModels/importing/components/DataListGroup.d.ts +1 -1
- package/admin/views/contentModels/importing/components/DataListGroup.js +2 -2
- package/admin/views/contentModels/importing/components/DataListGroup.js.map +1 -1
- package/admin/views/contentModels/importing/components/Errors.d.ts +1 -1
- package/admin/views/contentModels/importing/components/Errors.js +1 -1
- package/admin/views/contentModels/importing/components/Errors.js.map +1 -1
- package/admin/views/contentModels/importing/components/Model/DataListModelItem.d.ts +2 -2
- package/admin/views/contentModels/importing/components/Model/DataListModelItem.js +10 -10
- package/admin/views/contentModels/importing/components/Model/DataListModelItem.js.map +1 -1
- package/admin/views/contentModels/importing/components/Model/DataListModelItemError.d.ts +1 -1
- package/admin/views/contentModels/importing/components/Model/DataListModelItemError.js +3 -3
- package/admin/views/contentModels/importing/components/Model/DataListModelItemError.js.map +1 -1
- package/admin/views/contentModels/importing/components/Model/DataListModelItemInfo.d.ts +1 -1
- package/admin/views/contentModels/importing/components/Model/DataListModelItemInfo.js +1 -1
- package/admin/views/contentModels/importing/components/Model/DataListModelItemInfo.js.map +1 -1
- package/admin/views/contentModels/importing/components/Model/DataListModels.d.ts +1 -1
- package/admin/views/contentModels/importing/components/Model/DataListModels.js +1 -1
- package/admin/views/contentModels/importing/components/Model/DataListModels.js.map +1 -1
- package/admin/views/contentModels/importing/graphql.d.ts +2 -2
- package/admin/views/contentModels/importing/graphql.js.map +1 -1
- package/admin/views/contentModels/importing/types.d.ts +1 -1
- package/admin/views/contentModels/importing/types.js.map +1 -1
- package/admin/viewsGraphql.d.ts +1 -1
- package/admin/viewsGraphql.js.map +1 -1
- package/allPlugins.d.ts +4 -4
- package/package.json +32 -30
- package/types.d.ts +6 -6
- package/types.js.map +1 -1
- package/utils/CmsModelFieldValidatorConfigAdapter.d.ts +1 -1
- package/utils/CmsModelFieldValidatorConfigAdapter.js.map +1 -1
- package/utils/getFetchPolicy.d.ts +1 -1
- package/utils/getFetchPolicy.js.map +1 -1
- package/utils/getModelTitleFieldId.d.ts +1 -1
- package/utils/getModelTitleFieldId.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Fragment","useCallback","useMemo","capitalize","ReactComponent","EditIcon","DeleteIcon","TitleIcon","MoreVerticalIcon","plugins","i18n","useSnackbar","useModelEditor","useModelFieldEditor","useConfirmationDialog","IconButton","Heading","Text","DropdownMenu","Tag","t","ns","allowedTitleFieldTypes","isFieldAllowedToBeTitle","model","field","parent","multipleValues","includes","type","titleFieldId","fieldId","isFieldAllowedToBeDescription","descriptionFieldId","isFieldAllowedToBeImage","imageFieldId","settings","imagesOnly","getFieldTypeName","isTitleField","isDescriptionField","isImageField","filter","Boolean","join","Field","props","onEdit","showSnackbar","showErrorSnackbar","setData","setModel","data","getFieldPlugin","getFieldRendererPlugin","showConfirmation","title","message","createElement","lockedFields","isLocked","some","lockedField","storageId","removeFieldFromSelected","id","onDelete","setAsTitle","response","error","setAsDescription","setAsImage","fieldPlugin","editorFieldOptionPlugins","byType","rendererPlugin","renderer","name","canEdit","canEditSettings","defaultInformationRenderer","fieldTypeName","fn","content","variant","displayName","fieldInformationRenderer","renderInfo","info","className","level","label","size","icon","onClick","trigger","map","pl","cloneElement","render","key","Item","disabled","text","Icon","element","memo"],"sources":["Field.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useMemo } from \"react\";\nimport capitalize from \"lodash/capitalize\";\nimport { ReactComponent as EditIcon } from \"@webiny/icons/edit.svg\";\nimport { ReactComponent as DeleteIcon } from \"@webiny/icons/delete.svg\";\nimport { ReactComponent as TitleIcon } from \"@webiny/icons/title.svg\";\nimport { ReactComponent as MoreVerticalIcon } from \"@webiny/icons/more_vert.svg\";\nimport { plugins } from \"@webiny/plugins\";\nimport { CmsModelField, CmsEditorFieldOptionPlugin, CmsModel } from \"~/types\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { useModelEditor } from \"~/admin/hooks\";\nimport { useModelFieldEditor } from \"~/admin/components/FieldEditor/useModelFieldEditor\";\nimport { useConfirmationDialog } from \"@webiny/app-admin\";\nimport { IconButton, Heading, Text, DropdownMenu, Tag } from \"@webiny/admin-ui\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/components/editor/field\");\n\nconst allowedTitleFieldTypes: string[] = [\"text\", \"number\"];\n\nconst isFieldAllowedToBeTitle = (model: CmsModel, field: CmsModelField, parent?: CmsModelField) => {\n if (field.multipleValues || parent) {\n return false;\n } else if (allowedTitleFieldTypes.includes(field.type) === false) {\n return false;\n } else if (model.titleFieldId === field.fieldId) {\n return false;\n }\n return true;\n};\nconst isFieldAllowedToBeDescription = (\n model: CmsModel,\n field: CmsModelField,\n parent?: CmsModelField\n) => {\n if (field.multipleValues || parent) {\n return false;\n } else if (model.descriptionFieldId === field.fieldId) {\n return false;\n }\n return field.type === \"long-text\";\n};\n\nconst isFieldAllowedToBeImage = (model: CmsModel, field: CmsModelField, parent?: CmsModelField) => {\n if (field.multipleValues || parent) {\n return false;\n } else if (model.imageFieldId === field.fieldId) {\n return false;\n }\n return field.type === \"file\" && field.settings?.imagesOnly;\n};\n\nconst getFieldTypeName = (\n model: CmsModel,\n field: CmsModelField,\n parent?: CmsModelField\n): string | null => {\n if (parent) {\n return null;\n }\n const isTitleField = field.fieldId === model?.titleFieldId && !parent;\n const isDescriptionField = field.fieldId === model?.descriptionFieldId && !parent;\n const isImageField = field.fieldId === model?.imageFieldId && !parent;\n\n return (\n [\n isTitleField ? \"entry title\" : null,\n isDescriptionField ? \"entry description\" : null,\n isImageField ? \"entry image\" : null\n ]\n .filter(Boolean)\n .join(\"\") || null\n );\n};\n\nexport interface FieldProps {\n field: CmsModelField;\n onDelete: (field: CmsModelField) => void;\n onEdit: (field: CmsModelField) => void;\n parent?: CmsModelField;\n}\n\nconst Field = (props: FieldProps) => {\n const { field, onEdit, parent } = props;\n const { showSnackbar, showErrorSnackbar } = useSnackbar();\n const { setData: setModel, data: model } = useModelEditor();\n const { getFieldPlugin, getFieldRendererPlugin } = useModelFieldEditor();\n\n const { showConfirmation } = useConfirmationDialog({\n title: t`Warning - You are trying to delete a locked field!`,\n message: (\n <>\n <p>{t`You are about to delete a field which is used in the data storage`}</p>\n <p>{t`All data in that field will be lost and there is no going back!`}</p>\n <p> </p>\n <p>{t`Are you sure you want to continue?`}</p>\n </>\n )\n });\n const lockedFields = model?.lockedFields || [];\n const isLocked = lockedFields.some(lockedField => lockedField.fieldId === field.storageId);\n\n const removeFieldFromSelected = useCallback(async () => {\n if (model.titleFieldId === field.fieldId) {\n await setModel(data => {\n return {\n ...data,\n titleFieldId: null\n };\n });\n } else if (model.descriptionFieldId === field.fieldId) {\n await setModel(data => {\n return {\n ...data,\n descriptionFieldId: null\n };\n });\n } else if (model.imageFieldId === field.fieldId) {\n await setModel(data => {\n return {\n ...data,\n imageFieldId: null\n };\n });\n }\n }, [field.id, setModel, model]);\n\n const onDelete = useCallback(async () => {\n if (!isLocked) {\n await removeFieldFromSelected();\n props.onDelete(field);\n return;\n }\n showConfirmation(async () => {\n await removeFieldFromSelected();\n props.onDelete(field);\n });\n }, [field.fieldId, lockedFields]);\n\n const setAsTitle = useCallback(async (): Promise<void> => {\n const response = await setModel(data => {\n return { ...data, titleFieldId: field.fieldId };\n });\n\n if (response && response.error) {\n return showErrorSnackbar(response.error.message);\n }\n\n showSnackbar(t`Title field set successfully.`);\n }, [field.fieldId, setModel]);\n\n const setAsDescription = useCallback(async (): Promise<void> => {\n const response = await setModel(data => {\n return { ...data, descriptionFieldId: field.fieldId };\n });\n\n if (response && response.error) {\n return showErrorSnackbar(response.error.message);\n }\n\n showSnackbar(t`Description field set successfully.`);\n }, [field.fieldId, setModel]);\n\n const setAsImage = useCallback(async (): Promise<void> => {\n const response = await setModel(data => {\n return { ...data, imageFieldId: field.fieldId };\n });\n\n if (response && response.error) {\n return showErrorSnackbar(response.error.message);\n }\n\n showSnackbar(t`Image field set successfully.`);\n }, [field.fieldId, setModel]);\n\n const fieldPlugin = getFieldPlugin(field.type);\n const editorFieldOptionPlugins =\n plugins.byType<CmsEditorFieldOptionPlugin>(\"cms-editor-field-option\");\n\n if (!fieldPlugin) {\n return null;\n }\n\n const rendererPlugin = getFieldRendererPlugin(field.renderer.name);\n const canEdit = fieldPlugin.field.canEditSettings !== false;\n\n const defaultInformationRenderer = useMemo(() => {\n const fieldTypeName = getFieldTypeName(model, field, parent);\n const fn = () => {\n if (!fieldTypeName) {\n return null;\n }\n return <Tag content={capitalize(fieldTypeName)} variant={\"neutral-base\"} />;\n };\n\n fn.displayName = \"FieldTypeRenderer\";\n\n return fn;\n }, [field.id]);\n\n const fieldInformationRenderer = fieldPlugin.field?.renderInfo;\n\n const info = [rendererPlugin?.renderer.name, field.multipleValues ? \"multiple values\" : null]\n .filter(Boolean)\n .join(\", \");\n\n return (\n <Fragment>\n <div className={\"wby-flex wby-justify-between wby-align-center\"}>\n <div>\n <Heading level={6}>{field.label}</Heading>\n <Text size={\"sm\"} className={\"wby-text-neutral-strong\"}>\n {fieldPlugin.field.label}\n {info && <span className={\"wby-lowercase\"}> ({info})</span>}\n </Text>\n </div>\n <div className={\"wby-flex wby-items-center wby-justify-end wby-gap-sm\"}>\n {fieldInformationRenderer\n ? fieldInformationRenderer({ model, field })\n : defaultInformationRenderer()}\n {canEdit ? (\n <IconButton\n data-testid={\"cms.editor.edit-field\"}\n icon={<EditIcon />}\n onClick={() => onEdit(field)}\n variant={\"ghost\"}\n size={\"sm\"}\n />\n ) : null}\n <DropdownMenu\n trigger={\n <IconButton icon={<MoreVerticalIcon />} variant={\"ghost\"} size={\"sm\"} />\n }\n >\n {editorFieldOptionPlugins.map(pl =>\n React.cloneElement(pl.render(), { key: pl.name })\n )}\n {/* We only allow this action for top-level fields. */}\n <DropdownMenu.Item\n disabled={!isFieldAllowedToBeTitle(model, field, parent)}\n onClick={setAsTitle}\n text={t`Use as title`}\n icon={\n <DropdownMenu.Item.Icon\n element={<TitleIcon />}\n label={t`Use as title`}\n />\n }\n />\n <DropdownMenu.Item\n disabled={!isFieldAllowedToBeDescription(model, field, parent)}\n onClick={setAsDescription}\n text={t`Use as description`}\n icon={\n <DropdownMenu.Item.Icon\n element={<TitleIcon />}\n label={t`Use as description`}\n />\n }\n />\n <DropdownMenu.Item\n disabled={!isFieldAllowedToBeImage(model, field, parent)}\n onClick={setAsImage}\n text={t`Use as image`}\n icon={\n <DropdownMenu.Item.Icon\n element={<TitleIcon />}\n label={t`Use as image`}\n />\n }\n />\n <DropdownMenu.Item\n onClick={onDelete}\n text={t`Delete`}\n icon={\n <DropdownMenu.Item.Icon\n element={<DeleteIcon />}\n label={t`Delete`}\n />\n }\n className={\"!wby-text-destructive-primary [&_svg]:wby-fill-destructive\"}\n />\n </DropdownMenu>\n </div>\n </div>\n {fieldPlugin.field.render && (\n <div className={\"wby-pt-md\"}>\n {fieldPlugin.field.render({ field, data: model, setData: setModel })}\n </div>\n )}\n </Fragment>\n );\n};\n\nexport default React.memo(Field);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Fragment","useCallback","useMemo","capitalize","ReactComponent","EditIcon","DeleteIcon","TitleIcon","MoreVerticalIcon","plugins","i18n","useSnackbar","useModelEditor","useModelFieldEditor","useConfirmationDialog","IconButton","Heading","Text","DropdownMenu","Tag","t","ns","allowedTitleFieldTypes","isFieldAllowedToBeTitle","model","field","parent","multipleValues","includes","type","titleFieldId","fieldId","isFieldAllowedToBeDescription","descriptionFieldId","isFieldAllowedToBeImage","imageFieldId","settings","imagesOnly","getFieldTypeName","isTitleField","isDescriptionField","isImageField","filter","Boolean","join","Field","props","onEdit","showSnackbar","showErrorSnackbar","setData","setModel","data","getFieldPlugin","getFieldRendererPlugin","showConfirmation","title","message","createElement","lockedFields","isLocked","some","lockedField","storageId","removeFieldFromSelected","id","onDelete","setAsTitle","response","error","setAsDescription","setAsImage","fieldPlugin","editorFieldOptionPlugins","byType","rendererPlugin","renderer","name","canEdit","canEditSettings","defaultInformationRenderer","fieldTypeName","fn","content","variant","displayName","fieldInformationRenderer","renderInfo","info","className","level","label","size","icon","onClick","trigger","map","pl","cloneElement","render","key","Item","disabled","text","Icon","element","memo"],"sources":["Field.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useMemo } from \"react\";\nimport capitalize from \"lodash/capitalize\";\nimport { ReactComponent as EditIcon } from \"@webiny/icons/edit.svg\";\nimport { ReactComponent as DeleteIcon } from \"@webiny/icons/delete.svg\";\nimport { ReactComponent as TitleIcon } from \"@webiny/icons/title.svg\";\nimport { ReactComponent as MoreVerticalIcon } from \"@webiny/icons/more_vert.svg\";\nimport { plugins } from \"@webiny/plugins\";\nimport type { CmsModelField, CmsEditorFieldOptionPlugin, CmsModel } from \"~/types\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { useModelEditor } from \"~/admin/hooks\";\nimport { useModelFieldEditor } from \"~/admin/components/FieldEditor/useModelFieldEditor\";\nimport { useConfirmationDialog } from \"@webiny/app-admin\";\nimport { IconButton, Heading, Text, DropdownMenu, Tag } from \"@webiny/admin-ui\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/components/editor/field\");\n\nconst allowedTitleFieldTypes: string[] = [\"text\", \"number\"];\n\nconst isFieldAllowedToBeTitle = (model: CmsModel, field: CmsModelField, parent?: CmsModelField) => {\n if (field.multipleValues || parent) {\n return false;\n } else if (allowedTitleFieldTypes.includes(field.type) === false) {\n return false;\n } else if (model.titleFieldId === field.fieldId) {\n return false;\n }\n return true;\n};\nconst isFieldAllowedToBeDescription = (\n model: CmsModel,\n field: CmsModelField,\n parent?: CmsModelField\n) => {\n if (field.multipleValues || parent) {\n return false;\n } else if (model.descriptionFieldId === field.fieldId) {\n return false;\n }\n return field.type === \"long-text\";\n};\n\nconst isFieldAllowedToBeImage = (model: CmsModel, field: CmsModelField, parent?: CmsModelField) => {\n if (field.multipleValues || parent) {\n return false;\n } else if (model.imageFieldId === field.fieldId) {\n return false;\n }\n return field.type === \"file\" && field.settings?.imagesOnly;\n};\n\nconst getFieldTypeName = (\n model: CmsModel,\n field: CmsModelField,\n parent?: CmsModelField\n): string | null => {\n if (parent) {\n return null;\n }\n const isTitleField = field.fieldId === model?.titleFieldId && !parent;\n const isDescriptionField = field.fieldId === model?.descriptionFieldId && !parent;\n const isImageField = field.fieldId === model?.imageFieldId && !parent;\n\n return (\n [\n isTitleField ? \"entry title\" : null,\n isDescriptionField ? \"entry description\" : null,\n isImageField ? \"entry image\" : null\n ]\n .filter(Boolean)\n .join(\"\") || null\n );\n};\n\nexport interface FieldProps {\n field: CmsModelField;\n onDelete: (field: CmsModelField) => void;\n onEdit: (field: CmsModelField) => void;\n parent?: CmsModelField;\n}\n\nconst Field = (props: FieldProps) => {\n const { field, onEdit, parent } = props;\n const { showSnackbar, showErrorSnackbar } = useSnackbar();\n const { setData: setModel, data: model } = useModelEditor();\n const { getFieldPlugin, getFieldRendererPlugin } = useModelFieldEditor();\n\n const { showConfirmation } = useConfirmationDialog({\n title: t`Warning - You are trying to delete a locked field!`,\n message: (\n <>\n <p>{t`You are about to delete a field which is used in the data storage`}</p>\n <p>{t`All data in that field will be lost and there is no going back!`}</p>\n <p> </p>\n <p>{t`Are you sure you want to continue?`}</p>\n </>\n )\n });\n const lockedFields = model?.lockedFields || [];\n const isLocked = lockedFields.some(lockedField => lockedField.fieldId === field.storageId);\n\n const removeFieldFromSelected = useCallback(async () => {\n if (model.titleFieldId === field.fieldId) {\n await setModel(data => {\n return {\n ...data,\n titleFieldId: null\n };\n });\n } else if (model.descriptionFieldId === field.fieldId) {\n await setModel(data => {\n return {\n ...data,\n descriptionFieldId: null\n };\n });\n } else if (model.imageFieldId === field.fieldId) {\n await setModel(data => {\n return {\n ...data,\n imageFieldId: null\n };\n });\n }\n }, [field.id, setModel, model]);\n\n const onDelete = useCallback(async () => {\n if (!isLocked) {\n await removeFieldFromSelected();\n props.onDelete(field);\n return;\n }\n showConfirmation(async () => {\n await removeFieldFromSelected();\n props.onDelete(field);\n });\n }, [field.fieldId, lockedFields]);\n\n const setAsTitle = useCallback(async (): Promise<void> => {\n const response = await setModel(data => {\n return { ...data, titleFieldId: field.fieldId };\n });\n\n if (response && response.error) {\n return showErrorSnackbar(response.error.message);\n }\n\n showSnackbar(t`Title field set successfully.`);\n }, [field.fieldId, setModel]);\n\n const setAsDescription = useCallback(async (): Promise<void> => {\n const response = await setModel(data => {\n return { ...data, descriptionFieldId: field.fieldId };\n });\n\n if (response && response.error) {\n return showErrorSnackbar(response.error.message);\n }\n\n showSnackbar(t`Description field set successfully.`);\n }, [field.fieldId, setModel]);\n\n const setAsImage = useCallback(async (): Promise<void> => {\n const response = await setModel(data => {\n return { ...data, imageFieldId: field.fieldId };\n });\n\n if (response && response.error) {\n return showErrorSnackbar(response.error.message);\n }\n\n showSnackbar(t`Image field set successfully.`);\n }, [field.fieldId, setModel]);\n\n const fieldPlugin = getFieldPlugin(field.type);\n const editorFieldOptionPlugins =\n plugins.byType<CmsEditorFieldOptionPlugin>(\"cms-editor-field-option\");\n\n if (!fieldPlugin) {\n return null;\n }\n\n const rendererPlugin = getFieldRendererPlugin(field.renderer.name);\n const canEdit = fieldPlugin.field.canEditSettings !== false;\n\n const defaultInformationRenderer = useMemo(() => {\n const fieldTypeName = getFieldTypeName(model, field, parent);\n const fn = () => {\n if (!fieldTypeName) {\n return null;\n }\n return <Tag content={capitalize(fieldTypeName)} variant={\"neutral-base\"} />;\n };\n\n fn.displayName = \"FieldTypeRenderer\";\n\n return fn;\n }, [field.id]);\n\n const fieldInformationRenderer = fieldPlugin.field?.renderInfo;\n\n const info = [rendererPlugin?.renderer.name, field.multipleValues ? \"multiple values\" : null]\n .filter(Boolean)\n .join(\", \");\n\n return (\n <Fragment>\n <div className={\"wby-flex wby-justify-between wby-align-center\"}>\n <div>\n <Heading level={6}>{field.label}</Heading>\n <Text size={\"sm\"} className={\"wby-text-neutral-strong\"}>\n {fieldPlugin.field.label}\n {info && <span className={\"wby-lowercase\"}> ({info})</span>}\n </Text>\n </div>\n <div className={\"wby-flex wby-items-center wby-justify-end wby-gap-sm\"}>\n {fieldInformationRenderer\n ? fieldInformationRenderer({ model, field })\n : defaultInformationRenderer()}\n {canEdit ? (\n <IconButton\n data-testid={\"cms.editor.edit-field\"}\n icon={<EditIcon />}\n onClick={() => onEdit(field)}\n variant={\"ghost\"}\n size={\"sm\"}\n />\n ) : null}\n <DropdownMenu\n trigger={\n <IconButton icon={<MoreVerticalIcon />} variant={\"ghost\"} size={\"sm\"} />\n }\n >\n {editorFieldOptionPlugins.map(pl =>\n React.cloneElement(pl.render(), { key: pl.name })\n )}\n {/* We only allow this action for top-level fields. */}\n <DropdownMenu.Item\n disabled={!isFieldAllowedToBeTitle(model, field, parent)}\n onClick={setAsTitle}\n text={t`Use as title`}\n icon={\n <DropdownMenu.Item.Icon\n element={<TitleIcon />}\n label={t`Use as title`}\n />\n }\n />\n <DropdownMenu.Item\n disabled={!isFieldAllowedToBeDescription(model, field, parent)}\n onClick={setAsDescription}\n text={t`Use as description`}\n icon={\n <DropdownMenu.Item.Icon\n element={<TitleIcon />}\n label={t`Use as description`}\n />\n }\n />\n <DropdownMenu.Item\n disabled={!isFieldAllowedToBeImage(model, field, parent)}\n onClick={setAsImage}\n text={t`Use as image`}\n icon={\n <DropdownMenu.Item.Icon\n element={<TitleIcon />}\n label={t`Use as image`}\n />\n }\n />\n <DropdownMenu.Item\n onClick={onDelete}\n text={t`Delete`}\n icon={\n <DropdownMenu.Item.Icon\n element={<DeleteIcon />}\n label={t`Delete`}\n />\n }\n className={\"!wby-text-destructive-primary [&_svg]:wby-fill-destructive\"}\n />\n </DropdownMenu>\n </div>\n </div>\n {fieldPlugin.field.render && (\n <div className={\"wby-pt-md\"}>\n {fieldPlugin.field.render({ field, data: model, setData: setModel })}\n </div>\n )}\n </Fragment>\n );\n};\n\nexport default React.memo(Field);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { CmsModelField, CmsEditorFieldsLayout } from "../../../types";
|
|
2
|
+
import type { CmsModelField, CmsEditorFieldsLayout } from "../../../types";
|
|
3
3
|
export interface FieldEditorProps {
|
|
4
4
|
parent?: CmsModelField;
|
|
5
5
|
layout: CmsEditorFieldsLayout;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Fragment","get","i18n","ReactComponent","DragIcon","Center","Vertical","Horizontal","Draggable","EditFieldDialog","Field","useModelFieldEditor","FieldEditorProvider","ModelFieldProvider","cn","Icon","t","namespace","fieldTypes","Editor","parent","depth","insertField","updateField","deleteField","fields","noConflict","editField","onFieldDrop","onEndDrag","field","dropTarget","getFieldPlugin","canDropIntoField","draggable","fieldPlugin","type","canAccept","isVerticalDropzoneVisible","cb","item","allowLayout","isHorizontalDropzoneVisible","createElement","length","isDroppable","onDrop","row","index","map","beginDrag","fieldId","pos","endDrag","key","f","join","drag","isDragging","className","ref","icon","label","color","size","isVisible","fieldIndex","includes","onEdit","onDelete","last","onClose","onSubmit","id","position","FieldEditor","props"],"sources":["FieldEditor.tsx"],"sourcesContent":["import React, { Fragment } from \"react\";\nimport get from \"lodash/get\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ReactComponent as DragIcon } from \"@webiny/icons/drag_indicator.svg\";\nimport { Center, Vertical, Horizontal } from \"../DropZone\";\nimport Draggable from \"../Draggable\";\nimport EditFieldDialog from \"./EditFieldDialog\";\nimport Field from \"./Field\";\nimport { useModelFieldEditor } from \"./useModelFieldEditor\";\nimport { FieldEditorProvider, IsVisibleCallable } from \"./FieldEditorContext\";\nimport { CmsModelField, CmsEditorFieldsLayout, CmsModelFieldTypePlugin, DragSource } from \"~/types\";\nimport { ModelFieldProvider } from \"~/admin/components/ModelFieldProvider\";\nimport { cn, Icon } from \"@webiny/admin-ui\";\n\nconst t = i18n.namespace(\"app-headless-cms/admin/components/editor\");\n\nconst fieldTypes: string[] = [\"field\", \"newField\"];\n\nconst Editor = () => {\n const {\n parent,\n depth,\n insertField,\n updateField,\n deleteField,\n fields,\n noConflict,\n editField,\n onFieldDrop,\n onEndDrag,\n field,\n dropTarget,\n getFieldPlugin\n } = useModelFieldEditor();\n\n const canDropIntoField = (field: CmsModelField, draggable: DragSource) => {\n const fieldPlugin = getFieldPlugin(field.type) as CmsModelFieldTypePlugin;\n const canAccept = fieldPlugin.field.canAccept;\n if (typeof canAccept === \"function\" && !canAccept(field, draggable)) {\n return false;\n }\n\n return true;\n };\n\n const isVerticalDropzoneVisible = (cb: IsVisibleCallable) => {\n return (item: DragSource) => {\n if (!parent) {\n return cb(item);\n }\n\n const fieldPlugin = getFieldPlugin(parent.type) as CmsModelFieldTypePlugin;\n const allowLayout = fieldPlugin.field.allowLayout ?? true;\n if (!allowLayout) {\n return false;\n }\n\n if (!canDropIntoField(parent, item)) {\n return false;\n }\n\n return cb(item);\n };\n };\n\n const isHorizontalDropzoneVisible = (cb: IsVisibleCallable) => {\n return (item: DragSource) => {\n if (!parent) {\n return cb(item);\n }\n\n if (!canDropIntoField(parent, item)) {\n return false;\n }\n\n return cb(item);\n };\n };\n\n return (\n <Fragment>\n {fields.length === 0 && (\n <Center\n isDroppable={isHorizontalDropzoneVisible(() => true)}\n onDrop={item =>\n onFieldDrop(item, {\n row: 0,\n index: 0\n })\n }\n >\n {t`Drop your first field here`}\n </Center>\n )}\n\n {fields.map((row, index) => (\n <Draggable\n beginDrag={{\n parent: parent ? parent.fieldId : null,\n type: \"row\",\n fields: row,\n pos: { row: index }\n }}\n endDrag={onEndDrag}\n key={row.map(f => f.fieldId).join(\".\")}\n >\n {(\n {\n drag,\n isDragging\n } /* RowContainer start - includes drag handle, drop zones and the Row itself. */\n ) => (\n <div\n className={cn([\n \"wby-flex wby-flex-column\",\n \"wby-relative\",\n \"wby-mb-md last-of-type:wby-mb-none\",\n \"wby-bg-neutral-dimmed\",\n isDragging ? \"wby-opacity-30\" : \"wby-opacity-100\"\n ])}\n >\n <div\n className={cn([\n \"wby-cursor-grab\",\n \"wby-absolute wby-left-sm-plus wby-top-sm-plus wby-z-10\"\n ])}\n ref={drag}\n >\n <Icon\n icon={<DragIcon />}\n label={\"Drag to move this row\"}\n color={\"neutral-light\"}\n size={\"sm\"}\n />\n </div>\n <Horizontal\n isVisible={isHorizontalDropzoneVisible(noConflict())}\n data-testid={`cms-editor-row-droppable-top-${index}`}\n onDrop={item => onFieldDrop(item, { row: index, index: null })}\n />\n {/* Row start - includes field drop zones and fields */}\n <div\n className={cn([\n \"wby-w-full wby-flex wby-justify-between\",\n \"wby-pl-xl wby-pr-sm wby-py-sm\"\n ])}\n data-testid={\"cms.editor.field-row\"}\n >\n {row.map((field, fieldIndex) => (\n <ModelFieldProvider field={field} key={field.fieldId}>\n <Draggable\n beginDrag={{\n parent: parent ? parent.fieldId : null,\n type: \"field\",\n field,\n pos: {\n row: index,\n index: fieldIndex\n }\n }}\n endDrag={onEndDrag}\n >\n {({ drag }) => (\n <div\n className={cn([\n \"wby-relative\",\n \"wby-flex-1 wby-basis-full\",\n \"wby-mx-sm\"\n ])}\n ref={drag}\n >\n <Vertical\n depth={depth}\n onDrop={item =>\n onFieldDrop(item, {\n row: index,\n index: fieldIndex\n })\n }\n isVisible={isVerticalDropzoneVisible(\n noConflict(\n item =>\n fieldTypes.includes(\n item.type\n ) &&\n (row.length < 4 ||\n get(item, \"pos.row\") ===\n index)\n )\n )}\n />\n\n <div\n className={\n \"wby-cursor-grab wby-bg-neutral-base wby-p-md wby-shadow-sm wby-rounded-xs\"\n }\n >\n <Field\n parent={parent}\n field={field}\n onEdit={editField}\n onDelete={deleteField}\n />\n </div>\n\n {/* Field end */}\n {fieldIndex === row.length - 1 && (\n <Vertical\n last\n depth={depth}\n isVisible={isVerticalDropzoneVisible(\n noConflict(item => {\n return (\n fieldTypes.includes(\n item.type\n ) &&\n (row.length < 4 ||\n get(item, \"pos.row\") ===\n index)\n );\n })\n )}\n onDrop={item =>\n onFieldDrop(item, {\n row: index,\n index: fieldIndex + 1\n })\n }\n />\n )}\n </div>\n )}\n </Draggable>\n </ModelFieldProvider>\n ))}\n </div>\n {/* Row end */}\n {index === fields.length - 1 ? (\n <Horizontal\n data-testid={`cms-editor-row-droppable-bottom-${index}`}\n last\n isVisible={isHorizontalDropzoneVisible(noConflict())}\n onDrop={item =>\n onFieldDrop(item, {\n row: index + 1,\n index: null\n })\n }\n />\n ) : null}\n </div>\n )}\n </Draggable>\n ))}\n\n {field ? (\n <ModelFieldProvider field={field}>\n <EditFieldDialog\n onClose={() => editField(null)}\n onSubmit={field => {\n if (field.id) {\n updateField(field);\n editField(null);\n return;\n }\n insertField({ field, position: dropTarget });\n\n editField(null);\n }}\n />\n </ModelFieldProvider>\n ) : null}\n </Fragment>\n );\n};\n\nexport interface FieldEditorProps {\n parent?: CmsModelField;\n layout: CmsEditorFieldsLayout;\n fields: CmsModelField[];\n onChange: (params: { fields: CmsModelField[]; layout: CmsEditorFieldsLayout }) => void;\n}\n\nexport const FieldEditor = (props: FieldEditorProps) => {\n return (\n <FieldEditorProvider {...props}>\n <Editor />\n </FieldEditorProvider>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Fragment","get","i18n","ReactComponent","DragIcon","Center","Vertical","Horizontal","Draggable","EditFieldDialog","Field","useModelFieldEditor","FieldEditorProvider","ModelFieldProvider","cn","Icon","t","namespace","fieldTypes","Editor","parent","depth","insertField","updateField","deleteField","fields","noConflict","editField","onFieldDrop","onEndDrag","field","dropTarget","getFieldPlugin","canDropIntoField","draggable","fieldPlugin","type","canAccept","isVerticalDropzoneVisible","cb","item","allowLayout","isHorizontalDropzoneVisible","createElement","length","isDroppable","onDrop","row","index","map","beginDrag","fieldId","pos","endDrag","key","f","join","drag","isDragging","className","ref","icon","label","color","size","isVisible","fieldIndex","includes","onEdit","onDelete","last","onClose","onSubmit","id","position","FieldEditor","props"],"sources":["FieldEditor.tsx"],"sourcesContent":["import React, { Fragment } from \"react\";\nimport get from \"lodash/get\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ReactComponent as DragIcon } from \"@webiny/icons/drag_indicator.svg\";\nimport { Center, Vertical, Horizontal } from \"../DropZone\";\nimport Draggable from \"../Draggable\";\nimport EditFieldDialog from \"./EditFieldDialog\";\nimport Field from \"./Field\";\nimport { useModelFieldEditor } from \"./useModelFieldEditor\";\nimport type { IsVisibleCallable } from \"./FieldEditorContext\";\nimport { FieldEditorProvider } from \"./FieldEditorContext\";\nimport type {\n CmsModelField,\n CmsEditorFieldsLayout,\n CmsModelFieldTypePlugin,\n DragSource\n} from \"~/types\";\nimport { ModelFieldProvider } from \"~/admin/components/ModelFieldProvider\";\nimport { cn, Icon } from \"@webiny/admin-ui\";\n\nconst t = i18n.namespace(\"app-headless-cms/admin/components/editor\");\n\nconst fieldTypes: string[] = [\"field\", \"newField\"];\n\nconst Editor = () => {\n const {\n parent,\n depth,\n insertField,\n updateField,\n deleteField,\n fields,\n noConflict,\n editField,\n onFieldDrop,\n onEndDrag,\n field,\n dropTarget,\n getFieldPlugin\n } = useModelFieldEditor();\n\n const canDropIntoField = (field: CmsModelField, draggable: DragSource) => {\n const fieldPlugin = getFieldPlugin(field.type) as CmsModelFieldTypePlugin;\n const canAccept = fieldPlugin.field.canAccept;\n if (typeof canAccept === \"function\" && !canAccept(field, draggable)) {\n return false;\n }\n\n return true;\n };\n\n const isVerticalDropzoneVisible = (cb: IsVisibleCallable) => {\n return (item: DragSource) => {\n if (!parent) {\n return cb(item);\n }\n\n const fieldPlugin = getFieldPlugin(parent.type) as CmsModelFieldTypePlugin;\n const allowLayout = fieldPlugin.field.allowLayout ?? true;\n if (!allowLayout) {\n return false;\n }\n\n if (!canDropIntoField(parent, item)) {\n return false;\n }\n\n return cb(item);\n };\n };\n\n const isHorizontalDropzoneVisible = (cb: IsVisibleCallable) => {\n return (item: DragSource) => {\n if (!parent) {\n return cb(item);\n }\n\n if (!canDropIntoField(parent, item)) {\n return false;\n }\n\n return cb(item);\n };\n };\n\n return (\n <Fragment>\n {fields.length === 0 && (\n <Center\n isDroppable={isHorizontalDropzoneVisible(() => true)}\n onDrop={item =>\n onFieldDrop(item, {\n row: 0,\n index: 0\n })\n }\n >\n {t`Drop your first field here`}\n </Center>\n )}\n\n {fields.map((row, index) => (\n <Draggable\n beginDrag={{\n parent: parent ? parent.fieldId : null,\n type: \"row\",\n fields: row,\n pos: { row: index }\n }}\n endDrag={onEndDrag}\n key={row.map(f => f.fieldId).join(\".\")}\n >\n {(\n {\n drag,\n isDragging\n } /* RowContainer start - includes drag handle, drop zones and the Row itself. */\n ) => (\n <div\n className={cn([\n \"wby-flex wby-flex-column\",\n \"wby-relative\",\n \"wby-mb-md last-of-type:wby-mb-none\",\n \"wby-bg-neutral-dimmed\",\n isDragging ? \"wby-opacity-30\" : \"wby-opacity-100\"\n ])}\n >\n <div\n className={cn([\n \"wby-cursor-grab\",\n \"wby-absolute wby-left-sm-plus wby-top-sm-plus wby-z-10\"\n ])}\n ref={drag}\n >\n <Icon\n icon={<DragIcon />}\n label={\"Drag to move this row\"}\n color={\"neutral-light\"}\n size={\"sm\"}\n />\n </div>\n <Horizontal\n isVisible={isHorizontalDropzoneVisible(noConflict())}\n data-testid={`cms-editor-row-droppable-top-${index}`}\n onDrop={item => onFieldDrop(item, { row: index, index: null })}\n />\n {/* Row start - includes field drop zones and fields */}\n <div\n className={cn([\n \"wby-w-full wby-flex wby-justify-between\",\n \"wby-pl-xl wby-pr-sm wby-py-sm\"\n ])}\n data-testid={\"cms.editor.field-row\"}\n >\n {row.map((field, fieldIndex) => (\n <ModelFieldProvider field={field} key={field.fieldId}>\n <Draggable\n beginDrag={{\n parent: parent ? parent.fieldId : null,\n type: \"field\",\n field,\n pos: {\n row: index,\n index: fieldIndex\n }\n }}\n endDrag={onEndDrag}\n >\n {({ drag }) => (\n <div\n className={cn([\n \"wby-relative\",\n \"wby-flex-1 wby-basis-full\",\n \"wby-mx-sm\"\n ])}\n ref={drag}\n >\n <Vertical\n depth={depth}\n onDrop={item =>\n onFieldDrop(item, {\n row: index,\n index: fieldIndex\n })\n }\n isVisible={isVerticalDropzoneVisible(\n noConflict(\n item =>\n fieldTypes.includes(\n item.type\n ) &&\n (row.length < 4 ||\n get(item, \"pos.row\") ===\n index)\n )\n )}\n />\n\n <div\n className={\n \"wby-cursor-grab wby-bg-neutral-base wby-p-md wby-shadow-sm wby-rounded-xs\"\n }\n >\n <Field\n parent={parent}\n field={field}\n onEdit={editField}\n onDelete={deleteField}\n />\n </div>\n\n {/* Field end */}\n {fieldIndex === row.length - 1 && (\n <Vertical\n last\n depth={depth}\n isVisible={isVerticalDropzoneVisible(\n noConflict(item => {\n return (\n fieldTypes.includes(\n item.type\n ) &&\n (row.length < 4 ||\n get(item, \"pos.row\") ===\n index)\n );\n })\n )}\n onDrop={item =>\n onFieldDrop(item, {\n row: index,\n index: fieldIndex + 1\n })\n }\n />\n )}\n </div>\n )}\n </Draggable>\n </ModelFieldProvider>\n ))}\n </div>\n {/* Row end */}\n {index === fields.length - 1 ? (\n <Horizontal\n data-testid={`cms-editor-row-droppable-bottom-${index}`}\n last\n isVisible={isHorizontalDropzoneVisible(noConflict())}\n onDrop={item =>\n onFieldDrop(item, {\n row: index + 1,\n index: null\n })\n }\n />\n ) : null}\n </div>\n )}\n </Draggable>\n ))}\n\n {field ? (\n <ModelFieldProvider field={field}>\n <EditFieldDialog\n onClose={() => editField(null)}\n onSubmit={field => {\n if (field.id) {\n updateField(field);\n editField(null);\n return;\n }\n insertField({ field, position: dropTarget });\n\n editField(null);\n }}\n />\n </ModelFieldProvider>\n ) : null}\n </Fragment>\n );\n};\n\nexport interface FieldEditorProps {\n parent?: CmsModelField;\n layout: CmsEditorFieldsLayout;\n fields: CmsModelField[];\n onChange: (params: { fields: CmsModelField[]; layout: CmsEditorFieldsLayout }) => void;\n}\n\nexport const FieldEditor = (props: FieldEditorProps) => {\n return (\n <FieldEditorProvider {...props}>\n <Editor />\n </FieldEditorProvider>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { CmsEditorFieldId, CmsEditorFieldRendererPlugin, CmsEditorFieldsLayout, CmsEditorFieldTypePlugin, CmsModelField, DragSource, FieldLayoutPosition } from "../../../types";
|
|
3
|
-
import { FieldEditorProps } from "./FieldEditor";
|
|
4
|
-
import { DragSourceMonitor } from "react-dnd";
|
|
2
|
+
import type { CmsEditorFieldId, CmsEditorFieldRendererPlugin, CmsEditorFieldsLayout, CmsEditorFieldTypePlugin, CmsModelField, DragSource, FieldLayoutPosition } from "../../../types";
|
|
3
|
+
import type { FieldEditorProps } from "./FieldEditor";
|
|
4
|
+
import type { DragSourceMonitor } from "react-dnd";
|
|
5
5
|
interface DropTarget {
|
|
6
6
|
row: number;
|
|
7
7
|
index: number | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useState","dot","useDeepCompareEffect","plugins","utils","useModelFieldEditor","generateAlphaNumericLowerCaseId","FieldEditorContext","createContext","undefined","maxGenerateIdIterations","generateFieldId","layout","id","iteration","includes","Error","FieldEditorProvider","parent","fields","onChange","children","depth","editor","state","setState","field","dropTarget","row","index","editField","onDropTarget","fieldId","onFieldDrop","source","pos","type","fieldType","parentId","forEach","insertField","position","moveRow","moveField","plugin","getFieldPlugin","fieldData","createField","canEditSettings","onEndDrag","monitor","didDrop","monitorResult","getDropResult","removeFields","deleteField","getFieldsInLayout","filter","arr","length","map","getField","Boolean","byType","find","getFieldRendererPlugin","name","renderer","rendererName","query","key","flat","fieldPlugin","prev","next","concat","data","destination","updateField","i","set","noConflict","isVisible","item","sameParent","draggedFields","push","some","f","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 {\n CmsEditorFieldId,\n CmsEditorFieldRendererPlugin,\n CmsEditorFieldsLayout,\n CmsEditorFieldTypePlugin,\n CmsModelField,\n DragSource,\n FieldLayoutPosition\n} from \"~/types\";\nimport { plugins } from \"@webiny/plugins\";\nimport * as utils from \"./utils\";\nimport { FieldEditorProps } from \"./FieldEditor\";\nimport { DragSourceMonitor } from \"react-dnd\";\nimport { useModelFieldEditor } from \"~/admin/components/FieldEditor/useModelFieldEditor\";\nimport { generateAlphaNumericLowerCaseId } from \"@webiny/utils\";\nimport { DragObject } from \"../Droppable\";\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 MoveFieldParams {\n field: CmsEditorFieldId | CmsModelField;\n position: FieldLayoutPosition;\n}\ninterface GetFieldsInLayoutCallable {\n (): CmsModelField[][];\n}\ninterface GetFieldPluginCallable {\n (type: string): CmsEditorFieldTypePlugin | undefined;\n}\ninterface GetFieldCallable {\n (query: GetFieldParams): CmsModelField | undefined;\n}\ninterface GetFieldRendererCallable {\n (rendererName: string): CmsEditorFieldRendererPlugin | 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[][];\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 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}\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 try {\n const editor = useModelFieldEditor();\n depth = editor.depth + 1;\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 // 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 },\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 field 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 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.\n return state.layout\n .filter(arr => arr.length)\n .map(row => {\n return row\n .map(id => {\n return getField({ id });\n })\n .filter(Boolean);\n })\n .filter(row => {\n return row.length > 0;\n }) as CmsModelField[][];\n };\n\n /**\n * Return field plugin.\n */\n const getFieldPlugin: GetFieldPluginCallable = type => {\n return plugins\n .byType<CmsEditorFieldTypePlugin>(\"cms-editor-field-type\")\n .find(plugin => plugin.field.type === type);\n };\n\n const getFieldRendererPlugin: GetFieldRendererCallable = name => {\n return plugins\n .byType<CmsEditorFieldRendererPlugin>(\"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(layout.flat());\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 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 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 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;AAU1D,SAASC,OAAO,QAAQ,iBAAiB;AACzC,OAAO,KAAKC,KAAK;AAGjB,SAASC,mBAAmB;AAC5B,SAASC,+BAA+B,QAAQ,eAAe;;AAQ/D;AACA;AACA;;AAmFA,OAAO,MAAMC,kBAAkB,gBAAGT,KAAK,CAACU,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,IAAI;IACA,MAAMC,MAAM,GAAGlB,mBAAmB,CAAC,CAAC;IACpCiB,KAAK,GAAGC,MAAM,CAACD,KAAK,GAAG,CAAC;EAC5B,CAAC,CAAC,MAAM;IACJ;EAAA;EAGJ,MAAM,CAACE,KAAK,EAAEC,QAAQ,CAAC,GAAGzB,QAAQ,CAAQ;IACtCY,MAAM;IACNO,MAAM;IACNO,KAAK,EAAE,IAAI;IACXC,UAAU,EAAE;MACRC,GAAG,EAAE,CAAC,CAAC;MACPC,KAAK,EAAE;IACX;EACJ,CAAC,CAAC;EAEF3B,oBAAoB,CAAC,MAAM;IACvBkB,QAAQ,CAAC;MAAED,MAAM,EAAEK,KAAK,CAACL,MAAM;MAAEP,MAAM,EAAEY,KAAK,CAACZ;IAAO,CAAC,CAAC;EAC5D,CAAC,EAAE,CAACY,KAAK,CAACL,MAAM,EAAEK,KAAK,CAACZ,MAAM,CAAC,CAAC;EAEhC,MAAMkB,SAAS,GAAG/B,WAAW,CAAE2B,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,EAAET,MAAM,GAAGA,MAAM,CAACc,OAAO,GAAG;EAC1C,CAAC;EAED,MAAMC,WAAW,GAAGlC,WAAW,CAAsB,CAACmC,MAAM,EAAEP,UAAU,KAAK;IACzE,MAAM;MAAEQ,GAAG;MAAEC,IAAI;MAAEC,SAAS;MAAEX,KAAK;MAAEP,MAAM,GAAG;IAAG,CAAC,GAAGe,MAAM;IAE3D,MAAMI,QAAQ,GAAGpB,MAAM,GAAGA,MAAM,CAACc,OAAO,GAAG,IAAI;IAE/C,IAAII,IAAI,KAAK,KAAK,EAAE;MAChB,IAAIE,QAAQ,KAAKJ,MAAM,CAAChB,MAAM,EAAE;QAC5B;QACAC,MAAM,CAACoB,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,KAAKnB,SAAS,EAAE;QACrC;QACAiC,OAAO,CAACP,GAAG,CAACP,GAAG,EAAED,UAAU,CAACC,GAAG,CAAC;MACpC;MAEA,OAAOG,YAAY;IACvB;;IAEA;IACA,IAAII,GAAG,EAAE;MACL,IAAI,CAACT,KAAK,EAAE;QACR,OAAOK,YAAY;MACvB;MACA,IAAIO,QAAQ,KAAKJ,MAAM,CAAChB,MAAM,EAAE;QAC5B;QACAsB,WAAW,CAAC;UAAEd,KAAK;UAAEe,QAAQ,EAAEd;QAAW,CAAC,CAAC;MAChD,CAAC,MAAM;QACH;QACAgB,SAAS,CAAC;UAAEjB,KAAK;UAAEe,QAAQ,EAAEd;QAAW,CAAC,CAAC;MAC9C;MACA,OAAOI,YAAY;IACvB;IAEA,IAAI,CAACM,SAAS,EAAE;MACZ,OAAO,IAAI;IACf;IACA,MAAMO,MAAM,GAAGC,cAAc,CAACR,SAAS,CAAC;IACxC,IAAI,CAACO,MAAM,EAAE;MACT,OAAO,IAAI;IACf;IAEA,MAAME,SAAS,GAAGF,MAAM,CAAClB,KAAK,CAACqB,WAAW,CAAC,CAAkB;IAE7D,IAAIH,MAAM,CAAClB,KAAK,CAACsB,eAAe,KAAK,KAAK,EAAE;MACxClB,SAAS,CAACgB,SAAS,CAAC;MACpBrB,QAAQ,CAACD,KAAK,KAAK;QACf,GAAGA,KAAK;QACRG;MACJ,CAAC,CAAC,CAAC;IACP,CAAC,MAAM;MACHa,WAAW,CAAC;QAAEd,KAAK,EAAEoB,SAAS;QAAEL,QAAQ,EAAEd;MAAW,CAAC,CAAC;IAC3D;IACA,OAAO,IAAI;EACf,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMsB,SAAoD,GAAGA,CACzD;IAAEb,IAAI;IAAEV,KAAK;IAAEP;EAAO,CAAC,EACvB+B,OAAO,KACN;IACD,IAAI,CAACA,OAAO,CAACC,OAAO,CAAC,CAAC,EAAE;MACpB;IACJ;;IAEA;IACA,MAAMC,aAAa,GAAGF,OAAO,CAACG,aAAa,CAAC,CAAC;IAC7C,MAAMf,QAAQ,GAAGpB,MAAM,GAAGA,MAAM,CAACc,OAAO,GAAG,IAAI;IAC/C,IAAIoB,aAAa,EAAEzB,UAAU,KAAKW,QAAQ,EAAE;MACxC;IACJ;IAEA,MAAMgB,YAAY,GAAGlB,IAAI,KAAK,KAAK,GAAGjB,MAAM,IAAI,EAAE,GAAGO,KAAK,GAAG,CAACA,KAAK,CAAC,GAAG,EAAE;IACzE4B,YAAY,CAACf,OAAO,CAACb,KAAK,IAAI6B,WAAW,CAAC7B,KAAK,CAAC,CAAC;EACrD,CAAC;EAED,MAAM8B,iBAA4C,GAAGA,CAAA,KAAM;IACvD;IACA,OAAOhC,KAAK,CAACZ,MAAM,CACd6C,MAAM,CAACC,GAAG,IAAIA,GAAG,CAACC,MAAM,CAAC,CACzBC,GAAG,CAAChC,GAAG,IAAI;MACR,OAAOA,GAAG,CACLgC,GAAG,CAAC/C,EAAE,IAAI;QACP,OAAOgD,QAAQ,CAAC;UAAEhD;QAAG,CAAC,CAAC;MAC3B,CAAC,CAAC,CACD4C,MAAM,CAACK,OAAO,CAAC;IACxB,CAAC,CAAC,CACDL,MAAM,CAAC7B,GAAG,IAAI;MACX,OAAOA,GAAG,CAAC+B,MAAM,GAAG,CAAC;IACzB,CAAC,CAAC;EACV,CAAC;;EAED;AACJ;AACA;EACI,MAAMd,cAAsC,GAAGT,IAAI,IAAI;IACnD,OAAOjC,OAAO,CACT4D,MAAM,CAA2B,uBAAuB,CAAC,CACzDC,IAAI,CAACpB,MAAM,IAAIA,MAAM,CAAClB,KAAK,CAACU,IAAI,KAAKA,IAAI,CAAC;EACnD,CAAC;EAED,MAAM6B,sBAAgD,GAAGC,IAAI,IAAI;IAC7D,OAAO/D,OAAO,CACT4D,MAAM,CAA+B,2BAA2B,CAAC,CACjEC,IAAI,CAACpB,MAAM,IAAIA,MAAM,CAACuB,QAAQ,CAACC,YAAY,KAAKF,IAAI,CAAC;EAC9D,CAAC;;EAED;AACJ;AACA;EACI,MAAML,QAA0B,GAAGQ,KAAK,IAAI;IACxC,OAAO7C,KAAK,CAACL,MAAM,CAAC6C,IAAI,CAACtC,KAAK,IAAI;MAC9B,KAAK,MAAM4C,GAAG,IAAID,KAAK,EAAE;QACrB,IAAI,EAAEC,GAAG,IAAI5C,KAAK,CAAC,EAAE;UACjB,OAAO,KAAK;QAChB;QAEA,IAAIA,KAAK,CAAC4C,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,MAAM9B,WAAgC,GAAGA,CAAC;IAAEd,KAAK;IAAEe;EAAS,CAAC,KAAK;IAC9D,IAAI,CAACf,KAAK,CAACb,EAAE,EAAE;MACXa,KAAK,CAACb,EAAE,GAAGF,eAAe,CAACC,MAAM,CAAC2D,IAAI,CAAC,CAAC,CAAC;IAC7C;IAEA,IAAI,CAAC7C,KAAK,CAACU,IAAI,EAAE;MACb,MAAM,IAAIpB,KAAK,CAAC,uBAAuB,CAAC;IAC5C;IAEA,MAAMwD,WAAW,GAAG3B,cAAc,CAACnB,KAAK,CAACU,IAAI,CAAC;IAC9C,IAAI,CAACoC,WAAW,EAAE;MACd,MAAM,IAAIxD,KAAK,CAAC,mCAAmCU,KAAK,CAACU,IAAI,IAAI,CAAC;IACtE;IAEAX,QAAQ,CAACgD,IAAI,IAAI;MACb,MAAMC,IAAW,GAAG;QAChB,GAAGD,IAAI;QACPtD,MAAM,EAAE,CAACsD,IAAI,CAACtD,MAAM,IAAI,EAAE,EAAEwD,MAAM,CAACjD,KAAK;MAC5C,CAAC;;MAED;MACA,OAAOtB,KAAK,CAACuC,SAAS,CAAC;QAAEjB,KAAK;QAAEe,QAAQ;QAAEmC,IAAI,EAAEF;MAAK,CAAC,CAAC;IAC3D,CAAC,CAAC;EACN,CAAC;;EAED;AACJ;AACA;EACI,MAAM/B,SAA4B,GAAGA,CAAC;IAAEjB,KAAK;IAAEe;EAAS,CAAC,KAAK;IAC1DhB,QAAQ,CAACmD,IAAI,IAAI;MACb,OAAOxE,KAAK,CAACuC,SAAS,CAAQ;QAAEjB,KAAK;QAAEe,QAAQ;QAAEmC;MAAK,CAAC,CAAC;IAC5D,CAAC,CAAC;EACN,CAAC;;EAED;AACJ;AACA;EACI,MAAMlC,OAAwB,GAAGA,CAACR,MAAM,EAAE2C,WAAW,KAAK;IACtDpD,QAAQ,CAACmD,IAAI,IAAI;MACb,OAAOxE,KAAK,CAACsC,OAAO,CAAC;QAAEkC,IAAI;QAAE1C,MAAM;QAAE2C;MAAY,CAAC,CAAC;IACvD,CAAC,CAAC;EACN,CAAC;;EAED;AACJ;AACA;EACI,MAAMC,WAAgC,GAAGpD,KAAK,IAAI;IAC9CD,QAAQ,CAACmD,IAAI,IAAI;MACb,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,IAAI,CAACzD,MAAM,CAACwC,MAAM,EAAEoB,CAAC,EAAE,EAAE;QACzC,IAAIH,IAAI,CAACzD,MAAM,CAAC4D,CAAC,CAAC,CAAClE,EAAE,KAAKa,KAAK,CAACb,EAAE,EAAE;UAChC,OAAOZ,GAAG,CAAC+E,GAAG,CAACJ,IAAI,EAAE,UAAUG,CAAC,EAAE,EAAErD,KAAK,CAAC;QAC9C;MACJ;MACA,OAAOkD,IAAI;IACf,CAAC,CAAC;EACN,CAAC;;EAED;AACJ;AACA;EACI,MAAMrB,WAAgC,GAAG7B,KAAK,IAAI;IAC9CD,QAAQ,CAACmD,IAAI,IAAI;MACb,OAAOxE,KAAK,CAACmD,WAAW,CAAC;QAAE7B,KAAK;QAAEkD;MAAK,CAAC,CAAC;IAC7C,CAAC,CAAC;EACN,CAAC;EAED,MAAMK,UAA8B,GAAGlF,WAAW,CAC7CmF,SAA6B,IAAKC,IAAI,IAAI;IACvC,MAAMC,UAAU,GAAGD,IAAI,CAACjE,MAAM,KAAKa,YAAY,CAACJ,UAAU;IAC1D,MAAM0D,aAAuB,GAAG,EAAE;IAClC,QAAQF,IAAI,CAAC/C,IAAI;MACb,KAAK,KAAK;QACN,CAAC+C,IAAI,CAAChE,MAAM,IAAI,EAAE,EAAEoB,OAAO,CAACb,KAAK,IAAI2D,aAAa,CAACC,IAAI,CAAC5D,KAAK,CAACM,OAAO,CAAC,CAAC;QACvE;MACJ,KAAK,OAAO;QACR,IAAI,CAACmD,IAAI,CAACzD,KAAK,EAAE;UACb;QACJ;QACA2D,aAAa,CAACC,IAAI,CAACH,IAAI,CAACzD,KAAK,CAACM,OAAO,CAAC;QACtC;MACJ;QACI;IACR;IAEA,IACIqD,aAAa,CAAC1B,MAAM,IACpB,CAACyB,UAAU,IACXjE,MAAM,CAACoE,IAAI,CAAC7D,KAAK,IAAI2D,aAAa,CAACtE,QAAQ,CAACW,KAAK,CAACM,OAAO,CAAC,CAAC,EAC7D;MACE,OAAO,KAAK;IAChB;IAEA,OAAO,OAAOkD,SAAS,KAAK,UAAU,GAAGA,SAAS,CAACC,IAAI,CAAC,GAAG,IAAI;EACnE,CAAC,EACD,CAAChE,MAAM,CAACyC,GAAG,CAAC4B,CAAC,IAAIA,CAAC,CAACxD,OAAO,CAAC,CAACyD,IAAI,CAAC,GAAG,CAAC,CACzC,CAAC;EAED,MAAMC,KAAyB,GAAG;IAC9BxE,MAAM;IACNI,KAAK;IACLkC,iBAAiB;IACjBX,cAAc;IACdoB,sBAAsB;IACtBJ,QAAQ;IACR/B,SAAS;IACTJ,KAAK,EAAEF,KAAK,CAACE,KAAK;IAClBC,UAAU,EAAEH,KAAK,CAACG,UAAU;IAC5BM,WAAW;IACXgB,SAAS;IACTT,WAAW;IACXG,SAAS;IACTD,OAAO;IACPoC,WAAW;IACXvB,WAAW;IACXpC,MAAM,EAAEqC,iBAAiB,CAAC,CAAC;IAC3ByB,UAAU;IACVrE,MAAM,EAAEY,KAAK,CAACZ;EAClB,CAAC;EAED,oBAAOd,KAAA,CAAA6F,aAAA,CAACpF,kBAAkB,CAACqF,QAAQ;IAACF,KAAK,EAAEA;EAAM,GAAErE,QAAsC,CAAC;AAC9F,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useCallback","useState","dot","useDeepCompareEffect","plugins","utils","useModelFieldEditor","generateAlphaNumericLowerCaseId","FieldEditorContext","createContext","undefined","maxGenerateIdIterations","generateFieldId","layout","id","iteration","includes","Error","FieldEditorProvider","parent","fields","onChange","children","depth","editor","state","setState","field","dropTarget","row","index","editField","onDropTarget","fieldId","onFieldDrop","source","pos","type","fieldType","parentId","forEach","insertField","position","moveRow","moveField","plugin","getFieldPlugin","fieldData","createField","canEditSettings","onEndDrag","monitor","didDrop","monitorResult","getDropResult","removeFields","deleteField","getFieldsInLayout","filter","arr","length","map","getField","Boolean","byType","find","getFieldRendererPlugin","name","renderer","rendererName","query","key","flat","fieldPlugin","prev","next","concat","data","destination","updateField","i","set","noConflict","isVisible","item","sameParent","draggedFields","push","some","f","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 CmsEditorFieldRendererPlugin,\n CmsEditorFieldsLayout,\n CmsEditorFieldTypePlugin,\n CmsModelField,\n DragSource,\n FieldLayoutPosition\n} from \"~/types\";\nimport { plugins } from \"@webiny/plugins\";\nimport * as utils from \"./utils\";\nimport type { FieldEditorProps } from \"./FieldEditor\";\nimport type { DragSourceMonitor } from \"react-dnd\";\nimport { useModelFieldEditor } from \"~/admin/components/FieldEditor/useModelFieldEditor\";\nimport { generateAlphaNumericLowerCaseId } from \"@webiny/utils\";\nimport type { DragObject } from \"../Droppable\";\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 MoveFieldParams {\n field: CmsEditorFieldId | CmsModelField;\n position: FieldLayoutPosition;\n}\ninterface GetFieldsInLayoutCallable {\n (): CmsModelField[][];\n}\ninterface GetFieldPluginCallable {\n (type: string): CmsEditorFieldTypePlugin | undefined;\n}\ninterface GetFieldCallable {\n (query: GetFieldParams): CmsModelField | undefined;\n}\ninterface GetFieldRendererCallable {\n (rendererName: string): CmsEditorFieldRendererPlugin | 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[][];\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 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}\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 try {\n const editor = useModelFieldEditor();\n depth = editor.depth + 1;\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 // 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 },\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 field 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 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.\n return state.layout\n .filter(arr => arr.length)\n .map(row => {\n return row\n .map(id => {\n return getField({ id });\n })\n .filter(Boolean);\n })\n .filter(row => {\n return row.length > 0;\n }) as CmsModelField[][];\n };\n\n /**\n * Return field plugin.\n */\n const getFieldPlugin: GetFieldPluginCallable = type => {\n return plugins\n .byType<CmsEditorFieldTypePlugin>(\"cms-editor-field-type\")\n .find(plugin => plugin.field.type === type);\n };\n\n const getFieldRendererPlugin: GetFieldRendererCallable = name => {\n return plugins\n .byType<CmsEditorFieldRendererPlugin>(\"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(layout.flat());\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 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 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 fields: getFieldsInLayout(),\n noConflict,\n layout: state.layout\n };\n\n return <FieldEditorContext.Provider value={value}>{children}</FieldEditorContext.Provider>;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["dot","params","field","data","prev","fieldIndex","fields","findIndex","item","id","delete","set","layout","newLayout","currentRowIndex","forEach","row","fieldId","find","Array","isArray","push","length"],"sources":["deleteField.ts"],"sourcesContent":["import dot from \"dot-prop-immutable\";\nimport { CmsModelField, CmsModel } from \"~/types\";\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.\n return dot.set(data, \"layout\", (layout: DeleteFieldParamsData[\"layout\"]) => {\n if (!layout) {\n return [];\n }\n const newLayout: DeleteFieldParamsData[\"layout\"] = [];\n let currentRowIndex = 0;\n layout.forEach(row => {\n row.forEach(fieldId => {\n const field = data.fields.find(item => item.id === fieldId);\n if (!field) {\n return;\n }\n if (!Array.isArray(newLayout[currentRowIndex])) {\n newLayout[currentRowIndex] = [];\n }\n\n newLayout[currentRowIndex].push(fieldId);\n });\n newLayout[currentRowIndex] && newLayout[currentRowIndex].length && currentRowIndex++;\n });\n\n return newLayout;\n });\n};\n"],"mappings":"AAAA,OAAOA,GAAG,MAAM,oBAAoB;AAQpC,eAAgBC,MAAyB,IAAK;EAC1C,MAAM;IAAEC,KAAK;IAAEC,IAAI,EAAEC;EAAK,CAAC,GAAGH,MAAM;EACpC;EACA,MAAMI,UAAU,GAAGD,IAAI,CAACE,MAAM,CAACC,SAAS,CAACC,IAAI,IAAIA,IAAI,CAACC,EAAE,KAAKP,KAAK,CAACO,EAAE,CAAC;EACtE,MAAMN,IAAI,GAAGH,GAAG,CAACU,MAAM,CAACN,IAAI,EAAE,UAAUC,UAAU,EAAE,CAA0B;;EAE9E;EACA,OAAOL,GAAG,CAACW,GAAG,CAACR,IAAI,EAAE,QAAQ,EAAGS,MAAuC,IAAK;IACxE,IAAI,CAACA,MAAM,EAAE;MACT,OAAO,EAAE;IACb;IACA,MAAMC,SAA0C,GAAG,EAAE;IACrD,IAAIC,eAAe,GAAG,CAAC;IACvBF,MAAM,CAACG,OAAO,CAACC,GAAG,IAAI;MAClBA,GAAG,CAACD,OAAO,CAACE,OAAO,IAAI;QACnB,MAAMf,KAAK,GAAGC,IAAI,CAACG,MAAM,CAACY,IAAI,CAACV,IAAI,IAAIA,IAAI,CAACC,EAAE,KAAKQ,OAAO,CAAC;QAC3D,IAAI,CAACf,KAAK,EAAE;UACR;QACJ;QACA,IAAI,CAACiB,KAAK,CAACC,OAAO,CAACP,SAAS,CAACC,eAAe,CAAC,CAAC,EAAE;UAC5CD,SAAS,CAACC,eAAe,CAAC,GAAG,EAAE;QACnC;QAEAD,SAAS,CAACC,eAAe,CAAC,CAACO,IAAI,CAACJ,OAAO,CAAC;MAC5C,CAAC,CAAC;MACFJ,SAAS,CAACC,eAAe,CAAC,IAAID,SAAS,CAACC,eAAe,CAAC,CAACQ,MAAM,IAAIR,eAAe,EAAE;IACxF,CAAC,CAAC;IAEF,OAAOD,SAAS;EACpB,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["dot","params","field","data","prev","fieldIndex","fields","findIndex","item","id","delete","set","layout","newLayout","currentRowIndex","forEach","row","fieldId","find","Array","isArray","push","length"],"sources":["deleteField.ts"],"sourcesContent":["import dot from \"dot-prop-immutable\";\nimport type { CmsModelField, CmsModel } from \"~/types\";\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.\n return dot.set(data, \"layout\", (layout: DeleteFieldParamsData[\"layout\"]) => {\n if (!layout) {\n return [];\n }\n const newLayout: DeleteFieldParamsData[\"layout\"] = [];\n let currentRowIndex = 0;\n layout.forEach(row => {\n row.forEach(fieldId => {\n const field = data.fields.find(item => item.id === fieldId);\n if (!field) {\n return;\n }\n if (!Array.isArray(newLayout[currentRowIndex])) {\n newLayout[currentRowIndex] = [];\n }\n\n newLayout[currentRowIndex].push(fieldId);\n });\n newLayout[currentRowIndex] && newLayout[currentRowIndex].length && currentRowIndex++;\n });\n\n return newLayout;\n });\n};\n"],"mappings":"AAAA,OAAOA,GAAG,MAAM,oBAAoB;AAQpC,eAAgBC,MAAyB,IAAK;EAC1C,MAAM;IAAEC,KAAK;IAAEC,IAAI,EAAEC;EAAK,CAAC,GAAGH,MAAM;EACpC;EACA,MAAMI,UAAU,GAAGD,IAAI,CAACE,MAAM,CAACC,SAAS,CAACC,IAAI,IAAIA,IAAI,CAACC,EAAE,KAAKP,KAAK,CAACO,EAAE,CAAC;EACtE,MAAMN,IAAI,GAAGH,GAAG,CAACU,MAAM,CAACN,IAAI,EAAE,UAAUC,UAAU,EAAE,CAA0B;;EAE9E;EACA,OAAOL,GAAG,CAACW,GAAG,CAACR,IAAI,EAAE,QAAQ,EAAGS,MAAuC,IAAK;IACxE,IAAI,CAACA,MAAM,EAAE;MACT,OAAO,EAAE;IACb;IACA,MAAMC,SAA0C,GAAG,EAAE;IACrD,IAAIC,eAAe,GAAG,CAAC;IACvBF,MAAM,CAACG,OAAO,CAACC,GAAG,IAAI;MAClBA,GAAG,CAACD,OAAO,CAACE,OAAO,IAAI;QACnB,MAAMf,KAAK,GAAGC,IAAI,CAACG,MAAM,CAACY,IAAI,CAACV,IAAI,IAAIA,IAAI,CAACC,EAAE,KAAKQ,OAAO,CAAC;QAC3D,IAAI,CAACf,KAAK,EAAE;UACR;QACJ;QACA,IAAI,CAACiB,KAAK,CAACC,OAAO,CAACP,SAAS,CAACC,eAAe,CAAC,CAAC,EAAE;UAC5CD,SAAS,CAACC,eAAe,CAAC,GAAG,EAAE;QACnC;QAEAD,SAAS,CAACC,eAAe,CAAC,CAACO,IAAI,CAACJ,OAAO,CAAC;MAC5C,CAAC,CAAC;MACFJ,SAAS,CAACC,eAAe,CAAC,IAAID,SAAS,CAACC,eAAe,CAAC,CAACQ,MAAM,IAAIR,eAAe,EAAE;IACxF,CAAC,CAAC;IAEF,OAAOD,SAAS;EACpB,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CmsModelField, CmsModel, FieldLayoutPosition } from "../../../../types";
|
|
1
|
+
import type { CmsModelField, CmsModel, FieldLayoutPosition } from "../../../../types";
|
|
2
2
|
interface GetFieldPositionParams {
|
|
3
3
|
field: string | CmsModelField;
|
|
4
4
|
data: Pick<CmsModel, "layout">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["params","field","data","id","layout","i","length","row","j","index"],"sources":["getFieldPosition.ts"],"sourcesContent":["import { CmsModelField, CmsModel, FieldLayoutPosition } from \"~/types\";\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 if (row[j] === id) {\n return { row: i, index: j };\n }\n }\n }\n\n return null;\n};\n"],"mappings":"AAMA,eAAgBA,MAA8B,IAAiC;EAC3E,MAAM;IAAEC,KAAK;IAAEC;EAAK,CAAC,GAAGF,MAAM;EAC9B,MAAMG,EAAE,GAAG,OAAOF,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAGA,KAAK,CAACE,EAAE;EACvD,MAAMC,MAAM,GAAGF,IAAI,CAACE,MAAM,GAAGF,IAAI,CAACE,MAAM,GAAG,EAAE;EAC7C,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,MAAM,CAACE,MAAM,EAAED,CAAC,EAAE,EAAE;IACpC,MAAME,GAAG,GAAGH,MAAM,CAACC,CAAC,CAAC;IACrB,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,GAAG,CAACD,MAAM,EAAEE,CAAC,EAAE,EAAE;MACjC,IAAID,GAAG,CAACC,CAAC,CAAC,KAAKL,EAAE,EAAE;QACf,OAAO;UAAEI,GAAG,EAAEF,CAAC;UAAEI,KAAK,EAAED;QAAE,CAAC;MAC/B;IACJ;EACJ;EAEA,OAAO,IAAI;AACf,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["params","field","data","id","layout","i","length","row","j","index"],"sources":["getFieldPosition.ts"],"sourcesContent":["import type { CmsModelField, CmsModel, FieldLayoutPosition } from \"~/types\";\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 if (row[j] === id) {\n return { row: i, index: j };\n }\n }\n }\n\n return null;\n};\n"],"mappings":"AAMA,eAAgBA,MAA8B,IAAiC;EAC3E,MAAM;IAAEC,KAAK;IAAEC;EAAK,CAAC,GAAGF,MAAM;EAC9B,MAAMG,EAAE,GAAG,OAAOF,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAGA,KAAK,CAACE,EAAE;EACvD,MAAMC,MAAM,GAAGF,IAAI,CAACE,MAAM,GAAGF,IAAI,CAACE,MAAM,GAAG,EAAE;EAC7C,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,MAAM,CAACE,MAAM,EAAED,CAAC,EAAE,EAAE;IACpC,MAAME,GAAG,GAAGH,MAAM,CAACC,CAAC,CAAC;IACrB,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,GAAG,CAACD,MAAM,EAAEE,CAAC,EAAE,EAAE;MACjC,IAAID,GAAG,CAACC,CAAC,CAAC,KAAKL,EAAE,EAAE;QACf,OAAO;UAAEI,GAAG,EAAEF,CAAC;UAAEI,KAAK,EAAED;QAAE,CAAC;MAC/B;IACJ;EACJ;EAEA,OAAO,IAAI;AACf,CAAC","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CmsModelField, CmsEditorFieldId, CmsModel as BaseCmsModel, FieldLayoutPosition } from "../../../../types";
|
|
1
|
+
import type { CmsModelField, CmsEditorFieldId, CmsModel as BaseCmsModel, FieldLayoutPosition } from "../../../../types";
|
|
2
2
|
interface MoveFieldParams<T> {
|
|
3
3
|
field: CmsEditorFieldId | Pick<CmsModelField, "id">;
|
|
4
4
|
position: FieldLayoutPosition;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["dot","getFieldPosition","moveField","params","field","position","data","prev","row","index","fieldId","id","next","layout","existingPosition","delete","set","newLayout","splice","filter","length"],"sources":["moveField.ts"],"sourcesContent":["import dot from \"dot-prop-immutable\";\nimport {\n CmsModelField,\n CmsEditorFieldId,\n CmsModel as BaseCmsModel,\n FieldLayoutPosition\n} from \"~/types\";\nimport getFieldPosition from \"./getFieldPosition\";\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"],"mappings":"AAAA,OAAOA,GAAG,MAAM,oBAAoB;AAOpC,OAAOC,gBAAgB;AAUvB,MAAMC,SAAS,GAAwBC,MAA0B,IAAK;EAClE,MAAM;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,IAAI,EAAEC;EAAK,CAAC,GAAGJ,MAAM;EAC9C,MAAM;IAAEK,GAAG;IAAEC;EAAM,CAAC,GAAGJ,QAAQ;EAC/B,MAAMK,OAAO,GAAG,OAAON,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAGA,KAAK,CAACO,EAAE;EAE5D,IAAIC,IAAO,GAAG;IACV,GAAGL,IAAI;IACPM,MAAM,EAAEN,IAAI,CAACM,MAAM,GAAGN,IAAI,CAACM,MAAM,IAAI,EAAE,GAAG;EAC9C,CAAC;EAED,MAAMC,gBAAgB,GAAGb,gBAAgB,CAAC;IAAEG,KAAK,EAAEM,OAAO;IAAEJ,IAAI,EAAEC;EAAK,CAAC,CAAC;EAEzE,IAAIO,gBAAgB,EAAE;IAClBF,IAAI,GAAGZ,GAAG,CAACe,MAAM,CAACR,IAAI,EAAE,UAAUO,gBAAgB,CAACN,GAAG,IAAIM,gBAAgB,CAACL,KAAK,EAAE,CAAM;EAC5F;;EAEA;EACA,IAAI,CAACG,IAAI,CAACC,MAAM,CAACL,GAAG,CAAC,EAAE;IACnB,OAAOR,GAAG,CAACgB,GAAG,CAACJ,IAAI,EAAE,UAAUJ,GAAG,EAAE,EAAE,CAACE,OAAO,CAAC,CAAC;EACpD;;EAEA;EACA,IAAID,KAAK,KAAK,IAAI,EAAE;IAChB;IACA,OAAOT,GAAG,CAACgB,GAAG,CAACJ,IAAI,EAAE,QAAQ,EAAGC,MAAkB,IAAK;MACnD,MAAMI,SAAS,GAAG,CAAC,GAAGJ,MAAM,CAAC;MAC7BI,SAAS,CAACC,MAAM,CAACV,GAAG,EAAE,CAAC,EAAE,CAACE,OAAO,CAAC,CAAC;MACnC,OAAOO,SAAS;IACpB,CAAC,CAAC;EACN;EAEA,OAAOjB,GAAG,CAACgB,GAAG,CAACJ,IAAI,EAAE,UAAUJ,GAAG,EAAE,EAAGK,MAAgB,IAAK;IACxD,MAAMI,SAAS,GAAG,CAAC,GAAGJ,MAAM,CAAC;IAC7BI,SAAS,CAACC,MAAM,CAACT,KAAK,EAAE,CAAC,EAAEC,OAAO,CAAC;IACnC,OAAOO,SAAS;EACpB,CAAC,CAAC;AACN,CAAC;AAED,eAAoCd,MAA0B,IAAQ;EAClE,OAAOH,GAAG,CAACgB,GAAG,CAACd,SAAS,CAAIC,MAAM,CAAC,EAAE,QAAQ,EAAGU,MAAkB,IAAK;IACnE,OAAO,CAAC,GAAGA,MAAM,CAAC,CAACM,MAAM,CAACX,GAAG,IAAIA,GAAG,CAACY,MAAM,GAAG,CAAC,CAAC;EACpD,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["dot","getFieldPosition","moveField","params","field","position","data","prev","row","index","fieldId","id","next","layout","existingPosition","delete","set","newLayout","splice","filter","length"],"sources":["moveField.ts"],"sourcesContent":["import dot from \"dot-prop-immutable\";\nimport type {\n CmsModelField,\n CmsEditorFieldId,\n CmsModel as BaseCmsModel,\n FieldLayoutPosition\n} from \"~/types\";\nimport getFieldPosition from \"./getFieldPosition\";\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"],"mappings":"AAAA,OAAOA,GAAG,MAAM,oBAAoB;AAOpC,OAAOC,gBAAgB;AAUvB,MAAMC,SAAS,GAAwBC,MAA0B,IAAK;EAClE,MAAM;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,IAAI,EAAEC;EAAK,CAAC,GAAGJ,MAAM;EAC9C,MAAM;IAAEK,GAAG;IAAEC;EAAM,CAAC,GAAGJ,QAAQ;EAC/B,MAAMK,OAAO,GAAG,OAAON,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAGA,KAAK,CAACO,EAAE;EAE5D,IAAIC,IAAO,GAAG;IACV,GAAGL,IAAI;IACPM,MAAM,EAAEN,IAAI,CAACM,MAAM,GAAGN,IAAI,CAACM,MAAM,IAAI,EAAE,GAAG;EAC9C,CAAC;EAED,MAAMC,gBAAgB,GAAGb,gBAAgB,CAAC;IAAEG,KAAK,EAAEM,OAAO;IAAEJ,IAAI,EAAEC;EAAK,CAAC,CAAC;EAEzE,IAAIO,gBAAgB,EAAE;IAClBF,IAAI,GAAGZ,GAAG,CAACe,MAAM,CAACR,IAAI,EAAE,UAAUO,gBAAgB,CAACN,GAAG,IAAIM,gBAAgB,CAACL,KAAK,EAAE,CAAM;EAC5F;;EAEA;EACA,IAAI,CAACG,IAAI,CAACC,MAAM,CAACL,GAAG,CAAC,EAAE;IACnB,OAAOR,GAAG,CAACgB,GAAG,CAACJ,IAAI,EAAE,UAAUJ,GAAG,EAAE,EAAE,CAACE,OAAO,CAAC,CAAC;EACpD;;EAEA;EACA,IAAID,KAAK,KAAK,IAAI,EAAE;IAChB;IACA,OAAOT,GAAG,CAACgB,GAAG,CAACJ,IAAI,EAAE,QAAQ,EAAGC,MAAkB,IAAK;MACnD,MAAMI,SAAS,GAAG,CAAC,GAAGJ,MAAM,CAAC;MAC7BI,SAAS,CAACC,MAAM,CAACV,GAAG,EAAE,CAAC,EAAE,CAACE,OAAO,CAAC,CAAC;MACnC,OAAOO,SAAS;IACpB,CAAC,CAAC;EACN;EAEA,OAAOjB,GAAG,CAACgB,GAAG,CAACJ,IAAI,EAAE,UAAUJ,GAAG,EAAE,EAAGK,MAAgB,IAAK;IACxD,MAAMI,SAAS,GAAG,CAAC,GAAGJ,MAAM,CAAC;IAC7BI,SAAS,CAACC,MAAM,CAACT,KAAK,EAAE,CAAC,EAAEC,OAAO,CAAC;IACnC,OAAOO,SAAS;EACpB,CAAC,CAAC;AACN,CAAC;AAED,eAAoCd,MAA0B,IAAQ;EAClE,OAAOH,GAAG,CAACgB,GAAG,CAACd,SAAS,CAAIC,MAAM,CAAC,EAAE,QAAQ,EAAGU,MAAkB,IAAK;IACnE,OAAO,CAAC,GAAGA,MAAM,CAAC,CAACM,MAAM,CAACX,GAAG,IAAIA,GAAG,CAACY,MAAM,GAAG,CAAC,CAAC;EACpD,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["dot","data","source","destination","set","layout","slice"],"sources":["moveRow.ts"],"sourcesContent":["import dot from \"dot-prop-immutable\";\nimport { CmsModel } from \"~/types\";\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"],"mappings":"AAAA,OAAOA,GAAG,MAAM,oBAAoB;AAQpC,eAAe,CAAC;EAAEC,IAAI;EAAEC,MAAM;EAAEC;AAAoB,CAAC,KAAK;EACtD,OAAOH,GAAG,CAACI,GAAG,CAACH,IAAI,EAAE,QAAQ,EAAGI,MAAkB,IAAK;IACnD,OAAOH,MAAM,GAAGC,WAAW,GACrB,CACI,GAAGE,MAAM,CAACC,KAAK,CAAC,CAAC,EAAEJ,MAAM,CAAC,EAC1B,GAAGG,MAAM,CAACC,KAAK,CAACJ,MAAM,GAAG,CAAC,EAAEC,WAAW,CAAC,EACxCE,MAAM,CAACH,MAAM,CAAC,EACd,GAAGG,MAAM,CAACC,KAAK,CAACH,WAAW,CAAC,CAC/B,GACD,CACI,GAAGE,MAAM,CAACC,KAAK,CAAC,CAAC,EAAEH,WAAW,CAAC,EAC/BE,MAAM,CAACH,MAAM,CAAC,EACd,GAAGG,MAAM,CAACC,KAAK,CAACH,WAAW,EAAED,MAAM,CAAC,EACpC,GAAGG,MAAM,CAACC,KAAK,CAACJ,MAAM,GAAG,CAAC,CAAC,CAC9B;EACX,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["dot","data","source","destination","set","layout","slice"],"sources":["moveRow.ts"],"sourcesContent":["import dot from \"dot-prop-immutable\";\nimport type { CmsModel } from \"~/types\";\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"],"mappings":"AAAA,OAAOA,GAAG,MAAM,oBAAoB;AAQpC,eAAe,CAAC;EAAEC,IAAI;EAAEC,MAAM;EAAEC;AAAoB,CAAC,KAAK;EACtD,OAAOH,GAAG,CAACI,GAAG,CAACH,IAAI,EAAE,QAAQ,EAAGI,MAAkB,IAAK;IACnD,OAAOH,MAAM,GAAGC,WAAW,GACrB,CACI,GAAGE,MAAM,CAACC,KAAK,CAAC,CAAC,EAAEJ,MAAM,CAAC,EAC1B,GAAGG,MAAM,CAACC,KAAK,CAACJ,MAAM,GAAG,CAAC,EAAEC,WAAW,CAAC,EACxCE,MAAM,CAACH,MAAM,CAAC,EACd,GAAGG,MAAM,CAACC,KAAK,CAACH,WAAW,CAAC,CAC/B,GACD,CACI,GAAGE,MAAM,CAACC,KAAK,CAAC,CAAC,EAAEH,WAAW,CAAC,EAC/BE,MAAM,CAACH,MAAM,CAAC,EACd,GAAGG,MAAM,CAACC,KAAK,CAACH,WAAW,EAAED,MAAM,CAAC,EACpC,GAAGG,MAAM,CAACC,KAAK,CAACJ,MAAM,GAAG,CAAC,CAAC,CAC9B;EACX,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","IconPicker","AdminIconPicker","plugins","props","icons","iconPlugins","byType","reduce","pl","concat","getIcons","createElement","Object","assign","size"],"sources":["IconPicker.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport {\
|
|
1
|
+
{"version":3,"names":["React","useMemo","IconPicker","AdminIconPicker","plugins","props","icons","iconPlugins","byType","reduce","pl","concat","getIcons","createElement","Object","assign","size"],"sources":["IconPicker.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport type { IconPickerIconDto, IconPickerProps } from \"@webiny/admin-ui\";\nimport { IconPicker as AdminIconPicker } from \"@webiny/admin-ui\";\nimport { plugins } from \"@webiny/plugins\";\nimport type { CmsIconsPlugin } from \"~/types\";\n\nexport const IconPicker = (props: Omit<IconPickerProps, \"icons\">) => {\n const icons: IconPickerIconDto[] = useMemo(() => {\n const iconPlugins = plugins.byType<CmsIconsPlugin>(\"cms-icons\");\n return iconPlugins.reduce((icons: Array<IconPickerIconDto>, pl) => {\n return icons.concat(pl.getIcons());\n }, []);\n }, []);\n\n return <AdminIconPicker size={\"lg\"} icons={icons} {...props} />;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AAEtC,SAASC,UAAU,IAAIC,eAAe,QAAQ,kBAAkB;AAChE,SAASC,OAAO,QAAQ,iBAAiB;AAGzC,OAAO,MAAMF,UAAU,GAAIG,KAAqC,IAAK;EACjE,MAAMC,KAA0B,GAAGL,OAAO,CAAC,MAAM;IAC7C,MAAMM,WAAW,GAAGH,OAAO,CAACI,MAAM,CAAiB,WAAW,CAAC;IAC/D,OAAOD,WAAW,CAACE,MAAM,CAAC,CAACH,KAA+B,EAAEI,EAAE,KAAK;MAC/D,OAAOJ,KAAK,CAACK,MAAM,CAACD,EAAE,CAACE,QAAQ,CAAC,CAAC,CAAC;IACtC,CAAC,EAAE,EAAE,CAAC;EACV,CAAC,EAAE,EAAE,CAAC;EAEN,oBAAOZ,KAAA,CAAAa,aAAA,CAACV,eAAe,EAAAW,MAAA,CAAAC,MAAA;IAACC,IAAI,EAAE,IAAK;IAACV,KAAK,EAAEA;EAAM,GAAKD,KAAK,CAAG,CAAC;AACnE,CAAC","ignoreList":[]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { RichTextEditorProps } from "@webiny/lexical-editor/types";
|
|
2
|
+
import type { RichTextEditorProps } from "@webiny/lexical-editor/types";
|
|
3
3
|
export declare const LexicalCmsEditor: (props: Omit<RichTextEditorProps, "theme">) => React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","StaticToolbar","LexicalEditor","placeholderStyles","position","top","left","contentEditableStyles","minHeight","display","padding","styles","backgroundColor","border","maxHeight","toolbar","createElement","LexicalCmsEditor","props","onChange","jsonString","JSON","parse","Object","assign","focus","value","stringify","staticToolbar","tag","placeholder"],"sources":["LexicalCmsEditor.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { StaticToolbar } from \"@webiny/lexical-editor\";\nimport { RichTextEditorProps } from \"@webiny/lexical-editor/types\";\nimport { LexicalEditor } from \"@webiny/app-admin/components/LexicalEditor\";\n\nconst placeholderStyles: React.CSSProperties = { position: \"absolute\", top: 40, left: 25 };\n\nconst contentEditableStyles: React.CSSProperties = {\n minHeight: 200,\n display: \"block\",\n padding: 10\n};\n\nconst styles: React.CSSProperties = {\n backgroundColor: \"#fff\",\n border: \"1px solid #e1e1e1\",\n padding: \"10px 14px\",\n minHeight: 200,\n maxHeight: 350\n};\n\nconst toolbar = <StaticToolbar />;\n\nexport const LexicalCmsEditor = (props: Omit<RichTextEditorProps, \"theme\">) => {\n const onChange = useCallback(\n (jsonString: string) => {\n if (props?.onChange) {\n props?.onChange(JSON.parse(jsonString));\n }\n },\n [props?.onChange]\n );\n\n return (\n <LexicalEditor\n {...props}\n focus={true}\n value={props.value ? JSON.stringify(props.value) : props.value}\n onChange={onChange}\n staticToolbar={toolbar}\n tag={\"p\"}\n placeholder={props?.placeholder || \"Enter your text here...\"}\n placeholderStyles={placeholderStyles}\n contentEditableStyles={contentEditableStyles}\n styles={styles}\n />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,SAASC,aAAa,QAAQ,wBAAwB;AAEtD,SAASC,aAAa,QAAQ,4CAA4C;AAE1E,MAAMC,iBAAsC,GAAG;EAAEC,QAAQ,EAAE,UAAU;EAAEC,GAAG,EAAE,EAAE;EAAEC,IAAI,EAAE;AAAG,CAAC;AAE1F,MAAMC,qBAA0C,GAAG;EAC/CC,SAAS,EAAE,GAAG;EACdC,OAAO,EAAE,OAAO;EAChBC,OAAO,EAAE;AACb,CAAC;AAED,MAAMC,MAA2B,GAAG;EAChCC,eAAe,EAAE,MAAM;EACvBC,MAAM,EAAE,mBAAmB;EAC3BH,OAAO,EAAE,WAAW;EACpBF,SAAS,EAAE,GAAG;EACdM,SAAS,EAAE;AACf,CAAC;AAED,MAAMC,OAAO,gBAAGhB,KAAA,CAAAiB,aAAA,CAACf,aAAa,MAAE,CAAC;AAEjC,OAAO,MAAMgB,gBAAgB,GAAIC,KAAyC,IAAK;EAC3E,MAAMC,QAAQ,GAAGnB,WAAW,CACvBoB,UAAkB,IAAK;IACpB,IAAIF,KAAK,EAAEC,QAAQ,EAAE;MACjBD,KAAK,EAAEC,QAAQ,CAACE,IAAI,CAACC,KAAK,CAACF,UAAU,CAAC,CAAC;IAC3C;EACJ,CAAC,EACD,CAACF,KAAK,EAAEC,QAAQ,CACpB,CAAC;EAED,oBACIpB,KAAA,CAAAiB,aAAA,CAACd,aAAa,EAAAqB,MAAA,CAAAC,MAAA,KACNN,KAAK;IACTO,KAAK,EAAE,IAAK;IACZC,KAAK,EAAER,KAAK,CAACQ,KAAK,GAAGL,IAAI,CAACM,SAAS,CAACT,KAAK,CAACQ,KAAK,CAAC,GAAGR,KAAK,CAACQ,KAAM;IAC/DP,QAAQ,EAAEA,QAAS;IACnBS,aAAa,EAAEb,OAAQ;IACvBc,GAAG,EAAE,GAAI;IACTC,WAAW,EAAEZ,KAAK,EAAEY,WAAW,IAAI,yBAA0B;IAC7D3B,iBAAiB,EAAEA,iBAAkB;IACrCI,qBAAqB,EAAEA,qBAAsB;IAC7CI,MAAM,EAAEA;EAAO,EAClB,CAAC;AAEV,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useCallback","StaticToolbar","LexicalEditor","placeholderStyles","position","top","left","contentEditableStyles","minHeight","display","padding","styles","backgroundColor","border","maxHeight","toolbar","createElement","LexicalCmsEditor","props","onChange","jsonString","JSON","parse","Object","assign","focus","value","stringify","staticToolbar","tag","placeholder"],"sources":["LexicalCmsEditor.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { StaticToolbar } from \"@webiny/lexical-editor\";\nimport type { RichTextEditorProps } from \"@webiny/lexical-editor/types\";\nimport { LexicalEditor } from \"@webiny/app-admin/components/LexicalEditor\";\n\nconst placeholderStyles: React.CSSProperties = { position: \"absolute\", top: 40, left: 25 };\n\nconst contentEditableStyles: React.CSSProperties = {\n minHeight: 200,\n display: \"block\",\n padding: 10\n};\n\nconst styles: React.CSSProperties = {\n backgroundColor: \"#fff\",\n border: \"1px solid #e1e1e1\",\n padding: \"10px 14px\",\n minHeight: 200,\n maxHeight: 350\n};\n\nconst toolbar = <StaticToolbar />;\n\nexport const LexicalCmsEditor = (props: Omit<RichTextEditorProps, \"theme\">) => {\n const onChange = useCallback(\n (jsonString: string) => {\n if (props?.onChange) {\n props?.onChange(JSON.parse(jsonString));\n }\n },\n [props?.onChange]\n );\n\n return (\n <LexicalEditor\n {...props}\n focus={true}\n value={props.value ? JSON.stringify(props.value) : props.value}\n onChange={onChange}\n staticToolbar={toolbar}\n tag={\"p\"}\n placeholder={props?.placeholder || \"Enter your text here...\"}\n placeholderStyles={placeholderStyles}\n contentEditableStyles={contentEditableStyles}\n styles={styles}\n />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,SAASC,aAAa,QAAQ,wBAAwB;AAEtD,SAASC,aAAa,QAAQ,4CAA4C;AAE1E,MAAMC,iBAAsC,GAAG;EAAEC,QAAQ,EAAE,UAAU;EAAEC,GAAG,EAAE,EAAE;EAAEC,IAAI,EAAE;AAAG,CAAC;AAE1F,MAAMC,qBAA0C,GAAG;EAC/CC,SAAS,EAAE,GAAG;EACdC,OAAO,EAAE,OAAO;EAChBC,OAAO,EAAE;AACb,CAAC;AAED,MAAMC,MAA2B,GAAG;EAChCC,eAAe,EAAE,MAAM;EACvBC,MAAM,EAAE,mBAAmB;EAC3BH,OAAO,EAAE,WAAW;EACpBF,SAAS,EAAE,GAAG;EACdM,SAAS,EAAE;AACf,CAAC;AAED,MAAMC,OAAO,gBAAGhB,KAAA,CAAAiB,aAAA,CAACf,aAAa,MAAE,CAAC;AAEjC,OAAO,MAAMgB,gBAAgB,GAAIC,KAAyC,IAAK;EAC3E,MAAMC,QAAQ,GAAGnB,WAAW,CACvBoB,UAAkB,IAAK;IACpB,IAAIF,KAAK,EAAEC,QAAQ,EAAE;MACjBD,KAAK,EAAEC,QAAQ,CAACE,IAAI,CAACC,KAAK,CAACF,UAAU,CAAC,CAAC;IAC3C;EACJ,CAAC,EACD,CAACF,KAAK,EAAEC,QAAQ,CACpB,CAAC;EAED,oBACIpB,KAAA,CAAAiB,aAAA,CAACd,aAAa,EAAAqB,MAAA,CAAAC,MAAA,KACNN,KAAK;IACTO,KAAK,EAAE,IAAK;IACZC,KAAK,EAAER,KAAK,CAACQ,KAAK,GAAGL,IAAI,CAACM,SAAS,CAACT,KAAK,CAACQ,KAAK,CAAC,GAAGR,KAAK,CAACQ,KAAM;IAC/DP,QAAQ,EAAEA,QAAS;IACnBS,aAAa,EAAEb,OAAQ;IACvBc,GAAG,EAAE,GAAI;IACTC,WAAW,EAAEZ,KAAK,EAAEY,WAAW,IAAI,yBAA0B;IAC7D3B,iBAAiB,EAAEA,iBAAkB;IACrCI,qBAAqB,EAAEA,qBAAsB;IAC7CI,MAAM,EAAEA;EAAO,EAClB,CAAC;AAEV,CAAC","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { FC } from "react";
|
|
1
|
+
import type { FC } from "react";
|
|
2
2
|
export declare const LexicalEditorCmsPlugin: FC;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","TypographyAction","LexicalEditorConfig","FontSizeAction","FontColorAction","Divider","BoldAction","ItalicAction","UnderlineAction","CodeHighlightAction","NumberedListAction","BulletListAction","ImageAction","LinkAction","QuoteAction","ImagesPlugin","QuotePlugin","CodeHighlightPlugin","FloatingLinkEditorPlugin","LinkPlugin","ListPlugin","TypographyPlugin","FontColorPlugin","TextAlignmentAction","TypographyDropDown","CompositionScope","ToolbarElement","Plugin","LexicalEditorCmsPlugin","createElement","name","element","anchorElem","document","body"],"sources":["LexicalEditorCmsPlugin.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"names":["React","TypographyAction","LexicalEditorConfig","FontSizeAction","FontColorAction","Divider","BoldAction","ItalicAction","UnderlineAction","CodeHighlightAction","NumberedListAction","BulletListAction","ImageAction","LinkAction","QuoteAction","ImagesPlugin","QuotePlugin","CodeHighlightPlugin","FloatingLinkEditorPlugin","LinkPlugin","ListPlugin","TypographyPlugin","FontColorPlugin","TextAlignmentAction","TypographyDropDown","CompositionScope","ToolbarElement","Plugin","LexicalEditorCmsPlugin","createElement","name","element","anchorElem","document","body"],"sources":["LexicalEditorCmsPlugin.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport React from \"react\";\nimport {\n TypographyAction,\n LexicalEditorConfig,\n FontSizeAction,\n FontColorAction,\n Divider,\n BoldAction,\n ItalicAction,\n UnderlineAction,\n CodeHighlightAction,\n NumberedListAction,\n BulletListAction,\n ImageAction,\n LinkAction,\n QuoteAction,\n ImagesPlugin,\n QuotePlugin,\n CodeHighlightPlugin,\n FloatingLinkEditorPlugin,\n LinkPlugin,\n ListPlugin,\n TypographyPlugin,\n FontColorPlugin,\n TextAlignmentAction\n} from \"@webiny/lexical-editor\";\nimport { TypographyDropDown } from \"~/admin/components/LexicalCmsEditor/TypographyDropDown\";\nimport { CompositionScope } from \"@webiny/react-composition\";\n\nconst { ToolbarElement, Plugin } = LexicalEditorConfig;\n\nexport const LexicalEditorCmsPlugin: FC = () => {\n return (\n <CompositionScope name={\"cms\"}>\n <LexicalEditorConfig>\n <ToolbarElement name=\"fontSize\" element={<FontSizeAction />} />\n <ToolbarElement name=\"fontColor\" element={<FontColorAction />} />\n <ToolbarElement name=\"typography\" element={<TypographyAction />} />\n <ToolbarElement name=\"textAlignment\" element={<TextAlignmentAction />} />\n <ToolbarElement name=\"divider1\" element={<Divider />} />\n <ToolbarElement name=\"boldAction\" element={<BoldAction />} />\n <ToolbarElement name=\"italic\" element={<ItalicAction />} />\n <ToolbarElement name=\"underline\" element={<UnderlineAction />} />\n <ToolbarElement name=\"codeHighlight\" element={<CodeHighlightAction />} />\n <ToolbarElement name=\"divider2\" element={<Divider />} />\n <ToolbarElement name=\"numberedList\" element={<NumberedListAction />} />\n <ToolbarElement name=\"bulletList\" element={<BulletListAction />} />\n <ToolbarElement name=\"divider\" element={<Divider />} />\n <ToolbarElement name=\"image\" element={<ImageAction />} />\n <ToolbarElement name=\"divider3\" element={<Divider />} />\n <ToolbarElement name=\"link\" element={<LinkAction />} />\n <ToolbarElement name=\"quote\" element={<QuoteAction />} />\n <Plugin name={\"fontColor\"} element={<FontColorPlugin />} />\n <Plugin name={\"list\"} element={<ListPlugin />} />\n <Plugin name={\"codeHighlight\"} element={<CodeHighlightPlugin />} />\n <Plugin name={\"typography\"} element={<TypographyPlugin />} />\n <Plugin name={\"link\"} element={<LinkPlugin />} />\n <Plugin\n name={\"floatingLinkEditor\"}\n element={<FloatingLinkEditorPlugin anchorElem={() => document.body} />}\n />\n <Plugin name={\"images\"} element={<ImagesPlugin />} />\n <Plugin name={\"quote\"} element={<QuotePlugin />} />\n <TypographyAction.TypographyDropDown element={<TypographyDropDown />} />\n </LexicalEditorConfig>\n </CompositionScope>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useState","$getNearestNodeOfType","DropDown","DropDownItem","useCurrentSelection","useCurrentElement","useTypographyAction","$isHeadingNode","$isParagraphNode","$isQuoteNode","$isListNode","ListNode","useTheme","TypographyDropDown","value","applyTypography","theme","styles","setStyles","element","rangeSelection","getAllTextStyles","typography","headingsStyles","headings","paragraphStyles","paragraphs","getListStyles","tag","listStyles","lists","filter","x","length","fallbackTag","type","anchorNode","anchor","getNode","parentList","getListType","quotes","createElement","Fragment","buttonClassName","buttonAriaLabel","buttonLabel","name","stopCloseOnClickSelf","disabled","showScroll","map","option","className","id","onClick","css","key"],"sources":["TypographyDropDown.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { $getNearestNodeOfType } from \"@lexical/utils\";\nimport {\n DropDown,\n DropDownItem,\n useCurrentSelection,\n useCurrentElement,\n useTypographyAction\n} from \"@webiny/lexical-editor\";\nimport {\n $isHeadingNode,\n $isParagraphNode,\n $isQuoteNode,\n $isListNode,\n ListNode\n} from \"@webiny/lexical-nodes\";\nimport { TypographyStyle } from \"@webiny/theme/types\";\nimport { TypographyValue } from \"@webiny/lexical-theme\";\nimport { useTheme } from \"@webiny/app-admin\";\n\nexport const TypographyDropDown = () => {\n const { value, applyTypography } = useTypographyAction();\n const { theme } = useTheme();\n const [styles, setStyles] = useState<TypographyStyle[]>([]);\n const { element } = useCurrentElement();\n const { rangeSelection } = useCurrentSelection();\n\n const getAllTextStyles = (): TypographyStyle[] => {\n if (!theme?.styles.typography) {\n return [];\n }\n const headingsStyles = theme.styles.typography?.headings || [];\n const paragraphStyles = theme.styles.typography?.paragraphs || [];\n return [...headingsStyles, ...paragraphStyles];\n };\n\n useEffect(() => {\n // In static toolbar typography, styles always need to be visible.\n if (theme?.styles) {\n setStyles(getAllTextStyles());\n }\n }, [theme?.styles]);\n\n const getListStyles = (tag: string): TypographyStyle[] => {\n const listStyles = theme?.styles.typography.lists?.filter(x => x.tag === tag) || [];\n if (listStyles.length > 0) {\n return listStyles;\n }\n\n const fallbackTag = tag === \"ul\" ? \"ol\" : \"ul\";\n return theme?.styles.typography.lists?.filter(x => x.tag === fallbackTag) || [];\n };\n\n useEffect(() => {\n if (!element || !rangeSelection) {\n return;\n }\n\n if ($isParagraphNode(element) || $isHeadingNode(element)) {\n setStyles(getAllTextStyles());\n } else if ($isListNode(element)) {\n let type;\n try {\n const anchorNode = rangeSelection.anchor.getNode();\n const parentList = $getNearestNodeOfType<ListNode>(anchorNode, ListNode);\n if (parentList) {\n type = parentList.getListType();\n }\n } catch {\n type = element.getListType();\n }\n\n if (type === \"bullet\") {\n setStyles(getListStyles(\"ul\"));\n } else {\n setStyles(getListStyles(\"ol\"));\n }\n } else if ($isQuoteNode(element)) {\n setStyles(theme?.styles.typography?.quotes || []);\n } else {\n setStyles([]);\n }\n }, [element]);\n\n return (\n <>\n {!!styles?.length ? (\n <DropDown\n buttonClassName=\"toolbar-item typography-dropdown\"\n buttonAriaLabel={\"Typography formatting options\"}\n buttonLabel={value?.name || \"Typography\"}\n stopCloseOnClickSelf={true}\n disabled={false}\n showScroll={true}\n >\n {styles?.map(option => (\n <DropDownItem\n className={`item typography-item ${\n value?.id === option.id ? \"active dropdown-item-active\" : \"\"\n }`}\n onClick={() =>\n applyTypography({\n ...option,\n css: option.styles\n } as TypographyValue)\n }\n key={option.id}\n >\n <span className=\"text\">{option.name}</span>\n </DropDownItem>\n ))}\n </DropDown>\n ) : null}\n </>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useEffect","useState","$getNearestNodeOfType","DropDown","DropDownItem","useCurrentSelection","useCurrentElement","useTypographyAction","$isHeadingNode","$isParagraphNode","$isQuoteNode","$isListNode","ListNode","useTheme","TypographyDropDown","value","applyTypography","theme","styles","setStyles","element","rangeSelection","getAllTextStyles","typography","headingsStyles","headings","paragraphStyles","paragraphs","getListStyles","tag","listStyles","lists","filter","x","length","fallbackTag","type","anchorNode","anchor","getNode","parentList","getListType","quotes","createElement","Fragment","buttonClassName","buttonAriaLabel","buttonLabel","name","stopCloseOnClickSelf","disabled","showScroll","map","option","className","id","onClick","css","key"],"sources":["TypographyDropDown.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { $getNearestNodeOfType } from \"@lexical/utils\";\nimport {\n DropDown,\n DropDownItem,\n useCurrentSelection,\n useCurrentElement,\n useTypographyAction\n} from \"@webiny/lexical-editor\";\nimport {\n $isHeadingNode,\n $isParagraphNode,\n $isQuoteNode,\n $isListNode,\n ListNode\n} from \"@webiny/lexical-nodes\";\nimport type { TypographyStyle } from \"@webiny/theme/types\";\nimport type { TypographyValue } from \"@webiny/lexical-theme\";\nimport { useTheme } from \"@webiny/app-admin\";\n\nexport const TypographyDropDown = () => {\n const { value, applyTypography } = useTypographyAction();\n const { theme } = useTheme();\n const [styles, setStyles] = useState<TypographyStyle[]>([]);\n const { element } = useCurrentElement();\n const { rangeSelection } = useCurrentSelection();\n\n const getAllTextStyles = (): TypographyStyle[] => {\n if (!theme?.styles.typography) {\n return [];\n }\n const headingsStyles = theme.styles.typography?.headings || [];\n const paragraphStyles = theme.styles.typography?.paragraphs || [];\n return [...headingsStyles, ...paragraphStyles];\n };\n\n useEffect(() => {\n // In static toolbar typography, styles always need to be visible.\n if (theme?.styles) {\n setStyles(getAllTextStyles());\n }\n }, [theme?.styles]);\n\n const getListStyles = (tag: string): TypographyStyle[] => {\n const listStyles = theme?.styles.typography.lists?.filter(x => x.tag === tag) || [];\n if (listStyles.length > 0) {\n return listStyles;\n }\n\n const fallbackTag = tag === \"ul\" ? \"ol\" : \"ul\";\n return theme?.styles.typography.lists?.filter(x => x.tag === fallbackTag) || [];\n };\n\n useEffect(() => {\n if (!element || !rangeSelection) {\n return;\n }\n\n if ($isParagraphNode(element) || $isHeadingNode(element)) {\n setStyles(getAllTextStyles());\n } else if ($isListNode(element)) {\n let type;\n try {\n const anchorNode = rangeSelection.anchor.getNode();\n const parentList = $getNearestNodeOfType<ListNode>(anchorNode, ListNode);\n if (parentList) {\n type = parentList.getListType();\n }\n } catch {\n type = element.getListType();\n }\n\n if (type === \"bullet\") {\n setStyles(getListStyles(\"ul\"));\n } else {\n setStyles(getListStyles(\"ol\"));\n }\n } else if ($isQuoteNode(element)) {\n setStyles(theme?.styles.typography?.quotes || []);\n } else {\n setStyles([]);\n }\n }, [element]);\n\n return (\n <>\n {!!styles?.length ? (\n <DropDown\n buttonClassName=\"toolbar-item typography-dropdown\"\n buttonAriaLabel={\"Typography formatting options\"}\n buttonLabel={value?.name || \"Typography\"}\n stopCloseOnClickSelf={true}\n disabled={false}\n showScroll={true}\n >\n {styles?.map(option => (\n <DropDownItem\n className={`item typography-item ${\n value?.id === option.id ? \"active dropdown-item-active\" : \"\"\n }`}\n onClick={() =>\n applyTypography({\n ...option,\n css: option.styles\n } as TypographyValue)\n }\n key={option.id}\n >\n <span className=\"text\">{option.name}</span>\n </DropDownItem>\n ))}\n </DropDown>\n ) : null}\n </>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|