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;
}
}