UNPKG

react-portal-hook

Version:
1 lines 4.3 kB
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define("react-portal-hook",["React","react-dom"],e):"object"==typeof exports?exports["react-portal-hook"]=e(require("react"),require("react-dom")):t["react-portal-hook"]=e(t.React,t["react-dom"])}(this,(function(t,e){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)r.d(n,o,function(e){return t[e]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=6)}([function(e,r){e.exports=t},function(t,e){t.exports=function(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}},function(t,e,r){var n=r(1);t.exports=function(t,e){if(t){if("string"==typeof t)return n(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(t,e):void 0}}},function(t,e,r){var n=r(7),o=r(8),i=r(2),u=r(9);t.exports=function(t){return n(t)||o(t)||i(t)||u()}},function(t,e,r){var n=r(10),o=r(11),i=r(2),u=r(12);t.exports=function(t,e){return n(t)||o(t,e)||i(t,e)||u()}},function(t,r){t.exports=e},function(t,e,r){t.exports=r(13)},function(t,e,r){var n=r(1);t.exports=function(t){if(Array.isArray(t))return n(t)}},function(t,e){t.exports=function(t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}},function(t,e){t.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},function(t,e){t.exports=function(t){if(Array.isArray(t))return t}},function(t,e){t.exports=function(t,e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t)){var r=[],n=!0,o=!1,i=void 0;try{for(var u,a=t[Symbol.iterator]();!(n=(u=a.next()).done)&&(r.push(u.value),!e||r.length!==e);n=!0);}catch(t){o=!0,i=t}finally{try{n||null==a.return||a.return()}finally{if(o)throw i}}return r}}},function(t,e){t.exports=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(t,e,r){"use strict";r.r(e);var n=r(3),o=r.n(n),i=r(4),u=r.n(i),a=r(0),c=r.n(a),f=r(5),l=r.n(f),d=function(){return Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15)},p=Object(a.createContext)(void 0),s=function(t){var e=t.children,r=Object(a.useState)([]),n=u()(r,2),i=n[0],f=n[1],s=function(t){f((function(e){return e.filter((function(e){return e.id!==t}))}))};return c.a.createElement(p.Provider,{value:{open:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.id,n=void 0===r?d():r,u=e.appendTo,a=void 0===u?document.body:u,c=e.onClose;if(!i.find((function(t){return t.id===n}))){if(!a)throw new Error("Trying to open a portal in a nonexistent DOM node");var l={close:function(){s(n),null==c||c()}},p="function"==typeof t?t(l):t,y={element:p,id:n,appendTo:a};f((function(t){return[].concat(o()(t),[y])}))}}}},e,i.map((function(t){var e=t.element,r=t.appendTo,n=t.id;return c.a.createElement(c.a.Fragment,{key:n},l.a.createPortal(e,r))})))},y=function(){var t=Object(a.useContext)(p);if(!t)throw new Error("usePortals must be used within a PortalProvider");return t};r.d(e,"PortalProvider",(function(){return s})),r.d(e,"Portal",(function(){})),r.d(e,"usePortals",(function(){return y}))}])}));