import { ChangeDetectionStrategy, Component, ElementRef, Input, OnInit } from '@angular/core'
+import { HooksService } from '@app/core/plugins/hooks.service'
const icons = {
'add': require('!!raw-loader?!../../../assets/images/global/add.svg'),
'sparkle': require('!!raw-loader?!../../../assets/images/global/sparkle.svg'),
'alert': require('!!raw-loader?!../../../assets/images/global/alert.svg'),
'cloud-error': require('!!raw-loader?!../../../assets/images/global/cloud-error.svg'),
+ 'clock': require('!!raw-loader?!../../../assets/images/global/clock.svg'),
'user-add': require('!!raw-loader?!../../../assets/images/global/user-add.svg'),
'no': require('!!raw-loader?!../../../assets/images/global/no.svg'),
'cloud-download': require('!!raw-loader?!../../../assets/images/global/cloud-download.svg'),
'cross': require('!!raw-loader?!../../../assets/images/global/cross.svg'),
'validate': require('!!raw-loader?!../../../assets/images/global/validate.svg'),
'tick': require('!!raw-loader?!../../../assets/images/global/tick.svg'),
+ 'repeat': require('!!raw-loader?!../../../assets/images/global/repeat.svg'),
+ 'inbox-full': require('!!raw-loader?!../../../assets/images/global/inbox-full.svg'),
'dislike': require('!!raw-loader?!../../../assets/images/video/dislike.svg'),
'support': require('!!raw-loader?!../../../assets/images/video/support.svg'),
'like': require('!!raw-loader?!../../../assets/images/video/like.svg'),
export class GlobalIconComponent implements OnInit {
@Input() iconName: GlobalIconName
- constructor (private el: ElementRef) {}
+ constructor (
+ private el: ElementRef,
+ private hooks: HooksService
+ ) { }
- ngOnInit () {
- const nativeElement = this.el.nativeElement
+ async ngOnInit () {
+ const nativeElement = this.el.nativeElement as HTMLElement
+ nativeElement.innerHTML = await this.hooks.wrapFun(
+ this.getSVGContent.bind(this),
+ { name: this.iconName },
+ 'common',
+ 'filter:internal.common.svg-icons.get-content.params',
+ 'filter:internal.common.svg-icons.get-content.result'
+ )
+ }
- nativeElement.innerHTML = icons[this.iconName]
+ private getSVGContent (options: { name: string }) {
+ return icons[options.name]
}
}