ohctechv3/.svn/pristine/0b/0b2a753eb898e841c2edd3df00037eafb5a352ed.svn-base

41 lines
1.7 KiB
Plaintext
Raw Normal View History

2024-10-28 15:03:36 +05:30
"use strict";
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;
}