export enum IconProviderEnum { FortAwesome = 'fa', RemixIcon = 'ri', HtmlEntities = 'he', Text = 'text', } export class IconData { constructor( public provider: IconProviderEnum, public className: string, public html: string | null, public innerHTML: string | null = null, ) { } } export class IconHelper { static GetData(conf: string): IconData | null { const parts = conf.split(':'); switch (parts[0]) { case IconProviderEnum.FortAwesome: const faClassName = `fa fa-${parts.splice(1).join(' fa-')}`; return new IconData( IconProviderEnum.FortAwesome, faClassName, ``, ); case IconProviderEnum.RemixIcon: const riClassName = `ri-${parts.splice(1).join(' ri-')}`; return new IconData( IconProviderEnum.RemixIcon, riClassName, ``, ); case IconProviderEnum.HtmlEntities: const heClassName = 'the-icon'; return new IconData( IconProviderEnum.HtmlEntities, heClassName, null, `&${parts.splice(1).join(';&')};`, ); case IconProviderEnum.Text: const tClassName = 'the-icon'; return new IconData( IconProviderEnum.Text, tClassName, null, parts.splice(1).join(':'), ); } return null; } }