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