wm-fontis-tibi-2023/types/global.d.ts
robin 0e9b5baed7
All checks were successful
deploy to production / deploy (push) Successful in 34s
fix
2023-11-19 11:08:52 +00:00

192 lines
3.4 KiB
TypeScript

interface FileField {
path: string
src: string
type: string
}
interface Pages {
[key: string]: Page
}
interface Page {
path: string
active: boolean
type: "page" | "teamMembers" | "jobOffers"
pageTitle: string
personType: string
personPreview: PersonPreview
teaser: teaserHomepage
jobOffer: jobOffer
rows: Row[]
id: string
}
interface teaserHomepage {
showTeaser: boolean
subTitle: string
teaserTitle: string
teaserDescription: string
}
interface Row {
topTitle: string
topTitleUpperCase: boolean
title: string
subTitle: string
backgroundImage: string
noBottomMargin: boolean
noTopMargin: boolean
flexWrapNormal: boolean
twoToThree: boolean
columns: Column[]
}
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 {
file: FileField
id: string
}
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
interface Publication {
file: string
content: string
}
interface NetworkEvent {
beginDate: Date
endDate: Date
title: string
file: string
}
interface iconBlock {
icon: string
bigText: string
smallText: string
}
interface IconCycleSquare {
boxes: Box[]
}
interface IconCycleCircle {
boxes: Box[]
innerText: string
}
interface Box {
icon: string
text: string
circle: boolean
}
interface InfoBoard {
title: string
icon: string
text: string
}
interface WorldCard {
row: WorldCardRow[]
}
interface worldCardRow {
cards: Card[]
}
interface Card {
verticalAlignment: string
horizontalAlignment: string
image: string
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: string
hoverImage: string
name: string
}
interface BoxList {
boxes: {
name: string
}[]
}
interface jobOffer {
title: string
text: string
emailButton: boolean
emailSubject: string
}
interface string {
path: string
src: string
type: string
}
interface TextLink {
text: string
link: string
}
interface Navigation {
tree: number
pages: NavElement[]
}
interface NavElement {
name: string
page: string
}