From c4b982b6495162d4b123f34697298abe2e93b0ff Mon Sep 17 00:00:00 2001
From: rhenck <richard.henck@iqb.hu-berlin.de>
Date: Fri, 3 Sep 2021 14:00:59 +0200
Subject: [PATCH] [editor] Add text formatting for checkbox and radio labels

---
 .../common/element-components/checkbox.component.ts   |  2 +-
 .../radio-button-group.component.ts                   |  2 +-
 projects/editor/src/app/unit.service.ts               | 11 +++++++++--
 3 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/projects/common/element-components/checkbox.component.ts b/projects/common/element-components/checkbox.component.ts
index 1554408cd..ceae5c504 100644
--- a/projects/common/element-components/checkbox.component.ts
+++ b/projects/common/element-components/checkbox.component.ts
@@ -16,7 +16,7 @@ import { FormElementComponent } from '../form-element-component.directive';
                   [style.font-weight]="elementModel.bold ? 'bold' : ''"
                   [style.font-style]="elementModel.italic ? 'italic' : ''"
                   [style.text-decoration]="elementModel.underline ? 'underline' : ''">
-      {{elementModel.label}}
+      <div [innerHTML]="elementModel.label"></div>
     </mat-checkbox>
   `
 })
diff --git a/projects/common/element-components/radio-button-group.component.ts b/projects/common/element-components/radio-button-group.component.ts
index db537c866..c7f07e508 100644
--- a/projects/common/element-components/radio-button-group.component.ts
+++ b/projects/common/element-components/radio-button-group.component.ts
@@ -14,7 +14,7 @@ import { FormElementComponent } from '../form-element-component.directive';
            [style.font-weight]="elementModel.bold ? 'bold' : ''"
            [style.font-style]="elementModel.italic ? 'italic' : ''"
            [style.text-decoration]="elementModel.underline ? 'underline' : ''">
-          <label id="radio-group-label">{{elementModel.label}}</label>
+          <label [innerHTML]="elementModel.label" id="radio-group-label"></label>
           <mat-radio-group aria-labelledby="radio-group-label" fxLayout="{{elementModel.alignment}}"
                            [formControl]="elementFormControl">
               <mat-radio-button *ngFor="let option of elementModel.options" [value]="option">
diff --git a/projects/editor/src/app/unit.service.ts b/projects/editor/src/app/unit.service.ts
index 4b21f4a05..5c1860edc 100644
--- a/projects/editor/src/app/unit.service.ts
+++ b/projects/editor/src/app/unit.service.ts
@@ -260,9 +260,7 @@ export class UnitService {
   showDefaultEditDialog(element: UnitUIElement): void {
     switch (element.type) {
       case 'button':
-      case 'checkbox':
       case 'dropdown':
-      case 'radio':
         this.dialogService.showTextEditDialog((element as any).label, false).subscribe((result: string) => {
           if (result) {
             this.updateElementProperty([element], 'label', result);
@@ -289,6 +287,15 @@ export class UnitService {
             this.updateElementProperty([element], 'value', result);
           }
         });
+        break;
+      case 'checkbox':
+      case 'radio':
+        this.dialogService.showRichTextEditDialog((element as any).label).subscribe((result: string) => {
+          if (result) {
+            this.updateElementProperty([element], 'label', result);
+          }
+        });
+        break;
       // no default
     }
   }
-- 
GitLab