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
JavaScript
;
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 };
}