comindware.core.ui
Version:
Comindware Core UI provides the basic components like editors, lists, dropdowns, popups that we so desperately need while creating Marionette-based single-page applications.
22 lines (16 loc) • 697 B
JavaScript
import icons from '../../form/editors/impl/iconEditor/icons';
export default ({ style = 'solid' } = {}) => {
const iconStyle = {
solid: 'fas',
regular: 'far',
light: 'fal',
brands: 'fab'
};
const getPrefix = iconInfo => (iconInfo.styles.includes('brands') ? iconStyle.brands : iconStyle[style]);
const prefixes = Object.entries(icons).reduce((prefixe, [ iconName, iconInfo ]) => {
prefixe[iconName] = getPrefix(iconInfo);
return prefixe;
}, {});
// multiple classes must be declared like 'spinner pulse'
return iconClass => ` ${prefixes[iconClass] || iconStyle[style]} ${iconClass?.replace(/(^|\s)/g, ' fa-')} `;
};