UNPKG

@true-directive/grid

Version:

Angular Data Grid from Yopsilon.

124 lines 14 kB
import * as tslib_1 from "tslib"; /** * Copyright (c) 2018-2019 Aleksey Melnikov, True Directive Company. * @link https://truedirective.com/ * @license MIT */ import { Component, Output, EventEmitter, ComponentFactoryResolver, Inject, ViewContainerRef, ChangeDetectorRef, ViewChild } from '@angular/core'; import { GridStateService } from '../grid-state.service'; let FilterPopupComponent = class FilterPopupComponent { constructor(state, _cfResolver, _changeDetector) { this.state = state; this._cfResolver = _cfResolver; this._changeDetector = _changeDetector; this.closed = new EventEmitter(); this.show = new EventEmitter(); this.setFilter = new EventEmitter(); this.resetFilter = new EventEmitter(); this._subscribes = []; } get visible() { return this.popup.visible; } popupClosed(e) { this.closed.emit(e); } popupShow(e) { this.show.emit(); } createComponent(filterComponentType, filter, rows) { this.unsubscribeAll(); this.container.clear(); const factory = this._cfResolver.resolveComponentFactory(filterComponentType); this._componentRef = this.container.createComponent(factory); this._componentRef.instance.filter = filter; this._componentRef.instance.rows = rows; this._componentRef.instance.state = this.state; this._componentRef.instance.init(); let s_closed; let s_set; let s_reset; s_closed = this._componentRef.instance.closed.subscribe((e) => this.closePopup()); s_set = this._componentRef.instance.setFilter.subscribe((e) => { this.setFilter.emit(e); this.closePopup(true); }); s_reset = this._componentRef.instance.resetFilter.subscribe((e) => { this.resetFilter.emit(e); this.closePopup(false); }); this._subscribes.push(s_closed); this._subscribes.push(s_set); this._subscribes.push(s_reset); } showByTarget(target, filter, filterComponentType, rows) { this.filter = filter; this.createComponent(filterComponentType, filter, rows); this.popup.showByTarget(target, 'left'); } closePopup(result = null) { if (this._componentRef) { this._componentRef.destroy(); this._componentRef = null; } this.popup.closePopup(result); } unsubscribeAll() { this._subscribes.forEach(sb => sb.unsubscribe()); this._subscribes = []; } ngAfterContentInit() { this.unsubscribeAll(); } ngOnDestroy() { this.unsubscribeAll(); } changes() { this._changeDetector.detectChanges(); } }; tslib_1.__decorate([ ViewChild('popup', { static: true }), tslib_1.__metadata("design:type", Object) ], FilterPopupComponent.prototype, "popup", void 0); tslib_1.__decorate([ ViewChild('container', { read: ViewContainerRef, static: true }), tslib_1.__metadata("design:type", Object) ], FilterPopupComponent.prototype, "container", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], FilterPopupComponent.prototype, "closed", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], FilterPopupComponent.prototype, "show", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], FilterPopupComponent.prototype, "setFilter", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], FilterPopupComponent.prototype, "resetFilter", void 0); FilterPopupComponent = tslib_1.__decorate([ Component({ selector: 'true-filter-popup', template: ` <true-popup #popup (closed)="popupClosed($event)" (show)="popupShow($event)"> <template #container></template> </true-popup> `, styles: [` div { position: relative; } `] }), tslib_1.__param(0, Inject('gridState')), tslib_1.__metadata("design:paramtypes", [GridStateService, ComponentFactoryResolver, ChangeDetectorRef]) ], FilterPopupComponent); export { FilterPopupComponent }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXBvcHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0cnVlLWRpcmVjdGl2ZS9ncmlkLyIsInNvdXJjZXMiOlsic3JjL2ZpbHRlcnMvZmlsdGVyLXBvcHVwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7RUFJRTtBQUNGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFDL0Isd0JBQXdCLEVBQUUsTUFBTSxFQUNoQyxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFDbkMsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBZ0J6RCxJQUFhLG9CQUFvQixHQUFqQyxNQUFhLG9CQUFvQjtJQXFHL0IsWUFDOEIsS0FBdUIsRUFDM0MsV0FBcUMsRUFDckMsZUFBa0M7UUFGZCxVQUFLLEdBQUwsS0FBSyxDQUFrQjtRQUMzQyxnQkFBVyxHQUFYLFdBQVcsQ0FBMEI7UUFDckMsb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBL0Y1QyxXQUFNLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFHcEQsU0FBSSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBR2xELGNBQVMsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUd2RCxnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBVWpELGdCQUFXLEdBQVUsRUFBRSxDQUFDO0lBNEVnQixDQUFDO0lBcEZqRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO0lBQzVCLENBQUM7SUFRRCxXQUFXLENBQUMsQ0FBTTtRQUNoQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsU0FBUyxDQUFDLENBQU07UUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxD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QUN4QixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkMsQ0FBQztDQU1GLENBQUE7QUF0R0M7SUFEQyxTQUFTLENBQUMsT0FBTyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyxDQUFDOzttREFDeEI7QUFHWDtJQURDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDOzt1REFDbEQ7QUFHZjtJQURDLE1BQU0sRUFBRTtzQ0FDRCxZQUFZO29EQUFnQztBQUdwRDtJQURDLE1BQU0sRUFBRTtzQ0FDSCxZQUFZO2tEQUFnQztBQUdsRDtJQURDLE1BQU0sRUFBRTtzQ0FDRSxZQUFZO3VEQUFnQztBQUd2RDtJQURDLE1BQU0sRUFBRTtzQ0FDSSxZQUFZO3lEQUFnQztBQWxCOUMsb0JBQW9CO0lBYmhDLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxtQkFBbUI7UUFDN0IsUUFBUSxFQUFFOzs7O0dBSVQ7aUJBQ087Ozs7S0FJTDtLQUNGLENBQUM7SUF1R0MsbUJBQUEsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFBOzZDQUFlLGdCQUFnQjtRQUM5Qix3QkFBd0I7UUFDcEIsaUJBQWlCO0dBeEdqQyxvQkFBb0IsQ0F5R2hDO1NBekdZLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBBbGVrc2V5IE1lbG5pa292LCBUcnVlIERpcmVjdGl2ZSBDb21wYW55LlxyXG4gKiBAbGluayBodHRwczovL3RydWVkaXJlY3RpdmUuY29tL1xyXG4gKiBAbGljZW5zZSBNSVRcclxuKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95LFxyXG4gICAgICAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEluamVjdCxcclxuICAgICAgICAgVmlld0NvbnRhaW5lclJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgR3JpZFN0YXRlU2VydmljZSB9IGZyb20gJy4uL2dyaWQtc3RhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEZpbHRlciB9IGZyb20gJ0B0cnVlLWRpcmVjdGl2ZS9iYXNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndHJ1ZS1maWx0ZXItcG9wdXAnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8dHJ1ZS1wb3B1cCAjcG9wdXAgKGNsb3NlZCk9XCJwb3B1cENsb3NlZCgkZXZlbnQpXCIgKHNob3cpPVwicG9wdXBTaG93KCRldmVudClcIj5cclxuICAgICAgPHRlbXBsYXRlICNjb250YWluZXI+PC90ZW1wbGF0ZT5cclxuICAgIDwvdHJ1ZS1wb3B1cD5cclxuICBgLFxyXG4gIHN0eWxlczpbYFxyXG4gICAgZGl2IHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgfVxyXG4gICAgYF1cclxuICB9KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyUG9wdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBAVmlld0NoaWxkKCdwb3B1cCcsIHtzdGF0aWM6IHRydWV9KVxyXG4gIHBvcHVwOiBhbnk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pXHJcbiAgY29udGFpbmVyOiBhbnk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGNsb3NlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgc2hvdzogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgc2V0RmlsdGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICByZXNldEZpbHRlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5wb3B1cC52aXNpYmxlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpbHRlcjogRmlsdGVyO1xyXG5cclxuICBwcml2YXRlIF9jb21wb25lbnRSZWY6IGFueTtcclxuXHJcbiAgcHJpdmF0ZSBfc3Vic2NyaWJlczogYW55W10gPSBbXTtcclxuXHJcbiAgcG9wdXBDbG9zZWQoZTogYW55KSB7XHJcbiAgICB0aGlzLmNsb3NlZC5lbWl0KGUpO1xyXG4gIH1cclxuXHJcbiAgcG9wdXBTaG93KGU6IGFueSkge1xyXG4gICAgdGhpcy5zaG93LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZUNvbXBvbmVudChmaWx0ZXJDb21wb25lbnRUeXBlOiBhbnksIGZpbHRlcjogRmlsdGVyLCByb3dzOiBBcnJheTxhbnk+KSB7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlQWxsKCk7XHJcbiAgICB0aGlzLmNvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuX2NmUmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoZmlsdGVyQ29tcG9uZW50VHlwZSk7XHJcblxyXG4gICAgdGhpcy5fY29tcG9uZW50UmVmID0gdGhpcy5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xyXG4gICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLmZpbHRlciA9IGZpbHRlcjtcclxuICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5yb3dzID0gcm93cztcclxuICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5zdGF0ZSA9IHRoaXMuc3RhdGU7XHJcbiAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UuaW5pdCgpO1xyXG5cclxuICAgIGxldCBzX2Nsb3NlZDogYW55O1xyXG4gICAgbGV0IHNfc2V0OiBhbnk7XHJcbiAgICBsZXQgc19yZXNldDogYW55O1xyXG5cclxuICAgIHNfY2xvc2VkID0gdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLmNsb3NlZC5zdWJzY3JpYmUoKGU6IGFueSkgPT4gdGhpcy5jbG9zZVBvcHVwKCkpO1xyXG5cclxuICAgIHNfc2V0ID0gdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLnNldEZpbHRlci5zdWJzY3JpYmUoKGU6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnNldEZpbHRlci5lbWl0KGUpO1xyXG4gICAgICB0aGlzLmNsb3NlUG9wdXAodHJ1ZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBzX3Jlc2V0ID0gdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLnJlc2V0RmlsdGVyLnN1YnNjcmliZSgoZTogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMucmVzZXRGaWx0ZXIuZW1pdChlKTtcclxuICAgICAgdGhpcy5jbG9zZVBvcHVwKGZhbHNlKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuX3N1YnNjcmliZXMucHVzaChzX2Nsb3NlZCk7XHJcbiAgICB0aGlzLl9zdWJzY3JpYmVzLnB1c2goc19zZXQpO1xyXG4gICAgdGhpcy5fc3Vic2NyaWJlcy5wdXNoKHNfcmVzZXQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dCeVRhcmdldCh0YXJnZXQ6IGFueSwgZmlsdGVyOiBGaWx0ZXIsIGZpbHRlckNvbXBvbmVudFR5cGU6IGFueSwgcm93czogQXJyYXk8YW55Pikge1xyXG4gICAgdGhpcy5maWx0ZXIgPSBmaWx0ZXI7XHJcbiAgICB0aGlzLmNyZWF0ZUNvbXBvbmVudChmaWx0ZXJDb21wb25lbnRUeXBlLCBmaWx0ZXIsIHJvd3MpO1xyXG4gICAgdGhpcy5wb3B1cC5zaG93QnlUYXJnZXQodGFyZ2V0LCAnbGVmdCcpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlUG9wdXAocmVzdWx0OiBhbnkgPSBudWxsKSB7XHJcbiAgICBpZiAodGhpcy5fY29tcG9uZW50UmVmKSB7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5kZXN0cm95KCk7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IG51bGw7XHJcbiAgICB9XHJcbiAgICB0aGlzLnBvcHVwLmNsb3NlUG9wdXAocmVzdWx0KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdW5zdWJzY3JpYmVBbGwoKSB7XHJcbiAgICB0aGlzLl9zdWJzY3JpYmVzLmZvckVhY2goc2IgPT4gc2IudW5zdWJzY3JpYmUoKSk7XHJcbiAgICB0aGlzLl9zdWJzY3JpYmVzID0gW107XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlQWxsKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudW5zdWJzY3JpYmVBbGwoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VzKCkge1xyXG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KCdncmlkU3RhdGUnKSBwdWJsaWMgc3RhdGU6IEdyaWRTdGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jZlJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxyXG59XHJcbiJdfQ==