diff --git a/projects/player/src/app/app.module.ts b/projects/player/src/app/app.module.ts index 41b7896c85eb823f175545a7e91f0eebb22a1f9b..f8260a89aa07c4af9ebec4e1936d6932bbcecb2d 100644 --- a/projects/player/src/app/app.module.ts +++ b/projects/player/src/app/app.module.ts @@ -10,6 +10,8 @@ import { KeyInputModule } from 'player/modules/key-input/key-input.module'; import { UnitMenuModule } from 'player/modules/unit-menu/unit-menu.module'; import { MetaDataService } from 'player/src/app/services/meta-data.service'; import { ScrollingModule } from '@angular/cdk/scrolling'; +import { AsOverlayOriginPipe } from 'player/src/app/pipes/as-overlay-origin.pipe'; +import { HasReturnKeyPipe } from 'player/src/app/pipes/has-return-key.pipe'; import { AppComponent } from './app.component'; import { PageComponent } from './components/page/page.component'; import { SectionComponent } from './components/section/section.component'; @@ -68,6 +70,8 @@ import { ExternalAppGroupElementComponent } from TextInputGroupElementComponent, CompoundGroupElementComponent, CastPipe, + AsOverlayOriginPipe, + HasReturnKeyPipe, TextGroupElementComponent, BaseGroupElementComponent, InteractiveGroupElementComponent, diff --git a/projects/player/src/app/components/floating-keypad/floating-keypad.component.html b/projects/player/src/app/components/floating-keypad/floating-keypad.component.html index b12014f7e455c166c42509c710b15671f5486f56..a02f478bdbbd3c96128c987e377864b554ff06bb 100644 --- a/projects/player/src/app/components/floating-keypad/floating-keypad.component.html +++ b/projects/player/src/app/components/floating-keypad/floating-keypad.component.html @@ -3,7 +3,7 @@ cdkConnectedOverlay cdkConnectedOverlayPush [cdkConnectedOverlayScrollStrategy]="repositionScrollStrategy" - [cdkConnectedOverlayOrigin]="keypadService.elementComponent" + [cdkConnectedOverlayOrigin]="keypadService.elementComponent | asOverlayOrigin" [cdkConnectedOverlayPositions]="overlayPositions" [cdkConnectedOverlayOpen]="isKeypadOpen && keypadService.position === 'floating'"> <aspect-keypad @@ -15,7 +15,7 @@ [customKeys]="keypadService.elementComponent.elementModel.inputAssistanceCustomKeys" [restrictToAllowedKeys]="keypadService.elementComponent.elementModel.restrictedToInputAssistanceChars" [hasArrowKeys]="keypadService.elementComponent.elementModel.hasArrowKeys" - [hasReturnKey]="!!keypadService.elementComponent.elementModel.hasReturnKey" + [hasReturnKey]="keypadService.elementComponent.elementModel | hasReturnKey" (backSpaceClicked)="keypadService.deleteCharacters(true)" (keyClicked)="keypadService.enterKey($event)"> </aspect-keypad> diff --git a/projects/player/src/app/components/floating-marking-bar/floating-marking-bar.component.html b/projects/player/src/app/components/floating-marking-bar/floating-marking-bar.component.html index ff0ace08bc59587b1cdf518a1df9f4b745e6f0e8..ad2616be6e4135c7a71dbe97fe4bca23e09f2f39 100644 --- a/projects/player/src/app/components/floating-marking-bar/floating-marking-bar.component.html +++ b/projects/player/src/app/components/floating-marking-bar/floating-marking-bar.component.html @@ -3,7 +3,7 @@ elementComponent.elementModel.highlightableTurquoise || elementComponent.elementModel.highlightableOrange" cdkConnectedOverlay - [cdkConnectedOverlayOrigin]="elementComponent" + [cdkConnectedOverlayOrigin]="elementComponent | asOverlayOrigin" [cdkConnectedOverlayPositions]="overlayPositions" [cdkConnectedOverlayOpen]="isMarkingBarOpen"> <div class="marking-bar-container" diff --git a/projects/player/src/app/pipes/as-overlay-origin.pipe.ts b/projects/player/src/app/pipes/as-overlay-origin.pipe.ts new file mode 100644 index 0000000000000000000000000000000000000000..647a438e738e89923020604499baa8a6083fd2ba --- /dev/null +++ b/projects/player/src/app/pipes/as-overlay-origin.pipe.ts @@ -0,0 +1,12 @@ +import { Pipe, PipeTransform } from '@angular/core'; +import { ElementComponent } from 'common/directives/element-component.directive'; +import { CdkOverlayOrigin } from '@angular/cdk/overlay'; + +@Pipe({ + name: 'asOverlayOrigin' +}) +export class AsOverlayOriginPipe implements PipeTransform { + transform(elementComponent: ElementComponent): CdkOverlayOrigin { + return elementComponent as CdkOverlayOrigin; + } +} diff --git a/projects/player/src/app/pipes/has-return-key.pipe.ts b/projects/player/src/app/pipes/has-return-key.pipe.ts new file mode 100644 index 0000000000000000000000000000000000000000..a03867c7bde66b81fa37b2af97bdcf9fe5a670c7 --- /dev/null +++ b/projects/player/src/app/pipes/has-return-key.pipe.ts @@ -0,0 +1,15 @@ +import { Pipe, PipeTransform } from '@angular/core'; +import { TextInputElement } from 'common/models/elements/element'; +import { TextAreaElement } from 'common/models/elements/input-elements/text-area'; + +@Pipe({ + name: 'hasReturnKey' +}) +export class HasReturnKeyPipe implements PipeTransform { + transform(elementModel: TextInputElement): boolean { + if (elementModel.type === 'text-area') { + return (elementModel as TextAreaElement).hasReturnKey; + } + return false; + } +}