UNPKG

@true-directive/grid

Version:

Angular Data Grid from Yopsilon.

123 lines 15 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'; var FilterPopupComponent = /** @class */ (function () { function FilterPopupComponent(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 = []; } Object.defineProperty(FilterPopupComponent.prototype, "visible", { get: function () { return this.popup.visible; }, enumerable: true, configurable: true }); FilterPopupComponent.prototype.popupClosed = function (e) { this.closed.emit(e); }; FilterPopupComponent.prototype.popupShow = function (e) { this.show.emit(); }; FilterPopupComponent.prototype.createComponent = function (filterComponentType, filter, rows) { var _this = this; this.unsubscribeAll(); this.container.clear(); var 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(); var s_closed; var s_set; var s_reset; s_closed = this._componentRef.instance.closed.subscribe(function (e) { return _this.closePopup(); }); s_set = this._componentRef.instance.setFilter.subscribe(function (e) { _this.setFilter.emit(e); _this.closePopup(true); }); s_reset = this._componentRef.instance.resetFilter.subscribe(function (e) { _this.resetFilter.emit(e); _this.closePopup(false); }); this._subscribes.push(s_closed); this._subscribes.push(s_set); this._subscribes.push(s_reset); }; FilterPopupComponent.prototype.showByTarget = function (target, filter, filterComponentType, rows) { this.filter = filter; this.createComponent(filterComponentType, filter, rows); this.popup.showByTarget(target, 'left'); }; FilterPopupComponent.prototype.closePopup = function (result) { if (result === void 0) { result = null; } if (this._componentRef) { this._componentRef.destroy(); this._componentRef = null; } this.popup.closePopup(result); }; FilterPopupComponent.prototype.unsubscribeAll = function () { this._subscribes.forEach(function (sb) { return sb.unsubscribe(); }); this._subscribes = []; }; FilterPopupComponent.prototype.ngAfterContentInit = function () { this.unsubscribeAll(); }; FilterPopupComponent.prototype.ngOnDestroy = function () { this.unsubscribeAll(); }; FilterPopupComponent.prototype.changes = function () { 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: "\n <true-popup #popup (closed)=\"popupClosed($event)\" (show)=\"popupShow($event)\">\n <template #container></template>\n </true-popup>\n ", styles: ["\n div {\n position: relative;\n }\n "] }), tslib_1.__param(0, Inject('gridState')), tslib_1.__metadata("design:paramtypes", [GridStateService, ComponentFactoryResolver, ChangeDetectorRef]) ], FilterPopupComponent); return FilterPopupComponent; }()); export { FilterPopupComponent }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXBvcHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0cnVlLWRpcmVjdGl2ZS9ncmlkLyIsInNvdXJjZXMiOlsic3JjL2ZpbHRlcnMvZmlsdGVyLXBvcHVwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7RUFJRTtBQUNGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFDL0Isd0JBQXdCLEVBQUUsTUFBTSxFQUNoQyxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFDbkMsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBZ0J6RDtJQXFHRSw4QkFDOEIsS0FBdUIsRUFDM0MsV0FBcUMsRUFDckMsZUFBa0M7UUFGZCxVQUFLLEdBQUwsS0FBSyxDQUFrQjtRQUMzQyxnQkFBVyxHQUFYLFdBQVcsQ0FBMEI7UUFDckMsb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBL0Y1QyxXQUFNLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFHcEQsU0FBSSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBR2xELGNBQVMsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUd2RCxnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBVWpELGdCQUFXLEdBQVUsRUFBRSxDQUFDO0lBNEVnQixDQUFDO0lBcEZqRCxzQkFBSSx5Q0FBTzthQUFYO1lBQ0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUM1QixDQUFDOzs7T0FBQTtJQVFELDBDQUFXLEdBQVgsVUFBWSxDQUFNO1FBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRCx3Q0FBUyxHQUFULFVBQVUsQ0FBTTtRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7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aEIsQ0FBZ0IsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxpREFBa0IsR0FBbEI7UUFDRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELDBDQUFXLEdBQVg7UUFDRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVNLHNDQUFPLEdBQWQ7UUFDRSxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFoR0Q7UUFEQyxTQUFTLENBQUMsT0FBTyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyxDQUFDOzt1REFDeEI7SUFHWDtRQURDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDOzsyREFDbEQ7SUFHZjtRQURDLE1BQU0sRUFBRTswQ0FDRCxZQUFZO3dEQUFnQztJQUdwRDtRQURDLE1BQU0sRUFBRTswQ0FDSCxZQUFZO3NEQUFnQztJQUdsRDtRQURDLE1BQU0sRUFBRTswQ0FDRSxZQUFZOzJEQUFnQztJQUd2RDtRQURDLE1BQU0sRUFBRTswQ0FDSSxZQUFZOzZEQUFnQztJQWxCOUMsb0JBQW9CO1FBYmhDLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxtQkFBbUI7WUFDN0IsUUFBUSxFQUFFLHdKQUlUO3FCQUNPLHFEQUlMO1NBQ0YsQ0FBQztRQXVHQyxtQkFBQSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7aURBQWUsZ0JBQWdCO1lBQzlCLHdCQUF3QjtZQUNwQixpQkFBaUI7T0F4R2pDLG9CQUFvQixDQXlHaEM7SUFBRCwyQkFBQztDQUFBLEFBekdELElBeUdDO1NBekdZLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBBbGVrc2V5IE1lbG5pa292LCBUcnVlIERpcmVjdGl2ZSBDb21wYW55LlxyXG4gKiBAbGluayBodHRwczovL3RydWVkaXJlY3RpdmUuY29tL1xyXG4gKiBAbGljZW5zZSBNSVRcclxuKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95LFxyXG4gICAgICAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEluamVjdCxcclxuICAgICAgICAgVmlld0NvbnRhaW5lclJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgR3JpZFN0YXRlU2VydmljZSB9IGZyb20gJy4uL2dyaWQtc3RhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEZpbHRlciB9IGZyb20gJ0B0cnVlLWRpcmVjdGl2ZS9iYXNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndHJ1ZS1maWx0ZXItcG9wdXAnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8dHJ1ZS1wb3B1cCAjcG9wdXAgKGNsb3NlZCk9XCJwb3B1cENsb3NlZCgkZXZlbnQpXCIgKHNob3cpPVwicG9wdXBTaG93KCRldmVudClcIj5cclxuICAgICAgPHRlbXBsYXRlICNjb250YWluZXI+PC90ZW1wbGF0ZT5cclxuICAgIDwvdHJ1ZS1wb3B1cD5cclxuICBgLFxyXG4gIHN0eWxlczpbYFxyXG4gICAgZGl2IHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgfVxyXG4gICAgYF1cclxuICB9KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyUG9wdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBAVmlld0NoaWxkKCdwb3B1cCcsIHtzdGF0aWM6IHRydWV9KVxyXG4gIHBvcHVwOiBhbnk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pXHJcbiAgY29udGFpbmVyOiBhbnk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGNsb3NlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgc2hvdzogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgc2V0RmlsdGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICByZXNldEZpbHRlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5wb3B1cC52aXNpYmxlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpbHRlcjogRmlsdGVyO1xyXG5cclxuICBwcml2YXRlIF9jb21wb25lbnRSZWY6IGFueTtcclxuXHJcbiAgcHJpdmF0ZSBfc3Vic2NyaWJlczogYW55W10gPSBbXTtcclxuXHJcbiAgcG9wdXBDbG9zZWQoZTogYW55KSB7XHJcbiAgICB0aGlzLmNsb3NlZC5lbWl0KGUpO1xyXG4gIH1cclxuXHJcbiAgcG9wdXBTaG93KGU6IGFueSkge1xyXG4gICAgdGhpcy5zaG93LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZUNvbXBvbmVudChmaWx0ZXJDb21wb25lbnRUeXBlOiBhbnksIGZpbHRlcjogRmlsdGVyLCByb3dzOiBBcnJheTxhbnk+KSB7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlQWxsKCk7XHJcbiAgICB0aGlzLmNvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuX2NmUmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoZmlsdGVyQ29tcG9uZW50VHlwZSk7XHJcblxyXG4gICAgdGhpcy5fY29tcG9uZW50UmVmID0gdGhpcy5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xyXG4gICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLmZpbHRlciA9IGZpbHRlcjtcclxuICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5yb3dzID0gcm93cztcclxuICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5zdGF0ZSA9IHRoaXMuc3RhdGU7XHJcbiAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UuaW5pdCgpO1xyXG5cclxuICAgIGxldCBzX2Nsb3NlZDogYW55O1xyXG4gICAgbGV0IHNfc2V0OiBhbnk7XHJcbiAgICBsZXQgc19yZXNldDogYW55O1xyXG5cclxuICAgIHNfY2xvc2VkID0gdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLmNsb3NlZC5zdWJzY3JpYmUoKGU6IGFueSkgPT4gdGhpcy5jbG9zZVBvcHVwKCkpO1xyXG5cclxuICAgIHNfc2V0ID0gdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLnNldEZpbHRlci5zdWJzY3JpYmUoKGU6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnNldEZpbHRlci5lbWl0KGUpO1xyXG4gICAgICB0aGlzLmNsb3NlUG9wdXAodHJ1ZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBzX3Jlc2V0ID0gdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLnJlc2V0RmlsdGVyLnN1YnNjcmliZSgoZTogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMucmVzZXRGaWx0ZXIuZW1pdChlKTtcclxuICAgICAgdGhpcy5jbG9zZVBvcHVwKGZhbHNlKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuX3N1YnNjcmliZXMucHVzaChzX2Nsb3NlZCk7XHJcbiAgICB0aGlzLl9zdWJzY3JpYmVzLnB1c2goc19zZXQpO1xyXG4gICAgdGhpcy5fc3Vic2NyaWJlcy5wdXNoKHNfcmVzZXQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dCeVRhcmdldCh0YXJnZXQ6IGFueSwgZmlsdGVyOiBGaWx0ZXIsIGZpbHRlckNvbXBvbmVudFR5cGU6IGFueSwgcm93czogQXJyYXk8YW55Pikge1xyXG4gICAgdGhpcy5maWx0ZXIgPSBmaWx0ZXI7XHJcbiAgICB0aGlzLmNyZWF0ZUNvbXBvbmVudChmaWx0ZXJDb21wb25lbnRUeXBlLCBmaWx0ZXIsIHJvd3MpO1xyXG4gICAgdGhpcy5wb3B1cC5zaG93QnlUYXJnZXQodGFyZ2V0LCAnbGVmdCcpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlUG9wdXAocmVzdWx0OiBhbnkgPSBudWxsKSB7XHJcbiAgICBpZiAodGhpcy5fY29tcG9uZW50UmVmKSB7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5kZXN0cm95KCk7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IG51bGw7XHJcbiAgICB9XHJcbiAgICB0aGlzLnBvcHVwLmNsb3NlUG9wdXAocmVzdWx0KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdW5zdWJzY3JpYmVBbGwoKSB7XHJcbiAgICB0aGlzLl9zdWJzY3JpYmVzLmZvckVhY2goc2IgPT4gc2IudW5zdWJzY3JpYmUoKSk7XHJcbiAgICB0aGlzLl9zdWJzY3JpYmVzID0gW107XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlQWxsKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudW5zdWJzY3JpYmVBbGwoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VzKCkge1xyXG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KCdncmlkU3RhdGUnKSBwdWJsaWMgc3RhdGU6IEdyaWRTdGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jZlJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxyXG59XHJcbiJdfQ==