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