annotate src/app/visualisations/curve/curve.component.ts @ 509:041468f553e1 tip master

Merge pull request #57 from LucasThompson/fix/session-stack-max-call-stack Fix accidental recursion in PersistentStack
author Lucas Thompson <LucasThompson@users.noreply.github.com>
date Mon, 27 Nov 2017 11:04:30 +0000
parents c39df81c4dae
children
rev   line source
dev@359 1 /**
dev@359 2 * Created by lucas on 30/05/2017.
dev@359 3 */
dev@366 4 import {
dev@366 5 ChangeDetectionStrategy,
dev@366 6 Component,
dev@402 7 Input,
dev@402 8 ViewChild
dev@378 9 } from '@angular/core';
dev@378 10 import {OnSeekHandler} from '../../playhead/PlayHeadHelpers';
dev@497 11 import {VectorFeature} from 'piper-js/one-shot';
dev@402 12 import {
dev@488 13 PlayheadManager,
dev@488 14 PlayheadRenderer,
dev@489 15 VerticallyLabelled,
dev@402 16 VerticalScaleRenderer,
dev@405 17 VerticalValueInspectorRenderer,
dev@405 18 WavesComponent
dev@402 19 } from '../waves-base.component';
dev@402 20 import {TracksComponent} from '../tracks/tracks.components';
dev@359 21
dev@359 22 @Component({
dev@359 23 selector: 'ugly-curve',
dev@402 24 template: `
dev@390 25 <ugly-tracks
dev@390 26 [timeline]="timeline"
dev@390 27 [width]="width"
dev@390 28 [onSeek]="onSeek"
dev@390 29 [colour]="colour"
dev@396 30 [tracks]="[curve]"
dev@412 31 [duration]="duration"
dev@402 32 ></ugly-tracks>`,
dev@402 33 changeDetection: ChangeDetectionStrategy.OnPush,
dev@402 34 providers: [
dev@489 35 {provide: VerticallyLabelled, useExisting: CurveComponent },
dev@402 36 {provide: VerticalScaleRenderer, useExisting: CurveComponent},
dev@405 37 {provide: VerticalValueInspectorRenderer, useExisting: CurveComponent},
dev@488 38 {provide: PlayheadRenderer, useExisting: CurveComponent },
dev@405 39 {provide: WavesComponent, useExisting: CurveComponent}
dev@402 40 ]
dev@359 41 })
dev@488 42 export class CurveComponent
dev@488 43 implements VerticalValueInspectorRenderer, PlayheadRenderer {
dev@488 44
dev@376 45 @Input() timeline: Timeline; // TODO refactor WaveComponents to have own Timeline, sharing a TimeContext
dev@372 46 @Input() onSeek: OnSeekHandler;
dev@372 47 @Input() width: number;
dev@396 48 @Input() curve: VectorFeature;
dev@368 49 @Input() colour: string;
dev@412 50 @Input() duration: number;
dev@402 51 @ViewChild(TracksComponent) tracksComponent: TracksComponent;
dev@402 52
dev@488 53 renderPlayhead(initialTime: number, colour: string): PlayheadManager {
dev@488 54 return this.tracksComponent.renderPlayhead(initialTime, colour);
dev@488 55 }
dev@488 56
dev@402 57 renderInspector(range: [number, number], unit?: string): void {
dev@402 58 this.tracksComponent.renderInspector(range, unit);
dev@402 59 }
dev@402 60
dev@402 61 get updatePosition(): OnSeekHandler {
dev@402 62 return this.tracksComponent.updatePosition;
dev@402 63 }
dev@402 64
dev@402 65 renderScale(range: [number, number]): void {
dev@402 66 this.tracksComponent.renderScale(range);
dev@402 67 }
dev@402 68
dev@489 69 get labels(): [number, number] {
dev@489 70 return this.tracksComponent.labels;
dev@402 71 }
dev@359 72 }