UNPKG

maxxton-loadable-component

Version:
2 lines (1 loc) 6.68 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("hoist-non-react-statics")):"function"==typeof define&&define.amd?define(["exports","react","hoist-non-react-statics"],t):t((e=e||self).loadable={},e.React,e.hoistNonReactStatics)}(this,(function(e,t,n){"use strict";function r(e,t){if(!e){var n=new Error("loadable: "+t);throw n.framesToPop=1,n.name="Invariant Violation",n}}function o(e){console.warn("loadable: "+e)}t=t&&t.hasOwnProperty("default")?t.default:t,n=n&&n.hasOwnProperty("default")?n.default:n;var a=t.createContext();function i(e){return e+"__LOADABLE_REQUIRED_CHUNKS__"}var s=Object.freeze({__proto__:null,getRequiredChunkKey:i,invariant:r,Context:a});function c(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function u(){return(u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(null,arguments)}function l(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function d(e,t){return(d=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}var f={initialChunks:{}};var h=function(e){return e};function p(e){var o=e.defaultResolveComponent,i=void 0===o?h:o,s=e.render,p=e.onLoad;function v(e,o){void 0===o&&(o={});var h=function(e){return"function"==typeof e?{requireAsync:e,resolve:function(){},chunkName:function(){}}:e}(e),v={};function y(e){return o.cacheKey?o.cacheKey(e):h.resolve?h.resolve(e):"static"}function m(e,t,r){var a=o.resolveComponent?o.resolveComponent(e,t):i(e);return n(r,a,{preload:!0}),a}var _,b,E=function(e){var t=y(e),n=v[t];return n&&"REJECTED"!==n.status||((n=h.requireAsync(e)).status="PENDING",v[t]=n,n.then((function(){n.status="RESOLVED"}),(function(t){console.error("loadable-components: failed to asynchronously load component",{fileName:h.resolve(e),chunkName:h.chunkName(e),error:t?t.message:t}),n.status="REJECTED"}))),n},g=function(e){var t,n;function a(t){var n;return(n=e.call(this,t)||this).state={result:null,error:null,loading:!0,cacheKey:y(t)},r(!t.__chunkExtractor||h.requireSync,"SSR requires `@loadable/babel-plugin`, please install it"),t.__chunkExtractor?!1===o.ssr?l(n):(h.requireAsync(t).catch((function(){return null})),n.loadSync(),t.__chunkExtractor.addChunk(h.chunkName(t)),l(n)):(!1!==o.ssr&&(h.isReady&&h.isReady(t)||h.chunkName&&f.initialChunks[h.chunkName(t)])&&n.loadSync(),n)}n=e,(t=a).prototype=Object.create(n.prototype),t.prototype.constructor=t,d(t,n),a.getDerivedStateFromProps=function(e,t){var n=y(e);return u({},t,{cacheKey:n,loading:t.loading||t.cacheKey!==n})};var i=a.prototype;return i.componentDidMount=function(){this.mounted=!0;var e=this.getCache();e&&"REJECTED"===e.status&&this.setCache(),this.state.loading&&this.loadAsync()},i.componentDidUpdate=function(e,t){t.cacheKey!==this.state.cacheKey&&this.loadAsync()},i.componentWillUnmount=function(){this.mounted=!1},i.safeSetState=function(e,t){this.mounted&&this.setState(e,t)},i.getCacheKey=function(){return y(this.props)},i.getCache=function(){return v[this.getCacheKey()]},i.setCache=function(e){void 0===e&&(e=void 0),v[this.getCacheKey()]=e},i.triggerOnLoad=function(){var e=this;p&&setTimeout((function(){p(e.state.result,e.props)}))},i.loadSync=function(){if(this.state.loading)try{var e=m(h.requireSync(this.props),this.props,R);this.state.result=e,this.state.loading=!1}catch(e){console.error("loadable-components: failed to synchronously load component, which expected to be available",{fileName:h.resolve(this.props),chunkName:h.chunkName(this.props),error:e?e.message:e}),this.state.error=e}},i.loadAsync=function(){var e=this,t=this.resolveAsync();return t.then((function(t){var n=m(t,e.props,R);e.safeSetState({result:n,loading:!1},(function(){return e.triggerOnLoad()}))})).catch((function(t){return e.safeSetState({error:t,loading:!1})})),t},i.resolveAsync=function(){var e=this.props,t=(e.__chunkExtractor,e.forwardedRef,c(e,["__chunkExtractor","forwardedRef"]));return E(t)},i.render=function(){var e=this.props,t=e.forwardedRef,n=e.fallback,r=(e.__chunkExtractor,c(e,["forwardedRef","fallback","__chunkExtractor"])),a=this.state,i=a.error,l=a.loading,d=a.result;if(o.suspense&&"PENDING"===(this.getCache()||this.loadAsync()).status)throw this.loadAsync();if(i)throw i;var f=n||o.fallback||null;return l?f:s({fallback:f,result:d,options:o,props:u({},r,{ref:t})})},a}(t.Component),w=(b=function(e){return t.createElement(a.Consumer,null,(function(n){return t.createElement(_,Object.assign({__chunkExtractor:n},e))}))},(_=g).displayName&&(b.displayName=_.displayName+"WithChunkExtractor"),b),R=t.forwardRef((function(e,n){return t.createElement(w,Object.assign({forwardedRef:n},e))}));return R.displayName="Loadable",R.preload=function(e){R.load(e)},R.load=function(e){return E(e)},R}return{loadable:v,lazy:function(e,t){return v(e,u({},t,{suspense:!0}))}}}var v=p({defaultResolveComponent:function(e){return e.__esModule?e.default:e.default||e},render:function(e){var n=e.result,r=e.props;return t.createElement(n,r)}}),y=v.loadable,m=v.lazy,_=p({onLoad:function(e,t){e&&t.forwardedRef&&("function"==typeof t.forwardedRef?t.forwardedRef(e):t.forwardedRef.current=e)},render:function(e){var t=e.result,n=e.props;return n.children?n.children(t):null}}),b=_.loadable,E=_.lazy,g="undefined"!=typeof window;var w=y;w.lib=b;var R=m;R.lib=E;var C=s;e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=C,e.default=w,e.lazy=R,e.loadableReady=function(e,t){void 0===e&&(e=function(){});var n=void 0===t?{}:t,r=n.namespace,a=void 0===r?"":r,s=n.chunkLoadingGlobal,c=void 0===s?"__LOADABLE_LOADED_CHUNKS__":s;if(!g)return o("`loadableReady()` must be called in browser only"),e(),Promise.resolve();var u=null;if(g){var l=i(a),d=document.getElementById(l);if(d){u=JSON.parse(d.textContent);var h=document.getElementById(l+"_ext");if(!h)throw new Error("loadable-component: @loadable/server does not match @loadable/component");JSON.parse(h.textContent).namedChunks.forEach((function(e){f.initialChunks[e]=!0}))}}if(!u)return o("`loadableReady()` requires state, please use `getScriptTags` or `getScriptElements` server-side"),e(),Promise.resolve();var p=!1;return new Promise((function(e){window[c]=window[c]||[];var t=window[c],n=t.push.bind(t);function r(){u.every((function(e){return t.some((function(t){return t[0].indexOf(e)>-1}))}))&&(p||(p=!0,e()))}t.push=function(){n.apply(void 0,arguments),r()},r()})).then(e)},Object.defineProperty(e,"__esModule",{value:!0})}));