Skip to content
Snippets Groups Projects
tooltip-properties-dialog.component.ts 2.16 KiB
Newer Older
import { Component, Inject } from '@angular/core';
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
import { TooltipPosition } from 'common/models/elements/element';

@Component({
  selector: 'aspect-tooltip-properties-dialog',
  template: `
    <mat-dialog-content>
      <div class="fx-column-start-stretch">
        <mat-form-field>
          <mat-label>{{'propertiesPanel.tooltipText' | translate}}</mat-label>
          <input matInput
                 [(ngModel)]="tooltipText">
        </mat-form-field>
        <mat-form-field appearance="fill">
          <mat-label>{{'propertiesPanel.tooltipPosition' | translate }}</mat-label>
          <mat-select [(ngModel)]="tooltipPosition">
            <mat-option *ngFor="let option of ['left', 'right', 'above', 'below']"
                        [value]="option">
              {{ 'propertiesPanel.' + option | translate }}
            </mat-option>
          </mat-select>
        </mat-form-field>
      </div>
    </mat-dialog-content>
    <mat-dialog-actions>
      <button mat-button
              [disabled]="!tooltipText"
              [mat-dialog-close]="{ tooltipText, tooltipPosition, action: 'save' }">
        {{'save' | translate }}
      </button>
      <button *ngIf="!newTooltip"
              mat-button
              [mat-dialog-close]="{ tooltipText, tooltipPosition, action: 'delete' }">
        {{'delete' | translate }}
      </button>
      <button mat-button mat-dialog-close>{{'cancel' | translate }}</button>
    </mat-dialog-actions>
    `,
  styles: [`
    .fx-column-start-stretch {
      box-sizing: border-box;
      display: flex;
      flex-direction: column;
      justify-content: flex-start;
      align-items: stretch;}
  `]
})
export class TooltipPropertiesDialogComponent {
  tooltipText: string;
  tooltipPosition: TooltipPosition;
  newTooltip: boolean;
  constructor(@Inject(MAT_DIALOG_DATA) private data: {
    tooltipText: string | undefined
    tooltipPosition: TooltipPosition | undefined
  }) {
    this.tooltipText = data.tooltipText || '';
    this.tooltipPosition = data.tooltipPosition || 'below';
    this.newTooltip = data.tooltipText === undefined || data.tooltipPosition === undefined;
  }
}