annotate src/app/visualisations/tracks/tracks.components.ts @ 418:b10e954c4ddd

Update dependencies
author Lucas Thompson <dev@lucas.im>
date Tue, 06 Jun 2017 13:15:05 +0100
parents 3ace7672638b
children 64ed45a0bad3
rev   line source
dev@372 1 /**
dev@372 2 * Created by lucas on 30/05/2017.
dev@372 3 */
dev@390 4 import {
dev@392 5 InspectableVerticallyBoundedComponent,
dev@390 6 VerticallyBounded,
dev@392 7 VerticalScaleRenderer,
dev@405 8 VerticalValueInspectorRenderer, WavesComponent,
dev@390 9 } from '../waves-base.component';
dev@372 10 import {
dev@372 11 ChangeDetectionStrategy,
dev@372 12 Component,
dev@372 13 Input,
dev@378 14 } from '@angular/core';
dev@378 15 import {TracksFeature} from 'piper/HigherLevelUtilities';
dev@372 16 import Waves from 'waves-ui-piper';
dev@378 17 import {generatePlotData, PlotLayerData} from '../FeatureUtilities';
dev@372 18
dev@372 19 @Component({
dev@372 20 selector: 'ugly-tracks',
dev@372 21 templateUrl: '../waves-template.html',
dev@372 22 styleUrls: ['../waves-template.css'],
dev@390 23 changeDetection: ChangeDetectionStrategy.OnPush,
dev@392 24 providers: [
dev@392 25 {provide: VerticallyBounded, useExisting: TracksComponent },
dev@392 26 {provide: VerticalScaleRenderer, useExisting: TracksComponent},
dev@392 27 {provide: VerticalValueInspectorRenderer, useExisting: TracksComponent},
dev@405 28 {provide: WavesComponent, useExisting: TracksComponent}
dev@392 29 ],
dev@372 30 })
dev@390 31 export class TracksComponent
dev@392 32 extends InspectableVerticallyBoundedComponent<TracksFeature> {
dev@390 33
dev@404 34 private currentState: PlotLayerData;
dev@372 35
dev@372 36 @Input() set tracks(input: TracksFeature) {
dev@383 37 this.feature = input;
dev@372 38 }
dev@372 39
dev@390 40 get range(): [number, number] {
dev@404 41 return this.currentState && this.currentState.data.length > 0 ?
dev@404 42 this.currentState.yDomain : null;
dev@390 43 }
dev@390 44
dev@383 45 protected get featureLayers(): Layer[] {
dev@383 46 this.currentState = generatePlotData(this.feature);
dev@404 47 return this.currentState.data.map(feature => new Waves.helpers.LineLayer(
dev@404 48 feature.points, {
dev@383 49 color: this.colour,
dev@383 50 height: this.height,
dev@404 51 yDomain: this.currentState.yDomain
dev@383 52 })
dev@383 53 );
dev@383 54 }
dev@372 55
dev@383 56 protected get postAddMap() {
dev@383 57 return (layer, index) => {
dev@404 58 layer.start = this.currentState.data[index].startTime;
dev@404 59 layer.duration = this.currentState.data[index].duration;
dev@383 60 layer.update();
dev@383 61 };
dev@372 62 }
dev@372 63 }