UNPKG

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 3.82 kB
{"version":3,"file":"FormItemLabel.cjs","sources":["../../../../../packages/element/form/src/FormItemLabel.tsx"],"sourcesContent":["import { isFunction, isObject, isSlot, isString } from '@ideaz/utils'\nimport { QuestionFilled } from '@element-plus/icons-vue'\nimport { ElIcon, ElTooltip } from 'element-plus'\nimport type { FormItemTooltip, TooltipObjectType } from '../../types'\n\ninterface TooltipReference { reference?: (() => VNode) }\n\nexport default defineComponent({\n name: 'FormItemLabel',\n props: {\n label: {\n type: [String, Function],\n default: '',\n },\n tooltip: {\n type: [String, Function, Object] as PropType<FormItemTooltip>,\n default: '',\n },\n colon: {\n type: Boolean,\n default: false,\n },\n },\n setup(props, { slots }) {\n const ns = useNamespace('form-item')\n\n const renderReference = (tooltip: FormItemTooltip) => {\n if (isObject(tooltip) && isFunction((tooltip as TooltipReference).reference)) {\n return (tooltip as TooltipReference).reference?.()\n }\n if (isSlot((tooltip as TooltipReference).reference)) {\n return slots[(tooltip as { reference: string }).reference]?.()\n }\n return tooltip && (\n <ElIcon class={ns.be('label', 'icon')}>\n <QuestionFilled />\n </ElIcon>\n )\n }\n\n return () => {\n const { label, colon, tooltip } = props\n\n const tooltipProps = isObject(tooltip)\n ? { content: isString((tooltip as TooltipObjectType).content) ? (tooltip as TooltipObjectType).content : '' }\n : { content: isString(tooltip) ? tooltip : '' }\n const tooltipSlot: any = {}\n\n if (isObject(tooltip)) {\n const content = (tooltip as TooltipObjectType).content\n if (isFunction(content)) {\n tooltipSlot.content = () => content()\n }\n if (isSlot(content)) {\n tooltipSlot.content = () => slots[content as string]?.()\n }\n }\n\n if (isFunction(tooltip))\n tooltipSlot.content = () => tooltip()\n\n if (isSlot(tooltip))\n tooltipSlot.content = () => slots[tooltip as string]?.()\n\n return (\n <span>\n {label}\n <ElTooltip\n effect=\"dark\"\n placement=\"top\"\n {...tooltipProps as Omit<TooltipObjectType, 'content'>}\n v-slots={tooltipSlot}\n >\n {renderReference(tooltip)}\n </ElTooltip>\n {colon ? ':' : null}\n </span>\n )\n }\n },\n})\n"],"names":["FormItemLabel","vue","name","props","label","type","default","tooltip","colon","slots","ns","useNamespace","_a","is","_b","elementPlus","tooltipProps","content","tooltipSlot"],"mappings":"6NAOAA,EAAAC,EAAA,gBAAA,CACEC,KAAAA,gBACAC,MAAAA,CACEC,MAAAA,CACEC,KAAAA,CAAAA,OAAAA,QAAAA,EACAC,QAAAA,IAEFC,QAAAA,CACEF,KAAAA,CAAAA,OAAAA,SAAAA,MAAAA,EACAC,QAAAA,IAEFE,MAAAA,CACEH,KAAAA,QACAC,QAAAA,EACF,YAEaG,MAAAA,CAAM,EAAA,CACnB,MAAAC,EAAAC,EAAA,aAAA,WAAA,iEAIIC,EAAAL,EAAA,YAAA,YAAAK,EAAA,KAAAL,GAEFM,EAAA,OAAAN,EAAA,SAAA,GACEO,EAAAL,EAAAF,EAAA,aAAA,YAAAO,EAAA,KAAAL,GAEFF,GAAAN,EAAA,YAAAc,EAAA,OAAA,CAAc,MAAAL,EAAA,GAAA,QAAA,MAAA,CACyB,EAAA,CAAAJ,QAAAA,IAAAA,CAAAA,EAAAA,YAAAA,EAAAA,eAAAA,KAAAA,IAAAA,CAAAA,KAMzC,MAAA,IAAA,uBACwBC,QAAAA,CAAQ,EAAAJ,EAE9Ba,EAAAH,EAAA,SAAAN,CAAA,EAAA,2CAC8G,EAAA,CACxGU,QAAAA,EAAAA,SAAAA,CAAAA,EAAAA,EAAAA,SAGN,GAAAJ,EAAA,SAAAN,CAAA,EAAA,CACE,MAAAU,EAAAV,EAAA,QACAM,EAAA,WAAAI,CAAA,IACEC,EAAAA,QAAAA,IAAAA,EAAAA,GAEFL,EAAA,OAAAI,CAAA,gEAGF,CAEA,OAAAJ,EAAA,WAAAN,CAAA,IAAAW,EAAA,QAAA,IAAAX,EAAA,GAGAM,EAAA,OAAAN,CAAA,IAAAW,EAAA,QAAA,IAAA,OAAA,OAAAN,EAAAH,EAAAF,KAAA,YAAAK,EAAA,KAAAH,0EAKU,OAAA,OAAA,UAAA,KAAA,EAAAO,CAAA,EAAA,CAIYV,QAAAA,IAAAA,CAAAA,EAAAA,CAAAA,CAAAA,MACI,CAAA,EAAAE,EAAA,IAAA,IAAA,CAAA,EAQ9B,CACF,CAAA"}