All files / src/app/measure-surface measure-surface.component.ts

100% Statements 13/13
100% Branches 1/1
100% Functions 6/6
100% Lines 12/12

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65                                          1x   3x     3x   3x     3x 2x   1x 1x         3x       8x 1x                 7x                    
import { Component, OnInit } from '@angular/core';
import { Subscription } from 'rxjs';
import { CalibrationService } from 'src/shared/services/calibration.service';
import { LogService } from '../log/log.service';
import { ElementPosition, FrameSizeDefinition } from '@reflex/shared-types';
import { CommonModule } from '@angular/common';
import { MeasureGridComponent } from './measure-grid/measure-grid.component';
import { MeasureControlsComponent } from './measure-controls/measure-controls.component';
import { FormsModule } from '@angular/forms';
 
@Component({
  selector: 'app-measure-surface',
  templateUrl: './measure-surface.component.html',
  styleUrls: ['./measure-surface.component.scss'],
  imports: [
    CommonModule,
    FormsModule,
    MeasureControlsComponent,
    MeasureGridComponent
  ]
})
export class MeasureSurfaceComponent implements OnInit {
 
  public fullScreen = false;
 
  private frameSizeSubscription?: Subscription;
  private frameSize: FrameSizeDefinition = { top: 0, left: 0, width: 500, height: 400 };
 
  public constructor(private readonly calibrationService: CalibrationService, private readonly logService: LogService) { }
 
  public ngOnInit(): void {
    this.frameSizeSubscription = this.calibrationService.getFrameSize().subscribe((result) => {
      this.frameSize = result;
    }, (error) => {
      console.error(error);
      this.logService.sendErrorLog(`${error}`);
    });
  }
 
  public ngOnDestroy(): void {
    this.frameSizeSubscription?.unsubscribe();
  }
 
  public getViewStyle(): ElementPosition {
    if (this.fullScreen) {
      return {
        position: 'absolute',
        top: `${this.frameSize.top}px`,
        left: `${this.frameSize.left}px`,
        width: `${this.frameSize.width}px`,
        height: `${this.frameSize.height}px`
      };
    }
 
    return {
      position: 'relative',
      top: `0`,
      left: `0`,
      width: `100%`,
      height: `40vh`
    };
  }
 
}