UNPKG

angular-feather

Version:

Feather Icons components library for your Angular Applications

52 lines 7.2 kB
import { Component, ElementRef, Input, Inject, ChangeDetectorRef, SecurityContext, } from '@angular/core'; import { DomSanitizer } from '@angular/platform-browser'; import { Icons } from './icons.provider'; import { uppercamelcase } from './utils'; import * as i0 from "@angular/core"; import * as i1 from "./icons.provider"; import * as i2 from "@angular/platform-browser"; export class FeatherComponent { constructor(elem, changeDetector, icons, sanitizer) { this.elem = elem; this.changeDetector = changeDetector; this.icons = icons; this.sanitizer = sanitizer; } ngOnChanges(changes) { // icons are provided as an array of objects because of "multi: true" const icons = Object.assign({}, ...this.icons); const svg = icons[uppercamelcase(changes.name.currentValue)] || ''; if (!svg) { console.warn(`Icon not found: ${changes.name.currentValue}\n` + `Refer to documentation on https://github.com/michaelbazos/angular-feather`); } // Since the icons are precompiled we can trust them as safe html. this.elem.nativeElement.innerHTML = this.sanitizer.sanitize(SecurityContext.HTML, this.sanitizer.bypassSecurityTrustHtml(svg)); this.changeDetector.markForCheck(); } } FeatherComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FeatherComponent, deps: [{ token: ElementRef }, { token: ChangeDetectorRef }, { token: Icons }, { token: DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); FeatherComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FeatherComponent, selector: "i-feather, feather-icon", inputs: { name: "name" }, usesOnChanges: true, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:inline-block;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}\n"] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FeatherComponent, decorators: [{ type: Component, args: [{ selector: 'i-feather, feather-icon', templateUrl: './feather.component.html', styleUrls: ['./feather.component.scss'], }] }], ctorParameters: function () { return [{ type: i0.ElementRef, decorators: [{ type: Inject, args: [ElementRef] }] }, { type: i0.ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef] }] }, { type: i1.Icons, decorators: [{ type: Inject, args: [Icons] }] }, { type: i2.DomSanitizer, decorators: [{ type: Inject, args: [DomSanitizer] }] }]; }, propDecorators: { name: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdGhlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWZlYXRoZXIvc3JjL2xpYi9mZWF0aGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItZmVhdGhlci9zcmMvbGliL2ZlYXRoZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsRUFHakIsZUFBZSxHQUNoQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7Ozs7QUFPekMsTUFBTSxPQUFPLGdCQUFnQjtJQUczQixZQUM4QixJQUFnQixFQUNULGNBQWlDLEVBQzdDLEtBQVksRUFDTCxTQUF1QjtRQUh6QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ1QsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQzdDLFVBQUssR0FBTCxLQUFLLENBQU87UUFDTCxjQUFTLEdBQVQsU0FBUyxDQUFjO0lBQ3BELENBQUM7SUFFSixXQUFXLENBQUMsT0FBc0I7UUFDaEMscUVBQXFFO1FBQ3JFLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUksSUFBSSxDQUFDLEtBQXlCLENBQUMsQ0FBQztRQUNwRSxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFbkUsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNSLE9BQU8sQ0FBQyxJQUFJLENBQ1YsbUJBQW1CLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJO2dCQUM5QywyRUFBMkUsQ0FDOUUsQ0FBQztTQUNIO1FBRUQsa0VBQWtFO1FBQ2xFLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUUvSCxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLENBQUM7OzhHQTFCVSxnQkFBZ0Isa0JBSWpCLFVBQVUsYUFDVixpQkFBaUIsYUFDakIsS0FBSyxhQUNMLFlBQVk7a0dBUFgsZ0JBQWdCLDhHQ25CN0IsNkJBQ0E7NEZEa0JhLGdCQUFnQjtrQkFMNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxXQUFXLEVBQUUsMEJBQTBCO29CQUN2QyxTQUFTLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztpQkFDeEM7OzBCQUtJLE1BQU07MkJBQUMsVUFBVTs7MEJBQ2pCLE1BQU07MkJBQUMsaUJBQWlCOzswQkFDeEIsTUFBTTsyQkFBQyxLQUFLOzswQkFDWixNQUFNOzJCQUFDLFlBQVk7NENBTmIsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgSW5qZWN0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBTZWN1cml0eUNvbnRleHQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4vaWNvbnMucHJvdmlkZXInO1xuaW1wb3J0IHsgdXBwZXJjYW1lbGNhc2UgfSBmcm9tICcuL3V0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaS1mZWF0aGVyLCBmZWF0aGVyLWljb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZmVhdGhlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZlYXRoZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRmVhdGhlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIG5hbWUhOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIGVsZW06IEVsZW1lbnRSZWYsXG4gICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQEluamVjdChJY29ucykgcHJpdmF0ZSBpY29uczogSWNvbnMsXG4gICAgQEluamVjdChEb21TYW5pdGl6ZXIpIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICkge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgLy8gaWNvbnMgYXJlIHByb3ZpZGVkIGFzIGFuIGFycmF5IG9mIG9iamVjdHMgYmVjYXVzZSBvZiBcIm11bHRpOiB0cnVlXCJcbiAgICBjb25zdCBpY29ucyA9IE9iamVjdC5hc3NpZ24oe30sIC4uLih0aGlzLmljb25zIGFzIGFueSBhcyBvYmplY3RbXSkpO1xuICAgIGNvbnN0IHN2ZyA9IGljb25zW3VwcGVyY2FtZWxjYXNlKGNoYW5nZXMubmFtZS5jdXJyZW50VmFsdWUpXSB8fCAnJztcblxuICAgIGlmICghc3ZnKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBJY29uIG5vdCBmb3VuZDogJHtjaGFuZ2VzLm5hbWUuY3VycmVudFZhbHVlfVxcbmAgK1xuICAgICAgICAgIGBSZWZlciB0byBkb2N1bWVudGF0aW9uIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNoYWVsYmF6b3MvYW5ndWxhci1mZWF0aGVyYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBTaW5jZSB0aGUgaWNvbnMgYXJlIHByZWNvbXBpbGVkIHdlIGNhbiB0cnVzdCB0aGVtIGFzIHNhZmUgaHRtbC5cbiAgICB0aGlzLmVsZW0ubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnNhbml0aXplci5zYW5pdGl6ZShTZWN1cml0eUNvbnRleHQuSFRNTCwgdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoc3ZnKSk7XG5cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=