wm-fontis-tibi-2023/types/global.d.ts
2023-07-17 07:24:08 +00:00

196 lines
3.1 KiB
TypeScript

interface FileField {
path: string
src: string
type: string
}
interface Pages {
[key: string]: Page
}
interface Page {
path: string
teaser: teaserHomepage
sectionHomepage: Row
rows: outerRow[]
id: string
}
interface teaserHomepage {
showTeaser: boolean
subTitle: string
teaserTitle: string
teaserDescription: string
}
interface outerRow {
row: Row
}
interface Row {
topTitle: string
topTitleRed: boolean
subTitle: string
title: string
pageTitle: string
columns: Column[]
backgroundImage: FileField
}
interface Column {
contentType:
| "image"
| "iconCycleSquare"
| "iconCycleCircle"
| "text"
| "infoBoard"
| "worldCard"
| "nestedCard"
| "topDown"
| "personPreview"
| "boxlist"
| "extendableBoxes"
| "textLink"
| "iconBlocks"
| "pageLinkBlocks"
| "publications"
| "networkEvents"
image?: FileField
icons: {
icon: FileField
link: string
}[]
iconCycleSquare?: IconCycleSquare
iconCycleCircle?: IconCycleCircle
text: string
textLink: TextLink
infoBoard: InfoBoard
worldCard: WorldCard
nestedCard: NestedCard[]
topDown: TopDown
personPreview: PersonPreview[]
boxList: BoxList
extendableBoxes: ExtendableBox[]
iconBlocks: iconBlock[]
pageLinkBlocks: pageLinkBlock[]
networkEvents: NetworkEvent[]
publications: Publication[]
}
interface Publication {
file: FileField
content: string
}
interface NetworkEvent {
beginDate: Date
endDate: Date
title: string
file: FileField
}
interface iconBlock {
icon: FileField
iconFocused: FileField
bigText: string
smallText: string
}
interface pageLinkBlock {
name: string
rowNr: number
page: string
extendableRowNr: number
}
interface IconCycleSquare {
boxes: Box[]
}
interface IconCycleCircle {
boxes: Box[]
innerText: string
}
interface Box {
icon: FileField
text: string
circle: boolean
}
interface InfoBoard {
title: string
icon: FileField
text: string
}
interface WorldCard {
rows: WorldCardRow[]
}
interface worldCardRow {
cards: Card[]
}
interface Card {
verticalAlignment: string
horizontalAlignment: string
image: FileField
title: string
properties: number[]
}
interface NestedCard {
title: string
description: string
}
interface TopDown {
rows: TopDownRow[]
}
interface TopDownRow {
inital: string
rest: string
description: string
}
interface PersonPreview {
initialImage: FileField
hoverImage: FileField
name: string
link: string
}
interface BoxList {
boxes: {
name: string
}[]
}
interface ExtendableBox {
title: string
text: string
emailButton: boolean
emailSubject: string
}
interface FileField {
path: string
src: string
type: string
}
interface TextLink {
text: string
link: string
}
interface Navigation {
tree: number
pages: NavElement[]
}
interface NavElement {
name: string
page: string
}