@true-directive/grid
Version:
Angular Data Grid from Yopsilon.
99 lines • 11.6 kB
JavaScript
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