{{-- The Document Type cell of the Customer Documents listing — the row's SECOND dropdown (CR-15 decision D4/D9, client instruction §1: "If selected customer or co-applicant … whatever document available in customer_docs table show that document type inside document type column drop down. id not exist any document for customer or any co-applicant then show No Document inside Document Type drop down."). Rendered by CustomerDocumentsDataTable through rawColumns(['doc_type']), so this output is injected unescaped. Every type name goes out through `{{ }}`. ## Two states, both server-rendered The list is drawn here for the person the row OPENS on — the main customer — and rebuilt by public/assets/js/nrems-customer-document-list.js from the Customer cell's payload whenever that dropdown changes. Rendering the first state server-side rather than leaving an empty select for the client module to fill is the CR-5 §15.4 lesson: no `change` event fires on a freshly drawn page, so a module never runs there, and a screen whose initial state depends on one is a screen that is blank until somebody touches it. **"No Document"** is decision D9's literal, verbatim, in a select with nothing to choose — so the control is `disabled` as well. It is a real state on a real row: a co-applicant of a booking whose main customer holds all the paperwork has none of their own, and the Date, By and Actions cells beside it are all the em-dash. The option VALUE is an index into the person's `docs` list, for the reason partials/person.blade.php records: this select posts nowhere. Params: documents the selected person's `docs` entries (may be empty) --}} @php $documents = is_array($documents) ? $documents : []; @endphp