import { PropertyValues, TemplateResult } from 'lit'; import ShoelaceElement from '../../internal/shoelace-element.js'; import SlIcon from '../icon/icon.component.js'; import SlSelect from '../select/select.component.js'; import SlOption from '../option/option.component.js'; import SlInput from '../input/input.component.js'; /** * @since 2.0 * @status experimental * @viur 0.5 * * @dependency sl-button,sl-select,sl-icon * * @event sl-page-change - Emitted when current page changed. * @event sl-page-before-change - Emitted before page changed, can be defaultPrevented to cancel. * * @slot prefix - Content before the navigation. * @slot no-data - Custom empty state content (shown when total=0). * @slot first-icon - Icon inside the first-page button. * @slot prev-icon - Icon inside the previous-page button. * @slot next-icon - Icon inside the next-page button. * @slot last-icon - Icon inside the last-page button. * @slot - Content after the navigation (e.g. toolbar extras). * * @csspart base - The component's base wrapper. * @csspart no-data - The no-data message container. * @csspart pageWrap - The page number buttons wrapper. * @csspart first-button - The first-page navigation button. * @csspart prev-button - The previous-page navigation button. * @csspart next-button - The next-page navigation button. * @csspart last-button - The last-page navigation button. * @csspart first - The icon inside the first-page button. * @csspart prev - The icon inside the previous-page button. * @csspart next - The icon inside the next-page button. * @csspart last - The icon inside the last-page button. * @csspart page-button - Every page number button. * @csspart active-page-button - The currently active page number button (combined with page-button). * @csspart page-jump - The page number input (simple mode or showPageChange). * @csspart page - The "von X" span in simple mode. * @csspart show-size-change - The page size selector. */ export default class SlPagination extends ShoelaceElement { static styles: import("lit").CSSResult; static dependencies: { 'sl-icon': typeof SlIcon; 'sl-select': typeof SlSelect; 'sl-option': typeof SlOption; 'sl-input': typeof SlInput; }; /** Current page */ value: number; /** Page Break Size */ pageSize: number; /** Whether to resize the paging component */ showSizeChange: boolean; /** Whether to allow direct adjustment of the first few pages */ showPageChange: boolean; /** Allowed or not Simplified paging mode */ simple: boolean; /**Layout alignment */ align: 'left' | 'right' | 'center'; /** Total number of sizes */ total: number; /** Support for resized pagination */ pageSizeOptions: Array; /** Whether to display Jump directly to the first page */ showFirst: boolean; /** Show or not Show Jump directly to the last page */ showLast: boolean; private _announceText; get pageCount(): number; watchPageChange(): void; _renderSimple(): TemplateResult<1>; _renderPageButton(): TemplateResult<1>; _renderPage(): TemplateResult<1>[]; private _eventDispose1; private _eventDispose2; firstUpdated(map: PropertyValues): void; disconnectedCallback(): void; private goToPageByKey; goToPage(pageNo: number): void; render(): TemplateResult<1>; } declare global { interface HTMLElementTagNameMap { 'sl-pagination': SlPagination; } }