UNPKG

@orchestrator/core

Version:
53 lines 6.94 kB
import { Injectable, Optional, SkipSelf, } from '@angular/core'; import { Subject } from 'rxjs'; import * as i0 from "@angular/core"; export class ComponentsRegistryService { constructor(parentComponentsRegistryService) { this.parentComponentsRegistryService = parentComponentsRegistryService; this._componentsReady$ = new Subject(); this.componentsReady$ = this._componentsReady$.asObservable(); this.childComponents = []; this.subChildComponents = []; } ngOnDestroy() { this.childComponents = []; this.subChildComponents = []; } waitFor(count) { this.count = count; this.childComponents = []; this.subChildComponents = []; } add(compRef) { if (this.parentComponentsRegistryService) { this.parentComponentsRegistryService.addChild(compRef); if (this.count === 0) { this.parentComponentsRegistryService.addSubChildren([]); } } } addChildren(compRefs) { if (this.parentComponentsRegistryService) { this.parentComponentsRegistryService.addSubChildren(compRefs); } } addChild(compRef) { this.childComponents.push(compRef); } addSubChildren(compRefs) { this.subChildComponents = this.subChildComponents.concat(compRefs); if (this.childComponents.length >= this.count) { this._componentsReady$.next(this.childComponents.concat(this.subChildComponents).filter(Boolean)); } } } /** @nocollapse */ /** @nocollapse */ ComponentsRegistryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: ComponentsRegistryService, deps: [{ token: ComponentsRegistryService, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Injectable }); /** @nocollapse */ /** @nocollapse */ ComponentsRegistryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: ComponentsRegistryService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: ComponentsRegistryService, decorators: [{ type: Injectable }], ctorParameters: function () { return [{ type: ComponentsRegistryService, decorators: [{ type: SkipSelf }, { type: Optional }] }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy1yZWdpc3RyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvcmVuZGVyLWl0ZW0vY29tcG9uZW50cy1yZWdpc3RyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxVQUFVLEVBRVYsUUFBUSxFQUNSLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUcvQixNQUFNLE9BQU8seUJBQXlCO0lBUXBDLFlBR1UsK0JBQTBEO1FBQTFELG9DQUErQixHQUEvQiwrQkFBK0IsQ0FBMkI7UUFWNUQsc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQXVCLENBQUM7UUFDL0QscUJBQWdCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBR2pELG9CQUFlLEdBQXdCLEVBQUUsQ0FBQztRQUMxQyx1QkFBa0IsR0FBd0IsRUFBRSxDQUFDO0lBTWxELENBQUM7SUFFSixXQUFXO1FBQ1QsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQWE7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsR0FBRyxDQUFDLE9BQTBCO1FBQzVCLElBQUksSUFBSSxDQUFDLCtCQUErQixFQUFFO1lBQ3hDLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFdkQsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLCtCQUErQixDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUN6RDtTQUNGO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUE2QjtRQUN2QyxJQUFJLElBQUksQ0FBQywrQkFBK0IsRUFBRTtZQUN4QyxJQUFJLENBQUMsK0JBQStCLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQy9EO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUE2QztRQUNwRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQTZCO1FBQzFDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRW5FLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUM3QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQ3JFLENBQUM7U0FDSDtJQUNILENBQUM7OzRKQXJEVSx5QkFBeUIsa0JBV08seUJBQXlCO2dLQVh6RCx5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVTswREFZa0MseUJBQXlCOzBCQUZqRSxRQUFROzswQkFDUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50UmVmLFxuICBJbmplY3RhYmxlLFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBTa2lwU2VsZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRzUmVnaXN0cnlTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfY29tcG9uZW50c1JlYWR5JCA9IG5ldyBTdWJqZWN0PENvbXBvbmVudFJlZjxhbnk+W10+KCk7XG4gIGNvbXBvbmVudHNSZWFkeSQgPSB0aGlzLl9jb21wb25lbnRzUmVhZHkkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgY291bnQ6IG51bWJlcjtcbiAgcHJpdmF0ZSBjaGlsZENvbXBvbmVudHM6IENvbXBvbmVudFJlZjxhbnk+W10gPSBbXTtcbiAgcHJpdmF0ZSBzdWJDaGlsZENvbXBvbmVudHM6IENvbXBvbmVudFJlZjxhbnk+W10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAU2tpcFNlbGYoKVxuICAgIEBPcHRpb25hbCgpXG4gICAgcHJpdmF0ZSBwYXJlbnRDb21wb25lbnRzUmVnaXN0cnlTZXJ2aWNlOiBDb21wb25lbnRzUmVnaXN0cnlTZXJ2aWNlLFxuICApIHt9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jaGlsZENvbXBvbmVudHMgPSBbXTtcbiAgICB0aGlzLnN1YkNoaWxkQ29tcG9uZW50cyA9IFtdO1xuICB9XG5cbiAgd2FpdEZvcihjb3VudDogbnVtYmVyKSB7XG4gICAgdGhpcy5jb3VudCA9IGNvdW50O1xuICAgIHRoaXMuY2hpbGRDb21wb25lbnRzID0gW107XG4gICAgdGhpcy5zdWJDaGlsZENvbXBvbmVudHMgPSBbXTtcbiAgfVxuXG4gIGFkZChjb21wUmVmOiBDb21wb25lbnRSZWY8YW55Pikge1xuICAgIGlmICh0aGlzLnBhcmVudENvbXBvbmVudHNSZWdpc3RyeVNlcnZpY2UpIHtcbiAgICAgIHRoaXMucGFyZW50Q29tcG9uZW50c1JlZ2lzdHJ5U2VydmljZS5hZGRDaGlsZChjb21wUmVmKTtcblxuICAgICAgaWYgKHRoaXMuY291bnQgPT09IDApIHtcbiAgICAgICAgdGhpcy5wYXJlbnRDb21wb25lbnRzUmVnaXN0cnlTZXJ2aWNlLmFkZFN1YkNoaWxkcmVuKFtdKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhZGRDaGlsZHJlbihjb21wUmVmczogQ29tcG9uZW50UmVmPGFueT5bXSkge1xuICAgIGlmICh0aGlzLnBhcmVudENvbXBvbmVudHNSZWdpc3RyeVNlcnZpY2UpIHtcbiAgICAgIHRoaXMucGFyZW50Q29tcG9uZW50c1JlZ2lzdHJ5U2VydmljZS5hZGRTdWJDaGlsZHJlbihjb21wUmVmcyk7XG4gICAgfVxuICB9XG5cbiAgYWRkQ2hpbGQoY29tcFJlZjogQ29tcG9uZW50UmVmPGFueT4gfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5jaGlsZENvbXBvbmVudHMucHVzaChjb21wUmVmKTtcbiAgfVxuXG4gIGFkZFN1YkNoaWxkcmVuKGNvbXBSZWZzOiBDb21wb25lbnRSZWY8YW55PltdKSB7XG4gICAgdGhpcy5zdWJDaGlsZENvbXBvbmVudHMgPSB0aGlzLnN1YkNoaWxkQ29tcG9uZW50cy5jb25jYXQoY29tcFJlZnMpO1xuXG4gICAgaWYgKHRoaXMuY2hpbGRDb21wb25lbnRzLmxlbmd0aCA+PSB0aGlzLmNvdW50KSB7XG4gICAgICB0aGlzLl9jb21wb25lbnRzUmVhZHkkLm5leHQoXG4gICAgICAgIHRoaXMuY2hpbGRDb21wb25lbnRzLmNvbmNhdCh0aGlzLnN1YkNoaWxkQ29tcG9uZW50cykuZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==