@props([
'title',
'name',
'hint' => null,
'maxNotes' => 1000,
'collapsed' => true,
'submission' => null,
'type' => 'siri',
])
data[$name . "_notes"] ?? '')) }}';
if (oldNotes) {
this.note = window.restoreNote ? window.restoreNote(oldNotes) : oldNotes;
// Find the textarea and set its value
setTimeout(() => {
const textarea = this.$el.querySelector('#{{ $name }}_notes');
if (textarea) {
textarea.value = window.restoreNote ? window.restoreNote(oldNotes) : oldNotes;
textarea.dispatchEvent(new Event('input', { bubbles: true }));
}
}, 100);
}
});
// Watch for level changes and update parent
this.$watch('level', (value) => {
// Update parent formData
let parentEl = this.$el.closest('[x-data]');
while (parentEl) {
if (parentEl.__x && parentEl.__x.$data && parentEl.__x.$data.formData) {
parentEl.__x.$data.formData['{{ $name }}'] = value;
break;
}
parentEl = parentEl.parentElement ? parentEl.parentElement.closest('[x-data]') : null;
}
this.$dispatch('assessment-changed', { field: '{{ $name }}', value: value });
});
// Listen for notes changes from child components
this.$el.addEventListener('notes-changed', (event) => {
const { field, value } = event.detail;
let parentEl = this.$el.closest('[x-data]');
while (parentEl) {
if (parentEl.__x && parentEl.__x.$data && parentEl.__x.$data.formData) {
parentEl.__x.$data.formData[field] = value;
break;
}
parentEl = parentEl.parentElement ? parentEl.parentElement.closest('[x-data]') : null;
}
// Update local note value to ensure it's synced
if (field === '{{ $name }}_notes') {
this.note = value;
}
});
// Listen for level changes from the level-selector component
this.$el.addEventListener('level-changed', (event) => {
const { field, value } = event.detail;
if (field === '{{ $name }}') {
this.level = value;
}
});
}
}">
@error($name)
@enderror