import { Component, Host, AfterContentChecked, OnDestroy, } from '@angular/core'; import {DomSanitizer, SafeHtml} from '@angular/platform-browser'; import {LocaleService, LocaleSubject} from "corifeus-web"; import {Layout} from "../layout"; const twemoji = require('twemoji').default; import { Subscription } from 'rxjs' @Component({ selector: 'cory-open-collective', template: ` {{ i18n.opencollective.contributors}} {{ i18n.opencollective.contributorsMessage }} {{ i18n.opencollective.backers}} {{ i18n.opencollective.backersMessage }} {{ i18n.opencollective.backersLink}} {{ i18n.opencollective.sponsors}} {{ i18n.opencollective.sponsorsMessage }} {{ i18n.opencollective.sponsorsMessageLink }} ` }) export class OpenCollective implements AfterContentChecked, OnDestroy { subscriptions$: Array = [] public pkg: any; public twemojiPraise: SafeHtml; i18n: any constructor( public sanitize: DomSanitizer, protected locale: LocaleService, private parent: Layout, ) { this.twemojiPraise = sanitize.bypassSecurityTrustHtml(twemoji.parse('🙏', { folder: 'svg', ext: '.svg', })) this.subscriptions$.push( this.locale.subscribe((subject: LocaleSubject) => { this.i18n = subject.locale.data.pages }) ) } ngAfterContentChecked() { this.pkg = this.parent.packageJson; } ngOnDestroy(): void { this.subscriptions$.forEach(subs$ => subs$.unsubscribe()) } }