{# One expense-account row, read entirely from a loop-bound `row` view-model (bulk-code/account-row-vm). The account typeahead reuses the shared components/typeahead.html partial (its context mapped in from row.account via a with block); the location select, percentage input, and remove button are inlined plain HTML. The location cell (#account-location-N) swaps just itself on account change; the remove button swaps the whole #bulk-code-form. Every dynamic attribute arrives pre-serialized as a string. #}
{% with x_data=row.account.x_data x_model=row.account.x_model key=row.account.key disabled=row.account.disabled a_class=row.account.a_class a_xinit=row.account.a_xinit search_class=row.account.search_class placeholder=row.account.placeholder hidden_attrs=row.account.hidden_attrs %}{% include "templates/components/typeahead.html" %}{% endwith %}

{{ row.account_error }}

{{ row.location_error }}

{{ row.pct_error }}

{% include "templates/components/svg-x.html" %}