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 4.22 kB
{"version":3,"file":"useFormItems.cjs","sources":["../../../../../../packages/element/form/src/hooks/useFormItems.ts"],"sourcesContent":["import { isFunction, isObject, isString, uid } from '@ideaz/utils'\nimport type { FormProps } from '../props'\nimport type { FormColumn } from '../../../types'\n\nexport const SELECT_TYPES = ['cascader', 'select', 'datepicker', 'picker', 'checkbox', 'radio']\n\nexport function useFormItems(props: FormProps) {\n const { t } = useLocale()\n\n const setDefaultPlaceholder = (formItem: FormColumn) => {\n const label = formItem.label || formItem.formItemProps?.label || ''\n const type = isFunction(formItem.component) ? formItem.component() : isObject(formItem.component) ? formItem.component.name : formItem.component\n\n if (SELECT_TYPES.includes((type || '').toLowerCase()))\n return (isString(label) && !label.includes('Slot')) ? `${t('form.selectPlaceholder')}${label}` : `${t('form.selectPlaceholder')}`\n\n else\n return (isString(label) && !label.includes('Slot')) ? `${t('form.inputPlaceholder')}${label}` : `${t('form.inputPlaceholder')}`\n }\n\n const isHide = (item: FormColumn) => {\n return isFunction(item.hide) ? item.hide(props.modelValue) : item.hide\n }\n\n const formatFormItems = computed<FormColumn[]>(() => {\n const _schema = props.columns?.sort((a, b) => (a.order || 10000) - (b.order || 10000)).map((item: FormColumn) => ({\n show: true,\n ...item,\n __key: item.key || item.field || item.slot || uid(),\n children: item.children\n ? item.children.map((child) => {\n const isPlaceholder = Object.keys(child.fieldProps || {}).some(key => key.includes('placeholder') || key.includes('Placeholder'))\n const fieldProps = !isPlaceholder\n ? {\n placeholder: setDefaultPlaceholder(child),\n clearable: true,\n filterable: true,\n ...child?.fieldProps,\n }\n : {\n clearable: true,\n filterable: true,\n ...child?.fieldProps,\n }\n return {\n show: true,\n ...child,\n fieldProps,\n }\n })\n : undefined,\n }))\n return _schema\n .filter((item: FormColumn) => !isHide(item))\n .map((item: FormColumn) => ({\n ...item,\n fieldProps: {\n placeholder: setDefaultPlaceholder(item),\n clearable: true,\n filterable: true,\n ...item?.fieldProps,\n },\n }))\n })\n\n return { formatFormItems }\n}\n"],"names":["SELECT_TYPES","useFormItems","props","useLocale","setDefaultPlaceholder","formItem","label","_a","type","is","isHide","item","vue","a","b","uid","child","fieldProps","key"],"mappings":"wQAIOA,EAAA,CAAA,WAAA,SAAA,aAAA,SAAA,WAAA,OAAA,EAEA,SAAAC,EAAAC,EAAA,CACL,KAAA,CAAA,CAAA,EAAAC,EAAA,UAAA,EAEAC,EAAAC,GAAA,OACE,MAAAC,EAAAD,EAAA,SAAAE,EAAAF,EAAA,gBAAA,YAAAE,EAAA,QAAA,GACAC,EAAAC,EAAA,WAAAJ,EAAA,SAAA,EAAAA,EAAA,UAAA,EAAAI,EAAA,SAAAJ,EAAA,SAAA,EAAAA,EAAA,UAAA,KAAAA,EAAA,UAEA,OAAAL,EAAA,UAAAQ,GAAA,IAAA,YAAA,CAAA,EACEC,EAAA,SAAAH,CAAA,GAAA,CAAAA,EAAA,SAAA,MAAA,EAAA,GAAA,EAAA,wBAAA,CAAA,GAAAA,CAAA,GAAA,GAAA,EAAA,wBAAA,CAAA,GAGAG,EAAA,SAAAH,CAAA,GAAA,CAAAA,EAAA,SAAA,MAAA,EAAA,GAAA,EAAA,uBAAA,CAAA,GAAAA,CAAA,GAAA,GAAA,EAAA,uBAAA,CAAA,EAA6H,EAGjII,EAAAC,GACEF,EAAA,WAAAE,EAAA,IAAA,EAAAA,EAAA,KAAAT,EAAA,UAAA,EAAAS,EAAA,KA4CF,MAAA,CAAA,gBAzCAC,EAAA,SAAA,IAAA,OA4BE,QA3BAL,EAAAL,EAAA,UAAA,YAAAK,EAAA,KAAA,CAAAM,EAAAC,KAAAD,EAAA,OAAA,MAAAC,EAAA,OAAA,MAAA,IAAAH,IAAA,CAAkH,KAAA,GAC1G,GAAAA,EACH,MAAAA,EAAA,KAAAA,EAAA,OAAAA,EAAA,MAAAI,EAAA,IAAA,EAC+C,SAAAJ,EAAA,SAAAA,EAAA,SAAA,IAAAK,GAAA,CAI9C,MAAAC,EADA,OAAA,KAAAD,EAAA,YAAA,CAAA,CAAA,EAAA,KAAAE,GAAAA,EAAA,SAAA,aAAA,GAAAA,EAAA,SAAA,aAAA,CAAA,EAMgB,CAEZ,UAAA,GACa,WAAA,GACC,GAAAF,GAAA,YAAAA,EAAA,UACF,EAVhB,CACI,YAAAZ,EAAAY,CAAA,EAC0C,UAAA,GAC7B,WAAA,GACC,GAAAA,GAAA,YAAAA,EAAA,UACF,EAOhB,MAAA,CAAO,KAAA,GACC,GAAAA,EACH,WAAAC,CACH,CACF,CAAA,EAAA,MAEA,KAEN,OAAAN,GAAA,CAAAD,EAAAC,CAAA,CAAA,EAAA,IAAAA,IAAA,CAE8B,GAAAA,EACvB,WAAA,CACS,YAAAP,EAAAO,CAAA,EAC6B,UAAA,GAC5B,WAAA,GACC,GAAAA,GAAA,YAAAA,EAAA,UACH,CACX,EAAA,CACA,CAAA,CAGN,CACF"}