UNPKG

bem-cn-lite

Version:

Lite version of the friendly BEM-style class name generator, which is great for React

43 lines (42 loc) 1.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var bem_cn_1 = require("bem-cn"); var block = (0, bem_cn_1.setup)(); function isString(data) { return typeof data === 'string'; } function hasMixinShape(data) { return isString(data) || (Array.isArray(data) && data.every(isString)); } function bemClassNameLite(blockName) { var b = block(blockName); function element() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var elementName = args.shift(); var modifiers = args[0], mixin = args[1]; var result; if (typeof elementName !== 'string' || hasMixinShape(modifiers)) { mixin = modifiers; modifiers = null; } result = b(elementName, modifiers); if (mixin) { result = result.mix(mixin); } return result.toString(); } element.builder = function () { return b; }; return element; } bemClassNameLite.setup = function (config) { block = (0, bem_cn_1.setup)(config); }; bemClassNameLite.reset = function () { block = (0, bem_cn_1.setup)(); }; exports.default = bemClassNameLite;