npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

v-pagy

v1.0.2

Published

A lightweight and customizeable Bootstrap Pagination for Vue

Downloads

51

Readme

v-pagy

Server-side paging component in vue, template based on bootstrap

  • Vue.js (tested with 2.x)
  • Bootstrap CSS (tested with 4.x)

Installation

npm install v-pagy

or via yarn

yarn add v-pagy

Example

<template lang="html">
  <pagination
    :total="total"
    :page-size="pageSize"
    :current-page="page"
    :options="options"
    @page-change="onPageChangedHandler"
    @refresh-page="onRefreshPageHandler"
    nav-class="padding-10"
    ul-class="bg-color-red"
    li-class="txt-color-blue"
  />
</template>

<script>
import pagination from 'v-pagy';

export default {
  components: {
    pagination,
  },
  props: {
    page: Number,
  },
  data() {
    return {
      total: 1000,
      pageSize: 20,
      options: { // Optional
        offset: 2,
        previousText: 'Prev',
        nextText: 'Next',
        alwaysShowPrevNext: true,
      },
    },
  },
  methods: {
    onPageChangedHandler(page) {
      console.log(page);
      // Exec your response to server passing 'page' params as clicked button paging
    },
    onRefreshPageHandler(page) {
      console.log(page);
      // Exec your response to server passing 'page' params as clicked on current active paging button
    },
  },
});
</script>

If you want to use HTML content for the first, last, previous and next button, there is some named slots. Here is an example:

<pagination
  :total="total"
  :page-size="pageSize"
  :current-page="page"
  :options="options"
  @page-change="onPageChangedHandler"
  @refresh-page="onRefreshPageHandler"
  nav-class="padding-10"
  ul-class="bg-color-red"
  li-class="txt-color-blue"
>
  <template slot="first-el">
    <span title="go first">◄◄</span>
  </template>
  <template slot="last-el">
    <span title="go last">►►</span>
  </template>
</pagination>

Events

| Event name | Arg Type | Description | |---|---|---| | page-change | number | Fire on click to the page link (except for the current one) | | refresh-page | number | Fire on click to the current page link |

props

| Name | Type | Required | Default | Description | |---|---|---|---|---| | total | Number | Yes | | Total items from server side | | pageSize | Number | Yes | | Number of items per page | | callback | Function | Yes | | The callback to be called on page changes | | currentPage | Number | | 1 | The current page from the URL params | | options | Object | | | Configurations | | navClass | String | | '' | Class will be include in nav element | | ulClass | String | | '' | Class will be include in ul element | | liClass | String | | '' | Class will be include in all li element |

options

| Name | Type | Default | Description | |---|---|---|---| | offset | Number | 2 | Left and right offset of pagination numbers to display | | ariaNext | String | 'Next' | Change default aria next text | | ariaPrevious | String | 'Previous' | Change default aria previous text | | ariaLast | String | 'Last' | Change default aria last text | | ariaFirst | String | 'First' | Change default aria first text | | previousText | String | '‹' | Change default previous button text | | nextText | String | '›' | Change default next button text | | firstText | String | '«' | Change default first button text | | lastText | String | '»' | Change default last button text | | alwaysShowPrevNext | Boolean | true | Show the prev/next button even if on the first/last page | | alwaysShowFirstLast | Boolean | true | Show first/last button even if on first/last page | | first | Boolean | true | Set false to hide the first button | | last | Boolean | true | Set false to hide the last button | | prev | Boolean | true | Set false to hide the previous button | | next | Boolean | true | Set false to hide the next button |

slots

Useful in case you want to custom the UI of the first, last, previous and next buttons by HTML elements instead of using a text.

| Name | Description | |---|---| | first-el | Custom slot for the first link | | prev-el | Custom slot for the previous link | | next-el | Custom slot for the next link | | last-el | Custom slot for the last link |