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@402
|
15 VerticalValueInspectorRenderer
|
dev@402
|
16 } from '../waves-base.component';
|
dev@402
|
17 import {TracksComponent} from '../tracks/tracks.components';
|
dev@359
|
18
|
dev@359
|
19 @Component({
|
dev@359
|
20 selector: 'ugly-curve',
|
dev@402
|
21 template: `
|
dev@390
|
22 <ugly-tracks
|
dev@390
|
23 [timeline]="timeline"
|
dev@390
|
24 [width]="width"
|
dev@390
|
25 [onSeek]="onSeek"
|
dev@390
|
26 [colour]="colour"
|
dev@396
|
27 [tracks]="[curve]"
|
dev@402
|
28 ></ugly-tracks>`,
|
dev@402
|
29 changeDetection: ChangeDetectionStrategy.OnPush,
|
dev@402
|
30 providers: [
|
dev@402
|
31 {provide: VerticallyBounded, useExisting: CurveComponent },
|
dev@402
|
32 {provide: VerticalScaleRenderer, useExisting: CurveComponent},
|
dev@402
|
33 {provide: VerticalValueInspectorRenderer, useExisting: CurveComponent}
|
dev@402
|
34 ]
|
dev@359
|
35 })
|
dev@402
|
36 export class CurveComponent implements VerticalValueInspectorRenderer {
|
dev@376
|
37 @Input() timeline: Timeline; // TODO refactor WaveComponents to have own Timeline, sharing a TimeContext
|
dev@372
|
38 @Input() onSeek: OnSeekHandler;
|
dev@372
|
39 @Input() width: number;
|
dev@396
|
40 @Input() curve: VectorFeature;
|
dev@368
|
41 @Input() colour: string;
|
dev@402
|
42 @ViewChild(TracksComponent) tracksComponent: TracksComponent;
|
dev@402
|
43
|
dev@402
|
44 renderInspector(range: [number, number], unit?: string): void {
|
dev@402
|
45 this.tracksComponent.renderInspector(range, unit);
|
dev@402
|
46 }
|
dev@402
|
47
|
dev@402
|
48 get updatePosition(): OnSeekHandler {
|
dev@402
|
49 return this.tracksComponent.updatePosition;
|
dev@402
|
50 }
|
dev@402
|
51
|
dev@402
|
52 renderScale(range: [number, number]): void {
|
dev@402
|
53 this.tracksComponent.renderScale(range);
|
dev@402
|
54 }
|
dev@402
|
55
|
dev@402
|
56 get range(): [number, number] {
|
dev@402
|
57 return this.tracksComponent.range;
|
dev@402
|
58 }
|
dev@359
|
59 }
|