From 2aa6158d426170d1bd8453da19b7ddeab8ea6188 Mon Sep 17 00:00:00 2001 From: Stefan Hagspiel Date: Thu, 21 Sep 2023 08:42:48 +0200 Subject: [PATCH] Pimcore 11 Support (#406) --- .github/workflows/codeception.yml | 18 +- .github/workflows/ecs.yml | 12 +- .github/workflows/php-stan.yml | 12 +- .gitignore | 2 +- ISSUE_TEMPLATE.md | 12 +- LICENSE.md | 2 +- PULL_REQUEST_TEMPLATE.md | 16 +- README.md | 13 +- UPGRADE.md | 133 +- codeception.dist.yml | 9 +- composer.json | 13 +- .../backend/base_config.yaml | 0 .../doctrine/model/FormDefinition.orm.yml | 0 .../doctrine/model/OutputWorkflow.orm.yml | 0 .../model/OutputWorkflowChannel.orm.yml | 0 .../install/sql/install.sql | 0 .../install/translations/admin.csv | 3 +- .../install/translations/frontend.csv | 0 .../config.yml => config/pimcore/config.yaml | 9 +- .../pimcore/routing.yaml | 0 .../pimcore/routing_funnels.yaml | 0 .../routing_funnels_not_localized.yaml | 0 .../serialization/File.yaml | 0 .../serialization/FileStack.yaml | 0 .../serialization/FormStorageData.yaml | 0 .../serialization/FunnelActionDefinition.yaml | 0 .../serialization/FunnelActionElement.yaml | 0 .../serialization/OutputWorkflowChannel.yaml | 0 .../OutputWorkflowSignalEvent.yaml | 0 config/services.yaml | 7 + .../services/assembler.yaml | 0 .../brick.yml => config/services/brick.yaml | 0 .../services/builder.yaml | 0 .../services/conditional_logic/action.yaml | 0 .../services/conditional_logic/condition.yaml | 0 .../services/conditional_logic/config.yaml | 0 .../conditional_logic/dispatcher.yaml | 0 .../services/controller.yaml | 2 +- .../services/data_injection.yaml | 0 .../services/dynamic_choice.yaml | 0 .../services/dynamic_multi_file.yaml | 0 .../event.yml => config/services/event.yaml | 4 + .../services/event_subscriber.yaml | 0 .../services/factory.yaml | 0 .../services/form_extension.yaml | 0 .../services/forms/forms.yaml | 0 config/services/mail_editor/config.yaml | 41 + .../services/mail_editor/widgets.yaml | 0 .../services/manager.yaml | 0 .../services/output_workflow/api.yaml | 0 .../services/output_workflow/channels.yaml | 0 .../dynamic_object_resolver.yaml | 0 .../services/output_workflow/form.yaml | 0 .../output_workflow/funnel_layers.yaml | 0 .../services/output_workflow/services.yaml | 0 .../services/repository.yaml | 0 .../services/runtime_data.yaml | 0 .../services/storage_provider.yaml | 0 .../stream.yml => config/services/stream.yaml | 0 .../system.yml => config/services/system.yaml | 0 .../transformer/options_transformer.yaml | 0 .../transformer/output_input_transformer.yaml | 0 .../twig.yml => config/services/twig.yaml | 0 .../services/validator.yaml | 0 .../types/container_types.yaml | 0 config/types/field_types.yaml | 2 + .../types/type/birthday.yaml | 0 .../types/type/checkbox.yaml | 0 .../types/type/choice.yaml | 0 .../types/type/choice_dynamic.yaml | 0 .../types/type/country.yaml | 0 .../date.yml => config/types/type/date.yaml | 0 .../types/type/date_time.yaml | 0 .../types/type/dynamic_multi_file.yaml | 0 .../types/type/hidden.yaml | 0 .../types/type/html_tag.yaml | 0 .../types/type/integer.yaml | 0 .../types/type/recaptcha_v3.yaml | 0 .../types/type/snippet.yaml | 0 .../types/type/submit.yaml | 0 .../text.yml => config/types/type/text.yaml | 0 .../types/type/textarea.yaml | 0 .../time.yml => config/types/type/time.yaml | 0 docs/90_FrontendTips.md | 2 +- docs/OutputWorkflow/10_EmailChannel.md | 58 +- docs/OutputWorkflow/15_OutputTransformer.md | 8 - docs/OutputWorkflow/40_Funnels.md | 4 +- docs/OutputWorkflow/Funnel/50_RootForm.md | 2 +- .../public => public}/css/admin-editmode.css | 0 .../Resources/public => public}/css/admin.css | 0 .../css/fineuploader/continue.gif | Bin .../css/fineuploader/edit.gif | Bin .../fineuploader/fine-uploader-new.min.css | 0 .../fine-uploader-new.min.css.map | 0 .../css/fineuploader/loading.gif | Bin .../css/fineuploader/pause.gif | Bin .../css/fineuploader/processing.gif | Bin .../css/fineuploader/retry.gif | Bin .../css/fineuploader/trash.gif | Bin .../img/application_form.svg | 0 .../img/application_form_add.svg | 0 .../public => public}/img/birthday.svg | 0 .../Resources/public => public}/img/bool.svg | 0 .../public => public}/img/bool_add.svg | 0 .../public => public}/img/button.svg | 0 .../public => public}/img/captcha.svg | 0 .../public => public}/img/checkbox.svg | 0 .../public => public}/img/cl_change_value.svg | 0 .../img/cl_constraints_add.svg | 0 .../img/cl_constraints_remove.svg | 0 .../img/cl_element_value.svg | 0 .../img/cl_output_workflow.svg | 0 .../img/cl_success_message.svg | 0 .../img/cl_switch_output_workflow.svg | 0 .../img/cl_toggle_availability.svg | 0 .../public => public}/img/cl_toggle_class.svg | 0 .../img/cl_toggle_element.svg | 0 .../img/cl_trigger_event.svg | 0 .../public => public}/img/container.svg | 0 .../public => public}/img/container_add.svg | 0 .../public => public}/img/danger.svg | 0 .../public => public}/img/data_injection.svg | 0 .../Resources/public => public}/img/date.svg | 0 .../public => public}/img/date_time.svg | 0 .../public => public}/img/download.svg | 0 .../img/dynamic_multicheck.svg | 0 .../public => public}/img/elem_add.svg | 0 .../public => public}/img/fieldset.svg | 0 .../public => public}/img/fieldset_add.svg | 0 .../Resources/public => public}/img/file.svg | 0 .../public => public}/img/filter.svg | 0 .../public => public}/img/filter_add.svg | 0 .../public => public}/img/formBuilder.svg | 0 .../img/form_configuration.svg | 0 .../Resources/public => public}/img/globe.svg | 0 .../public => public}/img/grid_attention.svg | 0 .../public => public}/img/grid_ok.svg | 0 .../public => public}/img/grid_ok_edit.svg | 0 .../img/grid_unavailable.svg | 0 .../Resources/public => public}/img/help.svg | 0 .../public => public}/img/hidden.svg | 0 .../Resources/public => public}/img/html.svg | 0 .../Resources/public => public}/img/lock.svg | 0 .../public => public}/img/mail_editor.svg | 0 .../public => public}/img/multicheckbox.svg | 0 .../public => public}/img/notice.svg | 0 .../public => public}/img/output_workflow.svg | 0 .../img/output_workflow_add.svg | 0 .../img/output_workflow_channel.svg | 0 .../img/output_workflow_channel_add.svg | 0 .../img/output_workflow_funnel_aware.svg | 0 .../public => public}/img/ow_apply_data.svg | 0 .../public => public}/img/ow_channel_api.svg | 0 .../img/ow_channel_api_mapper.svg | 0 .../img/ow_channel_email.svg | 0 .../img/ow_channel_funnel.svg | 0 .../img/ow_channel_object.svg | 0 .../public => public}/img/password.svg | 0 .../public => public}/img/picture.svg | 0 .../Resources/public => public}/img/radio.svg | 0 .../public => public}/img/recaptcha_v3.svg | 0 .../Resources/public => public}/img/reset.svg | 0 .../public => public}/img/select.svg | 0 .../public => public}/img/snippet.svg | 0 .../Resources/public => public}/img/stack.svg | 0 .../public => public}/img/stack_add.svg | 0 .../public => public}/img/submit.svg | 0 .../public => public}/img/textarea.svg | 0 .../public => public}/img/textfield.svg | 0 .../Resources/public => public}/img/time.svg | 0 .../public => public}/js/admin/area.js | 0 .../js/extjs/_form/config-fields/abstract.js | 0 .../js/extjs/_form/config-fields/checkbox.js | 0 .../js/extjs/_form/config-fields/href.js | 0 .../_form/config-fields/key_value_repeater.js | 0 .../js/extjs/_form/config-fields/label.js | 0 .../extjs/_form/config-fields/numberfield.js | 0 .../_form/config-fields/options_repeater.js | 0 .../js/extjs/_form/config-fields/select.js | 0 .../js/extjs/_form/config-fields/tagfield.js | 0 .../js/extjs/_form/config-fields/textfield.js | 0 .../extjs/_form/data-injection/expression.js | 0 .../public => public}/js/extjs/_form/form.js | 0 .../js/extjs/_form/tab/configPanel.js | 0 .../channel/abstractChannel.js | 0 .../_form/tab/output-workflow/channel/api.js | 0 .../tab/output-workflow/channel/email.js | 0 .../tab/output-workflow/channel/funnel.js | 0 .../channel/funnel/action/abstractAction.js | 0 .../channel/funnel/action/channelAction.js | 0 .../channel/funnel/action/disabledAction.js | 0 .../funnel/action/returnToFormAction.js | 0 .../channel/funnel/funnelActionDispatcher.js | 0 .../channel/funnel/layer/abstractLayer.js | 0 .../funnel/layer/dynamicLayoutLayer.js | 0 .../tab/output-workflow/channel/object.js | 0 .../outputWorkflowConfigPanel.js | 0 .../js/extjs/_form/tab/outputWorkflowPanel.js | 0 .../elements/Formbuilder.HrefTextField.js | 0 .../formFieldConstraintComponent.js | 2 - .../components/formFieldContainerComponent.js | 0 .../extjs/components/formImporterComponent.js | 0 .../components/formTypeBuilderComponent.js | 0 .../successMessageToggleComponent.js | 0 .../conditional-logic/action/abstract.js | 0 .../conditional-logic/action/changeValue.js | 0 .../action/constraintsAdd.js | 0 .../action/constraintsRemove.js | 0 .../action/successMessage.js | 0 .../action/switchOutputWorkflow.js | 0 .../action/toggleAvailability.js | 0 .../conditional-logic/action/toggleClass.js | 0 .../conditional-logic/action/toggleElement.js | 0 .../conditional-logic/action/triggerEvent.js | 0 .../js/extjs/conditional-logic/builder.js | 0 .../conditional-logic/condition/abstract.js | 0 .../condition/elementValue.js | 0 .../condition/outputWorkflow.js | 0 .../js/extjs/conditional-logic/form.js | 0 .../js/extjs/editor/AbstractFieldComponent.js | 79 + .../extjs/editor/ContainerFieldComponent.js | 290 ++ public/js/extjs/editor/FieldComponent.js | 273 + .../js/extjs/eventObserver.js | 0 .../extjs/extensions/formApiMappingEditor.js | 0 .../formDataMappingEditor/formDataMapper.js | 0 public/js/extjs/extensions/formMailEditor.js | 638 +++ .../js/extjs/extensions/formMetaData.js | 0 .../extensions/formObjectMappingEditor.js | 0 .../formObjectTreeMapper.js | 0 .../worker/fieldCollectionWorker.js | 0 .../worker/relationWorker.js | 0 .../public => public}/js/extjs/plugin.js | 0 .../public => public}/js/extjs/settings.js | 0 .../public => public}/js/extjs/types/href.js | 0 .../js/extjs/types/keyValueRepeater.js | 0 .../js/extjs/types/localizedField.js | 0 .../js/extjs/vendor/dataObject.js | 0 .../Assembler/FormAssembler.php | 17 +- .../FunnelActionElementAssembler.php | 5 +- .../Builder/ExtJsFormBuilder.php | 37 +- .../Builder/FrontendFormBuilder.php | 21 +- .../Configuration/Configuration.php | 0 .../Controller/Admin/ExportController.php | 18 +- .../Controller/Admin/MailEditorController.php | 95 +- .../Admin/OutputWorkflowApiController.php | 21 +- .../Admin/OutputWorkflowController.php | 25 +- .../Admin/OutputWorkflowFunnelController.php | 21 +- .../Admin/OutputWorkflowObjectController.php | 29 +- .../Controller/Admin/SettingsController.php | 25 +- .../Controller/AjaxController.php | 9 +- .../Controller/EmailController.php | 2 - .../Controller/FunnelController.php | 13 +- .../CompilerPass/ApiProviderPass.php | 0 .../CompilerPass/ChoiceBuilderPass.php | 0 .../CompilerPass/DataInjectionPass.php | 0 .../CompilerPass/DispatcherPass.php | 0 .../DynamicMultiFileAdapterPass.php | 0 .../DynamicObjectResolverPass.php | 0 .../CompilerPass/FieldTransformerPass.php | 0 .../CompilerPass/MailEditorWidgetPass.php | 0 .../CompilerPass/OptionsTransformerPass.php | 0 .../OutputInputTransformerPass.php | 0 .../OutputWorkflowChannelPass.php | 0 .../OutputWorkflowFunnelActionPass.php | 0 .../OutputWorkflowFunnelLayerPass.php | 0 .../CompilerPass/RuntimeDataProviderPass.php | 0 .../CompilerPass/StorageProviderPass.php | 0 .../DependencyInjection/Configuration.php | 0 .../FormBuilderExtension.php | 6 +- .../Doctrine/Type/FormBuilderFieldsType.php | 0 .../Document/Areabrick/Form/Form.php | 23 +- .../Adapter/DropZoneAdapter.php | 0 .../DynamicMultiFileAdapterInterface.php | 0 .../Adapter/FineUploadAdapter.php | 0 .../Event/Form/PostSetDataEvent.php | 11 +- .../Event/Form/PreSetDataEvent.php | 11 +- .../Event/Form/PreSubmitEvent.php | 11 +- .../Event/FormAssembleEvent.php | 14 +- .../ChannelSubjectGuardEvent.php | 34 +- .../OutputWorkflowSignalEvent.php | 11 +- .../OutputWorkflowSignalsEvent.php | 14 +- .../Event/SubmissionEvent.php | 17 +- .../Admin/AssetListener.php} | 145 +- .../EventListener/Core/CleanUpListener.php | 0 .../Core/FunnelFormAssemblingListener.php | 14 +- .../Core/FunnelRouteListener.php | 9 +- .../EventListener/Core/MailParamListener.php | 4 - .../EventListener/Core/RequestListener.php | 19 +- .../EventSubscriber/FormBuilderSubscriber.php | 0 .../SignalStorage/ArraySignalStorage.php | 0 .../SignalStorage/FormDataSignalStorage.php | 0 .../ProviderAwareStorageInterface.php | 0 .../SignalStorage/SignalStorageInterface.php | 0 .../SignalSubscribeHandler.php | 0 .../OutputWorkflow/GuardChannelException.php | 0 .../OutputWorkflow/GuardException.php | 0 .../GuardOutputWorkflowException.php | 0 .../OutputWorkflow/GuardStackedException.php | 0 .../Factory/FormDataFactory.php | 0 .../Factory/FormDataFactoryInterface.php | 0 .../Factory/FormDefinitionFactory.php | 0 .../FormDefinitionFactoryInterface.php | 0 .../Factory/ObjectResolverFactory.php | 20 +- .../ObjectResolverFactoryInterface.php | 0 .../Factory/OutputWorkflowFactory.php | 0 .../OutputWorkflowFactoryInterface.php | 0 .../Api/DataMappingElementCollectionType.php | 0 .../Api/DataMappingElementConfigType.php | 0 .../Channel/Api/FieldConfigType.php | 0 .../OutputWorkflow/Channel/ApiChannelType.php | 0 .../Channel/EmailChannelType.php | 2 +- .../Action/FunnelActionCoreConfigType.php | 0 .../Funnel/Action/FunnelActionType.php | 5 +- .../Action/FunnelActionsCollectionType.php | 0 .../Funnel/Action/Type/ChannelActionType.php | 0 .../Funnel/Action/Type/DisabledActionType.php | 0 .../Action/Type/ReturnToFormActionType.php | 0 .../Funnel/Layer/DynamicLayoutLayerType.php | 0 .../Channel/FunnelChannelType.php | 5 +- .../Channel/Object/FieldConfigType.php | 0 .../ObjectMappingElementCollectionType.php | 0 .../Object/ObjectMappingElementConfigType.php | 0 .../Worker/FieldCollectionWorkerType.php | 0 .../Object/Worker/RelationWorkerType.php | 0 .../Validation/ValidationCollectionType.php | 0 .../Worker/Validation/ValidationType.php | 0 .../Channel/ObjectChannelType.php | 0 .../Component/FixedCollectionType.php | 0 .../LocalizedValuesCollectionType.php | 0 .../OutputWorkflowChannelChoiceType.php | 5 +- .../Component/PimcoreHrefType.php | 0 .../OutputWorkflowChannelCollectionType.php | 0 .../OutputWorkflowChannelType.php | 5 +- .../OutputWorkflowCollectionType.php | 0 .../OutputWorkflow/OutputWorkflowType.php | 0 .../OutputWorkflow/SuccessManagementType.php | 0 .../Form/AdvancedChoiceBuilderInterface.php | 0 .../Form/ChoiceBuilderInterface.php | 0 .../Form/Data/FormData.php | 10 +- .../Form/Data/FormDataInterface.php | 0 .../DataInjector/DataInjectorInterface.php | 0 .../DataInjector/ExpressionDataInjector.php | 0 .../Form/Extension/HelpExtension.php | 0 .../Form/FormErrorsSerializer.php | 0 .../Form/FormErrorsSerializerInterface.php | 0 .../Form/FormValuesInputApplier.php | 11 +- .../Form/FormValuesInputApplierInterface.php | 0 .../Form/FormValuesOutputApplier.php | 10 +- .../Form/FormValuesOutputApplierInterface.php | 0 .../RuntimeData/FormRuntimeDataAllocator.php | 5 +- .../FormRuntimeDataAllocatorInterface.php | 0 .../Provider/RequestDataProvider.php | 0 .../Form/RuntimeData/RuntimeDataCollector.php | 0 .../RuntimeDataProviderInterface.php | 0 .../Form/Type/Container/ContainerType.php | 0 .../Type/Container/FieldSetContainerType.php | 0 .../Type/Container/RepeaterContainerType.php | 6 +- .../Type/Container/Traits/ContainerTrait.php | 0 .../Form/Type/ContainerCollectionType.php | 0 .../Form/Type/DynamicChoiceType.php | 0 .../Form/Type/DynamicFormType.php | 20 +- .../Type/DynamicMultiFile/DropZoneType.php | 7 +- .../DynamicMultiFile/FineUploaderType.php | 7 +- .../Form/Type/DynamicMultiFileType.php | 13 +- .../Form/Type/HoneypotType.php | 5 +- .../Form/Type/HtmlTagType.php | 0 .../Form/Type/LayerType.php | 0 .../Form/Type/Recaptcha3Type.php | 5 +- .../Form/Type/SnippetType.php | 11 +- src/FormBuilderBundle.php | 115 + .../MailEditor/Parser/PlaceholderParser.php | 105 - .../MailEditor/Widget/FormFieldWidget.php | 130 - .../Migrations/Version20211011171530.php | 111 - .../Migrations/Version20211208110858.php | 30 - .../Migrations/Version20221121130120.php | 52 - .../Migrations/Version20230303094642.php | 32 - .../Migrations/Version20230515072503.php | 87 - .../Resources/config/services.yml | 7 - .../config/services/mail_editor/config.yml | 11 - .../Resources/config/types/field_types.yml | 2 - .../formmaileditor/dialogs/placeholder.js | 35 - .../extjs/ckeditor/formmaileditor/plugin.js | 252 - .../js/extjs/ckeditor/lineutils/plugin.js | 1018 ---- .../js/extjs/ckeditor/notification/lang/de.js | 7 - .../js/extjs/ckeditor/notification/lang/en.js | 7 - .../js/extjs/ckeditor/notification/plugin.js | 933 ---- .../extjs/ckeditor/widget/images/handle.png | Bin 220 -> 0 bytes .../js/extjs/ckeditor/widget/lang/de.js | 8 - .../js/extjs/ckeditor/widget/lang/en.js | 8 - .../public/js/extjs/ckeditor/widget/plugin.js | 4371 ----------------- .../extjs/ckeditor/widgetselection/plugin.js | 361 -- .../js/extjs/extensions/formMailEditor.js | 342 -- .../FormBuilderEvents.php | 0 src/MailEditor/AttributeBag.php | 63 + src/MailEditor/Parser/PlaceholderParser.php | 165 + .../Parser/PlaceholderParserInterface.php | 2 +- .../Parser/TemplateParser/InkyParser.php | 22 + .../Parser/TemplateParser/PlainTextParser.php | 16 + .../TemplateParserInterface.php | 10 + src/MailEditor/TemplateGenerator.php | 79 + .../MailEditor/Widget/DateWidget.php | 6 +- src/MailEditor/Widget/FormFieldWidget.php | 146 + .../MailEditorFieldDataWidgetInterface.php | 0 .../Widget/MailEditorWidgetInterface.php | 4 +- .../Manager/FormDefinitionManager.php | 19 +- .../Manager/OutputWorkflowManager.php | 13 +- .../Manager/PresetManager.php | 5 +- .../Manager/TemplateManager.php | 5 +- src/Migrations/Version20230830183642.php | 192 + .../Model/FieldDefinitionInterface.php | 0 .../Model/FormDefinition.php | 16 - .../Model/FormDefinitionInterface.php | 10 - .../Model/FormFieldContainerDefinition.php | 0 .../FormFieldContainerDefinitionInterface.php | 0 .../Model/FormFieldDefinition.php | 0 .../Model/FormFieldDefinitionInterface.php | 0 .../Model/FormFieldDynamicDefinition.php | 0 .../FormFieldDynamicDefinitionInterface.php | 0 .../Model/FormStorageData.php | 0 .../Fragment/EntityToArrayAwareInterface.php | 0 .../Fragment/SubFieldsAwareInterface.php | 0 .../Model/FunnelActionDefinition.php | 0 .../Model/FunnelActionElement.php | 9 +- .../Model/OutputWorkflow.php | 0 .../Model/OutputWorkflowChannel.php | 0 .../Model/OutputWorkflowChannelInterface.php | 0 .../Model/OutputWorkflowInterface.php | 0 .../OutputWorkflow/Channel/Api/ApiData.php | 0 .../Channel/Api/ApiOutputChannel.php | 5 +- .../Channel/Api/ApiOutputChannelWorker.php | 17 +- .../Channel/Api/ApiProviderInterface.php | 0 .../Channel/ChannelInterface.php | 0 .../Channel/ChannelResponseAwareInterface.php | 0 .../Channel/Email/EmailOutputChannel.php | 11 +- .../Email/EmailOutputChannelWorker.php | 19 +- .../Channel/Email/Parser/MailParser.php | 20 +- .../Channel/Funnel/Action/ChannelAction.php | 5 +- .../Channel/Funnel/Action/DisabledAction.php | 0 .../Action/FunnelActionElementStack.php | 0 .../Funnel/Action/FunnelActionInterface.php | 0 .../Funnel/Action/ReturnToFormAction.php | 0 .../Channel/Funnel/FunnelOutputChannel.php | 0 .../Funnel/Layer/DynamicLayoutLayer.php | 0 .../Channel/Funnel/Layer/FunnelLayerData.php | 12 +- .../Funnel/Layer/FunnelLayerInterface.php | 0 .../Funnel/Layer/VirtualActionDefinitions.php | 0 .../Channel/FunnelAwareChannelInterface.php | 0 .../Channel/Object/AbstractObjectResolver.php | 4 +- .../Channel/Object/ExistingObjectResolver.php | 0 .../FieldCollectionValidationHelper.php | 13 +- .../Channel/Object/NewObjectResolver.php | 0 .../Channel/Object/ObjectOutputChannel.php | 0 .../DynamicObjectResolverInterface.php | 0 .../ObjectByRuntimeDataResolver.php | 0 .../FieldTransformerInterface.php | 0 .../OutputWorkflow/FormSubmissionFinisher.php | 0 .../FormSubmissionFinisherInterface.php | 0 .../OutputWorkflow/FunnelData.php | 21 +- .../OutputWorkflow/FunnelWorker.php | 29 +- .../OutputWorkflow/FunnelWorkerData.php | 20 +- .../OutputWorkflow/FunnelWorkerInterface.php | 0 .../OutputWorkflowDispatcher.php | 13 +- .../OutputWorkflowDispatcherInterface.php | 0 .../OutputWorkflow/OutputWorkflowResolver.php | 5 +- .../OutputWorkflowResolverInterface.php | 0 .../SuccessManagementWorker.php | 23 +- .../SuccessManagementWorkerInterface.php | 0 .../Registry/ApiProviderRegistry.php | 0 .../Registry/ChoiceBuilderRegistry.php | 0 .../Registry/ConditionalLogicRegistry.php | 0 .../Registry/DataInjectionRegistry.php | 0 .../Registry/DispatcherRegistry.php | 0 .../DynamicMultiFileAdapterRegistry.php | 0 .../DynamicObjectResolverRegistry.php | 0 .../Registry/FieldTransformerRegistry.php | 0 .../Registry/FunnelActionRegistry.php | 0 .../Registry/FunnelLayerRegistry.php | 0 .../Registry/InputTransformerRegistry.php | 0 .../Registry/MailEditorWidgetRegistry.php | 0 .../Registry/OptionsTransformerRegistry.php | 0 .../Registry/OutputTransformerRegistry.php | 0 .../OutputWorkflowChannelRegistry.php | 0 .../Registry/RuntimeDataProviderRegistry.php | 0 .../Registry/StorageProviderRegistry.php | 0 .../Repository/FormDefinitionRepository.php | 0 .../FormDefinitionRepositoryInterface.php | 0 .../Repository/OutputWorkflowRepository.php | 0 .../OutputWorkflowRepositoryInterface.php | 0 .../Resolver/FormOptionsResolver.php | 0 .../Resolver/FunnelDataResolver.php | 0 .../Session/FlashBagManager.php | 0 .../Session/FlashBagManagerInterface.php | 0 .../Storage/SessionStorageProvider.php | 5 +- .../Storage/StorageProviderInterface.php | 0 .../Stream/AttachmentStream.php | 0 .../Stream/AttachmentStreamInterface.php | 0 src/{FormBuilderBundle => }/Stream/File.php | 0 .../Stream/FileStack.php | 0 .../Stream/FileStream.php | 0 .../Stream/FileStreamInterface.php | 0 .../Tool/FormDependencyLocator.php | 2 +- .../Tool/ImportExportProcessor.php | 15 +- src/{FormBuilderBundle => }/Tool/Install.php | 8 +- .../Tool/LocaleDataMapper.php | 0 .../Tool/ReCaptcha/Response.php | 0 .../Tool/ReCaptchaProcessor.php | 10 +- .../Tool/ReCaptchaProcessorInterface.php | 0 .../Transformer/ChoicesMetaTransformer.php | 0 .../Transformer/ChoicesTransformer.php | 0 .../Transformer/DefaultValueTransformer.php | 0 .../DynamicOptionsTransformerInterface.php | 0 .../Transformer/HrefTransformer.php | 0 .../Input/InputTransformerInterface.php | 0 .../OptionsTransformerInterface.php | 0 .../Output/CheckboxObjectTransformer.php | 0 .../Output/ChoiceDataObjectTransformer.php | 0 .../Output/CountryDataObjectTransformer.php | 0 .../Output/DateDataObjectTransformer.php | 0 .../Output/DynamicMultiFileTransformer.php | 13 +- .../Output/FallbackTransformer.php | 7 +- .../Output/OutputTransformerInterface.php | 0 .../Traits/ChoiceTargetTransformerTrait.php | 0 .../Transformer/Target/TargetAwareData.php | 20 +- .../Target/TargetAwareOutputTransformer.php | 0 .../Transformer/Target/TargetAwareValue.php | 0 .../Twig/Extension/FlashMessageExtension.php | 5 +- .../Twig/Extension/StaticFormExtension.php | 5 +- .../Dispatcher/Dispatcher.php | 10 +- .../Dispatcher/Module/Constraints.php | 12 +- .../Module/Data/ConstraintsData.php | 0 .../Dispatcher/Module/Data/DataInterface.php | 0 .../Module/Data/FormTypeClassesData.php | 0 .../Module/Data/SuccessMessageData.php | 10 +- .../Module/Data/SwitchOutputWorkflowData.php | 0 .../Dispatcher/Module/FormTypeClasses.php | 4 +- .../Dispatcher/Module/ModuleInterface.php | 0 .../Dispatcher/Module/SuccessMessage.php | 4 +- .../Module/SwitchOutputWorkflow.php | 4 +- .../ConditionalLogic/Factory/DataFactory.php | 5 +- .../Processor/ConditionalLogicProcessor.php | 5 +- .../ReturnStack/FieldReturnStack.php | 13 +- .../ReturnStack/ReturnStackInterface.php | 0 .../ReturnStack/SimpleReturnStack.php | 11 +- .../Rule/Action/ActionInterface.php | 0 .../Rule/Action/ConstraintsAddAction.php | 0 .../Rule/Action/ConstraintsRemoveAction.php | 0 .../Rule/Action/SuccessMessageAction.php | 0 .../Action/SwitchOutputWorkflowAction.php | 0 .../Rule/Action/ToggleClassAction.php | 0 .../Rule/Action/ToggleElementAction.php | 0 .../Rule/Condition/ConditionInterface.php | 0 .../Rule/Condition/ElementValueCondition.php | 0 .../Condition/OutputWorkflowCondition.php | 0 .../Rule/Traits/ActionTrait.php | 0 .../Rule/Traits/ConditionTrait.php | 0 .../Constraints/DynamicMultiFileNotBlank.php | 0 .../DynamicMultiFileNotBlankValidator.php | 0 .../Validator/Constraints/Recaptcha3.php | 0 .../Constraints/Recaptcha3Validator.php | 9 +- .../common/redirect_flash_message.html.twig | 0 .../views => templates}/email/email.html.twig | 8 +- .../email/form_data.html.twig | 0 .../form/data/data_bootstrap_4.html.twig | 0 .../form/default.html.twig | 0 .../dynamic_multi_file}/form.html.twig | 0 .../form_drop_zone.html.twig | 0 .../views => templates}/form/form.html.twig | 0 .../form/presets/demo.html.twig | 0 .../bootstrap_3_horizontal_layout.html.twig | 0 .../form/theme/bootstrap_3_layout.html.twig | 0 .../bootstrap_4_horizontal_layout.html.twig | 0 .../form/theme/bootstrap_4_layout.html.twig | 0 .../form/theme/form_div_layout.html.twig | 0 .../bootstrap_3_horizontal_layout.html.twig | 0 .../theme/macro/bootstrap_3_layout.html.twig | 0 .../bootstrap_4_horizontal_layout.html.twig | 0 .../theme/macro/bootstrap_4_layout.html.twig | 0 .../theme/macro/form_div_layout.html.twig | 0 .../form/theme/type/container.html.twig | 0 .../theme/type/dynamic_multi_file.html.twig | 4 +- .../form/theme/type/html_tag.html.twig | 0 .../form/theme/type/snippet.html.twig | 0 .../views => templates}/funnel/base.html.twig | 0 .../funnel/error.html.twig | 0 .../layer/simple_layout_layer.html.twig | 0 .../views => templates}/layout.html.twig | 0 .../layout_funnel.html.twig | 0 tests/Acceptance.suite.dist.yml | 21 + .../Action/AbstractActionCest.php | 6 +- .../ElementAddValidationActionCest.php | 6 +- .../Element/ElementChangeValueActionCest.php | 6 +- .../Element/ElementFireJsEventActionCest.php | 6 +- .../ElementRemoveValidationActionCest.php | 6 +- .../ElementToggleAvailabilityActionCest.php | 6 +- .../Element/ElementToggleClassActionCest.php | 8 +- .../ElementToggleVisibilityActionCest.php | 8 +- .../FormChangeSuccessMessageActionCest.php | 6 +- .../Condition/AbstractConditionCest.php | 6 +- .../ElementValueContainsConditionCest.php | 6 +- .../ElementValueIsCheckedConditionCest.php | 8 +- .../ElementValueIsEmptyValueConditionCest.php | 8 +- .../ElementValueIsGreaterConditionCest.php | 8 +- .../ElementValueIsLessConditionCest.php | 8 +- .../ElementValueIsNotCheckedConditionCest.php | 8 +- .../ElementValueIsNotValueConditionCest.php | 8 +- .../ElementValueIsValueConditionCest.php | 8 +- .../Constraints/DropZoneConstraintsCest.php | 6 +- .../FineUploaderConstraintsCest.php | 10 +- .../Container/ContainerRepeaterCest.php | 6 +- .../MailSuccessFullySentPropertyCest.php | 6 +- .../ExtJs/AbstractExtJs.php | 4 +- .../ExtJs/ConditionalLogicCest.php | 4 +- .../ExtJs/ContextMenuCest.php | 4 +- .../ExtJs/FieldAttributesCest.php | 4 +- .../ExtJs/FieldValidationCest.php | 4 +- .../ExtJs/ImportExportCest.php | 6 +- .../ExtJs/SaveFormCest.php | 4 +- .../Form/DropZoneJsCest.php | 6 +- .../Form/FineUploaderCest.php | 26 +- .../Form/SimpleFormWithDivLayoutCest.php | 6 +- .../{acceptance => Acceptance}/_bootstrap.php | 0 tests/Functional.suite.dist.yml | 18 + .../Attributes/FieldAttributesCest.php | 6 +- .../Attributes/FormAttributesCest.php | 6 +- .../FormSwitchOutputWorkflowActionCest.php | 6 +- .../UseCustomRadioCheckboxCest.php | 10 +- .../UseHoneyPotFieldCest.php | 8 +- .../Constraints/AbstractConstraintCest.php | 6 +- .../Constraints/BicConstraintCest.php | 4 +- .../Constraints/CardSchemeConstraintCest.php | 4 +- .../Constraints/DateConstraintCest.php | 4 +- .../Constraints/DateTimeConstraintCest.php | 4 +- .../Constraints/EmailConstraintCest.php | 4 +- .../Constraints/IbanConstraintCest.php | 4 +- .../Constraints/IpConstraintCest.php | 6 +- .../Constraints/LengthConstraintCest.php | 4 +- .../Constraints/NotBlankConstraintCest.php | 4 +- .../Constraints/RangeConstraintCest.php | 4 +- .../Constraints/RegexConstraintCest.php | 4 +- .../Constraints/TimeConstraintCest.php | 4 +- .../Constraints/UrlConstraintCest.php | 4 +- .../Controller/AUrlConstraintCest.php | 4 +- .../Controller/Admin/ExportControllerCest.php | 8 +- .../Admin/SettingsControllerCest.php | 6 +- .../PlaceholderReplacementCest.php | 6 +- .../Fields/AbstractFieldCest.php | 6 +- .../Fields/BirthdayFieldCest.php | 4 +- .../Fields/CheckboxFieldCest.php | 4 +- .../Fields/ChoiceFieldCest.php | 4 +- .../Fields/ContainerFieldsetCest.php | 4 +- .../Fields/ContainerRepeaterCest.php | 4 +- .../Fields/CountryFieldCest.php | 4 +- .../Fields/DateFieldCest.php | 4 +- .../Fields/DateTimeFieldCest.php | 4 +- .../Fields/DynamicChoiceFieldAdvancedCest.php | 6 +- .../Fields/DynamicChoiceFieldCest.php | 10 +- .../Fields/HiddenFieldCest.php | 4 +- .../Fields/HtmlTagFieldCest.php | 4 +- .../Fields/IntegerFieldCest.php | 4 +- .../Fields/SnippetFieldCest.php | 4 +- .../Fields/TextAreaFieldCest.php | 4 +- .../Fields/TextFieldCest.php | 4 +- .../Fields/TimeFieldCest.php | 4 +- .../SubmissionTypesCest.php | 6 +- ...MailDisableDefaultMailBodyPropertyCest.php | 6 +- .../Channel/MailForcePlainTextCest.php | 6 +- .../Channel/MailIgnoreFieldsPropertyCest.php | 6 +- .../Preset/FormWithPresetsCest.php | 8 +- .../RenderingTypes/RenderingTypesCest.php | 6 +- .../SimpleForm/SimpleFormCest.php | 6 +- .../SimpleForm/SimpleFormEditWindowCest.php | 8 +- .../{functional => Functional}/_bootstrap.php | 0 tests/Support/AcceptanceTester.php | 8 + tests/Support/FunctionalTester.php | 8 + .../Helper/PimcoreBackend.php | 10 +- .../Helper/Traits/FunctionalFormTrait.php | 10 +- .../Services/TestAdvancedDynamicChoices.php | 2 +- .../Services/TestSimpleDynamicChoices.php | 2 +- .../Test/DachcomBundleTestCase.php | 6 +- tests/Support/UnitTester.php | 8 + .../{_support => Support}/Util/FormHelper.php | 2 +- .../Util/TestFormBuilder.php | 2 +- tests/Unit.suite.dist.yml | 10 + .../Config/ActiveElementsTest.php | 4 +- tests/{unit => Unit}/Config/TemplateTest.php | 4 +- .../Form/FormFactoryWithNoDataTest.php | 4 +- tests/{unit => Unit}/Form/FormManagerTest.php | 6 +- .../Form/FormManagerWithDataTest.php | 6 +- .../Unit/MailEditor/PlaceholderParserTest.php | 61 + .../FormFieldContainerStorageTest.php | 6 +- .../SimpleForm/FormFieldStorageTest.php | 6 +- .../SimpleForm/FormStorageTest.php | 6 +- .../Transformer/ChoicesTransformTest.php | 4 +- .../Transformer/DefaultValueTransformTest.php | 4 +- .../Transformer/HrefTransformTest.php | 6 +- .../Transformer/MetaChoiceTransformTest.php | 6 +- tests/{unit => Unit}/_bootstrap.php | 0 tests/_bootstrap.php | 7 +- tests/_envs/github.yml | 5 +- tests/_envs/local.yml | 4 +- tests/_etc/config.yaml | 17 + tests/_etc/config.yml | 11 - .../config/app/{config.yml => config.yaml} | 31 +- tests/_etc/config/app/system.yml | 69 - tests/_etc/config/app/system_settings.yaml | 47 + ...gs.yml => config_configuration_flags.yaml} | 0 ...config_default.yml => config_default.yaml} | 4 +- ...oaderjs.yml => config_fineuploaderjs.yaml} | 0 ...config_presets.yml => config_presets.yaml} | 0 tests/_support/AcceptanceTester.php | 8 - tests/_support/FunctionalTester.php | 8 - tests/_support/UnitTester.php | 8 - tests/acceptance.suite.dist.yml | 18 - tests/functional.suite.dist.yml | 17 - tests/unit.suite.dist.yml | 9 - .../unit/MailEditor/PlaceholderParserTest.php | 67 - .../admin.de.yml | 0 .../admin.en.yml | 0 718 files changed, 3207 insertions(+), 9540 deletions(-) rename src/FormBuilderBundle/Resources/config/backend/base_config.yml => config/backend/base_config.yaml (100%) rename {src/FormBuilderBundle/Resources/config => config}/doctrine/model/FormDefinition.orm.yml (100%) rename {src/FormBuilderBundle/Resources/config => config}/doctrine/model/OutputWorkflow.orm.yml (100%) rename {src/FormBuilderBundle/Resources/config => config}/doctrine/model/OutputWorkflowChannel.orm.yml (100%) rename {src/FormBuilderBundle/Resources => config}/install/sql/install.sql (100%) rename {src/FormBuilderBundle/Resources => config}/install/translations/admin.csv (95%) rename {src/FormBuilderBundle/Resources => config}/install/translations/frontend.csv (100%) rename src/FormBuilderBundle/Resources/config/pimcore/config.yml => config/pimcore/config.yaml (97%) rename src/FormBuilderBundle/Resources/config/pimcore/routing.yml => config/pimcore/routing.yaml (100%) rename src/FormBuilderBundle/Resources/config/pimcore/routing_funnels.yml => config/pimcore/routing_funnels.yaml (100%) rename src/FormBuilderBundle/Resources/config/pimcore/routing_funnels_not_localized.yml => config/pimcore/routing_funnels_not_localized.yaml (100%) rename src/FormBuilderBundle/Resources/config/serialization/File.yml => config/serialization/File.yaml (100%) rename src/FormBuilderBundle/Resources/config/serialization/FileStack.yml => config/serialization/FileStack.yaml (100%) rename src/FormBuilderBundle/Resources/config/serialization/FormStorageData.yml => config/serialization/FormStorageData.yaml (100%) rename src/FormBuilderBundle/Resources/config/serialization/FunnelActionDefinition.yml => config/serialization/FunnelActionDefinition.yaml (100%) rename src/FormBuilderBundle/Resources/config/serialization/FunnelActionElement.yml => config/serialization/FunnelActionElement.yaml (100%) rename src/FormBuilderBundle/Resources/config/serialization/OutputWorkflowChannel.yml => config/serialization/OutputWorkflowChannel.yaml (100%) rename src/FormBuilderBundle/Resources/config/serialization/OutputWorkflowSignalEvent.yml => config/serialization/OutputWorkflowSignalEvent.yaml (100%) create mode 100644 config/services.yaml rename src/FormBuilderBundle/Resources/config/services/assembler.yml => config/services/assembler.yaml (100%) rename src/FormBuilderBundle/Resources/config/services/brick.yml => config/services/brick.yaml (100%) rename src/FormBuilderBundle/Resources/config/services/builder.yml => config/services/builder.yaml (100%) rename src/FormBuilderBundle/Resources/config/services/conditional_logic/action.yml => config/services/conditional_logic/action.yaml (100%) rename src/FormBuilderBundle/Resources/config/services/conditional_logic/condition.yml => config/services/conditional_logic/condition.yaml (100%) rename src/FormBuilderBundle/Resources/config/services/conditional_logic/config.yml => config/services/conditional_logic/config.yaml (100%) rename src/FormBuilderBundle/Resources/config/services/conditional_logic/dispatcher.yml => config/services/conditional_logic/dispatcher.yaml (100%) rename src/FormBuilderBundle/Resources/config/services/controller.yml => config/services/controller.yaml (80%) rename src/FormBuilderBundle/Resources/config/services/data_injection.yml => config/services/data_injection.yaml (100%) rename src/FormBuilderBundle/Resources/config/services/dynamic_choice.yml => config/services/dynamic_choice.yaml (100%) rename src/FormBuilderBundle/Resources/config/services/dynamic_multi_file.yml => config/services/dynamic_multi_file.yaml (100%) rename src/FormBuilderBundle/Resources/config/services/event.yml => config/services/event.yaml (87%) rename src/FormBuilderBundle/Resources/config/services/event_subscriber.yml => config/services/event_subscriber.yaml (100%) rename src/FormBuilderBundle/Resources/config/services/factory.yml => config/services/factory.yaml (100%) rename src/FormBuilderBundle/Resources/config/extension/extension.yml => config/services/form_extension.yaml (100%) rename src/FormBuilderBundle/Resources/config/services/forms/forms.yml => config/services/forms/forms.yaml (100%) create mode 100644 config/services/mail_editor/config.yaml rename src/FormBuilderBundle/Resources/config/services/mail_editor/widgets.yml => config/services/mail_editor/widgets.yaml (100%) rename src/FormBuilderBundle/Resources/config/services/manager.yml => config/services/manager.yaml (100%) rename src/FormBuilderBundle/Resources/config/services/output_workflow/api.yml => config/services/output_workflow/api.yaml (100%) rename src/FormBuilderBundle/Resources/config/services/output_workflow/channels.yml => config/services/output_workflow/channels.yaml (100%) rename src/FormBuilderBundle/Resources/config/services/output_workflow/dynamic_object_resolver.yml => config/services/output_workflow/dynamic_object_resolver.yaml (100%) rename src/FormBuilderBundle/Resources/config/services/output_workflow/form.yml => config/services/output_workflow/form.yaml (100%) rename src/FormBuilderBundle/Resources/config/services/output_workflow/funnel_layers.yml => config/services/output_workflow/funnel_layers.yaml (100%) rename src/FormBuilderBundle/Resources/config/services/output_workflow/services.yml => config/services/output_workflow/services.yaml (100%) rename src/FormBuilderBundle/Resources/config/services/repository.yml => config/services/repository.yaml (100%) rename src/FormBuilderBundle/Resources/config/services/runtime_data.yml => config/services/runtime_data.yaml (100%) rename src/FormBuilderBundle/Resources/config/services/storage_provider.yml => config/services/storage_provider.yaml (100%) rename src/FormBuilderBundle/Resources/config/services/stream.yml => config/services/stream.yaml (100%) rename src/FormBuilderBundle/Resources/config/services/system.yml => config/services/system.yaml (100%) rename src/FormBuilderBundle/Resources/config/services/transformer/options_transformer.yml => config/services/transformer/options_transformer.yaml (100%) rename src/FormBuilderBundle/Resources/config/services/transformer/output_input_transformer.yml => config/services/transformer/output_input_transformer.yaml (100%) rename src/FormBuilderBundle/Resources/config/services/twig.yml => config/services/twig.yaml (100%) rename src/FormBuilderBundle/Resources/config/services/validator.yml => config/services/validator.yaml (100%) rename src/FormBuilderBundle/Resources/config/types/container_types.yml => config/types/container_types.yaml (100%) create mode 100644 config/types/field_types.yaml rename src/FormBuilderBundle/Resources/config/types/type/birthday.yml => config/types/type/birthday.yaml (100%) rename src/FormBuilderBundle/Resources/config/types/type/checkbox.yml => config/types/type/checkbox.yaml (100%) rename src/FormBuilderBundle/Resources/config/types/type/choice.yml => config/types/type/choice.yaml (100%) rename src/FormBuilderBundle/Resources/config/types/type/choice_dynamic.yml => config/types/type/choice_dynamic.yaml (100%) rename src/FormBuilderBundle/Resources/config/types/type/country.yml => config/types/type/country.yaml (100%) rename src/FormBuilderBundle/Resources/config/types/type/date.yml => config/types/type/date.yaml (100%) rename src/FormBuilderBundle/Resources/config/types/type/date_time.yml => config/types/type/date_time.yaml (100%) rename src/FormBuilderBundle/Resources/config/types/type/dynamic_multi_file.yml => config/types/type/dynamic_multi_file.yaml (100%) rename src/FormBuilderBundle/Resources/config/types/type/hidden.yml => config/types/type/hidden.yaml (100%) rename src/FormBuilderBundle/Resources/config/types/type/html_tag.yml => config/types/type/html_tag.yaml (100%) rename src/FormBuilderBundle/Resources/config/types/type/integer.yml => config/types/type/integer.yaml (100%) rename src/FormBuilderBundle/Resources/config/types/type/recaptcha_v3.yml => config/types/type/recaptcha_v3.yaml (100%) rename src/FormBuilderBundle/Resources/config/types/type/snippet.yml => config/types/type/snippet.yaml (100%) rename src/FormBuilderBundle/Resources/config/types/type/submit.yml => config/types/type/submit.yaml (100%) rename src/FormBuilderBundle/Resources/config/types/type/text.yml => config/types/type/text.yaml (100%) rename src/FormBuilderBundle/Resources/config/types/type/textarea.yml => config/types/type/textarea.yaml (100%) rename src/FormBuilderBundle/Resources/config/types/type/time.yml => config/types/type/time.yaml (100%) rename {src/FormBuilderBundle/Resources/public => public}/css/admin-editmode.css (100%) rename {src/FormBuilderBundle/Resources/public => public}/css/admin.css (100%) rename {src/FormBuilderBundle/Resources/public => public}/css/fineuploader/continue.gif (100%) rename {src/FormBuilderBundle/Resources/public => public}/css/fineuploader/edit.gif (100%) rename {src/FormBuilderBundle/Resources/public => public}/css/fineuploader/fine-uploader-new.min.css (100%) rename {src/FormBuilderBundle/Resources/public => public}/css/fineuploader/fine-uploader-new.min.css.map (100%) rename {src/FormBuilderBundle/Resources/public => public}/css/fineuploader/loading.gif (100%) rename {src/FormBuilderBundle/Resources/public => public}/css/fineuploader/pause.gif (100%) rename {src/FormBuilderBundle/Resources/public => public}/css/fineuploader/processing.gif (100%) rename {src/FormBuilderBundle/Resources/public => public}/css/fineuploader/retry.gif (100%) rename {src/FormBuilderBundle/Resources/public => public}/css/fineuploader/trash.gif (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/application_form.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/application_form_add.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/birthday.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/bool.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/bool_add.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/button.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/captcha.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/checkbox.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/cl_change_value.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/cl_constraints_add.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/cl_constraints_remove.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/cl_element_value.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/cl_output_workflow.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/cl_success_message.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/cl_switch_output_workflow.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/cl_toggle_availability.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/cl_toggle_class.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/cl_toggle_element.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/cl_trigger_event.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/container.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/container_add.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/danger.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/data_injection.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/date.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/date_time.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/download.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/dynamic_multicheck.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/elem_add.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/fieldset.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/fieldset_add.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/file.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/filter.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/filter_add.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/formBuilder.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/form_configuration.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/globe.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/grid_attention.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/grid_ok.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/grid_ok_edit.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/grid_unavailable.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/help.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/hidden.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/html.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/lock.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/mail_editor.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/multicheckbox.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/notice.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/output_workflow.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/output_workflow_add.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/output_workflow_channel.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/output_workflow_channel_add.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/output_workflow_funnel_aware.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/ow_apply_data.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/ow_channel_api.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/ow_channel_api_mapper.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/ow_channel_email.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/ow_channel_funnel.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/ow_channel_object.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/password.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/picture.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/radio.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/recaptcha_v3.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/reset.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/select.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/snippet.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/stack.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/stack_add.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/submit.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/textarea.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/textfield.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/img/time.svg (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/admin/area.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/_form/config-fields/abstract.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/_form/config-fields/checkbox.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/_form/config-fields/href.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/_form/config-fields/key_value_repeater.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/_form/config-fields/label.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/_form/config-fields/numberfield.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/_form/config-fields/options_repeater.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/_form/config-fields/select.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/_form/config-fields/tagfield.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/_form/config-fields/textfield.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/_form/data-injection/expression.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/_form/form.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/_form/tab/configPanel.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/_form/tab/output-workflow/channel/abstractChannel.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/_form/tab/output-workflow/channel/api.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/_form/tab/output-workflow/channel/email.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/_form/tab/output-workflow/channel/funnel.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/_form/tab/output-workflow/channel/funnel/action/abstractAction.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/_form/tab/output-workflow/channel/funnel/action/channelAction.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/_form/tab/output-workflow/channel/funnel/action/disabledAction.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/_form/tab/output-workflow/channel/funnel/action/returnToFormAction.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/_form/tab/output-workflow/channel/funnel/funnelActionDispatcher.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/_form/tab/output-workflow/channel/funnel/layer/abstractLayer.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/_form/tab/output-workflow/channel/funnel/layer/dynamicLayoutLayer.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/_form/tab/output-workflow/channel/object.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/_form/tab/output-workflow/outputWorkflowConfigPanel.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/_form/tab/outputWorkflowPanel.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/components/elements/Formbuilder.HrefTextField.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/components/formFieldConstraintComponent.js (99%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/components/formFieldContainerComponent.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/components/formImporterComponent.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/components/formTypeBuilderComponent.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/components/successMessageToggleComponent.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/conditional-logic/action/abstract.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/conditional-logic/action/changeValue.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/conditional-logic/action/constraintsAdd.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/conditional-logic/action/constraintsRemove.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/conditional-logic/action/successMessage.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/conditional-logic/action/switchOutputWorkflow.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/conditional-logic/action/toggleAvailability.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/conditional-logic/action/toggleClass.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/conditional-logic/action/toggleElement.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/conditional-logic/action/triggerEvent.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/conditional-logic/builder.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/conditional-logic/condition/abstract.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/conditional-logic/condition/elementValue.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/conditional-logic/condition/outputWorkflow.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/conditional-logic/form.js (100%) create mode 100644 public/js/extjs/editor/AbstractFieldComponent.js create mode 100644 public/js/extjs/editor/ContainerFieldComponent.js create mode 100644 public/js/extjs/editor/FieldComponent.js rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/eventObserver.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/extensions/formApiMappingEditor.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/extensions/formDataMappingEditor/formDataMapper.js (100%) create mode 100644 public/js/extjs/extensions/formMailEditor.js rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/extensions/formMetaData.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/extensions/formObjectMappingEditor.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/extensions/formObjectMappingEditor/formObjectTreeMapper.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/extensions/formObjectMappingEditor/worker/fieldCollectionWorker.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/extensions/formObjectMappingEditor/worker/relationWorker.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/plugin.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/settings.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/types/href.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/types/keyValueRepeater.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/types/localizedField.js (100%) rename {src/FormBuilderBundle/Resources/public => public}/js/extjs/vendor/dataObject.js (100%) rename src/{FormBuilderBundle => }/Assembler/FormAssembler.php (83%) rename src/{FormBuilderBundle => }/Assembler/FunnelActionElementAssembler.php (97%) rename src/{FormBuilderBundle => }/Builder/ExtJsFormBuilder.php (95%) rename src/{FormBuilderBundle => }/Builder/FrontendFormBuilder.php (84%) rename src/{FormBuilderBundle => }/Configuration/Configuration.php (100%) rename src/{FormBuilderBundle => }/Controller/Admin/ExportController.php (95%) rename src/{FormBuilderBundle => }/Controller/Admin/MailEditorController.php (50%) rename src/{FormBuilderBundle => }/Controller/Admin/OutputWorkflowApiController.php (87%) rename src/{FormBuilderBundle => }/Controller/Admin/OutputWorkflowController.php (89%) rename src/{FormBuilderBundle => }/Controller/Admin/OutputWorkflowFunnelController.php (81%) rename src/{FormBuilderBundle => }/Controller/Admin/OutputWorkflowObjectController.php (85%) rename src/{FormBuilderBundle => }/Controller/Admin/SettingsController.php (91%) rename src/{FormBuilderBundle => }/Controller/AjaxController.php (87%) rename src/{FormBuilderBundle => }/Controller/EmailController.php (89%) rename src/{FormBuilderBundle => }/Controller/FunnelController.php (75%) rename src/{FormBuilderBundle => }/DependencyInjection/CompilerPass/ApiProviderPass.php (100%) rename src/{FormBuilderBundle => }/DependencyInjection/CompilerPass/ChoiceBuilderPass.php (100%) rename src/{FormBuilderBundle => }/DependencyInjection/CompilerPass/DataInjectionPass.php (100%) rename src/{FormBuilderBundle => }/DependencyInjection/CompilerPass/DispatcherPass.php (100%) rename src/{FormBuilderBundle => }/DependencyInjection/CompilerPass/DynamicMultiFileAdapterPass.php (100%) rename src/{FormBuilderBundle => }/DependencyInjection/CompilerPass/DynamicObjectResolverPass.php (100%) rename src/{FormBuilderBundle => }/DependencyInjection/CompilerPass/FieldTransformerPass.php (100%) rename src/{FormBuilderBundle => }/DependencyInjection/CompilerPass/MailEditorWidgetPass.php (100%) rename src/{FormBuilderBundle => }/DependencyInjection/CompilerPass/OptionsTransformerPass.php (100%) rename src/{FormBuilderBundle => }/DependencyInjection/CompilerPass/OutputInputTransformerPass.php (100%) rename src/{FormBuilderBundle => }/DependencyInjection/CompilerPass/OutputWorkflowChannelPass.php (100%) rename src/{FormBuilderBundle => }/DependencyInjection/CompilerPass/OutputWorkflowFunnelActionPass.php (100%) rename src/{FormBuilderBundle => }/DependencyInjection/CompilerPass/OutputWorkflowFunnelLayerPass.php (100%) rename src/{FormBuilderBundle => }/DependencyInjection/CompilerPass/RuntimeDataProviderPass.php (100%) rename src/{FormBuilderBundle => }/DependencyInjection/CompilerPass/StorageProviderPass.php (100%) rename src/{FormBuilderBundle => }/DependencyInjection/Configuration.php (100%) rename src/{FormBuilderBundle => }/DependencyInjection/FormBuilderExtension.php (94%) rename src/{FormBuilderBundle => }/Doctrine/Type/FormBuilderFieldsType.php (100%) rename src/{FormBuilderBundle => }/Document/Areabrick/Form/Form.php (93%) rename src/{FormBuilderBundle => }/DynamicMultiFile/Adapter/DropZoneAdapter.php (100%) rename src/{FormBuilderBundle => }/DynamicMultiFile/Adapter/DynamicMultiFileAdapterInterface.php (100%) rename src/{FormBuilderBundle => }/DynamicMultiFile/Adapter/FineUploadAdapter.php (100%) rename src/{FormBuilderBundle => }/Event/Form/PostSetDataEvent.php (61%) rename src/{FormBuilderBundle => }/Event/Form/PreSetDataEvent.php (61%) rename src/{FormBuilderBundle => }/Event/Form/PreSubmitEvent.php (61%) rename src/{FormBuilderBundle => }/Event/FormAssembleEvent.php (65%) rename src/{FormBuilderBundle => }/Event/OutputWorkflow/ChannelSubjectGuardEvent.php (71%) rename src/{FormBuilderBundle => }/Event/OutputWorkflow/OutputWorkflowSignalEvent.php (68%) rename src/{FormBuilderBundle => }/Event/OutputWorkflow/OutputWorkflowSignalsEvent.php (87%) rename src/{FormBuilderBundle => }/Event/SubmissionEvent.php (73%) rename src/{FormBuilderBundle/FormBuilderBundle.php => EventListener/Admin/AssetListener.php} (54%) rename src/{FormBuilderBundle => }/EventListener/Core/CleanUpListener.php (100%) rename src/{FormBuilderBundle => }/EventListener/Core/FunnelFormAssemblingListener.php (83%) rename src/{FormBuilderBundle => }/EventListener/Core/FunnelRouteListener.php (88%) rename src/{FormBuilderBundle => }/EventListener/Core/MailParamListener.php (92%) rename src/{FormBuilderBundle => }/EventListener/Core/RequestListener.php (87%) rename src/{FormBuilderBundle => }/EventSubscriber/FormBuilderSubscriber.php (100%) rename src/{FormBuilderBundle => }/EventSubscriber/SignalStorage/ArraySignalStorage.php (100%) rename src/{FormBuilderBundle => }/EventSubscriber/SignalStorage/FormDataSignalStorage.php (100%) rename src/{FormBuilderBundle => }/EventSubscriber/SignalStorage/ProviderAwareStorageInterface.php (100%) rename src/{FormBuilderBundle => }/EventSubscriber/SignalStorage/SignalStorageInterface.php (100%) rename src/{FormBuilderBundle => }/EventSubscriber/SignalSubscribeHandler.php (100%) rename src/{FormBuilderBundle => }/Exception/OutputWorkflow/GuardChannelException.php (100%) rename src/{FormBuilderBundle => }/Exception/OutputWorkflow/GuardException.php (100%) rename src/{FormBuilderBundle => }/Exception/OutputWorkflow/GuardOutputWorkflowException.php (100%) rename src/{FormBuilderBundle => }/Exception/OutputWorkflow/GuardStackedException.php (100%) rename src/{FormBuilderBundle => }/Factory/FormDataFactory.php (100%) rename src/{FormBuilderBundle => }/Factory/FormDataFactoryInterface.php (100%) rename src/{FormBuilderBundle => }/Factory/FormDefinitionFactory.php (100%) rename src/{FormBuilderBundle => }/Factory/FormDefinitionFactoryInterface.php (100%) rename src/{FormBuilderBundle => }/Factory/ObjectResolverFactory.php (60%) rename src/{FormBuilderBundle => }/Factory/ObjectResolverFactoryInterface.php (100%) rename src/{FormBuilderBundle => }/Factory/OutputWorkflowFactory.php (100%) rename src/{FormBuilderBundle => }/Factory/OutputWorkflowFactoryInterface.php (100%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/Channel/Api/DataMappingElementCollectionType.php (100%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/Channel/Api/DataMappingElementConfigType.php (100%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/Channel/Api/FieldConfigType.php (100%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/Channel/ApiChannelType.php (100%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/Channel/EmailChannelType.php (94%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/Channel/Funnel/Action/FunnelActionCoreConfigType.php (100%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/Channel/Funnel/Action/FunnelActionType.php (86%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/Channel/Funnel/Action/FunnelActionsCollectionType.php (100%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/Channel/Funnel/Action/Type/ChannelActionType.php (100%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/Channel/Funnel/Action/Type/DisabledActionType.php (100%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/Channel/Funnel/Action/Type/ReturnToFormActionType.php (100%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/Channel/Funnel/Layer/DynamicLayoutLayerType.php (100%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/Channel/FunnelChannelType.php (87%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/Channel/Object/FieldConfigType.php (100%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/Channel/Object/ObjectMappingElementCollectionType.php (100%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/Channel/Object/ObjectMappingElementConfigType.php (100%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/Channel/Object/Worker/FieldCollectionWorkerType.php (100%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/Channel/Object/Worker/RelationWorkerType.php (100%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/Channel/Object/Worker/Validation/ValidationCollectionType.php (100%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/Channel/Object/Worker/Validation/ValidationType.php (100%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/Channel/ObjectChannelType.php (100%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/Component/FixedCollectionType.php (100%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/Component/LocalizedValuesCollectionType.php (100%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/Component/OutputWorkflowChannelChoiceType.php (77%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/Component/PimcoreHrefType.php (100%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/OutputWorkflowChannelCollectionType.php (100%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/OutputWorkflowChannelType.php (93%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/OutputWorkflowCollectionType.php (100%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/OutputWorkflowType.php (100%) rename src/{FormBuilderBundle => }/Form/Admin/Type/OutputWorkflow/SuccessManagementType.php (100%) rename src/{FormBuilderBundle => }/Form/AdvancedChoiceBuilderInterface.php (100%) rename src/{FormBuilderBundle => }/Form/ChoiceBuilderInterface.php (100%) rename src/{FormBuilderBundle => }/Form/Data/FormData.php (86%) rename src/{FormBuilderBundle => }/Form/Data/FormDataInterface.php (100%) rename src/{FormBuilderBundle => }/Form/DataInjector/DataInjectorInterface.php (100%) rename src/{FormBuilderBundle => }/Form/DataInjector/ExpressionDataInjector.php (100%) rename src/{FormBuilderBundle => }/Form/Extension/HelpExtension.php (100%) rename src/{FormBuilderBundle => }/Form/FormErrorsSerializer.php (100%) rename src/{FormBuilderBundle => }/Form/FormErrorsSerializerInterface.php (100%) rename src/{FormBuilderBundle => }/Form/FormValuesInputApplier.php (90%) rename src/{FormBuilderBundle => }/Form/FormValuesInputApplierInterface.php (100%) rename src/{FormBuilderBundle => }/Form/FormValuesOutputApplier.php (96%) rename src/{FormBuilderBundle => }/Form/FormValuesOutputApplierInterface.php (100%) rename src/{FormBuilderBundle => }/Form/RuntimeData/FormRuntimeDataAllocator.php (82%) rename src/{FormBuilderBundle => }/Form/RuntimeData/FormRuntimeDataAllocatorInterface.php (100%) rename src/{FormBuilderBundle => }/Form/RuntimeData/Provider/RequestDataProvider.php (100%) rename src/{FormBuilderBundle => }/Form/RuntimeData/RuntimeDataCollector.php (100%) rename src/{FormBuilderBundle => }/Form/RuntimeData/RuntimeDataProviderInterface.php (100%) rename src/{FormBuilderBundle => }/Form/Type/Container/ContainerType.php (100%) rename src/{FormBuilderBundle => }/Form/Type/Container/FieldSetContainerType.php (100%) rename src/{FormBuilderBundle => }/Form/Type/Container/RepeaterContainerType.php (96%) rename src/{FormBuilderBundle => }/Form/Type/Container/Traits/ContainerTrait.php (100%) rename src/{FormBuilderBundle => }/Form/Type/ContainerCollectionType.php (100%) rename src/{FormBuilderBundle => }/Form/Type/DynamicChoiceType.php (100%) rename src/{FormBuilderBundle => }/Form/Type/DynamicFormType.php (87%) rename src/{FormBuilderBundle => }/Form/Type/DynamicMultiFile/DropZoneType.php (95%) rename src/{FormBuilderBundle => }/Form/Type/DynamicMultiFile/FineUploaderType.php (96%) rename src/{FormBuilderBundle => }/Form/Type/DynamicMultiFileType.php (81%) rename src/{FormBuilderBundle => }/Form/Type/HoneypotType.php (92%) rename src/{FormBuilderBundle => }/Form/Type/HtmlTagType.php (100%) rename src/{FormBuilderBundle => }/Form/Type/LayerType.php (100%) rename src/{FormBuilderBundle => }/Form/Type/Recaptcha3Type.php (89%) rename src/{FormBuilderBundle => }/Form/Type/SnippetType.php (85%) create mode 100644 src/FormBuilderBundle.php delete mode 100644 src/FormBuilderBundle/MailEditor/Parser/PlaceholderParser.php delete mode 100644 src/FormBuilderBundle/MailEditor/Widget/FormFieldWidget.php delete mode 100644 src/FormBuilderBundle/Migrations/Version20211011171530.php delete mode 100644 src/FormBuilderBundle/Migrations/Version20211208110858.php delete mode 100644 src/FormBuilderBundle/Migrations/Version20221121130120.php delete mode 100644 src/FormBuilderBundle/Migrations/Version20230303094642.php delete mode 100644 src/FormBuilderBundle/Migrations/Version20230515072503.php delete mode 100644 src/FormBuilderBundle/Resources/config/services.yml delete mode 100644 src/FormBuilderBundle/Resources/config/services/mail_editor/config.yml delete mode 100644 src/FormBuilderBundle/Resources/config/types/field_types.yml delete mode 100644 src/FormBuilderBundle/Resources/public/js/extjs/ckeditor/formmaileditor/dialogs/placeholder.js delete mode 100644 src/FormBuilderBundle/Resources/public/js/extjs/ckeditor/formmaileditor/plugin.js delete mode 100644 src/FormBuilderBundle/Resources/public/js/extjs/ckeditor/lineutils/plugin.js delete mode 100644 src/FormBuilderBundle/Resources/public/js/extjs/ckeditor/notification/lang/de.js delete mode 100644 src/FormBuilderBundle/Resources/public/js/extjs/ckeditor/notification/lang/en.js delete mode 100644 src/FormBuilderBundle/Resources/public/js/extjs/ckeditor/notification/plugin.js delete mode 100644 src/FormBuilderBundle/Resources/public/js/extjs/ckeditor/widget/images/handle.png delete mode 100644 src/FormBuilderBundle/Resources/public/js/extjs/ckeditor/widget/lang/de.js delete mode 100644 src/FormBuilderBundle/Resources/public/js/extjs/ckeditor/widget/lang/en.js delete mode 100644 src/FormBuilderBundle/Resources/public/js/extjs/ckeditor/widget/plugin.js delete mode 100644 src/FormBuilderBundle/Resources/public/js/extjs/ckeditor/widgetselection/plugin.js delete mode 100644 src/FormBuilderBundle/Resources/public/js/extjs/extensions/formMailEditor.js rename src/{FormBuilderBundle => }/FormBuilderEvents.php (100%) create mode 100644 src/MailEditor/AttributeBag.php create mode 100644 src/MailEditor/Parser/PlaceholderParser.php rename src/{FormBuilderBundle => }/MailEditor/Parser/PlaceholderParserInterface.php (73%) create mode 100644 src/MailEditor/Parser/TemplateParser/InkyParser.php create mode 100644 src/MailEditor/Parser/TemplateParser/PlainTextParser.php create mode 100644 src/MailEditor/Parser/TemplateParser/TemplateParserInterface.php create mode 100644 src/MailEditor/TemplateGenerator.php rename src/{FormBuilderBundle => }/MailEditor/Widget/DateWidget.php (77%) create mode 100644 src/MailEditor/Widget/FormFieldWidget.php rename src/{FormBuilderBundle => }/MailEditor/Widget/MailEditorFieldDataWidgetInterface.php (100%) rename src/{FormBuilderBundle => }/MailEditor/Widget/MailEditorWidgetInterface.php (62%) rename src/{FormBuilderBundle => }/Manager/FormDefinitionManager.php (91%) rename src/{FormBuilderBundle => }/Manager/OutputWorkflowManager.php (80%) rename src/{FormBuilderBundle => }/Manager/PresetManager.php (93%) rename src/{FormBuilderBundle => }/Manager/TemplateManager.php (92%) create mode 100644 src/Migrations/Version20230830183642.php rename src/{FormBuilderBundle => }/Model/FieldDefinitionInterface.php (100%) rename src/{FormBuilderBundle => }/Model/FormDefinition.php (95%) rename src/{FormBuilderBundle => }/Model/FormDefinitionInterface.php (90%) rename src/{FormBuilderBundle => }/Model/FormFieldContainerDefinition.php (100%) rename src/{FormBuilderBundle => }/Model/FormFieldContainerDefinitionInterface.php (100%) rename src/{FormBuilderBundle => }/Model/FormFieldDefinition.php (100%) rename src/{FormBuilderBundle => }/Model/FormFieldDefinitionInterface.php (100%) rename src/{FormBuilderBundle => }/Model/FormFieldDynamicDefinition.php (100%) rename src/{FormBuilderBundle => }/Model/FormFieldDynamicDefinitionInterface.php (100%) rename src/{FormBuilderBundle => }/Model/FormStorageData.php (100%) rename src/{FormBuilderBundle => }/Model/Fragment/EntityToArrayAwareInterface.php (100%) rename src/{FormBuilderBundle => }/Model/Fragment/SubFieldsAwareInterface.php (100%) rename src/{FormBuilderBundle => }/Model/FunnelActionDefinition.php (100%) rename src/{FormBuilderBundle => }/Model/FunnelActionElement.php (80%) rename src/{FormBuilderBundle => }/Model/OutputWorkflow.php (100%) rename src/{FormBuilderBundle => }/Model/OutputWorkflowChannel.php (100%) rename src/{FormBuilderBundle => }/Model/OutputWorkflowChannelInterface.php (100%) rename src/{FormBuilderBundle => }/Model/OutputWorkflowInterface.php (100%) rename src/{FormBuilderBundle => }/OutputWorkflow/Channel/Api/ApiData.php (100%) rename src/{FormBuilderBundle => }/OutputWorkflow/Channel/Api/ApiOutputChannel.php (90%) rename src/{FormBuilderBundle => }/OutputWorkflow/Channel/Api/ApiOutputChannelWorker.php (92%) rename src/{FormBuilderBundle => }/OutputWorkflow/Channel/Api/ApiProviderInterface.php (100%) rename src/{FormBuilderBundle => }/OutputWorkflow/Channel/ChannelInterface.php (100%) rename src/{FormBuilderBundle => }/OutputWorkflow/Channel/ChannelResponseAwareInterface.php (100%) rename src/{FormBuilderBundle => }/OutputWorkflow/Channel/Email/EmailOutputChannel.php (85%) rename src/{FormBuilderBundle => }/OutputWorkflow/Channel/Email/EmailOutputChannelWorker.php (89%) rename src/{FormBuilderBundle => }/OutputWorkflow/Channel/Email/Parser/MailParser.php (93%) rename src/{FormBuilderBundle => }/OutputWorkflow/Channel/Funnel/Action/ChannelAction.php (93%) rename src/{FormBuilderBundle => }/OutputWorkflow/Channel/Funnel/Action/DisabledAction.php (100%) rename src/{FormBuilderBundle => }/OutputWorkflow/Channel/Funnel/Action/FunnelActionElementStack.php (100%) rename src/{FormBuilderBundle => }/OutputWorkflow/Channel/Funnel/Action/FunnelActionInterface.php (100%) rename src/{FormBuilderBundle => }/OutputWorkflow/Channel/Funnel/Action/ReturnToFormAction.php (100%) rename src/{FormBuilderBundle => }/OutputWorkflow/Channel/Funnel/FunnelOutputChannel.php (100%) rename src/{FormBuilderBundle => }/OutputWorkflow/Channel/Funnel/Layer/DynamicLayoutLayer.php (100%) rename src/{FormBuilderBundle => }/OutputWorkflow/Channel/Funnel/Layer/FunnelLayerData.php (72%) rename src/{FormBuilderBundle => }/OutputWorkflow/Channel/Funnel/Layer/FunnelLayerInterface.php (100%) rename src/{FormBuilderBundle => }/OutputWorkflow/Channel/Funnel/Layer/VirtualActionDefinitions.php (100%) rename src/{FormBuilderBundle => }/OutputWorkflow/Channel/FunnelAwareChannelInterface.php (100%) rename src/{FormBuilderBundle => }/OutputWorkflow/Channel/Object/AbstractObjectResolver.php (98%) rename src/{FormBuilderBundle => }/OutputWorkflow/Channel/Object/ExistingObjectResolver.php (100%) rename src/{FormBuilderBundle => }/OutputWorkflow/Channel/Object/Helper/FieldCollectionValidationHelper.php (90%) rename src/{FormBuilderBundle => }/OutputWorkflow/Channel/Object/NewObjectResolver.php (100%) rename src/{FormBuilderBundle => }/OutputWorkflow/Channel/Object/ObjectOutputChannel.php (100%) rename src/{FormBuilderBundle => }/OutputWorkflow/DynamicObjectResolver/DynamicObjectResolverInterface.php (100%) rename src/{FormBuilderBundle => }/OutputWorkflow/DynamicObjectResolver/ObjectByRuntimeDataResolver.php (100%) rename src/{FormBuilderBundle => }/OutputWorkflow/FieldTransformerInterface.php (100%) rename src/{FormBuilderBundle => }/OutputWorkflow/FormSubmissionFinisher.php (100%) rename src/{FormBuilderBundle => }/OutputWorkflow/FormSubmissionFinisherInterface.php (100%) rename src/{FormBuilderBundle => }/OutputWorkflow/FunnelData.php (55%) rename src/{FormBuilderBundle => }/OutputWorkflow/FunnelWorker.php (89%) rename src/{FormBuilderBundle => }/OutputWorkflow/FunnelWorkerData.php (72%) rename src/{FormBuilderBundle => }/OutputWorkflow/FunnelWorkerInterface.php (100%) rename src/{FormBuilderBundle => }/OutputWorkflow/OutputWorkflowDispatcher.php (89%) rename src/{FormBuilderBundle => }/OutputWorkflow/OutputWorkflowDispatcherInterface.php (100%) rename src/{FormBuilderBundle => }/OutputWorkflow/OutputWorkflowResolver.php (95%) rename src/{FormBuilderBundle => }/OutputWorkflow/OutputWorkflowResolverInterface.php (100%) rename src/{FormBuilderBundle => }/OutputWorkflow/SuccessManagementWorker.php (88%) rename src/{FormBuilderBundle => }/OutputWorkflow/SuccessManagementWorkerInterface.php (100%) rename src/{FormBuilderBundle => }/Registry/ApiProviderRegistry.php (100%) rename src/{FormBuilderBundle => }/Registry/ChoiceBuilderRegistry.php (100%) rename src/{FormBuilderBundle => }/Registry/ConditionalLogicRegistry.php (100%) rename src/{FormBuilderBundle => }/Registry/DataInjectionRegistry.php (100%) rename src/{FormBuilderBundle => }/Registry/DispatcherRegistry.php (100%) rename src/{FormBuilderBundle => }/Registry/DynamicMultiFileAdapterRegistry.php (100%) rename src/{FormBuilderBundle => }/Registry/DynamicObjectResolverRegistry.php (100%) rename src/{FormBuilderBundle => }/Registry/FieldTransformerRegistry.php (100%) rename src/{FormBuilderBundle => }/Registry/FunnelActionRegistry.php (100%) rename src/{FormBuilderBundle => }/Registry/FunnelLayerRegistry.php (100%) rename src/{FormBuilderBundle => }/Registry/InputTransformerRegistry.php (100%) rename src/{FormBuilderBundle => }/Registry/MailEditorWidgetRegistry.php (100%) rename src/{FormBuilderBundle => }/Registry/OptionsTransformerRegistry.php (100%) rename src/{FormBuilderBundle => }/Registry/OutputTransformerRegistry.php (100%) rename src/{FormBuilderBundle => }/Registry/OutputWorkflowChannelRegistry.php (100%) rename src/{FormBuilderBundle => }/Registry/RuntimeDataProviderRegistry.php (100%) rename src/{FormBuilderBundle => }/Registry/StorageProviderRegistry.php (100%) rename src/{FormBuilderBundle => }/Repository/FormDefinitionRepository.php (100%) rename src/{FormBuilderBundle => }/Repository/FormDefinitionRepositoryInterface.php (100%) rename src/{FormBuilderBundle => }/Repository/OutputWorkflowRepository.php (100%) rename src/{FormBuilderBundle => }/Repository/OutputWorkflowRepositoryInterface.php (100%) rename src/{FormBuilderBundle => }/Resolver/FormOptionsResolver.php (100%) rename src/{FormBuilderBundle => }/Resolver/FunnelDataResolver.php (100%) rename src/{FormBuilderBundle => }/Session/FlashBagManager.php (100%) rename src/{FormBuilderBundle => }/Session/FlashBagManagerInterface.php (100%) rename src/{FormBuilderBundle => }/Storage/SessionStorageProvider.php (91%) rename src/{FormBuilderBundle => }/Storage/StorageProviderInterface.php (100%) rename src/{FormBuilderBundle => }/Stream/AttachmentStream.php (100%) rename src/{FormBuilderBundle => }/Stream/AttachmentStreamInterface.php (100%) rename src/{FormBuilderBundle => }/Stream/File.php (100%) rename src/{FormBuilderBundle => }/Stream/FileStack.php (100%) rename src/{FormBuilderBundle => }/Stream/FileStream.php (100%) rename src/{FormBuilderBundle => }/Stream/FileStreamInterface.php (100%) rename src/{FormBuilderBundle => }/Tool/FormDependencyLocator.php (98%) rename src/{FormBuilderBundle => }/Tool/ImportExportProcessor.php (92%) rename src/{FormBuilderBundle => }/Tool/Install.php (93%) rename src/{FormBuilderBundle => }/Tool/LocaleDataMapper.php (100%) rename src/{FormBuilderBundle => }/Tool/ReCaptcha/Response.php (100%) rename src/{FormBuilderBundle => }/Tool/ReCaptchaProcessor.php (81%) rename src/{FormBuilderBundle => }/Tool/ReCaptchaProcessorInterface.php (100%) rename src/{FormBuilderBundle => }/Transformer/ChoicesMetaTransformer.php (100%) rename src/{FormBuilderBundle => }/Transformer/ChoicesTransformer.php (100%) rename src/{FormBuilderBundle => }/Transformer/DefaultValueTransformer.php (100%) rename src/{FormBuilderBundle => }/Transformer/DynamicOptionsTransformerInterface.php (100%) rename src/{FormBuilderBundle => }/Transformer/HrefTransformer.php (100%) rename src/{FormBuilderBundle => }/Transformer/Input/InputTransformerInterface.php (100%) rename src/{FormBuilderBundle => }/Transformer/OptionsTransformerInterface.php (100%) rename src/{FormBuilderBundle => }/Transformer/Output/CheckboxObjectTransformer.php (100%) rename src/{FormBuilderBundle => }/Transformer/Output/ChoiceDataObjectTransformer.php (100%) rename src/{FormBuilderBundle => }/Transformer/Output/CountryDataObjectTransformer.php (100%) rename src/{FormBuilderBundle => }/Transformer/Output/DateDataObjectTransformer.php (100%) rename src/{FormBuilderBundle => }/Transformer/Output/DynamicMultiFileTransformer.php (89%) rename src/{FormBuilderBundle => }/Transformer/Output/FallbackTransformer.php (97%) rename src/{FormBuilderBundle => }/Transformer/Output/OutputTransformerInterface.php (100%) rename src/{FormBuilderBundle => }/Transformer/Output/Traits/ChoiceTargetTransformerTrait.php (100%) rename src/{FormBuilderBundle => }/Transformer/Target/TargetAwareData.php (54%) rename src/{FormBuilderBundle => }/Transformer/Target/TargetAwareOutputTransformer.php (100%) rename src/{FormBuilderBundle => }/Transformer/Target/TargetAwareValue.php (100%) rename src/{FormBuilderBundle => }/Twig/Extension/FlashMessageExtension.php (88%) rename src/{FormBuilderBundle => }/Twig/Extension/StaticFormExtension.php (91%) rename src/{FormBuilderBundle => }/Validation/ConditionalLogic/Dispatcher/Dispatcher.php (89%) rename src/{FormBuilderBundle => }/Validation/ConditionalLogic/Dispatcher/Module/Constraints.php (94%) rename src/{FormBuilderBundle => }/Validation/ConditionalLogic/Dispatcher/Module/Data/ConstraintsData.php (100%) rename src/{FormBuilderBundle => }/Validation/ConditionalLogic/Dispatcher/Module/Data/DataInterface.php (100%) rename src/{FormBuilderBundle => }/Validation/ConditionalLogic/Dispatcher/Module/Data/FormTypeClassesData.php (100%) rename src/{FormBuilderBundle => }/Validation/ConditionalLogic/Dispatcher/Module/Data/SuccessMessageData.php (92%) rename src/{FormBuilderBundle => }/Validation/ConditionalLogic/Dispatcher/Module/Data/SwitchOutputWorkflowData.php (100%) rename src/{FormBuilderBundle => }/Validation/ConditionalLogic/Dispatcher/Module/FormTypeClasses.php (95%) rename src/{FormBuilderBundle => }/Validation/ConditionalLogic/Dispatcher/Module/ModuleInterface.php (100%) rename src/{FormBuilderBundle => }/Validation/ConditionalLogic/Dispatcher/Module/SuccessMessage.php (94%) rename src/{FormBuilderBundle => }/Validation/ConditionalLogic/Dispatcher/Module/SwitchOutputWorkflow.php (94%) rename src/{FormBuilderBundle => }/Validation/ConditionalLogic/Factory/DataFactory.php (77%) rename src/{FormBuilderBundle => }/Validation/ConditionalLogic/Processor/ConditionalLogicProcessor.php (94%) rename src/{FormBuilderBundle => }/Validation/ConditionalLogic/ReturnStack/FieldReturnStack.php (80%) rename src/{FormBuilderBundle => }/Validation/ConditionalLogic/ReturnStack/ReturnStackInterface.php (100%) rename src/{FormBuilderBundle => }/Validation/ConditionalLogic/ReturnStack/SimpleReturnStack.php (60%) rename src/{FormBuilderBundle => }/Validation/ConditionalLogic/Rule/Action/ActionInterface.php (100%) rename src/{FormBuilderBundle => }/Validation/ConditionalLogic/Rule/Action/ConstraintsAddAction.php (100%) rename src/{FormBuilderBundle => }/Validation/ConditionalLogic/Rule/Action/ConstraintsRemoveAction.php (100%) rename src/{FormBuilderBundle => }/Validation/ConditionalLogic/Rule/Action/SuccessMessageAction.php (100%) rename src/{FormBuilderBundle => }/Validation/ConditionalLogic/Rule/Action/SwitchOutputWorkflowAction.php (100%) rename src/{FormBuilderBundle => }/Validation/ConditionalLogic/Rule/Action/ToggleClassAction.php (100%) rename src/{FormBuilderBundle => }/Validation/ConditionalLogic/Rule/Action/ToggleElementAction.php (100%) rename src/{FormBuilderBundle => }/Validation/ConditionalLogic/Rule/Condition/ConditionInterface.php (100%) rename src/{FormBuilderBundle => }/Validation/ConditionalLogic/Rule/Condition/ElementValueCondition.php (100%) rename src/{FormBuilderBundle => }/Validation/ConditionalLogic/Rule/Condition/OutputWorkflowCondition.php (100%) rename src/{FormBuilderBundle => }/Validation/ConditionalLogic/Rule/Traits/ActionTrait.php (100%) rename src/{FormBuilderBundle => }/Validation/ConditionalLogic/Rule/Traits/ConditionTrait.php (100%) rename src/{FormBuilderBundle => }/Validator/Constraints/DynamicMultiFileNotBlank.php (100%) rename src/{FormBuilderBundle => }/Validator/Constraints/DynamicMultiFileNotBlankValidator.php (100%) rename src/{FormBuilderBundle => }/Validator/Constraints/Recaptcha3.php (100%) rename src/{FormBuilderBundle => }/Validator/Constraints/Recaptcha3Validator.php (80%) rename src/FormBuilderBundle/Resources/views/common/redirect-flash-message.html.twig => templates/common/redirect_flash_message.html.twig (100%) rename {src/FormBuilderBundle/Resources/views => templates}/email/email.html.twig (92%) rename src/FormBuilderBundle/Resources/views/email/form-data.html.twig => templates/email/form_data.html.twig (100%) rename {src/FormBuilderBundle/Resources/views => templates}/form/data/data_bootstrap_4.html.twig (100%) rename {src/FormBuilderBundle/Resources/views => templates}/form/default.html.twig (100%) rename {src/FormBuilderBundle/Resources/views/form/elements/dynamic-multi-file => templates/form/elements/dynamic_multi_file}/form.html.twig (100%) rename src/FormBuilderBundle/Resources/views/form/elements/dynamic-multi-file/form-drop-zone.html.twig => templates/form/elements/dynamic_multi_file/form_drop_zone.html.twig (100%) rename {src/FormBuilderBundle/Resources/views => templates}/form/form.html.twig (100%) rename {src/FormBuilderBundle/Resources/views => templates}/form/presets/demo.html.twig (100%) rename {src/FormBuilderBundle/Resources/views => templates}/form/theme/bootstrap_3_horizontal_layout.html.twig (100%) rename {src/FormBuilderBundle/Resources/views => templates}/form/theme/bootstrap_3_layout.html.twig (100%) rename {src/FormBuilderBundle/Resources/views => templates}/form/theme/bootstrap_4_horizontal_layout.html.twig (100%) rename {src/FormBuilderBundle/Resources/views => templates}/form/theme/bootstrap_4_layout.html.twig (100%) rename {src/FormBuilderBundle/Resources/views => templates}/form/theme/form_div_layout.html.twig (100%) rename {src/FormBuilderBundle/Resources/views => templates}/form/theme/macro/bootstrap_3_horizontal_layout.html.twig (100%) rename {src/FormBuilderBundle/Resources/views => templates}/form/theme/macro/bootstrap_3_layout.html.twig (100%) rename {src/FormBuilderBundle/Resources/views => templates}/form/theme/macro/bootstrap_4_horizontal_layout.html.twig (100%) rename {src/FormBuilderBundle/Resources/views => templates}/form/theme/macro/bootstrap_4_layout.html.twig (100%) rename {src/FormBuilderBundle/Resources/views => templates}/form/theme/macro/form_div_layout.html.twig (100%) rename {src/FormBuilderBundle/Resources/views => templates}/form/theme/type/container.html.twig (100%) rename {src/FormBuilderBundle/Resources/views => templates}/form/theme/type/dynamic_multi_file.html.twig (92%) rename {src/FormBuilderBundle/Resources/views => templates}/form/theme/type/html_tag.html.twig (100%) rename {src/FormBuilderBundle/Resources/views => templates}/form/theme/type/snippet.html.twig (100%) rename {src/FormBuilderBundle/Resources/views => templates}/funnel/base.html.twig (100%) rename {src/FormBuilderBundle/Resources/views => templates}/funnel/error.html.twig (100%) rename {src/FormBuilderBundle/Resources/views => templates}/funnel/layer/simple_layout_layer.html.twig (100%) rename {src/FormBuilderBundle/Resources/views => templates}/layout.html.twig (100%) rename {src/FormBuilderBundle/Resources/views => templates}/layout_funnel.html.twig (100%) create mode 100644 tests/Acceptance.suite.dist.yml rename tests/{acceptance => Acceptance}/ConditionalLogic/Action/AbstractActionCest.php (96%) rename tests/{acceptance => Acceptance}/ConditionalLogic/Action/Element/ElementAddValidationActionCest.php (97%) rename tests/{acceptance => Acceptance}/ConditionalLogic/Action/Element/ElementChangeValueActionCest.php (95%) rename tests/{acceptance => Acceptance}/ConditionalLogic/Action/Element/ElementFireJsEventActionCest.php (98%) rename tests/{acceptance => Acceptance}/ConditionalLogic/Action/Element/ElementRemoveValidationActionCest.php (98%) rename tests/{acceptance => Acceptance}/ConditionalLogic/Action/Element/ElementToggleAvailabilityActionCest.php (98%) rename tests/{acceptance => Acceptance}/ConditionalLogic/Action/Element/ElementToggleClassActionCest.php (97%) rename tests/{acceptance => Acceptance}/ConditionalLogic/Action/Element/ElementToggleVisibilityActionCest.php (97%) rename tests/{acceptance => Acceptance}/ConditionalLogic/Action/Form/FormChangeSuccessMessageActionCest.php (97%) rename tests/{acceptance => Acceptance}/ConditionalLogic/Condition/AbstractConditionCest.php (95%) rename tests/{acceptance => Acceptance}/ConditionalLogic/Condition/ElementValue/ElementValueContainsConditionCest.php (98%) rename tests/{acceptance => Acceptance}/ConditionalLogic/Condition/ElementValue/ElementValueIsCheckedConditionCest.php (97%) rename tests/{acceptance => Acceptance}/ConditionalLogic/Condition/ElementValue/ElementValueIsEmptyValueConditionCest.php (97%) rename tests/{acceptance => Acceptance}/ConditionalLogic/Condition/ElementValue/ElementValueIsGreaterConditionCest.php (97%) rename tests/{acceptance => Acceptance}/ConditionalLogic/Condition/ElementValue/ElementValueIsLessConditionCest.php (97%) rename tests/{acceptance => Acceptance}/ConditionalLogic/Condition/ElementValue/ElementValueIsNotCheckedConditionCest.php (97%) rename tests/{acceptance => Acceptance}/ConditionalLogic/Condition/ElementValue/ElementValueIsNotValueConditionCest.php (97%) rename tests/{acceptance => Acceptance}/ConditionalLogic/Condition/ElementValue/ElementValueIsValueConditionCest.php (97%) rename tests/{acceptance => Acceptance}/Constraints/DropZoneConstraintsCest.php (93%) rename tests/{acceptance => Acceptance}/Constraints/FineUploaderConstraintsCest.php (92%) rename tests/{acceptance => Acceptance}/Container/ContainerRepeaterCest.php (98%) rename tests/{acceptance => Acceptance}/EmailProperties/MailSuccessFullySentPropertyCest.php (97%) rename tests/{acceptance => Acceptance}/ExtJs/AbstractExtJs.php (99%) rename tests/{acceptance => Acceptance}/ExtJs/ConditionalLogicCest.php (90%) rename tests/{acceptance => Acceptance}/ExtJs/ContextMenuCest.php (98%) rename tests/{acceptance => Acceptance}/ExtJs/FieldAttributesCest.php (97%) rename tests/{acceptance => Acceptance}/ExtJs/FieldValidationCest.php (94%) rename tests/{acceptance => Acceptance}/ExtJs/ImportExportCest.php (94%) rename tests/{acceptance => Acceptance}/ExtJs/SaveFormCest.php (90%) rename tests/{acceptance => Acceptance}/Form/DropZoneJsCest.php (98%) rename tests/{acceptance => Acceptance}/Form/FineUploaderCest.php (98%) rename tests/{acceptance => Acceptance}/Form/SimpleFormWithDivLayoutCest.php (85%) rename tests/{acceptance => Acceptance}/_bootstrap.php (100%) create mode 100644 tests/Functional.suite.dist.yml rename tests/{functional => Functional}/Attributes/FieldAttributesCest.php (96%) rename tests/{functional => Functional}/Attributes/FormAttributesCest.php (84%) rename tests/{functional => Functional}/ConditionalLogic/Action/Form/FormSwitchOutputWorkflowActionCest.php (92%) rename tests/{functional => Functional}/ConfigurationFlags/UseCustomRadioCheckboxCest.php (96%) rename tests/{functional => Functional}/ConfigurationFlags/UseHoneyPotFieldCest.php (89%) rename tests/{functional => Functional}/Constraints/AbstractConstraintCest.php (98%) rename tests/{functional => Functional}/Constraints/BicConstraintCest.php (95%) rename tests/{functional => Functional}/Constraints/CardSchemeConstraintCest.php (95%) rename tests/{functional => Functional}/Constraints/DateConstraintCest.php (95%) rename tests/{functional => Functional}/Constraints/DateTimeConstraintCest.php (96%) rename tests/{functional => Functional}/Constraints/EmailConstraintCest.php (95%) rename tests/{functional => Functional}/Constraints/IbanConstraintCest.php (95%) rename tests/{functional => Functional}/Constraints/IpConstraintCest.php (94%) rename tests/{functional => Functional}/Constraints/LengthConstraintCest.php (98%) rename tests/{functional => Functional}/Constraints/NotBlankConstraintCest.php (95%) rename tests/{functional => Functional}/Constraints/RangeConstraintCest.php (98%) rename tests/{functional => Functional}/Constraints/RegexConstraintCest.php (96%) rename tests/{functional => Functional}/Constraints/TimeConstraintCest.php (95%) rename tests/{functional => Functional}/Constraints/UrlConstraintCest.php (95%) rename tests/{functional => Functional}/Controller/AUrlConstraintCest.php (90%) rename tests/{functional => Functional}/Controller/Admin/ExportControllerCest.php (95%) rename tests/{functional => Functional}/Controller/Admin/SettingsControllerCest.php (97%) rename tests/{functional => Functional}/EmailProperties/PlaceholderReplacementCest.php (97%) rename tests/{functional => Functional}/Fields/AbstractFieldCest.php (91%) rename tests/{functional => Functional}/Fields/BirthdayFieldCest.php (97%) rename tests/{functional => Functional}/Fields/CheckboxFieldCest.php (97%) rename tests/{functional => Functional}/Fields/ChoiceFieldCest.php (98%) rename tests/{functional => Functional}/Fields/ContainerFieldsetCest.php (97%) rename tests/{functional => Functional}/Fields/ContainerRepeaterCest.php (98%) rename tests/{functional => Functional}/Fields/CountryFieldCest.php (98%) rename tests/{functional => Functional}/Fields/DateFieldCest.php (97%) rename tests/{functional => Functional}/Fields/DateTimeFieldCest.php (98%) rename tests/{functional => Functional}/Fields/DynamicChoiceFieldAdvancedCest.php (89%) rename tests/{functional => Functional}/Fields/DynamicChoiceFieldCest.php (97%) rename tests/{functional => Functional}/Fields/HiddenFieldCest.php (95%) rename tests/{functional => Functional}/Fields/HtmlTagFieldCest.php (91%) rename tests/{functional => Functional}/Fields/IntegerFieldCest.php (96%) rename tests/{functional => Functional}/Fields/SnippetFieldCest.php (94%) rename tests/{functional => Functional}/Fields/TextAreaFieldCest.php (96%) rename tests/{functional => Functional}/Fields/TextFieldCest.php (96%) rename tests/{functional => Functional}/Fields/TimeFieldCest.php (97%) rename tests/{functional => Functional}/MailSubmissionTypes/SubmissionTypesCest.php (94%) rename tests/{functional => Functional}/OutputWorkflows/Channel/MailDisableDefaultMailBodyPropertyCest.php (93%) rename tests/{functional => Functional}/OutputWorkflows/Channel/MailForcePlainTextCest.php (89%) rename tests/{functional => Functional}/OutputWorkflows/Channel/MailIgnoreFieldsPropertyCest.php (88%) rename tests/{functional => Functional}/Preset/FormWithPresetsCest.php (84%) rename tests/{functional => Functional}/RenderingTypes/RenderingTypesCest.php (95%) rename tests/{functional => Functional}/SimpleForm/SimpleFormCest.php (98%) rename tests/{functional => Functional}/SimpleForm/SimpleFormEditWindowCest.php (94%) rename tests/{functional => Functional}/_bootstrap.php (100%) create mode 100644 tests/Support/AcceptanceTester.php create mode 100644 tests/Support/FunctionalTester.php rename tests/{_support => Support}/Helper/PimcoreBackend.php (97%) rename tests/{_support => Support}/Helper/Traits/FunctionalFormTrait.php (87%) rename tests/{_support => Support}/Services/TestAdvancedDynamicChoices.php (97%) rename tests/{_support => Support}/Services/TestSimpleDynamicChoices.php (97%) rename tests/{_support => Support}/Test/DachcomBundleTestCase.php (55%) create mode 100644 tests/Support/UnitTester.php rename tests/{_support => Support}/Util/FormHelper.php (98%) rename tests/{_support => Support}/Util/TestFormBuilder.php (99%) create mode 100644 tests/Unit.suite.dist.yml rename tests/{unit => Unit}/Config/ActiveElementsTest.php (81%) rename tests/{unit => Unit}/Config/TemplateTest.php (96%) rename tests/{unit => Unit}/Form/FormFactoryWithNoDataTest.php (93%) rename tests/{unit => Unit}/Form/FormManagerTest.php (94%) rename tests/{unit => Unit}/Form/FormManagerWithDataTest.php (90%) create mode 100644 tests/Unit/MailEditor/PlaceholderParserTest.php rename tests/{unit => Unit}/SimpleForm/FormFieldContainerStorageTest.php (95%) rename tests/{unit => Unit}/SimpleForm/FormFieldStorageTest.php (98%) rename tests/{unit => Unit}/SimpleForm/FormStorageTest.php (97%) rename tests/{unit => Unit}/Transformer/ChoicesTransformTest.php (97%) rename tests/{unit => Unit}/Transformer/DefaultValueTransformTest.php (96%) rename tests/{unit => Unit}/Transformer/HrefTransformTest.php (95%) rename tests/{unit => Unit}/Transformer/MetaChoiceTransformTest.php (98%) rename tests/{unit => Unit}/_bootstrap.php (100%) create mode 100644 tests/_etc/config.yaml delete mode 100644 tests/_etc/config.yml rename tests/_etc/config/app/{config.yml => config.yaml} (51%) delete mode 100755 tests/_etc/config/app/system.yml create mode 100755 tests/_etc/config/app/system_settings.yaml rename tests/_etc/config/bundle/{config_configuration_flags.yml => config_configuration_flags.yaml} (100%) rename tests/_etc/config/bundle/{config_default.yml => config_default.yaml} (87%) rename tests/_etc/config/bundle/{config_fineuploaderjs.yml => config_fineuploaderjs.yaml} (100%) rename tests/_etc/config/bundle/{config_presets.yml => config_presets.yaml} (100%) delete mode 100644 tests/_support/AcceptanceTester.php delete mode 100644 tests/_support/FunctionalTester.php delete mode 100644 tests/_support/UnitTester.php delete mode 100644 tests/acceptance.suite.dist.yml delete mode 100644 tests/functional.suite.dist.yml delete mode 100644 tests/unit.suite.dist.yml delete mode 100644 tests/unit/MailEditor/PlaceholderParserTest.php rename {src/FormBuilderBundle/Resources/translations => translations}/admin.de.yml (100%) rename {src/FormBuilderBundle/Resources/translations => translations}/admin.en.yml (100%) diff --git a/.github/workflows/codeception.yml b/.github/workflows/codeception.yml index 1c6396d5..b51c5617 100644 --- a/.github/workflows/codeception.yml +++ b/.github/workflows/codeception.yml @@ -15,7 +15,7 @@ jobs: TEST_PROJECT_ROOT_DIR: "${{ github.workspace }}" PIMCORE_CODECEPTION_FRAMEWORK: "${{ github.workspace }}/pimcore-codeception-framework" - PIMCORE_CODECEPTION_VERSION: "2.0" + PIMCORE_CODECEPTION_VERSION: "3.0" APP_ENV: test PIMCORE_TEST_DB_DSN: "mysql://test:test@127.0.0.1:3306/dachcom_bundle_test" @@ -38,12 +38,12 @@ jobs: options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 strategy: matrix: - php: [ 8.1 ] - symfony: [ ^5.4 ] - pimcore: [ ~10.6.0 ] + php: [ 8.2 ] + symfony: [ ^6.2 ] + pimcore: [ ~11.0.0 ] include: - - pimcore: ~10.6.0 - template_tag: v10.2.5 + - pimcore: ~11.0.0 + template_tag: v11.0.0 steps: - uses: actions/checkout@v2 with: @@ -98,9 +98,11 @@ jobs: - name: Setup Chromium run: | - nohup $CHROMEWEBDRIVER/chromedriver --url-base=/wd/hub /dev/null 2>&1 & + export DISPLAY=:99 + chromedriver --url-base=/wd/hub & + sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 & - - name: Start Webserver and Chrome + - name: Start Symfony Server run: | curl -sS https://get.symfony.com/cli/installer | bash -s -- --install-dir=$HOME/.symfony/bin ~/.symfony/bin/symfony server:start --port=8080 --dir=public --allow-http --no-tls --daemon diff --git a/.github/workflows/ecs.yml b/.github/workflows/ecs.yml index 1534be84..70adce99 100644 --- a/.github/workflows/ecs.yml +++ b/.github/workflows/ecs.yml @@ -15,7 +15,7 @@ jobs: TEST_PROJECT_ROOT_DIR: "${{ github.workspace }}" PIMCORE_CODECEPTION_FRAMEWORK: "${{ github.workspace }}/pimcore-codeception-framework" - PIMCORE_CODECEPTION_VERSION: "2.0" + PIMCORE_CODECEPTION_VERSION: "3.0" APP_ENV: test PIMCORE_TEST_DB_DSN: "mysql://root:root@127.0.0.1:3306/dachcom_bundle_test" @@ -37,12 +37,12 @@ jobs: options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 strategy: matrix: - php: [ 8.1 ] - symfony: [ ^5.4 ] - pimcore: [ ~10.6.0 ] + php: [ 8.2 ] + symfony: [ ^6.2 ] + pimcore: [ ~11.0.0 ] include: - - pimcore: ~10.6.0 - template_tag: v10.2.5 + - pimcore: ~11.0.0 + template_tag: v11.0.0 steps: - uses: actions/checkout@v2 with: diff --git a/.github/workflows/php-stan.yml b/.github/workflows/php-stan.yml index 8b932f51..569eb977 100644 --- a/.github/workflows/php-stan.yml +++ b/.github/workflows/php-stan.yml @@ -15,7 +15,7 @@ jobs: TEST_PROJECT_ROOT_DIR: "${{ github.workspace }}" PIMCORE_CODECEPTION_FRAMEWORK: "${{ github.workspace }}/pimcore-codeception-framework" - PIMCORE_CODECEPTION_VERSION: "2.0" + PIMCORE_CODECEPTION_VERSION: "3.0" APP_ENV: test PIMCORE_TEST_DB_DSN: "mysql://root:root@127.0.0.1:3306/dachcom_bundle_test" @@ -37,12 +37,12 @@ jobs: options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 strategy: matrix: - php: [ 8.1 ] - symfony: [ ^5.4 ] - pimcore: [ ~10.6.0 ] + php: [ 8.2 ] + symfony: [ ^6.2 ] + pimcore: [ ~11.0.0 ] include: - - pimcore: ~10.6.0 - template_tag: v10.2.5 + - pimcore: ~11.0.0 + template_tag: v11.0.0 steps: - uses: actions/checkout@v2 with: diff --git a/.gitignore b/.gitignore index c4c84f2e..c63d3704 100644 --- a/.gitignore +++ b/.gitignore @@ -52,4 +52,4 @@ php-cgi.core /tests/_output/* /tests/_data/* !/tests/_data/.gitkeep -/tests/_support/_generated/* +/tests/Support/_generated/* diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md index 5c9e622a..3f51a10a 100644 --- a/ISSUE_TEMPLATE.md +++ b/ISSUE_TEMPLATE.md @@ -1,9 +1,9 @@ -| Q | A -| ---------------- | ----- -| Bug report? | yes/no -| Feature request? | yes/no -| BC Break report? | yes/no -| RFC? | yes/no +| Q | A | +|------------------|--------| +| Bug report? | yes/no | +| Feature request? | yes/no | +| BC Break report? | yes/no | +| RFC? | yes/no | +| Q | A | +|---------------|----------------------------------------------------| +| Branch? | dev-master for features / 4.x for bug fixes | +| Bug fix? | yes/no | +| New feature? | yes/no | +| BC breaks? | no | +| Deprecations? | yes/no | +| Fixed tickets | #... |