Spaces:
Sleeping
Sleeping
| ; | |
| var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | |
| Object.defineProperty(exports, "__esModule", { | |
| value: true | |
| }); | |
| exports.default = resolveProps; | |
| var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); | |
| /** | |
| * Add keys, values of `defaultProps` that does not exist in `props` | |
| * @param {object} defaultProps | |
| * @param {object} props | |
| * @returns {object} resolved props | |
| */ | |
| function resolveProps(defaultProps, props) { | |
| const output = (0, _extends2.default)({}, props); | |
| Object.keys(defaultProps).forEach(propName => { | |
| if (propName.toString().match(/^(components|slots)$/)) { | |
| output[propName] = (0, _extends2.default)({}, defaultProps[propName], output[propName]); | |
| } else if (propName.toString().match(/^(componentsProps|slotProps)$/)) { | |
| const defaultSlotProps = defaultProps[propName] || {}; | |
| const slotProps = props[propName]; | |
| output[propName] = {}; | |
| if (!slotProps || !Object.keys(slotProps)) { | |
| // Reduce the iteration if the slot props is empty | |
| output[propName] = defaultSlotProps; | |
| } else if (!defaultSlotProps || !Object.keys(defaultSlotProps)) { | |
| // Reduce the iteration if the default slot props is empty | |
| output[propName] = slotProps; | |
| } else { | |
| output[propName] = (0, _extends2.default)({}, slotProps); | |
| Object.keys(defaultSlotProps).forEach(slotPropName => { | |
| output[propName][slotPropName] = resolveProps(defaultSlotProps[slotPropName], slotProps[slotPropName]); | |
| }); | |
| } | |
| } else if (output[propName] === undefined) { | |
| output[propName] = defaultProps[propName]; | |
| } | |
| }); | |
| return output; | |
| } |