in libs/fabric/src/lib/components/button/base-button.component.ts [103:136]
ngAfterContentInit() {
if (this.menuItemsDirectives && this.menuItemsDirectives.length > 0) {
const setItems = (directiveItems: ReadonlyArray<ContextualMenuItemDirective>) => {
const items = directiveItems.map(directive =>
this._transformContextualMenuItemOptionsToProps(this._directiveToContextualMenuItem(directive))
);
if (!this.menuProps) {
this.menuProps = { items: items };
} else {
this.menuProps.items = items;
}
this.markForCheck();
};
this._changeableItemsHelper = new ChangeableItemsHelper(this.menuItemsDirectives);
this._subscriptions.push(
this._changeableItemsHelper.onItemsChanged.subscribe((newItems: QueryList<ContextualMenuItemDirective>) => {
setItems(newItems.toArray());
}),
this._changeableItemsHelper.onChildItemChanged.subscribe(({ key, changes }: CommandBarItemChangedPayload) => {
const newItems = this.menuItemsDirectives.map(item =>
item.key === key ? mergeItemChanges(item, changes) : item
);
setItems(newItems);
this.markForCheck();
})
);
setItems(this.menuItemsDirectives.toArray());
}
super.ngAfterContentInit();
}