Buckets:
| ; | |
| var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; | |
| Object.defineProperty(exports, "__esModule", { | |
| value: true | |
| }); | |
| exports.default = resolveProps; | |
| var _clsx = _interopRequireDefault(require("clsx")); | |
| /** | |
| * Add keys, values of `defaultProps` that does not exist in `props` | |
| * @param defaultProps | |
| * @param props | |
| * @param mergeClassNameAndStyle If `true`, merges `className` and `style` props instead of overriding them. | |
| * When `false` (default), props override defaultProps. When `true`, `className` values are concatenated | |
| * and `style` objects are merged with props taking precedence. | |
| * @returns resolved props | |
| */ | |
| function resolveProps(defaultProps, props, mergeClassNameAndStyle = false) { | |
| const output = { | |
| ...props | |
| }; | |
| for (const key in defaultProps) { | |
| if (Object.prototype.hasOwnProperty.call(defaultProps, key)) { | |
| const propName = key; | |
| if (propName === 'components' || propName === 'slots') { | |
| output[propName] = { | |
| ...defaultProps[propName], | |
| ...output[propName] | |
| }; | |
| } else if (propName === 'componentsProps' || propName === 'slotProps') { | |
| const defaultSlotProps = defaultProps[propName]; | |
| const slotProps = props[propName]; | |
| if (!slotProps) { | |
| output[propName] = defaultSlotProps || {}; | |
| } else if (!defaultSlotProps) { | |
| output[propName] = slotProps; | |
| } else { | |
| output[propName] = { | |
| ...slotProps | |
| }; | |
| for (const slotKey in defaultSlotProps) { | |
| if (Object.prototype.hasOwnProperty.call(defaultSlotProps, slotKey)) { | |
| const slotPropName = slotKey; | |
| output[propName][slotPropName] = resolveProps(defaultSlotProps[slotPropName], slotProps[slotPropName], mergeClassNameAndStyle); | |
| } | |
| } | |
| } | |
| } else if (propName === 'className' && mergeClassNameAndStyle && props.className) { | |
| output.className = (0, _clsx.default)(defaultProps?.className, props?.className); | |
| } else if (propName === 'style' && mergeClassNameAndStyle && props.style) { | |
| output.style = { | |
| ...defaultProps?.style, | |
| ...props?.style | |
| }; | |
| } else if (output[propName] === undefined) { | |
| output[propName] = defaultProps[propName]; | |
| } | |
| } | |
| } | |
| return output; | |
| } |
Xet Storage Details
- Size:
- 2.38 kB
- Xet hash:
- e7a44c1e8802c192bbd52fc18d12683aa68853821b0081537677d1e8de81ce0b
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.