@amaui/style
Version:
CSS in JS styling solution
34 lines (33 loc) • 1.35 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.classNames = void 0;
const unique_1 = __importDefault(require("@amaui/utils/unique"));
const utils_1 = require("./utils");
function classNames(value, prefix = '', array = false) {
let classNameValues = [];
const method = (item, prop) => {
if ((0, utils_1.is)('string', item) && item.length)
classNameValues.push(item);
else if ((0, utils_1.is)('object', item))
Object.keys(item).forEach(prop_ => method(item[prop_], prop_));
else if ((0, utils_1.is)('array', item))
item.forEach(item_ => method(item_));
else if (prop && !!item)
classNameValues.push(prop);
};
// Move through the value
method(value);
classNameValues = classNameValues.filter(Boolean).map(item_ => {
let item = item_.trim();
if (['.', '#'].indexOf(item[0]) > -1)
item = item.slice(1);
return `${prefix || ''}${item}`;
});
classNameValues = (0, unique_1.default)(classNameValues);
return array ? classNameValues : classNameValues.join(' ');
}
exports.classNames = classNames;
exports.default = classNames;