UNPKG

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
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==