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.72 kB
Source Map (JSON)
{"version":3,"file":"FormColumns.cjs","sources":["../../../../../packages/element/form/src/FormColumns.tsx"],"sourcesContent":["import { isFunction } from '@ideaz/utils'\nimport { cloneDeep, set } from 'lodash-unified'\nimport type { FormColumn } from '../../types'\nimport {\n useCol,\n useFormSlots,\n} from './hooks'\nimport FormItem from './FormItem'\nimport type { FormProps } from './props'\n\nfunction renderContent(col: FormColumn, slots: any, data: any) {\n if (col.slot)\n return slots[col.slot] && slots[col.slot]({ formData: data })\n\n if (isFunction(col.render))\n return col.render({ formData: data })\n}\n\nexport default defineComponent({\n name: 'FormColumns',\n components: { FormItem },\n props: {\n columns: {\n type: Array as PropType<FormColumn[]>,\n default: () => [],\n },\n formProps: {\n type: Object as PropType<FormProps>,\n default: () => ({}),\n },\n options: {\n type: Object,\n default: () => ({}),\n },\n formConfig: {\n type: Object,\n default: () => ({}),\n },\n modelValue: {\n type: Object,\n default: () => ({}),\n },\n },\n emits: ['update:modelValue', 'change'],\n setup(props, { slots, emit }) {\n return () => {\n const { columns, formProps, options, modelValue } = props\n return columns.map((col: FormColumn, colIndex: number) => {\n const { scopedSlots } = useFormSlots(col, slots, formProps)\n const { colKls, colStyle } = useCol(formProps, col)\n return (\n <FormItem\n key={col.__key}\n ref={`formItem${colIndex}`}\n col={col}\n modelValue={modelValue}\n formConfig={formProps}\n options={options}\n class={colKls.value}\n style={colStyle.value}\n v-slots={{ ...slots, ...scopedSlots }}\n v-show={isFunction(col.show) ? col.show(modelValue) : col.show}\n onUpdate:modelValue={(val: any, field: string) => {\n const newVal = set(cloneDeep(modelValue), field, val)\n emit('update:modelValue', newVal)\n emit('change', { value: val, field, formData: newVal })\n }}\n >\n {(isFunction(col.render) || col.slot) ? renderContent(col, slots, props.modelValue) : null}\n </FormItem>\n )\n })\n }\n },\n})\n"],"names":["renderContent","col","slots","data","formData","FormColumns","vue","name","components","FormItem","props","columns","type","formProps","default","options","formConfig","modelValue","emits","emit","scopedSlots","colStyle","useCol","val","field","newVal","set","cloneDeep","value","is"],"mappings":"ukBAUA,SAAAA,EAAAC,EAAAC,EAAAC,EAAA,CACE,GAAAF,EAAA,KAAA,OAAAC,EAAAD,EAAA,IAAA,GAAAC,EAAAD,EAAA,IAAA,EAAA,CAC8CG,SAAAA,CAAe,CAAA,6CAGvCA,SAAAA,CAAe,CAAA,CACvC,CAEA,MAAAC,EAAAC,EAAA,gBAAA,CACEC,KAAAA,cACAC,WAAAA,CAAcC,SAAAA,GACdC,MAAAA,CACEC,QAAAA,CACEC,KAAAA,sBAGFC,UAAAA,CACED,KAAAA,OACAE,QAAAA,KAAAA,CAAAA,IAEFC,QAAAA,CACEH,KAAAA,OACAE,QAAAA,KAAAA,CAAAA,IAEFE,WAAAA,CACEJ,KAAAA,OACAE,QAAAA,KAAAA,CAAAA,IAEFG,WAAAA,CACEL,KAAAA,OACAE,QAAAA,KAAAA,CAAAA,EACF,GAEFI,MAAAA,CAAAA,oBAAAA,QAAAA,mBACsBC,KAAAA,CAAK,EAAA,CACzB,MAAA,IAAA,uCACuCF,WAAAA,CAAW,EAAAP,6BAEtCU,YAAAA,mCACQC,SAAAA,CAAS,EAAAC,EAAA,OAAAT,EAAAZ,CAAA,EACzB,OAAAK,EAAA,eAAAA,EAAA,YAAAG,EAAA,gCAG8B,IAAAR,EAClB,WAAAgB,EACc,WAAAJ,EACD,QAAAE,8BAGA,sBAAA,CAAAQ,EAAAC,IAAA,CAInB,MAAAC,EAAAC,EAAAC,EAAAV,CAAA,EAAAO,EAAAD,CAAA,EACAJ,EAAAA,oBAAAA,CAAAA,cACiBS,MAAAA,UAAmBxB,SAAAA,CAAiB,CAAA,CACvD,CAAC,EAAA,uEANU,GAAAF,MAAwB,CAAA,EAAA,CAAA,CAAAI,EAAA,MAAAuB,EAAA,WAAA5B,EAAA,IAAA,EAAAA,EAAA,KAAAgB,CAAA,EAAAhB,EAAA,IAAA,CAAA,CAAA,CAWzC,CAAA,EAEJ,CACF,CAAA"}