@inkline/inkline
Version:
Inkline is the Vue.js UI/UX Library built for creating your next design system
71 lines (70 loc) • 1.94 kB
HTML
<nav
class="pagination"
:class="classes"
role="navigation"
:aria-label="ariaLabel"
>
<ul class="pagination-items">
<li
class="pagination-item -previous"
:class="{ '-disabled': modelValue === 1 }"
v-if="pageCount > 0"
@click="previous"
>
<span aria-hidden="true">
<slot name="previous"><</slot>
</span>
</li>
<li
class="pagination-item -first"
:class="{ '-active': modelValue === 1 }"
v-if="pageCount > 0"
@click="onClick(1)"
>
1
</li>
<li
class="pagination-item -quick-previous"
:class="{ '-disabled': !quickLink }"
v-if="showQuickPrevious"
@click="quickPrevious"
>
…
</li>
<li
class="pagination-item"
:class="{ '-active': modelValue === page }"
:aria-current="modelValue === page ? 'page' : false"
v-for="page in pages"
@click="onClick(page)"
>
{{page}}
</li>
<li
class="pagination-item -quick-next"
:class="{ '-disabled': !quickLink }"
v-if="showQuickNext"
@click="quickNext"
>
…
</li>
<li
class="pagination-item -last"
:class="{ '-active': modelValue === pageCount }"
v-if="pageCount > 1"
@click="onClick(pageCount)"
>
{{pageCount}}
</li>
<li
class="pagination-item -next"
:class="{ '-disabled': modelValue === pageCount }"
v-if="pageCount > 0"
@click="next"
>
<span aria-hidden="true">
<slot name="next">></slot>
</span>
</li>
</ul>
</nav>