blob: e3321bff928543a836de473b124fd7d106fbea12 [file] [log] [blame]
import {
Component,
Input,
OnChanges,
ElementRef,
ViewChild,
AfterViewInit
} from '@angular/core';
@Component({
selector: 'app-diagram',
templateUrl: './diagram.component.html',
styleUrls: ['./diagram.component.scss']
})
export class DiagramComponent implements OnChanges, AfterViewInit {
@Input() list;
maxWidth = 550;
maxLengthLeft;
maxLengthRight;
@ViewChild('svgContainer') svgContainer: ElementRef;
ngAfterViewInit() {
console.log(
'svg width:',
this.svgContainer.nativeElement.getBoundingClientRect().width
);
this.maxWidth = this.svgContainer.nativeElement.getBoundingClientRect().width;
}
constructor() {}
ngOnChanges() {
console.log('list:', this.list);
if (this.list) {
const name1MaxLength = this.list.reduce(
(r, s) => (r > s.name1.length ? r : s.name1.length),
0
);
const p1MaxLength = this.list.reduce(
(r, s) => (r > s.p1.length ? r : s.p1.length),
0
);
this.maxLengthLeft = Math.max(name1MaxLength, p1MaxLength);
const name2MaxLength = this.list.reduce(
(r, s) => (r > s.name2.length ? r : s.name2.length),
0
);
const p2MaxLength = this.list.reduce(
(r, s) => (r > s.p2.length ? r : s.p2.length),
0
);
this.maxLengthRight = Math.max(name2MaxLength, p2MaxLength);
}
}
}