@cisstech/nge
Version:
NG Essentials is a collection of libraries for Angular developers.
42 lines • 5.76 kB
JavaScript
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==