{#
/**
* @file
* Twitter Bootstrap v4-beta.2 Sliding pagination control implementation.
*
* View that can be used with the pagination module
* from the Twitter Bootstrap CSS Toolkit
* https://getbootstrap.com/docs/4.0/components/pagination/
*
*/
#}
{% macro _pagination_path(route, query, pageParameterName, page_number) %}{% if page_number == 1 %}{% set _route = route %}{% set _query = query|filter((v, k) => k != pageParameterName) %}{% else %}{% set _route = route~'._pagination' %}{% set _query = query|merge({(pageParameterName): page_number}) %}{% endif %}{{ path(_route, _query)|lower }}{% endmacro %}
{% from _self import _pagination_path %}
<div class="mb-4" id="pagination_container">
{% if pageCount > 1 %}
<nav class="pagination-content d-flex" id="pagination-content">
{% set classAlign = (align is not defined) ? '' : align=='center' ? ' justify-content-center' : (align=='right' ? ' justify-content-end' : '') %}
{% set classSize = (size is not defined) ? '' : size=='large' ? ' pagination-lg' : (size=='small' ? ' pagination-sm' : '') %}
<ul class="pagination{{ classAlign }}{{ classSize }} d-flex-c">
<li class="pagination-item pagination-item--prev d-flex-c">
{% if previous is defined %}
<a class="pagination-link d-flex-c" rel="prev" href="{{ _pagination_path(route, query, pageParameterName, 1) }}">
{% else %}
<span class="pagination-link d-flex-c disable">
{% endif %}
<svg width="24" height="25" fill="none"><path d="m18.705 17.208-4.58-4.59 4.58-4.59-1.41-1.41-6 6 6 6 1.41-1.41Z"/><path d="m12.705 17.208-4.58-4.59 4.58-4.59-1.41-1.41-6 6 6 6 1.41-1.41Z"/></svg>
{% if previous is defined %}
</a>
{% else %}
</span>
{% endif %}
</li>
{# Previous #}
<li class="pagination-item pagination-item--prev d-flex-c">
{% if previous is defined %}
<a class="pagination-link d-flex-c" rel="prev" href="{{ _pagination_path(route, query, pageParameterName, previous) }}">
{% else %}
<span class="pagination-link d-flex-c disable">
{% endif %}
<svg width="24" height="25" fill="none"><path d="m15.705 17.208-4.58-4.59 4.58-4.59-1.41-1.41-6 6 6 6 1.41-1.41Z"/></svg>
{% if previous is defined %}
</a>
{% else %}
</span>
{% endif %}
</li>
{% if startPage > 1 %}
<li class="pagination-item d-flex-c">
<a class="pagination-link d-flex-c" href="{{ _pagination_path(route, query, pageParameterName, 1) }}">1</a>
</li>
{% if startPage == 3 %}
<li class="pagination-item d-flex-c">
<a class="pagination-link d-flex-c" href="{{ _pagination_path(route, query, pageParameterName, 2) }}">2</a>
</li>
{% elseif startPage != 2 %}
<li class="pagination-item d-flex-c disabled">
<span class="pagination-link d-flex-c">…</span>
</li>
{% endif %}
{% endif %}
{% for page in pagesInRange %}
{% if page != current %}
<li class="pagination-item d-flex-c">
<a class="pagination-link d-flex-c" href="{{ _pagination_path(route, query, pageParameterName, page) }}">{{ page }}</a>
</li>
{% else %}
<li class="pagination-item d-flex-c active">
<span class="pagination-link d-flex-c">{{ page }}</span>
</li>
{% endif %}
{% endfor %}
{% if pageCount > endPage %}
{% if pageCount > (endPage + 1) %}
{% if pageCount > (endPage + 2) %}
<li class="pagination-item d-flex-c disabled">
<span class="pagination-link d-flex-c">…</span>
</li>
{% else %}
<li class="pagination-item d-flex-c">
<a class="pagination-link d-flex-c" href="{{ _pagination_path(route, query, pageParameterName, (pageCount - 1)) }}">{{ pageCount -1 }}</a>
</li>
{% endif %}
{% endif %}
<li class="pagination-item d-flex-c">
<a class="pagination-link d-flex-c" href="{{ _pagination_path(route, query, pageParameterName, pageCount) }}">{{ pageCount }}</a>
</li>
{% endif %}
{# Next #}
<li class="pagination-item pagination-item--next d-flex-c" data-t="{{startPage}}">
{% if next is defined %}
<a class="pagination-link d-flex-c" rel="prev" href="{{ _pagination_path(route, query, pageParameterName, next) }}">
{% else %}
<span class="pagination-link d-flex-c disable">
{% endif %}
<svg width="24" height="25" fill="none"><path d="m8.295 17.208 4.58-4.59-4.58-4.59 1.41-1.41 6 6-6 6-1.41-1.41Z"/></svg>
{% if next is defined %}
</a>
{% else %}
</span>
{% endif %}
</li>
{# Double next #}
<li class="pagination-item pagination-item--next d-flex-c">
{% if next is defined %}
<a class="pagination-link d-flex-c" rel="prev" href="{{ _pagination_path(route, query, pageParameterName, pageCount) }}">
{% else %}
<span class="pagination-link d-flex-c disable">
{% endif %}
<svg width="24" height="25" fill="none"><path d="m5.295 17.208 4.58-4.59-4.58-4.59 1.41-1.41 6 6-6 6-1.41-1.41Z"/><path d="m11.295 17.208 4.58-4.59-4.58-4.59 1.41-1.41 6 6-6 6-1.41-1.41Z"/></svg>
{% if next is defined %}
</a>
{% else %}
</span>
{% endif %}
</li>
</ul>
</nav>
{% endif %}
</div>
<script>
(function(){
const showmore = document.getElementById('showmore_container');
if (!showmore) return;
if (showmore.hasAttribute('data-fix-with')) return;
const pagination = document.querySelector('#pagination-content .pagination');
showmore.style.setProperty('--btn-width', `${pagination.offsetWidth < 130 ? 130 : (pagination.offsetWidth - 20)}px`);
})();
</script>