TYPO3:
  CMS:
    Form:
      prototypes:
        standard:
          formEditor:
            dynamicRequireJsModules:
              additionalViewModelModules:
                80: 'TYPO3/CMS/MsForm/Backend/FormEditor/MultipleUploadViewModel'
            formEditorPartials:
              FormElement-MultipleUpload: 'Stage/SimpleTemplate'

          formElementsDefinition:
            AdvancedPassword: null
            DatePicker: null
            Fieldset: null
            GridRow: null
              #properties:
              #  gridColumnClassAutoConfiguration:
              #    viewPorts:
              #      xs:
              #        classPattern: 'size25'
              #      sm:
              #        classPattern: 'size30'
            #      md:
            #        classPattern: 'size50'
            #      lg:
            #        classPattern: 'size70'
            #      xl:
            #        classPattern: 'size75'
            #      xxl: null
            Url:
              formEditor:
                editors:
                  400: null
            Textarea:
              formEditor:
                editors:
                  400: null
            Telephone:
              formEditor:
                editors:
                  400: null
            Password:
              formEditor:
                editors:
                  400: null
            Number:
              formEditor:
                editors:
                  400: null
            Email:
              formEditor:
                editors:
                  400: null
            Text:
              formEditor:
                editors:
                  400: null
            FileUpload:
              formEditor:
                editors:
                  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
                      80:
                        value: audio/mpeg
                        label: 'Audio (mp3)'
                      90:
                        value: audio/wav
                        label: 'Audio (wav)'
                      100:
                        value: audio/ogg
                        label: 'Audio (ogg)'
                      110:
                        value: audio/webm
                        label: 'Audio (webm)'
                      120:
                        value: audio/flac
                        label: 'Audio (flac)'
                      130:
                        value: audio/x-ms-wma
                        label: 'Audio (wma)'
                      140:
                        value: video/mp4
                        label: 'Video (mp4)'
                      150:
                        value: video/x-msvideo
                        label: 'Video (avi)'
                      160:
                        value: video/x-matroska
                        label: 'Video (mkv)'
                      170:
                        value: video/webm
                        label: 'Video (webm)'
                      180:
                        value: video/ogg
                        label: 'Video (ogg)'
                      190:
                        value: video/quicktime
                        label: 'Video (mov)'
                  400:
                    selectOptions:
                      10:
                        value: '2:/user_upload/'
                        label: '2:/user_upload/'
                predefinedDefaults:
                  properties:
                    saveToFileMount: '2:/user_upload/'
                    allowedMimeTypes:
                      - application/pdf
            ImageUpload:
              formEditor:
                editors:
                  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
                      40:
                        value: image/gif
                        label: 'Images (gif)'
                      50:
                        value: image/tiff
                        label: 'Images (tiff)'
                      60:
                        value: image/webp
                        label: 'Images (webp)'
                      70:
                        value: image/x-icon
                        label: 'Images (ico)'
                      80:
                        value: image/svg+xml
                        label: 'Images (svg)'
                      90:
                        value: image/heic
                        label: 'Images (heic)'
                  400:
                    selectOptions:
                      10:
                        value: '2:/user_upload/'
                        label: '2:/user_upload/'
                predefinedDefaults:
                  properties:
                    saveToFileMount: '2:/user_upload/'
            Form:
              renderingOptions:
                templateRootPaths:
                  100: 'EXT:ms_form/Resources/Private/Frontend/Templates/'
                partialRootPaths:
                  100: 'EXT:ms_form/Resources/Private/Frontend/Partials/'
                layoutRootPaths:
                  100: 'EXT:ms_form/Resources/Private/Frontend/Layouts/'

              formEditor:
                propertyCollections:
                  finishers:
                    # add finisher fields
                    10:
                      identifier: EmailToSender
                      editors:
                        501:
                          identifier: message
                          templateName: Inspector-TextareaEditor
                          label: 'E-Mail Content Text'
                          propertyPath: options.message
                          fieldExplanationText: 'If text is set, no form data will be displayed in the email.'
                    20:
                      identifier: EmailToReceiver
                      editors:
                        501:
                          identifier: message
                          templateName: Inspector-TextareaEditor
                          label: 'E-Mail Content Text'
                          propertyPath: options.message
                          fieldExplanationText: 'If text is set, no form data will be displayed in the email.'

              #formEditor:
              #  editors:
              #    900:
              #      # Extend finisher drop down
              #      selectOptions:
              #        35:
              #          value: 'MultipleUploadsFinisher'
              #          label: 'MultipleUploads Finisher'
              #  propertyCollections:
              #    finishers:
              #      # add finisher fields
              #      25:
              #        identifier: 'MultipleUploadsFinisher'
              #        editors:
              #          100:
              #            identifier: 'header'
              #            templateName: 'Inspector-CollectionElementHeaderEditor'
              #            label: 'MultipleUploads Finisher'
              #
              #          # subject field
              #          110:
              #            identifier: 'subject'
              #            templateName: 'Inspector-TextEditor'
              #            label: 'MultipleUploads Subject'
              #            propertyPath: 'options.subject'
              #            enableFormelementSelectionButton: true
              #            propertyValidators:
              #              10: 'NotEmpty'
              #              20: 'FormElementIdentifierWithinCurlyBracesInclusive'
              #
              #          # recipients field
              #          120:
              #            identifier: 'recipients'
              #            templateName: 'Inspector-PropertyGridEditor'
              #            label: 'MultipleUploads Recipients'
              #            propertyPath: 'options.recipients'
              #            propertyValidators:
              #              10: NotEmpty
              #            fieldExplanationText: 'Placeholder'
              #            isSortable: true
              #            enableAddRow: true
              #            enableDeleteRow: true
              #            useLabelAsFallbackValue: false
              #            gridColumns:
              #              - name: value
              #                title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
              #              - name: label
              #                title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
              #
              #          # senderAddress field
              #          130:
              #            identifier: 'senderAddress'
              #            templateName: 'Inspector-TextEditor'
              #            label: 'MultipleUploads Sender address'
              #            propertyPath: 'options.senderAddress'
              #            enableFormelementSelectionButton: true
              #            propertyValidatorsMode: OR
              #            propertyValidators:
              #              10: 'NaiveEmail'
              #              20: 'FormElementIdentifierWithinCurlyBracesInclusive'
              #
              #            fieldExplanationText: 'Placeholder'
              #
              #          140:
              #            identifier: 'senderName'
              #            templateName: 'Inspector-TextEditor'
              #            label: 'MultipleUploads Sender name'
              #            propertyPath: 'options.senderName'
              #            enableFormelementSelectionButton: true
              #            propertyValidators:
              #              10: 'FormElementIdentifierWithinCurlyBracesInclusive'
              #            fieldExplanationText: 'Placeholder'
              #
              #          150:
              #            identifier: 'replyToRecipients'
              #            templateName: 'Inspector-PropertyGridEditor'
              #            label: 'MultipleUploads Reply-To Recipients'
              #            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
              #              - name: label
              #                title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
              #
              #          160:
              #            identifier: 'carbonCopyRecipients'
              #            templateName: 'Inspector-PropertyGridEditor'
              #            label: 'MultipleUploads CC Recipients'
              #            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
              #              - name: label
              #                title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
              #
              #          170:
              #            identifier: 'blindCarbonCopyRecipients'
              #            templateName: 'Inspector-PropertyGridEditor'
              #            label: 'MultipleUploads BCC Recipients'
              #            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
              #              - name: label
              #                title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
              #
              #          180:
              #            identifier: 'addHtmlPart'
              #            templateName: 'Inspector-CheckboxEditor'
              #            label: 'MultipleUploads Add HTML part'
              #            propertyPath: 'options.addHtmlPart'
              #            fieldExplanationText: formEditor.elements.Form.finisher.EmailToSender.editor.addHtmlPart.fieldExplanationText
              #
              #          190:
              #            identifier: 'attachUploads'
              #            templateName: Inspector-CheckboxEditor
              #            label: formEditor.elements.Form.finisher.EmailToSender.editor.attachUploads.label
              #            propertyPath: 'options.attachUploads'
              #
              #          200:
              #            identifier: 'language'
              #            templateName: Inspector-SingleSelectEditor
              #            label: formEditor.elements.Form.finisher.EmailToSender.editor.language.label
              #            propertyPath: 'options.translation.language'
              #            selectOptions:
              #              10:
              #                value: default
              #                label: formEditor.elements.Form.finisher.EmailToSender.editor.language.1
              #
              #          210:
              #            identifier: 'useFluidEmail'
              #            templateName: Inspector-CheckboxEditor
              #            label: formEditor.elements.Form.finisher.EmailToSender.editor.useFluidEmail.label
              #            propertyPath: 'options.useFluidEmail'
              #            fieldExplanationText: formEditor.elements.Form.finisher.EmailToSender.editor.useFluidEmail.fieldExplanationText
              #
              #          220:
              #            identifier: 'title'
              #            templateName: Inspector-TextEditor
              #            label: formEditor.elements.Form.finisher.EmailToSender.editor.title.label
              #            propertyPath: 'options.title'
              #            fieldExplanationText: formEditor.elements.Form.finisher.EmailToSender.editor.title.fieldExplanationText
              #            enableFormelementSelectionButton: true
              #            propertyValidators:
              #              10: FormElementIdentifierWithinCurlyBracesInclusive
              #
              #          9999:
              #            identifier: removeButton
              #            templateName: Inspector-RemoveElementEditor


            MultipleUpload: null
              # inherit configuration from fileupload element
              #__inheritances:
              #  10: 'TYPO3.CMS.Form.prototypes.standard.formElementsDefinition.FileUpload'
              #renderingOptions:
              #  templateName: 'MultipleUpload'
              #formEditor:
              #  label: 'MultipleUpload'
              #  groupSorting: 1000
              #  editors:
              #    300:
              #      selectOptions:
              #        80:
              #          value: image/jpeg
              #          label: formEditor.elements.ImageUpload.editor.allowedMimeTypes.jpg
            #        90:
            #          value: image/png
            #          label: formEditor.elements.ImageUpload.editor.allowedMimeTypes.png
            #        100:
            #          value: image/bmp
            #          label: formEditor.elements.ImageUpload.editor.allowedMimeTypes.bmp
            #implementationClassName: 'MediateSystems\MsForm\Domain\Model\MultipleUpload'

          finishersDefinition:
            EmailToSender:
              implementationClassName: 'MediateSystems\MsForm\Domain\Finishers\MsEmailFinisher'
              options:
                templateName: '{@format}.html'
                templateRootPaths:
                  10: 'EXT:ms_form/Resources/Private/Frontend/Templates/Finishers/Email'
              formEditor:
                predefinedDefaults:
                  options:
                    useFluidEmail: true
            EmailToReceiver:
              implementationClassName: 'MediateSystems\MsForm\Domain\Finishers\MsEmailFinisher'
              options:
                templateName: '{@format}.html'
                templateRootPaths:
                  10: 'EXT:ms_form/Resources/Private/Frontend/Templates/Finishers/Email'
              formEditor:
                predefinedDefaults:
                  options:
                    useFluidEmail: true

          #  MultipleUploadsFinisher:
          #    implementationClassName: 'MediateSystems\MsForm\Domain\Finishers\MultipleUploadsFinisher'
          #    options:
          #      templateName: '{@format}.html'
          #      templateRootPaths:
          #        10: 'EXT:ms_form/Resources/Private/Frontend/Templates/Finishers/Email'
          #    formEditor:
          #      iconIdentifier: form-finisher
          #      label: 'MultipleUploads Finisher'
          #      predefinedDefaults:
          #        options:
          #          subject: ''
          #          recipients: { }
          #          senderAddress: ''
          #          senderName: ''
          #          replyToRecipients: { }
          #          carbonCopyRecipients: { }
          #          blindCarbonCopyRecipients: { }
          #          addHtmlPart: true
          #          attachUploads: true
          #          translation:
          #            language: 'default'
          #          useFluidEmail: false
          #          title: ''
          #    # displayed when overriding finisher settings
          #    FormEngine:
          #      label: 'MultipleUploadsFinisher Finisher'
          #      elements:
          #        subject:
          #          label: 'MultipleUploads Subject'
          #          config:
          #            type: input
          #            eval: required
          #        recipients:
          #          label: 'MultipleUploads Recipients'
          #          config:
          #            type: array
          #            section: true
          #            sectionItemKey: email
          #            sectionItemValue: name
          #            el:
          #              _arrayContainer:
          #                type: array
          #                title: tt_content.finishersDefinition.EmailToSender.recipients.item.label
          #                el:
          #                  email:
          #                    TCEforms:
          #                      label: tt_content.finishersDefinition.EmailToSender.recipients.email.label
          #                      config:
          #                        type: input
          #                        eval: 'required,email'
          #                  name:
          #                    TCEforms:
          #                      label: tt_content.finishersDefinition.EmailToSender.recipients.name.label
          #                      config:
          #                        type: input
          #        senderAddress:
          #          label: 'MultipleUploads Sender address'
          #          config:
          #            type: input
          #            eval: required
          #        senderName:
          #          label: 'MultipleUploads Sender name'
          #          config:
          #            type: input
