@lotto24-angular/imports-orchestrator
Version:
Orchestrate dynamically imported components in Angular applications
36 lines • 4.73 kB
JavaScript
import { Directive, Input } from '@angular/core';
import { ReplaySubject, share, Subject, takeUntil } from 'rxjs';
import * as i0 from "@angular/core";
export class ImportsOrchestratorIODirective {
constructor() {
this.destroy$ = new Subject();
this._inputs = new ReplaySubject(1);
this.inputs$ = this._inputs.pipe(takeUntil(this.destroy$), share());
this._outputs = new ReplaySubject(1);
this.outputs$ = this._outputs.pipe(takeUntil(this.destroy$), share());
}
set inputs(value) {
this._inputs.next(value ?? {});
}
set outputs(value) {
this._outputs.next(value ?? {});
}
ngOnDestroy() {
this.destroy$.next();
this.destroy$.complete();
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ImportsOrchestratorIODirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.6", type: ImportsOrchestratorIODirective, isStandalone: true, selector: "[importLifecycle]", inputs: { inputs: "inputs", outputs: "outputs" }, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ImportsOrchestratorIODirective, decorators: [{
type: Directive,
args: [{
selector: '[importLifecycle]',
standalone: true,
}]
}], propDecorators: { inputs: [{
type: Input
}], outputs: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LWlvLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvaW1wb3J0cy1vcmNoZXN0cmF0b3Ivc3JjL2xpYi9ob3N0LWRpcmVjdGl2ZS9pbXBvcnQtaW8uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBU2hFLE1BQU0sT0FBTyw4QkFBOEI7SUFKM0M7UUFPbUIsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDaEMsWUFBTyxHQUFHLElBQUksYUFBYSxDQUFjLENBQUMsQ0FBQyxDQUFDO1FBQzVDLFlBQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDekMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFDeEIsS0FBSyxFQUFFLENBQ1IsQ0FBQztRQUNjLGFBQVEsR0FBRyxJQUFJLGFBQWEsQ0FBYyxDQUFDLENBQUMsQ0FBQztRQUM3QyxhQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQzNDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQ3hCLEtBQUssRUFBRSxDQUNSLENBQUM7S0FnQkg7SUFkQyxJQUNXLE1BQU0sQ0FBQyxLQUF5QjtRQUN6QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELElBQ1csT0FBTyxDQUFDLEtBQXlCO1FBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs4R0E1QlUsOEJBQThCO2tHQUE5Qiw4QkFBOEI7OzJGQUE5Qiw4QkFBOEI7a0JBSjFDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQWlCWSxNQUFNO3NCQURoQixLQUFLO2dCQU1LLE9BQU87c0JBRGpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlcGxheVN1YmplY3QsIHNoYXJlLCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEltcG9ydE9ic2VydmFibGVDb21wb25lbnRJTyB9IGZyb20gJy4uL2ludGVyZmFjZSc7XG5cbmV4cG9ydCB0eXBlIENvbXBvbmVudElPID0geyBbaW5kZXg6IHN0cmluZ106IHVua25vd24gfTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2ltcG9ydExpZmVjeWNsZV0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJbXBvcnRzT3JjaGVzdHJhdG9ySU9EaXJlY3RpdmVcbiAgaW1wbGVtZW50cyBJbXBvcnRPYnNlcnZhYmxlQ29tcG9uZW50SU8sIE9uRGVzdHJveVxue1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IF9pbnB1dHMgPSBuZXcgUmVwbGF5U3ViamVjdDxDb21wb25lbnRJTz4oMSk7XG4gIHB1YmxpYyByZWFkb25seSBpbnB1dHMkID0gdGhpcy5faW5wdXRzLnBpcGUoXG4gICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgIHNoYXJlKClcbiAgKTtcbiAgcHVibGljIHJlYWRvbmx5IF9vdXRwdXRzID0gbmV3IFJlcGxheVN1YmplY3Q8Q29tcG9uZW50SU8+KDEpO1xuICBwdWJsaWMgcmVhZG9ubHkgb3V0cHV0cyQgPSB0aGlzLl9vdXRwdXRzLnBpcGUoXG4gICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgIHNoYXJlKClcbiAgKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGlucHV0cyh2YWx1ZTogQ29tcG9uZW50SU8gfCBudWxsKSB7XG4gICAgdGhpcy5faW5wdXRzLm5leHQodmFsdWUgPz8ge30pO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBvdXRwdXRzKHZhbHVlOiBDb21wb25lbnRJTyB8IG51bGwpIHtcbiAgICB0aGlzLl9vdXRwdXRzLm5leHQodmFsdWUgPz8ge30pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19