systelab-components
Version:
systelab-components is a set of components that use wide accepted and adopted standard technologies like Angular and Bootstrap, as well as other popular libraries. Please read the ATTRIBUTION.md file for a complete list of dependencies.
53 lines • 14.9 kB
JavaScript
import { Component, Input, ViewChildren, } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "./context-menu-item.component";
export class ContextMenuSubmenuItemComponent {
constructor() {
this.levelSeparator = '_|_';
this.elementID = (Math.floor(Math.random() * (999999999999 - 1))).toString();
}
doMouseOver(event, elementID, actionId) {
let selectedChild;
const optionAcitionId = this.contextMenuOriginal.getOptionDetailsActionId(actionId);
selectedChild = this.childDropdownMenuElement.toArray()
.find((elem) => elem.nativeElement.id === (optionAcitionId + this.elementID));
this.contextMenuOriginal.showSubmenu(event, actionId, selectedChild, this.elementID);
}
doClickWithAction(event, elementID, actionId) {
this.contextMenuOriginal.executeAction(event, elementID, actionId);
}
getAction(childActionId) {
return this.actionName + this.levelSeparator + childActionId;
}
isEnabled(elementId, actionId) {
return (this.action && this.action.isActionEnabled) ? this.action.isActionEnabled(elementId, actionId) : true;
}
isIconEnabled(elementId, actionId) {
return (this.action && this.action.isIconEnabled) ? this.action.isIconEnabled(elementId, actionId) : true;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: ContextMenuSubmenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.9", type: ContextMenuSubmenuItemComponent, selector: "systelab-context-menu-submenu-item", inputs: { action: "action", actionName: "actionName", hasIcons: "hasIcons", hasChildren: "hasChildren", contextMenuOriginal: "contextMenuOriginal", parentId: "parentId", elementID: "elementID" }, viewQueries: [{ propertyName: "childDropdownMenuElement", predicate: ["childdropdownmenu"], descendants: true }], ngImport: i0, template: "@for (childAction of action.childrenContextMenuOptions; track childAction.actionId) {\n <li class=\"d-flex align-items-center\" [class.disabled]=\"!true\"\n (click)=\"doClickWithAction($event, parentId, actionName + levelSeparator + childAction.actionId)\"\n (mouseover)=\"doMouseOver($event, elementID, actionName + levelSeparator + childAction.actionId)\">\n <div *ngIf=\"isEnabled\" class=\"slab-flex-1\" style=\"flex:1 1 auto\">\n <systelab-context-menu-item class=\"d-flex align-items-center\" [action]=\"childAction\"\n [isEnabled]=\"isEnabled(elementID, childAction.actionId)\"\n [isIconEnabled]=\"isIconEnabled(elementID, childAction.actionId)\"\n [hasChildren]=\"childAction.hasChildren()\"\n [hasIcons]=\"hasIcons\"></systelab-context-menu-item>\n <ul *ngIf=\"childAction.hasChildren()\" #childdropdownmenu id=\"{{childAction.actionId+elementID}}\"\n class=\"slab-dropdown dropdown-menu slab-dropdown-menu slab-dropdown-scroll slab-dropdown-absolute\">\n <systelab-context-menu-submenu-item [action]=\"childAction\"\n [actionName]=\"getAction(childAction.actionId)\"\n [hasChildren]=\"childAction.hasChildren()\"\n [hasIcons]=\"hasIcons\"\n [contextMenuOriginal]=\"contextMenuOriginal\"\n [parentId]=\"parentId\"\n ></systelab-context-menu-submenu-item>\n </ul>\n </div>\n </li>\n}\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ContextMenuSubmenuItemComponent, selector: "systelab-context-menu-submenu-item", inputs: ["action", "actionName", "hasIcons", "hasChildren", "contextMenuOriginal", "parentId", "elementID"] }, { kind: "component", type: i2.ContextMenuItemComponent, selector: "systelab-context-menu-item", inputs: ["action", "hasIcons", "isEnabled", "isIconEnabled", "hasChildren"] }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: ContextMenuSubmenuItemComponent, decorators: [{
type: Component,
args: [{ selector: 'systelab-context-menu-submenu-item', template: "@for (childAction of action.childrenContextMenuOptions; track childAction.actionId) {\n <li class=\"d-flex align-items-center\" [class.disabled]=\"!true\"\n (click)=\"doClickWithAction($event, parentId, actionName + levelSeparator + childAction.actionId)\"\n (mouseover)=\"doMouseOver($event, elementID, actionName + levelSeparator + childAction.actionId)\">\n <div *ngIf=\"isEnabled\" class=\"slab-flex-1\" style=\"flex:1 1 auto\">\n <systelab-context-menu-item class=\"d-flex align-items-center\" [action]=\"childAction\"\n [isEnabled]=\"isEnabled(elementID, childAction.actionId)\"\n [isIconEnabled]=\"isIconEnabled(elementID, childAction.actionId)\"\n [hasChildren]=\"childAction.hasChildren()\"\n [hasIcons]=\"hasIcons\"></systelab-context-menu-item>\n <ul *ngIf=\"childAction.hasChildren()\" #childdropdownmenu id=\"{{childAction.actionId+elementID}}\"\n class=\"slab-dropdown dropdown-menu slab-dropdown-menu slab-dropdown-scroll slab-dropdown-absolute\">\n <systelab-context-menu-submenu-item [action]=\"childAction\"\n [actionName]=\"getAction(childAction.actionId)\"\n [hasChildren]=\"childAction.hasChildren()\"\n [hasIcons]=\"hasIcons\"\n [contextMenuOriginal]=\"contextMenuOriginal\"\n [parentId]=\"parentId\"\n ></systelab-context-menu-submenu-item>\n </ul>\n </div>\n </li>\n}\n" }]
}], ctorParameters: () => [], propDecorators: { action: [{
type: Input
}], actionName: [{
type: Input
}], hasIcons: [{
type: Input
}], hasChildren: [{
type: Input
}], contextMenuOriginal: [{
type: Input
}], parentId: [{
type: Input
}], elementID: [{
type: Input
}], childDropdownMenuElement: [{
type: ViewChildren,
args: ['childdropdownmenu']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LXN1Ym1lbnUtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zeXN0ZWxhYi1jb21wb25lbnRzL3NyYy9saWIvY29udGV4dG1lbnUvY29udGV4dC1tZW51LXN1Ym1lbnUtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zeXN0ZWxhYi1jb21wb25lbnRzL3NyYy9saWIvY29udGV4dG1lbnUvY29udGV4dC1tZW51LXN1Ym1lbnUtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBYSxZQUFZLEdBQUcsTUFBTSxlQUFlLENBQUM7Ozs7QUFRdkYsTUFBTSxPQUFPLCtCQUErQjtJQWMzQztRQVJnQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUl2QixjQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFLeEYsQ0FBQztJQUVNLFdBQVcsQ0FBQyxLQUFVLEVBQUUsU0FBaUIsRUFBRSxRQUFnQjtRQUNqRSxJQUFJLGFBQWEsQ0FBQztRQUVsQixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFcEYsYUFBYSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLEVBQUU7YUFDckQsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsS0FBSyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUUvRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRU0saUJBQWlCLENBQUMsS0FBVSxFQUFFLFNBQWlCLEVBQUUsUUFBZ0I7UUFDdkUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTSxTQUFTLENBQUMsYUFBcUI7UUFDckMsT0FBTyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO0lBQzlELENBQUM7SUFFTSxTQUFTLENBQUMsU0FBaUIsRUFBRSxRQUFnQjtRQUNuRCxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMvRyxDQUFDO0lBRU0sYUFBYSxDQUFDLFNBQWlCLEVBQUUsUUFBZ0I7UUFDdkQsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDM0csQ0FBQzs4R0ExQ1csK0JBQStCO2tHQUEvQiwrQkFBK0IsZ1lDUjVDLDB4REF1QkEsZ0pEZmEsK0JBQStCOzsyRkFBL0IsK0JBQStCO2tCQUozQyxTQUFTOytCQUNJLG9DQUFvQzt3REFLakMsTUFBTTtzQkFBckIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFFVSxtQkFBbUI7c0JBQWxDLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFFVSxTQUFTO3NCQUF4QixLQUFLO2dCQUVvQyx3QkFBd0I7c0JBQWpFLFlBQVk7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4sIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRleHRNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9hYnN0cmFjdC1jb250ZXh0LW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IENvbnRleHRNZW51T3B0aW9uIH0gZnJvbSAnLi9jb250ZXh0LW1lbnUtb3B0aW9uJztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAgICAnc3lzdGVsYWItY29udGV4dC1tZW51LXN1Ym1lbnUtaXRlbScsXG5cdHRlbXBsYXRlVXJsOiAnY29udGV4dC1tZW51LXN1Ym1lbnUtaXRlbS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQ29udGV4dE1lbnVTdWJtZW51SXRlbUNvbXBvbmVudCB7XG5cblx0QElucHV0KCkgcHVibGljIGFjdGlvbjogQ29udGV4dE1lbnVPcHRpb247XG5cdEBJbnB1dCgpIHB1YmxpYyBhY3Rpb25OYW1lOiBzdHJpbmc7XG5cdEBJbnB1dCgpIHB1YmxpYyBoYXNJY29uczogYm9vbGVhbjtcblx0QElucHV0KCkgcHVibGljIGhhc0NoaWxkcmVuOiBib29sZWFuO1xuXHRwdWJsaWMgcmVhZG9ubHkgbGV2ZWxTZXBhcmF0b3IgPSAnX3xfJztcblx0QElucHV0KCkgcHVibGljIGNvbnRleHRNZW51T3JpZ2luYWw6IEFic3RyYWN0Q29udGV4dE1lbnVDb21wb25lbnQ8Q29udGV4dE1lbnVPcHRpb24+O1xuXHRASW5wdXQoKSBwdWJsaWMgcGFyZW50SWQ6IHN0cmluZztcblxuXHRASW5wdXQoKSBwdWJsaWMgZWxlbWVudElEID0gKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqICg5OTk5OTk5OTk5OTkgLSAxKSkpLnRvU3RyaW5nKCk7XG5cblx0QFZpZXdDaGlsZHJlbignY2hpbGRkcm9wZG93bm1lbnUnKSBwdWJsaWMgY2hpbGREcm9wZG93bk1lbnVFbGVtZW50OiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdH1cblxuXHRwdWJsaWMgZG9Nb3VzZU92ZXIoZXZlbnQ6IGFueSwgZWxlbWVudElEOiBzdHJpbmcsIGFjdGlvbklkOiBzdHJpbmcpOiB2b2lkIHtcblx0XHRsZXQgc2VsZWN0ZWRDaGlsZDtcblxuXHRcdGNvbnN0IG9wdGlvbkFjaXRpb25JZCA9IHRoaXMuY29udGV4dE1lbnVPcmlnaW5hbC5nZXRPcHRpb25EZXRhaWxzQWN0aW9uSWQoYWN0aW9uSWQpO1xuXG5cdFx0c2VsZWN0ZWRDaGlsZCA9IHRoaXMuY2hpbGREcm9wZG93bk1lbnVFbGVtZW50LnRvQXJyYXkoKVxuXHRcdFx0LmZpbmQoKGVsZW0pID0+IGVsZW0ubmF0aXZlRWxlbWVudC5pZCA9PT0gKG9wdGlvbkFjaXRpb25JZCArIHRoaXMuZWxlbWVudElEKSk7XG5cblx0XHR0aGlzLmNvbnRleHRNZW51T3JpZ2luYWwuc2hvd1N1Ym1lbnUoZXZlbnQsIGFjdGlvbklkLCBzZWxlY3RlZENoaWxkLCB0aGlzLmVsZW1lbnRJRCk7XG5cdH1cblxuXHRwdWJsaWMgZG9DbGlja1dpdGhBY3Rpb24oZXZlbnQ6IGFueSwgZWxlbWVudElEOiBzdHJpbmcsIGFjdGlvbklkOiBzdHJpbmcpOiB2b2lkIHtcblx0XHR0aGlzLmNvbnRleHRNZW51T3JpZ2luYWwuZXhlY3V0ZUFjdGlvbihldmVudCwgZWxlbWVudElELCBhY3Rpb25JZCk7XG5cdH1cblxuXHRwdWJsaWMgZ2V0QWN0aW9uKGNoaWxkQWN0aW9uSWQ6IFN0cmluZyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuYWN0aW9uTmFtZSArIHRoaXMubGV2ZWxTZXBhcmF0b3IgKyBjaGlsZEFjdGlvbklkO1xuXHR9XG5cblx0cHVibGljIGlzRW5hYmxlZChlbGVtZW50SWQ6IHN0cmluZywgYWN0aW9uSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiAodGhpcy5hY3Rpb24gJiYgdGhpcy5hY3Rpb24uaXNBY3Rpb25FbmFibGVkKSA/IHRoaXMuYWN0aW9uLmlzQWN0aW9uRW5hYmxlZChlbGVtZW50SWQsIGFjdGlvbklkKSA6IHRydWU7XG5cdH1cblxuXHRwdWJsaWMgaXNJY29uRW5hYmxlZChlbGVtZW50SWQ6IHN0cmluZywgYWN0aW9uSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiAodGhpcy5hY3Rpb24gJiYgdGhpcy5hY3Rpb24uaXNJY29uRW5hYmxlZCkgPyB0aGlzLmFjdGlvbi5pc0ljb25FbmFibGVkKGVsZW1lbnRJZCwgYWN0aW9uSWQpIDogdHJ1ZTtcblx0fVxufVxuIiwiQGZvciAoY2hpbGRBY3Rpb24gb2YgYWN0aW9uLmNoaWxkcmVuQ29udGV4dE1lbnVPcHRpb25zOyB0cmFjayBjaGlsZEFjdGlvbi5hY3Rpb25JZCkge1xuICAgIDxsaSBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIiBbY2xhc3MuZGlzYWJsZWRdPVwiIXRydWVcIlxuICAgICAgICAoY2xpY2spPVwiZG9DbGlja1dpdGhBY3Rpb24oJGV2ZW50LCBwYXJlbnRJZCwgYWN0aW9uTmFtZSArIGxldmVsU2VwYXJhdG9yICsgY2hpbGRBY3Rpb24uYWN0aW9uSWQpXCJcbiAgICAgICAgKG1vdXNlb3Zlcik9XCJkb01vdXNlT3ZlcigkZXZlbnQsIGVsZW1lbnRJRCwgYWN0aW9uTmFtZSArIGxldmVsU2VwYXJhdG9yICsgY2hpbGRBY3Rpb24uYWN0aW9uSWQpXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJpc0VuYWJsZWRcIiBjbGFzcz1cInNsYWItZmxleC0xXCIgc3R5bGU9XCJmbGV4OjEgMSBhdXRvXCI+XG4gICAgICAgICAgICA8c3lzdGVsYWItY29udGV4dC1tZW51LWl0ZW0gY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCIgW2FjdGlvbl09XCJjaGlsZEFjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lzRW5hYmxlZF09XCJpc0VuYWJsZWQoZWxlbWVudElELCBjaGlsZEFjdGlvbi5hY3Rpb25JZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpc0ljb25FbmFibGVkXT1cImlzSWNvbkVuYWJsZWQoZWxlbWVudElELCBjaGlsZEFjdGlvbi5hY3Rpb25JZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoYXNDaGlsZHJlbl09XCJjaGlsZEFjdGlvbi5oYXNDaGlsZHJlbigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGFzSWNvbnNdPVwiaGFzSWNvbnNcIj48L3N5c3RlbGFiLWNvbnRleHQtbWVudS1pdGVtPlxuICAgICAgICAgICAgPHVsICpuZ0lmPVwiY2hpbGRBY3Rpb24uaGFzQ2hpbGRyZW4oKVwiICNjaGlsZGRyb3Bkb3dubWVudSBpZD1cInt7Y2hpbGRBY3Rpb24uYWN0aW9uSWQrZWxlbWVudElEfX1cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2xhYi1kcm9wZG93biBkcm9wZG93bi1tZW51IHNsYWItZHJvcGRvd24tbWVudSBzbGFiLWRyb3Bkb3duLXNjcm9sbCBzbGFiLWRyb3Bkb3duLWFic29sdXRlXCI+XG4gICAgICAgICAgICAgICAgPHN5c3RlbGFiLWNvbnRleHQtbWVudS1zdWJtZW51LWl0ZW0gW2FjdGlvbl09XCJjaGlsZEFjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FjdGlvbk5hbWVdPVwiZ2V0QWN0aW9uKGNoaWxkQWN0aW9uLmFjdGlvbklkKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hhc0NoaWxkcmVuXT1cImNoaWxkQWN0aW9uLmhhc0NoaWxkcmVuKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoYXNJY29uc109XCJoYXNJY29uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRNZW51T3JpZ2luYWxdPVwiY29udGV4dE1lbnVPcmlnaW5hbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BhcmVudElkXT1cInBhcmVudElkXCJcbiAgICAgICAgICAgICAgICA+PC9zeXN0ZWxhYi1jb250ZXh0LW1lbnUtc3VibWVudS1pdGVtPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9saT5cbn1cbiJdfQ==