{% from "govuk/components/button/macro.njk" import govukButton %}
{% from "govuk/components/fieldset/macro.njk" import govukFieldset %}

{% from "../file-upload-from-form/macro.njk" import digitalmarketplaceFileUploadFromForm %}
{% from "../checkboxes-from-form/macro.njk" import digitalmarketplaceCheckboxesFromForm %}

{% call govukFieldset({
  legend: {
    html: 'Attachment <span class="dm-compliance-communication__attachments-item-legend-counter">' + (params.index + 1) + '</span>',
    classes: "govuk-fieldset__legend--m"
  },
  classes: "dm-compliance-communication__attachments-item"
}) %}
  {{ params.attachment | hiddenTag | safe }}

  <div class="govuk-grid-row">
    <div class="govuk-grid-column-one-half">
      {{ digitalmarketplaceFileUploadFromForm({
        form: params.attachment.file,
        classes: "dm-compliance-communication__attachments-item-file",
        hint: {
          "html": params.attachment.file.hint
        },
        attributes: {
          tabindex: "-1"
        } if params.template
      }) }}
    </div>
    <div class="govuk-grid-column-one-half">
      {{ govukButton({
        html: 'Remove attachment <span class="dm-compliance-communication__attachments-item-remove-counter">'  + (params.index + 1) + '</span>',
        classes: "govuk-button--secondary dm-compliance-communication__attachments-item-remove govuk-visually-hidden",
        type: "button",
        attributes: {
          tabindex: "-1"
        }
      }) }}
      {{ digitalmarketplaceCheckboxesFromForm({
        form: params.attachment.required,
        fieldset: {
          legend: {
            classes: " "
          },
          classes: "dm-compliance-communication__attachments-item-required"
        },
        items: [
          {
            text: params.attachment.required.question,
            value: true,
            checked: params.attachment.required.data == true,
            attributes: {
              tabindex: "-1"
            } if params.template
          }
        ]
      }) }}
    </div>
  </div>
{% endcall %}
