Paginators
Navigate between multiple pages of content.
import { Paginator } from '@skeletonlabs/skeleton';
Demo
Numeric Row
Use showNumerals
to replace the text information with a row of buttons that allow you to quickly navigate pages. We recommend a small maxNumerals
amount if you plan to support mobile devices with limited screen real estate.
Client-Side Pagination
Once your paginator component is setup you'll need to subdivide your local source content. This can be accomplished using Svelte's reactive properties paired with the JavaScript slice method.
$: paginatedSource = source.slice(
page.offset * page.limit, // start
page.offset * page.limit + page.limit // end
);
<ul>
{#each paginatedSource as row}
<li>{row}</li>
{/each}
</ul>
Or combine with the Table component.
let tableHeaders: string[] = ['Positions', 'Name', 'Weight', 'Symbol'];
<Table source={{ head: tableHeaders, body: paginatedSource }} />
Server-Side Pagination
Use the page
and amount
events to notify your server of pagination updates.
function onPageChange(e: CustomEvent): void {
console.log('event:page', e.detail);
}
function onAmountChange(e: CustomEvent): void {
console.log('event:amount', e.detail);
}
<Paginator ... on:page={onPageChange} on:amount={onAmountChange}></Paginator>
See Also
Utilize a data-driven model to create simple presentational tables.