import { AnyTypedQuizQuestion } from "@model/questionTypes/shared"; // import { QuizConfig } from "@model/quizSettings"; export type QuizStartpageType = "standard" | "expanded" | "centered" | null; export type QuizStartpageAlignType = "left" | "right" | "center"; export type QuizType = "quiz" | "form"; export type QuizResultsType = true | null; export type QuizResultInfoWhen = 'before' | 'after' | 'email'; export type FCField = { text: string innerText: string key: string required: boolean used: boolean } export interface GetDataResponse { cnt: number; settings: { fp: boolean; rep: boolean; name: string; cfg: string; lim: number; due: number; delay: number; pausable: boolean; }; items: GetItems[]; } export type QuestionsStore = { items: (AnyTypedQuizQuestion)[]; settings: Settings; cnt: number; }; export interface Settings { fp: boolean; rep: boolean; name: string; lim: number; due: number; delay: number; pausable: boolean; cfg: QuizConfig } export interface QuizConfig { type: QuizType; noStartPage: boolean; startpageType: QuizStartpageType; results: QuizResultsType; haveRoot: string; theme: "StandardTheme" | "StandardDarkTheme" | "PinkTheme" | "PinkDarkTheme" | "BlackWhiteTheme" | "OliveTheme" | "YellowTheme" | "GoldDarkTheme" | "PurpleTheme" | "BlueTheme" | "BlueDarkTheme"; resultInfo: { when: QuizResultInfoWhen; share: boolean; replay: boolean; theme: string; reply: string; replname: string; }; startpage: { description: string; button: string; position: QuizStartpageAlignType; favIcon: string | null; logo: string | null; originalLogo: string | null; background: { type: null | "image" | "video"; desktop: string | null; originalDesktop: string | null; mobile: string | null; originalMobile: string | null; video: string | null; cycle: boolean; }; }; formContact: { title: string; desc: string; name: FCField; email: FCField; phone: FCField; text: FCField; address: FCField; button: string }; info: { phonenumber: string; clickable: boolean; orgname: string; site: string; law?: string; }; meta: string; } export interface GetItems { id: number; title: string; desc: string; typ: string; req: boolean; p: number; c: string; } export interface QuizItems { description: string; id: number; page: number; required: boolean; title: string; type: string; content: QuizItemsContent } export interface QuizItemsContent { }