svelte-common
Version:
common components and utils used in svelte apps
81 lines (80 loc) • 2.43 kB
text/typescript
export function pageNavigation(elem: any, pg: any): void;
/**
* Generate actual sequence of page numbers to navigate to.
* @param {number} numberOfPages
* @param {number} currentPage
* @param {Object|number} optionsOrNumberOfItems
* @param {number} optionsOrNumberOfItems.numberOfItems
* @param {number[][]} optionsOrNumberOfItems.spreads
* @return {Iterable<number>}
*/
export function navigationItems(numberOfPages: number, currentPage: number, optionsOrNumberOfItems: any | number): Iterable<number>;
/**
* Pagination support store.
* Pages go from 1 ... numberOfPages
* @param {Map|Set|Array|readable} data
* @param {Object} options
* @param {number} [options.itemsPerPage]
* @param {number} [options.page] current page
* @param {Function} [options.sorter]
* @param {Function} [options.filter]
*/
export class Pagination {
constructor(data: any[], options: any);
set data(data: any);
fireSubscriptions(): void;
set filter(filter: any);
get filter(): any;
set sorter(sorter: any);
get sorter(): any;
/**
* Enshure that current page lies inside 1 ... numberOfPages
*/
recalibrateCurrentPage(): void;
/**
* Set current page.
* First page has number 1.
* @param {number} n
*/
set page(n: number);
/**
* @return {number} current page
*/
get page(): number;
set itemsPerPage(n: number);
get itemsPerPage(): number;
subscribe(s: any): () => boolean;
/**
* Total number of items (filtered).
* @return {number}
*/
get numberOfItems(): number;
/**
* Calculate item index range for a given page number.
* @param {number} page 1...
* @returns {[number,number]}
*/
itemRangeOnPage(page: number): [number, number];
/**
* @return {number}
*/
get numberOfPages(): number;
/**
* Deliver items per page.
* @see {itemsPerPage}
* @return {number}
*/
get length(): number;
get filteredItems(): any[];
/**
* @see https://getbootstrap.com/docs/4.0/components/pagination
* @see https://a11y-style-guide.com/style-guide/section-navigation.html#kssref-navigation-pagination
*/
pageNavigationElement(options: any): HTMLElement;
[Symbol.iterator](): Generator<any, void, unknown>;
#private;
}
export namespace defaultNavigationItemOptions {
let numberOfItems: number;
let spreads: number[][];
}