Pagination 
Usage 
Simple Usage 
preview
vue
<template>
  <p-pagination v-model="model" :total="total" />
</template>
<script setup>
  const model = ref(1)
  const total = ref(100)
</script>More Pages 
Pages will automatically truncated if maximum display limit exceeded.
preview
vue
<template>
  <p-pagination v-model="model" :total="total" />
</template>
<script setup>
  const model   = ref(1)
  const total   = ref(200)
</script>Variants 
There are 3 navigation variants: none, short, far, default is short
preview
vue
<template>
  <p-pagination v-model="model" variant="none" :total="total" />
  <p-pagination v-model="model" variant="short" :total="total" />
  <p-pagination v-model="model" variant="far" :total="total" />
</template>
<script setup>
  const model = ref(1)
  const total = ref(100)
</script>Show Detail 
Add prop show-detail to show row calculation and per page options.
1 - 10 of 50
vue
<template>
  <p-pagination
    v-model="model"
    v-model:per-page="perPage"
    :total="total"
    :per-page-options="perPageOptions"
    show-detail />
</template>
<script setup>
  const model          = ref(1)
  const total          = ref(50)
  const perPage        = ref(10)
  const perPageOptions = ref([5,10,15])
</script>Navigation Text 
Add prop navigation-text to change previous and next icon to text, default is Previous and Next.
 You can change the text label via prev-nav-label and next-nav-label prop.
preview
vue
<template>
  <p-pagination v-model="model" :total="total" navigation-text />
  <p-pagination
    v-model="model"
    :total="total"
    navigation-text
    prev-nav-label="Kembali"
    next-nav-label="Lanjut" />
</template>
<script setup>
  const model = ref(1)
  const total = ref(100)
</script>Navigation Only 
Add prop navigation-only to show navigation without page items. Navigation only will auto aligned to right.
1 - 10 of 50
1 - 10 of 50
vue
<template>
  <p-pagination v-model="model" navigation-only :total="total" />
  <p-pagination
    v-model="model"
    v-model:per-page="perPage"
    :per-page-options="perPageOptions"
    :total="total"
    navigation-only
    show-counter />
  <p-pagination
    v-model="model"
    v-model:per-page="perPage"
    :per-page-options="perPageOptions"
    :total="total"
    navigation-only
    show-per-page />
  <p-pagination
    v-model="model"
    v-model:per-page="perPage"
    :per-page-options="perPageOptions"
    :total="total"
    navigation-only
    show-detail />
</template>
<script setup>
  const model = ref(1)
  const total = ref(50)
  const perPage        = ref(10)
  const perPageOptions = ref([5,10,15])
</script>Quick Jump 
Add prop quick-jump to change mode to quick jump.
Page 
 of 10
Page 
 of 10
1 - 10 of 100
vue
<template>
  <p-pagination v-model="model" :total="total" quick-jump />
  <p-pagination
    v-model="model"
    v-model:per-page="perPage"
    :per-page-options="perPageOptions"
    :total="total"
    quick-jump
    show-detail />
</template>
<script>
  const model          = ref(1)
  const total          = ref(100)
  const perPage        = ref(10)
  const perPageOptions = ref([5,10,15])
</script>Customization Slots 
Custom Navigation 
preview
vue
<template>
 <p-pagination v-model="model" variant="far" :total="100">
    <template #first-navigation>
      <IconSkipBack />
    </template>
    <template #last-navigation>
      <IconSkipForward />
    </template>
    <template #prev-navigation>
      <IconPrevOutline/>
    </template>
    <template #next-navigation>
      <IconNextOutline/>
    </template>
 </p-pagination>
</template>Custom Data Counter 
1 to 10 from 50
vue
<template>
  <p-pagination v-model="model" v-model:per-page="perPage" :total="total" show-detail>
    <template #pagination-count="{ range, total }">
      {{ range[0] }} to {{ range[1] }} from {{ total }}
    </template>
  </p-pagination>
</template>Custom Page Count 
Halaman 
 dari 10
vue
<template>
  <p-pagination v-model="model" :total="total" quick-jump page-label="Halaman">
    <template #quick-jump-count="{ total }">
      dari {{ total }}
    </template>
  </p-pagination>
</template>API 
Props 
| Props | Type | Default | Description | 
|---|---|---|---|
| modelValue | Number | - | v-modelvalue. Specified as current page | 
| quick-jump | Boolean | false | Shorten pagination using select component | 
| show-counter | Boolean | false | Show the data items counters | 
| show-per-page | Boolean | false | Show the per page options | 
| show-detail | Boolean | false | Show the data items counter and per page options | 
| navigation-text | Boolean | false | Change previous and next navigation icon to text label | 
| navigation-only | Boolean | false | Hide pagination items and show the navigation only | 
| per-page | Number | 10 | Number of data items per page | 
| per-page-options | Number[] | [10,20,30] | Specify per page options | 
| total | Number | 0 | Total number of data items | 
| display-limit | Number | 10 | Maximum display limit of visible page buttons. Included two ellipsis | 
| variant | String | short | Specify navigation variant | 
| page-label | String | Page | Label to place in the quick jump | 
| prev-nav-label | String | Previous | Label to place in the previous navigation button. Only works if navigation-textis provided | 
| next-nav-label | String | Next | Label to place in the next navigation button. Only works if navigation-textis provided | 
| first-nav-label | String | First | Label to place in the first navigation button | 
| last-nav-label | String | Last | Label to place in the last navigation button | 
| show-rows-label | String | Show rows | Label to place in the per page options. Only works if show-detailis provided | 
Slots 
| Name | Scoped | Description | 
|---|---|---|
| first-navigation | No | Content to place in first navigation button when prop variantset tofar | 
| last-navigation | No | Content to place in last navigation button when prop variantset tofar | 
| prev-navigation | No | Content to place in previous navigation button when prop variantset toshortorfar | 
| next-navigation | No | Content to place in next navigation button when prop variantset toshortorfar | 
| quick-jump-count | total | Content to place in quick jump page count when prop quick-jumpis provided | 
| pagination-count | rangeandtotal | Content to place in pagination counter when prop show-detailis provided |