Spaces:
Sleeping
Sleeping
| ; | |
| var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | |
| Object.defineProperty(exports, "__esModule", { | |
| value: true | |
| }); | |
| exports.default = extendSxProp; | |
| var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); | |
| var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); | |
| var _deepmerge = require("@mui/utils/deepmerge"); | |
| var _defaultSxConfig = _interopRequireDefault(require("./defaultSxConfig")); | |
| const _excluded = ["sx"]; | |
| const splitProps = props => { | |
| var _props$theme$unstable, _props$theme; | |
| const result = { | |
| systemProps: {}, | |
| otherProps: {} | |
| }; | |
| const config = (_props$theme$unstable = props == null || (_props$theme = props.theme) == null ? void 0 : _props$theme.unstable_sxConfig) != null ? _props$theme$unstable : _defaultSxConfig.default; | |
| Object.keys(props).forEach(prop => { | |
| if (config[prop]) { | |
| result.systemProps[prop] = props[prop]; | |
| } else { | |
| result.otherProps[prop] = props[prop]; | |
| } | |
| }); | |
| return result; | |
| }; | |
| function extendSxProp(props) { | |
| const { | |
| sx: inSx | |
| } = props, | |
| other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded); | |
| const { | |
| systemProps, | |
| otherProps | |
| } = splitProps(other); | |
| let finalSx; | |
| if (Array.isArray(inSx)) { | |
| finalSx = [systemProps, ...inSx]; | |
| } else if (typeof inSx === 'function') { | |
| finalSx = (...args) => { | |
| const result = inSx(...args); | |
| if (!(0, _deepmerge.isPlainObject)(result)) { | |
| return systemProps; | |
| } | |
| return (0, _extends2.default)({}, systemProps, result); | |
| }; | |
| } else { | |
| finalSx = (0, _extends2.default)({}, systemProps, inSx); | |
| } | |
| return (0, _extends2.default)({}, otherProps, { | |
| sx: finalSx | |
| }); | |
| } |