function addMenuItems(oMenu, aMenuItems) {
			let bStartsSection = !!aMenuItems[0]?.propagatingControl;
			let oTargetOverlay = oOverlay;
			let aTargetSelectedOverlays = aSelectedOverlays;
			aMenuItems.forEach(function(oMenuItem, index) {
				if (oMenuItem.propagatingControl) {
					oTargetOverlay = OverlayRegistry.getOverlay(oMenuItem.propagatingControl);
					aTargetSelectedOverlays = [oTargetOverlay];
				}
				const sText = typeof oMenuItem.text === "function" ? oMenuItem.text(oTargetOverlay) : oMenuItem.text;
				const bEnabled = typeof oMenuItem.enabled === "function" ? oMenuItem.enabled(aTargetSelectedOverlays) : oMenuItem.enabled;
				const oMenuItemInstance = new MenuItem({
					key: oMenuItem.id,
					icon: oMenuItem.icon,
					text: sText,
					enabled: bEnabled,
					startsSection: bStartsSection
				});

				oMenu.addItem(oMenuItemInstance);

				// Add end content to the menu item
				if (oMenuItem.propagatingControlName || oMenuItem.additionalInfo) {
					const oFlexBox = new FlexBox({
						justifyContent: "SpaceBetween",
						alignItems: "Center"
					});
					if (oMenuItem.propagatingControlName) {
						oFlexBox.addItem(new FormattedText({
							htmlText: `<strong>${oMenuItem.propagatingControlName}</strong>`
						}));
					}
					if (oMenuItem.additionalInfo) {
						const oAdditionalInfoButton = createAdditionalInfo.call(this, oMenuItem);
						oFlexBox.addItem(oAdditionalInfoButton);
					}
					oMenuItemInstance.addEndContent(oFlexBox);
				}

				if (oMenuItem.submenu) {
					addMenuItems.call(this, oMenu.getItems()[index], oMenuItem.submenu);
				}
				bStartsSection = false;
			}.bind(this));
		}
Opens the Context Menu
@param {sap.ui.dt.Overlay} oOverlay - Overlay object
@param {boolean} bIsSubMenu - Whether the new ContextMenu is a SubMenu opened by a menu item inside another ContextMenu
@param {object} oEvent - Click event of the menu