dev@171: /** dev@171: * Created by lucast on 21/03/2017. dev@171: */ dev@232: import { dev@232: ChangeDetectionStrategy, dev@232: Component, dev@232: Input dev@236: } from '@angular/core'; dev@178: import Waves from 'waves-ui'; dev@236: import {AnalysisItem} from '../analysis-item/analysis-item.component'; dev@171: dev@171: @Component({ dev@171: selector: 'ugly-notebook-feed', dev@171: templateUrl: './notebook-feed.component.html', dev@232: styleUrls: ['./notebook-feed.component.css'], dev@232: changeDetection: ChangeDetectionStrategy.OnPush dev@171: }) dev@171: export class NotebookFeedComponent { dev@201: @Input() analyses: AnalysisItem[]; dev@201: @Input() set rootAudioUri(uri: string) { dev@201: this._rootAudioUri = uri; dev@171: } dev@171: dev@201: get rootAudioUri(): string { dev@201: return this._rootAudioUri; dev@171: } dev@201: private _rootAudioUri: string; dev@282: private timelines: Map; dev@181: dev@181: constructor() { dev@282: this.timelines = new Map(); dev@282: } dev@282: dev@282: getOrCreateTimeline(item: AnalysisItem): Timeline | void { dev@282: if (!item.hasSharedTimeline) { dev@282: return; dev@282: } dev@282: dev@282: if (this.timelines.has(item.rootAudioUri)) { dev@282: return this.timelines.get(item.rootAudioUri); dev@282: } else { dev@282: const timeline = new Waves.core.Timeline(); dev@282: this.timelines.set(item.rootAudioUri, timeline); dev@282: return timeline; dev@282: } dev@181: } dev@171: }