UNPKG

react-classnaming

Version:

Tools to establish CSS classes as an explicit abstraction layer and to handle it as an interface between React and CSSStyleDeclaration

41 lines (40 loc) 1.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setOptions = exports.bem2arr = void 0; var $isArray = Array.isArray; var modDelimiter = "--", elementDelimiter = "__"; function bem2arr(query) { var $return = []; for (var base in query) { var baseQ = query[base]; $return.push(base); if (!baseQ) continue; if (typeof baseQ !== "object") { if (typeof baseQ === "string") $return.push("" + base + modDelimiter + baseQ); continue; } var isArray = $isArray(baseQ); // TODO check performance of `const in Array` for (var mod in baseQ) { //@ts-expect-error //TODO Split Array and Object? var modValue = baseQ[mod]; if (!modValue) continue; $return.push("" + base + (isArray ? "" : "" + modDelimiter + mod) + (typeof modValue !== "string" ? "" : "" + modDelimiter + modValue)); } } return $return; } exports.bem2arr = bem2arr; function setOptions(_a) { var _b = _a.elementDelimiter, elD = _b === void 0 ? elementDelimiter : _b, _c = _a.modDelimiter, modDel = _c === void 0 ? modDelimiter : _c; modDelimiter = modDel; elementDelimiter = elD; } exports.setOptions = setOptions;