UNPKG

tav-ui

Version:
67 lines (62 loc) 1.83 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var vue = require('vue'); var is = require('../../../utils/is2.js'); var contextMenu = require('./context-menu2.js'); const menuManager = { domList: [], resolve: () => { } }; const createContextMenu = function(options) { const { event } = options || {}; event && event?.preventDefault(); if (!is.isClient) return; return new Promise((resolve) => { const body = document.body; const container = document.createElement("div"); const propsData = {}; if (options.styles) propsData.styles = options.styles; if (options.items) propsData.items = options.items; if (options.event) { propsData.customEvent = event; propsData.axis = { x: event.clientX, y: event.clientY }; } const vm = vue.createVNode(contextMenu["default"], propsData); vue.render(vm, container); const handleClick = function() { menuManager.resolve(""); }; menuManager.domList.push(container); const remove = function() { menuManager.domList.forEach((dom) => { try { dom && body.removeChild(dom); } catch (error) { } }); body.removeEventListener("click", handleClick); body.removeEventListener("scroll", handleClick); }; menuManager.resolve = function(arg) { remove(); resolve(arg); }; remove(); body.appendChild(container); body.addEventListener("click", handleClick); body.addEventListener("scroll", handleClick); }); }; const destroyContextMenu = function() { if (menuManager) { menuManager.resolve(""); menuManager.domList = []; } }; exports.createContextMenu = createContextMenu; exports.destroyContextMenu = destroyContextMenu; //# sourceMappingURL=context-menu-method2.js.map