Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
mountler committed Nov 6, 2023
2 parents d2b70d1 + e59c162 commit 7e8c02e
Show file tree
Hide file tree
Showing 61 changed files with 1,306 additions and 1,145 deletions.
4 changes: 2 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ The AdLer Engine uses [Semantic Versioning](http://semver.org/).

### Added

-
- dynamic NPC image matching the 3D model in the space to Adaptivity Element

### Changed

Expand All @@ -26,7 +26,7 @@ The AdLer Engine uses [Semantic Versioning](http://semver.org/).

### Fixed

-
- Break Notifications should behave correctly now

### Security

Expand Down
2 changes: 2 additions & 0 deletions jest-setup-files.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import "@testing-library/jest-dom";
import { config } from "./src/config";
import { toBeNullOrEqual } from "./src/Components/CoreTest/JestExtensions/toBeNullOrAny";
import { expect } from "@jest/globals";
import { toBeOneOf } from "jest-extended";

// The Backend gets constructed at some points in the tests, so we need to set
// the config values before the tests are run.
Expand All @@ -12,6 +13,7 @@ config.serverURL = "http://localhost:1337";
// matcher extensions
expect.extend({
toBeNullOrEqual: toBeNullOrEqual,
toBeOneOf: toBeOneOf,
});
declare global {
namespace jest {
Expand Down
1,307 changes: 728 additions & 579 deletions package-lock.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
"history": "^5.3.0",
"inversify": "^6.0.1",
"inversify-react": "^1.0.2",
"jest-extended": "^4.0.2",
"path-browserify": "^1.0.1",
"pdfobject": "^2.2.8",
"react": "^18.2.0",
Expand Down
Binary file modified src/Assets/BreakTimeAssets/B3/smallBreakContent-B3-slide2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/Assets/BreakTimeAssets/B7/smallBreakContent-B7-slide2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/Assets/BreakTimeAssets/B8/smallBreakContent-B8-slide1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/Assets/BreakTimeAssets/B8/smallBreakContent-B8-slide2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/Assets/BreakTimeAssets/E10/smallBreakContent-E10-slide1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/Assets/BreakTimeAssets/E10/smallBreakContent-E10-slide2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/Assets/BreakTimeAssets/E2/smallBreakContent-E2-slide1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/Assets/BreakTimeAssets/E2/smallBreakContent-E2-slide2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/Assets/BreakTimeAssets/E2/smallBreakContent-E2-slide3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/Assets/BreakTimeAssets/E4/smallBreakContent-E4-slide1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/Assets/BreakTimeAssets/H1/longBreakContent-H1-slide2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/Assets/BreakTimeAssets/H1/longBreakContent-H1-slide3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/Assets/BreakTimeAssets/H1/longBreakContent-H1-slide4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/Assets/BreakTimeAssets/L1/smallBreakContent-L1-slide1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/Assets/BreakTimeAssets/L1/smallBreakContent-L1-slide2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/Assets/BreakTimeAssets/L1/smallBreakContent-L1-slide3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/Assets/BreakTimeAssets/L3/smallBreakContent-L3-slide1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/Assets/BreakTimeAssets/L3/smallBreakContent-L3-slide2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/Assets/BreakTimeAssets/L5/smallBreakContent-L5-slide1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/Assets/BreakTimeAssets/L5/smallBreakContent-L5-slide2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/Assets/BreakTimeAssets/S1/mediumBreakContent-S1-slide1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/Assets/BreakTimeAssets/S1/mediumBreakContent-S1-slide2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/Assets/BreakTimeAssets/S1/mediumBreakContent-S1-slide4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/Assets/BreakTimeAssets/S3/mediumBreakContent-S3-slide1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/Assets/BreakTimeAssets/S3/mediumBreakContent-S3-slide3.png
Binary file modified src/Assets/BreakTimeAssets/U3/smallBreakContent-U3-slide1.png
Binary file modified src/Assets/BreakTimeAssets/U3/smallBreakContent-U3-slide2.png
Binary file modified src/Assets/BreakTimeAssets/U3/smallBreakContent-U3-slide3.png
Binary file modified src/Assets/BreakTimeAssets/U3/smallBreakContent-U3-slide4.png
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,7 @@ import { AdaptivityElementDataTO } from "../../Application/DataTransferObjects/A
import BackendElementTO from "../../Application/DataTransferObjects/BackendElementTO";
import BackendSpaceTO from "../../Application/DataTransferObjects/BackendSpaceTO";
import BackendWorldTO from "../../Application/DataTransferObjects/BackendWorldTO";
import {
LearningElementModelTypeEnums,
isValidLearningElementModelType,
} from "../../Domain/LearningElementModels/LearningElementModelTypes";
import { isValidLearningElementModelType } from "../../Domain/LearningElementModels/LearningElementModelTypes";
import { LearningElementTypes } from "../../Domain/Types/LearningElementTypes";
import { LearningSpaceTemplateType } from "../../Domain/Types/LearningSpaceTemplateType";
import { LearningSpaceThemeType } from "../../Domain/Types/LearningSpaceThemeTypes";
Expand Down Expand Up @@ -137,7 +134,7 @@ export default class BackendAdapterUtils {
if (isValidLearningElementModelType(modelData)) {
return modelData;
} else {
return LearningElementModelTypeEnums.NoElementModelTypes.None;
return undefined;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -959,7 +959,7 @@ export default class MockBackendAdapter implements IBackendPort {
],
elementFileType: "text",
elementMaxScore: 1,
elementModel: "",
elementModel: "a_npc_defaultnpc",
adaptivityContent: this.adaptivityData,
},

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
import { ComponentID } from "src/Components/Core/Domain/Types/EntityTypes";
import AdaptivityElementTaskTO from "./AdaptivityElementTaskTO";
import { LearningElementModel } from "src/Components/Core/Domain/LearningElementModels/LearningElementModelTypes";

export class AdaptivityElementDataTO {
id: ComponentID;
elementName: string;
introText: string;
model: LearningElementModel;
tasks: AdaptivityElementTaskTO[];
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ export default class LoadAdaptivityElementUseCase
);
adaptivityTO.elementName = elementEntity[0].element.name;
adaptivityTO.id = elementEntity[0].element.id;
adaptivityTO.model = elementEntity[0].element.model;

await this.getAdaptivityElementStatusUseCase.internalExecuteAsync(
adaptivityTO
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,11 @@ import { LogLevelTypes } from "src/Components/Core/Domain/Types/LogLevelTypes";
import AdaptivityElementEntity from "src/Components/Core/Domain/Entities/Adaptivity/AdaptivityElementEntity";
import { AdaptivityElementDataTO } from "../../DataTransferObjects/AdaptivityElement/AdaptivityElementDataTO";
import ExternalLearningElementEntity from "src/Components/Core/Domain/Entities/Adaptivity/ExternalLearningElementEntity";
import LearningSpaceThemeLookup from "src/Components/Core/Domain/LearningSpaceThemes/LearningSpaceThemeLookup";
import { LearningSpaceThemeType } from "src/Components/Core/Domain/Types/LearningSpaceThemeTypes";
import { LearningElementTypes } from "src/Components/Core/Domain/Types/LearningElementTypes";
import ArrayItemRandomizer from "src/Components/Core/Presentation/Utils/ArrayItemRandomizer/ArrayItemRandomizer";
import { isValidLearningElementModelType } from "src/Components/Core/Domain/LearningElementModels/LearningElementModelTypes";

@injectable()
export default class LoadLearningWorldUseCase
Expand Down Expand Up @@ -189,7 +194,8 @@ export default class LoadLearningWorldUseCase
? this.createLearningElementEntities(
worldID,
space.elements,
apiWorldScoreResponse
apiWorldScoreResponse,
space.templateStyle
)
: [];

Expand Down Expand Up @@ -218,13 +224,30 @@ export default class LoadLearningWorldUseCase
private createLearningElementEntities = (
worldID: number,
elements: (BackendElementTO | null)[],
worldStatus: LearningWorldStatusTO
worldStatus: LearningWorldStatusTO,
spaceTheme: LearningSpaceThemeType
): (LearningElementEntity | null)[] => {
return elements.map((element) => {
if (element === null || element.model === undefined) {
if (element === null) {
return null;
}

// randomly assign model if not set
if (
element.model === undefined ||
!isValidLearningElementModelType(element.model)
) {
const elementModelsForTheme =
LearningSpaceThemeLookup.getLearningSpaceTheme(
spaceTheme
).learningElementModels;
const elementModelsForType =
elementModelsForTheme[element.type as LearningElementTypes];

const modelRandomizer = new ArrayItemRandomizer(elementModelsForType);
element.model = modelRandomizer.getItem(element.name);
}

let newElementEntity: LearningElementEntity = {
id: element.id,
description: element.description,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,9 @@ enum TrophyElementModelTypes {
GoldTrophy = "l_trophy_gold",
}

enum NoElementModelTypes {
None = "",
}
// enum NoElementModelTypes {
// None = "",
// }

/**
Pseudo-nested enum to reference all possible members of the element model enums.
Expand All @@ -80,7 +80,7 @@ export const LearningElementModelTypeEnums = {
H5pElementModelTypes: H5pElementModelTypes,
QuizElementModelTypes: QuizElementModelTypes,
TrophyElementModelTypes: TrophyElementModelTypes,
NoElementModelTypes: NoElementModelTypes,
// NoElementModelTypes: NoElementModelTypes,
};

export function isValidLearningElementModelType(type: string): boolean {
Expand All @@ -99,5 +99,5 @@ export type LearningElementModel =
// | PdfElementModelTypes
| H5pElementModelTypes
| QuizElementModelTypes
| TrophyElementModelTypes
| NoElementModelTypes;
| TrophyElementModelTypes;
// | NoElementModelTypes;
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import { LearningElementModel } from "../LearningElementModels/LearningElementModelTypes";
import { LearningElementTypes } from "../Types/LearningElementTypes";
import { LearningSpaceThemeType } from "../Types/LearningSpaceThemeTypes";

type LearningElementModelsMap = Readonly<
Record<LearningElementTypes, string[]>
Record<LearningElementTypes, LearningElementModel[]>
>;

export default interface ILearningSpaceTheme {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { LearningElementModelTypeEnums } from "../LearningElementModels/LearningElementModelTypes";
import { LearningElementTypes } from "../Types/LearningElementTypes";
import { LearningSpaceThemeType } from "../Types/LearningSpaceThemeTypes";
import ILearningSpaceTheme from "./ILearningSpaceTheme";
Expand All @@ -8,28 +9,28 @@ const LearningSpaceTheme_Arcade: ILearningSpaceTheme = {
floorTexture: require("../../../../Assets/textures/arcadeTheme/m_floor_bluecarpet_1.jpg"),
learningElementModels: {
[LearningElementTypes.h5p]: [
require("../../../../Assets/3dModels/arcadeTheme/l_h5p_greyslotmachine_1.glb"),
require("../../../../Assets/3dModels/arcadeTheme/l_h5p_redslotmachine_1.glb"),
require("../../../../Assets/3dModels/arcadeTheme/l_h5p_purpleslotmachine_1.glb"),
require("../../../../Assets/3dModels/arcadeTheme/l_h5p_blackslotmachine_1.glb"),
require("../../../../Assets/3dModels/arcadeTheme/l_h5p_deskpc_2.glb"),
LearningElementModelTypeEnums.H5pElementModelTypes.GreySlotmachine,
LearningElementModelTypeEnums.H5pElementModelTypes.RedSlotmachine,
LearningElementModelTypeEnums.H5pElementModelTypes.PurpleSlotmachine,
LearningElementModelTypeEnums.H5pElementModelTypes.BlackSlotmachine,
LearningElementModelTypeEnums.H5pElementModelTypes.DeskPC2,
],
[LearningElementTypes.text]: [
require("../../../../Assets/3dModels/arcadeTheme/l_text_comicshelfbig_1.glb"),
LearningElementModelTypeEnums.TextElementModelTypes.ComicShelfbig,
],
[LearningElementTypes.image]: [
require("../../../../Assets/3dModels/arcadeTheme/l_image_gameposter_1.glb"),
require("../../../../Assets/3dModels/arcadeTheme/l_image_gameposter_2.glb"),
require("../../../../Assets/3dModels/arcadeTheme/l_image_cardboardcutout_1.glb"),
LearningElementModelTypeEnums.ImageElementModelTypes.Gameposter1,
LearningElementModelTypeEnums.ImageElementModelTypes.Gameposter2,
LearningElementModelTypeEnums.ImageElementModelTypes.Cardboardcutout,
],
[LearningElementTypes.video]: [
require("../../../../Assets/3dModels/arcadeTheme/l_video_vrdesk_1.glb"),
LearningElementModelTypeEnums.VideoElementModelTypes.vrdesk,
],
[LearningElementTypes.pdf]: [
require("../../../../Assets/3dModels/arcadeTheme/l_text_comicshelfsmall_1.glb"),
LearningElementModelTypeEnums.TextElementModelTypes.ComicShelfsmall,
],
[LearningElementTypes.adaptivity]: [
require("../../../../Assets/3dModels/arcadeTheme/a_npc_sheriffjustice.glb"),
LearningElementModelTypeEnums.QuizElementModelTypes.ArcadeNPC,
],
[LearningElementTypes.notAnElement]: [],
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { LearningElementModelTypeEnums } from "../LearningElementModels/LearningElementModelTypes";
import { LearningElementTypes } from "../Types/LearningElementTypes";
import { LearningSpaceThemeType } from "../Types/LearningSpaceThemeTypes";
import ILearningSpaceTheme from "./ILearningSpaceTheme";
Expand All @@ -8,27 +9,27 @@ const LearningSpaceTheme_Campus: ILearningSpaceTheme = {
floorTexture: require("../../../../Assets/textures/campusTheme/m_floor_bluecarpet2_1.jpg"),
learningElementModels: {
[LearningElementTypes.h5p]: [
require("../../../../Assets/3dModels/campusTheme/l_h5p_blackboard_2.glb"),
require("../../../../Assets/3dModels/campusTheme/l_h5p_deskpc_3.glb"),
require("../../../../Assets/3dModels/campusTheme/l_h5p_drawingtable_2.glb"),
require("../../../../Assets/3dModels/campusTheme/l_h5p_daylightprojector_1.glb"),
LearningElementModelTypeEnums.H5pElementModelTypes.Blackboard2,
LearningElementModelTypeEnums.H5pElementModelTypes.DeskPC3,
LearningElementModelTypeEnums.H5pElementModelTypes.DrawingTable2,
LearningElementModelTypeEnums.H5pElementModelTypes.Daylightprojector,
],
[LearningElementTypes.text]: [
require("../../../../Assets/3dModels/campusTheme/l_text_libraryshelf_1.glb"),
LearningElementModelTypeEnums.TextElementModelTypes.LibraryShelf,
],
[LearningElementTypes.image]: [
require("../../../../Assets/3dModels/campusTheme/l_image_sciencegeo_1.glb"),
require("../../../../Assets/3dModels/campusTheme/l_image_sciencebio_1.glb"),
require("../../../../Assets/3dModels/campusTheme/l_image_sciencewhiteboard_1.glb"),
LearningElementModelTypeEnums.ImageElementModelTypes.sciencegeo1,
LearningElementModelTypeEnums.ImageElementModelTypes.sciencebio1,
LearningElementModelTypeEnums.ImageElementModelTypes.sciencewhiteboard,
],
[LearningElementTypes.video]: [
require("../../../../Assets/3dModels/campusTheme/l_video_movieprojector_1.glb"),
LearningElementModelTypeEnums.VideoElementModelTypes.movieprojector,
],
[LearningElementTypes.pdf]: [
require("../../../../Assets/3dModels/campusTheme/l_text_libraryshelf_1.glb"),
LearningElementModelTypeEnums.TextElementModelTypes.Bookshelf1,
],
[LearningElementTypes.adaptivity]: [
require("../../../../Assets/3dModels/campusTheme/a_npc_dozentlukas.glb"),
LearningElementModelTypeEnums.QuizElementModelTypes.CampusNPC,
],
[LearningElementTypes.notAnElement]: [],
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { LearningElementModelTypeEnums } from "../LearningElementModels/LearningElementModelTypes";
import { LearningElementTypes } from "../Types/LearningElementTypes";
import { LearningSpaceThemeType } from "../Types/LearningSpaceThemeTypes";
import ILearningSpaceTheme from "./ILearningSpaceTheme";
Expand All @@ -8,27 +9,27 @@ const LearningSpaceTheme_Suburb: ILearningSpaceTheme = {
floorTexture: require("../../../../Assets/textures/suburbTheme/m_floor_woodboards_1.jpg"),
learningElementModels: {
[LearningElementTypes.h5p]: [
require("../../../../Assets/3dModels/suburbTheme/l_h5p_blackboard_1.glb"),
require("../../../../Assets/3dModels/suburbTheme/l_h5p_deskpc_1.glb"),
require("../../../../Assets/3dModels/suburbTheme/l_h5p_drawingtable_1.glb"),
require("../../../../Assets/3dModels/suburbTheme/l_h5p_slotmachine_1.glb"),
LearningElementModelTypeEnums.H5pElementModelTypes.Blackboard,
LearningElementModelTypeEnums.H5pElementModelTypes.DeskPC1,
LearningElementModelTypeEnums.H5pElementModelTypes.DrawingTable,
LearningElementModelTypeEnums.H5pElementModelTypes.SlotMachine,
],
[LearningElementTypes.text]: [
require("../../../../Assets/3dModels/suburbTheme/l_text_bookshelf_1.glb"),
LearningElementModelTypeEnums.TextElementModelTypes.Bookshelf1,
],
[LearningElementTypes.image]: [
require("../../../../Assets/3dModels/suburbTheme/l_image_painting_1.glb"),
require("../../../../Assets/3dModels/suburbTheme/l_image_painting_2.glb"),
require("../../../../Assets/3dModels/suburbTheme/l_image_paintingeasel_1.glb"),
LearningElementModelTypeEnums.ImageElementModelTypes.Painting1,
LearningElementModelTypeEnums.ImageElementModelTypes.Painting2,
LearningElementModelTypeEnums.ImageElementModelTypes.PaintingEasel,
],
[LearningElementTypes.video]: [
require("../../../../Assets/3dModels/suburbTheme/l_video_television_1.glb"),
LearningElementModelTypeEnums.VideoElementModelTypes.Television,
],
[LearningElementTypes.pdf]: [
require("../../../../Assets/3dModels/suburbTheme/l_text_bookshelf_2.glb"),
LearningElementModelTypeEnums.TextElementModelTypes.Bookshelf2,
],
[LearningElementTypes.adaptivity]: [
require("../../../../Assets/3dModels/suburbTheme/a_npc_defaultnpc.glb"),
LearningElementModelTypeEnums.QuizElementModelTypes.DefaultNPC,
],
[LearningElementTypes.notAnElement]: [],
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ export default class AdaptivityElementPresenter
this.setFooterBreadcrumbs();

this.viewModel.elementID.Value = adaptivityElementProgressTO.id;
this.viewModel.model.Value = adaptivityElementProgressTO.model;
this.viewModel.currentTask.Value = null;
this.viewModel.currentQuestion.Value = null;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { AdaptivityElementQuestionDifficultyTypes } from "src/Components/Core/Do
import { AdaptivityElementActionTypes } from "src/Components/Core/Domain/Types/Adaptivity/AdaptivityElementActionTypes";
import Observable from "src/Lib/Observable";
import { ComponentID } from "src/Components/Core/Domain/Types/EntityTypes";
import { LearningElementModel } from "src/Components/Core/Domain/LearningElementModels/LearningElementModelTypes";

export interface AdaptivityAnswer {
answerIndex: number;
Expand Down Expand Up @@ -62,4 +63,5 @@ export default class AdaptivityElementViewModel {
new Observable<AdaptivityHint | null>(null);
footerText: Observable<string> = new Observable<string>("");
elementID: Observable<ComponentID> = new Observable<ComponentID>();
model: Observable<LearningElementModel> = new Observable();
}
Loading

0 comments on commit 7e8c02e

Please sign in to comment.