@jbrowse/core
Version:
JBrowse 2 core libraries used by plugins
45 lines (44 loc) • 1.11 kB
JavaScript
export const classnames = (args) => {
const len = args.length;
let i = 0;
let cls = '';
for (; i < len; i++) {
const arg = args[i];
if (arg == null) {
continue;
}
let toAdd;
switch (typeof arg) {
case 'boolean':
break;
case 'object': {
if (Array.isArray(arg)) {
toAdd = classnames(arg);
}
else {
const obj = arg;
toAdd = '';
for (const k in obj) {
if (obj[k] && k) {
if (toAdd) {
toAdd += ' ';
}
toAdd += k;
}
}
}
break;
}
default: {
toAdd = arg;
}
}
if (toAdd) {
if (cls) {
cls += ' ';
}
cls += toAdd;
}
}
return cls;
};