wm-fontis-tibi-2023/types/global.d.ts

197 lines
3.5 KiB
TypeScript
Raw Normal View History

2023-07-14 21:32:33 +02:00
interface FileField {
path: string
src: string
type: string
}
2023-07-14 13:58:27 +02:00
interface Pages {
[key: string]: Page
}
interface Page {
path: string
2023-11-12 11:02:26 +01:00
active: boolean
type: "page" | "teamMembers" | "jobOffers"
pageTitle: string
personType: string
personPreview: PersonPreview
2023-07-14 21:32:33 +02:00
teaser: teaserHomepage
2023-11-12 11:02:26 +01:00
jobOffer: jobOffer
rows: Row[]
2023-07-14 13:58:27 +02:00
id: string
2023-11-19 18:46:01 +01:00
meta: {
title: string
description: string
keywords: string
}
2023-07-14 13:58:27 +02:00
}
interface teaserHomepage {
showTeaser: boolean
2023-07-14 21:32:33 +02:00
subTitle: string
teaserTitle: string
teaserDescription: string
2023-07-14 13:58:27 +02:00
}
2023-11-12 11:02:26 +01:00
2023-07-14 13:58:27 +02:00
interface Row {
topTitle: string
2023-11-12 11:02:26 +01:00
topTitleUpperCase: boolean
2023-07-14 13:58:27 +02:00
title: string
2023-11-12 11:02:26 +01:00
subTitle: string
backgroundImage: string
noBottomMargin: boolean
noTopMargin: boolean
flexWrapNormal: boolean
twoToThree: boolean
2023-07-14 13:58:27 +02:00
columns: Column[]
}
2023-11-12 11:02:26 +01:00
type Column =
| { contentType: "image"; image: string; icons: { icon: string; link: string }[] }
| { contentType: "moduleImport"; moduleImport: string }
| { contentType: "text"; text: string }
| { contentType: "infoBoard"; infoBoard: InfoBoard }
| { contentType: "nestedCard"; nestedCard: NestedCard[] }
| { contentType: "topDown"; topDown: TopDown }
| { contentType: "textLink"; textLink: TextLink }
| { contentType: "iconBlocks"; iconBlocks: IconBlock[] }
| { contentType: "networkEvents"; networkEvents: NetworkEvent[] }
| { contentType: "publications"; publications: Publication[] }
interface MediaLibrary {
2023-07-14 13:58:27 +02:00
file: FileField
2023-11-12 11:02:26 +01:00
id: string
}
2023-11-19 12:08:52 +01:00
type BaseModule = { id: string }
type IconCycleModule = BaseModule & {
type: "iconCycleCircle" | "iconCycleSquare"
iconCycle?: IconCycleCircle | IconCycleSquare
}
type WorldCardModule = BaseModule & {
type: "worldCard"
worldCard?: WorldCard
}
type JobOfferModule = BaseModule & {
type: "jobOfferLink" | "jobOffer"
jobOfferPage?: string
}
type SimpleModule = BaseModule & {
type: "chefTeam" | "employeeTeam"
}
type Module = IconCycleModule | WorldCardModule | JobOfferModule | SimpleModule
2023-11-12 11:02:26 +01:00
interface Publication {
file: string
2023-07-14 13:58:27 +02:00
content: string
}
interface NetworkEvent {
2023-07-15 18:15:17 +02:00
beginDate: Date
2023-07-14 13:58:27 +02:00
endDate: Date
title: string
2023-11-12 11:02:26 +01:00
file: string
2023-07-14 13:58:27 +02:00
}
interface iconBlock {
2023-11-12 11:02:26 +01:00
icon: string
2023-07-14 13:58:27 +02:00
bigText: string
smallText: string
}
interface IconCycleSquare {
boxes: Box[]
}
interface IconCycleCircle {
boxes: Box[]
innerText: string
}
interface Box {
2023-11-12 11:02:26 +01:00
icon: string
2023-07-14 13:58:27 +02:00
text: string
circle: boolean
}
interface InfoBoard {
title: string
2023-11-12 11:02:26 +01:00
icon: string
2023-07-14 13:58:27 +02:00
text: string
}
interface WorldCard {
2023-11-12 12:45:32 +01:00
row: WorldCardRow[]
2023-07-16 23:31:08 +02:00
}
interface worldCardRow {
2023-07-14 13:58:27 +02:00
cards: Card[]
}
interface Card {
2023-07-16 23:31:08 +02:00
verticalAlignment: string
horizontalAlignment: string
2023-11-12 11:02:26 +01:00
image: string
2023-07-14 13:58:27 +02:00
title: string
properties: number[]
}
interface NestedCard {
title: string
description: string
}
interface TopDown {
rows: TopDownRow[]
}
interface TopDownRow {
2023-07-15 18:15:17 +02:00
inital: string
2023-07-14 13:58:27 +02:00
rest: string
description: string
}
interface PersonPreview {
2023-11-12 11:02:26 +01:00
initialImage: string
hoverImage: string
2023-07-14 13:58:27 +02:00
name: string
}
interface BoxList {
2023-07-15 18:15:17 +02:00
boxes: {
2023-07-14 13:58:27 +02:00
name: string
}[]
}
2023-11-12 11:02:26 +01:00
interface jobOffer {
2023-07-14 13:58:27 +02:00
title: string
text: string
2023-07-15 18:15:17 +02:00
emailButton: boolean
emailSubject: string
2023-07-14 13:58:27 +02:00
}
2023-11-12 11:02:26 +01:00
interface string {
2023-07-14 13:58:27 +02:00
path: string
src: string
type: string
}
interface TextLink {
text: string
link: string
}
interface Navigation {
tree: number
2023-07-15 18:15:17 +02:00
pages: NavElement[]
2023-07-14 13:58:27 +02:00
}
interface NavElement {
name: string
page: string
}