UNPKG

react-responsive-menu-hook

Version:
9 lines (8 loc) 4.62 kB
import e from"react";function r(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function t(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function n(e){for(var n=1;n<arguments.length;n++){var o=null!=arguments[n]?arguments[n]:{};n%2?t(Object(o),!0).forEach((function(t){r(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):t(Object(o)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(o,r))}))}return e}function o(e,r){if(null==e)return{};var t,n,o=function(e,r){if(null==e)return{};var t,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)t=i[n],r.indexOf(t)>=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)t=i[n],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function i(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var t=[],n=!0,o=!1,i=void 0;try{for(var u,a=e[Symbol.iterator]();!(n=(u=a.next()).done)&&(t.push(u.value),!r||t.length!==r);n=!0);}catch(e){o=!0,i=e}finally{try{n||null==a.return||a.return()}finally{if(o)throw i}}return t}(e,r)||function(e,r){if(!e)return;if("string"==typeof e)return u(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return u(e,r)}(e,r)||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 u(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}var a,c=(function(e){ /*! Copyright (c) 2018 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */ !function(){var r={}.hasOwnProperty;function t(){for(var e=[],n=0;n<arguments.length;n++){var o=arguments[n];if(o){var i=typeof o;if("string"===i||"number"===i)e.push(o);else if(Array.isArray(o)){if(o.length){var u=t.apply(null,o);u&&e.push(u)}}else if("object"===i)if(o.toString===Object.prototype.toString)for(var a in o)r.call(o,a)&&o[a]&&e.push(a);else e.push(o.toString())}}return e.join(" ")}e.exports?(t.default=t,e.exports=t):window.classNames=t}()}(a={exports:{}},a.exports),a.exports);process.env.NODE_ENV;var l="function"==typeof Symbol&&Symbol.for?Symbol.for("react.fragment"):60107,f={menuWrapper:{display:"flex",overflow:"hidden"}},s=function(r){var t=r.children,u=e.useRef(null),a=i(e.useState({}),2),s=a[0],p=a[1],y=i(e.useState(!1),2),b=y[0],d=y[1],v=function(e){return d(e)},m=e.useCallback((function(e){var r={};e.forEach((function(e){var t=e.target.dataset.targetid;e.isIntersecting?r[t]=!0:r[t]=!1})),p((function(e){return n(n({},e),r)}))}),[p]),g=e.useCallback((function(){var e=new IntersectionObserver(m,{root:u.current,threshold:1});return Array.from(u.current.children).forEach((function(r){r.dataset.targetid&&e.observe(r)})),e}),[]),h=e.useCallback((function(e){var r=e.target;return u&&u.current&&!u.current.contains(r)&&v(!1)}),[v]);e.useEffect((function(){var e=g();return document.addEventListener("click",h),function(){e.disconnect(),document.removeEventListener("click",h)}}),[]);var O=e.useMemo((function(){return Object.values(s).some((function(e){return!1===e}))}),[s]),j=function(e){return function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=r.id,i=o(r,["id"]);return n({"data-targetid":t,className:c({visible:"menu"===e&&!!s[t]||"overflowMenu"===e&&!s[t],inVisible:"menu"===e&&!s[t]||"overflowMenu"===e&&!!s[t]}),onClick:function(){return"overflowMenu"===e&&v(!1)}},i)}},w=e.useCallback((function(e){return e.type===l?e.props.children.filter((function(e){return e&&e.props["data-targetid"]})):e}),[]),S={getMenuProps:j("menu"),showEllipsis:O,children:e.Children.map(w(t({getMenuProps:j("overflowMenu")})),(function(r){return r&&r.props["data-targetid"]&&!s[r.props["data-targetid"]]?e.createElement(e.Fragment,{key:r},e.cloneElement(r,{onClick:function(){return v(!1)}})):null})),open:b,toggle:v};return e.createElement("div",{ref:u,style:f.menuWrapper},t(n({},S)))},p=e.memo(s);export default p; //# sourceMappingURL=react-responsive-menu.min.mjs.map