@variantjs/core
Version:
VariantJS common functions and utilities
22 lines (16 loc) • 682 B
text/typescript
import { CSSClass, CSSClasses, CSSClassKeyValuePair } from './types/CSSClass';
export const selectClasses = (classesObject: CSSClassKeyValuePair): CSSClasses => Object.keys(classesObject).filter((className: string) => !!classesObject[className]);
const mergeClasses = (...classes: CSSClasses): string => classes
.map((className: CSSClass): string => {
if (typeof className === 'string' || className === undefined) {
return className || '';
}
if (Array.isArray(className)) {
return mergeClasses(...className);
}
return mergeClasses(...selectClasses(className));
})
.join(' ')
.replace(/ +/g, ' ')
.trim();
export default mergeClasses;