UNPKG

ng-svg-icon-sprite

Version:

Angular 17+ package for generating and using inline SVG icons in your project

39 lines 4.73 kB
import { Directive, ElementRef, Renderer2, Input } from '@angular/core'; import * as i0 from "@angular/core"; /** * Set your own attribute key/value pairs on the generated SVG element, i.e. focusable="false" */ export class IconSpriteDirective { renderer; el; attribute; constructor(renderer, el) { this.renderer = renderer; this.el = el; } ngOnInit() { if (Array.isArray(this.attribute[0])) { const attributeArr = this.attribute; attributeArr.forEach((obj) => { this.renderer.setAttribute(this.el.nativeElement, obj[0], obj[1] ? obj[1] : ''); }); } else { const attribute = this.attribute; if (attribute[0]) { this.renderer.setAttribute(this.el.nativeElement, attribute[0], attribute[1] ? attribute[1] : ''); } } } /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: IconSpriteDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.7", type: IconSpriteDirective, selector: "[svgIconSpriteAttr]", inputs: { attribute: "attribute" }, ngImport: i0 }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: IconSpriteDirective, decorators: [{ type: Directive, args: [{ selector: '[svgIconSpriteAttr]' }] }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { attribute: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1zcHJpdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaWNvbi1zcHJpdGUvc3JjL2xpYi9pY29uLXNwcml0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFFaEY7O0dBRUc7QUFJSCxNQUFNLE9BQU8sbUJBQW1CO0lBS3JCO0lBQ0E7SUFKQSxTQUFTLENBQTZDO0lBRS9ELFlBQ1MsUUFBbUIsRUFDbkIsRUFBYztRQURkLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtJQUNwQixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBb0MsQ0FBQztZQUUvRCxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEYsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUE2QixDQUFDO1lBRXJELElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDcEcsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOzBIQXZCVSxtQkFBbUI7OEdBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFIL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO2lCQUNoQzt1R0FHVSxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBTZXQgeW91ciBvd24gYXR0cmlidXRlIGtleS92YWx1ZSBwYWlycyBvbiB0aGUgZ2VuZXJhdGVkIFNWRyBlbGVtZW50LCBpLmUuIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3N2Z0ljb25TcHJpdGVBdHRyXSdcbn0pXG5leHBvcnQgY2xhc3MgSWNvblNwcml0ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgYXR0cmlidXRlOiBbc3RyaW5nLCBzdHJpbmddIHwgQXJyYXk8W3N0cmluZywgc3RyaW5nXT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHVibGljIGVsOiBFbGVtZW50UmVmXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmF0dHJpYnV0ZVswXSkpIHtcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZUFyciA9IHRoaXMuYXR0cmlidXRlIGFzIEFycmF5PFtzdHJpbmcsIHN0cmluZ10+O1xuXG4gICAgICBhdHRyaWJ1dGVBcnIuZm9yRWFjaCgob2JqKSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgb2JqWzBdLCBvYmpbMV0gPyBvYmpbMV0gOiAnJyk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgYXR0cmlidXRlID0gdGhpcy5hdHRyaWJ1dGUgYXMgW3N0cmluZywgc3RyaW5nXTtcblxuICAgICAgaWYgKGF0dHJpYnV0ZVswXSkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIGF0dHJpYnV0ZVswXSwgYXR0cmlidXRlWzFdID8gYXR0cmlidXRlWzFdIDogJycpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19