redoc/lib/components/LoadingBar/loading-bar.ts

45 lines
865 B
TypeScript
Raw Normal View History

2016-11-23 02:23:32 +03:00
'use strict';
2016-12-02 12:59:29 +03:00
import { Input, HostBinding, Component, OnChanges } from '@angular/core';
2016-11-23 02:23:32 +03:00
@Component({
selector: 'loading-bar',
template: `
<span [style.width]='progress + "%"'> </span>
`,
styles: [`
:host {
position: fixed;
top: 0;
left: 0;
right: 0;
display: block;
height: 5px;
z-index: 100;
}
span {
display: block;
position: absolute;
left: 0;
top: 0;
bottom: 0;
right: attr(progress percentage);
background-color: #5f7fc3;
transition: right 0.2s linear;
}
2016-12-02 12:59:29 +03:00
`]
2016-11-23 02:23:32 +03:00
})
2016-12-02 12:59:29 +03:00
export class LoadingBar implements OnChanges {
2016-11-23 02:23:32 +03:00
@Input() progress:number = 0;
@HostBinding('style.display') display = 'block';
ngOnChanges(ch) {
if (ch.progress.currentValue === 100) {
setTimeout(() => {
this.display = 'none';
}, 500);
}
}
}