angular-dynamic-forms-lite
Version:
Efficient dynamic and customizable Angular 7+ forms.
136 lines • 7.75 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { EventEmitter } from "@angular/core";
/**
* @record
*/
export function PageEvent() { }
if (false) {
/** @type {?} */
PageEvent.prototype.pageSize;
/** @type {?} */
PageEvent.prototype.pageIndex;
}
export class Paginator {
/**
* @param {?} _pageSize
*/
constructor(_pageSize) {
this._pageSize = _pageSize;
this._pageIndex = 0;
this.totalSize = 0;
this.pageEvents = new EventEmitter();
}
/**
* @param {?} totalSize
* @return {?}
*/
updateTotalSize(totalSize) {
this.totalSize = totalSize;
/** @type {?} */
const newPageIndex = this.maxPageIndex;
if (newPageIndex < this._pageIndex) {
this._pageIndex = newPageIndex;
this.pageEvents.next(this.currentPage);
}
}
/**
* @return {?}
*/
get pageIndex() {
return this._pageIndex;
}
/**
* @return {?}
*/
get maxPageIndex() {
if (this.totalSize === 0) {
return 0;
}
return Math.ceil(this.totalSize / this._pageSize) - 1;
}
/**
* @return {?}
*/
get pageSize() {
return this._pageSize;
}
/**
* @return {?}
*/
get currentPage() {
return {
pageIndex: this._pageIndex,
pageSize: this._pageSize
};
}
/**
* @return {?}
*/
hasNextPage() {
return (this._pageIndex + 1) * this._pageSize < this.totalSize;
}
/**
* @return {?}
*/
hasPreviousPage() {
return this._pageIndex !== 0;
}
/**
* @return {?}
*/
nextPage() {
if (!this.hasNextPage())
return false;
this._pageIndex++;
this.pageEvents.next({
pageIndex: this.pageIndex,
pageSize: this.pageSize
});
return true;
}
/**
* @return {?}
*/
previousPage() {
if (!this.hasPreviousPage())
return false;
this._pageIndex--;
this.pageEvents.next({
pageIndex: this.pageIndex,
pageSize: this.pageSize
});
return true;
}
/**
* @return {?}
*/
onPageEvent() {
return this.pageEvents;
}
}
if (false) {
/**
* @type {?}
* @private
*/
Paginator.prototype._pageIndex;
/**
* @type {?}
* @private
*/
Paginator.prototype.totalSize;
/**
* @type {?}
* @private
*/
Paginator.prototype.pageEvents;
/**
* @type {?}
* @private
*/
Paginator.prototype._pageSize;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1keW5hbWljLWZvcm1zLWxpdGUvIiwic291cmNlcyI6WyJsaWIvZm9ybS1maWVsZC9hcnJheS9wYWdpbmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFFN0MsK0JBR0M7OztJQUZDLDZCQUFpQjs7SUFDakIsOEJBQWtCOztBQUdwQixNQUFNLE9BQU8sU0FBUzs7OztJQUtwQixZQUFvQixTQUFpQjtRQUFqQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBSjdCLGVBQVUsR0FBVyxDQUFDLENBQUM7UUFDdkIsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUN0QixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztJQUVYLENBQUM7Ozs7O0lBRWxDLGVBQWUsQ0FBQyxTQUFpQjtRQUN0QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQzs7Y0FDckIsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZO1FBQ3RDLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUM7WUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQzs7OztJQUVELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQzs7OztJQUVELElBQVcsWUFBWTtRQUNyQixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hELENBQUM7Ozs7SUFFRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7Ozs7SUFFRCxJQUFXLFdBQVc7UUFDcEIsT0FBTztZQUNMLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMxQixRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVM7U0FDekIsQ0FBQztJQUNKLENBQUM7Ozs7SUFFTSxXQUFXO1FBQ2hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNqRSxDQUFDOzs7O0lBRU0sZUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7Ozs7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUV0QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDbkIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN4QixDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Ozs7SUFFTSxZQUFZO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFMUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ25CLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDeEIsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzs7O0lBRU0sV0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztDQUNGOzs7Ozs7SUF0RUMsK0JBQStCOzs7OztJQUMvQiw4QkFBOEI7Ozs7O0lBQzlCLCtCQUFtRDs7Ozs7SUFFdkMsOEJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBQYWdlRXZlbnQge1xuICBwYWdlU2l6ZTogbnVtYmVyO1xuICBwYWdlSW5kZXg6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIFBhZ2luYXRvciB7XG4gIHByaXZhdGUgX3BhZ2VJbmRleDogbnVtYmVyID0gMDtcbiAgcHJpdmF0ZSB0b3RhbFNpemU6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgcGFnZUV2ZW50cyA9IG5ldyBFdmVudEVtaXR0ZXI8UGFnZUV2ZW50PigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3BhZ2VTaXplOiBudW1iZXIpIHt9XG5cbiAgcHVibGljIHVwZGF0ZVRvdGFsU2l6ZSh0b3RhbFNpemU6IG51bWJlcikge1xuICAgIHRoaXMudG90YWxTaXplID0gdG90YWxTaXplO1xuICAgIGNvbnN0IG5ld1BhZ2VJbmRleCA9IHRoaXMubWF4UGFnZUluZGV4O1xuICAgIGlmIChuZXdQYWdlSW5kZXggPCB0aGlzLl9wYWdlSW5kZXgpIHtcbiAgICAgIHRoaXMuX3BhZ2VJbmRleCA9IG5ld1BhZ2VJbmRleDtcbiAgICAgIHRoaXMucGFnZUV2ZW50cy5uZXh0KHRoaXMuY3VycmVudFBhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGFnZUluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VJbmRleDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbWF4UGFnZUluZGV4KCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMudG90YWxTaXplID09PSAwKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIE1hdGguY2VpbCh0aGlzLnRvdGFsU2l6ZSAvIHRoaXMuX3BhZ2VTaXplKSAtIDE7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBhZ2VTaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VTaXplO1xuICB9XG5cbiAgcHVibGljIGdldCBjdXJyZW50UGFnZSgpOiBQYWdlRXZlbnQge1xuICAgIHJldHVybiB7XG4gICAgICBwYWdlSW5kZXg6IHRoaXMuX3BhZ2VJbmRleCxcbiAgICAgIHBhZ2VTaXplOiB0aGlzLl9wYWdlU2l6ZVxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgaGFzTmV4dFBhZ2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLl9wYWdlSW5kZXggKyAxKSAqIHRoaXMuX3BhZ2VTaXplIDwgdGhpcy50b3RhbFNpemU7XG4gIH1cblxuICBwdWJsaWMgaGFzUHJldmlvdXNQYWdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9wYWdlSW5kZXggIT09IDA7XG4gIH1cblxuICBwdWJsaWMgbmV4dFBhZ2UoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmhhc05leHRQYWdlKCkpIHJldHVybiBmYWxzZTtcblxuICAgIHRoaXMuX3BhZ2VJbmRleCsrO1xuICAgIHRoaXMucGFnZUV2ZW50cy5uZXh0KHtcbiAgICAgIHBhZ2VJbmRleDogdGhpcy5wYWdlSW5kZXgsXG4gICAgICBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZVxuICAgIH0pO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIHByZXZpb3VzUGFnZSgpIHtcbiAgICBpZiAoIXRoaXMuaGFzUHJldmlvdXNQYWdlKCkpIHJldHVybiBmYWxzZTtcblxuICAgIHRoaXMuX3BhZ2VJbmRleC0tO1xuICAgIHRoaXMucGFnZUV2ZW50cy5uZXh0KHtcbiAgICAgIHBhZ2VJbmRleDogdGhpcy5wYWdlSW5kZXgsXG4gICAgICBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZVxuICAgIH0pO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIG9uUGFnZUV2ZW50KCk6IEV2ZW50RW1pdHRlcjxQYWdlRXZlbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5wYWdlRXZlbnRzO1xuICB9XG59XG4iXX0=