wm-fontis-tibi-2023/types/global.d.ts
2023-07-14 11:58:27 +00:00

171 lines
2.6 KiB
TypeScript

interface Pages {
[key: string]: Page
}
interface Page {
path: string
teaserHomepage: teaserHomepage
sectionHomepage: Row
rows: Row[]
id: string
}
interface teaserHomepage {
showTeaser: boolean
subtitle: string
title: string
description: string
}
interface Row {
topTitle: string
subTitle: string
title: string
pageTitle: string
columns: Column[]
backgroundImage: FileField
}
interface Column {
contentType:
| "image"
| "iconCycleSquare"
| "iconCycleCircle"
| "text"
| "infoBoard"
| "worldCard"
| "nestedCard"
| "topDown"
| "personPreview"
| "boxList"
| "extendableBox"
| "textLink"
| "iconBlock"
| "pageLinkBlocks"
| "publication"
image?: FileField
iconCycleSquare?: IconCycleSquare
iconCycleCircle?: IconCycleCircle
text: string
infoBoard: InfoBoard
worldCard: WorldCard
nestedCard: NestedCard
topDown: TopDown
personPreview: PersonPreview
boxList: BoxList
extendableBox: ExtendableBox
iconBlocks: iconBlock[]
pageLinkBlocks: pageLinkBlock[]
networkEvents: NetworkEvent[]
publication: Publication
}
interface Publication {
file: FileField
content: string
}
interface NetworkEvent {
beginnDate: Date
endDate: Date
title: string
file: FileField
}
interface iconBlock {
icon: FileField
bigText: string
smallText: string
}
interface pageLinkBlock {
name: string
rowNr: number
page: string
}
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 {
cards: Card[]
}
interface Card {
image: FileField
title: string
properties: number[]
}
interface NestedCard {
title: string
description: string
}
interface TopDown {
rows: TopDownRow[]
}
interface TopDownRow {
initial: string
rest: string
description: string
}
interface PersonPreview {
initalImage: FileField
hoverImage: FileField
name: string
}
interface BoxList {
names: {
name: string
}[]
}
interface ExtendableBox {
title: string
text: string
}
interface FileField {
path: string
src: string
type: string
}
interface TextLink {
text: string
link: string
}
interface Navigation {
tree: number
elemente: NavElement[]
}
interface NavElement {
name: string
page: string
}