@ly-js/ui
Version:
`@ly-js/ui` 是基于`vue3`常用库,会在`@ly-js/element`、`@ly-js/vant`中引入
32 lines (30 loc) • 724 B
JavaScript
function genBem(name, mods) {
if (!mods) {
return "";
}
if (typeof mods === "string") {
return ` ${name}--${mods}`;
}
if (Array.isArray(mods)) {
return mods.reduce((ret, item) => ret + genBem(name, item), "");
}
return Object.keys(mods).reduce((ret, key) => ret + (mods[key] ? genBem(name, key) : ""), "");
}
function createBEM(name) {
return (el, mods) => {
if (el && typeof el !== "string") {
mods = el;
el = "";
}
el = el ? `${name}__${el}` : name;
return `${el}${genBem(el, mods)}`;
};
}
function createNamespace(name) {
const prefixedName = `ly-${name}`;
return [
prefixedName,
createBEM(prefixedName)
];
}
export { createBEM, createNamespace };