@sparted/shared-library 1.2.2 → 1.2.3-rc0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -4,11 +4,11 @@ import { Image, Media } from './media';
|
|
|
4
4
|
import { Thematic } from './thematic';
|
|
5
5
|
export type ErrorText = {
|
|
6
6
|
type: 'error-text';
|
|
7
|
-
gameMedia
|
|
8
|
-
explanationMedia
|
|
9
|
-
explanation
|
|
10
|
-
wrongText
|
|
11
|
-
correctText
|
|
7
|
+
gameMedia: Media;
|
|
8
|
+
explanationMedia: Media;
|
|
9
|
+
explanation: MultilingualLabel;
|
|
10
|
+
wrongText: MultilingualLabel;
|
|
11
|
+
correctText: MultilingualLabel;
|
|
12
12
|
};
|
|
13
13
|
export type MultipleChoiceQuestion = {
|
|
14
14
|
type: 'mcq';
|
|
@@ -26,7 +26,7 @@ export type NoInteraction = {
|
|
|
26
26
|
type: 'no-interaction';
|
|
27
27
|
firstMedia?: Media;
|
|
28
28
|
secondMedia?: Media;
|
|
29
|
-
title
|
|
29
|
+
title: MultilingualLabel;
|
|
30
30
|
text?: MultilingualLabel;
|
|
31
31
|
};
|
|
32
32
|
export type OpenQuestion = {
|
|
@@ -40,10 +40,10 @@ export type OpenQuestion = {
|
|
|
40
40
|
};
|
|
41
41
|
export type OrderingCards = {
|
|
42
42
|
type: 'ordering-cards';
|
|
43
|
-
explanation
|
|
44
|
-
question
|
|
45
|
-
topLabel
|
|
46
|
-
bottomLabel
|
|
43
|
+
explanation: MultilingualLabel;
|
|
44
|
+
question: MultilingualLabel;
|
|
45
|
+
topLabel: MultilingualLabel;
|
|
46
|
+
bottomLabel: MultilingualLabel;
|
|
47
47
|
cards: MultilingualLabel[];
|
|
48
48
|
};
|
|
49
49
|
export type PictureSpot = {
|
|
@@ -112,7 +112,7 @@ export declare const isPartialGameMultipleChoiceQuestion: (game: DeepPartial<Gam
|
|
|
112
112
|
video?: {
|
|
113
113
|
id?: number | undefined;
|
|
114
114
|
url?: string | undefined;
|
|
115
|
-
type?: "
|
|
115
|
+
type?: import("./media").VideoSourceType | undefined;
|
|
116
116
|
} | undefined;
|
|
117
117
|
} | undefined;
|
|
118
118
|
question?: {
|
|
@@ -198,7 +198,7 @@ export declare const isPartialGameMultipleChoiceQuestion: (game: DeepPartial<Gam
|
|
|
198
198
|
video?: {
|
|
199
199
|
id?: number | undefined;
|
|
200
200
|
url?: string | undefined;
|
|
201
|
-
type?: "
|
|
201
|
+
type?: import("./media").VideoSourceType | undefined;
|
|
202
202
|
} | undefined;
|
|
203
203
|
} | undefined;
|
|
204
204
|
multiselect?: boolean | undefined;
|
|
@@ -255,7 +255,7 @@ export declare const isPartialGameErrorText: (game: DeepPartial<Game>) => game i
|
|
|
255
255
|
video?: {
|
|
256
256
|
id?: number | undefined;
|
|
257
257
|
url?: string | undefined;
|
|
258
|
-
type?: "
|
|
258
|
+
type?: import("./media").VideoSourceType | undefined;
|
|
259
259
|
} | undefined;
|
|
260
260
|
} | undefined;
|
|
261
261
|
explanationMedia?: {
|
|
@@ -269,7 +269,7 @@ export declare const isPartialGameErrorText: (game: DeepPartial<Game>) => game i
|
|
|
269
269
|
video?: {
|
|
270
270
|
id?: number | undefined;
|
|
271
271
|
url?: string | undefined;
|
|
272
|
-
type?: "
|
|
272
|
+
type?: import("./media").VideoSourceType | undefined;
|
|
273
273
|
} | undefined;
|
|
274
274
|
} | undefined;
|
|
275
275
|
explanation?: {
|
|
@@ -394,7 +394,7 @@ export declare const isPartialGameOpenQuestion: (game: DeepPartial<Game>) => gam
|
|
|
394
394
|
video?: {
|
|
395
395
|
id?: number | undefined;
|
|
396
396
|
url?: string | undefined;
|
|
397
|
-
type?: "
|
|
397
|
+
type?: import("./media").VideoSourceType | undefined;
|
|
398
398
|
} | undefined;
|
|
399
399
|
} | undefined;
|
|
400
400
|
question?: {
|
|
@@ -516,7 +516,7 @@ export declare const isPartialGameOpenQuestion: (game: DeepPartial<Game>) => gam
|
|
|
516
516
|
video?: {
|
|
517
517
|
id?: number | undefined;
|
|
518
518
|
url?: string | undefined;
|
|
519
|
-
type?: "
|
|
519
|
+
type?: import("./media").VideoSourceType | undefined;
|
|
520
520
|
} | undefined;
|
|
521
521
|
} | undefined;
|
|
522
522
|
levenshteinDistance?: number | undefined;
|
|
@@ -534,7 +534,7 @@ export declare const isPartialGameNoInteraction: (game: DeepPartial<Game>) => ga
|
|
|
534
534
|
video?: {
|
|
535
535
|
id?: number | undefined;
|
|
536
536
|
url?: string | undefined;
|
|
537
|
-
type?: "
|
|
537
|
+
type?: import("./media").VideoSourceType | undefined;
|
|
538
538
|
} | undefined;
|
|
539
539
|
} | undefined;
|
|
540
540
|
secondMedia?: {
|
|
@@ -548,7 +548,7 @@ export declare const isPartialGameNoInteraction: (game: DeepPartial<Game>) => ga
|
|
|
548
548
|
video?: {
|
|
549
549
|
id?: number | undefined;
|
|
550
550
|
url?: string | undefined;
|
|
551
|
-
type?: "
|
|
551
|
+
type?: import("./media").VideoSourceType | undefined;
|
|
552
552
|
} | undefined;
|
|
553
553
|
} | undefined;
|
|
554
554
|
title?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.js","sources":["../../../src/business/types/content.ts"],"sourcesContent":["import { DeepPartial } from 'ts-essentials';\n\nimport { LanguageCode, MultilingualLabel } from './multilingual';\nimport { Image, Media } from './media';\nimport { Thematic } from './thematic';\n\nexport type ErrorText = {\n type: 'error-text';\n gameMedia
|
|
1
|
+
{"version":3,"file":"content.js","sources":["../../../src/business/types/content.ts"],"sourcesContent":["import { DeepPartial } from 'ts-essentials';\n\nimport { LanguageCode, MultilingualLabel } from './multilingual';\nimport { Image, Media } from './media';\nimport { Thematic } from './thematic';\n\nexport type ErrorText = {\n type: 'error-text';\n gameMedia: Media;\n explanationMedia: Media;\n explanation: MultilingualLabel;\n wrongText: MultilingualLabel;\n correctText: MultilingualLabel;\n};\n\nexport type MultipleChoiceQuestion = {\n type: 'mcq';\n gameMedia?: Media;\n question?: MultilingualLabel;\n explanation?: MultilingualLabel;\n explanationMedia?: Media;\n multiselect?: boolean;\n choices?: {\n correct: boolean;\n text: MultilingualLabel;\n }[];\n};\n\nexport type NoInteraction = {\n type: 'no-interaction';\n firstMedia?: Media;\n secondMedia?: Media;\n title: MultilingualLabel;\n text?: MultilingualLabel;\n};\n\nexport type OpenQuestion = {\n type: 'open-question';\n gameMedia?: Media;\n question?: MultilingualLabel;\n answer?: MultilingualLabel;\n explanation?: MultilingualLabel;\n explanationMedia?: Media;\n levenshteinDistance?: number;\n};\n\nexport type OrderingCards = {\n type: 'ordering-cards';\n explanation: MultilingualLabel;\n question: MultilingualLabel;\n topLabel: MultilingualLabel;\n bottomLabel: MultilingualLabel;\n cards: MultilingualLabel[];\n};\n\nexport type PictureSpot = {\n type: 'picture-spot';\n image?: Image;\n explanation?: MultilingualLabel;\n items?: {\n x: number;\n y: number;\n r: number;\n question: MultilingualLabel;\n description: MultilingualLabel;\n }[];\n};\n\nexport type SwipingCardPosition = 'left' | 'right' | 'top' | 'bottom';\n\nexport type SwipingCards = {\n type: 'swiping-cards';\n explanation?: MultilingualLabel;\n question?: MultilingualLabel;\n zones?: {\n position: SwipingCardPosition;\n text: MultilingualLabel;\n }[];\n cards?: {\n image?: Image;\n text?: MultilingualLabel;\n answer: SwipingCardPosition;\n }[];\n};\n\nexport type Game =\n | ErrorText\n | MultipleChoiceQuestion\n | NoInteraction\n | OpenQuestion\n | OrderingCards\n | PictureSpot\n | SwipingCards;\n\nexport type GameType =\n | 'error-text'\n | 'mcq'\n | 'open-question'\n | 'no-interaction'\n | 'picture-spot'\n | 'swiping-cards'\n | 'ordering-cards';\n\nexport const GAME_TYPE: Record<string, GameType> = {\n MCQ: 'mcq',\n ERROR_TEXT: 'error-text',\n OPEN_QUESTION: 'open-question',\n NO_INTERACTION: 'no-interaction',\n PICTURE_SPOT: 'picture-spot',\n ORDERING_CARDS: 'ordering-cards',\n SWIPING_CARDS: 'swiping-cards',\n};\n\nexport type ContentStatuses = Partial<{\n [languageCode in LanguageCode]: 'draft' | 'validated' | 'waiting-translation' | 'waiting-validation';\n}>;\n\nexport type ContentMetadata = {\n identifier: string;\n coverImage?: Image;\n name: MultilingualLabel;\n thematic: Thematic;\n};\n\nexport type Content = {\n archived: boolean;\n id: number;\n metadata: ContentMetadata;\n statuses: ContentStatuses;\n game?: Game;\n};\n\nexport const isGameMultipleChoiceQuestion = (game: Game): game is MultipleChoiceQuestion => game.type === GAME_TYPE.MCQ;\nexport const isGameErrorText = (game: Game): game is ErrorText => game.type === GAME_TYPE.ERROR_TEXT;\nexport const isGameOpenQuestion = (game: Game): game is OpenQuestion => game.type === GAME_TYPE.OPEN_QUESTION;\nexport const isGameNoInteraction = (game: Game): game is NoInteraction => game.type === GAME_TYPE.NO_INTERACTION;\nexport const isGamePictureSpot = (game: Game): game is PictureSpot => game.type === GAME_TYPE.PICTURE_SPOT;\nexport const isGameOrderingCards = (game: Game): game is OrderingCards => game.type === GAME_TYPE.ORDERING_CARDS;\nexport const isGameSwipingCards = (game: Game): game is SwipingCards => game.type === GAME_TYPE.SWIPING_CARDS;\n\nexport const isPartialGameMultipleChoiceQuestion = (\n game: DeepPartial<Game>,\n): game is DeepPartial<MultipleChoiceQuestion> => game.type === GAME_TYPE.MCQ;\nexport const isPartialGameErrorText = (game: DeepPartial<Game>): game is DeepPartial<ErrorText> =>\n game.type === GAME_TYPE.ERROR_TEXT;\nexport const isPartialGameOpenQuestion = (game: DeepPartial<Game>): game is DeepPartial<OpenQuestion> =>\n game.type === GAME_TYPE.OPEN_QUESTION;\nexport const isPartialGameNoInteraction = (game: DeepPartial<Game>): game is DeepPartial<NoInteraction> =>\n game.type === GAME_TYPE.NO_INTERACTION;\nexport const isPartialGamePictureSpot = (game: DeepPartial<Game>): game is DeepPartial<PictureSpot> =>\n game.type === GAME_TYPE.PICTURE_SPOT;\nexport const isPartialGameOrderingCards = (game: DeepPartial<Game>): game is DeepPartial<OrderingCards> =>\n game.type === GAME_TYPE.ORDERING_CARDS;\nexport const isPartialGameSwipingCards = (game: DeepPartial<Game>): game is DeepPartial<SwipingCards> =>\n game.type === GAME_TYPE.SWIPING_CARDS;\n"],"names":[],"mappings":";;;;AAuGa,MAAA,SAAS,GAA6B;AACjD,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,aAAa,EAAE,eAAe;AAC9B,IAAA,cAAc,EAAE,gBAAgB;AAChC,IAAA,YAAY,EAAE,cAAc;AAC5B,IAAA,cAAc,EAAE,gBAAgB;AAChC,IAAA,aAAa,EAAE,eAAe;EAC9B;AAqBW,MAAA,4BAA4B,GAAG,CAAC,IAAU,KAAqC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI;AAC3G,MAAA,eAAe,GAAG,CAAC,IAAU,KAAwB,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,WAAW;AACxF,MAAA,kBAAkB,GAAG,CAAC,IAAU,KAA2B,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,cAAc;AACjG,MAAA,mBAAmB,GAAG,CAAC,IAAU,KAA4B,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,eAAe;AACpG,MAAA,iBAAiB,GAAG,CAAC,IAAU,KAA0B,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,aAAa;AAC9F,MAAA,mBAAmB,GAAG,CAAC,IAAU,KAA4B,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,eAAe;AACpG,MAAA,kBAAkB,GAAG,CAAC,IAAU,KAA2B,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,cAAc;AAEjG,MAAA,mCAAmC,GAAG,CACjD,IAAuB,KACyB,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI;AACjE,MAAA,sBAAsB,GAAG,CAAC,IAAuB,KAC5D,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,WAAW;AACxB,MAAA,yBAAyB,GAAG,CAAC,IAAuB,KAC/D,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,cAAc;AAC3B,MAAA,0BAA0B,GAAG,CAAC,IAAuB,KAChE,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,eAAe;AAC5B,MAAA,wBAAwB,GAAG,CAAC,IAAuB,KAC9D,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,aAAa;AAC1B,MAAA,0BAA0B,GAAG,CAAC,IAAuB,KAChE,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,eAAe;AAC5B,MAAA,yBAAyB,GAAG,CAAC,IAAuB,KAC/D,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;;;;;;;;;;;;;;;;;;"}
|
|
@@ -5,10 +5,11 @@ export type Image = {
|
|
|
5
5
|
width: number;
|
|
6
6
|
height: number;
|
|
7
7
|
};
|
|
8
|
+
export type VideoSourceType = 'Youtube' | 'api.video' | 'Kumullus' | 'unknown';
|
|
8
9
|
export type Video = {
|
|
9
10
|
id: number;
|
|
10
11
|
url: string;
|
|
11
|
-
type:
|
|
12
|
+
type: VideoSourceType;
|
|
12
13
|
};
|
|
13
14
|
export type Media = {
|
|
14
15
|
image?: Image;
|