ideaz-element
Version:
<p align="center"> <a href="" target="_blank" rel="noopener noreferrer"> <img src="./docs/public/logo.svg" alt="Ideaz Element" width="180" style="width: 180px;" /> </a> </p>
1 lines • 1.57 kB
Source Map (JSON)
{"version":3,"file":"useFormComponentSlots.cjs","sources":["../../../packages/hooks/useFormComponentSlots.tsx"],"sourcesContent":["import { isFunction, isString } from '@ideaz/utils'\nimport type { Ref, Slot, VNode } from 'vue'\nimport type { Slots } from '../element/types'\n\nexport function useFormComponentSlots(props: Record<any, any>, slots: Slots, slotKeys: string[]) {\n const scopedSlots: Ref<Slots> = shallowRef({})\n\n const getSlotContent = (\n slot: string | (() => VNode) | undefined | Slot,\n defaultContent: Slot | (() => VNode) | undefined = () => <span />,\n ) => {\n if (isFunction(slot))\n return slot\n\n else if (isString(slot))\n return () => <span>{slot}</span>\n\n return defaultContent\n }\n\n watchEffect(() => {\n scopedSlots.value = {}\n slotKeys.forEach((key) => {\n if (slots[key] || props[key])\n scopedSlots.value[key] = getSlotContent((slots[key]), getSlotContent(props[key]))\n })\n })\n\n return { scopedSlots }\n}\n"],"names":["useFormComponentSlots","props","slots","slotKeys","scopedSlots","vue","is","slot","defaultContent","watchEffect","key","getSlotContent"],"mappings":"wKAIO,SAAAA,EAAAC,EAAAC,EAAAC,EAAA,CACL,MAAAC,EAAAC,EAAA,WAAA,CAAA,CAAA,+CAMEC,EAAA,WAAAC,CAAA,EAAAA,EAAAD,EAAA,SAAAC,CAAA,EAAA,IAAAF,EAAA,YAAA,OAAA,KAAA,CAAAE,CAAA,CAAA,EAMAC,EAGFC,OAAAA,EAAAA,YAAAA,IAAAA,CACEL,EAAAA,MAAAA,CAAAA,EACAD,EAAAA,QAAAA,GAAAA,EACED,EAAAQ,CAAA,GAAAT,EAAAS,CAAA,KAAAN,EAAA,MAAAM,CAAA,EAAAC,EAAAT,EAAAQ,CAAA,EAAAC,EAAAV,EAAAS,CAAA,CAAA,CAAA,EAEF,CAAA,CACF,CAAA,GAESN,YAAAA,EACX"}