annotate src/app/visualisations/curve/curve.component.ts @ 405:3ace7672638b

Angular DI can't figure out these are derived from WavesComponent. Add provider for base.
author Lucas Thompson <dev@lucas.im>
date Sun, 04 Jun 2017 20:15:20 +0100
parents f9d5006f76e1
children 89674c064cda
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@396 11 import {VectorFeature} from 'piper/HigherLevelUtilities';
dev@402 12 import {
dev@402 13 VerticallyBounded,
dev@402 14 VerticalScaleRenderer,
dev@405 15 VerticalValueInspectorRenderer,
dev@405 16 WavesComponent
dev@402 17 } from '../waves-base.component';
dev@402 18 import {TracksComponent} from '../tracks/tracks.components';
dev@359 19
dev@359 20 @Component({
dev@359 21 selector: 'ugly-curve',
dev@402 22 template: `
dev@390 23 <ugly-tracks
dev@390 24 [timeline]="timeline"
dev@390 25 [width]="width"
dev@390 26 [onSeek]="onSeek"
dev@390 27 [colour]="colour"
dev@396 28 [tracks]="[curve]"
dev@402 29 ></ugly-tracks>`,
dev@402 30 changeDetection: ChangeDetectionStrategy.OnPush,
dev@402 31 providers: [
dev@402 32 {provide: VerticallyBounded, useExisting: CurveComponent },
dev@402 33 {provide: VerticalScaleRenderer, useExisting: CurveComponent},
dev@405 34 {provide: VerticalValueInspectorRenderer, useExisting: CurveComponent},
dev@405 35 {provide: WavesComponent, useExisting: CurveComponent}
dev@402 36 ]
dev@359 37 })
dev@402 38 export class CurveComponent implements VerticalValueInspectorRenderer {
dev@376 39 @Input() timeline: Timeline; // TODO refactor WaveComponents to have own Timeline, sharing a TimeContext
dev@372 40 @Input() onSeek: OnSeekHandler;
dev@372 41 @Input() width: number;
dev@396 42 @Input() curve: VectorFeature;
dev@368 43 @Input() colour: string;
dev@402 44 @ViewChild(TracksComponent) tracksComponent: TracksComponent;
dev@402 45
dev@402 46 renderInspector(range: [number, number], unit?: string): void {
dev@402 47 this.tracksComponent.renderInspector(range, unit);
dev@402 48 }
dev@402 49
dev@402 50 get updatePosition(): OnSeekHandler {
dev@402 51 return this.tracksComponent.updatePosition;
dev@402 52 }
dev@402 53
dev@402 54 renderScale(range: [number, number]): void {
dev@402 55 this.tracksComponent.renderScale(range);
dev@402 56 }
dev@402 57
dev@402 58 get range(): [number, number] {
dev@402 59 return this.tracksComponent.range;
dev@402 60 }
dev@359 61 }