UNPKG

@lotto24-angular/imports-orchestrator

Version:

Orchestrate dynamically imported components in Angular applications

36 lines 4.73 kB
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