UNPKG

@pepperi/lib

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 10.0.1.

70 lines (69 loc) 8.19 kB
import { ChangeDetectionStrategy, Component, Inject, Input, Optional } from '@angular/core'; import { DOCUMENT } from '@angular/common'; import * as i0 from "@angular/core"; import * as i1 from "./icon-registry.service"; const _c0 = ["*"]; export class PepperiIconComponent { constructor(renderer, element, iconRegistry, document) { this.renderer = renderer; this.element = element; this.iconRegistry = iconRegistry; this.document = document; this.fillColor = null; } set name(iconName) { if (this.svgIcon) { this.element.nativeElement.removeChild(this.svgIcon); } const svgData = this.iconRegistry.getIcon(iconName); this.svgIcon = this.svgElementFromString(svgData); this.element.nativeElement.appendChild(this.svgIcon); this.renderer.addClass(this.svgIcon, 'svg-icon'); this.setFill(); } set fill(value) { this.fillColor = value; this.setFill(); } svgElementFromString(svgContent) { const div = this.document.createElement('DIV'); div.innerHTML = svgContent; return div.querySelector('svg') || this.document.createElementNS('http://www.w3.org/2000/svg', 'path'); } setFill() { if (this.svgIcon && this.fillColor) { this.renderer.setStyle(this.svgIcon, 'fill', this.fillColor); } } } PepperiIconComponent.ɵfac = function PepperiIconComponent_Factory(t) { return new (t || PepperiIconComponent)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.PepperiIconRegistry), i0.ɵɵdirectiveInject(DOCUMENT, 8)); }; PepperiIconComponent.ɵcmp = i0.ɵɵdefineComponent({ type: PepperiIconComponent, selectors: [["pep-icon"]], inputs: { name: "name", fill: "fill" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function PepperiIconComponent_Template(rf, ctx) { if (rf & 1) { i0.ɵɵprojectionDef(); i0.ɵɵprojection(0); } }, styles: ["[_nghost-%COMP%] {\n display: inline-grid;\n }\n\n [_nghost-%COMP%] svg { width: 1.5rem; height: 1.5rem }"], changeDetection: 0 }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(PepperiIconComponent, [{ type: Component, args: [{ selector: 'pep-icon', template: ` <ng-content></ng-content> `, styles: [` :host { display: inline-grid; } :host::ng-deep svg { width: 1.5rem; height: 1.5rem } `], changeDetection: ChangeDetectionStrategy.OnPush }] }], function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.PepperiIconRegistry }, { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DOCUMENT] }] }]; }, { name: [{ type: Input }], fill: [{ type: Input }] }); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wZXBwZXJpLWxpYi9pY29uL2ljb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQTJCLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFnQyxNQUFNLGVBQWUsQ0FBQztBQUVuSixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFnQjNDLE1BQU0sT0FBTyxvQkFBb0I7SUF1QjdCLFlBQ1ksUUFBbUIsRUFDbkIsT0FBbUIsRUFDbkIsWUFBaUMsRUFDSCxRQUFhO1FBSDNDLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDSCxhQUFRLEdBQVIsUUFBUSxDQUFLO1FBMUIvQyxjQUFTLEdBQUcsSUFBSSxDQUFDO0lBMkJ6QixDQUFDO0lBeEJELElBQ0ksSUFBSSxDQUFDLFFBQWdCO1FBQ3JCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDeEQ7UUFDRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFakQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUNJLElBQUksQ0FBQyxLQUFhO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBU08sb0JBQW9CLENBQUMsVUFBa0I7UUFDM0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0MsR0FBRyxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUM7UUFDM0IsT0FBTyxHQUFHLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLDRCQUE0QixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNHLENBQUM7SUFFTyxPQUFPO1FBQ1gsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ2hFO0lBQ0wsQ0FBQzs7d0ZBeENRLG9CQUFvQiw4SUEyQkwsUUFBUTt5REEzQnZCLG9CQUFvQjs7UUFYekIsa0JBQVk7O2tEQVdQLG9CQUFvQjtjQWRoQyxTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLFFBQVEsRUFBRTs7S0FFVDtnQkFDRCxNQUFNLEVBQUUsQ0FBQzs7Ozs7O0tBTVIsQ0FBQztnQkFDRixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNsRDs7c0JBNEJRLFFBQVE7O3NCQUFJLE1BQU07dUJBQUMsUUFBUTt3QkF0QjVCLElBQUk7a0JBRFAsS0FBSztZQWNGLElBQUk7a0JBRFAsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbmplY3QsIElucHV0LCBPcHRpb25hbCwgVmlld0VuY2Fwc3VsYXRpb24sIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQZXBwZXJpSWNvblJlZ2lzdHJ5IH0gZnJvbSAnLi9pY29uLXJlZ2lzdHJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAncGVwLWljb24nLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICBgLFxyXG4gICAgc3R5bGVzOiBbYFxyXG4gICAgICAgIDpob3N0IHtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWdyaWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICA6aG9zdDo6bmctZGVlcCBzdmcgeyB3aWR0aDogMS41cmVtOyBoZWlnaHQ6IDEuNXJlbSB9XHJcbiAgICBgXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZXBwZXJpSWNvbkNvbXBvbmVudCB7XHJcbiAgICBwcml2YXRlIGZpbGxDb2xvciA9IG51bGw7XHJcbiAgICBwcml2YXRlIHN2Z0ljb246IFNWR0VsZW1lbnQ7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHNldCBuYW1lKGljb25OYW1lOiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAodGhpcy5zdmdJY29uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuc3ZnSWNvbik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHN2Z0RhdGEgPSB0aGlzLmljb25SZWdpc3RyeS5nZXRJY29uKGljb25OYW1lKTtcclxuICAgICAgICB0aGlzLnN2Z0ljb24gPSB0aGlzLnN2Z0VsZW1lbnRGcm9tU3RyaW5nKHN2Z0RhdGEpO1xyXG4gICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuc3ZnSWNvbik7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnN2Z0ljb24sICdzdmctaWNvbicpO1xyXG5cclxuICAgICAgICB0aGlzLnNldEZpbGwoKTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IGZpbGwodmFsdWU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuZmlsbENvbG9yID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5zZXRGaWxsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcclxuICAgICAgICBwcml2YXRlIGljb25SZWdpc3RyeTogUGVwcGVyaUljb25SZWdpc3RyeSxcclxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBhbnkpIHtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN2Z0VsZW1lbnRGcm9tU3RyaW5nKHN2Z0NvbnRlbnQ6IHN0cmluZyk6IFNWR0VsZW1lbnQge1xyXG4gICAgICAgIGNvbnN0IGRpdiA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnRElWJyk7XHJcbiAgICAgICAgZGl2LmlubmVySFRNTCA9IHN2Z0NvbnRlbnQ7XHJcbiAgICAgICAgcmV0dXJuIGRpdi5xdWVyeVNlbGVjdG9yKCdzdmcnKSB8fCB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLCAncGF0aCcpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0RmlsbCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5zdmdJY29uICYmIHRoaXMuZmlsbENvbG9yKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5zdmdJY29uLCAnZmlsbCcsIHRoaXMuZmlsbENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19