UNPKG

@true-directive/grid

Version:

Angular Data Grid from Yopsilon.

99 lines 11.6 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, ViewChild, EventEmitter } from "@angular/core"; import { Subject } from "rxjs"; var MenuItemComponent = /** @class */ (function () { function MenuItemComponent() { this._onClick = new Subject(); this.onClick = this._onClick.asObservable(); this._onMouseEnter = new Subject(); this.onMouseEnter = this._onMouseEnter.asObservable(); this._divide = false; this.disabled = false; this.onItemClick = new EventEmitter(); this.onItemMouseEnter = new EventEmitter(); this.onNeedClose = new EventEmitter(); this._parentMenu = null; } Object.defineProperty(MenuItemComponent.prototype, "divide", { get: function () { return this._divide; }, set: function (v) { this._divide = v; }, enumerable: true, configurable: true }); Object.defineProperty(MenuItemComponent.prototype, "parentMenu", { set: function (v) { this._parentMenu = v; }, enumerable: true, configurable: true }); MenuItemComponent.prototype.click = function (e) { this.onItemClick.emit({ originalEvent: e, target: this.button.nativeElement }); // Если есть сабменю, то родительское меню не должно закрываться при клике if (!this.hasSubmenu()) { this._onClick.next(e); } }; MenuItemComponent.prototype.mouseEnter = function (e) { this._onMouseEnter.next(this); this.onItemMouseEnter.emit({ target: this.button.nativeElement, parent: this._parentMenu }); }; MenuItemComponent.prototype.hasSubmenu = function () { return this.submenu !== undefined; }; MenuItemComponent.prototype.closeSubMenu = function () { this.onNeedClose.emit(null); }; tslib_1.__decorate([ Input("true-menu-show"), tslib_1.__metadata("design:type", Object) ], MenuItemComponent.prototype, "submenu", void 0); tslib_1.__decorate([ Input("true-divide"), tslib_1.__metadata("design:type", Boolean), tslib_1.__metadata("design:paramtypes", [Boolean]) ], MenuItemComponent.prototype, "divide", null); tslib_1.__decorate([ Input("disabled"), tslib_1.__metadata("design:type", Boolean) ], MenuItemComponent.prototype, "disabled", void 0); tslib_1.__decorate([ Output("itemClick"), tslib_1.__metadata("design:type", EventEmitter) ], MenuItemComponent.prototype, "onItemClick", void 0); tslib_1.__decorate([ Output("itemMouseEnter"), tslib_1.__metadata("design:type", EventEmitter) ], MenuItemComponent.prototype, "onItemMouseEnter", void 0); tslib_1.__decorate([ Output("needClose"), tslib_1.__metadata("design:type", EventEmitter) ], MenuItemComponent.prototype, "onNeedClose", void 0); tslib_1.__decorate([ ViewChild("button", { static: true }), tslib_1.__metadata("design:type", Object) ], MenuItemComponent.prototype, "button", void 0); MenuItemComponent = tslib_1.__decorate([ Component({ selector: "true-menu-item", template: "\n <button #button\n [disabled]=\"disabled\"\n [class.true-menu-item_divide]=\"divide\"\n (click)=\"click($event)\"\n (mouseenter)=\"mouseEnter($event)\">\n <div><div><ng-content></ng-content></div><span *ngIf=\"hasSubmenu()\" class=\"true-submenu true-icon-right-dir\"></span></div>\n </button>\n ", host: { '[class.true-menu-item_divide]': 'divide', 'class': 'true-menu-item' }, styles: ["\n button {\n background: none;\n border: none;\n width: 100%;\n text-align: left;\n }\n\n button > div {\n width: 100%;\n display: flex;\n flex-direction: row;\n align-items: baseline;\n flex-wrap: nowrap;\n justify-content: space-between;\n text-align: left;\n }\n\n .true-submenu {\n flex-grow: 0;\n }\n\n "] }) ], MenuItemComponent); return MenuItemComponent; }()); export { MenuItemComponent }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0cnVlLWRpcmVjdGl2ZS9ncmlkLyIsInNvdXJjZXMiOlsic3JjL2NvbnRyb2xzL21lbnUtaXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0VBSUU7QUFDRixPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRyxNQUFNLEVBRVgsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBeUMzQztJQXZDQTtRQXlDVSxhQUFRLEdBQWlCLElBQUksT0FBTyxFQUFPLENBQUM7UUFDcEMsWUFBTyxHQUFvQixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRWhFLGtCQUFhLEdBQWlCLElBQUksT0FBTyxFQUFPLENBQUM7UUFDekMsaUJBQVksR0FBb0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUtsRixZQUFPLEdBQVksS0FBSyxDQUFDO1FBWXpCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHakIsZ0JBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUd6RCxxQkFBZ0IsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUc5RCxnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBS2xFLGdCQUFXLEdBQVEsSUFBSSxDQUFDO0lBMEIxQixDQUFDO0lBakRDLHNCQUFJLHFDQUFNO2FBSVY7WUFDRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDdEIsQ0FBQzthQU5ELFVBQVcsQ0FBVTtZQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUNuQixDQUFDOzs7T0FBQTtJQXNCRCxzQkFBVyx5Q0FBVTthQUFyQixVQUFzQixDQUFNO1lBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7OztPQUFBO0lBRUQsaUNBQUssR0FBTCxVQUFNLENBQU07UUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFDLGFBQWEsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUU5RSwwRUFBMEU7UUFDMUUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN2QjtJQUNILENBQUM7SUFFRCxzQ0FBVSxHQUFWLFVBQVcsQ0FBTTtRQUNmLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFRCxzQ0FBVSxHQUFWO1FBQ0UsT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsd0NBQVksR0FBWjtRQUNFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFyREQ7UUFEQyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7O3NEQUNYO0lBS2I7UUFEQyxLQUFLLENBQUMsYUFBYSxDQUFDOzs7bURBR3BCO0lBT0Q7UUFEQyxLQUFLLENBQUMsVUFBVSxDQUFDOzt1REFDUTtJQUcxQjtRQURDLE1BQU0sQ0FBQyxXQUFXLENBQUM7MENBQ0UsWUFBWTswREFBZ0M7SUFHbEU7UUFEQyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7MENBQ0UsWUFBWTsrREFBZ0M7SUFHdkU7UUFEQyxNQUFNLENBQUMsV0FBVyxDQUFDOzBDQUNFLFlBQVk7MERBQWdDO0lBR2xFO1FBREMsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQzs7cURBQ3hCO0lBbkNELGlCQUFpQjtRQXZDN0IsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLGdCQUFnQjtZQUMxQixRQUFRLEVBQUUsNFVBUVQ7WUF3QkQsSUFBSSxFQUFFO2dCQUNKLCtCQUErQixFQUFFLFFBQVE7Z0JBQ3pDLE9BQU8sRUFBRSxnQkFBZ0I7YUFDeEI7cUJBMUJNLHNZQXNCUjtTQUtBLENBQUM7T0FDUyxpQkFBaUIsQ0ErRDdCO0lBQUQsd0JBQUM7Q0FBQSxBQS9ERCxJQStEQztTQS9EWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMTkgQWxla3NleSBNZWxuaWtvdiwgVHJ1ZSBEaXJlY3RpdmUgQ29tcGFueS5cclxuICogQGxpbmsgaHR0cHM6Ly90cnVlZGlyZWN0aXZlLmNvbS9cclxuICogQGxpY2Vuc2UgTUlUXHJcbiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsICBPdXRwdXQsIEhvc3RCaW5kaW5nLCBDb250ZW50Q2hpbGRyZW4sIFF1ZXJ5TGlzdCxcclxuICAgICAgICAgRWxlbWVudFJlZiwgSW5qZWN0LCBmb3J3YXJkUmVmLFxyXG4gICAgICAgICBWaWV3Q2hpbGRyZW4sIFZpZXdDaGlsZCwgRXZlbnRFbWl0dGVyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwidHJ1ZS1tZW51LWl0ZW1cIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGJ1dHRvbiAjYnV0dG9uXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgIFtjbGFzcy50cnVlLW1lbnUtaXRlbV9kaXZpZGVdPVwiZGl2aWRlXCJcclxuICAgICAgKGNsaWNrKT1cImNsaWNrKCRldmVudClcIlxyXG4gICAgICAobW91c2VlbnRlcik9XCJtb3VzZUVudGVyKCRldmVudClcIj5cclxuICAgICAgPGRpdj48ZGl2PjxuZy1jb250ZW50PjwvbmctY29udGVudD48L2Rpdj48c3BhbiAqbmdJZj1cImhhc1N1Ym1lbnUoKVwiIGNsYXNzPVwidHJ1ZS1zdWJtZW51IHRydWUtaWNvbi1yaWdodC1kaXJcIj48L3NwYW4+PC9kaXY+XHJcbiAgICA8L2J1dHRvbj5cclxuICBgLFxyXG4gIHN0eWxlczogW2BcclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICB9XHJcblxyXG4gICAgYnV0dG9uID4gZGl2IHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcclxuICAgICAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIH1cclxuXHJcbiAgICAudHJ1ZS1zdWJtZW51IHtcclxuICAgICAgZmxleC1ncm93OiAwO1xyXG4gICAgfVxyXG5cclxuICBgXSxcclxuICBob3N0OiB7XHJcbiAgICAnW2NsYXNzLnRydWUtbWVudS1pdGVtX2RpdmlkZV0nOiAnZGl2aWRlJyxcclxuICAgICdjbGFzcyc6ICd0cnVlLW1lbnUtaXRlbSdcclxuICAgIH1cclxuICB9KVxyXG5leHBvcnQgY2xhc3MgTWVudUl0ZW1Db21wb25lbnQge1xyXG5cclxuICBwcml2YXRlIF9vbkNsaWNrOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgcHVibGljIHJlYWRvbmx5IG9uQ2xpY2s6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuX29uQ2xpY2suYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIHByaXZhdGUgX29uTW91c2VFbnRlcjogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIHB1YmxpYyByZWFkb25seSBvbk1vdXNlRW50ZXI6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuX29uTW91c2VFbnRlci5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgQElucHV0KFwidHJ1ZS1tZW51LXNob3dcIilcclxuICBzdWJtZW51OiBhbnk7XHJcblxyXG4gIF9kaXZpZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KFwidHJ1ZS1kaXZpZGVcIilcclxuICBzZXQgZGl2aWRlKHY6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2RpdmlkZSA9IHY7XHJcbiAgfVxyXG5cclxuICBnZXQgZGl2aWRlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RpdmlkZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dChcImRpc2FibGVkXCIpXHJcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dChcIml0ZW1DbGlja1wiKVxyXG4gIHJlYWRvbmx5IG9uSXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBAT3V0cHV0KFwiaXRlbU1vdXNlRW50ZXJcIilcclxuICByZWFkb25seSBvbkl0ZW1Nb3VzZUVudGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBAT3V0cHV0KFwibmVlZENsb3NlXCIpXHJcbiAgcmVhZG9ubHkgb25OZWVkQ2xvc2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJidXR0b25cIiwge3N0YXRpYzogdHJ1ZX0pXHJcbiAgYnV0dG9uOiBhbnk7XHJcblxyXG4gIF9wYXJlbnRNZW51OiBhbnkgPSBudWxsO1xyXG4gIHB1YmxpYyBzZXQgcGFyZW50TWVudSh2OiBhbnkpIHtcclxuICAgIHRoaXMuX3BhcmVudE1lbnUgPSB2O1xyXG4gIH1cclxuXHJcbiAgY2xpY2soZTogYW55KSB7XHJcbiAgICB0aGlzLm9uSXRlbUNsaWNrLmVtaXQoe29yaWdpbmFsRXZlbnQ6IGUsIHRhcmdldDogdGhpcy5idXR0b24ubmF0aXZlRWxlbWVudCB9KTtcclxuXHJcbiAgICAvLyDQldGB0LvQuCDQtdGB0YLRjCDRgdCw0LHQvNC10L3Rjiwg0YLQviDRgNC+0LTQuNGC0LXQu9GM0YHQutC+0LUg0LzQtdC90Y4g0L3QtSDQtNC+0LvQttC90L4g0LfQsNC60YDRi9Cy0LDRgtGM0YHRjyDQv9GA0Lgg0LrQu9C40LrQtVxyXG4gICAgaWYgKCF0aGlzLmhhc1N1Ym1lbnUoKSkge1xyXG4gICAgICB0aGlzLl9vbkNsaWNrLm5leHQoZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtb3VzZUVudGVyKGU6IGFueSkge1xyXG4gICAgdGhpcy5fb25Nb3VzZUVudGVyLm5leHQodGhpcyk7XHJcbiAgICB0aGlzLm9uSXRlbU1vdXNlRW50ZXIuZW1pdCh7IHRhcmdldDogdGhpcy5idXR0b24ubmF0aXZlRWxlbWVudCwgcGFyZW50OiB0aGlzLl9wYXJlbnRNZW51IH0pO1xyXG4gIH1cclxuXHJcbiAgaGFzU3VibWVudSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN1Ym1lbnUgIT09IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIGNsb3NlU3ViTWVudSgpIHtcclxuICAgIHRoaXMub25OZWVkQ2xvc2UuZW1pdChudWxsKTtcclxuICB9XHJcbn1cclxuIl19