@orchestrator/core
Version:
> Core package of Orchestrator library.
53 lines • 6.94 kB
JavaScript
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==