UNPKG

ng-block-ui

Version:
71 lines 9.77 kB
import { Injectable } from '@angular/core'; import { ReplaySubject } from 'rxjs'; import { BlockUIActions } from '../constants/block-ui-actions.constant'; import { BlockUIDefaultName } from '../constants/block-ui-default-name.constant'; import * as i0 from "@angular/core"; export class BlockUIInstanceService { constructor() { this.blockUISettings = {}; this.blockUIInstances = {}; this.blockUISubject = new ReplaySubject(1); this.blockUIObservable = this.blockUISubject.asObservable(); this.blockUIObservable.subscribe(this.blockUIMiddleware.bind(this)); } getSettings() { return this.blockUISettings; } updateSettings(settings = {}) { this.blockUISettings = { ...this.blockUISettings, ...settings }; } decorate(name = BlockUIDefaultName) { const blockUI = { name, isActive: false, blockCount: 0, start: this.dispatch(this.blockUISubject, BlockUIActions.START, name), update: this.dispatch(this.blockUISubject, BlockUIActions.UPDATE, name), stop: this.dispatch(this.blockUISubject, BlockUIActions.STOP, name), reset: this.dispatch(this.blockUISubject, BlockUIActions.RESET, name), resetGlobal: this.dispatch(this.blockUISubject, BlockUIActions.RESET_GLOBAL, name), unsubscribe: this.dispatch(this.blockUISubject, BlockUIActions.UNSUBSCRIBE, name) }; this.blockUIInstances[name] = this.blockUIInstances[name] || blockUI; return blockUI; } observe() { return this.blockUIObservable; } clearInstance(instanceName) { this.dispatch(this.blockUISubject, BlockUIActions.RESET, instanceName); } blockUIMiddleware({ action, name }) { let isActive = null; switch (action) { case (BlockUIActions.START): isActive = true; break; case (BlockUIActions.STOP): case (BlockUIActions.RESET): isActive = false; break; } if (isActive !== null) { this.blockUIInstances[name].isActive = isActive; } } dispatch(subject, action, name = BlockUIDefaultName) { return (message) => { subject.next({ name, action, message }); }; } } BlockUIInstanceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BlockUIInstanceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); BlockUIInstanceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BlockUIInstanceService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BlockUIInstanceService, decorators: [{ type: Injectable }], ctorParameters: function () { return []; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stdWktaW5zdGFuY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9zZXJ2aWNlcy9ibG9jay11aS1pbnN0YW5jZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7O0FBT2pGLE1BQU0sT0FBTyxzQkFBc0I7SUFNakM7UUFMQSxvQkFBZSxHQUEwQixFQUFFLENBQUM7UUFDNUMscUJBQWdCLEdBQVEsRUFBRSxDQUFDO1FBQ25CLG1CQUFjLEdBQXVCLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFELHNCQUFpQixHQUFvQixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRzlFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFFRCxjQUFjLENBQUMsV0FBa0MsRUFBRTtRQUNqRCxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLEdBQUcsUUFBUSxFQUFFLENBQUM7SUFDbEUsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUFlLGtCQUFrQjtRQUN4QyxNQUFNLE9BQU8sR0FBRztZQUNkLElBQUk7WUFDSixRQUFRLEVBQUUsS0FBSztZQUNmLFVBQVUsRUFBRSxDQUFDO1lBQ2IsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQztZQUNyRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO1lBQ3ZFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7WUFDbkUsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQztZQUNyRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDO1lBQ2xGLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUM7U0FDckUsQ0FBQztRQUVmLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxDQUFDO1FBRXJFLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxZQUFvQjtRQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU8saUJBQWlCLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFnQjtRQUN0RCxJQUFJLFFBQVEsR0FBWSxJQUFJLENBQUM7UUFFN0IsUUFBUSxNQUFNLEVBQUU7WUFDZCxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztnQkFDekIsUUFBUSxHQUFHLElBQUksQ0FBQztnQkFDaEIsTUFBTTtZQUVSLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsS0FBSyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3pCLFFBQVEsR0FBRyxLQUFLLENBQUM7Z0JBQ2pCLE1BQU07U0FDVDtRQUVELElBQUksUUFBUSxLQUFLLElBQUksRUFBRTtZQUNyQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztTQUNqRDtJQUNILENBQUM7SUFFTyxRQUFRLENBQUMsT0FBMkIsRUFBRSxNQUFzQixFQUFFLE9BQWUsa0JBQWtCO1FBQ3JHLE9BQU8sQ0FBQyxPQUFhLEVBQVEsRUFBRTtZQUM3QixPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNYLElBQUk7Z0JBQ0osTUFBTTtnQkFDTixPQUFPO2FBQ1IsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs7bUhBdkVVLHNCQUFzQjt1SEFBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCbG9ja1VJQWN0aW9ucyB9IGZyb20gJy4uL2NvbnN0YW50cy9ibG9jay11aS1hY3Rpb25zLmNvbnN0YW50JztcbmltcG9ydCB7IEJsb2NrVUlEZWZhdWx0TmFtZSB9IGZyb20gJy4uL2NvbnN0YW50cy9ibG9jay11aS1kZWZhdWx0LW5hbWUuY29uc3RhbnQnO1xuaW1wb3J0IHsgTmdCbG9ja1VJIH0gZnJvbSAnLi4vbW9kZWxzL2Jsb2NrLXVpLm1vZGVsJztcbmltcG9ydCB7IEJsb2NrVUlTZXR0aW5ncyB9IGZyb20gJy4uL21vZGVscy9ibG9jay11aS1zZXR0aW5ncy5tb2RlbCc7XG5pbXBvcnQgeyBCbG9ja1VJRXZlbnQgfSBmcm9tICcuLi9tb2RlbHMvYmxvY2stdWktZXZlbnQubW9kZWwnO1xuXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBCbG9ja1VJSW5zdGFuY2VTZXJ2aWNlIHtcbiAgYmxvY2tVSVNldHRpbmdzOiBCbG9ja1VJU2V0dGluZ3MgfCBhbnkgPSB7fTtcbiAgYmxvY2tVSUluc3RhbmNlczogYW55ID0ge307XG4gIHByaXZhdGUgYmxvY2tVSVN1YmplY3Q6IFJlcGxheVN1YmplY3Q8YW55PiA9IG5ldyBSZXBsYXlTdWJqZWN0KDEpO1xuICBwcml2YXRlIGJsb2NrVUlPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmJsb2NrVUlTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuYmxvY2tVSU9ic2VydmFibGUuc3Vic2NyaWJlKHRoaXMuYmxvY2tVSU1pZGRsZXdhcmUuYmluZCh0aGlzKSk7XG4gIH1cblxuICBnZXRTZXR0aW5ncygpOiBCbG9ja1VJU2V0dGluZ3MgfCBhbnkge1xuICAgIHJldHVybiB0aGlzLmJsb2NrVUlTZXR0aW5ncztcbiAgfVxuXG4gIHVwZGF0ZVNldHRpbmdzKHNldHRpbmdzOiBCbG9ja1VJU2V0dGluZ3MgfCBhbnkgPSB7fSk6IHZvaWQge1xuICAgIHRoaXMuYmxvY2tVSVNldHRpbmdzID0geyAuLi50aGlzLmJsb2NrVUlTZXR0aW5ncywgLi4uc2V0dGluZ3MgfTtcbiAgfVxuXG4gIGRlY29yYXRlKG5hbWU6IHN0cmluZyA9IEJsb2NrVUlEZWZhdWx0TmFtZSk6IE5nQmxvY2tVSSB7XG4gICAgY29uc3QgYmxvY2tVSSA9IHtcbiAgICAgIG5hbWUsXG4gICAgICBpc0FjdGl2ZTogZmFsc2UsXG4gICAgICBibG9ja0NvdW50OiAwLFxuICAgICAgc3RhcnQ6IHRoaXMuZGlzcGF0Y2godGhpcy5ibG9ja1VJU3ViamVjdCwgQmxvY2tVSUFjdGlvbnMuU1RBUlQsIG5hbWUpLFxuICAgICAgdXBkYXRlOiB0aGlzLmRpc3BhdGNoKHRoaXMuYmxvY2tVSVN1YmplY3QsIEJsb2NrVUlBY3Rpb25zLlVQREFURSwgbmFtZSksXG4gICAgICBzdG9wOiB0aGlzLmRpc3BhdGNoKHRoaXMuYmxvY2tVSVN1YmplY3QsIEJsb2NrVUlBY3Rpb25zLlNUT1AsIG5hbWUpLFxuICAgICAgcmVzZXQ6IHRoaXMuZGlzcGF0Y2godGhpcy5ibG9ja1VJU3ViamVjdCwgQmxvY2tVSUFjdGlvbnMuUkVTRVQsIG5hbWUpLFxuICAgICAgcmVzZXRHbG9iYWw6IHRoaXMuZGlzcGF0Y2godGhpcy5ibG9ja1VJU3ViamVjdCwgQmxvY2tVSUFjdGlvbnMuUkVTRVRfR0xPQkFMLCBuYW1lKSxcbiAgICAgIHVuc3Vic2NyaWJlOiB0aGlzLmRpc3BhdGNoKHRoaXMuYmxvY2tVSVN1YmplY3QsIEJsb2NrVUlBY3Rpb25zLlVOU1VCU0NSSUJFLCBuYW1lKVxuICAgIH0gYXMgTmdCbG9ja1VJO1xuXG4gICAgdGhpcy5ibG9ja1VJSW5zdGFuY2VzW25hbWVdID0gdGhpcy5ibG9ja1VJSW5zdGFuY2VzW25hbWVdIHx8IGJsb2NrVUk7XG5cbiAgICByZXR1cm4gYmxvY2tVSTtcbiAgfVxuXG4gIG9ic2VydmUoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5ibG9ja1VJT2JzZXJ2YWJsZTtcbiAgfVxuXG4gIGNsZWFySW5zdGFuY2UoaW5zdGFuY2VOYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLmRpc3BhdGNoKHRoaXMuYmxvY2tVSVN1YmplY3QsIEJsb2NrVUlBY3Rpb25zLlJFU0VULCBpbnN0YW5jZU5hbWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBibG9ja1VJTWlkZGxld2FyZSh7IGFjdGlvbiwgbmFtZSB9OiBCbG9ja1VJRXZlbnQpOiB2b2lkIHtcbiAgICBsZXQgaXNBY3RpdmU6IGJvb2xlYW4gPSBudWxsO1xuXG4gICAgc3dpdGNoIChhY3Rpb24pIHtcbiAgICAgIGNhc2UgKEJsb2NrVUlBY3Rpb25zLlNUQVJUKTpcbiAgICAgICAgaXNBY3RpdmUgPSB0cnVlO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAoQmxvY2tVSUFjdGlvbnMuU1RPUCk6XG4gICAgICBjYXNlIChCbG9ja1VJQWN0aW9ucy5SRVNFVCk6XG4gICAgICAgIGlzQWN0aXZlID0gZmFsc2U7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmIChpc0FjdGl2ZSAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5ibG9ja1VJSW5zdGFuY2VzW25hbWVdLmlzQWN0aXZlID0gaXNBY3RpdmU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkaXNwYXRjaChzdWJqZWN0OiBSZXBsYXlTdWJqZWN0PGFueT4sIGFjdGlvbjogQmxvY2tVSUFjdGlvbnMsIG5hbWU6IHN0cmluZyA9IEJsb2NrVUlEZWZhdWx0TmFtZSk6IEZ1bmN0aW9uIHtcbiAgICByZXR1cm4gKG1lc3NhZ2U/OiBhbnkpOiB2b2lkID0+IHtcbiAgICAgIHN1YmplY3QubmV4dCh7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgbWVzc2FnZVxuICAgICAgfSk7XG4gICAgfTtcbiAgfVxufVxuIl19