UNPKG

angular-feather

Version:

Feather Icons components library for your Angular Applications

38 lines 4.89 kB
import { Component, ElementRef, Input, Inject, ChangeDetectorRef } from '@angular/core'; import { Icons } from './icons.provider'; import { uppercamelcase } from './utils'; export class FeatherComponent { constructor(elem, changeDetector, icons) { this.elem = elem; this.changeDetector = changeDetector; this.icons = icons; } 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`); } this.elem.nativeElement.innerHTML = svg; this.changeDetector.markForCheck(); } } FeatherComponent.decorators = [ { type: Component, args: [{ // tslint:disable-next-line:component-selector selector: 'i-feather, feather-icon', template: "<ng-content></ng-content>\n", styles: [":host{display:inline-block;fill:none;height:24px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;width:24px}"] },] } ]; FeatherComponent.ctorParameters = () => [ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] }, { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] }, { type: Icons, decorators: [{ type: Inject, args: [Icons,] }] } ]; FeatherComponent.propDecorators = { name: [{ type: Input }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdGhlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1mZWF0aGVyL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9mZWF0aGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQVN6QyxNQUFNLE9BQU8sZ0JBQWdCO0lBRzNCLFlBQzhCLElBQWdCLEVBQ1QsY0FBaUMsRUFDN0MsS0FBWTtRQUZQLFNBQUksR0FBSixJQUFJLENBQVk7UUFDVCxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDN0MsVUFBSyxHQUFMLEtBQUssQ0FBTztJQUNsQyxDQUFDO0lBRUosV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLHFFQUFxRTtRQUNyRSxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFJLElBQUksQ0FBQyxLQUF5QixDQUFDLENBQUM7UUFDcEUsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFFLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFFLElBQUksRUFBRSxDQUFDO1FBRXJFLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDUixPQUFPLENBQUMsSUFBSSxDQUNWLG1CQUFtQixPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSTtnQkFDaEQsMkVBQTJFLENBQzVFLENBQUM7U0FDSDtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7UUFDeEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDOzs7WUE3QkYsU0FBUyxTQUFDO2dCQUNULDhDQUE4QztnQkFDOUMsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsdUNBQXVDOzthQUV4Qzs7O1lBVm1CLFVBQVUsdUJBZXpCLE1BQU0sU0FBQyxVQUFVO1lBZnlCLGlCQUFpQix1QkFnQjNELE1BQU0sU0FBQyxpQkFBaUI7WUFmcEIsS0FBSyx1QkFnQlQsTUFBTSxTQUFDLEtBQUs7OzttQkFMZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgSW5qZWN0LCBDaGFuZ2VEZXRlY3RvclJlZiwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4vaWNvbnMucHJvdmlkZXInO1xuaW1wb3J0IHsgdXBwZXJjYW1lbGNhc2UgfSBmcm9tICcuL3V0aWxzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2ktZmVhdGhlciwgZmVhdGhlci1pY29uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZlYXRoZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsgJy4vZmVhdGhlci5jb21wb25lbnQuc2NzcycgXSxcbn0pXG5leHBvcnQgY2xhc3MgRmVhdGhlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIG5hbWUhOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIGVsZW06IEVsZW1lbnRSZWYsXG4gICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQEluamVjdChJY29ucykgcHJpdmF0ZSBpY29uczogSWNvbnNcbiAgKSB7fVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAvLyBpY29ucyBhcmUgcHJvdmlkZWQgYXMgYW4gYXJyYXkgb2Ygb2JqZWN0cyBiZWNhdXNlIG9mIFwibXVsdGk6IHRydWVcIlxuICAgIGNvbnN0IGljb25zID0gT2JqZWN0LmFzc2lnbih7fSwgLi4uKHRoaXMuaWNvbnMgYXMgYW55IGFzIG9iamVjdFtdKSk7XG4gICAgY29uc3Qgc3ZnID0gaWNvbnNbIHVwcGVyY2FtZWxjYXNlKGNoYW5nZXMubmFtZS5jdXJyZW50VmFsdWUpIF0gfHwgJyc7XG5cbiAgICBpZiAoIXN2Zykge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgSWNvbiBub3QgZm91bmQ6ICR7Y2hhbmdlcy5uYW1lLmN1cnJlbnRWYWx1ZX1cXG5gICtcbiAgICAgICAgYFJlZmVyIHRvIGRvY3VtZW50YXRpb24gb24gaHR0cHM6Ly9naXRodWIuY29tL21pY2hhZWxiYXpvcy9hbmd1bGFyLWZlYXRoZXJgXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuZWxlbS5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA9IHN2ZztcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iXX0=