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@412
|
29 [duration]="duration"
|
dev@402
|
30 ></ugly-tracks>`,
|
dev@402
|
31 changeDetection: ChangeDetectionStrategy.OnPush,
|
dev@402
|
32 providers: [
|
dev@402
|
33 {provide: VerticallyBounded, useExisting: CurveComponent },
|
dev@402
|
34 {provide: VerticalScaleRenderer, useExisting: CurveComponent},
|
dev@405
|
35 {provide: VerticalValueInspectorRenderer, useExisting: CurveComponent},
|
dev@405
|
36 {provide: WavesComponent, useExisting: CurveComponent}
|
dev@402
|
37 ]
|
dev@359
|
38 })
|
dev@402
|
39 export class CurveComponent implements VerticalValueInspectorRenderer {
|
dev@376
|
40 @Input() timeline: Timeline; // TODO refactor WaveComponents to have own Timeline, sharing a TimeContext
|
dev@372
|
41 @Input() onSeek: OnSeekHandler;
|
dev@372
|
42 @Input() width: number;
|
dev@396
|
43 @Input() curve: VectorFeature;
|
dev@368
|
44 @Input() colour: string;
|
dev@412
|
45 @Input() duration: number;
|
dev@402
|
46 @ViewChild(TracksComponent) tracksComponent: TracksComponent;
|
dev@402
|
47
|
dev@402
|
48 renderInspector(range: [number, number], unit?: string): void {
|
dev@402
|
49 this.tracksComponent.renderInspector(range, unit);
|
dev@402
|
50 }
|
dev@402
|
51
|
dev@402
|
52 get updatePosition(): OnSeekHandler {
|
dev@402
|
53 return this.tracksComponent.updatePosition;
|
dev@402
|
54 }
|
dev@402
|
55
|
dev@402
|
56 renderScale(range: [number, number]): void {
|
dev@402
|
57 this.tracksComponent.renderScale(range);
|
dev@402
|
58 }
|
dev@402
|
59
|
dev@402
|
60 get range(): [number, number] {
|
dev@402
|
61 return this.tracksComponent.range;
|
dev@402
|
62 }
|
dev@359
|
63 }
|