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

28 lines (27 loc) 1.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.classBeming = void 0; var bem_core_1 = require("./bem.core"); var core_1 = require("./core"); var consts_json_1 = require("./consts.json"); /** Set context * @example * ```typescript * const bem = classBeming({classnames: require("./some.css"), className?}) * const bem = classBeming(this.props) * const bem = classBeming<Props>() * const bem = classBeming<MyClassNames>() * ``` */ function classBeming(context) { if (context === void 0) { context = consts_json_1.EMPTY_OBJECT; } var className = context.className; var host = function (arg0, arg1) { return bem(context, arg0, arg1); }; return core_1.wrapper(host, className); } exports.classBeming = classBeming; function bem(_a, arg0, arg1) { var className = _a.className, classnames = _a.classnames; var source = typeof arg0 === "object" ? arg0 : arg1, debemed = source && bem_core_1.bem2arr(source), picked = debemed && core_1.picker(classnames, debemed), result = core_1.joinWithLead(arg0 === true && className, picked); return { className: result }; }