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
            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'
                  fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
            800:
              identifier: requiredValidator
              templateName: Inspector-RequiredValidatorEditor
              label: formEditor.elements.FormElement.editor.requiredValidator.label
              validatorIdentifier: NotEmpty
              propertyPath: properties.fluidAdditionalAttributes.required
              propertyValue: required
              configurationOptions:
                validationErrorMessage:
                  label: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.label
                  propertyPath: properties.validationErrorMessages
                  fieldExplanationText: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.fieldExplanationText
                  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
                    fieldExplanationText: formEditor.elements.TextMixin.validators.Alphanumeric.editor.validationErrorMessage.fieldExplanationText
                    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
                    fieldExplanationText: formEditor.elements.TextMixin.validators.Text.editor.validationErrorMessage.fieldExplanationText
                    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
                    fieldExplanationText: formEditor.elements.TextMixin.validators.StringLength.editor.validationErrorMessage.fieldExplanationText
                    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
                    fieldExplanationText: formEditor.elements.TextMixin.validators.EmailAddress.editor.validationErrorMessage.fieldExplanationText
                    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
                    fieldExplanationText: formEditor.elements.TextMixin.validators.Integer.editor.validationErrorMessage.fieldExplanationText
                    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
                    fieldExplanationText: formEditor.elements.TextMixin.validators.Float.editor.validationErrorMessage.fieldExplanationText
                    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
                    fieldExplanationText: formEditor.elements.TextMixin.validators.NumberRange.editor.validationErrorMessage.fieldExplanationText
                    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
                    fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.fieldExplanationText
                    propertyPath: options.regularExpression
                    propertyValidators:
                      10: NotEmpty
                      20: RegularExpressionPattern
                  300:
                    identifier: validationErrorMessage
                    templateName: Inspector-ValidationErrorMessageEditor
                    label: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.label
                    fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.fieldExplanationText
                    errorCodes:
                      10: 1221565130
                    propertyPath: properties.validationErrorMessages
                  9999:
                    identifier: removeButton
                    templateName: Inspector-RemoveElementEditor
          label: formEditor.elements.Text.label
          group: input
          groupSorting: 100
          iconIdentifier: form-text
        implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
        properties:
          containerClassAttribute: input
          elementClassAttribute: ''
          elementErrorClassAttribute: error
        variants:
          -
            identifier: template-variant
            condition: 'getRootFormProperty("renderingOptions.templateVariant") == "version2"'
            properties:
              containerClassAttribute: 'form-element form-element-text mb-3'
              elementClassAttribute: form-control
              elementErrorClassAttribute: ~
              labelClassAttribute: form-label
    formEditor:
      formEditorPartials:
        FormElement-Text: Stage/SimpleTemplate
