ng-block-ui
Version:
Angular Block UI
72 lines • 8.34 kB
JavaScript
import { Injectable } from '@angular/core';
import { BlockUIActions } from '../constants/block-ui-actions.constant';
import * as i0 from "@angular/core";
import * as i1 from "./block-ui-instance.service";
export class BlockUIService {
constructor(blockUIInstance) {
this.blockUIInstance = blockUIInstance;
this.globalDispatch = this.blockUIInstance.decorate();
}
/**
* Starts blocking for given BlockUI instance or instances
*/
start(target, message) {
this.dispatch(target, BlockUIActions.START, message);
}
/**
* Stops blocking for given BlockUI instance or instances
*/
stop(target) {
this.dispatch(target, BlockUIActions.STOP);
}
/**
* Reset blocking for given BlockUI instance or instances
*/
reset(target) {
this.dispatch(target, BlockUIActions.RESET);
}
/**
* Reset blocking for all BlockUI instances
*/
resetGlobal() {
this.globalDispatch.resetGlobal();
}
/**
* Updates message for given BlockUI instance or instances
*/
update(target, message) {
this.dispatch(target, BlockUIActions.UPDATE, message);
}
/**
* Unsubscribes for given BlockUI instance or instances
*/
unsubscribe(target) {
this.dispatch(target, BlockUIActions.UNSUBSCRIBE);
}
/**
* Checks if BlockUI is actively blocking
*/
isActive(target = null) {
const targets = target ? this.toArray(target) : null;
const instances = this.blockUIInstance.blockUIInstances;
return Object.keys(instances).some((key) => {
if (!targets) {
return instances[key].isActive;
}
return targets.indexOf(instances[key].name) >= 0 && instances[key].isActive;
});
}
dispatch(target = [], type, message) {
const instances = this.toArray(target);
instances.forEach(i => this.blockUIInstance.decorate(i)[type](message));
}
toArray(target = []) {
return typeof target === 'string' ? [target] : target;
}
}
BlockUIService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BlockUIService, deps: [{ token: i1.BlockUIInstanceService }], target: i0.ɵɵFactoryTarget.Injectable });
BlockUIService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BlockUIService });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BlockUIService, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: i1.BlockUIInstanceService }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stdWkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9zZXJ2aWNlcy9ibG9jay11aS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7QUFNeEUsTUFBTSxPQUFPLGNBQWM7SUFHekIsWUFDVSxlQUF1QztRQUF2QyxvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFIakQsbUJBQWMsR0FBYyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBSXhELENBQUM7SUFFTDs7TUFFRTtJQUNGLEtBQUssQ0FBQyxNQUF5QixFQUFFLE9BQWE7UUFDNUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O01BRUU7SUFDRixJQUFJLENBQUMsTUFBeUI7UUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7TUFFRTtJQUNGLEtBQUssQ0FBQyxNQUF5QjtRQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVEOztNQUVFO0lBQ0YsV0FBVztRQUNULElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVEOztNQUVFO0lBQ0YsTUFBTSxDQUFDLE1BQXlCLEVBQUUsT0FBWTtRQUM1QyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRDs7TUFFRTtJQUNGLFdBQVcsQ0FBQyxNQUF5QjtRQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOztNQUVFO0lBQ0YsUUFBUSxDQUFDLFNBQTRCLElBQUk7UUFDdkMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDckQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUV4RCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUU7WUFDakQsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDWixPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUM7YUFDaEM7WUFFRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQzlFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFFBQVEsQ0FBQyxTQUE0QixFQUFFLEVBQUUsSUFBWSxFQUFFLE9BQWE7UUFDMUUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRU8sT0FBTyxDQUFDLFNBQTRCLEVBQUU7UUFDNUMsT0FBTyxPQUFPLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN4RCxDQUFDOzsyR0F4RVUsY0FBYzsrR0FBZCxjQUFjOzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCbG9ja1VJQWN0aW9ucyB9IGZyb20gJy4uL2NvbnN0YW50cy9ibG9jay11aS1hY3Rpb25zLmNvbnN0YW50JztcbmltcG9ydCB7IEJsb2NrVUlJbnN0YW5jZVNlcnZpY2UgfSBmcm9tICcuL2Jsb2NrLXVpLWluc3RhbmNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmdCbG9ja1VJIH0gZnJvbSAnLi4vbW9kZWxzL2Jsb2NrLXVpLm1vZGVsJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQmxvY2tVSVNlcnZpY2Uge1xuICBnbG9iYWxEaXNwYXRjaDogTmdCbG9ja1VJID0gdGhpcy5ibG9ja1VJSW5zdGFuY2UuZGVjb3JhdGUoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGJsb2NrVUlJbnN0YW5jZTogQmxvY2tVSUluc3RhbmNlU2VydmljZVxuICApIHsgfVxuXG4gIC8qKlxuICAqIFN0YXJ0cyBibG9ja2luZyBmb3IgZ2l2ZW4gQmxvY2tVSSBpbnN0YW5jZSBvciBpbnN0YW5jZXNcbiAgKi9cbiAgc3RhcnQodGFyZ2V0OiBzdHJpbmcgfCBzdHJpbmdbXSwgbWVzc2FnZT86IGFueSk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGF0Y2godGFyZ2V0LCBCbG9ja1VJQWN0aW9ucy5TVEFSVCwgbWVzc2FnZSk7XG4gIH1cblxuICAvKipcbiAgKiBTdG9wcyBibG9ja2luZyBmb3IgZ2l2ZW4gQmxvY2tVSSBpbnN0YW5jZSBvciBpbnN0YW5jZXNcbiAgKi9cbiAgc3RvcCh0YXJnZXQ6IHN0cmluZyB8IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwYXRjaCh0YXJnZXQsIEJsb2NrVUlBY3Rpb25zLlNUT1ApO1xuICB9XG5cbiAgLyoqXG4gICogUmVzZXQgYmxvY2tpbmcgZm9yIGdpdmVuIEJsb2NrVUkgaW5zdGFuY2Ugb3IgaW5zdGFuY2VzXG4gICovXG4gIHJlc2V0KHRhcmdldDogc3RyaW5nIHwgc3RyaW5nW10pOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BhdGNoKHRhcmdldCwgQmxvY2tVSUFjdGlvbnMuUkVTRVQpO1xuICB9XG5cbiAgLyoqXG4gICogUmVzZXQgYmxvY2tpbmcgZm9yIGFsbCBCbG9ja1VJIGluc3RhbmNlc1xuICAqL1xuICByZXNldEdsb2JhbCgpOiB2b2lkIHtcbiAgICB0aGlzLmdsb2JhbERpc3BhdGNoLnJlc2V0R2xvYmFsKCk7XG4gIH1cblxuICAvKipcbiAgKiBVcGRhdGVzIG1lc3NhZ2UgZm9yIGdpdmVuIEJsb2NrVUkgaW5zdGFuY2Ugb3IgaW5zdGFuY2VzXG4gICovXG4gIHVwZGF0ZSh0YXJnZXQ6IHN0cmluZyB8IHN0cmluZ1tdLCBtZXNzYWdlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BhdGNoKHRhcmdldCwgQmxvY2tVSUFjdGlvbnMuVVBEQVRFLCBtZXNzYWdlKTtcbiAgfVxuXG4gIC8qKlxuICAqIFVuc3Vic2NyaWJlcyBmb3IgZ2l2ZW4gQmxvY2tVSSBpbnN0YW5jZSBvciBpbnN0YW5jZXNcbiAgKi9cbiAgdW5zdWJzY3JpYmUodGFyZ2V0OiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGF0Y2godGFyZ2V0LCBCbG9ja1VJQWN0aW9ucy5VTlNVQlNDUklCRSk7XG4gIH1cblxuICAvKipcbiAgKiBDaGVja3MgaWYgQmxvY2tVSSBpcyBhY3RpdmVseSBibG9ja2luZ1xuICAqL1xuICBpc0FjdGl2ZSh0YXJnZXQ6IHN0cmluZyB8IHN0cmluZ1tdID0gbnVsbCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHRhcmdldHMgPSB0YXJnZXQgPyB0aGlzLnRvQXJyYXkodGFyZ2V0KSA6IG51bGw7XG4gICAgY29uc3QgaW5zdGFuY2VzID0gdGhpcy5ibG9ja1VJSW5zdGFuY2UuYmxvY2tVSUluc3RhbmNlcztcblxuICAgIHJldHVybiBPYmplY3Qua2V5cyhpbnN0YW5jZXMpLnNvbWUoKGtleTogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoIXRhcmdldHMpIHtcbiAgICAgICAgcmV0dXJuIGluc3RhbmNlc1trZXldLmlzQWN0aXZlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGFyZ2V0cy5pbmRleE9mKGluc3RhbmNlc1trZXldLm5hbWUpID49IDAgJiYgaW5zdGFuY2VzW2tleV0uaXNBY3RpdmU7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGRpc3BhdGNoKHRhcmdldDogc3RyaW5nIHwgc3RyaW5nW10gPSBbXSwgdHlwZTogc3RyaW5nLCBtZXNzYWdlPzogYW55KSB7XG4gICAgY29uc3QgaW5zdGFuY2VzID0gdGhpcy50b0FycmF5KHRhcmdldCk7XG4gICAgaW5zdGFuY2VzLmZvckVhY2goaSA9PiB0aGlzLmJsb2NrVUlJbnN0YW5jZS5kZWNvcmF0ZShpKVt0eXBlXShtZXNzYWdlKSk7XG4gIH1cblxuICBwcml2YXRlIHRvQXJyYXkodGFyZ2V0OiBzdHJpbmcgfCBzdHJpbmdbXSA9IFtdKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0YXJnZXQgPT09ICdzdHJpbmcnID8gW3RhcmdldF0gOiB0YXJnZXQ7XG4gIH1cbn1cbiJdfQ==