export const DynamicForm = { name: 'DynamicForm', props: { formData: { type: Object, required: true, validator: (formData) => { return formData.title && formData.fields && Array.isArray(formData.fields); } }, formValues: { type: Object, required: true }, isSubmitting: { type: Boolean, default: false } }, emits: ['submit', 'cancel'], methods: { handleSubmit() { // Basic validation const requiredFields = this.formData.fields.filter(field => field.required); const missingFields = requiredFields.filter(field => { const value = this.formValues[field.name]; return !value || (typeof value === 'string' && !value.trim()); }); if (missingFields.length > 0) { const fieldNames = missingFields.map(f => f.label).join(', '); alert(`De volgende velden zijn verplicht: ${fieldNames}`); return; } this.$emit('submit'); }, handleCancel() { this.$emit('cancel'); }, updateFieldValue(fieldName, value) { // Emit an update for reactive binding this.$emit('update-field', fieldName, value); } }, template: `