cloudcmd/client/modules/menu/cloudmenu.mjs
2026-01-15 22:14:01 +02:00

30 lines
887 B
JavaScript

import supermenu from 'supermenu';
const noop = () => {};
const {CloudCmd} = globalThis;
export const createCloudMenu = async (fm, options, menuData) => {
const createMenu = await loadMenu();
const menu = await createMenu(fm, options, menuData);
menu.addContextMenuListener = menu.addContextMenuListener || noop;
return menu;
};
async function loadMenu() {
if (CloudCmd.config('menu') === 'aleman') {
const {host, protocol} = globalThis.location;
const url = `${protocol}//${host}/node_modules/aleman/menu/menu.js`;
const {createMenu} = await import(/* webpackIgnore: true */url);
return createMenu;
}
return createSupermenu;
}
function createSupermenu(name, options, menuData) {
const element = document.querySelector('[data-name="js-fm"]');
return supermenu(element, options, menuData);
}