diff --git a/projects/common/models/elements/element.ts b/projects/common/models/elements/element.ts index ee48a37301d58a825188ce8b5bab60d149366eeb..8ce263e0268ad3427a870a0a2ac62d469b4025d9 100644 --- a/projects/common/models/elements/element.ts +++ b/projects/common/models/elements/element.ts @@ -198,7 +198,6 @@ export abstract class InputElement extends UIElement implements InputElementProp export interface KeyInputElementProperties { inputAssistancePreset: InputAssistancePreset; - inputAssistanceCustomKeys: string; inputAssistancePosition: 'floating' | 'right'; inputAssistanceFloatingStartPosition: 'startBottom' | 'endCenter'; showSoftwareKeyboard: boolean; @@ -206,6 +205,7 @@ export interface KeyInputElementProperties { } export interface TextInputElementProperties extends KeyInputElementProperties, InputElementProperties { + inputAssistanceCustomKeys: string; restrictedToInputAssistanceChars: boolean; hasArrowKeys: boolean; hasBackspaceKey: boolean; @@ -214,7 +214,6 @@ export interface TextInputElementProperties extends KeyInputElementProperties, I function isValidKeyInputProperties(blueprint?: KeyInputElementProperties): boolean { if (!blueprint) return false; return blueprint.inputAssistancePreset !== undefined && - blueprint.inputAssistanceCustomKeys !== undefined && blueprint.inputAssistancePosition !== undefined && blueprint.inputAssistanceFloatingStartPosition !== undefined && blueprint.showSoftwareKeyboard !== undefined && @@ -224,6 +223,7 @@ function isValidKeyInputProperties(blueprint?: KeyInputElementProperties): boole function isValidTextInputElementProperties(blueprint?: TextInputElementProperties): boolean { if (!blueprint) return false; return blueprint.restrictedToInputAssistanceChars !== undefined && + blueprint.inputAssistanceCustomKeys !== undefined && blueprint.hasArrowKeys !== undefined && blueprint.hasBackspaceKey !== undefined && isValidKeyInputProperties(blueprint); @@ -264,7 +264,7 @@ export abstract class TextInputElement extends InputElement implements TextInput if (element?.hasArrowKeys) this.hasArrowKeys = element.hasArrowKeys; if (element?.hasBackspaceKey) this.hasBackspaceKey = element.hasBackspaceKey; if (element?.showSoftwareKeyboard) this.showSoftwareKeyboard = element.showSoftwareKeyboard; - if (element?.addInputAssistanceToKeyboard) this.softwareKeyboardShowFrench = element.addInputAssistanceToKeyboard; + if (element?.addInputAssistanceToKeyboard) this.addInputAssistanceToKeyboard = element.addInputAssistanceToKeyboard; } } } diff --git a/projects/common/models/elements/input-elements/math-table.ts b/projects/common/models/elements/input-elements/math-table.ts index 03a84649876d6abdc7c320c070e001d2717b2720..3167081bddbefadc4ae6ec8cb8c2b41b7473bac7 100644 --- a/projects/common/models/elements/input-elements/math-table.ts +++ b/projects/common/models/elements/input-elements/math-table.ts @@ -24,12 +24,8 @@ export class MathTableElement extends UIElement implements MathTableProperties, result: string = ''; resultHelperRow: string = ''; inputAssistancePreset: InputAssistancePreset = null; - inputAssistanceCustomKeys: string = ''; inputAssistancePosition: 'floating' | 'right' = 'floating'; inputAssistanceFloatingStartPosition: 'startBottom' | 'endCenter' = 'startBottom'; - restrictedToInputAssistanceChars: boolean = false; - hasArrowKeys: boolean = false; - hasBackspaceKey: boolean = false; showSoftwareKeyboard: boolean = false; addInputAssistanceToKeyboard: boolean = false; variableLayoutOptions: { @@ -59,7 +55,6 @@ export class MathTableElement extends UIElement implements MathTableProperties, this.variableLayoutOptions = { ...element.variableLayoutOptions }; this.styling = { ...element.styling }; this.inputAssistancePreset = element.inputAssistancePreset; - this.inputAssistanceCustomKeys = element.inputAssistanceCustomKeys; this.inputAssistancePosition = element.inputAssistancePosition; this.inputAssistanceFloatingStartPosition = element.inputAssistanceFloatingStartPosition; this.showSoftwareKeyboard = element.showSoftwareKeyboard; diff --git a/projects/common/models/elements/property-group-interfaces.ts b/projects/common/models/elements/property-group-interfaces.ts index 9fef7de47e54b3d1c9c974860549d47943d9696d..1b686f287d341a4f190745c18061ba30a944dab4 100644 --- a/projects/common/models/elements/property-group-interfaces.ts +++ b/projects/common/models/elements/property-group-interfaces.ts @@ -120,7 +120,10 @@ export abstract class PropertyGroupValidators { static isValidKeyInputElementProperties(blueprint: KeyInputElementProperties): boolean { if (!blueprint) return false; - return true; + return blueprint.inputAssistancePreset !== undefined && + blueprint.inputAssistancePosition !== undefined && + blueprint.inputAssistanceFloatingStartPosition && + blueprint.showSoftwareKeyboard !== undefined; } static isValidBasicStyles(blueprint: BasicStyles): boolean { @@ -237,11 +240,10 @@ export abstract class PropertyGroupGenerators { static generateKeyInputProps(properties: Partial<KeyInputElementProperties> = {}): KeyInputElementProperties { return { inputAssistancePreset: properties.inputAssistancePreset !== undefined ? properties.inputAssistancePreset as InputAssistancePreset : null, - inputAssistanceCustomKeys: properties.inputAssistanceCustomKeys !== undefined ? properties.inputAssistanceCustomKeys as string : '', inputAssistancePosition: properties.inputAssistancePosition !== undefined ? properties.inputAssistancePosition as 'floating' | 'right' : 'floating', inputAssistanceFloatingStartPosition: properties.inputAssistanceFloatingStartPosition !== undefined ? properties.inputAssistanceFloatingStartPosition as 'startBottom' | 'endCenter' : 'startBottom', showSoftwareKeyboard: properties.showSoftwareKeyboard !== undefined ? properties.showSoftwareKeyboard as boolean : false, - addInputAssistanceToKeyboard: properties.addInputAssistanceToKeyboard !== undefined ? properties.addInputAssistanceToKeyboard as boolean : false + addInputAssistanceToKeyboard: properties.addInputAssistanceToKeyboard !== undefined ? properties.addInputAssistanceToKeyboard : false }; } } diff --git a/projects/player/src/app/app.module.ts b/projects/player/src/app/app.module.ts index f8260a89aa07c4af9ebec4e1936d6932bbcecb2d..9270deaea6dd08ef197f53a586942f9a6ae906cf 100644 --- a/projects/player/src/app/app.module.ts +++ b/projects/player/src/app/app.module.ts @@ -52,6 +52,7 @@ import { UnitComponent } from './components/unit/unit.component'; import { PageScrollButtonComponent } from './components/page-scroll-button/page-scroll-button.component'; import { ExternalAppGroupElementComponent } from './components/elements/external-app-group-element/external-app-group-element.component'; +import { InputAssistanceCustomKeysPipe } from './pipes/input-assistance-custom-keys.pipe'; @NgModule({ declarations: [ @@ -84,7 +85,8 @@ import { ExternalAppGroupElementComponent } from SectionVisibilityHandlingDirective, UnitComponent, PageScrollButtonComponent, - ExternalAppGroupElementComponent + ExternalAppGroupElementComponent, + InputAssistanceCustomKeysPipe ], imports: [ BrowserModule, 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 530632047c470ef3e0f300e39b8c604ca442307c..8ead38d6ddd5f64876f1c84623760fc5389d3ef6 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 @@ -12,10 +12,10 @@ [inputElement]="keypadService.inputElement" [position]="keypadService.position" [preset]="keypadService.preset" - [customKeys]="keypadService.elementComponent.elementModel.inputAssistanceCustomKeys" - [restrictToAllowedKeys]="keypadService.elementComponent.elementModel.restrictedToInputAssistanceChars" - [hasArrowKeys]="keypadService.elementComponent.elementModel.hasArrowKeys" - [hasBackspaceKey]="keypadService.elementComponent.elementModel.hasBackspaceKey" + [customKeys]="keypadService.elementComponent.elementModel.inputAssistanceCustomKeys | inputAssistanceCustomKeys" + [restrictToAllowedKeys]="!!keypadService.elementComponent.elementModel.restrictedToInputAssistanceChars" + [hasArrowKeys]="!!keypadService.elementComponent.elementModel.hasArrowKeys" + [hasBackspaceKey]="!!keypadService.elementComponent.elementModel.hasBackspaceKey" [hasReturnKey]="keypadService.elementComponent.elementModel | hasReturnKey" (backSpaceClicked)="keypadService.deleteCharacters.emit(true)" (keyClicked)="keypadService.enterKey.emit($event)" diff --git a/projects/player/src/app/components/layouts/player-layout/player-layout.component.html b/projects/player/src/app/components/layouts/player-layout/player-layout.component.html index c5b795903f7a9740c89f2c4cf74ca3c669fdf98f..a601a230735cbecd8e54afde8c05716143ffbcab 100644 --- a/projects/player/src/app/components/layouts/player-layout/player-layout.component.html +++ b/projects/player/src/app/components/layouts/player-layout/player-layout.component.html @@ -10,10 +10,10 @@ [inputElement]="keypadService.inputElement" [position]="keypadService.position" [preset]="keypadService.preset" - [customKeys]="keypadService.elementComponent.elementModel.inputAssistanceCustomKeys" - [restrictToAllowedKeys]="keypadService.elementComponent.elementModel.restrictedToInputAssistanceChars" - [hasArrowKeys]="keypadService.elementComponent.elementModel.hasArrowKeys" - [hasBackspaceKey]="keypadService.elementComponent.elementModel.hasBackspaceKey" + [customKeys]="keypadService.elementComponent.elementModel.inputAssistanceCustomKeys | inputAssistanceCustomKeys" + [restrictToAllowedKeys]="!!keypadService.elementComponent.elementModel.restrictedToInputAssistanceChars" + [hasArrowKeys]="!!keypadService.elementComponent.elementModel.hasArrowKeys" + [hasBackspaceKey]="!!keypadService.elementComponent.elementModel.hasBackspaceKey" [hasReturnKey]="keypadService.elementComponent.elementModel | hasReturnKey" (backSpaceClicked)="keypadService.deleteCharacters.emit(true)" (keyClicked)="keypadService.enterKey.emit($event)" @@ -27,7 +27,7 @@ (@keyboardSlideInOut.done)="keyboardService.scrollElement()" [addInputAssistanceToKeyboard]="keyboardService.addInputAssistanceToKeyboard" [preset]="keyboardService.preset" - [customKeys]="keyboardService.elementComponent.elementModel.inputAssistanceCustomKeys" + [customKeys]="keyboardService.elementComponent.elementModel.inputAssistanceCustomKeys | inputAssistanceCustomKeys" (keyClicked)="keyboardService.enterKey.emit($event)" (backspaceClicked)="keyboardService.deleteCharacters.emit(true)"> </aspect-keyboard> diff --git a/projects/player/src/app/pipes/input-assistance-custom-keys.pipe.spec.ts b/projects/player/src/app/pipes/input-assistance-custom-keys.pipe.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..7bf49f1e53d82ff817142c107c907184bf0033ec --- /dev/null +++ b/projects/player/src/app/pipes/input-assistance-custom-keys.pipe.spec.ts @@ -0,0 +1,8 @@ +import { InputAssistanceCustomKeysPipe } from './input-assistance-custom-keys.pipe'; + +describe('InputAssistanceCustomKeysPipe', () => { + it('create an instance', () => { + const pipe = new InputAssistanceCustomKeysPipe(); + expect(pipe).toBeTruthy(); + }); +}); diff --git a/projects/player/src/app/pipes/input-assistance-custom-keys.pipe.ts b/projects/player/src/app/pipes/input-assistance-custom-keys.pipe.ts new file mode 100644 index 0000000000000000000000000000000000000000..722d659c482f78b13d97abac09f9133fa3779031 --- /dev/null +++ b/projects/player/src/app/pipes/input-assistance-custom-keys.pipe.ts @@ -0,0 +1,10 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ + name: 'inputAssistanceCustomKeys' +}) +export class InputAssistanceCustomKeysPipe implements PipeTransform { + transform(keys: unknown): string { + return keys as string; + } +}