ftable
Version:
Angular 6/7 Tables
147 lines • 13.1 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, Input, ViewChild, ComponentFactoryResolver } from '@angular/core';
import { EmptyFFilterComponent } from './filters/emptyffilter.component';
import { TextFFilterComponent } from './filters/textffilter.component';
import { NumberFFilterComponent } from './filters/numberffilter.component';
import { CheckBoxFFilterComponent } from './filters/checkboxffilter.component';
import { DateFFilterComponent } from './filters/dateffilter.component';
import { FFilterDirective } from './ffilter.directive';
import { EventEmitter } from '@angular/core';
import { Output } from '@angular/core';
import { debounceTime } from 'rxjs/operators';
var FFilterComponent = /** @class */ (function () {
function FFilterComponent(componentFactoryResolver) {
this.componentFactoryResolver = componentFactoryResolver;
this.debounce = 500;
// Other data needed to be passed to filter
this.filter = new EventEmitter();
}
/**
* @return {?}
*/
FFilterComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this.loadComponent();
};
/**
* @return {?}
*/
FFilterComponent.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
// clearInterval(this.interval);
};
/**
* @return {?}
*/
FFilterComponent.prototype.loadComponent = /**
* @return {?}
*/
function () {
var _this = this;
// filter counter
// Check if standard filters else load custom
/** @type {?} */
var fftilter;
if (this.filterType === 'string') {
fftilter = TextFFilterComponent;
}
else if (this.filterType === 'number') {
fftilter = NumberFFilterComponent;
}
else if (this.filterType === 'checkbox') {
fftilter = CheckBoxFFilterComponent;
}
else if (this.filterType === 'date') {
fftilter = DateFFilterComponent;
}
else if (typeof this.filterType !== 'string') {
fftilter = this.filterType;
}
else {
// No filter Filter
fftilter = EmptyFFilterComponent;
}
/** @type {?} */
var componentFactory = this.componentFactoryResolver.resolveComponentFactory(fftilter);
// get reference of insertion point through
/** @type {?} */
var viewContainerRef = this.ffilterHost.viewContainerRef;
viewContainerRef.clear();
// Create instance of component
/** @type {?} */
var componentRef = viewContainerRef.createComponent(componentFactory);
// Pass data to filters
((/** @type {?} */ (componentRef.instance))).columnName = this.columnName;
((/** @type {?} */ (componentRef.instance))).source = this.source;
((/** @type {?} */ (componentRef.instance))).otherData = this.otherData;
// Bubble filter event
((/** @type {?} */ (componentRef.instance))).filter.pipe(debounceTime(this.debounce)).subscribe(function (event) {
_this.filter.emit(event);
});
this.filterr = ((/** @type {?} */ (componentRef.instance)));
};
/**
* @return {?}
*/
FFilterComponent.prototype.reset = /**
* @return {?}
*/
function () {
this.filterr.reset();
};
FFilterComponent.totalfilters = 0;
FFilterComponent.decorators = [
{ type: Component, args: [{
selector: 'ft-ffilter',
template: "\n\n <ng-template ffilter-host></ng-template>\n "
}] }
];
/** @nocollapse */
FFilterComponent.ctorParameters = function () { return [
{ type: ComponentFactoryResolver }
]; };
FFilterComponent.propDecorators = {
ffilterHost: [{ type: ViewChild, args: [FFilterDirective,] }],
source: [{ type: Input }],
columnName: [{ type: Input }],
debounce: [{ type: Input }],
filterType: [{ type: Input }],
otherData: [{ type: Input }],
filter: [{ type: Output }]
};
return FFilterComponent;
}());
export { FFilterComponent };
if (false) {
/** @type {?} */
FFilterComponent.totalfilters;
/** @type {?} */
FFilterComponent.prototype.ffilterHost;
/** @type {?} */
FFilterComponent.prototype.source;
/** @type {?} */
FFilterComponent.prototype.columnName;
/** @type {?} */
FFilterComponent.prototype.debounce;
/** @type {?} */
FFilterComponent.prototype.filterType;
/** @type {?} */
FFilterComponent.prototype.otherData;
/** @type {?} */
FFilterComponent.prototype.filter;
/** @type {?} */
FFilterComponent.prototype.filterr;
/**
* @type {?}
* @private
*/
FFilterComponent.prototype.componentFactoryResolver;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9mdGFibGUvIiwic291cmNlcyI6WyJsaWIvZmZpbHRlci9mZmlsdGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLHdCQUF3QixFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUM7SUFzQkUsMEJBQW9CLHdCQUFrRDtRQUFsRCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBVHRELGFBQVEsR0FBVyxHQUFHLENBQUM7O1FBSzdCLFdBQU0sR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUlZLENBQUM7Ozs7SUFFM0UsbUNBQVE7OztJQUFSO1FBQ0UsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7Ozs7SUFFRCxzQ0FBVzs7O0lBQVg7UUFDRSxnQ0FBZ0M7SUFDbEMsQ0FBQzs7OztJQUVELHdDQUFhOzs7SUFBYjtRQUFBLGlCQW1DQzs7OztZQWhDTSxRQUFRO1FBQ2IsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsRUFBRTtZQUM5QixRQUFRLEdBQUcsb0JBQW9CLENBQUM7U0FDbkM7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssUUFBUSxFQUFFO1lBQ3JDLFFBQVEsR0FBRyxzQkFBc0IsQ0FBQztTQUNyQzthQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUU7WUFDdkMsUUFBUSxHQUFHLHdCQUF3QixDQUFDO1NBQ3JDO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLE1BQU0sRUFBRTtZQUNyQyxRQUFRLEdBQUcsb0JBQW9CLENBQUM7U0FDbkM7YUFBTSxJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBTSxRQUFRLEVBQUU7WUFDN0MsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDOUI7YUFBTTtZQUNGLG1CQUFtQjtZQUNuQixRQUFRLEdBQUcscUJBQXFCLENBQUM7U0FDckM7O1lBRUssZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQzs7O1lBRWxGLGdCQUFnQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCO1FBQzFELGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDOzs7WUFFbkIsWUFBWSxHQUFHLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUN2RSx1QkFBdUI7UUFDdkIsQ0FBQyxtQkFBYSxZQUFZLENBQUMsUUFBUSxFQUFBLENBQUMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNsRSxDQUFDLG1CQUFhLFlBQVksQ0FBQyxRQUFRLEVBQUEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzFELENBQUMsbUJBQWEsWUFBWSxDQUFDLFFBQVEsRUFBQSxDQUFDLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFFaEUsc0JBQXNCO1FBQ3RCLENBQUMsbUJBQWEsWUFBWSxDQUFDLFFBQVEsRUFBQSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQUMsS0FBSztZQUN4RixLQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxtQkFBYSxZQUFZLENBQUMsUUFBUSxFQUFBLENBQUMsQ0FBQztJQUN0RCxDQUFDOzs7O0lBRU0sZ0NBQUs7OztJQUFaO1FBQ0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBbERNLDZCQUFZLEdBQUcsQ0FBQyxDQUFDOztnQkFyQnpCLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsUUFBUSxFQUFFLDRFQUdDO2lCQUNaOzs7O2dCQW5CNkMsd0JBQXdCOzs7OEJBc0JuRSxTQUFTLFNBQUMsZ0JBQWdCO3lCQUMxQixLQUFLOzZCQUVMLEtBQUs7MkJBQ0wsS0FBSzs2QkFFTCxLQUFLOzRCQUNMLEtBQUs7eUJBRUwsTUFBTTs7SUF1RFQsdUJBQUM7Q0FBQSxBQXpFRCxJQXlFQztTQWxFWSxnQkFBZ0I7OztJQWMzQiw4QkFBd0I7O0lBWnhCLHVDQUEyRDs7SUFDM0Qsa0NBQStCOztJQUUvQixzQ0FBbUM7O0lBQ25DLG9DQUF1Qzs7SUFFdkMsc0NBQWdDOztJQUNoQyxxQ0FBK0I7O0lBRS9CLGtDQUE4RDs7SUFFOUQsbUNBQXFCOzs7OztJQUVULG9EQUEwRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFbXB0eUZGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2ZpbHRlcnMvZW1wdHlmZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRleHRGRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9maWx0ZXJzL3RleHRmZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE51bWJlckZGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2ZpbHRlcnMvbnVtYmVyZmZpbHRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDaGVja0JveEZGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2ZpbHRlcnMvY2hlY2tib3hmZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERhdGVGRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9maWx0ZXJzL2RhdGVmZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZGaWx0ZXJEaXJlY3RpdmUgfSBmcm9tICcuL2ZmaWx0ZXIuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRkZpbHRlckJhc2UgfSBmcm9tICcuL2ZpbHRlcnMvZmZpbHRlci5iYXNlJztcclxuXHJcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdmdC1mZmlsdGVyJyxcclxuICB0ZW1wbGF0ZTogYFxyXG5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBmZmlsdGVyLWhvc3Q+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRkZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgQFZpZXdDaGlsZChGRmlsdGVyRGlyZWN0aXZlKSBmZmlsdGVySG9zdDogRkZpbHRlckRpcmVjdGl2ZTsgLy8gSGFuZGxlIHRvIHRlbXBsYXRlIHdoZXJlIHRvIGxvYWQgY3VzdG9tIGZpbHRlclxyXG4gIEBJbnB1dCgpIHB1YmxpYyBzb3VyY2U6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgcHVibGljIGNvbHVtbk5hbWU6IHN0cmluZztcclxuICBASW5wdXQoKSBwdWJsaWMgZGVib3VuY2U6IG51bWJlciA9IDUwMDtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIGZpbHRlclR5cGU6IGFueTsgLy8gVHlwZSBvZiBmaWx0ZXIgdG8gbG9hZCBvciBjdXN0b20uXHJcbiAgQElucHV0KCkgcHVibGljIG90aGVyRGF0YTogYW55OyAgLy8gT3RoZXIgZGF0YSBuZWVkZWQgdG8gYmUgcGFzc2VkIHRvIGZpbHRlclxyXG5cclxuICBAT3V0cHV0KCkgZmlsdGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIFxyXG4gIGZpbHRlcnI6IEZGaWx0ZXJCYXNlO1xyXG4gIHN0YXRpYyB0b3RhbGZpbHRlcnMgPSAwO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMubG9hZENvbXBvbmVudCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAvLyBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpO1xyXG4gIH1cclxuXHJcbiAgbG9hZENvbXBvbmVudCgpIHtcclxuICAgIC8vIGZpbHRlciBjb3VudGVyXHJcbiAgICAvLyBDaGVjayBpZiBzdGFuZGFyZCBmaWx0ZXJzIGVsc2UgbG9hZCBjdXN0b21cclxuICAgIGxldCAgZmZ0aWx0ZXI7XHJcbiAgICBpZiAodGhpcy5maWx0ZXJUeXBlID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgIGZmdGlsdGVyID0gVGV4dEZGaWx0ZXJDb21wb25lbnQ7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmlsdGVyVHlwZSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICBmZnRpbHRlciA9IE51bWJlckZGaWx0ZXJDb21wb25lbnQ7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmlsdGVyVHlwZSA9PT0gJ2NoZWNrYm94Jykge1xyXG4gICAgICAgIGZmdGlsdGVyID0gQ2hlY2tCb3hGRmlsdGVyQ29tcG9uZW50O1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuZmlsdGVyVHlwZSA9PT0gJ2RhdGUnKSB7XHJcbiAgICAgICAgZmZ0aWx0ZXIgPSBEYXRlRkZpbHRlckNvbXBvbmVudDtcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuZmlsdGVyVHlwZSAgIT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgZmZ0aWx0ZXIgPSB0aGlzLmZpbHRlclR5cGU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgICAvLyBObyBmaWx0ZXIgRmlsdGVyXHJcbiAgICAgICAgIGZmdGlsdGVyID0gRW1wdHlGRmlsdGVyQ29tcG9uZW50O1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShmZnRpbHRlcik7XHJcbiAgICAvLyBnZXQgcmVmZXJlbmNlIG9mIGluc2VydGlvbiBwb2ludCB0aHJvdWdoXHJcbiAgICBjb25zdCB2aWV3Q29udGFpbmVyUmVmID0gdGhpcy5mZmlsdGVySG9zdC52aWV3Q29udGFpbmVyUmVmO1xyXG4gICAgdmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xyXG4gICAgLy8gQ3JlYXRlIGluc3RhbmNlIG9mIGNvbXBvbmVudFxyXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50RmFjdG9yeSk7XHJcbiAgICAvLyBQYXNzIGRhdGEgdG8gZmlsdGVyc1xyXG4gICAgKDxGRmlsdGVyQmFzZT5jb21wb25lbnRSZWYuaW5zdGFuY2UpLmNvbHVtbk5hbWUgPSB0aGlzLmNvbHVtbk5hbWU7XHJcbiAgICAoPEZGaWx0ZXJCYXNlPmNvbXBvbmVudFJlZi5pbnN0YW5jZSkuc291cmNlID0gdGhpcy5zb3VyY2U7XHJcbiAgICAoPEZGaWx0ZXJCYXNlPmNvbXBvbmVudFJlZi5pbnN0YW5jZSkub3RoZXJEYXRhID0gdGhpcy5vdGhlckRhdGE7XHJcblxyXG4gICAgLy8gQnViYmxlIGZpbHRlciBldmVudFxyXG4gICAgKDxGRmlsdGVyQmFzZT5jb21wb25lbnRSZWYuaW5zdGFuY2UpLmZpbHRlci5waXBlKGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlKSkuc3Vic2NyaWJlKChldmVudCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5maWx0ZXIuZW1pdChldmVudCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZmlsdGVyciA9ICg8RkZpbHRlckJhc2U+Y29tcG9uZW50UmVmLmluc3RhbmNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZXNldCgpIHtcclxuICAgIHRoaXMuZmlsdGVyci5yZXNldCgpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19