export const FormField = { name: 'FormField', props: { field: { type: Object, required: true, validator: (field) => { return field.name && field.type; } }, fieldId: { type: String, required: true }, modelValue: { default: null } }, emits: ['update:modelValue'], computed: { value: { get() { // Gebruik default waarde als modelValue undefined is if (this.modelValue === undefined || this.modelValue === null) { if (this.field.type === 'boolean') { return this.field.default === true; } return this.field.default !== undefined ? this.field.default : ''; } return this.modelValue; }, set(value) { this.$emit('update:modelValue', value); } }, fieldType() { // Map Python types naar HTML input types const typeMap = { 'str': 'text', 'string': 'text', 'int': 'number', 'integer': 'number', 'float': 'number', 'text': 'textarea', 'enum': 'select', 'boolean': 'checkbox' }; return typeMap[this.field.type] || this.field.type; }, stepValue() { return this.field.type === 'float' ? 'any' : 1; }, description() { return this.field.description || ''; } }, methods: { handleFileUpload(event) { const file = event.target.files[0]; if (file) { this.value = file; } } }, template: `