single-spa
Advanced tools
Comparing version 4.0.1 to 4.0.2
@@ -1,2 +0,2 @@ | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("singleSpa",[],t):"object"==typeof exports?exports.singleSpa=t():e.singleSpa=t()}(window,function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=21)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isActive=s,t.isntActive=function(e){return!s(e)},t.isLoaded=l,t.isntLoaded=function(e){return!l(e)},t.shouldBeActive=function(e){try{return e.activeWhen(window.location)}catch(t){(0,r.handleAppError)(t,e),e.status=c}},t.shouldntBeActive=function(e){try{return!e.activeWhen(window.location)}catch(t){(0,r.handleAppError)(t,e),e.status=c}},t.notBootstrapped=function(e){return e.status!==u},t.notSkipped=function(e){return e!==c&&(!e||e.status!==c)},t.toName=function(e){return e.name},t.SKIP_BECAUSE_BROKEN=t.UNLOADING=t.UNMOUNTING=t.UPDATING=t.MOUNTED=t.MOUNTING=t.NOT_MOUNTED=t.BOOTSTRAPPING=t.NOT_BOOTSTRAPPED=t.LOADING_SOURCE_CODE=t.NOT_LOADED=void 0;var r=n(1);!function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};r.get||r.set?Object.defineProperty(t,n,r):t[n]=e[n]}t.default=e}(n(9));var o="NOT_LOADED";t.NOT_LOADED=o;var i="LOADING_SOURCE_CODE";t.LOADING_SOURCE_CODE=i;var u="NOT_BOOTSTRAPPED";t.NOT_BOOTSTRAPPED=u;t.BOOTSTRAPPING="BOOTSTRAPPING";t.NOT_MOUNTED="NOT_MOUNTED";t.MOUNTING="MOUNTING";var a="MOUNTED";t.MOUNTED=a;t.UPDATING="UPDATING";t.UNMOUNTING="UNMOUNTING";t.UNLOADING="UNLOADING";var c="SKIP_BECAUSE_BROKEN";function s(e){return e.status===a}function l(e){return e.status!==o&&e.status!==i}t.SKIP_BECAUSE_BROKEN=c},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.handleAppError=function(e,t){var n=i(e,t);o.length?o.forEach(function(e){return e(n)}):setTimeout(function(){throw n})},t.addErrorHandler=function(e){if("function"!=typeof e)throw new Error("a single-spa error handler must be a function");o.push(e)},t.removeErrorHandler=function(e){if("function"!=typeof e)throw new Error("a single-spa error handler must be a function");var t=!1;return o=o.filter(function(n){var r=n===e;return t=t||r,!r}),t},t.transformErr=i;var r;(r=n(8))&&r.__esModule;var o=[];function i(e,t){var n,r=t.unmountThisParcel?"Parcel":"Application",o="".concat(r," '").concat(t.name,"' died in status ").concat(t.status,": ");if(e instanceof Error){try{e.message=o+e.message}catch(e){}n=e}else{console.warn("While ".concat(t.status,", '").concat(t.name,"' rejected its lifecycle function promise with a non-Error. This will cause stack traces to not be accurate."));try{n=new Error(o+JSON.stringify(e))}catch(t){n=e}}return n.appName=t.name,n.name=t.name,n}},function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(t,"__esModule",{value:!0}),t.setBootstrapMaxTime=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if("number"!=typeof e||e<=0)throw new Error("bootstrap max time must be a positive integer number of milliseconds");o.bootstrap={millis:e,dieOnTimeout:t}},t.setMountMaxTime=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if("number"!=typeof e||e<=0)throw new Error("mount max time must be a positive integer number of milliseconds");o.mount={millis:e,dieOnTimeout:t}},t.setUnmountMaxTime=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if("number"!=typeof e||e<=0)throw new Error("unmount max time must be a positive integer number of milliseconds");o.unmount={millis:e,dieOnTimeout:t}},t.setUnloadMaxTime=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if("number"!=typeof e||e<=0)throw new Error("unload max time must be a positive integer number of milliseconds");o.unload={millis:e,dieOnTimeout:t}},t.reasonableTime=function(e,t,n){var r=1e3;return new Promise(function(o,i){var u=!1,a=!1;function c(e){if(!u)if(!0===e)a=!0,n.dieOnTimeout?i("".concat(t," did not resolve or reject for ").concat(n.millis," milliseconds")):console.error("".concat(t," did not resolve or reject for ").concat(n.millis," milliseconds -- we're no longer going to warn you about it."));else if(!a){var o=e,s=o*r;console.warn("".concat(t," did not resolve or reject within ").concat(s," milliseconds")),s+r<n.millis&&setTimeout(function(){return c(o+1)},r)}}e.then(function(e){u=!0,o(e)}).catch(function(e){u=!0,i(e)}),setTimeout(function(){return c(1)},r),setTimeout(function(){return c(!0)},n.millis)})},t.ensureValidAppTimeouts=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),o.forEach(function(t){r(e,t,n[t])})}return e}({},o,e)};var o={bootstrap:{millis:4e3,dieOnTimeout:!1},mount:{millis:3e3,dieOnTimeout:!1},unmount:{millis:3e3,dieOnTimeout:!1},unload:{millis:3e3,dieOnTimeout:!1}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getProps=function(e){var t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){i(e,t,n[t])})}return e}({},e.customProps,{name:e.name,mountParcel:o.mountParcel.bind(e),singleSpa:r});e.unmountThisParcel&&(t.unmountSelf=e.unmountThisParcel);return t};var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};r.get||r.set?Object.defineProperty(t,n,r):t[n]=e[n]}return t.default=e,t}(n(9)),o=n(15);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.find=function(e,t){for(var n=0;n<e.length;n++)if(t(e[n]))return e[n];return null}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.reroute=function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];var n=arguments.length>1?arguments[1]:void 0;if(d)return new Promise(function(e,t){m.push({resolve:e,reject:t,eventArguments:n})});d=!0;var r=!0;return(0,i.isStarted)()?Promise.resolve().then(function(){var e;n&&n[0]&&(e={detail:n[0]}),window.dispatchEvent(new o.default("single-spa:before-routing-event",e));var i=(0,p.getAppsToUnload)().map(p.toUnloadPromise),f=(0,l.getAppsToUnmount)().map(s.toUnmountPromise).map(function(e){return e.then(p.toUnloadPromise)}),d=f.concat(i);d.length>0&&(r=!1);var m=Promise.all(d),O=(0,l.getAppsToLoad)(),b=O.map(function(e){return(0,u.toLoadPromise)(e).then(a.toBootstrapPromise).then(function(e){return m.then(function(){return(0,c.toMountPromise)(e)})})});b.length>0&&(r=!1);var y=(0,l.getAppsToMount)().filter(function(e){return O.indexOf(e)<0}).map(function(e){return(0,a.toBootstrapPromise)(e).then(function(){return m}).then(function(){return(0,c.toMountPromise)(e)})});return y.length>0&&(r=!1),m.catch(function(e){throw v(),e}).then(function(){return v(),Promise.all(b.concat(y)).catch(function(e){throw t.forEach(function(t){return t.reject(e)}),e}).then(function(){return h(!1)})})}):Promise.resolve().then(function(){var e=(0,l.getAppsToLoad)().map(u.toLoadPromise);return e.length>0&&(r=!1),Promise.all(e).then(h).catch(function(e){throw v(),e})});function h(){var n=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],i=(0,l.getMountedApps)();n&&v(),t.forEach(function(e){return e.resolve(i)});try{var u=r?"single-spa:no-app-change":"single-spa:app-change";window.dispatchEvent(new o.default(u)),window.dispatchEvent(new o.default("single-spa:routing-event"))}catch(e){setTimeout(function(){throw e})}if(d=!1,m.length>0){var a=m;m=[],e(a)}return i}function v(){t.forEach(function(e){(0,f.callCapturedEventListeners)(e.eventArguments)}),(0,f.callCapturedEventListeners)(n)}};var r,o=(r=n(8))&&r.__esModule?r:{default:r},i=n(17),u=n(19),a=n(14),c=n(13),s=n(7),l=n(12),f=(n(0),n(6)),p=n(10);var d=!1,m=[]},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.navigateToUrl=a,t.callCapturedEventListeners=function(e){var t=this;if(e){var n=e[0].type;u.indexOf(n)>=0&&i[n].forEach(function(n){n.apply(t,e)})}},t.routingEventsListeningTo=void 0;var r=n(5),o=n(4),i={hashchange:[],popstate:[]},u=["hashchange","popstate"];function a(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"==typeof e)t=e;else if(this&&this.href)t=this.href;else{if(!(e&&e.currentTarget&&e.currentTarget.href&&e.preventDefault))throw new Error("singleSpaNavigate must be either called with a string url, with an <a> tag as its context, or with an event whose currentTarget is an <a> tag");t=e.currentTarget.href,e.preventDefault()}var r=d(window.location.href),o=d(t);if(0===t.indexOf("#"))window.location.hash="#"+o.anchor;else if(r.host!==o.host&&o.host){if(n.isTestingEnv)return{wouldHaveReloadedThePage:!0};window.location.href=t}else!function(e,t){return t===e||t==="/"+e}(o.path,r.path)?window.history.pushState(null,null,t):window.location.hash="#"+o.anchor}function c(){(0,r.reroute)([],arguments)}t.routingEventsListeningTo=u,window.addEventListener("hashchange",c),window.addEventListener("popstate",c);var s=window.addEventListener,l=window.removeEventListener;window.addEventListener=function(e,t){if(!("function"==typeof t&&u.indexOf(e)>=0)||(0,o.find)(i[e],function(e){return e===t}))return s.apply(this,arguments);i[e].push(t)},window.removeEventListener=function(e,t){if(!("function"==typeof t&&u.indexOf(e)>=0))return l.apply(this,arguments);i[e]=i[e].filter(function(e){return e!==t})};var f=window.history.pushState;window.history.pushState=function(e){var t=f.apply(this,arguments);return(0,r.reroute)(),t};var p=window.history.replaceState;function d(e){for(var t={strictMode:!0,key:["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],q:{name:"queryKey",parser:/(?:^|&)([^&=]*)=?([^&]*)/g},parser:{strict:/^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,loose:/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/}},n=t.parser[t.strictMode?"strict":"loose"].exec(e),r={},o=14;o--;)r[t.key[o]]=n[o]||"";return r[t.q.name]={},r[t.key[12]].replace(t.q.parser,function(e,n,o){n&&(r[t.q.name][n]=o)}),r}window.history.replaceState=function(){var e=p.apply(this,arguments);return(0,r.reroute)(),e},window.singleSpaNavigate=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toUnmountPromise=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return Promise.resolve().then(function(){if(e.status!==r.MOUNTED)return e;e.status=r.UNMOUNTING;var n,a=Object.keys(e.parcels).map(function(t){return e.parcels[t].unmountThisParcel()});return Promise.all(a).then(c,function(n){return c().then(function(){var i=new Error(n.message);if(t){var u=(0,o.transformErr)(i,e);throw e.status=r.SKIP_BECAUSE_BROKEN,u}(0,o.handleAppError)(i,e),e.status=r.SKIP_BECAUSE_BROKEN})}).then(function(){return e});function c(){return(0,i.reasonableTime)(e.unmount((0,u.getProps)(e)),"Unmounting application ".concat(e.name,"'"),e.timeouts.unmount).then(function(){n||(e.status=r.NOT_MOUNTED)}).catch(function(n){if(t){var i=(0,o.transformErr)(n,e);throw e.status=r.SKIP_BECAUSE_BROKEN,i}(0,o.handleAppError)(n,e),e.status=r.SKIP_BECAUSE_BROKEN})}})};var r=n(0),o=n(1),i=n(2),u=n(3)},function(e,t,n){(function(t){var n=t.CustomEvent;e.exports=function(){try{var e=new n("cat",{detail:{foo:"bar"}});return"cat"===e.type&&"bar"===e.detail.foo}catch(e){}return!1}()?n:"undefined"!=typeof document&&"function"==typeof document.createEvent?function(e,t){var n=document.createEvent("CustomEvent");return t?n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail):n.initCustomEvent(e,!1,!1,void 0),n}:function(e,t){var n=document.createEventObject();return n.type=e,t?(n.bubbles=Boolean(t.bubbles),n.cancelable=Boolean(t.cancelable),n.detail=t.detail):(n.bubbles=!1,n.cancelable=!1,n.detail=void 0),n}}).call(this,n(20))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"start",{enumerable:!0,get:function(){return r.start}}),Object.defineProperty(t,"ensureJQuerySupport",{enumerable:!0,get:function(){return o.ensureJQuerySupport}}),Object.defineProperty(t,"setBootstrapMaxTime",{enumerable:!0,get:function(){return i.setBootstrapMaxTime}}),Object.defineProperty(t,"setMountMaxTime",{enumerable:!0,get:function(){return i.setMountMaxTime}}),Object.defineProperty(t,"setUnmountMaxTime",{enumerable:!0,get:function(){return i.setUnmountMaxTime}}),Object.defineProperty(t,"setUnloadMaxTime",{enumerable:!0,get:function(){return i.setUnloadMaxTime}}),Object.defineProperty(t,"registerApplication",{enumerable:!0,get:function(){return u.registerApplication}}),Object.defineProperty(t,"getMountedApps",{enumerable:!0,get:function(){return u.getMountedApps}}),Object.defineProperty(t,"getAppStatus",{enumerable:!0,get:function(){return u.getAppStatus}}),Object.defineProperty(t,"unloadApplication",{enumerable:!0,get:function(){return u.unloadApplication}}),Object.defineProperty(t,"checkActivityFunctions",{enumerable:!0,get:function(){return u.checkActivityFunctions}}),Object.defineProperty(t,"getAppNames",{enumerable:!0,get:function(){return u.getAppNames}}),Object.defineProperty(t,"declareChildApplication",{enumerable:!0,get:function(){return u.declareChildApplication}}),Object.defineProperty(t,"unloadChildApplication",{enumerable:!0,get:function(){return u.unloadChildApplication}}),Object.defineProperty(t,"navigateToUrl",{enumerable:!0,get:function(){return a.navigateToUrl}}),Object.defineProperty(t,"triggerAppChange",{enumerable:!0,get:function(){return c.reroute}}),Object.defineProperty(t,"addErrorHandler",{enumerable:!0,get:function(){return s.addErrorHandler}}),Object.defineProperty(t,"removeErrorHandler",{enumerable:!0,get:function(){return s.removeErrorHandler}}),Object.defineProperty(t,"mountRootParcel",{enumerable:!0,get:function(){return l.mountRootParcel}}),Object.defineProperty(t,"NOT_LOADED",{enumerable:!0,get:function(){return f.NOT_LOADED}}),Object.defineProperty(t,"LOADING_SOURCE_CODE",{enumerable:!0,get:function(){return f.LOADING_SOURCE_CODE}}),Object.defineProperty(t,"NOT_BOOTSTRAPPED",{enumerable:!0,get:function(){return f.NOT_BOOTSTRAPPED}}),Object.defineProperty(t,"BOOTSTRAPPING",{enumerable:!0,get:function(){return f.BOOTSTRAPPING}}),Object.defineProperty(t,"NOT_MOUNTED",{enumerable:!0,get:function(){return f.NOT_MOUNTED}}),Object.defineProperty(t,"MOUNTING",{enumerable:!0,get:function(){return f.MOUNTING}}),Object.defineProperty(t,"UPDATING",{enumerable:!0,get:function(){return f.UPDATING}}),Object.defineProperty(t,"MOUNTED",{enumerable:!0,get:function(){return f.MOUNTED}}),Object.defineProperty(t,"UNMOUNTING",{enumerable:!0,get:function(){return f.UNMOUNTING}}),Object.defineProperty(t,"SKIP_BECAUSE_BROKEN",{enumerable:!0,get:function(){return f.SKIP_BECAUSE_BROKEN}});var r=n(17),o=n(11),i=n(2),u=n(12),a=n(6),c=n(5),s=n(1),l=n(15),f=n(0)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toUnloadPromise=function(e){return Promise.resolve().then(function(){var t=a[e.name];return t?e.status===r.NOT_LOADED?(c(e,t),e):e.status===r.UNLOADING?t.promise.then(function(){return e}):e.status!==r.NOT_MOUNTED?e:(e.status=r.UNLOADING,(0,i.reasonableTime)(e.unload((0,u.getProps)(e)),"Unloading application '".concat(e.name,"'"),e.timeouts.unload).then(function(){return c(e,t),e}).catch(function(n){return function(e,t,n){delete a[e.name],delete e.bootstrap,delete e.mount,delete e.unmount,delete e.unload,(0,o.handleAppError)(n,e),e.status=r.SKIP_BECAUSE_BROKEN,t.reject(n)}(e,t,n),e})):e})},t.addAppToUnload=function(e,t,n,r){a[e.name]={app:e,resolve:n,reject:r},Object.defineProperty(a[e.name],"promise",{get:t})},t.getAppUnloadInfo=function(e){return a[e]},t.getAppsToUnload=function(){return Object.keys(a).map(function(e){return a[e].app}).filter(r.isntActive)};var r=n(0),o=n(1),i=n(2),u=n(3),a={};function c(e,t){delete a[e.name],delete e.bootstrap,delete e.mount,delete e.unmount,delete e.unload,e.status=r.NOT_LOADED,t.resolve()}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ensureJQuerySupport=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.jQuery;e||window.$&&window.$.fn&&window.$.fn.jquery&&(e=window.$);if(e&&!o){var t=e.fn.on,n=e.fn.off;e.fn.on=function(e,n){return i.call(this,t,window.addEventListener,e,n,arguments)},e.fn.off=function(e,t){return i.call(this,n,window.removeEventListener,e,t,arguments)},o=!0}};var r=n(6),o=!1;function i(e,t,n,o,i){return"string"!=typeof n?e.apply(this,i):(n.split(/\s+/).forEach(function(e){r.routingEventsListeningTo.indexOf(e)>=0&&(t(e,o),n=n.replace(e,""))}),""===n.trim()?this:e.apply(this,i))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getMountedApps=function(){return l.filter(o.isActive).map(o.toName)},t.getAppNames=f,t.getAppStatus=function(e){var t=(0,u.find)(l,function(t){return t.name===e});return t?t.status:null},t.declareChildApplication=function(e,t,n){return console.warn('declareChildApplication is deprecated and will be removed in the next major version, use "registerApplication" instead'),p(e,t,n)},t.registerApplication=p,t.checkActivityFunctions=function(e){for(var t=[],n=0;n<l.length;n++)l[n].activeWhen(e)&&t.push(l[n].name);return t},t.getAppsToLoad=function(){return l.filter(o.notSkipped).filter(o.isntLoaded).filter(o.shouldBeActive)},t.getAppsToUnmount=function(){return l.filter(o.notSkipped).filter(o.isActive).filter(o.shouldntBeActive)},t.getAppsToMount=function(){return l.filter(o.notSkipped).filter(o.isntActive).filter(o.isLoaded).filter(o.shouldBeActive)},t.unloadChildApplication=function(e,t){return console.warn('unloadChildApplication is deprecated and will be removed in the next major version, use "unloadApplication" instead'),d(e,t)},t.unloadApplication=d;var r=n(11),o=n(0),i=n(5),u=n(4),a=n(7),c=n(10);function s(e){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var l=[];function f(){return l.map(o.toName)}function p(e,t,n){var u,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if("string"!=typeof e||0===e.length)throw new Error("The first argument must be a non-empty string 'appName'");if(-1!==f().indexOf(e))throw new Error("There is already an app declared with name ".concat(e));if("object"!==s(a)||Array.isArray(a))throw new Error("customProps must be an object");if(!t)throw new Error("The application or loading function is required");if(u="function"!=typeof t?function(){return Promise.resolve(t)}:t,"function"!=typeof n)throw new Error("The activeWhen argument must be a function");l.push({name:e,loadImpl:u,activeWhen:n,status:o.NOT_LOADED,parcels:{},customProps:a}),(0,r.ensureJQuerySupport)(),(0,i.reroute)()}function d(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{waitForUnmount:!1};if("string"!=typeof e)throw new Error("unloadApplication requires a string 'appName'");var n=(0,u.find)(l,function(t){return t.name===e});if(!n)throw new Error("Could not unload application '".concat(e,"' because no such application has been declared"));var r,o=(0,c.getAppUnloadInfo)(n.name);if(t&&t.waitForUnmount){if(o)return o.promise;var i=new Promise(function(e,t){(0,c.addAppToUnload)(n,function(){return i},e,t)});return i}return o?(r=o.promise,m(n,o.resolve,o.reject)):r=new Promise(function(e,t){(0,c.addAppToUnload)(n,function(){return r},e,t),m(n,e,t)}),r}function m(e,t,n){(0,a.toUnmountPromise)(e).then(c.toUnloadPromise).then(function(){t(),setTimeout(function(){(0,i.reroute)()})}).catch(n)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toMountPromise=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return Promise.resolve().then(function(){return e.status!==o.NOT_MOUNTED?e:(s||(window.dispatchEvent(new a.default("single-spa:before-first-mount")),s=!0),(0,u.reasonableTime)(e.mount((0,c.getProps)(e)),"Mounting application '".concat(e.name,"'"),e.timeouts.mount).then(function(){return e.status=o.MOUNTED,l||(window.dispatchEvent(new a.default("single-spa:first-mount")),l=!0),e}).catch(function(n){if(t){var r=(0,i.transformErr)(n,e);throw e.status=o.SKIP_BECAUSE_BROKEN,r}return(0,i.handleAppError)(n,e),e.status=o.SKIP_BECAUSE_BROKEN,e}))})};var r,o=n(0),i=n(1),u=n(2),a=(r=n(8))&&r.__esModule?r:{default:r},c=n(3);var s=!1,l=!1},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toBootstrapPromise=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return Promise.resolve().then(function(){return e.status!==r.NOT_BOOTSTRAPPED?e:(e.status=r.BOOTSTRAPPING,(0,o.reasonableTime)(e.bootstrap((0,u.getProps)(e)),"Bootstrapping appOrParcel '".concat(e.name,"'"),e.timeouts.bootstrap).then(function(){return e.status=r.NOT_MOUNTED,e}).catch(function(n){if(e.status=r.SKIP_BECAUSE_BROKEN,t){var o=(0,i.transformErr)(n,e);throw o}return(0,i.handleAppError)(n,e),e}))})};var r=n(0),o=n(2),i=n(1),u=n(3)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.mountRootParcel=function(){return d.apply(p,arguments)},t.mountParcel=d;var r=n(16),o=n(0),i=n(14),u=n(13),a=n(18),c=n(7),s=n(2);n(1);function l(e){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var f=0,p={parcels:{}};function d(e,t){var n=this;if(!e||"object"!==l(e)&&"function"!=typeof e)throw new Error("Cannot mount parcel without a config object or config loading function");if(e.name&&"string"!=typeof e.name)throw new Error("Parcel name must be a string, if provided");if("object"!==l(t))throw new Error("Parcel ".concat(name," has invalid customProps -- must be an object"));if(!t.domElement)throw new Error("Parcel ".concat(name," cannot be mounted without a domElement provided as a prop"));var p,d=f++,h="function"==typeof e,v=h?e:function(){return Promise.resolve(e)},O={id:d,parcels:{},status:h?o.LOADING_SOURCE_CODE:o.NOT_BOOTSTRAPPED,customProps:t,owningAppOrParcel:n,unmountThisParcel:function(){if(O.status!==o.MOUNTED)throw new Error("Cannot unmount parcel '".concat(name,"' -- it is in a ").concat(O.status," status"));return(0,c.toUnmountPromise)(O,!0).then(function(e){return O.owningAppOrParcel&&delete O.owningAppOrParcel.parcels[O.id],e}).then(function(e){return y(e),e}).catch(function(e){throw O.status=o.SKIP_BECAUSE_BROKEN,P(e),e})}};n.parcels[d]=O;var b=v();if(!b||"function"!=typeof b.then)throw new Error("When mounting a parcel, the config loading function must return a promise that resolves with the parcel config");var y,P,g=(b=b.then(function(e){if(!e)throw new Error("When mounting a parcel, the config loading function returned a promise that did not resolve with a parcel config");var t=e.name||"parcel-".concat(d);if(!(0,r.validLifecycleFn)(e.bootstrap))throw new Error("Parcel ".concat(t," must have a valid bootstrap function"));if(!(0,r.validLifecycleFn)(e.mount))throw new Error("Parcel ".concat(t," must have a valid mount function"));if(!(0,r.validLifecycleFn)(e.unmount))throw new Error("Parcel ".concat(t," must have a valid unmount function"));if(e.update&&!(0,r.validLifecycleFn)(e.update))throw new Error("Parcel ".concat(t," provided an invalid update function"));var n=(0,r.flattenFnArray)(e.bootstrap),i=(0,r.flattenFnArray)(e.mount),u=(0,r.flattenFnArray)(e.unmount);O.status=o.NOT_BOOTSTRAPPED,O.name=t,O.bootstrap=n,O.mount=i,O.unmount=u,O.timeouts=(0,s.ensureValidAppTimeouts)(O),e.update&&(O.update=(0,r.flattenFnArray)(e.update),p.update=function(e){return O.customProps=e,m((0,a.toUpdatePromise)(O))})})).then(function(){return(0,i.toBootstrapPromise)(O,!0)}),E=g.then(function(){return(0,u.toMountPromise)(O,!0)}),w=new Promise(function(e,t){y=e,P=t});return p={mount:function(){return m(Promise.resolve().then(function(){if(O.status!==o.NOT_MOUNTED)throw new Error("Cannot mount parcel '".concat(name,"' -- it is in a ").concat(O.status," status"));return n.parcels[d]=O,(0,u.toMountPromise)(O)}))},unmount:function(){return m(O.unmountThisParcel())},getStatus:function(){return O.status},loadPromise:m(b),bootstrapPromise:m(g),mountPromise:m(E),unmountPromise:m(w)}}function m(e){return e.then(function(){return null})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validLifecycleFn=function(e){return e&&("function"==typeof e||(t=e,Array.isArray(t)&&!(0,r.find)(t,function(e){return"function"!=typeof e})));var t},t.flattenFnArray=function(e,t){0===(e=Array.isArray(e)?e:[e]).length&&(e=[function(){return Promise.resolve()}]);return function(n){return new Promise(function(r,i){!function u(a){var c=e[a](n);o(c)?c.then(function(){a===e.length-1?r():u(a+1)}).catch(i):i("".concat(t," at index ").concat(a," did not return a promise"))}(0)})}},t.smellsLikeAPromise=o;var r=n(4);function o(e){return e&&"function"==typeof e.then&&"function"==typeof e.catch}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.start=function(){t.started=o=!0,(0,r.reroute)()},t.isStarted=function(){return o},t.started=void 0;var r=n(5),o=!1;t.started=o;setTimeout(function(){o||console.warn("singleSpa.start() has not been called, ".concat(5e3,"ms after single-spa was loaded. Before start() is called, apps can be declared and loaded, but not bootstrapped or mounted. See https://github.com/CanopyTax/single-spa/blob/master/docs/single-spa-api.md#start"))},5e3)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toUpdatePromise=function(e){return Promise.resolve().then(function(){if(e.status!==r.MOUNTED)throw new Error("Cannot update parcel '".concat(e.name,"' because it is not mounted"));return e.status=r.UPDATING,(0,i.reasonableTime)(e.update((0,u.getProps)(e)),"Updating parcel '".concat(e.name,"'"),e.timeouts.mount).then(function(){return e.status=r.MOUNTED,e}).catch(function(t){var n=(0,o.transformErr)(t,e);throw e.status=r.SKIP_BECAUSE_BROKEN,n})})};var r=n(0),o=n(1),i=n(2),u=n(3)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toLoadPromise=function(e){return Promise.resolve().then(function(){return e.status!==r.NOT_LOADED?e:(e.status=r.LOADING_SOURCE_CODE,Promise.resolve().then(function(){var n=e.loadImpl((0,a.getProps)(e));if(!(0,u.smellsLikeAPromise)(n))throw new Error("single-spa loading function did not return a promise. Check the second argument to registerApplication('".concat(e.name,"', loadingFunction, activityFunction)"));return n.then(function(n){var a;return"object"!==c(t=n)&&(a="does not export anything"),(0,u.validLifecycleFn)(t.bootstrap)||(a="does not export a bootstrap function or array of functions"),(0,u.validLifecycleFn)(t.mount)||(a="does not export a mount function or array of functions"),(0,u.validLifecycleFn)(t.unmount)||(a="does not export an unmount function or array of functions"),a?((0,i.handleAppError)(a,e),e.status=r.SKIP_BECAUSE_BROKEN,e):(e.status=r.NOT_BOOTSTRAPPED,e.bootstrap=(0,u.flattenFnArray)(t.bootstrap,"App '".concat(e.name,"' bootstrap function")),e.mount=(0,u.flattenFnArray)(t.mount,"App '".concat(e.name,"' mount function")),e.unmount=(0,u.flattenFnArray)(t.unmount,"App '".concat(e.name,"' unmount function")),e.unload=(0,u.flattenFnArray)(t.unload||[],"App '".concat(e.name,"' unload function")),e.timeouts=(0,o.ensureValidAppTimeouts)(t.timeouts),e)})}).catch(function(t){return(0,i.handleAppError)(t,e),e.status=r.SKIP_BECAUSE_BROKEN,e}));var t})};var r=n(0),o=n(2),i=n(1),u=(n(4),n(16)),a=n(3);function c(e){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}},function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){e.exports=n(9)}])}); | ||
!function(n,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("singleSpa",[],t):"object"==typeof exports?exports.singleSpa=t():n.singleSpa=t()}(window,function(){return function(n){var t={};function e(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return n[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}return e.m=n,e.c=t,e.d=function(n,t,r){e.o(n,t)||Object.defineProperty(n,t,{enumerable:!0,get:r})},e.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},e.t=function(n,t){if(1&t&&(n=e(n)),8&t)return n;if(4&t&&"object"==typeof n&&n&&n.__esModule)return n;var r=Object.create(null);if(e.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var o in n)e.d(r,o,function(t){return n[t]}.bind(null,o));return r},e.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return e.d(t,"a",t),t},e.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},e.p="",e(e.s=1)}([function(n,t,e){(function(t){var e=t.CustomEvent;n.exports=function(){try{var n=new e("cat",{detail:{foo:"bar"}});return"cat"===n.type&&"bar"===n.detail.foo}catch(n){}return!1}()?e:"undefined"!=typeof document&&"function"==typeof document.createEvent?function(n,t){var e=document.createEvent("CustomEvent");return t?e.initCustomEvent(n,t.bubbles,t.cancelable,t.detail):e.initCustomEvent(n,!1,!1,void 0),e}:function(n,t){var e=document.createEventObject();return e.type=n,t?(e.bubbles=Boolean(t.bubbles),e.cancelable=Boolean(t.cancelable),e.detail=t.detail):(e.bubbles=!1,e.cancelable=!1,e.detail=void 0),e}}).call(this,e(2))},function(n,t,e){n.exports=e(3)},function(n,t){var e;e=function(){return this}();try{e=e||new Function("return this")()}catch(n){"object"==typeof window&&(e=window)}n.exports=e},function(n,t,e){"use strict";e.r(t);var r={};e.r(r),e.d(r,"getAppData",function(){return Rn});var o={};e.r(o),e.d(o,"start",function(){return Gn}),e.d(o,"ensureJQuerySupport",function(){return vn}),e.d(o,"setBootstrapMaxTime",function(){return M}),e.d(o,"setMountMaxTime",function(){return I}),e.d(o,"setUnmountMaxTime",function(){return C}),e.d(o,"setUnloadMaxTime",function(){return L}),e.d(o,"registerApplication",function(){return jn}),e.d(o,"getMountedApps",function(){return Tn}),e.d(o,"getAppStatus",function(){return An}),e.d(o,"unloadApplication",function(){return Dn}),e.d(o,"checkActivityFunctions",function(){return _n}),e.d(o,"getAppNames",function(){return Sn}),e.d(o,"declareChildApplication",function(){return Nn}),e.d(o,"unloadChildApplication",function(){return Un}),e.d(o,"navigateToUrl",function(){return an}),e.d(o,"triggerAppChange",function(){return Ln}),e.d(o,"addErrorHandler",function(){return s}),e.d(o,"removeErrorHandler",function(){return f}),e.d(o,"mountRootParcel",function(){return X}),e.d(o,"NOT_LOADED",function(){return p}),e.d(o,"LOADING_SOURCE_CODE",function(){return d}),e.d(o,"NOT_BOOTSTRAPPED",function(){return m}),e.d(o,"BOOTSTRAPPING",function(){return h}),e.d(o,"NOT_MOUNTED",function(){return v}),e.d(o,"MOUNTING",function(){return w}),e.d(o,"UPDATING",function(){return b}),e.d(o,"MOUNTED",function(){return y}),e.d(o,"UNMOUNTING",function(){return g}),e.d(o,"SKIP_BECAUSE_BROKEN",function(){return E});var i=e(0),u=e.n(i),a=[];function c(n,t){var e=l(n,t);a.length?a.forEach(function(n){return n(e)}):setTimeout(function(){throw e})}function s(n){if("function"!=typeof n)throw new Error("a single-spa error handler must be a function");a.push(n)}function f(n){if("function"!=typeof n)throw new Error("a single-spa error handler must be a function");var t=!1;return a=a.filter(function(e){var r=e===n;return t=t||r,!r}),t}function l(n,t){var e,r=t.unmountThisParcel?"Parcel":"Application",o="".concat(r," '").concat(t.name,"' died in status ").concat(t.status,": ");if(n instanceof Error){try{n.message=o+n.message}catch(n){}e=n}else{console.warn("While ".concat(t.status,", '").concat(t.name,"' rejected its lifecycle function promise with a non-Error. This will cause stack traces to not be accurate."));try{e=new Error(o+JSON.stringify(n))}catch(t){e=n}}return e.appName=t.name,e.name=t.name,e}var p="NOT_LOADED",d="LOADING_SOURCE_CODE",m="NOT_BOOTSTRAPPED",h="BOOTSTRAPPING",v="NOT_MOUNTED",w="MOUNTING",y="MOUNTED",b="UPDATING",g="UNMOUNTING",O="UNLOADING",E="SKIP_BECAUSE_BROKEN";function P(n){return n.status===y}function T(n){return!P(n)}function S(n){return n.status!==p&&n.status!==d}function A(n){return!S(n)}function N(n){try{return n.activeWhen(window.location)}catch(t){c(t,n),n.status=E}}function j(n){try{return!n.activeWhen(window.location)}catch(t){c(t,n),n.status=E}}function _(n){return n!==E&&(!n||n.status!==E)}function x(n){return n.name}function U(n,t,e){return t in n?Object.defineProperty(n,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[t]=e,n}var D={bootstrap:{millis:4e3,dieOnTimeout:!1},mount:{millis:3e3,dieOnTimeout:!1},unmount:{millis:3e3,dieOnTimeout:!1},unload:{millis:3e3,dieOnTimeout:!1}};function M(n){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if("number"!=typeof n||n<=0)throw new Error("bootstrap max time must be a positive integer number of milliseconds");D.bootstrap={millis:n,dieOnTimeout:t}}function I(n){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if("number"!=typeof n||n<=0)throw new Error("mount max time must be a positive integer number of milliseconds");D.mount={millis:n,dieOnTimeout:t}}function C(n){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if("number"!=typeof n||n<=0)throw new Error("unmount max time must be a positive integer number of milliseconds");D.unmount={millis:n,dieOnTimeout:t}}function L(n){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if("number"!=typeof n||n<=0)throw new Error("unload max time must be a positive integer number of milliseconds");D.unload={millis:n,dieOnTimeout:t}}function B(n,t,e){var r=1e3;return new Promise(function(o,i){var u=!1,a=!1;function c(n){if(!u)if(!0===n)a=!0,e.dieOnTimeout?i("".concat(t," did not resolve or reject for ").concat(e.millis," milliseconds")):console.error("".concat(t," did not resolve or reject for ").concat(e.millis," milliseconds -- we're no longer going to warn you about it."));else if(!a){var o=n,s=o*r;console.warn("".concat(t," did not resolve or reject within ").concat(s," milliseconds")),s+r<e.millis&&setTimeout(function(){return c(o+1)},r)}}n.then(function(n){u=!0,o(n)}).catch(function(n){u=!0,i(n)}),setTimeout(function(){return c(1)},r),setTimeout(function(){return c(!0)},e.millis)})}function G(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(n){for(var t=1;t<arguments.length;t++){var e=null!=arguments[t]?arguments[t]:{},r=Object.keys(e);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(e).filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.forEach(function(t){U(n,t,e[t])})}return n}({},D,n)}function R(n,t){for(var e=0;e<n.length;e++)if(t(n[e]))return n[e];return null}function k(n){return n&&("function"==typeof n||(t=n,Array.isArray(t)&&!R(t,function(n){return"function"!=typeof n})));var t}function q(n,t){return 0===(n=Array.isArray(n)?n:[n]).length&&(n=[function(){return Promise.resolve()}]),function(e){return new Promise(function(r,o){!function i(u){var a=n[u](e);W(a)?a.then(function(){u===n.length-1?r():i(u+1)}).catch(o):o("".concat(t," at index ").concat(u," did not return a promise"))}(0)})}}function W(n){return n&&"function"==typeof n.then&&"function"==typeof n.catch}function F(n){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return Promise.resolve().then(function(){return n.status!==m?n:(n.status=h,B(n.bootstrap(tn(n)),"Bootstrapping appOrParcel '".concat(n.name,"'"),n.timeouts.bootstrap).then(function(){return n.status=v,n}).catch(function(e){if(n.status=E,t)throw l(e,n);return c(e,n),n}))})}var K=!1,H=!1;function $(n){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return Promise.resolve().then(function(){return n.status!==v?n:(K||(window.dispatchEvent(new u.a("single-spa:before-first-mount")),K=!0),B(n.mount(tn(n)),"Mounting application '".concat(n.name,"'"),n.timeouts.mount).then(function(){return n.status=y,H||(window.dispatchEvent(new u.a("single-spa:first-mount")),H=!0),n}).catch(function(e){if(t){var r=l(e,n);throw n.status=E,r}return c(e,n),n.status=E,n}))})}function J(n){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return Promise.resolve().then(function(){if(n.status!==y)return n;n.status=g;var e,r=Object.keys(n.parcels).map(function(t){return n.parcels[t].unmountThisParcel()});return Promise.all(r).then(o,function(e){return o().then(function(){var r=new Error(e.message);if(t){var o=l(r,n);throw n.status=E,o}c(r,n),n.status=E})}).then(function(){return n});function o(){return B(n.unmount(tn(n)),"Unmounting application ".concat(n.name,"'"),n.timeouts.unmount).then(function(){e||(n.status=v)}).catch(function(e){if(t){var r=l(e,n);throw n.status=E,r}c(e,n),n.status=E})}})}function Q(n){return(Q="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n})(n)}var V=0,z={parcels:{}};function X(){return Y.apply(z,arguments)}function Y(n,t){var e=this;if(!n||"object"!==Q(n)&&"function"!=typeof n)throw new Error("Cannot mount parcel without a config object or config loading function");if(n.name&&"string"!=typeof n.name)throw new Error("Parcel name must be a string, if provided");if("object"!==Q(t))throw new Error("Parcel ".concat(name," has invalid customProps -- must be an object"));if(!t.domElement)throw new Error("Parcel ".concat(name," cannot be mounted without a domElement provided as a prop"));var r,o=V++,i="function"==typeof n,u=i?n:function(){return Promise.resolve(n)},a={id:o,parcels:{},status:i?d:m,customProps:t,parentName:e.name,unmountThisParcel:function(){if(a.status!==y)throw new Error("Cannot unmount parcel '".concat(name,"' -- it is in a ").concat(a.status," status"));return J(a,!0).then(function(n){return a.parentName&&delete e.parcels[a.id],n}).then(function(n){return s(n),n}).catch(function(n){throw a.status=E,f(n),n})}};e.parcels[o]=a;var c=u();if(!c||"function"!=typeof c.then)throw new Error("When mounting a parcel, the config loading function must return a promise that resolves with the parcel config");var s,f,p=(c=c.then(function(n){if(!n)throw new Error("When mounting a parcel, the config loading function returned a promise that did not resolve with a parcel config");var t=n.name||"parcel-".concat(o);if(!k(n.bootstrap))throw new Error("Parcel ".concat(t," must have a valid bootstrap function"));if(!k(n.mount))throw new Error("Parcel ".concat(t," must have a valid mount function"));if(!k(n.unmount))throw new Error("Parcel ".concat(t," must have a valid unmount function"));if(n.update&&!k(n.update))throw new Error("Parcel ".concat(t," provided an invalid update function"));var e=q(n.bootstrap),i=q(n.mount),u=q(n.unmount);a.status=m,a.name=t,a.bootstrap=e,a.mount=i,a.unmount=u,a.timeouts=G(n.timeouts),n.update&&(a.update=q(n.update),r.update=function(n){return a.customProps=n,Z(function(n){return Promise.resolve().then(function(){if(n.status!==y)throw new Error("Cannot update parcel '".concat(n.name,"' because it is not mounted"));return n.status=b,B(n.update(tn(n)),"Updating parcel '".concat(n.name,"'"),n.timeouts.mount).then(function(){return n.status=y,n}).catch(function(t){var e=l(t,n);throw n.status=E,e})})}(a))})})).then(function(){return F(a,!0)}),h=p.then(function(){return $(a,!0)}),w=new Promise(function(n,t){s=n,f=t});return r={mount:function(){return Z(Promise.resolve().then(function(){if(a.status!==v)throw new Error("Cannot mount parcel '".concat(name,"' -- it is in a ").concat(a.status," status"));return e.parcels[o]=a,$(a)}))},unmount:function(){return Z(a.unmountThisParcel())},getStatus:function(){return a.status},loadPromise:Z(c),bootstrapPromise:Z(p),mountPromise:Z(h),unmountPromise:Z(w)}}function Z(n){return n.then(function(){return null})}function nn(n,t,e){return t in n?Object.defineProperty(n,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[t]=e,n}function tn(n){var t=function(n){for(var t=1;t<arguments.length;t++){var e=null!=arguments[t]?arguments[t]:{},r=Object.keys(e);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(e).filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.forEach(function(t){nn(n,t,e[t])})}return n}({},n.customProps,{name:n.name,mountParcel:Y.bind(n),singleSpa:o});return n.unmountThisParcel&&(t.unmountSelf=n.unmountThisParcel),t}function en(n){return(en="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n})(n)}function rn(n){return Promise.resolve().then(function(){return n.status!==p?n:(n.status=d,Promise.resolve().then(function(){var e=n.loadImpl(tn(n));if(!W(e))throw new Error("single-spa loading function did not return a promise. Check the second argument to registerApplication('".concat(n.name,"', loadingFunction, activityFunction)"));return e.then(function(e){var r;return"object"!==en(t=e)&&(r="does not export anything"),k(t.bootstrap)||(r="does not export a bootstrap function or array of functions"),k(t.mount)||(r="does not export a mount function or array of functions"),k(t.unmount)||(r="does not export an unmount function or array of functions"),r?(c(r,n),n.status=E,n):(n.status=m,n.bootstrap=q(t.bootstrap,"App '".concat(n.name,"' bootstrap function")),n.mount=q(t.mount,"App '".concat(n.name,"' mount function")),n.unmount=q(t.unmount,"App '".concat(n.name,"' unmount function")),n.unload=q(t.unload||[],"App '".concat(n.name,"' unload function")),n.timeouts=G(t.timeouts),n)})}).catch(function(t){return c(t,n),n.status=E,n}));var t})}var on={hashchange:[],popstate:[]},un=["hashchange","popstate"];function an(n){var t,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"==typeof n)t=n;else if(this&&this.href)t=this.href;else{if(!(n&&n.currentTarget&&n.currentTarget.href&&n.preventDefault))throw new Error("singleSpaNavigate must be either called with a string url, with an <a> tag as its context, or with an event whose currentTarget is an <a> tag");t=n.currentTarget.href,n.preventDefault()}var r=mn(window.location.href),o=mn(t);if(0===t.indexOf("#"))window.location.hash="#"+o.anchor;else if(r.host!==o.host&&o.host){if(e.isTestingEnv)return{wouldHaveReloadedThePage:!0};window.location.href=t}else!function(n,t){return t===n||t==="/"+n}(o.path,r.path)?window.history.pushState(null,null,t):window.location.hash="#"+o.anchor}function cn(n){var t=this;if(n){var e=n[0].type;un.indexOf(e)>=0&&on[e].forEach(function(e){e.apply(t,n)})}}function sn(){Ln([],arguments)}window.addEventListener("hashchange",sn),window.addEventListener("popstate",sn);var fn=window.addEventListener,ln=window.removeEventListener;window.addEventListener=function(n,t){if(!("function"==typeof t&&un.indexOf(n)>=0)||R(on[n],function(n){return n===t}))return fn.apply(this,arguments);on[n].push(t)},window.removeEventListener=function(n,t){if(!("function"==typeof t&&un.indexOf(n)>=0))return ln.apply(this,arguments);on[n]=on[n].filter(function(n){return n!==t})};var pn=window.history.pushState;window.history.pushState=function(n){var t=pn.apply(this,arguments);return Ln(),t};var dn=window.history.replaceState;function mn(n){for(var t={strictMode:!0,key:["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],q:{name:"queryKey",parser:/(?:^|&)([^&=]*)=?([^&]*)/g},parser:{strict:/^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,loose:/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/}},e=t.parser[t.strictMode?"strict":"loose"].exec(n),r={},o=14;o--;)r[t.key[o]]=e[o]||"";return r[t.q.name]={},r[t.key[12]].replace(t.q.parser,function(n,e,o){e&&(r[t.q.name][e]=o)}),r}window.history.replaceState=function(){var n=dn.apply(this,arguments);return Ln(),n},window.singleSpaNavigate=an;var hn=!1;function vn(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.jQuery;if(n||window.$&&window.$.fn&&window.$.fn.jquery&&(n=window.$),n&&!hn){var t=n.fn.on,e=n.fn.off;n.fn.on=function(n,e){return wn.call(this,t,window.addEventListener,n,e,arguments)},n.fn.off=function(n,t){return wn.call(this,e,window.removeEventListener,n,t,arguments)},hn=!0}}function wn(n,t,e,r,o){return"string"!=typeof e?n.apply(this,o):(e.split(/\s+/).forEach(function(n){un.indexOf(n)>=0&&(t(n,r),e=e.replace(n,""))}),""===e.trim()?this:n.apply(this,o))}var yn={};function bn(n){return Promise.resolve().then(function(){var t=yn[n.name];return t?n.status===p?(gn(n,t),n):n.status===O?t.promise.then(function(){return n}):n.status!==v?n:(n.status=O,B(n.unload(tn(n)),"Unloading application '".concat(n.name,"'"),n.timeouts.unload).then(function(){return gn(n,t),n}).catch(function(e){return function(n,t,e){delete yn[n.name],delete n.bootstrap,delete n.mount,delete n.unmount,delete n.unload,c(e,n),n.status=E,t.reject(e)}(n,t,e),n})):n})}function gn(n,t){delete yn[n.name],delete n.bootstrap,delete n.mount,delete n.unmount,delete n.unload,n.status=p,t.resolve()}function On(n,t,e,r){yn[n.name]={app:n,resolve:e,reject:r},Object.defineProperty(yn[n.name],"promise",{get:t})}function En(n){return(En="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n})(n)}var Pn=[];function Tn(){return Pn.filter(P).map(x)}function Sn(){return Pn.map(x)}function An(n){var t=R(Pn,function(t){return t.name===n});return t?t.status:null}function Nn(n,t,e){return console.warn('declareChildApplication is deprecated and will be removed in the next major version, use "registerApplication" instead'),jn(n,t,e)}function jn(n,t,e){var r,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if("string"!=typeof n||0===n.length)throw new Error("The first argument must be a non-empty string 'appName'");if(-1!==Sn().indexOf(n))throw new Error("There is already an app declared with name ".concat(n));if("object"!==En(o)||Array.isArray(o))throw new Error("customProps must be an object");if(!t)throw new Error("The application or loading function is required");if(r="function"!=typeof t?function(){return Promise.resolve(t)}:t,"function"!=typeof e)throw new Error("The activeWhen argument must be a function");Pn.push({name:n,loadImpl:r,activeWhen:e,status:p,parcels:{},customProps:o}),vn(),Ln()}function _n(n){for(var t=[],e=0;e<Pn.length;e++)Pn[e].activeWhen(n)&&t.push(Pn[e].name);return t}function xn(){return Pn.filter(_).filter(A).filter(N)}function Un(n,t){return console.warn('unloadChildApplication is deprecated and will be removed in the next major version, use "unloadApplication" instead'),Dn(n,t)}function Dn(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{waitForUnmount:!1};if("string"!=typeof n)throw new Error("unloadApplication requires a string 'appName'");var e=R(Pn,function(t){return t.name===n});if(!e)throw new Error("Could not unload application '".concat(n,"' because no such application has been declared"));var r,o=function(n){return yn[n]}(e.name);if(t&&t.waitForUnmount){if(o)return o.promise;var i=new Promise(function(n,t){On(e,function(){return i},n,t)});return i}return o?(r=o.promise,Mn(e,o.resolve,o.reject)):r=new Promise(function(n,t){On(e,function(){return r},n,t),Mn(e,n,t)}),r}function Mn(n,t,e){J(n).then(bn).then(function(){t(),setTimeout(function(){Ln()})}).catch(e)}var In=!1,Cn=[];function Ln(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;if(In)return new Promise(function(n,e){Cn.push({resolve:n,reject:e,eventArguments:t})});In=!0;var e=!0;return Bn?Promise.resolve().then(function(){window.dispatchEvent(new u.a("single-spa:before-routing-event",i()));var t=Object.keys(yn).map(function(n){return yn[n].app}).filter(T).map(bn),a=Pn.filter(_).filter(P).filter(j).map(J).map(function(n){return n.then(bn)}),c=a.concat(t);c.length>0&&(e=!1);var s=Promise.all(c),f=xn(),l=f.map(function(n){return rn(n).then(F).then(function(n){return s.then(function(){return $(n)})})});l.length>0&&(e=!1);var p=Pn.filter(_).filter(T).filter(S).filter(N).filter(function(n){return f.indexOf(n)<0}).map(function(n){return F(n).then(function(){return s}).then(function(){return $(n)})});return p.length>0&&(e=!1),s.catch(function(n){throw o(),n}).then(function(){return o(),Promise.all(l.concat(p)).catch(function(t){throw n.forEach(function(n){return n.reject(t)}),t}).then(function(){return r(!1)})})}):Promise.resolve().then(function(){var n=xn().map(rn);return n.length>0&&(e=!1),Promise.all(n).then(r).catch(function(n){throw o(),n})});function r(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],r=Tn();t&&o(),n.forEach(function(n){return n.resolve(r)});try{var a=e?"single-spa:no-app-change":"single-spa:app-change";window.dispatchEvent(new u.a(a,i())),window.dispatchEvent(new u.a("single-spa:routing-event",i()))}catch(n){setTimeout(function(){throw n})}if(In=!1,Cn.length>0){var c=Cn;Cn=[],Ln(c)}return r}function o(){n.forEach(function(n){cn(n.eventArguments)}),cn(t)}function i(){var n={detail:{}};return t&&t[0]&&(n.detail.originalEvent=t[0]),n}}var Bn=!1;function Gn(){Bn=!0,Ln()}function Rn(){return[].concat(Pn)}setTimeout(function(){Bn||console.warn("singleSpa.start() has not been called, ".concat(5e3,"ms after single-spa was loaded. Before start() is called, apps can be declared and loaded, but not bootstrapped or mounted. See https://github.com/CanopyTax/single-spa/blob/master/docs/single-spa-api.md#start"))},5e3),e.d(t,"start",function(){return Gn}),e.d(t,"ensureJQuerySupport",function(){return vn}),e.d(t,"setBootstrapMaxTime",function(){return M}),e.d(t,"setMountMaxTime",function(){return I}),e.d(t,"setUnmountMaxTime",function(){return C}),e.d(t,"setUnloadMaxTime",function(){return L}),e.d(t,"registerApplication",function(){return jn}),e.d(t,"getMountedApps",function(){return Tn}),e.d(t,"getAppStatus",function(){return An}),e.d(t,"unloadApplication",function(){return Dn}),e.d(t,"checkActivityFunctions",function(){return _n}),e.d(t,"getAppNames",function(){return Sn}),e.d(t,"declareChildApplication",function(){return Nn}),e.d(t,"unloadChildApplication",function(){return Un}),e.d(t,"navigateToUrl",function(){return an}),e.d(t,"triggerAppChange",function(){return Ln}),e.d(t,"addErrorHandler",function(){return s}),e.d(t,"removeErrorHandler",function(){return f}),e.d(t,"mountRootParcel",function(){return X}),e.d(t,"NOT_LOADED",function(){return p}),e.d(t,"LOADING_SOURCE_CODE",function(){return d}),e.d(t,"NOT_BOOTSTRAPPED",function(){return m}),e.d(t,"BOOTSTRAPPING",function(){return h}),e.d(t,"NOT_MOUNTED",function(){return v}),e.d(t,"MOUNTING",function(){return w}),e.d(t,"UPDATING",function(){return b}),e.d(t,"MOUNTED",function(){return y}),e.d(t,"UNMOUNTING",function(){return g}),e.d(t,"SKIP_BECAUSE_BROKEN",function(){return E}),window&&window.__SINGLE_SPA_DEVTOOLS_ACTIVE__&&Object.defineProperty(window,"__SINGLE_SPA_DEVTOOLS__",{value:r})}])}); | ||
//# sourceMappingURL=single-spa.js.map |
{ | ||
"name": "single-spa", | ||
"version": "4.0.1", | ||
"version": "4.0.2", | ||
"description": "Multiple applications, one page", | ||
"main": "lib/single-spa.js", | ||
"module": "src/single-spa.js", | ||
"scripts": { | ||
@@ -23,5 +24,6 @@ "build": "webpack -p", | ||
"application", | ||
"spa", | ||
"multiple", | ||
"lifecycle" | ||
"framework", | ||
"react", | ||
"angular", | ||
"vue" | ||
], | ||
@@ -32,26 +34,31 @@ "author": "Joel Denning", | ||
"devDependencies": { | ||
"@babel/core": "^7.0.0-beta.44", | ||
"@babel/plugin-syntax-dynamic-import": "^7.0.0-beta.44", | ||
"@babel/preset-env": "^7.0.0-beta.44", | ||
"@babel/preset-stage-3": "^7.0.0-beta.44", | ||
"babel-eslint": "^8.2.3", | ||
"babel-loader": "^8.0.0-beta.2", | ||
"clean-webpack-plugin": "^0.1.14", | ||
"@babel/core": "^7.2.2", | ||
"@babel/plugin-syntax-dynamic-import": "^7.2.0", | ||
"@babel/preset-env": "^7.2.3", | ||
"babel-eslint": "^10.0.1", | ||
"babel-loader": "^8.0.4", | ||
"clean-webpack-plugin": "^1.0.0", | ||
"custom-event": "^1.0.1", | ||
"eslint": "4.14.0", | ||
"eslint-config-canopy": "2.0.0", | ||
"eslint": "5.11.1", | ||
"eslint-config-canopy": "2.1.0", | ||
"in-publish": "^2.0.0", | ||
"jasmine": "^3.0.0", | ||
"jspm": "0.17.0-beta.32", | ||
"karma": "^2.0.0", | ||
"jasmine": "^3.3.1", | ||
"karma": "^3.1.4", | ||
"karma-chrome-launcher": "^2.2.0", | ||
"karma-jasmine": "^1.1.1", | ||
"karma-sauce-launcher": "^1.2.0", | ||
"karma-jasmine": "^2.0.1", | ||
"karma-sauce-launcher": "^2.0.2", | ||
"karma-sourcemap-loader": "^0.3.7", | ||
"karma-webpack": "^3.0.0", | ||
"promise-polyfill": "^7.1.0", | ||
"webpack": "^4.5.0", | ||
"webpack-bundle-analyzer": "^2.11.1", | ||
"webpack-cli": "^2.0.14" | ||
"karma-webpack": "^3.0.5", | ||
"promise-polyfill": "^8.1.0", | ||
"webpack": "^4.28.2", | ||
"webpack-bundle-analyzer": "^3.0.3", | ||
"webpack-cli": "^3.1.2" | ||
}, | ||
"browserslist": [ | ||
"ie >= 11", | ||
"last 4 Safari major versions", | ||
"last 10 Chrome major versions", | ||
"last 10 Firefox major versions", | ||
"last 4 Edge major versions" | ||
], | ||
"ignore": [ | ||
@@ -58,0 +65,0 @@ "examples", |
@@ -54,4 +54,4 @@ | ||
### [Contributing Guide](https://reactjs.org/contributing/how-to-contribute.html) | ||
### [Contributing Guide](https://single-spa.js.org/docs/contributing-overview.html) | ||
Read our [contributing guide](https://reactjs.org/contributing/how-to-contribute.html) to learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes to single-spa. | ||
Read our [contributing guide](https://single-spa.js.org/docs/contributing-overview.html) to learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes to single-spa. |
@@ -18,2 +18,7 @@ import { ensureJQuerySupport } from '../jquery-support.js'; | ||
// used in devtools, not (currently) exposed as a single-spa API | ||
export function getRawAppData() { | ||
return [...apps]; | ||
} | ||
export function getAppStatus(appName) { | ||
@@ -20,0 +25,0 @@ const app = find(apps, app => app.name === appName); |
@@ -8,3 +8,2 @@ import CustomEvent from 'custom-event'; | ||
import { getMountedApps, getAppsToLoad, getAppsToUnmount, getAppsToMount } from 'src/applications/apps.js'; | ||
import { notSkipped } from 'src/applications/app.helpers.js'; | ||
import { callCapturedEventListeners } from './navigation-events.js'; | ||
@@ -55,9 +54,3 @@ import { getAppsToUnload, toUnloadPromise } from 'src/lifecycles/unload.js'; | ||
return Promise.resolve().then(() => { | ||
let myCE | ||
if (eventArguments && eventArguments[0]) { | ||
myCE = { | ||
detail: eventArguments[0] | ||
} | ||
} | ||
window.dispatchEvent(new CustomEvent("single-spa:before-routing-event", myCE)); | ||
window.dispatchEvent(new CustomEvent("single-spa:before-routing-event", getCustomEventDetail())); | ||
const unloadPromises = getAppsToUnload().map(toUnloadPromise); | ||
@@ -141,4 +134,4 @@ | ||
const appChangeEventName = wasNoOp ? "single-spa:no-app-change": "single-spa:app-change"; | ||
window.dispatchEvent(new CustomEvent(appChangeEventName)); | ||
window.dispatchEvent(new CustomEvent("single-spa:routing-event")); | ||
window.dispatchEvent(new CustomEvent(appChangeEventName, getCustomEventDetail())); | ||
window.dispatchEvent(new CustomEvent("single-spa:routing-event", getCustomEventDetail())); | ||
} catch (err) { | ||
@@ -186,2 +179,12 @@ /* We use a setTimeout because if someone else's event handler throws an error, single-spa | ||
} | ||
function getCustomEventDetail() { | ||
const result = {detail: {}} | ||
if (eventArguments && eventArguments[0]) { | ||
result.detail.originalEvent = eventArguments[0] | ||
} | ||
return result | ||
} | ||
} |
@@ -49,3 +49,3 @@ import { validLifecycleFn, flattenFnArray } from 'src/lifecycles/lifecycle.helpers.js'; | ||
customProps, | ||
owningAppOrParcel, | ||
parentName: owningAppOrParcel.name, | ||
unmountThisParcel() { | ||
@@ -58,4 +58,4 @@ if (parcel.status !== MOUNTED) { | ||
.then(value => { | ||
if (parcel.owningAppOrParcel) { | ||
delete parcel.owningAppOrParcel.parcels[parcel.id]; | ||
if (parcel.parentName) { | ||
delete owningAppOrParcel.parcels[parcel.id]; | ||
} | ||
@@ -121,3 +121,3 @@ | ||
parcel.unmount = unmount; | ||
parcel.timeouts = ensureValidAppTimeouts(parcel); | ||
parcel.timeouts = ensureValidAppTimeouts(config.timeouts); | ||
@@ -124,0 +124,0 @@ if (config.update) { |
@@ -22,1 +22,8 @@ export { start } from './start.js'; | ||
} from './applications/app.helpers.js'; | ||
import * as devtools from "./devtools/devtools" | ||
if(window && window.__SINGLE_SPA_DEVTOOLS_ACTIVE__) { | ||
Object.defineProperty(window, "__SINGLE_SPA_DEVTOOLS__", { | ||
value: devtools, | ||
}) | ||
} |
import { reroute } from './navigation/reroute.js'; | ||
export let started = false; | ||
let started = false; | ||
@@ -5,0 +5,0 @@ export function start() { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
21
48
161036
1454