diff --git a/projects/aca-shared/src/lib/components/tool-bar/toolbar-menu-item/toolbar-menu-item.component.ts b/projects/aca-shared/src/lib/components/tool-bar/toolbar-menu-item/toolbar-menu-item.component.ts
index 328684c03..70a4af30a 100644
--- a/projects/aca-shared/src/lib/components/tool-bar/toolbar-menu-item/toolbar-menu-item.component.ts
+++ b/projects/aca-shared/src/lib/components/tool-bar/toolbar-menu-item/toolbar-menu-item.component.ts
@@ -23,9 +23,10 @@
* along with Alfresco. If not, see .
*/
-import { Component, Input, ViewEncapsulation } from '@angular/core';
+import { Component, Input, ViewChild, ViewEncapsulation } from '@angular/core';
import { ContentActionRef } from '@alfresco/adf-extensions';
import { AppExtensionService } from '../../../services/app.extension.service';
+import { MatMenuItem } from '@angular/material/menu';
@Component({
selector: 'app-toolbar-menu-item',
@@ -44,6 +45,9 @@ export class ToolbarMenuItemComponent {
@Input()
actionRef: ContentActionRef;
+ @ViewChild(MatMenuItem)
+ menuItem: MatMenuItem;
+
constructor(private extensions: AppExtensionService) {}
runAction() {
diff --git a/projects/aca-shared/src/lib/components/tool-bar/toolbar-menu/toolbar-menu.component.ts b/projects/aca-shared/src/lib/components/tool-bar/toolbar-menu/toolbar-menu.component.ts
index b9496ce6a..518cb7201 100644
--- a/projects/aca-shared/src/lib/components/tool-bar/toolbar-menu/toolbar-menu.component.ts
+++ b/projects/aca-shared/src/lib/components/tool-bar/toolbar-menu/toolbar-menu.component.ts
@@ -23,10 +23,11 @@
* along with Alfresco. If not, see .
*/
-import { Component, Input, ViewEncapsulation, HostListener, ViewChild } from '@angular/core';
+import { Component, Input, ViewEncapsulation, HostListener, ViewChild, ViewChildren, QueryList, AfterViewInit } from '@angular/core';
import { ContentActionRef } from '@alfresco/adf-extensions';
-import { MatMenuTrigger } from '@angular/material/menu';
+import { MatMenu, MatMenuItem, MatMenuTrigger } from '@angular/material/menu';
import { ThemePalette } from '@angular/material/core';
+import { ToolbarMenuItemComponent } from '../toolbar-menu-item/toolbar-menu-item.component';
@Component({
selector: 'app-toolbar-menu',
@@ -34,7 +35,7 @@ import { ThemePalette } from '@angular/material/core';
encapsulation: ViewEncapsulation.None,
host: { class: 'app-toolbar-menu' }
})
-export class ToolbarMenuComponent {
+export class ToolbarMenuComponent implements AfterViewInit {
@Input()
actionRef: ContentActionRef;
@@ -44,11 +45,30 @@ export class ToolbarMenuComponent {
@ViewChild('matTrigger')
matTrigger: MatMenuTrigger;
+ @ViewChild(MatMenu)
+ menu: MatMenu;
+
+ @ViewChildren(ToolbarMenuItemComponent)
+ toolbarMenuItems: QueryList;
+
@HostListener('document:keydown.Escape')
handleKeydownEscape() {
this.matTrigger.closeMenu();
}
+ ngAfterViewInit(): void {
+ const menuItems: MatMenuItem[] = [];
+ this.toolbarMenuItems.forEach((toolbarMenuItem: ToolbarMenuItemComponent) => {
+ if (toolbarMenuItem.menuItem !== undefined) {
+ menuItems.push(toolbarMenuItem.menuItem);
+ }
+ });
+ const menuItemsQueryList: QueryList = new QueryList();
+ menuItemsQueryList.reset(menuItems);
+ this.menu._allItems = menuItemsQueryList;
+ this.menu.ngAfterContentInit();
+ }
+
trackByActionId(_: number, obj: ContentActionRef): string {
return obj.id;
}