UNPKG

react-responsive-menu-hook

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