Skip to content
Snippets Groups Projects
tooltip-properties-dialog.component.ts 2.16 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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;
      }
    }