@nova-ui/bits
Version:
SolarWinds Nova Framework
165 lines (164 loc) • 5.82 kB
TypeScript
import { ChangeDetectorRef, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from "@angular/core";
import { Subject } from "rxjs";
import { IPaginatorItem } from "./public-api";
import { IFilter, IFilterPub, IRange } from "../../services/data-source/public-api";
import { LoggerService } from "../../services/log-service";
import { PopupContainerService } from "../popup/popup-container.service";
import { ISelectChangedEvent } from "../select/public-api";
import { InputValueTypes } from "../select-v2/types";
import * as i0 from "@angular/core";
export declare const defaultPageSizeSet: number[];
/**
* Component used for pagination of data
* <example-url>./../examples/index.html#/paginator</example-url>
*/
export declare class PaginatorComponent implements OnInit, OnChanges, OnDestroy, IFilterPub {
private logger;
private popupContainer;
private cd;
itemsList: Array<IPaginatorItem>;
/**
* Current page number
*/
page: number;
/**
* Size of the page. For example: 10, 25, 50, 100;
*/
pageSize: number;
/**
* Array of page numbers
*/
pageSizeSet: number[];
/**
* Total number of items
*/
total: number;
/**
* Paginator separator symbol.
*/
dots: string;
/**
* Hide paginator if all items of data can be displayed on one page
*/
hideIfEmpty: boolean;
/**
* Make paginator hidden
*/
hide: boolean;
/**
* Paginator active item class
*/
activeClass: string;
/**
* Paginator disabled item class
*/
disabledClass: string;
/**
* Number of items displayed before separator
*/
adjacent: number;
/**
* Maximum number of items in paginator
*/
maxElements: number;
/**
* Show previous and next buttons
*/
showPrevNext: boolean;
/**
* Display popup above paginator if equals to 'true'
*/
popupDirectionTop: boolean;
/**
* Popup parent element css class used determining of popup direction
*/
popupBaseElementSelector: string;
/**
* inner nui-select appendToBody input
*/
appendToBody: boolean;
/**
* Action occurs on page change
*/
pagerAction: EventEmitter<any>;
pageChange: EventEmitter<number>;
onDestroy$: Subject<void>;
private selectComponent;
private virtualScrollViewport;
private _dotsPagesPerRow;
get dotsPagesPerRow(): number;
private mainRangeStart;
private mainRangeEnd;
constructor(logger: LoggerService, popupContainer: PopupContainerService, cd: ChangeDetectorRef);
/**
* Component initialization
*/
ngOnInit(): void;
/**
* Redraw component when 'total' or 'page' propery was changed
* @param changes Changed properties
*/
ngOnChanges(changes: SimpleChanges): void;
/**
* Initialize set of pages
*/
initPageSizeSet(): void;
getFilters(): IFilter<IRange<number>>;
resetFilter(): void;
/**
* Change page number
* @param page Page number
*/
goToPage(page: number): void;
/**
* @deprecated - remove in v12. Needs only for backward compatibility - Removal: NUI-5837
*/
onPageSizeChange(value: InputValueTypes): void;
/**
* Set items per page that should displayed
* @param changedEvent select change event
*/
setItemsPerPage(changedEvent: ISelectChangedEvent<number>): void;
/**
* Get number of pages
*/
getPageCount(): number;
/**
* Display paginator component
*/
showPaginator(): boolean;
/**
* Get sequence number of first item of currently displayed paginated list
*/
getFirstItemOnPage(): number;
/**
* Get sequence number of last item of currently displayed paginated repeat
*/
getLastItemOnPage(): number | undefined;
/**
* Return range for info section
*/
getRange(total: number): string;
/**
* Re-renders the virtual scroll viewport to properly display items within the virtual scroll viewport
*/
handleDotsClick(): void;
/**
* Add items to paginator component
*/
private assemble;
/**
* Fills mainRangeStart and mainRangeEnd properties with proper values. Those properties
* are used for displaying of page numbers between 'dots' separators.
*/
private prepareSeparators;
private addSeparator;
private addPrev;
private addNext;
private addItem;
private add;
private addRange;
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<PaginatorComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<PaginatorComponent, "nui-paginator", never, { "itemsList": { "alias": "itemsList"; "required": false; }; "page": { "alias": "page"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "pageSizeSet": { "alias": "pageSizeSet"; "required": false; }; "total": { "alias": "total"; "required": false; }; "dots": { "alias": "dots"; "required": false; }; "hideIfEmpty": { "alias": "hideIfEmpty"; "required": false; }; "hide": { "alias": "hide"; "required": false; }; "activeClass": { "alias": "activeClass"; "required": false; }; "disabledClass": { "alias": "disabledClass"; "required": false; }; "adjacent": { "alias": "adjacent"; "required": false; }; "maxElements": { "alias": "maxElements"; "required": false; }; "showPrevNext": { "alias": "showPrevNext"; "required": false; }; "popupDirectionTop": { "alias": "popupDirectionTop"; "required": false; }; "popupBaseElementSelector": { "alias": "popupBaseElementSelector"; "required": false; }; "appendToBody": { "alias": "appendToBody"; "required": false; }; }, { "pagerAction": "pagerAction"; "pageChange": "pageChange"; }, never, never, false, never>;
}