You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
960 B
JavaScript
24 lines
960 B
JavaScript
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
import { unstable_capitalize as capitalize } from '@mui/utils';
|
|
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.
|
|
*/
|
|
export default function propsToClassKey(props) {
|
|
var variant = props.variant,
|
|
other = _objectWithoutProperties(props, ["variant"]);
|
|
var classKey = variant || '';
|
|
Object.keys(other).sort().forEach(function (key) {
|
|
if (key === 'color') {
|
|
classKey += isEmpty(classKey) ? props[key] : capitalize(props[key]);
|
|
} else {
|
|
classKey += "".concat(isEmpty(classKey) ? key : capitalize(key)).concat(capitalize(props[key].toString()));
|
|
}
|
|
});
|
|
return classKey;
|
|
} |