{"version":3,"file":"use-menu.mjs","sources":["../../../../../../packages/components/tree/src/use-menu.ts"],"sourcesContent":["import $ from 'jquery'\r\nimport { createVNode, render as vueRender } from 'vue'\r\nimport { SgDropdown, SgDropdownItem } from '@sgui-plus/components/dropdown'\r\nimport { SgIcon } from '@sgui-plus/components/icon'\r\nimport { MoreVerticalSolid } from '@sgui-plus/icons-vue'\r\nimport type { VNode } from 'vue'\r\n\r\nlet menus: any = []\r\n\r\nexport function setMenu(data) {\r\n  menus = data\r\n}\r\n\r\nexport function createMenu(treeId, treeNode) {\r\n  const treeNodeEl = $('#' + treeNode.tId + '_label')\r\n  const treeObj = $.fn.zTree.getZTreeObj(treeId)\r\n\r\n  const menuId = `${treeNode.tId}_menu`\r\n\r\n  if (treeNode.disableMenu || $(`#${menuId}`).length > 0) return\r\n\r\n  const vnode = createVNode(SgDropdown, {\r\n    id: menuId,\r\n    class: 'tree-node-menu',\r\n    trigger: 'hover',\r\n    placement: 'left-start',\r\n    dropClassName: `${treeNode.tId}_popper ${treeId}_popper`,\r\n    onOnClick: (item) => handleClick(item, treeId, treeNode)\r\n  }, {\r\n    default: () => createVNode(SgIcon, { size: 16 }, { default: () => createVNode(MoreVerticalSolid) }),\r\n    menu: () => {\r\n      const childVnodes: VNode[] = []\r\n\r\n      menus.forEach(menu => {\r\n        if (menu.vif && !menu.vif.apply(treeObj, [treeNode])) {\r\n          return\r\n        }\r\n        const child = createVNode(SgDropdownItem, { name: menu.value || menu.label }, { default: () => menu.label })\r\n        childVnodes.push(child)\r\n      })\r\n\r\n      return childVnodes\r\n    }\r\n  })\r\n\r\n  const container = document.createElement('div')\r\n\r\n  vueRender(vnode, container)\r\n\r\n  treeNodeEl.append(container.firstElementChild)\r\n}\r\n\r\nfunction handleClick(value, treeId, treeNode) {\r\n  const treeObj = $.fn.zTree.getZTreeObj(treeId)\r\n\r\n  const item = menus.find(menu => {\r\n    const key = menu.value || menu.label\r\n    return key=== value\r\n  })\r\n  if (item && typeof item.handler === 'function') {\r\n    item.handler.apply(treeObj, [treeNode])\r\n  }\r\n}\r\n\r\nexport function removeMenu(treeId, treeNode) {\r\n  // $(`#${treeNode.tId}_menu`).remove()\r\n  // $(`.${treeNode.tId}_popper`).remove()\r\n}\r\n\r\nexport function clearMenu(treeId) {\r\n  $(`.${treeId}_popper`).remove()\r\n}\r\n"],"names":["vueRender"],"mappings":"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"}