| import { AfterContentChecked, AfterViewInit, Directive, ElementRef, Input } from '@angular/core'; |
| import { isNullOrUndefined } from 'util'; |
| |
| |
| /* |
| Temporary |
| Changing svg color and size. |
| color changing according to fill attribute |
| size according to viewBox |
| */ |
| @Directive({ |
| selector: '[svg-directive]' |
| }) |
| export class SvgDirective implements AfterContentChecked { |
| @Input('fill') fill: string = "black"; |
| @Input('widthViewBox') widthViewBox: string = null; |
| @Input('heightViewBox') heightViewBox: string = null; |
| |
| constructor(private elRef: ElementRef) {} |
| ngAfterContentChecked(): void { |
| if(this.elRef !== undefined && this.elRef.nativeElement.children !== undefined && this.elRef.nativeElement.children[0] !== undefined){ |
| this.elRef.nativeElement.children[0].children[1].children[0].style.fill = this.fill; |
| if(this.elRef.nativeElement.children[0].children[1].children.length > 1){ |
| this.elRef.nativeElement.children[0].children[1].children[1].style.fill = this.fill; |
| this.elRef.nativeElement.children[0].children[1].children[2].children[0].style.fill = this.fill; |
| } |
| |
| if(this.widthViewBox && this.heightViewBox){ |
| this.elRef.nativeElement.firstChild.setAttribute('viewBox', "1 1 " + this.widthViewBox + " " + this.heightViewBox) |
| } |
| |
| } |
| } |
| } |