diff --git a/author.ts b/author.ts index 86c0270212d25ac86ab7b5a4afbf7d463c95ab7d..410e2667ed8c1d4a997239a500165d4f91847eaa 100644 --- a/author.ts +++ b/author.ts @@ -1,6 +1,6 @@ import {html} from './types'; -export class Author { +export interface Author { name: string; image: string; description: html; diff --git a/contents/assessment.ts b/contents/assessment.ts index d0fee98b370136b213f7b0820a125d05aaf3903e..4a8215dc21a0902dd15dc8f8d2d91e207ead231a 100644 --- a/contents/assessment.ts +++ b/contents/assessment.ts @@ -1,28 +1,28 @@ import {Content} from './content'; import {html, uid} from '../types'; -export class Assessment extends Content { +export interface Assessment extends Content { summary?: string; questions?: uid[]; time?: number; } -export class AssessmentRuntime extends Assessment { +export interface AssessmentRuntime extends Assessment { score?: number; scoreTotal?: number; chapterId?: uid; easierScoring?: boolean; } -export class SimpleQuestion extends Content { +export interface SimpleQuestion extends Content { question: uid; } -export class SimpleQuestionRuntime extends SimpleQuestion { +export interface SimpleQuestionRuntime extends SimpleQuestion { chapterId?: number; } -export class Question { +export interface Question { type: string; score: number; statement: string; @@ -33,36 +33,36 @@ export class Question { easierScoring?: boolean; } -export class DragAndDropquestion extends Question{ +export interface DragAndDropquestion extends Question{ correctResponse: Array<{label: string, values: string[]}>; } -export class MultipleChoiceQuestion extends Question { +export interface MultipleChoiceQuestion extends Question { correctResponse: Array<string>; } -export class SimpleChoiceQuestion extends Question { +export interface SimpleChoiceQuestion extends Question { correctResponse: string; } -export class Response { +export interface Response { label: string; value: string; explanation?: string; } -export class SwipeQuestion extends Question { +export interface SwipeQuestion extends Question { correctResponse: Array<{label: string, values: string[]}>; } -export class SwipeQuestionRuntime extends SwipeQuestion { +export interface SwipeQuestionRuntime extends SwipeQuestion { possibilities?: Array<string>; } -export class DropDownListQuestion extends Question { +export interface DropDownListQuestion extends Question { correctResponse: Array<{label: string, values: string[]}>; } -export class DropDownListQuestionRuntime extends DragAndDropquestion { +export interface DropDownListQuestionRuntime extends DragAndDropquestion { categories?: Array<string>; } \ No newline at end of file diff --git a/contents/content.ts b/contents/content.ts index 244d279d5fe50599397f52efcd8cb760b3944fe6..99abfe253749eeb6874e5a729557a369c5f219fd 100644 --- a/contents/content.ts +++ b/contents/content.ts @@ -1,6 +1,6 @@ import {uid} from '../types'; -export abstract class Content { +export interface Content { id: uid; type: 'html' | 'assessment' | 'video' | 'simple-question' | 'choice'; title: string; @@ -9,25 +9,25 @@ export abstract class Content { conditionResolver?: ScoreResolver | ChoiceResolver; } -abstract class Resolver { + interface Resolver { conditionalFlag: ConditionalFlag[]; } -export class ScoreResolver extends Resolver{ +export interface ScoreResolver extends Resolver{ type: 'score'; } -export class ChoiceResolver extends Resolver{ +export interface ChoiceResolver extends Resolver{ type: 'choice'; choices: Choice[]; } -export class Choice { +export interface Choice { label: string; value: string; } -export class ConditionalFlag { +export interface ConditionalFlag { value: string; flags: uid[]; } diff --git a/contents/html.ts b/contents/html.ts index 616c197454daaa535e6b4ed7881ac391b52ee91c..64160119a8e10da004e7a3fd3adedaca3f54815a 100644 --- a/contents/html.ts +++ b/contents/html.ts @@ -1,6 +1,6 @@ import {Content} from './content'; import {html} from '../types'; -export class Html extends Content { +export interface Html extends Content { html: html; } diff --git a/contents/video.ts b/contents/video.ts index ea61a2a5194442f912b47fdd36579e6456703caa..692fdc57a28d97aebbc889f8a2ee9ab1563c76ef 100644 --- a/contents/video.ts +++ b/contents/video.ts @@ -1,7 +1,7 @@ import {Content} from './content'; import {html} from '../types'; -export class Video extends Content { +export interface Video extends Content { source: string; summary: html; subtitles: {label: string, lang: string, src: string}[]; diff --git a/epoc.ts b/epoc.ts index 927252b97deef2d544de6e1e9827891f26c7d4a1..7fb51e073fc6dde28ff440712dde4cff1b43f71c 100644 --- a/epoc.ts +++ b/epoc.ts @@ -3,7 +3,7 @@ import {Content} from './contents/content'; import {html, uid} from './types'; import {Assessment, Question} from './contents/assessment'; -export class EpocMetadata { +export interface EpocMetadata { lastModif : string; version : string; id: string; @@ -19,13 +19,13 @@ export class EpocMetadata { download: string; } -export class EpocLibrary extends EpocMetadata { +export interface EpocLibrary extends EpocMetadata { downloading: boolean; downloaded: boolean; unzipping: boolean; } -export class Epoc extends EpocMetadata { +export interface Epoc extends EpocMetadata { certificateScore: number; parameters: Parameters; contents: Record<uid, Content>; @@ -33,11 +33,11 @@ export class Epoc extends EpocMetadata { questions: Record<uid, Question>; } -export class EpocRuntime extends Epoc { +export interface EpocRuntime extends Epoc { assessments: Assessment[]; } -export class Chapter { +export interface Chapter { id: uid; title: string; image?: string; @@ -45,7 +45,7 @@ export class Chapter { contents: uid[]; } -export class ChapterRuntime extends Chapter { +export interface ChapterRuntime extends Chapter { time: number; videoCount: number; assessmentCount: number; @@ -55,7 +55,7 @@ export class ChapterRuntime extends Chapter { assessmentDone: boolean; } -export class Parameters { +export interface Parameters { chapterParameter?: string; easierScoring?: boolean; openQuestionButton?: string;