diff --git a/projects/common/util/unit-definition-sanitizer.ts b/projects/common/util/unit-definition-sanitizer.ts index 19f9e0a36836b070b8ae74ffba7aa10cd7bb94ce..d3f4baea262b3e46eb4d386404d4c496c98ccf3d 100644 --- a/projects/common/util/unit-definition-sanitizer.ts +++ b/projects/common/util/unit-definition-sanitizer.ts @@ -94,7 +94,7 @@ export class UnitDefinitionSanitizer { */ private static handleClozeElements(elementList: UIElement[]): void { const clozeElements = elementList.filter(element => element.type === 'cloze'); - if (clozeElements[0].text) { + if (clozeElements.length && clozeElements[0].text) { clozeElements.forEach((element: Record<string, any>) => { const replacedText = element.text.replace(/\\i|\\z|\\r/g, (match: string) => { switch (match) { diff --git a/projects/player/src/app/app.component.ts b/projects/player/src/app/app.component.ts index 631f07f7fced4e3f05601acf8a6164d50035573a..aa19990ee3603f1ecb1277cf8d4a35dc4ae334c0 100644 --- a/projects/player/src/app/app.component.ts +++ b/projects/player/src/app/app.component.ts @@ -13,6 +13,7 @@ import { UnitStateService } from './services/unit-state.service'; import { MediaPlayerService } from './services/media-player.service'; import { AlertDialogComponent } from './components/alert-dialog/alert-dialog.component'; import { Page, Unit } from '../../../common/interfaces/unit'; +import { UnitDefinitionSanitizer } from '../../../common/util/unit-definition-sanitizer'; @Component({ selector: 'aspect-player', @@ -59,7 +60,7 @@ export class AppComponent implements OnInit { // eslint-disable-next-line no-console console.log('player: onStart', message); if (message.unitDefinition) { - const unitDefinition: Unit = JSON.parse(message.unitDefinition); + const unitDefinition: Unit = UnitDefinitionSanitizer.sanitize(JSON.parse(message.unitDefinition)); this.unitStateElementMapperService.registerDropListValueIds(unitDefinition); if (this.metaDataService.verifyUnitDefinitionVersion(unitDefinition.unitDefinitionType)) { this.playerConfig = message.playerConfig || {}; diff --git a/projects/player/src/app/components/floating-keyboard/floating-keyboard.component.ts b/projects/player/src/app/components/floating-keyboard/floating-keyboard.component.ts index f63a013663498193aec0116980932cadfcbce67f..6a9164843d221d2062822216d1848961a29a1bff 100644 --- a/projects/player/src/app/components/floating-keyboard/floating-keyboard.component.ts +++ b/projects/player/src/app/components/floating-keyboard/floating-keyboard.component.ts @@ -2,7 +2,7 @@ import { Component, EventEmitter, Input, Output } from '@angular/core'; import { CdkOverlayOrigin } from '@angular/cdk/overlay'; -import { InputAssistancePreset } from '../../../../../common/models/uI-element'; +import { InputAssistancePreset } from '../../../../../common/interfaces/elements'; @Component({ selector: 'aspect-floating-keyboard', diff --git a/projects/player/src/app/components/key/key.component.ts b/projects/player/src/app/components/key/key.component.ts index 5bdcfbafcf2625aee3f82d2e03740cc594451640..f00c09d8619b588e31545334e54b5b39837e89cf 100644 --- a/projects/player/src/app/components/key/key.component.ts +++ b/projects/player/src/app/components/key/key.component.ts @@ -1,7 +1,7 @@ import { Component, EventEmitter, Input, Output } from '@angular/core'; -import { InputAssistancePreset } from '../../../../../common/models/uI-element'; +import { InputAssistancePreset } from '../../../../../common/interfaces/elements'; @Component({ selector: 'aspect-key', diff --git a/projects/player/src/app/components/keyboard/keyboard.component.ts b/projects/player/src/app/components/keyboard/keyboard.component.ts index 128a70db2d8d10c76e63ca062a7b6fb40a8050d5..c7f16f7f0dc9265903b206efb9aadb5094ce1750 100644 --- a/projects/player/src/app/components/keyboard/keyboard.component.ts +++ b/projects/player/src/app/components/keyboard/keyboard.component.ts @@ -1,7 +1,7 @@ import { Component, EventEmitter, Input, Output } from '@angular/core'; -import { InputAssistancePreset } from '../../../../../common/models/uI-element'; +import { InputAssistancePreset } from '../../../../../common/interfaces/elements'; @Component({ selector: 'aspect-keyboard', diff --git a/projects/player/src/app/components/math-keyboard/math-keyboard.component.ts b/projects/player/src/app/components/math-keyboard/math-keyboard.component.ts index 1f58d4ce86a1690430cf81c47b2f08a0fa407f69..3e153288e2964e1a79d9e58d442ab013ba4aa775 100644 --- a/projects/player/src/app/components/math-keyboard/math-keyboard.component.ts +++ b/projects/player/src/app/components/math-keyboard/math-keyboard.component.ts @@ -1,7 +1,7 @@ import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; -import { InputAssistancePreset } from '../../../../../common/models/uI-element'; +import { InputAssistancePreset } from '../../../../../common/interfaces/elements'; @Component({ selector: 'aspect-math-keyboard', diff --git a/projects/player/src/app/services/keyboard.service.ts b/projects/player/src/app/services/keyboard.service.ts index 45e74197e28b6b9a555518e0e9f5047d6eedb86a..b99bcbf34ca4a45b8b51128de4936439ed4ec1d8 100644 --- a/projects/player/src/app/services/keyboard.service.ts +++ b/projects/player/src/app/services/keyboard.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@angular/core'; import { TextFieldComponent } from '../../../../common/components/ui-elements/text-field.component'; import { TextAreaComponent } from '../../../../common/components/ui-elements/text-area.component'; -import { InputAssistancePreset } from '../../../../common/models/uI-element'; +import { InputAssistancePreset } from '../../../../common/interfaces/elements'; @Injectable({ providedIn: 'root'