ng-dynamic-component
Version:
> Dynamic components with full life-cycle support for inputs and outputs
22 lines • 3.04 kB
JavaScript
import { isObservable } from 'rxjs';
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
/** @internal */
export class ClassicComponentIO {
setInput(componentRef, name, value) {
componentRef.setInput(name, value);
}
getOutput(componentRef, name) {
const output = componentRef.instance[name];
if (!isObservable(output)) {
throw new Error(`Component ${name} is not an output!`);
}
return output;
}
}
/** @nocollapse */ ClassicComponentIO.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ClassicComponentIO, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
/** @nocollapse */ ClassicComponentIO.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ClassicComponentIO });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ClassicComponentIO, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NpYy1jb21wb25lbnQtaW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1keW5hbWljLWNvbXBvbmVudC9zcmMvbGliL2NvbXBvbmVudC1pby9jbGFzc2ljLWNvbXBvbmVudC1pby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRWhELE9BQU8sRUFBZ0IsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUV6RCxnQkFBZ0I7QUFFaEIsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixRQUFRLENBQ04sWUFBNkIsRUFDN0IsSUFBTyxFQUNQLEtBQVc7UUFFWCxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsU0FBUyxDQUNQLFlBQTZCLEVBQzdCLElBQU87UUFFUCxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLElBQUksb0JBQW9CLENBQUMsQ0FBQztTQUN4RDtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7O2tJQXBCVSxrQkFBa0I7c0lBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNPYnNlcnZhYmxlLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb21wb25lbnRJbnB1dEtleSwgQ29tcG9uZW50SU8gfSBmcm9tICcuL2NvbXBvbmVudC1pbyc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqIEBpbnRlcm5hbCAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENsYXNzaWNDb21wb25lbnRJTyBpbXBsZW1lbnRzIENvbXBvbmVudElPIHtcbiAgc2V0SW5wdXQ8VCwgSyBleHRlbmRzIENvbXBvbmVudElucHV0S2V5PFQ+PihcbiAgICBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxUPixcbiAgICBuYW1lOiBLLFxuICAgIHZhbHVlOiBUW0tdLFxuICApOiB2b2lkIHtcbiAgICBjb21wb25lbnRSZWYuc2V0SW5wdXQobmFtZSwgdmFsdWUpO1xuICB9XG5cbiAgZ2V0T3V0cHV0PFQsIEsgZXh0ZW5kcyBDb21wb25lbnRJbnB1dEtleTxUPj4oXG4gICAgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VD4sXG4gICAgbmFtZTogSyxcbiAgKTogT2JzZXJ2YWJsZTx1bmtub3duPiB7XG4gICAgY29uc3Qgb3V0cHV0ID0gY29tcG9uZW50UmVmLmluc3RhbmNlW25hbWVdO1xuXG4gICAgaWYgKCFpc09ic2VydmFibGUob3V0cHV0KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb21wb25lbnQgJHtuYW1lfSBpcyBub3QgYW4gb3V0cHV0IWApO1xuICAgIH1cblxuICAgIHJldHVybiBvdXRwdXQ7XG4gIH1cbn1cbiJdfQ==