UNPKG

@true-directive/grid

Version:

Angular Data Grid from Yopsilon.

120 lines (117 loc) 10.9 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"; let MenuItemComponent = class MenuItemComponent { constructor() { 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; } set divide(v) { this._divide = v; } get divide() { return this._divide; } set parentMenu(v) { this._parentMenu = v; } click(e) { this.onItemClick.emit({ originalEvent: e, target: this.button.nativeElement }); // Если есть сабменю, то родительское меню не должно закрываться при клике if (!this.hasSubmenu()) { this._onClick.next(e); } } mouseEnter(e) { this._onMouseEnter.next(this); this.onItemMouseEnter.emit({ target: this.button.nativeElement, parent: this._parentMenu }); } hasSubmenu() { return this.submenu !== undefined; } closeSubMenu() { 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: ` <button #button [disabled]="disabled" [class.true-menu-item_divide]="divide" (click)="click($event)" (mouseenter)="mouseEnter($event)"> <div><div><ng-content></ng-content></div><span *ngIf="hasSubmenu()" class="true-submenu true-icon-right-dir"></span></div> </button> `, host: { '[class.true-menu-item_divide]': 'divide', 'class': 'true-menu-item' }, styles: [` button { background: none; border: none; width: 100%; text-align: left; } button > div { width: 100%; display: flex; flex-direction: row; align-items: baseline; flex-wrap: nowrap; justify-content: space-between; text-align: left; } .true-submenu { flex-grow: 0; } `] }) ], MenuItemComponent); export { MenuItemComponent }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0cnVlLWRpcmVjdGl2ZS9ncmlkLyIsInNvdXJjZXMiOlsic3JjL2NvbnRyb2xzL21lbnUtaXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0VBSUU7QUFDRixPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRyxNQUFNLEVBRVgsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBeUMzQyxJQUFhLGlCQUFpQixHQUE5QixNQUFhLGlCQUFpQjtJQXZDOUI7UUF5Q1UsYUFBUSxHQUFpQixJQUFJLE9BQU8sRUFBTyxDQUFDO1FBQ3BDLFlBQU8sR0FBb0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVoRSxrQkFBYSxHQUFpQixJQUFJLE9BQU8sRUFBTyxDQUFDO1FBQ3pDLGlCQUFZLEdBQW9CLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7UUFLbEYsWUFBTyxHQUFZLEtBQUssQ0FBQztRQVl6QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBR2pCLGdCQUFXLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFHekQscUJBQWdCLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFHOUQsZ0JBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUtsRSxnQkFBVyxHQUFRLElBQUksQ0FBQztJQTBCMUIsQ0FBQztJQWpEQyxJQUFJLE1BQU0sQ0FBQyxDQUFVO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQWtCRCxJQUFXLFVBQVUsQ0FBQyxDQUFNO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxLQUFLLENBQUMsQ0FBTTtRQUNWLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUMsYUFBYSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBRTlFLDBFQUEwRTtRQUMxRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxDQUFNO1FBQ2YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztDQUNGLENBQUE7QUF0REM7SUFEQyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7O2tEQUNYO0FBS2I7SUFEQyxLQUFLLENBQUMsYUFBYSxDQUFDOzs7K0NBR3BCO0FBT0Q7SUFEQyxLQUFLLENBQUMsVUFBVSxDQUFDOzttREFDUTtBQUcxQjtJQURDLE1BQU0sQ0FBQyxXQUFXLENBQUM7c0NBQ0UsWUFBWTtzREFBZ0M7QUFHbEU7SUFEQyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7c0NBQ0UsWUFBWTsyREFBZ0M7QUFHdkU7SUFEQyxNQUFNLENBQUMsV0FBVyxDQUFDO3NDQUNFLFlBQVk7c0RBQWdDO0FBR2xFO0lBREMsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQzs7aURBQ3hCO0FBbkNELGlCQUFpQjtJQXZDN0IsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLGdCQUFnQjtRQUMxQixRQUFRLEVBQUU7Ozs7Ozs7O0dBUVQ7UUF3QkQsSUFBSSxFQUFFO1lBQ0osK0JBQStCLEVBQUUsUUFBUTtZQUN6QyxPQUFPLEVBQUUsZ0JBQWdCO1NBQ3hCO2lCQTFCTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCUjtLQUtBLENBQUM7R0FDUyxpQkFBaUIsQ0ErRDdCO1NBL0RZLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBBbGVrc2V5IE1lbG5pa292LCBUcnVlIERpcmVjdGl2ZSBDb21wYW55LlxyXG4gKiBAbGluayBodHRwczovL3RydWVkaXJlY3RpdmUuY29tL1xyXG4gKiBAbGljZW5zZSBNSVRcclxuKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgIE91dHB1dCwgSG9zdEJpbmRpbmcsIENvbnRlbnRDaGlsZHJlbiwgUXVlcnlMaXN0LFxyXG4gICAgICAgICBFbGVtZW50UmVmLCBJbmplY3QsIGZvcndhcmRSZWYsXHJcbiAgICAgICAgIFZpZXdDaGlsZHJlbiwgVmlld0NoaWxkLCBFdmVudEVtaXR0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJ0cnVlLW1lbnUtaXRlbVwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8YnV0dG9uICNidXR0b25cclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgW2NsYXNzLnRydWUtbWVudS1pdGVtX2RpdmlkZV09XCJkaXZpZGVcIlxyXG4gICAgICAoY2xpY2spPVwiY2xpY2soJGV2ZW50KVwiXHJcbiAgICAgIChtb3VzZWVudGVyKT1cIm1vdXNlRW50ZXIoJGV2ZW50KVwiPlxyXG4gICAgICA8ZGl2PjxkaXY+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvZGl2PjxzcGFuICpuZ0lmPVwiaGFzU3VibWVudSgpXCIgY2xhc3M9XCJ0cnVlLXN1Ym1lbnUgdHJ1ZS1pY29uLXJpZ2h0LWRpclwiPjwvc3Bhbj48L2Rpdj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYFxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgYmFja2dyb3VuZDogbm9uZTtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIH1cclxuXHJcbiAgICBidXR0b24gPiBkaXYge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xyXG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgfVxyXG5cclxuICAgIC50cnVlLXN1Ym1lbnUge1xyXG4gICAgICBmbGV4LWdyb3c6IDA7XHJcbiAgICB9XHJcblxyXG4gIGBdLFxyXG4gIGhvc3Q6IHtcclxuICAgICdbY2xhc3MudHJ1ZS1tZW51LWl0ZW1fZGl2aWRlXSc6ICdkaXZpZGUnLFxyXG4gICAgJ2NsYXNzJzogJ3RydWUtbWVudS1pdGVtJ1xyXG4gICAgfVxyXG4gIH0pXHJcbmV4cG9ydCBjbGFzcyBNZW51SXRlbUNvbXBvbmVudCB7XHJcblxyXG4gIHByaXZhdGUgX29uQ2xpY2s6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgb25DbGljazogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5fb25DbGljay5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgcHJpdmF0ZSBfb25Nb3VzZUVudGVyOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgcHVibGljIHJlYWRvbmx5IG9uTW91c2VFbnRlcjogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5fb25Nb3VzZUVudGVyLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBASW5wdXQoXCJ0cnVlLW1lbnUtc2hvd1wiKVxyXG4gIHN1Ym1lbnU6IGFueTtcclxuXHJcbiAgX2RpdmlkZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoXCJ0cnVlLWRpdmlkZVwiKVxyXG4gIHNldCBkaXZpZGUodjogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fZGl2aWRlID0gdjtcclxuICB9XHJcblxyXG4gIGdldCBkaXZpZGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGl2aWRlO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KFwiZGlzYWJsZWRcIilcclxuICBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KFwiaXRlbUNsaWNrXCIpXHJcbiAgcmVhZG9ubHkgb25JdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBPdXRwdXQoXCJpdGVtTW91c2VFbnRlclwiKVxyXG4gIHJlYWRvbmx5IG9uSXRlbU1vdXNlRW50ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBPdXRwdXQoXCJuZWVkQ2xvc2VcIilcclxuICByZWFkb25seSBvbk5lZWRDbG9zZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZChcImJ1dHRvblwiLCB7c3RhdGljOiB0cnVlfSlcclxuICBidXR0b246IGFueTtcclxuXHJcbiAgX3BhcmVudE1lbnU6IGFueSA9IG51bGw7XHJcbiAgcHVibGljIHNldCBwYXJlbnRNZW51KHY6IGFueSkge1xyXG4gICAgdGhpcy5fcGFyZW50TWVudSA9IHY7XHJcbiAgfVxyXG5cclxuICBjbGljayhlOiBhbnkpIHtcclxuICAgIHRoaXMub25JdGVtQ2xpY2suZW1pdCh7b3JpZ2luYWxFdmVudDogZSwgdGFyZ2V0OiB0aGlzLmJ1dHRvbi5uYXRpdmVFbGVtZW50IH0pO1xyXG5cclxuICAgIC8vINCV0YHQu9C4INC10YHRgtGMINGB0LDQsdC80LXQvdGOLCDRgtC+INGA0L7QtNC40YLQtdC70YzRgdC60L7QtSDQvNC10L3RjiDQvdC1INC00L7Qu9C20L3QviDQt9Cw0LrRgNGL0LLQsNGC0YzRgdGPINC/0YDQuCDQutC70LjQutC1XHJcbiAgICBpZiAoIXRoaXMuaGFzU3VibWVudSgpKSB7XHJcbiAgICAgIHRoaXMuX29uQ2xpY2submV4dChlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1vdXNlRW50ZXIoZTogYW55KSB7XHJcbiAgICB0aGlzLl9vbk1vdXNlRW50ZXIubmV4dCh0aGlzKTtcclxuICAgIHRoaXMub25JdGVtTW91c2VFbnRlci5lbWl0KHsgdGFyZ2V0OiB0aGlzLmJ1dHRvbi5uYXRpdmVFbGVtZW50LCBwYXJlbnQ6IHRoaXMuX3BhcmVudE1lbnUgfSk7XHJcbiAgfVxyXG5cclxuICBoYXNTdWJtZW51KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3VibWVudSAhPT0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VTdWJNZW51KCkge1xyXG4gICAgdGhpcy5vbk5lZWRDbG9zZS5lbWl0KG51bGwpO1xyXG4gIH1cclxufVxyXG4iXX0=