diff --git a/projects/player/src/app/components/element-container/element-container.component.ts b/projects/player/src/app/components/element-container/element-container.component.ts index a94ecc138392ec9b25d351d7ffbc5dfe0dea548b..30a37ca40270080c06c0f2e3e5be49d113ec15fc 100644 --- a/projects/player/src/app/components/element-container/element-container.component.ts +++ b/projects/player/src/app/components/element-container/element-container.component.ts @@ -26,6 +26,10 @@ import { TextComponent } from '../../../../../common/ui-elements/text/text.compo import { TextFieldElement } from '../../../../../common/ui-elements/text-field/text-field-element'; import { ElementComponent } from '../../../../../common/directives/element-component.directive'; import { ElementFactory } from '../../../../../common/util/element.factory'; +import { ImageComponent } from '../../../../../common/ui-elements/image/image.component'; +import { ButtonComponent } from '../../../../../common/ui-elements/button/button.component'; +import { TextFieldComponent } from '../../../../../common/ui-elements/text-field/text-field.component'; +import { TextAreaComponent } from '../../../../../common/ui-elements/text-area/text-area.component'; @Component({ selector: 'app-element-container', @@ -73,13 +77,15 @@ export class ElementContainerComponent implements OnInit { this.elementModel.playerProps?.minRuns as number === 0 ); } - this.subscribeStartSelection(elementComponent); - this.subscribeApplySelection(elementComponent); - this.subscribeMediaPlayStatusChanged(elementComponent); - this.subscribeMediaValidStatusChanged(elementComponent); - this.subscribeNavigationRequested(elementComponent); - this.subscribeElementValueChanged(elementComponent); - this.subscribeForKeyboardEvents(elementComponent); + this.subscribeStartSelection(elementComponent as TextComponent); + this.subscribeApplySelection(elementComponent as TextComponent); + this.subscribeMediaPlayStatusChanged(elementComponent as MediaPlayerElementComponent); + this.subscribeMediaValidStatusChanged(elementComponent as MediaPlayerElementComponent); + this.subscribeNavigationRequested(elementComponent as ButtonComponent); + this.subscribeElementValueChanged( + elementComponent as FormElementComponent | TextComponent | ImageComponent | MediaPlayerElementComponent + ); + this.subscribeForKeyboardEvents(elementComponent as TextFieldComponent | TextAreaComponent); } private initElementComponent(): ElementComponent | CompoundElementComponent { @@ -90,7 +96,7 @@ export class ElementContainerComponent implements OnInit { return elementComponent; } - private initFormElement(elementComponent: any): void { + private initFormElement(elementComponent: FormElementComponent): void { const elementForm = this.formBuilder.group({}); elementComponent.parentForm = elementForm; this.subscribeSetValidators(elementComponent, elementForm); @@ -102,7 +108,7 @@ export class ElementContainerComponent implements OnInit { }); } - private initCompoundElement(elementComponent: any): void { + private initCompoundElement(elementComponent: CompoundElementComponent): void { const elementForm = this.formBuilder.group({}); elementComponent.parentForm = elementForm; const compoundChildren = elementComponent.getFormElementModelChildren(); @@ -117,7 +123,7 @@ export class ElementContainerComponent implements OnInit { }); } - private registerAtUnitStateService(elementComponent: any): void { + private registerAtUnitStateService(elementComponent: ElementComponent): void { if (!(elementComponent instanceof CompoundElementComponent)) { this.unitStateService.registerElement( this.initUnitStateValue(elementComponent.elementModel), @@ -127,7 +133,9 @@ export class ElementContainerComponent implements OnInit { } } - private subscribeCompoundChildren(elementComponent: any, compoundChildren: InputElement[]): void { + private subscribeCompoundChildren( + elementComponent: CompoundElementComponent, compoundChildren: InputElement[] + ): void { if (elementComponent.childrenAdded) { elementComponent.childrenAdded .pipe(takeUntil(this.ngUnsubscribe)) @@ -145,7 +153,7 @@ export class ElementContainerComponent implements OnInit { } } - private subscribeStartSelection(elementComponent: any): void { + private subscribeStartSelection(elementComponent: TextComponent): void { if (elementComponent.startSelection) { elementComponent.startSelection .pipe(takeUntil(this.ngUnsubscribe)) @@ -158,7 +166,7 @@ export class ElementContainerComponent implements OnInit { } } - private subscribeApplySelection(elementComponent: any): void { + private subscribeApplySelection(elementComponent: TextComponent): void { if (elementComponent.applySelection) { elementComponent.applySelection .pipe(takeUntil(this.ngUnsubscribe)) @@ -166,14 +174,14 @@ export class ElementContainerComponent implements OnInit { { mode: 'mark' | 'underline' | 'delete', color: string; element: HTMLElement; - clear: boolean }) => { + }) => { this.markingService .applySelection(selection.mode, selection.color, selection.element, elementComponent as TextComponent); }); } } - private subscribeMediaPlayStatusChanged(elementComponent: any): void { + private subscribeMediaPlayStatusChanged(elementComponent: MediaPlayerElementComponent): void { if (elementComponent.onMediaPlayStatusChanged) { elementComponent.onMediaPlayStatusChanged .pipe(takeUntil(this.ngUnsubscribe)) @@ -183,7 +191,7 @@ export class ElementContainerComponent implements OnInit { } } - private subscribeMediaValidStatusChanged(elementComponent: any): void { + private subscribeMediaValidStatusChanged(elementComponent: MediaPlayerElementComponent): void { if (elementComponent.onMediaValidStatusChanged) { elementComponent.onMediaValidStatusChanged .pipe(takeUntil(this.ngUnsubscribe)) @@ -193,7 +201,7 @@ export class ElementContainerComponent implements OnInit { } } - private subscribeNavigationRequested(elementComponent: any): void { + private subscribeNavigationRequested(elementComponent: ButtonComponent): void { if (elementComponent.navigationRequested) { elementComponent.navigationRequested .pipe(takeUntil(this.ngUnsubscribe)) @@ -203,7 +211,9 @@ export class ElementContainerComponent implements OnInit { } } - private subscribeElementValueChanged(elementComponent: any): void { + private subscribeElementValueChanged( + elementComponent: FormElementComponent | TextComponent | ImageComponent | MediaPlayerElementComponent + ): void { if (elementComponent.elementValueChanged) { elementComponent.elementValueChanged .pipe(takeUntil(this.ngUnsubscribe)) @@ -213,7 +223,7 @@ export class ElementContainerComponent implements OnInit { } } - private subscribeSetValidators(elementComponent: any, elementForm: FormGroup): void { + private subscribeSetValidators(elementComponent: FormElementComponent, elementForm: FormGroup): void { if (elementComponent.setValidators) { elementComponent.setValidators .pipe(takeUntil(this.ngUnsubscribe)) @@ -227,7 +237,7 @@ export class ElementContainerComponent implements OnInit { } } - private subscribeForKeyboardEvents(elementComponent: any): void { + private subscribeForKeyboardEvents(elementComponent: TextFieldComponent | TextAreaComponent): void { if (elementComponent.onFocusChanged) { elementComponent.onFocusChanged .pipe(takeUntil(this.ngUnsubscribe))