tav-ui
Version:
67 lines (62 loc) • 1.83 kB
JavaScript
;
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