wwwlayermeshusa/src/payload-types.ts

3562 lines
88 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* tslint:disable */
/* eslint-disable */
/**
* This file was automatically generated by Payload.
* DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config,
* and re-run `payload generate:types` to regenerate this file.
*/
/**
* Supported timezones in IANA format.
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "supportedTimezones".
*/
export type SupportedTimezones =
| 'Pacific/Midway'
| 'Pacific/Niue'
| 'Pacific/Honolulu'
| 'Pacific/Rarotonga'
| 'America/Anchorage'
| 'Pacific/Gambier'
| 'America/Los_Angeles'
| 'America/Tijuana'
| 'America/Denver'
| 'America/Phoenix'
| 'America/Chicago'
| 'America/Guatemala'
| 'America/New_York'
| 'America/Bogota'
| 'America/Caracas'
| 'America/Santiago'
| 'America/Buenos_Aires'
| 'America/Sao_Paulo'
| 'Atlantic/South_Georgia'
| 'Atlantic/Azores'
| 'Atlantic/Cape_Verde'
| 'Europe/London'
| 'Europe/Berlin'
| 'Africa/Lagos'
| 'Europe/Athens'
| 'Africa/Cairo'
| 'Europe/Moscow'
| 'Asia/Riyadh'
| 'Asia/Dubai'
| 'Asia/Baku'
| 'Asia/Karachi'
| 'Asia/Tashkent'
| 'Asia/Calcutta'
| 'Asia/Dhaka'
| 'Asia/Almaty'
| 'Asia/Jakarta'
| 'Asia/Bangkok'
| 'Asia/Shanghai'
| 'Asia/Singapore'
| 'Asia/Tokyo'
| 'Asia/Seoul'
| 'Australia/Brisbane'
| 'Australia/Sydney'
| 'Pacific/Guam'
| 'Pacific/Noumea'
| 'Pacific/Auckland'
| 'Pacific/Fiji';
export interface Config {
auth: {
users: UserAuthOperations;
};
blocks: {};
collections: {
pages: Page;
posts: Post;
media: Media;
categories: Category;
users: User;
redirects: Redirect;
forms: Form;
'form-submissions': FormSubmission;
'payload-kv': PayloadKv;
'payload-jobs': PayloadJob;
'payload-locked-documents': PayloadLockedDocument;
'payload-preferences': PayloadPreference;
'payload-migrations': PayloadMigration;
};
collectionsJoins: {};
collectionsSelect: {
pages: PagesSelect<false> | PagesSelect<true>;
posts: PostsSelect<false> | PostsSelect<true>;
media: MediaSelect<false> | MediaSelect<true>;
categories: CategoriesSelect<false> | CategoriesSelect<true>;
users: UsersSelect<false> | UsersSelect<true>;
redirects: RedirectsSelect<false> | RedirectsSelect<true>;
forms: FormsSelect<false> | FormsSelect<true>;
'form-submissions': FormSubmissionsSelect<false> | FormSubmissionsSelect<true>;
'payload-kv': PayloadKvSelect<false> | PayloadKvSelect<true>;
'payload-jobs': PayloadJobsSelect<false> | PayloadJobsSelect<true>;
'payload-locked-documents': PayloadLockedDocumentsSelect<false> | PayloadLockedDocumentsSelect<true>;
'payload-preferences': PayloadPreferencesSelect<false> | PayloadPreferencesSelect<true>;
'payload-migrations': PayloadMigrationsSelect<false> | PayloadMigrationsSelect<true>;
};
db: {
defaultIDType: number;
};
fallbackLocale: ('false' | 'none' | 'null') | false | null | ('sv' | 'en') | ('sv' | 'en')[];
globals: {
header: Header;
footer: Footer;
'announcement-bar': AnnouncementBar;
'popup-announcement': PopupAnnouncement;
'site-settings': SiteSetting;
};
globalsSelect: {
header: HeaderSelect<false> | HeaderSelect<true>;
footer: FooterSelect<false> | FooterSelect<true>;
'announcement-bar': AnnouncementBarSelect<false> | AnnouncementBarSelect<true>;
'popup-announcement': PopupAnnouncementSelect<false> | PopupAnnouncementSelect<true>;
'site-settings': SiteSettingsSelect<false> | SiteSettingsSelect<true>;
};
locale: 'sv' | 'en';
user: User;
jobs: {
tasks: {
schedulePublish: TaskSchedulePublish;
inline: {
input: unknown;
output: unknown;
};
};
workflows: unknown;
};
}
export interface UserAuthOperations {
forgotPassword: {
email: string;
password: string;
};
login: {
email: string;
password: string;
};
registerFirstUser: {
email: string;
password: string;
};
unlock: {
email: string;
password: string;
};
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "pages".
*/
export interface Page {
id: number;
title: string;
layout: (
| FDHeroBlock
| FDCtaSideImageBlock
| FDFeatureAnnouncementBlock
| FDServicesGridBlock
| FDContactBlock
| FDFaqBlock
| FDCardGridBlock
| FDPricingCardBlock
| FDSpacerBlock
| FDIconBarBlock
| FDUspChecklistBlock
| FDWideCardBlock
| FDTechPropertiesBlock
| FDUspTableBlock
| FDHeaderTextImageBlock
| FDContactFormBlock
| FDLocationsGridBlock
| FDAlternateHeroBlock
| FDStatisticsBlock
| FDPartnersLogosBlock
| FDNewsletterBlock
| FDServiceChooserBlock
| FDDataTableBlock
| FDVpsCalculatorBlock
| FDServiceCalculatorBlock
| FDTagsBlock
| FDTextBlock
| FDCodeEmbedBlock
| FDVideoBlock
| FDCtaBannerBlock
| FDTestimonialBlock
| FDTeamBlock
)[];
meta?: {
title?: string | null;
/**
* Maximum upload file size: 12MB. Recommended file size for images is <500KB.
*/
image?: (number | null) | Media;
description?: string | null;
};
publishedAt?: string | null;
/**
* Sidans URL-slug, t.ex. "om-oss" → fiberdirekt.se/om-oss. Kan alltid redigeras manuellt. Bocka i "Generera slug" nedan för att skriva om automatiskt från titeln.
*/
slug: string;
/**
* När ikryssad skrivs slugen om från titeln vid varje sparning. Avbocka för att låsa slugen och redigera den manuellt.
*/
generateSlug?: boolean | null;
updatedAt: string;
createdAt: string;
_status?: ('draft' | 'published') | null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDHeroBlock".
*/
export interface FDHeroBlock {
heading: string;
subheading?: string | null;
body?: string | null;
ctaText?: string | null;
ctaLink?: string | null;
secondaryCtaText?: string | null;
secondaryCtaLink?: string | null;
/**
* Fullbreddsbild bakom texten. Lämna tom för enfärgad bakgrund.
*/
backgroundImage?: (number | null) | Media;
/**
* Hur mörk overlay över bilden (för läsbarhet)
*/
overlayOpacity?: ('30' | '50' | '70') | null;
textColor?: ('auto' | 'white' | 'navy') | null;
/**
* Ignoreras om bakgrundsbild är vald
*/
theme?: ('light' | 'dark') | null;
/**
* Valfritt. Används för att länka direkt till denna sektion, t.ex. "priser" ger /sida#priser. Använd bara små bokstäver, siffror och bindestreck.
*/
anchorId?: string | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdHero';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "media".
*/
export interface Media {
id: number;
alt: string;
updatedAt: string;
createdAt: string;
url?: string | null;
thumbnailURL?: string | null;
filename?: string | null;
mimeType?: string | null;
filesize?: number | null;
width?: number | null;
height?: number | null;
focalX?: number | null;
focalY?: number | null;
sizes?: {
thumbnail?: {
url?: string | null;
width?: number | null;
height?: number | null;
mimeType?: string | null;
filesize?: number | null;
filename?: string | null;
};
medium?: {
url?: string | null;
width?: number | null;
height?: number | null;
mimeType?: string | null;
filesize?: number | null;
filename?: string | null;
};
large?: {
url?: string | null;
width?: number | null;
height?: number | null;
mimeType?: string | null;
filesize?: number | null;
filename?: string | null;
};
hero?: {
url?: string | null;
width?: number | null;
height?: number | null;
mimeType?: string | null;
filesize?: number | null;
filename?: string | null;
};
};
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDCtaSideImageBlock".
*/
export interface FDCtaSideImageBlock {
heading: string;
body: string;
ctaText?: string | null;
ctaLink?: string | null;
image?: (number | null) | Media;
imageOverlay?:
| ('none' | 'navyLight' | 'navyMedium' | 'yellowLight' | 'yellowMedium' | 'sepia' | 'blackLight' | 'blackMedium')
| null;
imagePosition?: ('right' | 'left') | null;
theme?: ('light' | 'dark') | null;
/**
* Valfritt. Används för att länka direkt till denna sektion, t.ex. "priser" ger /sida#priser. Använd bara små bokstäver, siffror och bindestreck.
*/
anchorId?: string | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdCtaSideImage';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDFeatureAnnouncementBlock".
*/
export interface FDFeatureAnnouncementBlock {
heading: string;
body: string;
ctaText?: string | null;
ctaLink?: string | null;
theme?: ('gray' | 'light' | 'dark') | null;
/**
* Valfritt. Används för att länka direkt till denna sektion, t.ex. "priser" ger /sida#priser. Använd bara små bokstäver, siffror och bindestreck.
*/
anchorId?: string | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdFeatureAnnouncement';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDServicesGridBlock".
*/
export interface FDServicesGridBlock {
heading: string;
services?:
| {
title: string;
description: string;
image?: (number | null) | Media;
link?: string | null;
id?: string | null;
}[]
| null;
columns?: ('2' | '3' | '4') | null;
/**
* Valfritt. Används för att länka direkt till denna sektion, t.ex. "priser" ger /sida#priser. Använd bara små bokstäver, siffror och bindestreck.
*/
anchorId?: string | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdServicesGrid';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDContactBlock".
*/
export interface FDContactBlock {
heading: string;
contactMethods?:
| {
label: string;
icon?: (number | null) | Media;
/**
* tel:, mailto:, eller URL
*/
link?: string | null;
id?: string | null;
}[]
| null;
/**
* Valfritt. Används för att länka direkt till denna sektion, t.ex. "priser" ger /sida#priser. Använd bara små bokstäver, siffror och bindestreck.
*/
anchorId?: string | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdContact';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDFaqBlock".
*/
export interface FDFaqBlock {
heading: string;
items?:
| {
question: string;
answer?: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
} | null;
id?: string | null;
}[]
| null;
theme?: ('gray' | 'light' | 'dark') | null;
/**
* Valfritt. Används för att länka direkt till denna sektion, t.ex. "priser" ger /sida#priser. Använd bara små bokstäver, siffror och bindestreck.
*/
anchorId?: string | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdFaq';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDCardGridBlock".
*/
export interface FDCardGridBlock {
layout: '1-2' | '2-1' | '1-1-1' | '1-1';
cardStyle: 'navy' | 'gray' | 'yellow' | 'green' | 'outlined';
cards?:
| {
/**
* "Centrerad stor rubrik" visar bara rubrikfältet centrerat med stor text. "Centrerad brödtext" visar bara brödtext centrerat.
*/
displayMode?: ('content' | 'centeredHeading' | 'centeredBody') | null;
heading?: string | null;
centeredBodyText?: string | null;
contentLines?:
| {
text: string;
style?: ('normal' | 'bold' | 'italic' | 'boldItalic') | null;
/**
* Om ifylld blir texten en klickbar länk med understruken stil
*/
link?: string | null;
id?: string | null;
}[]
| null;
/**
* Gör hela kortet klickbart
*/
cardLink?: string | null;
id?: string | null;
}[]
| null;
sectionBackground?: ('white' | 'navy' | 'gray') | null;
/**
* Valfritt. Används för att länka direkt till denna sektion, t.ex. "priser" ger /sida#priser. Använd bara små bokstäver, siffror och bindestreck.
*/
anchorId?: string | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdCardGrid';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDPricingCardBlock".
*/
export interface FDPricingCardBlock {
/**
* Stor rubrik ovanför korten
*/
sectionTitle?: string | null;
cards?:
| {
/**
* T.ex. produktnamn eller tjänstenamn
*/
title: string;
/**
* T.ex. pris: "från 640 kr/mån"
*/
subtitle?: string | null;
description?: string | null;
bulletPoints?:
| {
text: string;
id?: string | null;
}[]
| null;
ctaText?: string | null;
ctaLink?: string | null;
id?: string | null;
}[]
| null;
cardStyle?: ('outlined' | 'navy' | 'gray' | 'yellow' | 'white') | null;
buttonColor?: ('yellow' | 'navy' | 'outlinedNavy' | 'outlinedWhite') | null;
sectionBackground?: ('white' | 'navy' | 'gray' | 'yellow') | null;
/**
* Färg på blockrubriken
*/
titleColor?: ('navy' | 'white' | 'yellow') | null;
/**
* Valfritt. Används för att länka direkt till denna sektion, t.ex. "priser" ger /sida#priser. Använd bara små bokstäver, siffror och bindestreck.
*/
anchorId?: string | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdPricingCard';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDSpacerBlock".
*/
export interface FDSpacerBlock {
height?: ('sm' | 'md' | 'lg' | 'xl') | null;
sectionBackground?: ('white' | 'navy' | 'gray' | 'yellow' | 'transparent') | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdSpacer';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDIconBarBlock".
*/
export interface FDIconBarBlock {
heading?: string | null;
icons?:
| {
icon: number | Media;
label: string;
link?: string | null;
id?: string | null;
}[]
| null;
iconStyle?: ('navy' | 'yellow' | 'gray' | 'none') | null;
sectionBackground?: ('white' | 'gray' | 'navy' | 'yellow') | null;
textColor?: ('navy' | 'white') | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdIconBar';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDUspChecklistBlock".
*/
export interface FDUspChecklistBlock {
heading: string;
items?:
| {
text: string;
id?: string | null;
}[]
| null;
image?: (number | null) | Media;
imagePosition?: ('right' | 'left') | null;
checkColor?: ('navy' | 'yellow' | 'gray') | null;
sectionBackground?: ('white' | 'gray' | 'navy') | null;
textColor?: ('navy' | 'white') | null;
/**
* Valfritt. Används för att länka direkt till denna sektion, t.ex. "priser" ger /sida#priser. Använd bara små bokstäver, siffror och bindestreck.
*/
anchorId?: string | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdUspChecklist';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDWideCardBlock".
*/
export interface FDWideCardBlock {
heading: string;
body?: string | null;
ctaText?: string | null;
ctaLink?: string | null;
image?: (number | null) | Media;
cardBackground?: ('navy' | 'yellow' | 'gray' | 'white') | null;
buttonColor?: ('yellow' | 'navy' | 'white') | null;
sectionBackground?: ('white' | 'gray' | 'navy') | null;
/**
* Valfritt. Används för att länka direkt till denna sektion, t.ex. "priser" ger /sida#priser. Använd bara små bokstäver, siffror och bindestreck.
*/
anchorId?: string | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdWideCard';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDTechPropertiesBlock".
*/
export interface FDTechPropertiesBlock {
properties?:
| {
/**
* T.ex. "Skyddsklass"
*/
category: string;
/**
* T.ex. "3" eller "1,6 MW"
*/
value: string;
id?: string | null;
}[]
| null;
sectionBackground?: ('navy' | 'white' | 'gray' | 'yellow') | null;
categoryColor?: ('white' | 'navy') | null;
valueColor?: ('yellow' | 'white' | 'navy') | null;
/**
* Valfritt. Används för att länka direkt till denna sektion, t.ex. "priser" ger /sida#priser. Använd bara små bokstäver, siffror och bindestreck.
*/
anchorId?: string | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdTechProperties';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDUspTableBlock".
*/
export interface FDUspTableBlock {
heading?: string | null;
rows?:
| {
/**
* T.ex. "Högsta säkerhet"
*/
title: string;
description?: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
} | null;
id?: string | null;
}[]
| null;
checkColor?: ('navy' | 'yellow' | 'gray') | null;
sectionBackground?: ('white' | 'gray' | 'navy') | null;
textColor?: ('navy' | 'white') | null;
/**
* Valfritt. Används för att länka direkt till denna sektion, t.ex. "priser" ger /sida#priser. Använd bara små bokstäver, siffror och bindestreck.
*/
anchorId?: string | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdUspTable';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDHeaderTextImageBlock".
*/
export interface FDHeaderTextImageBlock {
heading?: string | null;
body?: string | null;
image: number | Media;
imageOverlay?:
| ('none' | 'navyLight' | 'navyMedium' | 'yellowLight' | 'yellowMedium' | 'sepia' | 'blackLight' | 'blackMedium')
| null;
imageRounded?: ('none' | 'medium' | 'large') | null;
textAlign?: ('left' | 'center') | null;
sectionBackground?: ('white' | 'gray' | 'navy') | null;
textColor?: ('navy' | 'white') | null;
/**
* Valfritt. Används för att länka direkt till denna sektion, t.ex. "priser" ger /sida#priser. Använd bara små bokstäver, siffror och bindestreck.
*/
anchorId?: string | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdHeaderTextImage';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDContactFormBlock".
*/
export interface FDContactFormBlock {
/**
* Välj ett formulär skapat under Formulär i adminpanelen
*/
form: number | Form;
heading: string;
description?: string | null;
submitText?: string | null;
sectionBackground?: ('white' | 'gray' | 'navy' | 'navyGradient') | null;
layout?: ('standard' | 'withImage' | 'card') | null;
/**
* Visas till höger om formuläret på desktop
*/
sideImage?: (number | null) | Media;
privacyText?: string | null;
privacyLinkText?: string | null;
privacyLinkUrl?: string | null;
/**
* Skicka formulärdata till ett externt system (t.ex. Lime CRM) utöver Payload
*/
externalApi?: {
enabled?: boolean | null;
/**
* T.ex. https://api.lime-crm.se/webhook/forms
*/
endpoint?: string | null;
/**
* Skickas som Authorization: Bearer {token}
*/
authToken?: string | null;
};
/**
* Valfritt. Används för att länka direkt till denna sektion, t.ex. "priser" ger /sida#priser. Använd bara små bokstäver, siffror och bindestreck.
*/
anchorId?: string | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdContactForm';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "forms".
*/
export interface Form {
id: number;
title: string;
fields?:
| (
| {
name: string;
label?: string | null;
width?: number | null;
required?: boolean | null;
defaultValue?: boolean | null;
id?: string | null;
blockName?: string | null;
blockType: 'checkbox';
}
| {
name: string;
label?: string | null;
width?: number | null;
required?: boolean | null;
id?: string | null;
blockName?: string | null;
blockType: 'country';
}
| {
name: string;
label?: string | null;
width?: number | null;
required?: boolean | null;
id?: string | null;
blockName?: string | null;
blockType: 'email';
}
| {
message?: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
} | null;
id?: string | null;
blockName?: string | null;
blockType: 'message';
}
| {
name: string;
label?: string | null;
width?: number | null;
defaultValue?: number | null;
required?: boolean | null;
id?: string | null;
blockName?: string | null;
blockType: 'number';
}
| {
name: string;
label?: string | null;
width?: number | null;
defaultValue?: string | null;
placeholder?: string | null;
options?:
| {
label: string;
value: string;
id?: string | null;
}[]
| null;
required?: boolean | null;
id?: string | null;
blockName?: string | null;
blockType: 'select';
}
| {
name: string;
label?: string | null;
width?: number | null;
required?: boolean | null;
id?: string | null;
blockName?: string | null;
blockType: 'state';
}
| {
name: string;
label?: string | null;
width?: number | null;
defaultValue?: string | null;
required?: boolean | null;
id?: string | null;
blockName?: string | null;
blockType: 'text';
}
| {
name: string;
label?: string | null;
width?: number | null;
defaultValue?: string | null;
required?: boolean | null;
id?: string | null;
blockName?: string | null;
blockType: 'textarea';
}
)[]
| null;
submitButtonLabel?: string | null;
/**
* Choose whether to display an on-page message or redirect to a different page after they submit the form.
*/
confirmationType?: ('message' | 'redirect') | null;
confirmationMessage?: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
} | null;
redirect?: {
url: string;
};
/**
* Send custom emails when the form submits. Use comma separated lists to send the same email to multiple recipients. To reference a value from this form, wrap that field's name with double curly brackets, i.e. {{firstName}}. You can use a wildcard {{*}} to output all data and {{*:table}} to format it as an HTML table in the email.
*/
emails?:
| {
emailTo?: string | null;
cc?: string | null;
bcc?: string | null;
replyTo?: string | null;
emailFrom?: string | null;
subject: string;
/**
* Enter the message that should be sent in this email.
*/
message?: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
} | null;
id?: string | null;
}[]
| null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDLocationsGridBlock".
*/
export interface FDLocationsGridBlock {
heading?: string | null;
description?: string | null;
ctaText?: string | null;
ctaLink?: string | null;
cards?:
| {
image: number | Media;
locationName: string;
address?: string | null;
link?: string | null;
id?: string | null;
}[]
| null;
hoverColor?: ('navy' | 'yellow' | 'mint') | null;
sectionBackground?: ('white' | 'navy' | 'gray') | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdLocationsGrid';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDAlternateHeroBlock".
*/
export interface FDAlternateHeroBlock {
heading: string;
description?: string | null;
primaryCtaText?: string | null;
primaryCtaLink?: string | null;
secondaryCtaText?: string | null;
secondaryCtaLink?: string | null;
/**
* Bred bild utan border-radius — visas som en full showcase under CTA-knapparna.
*/
image?: (number | null) | Media;
imageCaption?: string | null;
sectionBackground?: ('white' | 'navy' | 'gray') | null;
/**
* Valfritt. Används för att länka direkt till denna sektion, t.ex. "priser" ger /sida#priser. Använd bara små bokstäver, siffror och bindestreck.
*/
anchorId?: string | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdAlternateHero';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDStatisticsBlock".
*/
export interface FDStatisticsBlock {
heading?: string | null;
stats?:
| {
/**
* T.ex. "77%", "24/7", "10 Gbit"
*/
number: string;
/**
* T.ex. "av ärenden lösta av AI"
*/
label: string;
id?: string | null;
}[]
| null;
sectionBackground?: ('white' | 'navy' | 'gray') | null;
numberColor?: ('gradient' | 'yellow' | 'mint' | 'navy' | 'white') | null;
/**
* Valfritt. Används för att länka direkt till denna sektion, t.ex. "priser" ger /sida#priser. Använd bara små bokstäver, siffror och bindestreck.
*/
anchorId?: string | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdStatistics';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDPartnersLogosBlock".
*/
export interface FDPartnersLogosBlock {
heading?: string | null;
logos?:
| {
image: number | Media;
/**
* Beskrivning av logotypen (tillgänglighet)
*/
alt?: string | null;
/**
* URL till partnerns webbplats
*/
link?: string | null;
id?: string | null;
}[]
| null;
displayMode?: ('color' | 'monochrome') | null;
sectionBackground?: ('white' | 'gray' | 'navy') | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdPartnersLogos';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDNewsletterBlock".
*/
export interface FDNewsletterBlock {
heading?: string | null;
description?: string | null;
/**
* URL dit formulärdata skickas (POST). T.ex. /api/newsletter, en Lime CRM webhook, eller en tredjeparts-URL.
*/
submitEndpoint: string;
buttonText?: string | null;
successMessage?: string | null;
/**
* Text bredvid samtyckeskryssrutan (GDPR)
*/
consentText?: string | null;
privacyPolicyLink?: string | null;
/**
* Lägg till ett namnfält i formuläret
*/
collectName?: boolean | null;
/**
* Lägg till ett fält för företagsnamn
*/
collectCompany?: boolean | null;
layout?: ('inline' | 'stacked' | 'card') | null;
sectionBackground?: ('white' | 'navy' | 'gray' | 'yellow') | null;
textColor?: ('auto' | 'navy' | 'white') | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdNewsletter';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDServiceChooserBlock".
*/
export interface FDServiceChooserBlock {
heading?: string | null;
description?: string | null;
categories?:
| {
/**
* T.ex. "Butik & Handel", "Lager & Logistik"
*/
label: string;
intro?: string | null;
services?:
| {
title: string;
description?: string | null;
ctaText?: string | null;
ctaLink?: string | null;
id?: string | null;
}[]
| null;
id?: string | null;
}[]
| null;
sectionBackground?: ('gray' | 'white' | 'navy') | null;
/**
* Valfritt. Används för att länka direkt till denna sektion, t.ex. "priser" ger /sida#priser. Använd bara små bokstäver, siffror och bindestreck.
*/
anchorId?: string | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdServiceChooser';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDDataTableBlock".
*/
export interface FDDataTableBlock {
heading?: string | null;
description?: string | null;
/**
* Välj om du vill ladda upp en fil eller ange tabelldata manuellt.
*/
dataSource?: ('upload' | 'manual') | null;
/**
* Ladda upp en .csv, .xlsx eller .xls fil. Den första raden används som kolumnrubriker.
*/
file?: (number | null) | Media;
/**
* Lägg till en rad per kolumn.
*/
headers?:
| {
text: string;
id?: string | null;
}[]
| null;
/**
* Varje rad är en kommaseparerad sträng av cellvärden, i samma ordning som kolumnrubrikerna.
*/
rows?:
| {
/**
* T.ex: "Stockholm, 10 Gbit, 99.9%, 2 400 kr/mån"
*/
cells: string;
id?: string | null;
}[]
| null;
sectionBackground?: ('white' | 'navy' | 'gray') | null;
headerStyle?: ('navy' | 'yellow' | 'mint' | 'gray') | null;
/**
* Aktivera för att annenhålla rader med subtil bakgrundsfärg.
*/
stripeRows?: boolean | null;
/**
* Lägg till linjer mellan alla celler.
*/
bordered?: boolean | null;
/**
* Gör den första kolumnen fet — användbart för namnkolumner.
*/
firstColumnBold?: boolean | null;
/**
* Valfritt. Används för att länka direkt till denna sektion, t.ex. "priser" ger /sida#priser. Använd bara små bokstäver, siffror och bindestreck.
*/
anchorId?: string | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdDataTable';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDVpsCalculatorBlock".
*/
export interface FDVpsCalculatorBlock {
heading?: string | null;
description?: string | null;
orderCtaText?: string | null;
orderCtaLink?: string | null;
contactCtaText?: string | null;
contactCtaLink?: string | null;
sectionBackground?: ('white' | 'gray' | 'navy') | null;
pricingCpuPerCore?: number | null;
pricingRamPerGb?: number | null;
pricingSsdPerGb?: number | null;
pricingHddPerGb?: number | null;
pricingWindowsLicense?: number | null;
/**
* Appliceras på alla resurser. 0 = ingen rabatt.
*/
discountPercent?: number | null;
/**
* Lägg till en fast avgift som alltid ingår i totalen.
*/
showAdminFee?: boolean | null;
/**
* Standard: 200 kr/mån
*/
adminFeeAmount?: number | null;
/**
* Kunden kan slå på/av dessa i kalkylatorn. Visas under "Tillvalstjänster".
*/
additionalServices?:
| {
label: string;
price: number;
id?: string | null;
}[]
| null;
/**
* Valfritt. Används för att länka direkt till denna sektion, t.ex. "priser" ger /sida#priser. Använd bara små bokstäver, siffror och bindestreck.
*/
anchorId?: string | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdVpsCalculator';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDServiceCalculatorBlock".
*/
export interface FDServiceCalculatorBlock {
heading?: string | null;
description?: string | null;
summaryHeading?: string | null;
totalLabel?: string | null;
totalSuffix?: string | null;
orderCtaText?: string | null;
orderCtaLink?: string | null;
contactCtaText?: string | null;
contactCtaLink?: string | null;
sectionBackground?: ('white' | 'gray' | 'navy') | null;
/**
* T.ex. "Operativsystem" med Linux/Windows, eller "Nivå" med Standard/Premium. Visas som knappar.
*/
optionGroups?:
| {
groupLabel: string;
options?:
| {
label: string;
/**
* 0 för gratis (t.ex. Linux)
*/
price?: number | null;
id?: string | null;
}[]
| null;
id?: string | null;
}[]
| null;
/**
* Varje rad blir ett +/- reglage. T.ex. CPU-kärnor, RAM (GB), Lagring (GB).
*/
resources?:
| {
label: string;
unit: string;
pricePerUnit: number;
defaultValue?: number | null;
min?: number | null;
max?: number | null;
step?: number | null;
/**
* Använd {value} och {unit} som variabler. T.ex. "SSD NVMe ({value} {unit})".
*/
summaryTemplate?: string | null;
id?: string | null;
}[]
| null;
/**
* Kunden kan slå på/av dessa med en toggle.
*/
addons?:
| {
label: string;
price: number;
description?: string | null;
id?: string | null;
}[]
| null;
/**
* Alltid inkluderade i totalen. Kunden kan inte välja bort dessa.
*/
fixedFees?:
| {
label: string;
amount: number;
id?: string | null;
}[]
| null;
/**
* Appliceras på alla resurser och tillval. 0 = ingen rabatt.
*/
discountPercent?: number | null;
/**
* T.ex. "{percent}% rabatt på alla resurser". Använd {percent} som variabel.
*/
discountLabel?: string | null;
/**
* Valfritt. Används för att länka direkt till denna sektion, t.ex. "priser" ger /sida#priser. Använd bara små bokstäver, siffror och bindestreck.
*/
anchorId?: string | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdServiceCalc';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDTagsBlock".
*/
export interface FDTagsBlock {
heading?: string | null;
tags?:
| {
text: string;
link?: string | null;
id?: string | null;
}[]
| null;
tagStyle?: ('navy' | 'yellow' | 'outlined' | 'gray') | null;
tagSize?: ('small' | 'medium' | 'large') | null;
alignment?: ('left' | 'center') | null;
sectionBackground?: ('white' | 'navy' | 'gray') | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdTags';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDTextBlock".
*/
export interface FDTextBlock {
heading?: string | null;
subheading?: string | null;
body?: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
} | null;
alignment?: ('left' | 'center' | 'right') | null;
textColor?: ('navy' | 'white' | 'yellow') | null;
sectionBackground?: ('white' | 'navy' | 'gray' | 'yellow') | null;
maxWidth?: ('narrow' | 'medium' | 'wide' | 'full') | null;
/**
* Valfritt. Används för att länka direkt till denna sektion, t.ex. "priser" ger /sida#priser. Använd bara små bokstäver, siffror och bindestreck.
*/
anchorId?: string | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdText';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDCodeEmbedBlock".
*/
export interface FDCodeEmbedBlock {
/**
* Visas ovanför den inbäddade koden
*/
heading?: string | null;
/**
* Visas mellan rubrik och inbäddning
*/
description?: string | null;
embedType: 'iframe' | 'custom';
/**
* Full URL till iframe-källan, t.ex. Lime CRM-formulär
*/
iframeSrc?: string | null;
/**
* Beskrivning för skärmläsare
*/
iframeTitle?: string | null;
/**
* CSS-höjd, t.ex. 600px, 80vh, auto
*/
iframeHeight?: string | null;
/**
* T.ex. "clipboard-write; encrypted-media" — lämna tomt om du är osäker
*/
iframeAllow?: string | null;
/**
* Klistra in din HTML, CSS eller JavaScript här. Renderas i en sandlåda.
*/
customCode?: string | null;
/**
* Renderar koden i en isolerad iframe. Avaktivera bara om koden måste interagera med huvudsidan.
*/
sandboxed?: boolean | null;
maxWidth?: ('default' | 'narrow' | 'wide' | 'full') | null;
sectionBackground?: ('white' | 'navy' | 'gray' | 'yellow' | 'transparent') | null;
textColor?: ('auto' | 'navy' | 'white') | null;
embedBackground?: ('none' | 'card' | 'navy-card') | null;
/**
* Valfritt. Används för att länka direkt till denna sektion, t.ex. "priser" ger /sida#priser. Använd bara små bokstäver, siffror och bindestreck.
*/
anchorId?: string | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdCodeEmbed';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDVideoBlock".
*/
export interface FDVideoBlock {
heading?: string | null;
description?: string | null;
videoSource: 'upload' | 'youtube' | 'vimeo';
/**
* Ladda upp en MP4, WebM eller annan videofil
*/
videoFile?: (number | null) | Media;
/**
* Full YouTube-länk, t.ex. https://www.youtube.com/watch?v=abc123 eller https://youtu.be/abc123
*/
youtubeUrl?: string | null;
/**
* Full Vimeo-länk, t.ex. https://vimeo.com/123456789
*/
vimeoUrl?: string | null;
/**
* Ersätter standardminiatyrbilden. Visas innan videon spelas. Rekommenderad storlek: 1920×1080 (16:9) eller 1920×1200 (16:10)
*/
thumbnail?: (number | null) | Media;
aspectRatio?: ('16/9' | '16/10') | null;
/**
* Spelar videon automatiskt utan ljud vid sidladdning
*/
autoplay?: boolean | null;
loop?: boolean | null;
maxWidth?: ('default' | 'narrow' | 'wide') | null;
sectionBackground?: ('white' | 'navy' | 'gray' | 'yellow' | 'transparent') | null;
textColor?: ('auto' | 'navy' | 'white') | null;
/**
* Valfritt. Används för att länka direkt till denna sektion, t.ex. "priser" ger /sida#priser. Använd bara små bokstäver, siffror och bindestreck.
*/
anchorId?: string | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdVideo';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDCtaBannerBlock".
*/
export interface FDCtaBannerBlock {
heading: string;
/**
* Kort text under rubriken
*/
subheading?: string | null;
ctaText?: string | null;
ctaLink?: string | null;
secondaryCtaText?: string | null;
secondaryCtaLink?: string | null;
sectionBackground?: ('yellow' | 'navy' | 'gray' | 'white') | null;
alignment?: ('center' | 'left') | null;
size?: ('small' | 'medium' | 'large') | null;
/**
* Valfritt. Används för att länka direkt till denna sektion, t.ex. "priser" ger /sida#priser. Använd bara små bokstäver, siffror och bindestreck.
*/
anchorId?: string | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdCtaBanner';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDTestimonialBlock".
*/
export interface FDTestimonialBlock {
/**
* T.ex. "Vad våra kunder säger"
*/
heading?: string | null;
testimonials?:
| {
/**
* Kundens citat utan citattecken
*/
quote: string;
authorName: string;
/**
* T.ex. "IT-chef"
*/
authorRole?: string | null;
authorCompany?: string | null;
avatar?: (number | null) | Media;
id?: string | null;
}[]
| null;
layout?: ('grid' | 'featured') | null;
sectionBackground?: ('gray' | 'white' | 'navy') | null;
/**
* Valfritt. Används för att länka direkt till denna sektion, t.ex. "priser" ger /sida#priser. Använd bara små bokstäver, siffror och bindestreck.
*/
anchorId?: string | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdTestimonial';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDTeamBlock".
*/
export interface FDTeamBlock {
/**
* T.ex. "Möt vårt team"
*/
heading?: string | null;
subheading?: string | null;
members?:
| {
photo?: (number | null) | Media;
name: string;
role: string;
/**
* Kort beskrivning om personen
*/
bio?: string | null;
email?: string | null;
linkedin?: string | null;
id?: string | null;
}[]
| null;
columns?: ('2' | '3' | '4') | null;
cardStyle?: ('navy' | 'white' | 'gray') | null;
sectionBackground?: ('white' | 'gray' | 'navy') | null;
/**
* Valfritt. Används för att länka direkt till denna sektion, t.ex. "priser" ger /sida#priser. Använd bara små bokstäver, siffror och bindestreck.
*/
anchorId?: string | null;
id?: string | null;
blockName?: string | null;
blockType: 'fdTeam';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "posts".
*/
export interface Post {
id: number;
title: string;
heroImage?: (number | null) | Media;
content: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
};
relatedPosts?: (number | Post)[] | null;
categories?: (number | Category)[] | null;
meta?: {
title?: string | null;
/**
* Maximum upload file size: 12MB. Recommended file size for images is <500KB.
*/
image?: (number | null) | Media;
description?: string | null;
};
publishedAt?: string | null;
authors?: (number | User)[] | null;
populatedAuthors?:
| {
id?: string | null;
name?: string | null;
}[]
| null;
/**
* Inläggets URL-slug, t.ex. "mitt-inlagg" → fiberdirekt.se/posts/mitt-inlagg. Kan alltid redigeras manuellt. Bocka i "Generera slug" nedan för att skriva om automatiskt från titeln.
*/
slug: string;
/**
* När ikryssad skrivs slugen om från titeln vid varje sparning. Avbocka för att låsa slugen och redigera den manuellt.
*/
generateSlug?: boolean | null;
updatedAt: string;
createdAt: string;
_status?: ('draft' | 'published') | null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "categories".
*/
export interface Category {
id: number;
title: string;
slug: string;
parent?: (number | null) | Category;
breadcrumbs?:
| {
doc?: (number | null) | Category;
url?: string | null;
label?: string | null;
id?: string | null;
}[]
| null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "users".
*/
export interface User {
id: number;
name: string;
/**
* Admin har full åtkomst. Redaktör kan hantera sidor, inlägg och media.
*/
role: 'admin' | 'editor';
updatedAt: string;
createdAt: string;
email: string;
resetPasswordToken?: string | null;
resetPasswordExpiration?: string | null;
salt?: string | null;
hash?: string | null;
loginAttempts?: number | null;
lockUntil?: string | null;
sessions?:
| {
id: string;
createdAt?: string | null;
expiresAt: string;
}[]
| null;
password?: string | null;
collection: 'users';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "redirects".
*/
export interface Redirect {
id: number;
/**
* You will need to rebuild the website when changing this field.
*/
from: string;
to?: {
type?: ('reference' | 'custom') | null;
reference?:
| ({
relationTo: 'pages';
value: number | Page;
} | null)
| ({
relationTo: 'posts';
value: number | Post;
} | null);
url?: string | null;
};
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "form-submissions".
*/
export interface FormSubmission {
id: number;
form: number | Form;
submissionData?:
| {
field: string;
value: string;
id?: string | null;
}[]
| null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-kv".
*/
export interface PayloadKv {
id: number;
key: string;
data:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-jobs".
*/
export interface PayloadJob {
id: number;
/**
* Input data provided to the job
*/
input?:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
taskStatus?:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
completedAt?: string | null;
totalTried?: number | null;
/**
* If hasError is true this job will not be retried
*/
hasError?: boolean | null;
/**
* If hasError is true, this is the error that caused it
*/
error?:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
/**
* Task execution log
*/
log?:
| {
executedAt: string;
completedAt: string;
taskSlug: 'inline' | 'schedulePublish';
taskID: string;
input?:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
output?:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
state: 'failed' | 'succeeded';
error?:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
id?: string | null;
}[]
| null;
taskSlug?: ('inline' | 'schedulePublish') | null;
queue?: string | null;
waitUntil?: string | null;
processing?: boolean | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-locked-documents".
*/
export interface PayloadLockedDocument {
id: number;
document?:
| ({
relationTo: 'pages';
value: number | Page;
} | null)
| ({
relationTo: 'posts';
value: number | Post;
} | null)
| ({
relationTo: 'media';
value: number | Media;
} | null)
| ({
relationTo: 'categories';
value: number | Category;
} | null)
| ({
relationTo: 'users';
value: number | User;
} | null)
| ({
relationTo: 'redirects';
value: number | Redirect;
} | null)
| ({
relationTo: 'forms';
value: number | Form;
} | null)
| ({
relationTo: 'form-submissions';
value: number | FormSubmission;
} | null);
globalSlug?: string | null;
user: {
relationTo: 'users';
value: number | User;
};
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-preferences".
*/
export interface PayloadPreference {
id: number;
user: {
relationTo: 'users';
value: number | User;
};
key?: string | null;
value?:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-migrations".
*/
export interface PayloadMigration {
id: number;
name?: string | null;
batch?: number | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "pages_select".
*/
export interface PagesSelect<T extends boolean = true> {
title?: T;
layout?:
| T
| {
fdHero?: T | FDHeroBlockSelect<T>;
fdCtaSideImage?: T | FDCtaSideImageBlockSelect<T>;
fdFeatureAnnouncement?: T | FDFeatureAnnouncementBlockSelect<T>;
fdServicesGrid?: T | FDServicesGridBlockSelect<T>;
fdContact?: T | FDContactBlockSelect<T>;
fdFaq?: T | FDFaqBlockSelect<T>;
fdCardGrid?: T | FDCardGridBlockSelect<T>;
fdPricingCard?: T | FDPricingCardBlockSelect<T>;
fdSpacer?: T | FDSpacerBlockSelect<T>;
fdIconBar?: T | FDIconBarBlockSelect<T>;
fdUspChecklist?: T | FDUspChecklistBlockSelect<T>;
fdWideCard?: T | FDWideCardBlockSelect<T>;
fdTechProperties?: T | FDTechPropertiesBlockSelect<T>;
fdUspTable?: T | FDUspTableBlockSelect<T>;
fdHeaderTextImage?: T | FDHeaderTextImageBlockSelect<T>;
fdContactForm?: T | FDContactFormBlockSelect<T>;
fdLocationsGrid?: T | FDLocationsGridBlockSelect<T>;
fdAlternateHero?: T | FDAlternateHeroBlockSelect<T>;
fdStatistics?: T | FDStatisticsBlockSelect<T>;
fdPartnersLogos?: T | FDPartnersLogosBlockSelect<T>;
fdNewsletter?: T | FDNewsletterBlockSelect<T>;
fdServiceChooser?: T | FDServiceChooserBlockSelect<T>;
fdDataTable?: T | FDDataTableBlockSelect<T>;
fdVpsCalculator?: T | FDVpsCalculatorBlockSelect<T>;
fdServiceCalc?: T | FDServiceCalculatorBlockSelect<T>;
fdTags?: T | FDTagsBlockSelect<T>;
fdText?: T | FDTextBlockSelect<T>;
fdCodeEmbed?: T | FDCodeEmbedBlockSelect<T>;
fdVideo?: T | FDVideoBlockSelect<T>;
fdCtaBanner?: T | FDCtaBannerBlockSelect<T>;
fdTestimonial?: T | FDTestimonialBlockSelect<T>;
fdTeam?: T | FDTeamBlockSelect<T>;
};
meta?:
| T
| {
title?: T;
image?: T;
description?: T;
};
publishedAt?: T;
slug?: T;
generateSlug?: T;
updatedAt?: T;
createdAt?: T;
_status?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDHeroBlock_select".
*/
export interface FDHeroBlockSelect<T extends boolean = true> {
heading?: T;
subheading?: T;
body?: T;
ctaText?: T;
ctaLink?: T;
secondaryCtaText?: T;
secondaryCtaLink?: T;
backgroundImage?: T;
overlayOpacity?: T;
textColor?: T;
theme?: T;
anchorId?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDCtaSideImageBlock_select".
*/
export interface FDCtaSideImageBlockSelect<T extends boolean = true> {
heading?: T;
body?: T;
ctaText?: T;
ctaLink?: T;
image?: T;
imageOverlay?: T;
imagePosition?: T;
theme?: T;
anchorId?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDFeatureAnnouncementBlock_select".
*/
export interface FDFeatureAnnouncementBlockSelect<T extends boolean = true> {
heading?: T;
body?: T;
ctaText?: T;
ctaLink?: T;
theme?: T;
anchorId?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDServicesGridBlock_select".
*/
export interface FDServicesGridBlockSelect<T extends boolean = true> {
heading?: T;
services?:
| T
| {
title?: T;
description?: T;
image?: T;
link?: T;
id?: T;
};
columns?: T;
anchorId?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDContactBlock_select".
*/
export interface FDContactBlockSelect<T extends boolean = true> {
heading?: T;
contactMethods?:
| T
| {
label?: T;
icon?: T;
link?: T;
id?: T;
};
anchorId?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDFaqBlock_select".
*/
export interface FDFaqBlockSelect<T extends boolean = true> {
heading?: T;
items?:
| T
| {
question?: T;
answer?: T;
id?: T;
};
theme?: T;
anchorId?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDCardGridBlock_select".
*/
export interface FDCardGridBlockSelect<T extends boolean = true> {
layout?: T;
cardStyle?: T;
cards?:
| T
| {
displayMode?: T;
heading?: T;
centeredBodyText?: T;
contentLines?:
| T
| {
text?: T;
style?: T;
link?: T;
id?: T;
};
cardLink?: T;
id?: T;
};
sectionBackground?: T;
anchorId?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDPricingCardBlock_select".
*/
export interface FDPricingCardBlockSelect<T extends boolean = true> {
sectionTitle?: T;
cards?:
| T
| {
title?: T;
subtitle?: T;
description?: T;
bulletPoints?:
| T
| {
text?: T;
id?: T;
};
ctaText?: T;
ctaLink?: T;
id?: T;
};
cardStyle?: T;
buttonColor?: T;
sectionBackground?: T;
titleColor?: T;
anchorId?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDSpacerBlock_select".
*/
export interface FDSpacerBlockSelect<T extends boolean = true> {
height?: T;
sectionBackground?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDIconBarBlock_select".
*/
export interface FDIconBarBlockSelect<T extends boolean = true> {
heading?: T;
icons?:
| T
| {
icon?: T;
label?: T;
link?: T;
id?: T;
};
iconStyle?: T;
sectionBackground?: T;
textColor?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDUspChecklistBlock_select".
*/
export interface FDUspChecklistBlockSelect<T extends boolean = true> {
heading?: T;
items?:
| T
| {
text?: T;
id?: T;
};
image?: T;
imagePosition?: T;
checkColor?: T;
sectionBackground?: T;
textColor?: T;
anchorId?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDWideCardBlock_select".
*/
export interface FDWideCardBlockSelect<T extends boolean = true> {
heading?: T;
body?: T;
ctaText?: T;
ctaLink?: T;
image?: T;
cardBackground?: T;
buttonColor?: T;
sectionBackground?: T;
anchorId?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDTechPropertiesBlock_select".
*/
export interface FDTechPropertiesBlockSelect<T extends boolean = true> {
properties?:
| T
| {
category?: T;
value?: T;
id?: T;
};
sectionBackground?: T;
categoryColor?: T;
valueColor?: T;
anchorId?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDUspTableBlock_select".
*/
export interface FDUspTableBlockSelect<T extends boolean = true> {
heading?: T;
rows?:
| T
| {
title?: T;
description?: T;
id?: T;
};
checkColor?: T;
sectionBackground?: T;
textColor?: T;
anchorId?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDHeaderTextImageBlock_select".
*/
export interface FDHeaderTextImageBlockSelect<T extends boolean = true> {
heading?: T;
body?: T;
image?: T;
imageOverlay?: T;
imageRounded?: T;
textAlign?: T;
sectionBackground?: T;
textColor?: T;
anchorId?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDContactFormBlock_select".
*/
export interface FDContactFormBlockSelect<T extends boolean = true> {
form?: T;
heading?: T;
description?: T;
submitText?: T;
sectionBackground?: T;
layout?: T;
sideImage?: T;
privacyText?: T;
privacyLinkText?: T;
privacyLinkUrl?: T;
externalApi?:
| T
| {
enabled?: T;
endpoint?: T;
authToken?: T;
};
anchorId?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDLocationsGridBlock_select".
*/
export interface FDLocationsGridBlockSelect<T extends boolean = true> {
heading?: T;
description?: T;
ctaText?: T;
ctaLink?: T;
cards?:
| T
| {
image?: T;
locationName?: T;
address?: T;
link?: T;
id?: T;
};
hoverColor?: T;
sectionBackground?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDAlternateHeroBlock_select".
*/
export interface FDAlternateHeroBlockSelect<T extends boolean = true> {
heading?: T;
description?: T;
primaryCtaText?: T;
primaryCtaLink?: T;
secondaryCtaText?: T;
secondaryCtaLink?: T;
image?: T;
imageCaption?: T;
sectionBackground?: T;
anchorId?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDStatisticsBlock_select".
*/
export interface FDStatisticsBlockSelect<T extends boolean = true> {
heading?: T;
stats?:
| T
| {
number?: T;
label?: T;
id?: T;
};
sectionBackground?: T;
numberColor?: T;
anchorId?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDPartnersLogosBlock_select".
*/
export interface FDPartnersLogosBlockSelect<T extends boolean = true> {
heading?: T;
logos?:
| T
| {
image?: T;
alt?: T;
link?: T;
id?: T;
};
displayMode?: T;
sectionBackground?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDNewsletterBlock_select".
*/
export interface FDNewsletterBlockSelect<T extends boolean = true> {
heading?: T;
description?: T;
submitEndpoint?: T;
buttonText?: T;
successMessage?: T;
consentText?: T;
privacyPolicyLink?: T;
collectName?: T;
collectCompany?: T;
layout?: T;
sectionBackground?: T;
textColor?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDServiceChooserBlock_select".
*/
export interface FDServiceChooserBlockSelect<T extends boolean = true> {
heading?: T;
description?: T;
categories?:
| T
| {
label?: T;
intro?: T;
services?:
| T
| {
title?: T;
description?: T;
ctaText?: T;
ctaLink?: T;
id?: T;
};
id?: T;
};
sectionBackground?: T;
anchorId?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDDataTableBlock_select".
*/
export interface FDDataTableBlockSelect<T extends boolean = true> {
heading?: T;
description?: T;
dataSource?: T;
file?: T;
headers?:
| T
| {
text?: T;
id?: T;
};
rows?:
| T
| {
cells?: T;
id?: T;
};
sectionBackground?: T;
headerStyle?: T;
stripeRows?: T;
bordered?: T;
firstColumnBold?: T;
anchorId?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDVpsCalculatorBlock_select".
*/
export interface FDVpsCalculatorBlockSelect<T extends boolean = true> {
heading?: T;
description?: T;
orderCtaText?: T;
orderCtaLink?: T;
contactCtaText?: T;
contactCtaLink?: T;
sectionBackground?: T;
pricingCpuPerCore?: T;
pricingRamPerGb?: T;
pricingSsdPerGb?: T;
pricingHddPerGb?: T;
pricingWindowsLicense?: T;
discountPercent?: T;
showAdminFee?: T;
adminFeeAmount?: T;
additionalServices?:
| T
| {
label?: T;
price?: T;
id?: T;
};
anchorId?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDServiceCalculatorBlock_select".
*/
export interface FDServiceCalculatorBlockSelect<T extends boolean = true> {
heading?: T;
description?: T;
summaryHeading?: T;
totalLabel?: T;
totalSuffix?: T;
orderCtaText?: T;
orderCtaLink?: T;
contactCtaText?: T;
contactCtaLink?: T;
sectionBackground?: T;
optionGroups?:
| T
| {
groupLabel?: T;
options?:
| T
| {
label?: T;
price?: T;
id?: T;
};
id?: T;
};
resources?:
| T
| {
label?: T;
unit?: T;
pricePerUnit?: T;
defaultValue?: T;
min?: T;
max?: T;
step?: T;
summaryTemplate?: T;
id?: T;
};
addons?:
| T
| {
label?: T;
price?: T;
description?: T;
id?: T;
};
fixedFees?:
| T
| {
label?: T;
amount?: T;
id?: T;
};
discountPercent?: T;
discountLabel?: T;
anchorId?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDTagsBlock_select".
*/
export interface FDTagsBlockSelect<T extends boolean = true> {
heading?: T;
tags?:
| T
| {
text?: T;
link?: T;
id?: T;
};
tagStyle?: T;
tagSize?: T;
alignment?: T;
sectionBackground?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDTextBlock_select".
*/
export interface FDTextBlockSelect<T extends boolean = true> {
heading?: T;
subheading?: T;
body?: T;
alignment?: T;
textColor?: T;
sectionBackground?: T;
maxWidth?: T;
anchorId?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDCodeEmbedBlock_select".
*/
export interface FDCodeEmbedBlockSelect<T extends boolean = true> {
heading?: T;
description?: T;
embedType?: T;
iframeSrc?: T;
iframeTitle?: T;
iframeHeight?: T;
iframeAllow?: T;
customCode?: T;
sandboxed?: T;
maxWidth?: T;
sectionBackground?: T;
textColor?: T;
embedBackground?: T;
anchorId?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDVideoBlock_select".
*/
export interface FDVideoBlockSelect<T extends boolean = true> {
heading?: T;
description?: T;
videoSource?: T;
videoFile?: T;
youtubeUrl?: T;
vimeoUrl?: T;
thumbnail?: T;
aspectRatio?: T;
autoplay?: T;
loop?: T;
maxWidth?: T;
sectionBackground?: T;
textColor?: T;
anchorId?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDCtaBannerBlock_select".
*/
export interface FDCtaBannerBlockSelect<T extends boolean = true> {
heading?: T;
subheading?: T;
ctaText?: T;
ctaLink?: T;
secondaryCtaText?: T;
secondaryCtaLink?: T;
sectionBackground?: T;
alignment?: T;
size?: T;
anchorId?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDTestimonialBlock_select".
*/
export interface FDTestimonialBlockSelect<T extends boolean = true> {
heading?: T;
testimonials?:
| T
| {
quote?: T;
authorName?: T;
authorRole?: T;
authorCompany?: T;
avatar?: T;
id?: T;
};
layout?: T;
sectionBackground?: T;
anchorId?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "FDTeamBlock_select".
*/
export interface FDTeamBlockSelect<T extends boolean = true> {
heading?: T;
subheading?: T;
members?:
| T
| {
photo?: T;
name?: T;
role?: T;
bio?: T;
email?: T;
linkedin?: T;
id?: T;
};
columns?: T;
cardStyle?: T;
sectionBackground?: T;
anchorId?: T;
id?: T;
blockName?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "posts_select".
*/
export interface PostsSelect<T extends boolean = true> {
title?: T;
heroImage?: T;
content?: T;
relatedPosts?: T;
categories?: T;
meta?:
| T
| {
title?: T;
image?: T;
description?: T;
};
publishedAt?: T;
authors?: T;
populatedAuthors?:
| T
| {
id?: T;
name?: T;
};
slug?: T;
generateSlug?: T;
updatedAt?: T;
createdAt?: T;
_status?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "media_select".
*/
export interface MediaSelect<T extends boolean = true> {
alt?: T;
updatedAt?: T;
createdAt?: T;
url?: T;
thumbnailURL?: T;
filename?: T;
mimeType?: T;
filesize?: T;
width?: T;
height?: T;
focalX?: T;
focalY?: T;
sizes?:
| T
| {
thumbnail?:
| T
| {
url?: T;
width?: T;
height?: T;
mimeType?: T;
filesize?: T;
filename?: T;
};
medium?:
| T
| {
url?: T;
width?: T;
height?: T;
mimeType?: T;
filesize?: T;
filename?: T;
};
large?:
| T
| {
url?: T;
width?: T;
height?: T;
mimeType?: T;
filesize?: T;
filename?: T;
};
hero?:
| T
| {
url?: T;
width?: T;
height?: T;
mimeType?: T;
filesize?: T;
filename?: T;
};
};
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "categories_select".
*/
export interface CategoriesSelect<T extends boolean = true> {
title?: T;
slug?: T;
parent?: T;
breadcrumbs?:
| T
| {
doc?: T;
url?: T;
label?: T;
id?: T;
};
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "users_select".
*/
export interface UsersSelect<T extends boolean = true> {
name?: T;
role?: T;
updatedAt?: T;
createdAt?: T;
email?: T;
resetPasswordToken?: T;
resetPasswordExpiration?: T;
salt?: T;
hash?: T;
loginAttempts?: T;
lockUntil?: T;
sessions?:
| T
| {
id?: T;
createdAt?: T;
expiresAt?: T;
};
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "redirects_select".
*/
export interface RedirectsSelect<T extends boolean = true> {
from?: T;
to?:
| T
| {
type?: T;
reference?: T;
url?: T;
};
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "forms_select".
*/
export interface FormsSelect<T extends boolean = true> {
title?: T;
fields?:
| T
| {
checkbox?:
| T
| {
name?: T;
label?: T;
width?: T;
required?: T;
defaultValue?: T;
id?: T;
blockName?: T;
};
country?:
| T
| {
name?: T;
label?: T;
width?: T;
required?: T;
id?: T;
blockName?: T;
};
email?:
| T
| {
name?: T;
label?: T;
width?: T;
required?: T;
id?: T;
blockName?: T;
};
message?:
| T
| {
message?: T;
id?: T;
blockName?: T;
};
number?:
| T
| {
name?: T;
label?: T;
width?: T;
defaultValue?: T;
required?: T;
id?: T;
blockName?: T;
};
select?:
| T
| {
name?: T;
label?: T;
width?: T;
defaultValue?: T;
placeholder?: T;
options?:
| T
| {
label?: T;
value?: T;
id?: T;
};
required?: T;
id?: T;
blockName?: T;
};
state?:
| T
| {
name?: T;
label?: T;
width?: T;
required?: T;
id?: T;
blockName?: T;
};
text?:
| T
| {
name?: T;
label?: T;
width?: T;
defaultValue?: T;
required?: T;
id?: T;
blockName?: T;
};
textarea?:
| T
| {
name?: T;
label?: T;
width?: T;
defaultValue?: T;
required?: T;
id?: T;
blockName?: T;
};
};
submitButtonLabel?: T;
confirmationType?: T;
confirmationMessage?: T;
redirect?:
| T
| {
url?: T;
};
emails?:
| T
| {
emailTo?: T;
cc?: T;
bcc?: T;
replyTo?: T;
emailFrom?: T;
subject?: T;
message?: T;
id?: T;
};
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "form-submissions_select".
*/
export interface FormSubmissionsSelect<T extends boolean = true> {
form?: T;
submissionData?:
| T
| {
field?: T;
value?: T;
id?: T;
};
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-kv_select".
*/
export interface PayloadKvSelect<T extends boolean = true> {
key?: T;
data?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-jobs_select".
*/
export interface PayloadJobsSelect<T extends boolean = true> {
input?: T;
taskStatus?: T;
completedAt?: T;
totalTried?: T;
hasError?: T;
error?: T;
log?:
| T
| {
executedAt?: T;
completedAt?: T;
taskSlug?: T;
taskID?: T;
input?: T;
output?: T;
state?: T;
error?: T;
id?: T;
};
taskSlug?: T;
queue?: T;
waitUntil?: T;
processing?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-locked-documents_select".
*/
export interface PayloadLockedDocumentsSelect<T extends boolean = true> {
document?: T;
globalSlug?: T;
user?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-preferences_select".
*/
export interface PayloadPreferencesSelect<T extends boolean = true> {
user?: T;
key?: T;
value?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-migrations_select".
*/
export interface PayloadMigrationsSelect<T extends boolean = true> {
name?: T;
batch?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "header".
*/
export interface Header {
id: number;
/**
* Vart man hamnar när man klickar på logotypen. Standard är startsidan (/).
*/
logoLink?: {
type?: ('reference' | 'custom') | null;
reference?: {
relationTo: 'pages';
value: number | Page;
} | null;
/**
* T.ex. / eller /startsida
*/
url?: string | null;
};
navItems?:
| {
label: string;
/**
* Lämna tomt / ignoreras om detta objekt har en undermeny.
*/
type?: ('reference' | 'custom') | null;
reference?: {
relationTo: 'pages';
value: number | Page;
} | null;
/**
* T.ex. /bredband eller https://extern-sida.se
*/
url?: string | null;
/**
* När ikryssad öppnar hover/klick ett fullbredds mega menu istället för en liten dropdown.
*/
megaMenu?: boolean | null;
/**
* Lägg till undermenylänkar. Om dessa finns ignoreras förälderlänken. Använd "Grupp" för att skapa kolumner i mega menu.
*/
children?:
| {
label: string;
type?: ('reference' | 'custom') | null;
reference?: {
relationTo: 'pages';
value: number | Page;
} | null;
url?: string | null;
/**
* Länkar med samma gruppnamn visas tillsammans i en separat kolumn i mega menu. Lämna tomt för huvudkolumnen.
*/
group?: string | null;
id?: string | null;
}[]
| null;
id?: string | null;
}[]
| null;
updatedAt?: string | null;
createdAt?: string | null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "footer".
*/
export interface Footer {
id: number;
/**
* Vart man hamnar när man klickar på logotypen i footern. Standard är startsidan (/).
*/
logoLink?: {
type?: ('reference' | 'custom') | null;
reference?: {
relationTo: 'pages';
value: number | Page;
} | null;
/**
* T.ex. / eller /startsida
*/
url?: string | null;
};
/**
* Logotyper och certifieringsbadges som visas i övre högra hörnet av footern (t.ex. ISO, UC-sigill, Based in Sweden).
*/
certMarks?:
| {
/**
* PNG eller SVG, helst med transparent bakgrund.
*/
image: number | Media;
/**
* Beskriv certifieringen för tillgänglighet, t.ex. "ISO 27001 certifierad".
*/
alt?: string | null;
/**
* Länk till certifieringens webbsida (öppnas i ny flik).
*/
linkUrl?: string | null;
id?: string | null;
}[]
| null;
/**
* Ikoner visas längst ner i footern och i mobilmenyn. Aktivera och ange URL för varje plattform.
*/
socialLinks?: {
linkedinEnabled?: boolean | null;
/**
* T.ex. https://www.linkedin.com/company/fiber-direkt
*/
linkedinUrl?: string | null;
instagramEnabled?: boolean | null;
instagramUrl?: string | null;
facebookEnabled?: boolean | null;
facebookUrl?: string | null;
youtubeEnabled?: boolean | null;
youtubeUrl?: string | null;
twitterEnabled?: boolean | null;
twitterUrl?: string | null;
};
/**
* Footer-kolumner med rubriker och länkar (sitemap-stil)
*/
columns?:
| {
/**
* T.ex. "Tjänster", "Om oss", "Support"
*/
heading: string;
links?:
| {
link: {
type?: ('reference' | 'custom') | null;
newTab?: boolean | null;
reference?:
| ({
relationTo: 'pages';
value: number | Page;
} | null)
| ({
relationTo: 'posts';
value: number | Post;
} | null);
url?: string | null;
label: string;
};
id?: string | null;
}[]
| null;
id?: string | null;
}[]
| null;
/**
* Länkar i underfältet (visas som rad bredvid copyright, t.ex. Policys · Legal · Villkor)
*/
navItems?:
| {
link: {
type?: ('reference' | 'custom') | null;
newTab?: boolean | null;
reference?:
| ({
relationTo: 'pages';
value: number | Page;
} | null)
| ({
relationTo: 'posts';
value: number | Post;
} | null);
url?: string | null;
label: string;
};
id?: string | null;
}[]
| null;
/**
* Använd {year} för aktuellt årtal
*/
bottomLeftText?: string | null;
updatedAt?: string | null;
createdAt?: string | null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "announcement-bar".
*/
export interface AnnouncementBar {
id: number;
enabled?: boolean | null;
text?: string | null;
buttonLabel?: string | null;
buttonLink?: {
type?: ('reference' | 'custom') | null;
newTab?: boolean | null;
reference?:
| ({
relationTo: 'pages';
value: number | Page;
} | null)
| ({
relationTo: 'posts';
value: number | Post;
} | null);
/**
* T.ex. /bredband eller https://example.com
*/
url?: string | null;
};
dismissible?: boolean | null;
backgroundColor?: ('yellow' | 'navy' | 'mint') | null;
updatedAt?: string | null;
createdAt?: string | null;
}
/**
* Ett popup-fönster som visas för besökare. Kan begränsas till specifika sidor.
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "popup-announcement".
*/
export interface PopupAnnouncement {
id: number;
enabled?: boolean | null;
heading?: string | null;
subheading?: string | null;
body?: string | null;
ctaText?: string | null;
ctaLink?: {
type?: ('reference' | 'custom') | null;
newTab?: boolean | null;
reference?:
| ({
relationTo: 'pages';
value: number | Page;
} | null)
| ({
relationTo: 'posts';
value: number | Post;
} | null);
/**
* T.ex. /bredband eller https://example.com
*/
url?: string | null;
};
image?: (number | null) | Media;
/**
* T.ex. "NYHET", "ERBJUDANDE", "VIKTIG INFO"
*/
badgeText?: string | null;
theme?: ('light' | 'dark') | null;
showOnPages?: ('all' | 'home' | 'specific') | null;
/**
* Välj exakt vilka sidor popupen ska visas på.
*/
specificPages?: (number | Page)[] | null;
/**
* Hur många dagar popupen ska döljas efter att besökaren stänger den.
*/
dismissDays?: number | null;
updatedAt?: string | null;
createdAt?: string | null;
}
/**
* Kodinjektion, cookies, analytics och globala webbplatsinställningar.
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "site-settings".
*/
export interface SiteSetting {
id: number;
headerCodeInjection?: {
enabled?: boolean | null;
/**
* Klistra in <script>, <link>, <meta> eller <style>-taggar här.
*/
code?: string | null;
};
footerCodeInjection?: {
enabled?: boolean | null;
/**
* Script-taggar som ska laddas i slutet av sidan.
*/
code?: string | null;
};
cookieConsent?: {
enabled?: boolean | null;
privacyPolicyUrl?: string | null;
/**
* Hur många dagar besökarens accept-val sparas innan bannern visas igen. "Webbläsarsession" = försvinner när fliken/webbläsaren stängs.
*/
acceptedDays?: ('0' | '30' | '90' | '180' | '365') | null;
/**
* Hur många dagar bannern döljs när besökaren avvisat. Efter detta visas bannern igen. Kortare tid = fler chanser att få samtycke.
*/
declinedDays?: ('0' | '7' | '14' | '30' | '90') | null;
};
matomo?: {
enabled?: boolean | null;
/**
* Klistra in spårningskoden från Matomo (Administration → Tracking Code). Samtyckesgating läggs till automatiskt — du behöver inte ändra något i koden.
*/
code?: string | null;
};
updatedAt?: string | null;
createdAt?: string | null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "header_select".
*/
export interface HeaderSelect<T extends boolean = true> {
logoLink?:
| T
| {
type?: T;
reference?: T;
url?: T;
};
navItems?:
| T
| {
label?: T;
type?: T;
reference?: T;
url?: T;
megaMenu?: T;
children?:
| T
| {
label?: T;
type?: T;
reference?: T;
url?: T;
group?: T;
id?: T;
};
id?: T;
};
updatedAt?: T;
createdAt?: T;
globalType?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "footer_select".
*/
export interface FooterSelect<T extends boolean = true> {
logoLink?:
| T
| {
type?: T;
reference?: T;
url?: T;
};
certMarks?:
| T
| {
image?: T;
alt?: T;
linkUrl?: T;
id?: T;
};
socialLinks?:
| T
| {
linkedinEnabled?: T;
linkedinUrl?: T;
instagramEnabled?: T;
instagramUrl?: T;
facebookEnabled?: T;
facebookUrl?: T;
youtubeEnabled?: T;
youtubeUrl?: T;
twitterEnabled?: T;
twitterUrl?: T;
};
columns?:
| T
| {
heading?: T;
links?:
| T
| {
link?:
| T
| {
type?: T;
newTab?: T;
reference?: T;
url?: T;
label?: T;
};
id?: T;
};
id?: T;
};
navItems?:
| T
| {
link?:
| T
| {
type?: T;
newTab?: T;
reference?: T;
url?: T;
label?: T;
};
id?: T;
};
bottomLeftText?: T;
updatedAt?: T;
createdAt?: T;
globalType?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "announcement-bar_select".
*/
export interface AnnouncementBarSelect<T extends boolean = true> {
enabled?: T;
text?: T;
buttonLabel?: T;
buttonLink?:
| T
| {
type?: T;
newTab?: T;
reference?: T;
url?: T;
};
dismissible?: T;
backgroundColor?: T;
updatedAt?: T;
createdAt?: T;
globalType?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "popup-announcement_select".
*/
export interface PopupAnnouncementSelect<T extends boolean = true> {
enabled?: T;
heading?: T;
subheading?: T;
body?: T;
ctaText?: T;
ctaLink?:
| T
| {
type?: T;
newTab?: T;
reference?: T;
url?: T;
};
image?: T;
badgeText?: T;
theme?: T;
showOnPages?: T;
specificPages?: T;
dismissDays?: T;
updatedAt?: T;
createdAt?: T;
globalType?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "site-settings_select".
*/
export interface SiteSettingsSelect<T extends boolean = true> {
headerCodeInjection?:
| T
| {
enabled?: T;
code?: T;
};
footerCodeInjection?:
| T
| {
enabled?: T;
code?: T;
};
cookieConsent?:
| T
| {
enabled?: T;
privacyPolicyUrl?: T;
acceptedDays?: T;
declinedDays?: T;
};
matomo?:
| T
| {
enabled?: T;
code?: T;
};
updatedAt?: T;
createdAt?: T;
globalType?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "TaskSchedulePublish".
*/
export interface TaskSchedulePublish {
input: {
type?: ('publish' | 'unpublish') | null;
locale?: string | null;
doc?:
| ({
relationTo: 'pages';
value: number | Page;
} | null)
| ({
relationTo: 'posts';
value: number | Post;
} | null);
global?: string | null;
user?: (number | null) | User;
};
output?: unknown;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "BannerBlock".
*/
export interface BannerBlock {
style: 'info' | 'warning' | 'error' | 'success';
content: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
};
id?: string | null;
blockName?: string | null;
blockType: 'banner';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "CodeBlock".
*/
export interface CodeBlock {
language?: ('typescript' | 'javascript' | 'css') | null;
code: string;
id?: string | null;
blockName?: string | null;
blockType: 'code';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "MediaBlock".
*/
export interface MediaBlock {
media: number | Media;
id?: string | null;
blockName?: string | null;
blockType: 'mediaBlock';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "auth".
*/
export interface Auth {
[k: string]: unknown;
}
declare module 'payload' {
export interface GeneratedTypes extends Config {}
}