ngx-filters
Version:
This library was generated for all type of frameworks such as Angular Material, Prime Ng, etc. Providing Filters such as Number Box, TextBox, Date, Single Select, Multi Select And True/False Filters for grids or list.
99 lines • 14.6 kB
JavaScript
import { Directive, Injector, ViewChild, ViewContainerRef } from '@angular/core';
import { NgxFiltersService } from "../ngx-filters.service";
import { ConditionOperator, FilterTypes, LogicalOperator } from "../ngx-types";
export class NgxFilterBase {
constructor(injector) {
this.conditionSource = [];
this._isFirst = true;
this._injector = injector;
this.filterService = injector.get(NgxFiltersService);
// this.ref = injector.get(ChangeDetectorRef);
}
get filterTypes() {
return FilterTypes;
}
get conditionOperators() {
return ConditionOperator;
}
get logicalOperators() {
return LogicalOperator;
}
ngOnInit() {
}
generateComponents(factory, options, conditions = null) {
setTimeout(() => {
if (this.containerRefDev1) {
this.containerRefDev1.clear();
this.componentRef1 = factory.create(this._injector);
// setTimeout(() => {
this.componentRef1.instance.label = this.Label1;
if (this.filter.type == FilterTypes.MultiSelect) {
this.componentRef1.instance.value = this.filter.values;
}
else {
this.componentRef1.instance.value = this.filter.value;
}
this.componentRef1.instance.filter = this.filter;
this.componentRef1.instance.filterService = this.filterService;
this.componentRef1.instance.options = options;
if (this.componentRef1.instance.conditions) {
this.componentRef1.instance.conditions = conditions;
}
this.componentRef1.instance.valueChange.subscribe(ev => {
if (conditions) {
this.filter.conditionOperator = ev;
}
else {
if (this.filter.type == FilterTypes.MultiSelect) {
this.filter.values = ev;
}
else {
this.filter.value = ev;
}
}
this.changeValue.emit(ev);
});
this.containerRefDev1.insert(this.componentRef1.hostView);
// })
}
if (this.containerRefDev2) {
this.containerRefDev2.clear();
this.componentRef2 = factory.create(this._injector);
// setTimeout(() => {
this.componentRef2.instance.label = this.Label2;
this.componentRef2.instance.value = this.filter.valueTo;
this.componentRef2.instance.filter = this.filter;
this.componentRef2.instance.options = options;
this.componentRef2.instance.filterService = this.filterService;
this.componentRef2.instance.valueChange.subscribe(ev => {
this.filter.valueTo = ev;
this.changeValue.emit(ev);
});
this.containerRefDev2.insert(this.componentRef2.hostView);
// });
}
});
}
refreshLabels() {
if (this.componentRef1)
this.componentRef1.instance.label = this.Label1;
if (this.componentRef2)
this.componentRef2.instance.label = this.Label2;
}
ngOnDestroy() {
var _a, _b;
(_a = this.componentRef1) === null || _a === void 0 ? void 0 : _a.destroy();
(_b = this.componentRef2) === null || _b === void 0 ? void 0 : _b.destroy();
}
}
NgxFilterBase.decorators = [
{ type: Directive, args: [{},] }
];
NgxFilterBase.ctorParameters = () => [
{ type: Injector }
];
NgxFilterBase.propDecorators = {
containerRefDev1: [{ type: ViewChild, args: ['containerRefDev1', { read: ViewContainerRef },] }],
containerRefDev2: [{ type: ViewChild, args: ['containerRefDev2', { read: ViewContainerRef },] }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZpbHRlci1iYXNlLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL2EubW9oYW1tYWRpL3NvdXJjZS9yZXBvcy9NeWxpYnJhcnkvQW5ndWxhci5MaWJyYXJ5L2xpYnMvcHJvamVjdHMvbmd4LWZpbHRlcnMvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvbmd4LWZpbHRlci1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJTCxTQUFTLEVBQ1QsUUFBUSxFQUdSLFNBQVMsRUFDVCxnQkFBZ0IsRUFDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFDLGlCQUFpQixFQUFVLFdBQVcsRUFBRSxlQUFlLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFJckYsTUFBTSxPQUFnQixhQUFhO0lBU2pDLFlBQXNCLFFBQWtCO1FBVXhDLG9CQUFlLEdBQXNFLEVBQUUsQ0FBQztRQUVoRixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBWHRCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JELDhDQUE4QztJQUNoRCxDQUFDO0lBVUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8saUJBQWlCLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQztJQUVELGtCQUFrQixDQUFDLE9BQThCLEVBQUUsT0FBWSxFQUFFLFVBQVUsR0FBRyxJQUFJO1FBQ2hGLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDekIs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Q3JELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztvQkFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzVCLENBQUMsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFFMUQsTUFBTTthQUVQO1FBQ0gsQ0FBQyxDQUNGLENBQUE7SUFHSCxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLGFBQWE7WUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDbEQsSUFBSSxJQUFJLENBQUMsYUFBYTtZQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNwRCxDQUFDO0lBRUQsV0FBVzs7UUFHVCxNQUFBLElBQUksQ0FBQyxhQUFhLDBDQUFFLE9BQU8sR0FBRztRQUM5QixNQUFBLElBQUksQ0FBQyxhQUFhLDBDQUFFLE9BQU8sR0FBRztJQUNoQyxDQUFDOzs7WUFqSEYsU0FBUyxTQUFDLEVBQUU7OztZQVZYLFFBQVE7OzsrQkFhUCxTQUFTLFNBQUMsa0JBQWtCLEVBQUUsRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUM7K0JBQ3RELFNBQVMsU0FBQyxrQkFBa0IsRUFBRSxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50RmFjdG9yeSxcclxuICBDb21wb25lbnRSZWYsXHJcbiAgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsXHJcbiAgSW5qZWN0b3IsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0NvbnRhaW5lclJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge05neEZpbHRlcnNTZXJ2aWNlfSBmcm9tIFwiLi4vbmd4LWZpbHRlcnMuc2VydmljZVwiO1xyXG5pbXBvcnQge0NvbmRpdGlvbk9wZXJhdG9yLCBGaWx0ZXIsIEZpbHRlclR5cGVzLCBMb2dpY2FsT3BlcmF0b3J9IGZyb20gXCIuLi9uZ3gtdHlwZXNcIjtcclxuaW1wb3J0IHttYXB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5cclxuQERpcmVjdGl2ZSh7fSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5neEZpbHRlckJhc2UgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgLy8gcHVibGljIGZpbHRlcnNTZXJ2aWNlOiBGaWx0ZXJzU2VydmljZTtcclxuICBAVmlld0NoaWxkKCdjb250YWluZXJSZWZEZXYxJywge3JlYWQ6IFZpZXdDb250YWluZXJSZWZ9KSBjb250YWluZXJSZWZEZXYxOiBWaWV3Q29udGFpbmVyUmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lclJlZkRldjInLCB7cmVhZDogVmlld0NvbnRhaW5lclJlZn0pIGNvbnRhaW5lclJlZkRldjI6IFZpZXdDb250YWluZXJSZWY7XHJcbiAgcHVibGljIGZpbHRlclNlcnZpY2U6IE5neEZpbHRlcnNTZXJ2aWNlXHJcbiAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmO1xyXG4gIGFic3RyYWN0IGNoYW5nZVZhbHVlOiBFdmVudEVtaXR0ZXI8YW55PjtcclxuICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3I7XHJcblxyXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgIHRoaXMuX2luamVjdG9yID0gaW5qZWN0b3I7XHJcbiAgICB0aGlzLmZpbHRlclNlcnZpY2UgPSBpbmplY3Rvci5nZXQoTmd4RmlsdGVyc1NlcnZpY2UpO1xyXG4gICAgLy8gdGhpcy5yZWYgPSBpbmplY3Rvci5nZXQoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgY29tcG9uZW50UmVmMTogQ29tcG9uZW50UmVmPGFueT47XHJcbiAgY29tcG9uZW50UmVmMjogQ29tcG9uZW50UmVmPGFueT47XHJcbiAgYWJzdHJhY3QgTGFiZWwxOiBzdHJpbmc7XHJcbiAgYWJzdHJhY3QgTGFiZWwyOiBzdHJpbmc7XHJcbiAgY29uZGl0aW9uU291cmNlOiB7IGtleTogQ29uZGl0aW9uT3BlcmF0b3IsIGxhYmVsOiBzdHJpbmcsIHR5cGVzOiBGaWx0ZXJUeXBlc1tdIH1bXSA9IFtdO1xyXG4gIGFic3RyYWN0IGZpbHRlcjogRmlsdGVyO1xyXG4gIHByaXZhdGUgX2lzRmlyc3QgPSB0cnVlO1xyXG5cclxuICBnZXQgZmlsdGVyVHlwZXMoKSB7XHJcbiAgICByZXR1cm4gRmlsdGVyVHlwZXM7XHJcbiAgfVxyXG5cclxuICBnZXQgY29uZGl0aW9uT3BlcmF0b3JzKCkge1xyXG4gICAgcmV0dXJuIENvbmRpdGlvbk9wZXJhdG9yO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxvZ2ljYWxPcGVyYXRvcnMoKSB7XHJcbiAgICByZXR1cm4gTG9naWNhbE9wZXJhdG9yO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZUNvbXBvbmVudHMoZmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeTxhbnk+LCBvcHRpb25zOiBhbnksIGNvbmRpdGlvbnMgPSBudWxsKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5jb250YWluZXJSZWZEZXYxKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbnRhaW5lclJlZkRldjEuY2xlYXIoKTtcclxuICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmMSA9IGZhY3RvcnkuY3JlYXRlKHRoaXMuX2luamVjdG9yKTtcclxuICAgICAgICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYxLmluc3RhbmNlLmxhYmVsID0gdGhpcy5MYWJlbDE7XHJcbiAgICAgICAgICBpZiAodGhpcy5maWx0ZXIudHlwZSA9PSBGaWx0ZXJUeXBlcy5NdWx0aVNlbGVjdCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZjEuaW5zdGFuY2UudmFsdWUgPSB0aGlzLmZpbHRlci52YWx1ZXM7XHJcblxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYxLmluc3RhbmNlLnZhbHVlID0gdGhpcy5maWx0ZXIudmFsdWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZjEuaW5zdGFuY2UuZmlsdGVyID0gdGhpcy5maWx0ZXI7XHJcbiAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZjEuaW5zdGFuY2UuZmlsdGVyU2VydmljZSA9IHRoaXMuZmlsdGVyU2VydmljZTtcclxuICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmMS5pbnN0YW5jZS5vcHRpb25zID0gb3B0aW9ucztcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5jb21wb25lbnRSZWYxLmluc3RhbmNlLmNvbmRpdGlvbnMpIHtcclxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYxLmluc3RhbmNlLmNvbmRpdGlvbnMgPSBjb25kaXRpb25zO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYxLmluc3RhbmNlLnZhbHVlQ2hhbmdlLnN1YnNjcmliZShldiA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjb25kaXRpb25zKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5maWx0ZXIuY29uZGl0aW9uT3BlcmF0b3IgPSBldjtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5maWx0ZXIudHlwZSA9PSBGaWx0ZXJUeXBlcy5NdWx0aVNlbGVjdCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXIudmFsdWVzID0gZXY7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyLnZhbHVlID0gZXY7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZVZhbHVlLmVtaXQoZXYpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLmNvbnRhaW5lclJlZkRldjEuaW5zZXJ0KHRoaXMuY29tcG9uZW50UmVmMS5ob3N0Vmlldyk7XHJcbiAgICAgICAgICAvLyB9KVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5jb250YWluZXJSZWZEZXYyKSB7XHJcblxyXG4gICAgICAgICAgdGhpcy5jb250YWluZXJSZWZEZXYyLmNsZWFyKCk7XHJcbiAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZjIgPSBmYWN0b3J5LmNyZWF0ZSh0aGlzLl9pbmplY3Rvcik7XHJcblxyXG4gICAgICAgICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZjIuaW5zdGFuY2UubGFiZWwgPSB0aGlzLkxhYmVsMjtcclxuICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmMi5pbnN0YW5jZS52YWx1ZSA9IHRoaXMuZmlsdGVyLnZhbHVlVG87XHJcbiAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZjIuaW5zdGFuY2UuZmlsdGVyID0gdGhpcy5maWx0ZXI7XHJcbiAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZjIuaW5zdGFuY2Uub3B0aW9ucyA9IG9wdGlvbnM7XHJcbiAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZjIuaW5zdGFuY2UuZmlsdGVyU2VydmljZSA9IHRoaXMuZmlsdGVyU2VydmljZTtcclxuICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmMi5pbnN0YW5jZS52YWx1ZUNoYW5nZS5zdWJzY3JpYmUoZXYgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlci52YWx1ZVRvID0gZXY7XHJcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlVmFsdWUuZW1pdChldik7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuY29udGFpbmVyUmVmRGV2Mi5pbnNlcnQodGhpcy5jb21wb25lbnRSZWYyLmhvc3RWaWV3KTtcclxuXHJcbiAgICAgICAgICAvLyB9KTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApXHJcblxyXG5cclxuICB9XHJcblxyXG4gIHJlZnJlc2hMYWJlbHMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYxKVxyXG4gICAgICB0aGlzLmNvbXBvbmVudFJlZjEuaW5zdGFuY2UubGFiZWwgPSB0aGlzLkxhYmVsMTtcclxuICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZjIpXHJcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmMi5pbnN0YW5jZS5sYWJlbCA9IHRoaXMuTGFiZWwyO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKVxyXG4gICAgOlxyXG4gICAgdm9pZCB7XHJcbiAgICB0aGlzLmNvbXBvbmVudFJlZjE/LmRlc3Ryb3koKTtcclxuICAgIHRoaXMuY29tcG9uZW50UmVmMj8uZGVzdHJveSgpO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbiJdfQ==