UNPKG

easycontext

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