@agjs/react-right-click-menu
Version:
React context menu.
1 lines • 4.1 kB
JavaScript
module.exports=function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=1)}([function(e,t){e.exports=require("react")},function(e,t,r){"use strict";r.r(t);var n=r(0),o=r.n(n);function u(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?u(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):u(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var r=[],n=!0,o=!1,u=void 0;try{for(var c,i=e[Symbol.iterator]();!(n=(c=i.next()).done)&&(r.push(c.value),!t||r.length!==t);n=!0);}catch(e){o=!0,u=e}finally{try{n||null==i.return||i.return()}finally{if(o)throw u}}return r}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return l(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return l(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var f=function e(t){var r;return!!t&&("react-context-menu"===t.className||"react-context-menu"===(null==t||null===(r=t.parentNode)||void 0===r?void 0:r.className)||e(null==t?void 0:t.parentNode))},s=function(e){return e?"react-context-menu ".concat(e):"react-context-menu"};t.default=function(e){var t=e.style,r=e.className,u=e.isOpenAfterInteraction,i=e.trigger,l=e.component,p=e.isOpen,d=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,u=Object(n.useState)(0),c=a(u,2),i=c[0],l=c[1],s=Object(n.useState)(0),p=a(s,2),d=p[0],b=p[1],y=Object(n.useCallback)((function(t){var r;t.preventDefault();var n=null==e||null===(r=e.current)||void 0===r?void 0:r.getBoundingClientRect(),u=n.x,c=n.y,i=n.width,a=n.height,f=t.pageX,s=t.pageY;l(t.pageX),b(t.pageY),o(!!(u+i>f&&u<f&&c+a>s&&c<s))}),[l,b,e]),v=Object(n.useCallback)((function(e){t&&f(e.target)||r&&o(!1)}),[r,t]);return Object(n.useEffect)((function(){return document.addEventListener("click",v),e.current.addEventListener("contextmenu",y),function(){document.removeEventListener("click",v),e.current.removeEventListener("contextmenu",y)}})),{xMouse:i,yMouse:d,isOpen:r}}(i,u,p,e.setIsOpen),b=d.xMouse,y=d.yMouse;return o.a.createElement(o.a.Fragment,null,p&&o.a.createElement("div",{className:s(r),style:c({position:"fixed",top:y,left:b},t)},l))}}]);