11<script setup>
2- import { computed , getCurrentInstance , ref } from ' vue'
2+ import { computed , ref } from ' vue'
33import { resetObjectProperties , toUniqueArray } from ' @/helpers'
44import FormGroup from ' ./FormGroup.vue'
55
6- const instance = getCurrentInstance ()
76const emits = defineEmits ([ ' submit' ])
87
98const props = defineProps ({
@@ -17,6 +16,10 @@ const props = defineProps({
1716 required: false ,
1817 default: ' '
1918 },
19+ options: {
20+ type: Object ,
21+ default : () => ({})
22+ },
2023 schema: {
2124 type: Object ,
2225 required: true
@@ -32,9 +35,9 @@ const props = defineProps({
3235})
3336
3437/** Data / Refs */
35- const formGenerator = ref (instance? .proxy || null )
3638const fieldElements = ref ([])
3739const formErrors = ref ({})
40+ const formOptions = computed (() => ({ ... props .options , idPrefix: props .idPrefix }))
3841
3942/**
4043 * Update form model key with its new value.
@@ -79,7 +82,7 @@ const onReset = () => {
7982 props .model = resetObjectProperties (props .model )
8083}
8184
82- defineExpose ({ hasErrors, idPrefix : props . idPrefix })
85+ defineExpose ({ hasErrors })
8386 </script >
8487
8588<template >
@@ -94,7 +97,8 @@ defineExpose({ hasErrors, idPrefix: props.idPrefix })
9497 <template v-for =" field in props .schema .fields " :key =" field " >
9598 <form-group
9699 :ref =" el => fieldElements.push(el)"
97- : form- generator= " formGenerator" : field= " field"
100+ :form-options =" formOptions"
101+ :field =" field"
98102 :model =" props.model"
99103 @value-updated =" updateGeneratorModel"
100104 @validated =" onFieldValidated"
@@ -108,7 +112,7 @@ defineExpose({ hasErrors, idPrefix: props.idPrefix })
108112 <template v-for =" field in group .fields " :key =" field " >
109113 <form-group
110114 :ref =" el => fieldElements.push(el)"
111- : form- generator = " formGenerator "
115+ :form-options = " formOptions "
112116 :field =" field"
113117 :model =" props.model"
114118 @value-updated =" updateGeneratorModel"
0 commit comments