{% macro onsFooter(params) %}
    {% from "components/list/_macro.njk" import onsList %}
    {% from "components/icon/_macro.njk" import onsIcon %}

    {% if params.lang %}
        {% set lang = params.lang %}
    {% else %}
        {% set lang = 'en' %}
    {% endif %}
    {% set extraLogo = params.footerLogo.logos.logo2 %}
    {% set onsLogo %}
        <div class="ons-footer__logo-large">
            {% if params.lang == 'cy' %}
                {{-
                    onsIcon({
                        "iconType": 'ons-logo-stacked-cy' if extraLogo else 'ons-logo-cy',
                        "altText": 'Swyddfa Ystadegau Gwladol',
                        "altTextId": 'ons-logo-cy-footer-alt'
                    })
                -}}
            {% else %}
                {{-
                    onsIcon({
                        "iconType": 'ons-logo-stacked-en' if extraLogo else 'ons-logo-en',
                        "altText": 'Office for National Statistics',
                        "altTextId": 'ons-logo-en-footer-alt'
                    })
                -}}
            {% endif %}
        </div>
        <div class="ons-footer__logo-small">
            {% if params.lang == 'cy' %}
                {{-
                    onsIcon({
                        "iconType": 'ons-logo-stacked-cy',
                        "altText": 'Swyddfa Ystadegau Gwladol',
                        "altTextId": 'ons-logo-stacked-cy-footer-alt'
                    })
                -}}
            {% else %}
                {{-
                    onsIcon({
                        "iconType": 'ons-logo-stacked-en',
                        "altText": 'Office for National Statistics',
                        "altTextId": 'ons-logo-stacked-en-footer-alt'
                    })
                -}}
            {% endif %}
        </div>
    {% endset %}

    <footer class="ons-footer">
        {% if params.footerWarning %}
            {% from "components/panel/_macro.njk" import onsPanel %}
            <div class="ons-footer__warning">
                <div class="ons-container">
                    {%
                        call onsPanel({
                            "variant": "warn",
                            "classes": "ons-panel--warn--footer"
                        })
                    %}
                        {{ params.footerWarning | safe }}
                    {% endcall %}
                </div>
            </div>
        {% endif %}

        {% if params.button %}
            {% from "components/button/_macro.njk" import onsButton %}
            <div class="ons-footer__button-container ons-u-d-no@m">
                {{
                    onsButton({
                        "id": params.button.id,
                        "classes": params.button.classes if params.button.classes,
                        "variants": "ghost",
                        "text": params.button.text,
                        "name": params.button.name,
                        "attributes": params.button.attributes,
                        "url": params.button.url,
                        "iconType": "exit",
                        "iconPosition": "after"
                    })
                }}
            </div>
        {% endif %}

        <div
            class="ons-footer__body{{ ' ' + params.classes if params.classes else '' }}"
            data-analytics="footer"
            {% if params.attributes %}{% for attribute, value in (params.attributes) %}{{ ' ' }}{{ attribute }}="{{ value }}"{% endfor %}{% endif %}
        >
            <div
                class="ons-container{{ ' ons-container--full-width' if params.fullWidth else "" }}{{ ' ons-container--wide' if params.wide else "" }}"
            >
                <div class="ons-grid">
                    {% if params.newTabWarning %}
                        <div class="ons-grid__col">
                            <p class="ons-u-fs-s ons-u-mb-l ons-footer__new-tab-warning">{{ params.newTabWarning | safe }}</p>
                        </div>
                    {% endif %}

                    {% if params.cols %}
                        {% for col in params.cols %}
                            <!-- Full footer columns -->
                            <div class="ons-grid__col ons-col-4@m{{ ' ons-u-mt-l@2xs@m' if loop.index > 1 }}">
                                {% if col.title %}
                                    <h2 class="ons-footer__heading ons-u-fs-r--b">{{ col.title }}</h2>
                                {% endif %}
                                {{
                                    onsList({
                                        "classes": 'ons-u-mb-no',
                                        "variants": 'bare',
                                        "itemsList": col.itemsList
                                    })
                                }}
                            </div>
                        {% endfor %}
                    {% elif params.rows %}
                        {% for row in params.rows %}
                            <!-- Transactional footer row -->
                            <div class="ons-grid__col">
                                {{
                                    onsList({
                                        "classes": "ons-footer--rows",
                                        "variants": ["bare", "inline"],
                                        "itemsList": row.itemsList
                                    })
                                }}
                            </div>
                        {% endfor %}
                    {% endif %}

                    {% if (params.cols) or (params.rows) %}
                        <div class="ons-grid__col ons-u-mb-l">
                            <hr class="ons-footer__hr" />
                        </div>
                    {% endif %}
                </div>

                <div class="ons-grid{{ ' ons-grid-flex' if params.crest else "" }} ons-grid-flex--vertical-top ons-grid-flex--between">
                    <div class="ons-grid__col">
                        {% if params.legal %}
                            <!-- Legal -->
                            {% for legal in params.legal %}
                                {{
                                    onsList({
                                        "classes": 'ons-u-mb-s ons-footer--rows',
                                        "variants": ['bare', 'inline'],
                                        "itemsList": legal.itemsList
                                    })
                                }}
                            {% endfor %}
                        {% endif %}

                        {% if params.oglLink %}
                            <!-- OGL -->
                            <div class="ons-footer__license ons-u-mb-l">
                                {{-
                                    onsIcon({
                                        "iconType": 'ogl'
                                    })
                                -}}
                                {% if params.oglLink.html %}
                                    {{ params.oglLink.html | safe }}
                                {% elif params.oglLink %}
                                    {% from "components/external-link/_macro.njk" import onsExternalLink %}
                                    {% if params.lang == 'cy' %}
                                        {{ params.oglLink.pre | default('Mae’r holl gynnwys ar gael o dan y') }}
                                        {{
                                            onsExternalLink({
                                                "url": params.oglLink.url | default('https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/'),
                                                "text": params.oglLink.text | default('Drwydded Llywodraeth Leol v3.0')
                                            })
                                        }}{{ params.oglLink.post | default(', oni bai y nodir fel arall') }}
                                    {% else %}
                                        {{ params.oglLink.pre | default('All content is available under the') }}
                                        {{
                                            onsExternalLink({
                                                "url": params.oglLink.url | default('https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/'),
                                                "text": params.oglLink.text | default('Open Government Licence v3.0')
                                            })
                                        }}{{ params.oglLink.post | default(', except where otherwise stated') }}
                                    {% endif %}
                                {% endif %}
                            </div>
                        {% endif %}

                        {% if not params.footerLogo.logos.logo1 %}
                            {%
                                set logo1 = {
                                    'logoUrl': 'https://cy.ons.gov.uk/' if lang == 'cy' else 'https://www.ons.gov.uk/',
                                    'logoImage': onsLogo | safe
                                }
                            %}
                            {% set logos = [logo1, params.footerLogo.logos.logo2] %}
                        {% else %}
                            {% set logos = [params.footerLogo.logos.logo1, params.footerLogo.logos.logo2] %}
                        {% endif %}

                        <div
                            class="ons-footer__logo-container ons-u-mb-l ons-grid-flex ons-grid-flex--vertical-top{{ ' ons-grid-flex--between' if params.footerLogo.display == 'split' else "" }}"
                        >
                            {% for logo in logos %}
                                {%- if logo.logoUrl -%}
                                    <a
                                        class="ons-footer__logo-link{{ ' ons-u-mr-s' if extraLogo and loop.index == 1 else "" }}"
                                        href="{{ logo.logoUrl }}"
                                        >{{ logo.logoImage | safe }}</a
                                    >
                                {%- else -%}

                                    {{ logo.logoImage | safe }}
                                {% endif %}
                            {% endfor %}
                        </div>
                    </div>
                    {% if params.crest %}
                        <!-- Crest -->
                        <div class="ons-grid__col ons-footer__crest ons-u-mb-l@2xs@l">
                            {{-
                                onsIcon({
                                    "iconType": 'crest'
                                })
                            -}}
                        </div>
                    {% endif %}
                </div>
                {% if params.copyrightDeclaration %}
                    <!-- Copyright -->
                    {% set copyrightDeclaration = '&copy; ' ~ params.copyrightDeclaration.copyright ~ '<br /> ' ~ params.copyrightDeclaration.text %}
                    <div class="ons-grid ons-grid-flex ons-grid-flex--between">
                        <div class="ons-grid__col">
                            <p class="ons-u-fs-s ons-u-mb-l ons-footer__copyright">{{- copyrightDeclaration | safe -}}</p>
                        </div>
                    </div>
                {% endif %}
            </div>
        </div>
    </footer>
{% endmacro %}
