UNPKG

@true-directive/grid

Version:

Angular Data Grid from Yopsilon.

118 lines 13 kB
import * as tslib_1 from "tslib"; /** * Copyright (c) 2018-2019 Aleksey Melnikov, True Directive Company. * @link https://truedirective.com/ * @license MIT */ import { Component, Input, Output, EventEmitter, ContentChildren, QueryList, ViewChild } from '@angular/core'; import { MenuItemComponent } from './menu-item.component'; var MenuComponent = /** @class */ (function () { function MenuComponent() { this.closed = new EventEmitter(); this.show = new EventEmitter(); this.position = 'RELATIVE'; this._parentMenu = null; } MenuComponent.prototype.popupClosed = function (e) { this.closeSubMenus(null); this.closed.emit(); }; MenuComponent.prototype.popupShow = function (e) { this.show.emit(); }; Object.defineProperty(MenuComponent.prototype, "visible", { get: function () { return this.popup.visible; }, enumerable: true, configurable: true }); MenuComponent.prototype.showByXY = function (x, y) { this.popup.showByXY(x, y); }; MenuComponent.prototype.showByTarget = function (target, direction, parentMenu) { if (target === void 0) { target = null; } if (direction === void 0) { direction = ''; } if (parentMenu === void 0) { parentMenu = null; } this._parentMenu = parentMenu; this.popup.showByTarget(target, direction); }; MenuComponent.prototype.togglePopup = function (target, direction, parentMenu) { if (target === void 0) { target = null; } if (direction === void 0) { direction = ''; } if (parentMenu === void 0) { parentMenu = null; } if (!this.visible) { this._parentMenu = parentMenu; this.popup.showByTarget(target, direction); } else this.popup.closePopup(target, direction); }; MenuComponent.prototype.closeSubMenus = function (sender) { this.items.forEach(function (item) { if (item !== sender) item.closeSubMenu(); }); }; MenuComponent.prototype.closePopup = function (withParent) { if (withParent === void 0) { withParent = true; } if (this._parentMenu !== null && withParent) this._parentMenu.closePopup(true); this.popup.closePopup(); }; MenuComponent.prototype.addSubscription = function (s) { if (!this._subscription) { this._subscription = s; } else { this._subscription.add(s); } }; MenuComponent.prototype.ngAfterContentInit = function () { var _this = this; if (this._subscription) { this._subscription.unsubscribe(); } this.items.forEach(function (item) { item.parentMenu = _this; var sbme = item.onMouseEnter.subscribe(function (e) { return _this.closeSubMenus(e); }); _this.addSubscription(sbme); var sbc = item.onClick.subscribe(function (e) { return _this.closePopup(true); }); _this.addSubscription(sbc); }); }; MenuComponent.prototype.ngOnDestroy = function () { if (this._subscription) { this._subscription.unsubscribe(); } }; tslib_1.__decorate([ ViewChild('popup', { static: true }), tslib_1.__metadata("design:type", Object) ], MenuComponent.prototype, "popup", void 0); tslib_1.__decorate([ Output('closed'), tslib_1.__metadata("design:type", EventEmitter) ], MenuComponent.prototype, "closed", void 0); tslib_1.__decorate([ Output('show'), tslib_1.__metadata("design:type", EventEmitter) ], MenuComponent.prototype, "show", void 0); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String) ], MenuComponent.prototype, "position", void 0); tslib_1.__decorate([ ContentChildren(MenuItemComponent), tslib_1.__metadata("design:type", QueryList) ], MenuComponent.prototype, "items", void 0); MenuComponent = tslib_1.__decorate([ Component({ selector: 'true-menu', template: "\n <true-popup #popup\n [position]=\"position\"\n (closed)=\"popupClosed($event)\"\n (show)=\"popupShow($event)\">\n <div class=\"true-menu\">\n <ng-content></ng-content>\n </div>\n </true-popup>\n " }) ], MenuComponent); return MenuComponent; }()); export { MenuComponent }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdHJ1ZS1kaXJlY3RpdmUvZ3JpZC8iLCJzb3VyY2VzIjpbInNyYy9jb250cm9scy9tZW51LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7RUFJRTtBQUNGLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWUsZUFBZSxFQUFFLFNBQVMsRUFFakUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBR25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBYzFEO0lBWkE7UUFrQkUsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBR3BELFNBQUksR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUdsRCxhQUFRLEdBQVcsVUFBVSxDQUFDO1FBSTlCLGdCQUFXLEdBQWtCLElBQUksQ0FBQztJQTBFcEMsQ0FBQztJQXhFQyxtQ0FBVyxHQUFYLFVBQVksQ0FBTTtRQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlDQUFTLEdBQVQsVUFBVSxDQUFNO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsc0JBQUksa0NBQU87YUFBWDtZQUNFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDNUIsQ0FBQzs7O09BQUE7SUFFTSxnQ0FBUSxHQUFmLFVBQWdCLENBQVMsRUFBRSxDQUFTO1FBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRU0sb0NBQVksR0FBbkIsVUFBb0IsTUFBa0IsRUFBRSxTQUFzQixFQUFFLFVBQWdDO1FBQTVFLHVCQUFBLEVBQUEsYUFBa0I7UUFBRSwwQkFBQSxFQUFBLGNBQXNCO1FBQUUsMkJBQUEsRUFBQSxpQkFBZ0M7UUFDOUYsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7UUFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTSxtQ0FBVyxHQUFsQixVQUFtQixNQUFrQixFQUFFLFNBQXNCLEVBQUUsVUFBZ0M7UUFBNUUsdUJBQUEsRUFBQSxhQUFrQjtRQUFFLDBCQUFBLEVBQUEsY0FBc0I7UUFBRSwyQkFBQSxFQUFBLGlCQUFnQztRQUM3RixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztZQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDNUM7O1lBQ0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTSxxQ0FBYSxHQUFwQixVQUFxQixNQUFXO1FBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQUEsSUFBSTtZQUNyQixJQUFJLElBQUksS0FBSyxNQUFNO2dCQUNqQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sa0NBQVUsR0FBakIsVUFBa0IsVUFBMEI7UUFBMUIsMkJBQUEsRUFBQSxpQkFBMEI7UUFDMUMsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLElBQUksSUFBSSxVQUFVO1lBQ3pDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUlPLHVDQUFlLEdBQXZCLFVBQXdCLENBQWU7UUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7U0FDeEI7YUFBTTtZQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVELDBDQUFrQixHQUFsQjtRQUFBLGlCQVlDO1FBWEMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDbEM7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFBLElBQUk7WUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFJLENBQUM7WUFDdkIsSUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxLQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFyQixDQUFxQixDQUFDLENBQUM7WUFDckUsS0FBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQixJQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLEtBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQXJCLENBQXFCLENBQUMsQ0FBQztZQUMvRCxLQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELG1DQUFXLEdBQVg7UUFDRSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNsQztJQUNILENBQUM7SUF0RkQ7UUFEQyxTQUFTLENBQUMsT0FBTyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyxDQUFDOztnREFDeEI7SUFHWDtRQURDLE1BQU0sQ0FBQyxRQUFRLENBQUM7MENBQ1QsWUFBWTtpREFBZ0M7SUFHcEQ7UUFEQyxNQUFNLENBQUMsTUFBTSxDQUFDOzBDQUNULFlBQVk7K0NBQWdDO0lBR2xEO1FBREMsS0FBSyxFQUFFOzttREFDc0I7SUFFTTtRQUFuQyxlQUFlLENBQUMsaUJBQWlCLENBQUM7MENBQVEsU0FBUztnREFBb0I7SUFkN0QsYUFBYTtRQVp6QixTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsV0FBVztZQUNyQixRQUFRLEVBQUUsK09BU1Q7U0FBQyxDQUFDO09BQ1EsYUFBYSxDQTBGekI7SUFBRCxvQkFBQztDQUFBLEFBMUZELElBMEZDO1NBMUZZLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMTkgQWxla3NleSBNZWxuaWtvdiwgVHJ1ZSBEaXJlY3RpdmUgQ29tcGFueS5cclxuICogQGxpbmsgaHR0cHM6Ly90cnVlZGlyZWN0aXZlLmNvbS9cclxuICogQGxpY2Vuc2UgTUlUXHJcbiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgQ29udGVudENoaWxkcmVuLCBRdWVyeUxpc3QsXHJcbiAgICAgICAgIEFmdGVyQ29udGVudEluaXQsXHJcbiAgICAgICAgIFZpZXdDaGlsZHJlbiwgVmlld0NoaWxkLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBNZW51SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vbWVudS1pdGVtLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RydWUtbWVudScsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDx0cnVlLXBvcHVwICNwb3B1cFxyXG4gICAgICBbcG9zaXRpb25dPVwicG9zaXRpb25cIlxyXG4gICAgICAoY2xvc2VkKT1cInBvcHVwQ2xvc2VkKCRldmVudClcIlxyXG4gICAgICAoc2hvdyk9XCJwb3B1cFNob3coJGV2ZW50KVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidHJ1ZS1tZW51XCI+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvdHJ1ZS1wb3B1cD5cclxuICBgfSlcclxuZXhwb3J0IGNsYXNzIE1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyQ29udGVudEluaXQge1xyXG5cclxuICBAVmlld0NoaWxkKCdwb3B1cCcsIHtzdGF0aWM6IHRydWV9KVxyXG4gIHBvcHVwOiBhbnk7XHJcblxyXG4gIEBPdXRwdXQoJ2Nsb3NlZCcpXHJcbiAgY2xvc2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBAT3V0cHV0KCdzaG93JylcclxuICBzaG93OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHBvc2l0aW9uOiBzdHJpbmcgPSAnUkVMQVRJVkUnO1xyXG5cclxuICBAQ29udGVudENoaWxkcmVuKE1lbnVJdGVtQ29tcG9uZW50KSBpdGVtczogUXVlcnlMaXN0PE1lbnVJdGVtQ29tcG9uZW50PjtcclxuXHJcbiAgX3BhcmVudE1lbnU6IE1lbnVDb21wb25lbnQgPSBudWxsO1xyXG5cclxuICBwb3B1cENsb3NlZChlOiBhbnkpIHtcclxuICAgIHRoaXMuY2xvc2VTdWJNZW51cyhudWxsKTtcclxuICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHBvcHVwU2hvdyhlOiBhbnkpIHtcclxuICAgIHRoaXMuc2hvdy5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnBvcHVwLnZpc2libGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd0J5WFkoeDogbnVtYmVyLCB5OiBudW1iZXIpIHtcclxuICAgIHRoaXMucG9wdXAuc2hvd0J5WFkoeCwgeSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd0J5VGFyZ2V0KHRhcmdldDogYW55ID0gbnVsbCwgZGlyZWN0aW9uOiBzdHJpbmcgPSAnJywgcGFyZW50TWVudTogTWVudUNvbXBvbmVudCA9IG51bGwpIHtcclxuICAgIHRoaXMuX3BhcmVudE1lbnUgPSBwYXJlbnRNZW51O1xyXG4gICAgdGhpcy5wb3B1cC5zaG93QnlUYXJnZXQodGFyZ2V0LCBkaXJlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvZ2dsZVBvcHVwKHRhcmdldDogYW55ID0gbnVsbCwgZGlyZWN0aW9uOiBzdHJpbmcgPSAnJywgcGFyZW50TWVudTogTWVudUNvbXBvbmVudCA9IG51bGwpIHtcclxuICAgIGlmICghdGhpcy52aXNpYmxlKSB7XHJcbiAgICAgIHRoaXMuX3BhcmVudE1lbnUgPSBwYXJlbnRNZW51O1xyXG4gICAgICB0aGlzLnBvcHVwLnNob3dCeVRhcmdldCh0YXJnZXQsIGRpcmVjdGlvbik7XHJcbiAgICB9IGVsc2VcclxuICAgICAgdGhpcy5wb3B1cC5jbG9zZVBvcHVwKHRhcmdldCwgZGlyZWN0aW9uKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZVN1Yk1lbnVzKHNlbmRlcjogYW55KSB7XHJcbiAgICB0aGlzLml0ZW1zLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgIGlmIChpdGVtICE9PSBzZW5kZXIpXHJcbiAgICAgICAgaXRlbS5jbG9zZVN1Yk1lbnUoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlUG9wdXAod2l0aFBhcmVudDogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIGlmICh0aGlzLl9wYXJlbnRNZW51ICE9PSBudWxsICYmIHdpdGhQYXJlbnQpXHJcbiAgICAgIHRoaXMuX3BhcmVudE1lbnUuY2xvc2VQb3B1cCh0cnVlKTtcclxuICAgIHRoaXMucG9wdXAuY2xvc2VQb3B1cCgpO1xyXG4gIH1cclxuXHJcbiAgX3N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBwcml2YXRlIGFkZFN1YnNjcmlwdGlvbihzOiBTdWJzY3JpcHRpb24pIHtcclxuICAgIGlmICghdGhpcy5fc3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IHM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKHMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xyXG4gICAgaWYgKHRoaXMuX3N1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLml0ZW1zLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgIGl0ZW0ucGFyZW50TWVudSA9IHRoaXM7XHJcbiAgICAgIGNvbnN0IHNibWUgPSBpdGVtLm9uTW91c2VFbnRlci5zdWJzY3JpYmUoZSA9PiB0aGlzLmNsb3NlU3ViTWVudXMoZSkpO1xyXG4gICAgICB0aGlzLmFkZFN1YnNjcmlwdGlvbihzYm1lKTtcclxuICAgICAgY29uc3Qgc2JjID0gaXRlbS5vbkNsaWNrLnN1YnNjcmliZShlID0+IHRoaXMuY2xvc2VQb3B1cCh0cnVlKSk7XHJcbiAgICAgIHRoaXMuYWRkU3Vic2NyaXB0aW9uKHNiYyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMuX3N1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19