[FEATURE] EXT:form - Add HTML5 form types / attributes 16/52016/19
authorRalf Zimmermann <ralf.zimmermann@tritum.de>
Sun, 12 Mar 2017 18:26:40 +0000 (19:26 +0100)
committerSusanne Moog <susanne.moog@typo3.org>
Thu, 7 Sep 2017 16:14:52 +0000 (18:14 +0200)
It is now possible to add HTML5 elements with its needs.

Resolves: #80130
Resolves: #80128
Resolves: #80127
Resolves: #80125
Resolves: #80126
Releases: master
Change-Id: I1088d77c8ee52cca93878847a5d59c6b92faf1de
Reviewed-on: https://review.typo3.org/52016
Reviewed-by: Daniel Lorenz <daniel.lorenz@extco.de>
Tested-by: Daniel Lorenz <daniel.lorenz@extco.de>
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Susanne Moog <susanne.moog@typo3.org>
Tested-by: Susanne Moog <susanne.moog@typo3.org>
159 files changed:
typo3/sysext/core/Documentation/Changelog/master/Feature-80186-ExtFormAddHtml5Elements.rst [new file with mode: 0644]
typo3/sysext/form/Configuration/Yaml/BaseSetup.yaml
typo3/sysext/form/Configuration/Yaml/FormEditorSetup.yaml
typo3/sysext/form/Documentation/Config/configuration/Index.rst
typo3/sysext/form/Documentation/Config/proto/formEditor/Index.rst
typo3/sysext/form/Documentation/Config/proto/formElements/Index.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/AdvancedPassword/formEditor.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/AdvancedPassword/formEditor/propertyCollections/validators/30.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/AdvancedPassword/formEditor/propertyCollections/validators/30/editors/200.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/AdvancedPassword/formEditor/propertyCollections/validators/30/editors/300.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/AdvancedPassword/formEditor/propertyCollections/validators/70.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/AdvancedPassword/formEditor/propertyCollections/validators/70/editors/200.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/AdvancedPassword/formEditor/propertyCollections/validators/70/editors/300.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/MultiCheckbox/formEditor.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/MultiCheckbox/formEditor/propertyCollections/validators/10.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/MultiCheckbox/formEditor/propertyCollections/validators/10/editors/200.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/MultiCheckbox/formEditor/propertyCollections/validators/10/editors/300.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/MultiSelect/formEditor.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/MultiSelect/formEditor/propertyCollections/validators/10.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/MultiSelect/formEditor/propertyCollections/validators/10/editors/200.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/MultiSelect/formEditor/propertyCollections/validators/10/editors/300.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/Password/formEditor.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/Password/formEditor/editors/500.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/Password/formEditor/propertyCollections/validators/30.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/Password/formEditor/propertyCollections/validators/30/editors/200.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/Password/formEditor/propertyCollections/validators/30/editors/300.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/Password/formEditor/propertyCollections/validators/70.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/Password/formEditor/propertyCollections/validators/70/editors/200.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/Password/formEditor/propertyCollections/validators/70/editors/300.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/Text/formEditor.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/Text/formEditor/editors/500.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/Text/formEditor/propertyCollections/validators/30.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/Text/formEditor/propertyCollections/validators/30/editors/200.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/Text/formEditor/propertyCollections/validators/30/editors/300.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/Text/formEditor/propertyCollections/validators/70.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/Text/formEditor/propertyCollections/validators/70/editors/200.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/Text/formEditor/propertyCollections/validators/70/editors/300.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/Textarea/formEditor.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/Textarea/formEditor/editors/500.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/Textarea/formEditor/propertyCollections/validators/30.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/Textarea/formEditor/propertyCollections/validators/30/editors/200.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/Textarea/formEditor/propertyCollections/validators/30/editors/300.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/Textarea/formEditor/propertyCollections/validators/70.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/Textarea/formEditor/propertyCollections/validators/70/editors/200.rst
typo3/sysext/form/Documentation/Config/proto/formElements/formElementTypes/Textarea/formEditor/propertyCollections/validators/70/editors/300.rst
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/editors/100.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/editors/200.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/editors/400.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/editors/500.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/editors/700.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/editors/800.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/editors/900.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/editors/9999.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/group.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/groupSorting.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/iconIdentifier.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/label.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/predefinedDefaults.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/propertyCollections/validators/40.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/propertyCollections/validators/40/editors/100.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/propertyCollections/validators/40/identifier.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/implementationClassName.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/properties/containerClassAttribute.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/properties/elementClassAttribute.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/properties/elementErrorClassAttribute.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/validators.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number/formEditor.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number/formEditor/editors/100.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number/formEditor/editors/200.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number/formEditor/editors/400.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number/formEditor/editors/500.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number/formEditor/editors/700.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number/formEditor/editors/800.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number/formEditor/editors/900.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number/formEditor/editors/9999.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number/formEditor/group.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number/formEditor/groupSorting.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number/formEditor/iconIdentifier.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number/formEditor/label.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number/formEditor/predefinedDefaults.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number/formEditor/propertyCollections/validators/60.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number/formEditor/propertyCollections/validators/60/editors/100.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number/formEditor/propertyCollections/validators/60/identifier.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number/formEditor/propertyCollections/validators/70.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number/formEditor/propertyCollections/validators/70/editors/100.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number/formEditor/propertyCollections/validators/70/editors/200.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number/formEditor/propertyCollections/validators/70/editors/300.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number/formEditor/propertyCollections/validators/70/editors/9999.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number/formEditor/propertyCollections/validators/70/identifier.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number/implementationClassName.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number/properties/containerClassAttribute.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number/properties/elementClassAttribute.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number/properties/elementErrorClassAttribute.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Number/validators.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Telephone.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Telephone/formEditor.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Telephone/formEditor/editors/100.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Telephone/formEditor/editors/200.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Telephone/formEditor/editors/400.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Telephone/formEditor/editors/500.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Telephone/formEditor/editors/700.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Telephone/formEditor/editors/800.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Telephone/formEditor/editors/900.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Telephone/formEditor/editors/9999.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Telephone/formEditor/group.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Telephone/formEditor/groupSorting.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Telephone/formEditor/iconIdentifier.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Telephone/formEditor/label.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Telephone/formEditor/propertyCollections/validators/80.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Telephone/formEditor/propertyCollections/validators/80/editors/100.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Telephone/formEditor/propertyCollections/validators/80/editors/200.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Telephone/formEditor/propertyCollections/validators/80/identifier.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Telephone/implementationClassName.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Telephone/properties/containerClassAttribute.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Telephone/properties/elementClassAttribute.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Telephone/properties/elementErrorClassAttribute.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Telephone/validators.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Url.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Url/formEditor.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Url/formEditor/editors/100.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Url/formEditor/editors/200.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Url/formEditor/editors/400.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Url/formEditor/editors/500.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Url/formEditor/editors/700.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Url/formEditor/editors/800.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Url/formEditor/editors/900.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Url/formEditor/editors/9999.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Url/formEditor/group.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Url/formEditor/groupSorting.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Url/formEditor/iconIdentifier.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Url/formEditor/label.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Url/formEditor/propertyCollections/validators/80.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Url/formEditor/propertyCollections/validators/80/editors/100.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Url/formEditor/propertyCollections/validators/80/editors/200.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Url/formEditor/propertyCollections/validators/80/identifier.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Url/implementationClassName.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Url/properties/containerClassAttribute.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Url/properties/elementClassAttribute.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Url/properties/elementErrorClassAttribute.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Url/validators.rst [new file with mode: 0644]
typo3/sysext/form/Documentation/Config/proto/validatorsDefinition/Index.rst
typo3/sysext/form/Documentation/Config/proto/validatorsDefinition/validators/Number.rst [new file with mode: 0644]
typo3/sysext/form/Resources/Private/Backend/Partials/FormEditor/Inspector/ValidatorsEditor.html
typo3/sysext/form/Resources/Private/Frontend/Partials/Email.html [new file with mode: 0644]
typo3/sysext/form/Resources/Private/Frontend/Partials/Number.html [new file with mode: 0644]
typo3/sysext/form/Resources/Private/Frontend/Partials/Telephone.html [new file with mode: 0644]
typo3/sysext/form/Resources/Private/Frontend/Partials/Url.html [new file with mode: 0644]
typo3/sysext/form/Resources/Private/Language/Database.xlf
typo3/sysext/form/Resources/Public/Images/email.svg [new file with mode: 0644]
typo3/sysext/form/Resources/Public/Images/number.svg [new file with mode: 0644]
typo3/sysext/form/Resources/Public/Images/telephone.svg [new file with mode: 0644]
typo3/sysext/form/Resources/Public/Images/url.svg [new file with mode: 0644]
typo3/sysext/form/Resources/Public/JavaScript/Backend/FormEditor/Core.js
typo3/sysext/form/Resources/Public/JavaScript/Backend/FormEditor/InspectorComponent.js
typo3/sysext/form/Resources/Public/JavaScript/Backend/FormEditor/StageComponent.js
typo3/sysext/form/ext_localconf.php

diff --git a/typo3/sysext/core/Documentation/Changelog/master/Feature-80186-ExtFormAddHtml5Elements.rst b/typo3/sysext/core/Documentation/Changelog/master/Feature-80186-ExtFormAddHtml5Elements.rst
new file mode 100644 (file)
index 0000000..0d89d0c
--- /dev/null
@@ -0,0 +1,120 @@
+.. include:: ../../Includes.txt
+
+================================================================
+Feature: #80186 - Add HTML5 elements and improve the form editor
+================================================================
+
+See :issue:`80186`
+See :issue:`80130`
+See :issue:`80128`
+See :issue:`80127`
+See :issue:`80125`
+See :issue:`80126`
+
+Description
+===========
+
+The form editor contains new selectable form elements
+-----------------------------------------------------
+
+* email (HTML5)
+* tel (HTML5)
+* url (HTML5)
+* number (HTML5)
+
+The server side 'TYPO3\CMS\Extbase\Validation\Validator\NumberValidator' validator can be used.
+-----------------------------------------------------------------------------------------------
+
+.. code-block:: yaml
+
+    renderables:
+      -
+        type: <formElementType>
+        ...
+        validators:
+          -
+            identifier: Number
+
+If a form element is set to be required through the form editor, the html client side validation property "required" will be rendered
+-------------------------------------------------------------------------------------------------------------------------------------
+
+Result:
+
+.. code-block:: yaml
+
+    renderables:
+      -
+        type: <formElementType>
+        ...
+        properties:
+          fluidAdditionalAttributes:
+            required: 'required'
+            ...
+
+If a form element is set to use the 'String length' server side validation through the form editor, the client side validation properties 'minlength' and 'maxlength' will be rendered
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+Result:
+
+.. code-block:: yaml
+
+    renderables:
+      -
+        type: <formElementType>
+        ...
+        properties:
+          fluidAdditionalAttributes:
+            minlength: 2
+            maxlength: 3
+            ...
+        validators:
+          -
+            identifier: StringLength
+            options:
+              minimum: 2
+              maximum: 3
+
+If a form element is set to use the 'Number range' server side validation through the form editor, the client side validation properties 'min' and 'max' will be rendered
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+.. code-block:: yaml
+
+    renderables:
+      -
+        type: <formElementType>
+        ...
+        properties:
+          fluidAdditionalAttributes:
+            min: 2
+            max: 3
+            ...
+        validators:
+          -
+            identifier: NumberRange
+            options:
+              minimum: 2
+              maximum: 3
+
+The form editor is able to set the 'pattern' client side validation property
+----------------------------------------------------------------------------
+
+.. code-block:: yaml
+
+    renderables:
+      -
+        type: <formElementType>
+        ...
+        properties:
+          fluidAdditionalAttributes:
+            pattern: '^.*$'
+
+The form editor validators select list will be removed if no validators are available
+--------------------------------------------------------------------------------------
+
+
+Impact
+======
+
+It is now possible to add HTML5 elements with its needs.
+
+.. index:: Frontend, Backend, ext:form
index 99d2e75..afebdb6 100644 (file)
@@ -154,6 +154,39 @@ TYPO3:
               __inheritances:
                 10: 'TYPO3.CMS.Form.mixins.formElementMixins.FormElementMixin'
 
+            ### FORM ELEMENTS: HTML5 ###
+            Email:
+              __inheritances:
+                10: 'TYPO3.CMS.Form.mixins.formElementMixins.TextMixin'
+              validators:
+                -
+                  identifier: EmailAddress
+
+            Telephone:
+              __inheritances:
+                10: 'TYPO3.CMS.Form.mixins.formElementMixins.TextMixin'
+              validators:
+                -
+                  identifier: RegularExpression
+                  options:
+                    regularExpression: '/^.*$/'
+
+            Url:
+              __inheritances:
+                10: 'TYPO3.CMS.Form.mixins.formElementMixins.TextMixin'
+              validators:
+                -
+                  identifier: RegularExpression
+                  options:
+                    regularExpression: '/^.*$/'
+
+            Number:
+              __inheritances:
+                10: 'TYPO3.CMS.Form.mixins.formElementMixins.TextMixin'
+              validators:
+                -
+                  identifier: Number
+
             ### FORM ELEMENTS: SELECT ###
             Checkbox:
               __inheritances:
@@ -308,6 +341,8 @@ TYPO3:
               implementationClassName: 'TYPO3\CMS\Extbase\Validation\Validator\IntegerValidator'
             Float:
               implementationClassName: 'TYPO3\CMS\Extbase\Validation\Validator\FloatValidator'
+            Number:
+              implementationClassName: 'TYPO3\CMS\Extbase\Validation\Validator\NumberValidator'
             NumberRange:
               implementationClassName: 'TYPO3\CMS\Extbase\Validation\Validator\NumberRangeValidator'
               #options:
index c9dbde1..b66c86a 100644 (file)
@@ -74,6 +74,10 @@ TYPO3:
               FormElement-ContentElement: 'Stage/ContentElement'
               FormElement-FileUpload: 'Stage/FileUploadTemplate'
               FormElement-ImageUpload: 'Stage/FileUploadTemplate'
+              FormElement-Email: 'Stage/SimpleTemplate'
+              FormElement-Telephone: 'Stage/SimpleTemplate'
+              FormElement-Url: 'Stage/SimpleTemplate'
+              FormElement-Number: 'Stage/SimpleTemplate'
 
               # modals
               Modal-InsertElements: 'Modals/InsertElements'
@@ -113,6 +117,8 @@ TYPO3:
             formElementGroups:
               input:
                 label: 'formEditor.formElementGroups.input.label'
+              html5:
+                label: 'formEditor.formElementGroups.html5.label'
               select:
                 label: 'formEditor.formElementGroups.select.label'
               custom:
@@ -467,12 +473,138 @@ TYPO3:
                 groupSorting: 200
                 iconIdentifier: 't3-form-icon-textarea'
                 editors:
-                  600: null
                   900:
                     selectOptions:
                       # remove email validator
                       50: null
 
+            ### FORM ELEMENTS: HTML5 ###
+            Email:
+              formEditor:
+                label: 'formEditor.elements.Email.label'
+                group: html5
+                groupSorting: 100
+                iconIdentifier: 't3-form-icon-email'
+                predefinedDefaults:
+                  validators:
+                    -
+                      identifier: EmailAddress
+                editors:
+                  500:
+                    propertyValidators:
+                      10: 'NaiveEmailOrEmpty'
+                  900:
+                    selectOptions:
+                      20: null
+                      30: null
+                      40: null
+                      60: null
+                      70: null
+                      80: null
+                      90: null
+
+                propertyCollections:
+                  validators:
+                    40:
+                      editors:
+                        9999: null
+
+            Telephone:
+              formEditor:
+                label: 'formEditor.elements.Telephone.label'
+                group: html5
+                groupSorting: 200
+                iconIdentifier: 't3-form-icon-telephone'
+
+                editors:
+                  900:
+                    selectOptions:
+                      20: null
+                      30: null
+                      40: null
+                      50: null
+                      60: null
+                      70: null
+                      80: null
+
+                propertyCollections:
+                  validators:
+                    80:
+                      editors:
+                        9999: null
+
+            Url:
+              formEditor:
+                label: 'formEditor.elements.Url.label'
+                group: html5
+                groupSorting: 300
+                iconIdentifier: 't3-form-icon-url'
+
+                editors:
+                  900:
+                    selectOptions:
+                      20: null
+                      30: null
+                      40: null
+                      50: null
+                      60: null
+                      70: null
+                      80: null
+
+                propertyCollections:
+                  validators:
+                    80:
+                      editors:
+                        9999: null
+
+            Number:
+              formEditor:
+                label: 'formEditor.elements.Number.label'
+                group: html5
+                groupSorting: 400
+                iconIdentifier: 't3-form-icon-number'
+                predefinedDefaults:
+                  properties:
+                    fluidAdditionalAttributes:
+                      step: 1
+                  validators:
+                    -
+                      identifier: Number
+                editors:
+                  500:
+                   propertyValidators:
+                      10: 'IntegerOrEmpty'
+                  700:
+                    identifier: 'step'
+                    templateName: 'Inspector-TextEditor'
+                    label: 'formEditor.elements.TextMixin.editor.step.label'
+                    propertyPath: 'properties.fluidAdditionalAttributes.step'
+                    propertyValidators:
+                      10: 'Integer'
+
+                  900:
+                    selectOptions:
+                      20: null
+                      30: null
+                      40: null
+                      50: null
+                      60:
+                        value: 'Number'
+                        label: 'formEditor.elements.Number.editor.validators.Number.label'
+                      70: null
+                      90: null
+
+                propertyCollections:
+                  validators:
+                    60:
+                      identifier: 'Number'
+                      editors:
+                        __inheritances:
+                          10: 'TYPO3.CMS.Form.mixins.formElementMixins.BaseCollectionEditorsMixin'
+                        100:
+                          label: 'formEditor.elements.TextMixin.validators.Number.editor.header.label'
+                        9999: null
+
             ### FORM ELEMENTS: SELECT ###
             Checkbox:
               formEditor:
@@ -809,6 +941,10 @@ TYPO3:
               formEditor:
                 iconIdentifier: 't3-form-icon-validator'
                 label: 'formEditor.elements.TextMixin.editor.validators.Float.label'
+            Number:
+              formEditor:
+                iconIdentifier: 't3-form-icon-validator'
+                label: 'formEditor.elements.TextMixin.editor.validators.Number.label'
             NumberRange:
               formEditor:
                 iconIdentifier: 't3-form-icon-validator'
@@ -874,19 +1010,15 @@ TYPO3:
               templateName: 'Inspector-TextEditor'
               label: 'formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label'
               propertyPath: 'options.minimum'
-              propertyValidatorsMode: 'OR'
               propertyValidators:
                 10: 'Integer'
-                20: 'FormElementIdentifierWithinCurlyBracesExclusive'
             300:
               identifier: 'maximum'
               templateName: 'Inspector-TextEditor'
               label: 'formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label'
               propertyPath: 'options.maximum'
-              propertyValidatorsMode: 'OR'
               propertyValidators:
                 10: 'Integer'
-                20: 'FormElementIdentifierWithinCurlyBracesExclusive'
 
           ReadOnlyFormElementMixin:
             formEditor:
@@ -1043,6 +1175,12 @@ TYPO3:
                         20: 'TYPO3.CMS.Form.mixins.formElementMixins.MinimumMaximumEditorsMixin'
                       100:
                         label: 'formEditor.elements.TextMixin.validators.NumberRange.editor.header.label'
+                      200:
+                        additionalElementPropertyPaths:
+                          10: 'properties.fluidAdditionalAttributes.min'
+                      300:
+                        additionalElementPropertyPaths:
+                          10: 'properties.fluidAdditionalAttributes.max'
                   80:
                     identifier: 'RegularExpression'
                     editors:
index 263ac1d..7d020d9 100644 (file)
@@ -22,7 +22,7 @@ Full default configuration
             formEditor:
               predefinedDefaults:
                 renderingOptions:
-                  submitButtonLabel: 'formEditor.elements.Form.editor.submitButtonLabel.value'
+                  submitButtonLabel: formEditor.elements.Form.editor.submitButtonLabel.value
               editors:
                 100:
                   identifier: header
@@ -33,10 +33,10 @@ Full default configuration
                   label: formEditor.elements.BaseFormElementMixin.editor.label.label
                   propertyPath: label
                 300:
-                  identifier: 'submitButtonLabel'
-                  templateName: 'Inspector-TextEditor'
-                  label: 'formEditor.elements.Form.editor.submitButtonLabel.label'
-                  propertyPath: 'renderingOptions.submitButtonLabel'
+                  identifier: submitButtonLabel
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.Form.editor.submitButtonLabel.label
+                  propertyPath: renderingOptions.submitButtonLabel
                 900:
                   identifier: finishers
                   templateName: Inspector-FinishersEditor
@@ -404,22 +404,22 @@ Full default configuration
                   label: formEditor.elements.Page.editor.label.label
                   propertyPath: label
                 300:
-                  identifier: 'previousButtonLabel'
-                  templateName: 'Inspector-TextEditor'
-                  label: 'formEditor.elements.Page.editor.previousButtonLabel.label'
-                  propertyPath: 'renderingOptions.previousButtonLabel'
+                  identifier: previousButtonLabel
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.Page.editor.previousButtonLabel.label
+                  propertyPath: renderingOptions.previousButtonLabel
                 400:
-                  identifier: 'nextButtonLabel'
-                  templateName: 'Inspector-TextEditor'
-                  label: 'formEditor.elements.Page.editor.nextButtonLabel.label'
-                  propertyPath: 'renderingOptions.nextButtonLabel'
+                  identifier: nextButtonLabel
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.Page.editor.nextButtonLabel.label
+                  propertyPath: renderingOptions.nextButtonLabel
                 9999:
                   identifier: removeButton
                   templateName: Inspector-RemoveElementEditor
               predefinedDefaults:
                 renderingOptions:
-                  previousButtonLabel: 'formEditor.elements.Page.editor.previousButtonLabel.value'
-                  nextButtonLabel: 'formEditor.elements.Page.editor.nextButtonLabel.value'
+                  previousButtonLabel: formEditor.elements.Page.editor.previousButtonLabel.value
+                  nextButtonLabel: formEditor.elements.Page.editor.nextButtonLabel.value
               label: formEditor.elements.Page.label
               group: page
               groupSorting: 100
@@ -444,22 +444,22 @@ Full default configuration
                   label: formEditor.elements.SummaryPage.editor.label.label
                   propertyPath: label
                 300:
-                  identifier: 'previousButtonLabel'
-                  templateName: 'Inspector-TextEditor'
-                  label: 'formEditor.elements.SummaryPage.editor.previousButtonLabel.label'
-                  propertyPath: 'renderingOptions.previousButtonLabel'
+                  identifier: previousButtonLabel
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.SummaryPage.editor.previousButtonLabel.label
+                  propertyPath: renderingOptions.previousButtonLabel
                 400:
-                  identifier: 'nextButtonLabel'
-                  templateName: 'Inspector-TextEditor'
-                  label: 'formEditor.elements.SummaryPage.editor.nextButtonLabel.label'
-                  propertyPath: 'renderingOptions.nextButtonLabel'
+                  identifier: nextButtonLabel
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.SummaryPage.editor.nextButtonLabel.label
+                  propertyPath: renderingOptions.nextButtonLabel
                 9999:
                   identifier: removeButton
                   templateName: Inspector-RemoveElementEditor
               predefinedDefaults:
                 renderingOptions:
-                  previousButtonLabel: 'formEditor.elements.SummaryPage.editor.previousButtonLabel.value'
-                  nextButtonLabel: 'formEditor.elements.SummaryPage.editor.nextButtonLabel.value'
+                  previousButtonLabel: formEditor.elements.SummaryPage.editor.previousButtonLabel.value
+                  nextButtonLabel: formEditor.elements.SummaryPage.editor.nextButtonLabel.value
               label: formEditor.elements.SummaryPage.label
               group: page
               groupSorting: 200
@@ -559,8 +559,6 @@ Full default configuration
                   templateName: Inspector-RemoveElementEditor
               predefinedDefaults: {  }
               label: formEditor.elements.GridContainer.label
-              group: container
-              groupSorting: 200
               _isCompositeFormElement: true
               _isGridContainerFormElement: true
               iconIdentifier: t3-form-icon-gridcontainer
@@ -661,13 +659,19 @@ Full default configuration
                   templateName: Inspector-TextEditor
                   label: formEditor.elements.TextMixin.editor.placeholder.label
                   propertyPath: properties.fluidAdditionalAttributes.placeholder
-                  compatibilityPropertyPath: properties.placeholder
                   doNotSetIfPropertyValueIsEmpty: true
                 500:
                   identifier: defaultValue
                   templateName: Inspector-TextEditor
                   label: formEditor.elements.TextMixin.editor.defaultValue.label
                   propertyPath: defaultValue
+                600:
+                  identifier: pattern
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.TextMixin.editor.pattern.label
+                  propertyPath: properties.fluidAdditionalAttributes.pattern
+                  fieldExplanationText: formEditor.elements.TextMixin.editor.pattern.fieldExplanationText
+                  doNotSetIfPropertyValueIsEmpty: true
                 700:
                   identifier: gridColumnViewPortConfiguration
                   templateName: Inspector-GridColumnViewPortConfigurationEditor
@@ -768,10 +772,8 @@ Full default configuration
                         templateName: Inspector-TextEditor
                         label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                         propertyPath: options.minimum
-                        propertyValidatorsMode: OR
                         propertyValidators:
                           10: Integer
-                          20: FormElementIdentifierWithinCurlyBracesExclusive
                         additionalElementPropertyPaths:
                           10: properties.fluidAdditionalAttributes.minlength
                       300:
@@ -779,10 +781,8 @@ Full default configuration
                         templateName: Inspector-TextEditor
                         label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                         propertyPath: options.maximum
-                        propertyValidatorsMode: OR
                         propertyValidators:
                           10: Integer
-                          20: FormElementIdentifierWithinCurlyBracesExclusive
                         additionalElementPropertyPaths:
                           10: properties.fluidAdditionalAttributes.maxlength
                       9999:
@@ -830,19 +830,19 @@ Full default configuration
                         templateName: Inspector-TextEditor
                         label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                         propertyPath: options.minimum
-                        propertyValidatorsMode: OR
                         propertyValidators:
                           10: Integer
-                          20: FormElementIdentifierWithinCurlyBracesExclusive
+                        additionalElementPropertyPaths:
+                          10: properties.fluidAdditionalAttributes.min
                       300:
                         identifier: maximum
                         templateName: Inspector-TextEditor
                         label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                         propertyPath: options.maximum
-                        propertyValidatorsMode: OR
                         propertyValidators:
                           10: Integer
-                          20: FormElementIdentifierWithinCurlyBracesExclusive
+                        additionalElementPropertyPaths:
+                          10: properties.fluidAdditionalAttributes.max
                       9999:
                         identifier: removeButton
                         templateName: Inspector-RemoveElementEditor
@@ -889,13 +889,19 @@ Full default configuration
                   templateName: Inspector-TextEditor
                   label: formEditor.elements.TextMixin.editor.placeholder.label
                   propertyPath: properties.fluidAdditionalAttributes.placeholder
-                  compatibilityPropertyPath: properties.placeholder
                   doNotSetIfPropertyValueIsEmpty: true
                 500:
                   identifier: defaultValue
                   templateName: Inspector-TextEditor
                   label: formEditor.elements.TextMixin.editor.defaultValue.label
                   propertyPath: defaultValue
+                600:
+                  identifier: pattern
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.TextMixin.editor.pattern.label
+                  propertyPath: properties.fluidAdditionalAttributes.pattern
+                  fieldExplanationText: formEditor.elements.TextMixin.editor.pattern.fieldExplanationText
+                  doNotSetIfPropertyValueIsEmpty: true
                 700:
                   identifier: gridColumnViewPortConfiguration
                   templateName: Inspector-GridColumnViewPortConfigurationEditor
@@ -996,10 +1002,8 @@ Full default configuration
                         templateName: Inspector-TextEditor
                         label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                         propertyPath: options.minimum
-                        propertyValidatorsMode: OR
                         propertyValidators:
                           10: Integer
-                          20: FormElementIdentifierWithinCurlyBracesExclusive
                         additionalElementPropertyPaths:
                           10: properties.fluidAdditionalAttributes.minlength
                       300:
@@ -1007,10 +1011,8 @@ Full default configuration
                         templateName: Inspector-TextEditor
                         label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                         propertyPath: options.maximum
-                        propertyValidatorsMode: OR
                         propertyValidators:
                           10: Integer
-                          20: FormElementIdentifierWithinCurlyBracesExclusive
                         additionalElementPropertyPaths:
                           10: properties.fluidAdditionalAttributes.maxlength
                       9999:
@@ -1058,19 +1060,1183 @@ Full default configuration
                         templateName: Inspector-TextEditor
                         label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                         propertyPath: options.minimum
-                        propertyValidatorsMode: OR
                         propertyValidators:
                           10: Integer
-                          20: FormElementIdentifierWithinCurlyBracesExclusive
+                        additionalElementPropertyPaths:
+                          10: properties.fluidAdditionalAttributes.min
+                      300:
+                        identifier: maximum
+                        templateName: Inspector-TextEditor
+                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
+                        propertyPath: options.maximum
+                        propertyValidators:
+                          10: Integer
+                        additionalElementPropertyPaths:
+                          10: properties.fluidAdditionalAttributes.max
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  80:
+                    identifier: RegularExpression
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.RegularExpression.editor.header.label
+                      200:
+                        identifier: regex
+                        templateName: Inspector-TextEditor
+                        label: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.label
+                        fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.fieldExplanationText
+                        propertyPath: options.regularExpression
+                        propertyValidators:
+                          10: NotEmpty
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+              label: formEditor.elements.Password.label
+              group: input
+              groupSorting: 300
+              iconIdentifier: t3-form-icon-password
+            implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
+            properties:
+              containerClassAttribute: input
+              elementClassAttribute: ''
+              elementErrorClassAttribute: error
+          AdvancedPassword:
+            formEditor:
+              editors:
+                100:
+                  identifier: header
+                  templateName: Inspector-FormElementHeaderEditor
+                200:
+                  identifier: label
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.FormElement.editor.label.label
+                  propertyPath: label
+                300:
+                  identifier: confirmationLabel
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.AdvancedPassword.editor.confirmationLabel.label
+                  propertyPath: properties.confirmationLabel
+                400:
+                  identifier: placeholder
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.TextMixin.editor.placeholder.label
+                  propertyPath: properties.fluidAdditionalAttributes.placeholder
+                  doNotSetIfPropertyValueIsEmpty: true
+                600:
+                  identifier: pattern
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.TextMixin.editor.pattern.label
+                  propertyPath: properties.fluidAdditionalAttributes.pattern
+                  fieldExplanationText: formEditor.elements.TextMixin.editor.pattern.fieldExplanationText
+                  doNotSetIfPropertyValueIsEmpty: true
+                700:
+                  identifier: gridColumnViewPortConfiguration
+                  templateName: Inspector-GridColumnViewPortConfigurationEditor
+                  label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
+                  configurationOptions:
+                    viewPorts:
+                      10:
+                        viewPortIdentifier: xs
+                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
+                      20:
+                        viewPortIdentifier: sm
+                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
+                      30:
+                        viewPortIdentifier: md
+                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
+                      40:
+                        viewPortIdentifier: lg
+                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
+                    numbersOfColumnsToUse:
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
+                      propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
+                      fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
+                800:
+                  identifier: requiredValidator
+                  templateName: Inspector-RequiredValidatorEditor
+                  label: formEditor.elements.FormElement.editor.requiredValidator.label
+                  validatorIdentifier: NotEmpty
+                  propertyPath: properties.fluidAdditionalAttributes.required
+                  propertyValue: required
+                900:
+                  identifier: validators
+                  templateName: Inspector-ValidatorsEditor
+                  label: formEditor.elements.TextMixin.editor.validators.label
+                  selectOptions:
+                    10:
+                      value: ''
+                      label: formEditor.elements.TextMixin.editor.validators.EmptyValue.label
+                    20:
+                      value: Alphanumeric
+                      label: formEditor.elements.TextMixin.editor.validators.Alphanumeric.label
+                    30:
+                      value: Text
+                      label: formEditor.elements.TextMixin.editor.validators.Text.label
+                    40:
+                      value: StringLength
+                      label: formEditor.elements.TextMixin.editor.validators.StringLength.label
+                    50:
+                      value: EmailAddress
+                      label: formEditor.elements.TextMixin.editor.validators.EmailAddress.label
+                    60:
+                      value: Integer
+                      label: formEditor.elements.TextMixin.editor.validators.Integer.label
+                    70:
+                      value: Float
+                      label: formEditor.elements.TextMixin.editor.validators.Float.label
+                    80:
+                      value: NumberRange
+                      label: formEditor.elements.TextMixin.editor.validators.NumberRange.label
+                    90:
+                      value: RegularExpression
+                      label: formEditor.elements.TextMixin.editor.validators.RegularExpression.label
+                9999:
+                  identifier: removeButton
+                  templateName: Inspector-RemoveElementEditor
+              predefinedDefaults:
+                properties:
+                  confirmationLabel: formEditor.element.AdvancedPassword.editor.confirmationLabel.predefinedDefaults
+              propertyCollections:
+                validators:
+                  10:
+                    identifier: Alphanumeric
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.header.label
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  20:
+                    identifier: Text
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.Text.editor.header.label
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  30:
+                    identifier: StringLength
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.StringLength.editor.header.label
+                      200:
+                        identifier: minimum
+                        templateName: Inspector-TextEditor
+                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
+                        propertyPath: options.minimum
+                        propertyValidators:
+                          10: Integer
+                        additionalElementPropertyPaths:
+                          10: properties.fluidAdditionalAttributes.minlength
+                      300:
+                        identifier: maximum
+                        templateName: Inspector-TextEditor
+                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
+                        propertyPath: options.maximum
+                        propertyValidators:
+                          10: Integer
+                        additionalElementPropertyPaths:
+                          10: properties.fluidAdditionalAttributes.maxlength
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  40:
+                    identifier: EmailAddress
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.EmailAddress.editor.header.label
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  50:
+                    identifier: Integer
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.Integer.editor.header.label
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  60:
+                    identifier: Float
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.Float.editor.header.label
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  70:
+                    identifier: NumberRange
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.NumberRange.editor.header.label
+                      200:
+                        identifier: minimum
+                        templateName: Inspector-TextEditor
+                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
+                        propertyPath: options.minimum
+                        propertyValidators:
+                          10: Integer
+                        additionalElementPropertyPaths:
+                          10: properties.fluidAdditionalAttributes.min
+                      300:
+                        identifier: maximum
+                        templateName: Inspector-TextEditor
+                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
+                        propertyPath: options.maximum
+                        propertyValidators:
+                          10: Integer
+                        additionalElementPropertyPaths:
+                          10: properties.fluidAdditionalAttributes.max
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  80:
+                    identifier: RegularExpression
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.RegularExpression.editor.header.label
+                      200:
+                        identifier: regex
+                        templateName: Inspector-TextEditor
+                        label: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.label
+                        fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.fieldExplanationText
+                        propertyPath: options.regularExpression
+                        propertyValidators:
+                          10: NotEmpty
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+              label: formEditor.elements.AdvancedPassword.label
+              group: custom
+              groupSorting: 500
+              iconIdentifier: t3-form-icon-advanced-password
+            implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
+            properties:
+              containerClassAttribute: input
+              elementClassAttribute: input-medium
+              elementErrorClassAttribute: error
+              confirmationLabel: ''
+              confirmationClassAttribute: input-medium
+          Textarea:
+            formEditor:
+              editors:
+                100:
+                  identifier: header
+                  templateName: Inspector-FormElementHeaderEditor
+                200:
+                  identifier: label
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.FormElement.editor.label.label
+                  propertyPath: label
+                400:
+                  identifier: placeholder
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.TextMixin.editor.placeholder.label
+                  propertyPath: properties.fluidAdditionalAttributes.placeholder
+                  doNotSetIfPropertyValueIsEmpty: true
+                500:
+                  identifier: defaultValue
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.TextMixin.editor.defaultValue.label
+                  propertyPath: defaultValue
+                700:
+                  identifier: gridColumnViewPortConfiguration
+                  templateName: Inspector-GridColumnViewPortConfigurationEditor
+                  label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
+                  configurationOptions:
+                    viewPorts:
+                      10:
+                        viewPortIdentifier: xs
+                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
+                      20:
+                        viewPortIdentifier: sm
+                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
+                      30:
+                        viewPortIdentifier: md
+                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
+                      40:
+                        viewPortIdentifier: lg
+                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
+                    numbersOfColumnsToUse:
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
+                      propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
+                      fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
+                800:
+                  identifier: requiredValidator
+                  templateName: Inspector-RequiredValidatorEditor
+                  label: formEditor.elements.FormElement.editor.requiredValidator.label
+                  validatorIdentifier: NotEmpty
+                  propertyPath: properties.fluidAdditionalAttributes.required
+                  propertyValue: required
+                900:
+                  identifier: validators
+                  templateName: Inspector-ValidatorsEditor
+                  label: formEditor.elements.TextMixin.editor.validators.label
+                  selectOptions:
+                    10:
+                      value: ''
+                      label: formEditor.elements.TextMixin.editor.validators.EmptyValue.label
+                    20:
+                      value: Alphanumeric
+                      label: formEditor.elements.TextMixin.editor.validators.Alphanumeric.label
+                    30:
+                      value: Text
+                      label: formEditor.elements.TextMixin.editor.validators.Text.label
+                    40:
+                      value: StringLength
+                      label: formEditor.elements.TextMixin.editor.validators.StringLength.label
+                    60:
+                      value: Integer
+                      label: formEditor.elements.TextMixin.editor.validators.Integer.label
+                    70:
+                      value: Float
+                      label: formEditor.elements.TextMixin.editor.validators.Float.label
+                    80:
+                      value: NumberRange
+                      label: formEditor.elements.TextMixin.editor.validators.NumberRange.label
+                    90:
+                      value: RegularExpression
+                      label: formEditor.elements.TextMixin.editor.validators.RegularExpression.label
+                9999:
+                  identifier: removeButton
+                  templateName: Inspector-RemoveElementEditor
+              predefinedDefaults:
+                defaultValue: ''
+              propertyCollections:
+                validators:
+                  10:
+                    identifier: Alphanumeric
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.header.label
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  20:
+                    identifier: Text
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.Text.editor.header.label
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  30:
+                    identifier: StringLength
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.StringLength.editor.header.label
+                      200:
+                        identifier: minimum
+                        templateName: Inspector-TextEditor
+                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
+                        propertyPath: options.minimum
+                        propertyValidators:
+                          10: Integer
+                        additionalElementPropertyPaths:
+                          10: properties.fluidAdditionalAttributes.minlength
+                      300:
+                        identifier: maximum
+                        templateName: Inspector-TextEditor
+                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
+                        propertyPath: options.maximum
+                        propertyValidators:
+                          10: Integer
+                        additionalElementPropertyPaths:
+                          10: properties.fluidAdditionalAttributes.maxlength
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  40:
+                    identifier: EmailAddress
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.EmailAddress.editor.header.label
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  50:
+                    identifier: Integer
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.Integer.editor.header.label
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  60:
+                    identifier: Float
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.Float.editor.header.label
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  70:
+                    identifier: NumberRange
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.NumberRange.editor.header.label
+                      200:
+                        identifier: minimum
+                        templateName: Inspector-TextEditor
+                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
+                        propertyPath: options.minimum
+                        propertyValidators:
+                          10: Integer
+                        additionalElementPropertyPaths:
+                          10: properties.fluidAdditionalAttributes.min
+                      300:
+                        identifier: maximum
+                        templateName: Inspector-TextEditor
+                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
+                        propertyPath: options.maximum
+                        propertyValidators:
+                          10: Integer
+                        additionalElementPropertyPaths:
+                          10: properties.fluidAdditionalAttributes.max
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  80:
+                    identifier: RegularExpression
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.RegularExpression.editor.header.label
+                      200:
+                        identifier: regex
+                        templateName: Inspector-TextEditor
+                        label: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.label
+                        fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.fieldExplanationText
+                        propertyPath: options.regularExpression
+                        propertyValidators:
+                          10: NotEmpty
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+              label: formEditor.elements.Textarea.label
+              group: input
+              groupSorting: 200
+              iconIdentifier: t3-form-icon-textarea
+            implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
+            properties:
+              containerClassAttribute: input
+              elementClassAttribute: xxlarge
+              elementErrorClassAttribute: error
+          Honeypot:
+            formEditor:
+              editors:
+                100:
+                  identifier: header
+                  templateName: Inspector-FormElementHeaderEditor
+                200:
+                  identifier: label
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.FormElement.editor.label.label
+                  propertyPath: label
+                400:
+                  identifier: placeholder
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.TextMixin.editor.placeholder.label
+                  propertyPath: properties.fluidAdditionalAttributes.placeholder
+                  doNotSetIfPropertyValueIsEmpty: true
+                500:
+                  identifier: defaultValue
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.TextMixin.editor.defaultValue.label
+                  propertyPath: defaultValue
+                600:
+                  identifier: pattern
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.TextMixin.editor.pattern.label
+                  propertyPath: properties.fluidAdditionalAttributes.pattern
+                  fieldExplanationText: formEditor.elements.TextMixin.editor.pattern.fieldExplanationText
+                  doNotSetIfPropertyValueIsEmpty: true
+                700:
+                  identifier: gridColumnViewPortConfiguration
+                  templateName: Inspector-GridColumnViewPortConfigurationEditor
+                  label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
+                  configurationOptions:
+                    viewPorts:
+                      10:
+                        viewPortIdentifier: xs
+                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
+                      20:
+                        viewPortIdentifier: sm
+                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
+                      30:
+                        viewPortIdentifier: md
+                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
+                      40:
+                        viewPortIdentifier: lg
+                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
+                    numbersOfColumnsToUse:
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
+                      propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
+                      fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
+                800:
+                  identifier: requiredValidator
+                  templateName: Inspector-RequiredValidatorEditor
+                  label: formEditor.elements.FormElement.editor.requiredValidator.label
+                  validatorIdentifier: NotEmpty
+                  propertyPath: properties.fluidAdditionalAttributes.required
+                  propertyValue: required
+                900:
+                  identifier: validators
+                  templateName: Inspector-ValidatorsEditor
+                  label: formEditor.elements.TextMixin.editor.validators.label
+                  selectOptions:
+                    10:
+                      value: ''
+                      label: formEditor.elements.TextMixin.editor.validators.EmptyValue.label
+                    20:
+                      value: Alphanumeric
+                      label: formEditor.elements.TextMixin.editor.validators.Alphanumeric.label
+                    30:
+                      value: Text
+                      label: formEditor.elements.TextMixin.editor.validators.Text.label
+                    40:
+                      value: StringLength
+                      label: formEditor.elements.TextMixin.editor.validators.StringLength.label
+                    50:
+                      value: EmailAddress
+                      label: formEditor.elements.TextMixin.editor.validators.EmailAddress.label
+                    60:
+                      value: Integer
+                      label: formEditor.elements.TextMixin.editor.validators.Integer.label
+                    70:
+                      value: Float
+                      label: formEditor.elements.TextMixin.editor.validators.Float.label
+                    80:
+                      value: NumberRange
+                      label: formEditor.elements.TextMixin.editor.validators.NumberRange.label
+                    90:
+                      value: RegularExpression
+                      label: formEditor.elements.TextMixin.editor.validators.RegularExpression.label
+                9999:
+                  identifier: removeButton
+                  templateName: Inspector-RemoveElementEditor
+              predefinedDefaults:
+                defaultValue: ''
+              propertyCollections:
+                validators:
+                  10:
+                    identifier: Alphanumeric
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.header.label
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  20:
+                    identifier: Text
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.Text.editor.header.label
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  30:
+                    identifier: StringLength
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.StringLength.editor.header.label
+                      200:
+                        identifier: minimum
+                        templateName: Inspector-TextEditor
+                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
+                        propertyPath: options.minimum
+                        propertyValidators:
+                          10: Integer
+                        additionalElementPropertyPaths:
+                          10: properties.fluidAdditionalAttributes.minlength
+                      300:
+                        identifier: maximum
+                        templateName: Inspector-TextEditor
+                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
+                        propertyPath: options.maximum
+                        propertyValidators:
+                          10: Integer
+                        additionalElementPropertyPaths:
+                          10: properties.fluidAdditionalAttributes.maxlength
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  40:
+                    identifier: EmailAddress
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.EmailAddress.editor.header.label
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  50:
+                    identifier: Integer
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.Integer.editor.header.label
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  60:
+                    identifier: Float
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.Float.editor.header.label
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  70:
+                    identifier: NumberRange
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.NumberRange.editor.header.label
+                      200:
+                        identifier: minimum
+                        templateName: Inspector-TextEditor
+                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
+                        propertyPath: options.minimum
+                        propertyValidators:
+                          10: Integer
+                        additionalElementPropertyPaths:
+                          10: properties.fluidAdditionalAttributes.min
+                      300:
+                        identifier: maximum
+                        templateName: Inspector-TextEditor
+                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
+                        propertyPath: options.maximum
+                        propertyValidators:
+                          10: Integer
+                        additionalElementPropertyPaths:
+                          10: properties.fluidAdditionalAttributes.max
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  80:
+                    identifier: RegularExpression
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.RegularExpression.editor.header.label
+                      200:
+                        identifier: regex
+                        templateName: Inspector-TextEditor
+                        label: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.label
+                        fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.fieldExplanationText
+                        propertyPath: options.regularExpression
+                        propertyValidators:
+                          10: NotEmpty
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+            implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
+            properties:
+              containerClassAttribute: input
+              elementClassAttribute: ''
+              elementErrorClassAttribute: error
+              renderAsHiddenField: false
+              styleAttribute: 'position:absolute; margin:0 0 0 -999em;'
+          Hidden:
+            formEditor:
+              editors:
+                100:
+                  identifier: header
+                  templateName: Inspector-FormElementHeaderEditor
+                200:
+                  identifier: label
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.FormElement.editor.label.label
+                  propertyPath: label
+                300:
+                  identifier: defaultValue
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.Hidden.editor.defaultValue.label
+                  propertyPath: defaultValue
+                700:
+                  identifier: gridColumnViewPortConfiguration
+                  templateName: Inspector-GridColumnViewPortConfigurationEditor
+                  label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
+                  configurationOptions:
+                    viewPorts:
+                      10:
+                        viewPortIdentifier: xs
+                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
+                      20:
+                        viewPortIdentifier: sm
+                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
+                      30:
+                        viewPortIdentifier: md
+                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
+                      40:
+                        viewPortIdentifier: lg
+                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
+                    numbersOfColumnsToUse:
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
+                      propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
+                      fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
+                9999:
+                  identifier: removeButton
+                  templateName: Inspector-RemoveElementEditor
+              predefinedDefaults:
+                defaultValue: ''
+              label: formEditor.elements.Hidden.label
+              group: custom
+              groupSorting: 300
+              iconIdentifier: t3-form-icon-hidden
+            implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
+            properties:
+              containerClassAttribute: input
+              elementClassAttribute: ''
+              elementErrorClassAttribute: error
+          Email:
+            formEditor:
+              editors:
+                100:
+                  identifier: header
+                  templateName: Inspector-FormElementHeaderEditor
+                200:
+                  identifier: label
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.FormElement.editor.label.label
+                  propertyPath: label
+                400:
+                  identifier: placeholder
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.TextMixin.editor.placeholder.label
+                  propertyPath: properties.fluidAdditionalAttributes.placeholder
+                  doNotSetIfPropertyValueIsEmpty: true
+                500:
+                  identifier: defaultValue
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.TextMixin.editor.defaultValue.label
+                  propertyPath: defaultValue
+                  propertyValidators:
+                    10: NaiveEmailOrEmpty
+                600:
+                  identifier: pattern
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.TextMixin.editor.pattern.label
+                  propertyPath: properties.fluidAdditionalAttributes.pattern
+                  fieldExplanationText: formEditor.elements.TextMixin.editor.pattern.fieldExplanationText
+                  doNotSetIfPropertyValueIsEmpty: true
+                700:
+                  identifier: gridColumnViewPortConfiguration
+                  templateName: Inspector-GridColumnViewPortConfigurationEditor
+                  label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
+                  configurationOptions:
+                    viewPorts:
+                      10:
+                        viewPortIdentifier: xs
+                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
+                      20:
+                        viewPortIdentifier: sm
+                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
+                      30:
+                        viewPortIdentifier: md
+                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
+                      40:
+                        viewPortIdentifier: lg
+                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
+                    numbersOfColumnsToUse:
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
+                      propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
+                      fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
+                800:
+                  identifier: requiredValidator
+                  templateName: Inspector-RequiredValidatorEditor
+                  label: formEditor.elements.FormElement.editor.requiredValidator.label
+                  validatorIdentifier: NotEmpty
+                  propertyPath: properties.fluidAdditionalAttributes.required
+                  propertyValue: required
+                900:
+                  identifier: validators
+                  templateName: Inspector-ValidatorsEditor
+                  label: formEditor.elements.TextMixin.editor.validators.label
+                  selectOptions:
+                    10:
+                      value: ''
+                      label: formEditor.elements.TextMixin.editor.validators.EmptyValue.label
+                    50:
+                      value: EmailAddress
+                      label: formEditor.elements.TextMixin.editor.validators.EmailAddress.label
+                9999:
+                  identifier: removeButton
+                  templateName: Inspector-RemoveElementEditor
+              predefinedDefaults:
+                defaultValue: ''
+                validators:
+                  -
+                    identifier: EmailAddress
+              propertyCollections:
+                validators:
+                  10:
+                    identifier: Alphanumeric
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.header.label
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  20:
+                    identifier: Text
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.Text.editor.header.label
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  30:
+                    identifier: StringLength
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.StringLength.editor.header.label
+                      200:
+                        identifier: minimum
+                        templateName: Inspector-TextEditor
+                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
+                        propertyPath: options.minimum
+                        propertyValidators:
+                          10: Integer
+                        additionalElementPropertyPaths:
+                          10: properties.fluidAdditionalAttributes.minlength
+                      300:
+                        identifier: maximum
+                        templateName: Inspector-TextEditor
+                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
+                        propertyPath: options.maximum
+                        propertyValidators:
+                          10: Integer
+                        additionalElementPropertyPaths:
+                          10: properties.fluidAdditionalAttributes.maxlength
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  40:
+                    identifier: EmailAddress
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.EmailAddress.editor.header.label
+                  50:
+                    identifier: Integer
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.Integer.editor.header.label
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  60:
+                    identifier: Float
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.Float.editor.header.label
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  70:
+                    identifier: NumberRange
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.NumberRange.editor.header.label
+                      200:
+                        identifier: minimum
+                        templateName: Inspector-TextEditor
+                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
+                        propertyPath: options.minimum
+                        propertyValidators:
+                          10: Integer
+                        additionalElementPropertyPaths:
+                          10: properties.fluidAdditionalAttributes.min
+                      300:
+                        identifier: maximum
+                        templateName: Inspector-TextEditor
+                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
+                        propertyPath: options.maximum
+                        propertyValidators:
+                          10: Integer
+                        additionalElementPropertyPaths:
+                          10: properties.fluidAdditionalAttributes.max
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  80:
+                    identifier: RegularExpression
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.RegularExpression.editor.header.label
+                      200:
+                        identifier: regex
+                        templateName: Inspector-TextEditor
+                        label: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.label
+                        fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.fieldExplanationText
+                        propertyPath: options.regularExpression
+                        propertyValidators:
+                          10: NotEmpty
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+              label: formEditor.elements.Email.label
+              group: html5
+              groupSorting: 100
+              iconIdentifier: t3-form-icon-email
+            implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
+            properties:
+              containerClassAttribute: input
+              elementClassAttribute: ''
+              elementErrorClassAttribute: error
+            validators:
+              -
+                identifier: EmailAddress
+          Telephone:
+            formEditor:
+              editors:
+                100:
+                  identifier: header
+                  templateName: Inspector-FormElementHeaderEditor
+                200:
+                  identifier: label
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.FormElement.editor.label.label
+                  propertyPath: label
+                400:
+                  identifier: placeholder
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.TextMixin.editor.placeholder.label
+                  propertyPath: properties.fluidAdditionalAttributes.placeholder
+                  doNotSetIfPropertyValueIsEmpty: true
+                500:
+                  identifier: defaultValue
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.TextMixin.editor.defaultValue.label
+                  propertyPath: defaultValue
+                600:
+                  identifier: pattern
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.TextMixin.editor.pattern.label
+                  propertyPath: properties.fluidAdditionalAttributes.pattern
+                  fieldExplanationText: formEditor.elements.TextMixin.editor.pattern.fieldExplanationText
+                  doNotSetIfPropertyValueIsEmpty: true
+                700:
+                  identifier: gridColumnViewPortConfiguration
+                  templateName: Inspector-GridColumnViewPortConfigurationEditor
+                  label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
+                  configurationOptions:
+                    viewPorts:
+                      10:
+                        viewPortIdentifier: xs
+                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
+                      20:
+                        viewPortIdentifier: sm
+                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
+                      30:
+                        viewPortIdentifier: md
+                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
+                      40:
+                        viewPortIdentifier: lg
+                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
+                    numbersOfColumnsToUse:
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
+                      propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
+                      fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
+                800:
+                  identifier: requiredValidator
+                  templateName: Inspector-RequiredValidatorEditor
+                  label: formEditor.elements.FormElement.editor.requiredValidator.label
+                  validatorIdentifier: NotEmpty
+                  propertyPath: properties.fluidAdditionalAttributes.required
+                  propertyValue: required
+                900:
+                  identifier: validators
+                  templateName: Inspector-ValidatorsEditor
+                  label: formEditor.elements.TextMixin.editor.validators.label
+                  selectOptions:
+                    10:
+                      value: ''
+                      label: formEditor.elements.TextMixin.editor.validators.EmptyValue.label
+                    90:
+                      value: RegularExpression
+                      label: formEditor.elements.TextMixin.editor.validators.RegularExpression.label
+                9999:
+                  identifier: removeButton
+                  templateName: Inspector-RemoveElementEditor
+              predefinedDefaults:
+                defaultValue: ''
+                properties:
+                  fluidAdditionalAttributes:
+                    pattern: '.*'
+                validators:
+                  -
+                    identifier: RegularExpression
+                    options:
+                      regularExpression: '/^.*$/'
+              propertyCollections:
+                validators:
+                  10:
+                    identifier: Alphanumeric
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.header.label
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  20:
+                    identifier: Text
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.Text.editor.header.label
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  30:
+                    identifier: StringLength
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.StringLength.editor.header.label
+                      200:
+                        identifier: minimum
+                        templateName: Inspector-TextEditor
+                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
+                        propertyPath: options.minimum
+                        propertyValidators:
+                          10: Integer
+                        additionalElementPropertyPaths:
+                          10: properties.fluidAdditionalAttributes.minlength
+                      300:
+                        identifier: maximum
+                        templateName: Inspector-TextEditor
+                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
+                        propertyPath: options.maximum
+                        propertyValidators:
+                          10: Integer
+                        additionalElementPropertyPaths:
+                          10: properties.fluidAdditionalAttributes.maxlength
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  40:
+                    identifier: EmailAddress
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.EmailAddress.editor.header.label
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  50:
+                    identifier: Integer
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.Integer.editor.header.label
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  60:
+                    identifier: Float
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.Float.editor.header.label
+                      9999:
+                        identifier: removeButton
+                        templateName: Inspector-RemoveElementEditor
+                  70:
+                    identifier: NumberRange
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.NumberRange.editor.header.label
+                      200:
+                        identifier: minimum
+                        templateName: Inspector-TextEditor
+                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
+                        propertyPath: options.minimum
+                        propertyValidators:
+                          10: Integer
+                        additionalElementPropertyPaths:
+                          10: properties.fluidAdditionalAttributes.min
                       300:
                         identifier: maximum
                         templateName: Inspector-TextEditor
                         label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                         propertyPath: options.maximum
-                        propertyValidatorsMode: OR
                         propertyValidators:
                           10: Integer
-                          20: FormElementIdentifierWithinCurlyBracesExclusive
+                        additionalElementPropertyPaths:
+                          10: properties.fluidAdditionalAttributes.max
                       9999:
                         identifier: removeButton
                         templateName: Inspector-RemoveElementEditor
@@ -1089,19 +2255,21 @@ Full default configuration
                         propertyPath: options.regularExpression
                         propertyValidators:
                           10: NotEmpty
-                      9999:
-                        identifier: removeButton
-                        templateName: Inspector-RemoveElementEditor
-              label: formEditor.elements.Password.label
-              group: input
-              groupSorting: 300
-              iconIdentifier: t3-form-icon-password
+              label: formEditor.elements.Telephone.label
+              group: html5
+              groupSorting: 200
+              iconIdentifier: t3-form-icon-telephone
             implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
             properties:
               containerClassAttribute: input
               elementClassAttribute: ''
               elementErrorClassAttribute: error
-          AdvancedPassword:
+            validators:
+              -
+                identifier: RegularExpression
+                options:
+                  regularExpression: '/^.*$/'
+          Url:
             formEditor:
               editors:
                 100:
@@ -1112,17 +2280,23 @@ Full default configuration
                   templateName: Inspector-TextEditor
                   label: formEditor.elements.FormElement.editor.label.label
                   propertyPath: label
-                300:
-                  identifier: confirmationLabel
-                  templateName: Inspector-TextEditor
-                  label: formEditor.elements.AdvancedPassword.editor.confirmationLabel.label
-                  propertyPath: properties.confirmationLabel
                 400:
                   identifier: placeholder
                   templateName: Inspector-TextEditor
                   label: formEditor.elements.TextMixin.editor.placeholder.label
                   propertyPath: properties.fluidAdditionalAttributes.placeholder
-                  compatibilityPropertyPath: properties.placeholder
+                  doNotSetIfPropertyValueIsEmpty: true
+                500:
+                  identifier: defaultValue
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.TextMixin.editor.defaultValue.label
+                  propertyPath: defaultValue
+                600:
+                  identifier: pattern
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.TextMixin.editor.pattern.label
+                  propertyPath: properties.fluidAdditionalAttributes.pattern
+                  fieldExplanationText: formEditor.elements.TextMixin.editor.pattern.fieldExplanationText
                   doNotSetIfPropertyValueIsEmpty: true
                 700:
                   identifier: gridColumnViewPortConfiguration
@@ -1161,27 +2335,6 @@ Full default configuration
                     10:
                       value: ''
                       label: formEditor.elements.TextMixin.editor.validators.EmptyValue.label
-                    20:
-                      value: Alphanumeric
-                      label: formEditor.elements.TextMixin.editor.validators.Alphanumeric.label
-                    30:
-                      value: Text
-                      label: formEditor.elements.TextMixin.editor.validators.Text.label
-                    40:
-                      value: StringLength
-                      label: formEditor.elements.TextMixin.editor.validators.StringLength.label
-                    50:
-                      value: EmailAddress
-                      label: formEditor.elements.TextMixin.editor.validators.EmailAddress.label
-                    60:
-                      value: Integer
-                      label: formEditor.elements.TextMixin.editor.validators.Integer.label
-                    70:
-                      value: Float
-                      label: formEditor.elements.TextMixin.editor.validators.Float.label
-                    80:
-                      value: NumberRange
-                      label: formEditor.elements.TextMixin.editor.validators.NumberRange.label
                     90:
                       value: RegularExpression
                       label: formEditor.elements.TextMixin.editor.validators.RegularExpression.label
@@ -1189,8 +2342,15 @@ Full default configuration
                   identifier: removeButton
                   templateName: Inspector-RemoveElementEditor
               predefinedDefaults:
+                defaultValue: ''
                 properties:
-                  confirmationLabel: formEditor.element.AdvancedPassword.editor.confirmationLabel.predefinedDefaults
+                  fluidAdditionalAttributes:
+                    pattern: '.*'
+                validators:
+                  -
+                    identifier: RegularExpression
+                    options:
+                      regularExpression: '/^.*$/'
               propertyCollections:
                 validators:
                   10:
@@ -1225,10 +2385,8 @@ Full default configuration
                         templateName: Inspector-TextEditor
                         label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                         propertyPath: options.minimum
-                        propertyValidatorsMode: OR
                         propertyValidators:
                           10: Integer
-                          20: FormElementIdentifierWithinCurlyBracesExclusive
                         additionalElementPropertyPaths:
                           10: properties.fluidAdditionalAttributes.minlength
                       300:
@@ -1236,10 +2394,8 @@ Full default configuration
                         templateName: Inspector-TextEditor
                         label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                         propertyPath: options.maximum
-                        propertyValidatorsMode: OR
                         propertyValidators:
                           10: Integer
-                          20: FormElementIdentifierWithinCurlyBracesExclusive
                         additionalElementPropertyPaths:
                           10: properties.fluidAdditionalAttributes.maxlength
                       9999:
@@ -1287,19 +2443,19 @@ Full default configuration
                         templateName: Inspector-TextEditor
                         label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                         propertyPath: options.minimum
-                        propertyValidatorsMode: OR
                         propertyValidators:
                           10: Integer
-                          20: FormElementIdentifierWithinCurlyBracesExclusive
+                        additionalElementPropertyPaths:
+                          10: properties.fluidAdditionalAttributes.min
                       300:
                         identifier: maximum
                         templateName: Inspector-TextEditor
                         label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                         propertyPath: options.maximum
-                        propertyValidatorsMode: OR
                         propertyValidators:
                           10: Integer
-                          20: FormElementIdentifierWithinCurlyBracesExclusive
+                        additionalElementPropertyPaths:
+                          10: properties.fluidAdditionalAttributes.max
                       9999:
                         identifier: removeButton
                         templateName: Inspector-RemoveElementEditor
@@ -1318,21 +2474,21 @@ Full default configuration
                         propertyPath: options.regularExpression
                         propertyValidators:
                           10: NotEmpty
-                      9999:
-                        identifier: removeButton
-                        templateName: Inspector-RemoveElementEditor
-              label: formEditor.elements.AdvancedPassword.label
-              group: custom
-              groupSorting: 500
-              iconIdentifier: t3-form-icon-advanced-password
-            implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\AdvancedPassword
+              label: formEditor.elements.Url.label
+              group: html5
+              groupSorting: 300
+              iconIdentifier: t3-form-icon-url
+            implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
             properties:
               containerClassAttribute: input
-              elementClassAttribute: input-medium
+              elementClassAttribute: ''
               elementErrorClassAttribute: error
-              confirmationLabel: ''
-              confirmationClassAttribute: input-medium
-          Textarea:
+            validators:
+              -
+                identifier: RegularExpression
+                options:
+                  regularExpression: '/^.*$/'
+          Number:
             formEditor:
               editors:
                 100:
@@ -1348,35 +2504,21 @@ Full default configuration
                   templateName: Inspector-TextEditor
                   label: formEditor.elements.TextMixin.editor.placeholder.label
                   propertyPath: properties.fluidAdditionalAttributes.placeholder
-                  compatibilityPropertyPath: properties.placeholder
                   doNotSetIfPropertyValueIsEmpty: true
                 500:
                   identifier: defaultValue
                   templateName: Inspector-TextEditor
                   label: formEditor.elements.TextMixin.editor.defaultValue.label
                   propertyPath: defaultValue
+                  propertyValidators:
+                    10: IntegerOrEmpty
                 700:
-                  identifier: gridColumnViewPortConfiguration
-                  templateName: Inspector-GridColumnViewPortConfigurationEditor
-                  label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
-                  configurationOptions:
-                    viewPorts:
-                      10:
-                        viewPortIdentifier: xs
-                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
-                      20:
-                        viewPortIdentifier: sm
-                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
-                      30:
-                        viewPortIdentifier: md
-                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
-                      40:
-                        viewPortIdentifier: lg
-                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
-                    numbersOfColumnsToUse:
-                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
-                      propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
-                      fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
+                  identifier: step
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.TextMixin.editor.step.label
+                  propertyPath: properties.fluidAdditionalAttributes.step
+                  propertyValidators:
+                    10: Integer
                 800:
                   identifier: requiredValidator
                   templateName: Inspector-RequiredValidatorEditor
@@ -1392,32 +2534,23 @@ Full default configuration
                     10:
                       value: ''
                       label: formEditor.elements.TextMixin.editor.validators.EmptyValue.label
-                    20:
-                      value: Alphanumeric
-                      label: formEditor.elements.TextMixin.editor.validators.Alphanumeric.label
-                    30:
-                      value: Text
-                      label: formEditor.elements.TextMixin.editor.validators.Text.label
-                    40:
-                      value: StringLength
-                      label: formEditor.elements.TextMixin.editor.validators.StringLength.label
                     60:
-                      value: Integer
-                      label: formEditor.elements.TextMixin.editor.validators.Integer.label
-                    70:
-                      value: Float
-                      label: formEditor.elements.TextMixin.editor.validators.Float.label
+                      value: Number
+                      label: formEditor.elements.Number.editor.validators.Number.label
                     80:
                       value: NumberRange
                       label: formEditor.elements.TextMixin.editor.validators.NumberRange.label
-                    90:
-                      value: RegularExpression
-                      label: formEditor.elements.TextMixin.editor.validators.RegularExpression.label
                 9999:
                   identifier: removeButton
                   templateName: Inspector-RemoveElementEditor
               predefinedDefaults:
                 defaultValue: ''
+                properties:
+                  fluidAdditionalAttributes:
+                    step: 1
+                validators:
+                  -
+                    identifier: Number
               propertyCollections:
                 validators:
                   10:
@@ -1452,10 +2585,8 @@ Full default configuration
                         templateName: Inspector-TextEditor
                         label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                         propertyPath: options.minimum
-                        propertyValidatorsMode: OR
                         propertyValidators:
                           10: Integer
-                          20: FormElementIdentifierWithinCurlyBracesExclusive
                         additionalElementPropertyPaths:
                           10: properties.fluidAdditionalAttributes.minlength
                       300:
@@ -1463,10 +2594,8 @@ Full default configuration
                         templateName: Inspector-TextEditor
                         label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                         propertyPath: options.maximum
-                        propertyValidatorsMode: OR
                         propertyValidators:
                           10: Integer
-                          20: FormElementIdentifierWithinCurlyBracesExclusive
                         additionalElementPropertyPaths:
                           10: properties.fluidAdditionalAttributes.maxlength
                       9999:
@@ -1493,15 +2622,12 @@ Full default configuration
                         identifier: removeButton
                         templateName: Inspector-RemoveElementEditor
                   60:
-                    identifier: Float
+                    identifier: Number
                     editors:
                       100:
                         identifier: header
                         templateName: Inspector-CollectionElementHeaderEditor
-                        label: formEditor.elements.TextMixin.validators.Float.editor.header.label
-                      9999:
-                        identifier: removeButton
-                        templateName: Inspector-RemoveElementEditor
+                        label: formEditor.elements.TextMixin.validators.Number.editor.header.label
                   70:
                     identifier: NumberRange
                     editors:
@@ -1514,19 +2640,19 @@ Full default configuration
                         templateName: Inspector-TextEditor
                         label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                         propertyPath: options.minimum
-                        propertyValidatorsMode: OR
                         propertyValidators:
                           10: Integer
-                          20: FormElementIdentifierWithinCurlyBracesExclusive
+                        additionalElementPropertyPaths:
+                          10: properties.fluidAdditionalAttributes.min
                       300:
                         identifier: maximum
                         templateName: Inspector-TextEditor
                         label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                         propertyPath: options.maximum
-                        propertyValidatorsMode: OR
                         propertyValidators:
                           10: Integer
-                          20: FormElementIdentifierWithinCurlyBracesExclusive
+                        additionalElementPropertyPaths:
+                          10: properties.fluidAdditionalAttributes.max
                       9999:
                         identifier: removeButton
                         templateName: Inspector-RemoveElementEditor
@@ -1548,75 +2674,18 @@ Full default configuration
                       9999:
                         identifier: removeButton
                         templateName: Inspector-RemoveElementEditor
-              label: formEditor.elements.Textarea.label
-              group: input
-              groupSorting: 200
-              iconIdentifier: t3-form-icon-textarea
-            implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
-            properties:
-              containerClassAttribute: input
-              elementClassAttribute: xxlarge
-              elementErrorClassAttribute: error
-          Honeypot:
-            implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
-            properties:
-              containerClassAttribute: input
-              elementClassAttribute: ''
-              elementErrorClassAttribute: error
-              renderAsHiddenField: false
-              styleAttribute: 'position:absolute; margin:0 0 0 -999em;'
-          Hidden:
-            formEditor:
-              editors:
-                100:
-                  identifier: header
-                  templateName: Inspector-FormElementHeaderEditor
-                200:
-                  identifier: label
-                  templateName: Inspector-TextEditor
-                  label: formEditor.elements.FormElement.editor.label.label
-                  propertyPath: label
-                300:
-                  identifier: defaultValue
-                  templateName: Inspector-TextEditor
-                  label: formEditor.elements.Hidden.editor.defaultValue.label
-                  propertyPath: defaultValue
-                700:
-                  identifier: gridColumnViewPortConfiguration
-                  templateName: Inspector-GridColumnViewPortConfigurationEditor
-                  label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
-                  configurationOptions:
-                    viewPorts:
-                      10:
-                        viewPortIdentifier: xs
-                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
-                      20:
-                        viewPortIdentifier: sm
-                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
-                      30:
-                        viewPortIdentifier: md
-                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
-                      40:
-                        viewPortIdentifier: lg
-                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
-                    numbersOfColumnsToUse:
-                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
-                      propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
-                      fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
-                9999:
-                  identifier: removeButton
-                  templateName: Inspector-RemoveElementEditor
-              predefinedDefaults:
-                defaultValue: ''
-              label: formEditor.elements.Hidden.label
-              group: custom
-              groupSorting: 300
-              iconIdentifier: t3-form-icon-hidden
+              label: formEditor.elements.Number.label
+              group: html5
+              groupSorting: 400
+              iconIdentifier: t3-form-icon-number
             implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
             properties:
               containerClassAttribute: input
               elementClassAttribute: ''
               elementErrorClassAttribute: error
+            validators:
+              -
+                identifier: Number
           Checkbox:
             formEditor:
               editors:
@@ -1752,19 +2821,15 @@ Full default configuration
                         templateName: Inspector-TextEditor
                         label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                         propertyPath: options.minimum
-                        propertyValidatorsMode: OR
                         propertyValidators:
                           10: Integer
-                          20: FormElementIdentifierWithinCurlyBracesExclusive
                       300:
                         identifier: maximum
                         templateName: Inspector-TextEditor
                         label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                         propertyPath: options.maximum
-                        propertyValidatorsMode: OR
                         propertyValidators:
                           10: Integer
-                          20: FormElementIdentifierWithinCurlyBracesExclusive
                       9999:
                         identifier: removeButton
                         templateName: Inspector-RemoveElementEditor
@@ -1867,19 +2932,15 @@ Full default configuration
                         templateName: Inspector-TextEditor
                         label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                         propertyPath: options.minimum
-                        propertyValidatorsMode: OR
                         propertyValidators:
                           10: Integer
-                          20: FormElementIdentifierWithinCurlyBracesExclusive
                       300:
                         identifier: maximum
                         templateName: Inspector-TextEditor
                         label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                         propertyPath: options.maximum
-                        propertyValidatorsMode: OR
                         propertyValidators:
                           10: Integer
-                          20: FormElementIdentifierWithinCurlyBracesExclusive
                       9999:
                         identifier: removeButton
                         templateName: Inspector-RemoveElementEditor
@@ -2652,6 +3713,11 @@ Full default configuration
             formEditor:
               iconIdentifier: t3-form-icon-validator
               label: formEditor.elements.TextMixin.editor.validators.Float.label
+          Number:
+            implementationClassName: TYPO3\CMS\Extbase\Validation\Validator\NumberValidator
+            formEditor:
+              iconIdentifier: t3-form-icon-validator
+              label: formEditor.elements.TextMixin.editor.validators.Number.label
           NumberRange:
             implementationClassName: TYPO3\CMS\Extbase\Validation\Validator\NumberRangeValidator
             formEditor:
@@ -2717,6 +3783,10 @@ Full default configuration
             FormElement-ContentElement: Stage/ContentElement
             FormElement-FileUpload: Stage/FileUploadTemplate
             FormElement-ImageUpload: Stage/FileUploadTemplate
+            FormElement-Email: Stage/SimpleTemplate
+            FormElement-Telephone: Stage/SimpleTemplate
+            FormElement-Url: Stage/SimpleTemplate
+            FormElement-Number: Stage/SimpleTemplate
             Modal-InsertElements: Modals/InsertElements
             Modal-InsertPages: Modals/InsertPages
             Modal-ValidationErrors: Modals/ValidationErrors
@@ -2750,6 +3820,8 @@ Full default configuration
           formElementGroups:
             input:
               label: formEditor.formElementGroups.input.label
+            html5:
+              label: formEditor.formElementGroups.html5.label
             select:
               label: formEditor.formElementGroups.select.label
             custom:
@@ -2760,6 +3832,788 @@ Full default configuration
               label: formEditor.formElementGroups.page.label
         formEngine:
           translationFile: 'EXT:form/Resources/Private/Language/Database.xlf'
+    mixins:
+      translationSettingsMixin:
+        translation:
+          translationFile: 'EXT:form/Resources/Private/Language/locallang.xlf'
+      formElementMixins:
+        BaseFormElementMixin:
+          formEditor:
+            predefinedDefaults: {  }
+            editors:
+              100:
+                identifier: header
+                templateName: Inspector-FormElementHeaderEditor
+              200:
+                identifier: label
+                templateName: Inspector-TextEditor
+                label: formEditor.elements.BaseFormElementMixin.editor.label.label
+                propertyPath: label
+        ReadOnlyFormElementMixin:
+          formEditor:
+            editors:
+              100:
+                identifier: header
+                templateName: Inspector-FormElementHeaderEditor
+              200:
+                identifier: label
+                templateName: Inspector-TextEditor
+                label: formEditor.elements.ReadOnlyFormElement.editor.label.label
+                propertyPath: label
+              9999:
+                identifier: removeButton
+                templateName: Inspector-RemoveElementEditor
+            predefinedDefaults: {  }
+          implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
+        FormElementMixin:
+          formEditor:
+            editors:
+              100:
+                identifier: header
+                templateName: Inspector-FormElementHeaderEditor
+              200:
+                identifier: label
+                templateName: Inspector-TextEditor
+                label: formEditor.elements.FormElement.editor.label.label
+                propertyPath: label
+              700:
+                identifier: gridColumnViewPortConfiguration
+                templateName: Inspector-GridColumnViewPortConfigurationEditor
+                label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
+                configurationOptions:
+                  viewPorts:
+                    10:
+                      viewPortIdentifier: xs
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
+                    20:
+                      viewPortIdentifier: sm
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
+                    30:
+                      viewPortIdentifier: md
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
+                    40:
+                      viewPortIdentifier: lg
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
+                  numbersOfColumnsToUse:
+                    label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
+                    propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
+                    fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
+              800:
+                identifier: requiredValidator
+                templateName: Inspector-RequiredValidatorEditor
+                label: formEditor.elements.FormElement.editor.requiredValidator.label
+                validatorIdentifier: NotEmpty
+                propertyPath: properties.fluidAdditionalAttributes.required
+                propertyValue: required
+              9999:
+                identifier: removeButton
+                templateName: Inspector-RemoveElementEditor
+            predefinedDefaults: {  }
+          implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
+          properties:
+            containerClassAttribute: input
+            elementClassAttribute: ''
+            elementErrorClassAttribute: error
+        TextMixin:
+          formEditor:
+            editors:
+              100:
+                identifier: header
+                templateName: Inspector-FormElementHeaderEditor
+              200:
+                identifier: label
+                templateName: Inspector-TextEditor
+                label: formEditor.elements.FormElement.editor.label.label
+                propertyPath: label
+              400:
+                identifier: placeholder
+                templateName: Inspector-TextEditor
+                label: formEditor.elements.TextMixin.editor.placeholder.label
+                propertyPath: properties.fluidAdditionalAttributes.placeholder
+                doNotSetIfPropertyValueIsEmpty: true
+              500:
+                identifier: defaultValue
+                templateName: Inspector-TextEditor
+                label: formEditor.elements.TextMixin.editor.defaultValue.label
+                propertyPath: defaultValue
+              600:
+                identifier: pattern
+                templateName: Inspector-TextEditor
+                label: formEditor.elements.TextMixin.editor.pattern.label
+                propertyPath: properties.fluidAdditionalAttributes.pattern
+                fieldExplanationText: formEditor.elements.TextMixin.editor.pattern.fieldExplanationText
+                doNotSetIfPropertyValueIsEmpty: true
+              700:
+                identifier: gridColumnViewPortConfiguration
+                templateName: Inspector-GridColumnViewPortConfigurationEditor
+                label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
+                configurationOptions:
+                  viewPorts:
+                    10:
+                      viewPortIdentifier: xs
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
+                    20:
+                      viewPortIdentifier: sm
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
+                    30:
+                      viewPortIdentifier: md
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
+                    40:
+                      viewPortIdentifier: lg
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
+                  numbersOfColumnsToUse:
+                    label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
+                    propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
+                    fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
+              800:
+                identifier: requiredValidator
+                templateName: Inspector-RequiredValidatorEditor
+                label: formEditor.elements.FormElement.editor.requiredValidator.label
+                validatorIdentifier: NotEmpty
+                propertyPath: properties.fluidAdditionalAttributes.required
+                propertyValue: required
+              900:
+                identifier: validators
+                templateName: Inspector-ValidatorsEditor
+                label: formEditor.elements.TextMixin.editor.validators.label
+                selectOptions:
+                  10:
+                    value: ''
+                    label: formEditor.elements.TextMixin.editor.validators.EmptyValue.label
+                  20:
+                    value: Alphanumeric
+                    label: formEditor.elements.TextMixin.editor.validators.Alphanumeric.label
+                  30:
+                    value: Text
+                    label: formEditor.elements.TextMixin.editor.validators.Text.label
+                  40:
+                    value: StringLength
+                    label: formEditor.elements.TextMixin.editor.validators.StringLength.label
+                  50:
+                    value: EmailAddress
+                    label: formEditor.elements.TextMixin.editor.validators.EmailAddress.label
+                  60:
+                    value: Integer
+                    label: formEditor.elements.TextMixin.editor.validators.Integer.label
+                  70:
+                    value: Float
+                    label: formEditor.elements.TextMixin.editor.validators.Float.label
+                  80:
+                    value: NumberRange
+                    label: formEditor.elements.TextMixin.editor.validators.NumberRange.label
+                  90:
+                    value: RegularExpression
+                    label: formEditor.elements.TextMixin.editor.validators.RegularExpression.label
+              9999:
+                identifier: removeButton
+                templateName: Inspector-RemoveElementEditor
+            predefinedDefaults:
+              defaultValue: ''
+            propertyCollections:
+              validators:
+                10:
+                  identifier: Alphanumeric
+                  editors:
+                    100:
+                      identifier: header
+                      templateName: Inspector-CollectionElementHeaderEditor
+                      label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.header.label
+                    9999:
+                      identifier: removeButton
+                      templateName: Inspector-RemoveElementEditor
+                20:
+                  identifier: Text
+                  editors:
+                    100:
+                      identifier: header
+                      templateName: Inspector-CollectionElementHeaderEditor
+                      label: formEditor.elements.TextMixin.validators.Text.editor.header.label
+                    9999:
+                      identifier: removeButton
+                      templateName: Inspector-RemoveElementEditor
+                30:
+                  identifier: StringLength
+                  editors:
+                    100:
+                      identifier: header
+                      templateName: Inspector-CollectionElementHeaderEditor
+                      label: formEditor.elements.TextMixin.validators.StringLength.editor.header.label
+                    200:
+                      identifier: minimum
+                      templateName: Inspector-TextEditor
+                      label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
+                      propertyPath: options.minimum
+                      propertyValidators:
+                        10: Integer
+                      additionalElementPropertyPaths:
+                        10: properties.fluidAdditionalAttributes.minlength
+                    300:
+                      identifier: maximum
+                      templateName: Inspector-TextEditor
+                      label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
+                      propertyPath: options.maximum
+                      propertyValidators:
+                        10: Integer
+                      additionalElementPropertyPaths:
+                        10: properties.fluidAdditionalAttributes.maxlength
+                    9999:
+                      identifier: removeButton
+                      templateName: Inspector-RemoveElementEditor
+                40:
+                  identifier: EmailAddress
+                  editors:
+                    100:
+                      identifier: header
+                      templateName: Inspector-CollectionElementHeaderEditor
+                      label: formEditor.elements.TextMixin.validators.EmailAddress.editor.header.label
+                    9999:
+                      identifier: removeButton
+                      templateName: Inspector-RemoveElementEditor
+                50:
+                  identifier: Integer
+                  editors:
+                    100:
+                      identifier: header
+                      templateName: Inspector-CollectionElementHeaderEditor
+                      label: formEditor.elements.TextMixin.validators.Integer.editor.header.label
+                    9999:
+                      identifier: removeButton
+                      templateName: Inspector-RemoveElementEditor
+                60:
+                  identifier: Float
+                  editors:
+                    100:
+                      identifier: header
+                      templateName: Inspector-CollectionElementHeaderEditor
+                      label: formEditor.elements.TextMixin.validators.Float.editor.header.label
+                    9999:
+                      identifier: removeButton
+                      templateName: Inspector-RemoveElementEditor
+                70:
+                  identifier: NumberRange
+                  editors:
+                    100:
+                      identifier: header
+                      templateName: Inspector-CollectionElementHeaderEditor
+                      label: formEditor.elements.TextMixin.validators.NumberRange.editor.header.label
+                    200:
+                      identifier: minimum
+                      templateName: Inspector-TextEditor
+                      label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
+                      propertyPath: options.minimum
+                      propertyValidators:
+                        10: Integer
+                      additionalElementPropertyPaths:
+                        10: properties.fluidAdditionalAttributes.min
+                    300:
+                      identifier: maximum
+                      templateName: Inspector-TextEditor
+                      label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
+                      propertyPath: options.maximum
+                      propertyValidators:
+                        10: Integer
+                      additionalElementPropertyPaths:
+                        10: properties.fluidAdditionalAttributes.max
+                    9999:
+                      identifier: removeButton
+                      templateName: Inspector-RemoveElementEditor
+                80:
+                  identifier: RegularExpression
+                  editors:
+                    100:
+                      identifier: header
+                      templateName: Inspector-CollectionElementHeaderEditor
+                      label: formEditor.elements.TextMixin.validators.RegularExpression.editor.header.label
+                    200:
+                      identifier: regex
+                      templateName: Inspector-TextEditor
+                      label: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.label
+                      fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.fieldExplanationText
+                      propertyPath: options.regularExpression
+                      propertyValidators:
+                        10: NotEmpty
+                    9999:
+                      identifier: removeButton
+                      templateName: Inspector-RemoveElementEditor
+          implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
+          properties:
+            containerClassAttribute: input
+            elementClassAttribute: ''
+            elementErrorClassAttribute: error
+        SelectionMixin:
+          formEditor:
+            editors:
+              100:
+                identifier: header
+                templateName: Inspector-FormElementHeaderEditor
+              200:
+                identifier: label
+                templateName: Inspector-TextEditor
+                label: formEditor.elements.FormElement.editor.label.label
+                propertyPath: label
+              300:
+                identifier: options
+                templateName: Inspector-PropertyGridEditor
+                label: formEditor.elements.SelectionMixin.editor.options.label
+                propertyPath: properties.options
+                isSortable: true
+                enableAddRow: true
+                enableDeleteRow: true
+                removeLastAvailableRowFlashMessageTitle: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageTitle
+                removeLastAvailableRowFlashMessageMessage: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageMessage
+              700:
+                identifier: gridColumnViewPortConfiguration
+                templateName: Inspector-GridColumnViewPortConfigurationEditor
+                label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
+                configurationOptions:
+                  viewPorts:
+                    10:
+                      viewPortIdentifier: xs
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
+                    20:
+                      viewPortIdentifier: sm
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
+                    30:
+                      viewPortIdentifier: md
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
+                    40:
+                      viewPortIdentifier: lg
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
+                  numbersOfColumnsToUse:
+                    label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
+                    propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
+                    fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
+              800:
+                identifier: requiredValidator
+                templateName: Inspector-RequiredValidatorEditor
+                label: formEditor.elements.FormElement.editor.requiredValidator.label
+                validatorIdentifier: NotEmpty
+                propertyPath: properties.fluidAdditionalAttributes.required
+                propertyValue: required
+              9999:
+                identifier: removeButton
+                templateName: Inspector-RemoveElementEditor
+            predefinedDefaults:
+              properties:
+                options: {  }
+          implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
+          properties:
+            containerClassAttribute: input
+            elementClassAttribute: ''
+            elementErrorClassAttribute: error
+        SingleSelectionMixin:
+          formEditor:
+            editors:
+              100:
+                identifier: header
+                templateName: Inspector-FormElementHeaderEditor
+              200:
+                identifier: label
+                templateName: Inspector-TextEditor
+                label: formEditor.elements.FormElement.editor.label.label
+                propertyPath: label
+              300:
+                identifier: options
+                templateName: Inspector-PropertyGridEditor
+                label: formEditor.elements.SelectionMixin.editor.options.label
+                propertyPath: properties.options
+                isSortable: true
+                enableAddRow: true
+                enableDeleteRow: true
+                removeLastAvailableRowFlashMessageTitle: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageTitle
+                removeLastAvailableRowFlashMessageMessage: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageMessage
+                shouldShowPreselectedValueColumn: single
+                multiSelection: false
+              700:
+                identifier: gridColumnViewPortConfiguration
+                templateName: Inspector-GridColumnViewPortConfigurationEditor
+                label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
+                configurationOptions:
+                  viewPorts:
+                    10:
+                      viewPortIdentifier: xs
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
+                    20:
+                      viewPortIdentifier: sm
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
+                    30:
+                      viewPortIdentifier: md
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
+                    40:
+                      viewPortIdentifier: lg
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
+                  numbersOfColumnsToUse:
+                    label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
+                    propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
+                    fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
+              800:
+                identifier: requiredValidator
+                templateName: Inspector-RequiredValidatorEditor
+                label: formEditor.elements.FormElement.editor.requiredValidator.label
+                validatorIdentifier: NotEmpty
+                propertyPath: properties.fluidAdditionalAttributes.required
+                propertyValue: required
+              9999:
+                identifier: removeButton
+                templateName: Inspector-RemoveElementEditor
+            predefinedDefaults:
+              properties:
+                options: {  }
+          implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
+          properties:
+            containerClassAttribute: input
+            elementClassAttribute: ''
+            elementErrorClassAttribute: error
+        MultiSelectionMixin:
+          formEditor:
+            editors:
+              100:
+                identifier: header
+                templateName: Inspector-FormElementHeaderEditor
+              200:
+                identifier: label
+                templateName: Inspector-TextEditor
+                label: formEditor.elements.FormElement.editor.label.label
+                propertyPath: label
+              300:
+                identifier: options
+                templateName: Inspector-PropertyGridEditor
+                label: formEditor.elements.SelectionMixin.editor.options.label
+                propertyPath: properties.options
+                isSortable: true
+                enableAddRow: true
+                enableDeleteRow: true
+                removeLastAvailableRowFlashMessageTitle: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageTitle
+                removeLastAvailableRowFlashMessageMessage: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageMessage
+                shouldShowPreselectedValueColumn: multiple
+                multiSelection: true
+              700:
+                identifier: gridColumnViewPortConfiguration
+                templateName: Inspector-GridColumnViewPortConfigurationEditor
+                label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
+                configurationOptions:
+                  viewPorts:
+                    10:
+                      viewPortIdentifier: xs
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
+                    20:
+                      viewPortIdentifier: sm
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
+                    30:
+                      viewPortIdentifier: md
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
+                    40:
+                      viewPortIdentifier: lg
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
+                  numbersOfColumnsToUse:
+                    label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
+                    propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
+                    fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
+              800:
+                identifier: requiredValidator
+                templateName: Inspector-RequiredValidatorEditor
+                label: formEditor.elements.FormElement.editor.requiredValidator.label
+                validatorIdentifier: NotEmpty
+                propertyPath: properties.fluidAdditionalAttributes.required
+                propertyValue: required
+              900:
+                identifier: validators
+                templateName: Inspector-ValidatorsEditor
+                label: formEditor.elements.MultiSelectionMixin.editor.validators.label
+                selectOptions:
+                  10:
+                    value: ''
+                    label: formEditor.elements.MultiSelectionMixin.editor.validators.EmptyValue.label
+                  20:
+                    value: Count
+                    label: formEditor.elements.MultiSelectionMixin.editor.validators.Count.label
+              9999:
+                identifier: removeButton
+                templateName: Inspector-RemoveElementEditor
+            predefinedDefaults:
+              properties:
+                options: {  }
+            propertyCollections:
+              validators:
+                10:
+                  identifier: Count
+                  editors:
+                    100:
+                      identifier: header
+                      templateName: Inspector-CollectionElementHeaderEditor
+                      label: formEditor.elements.MultiSelectionMixin.validators.Count.editor.header.label
+                    200:
+                      identifier: minimum
+                      templateName: Inspector-TextEditor
+                      label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
+                      propertyPath: options.minimum
+                      propertyValidators:
+                        10: Integer
+                    300:
+                      identifier: maximum
+                      templateName: Inspector-TextEditor
+                      label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
+                      propertyPath: options.maximum
+                      propertyValidators:
+                        10: Integer
+                    9999:
+                      identifier: removeButton
+                      templateName: Inspector-RemoveElementEditor
+          implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
+          properties:
+            containerClassAttribute: input
+            elementClassAttribute: ''
+            elementErrorClassAttribute: error
+        FileUploadMixin:
+          formEditor:
+            editors:
+              100:
+                identifier: header
+                templateName: Inspector-FormElementHeaderEditor
+              200:
+                identifier: label
+                templateName: Inspector-TextEditor
+                label: formEditor.elements.FormElement.editor.label.label
+                propertyPath: label
+              400:
+                identifier: saveToFileMount
+                templateName: Inspector-SingleSelectEditor
+                label: formEditor.elements.FileUploadMixin.editor.saveToFileMount.label
+                propertyPath: properties.saveToFileMount
+                selectOptions:
+                  10:
+                    value: '1:/user_upload/'
+                    label: '1:/user_upload/'
+              700:
+                identifier: gridColumnViewPortConfiguration
+                templateName: Inspector-GridColumnViewPortConfigurationEditor
+                label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
+                configurationOptions:
+                  viewPorts:
+                    10:
+                      viewPortIdentifier: xs
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
+                    20:
+                      viewPortIdentifier: sm
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
+                    30:
+                      viewPortIdentifier: md
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
+                    40:
+                      viewPortIdentifier: lg
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
+                  numbersOfColumnsToUse:
+                    label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
+                    propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
+                    fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
+              800:
+                identifier: requiredValidator
+                templateName: Inspector-RequiredValidatorEditor
+                label: formEditor.elements.FormElement.editor.requiredValidator.label
+                validatorIdentifier: NotEmpty
+                propertyPath: properties.fluidAdditionalAttributes.required
+                propertyValue: required
+              9999:
+                identifier: removeButton
+                templateName: Inspector-RemoveElementEditor
+            predefinedDefaults:
+              properties:
+                saveToFileMount: '1:/user_upload/'
+          implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\FileUpload
+          properties:
+            containerClassAttribute: input
+            elementClassAttribute: ''
+            elementErrorClassAttribute: error
+            saveToFileMount: '1:/user_upload/'
+        RemoveButtonMixin:
+          9999:
+            identifier: removeButton
+            templateName: Inspector-RemoveElementEditor
+        RemovableFormElementMixin:
+          editors:
+            9999:
+              identifier: removeButton
+              templateName: Inspector-RemoveElementEditor
+        BaseCollectionEditorsMixin:
+          100:
+            identifier: header
+            templateName: Inspector-CollectionElementHeaderEditor
+            label: ''
+          9999:
+            identifier: removeButton
+            templateName: Inspector-RemoveElementEditor
+        MinimumMaximumEditorsMixin:
+          200:
+            identifier: minimum
+            templateName: Inspector-TextEditor
+            label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
+            propertyPath: options.minimum
+            propertyValidators:
+              10: Integer
+          300:
+            identifier: maximum
+            templateName: Inspector-TextEditor
+            label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
+            propertyPath: options.maximum
+            propertyValidators:
+              10: Integer
+        formEmailFinisherMixin:
+          editors:
+            100:
+              identifier: header
+              templateName: Inspector-CollectionElementHeaderEditor
+              label: formEditor.elements.Form.finisher.EmailToSender.editor.header.label
+            200:
+              identifier: subject
+              templateName: Inspector-TextEditor
+              label: formEditor.elements.Form.finisher.EmailToSender.editor.subject.label
+              propertyPath: options.subject
+              enableFormelementSelectionButton: true
+              propertyValidators:
+                10: NotEmpty
+                20: FormElementIdentifierWithinCurlyBracesInclusive
+            300:
+              identifier: recipientAddress
+              templateName: Inspector-TextEditor
+              label: formEditor.elements.Form.finisher.EmailToSender.editor.recipientAddress.label
+              propertyPath: options.recipientAddress
+              enableFormelementSelectionButton: true
+              propertyValidatorsMode: OR
+              propertyValidators:
+                10: NaiveEmail
+                20: FormElementIdentifierWithinCurlyBracesExclusive
+            400:
+              identifier: recipientName
+              templateName: Inspector-TextEditor
+              label: formEditor.elements.Form.finisher.EmailToSender.editor.recipientName.label
+              propertyPath: options.recipientName
+              enableFormelementSelectionButton: true
+              propertyValidators:
+                10: FormElementIdentifierWithinCurlyBracesInclusive
+            500:
+              identifier: senderAddress
+              templateName: Inspector-TextEditor
+              label: formEditor.elements.Form.finisher.EmailToSender.editor.senderAddress.label
+              propertyPath: options.senderAddress
+              enableFormelementSelectionButton: true
+              propertyValidatorsMode: OR
+              propertyValidators:
+                10: NaiveEmail
+                20: FormElementIdentifierWithinCurlyBracesExclusive
+            600:
+              identifier: senderName
+              templateName: Inspector-TextEditor
+              label: formEditor.elements.Form.finisher.EmailToSender.editor.senderName.label
+              propertyPath: options.senderName
+              enableFormelementSelectionButton: true
+              propertyValidators:
+                10: FormElementIdentifierWithinCurlyBracesInclusive
+            700:
+              identifier: replyToAddress
+              templateName: Inspector-TextEditor
+              label: formEditor.elements.Form.finisher.EmailToSender.editor.replyToAddress.label
+              propertyPath: options.replyToAddress
+              enableFormelementSelectionButton: true
+              propertyValidatorsMode: OR
+              propertyValidators:
+                10: NaiveEmailOrEmpty
+                20: FormElementIdentifierWithinCurlyBracesExclusive
+            800:
+              identifier: carbonCopyAddress
+              templateName: Inspector-TextEditor
+              label: formEditor.elements.Form.finisher.EmailToSender.editor.carbonCopyAddress.label
+              propertyPath: options.carbonCopyAddress
+              enableFormelementSelectionButton: true
+              propertyValidatorsMode: OR
+              propertyValidators:
+                10: NaiveEmailOrEmpty
+                20: FormElementIdentifierWithinCurlyBracesExclusive
+            900:
+              identifier: blindCarbonCopyAddress
+              templateName: Inspector-TextEditor
+              label: formEditor.elements.Form.finisher.EmailToSender.editor.blindCarbonCopyAddress.label
+              propertyPath: options.blindCarbonCopyAddress
+              enableFormelementSelectionButton: true
+              propertyValidatorsMode: OR
+              propertyValidators:
+                10: NaiveEmailOrEmpty
+                20: FormElementIdentifierWithinCurlyBracesExclusive
+            1000:
+              identifier: format
+              templateName: Inspector-SingleSelectEditor
+              label: formEditor.elements.Form.finisher.EmailToSender.editor.format.label
+              propertyPath: options.format
+              selectOptions:
+                10:
+                  value: plaintext
+                  label: formEditor.elements.Form.finisher.EmailToSender.editor.format.1
+                20:
+                  value: html
+                  label: formEditor.elements.Form.finisher.EmailToSender.editor.format.2
+            1100:
+              identifier: attachUploads
+              templateName: Inspector-CheckboxEditor
+              label: formEditor.elements.Form.finisher.EmailToSender.editor.attachUploads.label
+              propertyPath: options.attachUploads
+            9999:
+              identifier: removeButton
+              templateName: Inspector-RemoveElementEditor
+      finishersEmailMixin:
+        implementationClassName: TYPO3\CMS\Form\Domain\Finishers\EmailFinisher
+        options:
+          templatePathAndFilename: 'EXT:form/Resources/Private/Frontend/Templates/Finishers/Email/{@format}.html'
+      FormEngineEmailMixin:
+        label: tt_content.finishersDefinition.EmailToSender.label
+        elements:
+          subject:
+            label: tt_content.finishersDefinition.EmailToSender.subject.label
+            config:
+              type: input
+          recipientAddress:
+            label: tt_content.finishersDefinition.EmailToSender.recipientAddress.label
+            config:
+              type: input
+              eval: required
+          recipientName:
+            label: tt_content.finishersDefinition.EmailToSender.recipientName.label
+            config:
+              type: input
+          senderAddress:
+            label: tt_content.finishersDefinition.EmailToSender.senderAddress.label
+            config:
+              type: input
+              eval: required
+          senderName:
+            label: tt_content.finishersDefinition.EmailToSender.senderName.label
+            config:
+              type: input
+          replyToAddress:
+            label: tt_content.finishersDefinition.EmailToSender.replyToAddress.label
+            config:
+              type: input
+          carbonCopyAddress:
+            label: tt_content.finishersDefinition.EmailToSender.carbonCopyAddress.label
+            config:
+              type: input
+          blindCarbonCopyAddress:
+            label: tt_content.finishersDefinition.EmailToSender.blindCarbonCopyAddress.label
+            config:
+              type: input
+          format:
+            label: tt_content.finishersDefinition.EmailToSender.format.label
+            config:
+              type: select
+              renderType: selectSingle
+              minitems: 1
+              maxitems: 1
+              size: 1
+              items:
+                10:
+                  - tt_content.finishersDefinition.EmailToSender.format.1
+                  - html
+                20:
+                  - tt_content.finishersDefinition.EmailToSender.format.2
+                  - plaintext
     formManager:
       dynamicRequireJsModules:
         app: TYPO3/CMS/Form/Backend/FormManager
index c1ec50f..1e934cf 100644 (file)
@@ -469,6 +469,10 @@ formEditorPartials
              FormElement-ContentElement: Stage/ContentElement
              FormElement-FileUpload: Stage/FileUploadTemplate
              FormElement-ImageUpload: Stage/FileUploadTemplate
+             FormElement-Email: 'Stage/SimpleTemplate'
+             FormElement-Telephone: 'Stage/SimpleTemplate'
+             FormElement-Url: 'Stage/SimpleTemplate'
+             FormElement-Number: 'Stage/SimpleTemplate'
              Modal-InsertElements: Modals/InsertElements
              Modal-InsertPages: Modals/InsertPages
              Modal-ValidationErrors: Modals/ValidationErrors
@@ -623,6 +627,8 @@ formElementGroups
            formElementGroups:
              input:
                label: formEditor.formElementGroups.input.label
+             html5:
+               label: 'formEditor.formElementGroups.html5.label'
              select:
                label: formEditor.formElementGroups.select.label
              custom:
index f8319bc..5bdf638 100644 (file)
@@ -745,6 +745,7 @@ Concrete configurations
     formElementTypes/Checkbox
     formElementTypes/ContentElement
     formElementTypes/DatePicker
+    formElementTypes/Email
     formElementTypes/Fieldset
     formElementTypes/FileUpload
     formElementTypes/Form
@@ -755,11 +756,14 @@ Concrete configurations
     formElementTypes/ImageUpload
     formElementTypes/MultiCheckbox
     formElementTypes/MultiSelect
+    formElementTypes/Number
     formElementTypes/Page
     formElementTypes/Password
     formElementTypes/RadioButton
     formElementTypes/SingleSelect
     formElementTypes/StaticText
     formElementTypes/SummaryPage
+    formElementTypes/Telephone
     formElementTypes/Text
     formElementTypes/Textarea
+    formElementTypes/Url
\ No newline at end of file
index 9de6aad..71ae74a 100644 (file)
@@ -142,10 +142,8 @@ formEditor
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                        propertyPath: options.minimum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                        additionalElementPropertyPaths:
                          10: properties.fluidAdditionalAttributes.minlength
                      300:
@@ -153,10 +151,8 @@ formEditor
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                        propertyPath: options.maximum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                        additionalElementPropertyPaths:
                          10: properties.fluidAdditionalAttributes.maxlength
                      9999:
@@ -204,19 +200,19 @@ formEditor
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                        propertyPath: options.minimum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
+                       additionalElementPropertyPaths:
+                         10: properties.fluidAdditionalAttributes.min
                      300:
                        identifier: maximum
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                        propertyPath: options.maximum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
+                       additionalElementPropertyPaths:
+                         10: properties.fluidAdditionalAttributes.max
                      9999:
                        identifier: removeButton
                        templateName: Inspector-RemoveElementEditor
index 3430d44..bd09c60 100644 (file)
@@ -34,10 +34,8 @@ formEditor.propertyCollections.validators.30
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                        propertyPath: options.minimum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                        additionalElementPropertyPaths:
                          10: properties.fluidAdditionalAttributes.minlength
                      300:
@@ -45,10 +43,8 @@ formEditor.propertyCollections.validators.30
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                        propertyPath: options.maximum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                        additionalElementPropertyPaths:
                          10: properties.fluidAdditionalAttributes.maxlength
                      9999:
index 96af266..e52cc04 100644 (file)
@@ -30,10 +30,8 @@ formEditor.propertyCollections.validators.30.editors.200
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                        propertyPath: options.minimum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                        additionalElementPropertyPaths:
                          10: properties.fluidAdditionalAttributes.minlength
 
index 5bd95db..3f3311f 100644 (file)
@@ -30,10 +30,8 @@ formEditor.propertyCollections.validators.30.editors.300
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                        propertyPath: options.maximum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                        additionalElementPropertyPaths:
                          10: properties.fluidAdditionalAttributes.maxlength
 
index da63476..8a0c483 100644 (file)
@@ -34,19 +34,19 @@ formEditor.propertyCollections.validators.70
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                        propertyPath: options.minimum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
+                       additionalElementPropertyPaths:
+                         10: properties.fluidAdditionalAttributes.min
                      300:
                        identifier: maximum
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                        propertyPath: options.maximum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
+                       additionalElementPropertyPaths:
+                         10: properties.fluidAdditionalAttributes.max
                      9999:
                        identifier: removeButton
                        templateName: Inspector-RemoveElementEditor
index 5dac71d..d87257c 100644 (file)
@@ -30,8 +30,7 @@ formEditor.propertyCollections.validators.70.editors.200
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                        propertyPath: options.minimum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
-
+                       additionalElementPropertyPaths:
+                         10: properties.fluidAdditionalAttributes.min
\ No newline at end of file
index 5f837e0..999b073 100644 (file)
@@ -30,7 +30,7 @@ formEditor.propertyCollections.validators.70.editors.300
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                        propertyPath: options.maximum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
+                       additionalElementPropertyPaths:
+                         10: properties.fluidAdditionalAttributes.max
\ No newline at end of file
index 9b6aa92..162fcf6 100644 (file)
@@ -99,19 +99,15 @@ formEditor
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                        propertyPath: options.minimum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                      300:
                        identifier: maximum
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                        propertyPath: options.maximum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                      9999:
                        identifier: removeButton
                        templateName: Inspector-RemoveElementEditor
index fc3aab0..4afb9e6 100644 (file)
@@ -34,19 +34,15 @@ formEditor.propertyCollections.validators.10
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                        propertyPath: options.minimum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                      300:
                        identifier: maximum
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                        propertyPath: options.maximum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                      9999:
                        identifier: removeButton
                        templateName: Inspector-RemoveElementEditor
index 171c1e5..9bfaffb 100644 (file)
@@ -30,8 +30,6 @@ formEditor.propertyCollections.validators.10.editors.100
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                        propertyPath: options.minimum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
 
index ee41c88..7e0f89c 100644 (file)
@@ -30,8 +30,6 @@ formEditor.propertyCollections.validators.10.editors.100
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                        propertyPath: options.maximum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
 
index f82425f..f1c3cce 100644 (file)
@@ -108,19 +108,15 @@ formEditor
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                        propertyPath: options.minimum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                      300:
                        identifier: maximum
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                        propertyPath: options.maximum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                      9999:
                        identifier: removeButton
                        templateName: Inspector-RemoveElementEditor
index 1c022d1..5240b6f 100644 (file)
@@ -34,19 +34,15 @@ formEditor.propertyCollections.validators.10
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                        propertyPath: options.minimum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                      300:
                        identifier: maximum
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                        propertyPath: options.maximum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                      9999:
                        identifier: removeButton
                        templateName: Inspector-RemoveElementEditor
index a521c68..36b622c 100644 (file)
@@ -30,8 +30,6 @@ formEditor.propertyCollections.validators.10.editors.100
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                        propertyPath: options.minimum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
 
index 6d71258..ab9a2af 100644 (file)
@@ -30,8 +30,6 @@ formEditor.propertyCollections.validators.10.editors.100
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                        propertyPath: options.maximum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
 
index d4165e3..3aa63ba 100644 (file)
@@ -141,10 +141,8 @@ formEditor
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                        propertyPath: options.minimum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                        additionalElementPropertyPaths:
                          10: properties.fluidAdditionalAttributes.minlength
                      300:
@@ -152,10 +150,8 @@ formEditor
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                        propertyPath: options.maximum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                        additionalElementPropertyPaths:
                          10: properties.fluidAdditionalAttributes.maxlength
                      9999:
@@ -203,19 +199,19 @@ formEditor
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                        propertyPath: options.minimum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
+                       additionalElementPropertyPaths:
+                         10: properties.fluidAdditionalAttributes.min
                      300:
                        identifier: maximum
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                        propertyPath: options.maximum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
+                       additionalElementPropertyPaths:
+                         10: properties.fluidAdditionalAttributes.max
                      9999:
                        identifier: removeButton
                        templateName: Inspector-RemoveElementEditor
index 97dc5c9..7bb39aa 100644 (file)
@@ -1,8 +1,8 @@
-formEditor.editors.400
+formEditor.editors.500
 ----------------------
 
 :aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.editors.400
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.editors.500
 
 :aspect:`Data type`
       array/ :ref:`[TextEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.texteditor>`
index 3559fc4..a6063dd 100644 (file)
@@ -34,10 +34,8 @@ formEditor.propertyCollections.validators.30
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                        propertyPath: options.minimum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                        additionalElementPropertyPaths:
                          10: properties.fluidAdditionalAttributes.minlength
                      300:
@@ -45,10 +43,8 @@ formEditor.propertyCollections.validators.30
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                        propertyPath: options.maximum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                        additionalElementPropertyPaths:
                          10: properties.fluidAdditionalAttributes.maxlength
                      9999:
index f547a97..9f385d8 100644 (file)
@@ -30,10 +30,8 @@ formEditor.propertyCollections.validators.30.editors.200
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                        propertyPath: options.minimum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                        additionalElementPropertyPaths:
                          10: properties.fluidAdditionalAttributes.minlength
 
index 9c0555c..8b195f0 100644 (file)
@@ -30,10 +30,8 @@ formEditor.propertyCollections.validators.30.editors.300
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                        propertyPath: options.maximum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                        additionalElementPropertyPaths:
                          10: properties.fluidAdditionalAttributes.maxlength
 
index 658bb12..f2a0179 100644 (file)
@@ -34,19 +34,19 @@ formEditor.propertyCollections.validators.70
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                        propertyPath: options.minimum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
+                       additionalElementPropertyPaths:
+                         10: properties.fluidAdditionalAttributes.min
                      300:
                        identifier: maximum
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                        propertyPath: options.maximum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
+                       additionalElementPropertyPaths:
+                         10: properties.fluidAdditionalAttributes.max
                      9999:
                        identifier: removeButton
                        templateName: Inspector-RemoveElementEditor
index 19cb8eb..0071e3d 100644 (file)
@@ -30,8 +30,7 @@ formEditor.propertyCollections.validators.70.editors.200
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                        propertyPath: options.minimum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
-
+                       additionalElementPropertyPaths:
+                         10: properties.fluidAdditionalAttributes.min
index 205dfea..ec51197 100644 (file)
@@ -30,7 +30,7 @@ formEditor.propertyCollections.validators.70.editors.300
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                        propertyPath: options.maximum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
+                       additionalElementPropertyPaths:
+                         10: properties.fluidAdditionalAttributes.max
\ No newline at end of file
index eec94b6..89c4042 100644 (file)
@@ -141,10 +141,8 @@ formEditor
                       templateName: Inspector-TextEditor
                       label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                       propertyPath: options.minimum
-                      propertyValidatorsMode: OR
                       propertyValidators:
                         10: Integer
-                        20: FormElementIdentifierWithinCurlyBracesExclusive
                        additionalElementPropertyPaths:
                          10: properties.fluidAdditionalAttributes.minlength
                     300:
@@ -152,10 +150,8 @@ formEditor
                       templateName: Inspector-TextEditor
                       label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                       propertyPath: options.maximum
-                      propertyValidatorsMode: OR
                       propertyValidators:
                         10: Integer
-                        20: FormElementIdentifierWithinCurlyBracesExclusive
                        additionalElementPropertyPaths:
                          10: properties.fluidAdditionalAttributes.maxlength
                     9999:
@@ -203,19 +199,19 @@ formEditor
                       templateName: Inspector-TextEditor
                       label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                       propertyPath: options.minimum
-                      propertyValidatorsMode: OR
                       propertyValidators:
                         10: Integer
-                        20: FormElementIdentifierWithinCurlyBracesExclusive
+                       additionalElementPropertyPaths:
+                         10: properties.fluidAdditionalAttributes.min
                     300:
                       identifier: maximum
                       templateName: Inspector-TextEditor
                       label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                       propertyPath: options.maximum
-                      propertyValidatorsMode: OR
                       propertyValidators:
                         10: Integer
-                        20: FormElementIdentifierWithinCurlyBracesExclusive
+                       additionalElementPropertyPaths:
+                         10: properties.fluidAdditionalAttributes.max
                     9999:
                       identifier: removeButton
                       templateName: Inspector-RemoveElementEditor
index fbcc220..c396d9e 100644 (file)
@@ -1,8 +1,8 @@
-formEditor.editors.400
+formEditor.editors.500
 ----------------------
 
 :aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.editors.400
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.editors.500
 
 :aspect:`Data type`
       array/ :ref:`[TextEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.texteditor>`
index 8034b79..46da867 100644 (file)
@@ -34,10 +34,8 @@ formEditor.propertyCollections.validators.30
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                        propertyPath: options.minimum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                        additionalElementPropertyPaths:
                          10: properties.fluidAdditionalAttributes.minlength
                      300:
@@ -45,10 +43,8 @@ formEditor.propertyCollections.validators.30
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                        propertyPath: options.maximum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                        additionalElementPropertyPaths:
                          10: properties.fluidAdditionalAttributes.maxlength
                      9999:
index 7ed62a1..4e91d00 100644 (file)
@@ -30,10 +30,8 @@ formEditor.propertyCollections.validators.30.editors.200
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                        propertyPath: options.minimum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                        additionalElementPropertyPaths:
                          10: properties.fluidAdditionalAttributes.minlength
 
index 6c8dd73..1f9497f 100644 (file)
@@ -30,10 +30,8 @@ formEditor.propertyCollections.validators.30.editors.300
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                        propertyPath: options.maximum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                        additionalElementPropertyPaths:
                          10: properties.fluidAdditionalAttributes.maxlength
 
index 137a4af..1c70872 100644 (file)
@@ -34,19 +34,19 @@ formEditor.propertyCollections.validators.70
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                        propertyPath: options.minimum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
+                       additionalElementPropertyPaths:
+                         10: properties.fluidAdditionalAttributes.min
                      300:
                        identifier: maximum
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                        propertyPath: options.maximum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
+                       additionalElementPropertyPaths:
+                         10: properties.fluidAdditionalAttributes.max
                      9999:
                        identifier: removeButton
                        templateName: Inspector-RemoveElementEditor
index 166a03d..5b760ec 100644 (file)
@@ -30,8 +30,7 @@ formEditor.propertyCollections.validators.70.editors.200
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                        propertyPath: options.minimum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
-
+                       additionalElementPropertyPaths:
+                         10: properties.fluidAdditionalAttributes.min
index 0e32fd4..5404570 100644 (file)
@@ -30,7 +30,7 @@ formEditor.propertyCollections.validators.70.editors.300
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                        propertyPath: options.maximum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
+                       additionalElementPropertyPaths:
+                         10: properties.fluidAdditionalAttributes.max
\ No newline at end of file
index 8ba55e4..e6297d7 100644 (file)
@@ -138,10 +138,8 @@ formEditor
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                        propertyPath: options.minimum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                        additionalElementPropertyPaths:
                          10: properties.fluidAdditionalAttributes.minlength
                      300:
@@ -149,10 +147,8 @@ formEditor
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                        propertyPath: options.maximum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                        additionalElementPropertyPaths:
                          10: properties.fluidAdditionalAttributes.maxlength
                      9999:
@@ -200,19 +196,19 @@ formEditor
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                        propertyPath: options.minimum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
+                       additionalElementPropertyPaths:
+                         10: properties.fluidAdditionalAttributes.min
                      300:
                        identifier: maximum
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                        propertyPath: options.maximum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
+                       additionalElementPropertyPaths:
+                         10: properties.fluidAdditionalAttributes.max
                      9999:
                        identifier: removeButton
                        templateName: Inspector-RemoveElementEditor
index d1c380f..0629242 100644 (file)
@@ -1,8 +1,8 @@
-formEditor.editors.400
+formEditor.editors.500
 ----------------------
 
 :aspect:`Option path`
-      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.editors.400
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.editors.500
 
 :aspect:`Data type`
       array/ :ref:`[TextEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.texteditor>`
index fa3b38e..587b4b9 100644 (file)
@@ -34,10 +34,8 @@ formEditor.propertyCollections.validators.30
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                        propertyPath: options.minimum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                        additionalElementPropertyPaths:
                          10: properties.fluidAdditionalAttributes.minlength
                      300:
@@ -45,10 +43,8 @@ formEditor.propertyCollections.validators.30
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                        propertyPath: options.maximum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                        additionalElementPropertyPaths:
                          10: properties.fluidAdditionalAttributes.maxlength
                      9999:
index bf248cc..ddde307 100644 (file)
@@ -30,10 +30,8 @@ formEditor.propertyCollections.validators.30.editors.200
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                        propertyPath: options.minimum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                        additionalElementPropertyPaths:
                          10: properties.fluidAdditionalAttributes.minlength
 
index df02668..db4918f 100644 (file)
@@ -30,10 +30,8 @@ formEditor.propertyCollections.validators.30.editors.300
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                        propertyPath: options.maximum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
                        additionalElementPropertyPaths:
                          10: properties.fluidAdditionalAttributes.maxlength
 
index 42c6258..0df5642 100644 (file)
@@ -34,19 +34,19 @@ formEditor.propertyCollections.validators.70
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                        propertyPath: options.minimum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
+                       additionalElementPropertyPaths:
+                         10: properties.fluidAdditionalAttributes.min
                      300:
                        identifier: maximum
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                        propertyPath: options.maximum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
+                       additionalElementPropertyPaths:
+                         10: properties.fluidAdditionalAttributes.max
                      9999:
                        identifier: removeButton
                        templateName: Inspector-RemoveElementEditor
index 1ac2c3e..864f750 100644 (file)
@@ -30,8 +30,7 @@ formEditor.propertyCollections.validators.70.editors.200
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                        propertyPath: options.minimum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
-
+                       additionalElementPropertyPaths:
+                         10: properties.fluidAdditionalAttributes.min
index 851a82b..b9b1734 100644 (file)
@@ -30,7 +30,7 @@ formEditor.propertyCollections.validators.70.editors.300
                        templateName: Inspector-TextEditor
                        label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                        propertyPath: options.maximum
-                       propertyValidatorsMode: OR
                        propertyValidators:
                          10: Integer
-                         20: FormElementIdentifierWithinCurlyBracesExclusive
+                       additionalElementPropertyPaths:
+                         10: properties.fluidAdditionalAttributes.max
\ No newline at end of file
diff --git a/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email.rst b/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email.rst
new file mode 100644 (file)
index 0000000..2848b87
--- /dev/null
@@ -0,0 +1,79 @@
+.. include:: ../../../../Includes.txt
+
+
+.. _typo3.cms.form.prototypes.<prototypeidentifier>.formelementsdefinition.email:
+
+=======
+[Email]
+=======
+
+.. _typo3.cms.form.prototypes.<prototypeidentifier>.formelementsdefinition.email-properties:
+
+Properties
+==========
+
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.email.implementationclassname:
+.. include:: Email/implementationClassName.rst
+
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.email.properties.containerclassattribute:
+.. include:: Email/properties/containerClassAttribute.rst
+
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.email.properties.elementclassattribute:
+.. include:: Email/properties/elementClassAttribute.rst
+
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.email.properties.elementerrorclassattribute:
+.. include:: Email/properties/elementErrorClassAttribute.rst
+
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.email.validators:
+.. include:: Email/validators.rst
+
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.email.formeditor:
+.. include:: Email/formEditor.rst
+
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.email.formeditor.editors.100:
+.. include:: Email/formEditor/editors/100.rst
+
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.email.formeditor.editors.200:
+.. include:: Email/formEditor/editors/200.rst
+
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.email.formeditor.editors.400:
+.. include:: Email/formEditor/editors/400.rst
+
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.email.formeditor.editors.500:
+.. include:: Email/formEditor/editors/500.rst
+
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.email.formeditor.editors.700:
+.. include:: Email/formEditor/editors/700.rst
+
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.email.formeditor.editors.800:
+.. include:: Email/formEditor/editors/800.rst
+
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.email.formeditor.editors.900:
+.. include:: Email/formEditor/editors/900.rst
+
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.email.formeditor.editors.9999:
+.. include:: Email/formEditor/editors/9999.rst
+
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.email.formeditor.predefineddefaults:
+.. include:: Email/formEditor/predefinedDefaults.rst
+
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.email.formeditor.propertycollections.validators.40:
+.. include:: Email/formEditor/propertyCollections/validators/40.rst
+
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.email.formeditor.propertycollections.validators.40.identifier:
+.. include:: Email/formEditor/propertyCollections/validators/40/identifier.rst
+
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.email.formeditor.propertycollections.validators.40.editors.100:
+.. include:: Email/formEditor/propertyCollections/validators/40/editors/100.rst
+
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.email.formeditor.label:
+.. include:: Email/formEditor/label.rst
+
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.email.formeditor.group:
+.. include:: Email/formEditor/group.rst
+
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.email.formeditor.groupsorting:
+.. include:: Email/formEditor/groupSorting.rst
+
+.. _typo3.cms.form.prototypes.<prototypeIdentifier>.formelementsdefinition.email.formeditor.iconidentifier:
+.. include:: Email/formEditor/iconIdentifier.rst
diff --git a/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor.rst b/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor.rst
new file mode 100644 (file)
index 0000000..1feb45c
--- /dev/null
@@ -0,0 +1,105 @@
+formEditor
+----------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor
+
+:aspect:`Data type`
+      array
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      Recommended
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 2-
+
+          Email:
+            formEditor:
+              editors:
+                100:
+                  identifier: header
+                  templateName: Inspector-FormElementHeaderEditor
+                200:
+                  identifier: label
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.FormElement.editor.label.label
+                  propertyPath: label
+                400:
+                  identifier: placeholder
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.TextMixin.editor.placeholder.label
+                  propertyPath: properties.fluidAdditionalAttributes.placeholder
+                  doNotSetIfPropertyValueIsEmpty: true
+                500:
+                  identifier: defaultValue
+                  templateName: Inspector-TextEditor
+                  label: formEditor.elements.TextMixin.editor.defaultValue.label
+                  propertyPath: defaultValue
+                  propertyValidators:
+                    10: NaiveEmailOrEmpty
+                700:
+                  identifier: gridColumnViewPortConfiguration
+                  templateName: Inspector-GridColumnViewPortConfigurationEditor
+                  label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
+                  configurationOptions:
+                    viewPorts:
+                      10:
+                        viewPortIdentifier: xs
+                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
+                      20:
+                        viewPortIdentifier: sm
+                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
+                      30:
+                        viewPortIdentifier: md
+                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
+                      40:
+                        viewPortIdentifier: lg
+                        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
+                    numbersOfColumnsToUse:
+                      label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
+                      propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
+                      fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
+                800:
+                  identifier: requiredValidator
+                  templateName: Inspector-RequiredValidatorEditor
+                  label: formEditor.elements.FormElement.editor.requiredValidator.label
+                  validatorIdentifier: NotEmpty
+                  propertyPath: properties.fluidAdditionalAttributes.required
+                  propertyValue: required
+                900:
+                  identifier: validators
+                  templateName: Inspector-ValidatorsEditor
+                  label: formEditor.elements.TextMixin.editor.validators.label
+                  selectOptions:
+                    10:
+                      value: ''
+                      label: formEditor.elements.TextMixin.editor.validators.EmptyValue.label
+                    50:
+                      value: EmailAddress
+                      label: formEditor.elements.TextMixin.editor.validators.EmailAddress.label
+                9999:
+                  identifier: removeButton
+                  templateName: Inspector-RemoveElementEditor
+              predefinedDefaults:
+                defaultValue: ''
+                validators:
+                  -
+                    identifier: EmailAddress
+              propertyCollections:
+                validators:
+                  40:
+                    identifier: EmailAddress
+                    editors:
+                      100:
+                        identifier: header
+                        templateName: Inspector-CollectionElementHeaderEditor
+                        label: formEditor.elements.TextMixin.validators.EmailAddress.editor.header.label
+              label: formEditor.elements.Email.label
+              group: html5
+              groupSorting: 100
+              iconIdentifier: t3-form-icon-email
diff --git a/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/editors/100.rst b/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/editors/100.rst
new file mode 100644 (file)
index 0000000..2ce0619
--- /dev/null
@@ -0,0 +1,30 @@
+formEditor.editors.100
+----------------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.editors.100
+
+:aspect:`Data type`
+      array/ :ref:`[FormElementHeaderEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.formelementheadereditor>`
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      Recommended
+
+.. :aspect:`Related options`
+      @ToDo
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 4-
+
+         Email:
+           formEditor:
+             editors:
+               100:
+                 identifier: header
+                 templateName: Inspector-FormElementHeaderEditor
+
diff --git a/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/editors/200.rst b/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/editors/200.rst
new file mode 100644 (file)
index 0000000..0a07b0a
--- /dev/null
@@ -0,0 +1,32 @@
+formEditor.editors.200
+----------------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.editors.200
+
+:aspect:`Data type`
+      array/ :ref:`[TextEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.texteditor>`
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      Recommended
+
+.. :aspect:`Related options`
+      @ToDo
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 4-
+
+         Email:
+           formEditor:
+             editors:
+               200:
+                 identifier: label
+                 templateName: Inspector-TextEditor
+                 label: formEditor.elements.FormElement.editor.label.label
+                 propertyPath: label
+
diff --git a/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/editors/400.rst b/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/editors/400.rst
new file mode 100644 (file)
index 0000000..d3ce421
--- /dev/null
@@ -0,0 +1,35 @@
+formEditor.editors.400
+----------------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.editors.400
+
+:aspect:`Data type`
+      array/ :ref:`[TextEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.texteditor>`
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      Recommended
+
+.. :aspect:`Related options`
+      @ToDo
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 4-
+
+         Email:
+           formEditor:
+             editors:
+               400:
+                 identifier: placeholder
+                 templateName: Inspector-TextEditor
+                 label: formEditor.elements.TextMixin.editor.placeholder.label
+                 propertyPath: properties.fluidAdditionalAttributes.placeholder
+                 compatibilityPropertyPath: properties.placeholder
+                 doNotSetIfPropertyValueIsEmpty: true
+
+
diff --git a/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/editors/500.rst b/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/editors/500.rst
new file mode 100644 (file)
index 0000000..c4ac301
--- /dev/null
@@ -0,0 +1,32 @@
+formEditor.editors.500
+----------------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.editors.500
+
+:aspect:`Data type`
+      array/ :ref:`[TextEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.texteditor>`
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      Recommended
+
+.. :aspect:`Related options`
+      @ToDo
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 4-
+
+         Email:
+           formEditor:
+             editors:
+               500:
+                 identifier: defaultValue
+                 templateName: Inspector-TextEditor
+                 label: formEditor.elements.TextMixin.editor.defaultValue.label
+                 propertyPath: defaultValue
+
diff --git a/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/editors/700.rst b/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/editors/700.rst
new file mode 100644 (file)
index 0000000..bfaf951
--- /dev/null
@@ -0,0 +1,50 @@
+formEditor.editors.700
+----------------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.editors.700
+
+:aspect:`Data type`
+      array/ :ref:`[GridColumnViewPortConfigurationEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.gridcolumnviewportconfigurationeditor>`
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      Recommended
+
+.. :aspect:`Related options`
+      @ToDo
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 4-
+
+         Email:
+           formEditor:
+             editors:
+               700:
+                 identifier: gridColumnViewPortConfiguration
+                 templateName: Inspector-GridColumnViewPortConfigurationEditor
+                 label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
+                 configurationOptions:
+                   viewPorts:
+                     10:
+                       viewPortIdentifier: xs
+                       label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
+                     20:
+                       viewPortIdentifier: sm
+                       label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
+                     30:
+                       viewPortIdentifier: md
+                       label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
+                     40:
+                       viewPortIdentifier: lg
+                       label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
+                   numbersOfColumnsToUse:
+                     label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
+                     propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
+                     fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
+
+
diff --git a/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/editors/800.rst b/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/editors/800.rst
new file mode 100644 (file)
index 0000000..c20fb80
--- /dev/null
@@ -0,0 +1,33 @@
+formEditor.editors.800
+----------------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.editors.800
+
+:aspect:`Data type`
+      array/ :ref:`[RequiredValidatorEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.requiredvalidatoreditor>`
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      Recommended
+
+.. :aspect:`Related options`
+      @ToDo
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 4-
+
+         Email:
+           formEditor:
+             editors:
+               800:
+                 identifier: requiredValidator
+                 templateName: Inspector-RequiredValidatorEditor
+                 label: formEditor.elements.FormElement.editor.requiredValidator.label
+                 validatorIdentifier: NotEmpty
+                 propertyPath: properties.fluidAdditionalAttributes.required
+                 propertyValue: required
diff --git a/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/editors/900.rst b/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/editors/900.rst
new file mode 100644 (file)
index 0000000..69dfefd
--- /dev/null
@@ -0,0 +1,38 @@
+formEditor.editors.900
+----------------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.editors.900
+
+:aspect:`Data type`
+      array/ :ref:`[ValidatorsEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.validatorseditor>`
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      Recommended
+
+.. :aspect:`Related options`
+      @ToDo
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 4-
+
+         Email:
+           formEditor:
+             editors:
+               900:
+                 identifier: validators
+                 templateName: Inspector-ValidatorsEditor
+                 label: formEditor.elements.TextMixin.editor.validators.label
+                 selectOptions:
+                   10:
+                     value: ''
+                     label: formEditor.elements.TextMixin.editor.validators.EmptyValue.label
+                   50:
+                     value: EmailAddress
+                     label: formEditor.elements.TextMixin.editor.validators.EmailAddress.label
+
diff --git a/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/editors/9999.rst b/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/editors/9999.rst
new file mode 100644 (file)
index 0000000..425e5d2
--- /dev/null
@@ -0,0 +1,30 @@
+formEditor.editors.9999
+-----------------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.editors.9999
+
+:aspect:`Data type`
+      array/ :ref:`[RemoveElementEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.removeelementeditor>`
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      Recommended
+
+.. :aspect:`Related options`
+      @ToDo
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 4-
+
+         Email:
+           formEditor:
+             editors:
+               9999:
+                 identifier: removeButton
+                 templateName: Inspector-RemoveElementEditor
+
diff --git a/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/group.rst b/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/group.rst
new file mode 100644 (file)
index 0000000..8fdc056
--- /dev/null
@@ -0,0 +1,27 @@
+formEditor.group
+----------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.group
+
+:aspect:`Data type`
+      string
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      Recommended
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 3-
+
+         Email:
+           formEditor:
+             group: html5
+
+:aspect:`Description`
+      Define within which group within the ``form editor`` "new Element" modal the form element should be shown.
+      The ``group`` value must be equal to an array key within ``formElementGroups``.
\ No newline at end of file
diff --git a/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/groupSorting.rst b/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/groupSorting.rst
new file mode 100644 (file)
index 0000000..f86ca4a
--- /dev/null
@@ -0,0 +1,29 @@
+formEditor.groupSorting
+-----------------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.groupSorting
+
+:aspect:`Data type`
+      int
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      Recommended
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 3-
+
+         Email:
+           formEditor:
+             groupSorting: 100
+
+.. :aspect:`Good to know`
+      ToDo
+
+:aspect:`Description`
+      The position within the ``formEditor.group`` for this form element.
diff --git a/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/iconIdentifier.rst b/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/iconIdentifier.rst
new file mode 100644 (file)
index 0000000..10e62d2
--- /dev/null
@@ -0,0 +1,35 @@
+formEditor.iconIdentifier
+-------------------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.iconIdentifier
+
+:aspect:`Data type`
+      string
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      Recommended
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 3-
+
+         Email:
+           formEditor:
+             iconIdentifier: t3-form-icon-email
+
+.. :aspect:`Good to know`
+      ToDo
+
+:aspect:`Description`
+      An icon identifier which must be registered through the ``\TYPO3\CMS\Core\Imaging\IconRegistry``.
+      This icon will be shown within
+
+      - :ref:`"Inspector [FormElementHeaderEditor]"<typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.formelementheadereditor>`.
+      - :ref:`"Abstract view formelement templates"<apireference-formeditor-stage-commonabstractformelementtemplates>`.
+      - ``Tree`` component.
+      - "new element" Modal
\ No newline at end of file
diff --git a/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/label.rst b/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/label.rst
new file mode 100644 (file)
index 0000000..de31f57
--- /dev/null
@@ -0,0 +1,29 @@
+formEditor.label
+----------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.label
+
+:aspect:`Data type`
+      string
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      Yes
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 3-
+
+         Email:
+           formEditor:
+             label: formEditor.elements.Email.label
+
+:aspect:`Good to know`
+      - :ref:`"Translate form editor settings"<concepts-formeditor-translation-formeditor>`
+
+:aspect:`Description`
+      This label will be shown within the "new element" Modal.
diff --git a/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/predefinedDefaults.rst b/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/predefinedDefaults.rst
new file mode 100644 (file)
index 0000000..1990150
--- /dev/null
@@ -0,0 +1,33 @@
+formEditor.predefinedDefaults
+-----------------------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.predefinedDefaults
+
+:aspect:`Data type`
+      array
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      Recommended
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 3-
+
+         Email:
+           formEditor:
+             predefinedDefaults:
+               defaultValue: ''
+               validators:
+                 -
+                   identifier: EmailAddress
+
+.. :aspect:`Good to know`
+      ToDo
+
+:aspect:`Description`
+      Defines predefined defaults for form element properties which are prefilled, if the form element is added to a form.
diff --git a/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/propertyCollections/validators/40.rst b/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/propertyCollections/validators/40.rst
new file mode 100644 (file)
index 0000000..4eecb2c
--- /dev/null
@@ -0,0 +1,32 @@
+formEditor.propertyCollections.validators.40
+--------------------------------------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.propertyCollections.validators.40
+
+:aspect:`Data type`
+      array
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      No
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 5-
+
+         Email:
+           formEditor:
+             propertyCollections:
+               validators:
+                 40:
+                   identifier: EmailAddress
+                   editors:
+                     100:
+                       identifier: header
+                       templateName: Inspector-CollectionElementHeaderEditor
+                       label: formEditor.elements.TextMixin.validators.EmailAddress.editor.header.label
+
diff --git a/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/propertyCollections/validators/40/editors/100.rst b/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/propertyCollections/validators/40/editors/100.rst
new file mode 100644 (file)
index 0000000..02db33b
--- /dev/null
@@ -0,0 +1,32 @@
+formEditor.propertyCollections.validators.40.editors.100
+--------------------------------------------------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.propertyCollections.validators.40.editors.100
+
+:aspect:`Data type`
+      array/ :ref:`[CollectionElementHeaderEditor] <typo3.cms.form.prototypes.\<prototypeidentifier>.formelementsdefinition.\<formelementtypeidentifier>.formeditor.editors.*.collectionelementheadereditor>`
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      Recommended
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 8-
+
+         Email:
+           formEditor:
+             propertyCollections:
+               validators:
+                 40:
+                   identifier: EmailAddress
+                   editors:
+                     100:
+                       identifier: header
+                       templateName: Inspector-CollectionElementHeaderEditor
+                       label: formEditor.elements.TextMixin.validators.EmailAddress.editor.header.label
+
diff --git a/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/propertyCollections/validators/40/identifier.rst b/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/formEditor/propertyCollections/validators/40/identifier.rst
new file mode 100644 (file)
index 0000000..9bcdb5a
--- /dev/null
@@ -0,0 +1,33 @@
+formEditor.propertyCollections.validators.40.identifier
+-------------------------------------------------------
+
+:aspect:`Option path`
+      TYPO3.CMS.Form.prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.propertyCollections.validators.40.identifier
+
+:aspect:`Data type`
+      string
+
+:aspect:`Needed by`
+      Backend (form editor)
+
+:aspect:`Mandatory`
+      Yes
+
+:aspect:`Default value (for prototype 'standard')`
+      .. code-block:: yaml
+         :linenos:
+         :emphasize-lines: 6
+
+         Email:
+           formEditor:
+             propertyCollections:
+               validators:
+                 40:
+                   identifier: EmailAddress
+
+:aspect:`Good to know`
+      - :ref:`"Inspector"<concepts-formeditor-inspector>`
+      - :ref:`"\<validatorIdentifier>"<typo3.cms.form.prototypes.\<prototypeidentifier>.validatorsdefinition.\<validatoridentifier>>`
+
+:aspect:`Description`
+      Identifies the validator which should be attached to the form element. Must be equal to a existing ``<validatorIdentifier>``.
\ No newline at end of file
diff --git a/typo3/sysext/form/Documentation/Config/proto/formElementsDefinition/formElementTypes/Email/implementationClassName.rst