{# _chips_prestatii.html — control unificat chips prestatii. UN singur container `.chips`: chips cod (legate de operatie sau libere), chips warning pentru operatii nemapate, chip `Nedeclarat` pentru itemi exclusi, si selectul unic `chips_pick` la final. Fara `.op-row`, fara butoane Adauga/+ — selectul adauga instant la `change` (POST /form-chips, chips_action=add). Diagrama starii per item (chips_state.items[i]): cod="" & exclus=0 -> chip warning (warn OP-X . fara cod), click = tinta cod="" & exclus=1 -> chip Nedeclarat (line-through), x -> readuce warning cod!="" (op="" sau op!="") -> chip cod (eticheta COD, tooltip = operatia sursa sau "cod adaugat manual") Stare persistata intr-UN SINGUR hidden `chips_state` (JSON versionat) + hidden `chips_target_index` (tinta curenta; comutata CLIENT-SIDE la click pe un chip warning, fara round-trip — indexul pleaca la server abia la urmatorul add) + hidden `chips_submission_id` (ecouat ca sa "salveaza ca regula" ramana disponibil dupa re-randari via /form-chips). Context vars (toate cu defaults): prestatii_chips — list of {cod_prestatie, cod_op_service, denumire, exclus} nomenclator_rar — list of {cod_prestatie, nume_prestatie} pentru select has_r_odo — True daca vreun chip e R-ODO/I-ODO (server-computed) chips_added_index — index-ul chip-ului tocmai adaugat (emfaza chip-nou) chips_target_index — index-ul operatiei tinta curente (sau none) chips_submission_id — id submission cand chips sunt in modalul de detaliu (activeaza butonul "salveaza ca regula") form_chips_url — URL pentru HTMX; default '/form-chips' chips_section_id — ID div (default 'chips-section') csrf_token — CSRF (trecut prin hx-include din form parinte) #} {% set _chips_url = form_chips_url or '/form-chips' %} {% set _sec_id = chips_section_id or 'chips-section' %} {% set _chips = prestatii_chips or [] %} {% set _sub_id = chips_submission_id if (chips_submission_id is defined and chips_submission_id) else '' %} {% set _target_idx = chips_target_index if (chips_target_index is defined and chips_target_index is not none) else none %} {% set _target_op = (_chips[_target_idx].cod_op_service or '') if (_target_idx is not none and _target_idx < _chips | length) else '' %}