tixif-ngx-busy
Version:
Angular 2 Busy: show busy/loading indicators on any promise, or on any Observable's subscription
61 lines (55 loc) • 1.76 kB
text/typescript
/**
* @file Busy Config
* @author yumao<yuzhang.lille@gmail.com>
*/
import {Subscription} from 'rxjs/Subscription';
export class BusyConfig implements IBusyConfig {
template: string;
delay: number;
minDuration: number;
backdrop: boolean;
message: string;
wrapperClass: string;
constructor(config: IBusyConfig = {}) {
for (let option in BUSY_CONFIG_DEFAULTS) {
this[option] = config[option] != null ? config[option] : BUSY_CONFIG_DEFAULTS[option];
}
}
}
export interface IBusyConfig {
template?: string;
delay?: number;
minDuration?: number;
backdrop?: boolean;
message?: string;
wrapperClass?: string;
busy?: Promise<any> | Subscription | Array<Promise<any> | Subscription>
}
export const BUSY_CONFIG_DEFAULTS = {
template: `
<div class="ng-busy-default-wrapper">
<div class="ng-busy-default-sign">
<div class="ng-busy-default-spinner">
<div class="bar1"></div>
<div class="bar2"></div>
<div class="bar3"></div>
<div class="bar4"></div>
<div class="bar5"></div>
<div class="bar6"></div>
<div class="bar7"></div>
<div class="bar8"></div>
<div class="bar9"></div>
<div class="bar10"></div>
<div class="bar11"></div>
<div class="bar12"></div>
</div>
<div class="ng-busy-default-text">{{message}}</div>
</div>
</div>
`,
delay: 0,
minDuration: 0,
backdrop: true,
message: 'Please wait...',
wrapperClass: 'ng-busy'
};