34 lines
1.2 KiB
Plaintext
34 lines
1.2 KiB
Plaintext
|
"use strict";
|
||
|
|
||
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.default = propsToClassKey;
|
||
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
||
|
var _capitalize = _interopRequireDefault(require("@mui/utils/capitalize"));
|
||
|
const _excluded = ["variant"];
|
||
|
function isEmpty(string) {
|
||
|
return string.length === 0;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Generates string classKey based on the properties provided. It starts with the
|
||
|
* variant if defined, and then it appends all other properties in alphabetical order.
|
||
|
* @param {object} props - the properties for which the classKey should be created.
|
||
|
*/
|
||
|
function propsToClassKey(props) {
|
||
|
const {
|
||
|
variant
|
||
|
} = props,
|
||
|
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
||
|
let classKey = variant || '';
|
||
|
Object.keys(other).sort().forEach(key => {
|
||
|
if (key === 'color') {
|
||
|
classKey += isEmpty(classKey) ? props[key] : (0, _capitalize.default)(props[key]);
|
||
|
} else {
|
||
|
classKey += `${isEmpty(classKey) ? key : (0, _capitalize.default)(key)}${(0, _capitalize.default)(props[key].toString())}`;
|
||
|
}
|
||
|
});
|
||
|
return classKey;
|
||
|
}
|