UNPKG

@mui/material

Version:

Material UI is an open-source React component library that implements Google's Material Design. It's comprehensive and can be used in production out of the box.

50 lines (49 loc) 1.71 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = mergeSlotProps; var _clsx = _interopRequireDefault(require("clsx")); function mergeSlotProps(externalSlotProps, defaultSlotProps) { if (!externalSlotProps) { return defaultSlotProps; } if (typeof externalSlotProps === 'function' || typeof defaultSlotProps === 'function') { return ownerState => { const defaultSlotPropsValue = typeof defaultSlotProps === 'function' ? defaultSlotProps(ownerState) : defaultSlotProps; const externalSlotPropsValue = typeof externalSlotProps === 'function' ? externalSlotProps({ ...ownerState, ...defaultSlotPropsValue }) : externalSlotProps; const className = (0, _clsx.default)(ownerState?.className, defaultSlotPropsValue?.className, externalSlotPropsValue?.className); return { ...defaultSlotPropsValue, ...externalSlotPropsValue, ...(!!className && { className }), ...(defaultSlotPropsValue?.style && externalSlotPropsValue?.style && { style: { ...defaultSlotPropsValue.style, ...externalSlotPropsValue.style } }) }; }; } const className = (0, _clsx.default)(defaultSlotProps?.className, externalSlotProps?.className); return { ...defaultSlotProps, ...externalSlotProps, ...(!!className && { className }), ...(defaultSlotProps?.style && externalSlotProps?.style && { style: { ...defaultSlotProps.style, ...externalSlotProps.style } }) }; }