UNPKG

ngx-mat-lib

Version:

A bunch of utilities and components to use in your Angular 7+ apps!

49 lines (48 loc) 3.7 kB
/** * @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==