ontimize-web-ngx
Version:
Ontimize Web framework using Angular 15
52 lines • 13.4 kB
JavaScript
import { Component, Injector, Input, ViewChild } from '@angular/core';
import { MatMenu } from '@angular/material/menu';
import { OContextMenuGroupComponent } from '../../context-menu-group/o-context-menu-group.component';
import { OContextMenuItemComponent } from '../../context-menu-item/o-context-menu-item.component';
import { OContextMenuSeparatorComponent } from '../../context-menu-separator/o-context-menu-separator.component';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "@angular/material/icon";
import * as i3 from "@angular/material/divider";
import * as i4 from "@angular/material/menu";
import * as i5 from "../../../../pipes/o-translate.pipe";
export const DEFAULT_CONTEXT_MENU_CONTENT_ITEM_INPUTS = [
'items',
'class'
];
export class OWrapperContentMenuComponent {
constructor(injector) {
this.injector = injector;
}
onClick(item, event) {
if (item instanceof OContextMenuItemComponent) {
item.triggerExecute(item.data, event);
}
}
isGroup(item) {
return item instanceof OContextMenuGroupComponent;
}
isSeparator(item) {
return item instanceof OContextMenuSeparatorComponent;
}
isItem(item) {
return item instanceof OContextMenuItemComponent;
}
getChildren(item) {
return item instanceof OContextMenuGroupComponent ? item.children : [];
}
}
OWrapperContentMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OWrapperContentMenuComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
OWrapperContentMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OWrapperContentMenuComponent, selector: "o-wrapper-content-menu", inputs: { items: "items", class: "class" }, viewQueries: [{ propertyName: "childMenu", first: true, predicate: ["childMenu"], descendants: true, static: true }, { propertyName: "menu", first: true, predicate: OWrapperContentMenuComponent, descendants: true, static: true }], ngImport: i0, template: "<mat-menu class=\"o-mat-menu\" #childMenu=\"matMenu\" [class]=\"class\" [overlapTrigger]=\"false\" [hasBackdrop]=\"false\">\n <ng-container *ngFor=\"let child of items\">\n <!-- Handle branch node menu items -->\n <span *ngIf=\"isGroup(child) && child.isVisible\">\n <button mat-menu-item color=\"primary\" [matMenuTriggerFor]=\"menu.childMenu\" [disabled]=\"child.disabled\">\n <mat-icon *ngIf=\"child.svgIcon != null\" [svgIcon]=\"child.svgIcon\"></mat-icon>\n <mat-icon *ngIf=\"child.svgIcon == null && child.icon != null\">{{ child.icon }}</mat-icon>\n <span>{{ child.label | oTranslate}}</span>\n </button>\n <o-wrapper-content-menu #menu [items]=\"getChildren(child)\" [class]=\"class\"></o-wrapper-content-menu>\n </span>\n <!-- Handle leaf node menu items -->\n <button mat-menu-item (click)=\"onClick(child, $event)\" [disabled]=\"child.disabled\" *ngIf=\"isItem(child) && child.isVisible\">\n <mat-icon *ngIf=\"child.svgIcon != null\" [svgIcon]=\"child.svgIcon\"></mat-icon>\n <mat-icon *ngIf=\"child.svgIcon == null && child.icon != null\">{{ child.icon }}</mat-icon>\n <span>{{ child.label | oTranslate}} </span>\n </button>\n <!-- separator leaf node menu items -->\n <mat-divider *ngIf=\"isSeparator(child) && child.isVisible\"></mat-divider>\n </ng-container>\n</mat-menu>\n", styles: ["mat-divider.mat-divider:first-child,mat-divider.mat-divider:last-child{display:none}.mat-icon{display:inline-flex}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: OWrapperContentMenuComponent, selector: "o-wrapper-content-menu", inputs: ["items", "class"] }, { kind: "pipe", type: i5.OTranslatePipe, name: "oTranslate" }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OWrapperContentMenuComponent, decorators: [{
type: Component,
args: [{ selector: 'o-wrapper-content-menu', inputs: DEFAULT_CONTEXT_MENU_CONTENT_ITEM_INPUTS, template: "<mat-menu class=\"o-mat-menu\" #childMenu=\"matMenu\" [class]=\"class\" [overlapTrigger]=\"false\" [hasBackdrop]=\"false\">\n <ng-container *ngFor=\"let child of items\">\n <!-- Handle branch node menu items -->\n <span *ngIf=\"isGroup(child) && child.isVisible\">\n <button mat-menu-item color=\"primary\" [matMenuTriggerFor]=\"menu.childMenu\" [disabled]=\"child.disabled\">\n <mat-icon *ngIf=\"child.svgIcon != null\" [svgIcon]=\"child.svgIcon\"></mat-icon>\n <mat-icon *ngIf=\"child.svgIcon == null && child.icon != null\">{{ child.icon }}</mat-icon>\n <span>{{ child.label | oTranslate}}</span>\n </button>\n <o-wrapper-content-menu #menu [items]=\"getChildren(child)\" [class]=\"class\"></o-wrapper-content-menu>\n </span>\n <!-- Handle leaf node menu items -->\n <button mat-menu-item (click)=\"onClick(child, $event)\" [disabled]=\"child.disabled\" *ngIf=\"isItem(child) && child.isVisible\">\n <mat-icon *ngIf=\"child.svgIcon != null\" [svgIcon]=\"child.svgIcon\"></mat-icon>\n <mat-icon *ngIf=\"child.svgIcon == null && child.icon != null\">{{ child.icon }}</mat-icon>\n <span>{{ child.label | oTranslate}} </span>\n </button>\n <!-- separator leaf node menu items -->\n <mat-divider *ngIf=\"isSeparator(child) && child.isVisible\"></mat-divider>\n </ng-container>\n</mat-menu>\n", styles: ["mat-divider.mat-divider:first-child,mat-divider.mat-divider:last-child{display:none}.mat-icon{display:inline-flex}\n"] }]
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { items: [{
type: Input
}], childMenu: [{
type: ViewChild,
args: ['childMenu', { static: true }]
}], menu: [{
type: ViewChild,
args: [OWrapperContentMenuComponent, { static: true }]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby13cmFwcGVyLWNvbnRlbnQtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9jb250ZXh0bWVudS9jb250ZXh0LW1lbnUvby13cmFwcGVyLWNvbnRlbnQtbWVudS9vLXdyYXBwZXItY29udGVudC1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2NvbnRleHRtZW51L2NvbnRleHQtbWVudS9vLXdyYXBwZXItY29udGVudC1tZW51L28td3JhcHBlci1jb250ZW50LW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFakQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDckcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDbEcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saUVBQWlFLENBQUM7Ozs7Ozs7QUFHakgsTUFBTSxDQUFDLE1BQU0sd0NBQXdDLEdBQUc7SUFDdEQsT0FBTztJQUNQLE9BQU87Q0FDUixDQUFDO0FBUUYsTUFBTSxPQUFPLDRCQUE0QjtJQWF2QyxZQUNZLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFDMUIsQ0FBQztJQUVFLE9BQU8sQ0FBQyxJQUE0QixFQUFFLEtBQU07UUFDakQsSUFBSSxJQUFJLFlBQVkseUJBQXlCLEVBQUU7WUFDN0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3ZDO0lBQ0gsQ0FBQztJQUVNLE9BQU8sQ0FBQyxJQUE0QjtRQUN6QyxPQUFPLElBQUksWUFBWSwwQkFBMEIsQ0FBQztJQUNwRCxDQUFDO0lBRU0sV0FBVyxDQUFDLElBQTRCO1FBQzdDLE9BQU8sSUFBSSxZQUFZLDhCQUE4QixDQUFDO0lBQ3hELENBQUM7SUFFTSxNQUFNLENBQUMsSUFBNEI7UUFDeEMsT0FBTyxJQUFJLFlBQVkseUJBQXlCLENBQUM7SUFDbkQsQ0FBQztJQUVNLFdBQVcsQ0FBQyxJQUE0QjtRQUM3QyxPQUFPLElBQUksWUFBWSwwQkFBMEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3pFLENBQUM7OzBIQXJDVSw0QkFBNEI7OEdBQTVCLDRCQUE0Qix1UEFVNUIsNEJBQTRCLDhEQzdCekMsdzFDQXFCQSx5L0JERmEsNEJBQTRCOzRGQUE1Qiw0QkFBNEI7a0JBTnhDLFNBQVM7K0JBQ0Usd0JBQXdCLFVBRzFCLHdDQUF3QzsrRkFPekMsS0FBSztzQkFEWCxLQUFLO2dCQUlDLFNBQVM7c0JBRGYsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUlqQyxJQUFJO3NCQURWLFNBQVM7dUJBQUMsNEJBQTRCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RvciwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0TWVudSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuXG5pbXBvcnQgeyBPQ29udGV4dE1lbnVHcm91cENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbnRleHQtbWVudS1ncm91cC9vLWNvbnRleHQtbWVudS1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgT0NvbnRleHRNZW51SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbnRleHQtbWVudS1pdGVtL28tY29udGV4dC1tZW51LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE9Db250ZXh0TWVudVNlcGFyYXRvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbnRleHQtbWVudS1zZXBhcmF0b3Ivby1jb250ZXh0LW1lbnUtc2VwYXJhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPQ29tcG9uZW50TWVudUJhc2VJdGVtIH0gZnJvbSAnLi4vLi4vby1jb250ZW50LW1lbnUtYmFzZS1pdGVtLmNsYXNzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ09OVEVYVF9NRU5VX0NPTlRFTlRfSVRFTV9JTlBVVFMgPSBbXG4gICdpdGVtcycsXG4gICdjbGFzcydcbl07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ28td3JhcHBlci1jb250ZW50LW1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJ28td3JhcHBlci1jb250ZW50LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vLXdyYXBwZXItY29udGVudC1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gIGlucHV0czogREVGQVVMVF9DT05URVhUX01FTlVfQ09OVEVOVF9JVEVNX0lOUFVUU1xufSlcbmV4cG9ydCBjbGFzcyBPV3JhcHBlckNvbnRlbnRNZW51Q29tcG9uZW50IHtcblxuICBwdWJsaWMgY2xhc3M6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaXRlbXM6IE9Db21wb25lbnRNZW51QmFzZUl0ZW1bXTtcblxuICBAVmlld0NoaWxkKCdjaGlsZE1lbnUnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgY2hpbGRNZW51OiBNYXRNZW51O1xuXG4gIEBWaWV3Q2hpbGQoT1dyYXBwZXJDb250ZW50TWVudUNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIG1lbnU6IE9XcmFwcGVyQ29udGVudE1lbnVDb21wb25lbnQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvclxuICApIHsgfVxuXG4gIHB1YmxpYyBvbkNsaWNrKGl0ZW06IE9Db21wb25lbnRNZW51QmFzZUl0ZW0sIGV2ZW50Pyk6IHZvaWQge1xuICAgIGlmIChpdGVtIGluc3RhbmNlb2YgT0NvbnRleHRNZW51SXRlbUNvbXBvbmVudCkge1xuICAgICAgaXRlbS50cmlnZ2VyRXhlY3V0ZShpdGVtLmRhdGEsIGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNHcm91cChpdGVtOiBPQ29tcG9uZW50TWVudUJhc2VJdGVtKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGl0ZW0gaW5zdGFuY2VvZiBPQ29udGV4dE1lbnVHcm91cENvbXBvbmVudDtcbiAgfVxuXG4gIHB1YmxpYyBpc1NlcGFyYXRvcihpdGVtOiBPQ29tcG9uZW50TWVudUJhc2VJdGVtKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGl0ZW0gaW5zdGFuY2VvZiBPQ29udGV4dE1lbnVTZXBhcmF0b3JDb21wb25lbnQ7XG4gIH1cblxuICBwdWJsaWMgaXNJdGVtKGl0ZW06IE9Db21wb25lbnRNZW51QmFzZUl0ZW0pOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXRlbSBpbnN0YW5jZW9mIE9Db250ZXh0TWVudUl0ZW1Db21wb25lbnQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2hpbGRyZW4oaXRlbTogT0NvbXBvbmVudE1lbnVCYXNlSXRlbSkge1xuICAgIHJldHVybiBpdGVtIGluc3RhbmNlb2YgT0NvbnRleHRNZW51R3JvdXBDb21wb25lbnQgPyBpdGVtLmNoaWxkcmVuIDogW107XG4gIH1cblxufVxuIiwiPG1hdC1tZW51IGNsYXNzPVwiby1tYXQtbWVudVwiICNjaGlsZE1lbnU9XCJtYXRNZW51XCIgW2NsYXNzXT1cImNsYXNzXCIgW292ZXJsYXBUcmlnZ2VyXT1cImZhbHNlXCIgW2hhc0JhY2tkcm9wXT1cImZhbHNlXCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNoaWxkIG9mIGl0ZW1zXCI+XG4gICAgPCEtLSBIYW5kbGUgYnJhbmNoIG5vZGUgbWVudSBpdGVtcyAtLT5cbiAgICA8c3BhbiAqbmdJZj1cImlzR3JvdXAoY2hpbGQpICYmIGNoaWxkLmlzVmlzaWJsZVwiPlxuICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIGNvbG9yPVwicHJpbWFyeVwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51LmNoaWxkTWVudVwiIFtkaXNhYmxlZF09XCJjaGlsZC5kaXNhYmxlZFwiPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJjaGlsZC5zdmdJY29uICE9IG51bGxcIiBbc3ZnSWNvbl09XCJjaGlsZC5zdmdJY29uXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiY2hpbGQuc3ZnSWNvbiA9PSBudWxsICYmIGNoaWxkLmljb24gIT0gbnVsbFwiPnt7IGNoaWxkLmljb24gfX08L21hdC1pY29uPlxuICAgICAgICA8c3Bhbj57eyBjaGlsZC5sYWJlbCB8IG9UcmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPG8td3JhcHBlci1jb250ZW50LW1lbnUgI21lbnUgW2l0ZW1zXT1cImdldENoaWxkcmVuKGNoaWxkKVwiIFtjbGFzc109XCJjbGFzc1wiPjwvby13cmFwcGVyLWNvbnRlbnQtbWVudT5cbiAgICA8L3NwYW4+XG4gICAgPCEtLSBIYW5kbGUgbGVhZiBub2RlIG1lbnUgaXRlbXMgLS0+XG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJvbkNsaWNrKGNoaWxkLCAkZXZlbnQpXCIgW2Rpc2FibGVkXT1cImNoaWxkLmRpc2FibGVkXCIgKm5nSWY9XCJpc0l0ZW0oY2hpbGQpICYmIGNoaWxkLmlzVmlzaWJsZVwiPlxuICAgICAgPG1hdC1pY29uICpuZ0lmPVwiY2hpbGQuc3ZnSWNvbiAhPSBudWxsXCIgW3N2Z0ljb25dPVwiY2hpbGQuc3ZnSWNvblwiPjwvbWF0LWljb24+XG4gICAgICA8bWF0LWljb24gKm5nSWY9XCJjaGlsZC5zdmdJY29uID09IG51bGwgJiYgY2hpbGQuaWNvbiAhPSBudWxsXCI+e3sgY2hpbGQuaWNvbiB9fTwvbWF0LWljb24+XG4gICAgICA8c3Bhbj57eyBjaGlsZC5sYWJlbCB8IG9UcmFuc2xhdGV9fSA8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gICAgPCEtLSBzZXBhcmF0b3IgbGVhZiBub2RlIG1lbnUgaXRlbXMgLS0+XG4gICAgPG1hdC1kaXZpZGVyICpuZ0lmPVwiaXNTZXBhcmF0b3IoY2hpbGQpICYmIGNoaWxkLmlzVmlzaWJsZVwiPjwvbWF0LWRpdmlkZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9tYXQtbWVudT5cbiJdfQ==