File

src/app/app.component.ts

Implements

OnInit

Metadata

selector mav-root
styleUrls ./app.component.scss
templateUrl ./app.component.html

Index

Properties
Methods

Constructor

constructor(appUpdaterService: AppUpdaterService, elementRef: ElementRef, ga: GoogleAnalyticsService, tracking: TrackingState, snackbar: MatSnackBar)
Parameters :
Name Type Optional
appUpdaterService AppUpdaterService No
elementRef ElementRef<HTMLElement> No
ga GoogleAnalyticsService No
tracking TrackingState No
snackbar MatSnackBar No

Methods

ngOnInit
ngOnInit()
Returns : void

Properties

title
Type : string
Default value : 'make-a-vis-demo'
import { Component, isDevMode, ElementRef, OnInit  } from '@angular/core';

import { AppUpdaterService } from './services/app-updater.service';

import { MatSnackBar } from '@angular/material/snack-bar';
import { GoogleAnalyticsService } from 'ngx-google-analytics';
import { TrackingState, TrackingPopupComponent } from 'make-a-vis';
import { fromEvent } from 'rxjs';
import { tap, throttleTime } from 'rxjs/operators';

@Component({
  selector: 'mav-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit {
  title = 'make-a-vis-demo';
  constructor(private readonly appUpdaterService: AppUpdaterService, elementRef: ElementRef<HTMLElement>, ga: GoogleAnalyticsService,
    readonly tracking: TrackingState, readonly snackbar: MatSnackBar) {
    if (!isDevMode()) {
      appUpdaterService.checkForUpdates();
      appUpdaterService.askToUpdate();
    }

    const container = elementRef.nativeElement;
    fromEvent<MouseEvent>(container, 'mousemove').pipe(
      throttleTime(1000),
      tap((event) => {
        const label = `${event.clientX}_${event.clientY}_${container.clientWidth}_${container.clientHeight}`;
        ga.event('webpage', 'mousemove', label);
      })
    ).subscribe();
  }

  ngOnInit(): void {
    const snackBar = this.snackbar.openFromComponent(TrackingPopupComponent, {
      data: { preClose: () => { snackBar.dismiss(); } },
      duration: this.tracking.snapshot.allowTelemetry === undefined ? Infinity : 3000
    });
  }
}
<mav-main [theme]="'light-theme'"></mav-main>

./app.component.scss

/* Empty */
Legend
Html element
Component
Html element with directive

result-matching ""

    No results matching ""