react-classnaming
Version:
Tools to establish CSS classes as an explicit abstraction layer and to handle it as an interface between React and CSSStyleDeclaration
34 lines (33 loc) • 1.53 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.classNaming = void 0;
var core_1 = require("./core");
var consts_json_1 = require("./consts.json");
/** Set context
* @example
* ```typescript
* const classes = classNaming({classnames: require("./some.css"), className?})
* const classes = classNaming(this.props)
* const classes = classNaming<Props>()
* const classes = classNaming<MyClassNames>()
* ```
*/
function classNaming(context) {
if (context === void 0) { context = consts_json_1.EMPTY_OBJECT; }
var className = context.className;
var host = function (arg0, arg1) { return classes(context, arg0, arg1); };
return core_1.wrapper(host, className);
}
exports.classNaming = classNaming;
/// CONTEXTED. TS-notation not matters
function classes(_a, arg0, arg1) {
var className = _a.className, classnames = _a.classnames, preStacked = _a.stacked;
var source = typeof arg0 === "object" ? arg0 : arg1
//TODO check what will happen with classes()
, allowed = source && core_1.resolver(classnames, source /* TS-bug? `source` couldn't be `undefined`*/), stacked = core_1.joinWithLead(preStacked, allowed), result = arg0 === true && className
? core_1.joinWithLead(className, stacked)
: stacked, host = function (arg0, arg1) { return classes({ classnames: classnames, className: className, stacked: result },
//@ts-expect-error Due to not accurate `withClassName`
arg0, arg1); };
return core_1.wrapper(host, result);
}