projects/angular/components/ui-grid/src/footer/ui-grid-footer.directive.ts
Footer definition directive.
Selector | [uiGridFooter], ui-grid-footer |
Inputs |
Outputs |
Accessors |
hidden | |
Type : boolean
|
|
Default value : false
|
|
hidePageSize | |
Type : boolean
|
|
Default value : false
|
|
If the page size options should be hidden. |
hideTotalCount | |
Type : boolean
|
|
Default value : false
|
|
Whether to show total count in custom paginator |
length | |
Type : number
|
|
Default value : 0
|
|
The total item length. |
pageIndex | |
Type : number
|
|
The active page index |
pageSize | |
Type : number
|
|
The active page size. |
pageSizes | |
Type : number[]
|
|
Default value : []
|
|
The available page size options. |
showFirstLastButtons | |
Type : boolean
|
|
Default value : true
|
|
Whether to show the first/last buttons UI to the user. |
pageChange | |
Type : EventEmitter
|
|
Emits when the page is changed. |
pageSize | ||||||
setpageSize(value: number)
|
||||||
The active page size.
Parameters :
Returns :
void
|
pageIndex | ||||||
setpageIndex(value: number)
|
||||||
The active page index
Parameters :
Returns :
void
|
state |
getstate()
|
The current footer state. |
import { tap } from 'rxjs/operators';
import {
Directive,
EventEmitter,
Input,
OnDestroy,
OnInit,
Output,
} from '@angular/core';
import { PageChangeEvent } from '../events/page-change-event';
/**
* Footer definition directive.
*
* @export
*/
@Directive({
selector: '[uiGridFooter], ui-grid-footer',
})
export class UiGridFooterDirective implements OnDestroy, OnInit {
/**
* The total item length.
*
*/
@Input()
length = 0;
/**
* The active page size.
*
*/
@Input()
set pageSize(value: number) {
this._state.pageSize = value;
}
/**
* The active page index
*
*/
@Input()
set pageIndex(value: number) {
this._state.pageIndex = value;
}
/**
* The available page size options.
*
*/
@Input()
pageSizes: number[] = [];
/**
* If the page size options should be hidden.
*
*/
@Input()
hidePageSize = false;
/**
* Whether to show the first/last buttons UI to the user.
*
*/
@Input()
showFirstLastButtons = true;
/*
* Support hiding footer even if it's defined.
*/
@Input()
hidden = false;
/**
* Whether to show total count in custom paginator
*
*/
@Input()
hideTotalCount = false;
/**
* Emits when the page is changed.
*
*/
@Output()
pageChange = new EventEmitter<PageChangeEvent>();
/**
* The current footer state.
*
*/
get state() {
return this._state;
}
private _state: PageChangeEvent = {
length: NaN,
pageIndex: 0,
pageSize: NaN,
previousPageIndex: NaN,
};
/**
* @ignore
*/
constructor() {
this.pageChange.pipe(
tap(ev => this._state = ev),
).subscribe();
}
/**
* @ignore
*/
ngOnInit() {
this._state = {
...this._state,
length: this.length,
};
}
/**
* @ignore
*/
ngOnDestroy() {
this.pageChange.complete();
}
}