type: object[]
name: row
meta:
    label: Zeile
    addElementLabel: Zeile hinzufügen
    widget: grid
    folding:
        previewFolded: titleForWork
        previewUnfolded: titleForWork
subFields:
    - name: title
      type: string
      meta:
          label: Titel
    - !include titleForWork.yml

    - name: maxWidth
      type: boolean
      meta:
          label: Maximale Breite
    - name: iconBackgroundImage
      type: boolean
      meta:
          label: Hintergrund Wellen
    - name: iconBackgroundTitle
      type: boolean
      meta:
          label: Titel Highlights des Sees hinzufügen.

    - name: noGap
      type: boolean
      meta:
          label: Keine Lücken

    - name: column
      type: object[]
      meta:
          label: Spalte
          widget: grid
          addElementLabel: weitere Spalte
          folding:
              previewFolded: contentType
              previewUnfolded: contentType
          direction: horizontal
      subFields:
          - name: contentType
            type: string
            meta:
                label: ""
                widget: select
                choices:
                    - name: Hauptbild
                      id: mainPicture
                    - name: Bild
                      id: image
                    - name: Tabelle
                      id: table
                    - name: Informatiosübersicht
                      id: infoBoard
                    - name: Iconübersicht
                      id: iconBoard
                    - name: Formular
                      id: form
                    - name: Textfeld
                      id: text
                    - name: GoogleMaps
                      id: googleMaps
                    - name: Icon Informationsbrett
                      id: iconInfoBoard
                    - name: Boxenliste
                      id: boxlist
                    - name: Produkt Vorschau
                      id: productPreview

          - name: boxList
            type: object
            meta:
                label: Boxenliste
                dependsOn:
                    eval: $parent.contentType == 'boxlist'
            subFields:
                - name: boxes
                  type: object[]
                  meta:
                      label: Boxen
                  subFields:
                      - name: name
                        type: string
                        meta:
                            label: Name

          - name: iconInfoBoard
            type: object
            meta:
                label: Icon Informationsbrett
                dependsOn:
                    eval: $parent.contentType == 'iconInfoBoard'
            subFields:
                - name: title
                  type: string
                  meta:
                      label: Titel
                      helperText: "Dieser Titel wird im Infobrett angezeigt."

                - name: text
                  type: string
                  meta:
                      widget: richtext
                      label: Text
                      helperText: "Dieser Text wird im Infobrett angezeigt."

                - name: icon
                  type: file
                  meta:
                      label: Icon
                      helperText: "Das Icon wird im Infobrett angezeigt."

          - name: imageSlider
            type: object[]
            meta:
                label: Bild
                helperText: Wird nur ein Bild angegeben, so wird kein Slider verwendet.
                dependsOn:
                    eval: $parent.contentType == "image"
            subFields:
                - name: image
                  type: file
                  meta:
                      label: Bild
                      widget: image

          - name: mainPicture
            type: file
            meta:
                widget: image
                label: Hauptbild
                dependsOn:
                    eval: $parent.contentType == "mainPicture"

          - name: showGoogleMaps
            type: boolean
            meta:
                label: Anzeigen
                dependsOn:
                    eval: $parent.contentType == "googleMaps"

          - name: inscription
            type: string
            meta:
                widget: text
                label: Aufschrift
                dependsOn:
                    eval: $parent.contentType == "mainPicture"

          - name: textFieldHeading
            type: string
            meta:
                label: Überschrift
                dependsOn:
                    eval: $parent.contentType == "text"

          - name: textContent
            type: string
            meta:
                label: Text
                widget: richtext
                dependsOn:
                    eval: $parent.contentType == "text"
          - name: siteReference
            type: boolean
            meta:
                label: Zeilenreferenzen
                helperText: Für die zweite Spalte neben Hauptbild empfohlen, refereziert alle Reihen auf der folgenden Seite.
                dependsOn:
                    eval: $parent.contentType == "text"

          - name: tableFieldHeading
            type: string
            meta:
                label: Überschrift
                dependsOn:
                    eval: $parent.contentType == "table"

          - name: annotation
            type: string
            meta:
                label: Anmerkung
                dependsOn:
                    eval: $parent.contentType == "table" || $parent.contentType == "form"

          - name: table
            type: object[]
            meta:
                label: Tabelle
                addElementLabel: Tabelle Hinzufügen
                folding:
                    previewFolded: titleForWork
                    previewUnfolded: titleForWork
                dependsOn:
                    eval: $parent.contentType == "table"

            subFields:
                - !include titleForWork.yml
                - !include title.yml
                - name: hintsTable
                  type: string
                  meta:
                      label: Hinweise
                      widget: richtext
                - name: tableRow
                  type: object[]
                  meta:
                      label: Zeile
                      addElementLabel: Zeile hinzufügen

                  subFields:
                      - name: bold
                        type: boolean
                        meta:
                            label: Dick
                      - name: left
                        type: string
                        meta:
                            label: Linke Seite
                      - name: center
                        type: string
                        meta:
                            label: Mitte
                      - name: right
                        type: string
                        meta:
                            label: Rechte Seite

          - name: hintsTable
            type: string
            meta:
                label: Hinweise
                widget: richtext
                dependsOn:
                    eval: $parent.contentType == "table"

          - name: siteRefs
            type: boolean
            meta:
                dependsOn:
                    eval: $parent.contentType == "table"
                label: Zeilenreferenzen
                helperText: Für die zweite Spalte neben Hauptbild empfohlen, refereziert alle Reihen auf der folgenden Seite.

          - name: image
            type: file
            meta:
                label: Bild
                widget: image
                dependsOn:
                    eval: $parent.contentType == "infoBoard"

          - name: title
            type: string
            meta:
                label: Titel
                dependsOn:
                    eval: $parent.contentType == "infoBoard"

          - name: text
            type: string
            meta:
                label: description
                widget: richtext
                dependsOn:
                    eval: $parent.contentType == "infoBoard"

          - name: links
            type: object[]
            meta:
                label: Links
                dependsOn:
                    eval: $parent.contentType == "infoBoard"
            subFields:
                - name: name
                  type: string
                  meta:
                      label: Name
                - name: site
                  type: string
                  meta:
                      label: Seite
                      widget: select
                      choices:
                          endpoint: content
                          mapping:
                              id: path
                              name: path

          - name: productPreview
            type: object[]
            meta:
                label: Produkt Vorschau
                dependsOn:
                    eval: $parent.contentType == "productPreview"
            subFields:
                - name: image
                  type: file
                  meta:
                      label: Bild
                      widget: image

                - name: title
                  type: string
                  meta:
                      label: Titel

                - name: text
                  type: string
                  meta:
                      label: description
                      widget: richtext
                - name: price
                  type: string
                  meta:
                      label: Preis

          - name: iconBoard
            type: object[]

            meta:
                label: Icons
                direction: horizontal

                dependsOn:
                    eval: $parent.contentType == "iconBoard"
            subFields:
                - name: icon
                  type: file
                  meta:
                      widget: image
                      label: Icon
                - name: subText
                  type: string
                  meta:
                      label: Text

          - name: formEmailTitle
            type: string
            meta:
                label: Formular Email Titel
                dependsOn:
                    eval: $parent.contentType == "form"

          - name: formRows
            type: object[]
            meta:
                label: Zeile
                widget: grid
                addElementLabel: Zeile Hinzufügen
                dependsOn:
                    eval: $parent.contentType == "form"

            subFields:
                - name: rowName
                  type: string
                  meta:
                      label: Zeilenname

                - name: showRowName
                  type: boolean
                  meta:
                      label: Zeilenname anzeigen

                - name: columns
                  type: object[]

                  meta:
                      label: Spalte
                      addElementLabel: Spalte hinzufügen
                      folding:
                          previewFolded: titleForWork
                          previewUnfolded: titleForWork
                      widget: grid
                      direction: horizontal
                  subFields:
                      - !include titleForWork.yml

                      - name: title
                        type: string
                        meta:
                            label: Überschrift
                            helperText: Optional

                      - name: showLabelNumber
                        type: boolean
                        meta:
                            label: Label Nummerinput Anzeigen

                      - name: labelNumber
                        type: object[]
                        meta:
                            label: Nummber block
                            dependsOn:
                                eval: $parent?.showLabelNumber
                        subFields:
                            - name: group
                              type: number
                              meta:
                                  label: Gruppe
                            - name: title
                              type: string
                              meta:
                                  label: Titel
                            - name: emailName
                              type: string
                              meta:
                                  label: Email Name
                            - name: block
                              type: object[]
                              meta:
                                  label: Block
                              subFields:
                                  - name: label
                                    type: string
                                    meta:
                                        label: Label

                                  - name: emailName
                                    type: string
                                    meta:
                                        label: Email Name

                      - name: showTimes
                        type: boolean
                        meta:
                            label: Zeitenauswahlfeld Anzeigen

                      - name: times
                        type: object[]
                        meta:
                            label: Zeitenangabe
                            helperText: "Die Angaben werden in folgendes Übersetzt: Anfangspunkt - Endpunkt"
                            dependsOn:
                                eval: $parent?.showTimes
                            direction: horizontal

                        subFields:
                            - name: timeFrom
                              type: string
                              meta:
                                  label: Anfangspunkt
                                  helperText: Bspw. 14:30

                            - name: timeTo
                              type: string
                              meta:
                                  label: Endpunkt
                                  helperText: Bspw. 15:30

                      - name: timesPlaceholder
                        type: string
                        meta:
                            label: Platzhalter im leeren Eingabefeld
                            dependsOn:
                                eval: $parent?.showTimes

                      - name: timesfieldOrder
                        type: number
                        meta:
                            label: Reihenfolge
                            helperText: Die kleinste angegebene Zahl wird am weitesten oben in der Formularspalte stehen
                            dependsOn:
                                eval: $parent?.showTimes

                      - name: dateSelectNotRequired
                        type: boolean
                        meta:
                            label: nicht Notwendig
                            dependsOn:
                                eval: $parent?.showTimes

                      - name: emailNameTimes
                        type: string
                        meta:
                            label: Email Name
                            dependsOn:
                                eval: $parent?.showTimes

                      - name: showSelect
                        type: boolean
                        meta:
                            label: Auswahlfeld anzeigen

                      - name: selectTitle
                        type: string
                        meta:
                            label: Select Placeholdertext
                            dependsOn:
                                eval: $parent.showSelect

                      - name: selectEntries
                        type: object[]
                        meta:
                            label: Auswahleingabe
                            helperText: "Die Angaben werden in folgendes Übersetzt: Anfangspunkt - Endpunkt"
                            dependsOn:
                                eval: $parent.showSelect
                            direction: horizontal

                        subFields:
                            - name: leftSide
                              type: string
                              meta:
                                  label: Anfangspunkt
                                  helperText: Bspw. 14:30

                            - name: rightSide
                              type: string
                              meta:
                                  label: Endpunkt
                                  helperText: Bspw. 15:30
                      - name: timeNotRequired
                        type: boolean
                        meta:
                            label: nicht Notwendig
                            dependsOn:
                                eval: $parent?.showSelect

                      - name: selectPlaceholder
                        type: string
                        meta:
                            label: Platzhalter im leeren Eingabefeld
                            dependsOn:
                                eval: $parent?.showSelect

                      - name: emailNameTime
                        type: string
                        meta:
                            label: Email Name
                            dependsOn:
                                eval: $parent?.showSelect

                      - name: showDate
                        type: boolean
                        meta:
                            label: Datumsauswahl

                      - name: datePlaceholder
                        type: string
                        meta:
                            label: Datum Platzhalter für das leere Eingabefeld
                            dependsOn:
                                eval: $parent?.showDate

                      - name: datefieldOrder
                        type: number
                        meta:
                            label: Reihenfolge
                            helperText: Die kleinste angegebene Zahl wird am weitesten oben in der Formularspalte stehen
                            dependsOn:
                                eval: $parent?.showDate

                      - name: dateNotRequired
                        type: boolean
                        meta:
                            label: nicht Notwendig
                            dependsOn:
                                eval: $parent?.showDate

                      - name: emailNameDate
                        type: string
                        meta:
                            label: Email Name
                            dependsOn:
                                eval: $parent?.showDate

                      - name: showNumber
                        type: boolean
                        meta:
                            label: Nummerfeld

                      - name: numberPlaceholder
                        type: string
                        meta:
                            label: Nummer Platzhalter
                            dependsOn:
                                eval: $parent?.showNumber

                      - name: numberfieldOrder
                        type: number
                        meta:
                            label: Reihenfolge
                            helperText: Die kleinste angegebene Zahl wird am weitesten oben in der Formularspalte stehen
                            dependsOn:
                                eval: $parent?.showNumber

                      - name: numberNotRequired
                        type: boolean
                        meta:
                            label: nicht Notwendig
                            dependsOn:
                                eval: $parent?.showNumber

                      - name: emailNameNumber
                        type: string
                        meta:
                            label: Email Name
                            dependsOn:
                                eval: $parent?.showNumber

                      - name: showCheckboxGroup
                        type: boolean
                        meta:
                            label: Checkbox Gruppe Anzeigen

                      - name: groupTitle
                        type: string
                        meta:
                            label: Checkbox Gruppe Titel
                            dependsOn:
                                eval: $parent.showCheckboxGroup

                      - name: checkboxes
                        type: object[]
                        meta:
                            label: Checkbox Gruppe
                            dependsOn:
                                eval: $parent.showCheckboxGroup
                            direction: row
                        subFields:
                            - name: name
                              type: string
                              meta:
                                  label: Name

                            - name: emailName
                              type: string
                              meta:
                                  label: Email Name

                      - name: showDatePicker
                        type: boolean
                        meta:
                            label: Datumauswahl anzeigen
                      - name: datePickerEmailTitle
                        type: string
                        meta:
                            label: Datumauswahl Email Titel
                            dependsOn:
                                eval: $parent.showDatePicker

                      - name: datePickerNotRequired
                        type: boolean
                        meta:
                            label: nicht Notwendig
                            dependsOn:
                                eval: $parent.showDatePicker

                      - name: datePickerProps
                        type: object
                        meta:
                            label: Datumauswahl Eigenschaften
                            dependsOn:
                                eval: $parent.showDatePicker
                        subFields:
                            - name: allowedDateRanges
                              type: object[]
                              meta:
                                  label: Erlaubte Datumsbereiche
                              subFields:
                                  - name: from
                                    type: date
                                    meta:
                                        label: Von
                                        widget: date
                                  - name: to
                                    type: date
                                    meta:
                                        label: Bis
                                        widget: date
                            - name: excludeDays
                              type: string[]
                              meta:
                                  label: Auszuschließende Wochentage
                                  widget: selectArray
                                  choices:
                                      - id: monday
                                        name: Montag
                                      - id: tuesday
                                        name: Dienstag
                                      - id: wednesday
                                        name: Mittwoch
                                      - id: thursday
                                        name: Donnerstag
                                      - id: friday
                                        name: Freitag
                                      - id: saturday
                                        name: Samstag
                                      - id: sunday
                                        name: Sonntag

                      - name: showMultiSelect
                        type: boolean
                        meta:
                            label: Mehrfachauswahl anzeigen

                      - name: multiSelectEmailTitle
                        type: string
                        meta:
                            label: Mehrfachauswahl Email Titel
                            dependsOn:
                                eval: $parent.showMultiSelect

                      - name: multiSelectNotRequired
                        type: boolean
                        meta:
                            label: nicht Notwendig
                            dependsOn:
                                eval: $parent.showMultiSelect

                      - name: multiSelectPlaceholder
                        type: string
                        meta:
                            label: Mehrfachauswahl Platzhalter
                            dependsOn:
                                eval: $parent.showMultiSelect

                      - name: multiSelectOptions
                        type: object[]
                        meta:
                            label: Mehrfachauswahl Optionen
                            dependsOn:
                                eval: $parent.showMultiSelect
                            direction: horizontal
                        subFields:
                            - name: name
                              type: string
                              meta:
                                  label: Name

                      - name: multiSelectProps
                        type: object
                        meta:
                            label: Mehrfachauswahl Eigenschaften
                            dependsOn:
                                eval: $parent.showMultiSelect
                        subFields:
                            - name: additionalAddableValues
                              type: boolean
                              meta:
                                  label: Zusätzliche hinzufügbare Werte

                      - name: text
                        type: object[]
                        meta:
                            label: Textfeld
                            addElementLabel: Textfeld hinzufügen
                            folding:
                                previewFolded: titleForWork
                                previewUnfolded: titleForWork

                        subFields:
                            - !include titleForWork.yml
                            - name: textPlaceholder
                              type: string
                              meta:
                                  label: Platzhalter für das leere Eingabefeld

                            - name: textTitle
                              type: string
                              meta:
                                  label: Text Titel
                                  helperText: Alternative zu textPlaceholder

                            - name: textArea
                              type: boolean
                              meta:
                                  label: Großes Textfeld

                            - name: emailValidation
                              type: boolean
                              meta:
                                  label: E-Mail-Validierung

                            - name: telValidation
                              type: boolean
                              meta:
                                  label: Telefon-Validierung
                            - name: notRequired
                              type: boolean
                              meta:
                                  label: nicht Notwendig

                            - name: emailName
                              type: string
                              meta:
                                  label: Email Name

                            - name: textfieldOrder
                              type: number
                              meta:
                                  label: Reihenfolge
                                  helperText: Die kleinste angegebene Zahl wird am weitesten oben in der Formularspalte stehen