@neocomplexx/ngx-neo-loader
Version:
33 lines • 4.29 kB
JavaScript
import { Injectable } from '@angular/core';
import { Subject, timer } from 'rxjs';
import * as i0 from "@angular/core";
export class NgxNeoLoaderService {
constructor() {
this.DELAY_TIME = 500;
this.loaderSubject = new Subject();
this.loaderState = this.loaderSubject.asObservable();
}
show() {
const timerObs = timer(this.DELAY_TIME);
// subscribing to a observable returns a subscription object
const sub = timerObs.subscribe(t => this.loaderSubject.next({ showLoading: true }));
this.sub = sub;
return sub;
// this.loaderSubject.next(<LoaderState>{showLoading: true});
}
hide(sub = null) {
if (!sub && this.sub) {
this.sub.unsubscribe();
}
else if (sub) {
sub.unsubscribe();
}
this.loaderSubject.next({ showLoading: false });
}
}
/** @nocollapse */ NgxNeoLoaderService.ɵfac = function NgxNeoLoaderService_Factory(t) { return new (t || NgxNeoLoaderService)(); };
/** @nocollapse */ NgxNeoLoaderService.ɵprov = i0.ɵɵdefineInjectable({ token: NgxNeoLoaderService, factory: NgxNeoLoaderService.ɵfac });
/*@__PURE__*/ (function () { i0.ɵsetClassMetadata(NgxNeoLoaderService, [{
type: Injectable
}], function () { return []; }, null); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LW5lby1sb2FkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZW9jb21wbGV4eC9uZ3gtbmVvLWxvYWRlci8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtbmVvLWxvYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQWdCLE1BQU0sTUFBTSxDQUFDOztBQUdwRCxNQUFNLE9BQU8sbUJBQW1CO0lBUzVCO1FBUk8sZUFBVSxHQUFHLEdBQUcsQ0FBQztRQUVoQixrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFlLENBQUM7UUFFbkQsZ0JBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBSWhDLENBQUM7SUFFVixJQUFJO1FBQ1AsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4Qyw0REFBNEQ7UUFDNUQsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFjLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNqRyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLE9BQU8sR0FBRyxDQUFDO1FBQ1gsNkRBQTZEO0lBQ2pFLENBQUM7SUFFTSxJQUFJLENBQUMsTUFBb0IsSUFBSTtRQUNoQyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDbEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUMxQjthQUFNLElBQUksR0FBRyxFQUFFO1lBQ1osR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3JCO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQWMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNqRSxDQUFDOzt5R0EzQlEsbUJBQW1COzhFQUFuQixtQkFBbUIsV0FBbkIsbUJBQW1CO2tEQUFuQixtQkFBbUI7Y0FEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTG9hZGVyU3RhdGUgfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRpbWVyLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE5neE5lb0xvYWRlclNlcnZpY2Uge1xyXG4gICAgcHVibGljIERFTEFZX1RJTUUgPSA1MDA7XHJcblxyXG4gICAgcHJpdmF0ZSBsb2FkZXJTdWJqZWN0ID0gbmV3IFN1YmplY3Q8TG9hZGVyU3RhdGU+KCk7XHJcblxyXG4gICAgbG9hZGVyU3RhdGUgPSB0aGlzLmxvYWRlclN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgcHJpdmF0ZSBzdWI6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICAgIHB1YmxpYyBzaG93KCk6IFN1YnNjcmlwdGlvbiB7XHJcbiAgICAgICAgY29uc3QgdGltZXJPYnMgPSB0aW1lcih0aGlzLkRFTEFZX1RJTUUpO1xyXG4gICAgICAgIC8vIHN1YnNjcmliaW5nIHRvIGEgb2JzZXJ2YWJsZSByZXR1cm5zIGEgc3Vic2NyaXB0aW9uIG9iamVjdFxyXG4gICAgICAgIGNvbnN0IHN1YiA9IHRpbWVyT2JzLnN1YnNjcmliZSh0ID0+IHRoaXMubG9hZGVyU3ViamVjdC5uZXh0KDxMb2FkZXJTdGF0ZT57IHNob3dMb2FkaW5nOiB0cnVlIH0pKTtcclxuICAgICAgICB0aGlzLnN1YiA9IHN1YjtcclxuICAgICAgICByZXR1cm4gc3ViO1xyXG4gICAgICAgIC8vIHRoaXMubG9hZGVyU3ViamVjdC5uZXh0KDxMb2FkZXJTdGF0ZT57c2hvd0xvYWRpbmc6IHRydWV9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGlkZShzdWI6IFN1YnNjcmlwdGlvbiA9IG51bGwpIHtcclxuICAgICAgICBpZiAoIXN1YiAmJiB0aGlzLnN1Yikge1xyXG4gICAgICAgICAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoc3ViKSB7XHJcbiAgICAgICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmxvYWRlclN1YmplY3QubmV4dCg8TG9hZGVyU3RhdGU+eyBzaG93TG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19