const classToArray = (clazz) => { // console.log('classToArray: clazz=' + clazz + ', typeof=' + typeof clazz) if(!clazz) return [] // typeof clazz === 'Array' | if(Array.isArray(clazz) || clazz instanceof Array) return clazz if(typeof clazz === 'string' || clazz instanceof String) return clazz.split(' ') return [] } const classToString = (clazz) => { return classToArray(clazz).join(' ') } const mergeClasses = (priority, other) => { const priorityClasses = classToArray(priority) const otherClasses = classToArray(other) const classes = [...priorityClasses] const priorityKeys = priorityClasses.map(c => c.split('-')[0]) otherClasses.forEach(c => { if(!priorityKeys.includes(c.split('-')[0])) classes.push(c) }) return classes } const hasClassType = (clazz, classType) => { const classTypes = classToArray(clazz).map(c => c.split('-')[0]) const type = classType.split('-')[0] return classTypes.includes(type) } const getRoundedClass = (rounded) => { if(rounded) { if(rounded === 'md') return 'rounded-md' else if(rounded === 'lg') return 'rounded-lg' else if(rounded === 'full') return 'rounded-full' else return 'rounded' } return '' } export { classToArray, classToString, mergeClasses, hasClassType, getRoundedClass }