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 }
|