annotate src/app/analysis-item/analysis-item.component.ts @ 285:2d7da410ba46

Introduce width Inputs to analysis items and waveform and observe for Dimension changes in notebook-feed.
author Lucas Thompson <dev@lucas.im>
date Thu, 04 May 2017 17:09:48 +0100
parents 53ea6406d601
children d17d5038b11a
rev   line source
dev@170 1 /**
dev@170 2 * Created by lucast on 21/03/2017.
dev@170 3 */
dev@231 4 import {
dev@231 5 ChangeDetectionStrategy,
dev@231 6 Component,
dev@231 7 Input,
dev@231 8 OnInit
dev@236 9 } from '@angular/core';
dev@170 10
dev@200 11 export interface AnalysisItem {
dev@200 12 rootAudioUri: string;
dev@200 13 hasSharedTimeline: boolean;
dev@200 14 isRoot: boolean;
dev@200 15 extractorKey: string;
dev@200 16 title?: string;
dev@200 17 description?: string;
dev@206 18 id?: string;
dev@224 19 progress?: number;
dev@170 20 }
dev@170 21
dev@170 22 @Component({
dev@170 23 selector: 'ugly-analysis-item',
dev@170 24 templateUrl: './analysis-item.component.html',
dev@231 25 styleUrls: ['./analysis-item.component.css'],
dev@231 26 changeDetection: ChangeDetectionStrategy.OnPush
dev@170 27 })
dev@224 28 export class AnalysisItemComponent implements OnInit {
dev@224 29
dev@189 30 @Input() timeline: Timeline;
dev@200 31 @Input() isActive: boolean;
dev@231 32 @Input() item: AnalysisItem;
dev@285 33 @Input() contentWidth: number;
dev@224 34 private hasProgressOnInit = false;
dev@224 35
dev@224 36 ngOnInit(): void {
dev@231 37 this.hasProgressOnInit = this.item.progress != null;
dev@224 38 }
dev@224 39
dev@224 40 isLoading(): boolean {
dev@231 41 return this.hasProgressOnInit && this.item.progress < 100;
dev@224 42 }
dev@170 43 }