wm-AllKids-tibi2023/types/global.d.ts

191 lines
3.3 KiB
TypeScript
Raw Normal View History

2023-09-17 13:24:39 +02:00
interface Sites {
[key: string]: Site
}
interface Site {
path: string
showTeaser: boolean
teaserImages?: TeaserImage[]
teaserTitle?: string
teaserDescription?: string
row: Row[]
banner: Banner[]
id: string
}
interface Row {
title: string
maxWidth: boolean
column: Column[]
noGap: boolean
iconBackgroundTitle: boolean
}
interface Column {
contentType:
| "mainPicture"
| "googleMaps"
| "imageSlider"
| "table"
| "infoBoard"
| "iconBoard"
| "form"
| "videos"
| "text"
| "video"
video: FileField
titleVideo: string
descriptionVideo: string
mainPicture?: FileField
imageSlider: ImageSlider[]
siteRefs: boolean
siteReference: boolean
hintsTable: string
inscription?: string
textFieldHeading?: string
textContent?: string
annotation?: string
table?: Table[]
image?: FileField
title?: string
text?: string
links?: Link[]
iconBoard?: IconBoard[]
backgroundImage?: FileField
videoSwitch?: VideoSwitch[]
formRows?: FormRow[]
iconBackgroundImage?: boolean
}
interface ImageSlider {
image: FileField
}
interface Link {
name: string
site: string
}
interface Table {
title: string
tableRow: TableRow[]
hintsTable: string
}
interface TableRow {
bold: boolean
left: string
right: string
center: string
}
interface IconBoard {
icon: FileField
subText: string
}
interface VideoSwitch {
video: FileField
title: string
description: string
link: string
}
interface FormRow {
title?: string
columns: FormColumn[]
}
interface Block {
label: string
emailName: string
}
interface LabelNumber {
group: number
title: string
emailName: string
block: Block[]
}
interface FormColumn {
showLabelNumber: boolean
labelNumber: LabelNumber[]
showTimes?: boolean
annotation: string
times?: Time[]
timesPlaceholder?: string
showDate?: boolean
showSelect?: boolean
selectPlaceholder: string
selectEntries: Entries[]
datePlaceholder?: string
datefieldOrder?: number
textfieldOrder?: number
timesfieldOrder?: number
text?: TextField[]
title: string
selectTitle: string
numberPlaceholder: string
showNumber: boolean
timeNotRequired: boolean
dateNotRequired: boolean
dateSelectNotRequired: boolean
numberNotRequired: boolean
emailNameDate: string
emailNameNumber: string
emailNameTime: string
emailNameTimes: string
}
interface Temperature {
temperature: number
}
interface Time {
timeFrom: string
timeTo: string
}
interface Entries {
leftSide: string
rightSide: string
}
interface TextField {
textPlaceholder: string
textArea: boolean
notRequired: boolean
telValidation: boolean
emailValidation: boolean
dateSelectNotRequired: boolean
emailName: string
}
interface TeaserImage {
image: FileField
}
interface Banner {
content: string
}
interface Navigation {
tree: number
elemente: NavElement[]
}
interface NavElement {
endpoint: boolean
name: string
image: FileField
seite?: string
elemente?: NavElement[]
}
interface FileField {
path: string
src: string
type: string
}