ontimize-web-ngx
Version:
Ontimize Web framework using Angular 15
72 lines • 11 kB
JavaScript
import { Component, EventEmitter, HostListener, Injector, ViewChild } from '@angular/core';
import { MatMenuTrigger } from '@angular/material/menu';
import { OContextMenuGroupComponent } from '../context-menu-group/o-context-menu-group.component';
import * as i0 from "@angular/core";
import * as i1 from "@angular/material/button";
import * as i2 from "@angular/material/menu";
import * as i3 from "./o-wrapper-content-menu/o-wrapper-content-menu.component";
export const DEFAULT_CONTEXT_MENU_CONTENT_INPUTS = [
'menuItems',
'externalMenuItems',
'overlay',
'data',
'menuClass'
];
export const DEFAULT_CONTEXT_MENU_CONTENT_OUTPUTS = [
'execute',
'close'
];
export class OContextMenuContentComponent {
constructor(injector) {
this.injector = injector;
this.execute = new EventEmitter();
this.close = new EventEmitter();
}
click() {
this.closeContent();
}
ngOnInit() {
this.initialize();
}
ngAfterViewInit() {
this.trigger.openMenu();
}
initialize() {
const menuItemsArray = this.menuItems ? this.menuItems.toArray() : [];
const externalItemsArray = this.externalMenuItems ? this.externalMenuItems.toArray() : [];
this.allMenuItems = menuItemsArray.concat(externalItemsArray);
this.setData(this.allMenuItems);
}
setData(items) {
if (this.data) {
(items || []).forEach((menuItem) => {
menuItem.data = this.data;
if (menuItem instanceof OContextMenuGroupComponent) {
this.setData(menuItem.children);
}
});
}
}
onMenuClosed() {
this.closeContent();
}
closeContent() {
this.trigger.closeMenu();
this.close.emit();
}
}
OContextMenuContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OContextMenuContentComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
OContextMenuContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OContextMenuContentComponent, selector: "o-context-menu-content", inputs: { menuItems: "menuItems", externalMenuItems: "externalMenuItems", overlay: "overlay", data: "data", menuClass: "menuClass" }, outputs: { execute: "execute", close: "close" }, host: { listeners: { "document:click": "click()" }, properties: { "class.o-context-menu-content": "true" } }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<button mat-button [matMenuTriggerFor]=\"menu.childMenu\" (menuClosed)=\"onMenuClosed()\"></button>\n<o-wrapper-content-menu #menu [items]=\"allMenuItems\" [class]=\"menuClass\"> </o-wrapper-content-menu>", dependencies: [{ kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i3.OWrapperContentMenuComponent, selector: "o-wrapper-content-menu", inputs: ["items", "class"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OContextMenuContentComponent, decorators: [{
type: Component,
args: [{ selector: 'o-context-menu-content', inputs: DEFAULT_CONTEXT_MENU_CONTENT_INPUTS, outputs: DEFAULT_CONTEXT_MENU_CONTENT_OUTPUTS, host: {
'[class.o-context-menu-content]': 'true'
}, template: "<button mat-button [matMenuTriggerFor]=\"menu.childMenu\" (menuClosed)=\"onMenuClosed()\"></button>\n<o-wrapper-content-menu #menu [items]=\"allMenuItems\" [class]=\"menuClass\"> </o-wrapper-content-menu>" }]
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { trigger: [{
type: ViewChild,
args: [MatMenuTrigger]
}], click: [{
type: HostListener,
args: ['document:click']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1jb250ZXh0LW1lbnUtY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9jb250ZXh0bWVudS9jb250ZXh0LW1lbnUvby1jb250ZXh0LW1lbnUtY29udGVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9jb250ZXh0bWVudS9jb250ZXh0LW1lbnUvby1jb250ZXh0LW1lbnUtY29udGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7QUFJbEcsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQUc7SUFDakQsV0FBVztJQUNYLG1CQUFtQjtJQUNuQixTQUFTO0lBQ1QsTUFBTTtJQUNOLFdBQVc7Q0FDWixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQUc7SUFDbEQsU0FBUztJQUNULE9BQU87Q0FDUixDQUFDO0FBV0YsTUFBTSxPQUFPLDRCQUE0QjtJQWF2QyxZQUNZLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFQdkIsWUFBTyxHQUFtRixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzdHLFVBQUssR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQU9qRCxDQUFDO0lBR0UsS0FBSztRQUNWLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFHTSxVQUFVO1FBQ2YsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3RFLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMxRixJQUFJLENBQUMsWUFBWSxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU0sT0FBTyxDQUFDLEtBQStCO1FBQzVDLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQWdDLEVBQUUsRUFBRTtnQkFDekQsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUMxQixJQUFJLFFBQVEsWUFBWSwwQkFBMEIsRUFBRTtvQkFDbEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ2pDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFTSxZQUFZO1FBQ2pCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7MEhBeERVLDRCQUE0Qjs4R0FBNUIsNEJBQTRCLDRZQVM1QixjQUFjLGdEQ3ZDM0IsOE1BQ21HOzRGRDZCdEYsNEJBQTRCO2tCQVR4QyxTQUFTOytCQUNFLHdCQUF3QixVQUUxQixtQ0FBbUMsV0FDbEMsb0NBQW9DLFFBQ3ZDO3dCQUNKLGdDQUFnQyxFQUFFLE1BQU07cUJBQ3pDOytGQVlNLE9BQU87c0JBRGIsU0FBUzt1QkFBQyxjQUFjO2dCQVNsQixLQUFLO3NCQURYLFlBQVk7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIEluamVjdG9yLCBPbkluaXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRNZW51VHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuXG5pbXBvcnQgeyBPQ29udGV4dE1lbnVHcm91cENvbXBvbmVudCB9IGZyb20gJy4uL2NvbnRleHQtbWVudS1ncm91cC9vLWNvbnRleHQtbWVudS1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgT0NvbnRleHRNZW51SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbnRleHQtbWVudS1pdGVtL28tY29udGV4dC1tZW51LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE9Db21wb25lbnRNZW51QmFzZUl0ZW0gfSBmcm9tICcuLi9vLWNvbnRlbnQtbWVudS1iYXNlLWl0ZW0uY2xhc3MnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9DT05URVhUX01FTlVfQ09OVEVOVF9JTlBVVFMgPSBbXG4gICdtZW51SXRlbXMnLFxuICAnZXh0ZXJuYWxNZW51SXRlbXMnLFxuICAnb3ZlcmxheScsXG4gICdkYXRhJyxcbiAgJ21lbnVDbGFzcydcbl07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTlRFWFRfTUVOVV9DT05URU5UX09VVFBVVFMgPSBbXG4gICdleGVjdXRlJyxcbiAgJ2Nsb3NlJ1xuXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnby1jb250ZXh0LW1lbnUtY29udGVudCcsXG4gIHRlbXBsYXRlVXJsOiAnby1jb250ZXh0LW1lbnUtY29udGVudC5jb21wb25lbnQuaHRtbCcsXG4gIGlucHV0czogREVGQVVMVF9DT05URVhUX01FTlVfQ09OVEVOVF9JTlBVVFMsXG4gIG91dHB1dHM6IERFRkFVTFRfQ09OVEVYVF9NRU5VX0NPTlRFTlRfT1VUUFVUUyxcbiAgaG9zdDoge1xuICAgICdbY2xhc3Muby1jb250ZXh0LW1lbnUtY29udGVudF0nOiAndHJ1ZSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBPQ29udGV4dE1lbnVDb250ZW50Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25Jbml0IHtcblxuICBwdWJsaWMgbWVudUl0ZW1zOiBRdWVyeUxpc3Q8T0NvbXBvbmVudE1lbnVCYXNlSXRlbT47XG4gIHB1YmxpYyBleHRlcm5hbE1lbnVJdGVtczogUXVlcnlMaXN0PE9Db21wb25lbnRNZW51QmFzZUl0ZW0+O1xuICBwdWJsaWMgb3ZlcmxheTogT3ZlcmxheVJlZjtcbiAgcHVibGljIGRhdGE6IGFueTtcbiAgcHVibGljIG1lbnVDbGFzczogc3RyaW5nO1xuICBwdWJsaWMgZXhlY3V0ZTogRXZlbnRFbWl0dGVyPHsgZXZlbnQ6IEV2ZW50LCBkYXRhOiBhbnksIG1lbnVJdGVtOiBPQ29udGV4dE1lbnVJdGVtQ29tcG9uZW50IH0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBwdWJsaWMgY2xvc2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAVmlld0NoaWxkKE1hdE1lbnVUcmlnZ2VyKVxuICBwdWJsaWMgdHJpZ2dlcjogTWF0TWVudVRyaWdnZXI7XG4gIHB1YmxpYyBhbGxNZW51SXRlbXM6IE9Db21wb25lbnRNZW51QmFzZUl0ZW1bXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yXG4gICkgeyB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snKVxuICBwdWJsaWMgY2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZUNvbnRlbnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpemUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy50cmlnZ2VyLm9wZW5NZW51KCk7XG4gIH1cblxuXG4gIHB1YmxpYyBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgIGNvbnN0IG1lbnVJdGVtc0FycmF5ID0gdGhpcy5tZW51SXRlbXMgPyB0aGlzLm1lbnVJdGVtcy50b0FycmF5KCkgOiBbXTtcbiAgICBjb25zdCBleHRlcm5hbEl0ZW1zQXJyYXkgPSB0aGlzLmV4dGVybmFsTWVudUl0ZW1zID8gdGhpcy5leHRlcm5hbE1lbnVJdGVtcy50b0FycmF5KCkgOiBbXTtcbiAgICB0aGlzLmFsbE1lbnVJdGVtcyA9IG1lbnVJdGVtc0FycmF5LmNvbmNhdChleHRlcm5hbEl0ZW1zQXJyYXkpO1xuICAgIHRoaXMuc2V0RGF0YSh0aGlzLmFsbE1lbnVJdGVtcyk7XG4gIH1cblxuICBwdWJsaWMgc2V0RGF0YShpdGVtczogT0NvbXBvbmVudE1lbnVCYXNlSXRlbVtdKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgKGl0ZW1zIHx8IFtdKS5mb3JFYWNoKChtZW51SXRlbTogT0NvbXBvbmVudE1lbnVCYXNlSXRlbSkgPT4ge1xuICAgICAgICBtZW51SXRlbS5kYXRhID0gdGhpcy5kYXRhO1xuICAgICAgICBpZiAobWVudUl0ZW0gaW5zdGFuY2VvZiBPQ29udGV4dE1lbnVHcm91cENvbXBvbmVudCkge1xuICAgICAgICAgIHRoaXMuc2V0RGF0YShtZW51SXRlbS5jaGlsZHJlbik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbk1lbnVDbG9zZWQoKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZUNvbnRlbnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZUNvbnRlbnQoKTogdm9pZCB7XG4gICAgdGhpcy50cmlnZ2VyLmNsb3NlTWVudSgpO1xuICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xuICB9XG5cbn1cbiIsIjxidXR0b24gbWF0LWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudS5jaGlsZE1lbnVcIiAobWVudUNsb3NlZCk9XCJvbk1lbnVDbG9zZWQoKVwiPjwvYnV0dG9uPlxuPG8td3JhcHBlci1jb250ZW50LW1lbnUgI21lbnUgW2l0ZW1zXT1cImFsbE1lbnVJdGVtc1wiIFtjbGFzc109XCJtZW51Q2xhc3NcIj4gPC9vLXdyYXBwZXItY29udGVudC1tZW51PiJdfQ==