@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; } }); } }">
{!! $title !!}
@if ($hint) @endif
@error($name) @enderror