ftable
Version:
Angular 6/7 Tables
179 lines • 13.5 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';
var FTableComponent = /** @class */ (function () {
function FTableComponent(_ftableService) {
this._ftableService = _ftableService;
this.page = [];
this.filterResetCount = 0;
}
/**
* @return {?}
*/
FTableComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this.refreshPage();
};
/**
* @param {?} changes
* @return {?}
*/
FTableComponent.prototype.ngOnChanges = /**
* @param {?} changes
* @return {?}
*/
function (changes) {
if (changes.url) {
this.refreshPage();
}
};
/**
* @param {?} pageSizeIndex
* @return {?}
*/
FTableComponent.prototype.onPageOptionChange = /**
* @param {?} pageSizeIndex
* @return {?}
*/
function (pageSizeIndex) {
this.table.pageSizeIndex = pageSizeIndex;
this.table.dataModifier.pageSize = this.table.pageSizes[pageSizeIndex];
this.refreshPage();
};
/**
* @param {?} pageNumber
* @return {?}
*/
FTableComponent.prototype.onPagingChange = /**
* @param {?} pageNumber
* @return {?}
*/
function (pageNumber) {
this.table.dataModifier.currentPage = pageNumber;
this.refreshPage();
};
/**
* @param {?} columnName
* @param {?} event
* @return {?}
*/
FTableComponent.prototype.sortOrder = /**
* @param {?} columnName
* @param {?} event
* @return {?}
*/
function (columnName, event) {
this.table.dataModifier.orders = this.table.dataModifier.orders.filter(function (x) { return x.columnName !== columnName; });
if (event.state !== '') {
this.table.dataModifier.orders.push(new FOrder(columnName, event.state));
}
this.refreshPage();
};
/**
* @param {?} event
* @return {?}
*/
FTableComponent.prototype.filter = /**
* @param {?} event
* @return {?}
*/
function (event) {
this.table.dataModifier.filters = this.table.dataModifier.filters.filter(function (x) { return 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 {?}
*/
FTableComponent.prototype.search = /**
* @param {?} event
* @return {?}
*/
function (event) {
this.table.dataModifier.search = new FSearch(event.searchString);
this.refreshPage();
};
/**
* @return {?}
*/
FTableComponent.prototype.refreshPage = /**
* @return {?}
*/
function () {
var _this = this;
this._ftableService.getData(this.table)
.subscribe(function (result) {
_this.table.result = result;
}, function (error) {
console.log("Error", error);
});
};
/**
* @param {?} idValue
* @param {?} propertyToChange
* @param {?} fn
* @return {?}
*/
FTableComponent.prototype.changeValue = /**
* @param {?} idValue
* @param {?} propertyToChange
* @param {?} fn
* @return {?}
*/
function (idValue, propertyToChange, fn) {
var _this = this;
this._ftableService.setData(idValue, propertyToChange, fn)
.subscribe(function (result) {
_this.refreshPage();
}, function (error) {
console.log("Error", error);
});
};
/**
* @return {?}
*/
FTableComponent.prototype.resetFilters = /**
* @return {?}
*/
function () {
this.filterChildren.forEach(function (x) { return x.reset(); });
};
FTableComponent.propDecorators = {
filterChildren: [{ type: ViewChildren, args: [FFilterComponent,] }]
};
return FTableComponent;
}());
export { FTableComponent };
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2Z0YWJsZS8iLCJzb3VyY2VzIjpbImxpYi9mdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxPQUFPLEVBQW9CLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFHLE1BQU0sZ0JBQWdCLENBQUM7QUFLN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRS9EO0lBUUkseUJBQW1CLGNBQWlDO1FBQWpDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUg3QyxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBbUNULHFCQUFnQixHQUFVLENBQUMsQ0FBQztJQS9CcEMsQ0FBQzs7OztJQUVELGtDQUFROzs7SUFBUjtRQUNJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QixDQUFDOzs7OztJQUVELHFDQUFXOzs7O0lBQVgsVUFBWSxPQUFPO1FBQ2YsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ2IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3RCO0lBQ0wsQ0FBQzs7Ozs7SUFFRCw0Q0FBa0I7Ozs7SUFBbEIsVUFBbUIsYUFBcUI7UUFDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkIsQ0FBQzs7Ozs7SUFFRCx3Q0FBYzs7OztJQUFkLFVBQWUsVUFBa0I7UUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMs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QyxDQUFDO0lBRVgsQ0FBQzs7OztJQUVNLHNDQUFZOzs7SUFBbkI7UUFDSSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBVCxDQUFTLENBQUMsQ0FBQztJQUNoRCxDQUFDOztpQ0FsRkEsWUFBWSxTQUFDLGdCQUFnQjs7SUFvRmxDLHNCQUFDO0NBQUEsQUF0RkQsSUFzRkM7U0F0RlksZUFBZTs7O0lBRXhCLHlDQUE0RTs7SUFFNUUsZ0NBQXFCOztJQUNyQiwrQkFBaUI7Ozs7O0lBbUNqQiwyQ0FBb0M7O0lBaEN4Qix5Q0FBd0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGVGFibGVCYXNlU2VydmljZSB9IGZyb20gJy4vc2VydmljZS9mdGFibGViYXNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyAgRlRhYmxlLCBGQ29sdW1uLCBGU2VhcmNoLCBGT3JkZXIsIEZGaWx0ZXIgIH0gZnJvbSAnLi9mdGFibGUubW9kZWwnO1xyXG5pbXBvcnQgeyBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5cclxuaW1wb3J0IHsgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9mZmlsdGVyL2ZmaWx0ZXIuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBjbGFzcyBGVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCB7XHJcblxyXG4gICAgQFZpZXdDaGlsZHJlbihGRmlsdGVyQ29tcG9uZW50KSBmaWx0ZXJDaGlsZHJlbjogUXVlcnlMaXN0PEZGaWx0ZXJDb21wb25lbnQ+O1xyXG5cclxuICAgIHB1YmxpYyB0YWJsZTogRlRhYmxlO1xyXG4gICAgcHVibGljIHBhZ2UgPSBbXTtcclxuXHJcblxyXG4gICAgY29uc3RydWN0b3IocHVibGljIF9mdGFibGVTZXJ2aWNlOiBGVGFibGVCYXNlU2VydmljZSkge1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMucmVmcmVzaFBhZ2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzKSB7XHJcbiAgICAgICAgaWYgKGNoYW5nZXMudXJsKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaFBhZ2UoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25QYWdlT3B0aW9uQ2hhbmdlKHBhZ2VTaXplSW5kZXg6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMudGFibGUucGFnZVNpemVJbmRleCA9IHBhZ2VTaXplSW5kZXg7XHJcbiAgICAgICAgdGhpcy50YWJsZS5kYXRhTW9kaWZpZXIucGFnZVNpemUgPSB0aGlzLnRhYmxlLnBhZ2VTaXplc1twYWdlU2l6ZUluZGV4XTtcclxuICAgICAgICB0aGlzLnJlZnJlc2hQYWdlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25QYWdpbmdDaGFuZ2UocGFnZU51bWJlcjogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy50YWJsZS5kYXRhTW9kaWZpZXIuY3VycmVudFBhZ2UgPSBwYWdlTnVtYmVyO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaFBhZ2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBzb3J0T3JkZXIoY29sdW1uTmFtZTpzdHJpbmcsIGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy50YWJsZS5kYXRhTW9kaWZpZXIub3JkZXJzID0gIHRoaXMudGFibGUuZGF0YU1vZGlmaWVyLm9yZGVycy5maWx0ZXIoeCA9PiB4LmNvbHVtbk5hbWUgIT09IGNvbHVtbk5hbWUpO1xyXG4gICAgICAgIGlmIChldmVudC5zdGF0ZSAhPT0gJycpIHtcclxuICAgICAgICAgICAgdGhpcy50YWJsZS5kYXRhTW9kaWZpZXIub3JkZXJzLnB1c2gobmV3IEZPcmRlcihjb2x1bW5OYW1lLCBldmVudC5zdGF0ZSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnJlZnJlc2hQYWdlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBmaWx0ZXJSZXNldENvdW50Om51bWJlciA9IDA7XHJcbiAgICBmaWx0ZXIoZXZlbnQpIHtcclxuICAgICAgICB0aGlzLnRhYmxlLmRhdGFNb2RpZmllci5maWx0ZXJzID0gdGhpcy50YWJsZS5kYXRhTW9kaWZpZXIuZmlsdGVycy5maWx0ZXIoeCA9PiB4LmNvbHVtbk5hbWUgIT09IGV2ZW50LmNvbHVtbk5hbWUpO1xyXG4gICAgICAgIHRoaXMudGFibGUuZGF0YU1vZGlmaWVyLmZpbHRlcnMucHVzaChuZXcgRkZpbHRlcihldmVudC5jb2x1bW5OYW1lLGV2ZW50LnR5cGUsZXZlbnQuYXBwbHkpKTtcclxuICAgICAgICAvLyBJZiByZXNldCBjb3VudCBhbGwgZmlsdGVyIHJlc2V0cyBhbmQgZW1pdCBvbmUgcmVzZXQgZXZlbnRcclxuICAgICAgICBpZiAoZXZlbnQuYXBwbHkgPT0gbnVsbCl7XHJcbiAgICAgICAgICAgIGlmKCsrdGhpcy5maWx0ZXJSZXNldENvdW50ID09IHRoaXMudGFibGUuZGF0YU1vZGlmaWVyLmZpbHRlcnMubGVuZ3RoKXtcclxuICAgICAgICAgICAgICB0aGlzLmZpbHRlclJlc2V0Q291bnQgPSAwO1xyXG4gICAgICAgICAgICAgIHRoaXMucmVmcmVzaFBhZ2UoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICB0aGlzLnJlZnJlc2hQYWdlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNlYXJjaChldmVudCkge1xyXG4gICAgICAgIHRoaXMudGFibGUuZGF0YU1vZGlmaWVyLnNlYXJjaCA9IG5ldyBGU2VhcmNoKGV2ZW50LnNlYXJjaFN0cmluZyk7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoUGFnZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZnJlc2hQYWdlKCl7XHJcbiAgICAgICAgIHRoaXMuX2Z0YWJsZVNlcnZpY2UuZ2V0RGF0YSh0aGlzLnRhYmxlKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgIChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLnJlc3VsdCA9IHJlc3VsdDtcclxuICAgICAgICAgICAgfSwgZXJyb3IgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiRXJyb3JcIiwgZXJyb3IpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIGNoYW5nZVZhbHVlKGlkVmFsdWU6YW55LHByb3BlcnR5VG9DaGFuZ2U6IHN0cmluZyxmbjogYW55KXtcclxuICAgICAgICB0aGlzLl9mdGFibGVTZXJ2aWNlLnNldERhdGEoaWRWYWx1ZSxwcm9wZXJ0eVRvQ2hhbmdlLGZuKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgIChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaFBhZ2UoKTtcclxuICAgICAgICAgICAgfSwgZXJyb3IgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiRXJyb3JcIiwgZXJyb3IpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgIFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBwdWJsaWMgcmVzZXRGaWx0ZXJzKCkge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyQ2hpbGRyZW4uZm9yRWFjaCh4ID0+IHgucmVzZXQoKSk7XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==