TYPO3 v15 dev-main snapshot ()

This commit is contained in:
2026-08-10 22:31:24 +02:00
commit aad9daaefd
1506 changed files with 94005 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
<?php
use TYPO3\CMS\Form\Controller\FormEditorController;
use TYPO3\CMS\Form\Controller\FormManagerController;
/**
* Definitions for modules provided by EXT:form
*/
return [
'web_FormFormbuilder' => [
'parent' => 'content',
'position' => ['after' => 'workspaces_admin'],
'access' => 'user',
'path' => '/module/form',
'iconIdentifier' => 'module-form',
'labels' => 'form.module',
'inheritNavigationComponentFromMainModule' => false,
],
'form_manager' => [
'parent' => 'web_FormFormbuilder',
'access' => 'user',
'path' => '/module/form/overview',
'iconIdentifier' => 'module-form',
'labels' => 'form.modules.form_manager',
'extensionName' => 'Form',
'controllerActions' => [
FormManagerController::class => [
'index', 'show', 'create', 'duplicate', 'references', 'delete',
],
],
],
'form_editor' => [
'parent' => 'web_FormFormbuilder',
'access' => 'user',
'path' => '/module/form/editor',
'iconIdentifier' => 'module-form',
'navigationComponent' => '@typo3/form/backend/form-editor-tree-container',
'labels' => 'form.modules.form_editor',
'extensionName' => 'Form',
'controllerActions' => [
FormEditorController::class => [
'index', 'saveForm', 'renderFormPage',
],
],
],
];
+8
View File
@@ -0,0 +1,8 @@
<?php
return [
'form' => [
\TYPO3\CMS\Core\ExpressionLanguage\TypoScriptConditionProvider::class,
\TYPO3\CMS\Form\Domain\Condition\ConditionProvider::class,
],
];
@@ -0,0 +1,9 @@
<?php
declare(strict_types=1);
return [
\TYPO3\CMS\Form\Mvc\Property\TypeConverter\PseudoFileReference::class => [
'tableName' => 'sys_file_reference',
],
];
+27
View File
@@ -0,0 +1,27 @@
<T3DataStructure>
<sheets>
<sDEF>
<ROOT>
<sheetTitle>LLL:EXT:form/Resources/Private/Language/Database.xlf:tt_content.pi_flexform.formframework.sheet_general</sheetTitle>
<type>array</type>
<el>
<settings.persistenceIdentifier>
<label>LLL:EXT:form/Resources/Private/Language/Database.xlf:tt_content.pi_flexform.formframework.persistenceIdentifier</label>
<onChange>reload</onChange>
<config>
<type>select</type>
<renderType>selectSingle</renderType>
<items>
<numIndex index="0" type="array">
<label>LLL:EXT:form/Resources/Private/Language/Database.xlf:tt_content.pi_flexform.formframework.selectPersistenceIdentifier</label>
<value></value>
</numIndex>
</items>
<softref>formPersistenceIdentifier</softref>
</config>
</settings.persistenceIdentifier>
</el>
</ROOT>
</sDEF>
</sheets>
</T3DataStructure>
+7
View File
@@ -0,0 +1,7 @@
<?php
return [
'formvh' => [
'TYPO3\\CMS\\Form\\ViewHelpers',
],
];
@@ -0,0 +1,12 @@
prototypes:
standard:
finishersDefinition:
Closure:
implementationClassName: TYPO3\CMS\Form\Domain\Finishers\ClosureFinisher
formEditor:
iconIdentifier: form-finisher
label: formEditor.elements.Form.finisher.Closure.editor.header.label
predefinedDefaults:
options:
closure: ''
errorMessage: ''
@@ -0,0 +1,46 @@
prototypes:
standard:
finishersDefinition:
Confirmation:
implementationClassName: TYPO3\CMS\Form\Domain\Finishers\ConfirmationFinisher
options:
templateName: Confirmation
# @todo: These paths are unfortunate. They should in general be
# "EXT:form/Resources/Private/(Templates / Layout / Partials),
# and then "Frontend/Finishers/Confirmation/Confirmation" as templateName
# to be fed to render(), to follow general core view rendering practice
# of having global "extension entry paths". Create some b/w compat layer,
# move position of default templates around and deprecate the old way.
templateRootPaths:
10: 'EXT:form/Resources/Private/Frontend/Templates/Finishers/Confirmation/'
layoutRootPaths:
10: 'EXT:form/Resources/Private/Frontend/Layout/Finishers/Confirmation/'
partialRootPaths:
10: 'EXT:form/Resources/Private/Frontend/Partials/Finishers/Confirmation/'
formEditor:
iconIdentifier: form-finisher
label: formEditor.elements.Form.finisher.Confirmation.editor.header.label
predefinedDefaults:
options:
message: ''
contentElementUid: ''
errorMessage: ''
FormEngine:
label: tt_content.finishersDefinition.Confirmation.label
elements:
contentElementUid:
label: tt_content.finishersDefinition.Confirmation.contentElementUid.label
config:
type: group
allowed: tt_content
size: 1
maxitems: 1
fieldWizard:
recordsOverview:
disabled: 1
message:
label: tt_content.finishersDefinition.Confirmation.message.label
config:
type: text
enableRichtext: true
richtextConfiguration: form-content
@@ -0,0 +1,8 @@
prototypes:
standard:
finishersDefinition:
DeleteUploads:
implementationClassName: TYPO3\CMS\Form\Domain\Finishers\DeleteUploadsFinisher
formEditor:
iconIdentifier: form-finisher
label: formEditor.elements.Form.finisher.DeleteUploads.editor.header.label
@@ -0,0 +1,161 @@
prototypes:
standard:
finishersDefinition:
EmailToReceiver:
implementationClassName: TYPO3\CMS\Form\Domain\Finishers\EmailFinisher
options:
templateName: 'Default'
templateRootPaths:
10: 'EXT:form/Resources/Private/Frontend/Templates/Finishers/Email/'
formEditor:
iconIdentifier: form-finisher
label: formEditor.elements.Form.finisher.EmailToReceiver.editor.header.label
predefinedDefaults:
options:
subject: ''
recipients: { }
senderAddress: ''
senderName: ''
replyToRecipients: { }
carbonCopyRecipients: { }
blindCarbonCopyRecipients: { }
addHtmlPart: true
attachUploads: true
translation:
language: ''
title: ''
message: ''
errorMessage: ''
FormEngine:
label: tt_content.finishersDefinition.EmailToReceiver.label
elements:
message:
label: tt_content.finishersDefinition.EmailToReceiver.message.label
config:
type: text
enableRichtext: true
richtextConfiguration: form-content
subject:
label: tt_content.finishersDefinition.EmailToReceiver.subject.label
config:
type: input
required: true
recipients:
title: tt_content.finishersDefinition.EmailToReceiver.recipients.label
type: array
section: true
sectionItemKey: email
sectionItemValue: name
el:
_arrayContainer:
type: array
title: tt_content.finishersDefinition.EmailToSender.recipients.item.label
el:
email:
label: tt_content.finishersDefinition.EmailToSender.recipients.email.label
config:
type: input
eval: TYPO3\CMS\Form\Evaluation\EmailOrFormElementIdentifier
required: true
name:
label: tt_content.finishersDefinition.EmailToSender.recipients.name.label
config:
type: input
senderAddress:
label: tt_content.finishersDefinition.EmailToReceiver.senderAddress.label
config:
type: input
eval: TYPO3\CMS\Form\Evaluation\EmailOrFormElementIdentifier
required: true
senderName:
label: tt_content.finishersDefinition.EmailToReceiver.senderName.label
config:
type: input
replyToRecipients:
title: tt_content.finishersDefinition.EmailToReceiver.replyToRecipients.label
type: array
section: true
sectionItemKey: email
sectionItemValue: name
el:
_arrayContainer:
type: array
title: tt_content.finishersDefinition.EmailToSender.replyToRecipients.item.label
el:
email:
label: tt_content.finishersDefinition.EmailToSender.recipients.email.label
config:
type: input
eval: TYPO3\CMS\Form\Evaluation\EmailOrFormElementIdentifier
required: true
name:
label: tt_content.finishersDefinition.EmailToSender.recipients.name.label
config:
type: input
carbonCopyRecipients:
title: tt_content.finishersDefinition.EmailToReceiver.carbonCopyRecipients.label
type: array
section: true
sectionItemKey: email
sectionItemValue: name
el:
_arrayContainer:
type: array
title: tt_content.finishersDefinition.EmailToSender.carbonCopyRecipients.item.label
el:
email:
label: tt_content.finishersDefinition.EmailToSender.recipients.email.label
config:
type: input
eval: TYPO3\CMS\Form\Evaluation\EmailOrFormElementIdentifier
required: true
name:
label: tt_content.finishersDefinition.EmailToSender.recipients.name.label
config:
type: input
blindCarbonCopyRecipients:
title: tt_content.finishersDefinition.EmailToReceiver.blindCarbonCopyRecipients.label
type: array
section: true
sectionItemKey: email
sectionItemValue: name
el:
_arrayContainer:
type: array
title: tt_content.finishersDefinition.EmailToSender.blindCarbonCopyRecipients.item.label
el:
email:
label: tt_content.finishersDefinition.EmailToSender.recipients.email.label
config:
type: input
eval: TYPO3\CMS\Form\Evaluation\EmailOrFormElementIdentifier
required: true
name:
label: tt_content.finishersDefinition.EmailToSender.recipients.name.label
config:
type: input
addHtmlPart:
label: tt_content.finishersDefinition.EmailToReceiver.addHtmlPart.label
config:
type: check
default: 1
translation:
language:
label: tt_content.finishersDefinition.EmailToReceiver.language.label
config:
type: select
renderType: selectSingle
minitems: 1
maxitems: 1
size: 1
items:
5:
label: tt_content.finishersDefinition.EmailToReceiver.language.0
value: ''
10:
label: tt_content.finishersDefinition.EmailToReceiver.language.1
value: default
title:
label: tt_content.finishersDefinition.EmailToReceiver.title.label
config:
type: input
@@ -0,0 +1,161 @@
prototypes:
standard:
finishersDefinition:
EmailToSender:
implementationClassName: TYPO3\CMS\Form\Domain\Finishers\EmailFinisher
options:
templateName: 'Default'
templateRootPaths:
10: 'EXT:form/Resources/Private/Frontend/Templates/Finishers/Email/'
formEditor:
iconIdentifier: form-finisher
label: formEditor.elements.Form.finisher.EmailToSender.editor.header.label
predefinedDefaults:
options:
subject: ''
recipients: { }
senderAddress: ''
senderName: ''
replyToRecipients: { }
carbonCopyRecipients: { }
blindCarbonCopyRecipients: { }
addHtmlPart: true
attachUploads: true
title: ''
message: ''
translation:
language: ''
errorMessage: ''
FormEngine:
label: tt_content.finishersDefinition.EmailToSender.label
elements:
message:
label: tt_content.finishersDefinition.EmailToSender.message.label
config:
type: text
enableRichtext: true
richtextConfiguration: form-content
subject:
label: tt_content.finishersDefinition.EmailToSender.subject.label
config:
type: input
required: true
recipients:
title: tt_content.finishersDefinition.EmailToSender.recipients.label
type: array
section: true
sectionItemKey: email
sectionItemValue: name
el:
_arrayContainer:
type: array
title: tt_content.finishersDefinition.EmailToSender.recipients.item.label
el:
email:
label: tt_content.finishersDefinition.EmailToSender.recipients.email.label
config:
type: input
eval: TYPO3\CMS\Form\Evaluation\EmailOrFormElementIdentifier
required: true
name:
label: tt_content.finishersDefinition.EmailToSender.recipients.name.label
config:
type: input
senderAddress:
label: tt_content.finishersDefinition.EmailToSender.senderAddress.label
config:
type: input
eval: TYPO3\CMS\Form\Evaluation\EmailOrFormElementIdentifier
required: true
senderName:
label: tt_content.finishersDefinition.EmailToSender.senderName.label
config:
type: input
replyToRecipients:
title: tt_content.finishersDefinition.EmailToSender.replyToRecipients.label
type: array
section: true
sectionItemKey: email
sectionItemValue: name
el:
_arrayContainer:
type: array
title: tt_content.finishersDefinition.EmailToSender.replyToRecipients.item.label
el:
email:
label: tt_content.finishersDefinition.EmailToSender.recipients.email.label
config:
type: input
eval: TYPO3\CMS\Form\Evaluation\EmailOrFormElementIdentifier
required: true
name:
label: tt_content.finishersDefinition.EmailToSender.recipients.name.label
config:
type: input
carbonCopyRecipients:
title: tt_content.finishersDefinition.EmailToSender.carbonCopyRecipients.label
type: array
section: true
sectionItemKey: email
sectionItemValue: name
el:
_arrayContainer:
type: array
title: tt_content.finishersDefinition.EmailToSender.carbonCopyRecipients.item.label
el:
email:
label: tt_content.finishersDefinition.EmailToSender.recipients.email.label
config:
type: input
eval: TYPO3\CMS\Form\Evaluation\EmailOrFormElementIdentifier
required: true
name:
label: tt_content.finishersDefinition.EmailToSender.recipients.name.label
config:
type: input
blindCarbonCopyRecipients:
title: tt_content.finishersDefinition.EmailToSender.blindCarbonCopyRecipients.label
type: array
section: true
sectionItemKey: email
sectionItemValue: name
el:
_arrayContainer:
type: array
title: tt_content.finishersDefinition.EmailToSender.blindCarbonCopyRecipients.item.label
el:
email:
label: tt_content.finishersDefinition.EmailToSender.recipients.email.label
config:
type: input
eval: TYPO3\CMS\Form\Evaluation\EmailOrFormElementIdentifier
required: true
name:
label: tt_content.finishersDefinition.EmailToSender.recipients.name.label
config:
type: input
addHtmlPart:
label: tt_content.finishersDefinition.EmailToSender.addHtmlPart.label
config:
type: check
default: 1
translation:
language:
label: tt_content.finishersDefinition.EmailToSender.language.label
config:
type: select
renderType: selectSingle
minitems: 1
maxitems: 1
size: 1
items:
5:
label: tt_content.finishersDefinition.EmailToSender.language.0
value: ''
10:
label: tt_content.finishersDefinition.EmailToSender.language.1
value: default
title:
label: tt_content.finishersDefinition.EmailToSender.title.label
config:
type: input
@@ -0,0 +1,16 @@
prototypes:
standard:
finishersDefinition:
FlashMessage:
implementationClassName: TYPO3\CMS\Form\Domain\Finishers\FlashMessageFinisher
formEditor:
iconIdentifier: form-finisher
label: formEditor.elements.Form.finisher.FlashMessage.editor.header.label
predefinedDefaults:
options:
messageBody: ''
messageTitle: ''
messageArguments: ''
messageCode: 0
severity: 0
errorMessage: ''
@@ -0,0 +1,36 @@
prototypes:
standard:
finishersDefinition:
Redirect:
implementationClassName: TYPO3\CMS\Form\Domain\Finishers\RedirectFinisher
formEditor:
iconIdentifier: form-finisher
label: formEditor.elements.Form.finisher.Redirect.editor.header.label
predefinedDefaults:
options:
pageUid: ''
additionalParameters: ''
fragment: ''
errorMessage: ''
FormEngine:
label: tt_content.finishersDefinition.Redirect.label
elements:
pageUid:
label: tt_content.finishersDefinition.Redirect.pageUid.label
config:
type: group
allowed: pages
size: 1
minitems: 1
maxitems: 1
fieldWizard:
recordsOverview:
disabled: 1
additionalParameters:
label: tt_content.finishersDefinition.Redirect.additionalParameters.label
config:
type: input
fragment:
label: tt_content.finishersDefinition.Redirect.fragment.label
config:
type: input
@@ -0,0 +1,11 @@
prototypes:
standard:
finishersDefinition:
SaveToDatabase:
implementationClassName: TYPO3\CMS\Form\Domain\Finishers\SaveToDatabaseFinisher
formEditor:
iconIdentifier: form-finisher
label: formEditor.elements.Form.finisher.SaveToDatabase.editor.header.label
predefinedDefaults:
options:
errorMessage: ''
@@ -0,0 +1,342 @@
prototypes:
standard:
formElementsDefinition:
AdvancedPassword:
formEditor:
editors:
100:
identifier: header
templateName: Inspector-FormElementHeaderEditor
200:
identifier: label
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.label.label
propertyPath: label
230:
identifier: elementDescription
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.elementDescription.label
propertyPath: properties.elementDescription
240:
identifier: enabled
templateName: Inspector-CheckboxEditor
label: formEditor.elements.FormElement.editor.enabled.label
propertyPath: renderingOptions.enabled
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: autocomplete
templateName: Inspector-SingleSelectEditor
label: formEditor.elements.FormElement.editor.autocomplete.label
propertyPath: properties.fluidAdditionalAttributes.autocomplete
doNotSetIfPropertyValueIsEmpty: true
selectOptions:
10:
value: ''
label: formEditor.elements.FormElement.editor.autocomplete.option.none
15:
value: 'off'
label: formEditor.elements.FormElement.editor.autocomplete.option.off
20:
value: 'new-password'
label: formEditor.elements.FormElement.editor.autocomplete.option.new-password
30:
value: 'current-password'
label: formEditor.elements.FormElement.editor.autocomplete.option.current-password
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
50:
viewPortIdentifier: xl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xl.label
60:
viewPortIdentifier: xxl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xxl.label
numbersOfColumnsToUse:
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
800:
identifier: requiredValidator
templateName: Inspector-RequiredValidatorEditor
label: formEditor.elements.FormElement.editor.requiredValidator.label
validatorIdentifier: NotEmpty
propertyPath: properties.fluidAdditionalAttributes.required
propertyValue: required
configurationOptions:
validationErrorMessage:
label: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.label
propertyPath: properties.validationErrorMessages
description: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.description
errorCodes:
10: 1221560910
20: 1221560718
30: 1347992400
40: 1347992453
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
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
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Alphanumeric.editor.validationErrorMessage.description
errorCodes:
10: 1221551320
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Text.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Text.editor.validationErrorMessage.description
errorCodes:
10: 1221565786
propertyPath: properties.validationErrorMessages
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
400:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.StringLength.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.StringLength.editor.validationErrorMessage.description
errorCodes:
10: 1238110957
20: 1269883975
30: 1428504122
40: 1238108068
50: 1238108069
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.EmailAddress.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.EmailAddress.editor.validationErrorMessage.description
errorCodes:
10: 1221559976
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Integer.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Integer.editor.validationErrorMessage.description
errorCodes:
10: 1221560494
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Float.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Float.editor.validationErrorMessage.description
errorCodes:
10: 1221560288
propertyPath: properties.validationErrorMessages
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
400:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.NumberRange.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.NumberRange.editor.validationErrorMessage.description
errorCodes:
10: 1221563685
20: 1221561046
propertyPath: properties.validationErrorMessages
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
description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
propertyPath: options.regularExpression
propertyValidators:
10: NotEmpty
20: RegularExpressionPattern
300:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.description
errorCodes:
10: 1221565130
propertyPath: properties.validationErrorMessages
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
label: formEditor.elements.AdvancedPassword.label
description: formEditor.elements.AdvancedPassword.description
group: custom
groupSorting: 500
iconIdentifier: form-advanced-password
implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
properties:
renderFieldset: 1
fieldsetClassAttribute: 'form-element form-element-advancedpassword mb-3'
containerClassAttribute: 'form-element mb-3'
elementClassAttribute: form-control
elementErrorClassAttribute: ~
labelClassAttribute: form-label
confirmationLabel: ''
confirmationClassAttribute: form-control
@@ -0,0 +1,109 @@
prototypes:
standard:
formElementsDefinition:
Checkbox:
formEditor:
editors:
100:
identifier: header
templateName: Inspector-FormElementHeaderEditor
200:
identifier: label
templateName: Inspector-TextareaEditor
label: formEditor.elements.FormElement.editor.label.label
propertyPath: label
enableRichtext: true
richtextConfiguration: form-label
230:
identifier: elementDescription
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.elementDescription.label
propertyPath: properties.elementDescription
240:
identifier: enabled
templateName: Inspector-CheckboxEditor
label: formEditor.elements.FormElement.editor.enabled.label
propertyPath: renderingOptions.enabled
600:
identifier: autocomplete
templateName: Inspector-SingleSelectEditor
label: formEditor.elements.FormElement.editor.autocomplete.label
propertyPath: properties.fluidAdditionalAttributes.autocomplete
doNotSetIfPropertyValueIsEmpty: true
selectOptions:
10:
value: ''
label: formEditor.elements.FormElement.editor.autocomplete.option.none
15:
value: 'off'
label: formEditor.elements.FormElement.editor.autocomplete.option.off
20:
value: 'honorific-prefix'
label: formEditor.elements.FormElement.editor.autocomplete.option.honorific-prefix
30:
value: 'honorific-suffix'
label: formEditor.elements.FormElement.editor.autocomplete.option.honorific-suffix
70:
value: 'language'
label: formEditor.elements.FormElement.editor.autocomplete.option.language
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
50:
viewPortIdentifier: xl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xl.label
60:
viewPortIdentifier: xxl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xxl.label
numbersOfColumnsToUse:
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
800:
identifier: requiredValidator
templateName: Inspector-RequiredValidatorEditor
label: formEditor.elements.FormElement.editor.requiredValidator.label
validatorIdentifier: NotEmpty
propertyPath: properties.fluidAdditionalAttributes.required
propertyValue: required
configurationOptions:
validationErrorMessage:
label: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.label
propertyPath: properties.validationErrorMessages
description: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.description
errorCodes:
10: 1221560910
20: 1221560718
30: 1347992400
40: 1347992453
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
label: formEditor.elements.Checkbox.label
description: formEditor.elements.Checkbox.description
group: select
groupSorting: 100
iconIdentifier: form-checkbox
implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
properties:
containerClassAttribute: 'form-element form-element-check mb-3'
elementClassAttribute: form-check-input
elementErrorClassAttribute: ~
labelClassAttribute: form-check-wrapping-label
labelTextClassAttribute: form-check-label
value: 1
@@ -0,0 +1,76 @@
prototypes:
standard:
formElementsDefinition:
ContentElement:
formEditor:
editors:
100:
identifier: header
templateName: Inspector-FormElementHeaderEditor
240:
identifier: enabled
templateName: Inspector-CheckboxEditor
label: formEditor.elements.FormElement.editor.enabled.label
propertyPath: renderingOptions.enabled
300:
identifier: contentElement
templateName: Inspector-Typo3WinBrowserEditor
label: formEditor.elements.ContentElement.editor.contentElement.label
buttonLabel: formEditor.elements.ContentElement.editor.contentElement.buttonLabel
browsableType: tt_content
iconIdentifier: mimetypes-x-content-text
propertyPath: properties.contentElementUid
propertyValidatorsMode: OR
propertyValidators:
10: Integer
20: FormElementIdentifierWithinCurlyBracesExclusive
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
50:
viewPortIdentifier: xl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xl.label
60:
viewPortIdentifier: xxl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xxl.label
numbersOfColumnsToUse:
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
predefinedDefaults:
label: formEditor.elements.ContentElement.label
properties:
contentElementUid: ''
label: formEditor.elements.ContentElement.label
description: formEditor.elements.ContentElement.description
group: custom
groupSorting: 700
iconIdentifier: form-content-element
implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
properties:
contentElementUid: ''
outerContainerClassAttribute: clearfix
variants:
-
identifier: hide-1
renderingOptions:
enabled: false
condition: 'stepType == "SummaryPage" || finisherIdentifier in ["EmailToSender", "EmailToReceiver"]'
@@ -0,0 +1,134 @@
prototypes:
standard:
formElementsDefinition:
CountrySelect:
formEditor:
editors:
100:
identifier: header
templateName: Inspector-FormElementHeaderEditor
200:
identifier: label
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.label.label
propertyPath: label
230:
identifier: elementDescription
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.elementDescription.label
propertyPath: properties.elementDescription
240:
identifier: enabled
templateName: Inspector-CheckboxEditor
label: formEditor.elements.FormElement.editor.enabled.label
propertyPath: renderingOptions.enabled
245:
identifier: defaultValue
templateName: Inspector-CountrySingleSelectEditor
label: formEditor.elements.CountrySelect.editor.defaultValue.label
propertyPath: defaultValue
description: formEditor.elements.CountrySelect.editor.defaultValue.description
250:
identifier: inactiveOption
templateName: Inspector-TextEditor
label: formEditor.elements.SelectionMixin.editor.inactiveOption.label
propertyPath: properties.prependOptionLabel
description: formEditor.elements.SelectionMixin.editor.inactiveOption.description
doNotSetIfPropertyValueIsEmpty: true
300:
identifier: prioritizedCountries
templateName: Inspector-CountrySelectEditor
label: formEditor.elements.CountrySelect.editor.prioritizedCountries.label
propertyPath: properties.prioritizedCountries
310:
identifier: onlyCountries
templateName: Inspector-CountrySelectEditor
label: formEditor.elements.CountrySelect.editor.onlyCountries.label
propertyPath: properties.onlyCountries
320:
identifier: excludeCountries
templateName: Inspector-CountrySelectEditor
label: formEditor.elements.CountrySelect.editor.excludeCountries.label
propertyPath: properties.excludeCountries
600:
identifier: autocomplete
templateName: Inspector-SingleSelectEditor
label: formEditor.elements.FormElement.editor.autocomplete.label
propertyPath: properties.fluidAdditionalAttributes.autocomplete
doNotSetIfPropertyValueIsEmpty: true
selectOptions:
10:
value: ''
label: formEditor.elements.FormElement.editor.autocomplete.option.none
15:
value: 'off'
label: formEditor.elements.FormElement.editor.autocomplete.option.off
20:
value: 'country'
label: formEditor.elements.FormElement.editor.autocomplete.option.country
30:
value: 'country-name'
label: formEditor.elements.FormElement.editor.autocomplete.option.country-name
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
50:
viewPortIdentifier: xl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xl.label
60:
viewPortIdentifier: xxl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xxl.label
numbersOfColumnsToUse:
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
800:
identifier: requiredValidator
templateName: Inspector-RequiredValidatorEditor
label: formEditor.elements.FormElement.editor.requiredValidator.label
validatorIdentifier: NotEmpty
propertyPath: properties.fluidAdditionalAttributes.required
propertyValue: required
configurationOptions:
validationErrorMessage:
label: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.label
propertyPath: properties.validationErrorMessages
description: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.description
errorCodes:
10: 1221560910
20: 1221560718
30: 1347992400
40: 1347992453
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
predefinedDefaults:
defaultValue: ''
properties:
options: { }
label: formEditor.elements.CountrySelect.label
description: formEditor.elements.CountrySelect.description
group: select
groupSorting: 200
iconIdentifier: form-multi-select
implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
properties:
containerClassAttribute: 'form-element form-element-select mb-3'
elementClassAttribute: form-select
elementErrorClassAttribute: ~
labelClassAttribute: form-label
@@ -0,0 +1,351 @@
prototypes:
standard:
formElementsDefinition:
Date:
formEditor:
editors:
100:
identifier: header
templateName: Inspector-FormElementHeaderEditor
200:
identifier: label
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.label.label
propertyPath: label
230:
identifier: elementDescription
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.elementDescription.label
propertyPath: properties.elementDescription
240:
identifier: enabled
templateName: Inspector-CheckboxEditor
label: formEditor.elements.FormElement.editor.enabled.label
propertyPath: renderingOptions.enabled
300:
identifier: defaultValue
templateName: Inspector-DateEditor
label: formEditor.elements.TextMixin.editor.defaultValue.label
propertyPath: defaultValue
propertyValidators:
10: RFC3339FullDateOrEmpty
550:
identifier: step
templateName: Inspector-TextEditor
label: formEditor.elements.Date.editor.step.label
description: formEditor.elements.Date.editor.step.description
propertyPath: properties.fluidAdditionalAttributes.step
propertyValidators:
10: Integer
600:
identifier: autocomplete
templateName: Inspector-SingleSelectEditor
label: formEditor.elements.FormElement.editor.autocomplete.label
propertyPath: properties.fluidAdditionalAttributes.autocomplete
doNotSetIfPropertyValueIsEmpty: true
selectOptions:
10:
value: ''
label: formEditor.elements.FormElement.editor.autocomplete.option.none
15:
value: 'off'
label: formEditor.elements.FormElement.editor.autocomplete.option.off
20:
value: 'bday'
label: formEditor.elements.FormElement.editor.autocomplete.option.bday
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
50:
viewPortIdentifier: xl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xl.label
60:
viewPortIdentifier: xxl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xxl.label
numbersOfColumnsToUse:
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
800:
identifier: requiredValidator
templateName: Inspector-RequiredValidatorEditor
label: formEditor.elements.FormElement.editor.requiredValidator.label
validatorIdentifier: NotEmpty
propertyPath: properties.fluidAdditionalAttributes.required
propertyValue: required
configurationOptions:
validationErrorMessage:
label: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.label
propertyPath: properties.validationErrorMessages
description: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.description
errorCodes:
10: 1221560910
20: 1221560718
30: 1347992400
40: 1347992453
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: DateRange
label: formEditor.elements.Date.editor.validators.DateRange.label
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
predefinedDefaults:
defaultValue: ''
properties:
fluidAdditionalAttributes:
min: ''
max: ''
step: 1
propertyCollections:
validators:
10:
identifier: DateRange
editors:
100:
identifier: header
templateName: Inspector-CollectionElementHeaderEditor
label: formEditor.elements.DatePicker.validators.DateRange.editor.header.label
250:
identifier: minimum
templateName: Inspector-DateEditor
label: formEditor.elements.DatePicker.validators.DateRange.editor.minimum
propertyPath: options.minimum
propertyValidators:
10: RFC3339FullDateOrEmpty
additionalElementPropertyPaths:
10: properties.fluidAdditionalAttributes.min
300:
identifier: maximum
templateName: Inspector-DateEditor
label: formEditor.elements.DatePicker.validators.DateRange.editor.maximum
propertyPath: options.maximum
propertyValidators:
10: RFC3339FullDateOrEmpty
additionalElementPropertyPaths:
10: properties.fluidAdditionalAttributes.max
400:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Alphanumeric.editor.validationErrorMessage.description
errorCodes:
10: 1521293685
20: 1521293686
30: 1521293687
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Text.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Text.editor.validationErrorMessage.description
errorCodes:
10: 1221565786
propertyPath: properties.validationErrorMessages
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
400:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.StringLength.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.StringLength.editor.validationErrorMessage.description
errorCodes:
10: 1238110957
20: 1269883975
30: 1428504122
40: 1238108068
50: 1238108069
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.EmailAddress.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.EmailAddress.editor.validationErrorMessage.description
errorCodes:
10: 1221559976
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Integer.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Integer.editor.validationErrorMessage.description
errorCodes:
10: 1221560494
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Float.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Float.editor.validationErrorMessage.description
errorCodes:
10: 1221560288
propertyPath: properties.validationErrorMessages
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
400:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.NumberRange.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.NumberRange.editor.validationErrorMessage.description
errorCodes:
10: 1221563685
20: 1221561046
propertyPath: properties.validationErrorMessages
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
description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
propertyPath: options.regularExpression
propertyValidators:
10: NotEmpty
20: RegularExpressionPattern
300:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.description
errorCodes:
10: 1221565130
propertyPath: properties.validationErrorMessages
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
label: formEditor.elements.Date.label
description: formEditor.elements.Date.description
group: html5
groupSorting: 500
iconIdentifier: form-date-picker
implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\Date
properties:
containerClassAttribute: 'form-element form-element-date mb-3'
elementClassAttribute: form-control
elementErrorClassAttribute: ~
labelClassAttribute: form-label
displayFormat: d.m.Y
fluidAdditionalAttributes:
pattern: '([0-9]{4})-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])'
@@ -0,0 +1,324 @@
prototypes:
standard:
formElementsDefinition:
Email:
formEditor:
editors:
100:
identifier: header
templateName: Inspector-FormElementHeaderEditor
200:
identifier: label
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.label.label
propertyPath: label
230:
identifier: elementDescription
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.elementDescription.label
propertyPath: properties.elementDescription
240:
identifier: enabled
templateName: Inspector-CheckboxEditor
label: formEditor.elements.FormElement.editor.enabled.label
propertyPath: renderingOptions.enabled
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: autocomplete
templateName: Inspector-SingleSelectEditor
label: formEditor.elements.FormElement.editor.autocomplete.label
propertyPath: properties.fluidAdditionalAttributes.autocomplete
doNotSetIfPropertyValueIsEmpty: true
selectOptions:
10:
value: ''
label: formEditor.elements.FormElement.editor.autocomplete.option.none
15:
value: 'off'
label: formEditor.elements.FormElement.editor.autocomplete.option.off
20:
value: 'email'
label: formEditor.elements.FormElement.editor.autocomplete.option.email
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
50:
viewPortIdentifier: xl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xl.label
60:
viewPortIdentifier: xxl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xxl.label
numbersOfColumnsToUse:
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
800:
identifier: requiredValidator
templateName: Inspector-RequiredValidatorEditor
label: formEditor.elements.FormElement.editor.requiredValidator.label
validatorIdentifier: NotEmpty
propertyPath: properties.fluidAdditionalAttributes.required
propertyValue: required
configurationOptions:
validationErrorMessage:
label: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.label
propertyPath: properties.validationErrorMessages
description: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.description
errorCodes:
10: 1221560910
20: 1221560718
30: 1347992400
40: 1347992453
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Alphanumeric.editor.validationErrorMessage.description
errorCodes:
10: 1221551320
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Text.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Text.editor.validationErrorMessage.description
errorCodes:
10: 1221565786
propertyPath: properties.validationErrorMessages
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
400:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.StringLength.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.StringLength.editor.validationErrorMessage.description
errorCodes:
10: 1238110957
20: 1269883975
30: 1428504122
40: 1238108068
50: 1238108069
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.EmailAddress.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.EmailAddress.editor.validationErrorMessage.description
errorCodes:
10: 1221559976
propertyPath: properties.validationErrorMessages
50:
identifier: Integer
editors:
100:
identifier: header
templateName: Inspector-CollectionElementHeaderEditor
label: formEditor.elements.TextMixin.validators.Integer.editor.header.label
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Integer.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Integer.editor.validationErrorMessage.description
errorCodes:
10: 1221560494
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Float.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Float.editor.validationErrorMessage.description
errorCodes:
10: 1221560288
propertyPath: properties.validationErrorMessages
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
400:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.NumberRange.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.NumberRange.editor.validationErrorMessage.description
errorCodes:
10: 1221563685
20: 1221561046
propertyPath: properties.validationErrorMessages
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
description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
propertyPath: options.regularExpression
propertyValidators:
10: NotEmpty
20: RegularExpressionPattern
300:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.description
errorCodes:
10: 1221565130
propertyPath: properties.validationErrorMessages
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
label: formEditor.elements.Email.label
description: formEditor.elements.Email.description
group: html5
groupSorting: 100
iconIdentifier: form-email
implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
properties:
containerClassAttribute: 'form-element form-element-email mb-3'
elementClassAttribute: form-control
elementErrorClassAttribute: ~
labelClassAttribute: form-label
validators:
-
identifier: EmailAddress
@@ -0,0 +1,64 @@
prototypes:
standard:
formElementsDefinition:
Fieldset:
formEditor:
editors:
100:
identifier: header
templateName: Inspector-FormElementHeaderEditor
200:
identifier: label
templateName: Inspector-TextEditor
label: formEditor.elements.Fieldset.editor.label.label
propertyPath: label
240:
identifier: enabled
templateName: Inspector-CheckboxEditor
label: formEditor.elements.FormElement.editor.enabled.label
propertyPath: renderingOptions.enabled
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
50:
viewPortIdentifier: xl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xl.label
60:
viewPortIdentifier: xxl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xxl.label
numbersOfColumnsToUse:
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
label: formEditor.elements.Fieldset.label
description: formEditor.elements.Fieldset.description
group: container
groupSorting: 100
_isCompositeFormElement: true
iconIdentifier: form-fieldset
implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\Section
properties:
containerClassAttribute: ~
elementClassAttribute: 'form-element form-element-fieldset mb-3'
elementErrorClassAttribute: ~
renderingOptions:
_isCompositeFormElement: true
_isSection: true
@@ -0,0 +1,220 @@
prototypes:
standard:
formElementsDefinition:
FileUpload:
formEditor:
editors:
100:
identifier: header
templateName: Inspector-FormElementHeaderEditor
200:
identifier: label
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.label.label
propertyPath: label
230:
identifier: elementDescription
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.elementDescription.label
propertyPath: properties.elementDescription
240:
identifier: enabled
templateName: Inspector-CheckboxEditor
label: formEditor.elements.FormElement.editor.enabled.label
propertyPath: renderingOptions.enabled
300:
identifier: allowedMimeTypes
templateName: Inspector-MultiSelectEditor
label: formEditor.elements.FileUpload.editor.allowedMimeTypes.label
propertyPath: properties.allowedMimeTypes
selectOptions:
10:
value: application/msword
label: formEditor.elements.FileUpload.editor.allowedMimeTypes.doc
20:
value: application/vnd.openxmlformats-officedocument.wordprocessingml.document
label: formEditor.elements.FileUpload.editor.allowedMimeTypes.docx
30:
value: application/msexcel
label: formEditor.elements.FileUpload.editor.allowedMimeTypes.xls
40:
value: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
label: formEditor.elements.FileUpload.editor.allowedMimeTypes.xlsx
50:
value: application/pdf
label: formEditor.elements.FileUpload.editor.allowedMimeTypes.pdf
60:
value: application/vnd.oasis.opendocument.text
label: formEditor.elements.FileUpload.editor.allowedMimeTypes.odt
70:
value: application/vnd.oasis.opendocument.spreadsheet-template
label: formEditor.elements.FileUpload.editor.allowedMimeTypes.ods
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/'
500:
identifier: multiple
templateName: Inspector-CheckboxEditor
label: formEditor.elements.FileUpload.editor.multiple.label
propertyPath: properties.multiple
550:
identifier: allowRemoval
templateName: Inspector-CheckboxEditor
label: formEditor.elements.FileUpload.editor.allowRemoval.label
propertyPath: properties.allowRemoval
600:
identifier: autocomplete
templateName: Inspector-SingleSelectEditor
label: formEditor.elements.FormElement.editor.autocomplete.label
propertyPath: properties.fluidAdditionalAttributes.autocomplete
doNotSetIfPropertyValueIsEmpty: true
selectOptions:
10:
value: ''
label: formEditor.elements.FormElement.editor.autocomplete.option.none
15:
value: 'off'
label: formEditor.elements.FormElement.editor.autocomplete.option.off
20:
value: 'photo'
label: formEditor.elements.FormElement.editor.autocomplete.option.photo
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
50:
viewPortIdentifier: xl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xl.label
60:
viewPortIdentifier: xxl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xxl.label
numbersOfColumnsToUse:
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
800:
identifier: requiredValidator
templateName: Inspector-RequiredValidatorEditor
label: formEditor.elements.FormElement.editor.requiredValidator.label
validatorIdentifier: NotEmpty
propertyPath: properties.fluidAdditionalAttributes.required
propertyValue: required
configurationOptions:
validationErrorMessage:
label: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.label
propertyPath: properties.validationErrorMessages
description: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.description
errorCodes:
10: 1221560910
20: 1221560718
30: 1347992400
40: 1347992453
900:
identifier: validators
templateName: Inspector-ValidatorsEditor
label: formEditor.elements.FileUploadMixin.editor.validators.label
selectOptions:
10:
value: ''
label: formEditor.elements.FileUploadMixin.editor.validators.EmptyValue.label
20:
value: FileSize
label: formEditor.elements.FileUploadMixin.editor.validators.FileSize.label
30:
value: Count
label: formEditor.elements.FileUploadMixin.editor.validators.Count.label
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
predefinedDefaults:
properties:
saveToFileMount: '1:/user_upload/'
allowedMimeTypes:
- application/pdf
propertyCollections:
validators:
10:
identifier: FileSize
editors:
100:
identifier: header
templateName: Inspector-CollectionElementHeaderEditor
label: formEditor.elements.FileUploadMixin.validators.FileSize.editor.header.label
150:
identifier: maximumFileSize
templateName: Inspector-MaximumFileSizeEditor
label: formEditor.elements.FileUpload.editor.maximumFileSize.label
200:
identifier: minimum
templateName: Inspector-TextEditor
label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
propertyPath: options.minimum
propertyValidators:
10: FileSize
300:
identifier: maximum
templateName: Inspector-TextEditor
label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
propertyPath: options.maximum
propertyValidators:
10: FileSize
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
20:
identifier: Count
editors:
100:
identifier: header
templateName: Inspector-CollectionElementHeaderEditor
label: formEditor.elements.FileUploadMixin.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
label: formEditor.elements.FileUpload.label
description: formEditor.elements.FileUpload.description
group: custom
groupSorting: 100
iconIdentifier: form-file-upload
implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\FileUpload
properties:
containerClassAttribute: 'form-element form-element-fileupload mb-3'
elementClassAttribute: form-control
elementErrorClassAttribute: ~
labelClassAttribute: form-label
saveToFileMount: '1:/user_upload/'
allowedMimeTypes: []
@@ -0,0 +1,520 @@
prototypes:
standard:
formElementsDefinition:
Form:
formEditor:
predefinedDefaults:
renderingOptions:
submitButtonLabel: formEditor.elements.Form.editor.submitButtonLabel.value
editors:
100:
identifier: header
templateName: Inspector-FormElementHeaderEditor
200:
identifier: label
templateName: Inspector-TextEditor
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
900:
identifier: finishers
templateName: Inspector-FinishersEditor
label: formEditor.elements.Form.editor.finishers.label
selectOptions:
10:
value: ''
label: formEditor.elements.Form.editor.finishers.EmptyValue.label
20:
value: EmailToSender
label: formEditor.elements.Form.editor.finishers.EmailToSender.label
30:
value: EmailToReceiver
label: formEditor.elements.Form.editor.finishers.EmailToReceiver.label
40:
value: Redirect
label: formEditor.elements.Form.editor.finishers.Redirect.label
50:
value: DeleteUploads
label: formEditor.elements.Form.editor.finishers.DeleteUploads.label
60:
value: Confirmation
label: formEditor.elements.Form.editor.finishers.Confirmation.label
_isCompositeFormElement: false
_isTopLevelFormElement: true
saveSuccessFlashMessageTitle: formEditor.elements.Form.saveSuccessFlashMessageTitle
saveSuccessFlashMessageMessage: formEditor.elements.Form.saveSuccessFlashMessageMessage
saveErrorFlashMessageTitle: formEditor.elements.Form.saveErrorFlashMessageTitle
saveErrorFlashMessageMessage: formEditor.elements.Form.saveErrorFlashMessageMessage
modalValidationErrorsDialogTitle: formEditor.modals.validationErrors.dialogTitle
modalValidationErrorsConfirmButton: formEditor.modals.validationErrors.confirmButton
modalInsertElementsDialogTitle: formEditor.modals.insertElements.dialogTitle
modalInsertPagesDialogTitle: formEditor.modals.newPages.dialogTitle
modalCloseDialogMessage: formEditor.modals.close.dialogMessage
modalCloseDialogTitle: formEditor.modals.close.dialogTitle
modalCloseConfirmButton: formEditor.modals.close.confirmButton
modalCloseCancelButton: formEditor.modals.close.cancelButton
modalRemoveElementDialogTitle: formEditor.modals.removeElement.dialogTitle
modalRemoveElementDialogMessage: formEditor.modals.removeElement.dialogMessage
modalRemoveElementConfirmButton: formEditor.modals.removeElement.confirmButton
modalRemoveElementCancelButton: formEditor.modals.removeElement.cancelButton
modalRemoveElementLastAvailablePageFlashMessageTitle: formEditor.modals.removeElement.lastAvailablePageFlashMessageTitle
modalRemoveElementLastAvailablePageFlashMessageMessage: formEditor.modals.removeElement.lastAvailablePageFlashMessageMessage
paginationTitle: formEditor.pagination.title
iconIdentifier: content-form
propertyCollections:
finishers:
10:
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
250:
identifier: message
templateName: Inspector-TextareaEditor
label: formEditor.elements.Form.finisher.EmailToSender.editor.message.label
propertyPath: options.message
description: formEditor.elements.Form.finisher.EmailToSender.editor.message.description
enableRichtext: true
richtextConfiguration: form-content
350:
identifier: recipients
templateName: Inspector-PropertyGridEditor
label: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.label
propertyPath: options.recipients
propertyValidators:
10: NotEmpty
description: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.description
isSortable: true
enableAddRow: true
enableDeleteRow: true
useLabelAsFallbackValue: false
gridColumns:
-
name: value
title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
enableFormelementSelectionButton: true
-
name: label
title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
enableFormelementSelectionButton: true
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
description: formEditor.elements.Form.finisher.EmailToSender.editor.senderAddress.description
600:
identifier: senderName
templateName: Inspector-TextEditor
label: formEditor.elements.Form.finisher.EmailToSender.editor.senderName.label
propertyPath: options.senderName
enableFormelementSelectionButton: true
propertyValidators:
10: FormElementIdentifierWithinCurlyBracesInclusive
description: formEditor.elements.Form.finisher.EmailToSender.editor.senderName.description
750:
identifier: replyToRecipients
templateName: Inspector-PropertyGridEditor
label: formEditor.elements.Form.finisher.EmailToSender.editor.replyToRecipients.label
propertyPath: options.replyToRecipients
isSortable: true
enableAddRow: true
enableDeleteRow: true
useLabelAsFallbackValue: false
gridColumns:
-
name: value
title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
enableFormelementSelectionButton: true
-
name: label
title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
enableFormelementSelectionButton: true
850:
identifier: carbonCopyRecipients
templateName: Inspector-PropertyGridEditor
label: formEditor.elements.Form.finisher.EmailToSender.editor.carbonCopyRecipients.label
propertyPath: options.carbonCopyRecipients
isSortable: true
enableAddRow: true
enableDeleteRow: true
useLabelAsFallbackValue: false
gridColumns:
-
name: value
title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
enableFormelementSelectionButton: true
-
name: label
title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
enableFormelementSelectionButton: true
950:
identifier: blindCarbonCopyRecipients
templateName: Inspector-PropertyGridEditor
label: formEditor.elements.Form.finisher.EmailToSender.editor.blindCarbonCopyRecipients.label
propertyPath: options.blindCarbonCopyRecipients
isSortable: true
enableAddRow: true
enableDeleteRow: true
useLabelAsFallbackValue: false
gridColumns:
-
name: value
title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
enableFormelementSelectionButton: true
-
name: label
title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
enableFormelementSelectionButton: true
1050:
identifier: addHtmlPart
templateName: Inspector-CheckboxEditor
label: formEditor.elements.Form.finisher.EmailToSender.editor.addHtmlPart.label
propertyPath: options.addHtmlPart
description: formEditor.elements.Form.finisher.EmailToSender.editor.addHtmlPart.description
1100:
identifier: attachUploads
templateName: Inspector-CheckboxEditor
label: formEditor.elements.Form.finisher.EmailToSender.editor.attachUploads.label
propertyPath: options.attachUploads
1200:
identifier: language
templateName: Inspector-SingleSelectEditor
label: formEditor.elements.Form.finisher.EmailToSender.editor.language.label
propertyPath: options.translation.language
selectOptions:
5:
value: ''
label: formEditor.elements.Form.finisher.EmailToSender.editor.language.0
10:
value: default
label: formEditor.elements.Form.finisher.EmailToSender.editor.language.1
1400:
identifier: title
templateName: Inspector-TextEditor
label: formEditor.elements.Form.finisher.EmailToSender.editor.title.label
propertyPath: options.title
description: formEditor.elements.Form.finisher.EmailToSender.editor.title.description
enableFormelementSelectionButton: true
propertyValidators:
10: FormElementIdentifierWithinCurlyBracesInclusive
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
identifier: EmailToSender
20:
editors:
100:
identifier: header
templateName: Inspector-CollectionElementHeaderEditor
label: formEditor.elements.Form.finisher.EmailToReceiver.editor.header.label
200:
identifier: subject
templateName: Inspector-TextEditor
label: formEditor.elements.Form.finisher.EmailToReceiver.editor.subject.label
propertyPath: options.subject
enableFormelementSelectionButton: true
propertyValidators:
10: NotEmpty
20: FormElementIdentifierWithinCurlyBracesInclusive
250:
identifier: message
templateName: Inspector-TextareaEditor
label: formEditor.elements.Form.finisher.EmailToReceiver.editor.message.label
propertyPath: options.message
description: formEditor.elements.Form.finisher.EmailToReceiver.editor.message.description
enableRichtext: true
richtextConfiguration: form-content
350:
identifier: recipients
templateName: Inspector-PropertyGridEditor
label: formEditor.elements.Form.finisher.EmailToReceiver.editor.recipients.label
propertyPath: options.recipients
propertyValidators:
10: NotEmpty
description: formEditor.elements.Form.finisher.EmailToReceiver.editor.recipients.description
isSortable: true
enableAddRow: true
enableDeleteRow: true
useLabelAsFallbackValue: false
gridColumns:
-
name: value
title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
enableFormelementSelectionButton: true
-
name: label
title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
enableFormelementSelectionButton: true
500:
identifier: senderAddress
templateName: Inspector-TextEditor
label: formEditor.elements.Form.finisher.EmailToReceiver.editor.senderAddress.label
propertyPath: options.senderAddress
enableFormelementSelectionButton: true
propertyValidatorsMode: OR
propertyValidators:
10: NaiveEmail
20: FormElementIdentifierWithinCurlyBracesExclusive
description: formEditor.elements.Form.finisher.EmailToReceiver.editor.senderAddress.description
600:
identifier: senderName
templateName: Inspector-TextEditor
label: formEditor.elements.Form.finisher.EmailToReceiver.editor.senderName.label
propertyPath: options.senderName
enableFormelementSelectionButton: true
propertyValidators:
10: FormElementIdentifierWithinCurlyBracesInclusive
description: formEditor.elements.Form.finisher.EmailToReceiver.editor.senderName.description
750:
identifier: replyToRecipients
templateName: Inspector-PropertyGridEditor
label: formEditor.elements.Form.finisher.EmailToReceiver.editor.replyToRecipients.label
propertyPath: options.replyToRecipients
isSortable: true
enableAddRow: true
enableDeleteRow: true
useLabelAsFallbackValue: false
gridColumns:
-
name: value
title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
enableFormelementSelectionButton: true
-
name: label
title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
enableFormelementSelectionButton: true
850:
identifier: carbonCopyRecipients
templateName: Inspector-PropertyGridEditor
label: formEditor.elements.Form.finisher.EmailToReceiver.editor.carbonCopyRecipients.label
propertyPath: options.carbonCopyRecipients
isSortable: true
enableAddRow: true
enableDeleteRow: true
useLabelAsFallbackValue: false
gridColumns:
-
name: value
title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
enableFormelementSelectionButton: true
-
name: label
title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
enableFormelementSelectionButton: true
950:
identifier: blindCarbonCopyRecipients
templateName: Inspector-PropertyGridEditor
label: formEditor.elements.Form.finisher.EmailToReceiver.editor.blindCarbonCopyRecipients.label
propertyPath: options.blindCarbonCopyRecipients
isSortable: true
enableAddRow: true
enableDeleteRow: true
useLabelAsFallbackValue: false
gridColumns:
-
name: value
title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
enableFormelementSelectionButton: true
-
name: label
title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
enableFormelementSelectionButton: true
1050:
identifier: addHtmlPart
templateName: Inspector-CheckboxEditor
label: formEditor.elements.Form.finisher.EmailToReceiver.editor.addHtmlPart.label
propertyPath: options.addHtmlPart
description: formEditor.elements.Form.finisher.EmailToReceiver.editor.addHtmlPart.description
1100:
identifier: attachUploads
templateName: Inspector-CheckboxEditor
label: formEditor.elements.Form.finisher.EmailToReceiver.editor.attachUploads.label
propertyPath: options.attachUploads
1200:
identifier: language
templateName: Inspector-SingleSelectEditor
label: formEditor.elements.Form.finisher.EmailToReceiver.editor.language.label
propertyPath: options.translation.language
selectOptions:
5:
value: ''
label: formEditor.elements.Form.finisher.EmailToReceiver.editor.language.0
10:
value: default
label: formEditor.elements.Form.finisher.EmailToReceiver.editor.language.1
1400:
identifier: title
templateName: Inspector-TextEditor
label: formEditor.elements.Form.finisher.EmailToReceiver.editor.title.label
propertyPath: options.title
description: formEditor.elements.Form.finisher.EmailToReceiver.editor.title.description
enableFormelementSelectionButton: true
propertyValidators:
10: FormElementIdentifierWithinCurlyBracesInclusive
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
identifier: EmailToReceiver
30:
identifier: Redirect
editors:
100:
identifier: header
templateName: Inspector-CollectionElementHeaderEditor
label: formEditor.elements.Form.finisher.Redirect.editor.header.label
200:
identifier: pageUid
templateName: Inspector-Typo3WinBrowserEditor
label: formEditor.elements.Form.finisher.Redirect.editor.pageUid.label
buttonLabel: formEditor.elements.Form.finisher.Redirect.editor.pageUid.buttonLabel
browsableType: pages
iconIdentifier: apps-pagetree-page-default
propertyPath: options.pageUid
propertyValidatorsMode: OR
propertyValidators:
10: Integer
20: FormElementIdentifierWithinCurlyBracesExclusive
300:
identifier: additionalParameters
templateName: Inspector-TextEditor
label: formEditor.elements.Form.finisher.Redirect.editor.additionalParameters.label
propertyPath: options.additionalParameters
400:
identifier: fragment
templateName: Inspector-Typo3WinBrowserEditor
label: formEditor.elements.Form.finisher.Redirect.editor.fragment.label
buttonLabel: formEditor.elements.Form.finisher.Redirect.editor.fragment.buttonLabel
browsableType: tt_content
iconIdentifier: mimetypes-x-content-text
propertyPath: options.fragment
description: formEditor.elements.Form.finisher.Redirect.editor.fragment.description
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
40:
identifier: DeleteUploads
editors:
100:
identifier: header
templateName: Inspector-CollectionElementHeaderEditor
label: formEditor.elements.Form.finisher.DeleteUploads.editor.header.label
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
50:
identifier: Confirmation
editors:
100:
identifier: header
templateName: Inspector-CollectionElementHeaderEditor
label: formEditor.elements.Form.finisher.Confirmation.editor.header.label
200:
identifier: contentElement
templateName: Inspector-Typo3WinBrowserEditor
label: formEditor.elements.Form.finisher.Confirmation.editor.contentElement.label
buttonLabel: formEditor.elements.Form.finisher.Confirmation.editor.contentElement.buttonLabel
browsableType: tt_content
iconIdentifier: mimetypes-x-content-text
propertyPath: options.contentElementUid
propertyValidatorsMode: OR
propertyValidators:
10: IntegerOrEmpty
20: FormElementIdentifierWithinCurlyBracesExclusive
300:
identifier: message
templateName: Inspector-TextareaEditor
label: formEditor.elements.Form.finisher.Confirmation.editor.message.label
propertyPath: options.message
description: formEditor.elements.Form.finisher.Confirmation.editor.message.description
enableRichtext: true
richtextConfiguration: form-content
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
60:
identifier: Closure
editors:
100:
identifier: header
templateName: Inspector-CollectionElementHeaderEditor
label: formEditor.elements.Form.finisher.Closure.editor.header.label
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
70:
identifier: FlashMessage
editors:
100:
identifier: header
templateName: Inspector-CollectionElementHeaderEditor
label: formEditor.elements.Form.finisher.FlashMessage.editor.header.label
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
80:
identifier: SaveToDatabase
editors:
100:
identifier: header
templateName: Inspector-CollectionElementHeaderEditor
label: formEditor.elements.Form.finisher.SaveToDatabase.editor.header.label
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
rendererClassName: TYPO3\CMS\Form\Domain\Renderer\FluidFormRenderer
renderingOptions:
translation:
translationFiles:
10: 'EXT:form/Resources/Private/Language/locallang.xlf'
templateRootPaths:
10: 'EXT:form/Resources/Private/Frontend/Templates/'
partialRootPaths:
10: 'EXT:form/Resources/Private/Frontend/Partials/'
layoutRootPaths:
10: 'EXT:form/Resources/Private/Frontend/Layouts/'
addQueryString: false
argumentsToBeExcludedFromQueryString: { }
additionalParams: { }
controllerAction: perform
httpMethod: post
httpEnctype: multipart/form-data
_isCompositeFormElement: false
_isTopLevelFormElement: true
honeypot:
enable: true
formElementToUse: Honeypot
submitButtonLabel: Submit
skipUnknownElements: true
fieldProperties:
errorMsgClassAttribute: invalid-feedback
errorClassAttribute: is-invalid
descriptionClassAttribute: form-text
requiredMarkClassAttribute: required
visuallyHiddenClassAttribute: visually-hidden
formNavigation:
navigationWrapperClassAttribute: actions
navigationClassAttribute: form-navigation
navigationAriaLabelAttribute: Form Navigation
btnPreviousClassAttribute: 'btn btn-outline-primary'
btnNextClassAttribute: 'btn btn-primary'
btnSubmitClassAttribute: 'btn btn-primary'
@@ -0,0 +1,59 @@
prototypes:
standard:
formElementsDefinition:
GridColumn:
formEditor:
editors:
100:
identifier: header
templateName: Inspector-FormElementHeaderEditor
200:
identifier: label
templateName: Inspector-TextEditor
label: formEditor.elements.GridColumn.editor.label.label
propertyPath: label
240:
identifier: enabled
templateName: Inspector-CheckboxEditor
label: formEditor.elements.FormElement.editor.enabled.label
propertyPath: renderingOptions.enabled
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
50:
viewPortIdentifier: xl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xl.label
60:
viewPortIdentifier: xxl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xxl.label
numbersOfColumnsToUse:
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
label: formEditor.elements.GridColumn.label
description: formEditor.elements.GridColumn.description
group: container
groupSorting: 400
_isCompositeFormElement: true
iconIdentifier: form-gridcolumn
implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GridColumn
renderingOptions:
_isCompositeFormElement: true
@@ -0,0 +1,80 @@
prototypes:
standard:
formElementsDefinition:
GridRow:
formEditor:
editors:
100:
identifier: header
templateName: Inspector-FormElementHeaderEditor
200:
identifier: label
templateName: Inspector-TextEditor
label: formEditor.elements.GridRow.editor.label.label
propertyPath: label
240:
identifier: enabled
templateName: Inspector-CheckboxEditor
label: formEditor.elements.FormElement.editor.enabled.label
propertyPath: renderingOptions.enabled
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
50:
viewPortIdentifier: xl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xl.label
60:
viewPortIdentifier: xxl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xxl.label
numbersOfColumnsToUse:
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
label: formEditor.elements.GridRow.label
description: formEditor.elements.GridRow.description
group: container
groupSorting: 300
_isCompositeFormElement: true
_isGridRowFormElement: true
iconIdentifier: form-gridrow
implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GridRow
properties:
containerClassAttribute: ~
elementClassAttribute: 'form-element form-element-gridrow row'
elementErrorClassAttribute: ~
gridColumnClassAutoConfiguration:
gridSize: 12
viewPorts:
xs:
classPattern: 'col-{@numbersOfColumnsToUse}'
sm:
classPattern: 'col-sm-{@numbersOfColumnsToUse}'
md:
classPattern: 'col-md-{@numbersOfColumnsToUse}'
lg:
classPattern: 'col-lg-{@numbersOfColumnsToUse}'
xl:
classPattern: 'col-xl-{@numbersOfColumnsToUse}'
xxl:
classPattern: 'col-xxl-{@numbersOfColumnsToUse}'
renderingOptions:
_isCompositeFormElement: true
_isGridRowFormElement: true
@@ -0,0 +1,86 @@
prototypes:
standard:
formElementsDefinition:
Hidden:
formEditor:
editors:
100:
identifier: header
templateName: Inspector-FormElementHeaderEditor
200:
identifier: label
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.label.label
propertyPath: label
240:
identifier: enabled
templateName: Inspector-CheckboxEditor
label: formEditor.elements.FormElement.editor.enabled.label
propertyPath: renderingOptions.enabled
300:
identifier: defaultValue
templateName: Inspector-TextEditor
label: formEditor.elements.Hidden.editor.defaultValue.label
propertyPath: defaultValue
600:
identifier: autocomplete
templateName: Inspector-SingleSelectEditor
label: formEditor.elements.FormElement.editor.autocomplete.label
propertyPath: properties.fluidAdditionalAttributes.autocomplete
doNotSetIfPropertyValueIsEmpty: true
selectOptions:
10:
value: ''
label: formEditor.elements.FormElement.editor.autocomplete.option.none
15:
value: 'off'
label: formEditor.elements.FormElement.editor.autocomplete.option.off
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
50:
viewPortIdentifier: xl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xl.label
60:
viewPortIdentifier: xxl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xxl.label
numbersOfColumnsToUse:
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
predefinedDefaults:
defaultValue: ''
label: formEditor.elements.Hidden.label
description: formEditor.elements.Hidden.description
group: custom
groupSorting: 300
iconIdentifier: form-hidden
implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
properties:
containerClassAttribute: 'form-element form-element-hidden'
elementClassAttribute: ''
elementErrorClassAttribute: ~
variants:
-
identifier: hide-1
renderingOptions:
enabled: false
condition: 'stepType == "SummaryPage" || finisherIdentifier in ["EmailToSender", "EmailToReceiver"]'
@@ -0,0 +1,328 @@
prototypes:
standard:
formElementsDefinition:
Honeypot:
formEditor:
editors:
100:
identifier: header
templateName: Inspector-FormElementHeaderEditor
200:
identifier: label
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.label.label
propertyPath: label
230:
identifier: elementDescription
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.elementDescription.label
propertyPath: properties.elementDescription
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: autocomplete
templateName: Inspector-SingleSelectEditor
label: formEditor.elements.FormElement.editor.autocomplete.label
propertyPath: properties.fluidAdditionalAttributes.autocomplete
doNotSetIfPropertyValueIsEmpty: true
selectOptions:
10:
value: ''
label: formEditor.elements.FormElement.editor.autocomplete.option.none
15:
value: 'off'
label: formEditor.elements.FormElement.editor.autocomplete.option.off
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
50:
viewPortIdentifier: xl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xl.label
60:
viewPortIdentifier: xxl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xxl.label
numbersOfColumnsToUse:
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
800:
identifier: requiredValidator
templateName: Inspector-RequiredValidatorEditor
label: formEditor.elements.FormElement.editor.requiredValidator.label
validatorIdentifier: NotEmpty
propertyPath: properties.fluidAdditionalAttributes.required
propertyValue: required
configurationOptions:
validationErrorMessage:
label: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.label
propertyPath: properties.validationErrorMessages
description: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.description
errorCodes:
10: 1221560910
20: 1221560718
30: 1347992400
40: 1347992453
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
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
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Alphanumeric.editor.validationErrorMessage.description
errorCodes:
10: 1221551320
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Text.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Text.editor.validationErrorMessage.description
errorCodes:
10: 1221565786
propertyPath: properties.validationErrorMessages
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
400:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.StringLength.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.StringLength.editor.validationErrorMessage.description
errorCodes:
10: 1238110957
20: 1269883975
30: 1428504122
40: 1238108068
50: 1238108069
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.EmailAddress.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.EmailAddress.editor.validationErrorMessage.description
errorCodes:
10: 1221559976
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Integer.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Integer.editor.validationErrorMessage.description
errorCodes:
10: 1221560494
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Float.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Float.editor.validationErrorMessage.description
errorCodes:
10: 1221560288
propertyPath: properties.validationErrorMessages
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
400:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.NumberRange.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.NumberRange.editor.validationErrorMessage.description
errorCodes:
10: 1221563685
20: 1221561046
propertyPath: properties.validationErrorMessages
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
description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
propertyPath: options.regularExpression
propertyValidators:
10: NotEmpty
20: RegularExpressionPattern
300:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.description
errorCodes:
10: 1221565130
propertyPath: properties.validationErrorMessages
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
properties:
containerClassAttribute: form-element
elementClassAttribute: form-control
elementErrorClassAttribute: ~
renderAsHiddenField: false
styleAttribute: 'position:absolute; margin:0 0 0 -999em;'
variants:
-
identifier: hide-1
renderingOptions:
enabled: false
condition: 'stepType == "SummaryPage" || finisherIdentifier in ["EmailToSender", "EmailToReceiver"]'
@@ -0,0 +1,211 @@
prototypes:
standard:
formElementsDefinition:
ImageUpload:
formEditor:
editors:
100:
identifier: header
templateName: Inspector-FormElementHeaderEditor
200:
identifier: label
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.label.label
propertyPath: label
230:
identifier: elementDescription
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.elementDescription.label
propertyPath: properties.elementDescription
240:
identifier: enabled
templateName: Inspector-CheckboxEditor
label: formEditor.elements.FormElement.editor.enabled.label
propertyPath: renderingOptions.enabled
300:
identifier: allowedMimeTypes
templateName: Inspector-MultiSelectEditor
label: formEditor.elements.ImageUpload.editor.allowedMimeTypes.label
propertyPath: properties.allowedMimeTypes
selectOptions:
10:
value: image/jpeg
label: formEditor.elements.ImageUpload.editor.allowedMimeTypes.jpg
20:
value: image/png
label: formEditor.elements.ImageUpload.editor.allowedMimeTypes.png
30:
value: image/bmp
label: formEditor.elements.ImageUpload.editor.allowedMimeTypes.bmp
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/'
500:
identifier: multiple
templateName: Inspector-CheckboxEditor
label: formEditor.elements.FileUpload.editor.multiple.label
propertyPath: properties.multiple
550:
identifier: allowRemoval
templateName: Inspector-CheckboxEditor
label: formEditor.elements.FileUpload.editor.allowRemoval.label
propertyPath: properties.allowRemoval
600:
identifier: autocomplete
templateName: Inspector-SingleSelectEditor
label: formEditor.elements.FormElement.editor.autocomplete.label
propertyPath: properties.fluidAdditionalAttributes.autocomplete
doNotSetIfPropertyValueIsEmpty: true
selectOptions:
10:
value: ''
label: formEditor.elements.FormElement.editor.autocomplete.option.none
15:
value: 'off'
label: formEditor.elements.FormElement.editor.autocomplete.option.off
20:
value: 'photo'
label: formEditor.elements.FormElement.editor.autocomplete.option.photo
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
50:
viewPortIdentifier: xl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xl.label
60:
viewPortIdentifier: xxl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xxl.label
numbersOfColumnsToUse:
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
800:
identifier: requiredValidator
templateName: Inspector-RequiredValidatorEditor
label: formEditor.elements.FormElement.editor.requiredValidator.label
validatorIdentifier: NotEmpty
propertyPath: properties.fluidAdditionalAttributes.required
propertyValue: required
configurationOptions:
validationErrorMessage:
label: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.label
propertyPath: properties.validationErrorMessages
description: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.description
errorCodes:
10: 1221560910
20: 1221560718
30: 1347992400
40: 1347992453
900:
identifier: validators
templateName: Inspector-ValidatorsEditor
label: formEditor.elements.FileUploadMixin.editor.validators.label
selectOptions:
10:
value: ''
label: formEditor.elements.FileUploadMixin.editor.validators.EmptyValue.label
20:
value: FileSize
label: formEditor.elements.FileUploadMixin.editor.validators.FileSize.label
30:
value: Count
label: formEditor.elements.FileUploadMixin.editor.validators.Count.label
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
predefinedDefaults:
properties:
saveToFileMount: '1:/user_upload/'
allowedMimeTypes:
- image/jpeg
propertyCollections:
validators:
10:
identifier: FileSize
editors:
100:
identifier: header
templateName: Inspector-CollectionElementHeaderEditor
label: formEditor.elements.FileUploadMixin.validators.FileSize.editor.header.label
150:
identifier: maximumFileSize
templateName: Inspector-MaximumFileSizeEditor
label: formEditor.elements.FileUpload.editor.maximumFileSize.label
200:
identifier: minimum
templateName: Inspector-TextEditor
label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
propertyPath: options.minimum
propertyValidators:
10: FileSize
300:
identifier: maximum
templateName: Inspector-TextEditor
label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
propertyPath: options.maximum
propertyValidators:
10: FileSize
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
20:
identifier: Count
editors:
100:
identifier: header
templateName: Inspector-CollectionElementHeaderEditor
label: formEditor.elements.FileUploadMixin.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
label: formEditor.elements.ImageUpload.label
description: formEditor.elements.ImageUpload.description
group: custom
groupSorting: 400
iconIdentifier: form-image-upload
implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\FileUpload
properties:
containerClassAttribute: 'form-element form-element-imageupload mb-3'
elementClassAttribute: 'form-control lightbox'
elementErrorClassAttribute: ~
labelClassAttribute: form-label
saveToFileMount: '1:/user_upload/'
allowedMimeTypes: []
imageLinkMaxWidth: 500
imageMaxWidth: 500
imageMaxHeight: 500
@@ -0,0 +1,169 @@
prototypes:
standard:
formElementsDefinition:
MultiCheckbox:
formEditor:
editors:
100:
identifier: header
templateName: Inspector-FormElementHeaderEditor
200:
identifier: label
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.label.label
propertyPath: label
230:
identifier: elementDescription
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.elementDescription.label
propertyPath: properties.elementDescription
240:
identifier: enabled
templateName: Inspector-CheckboxEditor
label: formEditor.elements.FormElement.editor.enabled.label
propertyPath: renderingOptions.enabled
300:
identifier: options
templateName: Inspector-PropertyGridEditor
label: formEditor.elements.SelectionMixin.editor.options.label
propertyPath: properties.options
propertyValidators:
10: NotEmpty
isSortable: true
enableAddRow: true
enableDeleteRow: true
removeLastAvailableRowFlashMessageTitle: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageTitle
removeLastAvailableRowFlashMessageMessage: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageMessage
multiSelection: true
600:
identifier: autocomplete
templateName: Inspector-SingleSelectEditor
label: formEditor.elements.FormElement.editor.autocomplete.label
propertyPath: properties.fluidAdditionalAttributes.autocomplete
doNotSetIfPropertyValueIsEmpty: true
selectOptions:
10:
value: ''
label: formEditor.elements.FormElement.editor.autocomplete.option.none
15:
value: 'off'
label: formEditor.elements.FormElement.editor.autocomplete.option.off
20:
value: 'honorific-prefix'
label: formEditor.elements.FormElement.editor.autocomplete.option.honorific-prefix
30:
value: 'honorific-suffix'
label: formEditor.elements.FormElement.editor.autocomplete.option.honorific-suffix
70:
value: 'language'
label: formEditor.elements.FormElement.editor.autocomplete.option.language
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
50:
viewPortIdentifier: xl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xl.label
60:
viewPortIdentifier: xxl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xxl.label
numbersOfColumnsToUse:
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
800:
identifier: requiredValidator
templateName: Inspector-RequiredValidatorEditor
label: formEditor.elements.FormElement.editor.requiredValidator.label
validatorIdentifier: NotEmpty
configurationOptions:
validationErrorMessage:
label: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.label
propertyPath: properties.validationErrorMessages
description: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.description
errorCodes:
10: 1221560910
20: 1221560718
30: 1347992400
40: 1347992453
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
400:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.MultiSelectionMixin.validators.Count.editor.validationErrorMessage.label
description: formEditor.elements.MultiSelectionMixin.validators.Count.editor.validationErrorMessage.description
errorCodes:
10: 1475002976
20: 1475002994
propertyPath: properties.validationErrorMessages
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
label: formEditor.elements.MultiCheckbox.label
description: formEditor.elements.MultiCheckbox.description
group: select
groupSorting: 400
iconIdentifier: form-multi-checkbox
implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
properties:
renderFieldset: 1
fieldsetClassAttribute: 'form-element form-element-radio mb-3'
containerClassAttribute: 'form-check mb-2'
elementClassAttribute: form-check-input
elementErrorClassAttribute: ~
labelClassAttribute: form-check-wrapping-label
labelTextClassAttribute: form-check-label
legendVisuallyHidden: 0
@@ -0,0 +1,174 @@
prototypes:
standard:
formElementsDefinition:
MultiSelect:
formEditor:
editors:
100:
identifier: header
templateName: Inspector-FormElementHeaderEditor
200:
identifier: label
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.label.label
propertyPath: label
230:
identifier: elementDescription
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.elementDescription.label
propertyPath: properties.elementDescription
240:
identifier: enabled
templateName: Inspector-CheckboxEditor
label: formEditor.elements.FormElement.editor.enabled.label
propertyPath: renderingOptions.enabled
250:
identifier: inactiveOption
templateName: Inspector-TextEditor
label: formEditor.elements.SelectionMixin.editor.inactiveOption.label
propertyPath: properties.prependOptionLabel
description: formEditor.elements.SelectionMixin.editor.inactiveOption.description
doNotSetIfPropertyValueIsEmpty: true
300:
identifier: options
templateName: Inspector-PropertyGridEditor
label: formEditor.elements.SelectionMixin.editor.options.label
propertyPath: properties.options
propertyValidators:
10: NotEmpty
isSortable: true
enableAddRow: true
enableDeleteRow: true
removeLastAvailableRowFlashMessageTitle: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageTitle
removeLastAvailableRowFlashMessageMessage: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageMessage
multiSelection: true
600:
identifier: autocomplete
templateName: Inspector-SingleSelectEditor
label: formEditor.elements.FormElement.editor.autocomplete.label
propertyPath: properties.fluidAdditionalAttributes.autocomplete
doNotSetIfPropertyValueIsEmpty: true
selectOptions:
10:
value: ''
label: formEditor.elements.FormElement.editor.autocomplete.option.none
15:
value: 'off'
label: formEditor.elements.FormElement.editor.autocomplete.option.off
20:
value: 'honorific-prefix'
label: formEditor.elements.FormElement.editor.autocomplete.option.honorific-prefix
30:
value: 'honorific-suffix'
label: formEditor.elements.FormElement.editor.autocomplete.option.honorific-suffix
70:
value: 'language'
label: formEditor.elements.FormElement.editor.autocomplete.option.language
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
50:
viewPortIdentifier: xl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xl.label
60:
viewPortIdentifier: xxl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xxl.label
numbersOfColumnsToUse:
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
800:
identifier: requiredValidator
templateName: Inspector-RequiredValidatorEditor
label: formEditor.elements.FormElement.editor.requiredValidator.label
validatorIdentifier: NotEmpty
propertyPath: properties.fluidAdditionalAttributes.required
propertyValue: required
configurationOptions:
validationErrorMessage:
label: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.label
propertyPath: properties.validationErrorMessages
description: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.description
errorCodes:
10: 1221560910
20: 1221560718
30: 1347992400
40: 1347992453
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
400:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.MultiSelectionMixin.validators.Count.editor.validationErrorMessage.label
description: formEditor.elements.MultiSelectionMixin.validators.Count.editor.validationErrorMessage.description
errorCodes:
10: 1475002976
20: 1475002994
propertyPath: properties.validationErrorMessages
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
label: formEditor.elements.MultiSelect.label
description: formEditor.elements.MultiSelect.description
group: select
groupSorting: 500
iconIdentifier: form-multi-select
implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
properties:
containerClassAttribute: 'form-element form-element-multiselect mb-3'
elementClassAttribute: 'form-select xlarge'
elementErrorClassAttribute: ~
labelClassAttribute: form-label
@@ -0,0 +1,346 @@
prototypes:
standard:
formElementsDefinition:
Number:
formEditor:
editors:
100:
identifier: header
templateName: Inspector-FormElementHeaderEditor
200:
identifier: label
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.label.label
propertyPath: label
230:
identifier: elementDescription
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.elementDescription.label
propertyPath: properties.elementDescription
240:
identifier: enabled
templateName: Inspector-CheckboxEditor
label: formEditor.elements.FormElement.editor.enabled.label
propertyPath: renderingOptions.enabled
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: IntegerOrEmpty
550:
identifier: step
templateName: Inspector-TextEditor
label: formEditor.elements.TextMixin.editor.step.label
propertyPath: properties.fluidAdditionalAttributes.step
propertyValidators:
10: Integer
600:
identifier: autocomplete
templateName: Inspector-SingleSelectEditor
label: formEditor.elements.FormElement.editor.autocomplete.label
propertyPath: properties.fluidAdditionalAttributes.autocomplete
doNotSetIfPropertyValueIsEmpty: true
selectOptions:
10:
value: ''
label: formEditor.elements.FormElement.editor.autocomplete.option.none
15:
value: 'off'
label: formEditor.elements.FormElement.editor.autocomplete.option.off
50:
value: 'postal-code'
label: formEditor.elements.FormElement.editor.autocomplete.option.postal-code
60:
value: 'bday-day'
label: formEditor.elements.FormElement.editor.autocomplete.option.bday-day
70:
value: 'bday-month'
label: formEditor.elements.FormElement.editor.autocomplete.option.bday-month
80:
value: 'bday-year'
label: formEditor.elements.FormElement.editor.autocomplete.option.bday-year
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
50:
viewPortIdentifier: xl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xl.label
60:
viewPortIdentifier: xxl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xxl.label
numbersOfColumnsToUse:
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
800:
identifier: requiredValidator
templateName: Inspector-RequiredValidatorEditor
label: formEditor.elements.FormElement.editor.requiredValidator.label
validatorIdentifier: NotEmpty
propertyPath: properties.fluidAdditionalAttributes.required
propertyValue: required
configurationOptions:
validationErrorMessage:
label: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.label
propertyPath: properties.validationErrorMessages
description: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.description
errorCodes:
10: 1221560910
20: 1221560718
30: 1347992400
40: 1347992453
900:
identifier: validators
templateName: Inspector-ValidatorsEditor
label: formEditor.elements.TextMixin.editor.validators.label
selectOptions:
10:
value: ''
label: formEditor.elements.TextMixin.editor.validators.EmptyValue.label
60:
value: Number
label: formEditor.elements.Number.editor.validators.Number.label
80:
value: NumberRange
label: formEditor.elements.TextMixin.editor.validators.NumberRange.label
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
predefinedDefaults:
defaultValue: ''
properties:
fluidAdditionalAttributes:
step: 1
validators:
-
identifier: Number
propertyCollections:
validators:
10:
identifier: Alphanumeric
editors:
100:
identifier: header
templateName: Inspector-CollectionElementHeaderEditor
label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.header.label
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Alphanumeric.editor.validationErrorMessage.description
errorCodes:
10: 1221551320
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Text.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Text.editor.validationErrorMessage.description
errorCodes:
10: 1221565786
propertyPath: properties.validationErrorMessages
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
400:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.StringLength.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.StringLength.editor.validationErrorMessage.description
errorCodes:
10: 1238110957
20: 1269883975
30: 1428504122
40: 1238108068
50: 1238108069
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.EmailAddress.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.EmailAddress.editor.validationErrorMessage.description
errorCodes:
10: 1221559976
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Integer.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Integer.editor.validationErrorMessage.description
errorCodes:
10: 1221560494
propertyPath: properties.validationErrorMessages
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
60:
identifier: Number
editors:
100:
identifier: header
templateName: Inspector-CollectionElementHeaderEditor
label: formEditor.elements.TextMixin.validators.Number.editor.header.label
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Float.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Float.editor.validationErrorMessage.description
errorCodes:
10: 1221560288
propertyPath: properties.validationErrorMessages
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
400:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.NumberRange.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.NumberRange.editor.validationErrorMessage.description
errorCodes:
10: 1221563685
20: 1221561046
propertyPath: properties.validationErrorMessages
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
description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
propertyPath: options.regularExpression
propertyValidators:
10: NotEmpty
20: RegularExpressionPattern
300:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.description
errorCodes:
10: 1221565130
propertyPath: properties.validationErrorMessages
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
label: formEditor.elements.Number.label
description: formEditor.elements.Number.description
group: html5
groupSorting: 400
iconIdentifier: form-number
implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
properties:
containerClassAttribute: 'form-element form-element-number mb-3'
elementClassAttribute: form-control
elementErrorClassAttribute: ~
labelClassAttribute: form-label
validators:
-
identifier: Number
@@ -0,0 +1,44 @@
prototypes:
standard:
formElementsDefinition:
Page:
formEditor:
editors:
100:
identifier: header
templateName: Inspector-FormElementHeaderEditor
200:
identifier: label
templateName: Inspector-TextEditor
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
400:
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
label: formEditor.elements.Page.label
description: formEditor.elements.Page.description
group: page
groupSorting: 100
_isTopLevelFormElement: true
_isCompositeFormElement: true
iconIdentifier: form-page
implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\Page
renderingOptions:
_isTopLevelFormElement: true
_isCompositeFormElement: true
nextButtonLabel: 'next Page'
previousButtonLabel: 'previous Page'
@@ -0,0 +1,337 @@
prototypes:
standard:
formElementsDefinition:
Password:
formEditor:
editors:
100:
identifier: header
templateName: Inspector-FormElementHeaderEditor
200:
identifier: label
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.label.label
propertyPath: label
230:
identifier: elementDescription
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.elementDescription.label
propertyPath: properties.elementDescription
240:
identifier: enabled
templateName: Inspector-CheckboxEditor
label: formEditor.elements.FormElement.editor.enabled.label
propertyPath: renderingOptions.enabled
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: autocomplete
templateName: Inspector-SingleSelectEditor
label: formEditor.elements.FormElement.editor.autocomplete.label
propertyPath: properties.fluidAdditionalAttributes.autocomplete
doNotSetIfPropertyValueIsEmpty: true
selectOptions:
10:
value: ''
label: formEditor.elements.FormElement.editor.autocomplete.option.none
15:
value: 'off'
label: formEditor.elements.FormElement.editor.autocomplete.option.off
20:
value: 'new-password'
label: formEditor.elements.FormElement.editor.autocomplete.option.new-password
30:
value: 'current-password'
label: formEditor.elements.FormElement.editor.autocomplete.option.current-password
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
50:
viewPortIdentifier: xl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xl.label
60:
viewPortIdentifier: xxl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xxl.label
numbersOfColumnsToUse:
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
800:
identifier: requiredValidator
templateName: Inspector-RequiredValidatorEditor
label: formEditor.elements.FormElement.editor.requiredValidator.label
validatorIdentifier: NotEmpty
propertyPath: properties.fluidAdditionalAttributes.required
propertyValue: required
configurationOptions:
validationErrorMessage:
label: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.label
propertyPath: properties.validationErrorMessages
description: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.description
errorCodes:
10: 1221560910
20: 1221560718
30: 1347992400
40: 1347992453
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
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
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Alphanumeric.editor.validationErrorMessage.description
errorCodes:
10: 1221551320
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Text.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Text.editor.validationErrorMessage.description
errorCodes:
10: 1221565786
propertyPath: properties.validationErrorMessages
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
400:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.StringLength.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.StringLength.editor.validationErrorMessage.description
errorCodes:
10: 1238110957
20: 1269883975
30: 1428504122
40: 1238108068
50: 1238108069
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.EmailAddress.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.EmailAddress.editor.validationErrorMessage.description
errorCodes:
10: 1221559976
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Integer.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Integer.editor.validationErrorMessage.description
errorCodes:
10: 1221560494
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Float.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Float.editor.validationErrorMessage.description
errorCodes:
10: 1221560288
propertyPath: properties.validationErrorMessages
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
400:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.NumberRange.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.NumberRange.editor.validationErrorMessage.description
errorCodes:
10: 1221563685
20: 1221561046
propertyPath: properties.validationErrorMessages
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
description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
propertyPath: options.regularExpression
propertyValidators:
10: NotEmpty
20: RegularExpressionPattern
300:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.description
errorCodes:
10: 1221565130
propertyPath: properties.validationErrorMessages
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
label: formEditor.elements.Password.label
description: formEditor.elements.Password.description
group: input
groupSorting: 300
iconIdentifier: form-password
implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
properties:
containerClassAttribute: 'form-element form-element-password mb-3'
elementClassAttribute: form-control
elementErrorClassAttribute: ~
labelClassAttribute: form-label
@@ -0,0 +1,134 @@
prototypes:
standard:
formElementsDefinition:
RadioButton:
formEditor:
editors:
100:
identifier: header
templateName: Inspector-FormElementHeaderEditor
200:
identifier: label
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.label.label
propertyPath: label
230:
identifier: elementDescription
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.elementDescription.label
propertyPath: properties.elementDescription
240:
identifier: enabled
templateName: Inspector-CheckboxEditor
label: formEditor.elements.FormElement.editor.enabled.label
propertyPath: renderingOptions.enabled
300:
identifier: options
templateName: Inspector-PropertyGridEditor
label: formEditor.elements.SelectionMixin.editor.options.label
propertyPath: properties.options
propertyValidators:
10: NotEmpty
isSortable: true
enableAddRow: true
enableDeleteRow: true
removeLastAvailableRowFlashMessageTitle: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageTitle
removeLastAvailableRowFlashMessageMessage: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageMessage
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
50:
viewPortIdentifier: xl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xl.label
60:
viewPortIdentifier: xxl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xxl.label
numbersOfColumnsToUse:
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
600:
identifier: autocomplete
templateName: Inspector-SingleSelectEditor
label: formEditor.elements.FormElement.editor.autocomplete.label
propertyPath: properties.fluidAdditionalAttributes.autocomplete
doNotSetIfPropertyValueIsEmpty: true
selectOptions:
10:
value: ''
label: formEditor.elements.FormElement.editor.autocomplete.option.none
15:
value: 'off'
label: formEditor.elements.FormElement.editor.autocomplete.option.off
20:
value: 'honorific-prefix'
label: formEditor.elements.FormElement.editor.autocomplete.option.honorific-prefix
30:
value: 'honorific-suffix'
label: formEditor.elements.FormElement.editor.autocomplete.option.honorific-suffix
40:
value: 'tel-country-code'
label: formEditor.elements.FormElement.editor.autocomplete.option.tel-country-code
50:
value: 'tel-area-code'
label: formEditor.elements.FormElement.editor.autocomplete.option.tel-area-code
60:
value: 'sex'
label: formEditor.elements.FormElement.editor.autocomplete.option.sex
70:
value: 'language'
label: formEditor.elements.FormElement.editor.autocomplete.option.language
800:
identifier: requiredValidator
templateName: Inspector-RequiredValidatorEditor
label: formEditor.elements.FormElement.editor.requiredValidator.label
validatorIdentifier: NotEmpty
propertyPath: properties.fluidAdditionalAttributes.required
propertyValue: required
configurationOptions:
validationErrorMessage:
label: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.label
propertyPath: properties.validationErrorMessages
description: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.description
errorCodes:
10: 1221560910
20: 1221560718
30: 1347992400
40: 1347992453
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
predefinedDefaults:
properties:
options: { }
label: formEditor.elements.RadioButton.label
description: formEditor.elements.RadioButton.description
group: select
groupSorting: 300
iconIdentifier: form-radio-button
implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
properties:
renderFieldset: 1
fieldsetClassAttribute: 'form-element form-element-radio mb-3'
containerClassAttribute: 'form-check mb-2'
elementClassAttribute: form-check-input
elementErrorClassAttribute: ~
labelClassAttribute: form-check-wrapping-label
labelTextClassAttribute: form-check-label
legendVisuallyHidden: 1
@@ -0,0 +1,137 @@
prototypes:
standard:
formElementsDefinition:
SingleSelect:
formEditor:
editors:
100:
identifier: header
templateName: Inspector-FormElementHeaderEditor
200:
identifier: label
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.label.label
propertyPath: label
230:
identifier: elementDescription
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.elementDescription.label
propertyPath: properties.elementDescription
240:
identifier: enabled
templateName: Inspector-CheckboxEditor
label: formEditor.elements.FormElement.editor.enabled.label
propertyPath: renderingOptions.enabled
250:
identifier: inactiveOption
templateName: Inspector-TextEditor
label: formEditor.elements.SelectionMixin.editor.inactiveOption.label
propertyPath: properties.prependOptionLabel
description: formEditor.elements.SelectionMixin.editor.inactiveOption.description
doNotSetIfPropertyValueIsEmpty: true
300:
identifier: options
templateName: Inspector-PropertyGridEditor
label: formEditor.elements.SelectionMixin.editor.options.label
propertyPath: properties.options
propertyValidators:
10: NotEmpty
isSortable: true
enableAddRow: true
enableDeleteRow: true
removeLastAvailableRowFlashMessageTitle: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageTitle
removeLastAvailableRowFlashMessageMessage: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageMessage
multiSelection: false
600:
identifier: autocomplete
templateName: Inspector-SingleSelectEditor
label: formEditor.elements.FormElement.editor.autocomplete.label
propertyPath: properties.fluidAdditionalAttributes.autocomplete
doNotSetIfPropertyValueIsEmpty: true
selectOptions:
10:
value: ''
label: formEditor.elements.FormElement.editor.autocomplete.option.none
15:
value: 'off'
label: formEditor.elements.FormElement.editor.autocomplete.option.off
20:
value: 'honorific-prefix'
label: formEditor.elements.FormElement.editor.autocomplete.option.honorific-prefix
30:
value: 'honorific-suffix'
label: formEditor.elements.FormElement.editor.autocomplete.option.honorific-suffix
40:
value: 'tel-country-code'
label: formEditor.elements.FormElement.editor.autocomplete.option.tel-country-code
50:
value: 'tel-area-code'
label: formEditor.elements.FormElement.editor.autocomplete.option.tel-area-code
60:
value: 'sex'
label: formEditor.elements.FormElement.editor.autocomplete.option.sex
70:
value: 'language'
label: formEditor.elements.FormElement.editor.autocomplete.option.language
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
50:
viewPortIdentifier: xl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xl.label
60:
viewPortIdentifier: xxl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xxl.label
numbersOfColumnsToUse:
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
800:
identifier: requiredValidator
templateName: Inspector-RequiredValidatorEditor
label: formEditor.elements.FormElement.editor.requiredValidator.label
validatorIdentifier: NotEmpty
propertyPath: properties.fluidAdditionalAttributes.required
propertyValue: required
configurationOptions:
validationErrorMessage:
label: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.label
propertyPath: properties.validationErrorMessages
description: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.description
errorCodes:
10: 1221560910
20: 1221560718
30: 1347992400
40: 1347992453
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
predefinedDefaults:
properties:
options: { }
label: formEditor.elements.SingleSelect.label
description: formEditor.elements.SingleSelect.description
group: select
groupSorting: 200
iconIdentifier: form-single-select
implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
properties:
containerClassAttribute: 'form-element form-element-select mb-3'
elementClassAttribute: form-select
elementErrorClassAttribute: ~
labelClassAttribute: form-label
@@ -0,0 +1,75 @@
prototypes:
standard:
formElementsDefinition:
StaticText:
formEditor:
editors:
100:
identifier: header
templateName: Inspector-FormElementHeaderEditor
200:
identifier: label
templateName: Inspector-TextEditor
label: formEditor.elements.StaticText.editor.label.label
propertyPath: label
240:
identifier: enabled
templateName: Inspector-CheckboxEditor
label: formEditor.elements.FormElement.editor.enabled.label
propertyPath: renderingOptions.enabled
300:
identifier: staticText
templateName: Inspector-TextareaEditor
label: formEditor.elements.StaticText.editor.staticText.label
propertyPath: properties.text
enableRichtext: true
richtextConfiguration: form-content
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
50:
viewPortIdentifier: xl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xl.label
60:
viewPortIdentifier: xxl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xxl.label
numbersOfColumnsToUse:
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
predefinedDefaults:
properties:
text: ''
label: formEditor.elements.StaticText.label
description: formEditor.elements.StaticText.description
group: custom
groupSorting: 600
iconIdentifier: form-static-text
implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
properties:
text: ''
containerClassAttribute: 'form-element form-element-statictext mb-3'
variants:
-
identifier: hide-1
renderingOptions:
enabled: false
condition: 'stepType == "SummaryPage" || finisherIdentifier in ["EmailToSender", "EmailToReceiver"]'
@@ -0,0 +1,48 @@
prototypes:
standard:
formElementsDefinition:
SummaryPage:
formEditor:
editors:
100:
identifier: header
templateName: Inspector-FormElementHeaderEditor
200:
identifier: label
templateName: Inspector-TextEditor
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
400:
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
label: formEditor.elements.SummaryPage.label
description: formEditor.elements.SummaryPage.description
group: page
groupSorting: 200
_isTopLevelFormElement: true
_isCompositeFormElement: false
iconIdentifier: form-summary-page
implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\Page
renderingOptions:
_isTopLevelFormElement: true
_isCompositeFormElement: false
nextButtonLabel: 'next Page'
previousButtonLabel: 'previous Page'
listClassAttribute: summary-list
listRowClassAttribute: row
labelWrapperClassAttribute: col
valueWrapperClassAttribute: col
@@ -0,0 +1,336 @@
prototypes:
standard:
formElementsDefinition:
Telephone:
formEditor:
editors:
100:
identifier: header
templateName: Inspector-FormElementHeaderEditor
200:
identifier: label
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.label.label
propertyPath: label
230:
identifier: elementDescription
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.elementDescription.label
propertyPath: properties.elementDescription
240:
identifier: enabled
templateName: Inspector-CheckboxEditor
label: formEditor.elements.FormElement.editor.enabled.label
propertyPath: renderingOptions.enabled
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: autocomplete
templateName: Inspector-SingleSelectEditor
label: formEditor.elements.FormElement.editor.autocomplete.label
propertyPath: properties.fluidAdditionalAttributes.autocomplete
doNotSetIfPropertyValueIsEmpty: true
selectOptions:
10:
value: ''
label: formEditor.elements.FormElement.editor.autocomplete.option.none
15:
value: 'off'
label: formEditor.elements.FormElement.editor.autocomplete.option.off
20:
value: 'tel'
label: formEditor.elements.FormElement.editor.autocomplete.option.tel
30:
value: 'tel-country-code'
label: formEditor.elements.FormElement.editor.autocomplete.option.tel-country-code
40:
value: 'tel-national'
label: formEditor.elements.FormElement.editor.autocomplete.option.tel-national
50:
value: 'tel-area-code'
label: formEditor.elements.FormElement.editor.autocomplete.option.tel-area-code
60:
value: 'tel-local'
label: formEditor.elements.FormElement.editor.autocomplete.option.tel-local
70:
value: 'tel-extension'
label: formEditor.elements.FormElement.editor.autocomplete.option.tel-extension
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
50:
viewPortIdentifier: xl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xl.label
60:
viewPortIdentifier: xxl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xxl.label
numbersOfColumnsToUse:
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
800:
identifier: requiredValidator
templateName: Inspector-RequiredValidatorEditor
label: formEditor.elements.FormElement.editor.requiredValidator.label
validatorIdentifier: NotEmpty
propertyPath: properties.fluidAdditionalAttributes.required
propertyValue: required
configurationOptions:
validationErrorMessage:
label: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.label
propertyPath: properties.validationErrorMessages
description: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.description
errorCodes:
10: 1221560910
20: 1221560718
30: 1347992400
40: 1347992453
900:
identifier: validators
templateName: Inspector-ValidatorsEditor
label: formEditor.elements.TextMixin.editor.validators.label
selectOptions:
10:
value: ''
label: formEditor.elements.TextMixin.editor.validators.EmptyValue.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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Alphanumeric.editor.validationErrorMessage.description
errorCodes:
10: 1221551320
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Text.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Text.editor.validationErrorMessage.description
errorCodes:
10: 1221565786
propertyPath: properties.validationErrorMessages
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
400:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.StringLength.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.StringLength.editor.validationErrorMessage.description
errorCodes:
10: 1238110957
20: 1269883975
30: 1428504122
40: 1238108068
50: 1238108069
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.EmailAddress.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.EmailAddress.editor.validationErrorMessage.description
errorCodes:
10: 1221559976
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Integer.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Integer.editor.validationErrorMessage.description
errorCodes:
10: 1221560494
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Float.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Float.editor.validationErrorMessage.description
errorCodes:
10: 1221560288
propertyPath: properties.validationErrorMessages
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
400:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.NumberRange.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.NumberRange.editor.validationErrorMessage.description
errorCodes:
10: 1221563685
20: 1221561046
propertyPath: properties.validationErrorMessages
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
description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
propertyPath: options.regularExpression
propertyValidators:
10: NotEmpty
20: RegularExpressionPattern
300:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.description
errorCodes:
10: 1221565130
propertyPath: properties.validationErrorMessages
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
label: formEditor.elements.Telephone.label
description: formEditor.elements.Telephone.description
group: html5
groupSorting: 200
iconIdentifier: form-telephone
implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
properties:
containerClassAttribute: 'form-element form-element-phone mb-3'
elementClassAttribute: form-control
elementErrorClassAttribute: ~
labelClassAttribute: form-label
validators:
-
identifier: RegularExpression
options:
regularExpression: '/^.*$/'
@@ -0,0 +1,391 @@
prototypes:
standard:
formElementsDefinition:
Text:
formEditor:
editors:
100:
identifier: header
templateName: Inspector-FormElementHeaderEditor
200:
identifier: label
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.label.label
propertyPath: label
230:
identifier: elementDescription
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.elementDescription.label
propertyPath: properties.elementDescription
240:
identifier: enabled
templateName: Inspector-CheckboxEditor
label: formEditor.elements.FormElement.editor.enabled.label
propertyPath: renderingOptions.enabled
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: autocomplete
templateName: Inspector-SingleSelectEditor
label: formEditor.elements.FormElement.editor.autocomplete.label
propertyPath: properties.fluidAdditionalAttributes.autocomplete
doNotSetIfPropertyValueIsEmpty: true
selectOptions:
10:
value: ''
label: formEditor.elements.FormElement.editor.autocomplete.option.none
15:
value: 'off'
label: formEditor.elements.FormElement.editor.autocomplete.option.off
20:
value: 'name'
label: formEditor.elements.FormElement.editor.autocomplete.option.name
30:
value: 'honorific-prefix'
label: formEditor.elements.FormElement.editor.autocomplete.option.honorific-prefix
40:
value: 'given-name'
label: formEditor.elements.FormElement.editor.autocomplete.option.given-name
50:
value: 'additional-name'
label: formEditor.elements.FormElement.editor.autocomplete.option.additional-name
60:
value: 'family-name'
label: formEditor.elements.FormElement.editor.autocomplete.option.family-name
70:
value: 'honorific-suffix'
label: formEditor.elements.FormElement.editor.autocomplete.option.honorific-suffix
80:
value: 'nickname'
label: formEditor.elements.FormElement.editor.autocomplete.option.nickname
90:
value: 'organization-title'
label: formEditor.elements.FormElement.editor.autocomplete.option.organization-title
100:
value: 'username'
label: formEditor.elements.FormElement.editor.autocomplete.option.username
110:
value: 'organization'
label: formEditor.elements.FormElement.editor.autocomplete.option.organization
120:
value: 'address-line1'
label: formEditor.elements.FormElement.editor.autocomplete.option.address-line1
130:
value: 'address-line2'
label: formEditor.elements.FormElement.editor.autocomplete.option.address-line2
140:
value: 'address-level1'
label: formEditor.elements.FormElement.editor.autocomplete.option.address-level1
150:
value: 'address-level2'
label: formEditor.elements.FormElement.editor.autocomplete.option.address-level2
190:
value: 'country-name'
label: formEditor.elements.FormElement.editor.autocomplete.option.country-name
200:
value: 'postal-code'
label: formEditor.elements.FormElement.editor.autocomplete.option.postal-code
210:
value: 'tel'
label: formEditor.elements.FormElement.editor.autocomplete.option.tel
220:
value: 'impp'
label: formEditor.elements.FormElement.editor.autocomplete.option.impp
230:
value: 'sex'
label: formEditor.elements.FormElement.editor.autocomplete.option.sex
240:
value: 'language'
label: formEditor.elements.FormElement.editor.autocomplete.option.language
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
50:
viewPortIdentifier: xl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xl.label
60:
viewPortIdentifier: xxl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xxl.label
numbersOfColumnsToUse:
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
800:
identifier: requiredValidator
templateName: Inspector-RequiredValidatorEditor
label: formEditor.elements.FormElement.editor.requiredValidator.label
validatorIdentifier: NotEmpty
propertyPath: properties.fluidAdditionalAttributes.required
propertyValue: required
configurationOptions:
validationErrorMessage:
label: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.label
propertyPath: properties.validationErrorMessages
description: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.description
errorCodes:
10: 1221560910
20: 1221560718
30: 1347992400
40: 1347992453
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
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
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Alphanumeric.editor.validationErrorMessage.description
errorCodes:
10: 1221551320
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Text.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Text.editor.validationErrorMessage.description
errorCodes:
10: 1221565786
propertyPath: properties.validationErrorMessages
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
400:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.StringLength.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.StringLength.editor.validationErrorMessage.description
errorCodes:
10: 1238110957
20: 1269883975
30: 1428504122
40: 1238108068
50: 1238108069
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.EmailAddress.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.EmailAddress.editor.validationErrorMessage.description
errorCodes:
10: 1221559976
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Integer.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Integer.editor.validationErrorMessage.description
errorCodes:
10: 1221560494
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Float.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Float.editor.validationErrorMessage.description
errorCodes:
10: 1221560288
propertyPath: properties.validationErrorMessages
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
400:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.NumberRange.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.NumberRange.editor.validationErrorMessage.description
errorCodes:
10: 1221563685
20: 1221561046
propertyPath: properties.validationErrorMessages
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
description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
propertyPath: options.regularExpression
propertyValidators:
10: NotEmpty
20: RegularExpressionPattern
300:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.description
errorCodes:
10: 1221565130
propertyPath: properties.validationErrorMessages
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
label: formEditor.elements.Text.label
description: formEditor.elements.Text.description
group: input
groupSorting: 100
iconIdentifier: form-text
implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
properties:
containerClassAttribute: 'form-element form-element-text mb-3'
elementClassAttribute: form-control
elementErrorClassAttribute: ~
labelClassAttribute: form-label
@@ -0,0 +1,331 @@
prototypes:
standard:
formElementsDefinition:
Textarea:
formEditor:
editors:
100:
identifier: header
templateName: Inspector-FormElementHeaderEditor
200:
identifier: label
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.label.label
propertyPath: label
230:
identifier: elementDescription
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.elementDescription.label
propertyPath: properties.elementDescription
240:
identifier: enabled
templateName: Inspector-CheckboxEditor
label: formEditor.elements.FormElement.editor.enabled.label
propertyPath: renderingOptions.enabled
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: autocomplete
templateName: Inspector-SingleSelectEditor
label: formEditor.elements.FormElement.editor.autocomplete.label
propertyPath: properties.fluidAdditionalAttributes.autocomplete
doNotSetIfPropertyValueIsEmpty: true
selectOptions:
10:
value: ''
label: formEditor.elements.FormElement.editor.autocomplete.option.none
15:
value: 'off'
label: formEditor.elements.FormElement.editor.autocomplete.option.off
20:
value: 'street-address'
label: formEditor.elements.FormElement.editor.autocomplete.option.street-address
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
50:
viewPortIdentifier: xl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xl.label
60:
viewPortIdentifier: xxl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xxl.label
numbersOfColumnsToUse:
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
800:
identifier: requiredValidator
templateName: Inspector-RequiredValidatorEditor
label: formEditor.elements.FormElement.editor.requiredValidator.label
validatorIdentifier: NotEmpty
propertyPath: properties.fluidAdditionalAttributes.required
propertyValue: required
configurationOptions:
validationErrorMessage:
label: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.label
propertyPath: properties.validationErrorMessages
description: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.description
errorCodes:
10: 1221560910
20: 1221560718
30: 1347992400
40: 1347992453
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
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
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Alphanumeric.editor.validationErrorMessage.description
errorCodes:
10: 1221551320
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Text.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Text.editor.validationErrorMessage.description
errorCodes:
10: 1221565786
propertyPath: properties.validationErrorMessages
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
400:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.StringLength.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.StringLength.editor.validationErrorMessage.description
errorCodes:
10: 1238110957
20: 1269883975
30: 1428504122
40: 1238108068
50: 1238108069
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.EmailAddress.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.EmailAddress.editor.validationErrorMessage.description
errorCodes:
10: 1221559976
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Integer.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Integer.editor.validationErrorMessage.description
errorCodes:
10: 1221560494
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Float.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Float.editor.validationErrorMessage.description
errorCodes:
10: 1221560288
propertyPath: properties.validationErrorMessages
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
400:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.NumberRange.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.NumberRange.editor.validationErrorMessage.description
errorCodes:
10: 1221563685
20: 1221561046
propertyPath: properties.validationErrorMessages
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
description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
propertyPath: options.regularExpression
propertyValidators:
10: NotEmpty
20: RegularExpressionPattern
300:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.description
errorCodes:
10: 1221565130
propertyPath: properties.validationErrorMessages
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
label: formEditor.elements.Textarea.label
description: formEditor.elements.Textarea.description
group: input
groupSorting: 200
iconIdentifier: form-textarea
implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
properties:
containerClassAttribute: 'form-element form-element-textarea mb-3'
elementClassAttribute: 'form-control xxlarge'
elementErrorClassAttribute: error
labelClassAttribute: form-label
@@ -0,0 +1,324 @@
prototypes:
standard:
formElementsDefinition:
Url:
formEditor:
editors:
100:
identifier: header
templateName: Inspector-FormElementHeaderEditor
200:
identifier: label
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.label.label
propertyPath: label
230:
identifier: elementDescription
templateName: Inspector-TextEditor
label: formEditor.elements.FormElement.editor.elementDescription.label
propertyPath: properties.elementDescription
240:
identifier: enabled
templateName: Inspector-CheckboxEditor
label: formEditor.elements.FormElement.editor.enabled.label
propertyPath: renderingOptions.enabled
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: autocomplete
templateName: Inspector-SingleSelectEditor
label: formEditor.elements.FormElement.editor.autocomplete.label
propertyPath: properties.fluidAdditionalAttributes.autocomplete
doNotSetIfPropertyValueIsEmpty: true
selectOptions:
10:
value: ''
label: formEditor.elements.FormElement.editor.autocomplete.option.none
15:
value: 'off'
label: formEditor.elements.FormElement.editor.autocomplete.option.off
20:
value: 'url'
label: formEditor.elements.FormElement.editor.autocomplete.option.url
30:
value: 'impp'
label: formEditor.elements.FormElement.editor.autocomplete.option.impp
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
50:
viewPortIdentifier: xl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xl.label
60:
viewPortIdentifier: xxl
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xxl.label
numbersOfColumnsToUse:
label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
800:
identifier: requiredValidator
templateName: Inspector-RequiredValidatorEditor
label: formEditor.elements.FormElement.editor.requiredValidator.label
validatorIdentifier: NotEmpty
propertyPath: properties.fluidAdditionalAttributes.required
propertyValue: required
configurationOptions:
validationErrorMessage:
label: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.label
propertyPath: properties.validationErrorMessages
description: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.description
errorCodes:
10: 1221560910
20: 1221560718
30: 1347992400
40: 1347992453
900:
identifier: validators
templateName: Inspector-ValidatorsEditor
label: formEditor.elements.TextMixin.editor.validators.label
selectOptions:
10:
value: ''
label: formEditor.elements.TextMixin.editor.validators.EmptyValue.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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Alphanumeric.editor.validationErrorMessage.description
errorCodes:
10: 1221551320
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Text.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Text.editor.validationErrorMessage.description
errorCodes:
10: 1221565786
propertyPath: properties.validationErrorMessages
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
400:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.StringLength.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.StringLength.editor.validationErrorMessage.description
errorCodes:
10: 1238110957
20: 1269883975
30: 1428504122
40: 1238108068
50: 1238108069
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.EmailAddress.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.EmailAddress.editor.validationErrorMessage.description
errorCodes:
10: 1221559976
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Integer.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Integer.editor.validationErrorMessage.description
errorCodes:
10: 1221560494
propertyPath: properties.validationErrorMessages
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
200:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.Float.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.Float.editor.validationErrorMessage.description
errorCodes:
10: 1221560288
propertyPath: properties.validationErrorMessages
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
400:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.NumberRange.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.NumberRange.editor.validationErrorMessage.description
errorCodes:
10: 1221563685
20: 1221561046
propertyPath: properties.validationErrorMessages
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
description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
propertyPath: options.regularExpression
propertyValidators:
10: NotEmpty
20: RegularExpressionPattern
300:
identifier: validationErrorMessage
templateName: Inspector-ValidationErrorMessageEditor
label: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.label
description: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.description
errorCodes:
10: 1221565130
propertyPath: properties.validationErrorMessages
9999:
identifier: removeButton
templateName: Inspector-RemoveElementEditor
label: formEditor.elements.Url.label
description: formEditor.elements.Url.description
group: html5
groupSorting: 300
iconIdentifier: form-url
implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
properties:
containerClassAttribute: 'form-element form-element-url mb-3'
elementClassAttribute: form-control
elementErrorClassAttribute: ~
labelClassAttribute: form-label
validators:
-
identifier: RegularExpression
options:
regularExpression: '/^.*$/'
@@ -0,0 +1,8 @@
prototypes:
standard:
validatorsDefinition:
Alphanumeric:
implementationClassName: TYPO3\CMS\Extbase\Validation\Validator\AlphanumericValidator
formEditor:
iconIdentifier: form-validator
label: formEditor.elements.TextMixin.editor.validators.Alphanumeric.label
@@ -0,0 +1,17 @@
prototypes:
standard:
validatorsDefinition:
Count:
implementationClassName: TYPO3\CMS\Form\Mvc\Validation\CountValidator
#options:
# minimum count to accept
#minimum:
# maximum count to accept
#maximum:
formEditor:
iconIdentifier: form-validator
label: formEditor.elements.MultiSelectionMixin.validators.Count.editor.header.label
predefinedDefaults:
options:
minimum: ''
maximum: ''
@@ -0,0 +1,18 @@
prototypes:
standard:
validatorsDefinition:
DateRange:
implementationClassName: TYPO3\CMS\Form\Mvc\Validation\DateRangeValidator
options:
format: Y-m-d
# minimum date formatted as Y-m-d
#minimum:
# maximum date formatted as Y-m-d
#maximum:
formEditor:
iconIdentifier: form-validator
label: formEditor.elements.FormElement.validators.DateRange.editor.header.label
predefinedDefaults:
options:
minimum: ''
maximum: ''
@@ -0,0 +1,8 @@
prototypes:
standard:
validatorsDefinition:
DateTime:
implementationClassName: TYPO3\CMS\Extbase\Validation\Validator\DateTimeValidator
formEditor:
iconIdentifier: form-validator
label: formEditor.elements.DatePicker.validators.DateTime.editor.header.label
@@ -0,0 +1,8 @@
prototypes:
standard:
validatorsDefinition:
EmailAddress:
implementationClassName: TYPO3\CMS\Extbase\Validation\Validator\EmailAddressValidator
formEditor:
iconIdentifier: form-validator
label: formEditor.elements.TextMixin.editor.validators.EmailAddress.label
@@ -0,0 +1,17 @@
prototypes:
standard:
validatorsDefinition:
FileSize:
implementationClassName: TYPO3\CMS\Form\Mvc\Validation\FileSizeValidator
#options:
# minimum file size to accept
#minimum:
# maximum file size to accept
#maximum:
formEditor:
iconIdentifier: form-validator
label: formEditor.elements.FileUploadMixin.validators.FileSize.editor.header.label
predefinedDefaults:
options:
minimum: 0B
maximum: 10M
@@ -0,0 +1,8 @@
prototypes:
standard:
validatorsDefinition:
Float:
implementationClassName: TYPO3\CMS\Extbase\Validation\Validator\FloatValidator
formEditor:
iconIdentifier: form-validator
label: formEditor.elements.TextMixin.editor.validators.Float.label
@@ -0,0 +1,8 @@
prototypes:
standard:
validatorsDefinition:
Integer:
implementationClassName: TYPO3\CMS\Extbase\Validation\Validator\IntegerValidator
formEditor:
iconIdentifier: form-validator
label: formEditor.elements.TextMixin.editor.validators.Integer.label
@@ -0,0 +1,8 @@
prototypes:
standard:
validatorsDefinition:
NotEmpty:
implementationClassName: TYPO3\CMS\Extbase\Validation\Validator\NotEmptyValidator
formEditor:
iconIdentifier: form-validator
label: formEditor.elements.FormElement.editor.requiredValidator.label
@@ -0,0 +1,8 @@
prototypes:
standard:
validatorsDefinition:
Number:
implementationClassName: TYPO3\CMS\Extbase\Validation\Validator\NumberValidator
formEditor:
iconIdentifier: form-validator
label: formEditor.elements.TextMixin.editor.validators.Number.label
@@ -0,0 +1,17 @@
prototypes:
standard:
validatorsDefinition:
NumberRange:
implementationClassName: TYPO3\CMS\Extbase\Validation\Validator\NumberRangeValidator
#options:
# minimum value to accept
#minimum:
# maximum value to accept
#maximum:
formEditor:
iconIdentifier: form-validator
label: formEditor.elements.TextMixin.editor.validators.NumberRange.label
predefinedDefaults:
options:
minimum: ''
maximum: ''
@@ -0,0 +1,14 @@
prototypes:
standard:
validatorsDefinition:
RegularExpression:
implementationClassName: TYPO3\CMS\Extbase\Validation\Validator\RegularExpressionValidator
#options:
# the regular expression to use for validation, used as given
#regularExpression:
formEditor:
iconIdentifier: form-validator
label: formEditor.elements.TextMixin.editor.validators.RegularExpression.label
predefinedDefaults:
options:
regularExpression: ''
@@ -0,0 +1,17 @@
prototypes:
standard:
validatorsDefinition:
StringLength:
implementationClassName: TYPO3\CMS\Extbase\Validation\Validator\StringLengthValidator
#options:
# minimum length for a valid string
#minimum:
# maximum length for a valid string
#maximum:
formEditor:
iconIdentifier: form-validator
label: formEditor.elements.TextMixin.editor.validators.StringLength.label
predefinedDefaults:
options:
minimum: ''
maximum: ''
@@ -0,0 +1,8 @@
prototypes:
standard:
validatorsDefinition:
Text:
implementationClassName: TYPO3\CMS\Extbase\Validation\Validator\TextValidator
formEditor:
iconIdentifier: form-validator
label: formEditor.elements.TextMixin.editor.validators.Text.label
+177
View File
@@ -0,0 +1,177 @@
imports:
# Validators
- { resource: 'EXT:form/Configuration/Form/Base/Validators/NotEmpty.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/Validators/DateTime.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/Validators/Alphanumeric.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/Validators/Text.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/Validators/StringLength.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/Validators/EmailAddress.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/Validators/Integer.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/Validators/Float.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/Validators/Number.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/Validators/NumberRange.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/Validators/RegularExpression.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/Validators/Count.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/Validators/FileSize.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/Validators/DateRange.yaml' }
# Form elements
- { resource: 'EXT:form/Configuration/Form/Base/FormElements/Form.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/FormElements/Page.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/FormElements/SummaryPage.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/FormElements/Fieldset.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/FormElements/GridColumn.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/FormElements/GridRow.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/FormElements/Text.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/FormElements/Password.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/FormElements/AdvancedPassword.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/FormElements/Textarea.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/FormElements/Honeypot.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/FormElements/Hidden.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/FormElements/Email.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/FormElements/Telephone.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/FormElements/Url.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/FormElements/Number.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/FormElements/Date.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/FormElements/Checkbox.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/FormElements/MultiCheckbox.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/FormElements/MultiSelect.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/FormElements/RadioButton.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/FormElements/SingleSelect.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/FormElements/CountrySelect.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/FormElements/StaticText.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/FormElements/ContentElement.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/FormElements/FileUpload.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/FormElements/ImageUpload.yaml' }
# Finishers
- { resource: 'EXT:form/Configuration/Form/Base/Finishers/Closure.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/Finishers/Confirmation.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/Finishers/EmailToSender.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/Finishers/EmailToReceiver.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/Finishers/DeleteUploads.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/Finishers/FlashMessage.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/Finishers/Redirect.yaml' }
- { resource: 'EXT:form/Configuration/Form/Base/Finishers/SaveToDatabase.yaml' }
name: typo3/form-base
label: 'TYPO3 Form — Base Configuration'
priority: 10
persistenceManager:
allowSaveToExtensionPaths: false
allowDeleteFromExtensionPaths: false
sortByKeys:
- name
- fileUid
sortAscending: true
prototypes:
standard:
formEditor:
translationFiles:
10: 'EXT:form/Resources/Private/Language/Database.xlf'
dynamicJavaScriptModules:
app: '@typo3/form/backend/form-editor.js'
mediator: '@typo3/form/backend/form-editor/mediator.js'
viewModel: '@typo3/form/backend/form-editor/view-model.js'
addInlineSettings: { }
maximumUndoSteps: 10
stylesheets:
200: 'EXT:form/Resources/Public/Css/form.css'
formEditorFluidConfiguration:
templatePathAndFilename: 'EXT:form/Resources/Private/Backend/Templates/FormEditor/InlineTemplates.fluid.html'
partialRootPaths:
10: 'EXT:form/Resources/Private/Backend/Partials/FormEditor/'
layoutRootPaths:
10: 'EXT:form/Resources/Private/Backend/Layouts/FormEditor/'
formEditorPartials:
Modal-InsertElements: Modals/InsertElements
Modal-InsertPages: Modals/InsertPages
Modal-ValidationErrors: Modals/ValidationErrors
Inspector-FormElementHeaderEditor: Inspector/FormElementHeaderEditor
Inspector-CollectionElementHeaderEditor: Inspector/CollectionElementHeaderEditor
Inspector-TextEditor: Inspector/TextEditor
Inspector-PropertyGridEditor: Inspector/PropertyGridEditor
Inspector-SingleSelectEditor: Inspector/SingleSelectEditor
Inspector-MultiSelectEditor: Inspector/MultiSelectEditor
Inspector-GridColumnViewPortConfigurationEditor: Inspector/GridColumnViewPortConfigurationEditor
Inspector-TextareaEditor: Inspector/TextareaEditor
Inspector-RemoveElementEditor: Inspector/RemoveElementEditor
Inspector-FinishersEditor: Inspector/FinishersEditor
Inspector-ValidatorsEditor: Inspector/ValidatorsEditor
Inspector-RequiredValidatorEditor: Inspector/RequiredValidatorEditor
Inspector-CheckboxEditor: Inspector/CheckboxEditor
Inspector-ValidationErrorMessageEditor: Inspector/ValidationErrorMessageEditor
Inspector-Typo3WinBrowserEditor: Inspector/Typo3WinBrowserEditor
Inspector-MaximumFileSizeEditor: Inspector/MaximumFileSizeEditor
Inspector-CountrySelectEditor: Inspector/CountrySelectEditor
Inspector-CountrySingleSelectEditor: Inspector/CountrySingleSelectEditor
Inspector-DateEditor: Inspector/DateEditor
formElementPropertyValidatorsDefinition:
NotEmpty:
errorMessage: formEditor.formElementPropertyValidatorsDefinition.NotEmpty.label
Integer:
errorMessage: formEditor.formElementPropertyValidatorsDefinition.Integer.label
NaiveEmail:
errorMessage: formEditor.formElementPropertyValidatorsDefinition.NaiveEmail.label
NaiveEmailOrEmpty:
errorMessage: formEditor.formElementPropertyValidatorsDefinition.NaiveEmail.label
FormElementIdentifierWithinCurlyBracesInclusive:
errorMessage: formEditor.formElementPropertyValidatorsDefinition.FormElementIdentifierWithinCurlyBraces.label
FormElementIdentifierWithinCurlyBracesExclusive:
errorMessage: formEditor.formElementPropertyValidatorsDefinition.FormElementIdentifierWithinCurlyBraces.label
FileSize:
errorMessage: formEditor.formElementPropertyValidatorsDefinition.FileSize.label
RFC3339FullDate:
errorMessage: formEditor.formElementPropertyValidatorsDefinition.RFC3339FullDate.label
RegularExpressionPattern:
errorMessage: formEditor.formElementPropertyValidatorsDefinition.RegularExpressionPattern.label
ItemCount:
errorMessage: formEditor.formElementPropertyValidatorsDefinition.ItemCount.label
IntegerList:
errorMessage: formEditor.formElementPropertyValidatorsDefinition.IntegerList.label
formElementGroups:
input:
label: formEditor.formElementGroups.input.label
html5:
label: formEditor.formElementGroups.html5.label
select:
label: formEditor.formElementGroups.select.label
custom:
label: formEditor.formElementGroups.custom.label
container:
label: formEditor.formElementGroups.container.label
page:
label: formEditor.formElementGroups.page.label
formEngine:
translationFiles:
10: 'EXT:form/Resources/Private/Language/Database.xlf'
formManager:
dynamicJavaScriptModules:
app: '@typo3/form/backend/form-manager.js'
viewModel: '@typo3/form/backend/form-manager/view-model.js'
stylesheets:
100: 'EXT:form/Resources/Public/Css/form.css'
translationFiles:
10: 'EXT:form/Resources/Private/Language/Database.xlf'
selectablePrototypesConfiguration:
100:
identifier: standard
label: formManager.selectablePrototypesConfiguration.standard.label
newFormTemplates:
100:
templatePath: 'EXT:form/Resources/Private/Backend/Templates/FormEditor/Yaml/NewForms/BlankForm.yaml'
label: formManager.selectablePrototypesConfiguration.standard.newFormTemplates.blankForm.label
200:
templatePath: 'EXT:form/Resources/Private/Backend/Templates/FormEditor/Yaml/NewForms/SimpleContactForm.yaml'
label: formManager.selectablePrototypesConfiguration.standard.newFormTemplates.simpleContactForm.label
controller:
deleteAction:
errorTitle: formManagerController.deleteAction.error.title
errorMessage: formManagerController.deleteAction.error.body
+11
View File
@@ -0,0 +1,11 @@
<?php
return [
'dependencies' => [
'backend',
'core',
],
'imports' => [
'@typo3/form/backend/' => 'EXT:form/Resources/Public/JavaScript/backend/',
],
];
+23
View File
@@ -0,0 +1,23 @@
# Load processing options
imports:
- { resource: 'EXT:form/Configuration/RTE/ProcessingContent.yaml' }
- { resource: 'EXT:rte_ckeditor/Configuration/RTE/Editor/Base.yaml' }
- { resource: 'EXT:rte_ckeditor/Configuration/RTE/Editor/Plugins.yaml' }
# RTE configuration for form content fields (e.g., StaticText)
# Contains extended formatting options including lists
editor:
config:
toolbar:
items:
- bold
- italic
- '|'
- link
- '|'
- bulletedList
- numberedList
- '|'
- clipboard
- undo
- redo
+20
View File
@@ -0,0 +1,20 @@
# Load processing options
imports:
- { resource: 'EXT:form/Configuration/RTE/ProcessingLabel.yaml' }
- { resource: 'EXT:rte_ckeditor/Configuration/RTE/Editor/Base.yaml' }
- { resource: 'EXT:rte_ckeditor/Configuration/RTE/Editor/Plugins.yaml' }
# RTE configuration for form labels and short text fields
# Contains only essential formatting options: bold, italic, link
editor:
config:
toolbar:
items:
- bold
- italic
- '|'
- link
- '|'
- clipboard
- undo
- redo
+40
View File
@@ -0,0 +1,40 @@
# ********************************************************
# Processing configuration for form content fields
# Extended version that allows lists
# https://docs.typo3.org/permalink/t3tsref:rte-config-proc
# ********************************************************
processing:
mode: default
# Tags that are allowed in the content
# Includes list elements for extended formatting
allowTags:
- a
- br
- i
- strong
- ul
- ol
- li
- p
denyTags: b,u,img,div,center,pre,figure,figcaption,font,hr,sub,sup,em,blockquote,strike,span,abbr,acronym,dfn
## Tags that are allowed outside of paragraphs
allowTagsOutside:
- ul
- ol
## CONTENT TO PERSISTENCE
HTMLparser_db:
## REMOVE OPEN OFFICE META DATA TAGS, WORD 2003 TAGS, LINK, META, STYLE AND TITLE TAGS, AND DEPRECATED HTML TAGS
removeTags: [link, meta, o:p, sdfield, style, title, font, center]
## PROTECT CUSTOM TAGS
keepNonMatchedTags: protect
# HTML Sanitizer
htmlSanitize:
build: default
+37
View File
@@ -0,0 +1,37 @@
# ********************************************************
# Sets the proc options for all default configurations
# https://docs.typo3.org/permalink/t3tsref:rte-config-proc
# ********************************************************
processing:
mode: default
# Tags that are allowed in the content in general
# If you adapt this preset, you need to ship your own Checkbox.fluid.html template alongside it
# and adapt the `stripTags` call
allowTags:
- a
- br
- i
- strong
denyTags: b,u,img,div,center,pre,figure,figcaption,font,hr,sub,sup,em,li,ul,ol,blockquote,strike,span,abbr,acronym,dfn
## Tags that are allowed outside of paragraphs
allowTagsOutside: []
## CONTENT TO PERSISTENCE
HTMLparser_db:
## REMOVE OPEN OFFICE META DATA TAGS, WORD 2003 TAGS, LINK, META, STYLE AND TITLE TAGS, AND DEPRECATED HTML TAGS
## We use this rule instead of the denyTags rule so that we can protect custom tags without protecting these unwanted tags.
removeTags: [link, meta, o:p, sdfield, style, title, font, center]
## PROTECT CUSTOM TAGS
keepNonMatchedTags: protect
# HTML Sanitizer
# `htmlSanitize = false | null` to disable individually
htmlSanitize:
# either preset name as declared in `$GLOBALS['TYPO3_CONF_VARS']['SYS']['htmlSanitizer']`
# or class-name implementing interface `\TYPO3\HtmlSanitizer\Builder\BuilderInterface`
build: default
+30
View File
@@ -0,0 +1,30 @@
<?php
declare(strict_types=1);
namespace TYPO3\CMS\Form;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use TYPO3\CMS\Core\DependencyInjection\PublicServicePass;
use TYPO3\CMS\Form\ConfigurationModuleProvider\FormYamlProvider;
use TYPO3\CMS\Form\Domain\Finishers\FinisherInterface;
use TYPO3\CMS\Lowlevel\ConfigurationModuleProvider\ProviderRegistry;
return static function (ContainerConfigurator $container, ContainerBuilder $containerBuilder) {
$containerBuilder->registerForAutoconfiguration(FinisherInterface::class)->addTag('form.finisher');
$containerBuilder->addCompilerPass(new PublicServicePass('form.finisher', true));
if ($containerBuilder->hasDefinition(ProviderRegistry::class)) {
$container->services()->defaults()->autowire()->autoconfigure()->public()
->set('lowlevel.configuration.module.provider.formyamlconfiguration')
->class(FormYamlProvider::class)
->tag(
'lowlevel.configuration.module.provider',
[
'identifier' => 'formYamlConfiguration',
'after' => 'eventListeners',
]
);
}
};
+40
View File
@@ -0,0 +1,40 @@
services:
_defaults:
autowire: true
autoconfigure: true
public: false
TYPO3\CMS\Form\:
resource: '../Classes/*'
exclude:
- '../Classes/{Domain/Model}'
- '../Classes/Mvc/Configuration/FormYamlConfiguration.php'
# Explicitly declared public so that ConfigurationManager can receive it via
# DI autowiring. Populated at container build time via FormYamlCollectorConfigurator.
TYPO3\CMS\Form\Mvc\Configuration\FormYamlCollector:
public: true
configurator:
- '@TYPO3\CMS\Form\DependencyInjection\FormYamlCollectorConfigurator'
- 'configure'
TYPO3\CMS\Form\SoftReference\FormPersistenceIdentifierSoftReferenceParser:
tags:
- name: softreference.parser
parserKey: formPersistenceIdentifier
TYPO3\CMS\Form\Mvc\Property\TypeConverter\FormDefinitionArrayConverter:
tags:
- name: extbase.type_converter
priority: 10
target: TYPO3\CMS\Form\Type\FormDefinitionArray
sources: string
TYPO3\CMS\Form\Storage\StorageAdapterFactory:
public: true
arguments:
$adapters: !tagged_iterator form.storage.adapter
_instanceof:
TYPO3\CMS\Form\Storage\StorageAdapterInterface:
tags: [ 'form.storage.adapter' ]
+2
View File
@@ -0,0 +1,2 @@
name: typo3/form
label: Form Framework
+44
View File
@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file source-language="en" datatype="plaintext" original="EXT:form/Configuration/Sets/Form/labels.xlf" date="2026-04-15T08:00:00Z" product-name="form">
<header/>
<body>
<trans-unit id="label">
<source>Form</source>
</trans-unit>
<trans-unit id="categories.form">
<source>Form</source>
</trans-unit>
<trans-unit id="categories.form.templates">
<source>Templates</source>
</trans-unit>
<trans-unit id="categories.form.translation">
<source>Translation</source>
</trans-unit>
<trans-unit id="settings.form.templates.templateRootPath">
<source>Path of Fluid Templates for form elements</source>
</trans-unit>
<trans-unit id="settings.description.form.templates.templateRootPath">
<source>Override the default Fluid template path for all form element rendering (e.g. EXT:my_sitepackage/Resources/Private/Templates/Form/Frontend/)</source>
</trans-unit>
<trans-unit id="settings.form.templates.partialRootPath">
<source>Path of Fluid Partials for form elements</source>
</trans-unit>
<trans-unit id="settings.description.form.templates.partialRootPath">
<source>Override the default Fluid partial path for all form element rendering (e.g. EXT:my_sitepackage/Resources/Private/Partials/Form/Frontend/)</source>
</trans-unit>
<trans-unit id="settings.form.templates.layoutRootPath">
<source>Path of Fluid Layouts for form elements</source>
</trans-unit>
<trans-unit id="settings.description.form.templates.layoutRootPath">
<source>Override the default Fluid layout path for all form element rendering (e.g. EXT:my_sitepackage/Resources/Private/Layouts/Form/Frontend/)</source>
</trans-unit>
<trans-unit id="settings.form.translation.translationFile">
<source>Additional translation file for form elements</source>
</trans-unit>
<trans-unit id="settings.description.form.translation.translationFile">
<source>Additional XLF translation file for form element labels (e.g. EXT:my_sitepackage/Resources/Private/Language/Form/locallang.xlf)</source>
</trans-unit>
</body>
</file>
</xliff>
@@ -0,0 +1,24 @@
categories:
form: ~
form.templates:
parent: form
form.translation:
parent: form
settings:
form.templates.templateRootPath:
default: ''
type: string
category: form.templates
form.templates.partialRootPath:
default: ''
type: string
category: form.templates
form.templates.layoutRootPath:
default: ''
type: string
category: form.templates
form.translation.translationFile:
default: ''
type: string
category: form.translation
+1
View File
@@ -0,0 +1 @@
@import 'EXT:form/Configuration/TypoScript/setup.typoscript'
@@ -0,0 +1,11 @@
<?php
defined('TYPO3') or die();
call_user_func(static function () {
TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile(
'form',
'Configuration/TypoScript/',
'Form'
);
});
@@ -0,0 +1,18 @@
<?php
defined('TYPO3') or die();
call_user_func(static function () {
// Register the plugin
$contentTypeName = \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
'Form',
'Formframework',
'LLL:EXT:form/Resources/Private/Language/locallang.xlf:form_new_wizard_title',
'content-form',
'forms',
'LLL:EXT:form/Resources/Private/Language/locallang.xlf:form_new_wizard_description',
'FILE:EXT:form/Configuration/FlexForms/FormFramework.xml',
);
$GLOBALS['TCA']['tt_content']['types'][$contentTypeName]['previewRenderer'] = \TYPO3\CMS\Form\Preview\FormPagePreviewRenderer::class;
});
+58
View File
@@ -0,0 +1,58 @@
<?php
return [
'ctrl' => [
'title' => 'form.db:form_definition',
'label' => 'label',
'crdate' => 'crdate',
'tstamp' => 'tstamp',
'versioningWS' => false,
'default_sortby' => 'label',
'delete' => 'deleted',
'rootLevel' => 1,
'security' => [
'ignoreRootLevelRestriction' => true,
],
'typeicon_classes' => [
'default' => 'content-form',
],
],
'types' => [
'0' => [
'showitem' => '
--div--;core.form.tabs:general, label, identifier, configuration,
',
],
],
'columns' => [
'label' => [
'label' => 'form.db:form_definition.label',
'config' => [
'type' => 'input',
'size' => 50,
'eval' => 'trim',
'readOnly' => true,
'required' => true,
],
],
'identifier' => [
'label' => 'form.db:form_definition.identifier',
'config' => [
'type' => 'input',
'size' => 50,
'eval' => 'trim,unique',
'readOnly' => true,
'required' => true,
],
],
'configuration' => [
'label' => 'form.db:form_definition.configuration',
'config' => [
'type' => 'json',
'readOnly' => true,
'required' => true,
],
],
],
];
+28
View File
@@ -0,0 +1,28 @@
plugin.tx_form {
view {
templateRootPaths {
0 = EXT:form/Resources/Private/Frontend/Templates/
10 = {$form.templates.templateRootPath}
}
partialRootPaths {
0 = EXT:form/Resources/Private/Frontend/Partials/
10 = {$form.templates.partialRootPath}
}
layoutRootPaths {
0 = EXT:form/Resources/Private/Frontend/Layouts/
10 = {$form.templates.layoutRootPath}
}
}
mvc {
callDefaultActionIfActionCantBeResolved = 1
}
}
# Rendering of content elements
lib.tx_form.contentElementRendering = RECORDS
lib.tx_form.contentElementRendering {
tables = tt_content
source.current = 1
dontCheckPid = 1
}
+4
View File
@@ -0,0 +1,4 @@
# Deny creating form_definition records via the "New Record" wizard
# or the "+" button in the record list. Form definitions should only
# be created through the Form Manager module.
mod.web_list.deniedNewTables := addToList(form_definition)