51 lines
1.3 KiB
Plaintext
51 lines
1.3 KiB
Plaintext
import { h } from 'preact';
|
|
import { PluginBaseComponent, PluginBaseProps } from '../../plugin';
|
|
interface PaginationState {
|
|
page: number;
|
|
limit?: number;
|
|
total: number;
|
|
}
|
|
export interface PaginationConfig {
|
|
enabled: boolean;
|
|
limit?: number;
|
|
page?: number;
|
|
summary?: boolean;
|
|
nextButton?: boolean;
|
|
prevButton?: boolean;
|
|
buttonsCount?: number;
|
|
resetPageOnUpdate?: boolean;
|
|
server?: {
|
|
url?: (prevUrl: string, page: number, limit: number) => string;
|
|
body?: (prevBody: BodyInit, page: number, limit: number) => BodyInit;
|
|
};
|
|
}
|
|
export declare class Pagination extends PluginBaseComponent<
|
|
PluginBaseProps<Pagination> & PaginationConfig,
|
|
PaginationState
|
|
> {
|
|
private processor;
|
|
private onUpdateFn;
|
|
private setTotalFromTabularFn;
|
|
static defaultProps: {
|
|
summary: boolean;
|
|
nextButton: boolean;
|
|
prevButton: boolean;
|
|
buttonsCount: number;
|
|
limit: number;
|
|
resetPageOnUpdate: boolean;
|
|
};
|
|
constructor(props: any, context: any);
|
|
componentWillMount(): void;
|
|
private setTotalFromTabular;
|
|
private onUpdate;
|
|
componentDidMount(): void;
|
|
componentWillUnmount(): void;
|
|
private get pages();
|
|
private setPage;
|
|
private setTotal;
|
|
renderPages(): h.JSX.Element;
|
|
renderSummary(): h.JSX.Element;
|
|
render(): h.JSX.Element;
|
|
}
|
|
export {};
|