Mercurial > hg > ugly-duckling
annotate src/app/progress-spinner/progress-spinner.component.ts @ 236:53ea6406d601
Generate new project with latest @angular/cli, including Angular 4.
author | Lucas Thompson <dev@lucas.im> |
---|---|
date | Tue, 25 Apr 2017 20:01:09 +0100 |
parents | 1c1cc4ec183c |
children | cf4a17efb5d4 |
rev | line source |
---|---|
dev@115 | 1 /** |
dev@115 | 2 * Created by lucast on 14/03/2017. |
dev@115 | 3 */ |
dev@115 | 4 |
dev@115 | 5 |
dev@236 | 6 import {Component, Input} from '@angular/core'; |
dev@115 | 7 @Component({ |
dev@115 | 8 selector: 'ugly-progress-spinner', |
dev@115 | 9 template: ` |
dev@115 | 10 <div class="container" [hidden]="!isVisible"> |
dev@115 | 11 <md-spinner |
dev@115 | 12 class="spinner" |
dev@224 | 13 [attr.color]="'primary'" |
dev@224 | 14 [mode]="isDeterminate ? 'determinate' : 'indeterminate'" |
dev@224 | 15 [value]="currentProcess" |
dev@115 | 16 ></md-spinner> |
dev@115 | 17 </div> |
dev@115 | 18 `, |
dev@115 | 19 styles: [` |
dev@115 | 20 .container { |
dev@115 | 21 height: 40px; |
dev@115 | 22 width: 40px; |
dev@115 | 23 position: absolute; |
dev@197 | 24 top: calc(50% - 20px); |
dev@197 | 25 left: calc(50% - 20px); |
dev@115 | 26 } |
dev@224 | 27 |
dev@115 | 28 .spinner { |
dev@115 | 29 width: 100%; |
dev@115 | 30 height: 100%; |
dev@115 | 31 } |
dev@115 | 32 `] |
dev@115 | 33 }) |
dev@115 | 34 export class ProgressSpinnerComponent { |
dev@236 | 35 private currentProcess = 0; |
dev@224 | 36 |
dev@236 | 37 @Input() isVisible = true; |
dev@236 | 38 @Input() isDeterminate = false; |
dev@224 | 39 @Input() |
dev@224 | 40 set progress(value: number) { |
dev@224 | 41 if (value < 0) { |
dev@224 | 42 this.currentProcess = 0; |
dev@224 | 43 } else if (value > 100) { |
dev@224 | 44 this.currentProcess = 100; |
dev@224 | 45 } else { |
dev@224 | 46 this.currentProcess = value; |
dev@224 | 47 } |
dev@224 | 48 } |
dev@115 | 49 } |