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 • 2.69 kB
Source Map (JSON)
{"version":3,"file":"useFormItemSlots.mjs","sources":["../../../../../../packages/element/form/src/hooks/useFormItemSlots.tsx"],"sourcesContent":["import { isFunction, isSlot } from '@ideaz/utils'\nimport type { VNode } from 'vue'\nimport type { FormItemProps } from '../props'\nimport FormItemLabel from '../FormItemLabel'\nimport type { Slots } from '../../../types'\n\nexport function useFormItemSlots(props: FormItemProps, slots: Slots) {\n const getContent = () => {\n const { col } = props\n if (isSlot(col.label) && isFunction(slots[col.label as string]))\n return (slots[col.label as string] as () => VNode)()\n\n if (isFunction(col.label))\n return col.label()\n }\n\n const getColon = () => {\n const { col, formConfig } = props\n if (Object.prototype.hasOwnProperty.call(col.formItemProps || {}, 'colon'))\n return col.formItemProps?.colon\n\n if (Object.prototype.hasOwnProperty.call(col, 'colon'))\n return col.colon\n\n return formConfig.colon\n }\n\n const vSlots = computed<Slots>(() => {\n const { col } = props\n const vSlots: Slots = {} as Slots\n if (col.formItemProps?.label || col.label) {\n vSlots.label = () => {\n return getContent()\n || (\n <FormItemLabel\n {...{\n label: col.label,\n tooltip: col.tooltip,\n ...col.formItemProps,\n colon: getColon(),\n }}\n v-slots={slots}\n />\n )\n }\n }\n\n if (col.error) {\n if (isSlot(col.error) && isFunction(slots[col.error as string])) {\n const error = col.error as string\n vSlots.error = () => (slots[error!] as (() => VNode))()\n }\n else if (isFunction(col.error) && isFunction(slots.error)) {\n vSlots.error = () => (slots.error as () => VNode)()\n }\n else {\n vSlots.error = () => (slots.error as () => VNode)()\n }\n }\n return vSlots\n })\n\n return { vSlots }\n}\n"],"names":["useFormItemSlots","props","slots","col","isFunction","formConfig","vSlots","computed","getContent","createVNode","FormItemLabel","isSlot","error"],"mappings":";;;;AAMO,SAAAA,EAAAC,GAAAC,GAAA;;;MAEKC,KAAAA;AAAAA,IAAI,IAAAF;;AAIZ,QAAAG,EAAAD,EAAA,KAAA,EAAA,QAAAA,EAAA,MAAA;AAAA;;;;MAKaE,YAAAA;AAAAA,IAAW,IAAAJ;qIAIxB,OAAA,UAAA,eAAA,KAAAE,GAAA,OAAA,IAAAA,EAAA;;;IAyCOG,QAnCTC,EAAA,MAAA;;;QACUJ,KAAAA;AAAAA,MAAI,IAAAF;oFAIRO,EAAA,KAAAC,EAAAC,GAAA;AAAA;;;;MAOyB,GAAAR,CAAA;AAS3B,YAAAS,EAAAR,EAAA,KAAA,KAAAC,EAAAF,EAAAC,EAAA,KAAA,CAAA,GAAA;AACE,gBAAAS,IAAAT,EAAA;;QAEF,MAAA,CAAAC,EAAAD,EAAA,KAAA,KAAAC,EAAAF,EAAA,KAAA;AAQF,aAAAI;AAAA,IACF,CAAA;AAAA;AAGF;"}