UNPKG

@cisstech/nge

Version:

NG Essentials is a collection of libraries for Angular developers.

42 lines 5.76 kB
import { ComponentPortal } from '@angular/cdk/portal'; import { Injector, Pipe } from '@angular/core'; import { IconCodIconComponent } from '../icon-codicon/icon-codicon.component'; import { IconFaComponent } from '../icon-fa/icon-fa.component'; import { IconIcongrComponent } from '../icon-icongr/icon-icongr.component'; import { IconImgComponent } from '../icon-img/icon-img.component'; import { ICON_TOKEN } from '../icons'; import * as i0 from "@angular/core"; export class IconPipe { constructor(injector) { this.injector = injector; } transform(icon) { switch (icon?.type) { case 'fa': return new ComponentPortal(IconFaComponent, null, this.createInjector(icon)); case 'img': return new ComponentPortal(IconImgComponent, null, this.createInjector(icon)); case 'codicon': return new ComponentPortal(IconCodIconComponent, null, this.createInjector(icon)); case 'icongr': return new ComponentPortal(IconIcongrComponent, null, this.createInjector(icon)); default: throw new TypeError('unknown icon type "' + icon?.type + '"'); } } createInjector(icon) { return Injector.create({ providers: [{ provide: ICON_TOKEN, useValue: icon }], parent: this.injector, }); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: IconPipe, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Pipe }); } static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.1", ngImport: i0, type: IconPipe, name: "icon" }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: IconPipe, decorators: [{ type: Pipe, args: [{ name: 'icon', }] }], ctorParameters: () => [{ type: i0.Injector }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdlL3VpL2ljb24vc3JjL3BpcGVzL2ljb24ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUNqRSxPQUFPLEVBQVEsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFBOztBQUszQyxNQUFNLE9BQU8sUUFBUTtJQUNuQixZQUE2QixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQUcsQ0FBQztJQUNuRCxTQUFTLENBQUMsSUFBVztRQUNuQixRQUFRLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNuQixLQUFLLElBQUk7Z0JBQ1AsT0FBTyxJQUFJLGVBQWUsQ0FBQyxlQUFlLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtZQUM5RSxLQUFLLEtBQUs7Z0JBQ1IsT0FBTyxJQUFJLGVBQWUsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1lBQy9FLEtBQUssU0FBUztnQkFDWixPQUFPLElBQUksZUFBZSxDQUFDLG9CQUFvQixFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7WUFDbkYsS0FBSyxRQUFRO2dCQUNYLE9BQU8sSUFBSSxlQUFlLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtZQUNsRjtnQkFDRSxNQUFNLElBQUksU0FBUyxDQUFDLHFCQUFxQixHQUFHLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUE7UUFDakUsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsSUFBVTtRQUN2QixPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDckIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNwRCxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDdEIsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs4R0F0QlUsUUFBUTs0R0FBUixRQUFROzsyRkFBUixRQUFRO2tCQUhwQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxNQUFNO2lCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCdcbmltcG9ydCB7IEluamVjdG9yLCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEljb25Db2RJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi1jb2RpY29uL2ljb24tY29kaWNvbi5jb21wb25lbnQnXG5pbXBvcnQgeyBJY29uRmFDb21wb25lbnQgfSBmcm9tICcuLi9pY29uLWZhL2ljb24tZmEuY29tcG9uZW50J1xuaW1wb3J0IHsgSWNvbkljb25nckNvbXBvbmVudCB9IGZyb20gJy4uL2ljb24taWNvbmdyL2ljb24taWNvbmdyLmNvbXBvbmVudCdcbmltcG9ydCB7IEljb25JbWdDb21wb25lbnQgfSBmcm9tICcuLi9pY29uLWltZy9pY29uLWltZy5jb21wb25lbnQnXG5pbXBvcnQgeyBJY29uLCBJQ09OX1RPS0VOIH0gZnJvbSAnLi4vaWNvbnMnXG5cbkBQaXBlKHtcbiAgbmFtZTogJ2ljb24nLFxufSlcbmV4cG9ydCBjbGFzcyBJY29uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3Rvcikge31cbiAgdHJhbnNmb3JtKGljb24/OiBJY29uKTogQ29tcG9uZW50UG9ydGFsPGFueT4ge1xuICAgIHN3aXRjaCAoaWNvbj8udHlwZSkge1xuICAgICAgY2FzZSAnZmEnOlxuICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudFBvcnRhbChJY29uRmFDb21wb25lbnQsIG51bGwsIHRoaXMuY3JlYXRlSW5qZWN0b3IoaWNvbikpXG4gICAgICBjYXNlICdpbWcnOlxuICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudFBvcnRhbChJY29uSW1nQ29tcG9uZW50LCBudWxsLCB0aGlzLmNyZWF0ZUluamVjdG9yKGljb24pKVxuICAgICAgY2FzZSAnY29kaWNvbic6XG4gICAgICAgIHJldHVybiBuZXcgQ29tcG9uZW50UG9ydGFsKEljb25Db2RJY29uQ29tcG9uZW50LCBudWxsLCB0aGlzLmNyZWF0ZUluamVjdG9yKGljb24pKVxuICAgICAgY2FzZSAnaWNvbmdyJzpcbiAgICAgICAgcmV0dXJuIG5ldyBDb21wb25lbnRQb3J0YWwoSWNvbkljb25nckNvbXBvbmVudCwgbnVsbCwgdGhpcy5jcmVhdGVJbmplY3RvcihpY29uKSlcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3Vua25vd24gaWNvbiB0eXBlIFwiJyArIGljb24/LnR5cGUgKyAnXCInKVxuICAgIH1cbiAgfVxuXG4gIGNyZWF0ZUluamVjdG9yKGljb246IEljb24pOiBJbmplY3RvciB7XG4gICAgcmV0dXJuIEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IElDT05fVE9LRU4sIHVzZVZhbHVlOiBpY29uIH1dLFxuICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxuICAgIH0pXG4gIH1cbn1cbiJdfQ==