ftable
Version:
Angular 6/7 Tables
138 lines • 12 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { FSearch, FOrder, FFilter } from './ftable.model';
import { ViewChildren } from '@angular/core';
import { QueryList } from '@angular/core';
import { FFilterComponent } from './ffilter/ffilter.component';
export class FTableComponent {
/**
* @param {?} _ftableService
*/
constructor(_ftableService) {
this._ftableService = _ftableService;
this.page = [];
this.filterResetCount = 0;
}
/**
* @return {?}
*/
ngOnInit() {
this.refreshPage();
}
/**
* @param {?} changes
* @return {?}
*/
ngOnChanges(changes) {
if (changes.url) {
this.refreshPage();
}
}
/**
* @param {?} pageSizeIndex
* @return {?}
*/
onPageOptionChange(pageSizeIndex) {
this.table.pageSizeIndex = pageSizeIndex;
this.table.dataModifier.pageSize = this.table.pageSizes[pageSizeIndex];
this.refreshPage();
}
/**
* @param {?} pageNumber
* @return {?}
*/
onPagingChange(pageNumber) {
this.table.dataModifier.currentPage = pageNumber;
this.refreshPage();
}
/**
* @param {?} columnName
* @param {?} event
* @return {?}
*/
sortOrder(columnName, event) {
this.table.dataModifier.orders = this.table.dataModifier.orders.filter(x => x.columnName !== columnName);
if (event.state !== '') {
this.table.dataModifier.orders.push(new FOrder(columnName, event.state));
}
this.refreshPage();
}
/**
* @param {?} event
* @return {?}
*/
filter(event) {
this.table.dataModifier.filters = this.table.dataModifier.filters.filter(x => x.columnName !== event.columnName);
this.table.dataModifier.filters.push(new FFilter(event.columnName, event.type, event.apply));
// If reset count all filter resets and emit one reset event
if (event.apply == null) {
if (++this.filterResetCount == this.table.dataModifier.filters.length) {
this.filterResetCount = 0;
this.refreshPage();
}
}
else {
this.refreshPage();
}
}
/**
* @param {?} event
* @return {?}
*/
search(event) {
this.table.dataModifier.search = new FSearch(event.searchString);
this.refreshPage();
}
/**
* @return {?}
*/
refreshPage() {
this._ftableService.getData(this.table)
.subscribe((result) => {
this.table.result = result;
}, error => {
console.log("Error", error);
});
}
/**
* @param {?} idValue
* @param {?} propertyToChange
* @param {?} fn
* @return {?}
*/
changeValue(idValue, propertyToChange, fn) {
this._ftableService.setData(idValue, propertyToChange, fn)
.subscribe((result) => {
this.refreshPage();
}, error => {
console.log("Error", error);
});
}
/**
* @return {?}
*/
resetFilters() {
this.filterChildren.forEach(x => x.reset());
}
}
FTableComponent.propDecorators = {
filterChildren: [{ type: ViewChildren, args: [FFilterComponent,] }]
};
if (false) {
/** @type {?} */
FTableComponent.prototype.filterChildren;
/** @type {?} */
FTableComponent.prototype.table;
/** @type {?} */
FTableComponent.prototype.page;
/**
* @type {?}
* @private
*/
FTableComponent.prototype.filterResetCount;
/** @type {?} */
FTableComponent.prototype._ftableService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2Z0YWJsZS8iLCJzb3VyY2VzIjpbImxpYi9mdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxPQUFPLEVBQW9CLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFHLE1BQU0sZ0JBQWdCLENBQUM7QUFLN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRS9ELE1BQU0sT0FBTyxlQUFlOzs7O0lBUXhCLFlBQW1CLGNBQWlDO1FBQWpDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUg3QyxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBbUNULHFCQUFnQixHQUFVLENBQUMsQ0FBQztJQS9CcEMsQ0FBQzs7OztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkIsQ0FBQzs7Ozs7SUFFRCxXQUFXLENBQUMsT0FBTztRQUNmLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtZQUNiLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN0QjtJQUNMLENBQUM7Ozs7O0lBRUQsa0JBQWtCLENBQUMsYUFBcUI7UUFDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkIsQ0FBQzs7Ozs7SUFFRCxjQUFjLENBQUMsVUFBa0I7UUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FB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QUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7Ozs2QkFsRkEsWUFBWSxTQUFDLGdCQUFnQjs7OztJQUE5Qix5Q0FBNEU7O0lBRTVFLGdDQUFxQjs7SUFDckIsK0JBQWlCOzs7OztJQW1DakIsMkNBQW9DOztJQWhDeEIseUNBQXdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRlRhYmxlQmFzZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2UvZnRhYmxlYmFzZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgIEZUYWJsZSwgRkNvbHVtbiwgRlNlYXJjaCwgRk9yZGVyLCBGRmlsdGVyICB9IGZyb20gJy4vZnRhYmxlLm1vZGVsJztcclxuaW1wb3J0IHsgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuXHJcbmltcG9ydCB7IFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRkZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vZmZpbHRlci9mZmlsdGVyLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRlRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xyXG5cclxuICAgIEBWaWV3Q2hpbGRyZW4oRkZpbHRlckNvbXBvbmVudCkgZmlsdGVyQ2hpbGRyZW46IFF1ZXJ5TGlzdDxGRmlsdGVyQ29tcG9uZW50PjtcclxuXHJcbiAgICBwdWJsaWMgdGFibGU6IEZUYWJsZTtcclxuICAgIHB1YmxpYyBwYWdlID0gW107XHJcblxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBfZnRhYmxlU2VydmljZTogRlRhYmxlQmFzZVNlcnZpY2UpIHtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLnJlZnJlc2hQYWdlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlcykge1xyXG4gICAgICAgIGlmIChjaGFuZ2VzLnVybCkge1xyXG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hQYWdlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uUGFnZU9wdGlvbkNoYW5nZShwYWdlU2l6ZUluZGV4OiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLnRhYmxlLnBhZ2VTaXplSW5kZXggPSBwYWdlU2l6ZUluZGV4O1xyXG4gICAgICAgIHRoaXMudGFibGUuZGF0YU1vZGlmaWVyLnBhZ2VTaXplID0gdGhpcy50YWJsZS5wYWdlU2l6ZXNbcGFnZVNpemVJbmRleF07XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoUGFnZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uUGFnaW5nQ2hhbmdlKHBhZ2VOdW1iZXI6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMudGFibGUuZGF0YU1vZGlmaWVyLmN1cnJlbnRQYWdlID0gcGFnZU51bWJlcjtcclxuICAgICAgICB0aGlzLnJlZnJlc2hQYWdlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc29ydE9yZGVyKGNvbHVtbk5hbWU6c3RyaW5nLCBldmVudCkge1xyXG4gICAgICAgIHRoaXMudGFibGUuZGF0YU1vZGlmaWVyLm9yZGVycyA9ICB0aGlzLnRhYmxlLmRhdGFNb2RpZmllci5vcmRlcnMuZmlsdGVyKHggPT4geC5jb2x1bW5OYW1lICE9PSBjb2x1bW5OYW1lKTtcclxuICAgICAgICBpZiAoZXZlbnQuc3RhdGUgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGUuZGF0YU1vZGlmaWVyLm9yZGVycy5wdXNoKG5ldyBGT3JkZXIoY29sdW1uTmFtZSwgZXZlbnQuc3RhdGUpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoUGFnZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZmlsdGVyUmVzZXRDb3VudDpudW1iZXIgPSAwO1xyXG4gICAgZmlsdGVyKGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy50YWJsZS5kYXRhTW9kaWZpZXIuZmlsdGVycyA9IHRoaXMudGFibGUuZGF0YU1vZGlmaWVyLmZpbHRlcnMuZmlsdGVyKHggPT4geC5jb2x1bW5OYW1lICE9PSBldmVudC5jb2x1bW5OYW1lKTtcclxuICAgICAgICB0aGlzLnRhYmxlLmRhdGFNb2RpZmllci5maWx0ZXJzLnB1c2gobmV3IEZGaWx0ZXIoZXZlbnQuY29sdW1uTmFtZSxldmVudC50eXBlLGV2ZW50LmFwcGx5KSk7XHJcbiAgICAgICAgLy8gSWYgcmVzZXQgY291bnQgYWxsIGZpbHRlciByZXNldHMgYW5kIGVtaXQgb25lIHJlc2V0IGV2ZW50XHJcbiAgICAgICAgaWYgKGV2ZW50LmFwcGx5ID09IG51bGwpe1xyXG4gICAgICAgICAgICBpZigrK3RoaXMuZmlsdGVyUmVzZXRDb3VudCA9PSB0aGlzLnRhYmxlLmRhdGFNb2RpZmllci5maWx0ZXJzLmxlbmd0aCl7XHJcbiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJSZXNldENvdW50ID0gMDtcclxuICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hQYWdlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgdGhpcy5yZWZyZXNoUGFnZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZWFyY2goZXZlbnQpIHtcclxuICAgICAgICB0aGlzLnRhYmxlLmRhdGFNb2RpZmllci5zZWFyY2ggPSBuZXcgRlNlYXJjaChldmVudC5zZWFyY2hTdHJpbmcpO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaFBhZ2UoKTtcclxuICAgIH1cclxuXHJcbiAgICByZWZyZXNoUGFnZSgpe1xyXG4gICAgICAgICB0aGlzLl9mdGFibGVTZXJ2aWNlLmdldERhdGEodGhpcy50YWJsZSlcclxuICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgdGhpcy50YWJsZS5yZXN1bHQgPSByZXN1bHQ7XHJcbiAgICAgICAgICAgIH0sIGVycm9yID0+IHtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkVycm9yXCIsIGVycm9yKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICBcclxuICAgIH1cclxuXHJcbiAgICBjaGFuZ2VWYWx1ZShpZFZhbHVlOmFueSxwcm9wZXJ0eVRvQ2hhbmdlOiBzdHJpbmcsZm46IGFueSl7XHJcbiAgICAgICAgdGhpcy5fZnRhYmxlU2VydmljZS5zZXREYXRhKGlkVmFsdWUscHJvcGVydHlUb0NoYW5nZSxmbilcclxuICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hQYWdlKCk7XHJcbiAgICAgICAgICAgIH0sIGVycm9yID0+IHtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkVycm9yXCIsIGVycm9yKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICBcclxuICAgIH1cclxuICAgIFxyXG4gICAgcHVibGljIHJlc2V0RmlsdGVycygpIHtcclxuICAgICAgICB0aGlzLmZpbHRlckNoaWxkcmVuLmZvckVhY2goeCA9PiB4LnJlc2V0KCkpO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=