{% from "govuk/components/checkboxes/macro.njk" import govukCheckboxes %}

{% set name = params.form.name %}
{% set items = params.items or [] %}
{% set values = params.form.data or [] %}

{% if not params.items %}
  {% for option in params.form.options %}
    {% set item = {
      "value": option["value"],
      "text": option["label"]
    } %}

    {% if option["value"] in values %}
      {% set _ = item | setAttribute("checked", true) %}
    {% endif %}

    {% if "description" in option %}
      {% set _ = item | setAttribute("hint", { 'text': option["description"] }) %}
    {% endif %}

    {% for attribute in ["id", "divider", "conditional", "behaviour", "disabled", "attributes"] %}
      {% set _ = item | setAttribute(attribute, option[attribute]) if attribute in option %}
    {% endfor %}

    {% set _ = items.push(item) %}
  {% endfor %}

  {% set _ = params | setAttribute("items", items) %}
{% endif %}

{% if "fieldset" not in params %}
  {% set _ = params | setAttribute("fieldset", {}) %}
{% endif %}
{% if "legend" not in params.fieldset %}
  {% set _ = params.fieldset | setAttribute("legend", {}) %}
{% endif %}
{% set _ = params.fieldset.legend | setAttribute("text", params.form.question) %}
{% if not params.fieldset.legend.classes %}
  {% set _ = params.fieldset.legend | setAttribute("classes", "govuk-fieldset__legend--m") %}
{% endif %}

{% set _ = params | setAttribute("name", name) %}
{% set _ = params | setAttribute("idPrefix", "input-" + name) %}

{% set _ = params | setAttribute("hint", { "text": params.form.hint }) if params.form.hint and not params.hint %}
{% set _ = params | setAttribute("errorMessage", { "text": params.form.errors[0] }) if params.form.errors %}

{{ govukCheckboxes(params) }}
