ngx-mat-lib
Version:
A bunch of utilities and components to use in your Angular 7+ apps!
49 lines (48 loc) • 3.7 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Injectable } from "@angular/core";
import { Subject } from "rxjs";
export class XmatGlobalSpinnerService {
constructor() {
this._requests = 0;
this._spinnerSubj = new Subject();
// Here to avoid "used before declaration error"
this.spinnerState = this._spinnerSubj.asObservable();
}
/**
* @return {?}
*/
show() {
this._requests++;
this._spinnerSubj.next(/** @type {?} */ ({ show: true }));
}
/**
* @return {?}
*/
hide() {
if (this._requests > 0) {
this._requests--;
}
if (this._requests < 1) {
// Really necessary?
this._requests = 0;
this._spinnerSubj.next(/** @type {?} */ ({ show: false }));
}
}
}
XmatGlobalSpinnerService.decorators = [
{ type: Injectable }
];
/** @nocollapse */
XmatGlobalSpinnerService.ctorParameters = () => [];
if (false) {
/** @type {?} */
XmatGlobalSpinnerService.prototype.spinnerState;
/** @type {?} */
XmatGlobalSpinnerService.prototype._requests;
/** @type {?} */
XmatGlobalSpinnerService.prototype._spinnerSubj;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieG1hdC1nbG9iYWwtc3Bpbm5lci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LW1hdC1saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy94bWF0LWdsb2JhbC1zcGlubmVyL3htYXQtZ2xvYmFsLXNwaW5uZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsT0FBTyxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBR3pDLE1BQU0sT0FBTyx3QkFBd0I7SUFPakM7eUJBSG9CLENBQUM7NEJBQ3lCLElBQUksT0FBTyxFQUFnQjs7UUFJckUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO0tBQ3hEOzs7O0lBRUQsSUFBSTtRQUNBLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksbUJBQWUsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFDLEVBQUMsQ0FBQztLQUN0RDs7OztJQUVELElBQUk7UUFDQSxJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNwQjtRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEVBQUU7O1lBRXBCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1lBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxtQkFBZSxFQUFDLElBQUksRUFBRSxLQUFLLEVBQUMsRUFBQyxDQUFDO1NBQ3ZEO0tBQ0o7OztZQTNCSixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtTcGlubmVyU3RhdGV9IGZyb20gXCIuLi8uLi9tb2RlbHMveG1hdC1zcGlubmVyLXN0YXRlLm1vZGVsXCI7XG5pbXBvcnQge1N1YmplY3QsIE9ic2VydmFibGV9IGZyb20gXCJyeGpzXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBYbWF0R2xvYmFsU3Bpbm5lclNlcnZpY2Uge1xuXG4gICAgc3Bpbm5lclN0YXRlOiBPYnNlcnZhYmxlPFNwaW5uZXJTdGF0ZT47XG5cbiAgICBwcml2YXRlIF9yZXF1ZXN0cyA9IDA7XG4gICAgcHJpdmF0ZSBfc3Bpbm5lclN1Ymo6IFN1YmplY3Q8U3Bpbm5lclN0YXRlPiA9IG5ldyBTdWJqZWN0PFNwaW5uZXJTdGF0ZT4oKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICAvLyBIZXJlIHRvIGF2b2lkIFwidXNlZCBiZWZvcmUgZGVjbGFyYXRpb24gZXJyb3JcIlxuICAgICAgICB0aGlzLnNwaW5uZXJTdGF0ZSA9IHRoaXMuX3NwaW5uZXJTdWJqLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHNob3coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlcXVlc3RzKys7XG4gICAgICAgIHRoaXMuX3NwaW5uZXJTdWJqLm5leHQoPFNwaW5uZXJTdGF0ZT57c2hvdzogdHJ1ZX0pO1xuICAgIH1cblxuICAgIGhpZGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9yZXF1ZXN0cyA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuX3JlcXVlc3RzLS07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX3JlcXVlc3RzIDwgMSkge1xuICAgICAgICAgICAgLy8gUmVhbGx5IG5lY2Vzc2FyeT9cbiAgICAgICAgICAgIHRoaXMuX3JlcXVlc3RzID0gMDtcbiAgICAgICAgICAgIHRoaXMuX3NwaW5uZXJTdWJqLm5leHQoPFNwaW5uZXJTdGF0ZT57c2hvdzogZmFsc2V9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==