UNPKG

easycontext

Version:
3 lines (2 loc) 1.37 kB
var e=function(e,t){return t.nodeType===Node.ELEMENT_NODE&&e.push(t),e},t=function(t,n,i){var a,c=void 0===i?{}:i,r=c.parentElement,o=void 0===r?document.body:r,l=c.root,s=void 0===l?document:l,d=c.className,u=void 0===d?"context-menu":d,m="string"==typeof(a=t)?Array.from(document.querySelectorAll(a)):Array.isArray(a)?a:"length"in a?Array.from(a).reduce(e,[]):[a],v=function(e,t){var n=(void 0===t?{}:t).className,i=document.createElement("ul");return i.className=n,e.appendChild(i),{show:function(e,t){var n=this,a=t.x,c=t.y;i.innerHTML="",i.style.top=c+"px",i.style.left=a+"px",e.forEach(function(e){var t=e.text,a=void 0===t?"":t,c=e.className,r=void 0===c?"":c,o=e.onClick,l=void 0===o?null:o,s=document.createElement("li");s.innerHTML=a,s.className=r,l&&(s.classList.add("menu-item-clickable"),s.addEventListener("click",l),s.addEventListener("click",function(){return n.hide()})),i.appendChild(s)}),i.classList.add("menu-visible")},hide:function(){i.classList.remove("menu-visible")}}}(o,{className:u});m.forEach(function(e){e.addEventListener("contextmenu",function(e){var t="function"==typeof n?n(e.target):n;t&&(v.show(t,{x:e.clientX,y:e.clientY}),e.preventDefault())})}),s.addEventListener("click",function(e){e.target.parentElement&&e.target.parentElement.classList.contains(u)||v.hide()})};export{t as contextmenu}; //# sourceMappingURL=index.module.js.map