{% from "govuk/components/date-input/macro.njk" import govukDateInput %}

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

{% if not params.items %}
  {% for item in [
    {
      name: "day",
      classes: "govuk-input--width-2"
    },
    {
      name: "month",
      classes: "govuk-input--width-2"
    },
    {
      name: "year",
      classes: "govuk-input--width-4"
    }
  ] %}
    {% set _ = item | setAttribute("value", params.form[item.name].data) if params.form[item.name].data %}
    {% set _ = item | setAttribute("classes", item.classes + ' govuk-input--error') if params.form[item.name].errors %}

    {% 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("namePrefix", name) %}
{% set _ = params | setAttribute("id", "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 %}

{{ govukDateInput(params) }}
