@lvce-editor/menu-worker 4.3.0 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2918,12 +2918,22 @@ const getSubMenuItems = async (parentMenu, item) => {
2918
2918
  }
2919
2919
  return getMenuEntries$1(item.id, ...args);
2920
2920
  };
2921
+ const getOpenSubMenuToLeft = parentMenu => {
2922
+ return parentMenu.openSubMenuToLeft === true || parentMenu.args?.[0]?.openSubMenuToLeft === true;
2923
+ };
2924
+ const getSubMenuX = (parentMenu, openSubMenuToLeft) => {
2925
+ return openSubMenuToLeft ? parentMenu.x - MENU_WIDTH : parentMenu.x + MENU_WIDTH;
2926
+ };
2921
2927
  const showSubMenuAtEnter = async (level, index, enterX, enterY) => {
2922
- // TODO delete old menus
2923
- set$1(getAll().slice(0, level + 1));
2924
2928
  const parentMenu = get$1(level);
2925
2929
  const item = parentMenu.items[index];
2930
+ const existingSubMenu = getAll()[level + 1];
2931
+ if (existingSubMenu?.parentIndex === index && existingSubMenu.id === item.id) {
2932
+ return;
2933
+ }
2934
+ set$1(getAll().slice(0, level + 1));
2926
2935
  const subMenuItems = await getSubMenuItems(parentMenu, item);
2936
+ const openSubMenuToLeft = getOpenSubMenuToLeft(parentMenu);
2927
2937
  const subMenu = addMenuInternal({
2928
2938
  args: item.args || parentMenu.args || [],
2929
2939
  enterX,
@@ -2932,8 +2942,10 @@ const showSubMenuAtEnter = async (level, index, enterX, enterY) => {
2932
2942
  id: item.id,
2933
2943
  items: subMenuItems,
2934
2944
  level: getCount(),
2945
+ openSubMenuToLeft,
2946
+ parentIndex: index,
2935
2947
  uid: parentMenu.uid,
2936
- x: parentMenu.x + MENU_WIDTH,
2948
+ x: getSubMenuX(parentMenu, openSubMenuToLeft),
2937
2949
  y: parentMenu.y + index * 25
2938
2950
  });
2939
2951
  const width = getMenuWidth();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/menu-worker",
3
- "version": "4.3.0",
3
+ "version": "4.5.0",
4
4
  "description": "Menu Worker",
5
5
  "repository": {
6
6
  "type": "git",