From 72b27749f36cb454a70e150884a9e885dedd4cd5 Mon Sep 17 00:00:00 2001
From: rhenck <richard.henck@iqb.hu-berlin.de>
Date: Thu, 11 Jul 2024 16:33:33 +0200
Subject: [PATCH] [editor] Make TextEditor and sub-components standalone

So they work within standalone dialogs.
---
 projects/editor/src/app/app.module.ts         |  6 ++---
 .../components/util/combo-button.component.ts | 15 +++++++++++
 .../text-editor/rich-text-editor.component.ts | 25 +++++++++++++++++++
 3 files changed, 42 insertions(+), 4 deletions(-)

diff --git a/projects/editor/src/app/app.module.ts b/projects/editor/src/app/app.module.ts
index 8c6fbc5d9..502c70ec9 100644
--- a/projects/editor/src/app/app.module.ts
+++ b/projects/editor/src/app/app.module.ts
@@ -112,7 +112,6 @@ import { LikertRowLabelPipe } from './components/properties-panel/likert-row-lab
 import { LabelEditDialogComponent } from './components/dialogs/label-edit-dialog.component';
 import { GeogebraAppDefinitionDialogComponent } from './components/dialogs/geogebra-app-definition-dialog.component';
 import { SizeInputPanelComponent } from './components/util/size-input-panel.component';
-import { ComboButtonComponent } from './components/util/combo-button.component';
 import { DeleteReferenceDialogComponent } from './components/dialogs/delete-reference-dialog.component';
 import { SanitizationDialogComponent } from './components/dialogs/sanitization-dialog.component';
 import { CheckboxNodeviewComponent } from './text-editor/angular-node-views/checkbox-nodeview.component';
@@ -149,7 +148,6 @@ export const myCustomTooltipDefaults: MatTooltipDefaultOptions = {
     UnitViewComponent,
     CanvasComponent,
     ElementPropertiesPanelComponent,
-    RichTextEditorComponent,
     ToggleButtonNodeviewComponent,
     TextFieldNodeviewComponent,
     CheckboxNodeviewComponent,
@@ -182,7 +180,6 @@ export const myCustomTooltipDefaults: MatTooltipDefaultOptions = {
     GetAnchorIdsPipe,
     GetStateVariablePipe,
     ScrollPageIndexPipe,
-    ComboButtonComponent,
     DeleteReferenceDialogComponent,
     VisibilityRuleEditorComponent,
     StateVariablesDialogComponent,
@@ -239,7 +236,8 @@ export const myCustomTooltipDefaults: MatTooltipDefaultOptions = {
     ElementListComponent,
     SizeInputPanelComponent,
     MeasurePipe,
-    SectionComponent
+    SectionComponent,
+    RichTextEditorComponent
   ],
   providers: [
     { provide: APIService, useExisting: VeronaAPIService },
diff --git a/projects/editor/src/app/components/util/combo-button.component.ts b/projects/editor/src/app/components/util/combo-button.component.ts
index 30414da18..c012a28a8 100644
--- a/projects/editor/src/app/components/util/combo-button.component.ts
+++ b/projects/editor/src/app/components/util/combo-button.component.ts
@@ -1,9 +1,24 @@
 import {
   Component, ElementRef, EventEmitter, Input, Output, ViewChild
 } from '@angular/core';
+import { MatButtonModule } from '@angular/material/button';
+import { MatTooltipModule } from '@angular/material/tooltip';
+import { MatInputModule } from '@angular/material/input';
+import { MatSelectModule } from '@angular/material/select';
+import { NgForOf } from '@angular/common';
+import { MatIconModule } from '@angular/material/icon';
 
 @Component({
   selector: 'aspect-combo-button',
+  standalone: true,
+  imports: [
+    NgForOf,
+    MatButtonModule,
+    MatTooltipModule,
+    MatInputModule,
+    MatSelectModule,
+    MatIconModule
+  ],
   template: `
     <div class="wrapper">
       <button class="apply-button" mat-button [matTooltip]="tooltip"
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 ec28eaa7c..9293f7e3c 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
@@ -36,9 +36,34 @@ import ToggleButtonComponentExtension from './angular-node-views/toggle-button-c
 import DropListComponentExtension from './angular-node-views/drop-list-component-extension';
 import TextFieldComponentExtension from './angular-node-views/text-field-component-extension';
 import CheckboxComponentExtension from './angular-node-views/checkbox-component-extension';
+import { MatButtonModule } from '@angular/material/button';
+import { MatTooltipModule } from '@angular/material/tooltip';
+import { MatIconModule } from '@angular/material/icon';
+import { MatFormFieldModule } from '@angular/material/form-field';
+import { MatSelectModule } from '@angular/material/select';
+import { ComboButtonComponent } from 'editor/src/app/components/util/combo-button.component';
+import { NgIf } from '@angular/common';
+import { FormsModule } from '@angular/forms';
+import { MatInputModule } from '@angular/material/input';
+import { MatMenuModule } from '@angular/material/menu';
+import { NgxTiptapModule } from 'ngx-tiptap';
 
 @Component({
   selector: 'aspect-rich-text-editor',
+  standalone: true,
+  imports: [
+    NgIf,
+    MatButtonModule,
+    MatTooltipModule,
+    MatIconModule,
+    MatFormFieldModule,
+    MatSelectModule,
+    ComboButtonComponent,
+    FormsModule,
+    MatInputModule,
+    MatMenuModule,
+    NgxTiptapModule
+  ],
   templateUrl: './rich-text-editor.component.html',
   styleUrls: ['./rich-text-editor.component.scss']
 })
-- 
GitLab