Buckets:
ktongue/docker_container / fem_tutos /node_modules /@mui /utils /esm /composeClasses /composeClasses.js
| /* eslint no-restricted-syntax: 0, prefer-template: 0, guard-for-in: 0 | |
| --- | |
| These rules are preventing the performance optimizations below. | |
| */ | |
| /** | |
| * Compose classes from multiple sources. | |
| * | |
| * @example | |
| * ```tsx | |
| * const slots = { | |
| * root: ['root', 'primary'], | |
| * label: ['label'], | |
| * }; | |
| * | |
| * const getUtilityClass = (slot) => `MuiButton-${slot}`; | |
| * | |
| * const classes = { | |
| * root: 'my-root-class', | |
| * }; | |
| * | |
| * const output = composeClasses(slots, getUtilityClass, classes); | |
| * // { | |
| * // root: 'MuiButton-root MuiButton-primary my-root-class', | |
| * // label: 'MuiButton-label', | |
| * // } | |
| * ``` | |
| * | |
| * @param slots a list of classes for each possible slot | |
| * @param getUtilityClass a function to resolve the class based on the slot name | |
| * @param classes the input classes from props | |
| * @returns the resolved classes for all slots | |
| */ | |
| export default function composeClasses(slots, getUtilityClass, classes = undefined) { | |
| const output = {}; | |
| for (const slotName in slots) { | |
| const slot = slots[slotName]; | |
| let buffer = ''; | |
| let start = true; | |
| for (let i = 0; i < slot.length; i += 1) { | |
| const value = slot[i]; | |
| if (value) { | |
| buffer += (start === true ? '' : ' ') + getUtilityClass(value); | |
| start = false; | |
| if (classes && classes[value]) { | |
| buffer += ' ' + classes[value]; | |
| } | |
| } | |
| } | |
| output[slotName] = buffer; | |
| } | |
| return output; | |
| } |
Xet Storage Details
- Size:
- 1.42 kB
- Xet hash:
- 4d37331e599274021c59c9f5283ea5912df508ca5bc28a131231a0d062a34690
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.