From 9880a4cc7540187f7d850e583e31a487f41a211c Mon Sep 17 00:00:00 2001 From: jojohoch <joachim.hoch@iqb.hu-berlin.de> Date: Tue, 27 Jun 2023 09:21:48 +0200 Subject: [PATCH] Convert VisibilityRule to interface --- projects/common/models/section.ts | 5 +---- projects/common/models/visibility-rule.ts | 13 +++---------- .../visibility-rule-editor.component.html | 2 +- .../visibility-rule-editor.component.ts | 4 ++-- .../visibility-rules-dialog.component.ts | 2 +- 5 files changed, 8 insertions(+), 18 deletions(-) diff --git a/projects/common/models/section.ts b/projects/common/models/section.ts index 38364c590..7680bf55b 100644 --- a/projects/common/models/section.ts +++ b/projects/common/models/section.ts @@ -39,10 +39,7 @@ export class Section { if (sanitizedBlueprint.visibilityDelay) this.visibilityDelay = sanitizedBlueprint.visibilityDelay; if (sanitizedBlueprint.animatedVisibility) this.animatedVisibility = sanitizedBlueprint.animatedVisibility; if (sanitizedBlueprint.enableReHide) this.enableReHide = sanitizedBlueprint.enableReHide; - if (sanitizedBlueprint.visibilityRules) { - this.visibilityRules = sanitizedBlueprint.visibilityRules - .map(rule => new VisibilityRule(rule.id, rule.operator, rule.value)); - } + if (sanitizedBlueprint.visibilityRules) this.visibilityRules = sanitizedBlueprint.visibilityRules; this.elements = sanitizedBlueprint.elements?.map(element => ElementFactory.createElement({ ...element, diff --git a/projects/common/models/visibility-rule.ts b/projects/common/models/visibility-rule.ts index 1a1856d9e..d9c85e6c0 100644 --- a/projects/common/models/visibility-rule.ts +++ b/projects/common/models/visibility-rule.ts @@ -1,15 +1,8 @@ -export class VisibilityRule { +export interface VisibilityRule { id: string; operator: Operator; value: string; - - static operators = ['=', '!=', '<', '<=', '>', '>=']; - - constructor(id: string, operator: Operator, value: string) { - this.id = id; - this.operator = operator; - this.value = value; - } } -export type Operator = typeof VisibilityRule.operators[number]; +export const VisibilityRuleOperators = ['=', '!=', '<', '<=', '>', '>=']; +type Operator = typeof VisibilityRuleOperators[number]; diff --git a/projects/editor/src/app/components/dialogs/visibility-rules-dialog/visibility-rule-editor.component.html b/projects/editor/src/app/components/dialogs/visibility-rules-dialog/visibility-rule-editor.component.html index 978c61870..468d95a6b 100644 --- a/projects/editor/src/app/components/dialogs/visibility-rules-dialog/visibility-rule-editor.component.html +++ b/projects/editor/src/app/components/dialogs/visibility-rules-dialog/visibility-rule-editor.component.html @@ -14,7 +14,7 @@ <mat-label>{{'section.operator' | translate}}</mat-label> <mat-select [(ngModel)]="visibilityRule.operator" (ngModelChange)="visibilityRuleChange.emit(visibilityRule)"> - <mat-option *ngFor="let operator of VisibilityRule.operators" + <mat-option *ngFor="let operator of VisibilityRuleOperators" [value]="operator"> {{operator}} </mat-option> diff --git a/projects/editor/src/app/components/dialogs/visibility-rules-dialog/visibility-rule-editor.component.ts b/projects/editor/src/app/components/dialogs/visibility-rules-dialog/visibility-rule-editor.component.ts index 24547874b..10df8b6e9 100644 --- a/projects/editor/src/app/components/dialogs/visibility-rules-dialog/visibility-rule-editor.component.ts +++ b/projects/editor/src/app/components/dialogs/visibility-rules-dialog/visibility-rule-editor.component.ts @@ -1,7 +1,7 @@ import { Component, EventEmitter, Input, Output } from '@angular/core'; -import { VisibilityRule } from 'common/models/visibility-rule'; +import { VisibilityRule, VisibilityRuleOperators } from 'common/models/visibility-rule'; @Component({ selector: 'aspect-visibility-rule-editor', @@ -12,5 +12,5 @@ export class VisibilityRuleEditorComponent { @Input() visibilityRule!: VisibilityRule; @Output() visibilityRuleChange = new EventEmitter<VisibilityRule>(); - protected readonly VisibilityRule = VisibilityRule; + protected readonly VisibilityRuleOperators = VisibilityRuleOperators; } diff --git a/projects/editor/src/app/components/dialogs/visibility-rules-dialog/visibility-rules-dialog.component.ts b/projects/editor/src/app/components/dialogs/visibility-rules-dialog/visibility-rules-dialog.component.ts index 4775b0725..fd34cbfc2 100644 --- a/projects/editor/src/app/components/dialogs/visibility-rules-dialog/visibility-rules-dialog.component.ts +++ b/projects/editor/src/app/components/dialogs/visibility-rules-dialog/visibility-rules-dialog.component.ts @@ -30,7 +30,7 @@ export class VisibilityRulesDialogComponent { } addVisibilityRule(): void { - this.visibilityRules.push(new VisibilityRule('', '=', '')); + this.visibilityRules.push({ id: '', operator: '=', value: '' }); } deleteVisibilityRule(index: number): void { -- GitLab