diff --git a/projects/editor/src/app/components/dialogs/rich-text-edit-dialog.component.ts b/projects/editor/src/app/components/dialogs/rich-text-edit-dialog.component.ts index b94e7c9ef5c8d5cac36a76fda4d1acdbc698973e..366cd8390e3ac81237936e65ffd8a62bae580ce8 100644 --- a/projects/editor/src/app/components/dialogs/rich-text-edit-dialog.component.ts +++ b/projects/editor/src/app/components/dialogs/rich-text-edit-dialog.component.ts @@ -1,24 +1,25 @@ import { Component, Inject } from '@angular/core'; import { MAT_DIALOG_DATA } from '@angular/material/dialog'; +import { ClozeDocument } from '../../../../../common/models/uI-element'; @Component({ selector: 'app-rich-text-edit-dialog', template: ` <mat-dialog-content> - <app-rich-text-editor [(text)]="data.text" + <app-rich-text-editor [(content)]="data.content" [clozeMode]="data.clozeMode" [defaultFontSize]="data.defaultFontSize"> </app-rich-text-editor> </mat-dialog-content> <mat-dialog-actions> - <button mat-button [mat-dialog-close]="data.text">{{'save' | translate }}</button> + <button mat-button [mat-dialog-close]="data.content">{{'save' | translate }}</button> <button mat-button mat-dialog-close>{{'cancel' | translate }}</button> </mat-dialog-actions> ` }) export class RichTextEditDialogComponent { constructor(@Inject(MAT_DIALOG_DATA) public data: { - text: string, + content: string | Record<string, any>, defaultFontSize: number, clozeMode: boolean }) { } } diff --git a/projects/editor/src/app/services/dialog.service.ts b/projects/editor/src/app/services/dialog.service.ts index c38e887a06bb6e48f856d185e3809a73719f3e4d..6ad291ec27030e8d09d86213927ccc802855664b 100644 --- a/projects/editor/src/app/services/dialog.service.ts +++ b/projects/editor/src/app/services/dialog.service.ts @@ -10,6 +10,7 @@ import { PlayerEditDialogComponent } from '../components/dialogs/player-edit-dia import { LikertColumnEditDialogComponent } from '../components/dialogs/likert-column-edit-dialog.component'; import { LikertRowEditDialogComponent } from '../components/dialogs/likert-row-edit-dialog.component'; import { + ClozeDocument, DragNDropValueObject, LikertColumn, PlayerProperties } from '../../../../common/models/uI-element'; import { DropListOptionEditDialogComponent } from '../components/dialogs/drop-list-option-edit-dialog.component'; @@ -50,15 +51,15 @@ export class DialogService { showRichTextEditDialog(text: string, defaultFontSize: number): Observable<string> { const dialogRef = this.dialog.open(RichTextEditDialogComponent, { - data: { text, defaultFontSize }, + data: { content: text, defaultFontSize }, autoFocus: false }); return dialogRef.afterClosed(); } - showClozeTextEditDialog(text: string): Observable<string> { + showClozeTextEditDialog(document: ClozeDocument, defaultFontSize: number): Observable<string> { const dialogRef = this.dialog.open(RichTextEditDialogComponent, { - data: { text, clozeMode: true }, + data: { content: document, defaultFontSize, clozeMode: true }, autoFocus: false }); return dialogRef.afterClosed(); diff --git a/projects/editor/src/app/text-editor/rich-text-editor.component.html b/projects/editor/src/app/text-editor/rich-text-editor.component.html index e6c0c563ccfd70cdee7b66d9d31b9a7ed6c0281e..17b67e6ad75d6c70fd37a228ffef722f0b6a520e 100644 --- a/projects/editor/src/app/text-editor/rich-text-editor.component.html +++ b/projects/editor/src/app/text-editor/rich-text-editor.component.html @@ -259,8 +259,8 @@ </button> </div> </div> -<tiptap-editor [editor]="editor" [ngModel]="text" +<tiptap-editor [editor]="editor" [ngModel]="content" [outputFormat]="clozeMode ? 'json' : 'html'" [style.font-size.px]="defaultFontSize" - (ngModelChange)="textChange.emit($event)"> + (ngModelChange)="contentChange.emit($event)"> </tiptap-editor> diff --git a/projects/editor/src/app/text-editor/rich-text-editor.component.ts b/projects/editor/src/app/text-editor/rich-text-editor.component.ts index 77feb20cdf11a7996197f00ba66906b2cfcb2951..63544c66eb5d09f2f529d318a0e9175c79d7a65f 100644 --- a/projects/editor/src/app/text-editor/rich-text-editor.component.ts +++ b/projects/editor/src/app/text-editor/rich-text-editor.component.ts @@ -16,15 +16,17 @@ import { Image } from '@tiptap/extension-image'; import { Blockquote } from '@tiptap/extension-blockquote'; import { Indent } from './extensions/indent'; import { HangingIndent } from './extensions/hanging-indent'; -import { paragraphExtension } from './extensions/paragraph-extension'; +import { ParagraphExtension } from './extensions/paragraph-extension'; import { FontSizeExtension } from './extensions/font-size'; import { BulletListExtension } from './extensions/bullet-list'; import { OrderedListExtension } from './extensions/orderedList-extension'; + import { FileService } from '../services/file.service'; -import ToggleButtonComponentExtension from './node-views/toggle-button-component-extension'; -import DropListComponentExtension from './node-views/drop-list-component-extension'; -import TextFieldComponentExtension from './node-views/text-field-component-extension'; +import ToggleButtonComponentExtension from './angular-node-views/toggle-button-component-extension'; +import DropListComponentExtension from './angular-node-views/drop-list-component-extension'; +import TextFieldComponentExtension from './angular-node-views/text-field-component-extension'; +import { ClozeDocument } from '../../../../common/models/uI-element'; @Component({ selector: 'app-rich-text-editor', @@ -33,10 +35,10 @@ import TextFieldComponentExtension from './node-views/text-field-component-exten encapsulation: ViewEncapsulation.None }) export class RichTextEditorComponent implements AfterViewInit { - @Input() text!: string; + @Input() content!: string | Record<string, any>; @Input() defaultFontSize!: number; @Input() clozeMode: boolean = false; - @Output() textChange = new EventEmitter<string>(); + @Output() contentChange = new EventEmitter<string | Record<string, any>>(); selectedFontColor = 'lightgrey'; selectedHighlightColor = 'lightgrey';