]>
Commit | Line | Data |
---|---|---|
1 | import { Component, ElementRef, Input, OnChanges, ViewChild } from '@angular/core' | |
2 | import { CustomMarkupService } from './custom-markup.service' | |
3 | ||
4 | @Component({ | |
5 | selector: 'my-custom-markup-container', | |
6 | templateUrl: './custom-markup-container.component.html' | |
7 | }) | |
8 | export class CustomMarkupContainerComponent implements OnChanges { | |
9 | @ViewChild('contentWrapper') contentWrapper: ElementRef<HTMLInputElement> | |
10 | ||
11 | @Input() content: string | |
12 | ||
13 | displayed = false | |
14 | ||
15 | constructor ( | |
16 | private customMarkupService: CustomMarkupService | |
17 | ) { } | |
18 | ||
19 | async ngOnChanges () { | |
20 | await this.buildElement() | |
21 | } | |
22 | ||
23 | private async buildElement () { | |
24 | if (!this.content) return | |
25 | ||
26 | const { rootElement, componentsLoaded } = await this.customMarkupService.buildElement(this.content) | |
27 | this.contentWrapper.nativeElement.appendChild(rootElement) | |
28 | ||
29 | await componentsLoaded | |
30 | ||
31 | this.displayed = true | |
32 | } | |
33 | } |