@fe6/water-pro
Version:
An enterprise-class UI design language and Vue-based implementation
37 lines (34 loc) • 874 B
text/typescript
import { isArray, isString, isObject } from './util';
function classNames(...args: any[]) {
const classes = [];
for (let i = 0; i < args.length; i++) {
const value = args[i];
if (!value) {
continue;
}
if (isString(value)) {
classes.push(value);
} else if (isArray(value)) {
for (let i = 0; i < value.length; i++) {
const inner = classNames(value[i]);
if (inner) {
classes.push(inner);
}
}
} else if (isObject(value)) {
for (const name in value) {
if (value[name]) {
classes.push(name);
}
}
}
}
return classes.join(' ');
}
export default classNames;
export function getClassName(prefixCls: string, size: string) {
return classNames(prefixCls, {
[`${prefixCls}-sm`]: size === 'small',
[`${prefixCls}-lg`]: size === 'large',
});
}