import { DOCUMENT, NgClass } from '@angular/common';
import { ChangeDetectionStrategy, Component, Inject, Input } from '@angular/core';
import { icons } from './icon.constants';
import * as i0 from "@angular/core";
export class IconComponent {
constructor(renderer, document, el) {
this.renderer = renderer;
this.document = document;
this.el = el;
this.icon = '';
this.iconClass = '';
this.fill = 'currentColor';
this.strokeWidth = 1.5;
this.strokeColor = 'currentColor';
this.size = 'base';
this.iconPath = '';
}
ngOnInit() {
this.injectSVG();
this.strokeColor = this.getFormattedColor(this.strokeColor);
this.fill = this.getFormattedColor(this.fill);
}
getFormattedColor(color) {
if (color.startsWith('--')) {
const rgbValue = getComputedStyle(document.documentElement).getPropertyValue(color).trim();
return `rgb(${rgbValue})`;
}
return color;
}
getIconPath() {
return `#${this.icon}`;
}
injectSVG() {
const svgElement = this.renderer.createElement('div');
this.renderer.setProperty(svgElement, 'innerHTML', icons);
this.renderer.setStyle(svgElement, 'display', 'none');
this.renderer.appendChild(this.document.body, svgElement);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: IconComponent, deps: [{ token: i0.Renderer2 }, { token: DOCUMENT }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: IconComponent, isStandalone: true, selector: "ct-icon", inputs: { icon: "icon", iconClass: "iconClass", fill: "fill", strokeWidth: "strokeWidth", strokeColor: "strokeColor", size: "size" }, ngImport: i0, template: "\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: IconComponent, decorators: [{
type: Component,
args: [{ selector: 'ct-icon', standalone: true, imports: [NgClass], changeDetection: ChangeDetectionStrategy.OnPush, template: "\n" }]
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: Document, decorators: [{
type: Inject,
args: [DOCUMENT]
}] }, { type: i0.ElementRef }], propDecorators: { icon: [{
type: Input
}], iconClass: [{
type: Input
}], fill: [{
type: Input
}], strokeWidth: [{
type: Input
}], strokeColor: [{
type: Input
}], size: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaXJjbGV0b25lL3NyYy9saWIvY29tcG9uZW50cy9hdG9tcy9pY29uL2ljb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2lyY2xldG9uZS9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvaWNvbi9pY29uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBYyxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBU3pDLE1BQU0sT0FBTyxhQUFhO0lBU3hCLFlBQ1UsUUFBbUIsRUFDRCxRQUFrQixFQUNwQyxFQUFjO1FBRmQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNELGFBQVEsR0FBUixRQUFRLENBQVU7UUFDcEMsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQVhmLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsU0FBSSxHQUFHLGNBQWMsQ0FBQztRQUN0QixnQkFBVyxHQUFHLEdBQUcsQ0FBQztRQUNsQixnQkFBVyxHQUFHLGNBQWMsQ0FBQztRQUM3QixTQUFJLEdBQXVDLE1BQU0sQ0FBQztRQUMzRCxhQUFRLEdBQUcsRUFBRSxDQUFDO0lBTVgsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBYTtRQUM3QixJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMzQixNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDM0YsT0FBTyxPQUFPLFFBQVEsR0FBRyxDQUFDO1FBQzVCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU8sU0FBUztRQUNmLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM1RCxDQUFDOzhHQXRDVSxhQUFhLDJDQVdkLFFBQVE7a0dBWFAsYUFBYSx5TUNYMUIsdVlBYUEsNENETlksT0FBTzs7MkZBSU4sYUFBYTtrQkFQekIsU0FBUzsrQkFDRSxTQUFTLGNBQ1AsSUFBSSxXQUNQLENBQUMsT0FBTyxDQUFDLG1CQUVELHVCQUF1QixDQUFDLE1BQU07OzBCQWE1QyxNQUFNOzJCQUFDLFFBQVE7a0VBVlQsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCwgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIElucHV0LCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaWNvbnMgfSBmcm9tICcuL2ljb24uY29uc3RhbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3QtaWNvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0NsYXNzXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2ljb24uY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgSWNvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGljb24gPSAnJztcbiAgQElucHV0KCkgaWNvbkNsYXNzID0gJyc7XG4gIEBJbnB1dCgpIGZpbGwgPSAnY3VycmVudENvbG9yJztcbiAgQElucHV0KCkgc3Ryb2tlV2lkdGggPSAxLjU7XG4gIEBJbnB1dCgpIHN0cm9rZUNvbG9yID0gJ2N1cnJlbnRDb2xvcic7XG4gIEBJbnB1dCgpIHNpemU6ICd4cycgfCAnc20nIHwgJ2Jhc2UnIHwgJ2xnJyB8ICd4bCcgPSAnYmFzZSc7XG4gIGljb25QYXRoID0gJyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWZcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5qZWN0U1ZHKCk7XG4gICAgdGhpcy5zdHJva2VDb2xvciA9IHRoaXMuZ2V0Rm9ybWF0dGVkQ29sb3IodGhpcy5zdHJva2VDb2xvcik7XG4gICAgdGhpcy5maWxsID0gdGhpcy5nZXRGb3JtYXR0ZWRDb2xvcih0aGlzLmZpbGwpO1xuICB9XG5cbiAgZ2V0Rm9ybWF0dGVkQ29sb3IoY29sb3I6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKGNvbG9yLnN0YXJ0c1dpdGgoJy0tJykpIHtcbiAgICAgIGNvbnN0IHJnYlZhbHVlID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoY29sb3IpLnRyaW0oKTtcbiAgICAgIHJldHVybiBgcmdiKCR7cmdiVmFsdWV9KWA7XG4gICAgfVxuICAgIHJldHVybiBjb2xvcjtcbiAgfVxuXG4gIGdldEljb25QYXRoKCkge1xuICAgIHJldHVybiBgIyR7dGhpcy5pY29ufWA7XG4gIH1cblxuICBwcml2YXRlIGluamVjdFNWRygpIHtcbiAgICBjb25zdCBzdmdFbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHN2Z0VsZW1lbnQsICdpbm5lckhUTUwnLCBpY29ucyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzdmdFbGVtZW50LCAnZGlzcGxheScsICdub25lJyk7XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmRvY3VtZW50LmJvZHksIHN2Z0VsZW1lbnQpO1xuICB9XG59XG4iLCI8c3ZnXG4gIFtuZ0NsYXNzXT1cImljb25DbGFzc1wiXG4gIFthdHRyLmZpbGxdPVwiZmlsbFwiXG4gIFthdHRyLnN0cm9rZS13aWR0aF09XCJzdHJva2VXaWR0aFwiXG4gIFthdHRyLnN0cm9rZV09XCJzdHJva2VDb2xvclwiXG4gIGNsYXNzPVwiZmxleFwiXG4gIFtjbGFzcy5zaXplLTNdPVwic2l6ZSA9PT0gJ3hzJ1wiXG4gIFtjbGFzcy5zaXplLTRdPVwic2l6ZSA9PT0gJ3NtJ1wiXG4gIFtjbGFzcy5zaXplLTVdPVwic2l6ZSA9PT0gJ2Jhc2UnXCJcbiAgW2NsYXNzLnNpemUtNl09XCJzaXplID09PSAnbGcnXCJcbiAgW2NsYXNzLnNpemUtOF09XCJzaXplID09PSAneGwnXCI+XG4gIDx1c2UgW2F0dHIueGxpbms6aHJlZl09XCJnZXRJY29uUGF0aCgpXCI+PC91c2U+XG48L3N2Zz5cbiJdfQ==