diff --git a/404.html b/404.html index 4e5428ba8..7f3ad6763 100644 --- a/404.html +++ b/404.html @@ -14,7 +14,7 @@ - + diff --git a/assets/js/d1104007.7c9607a5.js b/assets/js/d1104007.7c9607a5.js deleted file mode 100644 index 239c031c1..000000000 --- a/assets/js/d1104007.7c9607a5.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk=self.webpackChunk||[]).push([[5822],{7268:(e,n,r)=>{"use strict";r.d(n,{A:()=>i});r(6540);var t=r(4848);function i(e){const n=e.children.split("\n"),r=n.find((e=>e.trim()!==e)),i=r?/([^\s])/.exec(r).index:0,o=n.map((e=>e.slice(i))).filter(((e,n)=>e.length>0||n>0)).join("\n");return(0,t.jsx)("pre",{children:o})}},5792:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#1: singleSpa.start() was not called"}),(0,i.jsxs)("p",{children:[(0,i.jsx)("a",{href:"/docs/api#start",children:"singleSpa.start()"})," has not been called, 5000ms after single-spa was loaded. Before start() is called, apps can be declared and loaded, but not bootstrapped or mounted."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n // Insert this into your single-spa root config\n singleSpa.start();\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["The single-spa start() API exists to give you fine-grained control over performance. In the majority of use cases, you should call singleSpa.start() immediately after"," ",(0,i.jsx)("a",{href:"http://localhost:3000/docs/api#registerapplication",children:"registering your applications"}),". It was designed for situations where you want to start downloading a single-spa application's code while you're waiting for initial user data or context. To do that, call registerApplication() immediately but delay calling start until the data is loaded."]})]})}},1282:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(4733),i=r(4848);function o(e){return(0,i.jsx)(t.A,{...e,isParcel:!0,appOrParcelName:e.getErrorCodeArg(0,"unknown name"),lifecycleName:"mount"})}},1550:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(4733),i=r(4848);function o(e){return(0,i.jsx)(t.A,{...e,isParcel:!0,appOrParcelName:e.getErrorCodeArg(0,"unknown name"),lifecycleName:"unmount"})}},5880:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(4733),i=r(4848);function o(e){return(0,i.jsx)(t.A,{...e,isParcel:!0,appOrParcelName:e.getErrorCodeArg(0,"unknown name"),lifecycleName:"update"})}},239:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#13: Parcel is not mountable."}),(0,i.jsxs)("p",{children:["Parcel ",e.getErrorCodeArg(0,"unknown name")," is currently in"," ",e.getErrorCodeArg(1)," status. You may only call parcel.unmount() when the parcel is in NOT_MOUNTED status."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n const customProps = {domElement: document.getElementById('some-container')}\n const parcel = mountParcel(() => import('./some-parcel.js'), customProps);\n\n parcel.unmount().then(() => {\n Now the parcel is guaranteed to be in NOT_MOUNTED status, and you can call parcel.mount()\n parcel.mount()\n })\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["Single-spa parcels have a ",(0,i.jsx)("a",{href:"/docs/api/#getappstatus",children:"status"})," ","(same as single-spa applications). You may only attempt to mount a parcel if it is not currently mounted, but parcel.mount() was called when the parcel was in ",e.getErrorCodeArg(1)," status. Note that you normally do not have to call"," ",(0,i.jsx)("a",{href:"/docs/parcels-api/#mount",children:"parcel.mount()"})," at all, since parcel objects will always be mounted the first time by calling"," ",(0,i.jsx)("a",{href:"/docs/parcels-api/#mountparcel",children:"mountParcel()"}),"."]})]})}},2382:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#14: navigateToUrl / singleSpaNavigate was called incorrectly."}),(0,i.jsx)("p",{children:"singleSpaNavigate/navigateToUrl must be either called with a string url, with an anchor element as its context, or with an event whose currentTarget is an anchor element tag"}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:'\n import { navigateToUrl } from \'single-spa\';\n\n navigateToUrl(\'/path\')\n\n // Or via HTML\n Link\n\n // Or via JSX / templates\n Link\n '})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["The singleSpaNavigate global function and the navigateToUrl exported function are identical. They can be used in three different ways, as described in ",(0,i.jsx)("a",{href:"/docs/api/#navigatetourl",children:"the documentation"}),"."]})]})}},6733:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("h1",{children:["#15: lifecycle function ",e.getErrorCodeArg(2)," did not return a promise"]}),(0,i.jsxs)("p",{children:["For ",e.getErrorCodeArg(0,"microfrontend")," ",e.getErrorCodeArg(1),", the lifecycle function"," ",e.getErrorCodeArg(2)," at array index ",e.getErrorCodeArg(3)," did not return a promise."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsxs)("div",{children:[(0,i.jsx)(t.A,{children:"\n // Similar flow applies for other frameworks\n import singleSpaReact from 'single-spa-react';\n import React from 'react';\n import ReactDOM from 'react-dom';\n import Root from './root.component';\n\n const lifecycles = singleSpaReact({\n React,\n ReactDOM,\n rootComponent: Root,\n })\n\n export const bootstrap = lifecycles.bootstrap;\n export const mount = lifecycles.mount;\n export const unmount = lifecycles.unmount;\n "}),(0,i.jsx)(t.A,{children:"\n // If you're implementing your own lifecycle functions, make sure they are async or return a promise.\n export const bootstrap = async () => {\n // do something\n }\n\n export const mount = () => Promise.resolve().then(() => {\n // do something\n })\n\n export const unmount = async () => {\n // do something\n }\n "})]}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:[(0,i.jsx)("a",{href:"/docs/building-applications#registered-application-lifecycle",children:"Lifecycle functions"})," ","are the framework agnostic API that single-spa uses to mount and unmount microfrontends. A lifecycle function is a function that returns a Promise (or an async function). The promise should resolve once the lifecycle has completed bootstrapping, mounting, or unmounting. The most common implementation for lifecycle functions is to use a"," ",(0,i.jsx)("a",{href:"/docs/ecosystem",children:"helper library"})," for your component framework. If you do that, you won't have to implement the lifecycle functions yourself."]})]})}},2148:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#16: setBootstrapMaxTime was called with an invalid maxTime"}),(0,i.jsx)("p",{children:"The setBootstrapMaxTime API must be called with a non-negative integer representing the number of milliseconds to wait before timing out."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { setBootstrapMaxTime } from 'single-spa';\n\n // Must be called with a non-negative integer\n setBootstrapMaxTime(2000);\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See"," ",(0,i.jsx)("a",{href:"/docs/api#setbootstrapmaxtime",children:"setBootstrapMaxTime documentation"}),"."]})]})}},7243:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#17: setMountMaxTime was called with an invalid maxTime"}),(0,i.jsx)("p",{children:"The setMountMaxTime API must be called with a non-negative integer representing the number of milliseconds to wait before timing out."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { setMountMaxTime } from 'single-spa';\n\n // Must be called with a non-negative integer\n setMountMaxTime(2000);\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See"," ",(0,i.jsx)("a",{href:"/docs/api#setmountmaxtime",children:"setMountMaxTime documentation"}),"."]})]})}},9530:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#18: setUnmountMaxTime was called with an invalid maxTime"}),(0,i.jsx)("p",{children:"The setUnmountMaxTime API must be called with a non-negative integer representing the number of milliseconds to wait before timing out."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { setUnmountMaxTime } from 'single-spa';\n\n // Must be called with a non-negative integer\n setUnmountMaxTime(2000);\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See"," ",(0,i.jsx)("a",{href:"/docs/api#setunmountmaxtime",children:"setUnmountMaxTime documentation"}),"."]})]})}},4438:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#19: setUnloadMaxTime was called with an invalid maxTime"}),(0,i.jsx)("p",{children:"The setUnloadMaxTime API must be called with a non-negative integer representing the number of milliseconds to wait before timing out."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { setUnloadMaxTime } from 'single-spa';\n\n // Must be called with a non-negative integer\n setUnloadMaxTime(2000);\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See"," ",(0,i.jsx)("a",{href:"/docs/api#setunloadmaxtime",children:"setUnloadMaxTime documentation"}),"."]})]})}},8745:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#2: Cannot mount parcel - config not provided"}),(0,i.jsx)("p",{children:"Cannot mount parcel without a config object or config loading function."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsxs)("div",{children:[(0,i.jsx)("p",{children:"Raw, framework agnostic code:"}),(0,i.jsx)(t.A,{children:"\n // The most common root cause of this is that the parcelConfig failed to import correctly\n import parcelConfig from './some-file';\n\n console.log('Make sure this is defined!!!', parcelConfig);\n const domElement = document.createElement('div');\n mountParcel(parcelConfig, {domElement})\n "}),(0,i.jsx)("p",{children:"React-specific code"}),(0,i.jsx)(t.A,{children:"\n // If you're using react, this means the config prop you passed in is undefined,\n // perhaps because it failed to import correctly.\n import parcelConfig from './some-file';\n import Parcel from 'single-spa-react/parcel';\n\n console.log('Make sure this is defined!!!', parcelConfig);\n \n "})]}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["The single-spa start() API exists to give you fine-grained control over performance. In the majority of use cases, you should call singleSpa.start() immediately after"," ",(0,i.jsx)("a",{href:"http://localhost:3000/docs/api#registerapplication",children:"registering your applications"}),". It was designed for situations where you want to start downloading a single-spa application's code while you're waiting for initial user data or context. To do that, call registerApplication() immediately but delay calling start until the data is loaded."]})]})}},2373:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#20: The first argument to registerApplication must be a non-empty string 'appName'"}),(0,i.jsx)("p",{children:"When calling registerApplication, the first argument must be the string name of the application."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { registerApplication } from 'single-spa';\n\n registerApplication(\n '@org/name-of-app',\n loadingFunction,\n activityFunction\n )\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See"," ",(0,i.jsx)("a",{href:"/docs/api#registerApplication",children:"registerApplication documentation"}),"."]})]})}},534:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#21: Duplicate application name"}),(0,i.jsxs)("p",{children:["Cannot register application '",e.getErrorCodeArg(0),"' because an application has already been registered with that name."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { registerApplication } from 'single-spa';\n\n registerApplication(\n 'some-other-name',\n loadingFunction,\n activityFunction\n )\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See"," ",(0,i.jsx)("a",{href:"/docs/api#registerApplication",children:"registerApplication documentation"}),"."]})]})}},4355:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#22: Custom props must be an object"}),(0,i.jsxs)("p",{children:["Cannot register application '",e.getErrorCodeArg(0),"' because the customProps are not a plain JavaScript object."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { registerApplication } from 'single-spa';\n\n // customProps must be a plain object (not an Array)\n const customProps = {foo: 'bar'};\n\n registerApplication(\n 'name',\n loadingFunction,\n activityFunction,\n customProps\n )\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See"," ",(0,i.jsx)("a",{href:"/docs/api#registerApplication",children:"registerApplication documentation"}),"."]})]})}},4092:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#23: Application or loading function is required"}),(0,i.jsx)("p",{children:"You cannot register an application without providing a second argument that is an application object or loading function."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { registerApplication } from 'single-spa';\n\n registerApplication(\n 'name',\n // This function is the \"loading function\" and is required\n () => System.import('name'),\n activityFunction\n )\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See ",(0,i.jsx)("a",{href:"/docs/api#registerApplication",children:"registerApplication"})," and"," ",(0,i.jsx)("a",{href:"/docs/configuration#loading-function-or-application",children:"loading function"})," ","documentation."]})]})}},9625:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#24: The activityFunction argument must be a function"}),(0,i.jsx)("p",{children:"You cannot register an application without providing a third argument that is an application's activity function."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { registerApplication } from 'single-spa';\n\n registerApplication(\n 'name',\n () => System.import('name'),\n // The function below is the \"activity function\", which must be provided\n location => location.pathname.startsWith('/name')\n )\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See ",(0,i.jsx)("a",{href:"/docs/api#registerApplication",children:"registerApplication"})," and"," ",(0,i.jsx)("a",{href:"/docs/configuration#activity-function",children:"activity function"})," ","documentation."]})]})}},6490:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#25: Cannot unregister application - does not exist"}),(0,i.jsxs)("p",{children:["You cannot unregister application ",e.getErrorCodeArg(0)," because no application with that name was registered."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n __SINGLE_SPA_DEVTOOLS__.exposedMethods.unregisterApplication(\n 'name-of-an-application',\n )\n "})})]})}},9063:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#26: unloadApplication requires a string 'appName'"}),(0,i.jsx)("p",{children:"You cannot unload an application without providing a string 'appName' argument."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { unloadApplication } from 'single-spa';\n\n // Make sure that name-of-app is a registered application\n unloadApplication('name-of-app');\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See"," ",(0,i.jsx)("a",{href:"/docs/api#unloadApplication",children:"unloadApplication documentation"}),"."]})]})}},9344:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#27: Cannot unload application - no such application"}),(0,i.jsxs)("p",{children:["There is no such application '",e.getErrorCodeArg(0),"', so it cannot be unloaded."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { unloadApplication } from 'single-spa';\n\n // Make sure that name-of-app is a registered application\n unloadApplication('name-of-app');\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See"," ",(0,i.jsx)("a",{href:"/docs/api#unloadApplication",children:"unloadApplication documentation"}),"."]})]})}},8893:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#28: A single-spa error handler must be a function"}),(0,i.jsx)("p",{children:"You must call addErrorHandler with a function handler as an argument."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { addErrorHandler } from 'single-spa';\n\n addErrorHandler(myHandler);\n\n function myHandler(err) {\n console.error(err);\n }\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See"," ",(0,i.jsx)("a",{href:"/docs/api#adderrorhandler",children:"addErrorHandler documentation"}),"."]})]})}},5150:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#29: A single-spa error handler must be a function"}),(0,i.jsx)("p",{children:"You must call removeErrorHandler with a function handler as an argument."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { removeErrorHandler } from 'single-spa';\n\n const wasRemoved = removeErrorHandler(myHandler);\n\n function myHandler(err) {\n console.error(err);\n }\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See"," ",(0,i.jsx)("a",{href:"/docs/api#removeerrorhandler",children:"removeErrorHandler documentation"}),"."]})]})}},6218:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#3: Cannot mount parcel - name is not a string"}),(0,i.jsxs)("p",{children:["Parcel name must be a string, if provided. Was given"," ",(0,i.jsx)("code",{children:e.getErrorCodeArg(0,"unknown")}),"."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsxs)("div",{children:[(0,i.jsx)(t.A,{children:"\n // The easiest way to avoid this error is let single-spa control the name of your parcel\n const parcelConfig = singleSpaReact({...});\n mountParcel(parcelConfig, {domElement});\n "}),(0,i.jsx)(t.A,{children:"\n // Alternatively, you can provide a name but it must be a string\n const parcelConfig = singleSpaReact({...});\n parcelConfig.name = 'my-parcel';\n mountParcel(parcelConfig, {domElement});\n "})]}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["When you call ",(0,i.jsx)("a",{href:"/docs/parcels-api#mountparcel",children:"mountParcel"})," or"," ",(0,i.jsx)("a",{href:"/docs/parcels-api#mountrootparcel",children:"mountRootParcel"}),", you must provide a"," ",(0,i.jsx)("a",{href:"/docs/parcels-overview#parcel-configuration",children:"parcel config"})," ","object. That object may optionally have a string property called name."]})]})}},3264:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#30: Lifecycle function rejected its promise with a non-Error"}),(0,i.jsxs)("p",{children:["For application or parcel ",e.getErrorCodeArg(0),", the lifecycle function ",e.getErrorCodeArg(0)," rejected its promise with something that is not an"," ",(0,i.jsx)("a",{href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error",target:"_blank",children:"Error"})," ","object."]}),(0,i.jsx)("p",{children:"This problem is logged as a warning to the console, but is not thrown as an additional error. The reason it is logged is that only JavaScript Error objects will provide a good stacktrace for you to debug the cause of the Error."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n export function mount() {\n return new Promise((resolve, reject) => {\n // Always reject with an Error.\n reject(new Error('hi'));\n });\n }\n "})})]})}},4311:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#31: Lifecycle function's promise did not resolve or reject"}),(0,i.jsxs)("p",{children:["For ",e.getErrorCodeArg(1)," ",e.getErrorCodeArg(2),", the lifecycle function ",e.getErrorCodeArg(0)," returned a promise that neither resolved or rejected for ",e.getErrorCodeArg(3),"."]}),(0,i.jsxs)("p",{children:["It is possible that this promise resolved after the timeout occurred. Single-spa has a configuration setting called the"," ",(0,i.jsx)("a",{href:"/docs/api#setbootstrapmaxtime",target:"_blank",children:"timeout configuration"})," ","that controls timeouts for lifecycle functions at both a global and per-app level. You may adjust that setting to no longer see this warning, if you'd like to."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n export function mount() {\n return new Promise((resolve, reject) => {\n // Always reject with an Error.\n reject(new Error('hi'));\n });\n }\n "})})]})}},586:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#32: Cannot update a parcel that is not mounted"}),(0,i.jsxs)("p",{children:["You may not update parcel ",e.getErrorCodeArg(0)," because it is not currently in MOUNTED status."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { mountRootParcel } from 'single-spa';\n\n const parcel = mountRootParcel(parcelConfig, { domElement });\n parcel.mountPromise.then(() => {\n // Wait for the parcel to mount before updating it\n parcel.update();\n });\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See ",(0,i.jsx)("a",{href:"/docs/parcels-api#getstatus",children:"documentation"}),"."]})]})}},7801:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#33: Loading function did not return a promise"}),(0,i.jsxs)("p",{children:["The loading function for ",e.getErrorCodeArg(0)," did not return a promise. This is required as part of the registerApplication API."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { registerApplication } from 'single-spa';\n\n registerApplication('name', loadingFn, activityFn);\n\n function loadingFn() {\n // Make sure this returns a promise!\n return System.import('name');\n }\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See ",(0,i.jsx)("a",{href:"/docs/api/#registerapplication",children:"documentation"}),"."]})]})}},9340:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#34: Application must be an object"}),(0,i.jsxs)("p",{children:["The loading function for ",e.getErrorCodeArg(0,"application")," ",e.getErrorCodeArg(1)," returned a promise that resolved with something that is not an object. The loading function should resolve with an application object that has the single-spa lifecycle functions on it."]}),(0,i.jsxs)("p",{children:["The resolved value for the application was was"," ",e.getErrorCodeArg(2)]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { registerApplication } from 'single-spa';\n\n registerApplication('name', loadingFn, activityFn);\n\n function loadingFn() {\n // Make sure the resolved value of the promise is an object!\n return System.import('name');\n }\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See ",(0,i.jsx)("a",{href:"/docs/api/#registerapplication",children:"documentation"}),"."]})]})}},627:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#35: Invalid application - no bootstrap function"}),(0,i.jsxs)("p",{children:["The loading function for ",e.getErrorCodeArg(0,"application")," ",e.getErrorCodeArg(1)," returned a promise that resolved with an invalid application object. The loading function should resolve with an application object that has the single-spa lifecycle functions on it. This application did not have a valid bootstrap function."]}),(0,i.jsxs)("p",{children:["The application object was ",e.getErrorCodeArg(2)]}),(0,i.jsx)("p",{children:"This most commonly occurs due to failed webpack or systemjs configuration."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsxs)("div",{children:[(0,i.jsx)(t.A,{children:"\n import { registerApplication } from 'single-spa';\n\n registerApplication('name', loadingFn, activityFn);\n\n function loadingFn() {\n // Make sure the resolved value of the promise is an object!\n return System.import('name');\n }\n "}),(0,i.jsx)(t.A,{children:"\n // If you're using SystemJS, run the following in the browser console to debug\n System.import('name-of-my-application').then(application => {\n // Verify that this object has the lifecycle functions on it.\n // If compiling with webpack and consuming in-browser with SystemJS, consider\n // setting webpack's output.libraryTarget to \"system\".\n console.log(application)\n })\n "})]}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See ",(0,i.jsx)("a",{href:"/docs/api/#registerapplication",children:"documentation"}),"."]})]})}},3046:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#36: Invalid application - no mount function"}),(0,i.jsxs)("p",{children:["The loading function for ",e.getErrorCodeArg(0,"application")," ",e.getErrorCodeArg(1)," returned a promise that resolved with an invalid application object. The loading function should resolve with an application object that has the single-spa lifecycle functions on it. This application did not have a valid mount function."]}),(0,i.jsxs)("p",{children:["The application object was ",e.getErrorCodeArg(2)]}),(0,i.jsx)("p",{children:"This most commonly occurs due to failed webpack or systemjs configuration."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsxs)("div",{children:[(0,i.jsx)(t.A,{children:"\n import { registerApplication } from 'single-spa';\n\n registerApplication('name', loadingFn, activityFn);\n\n function loadingFn() {\n // Make sure the resolved value of the promise is an object!\n return System.import('name');\n }\n "}),(0,i.jsx)(t.A,{children:"\n // If you're using SystemJS, run the following in the browser console to debug\n System.import('name-of-my-application').then(application => {\n // Verify that this object has the lifecycle functions on it.\n // If compiling with webpack and consuming in-browser with SystemJS, consider\n // setting webpack's output.libraryTarget to \"system\".\n console.log(application)\n })\n "})]}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See ",(0,i.jsx)("a",{href:"/docs/api/#registerapplication",children:"documentation"}),"."]})]})}},3765:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#37: Invalid application - no unmount function"}),(0,i.jsxs)("p",{children:["The loading function for ",e.getErrorCodeArg(0,"application")," ",e.getErrorCodeArg(1)," returned a promise that resolved with an invalid application object. The loading function should resolve with an application object that has the single-spa lifecycle functions on it. This application did not have a valid unmount function."]}),(0,i.jsxs)("p",{children:["The application object was ",e.getErrorCodeArg(2)]}),(0,i.jsx)("p",{children:"This most commonly occurs due to failed webpack or systemjs configuration."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsxs)("div",{children:[(0,i.jsx)(t.A,{children:"\n import { registerApplication } from 'single-spa';\n\n registerApplication('name', loadingFn, activityFn);\n\n function loadingFn() {\n // Make sure the resolved value of the promise is an object!\n return System.import('name');\n }\n "}),(0,i.jsx)(t.A,{children:"\n // If you're using SystemJS, run the following in the browser console to debug\n System.import('name-of-my-application').then(application => {\n // Verify that this object has the lifecycle functions on it.\n // If compiling with webpack and consuming in-browser with SystemJS, consider\n // setting webpack's output.libraryTarget to \"system\".\n console.log(application)\n })\n "})]}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See ",(0,i.jsx)("a",{href:"/docs/api/#registerapplication",children:"documentation"}),"."]})]})}},5352:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>i});r(6540);var t=r(4848);function i(e){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("h1",{children:"#38: Invalid registerApplication configuration object"}),(0,t.jsxs)("p",{children:['The configuration object in registerApplication accepts only the following keys: "',e.getErrorCodeArg(0),'"']}),(0,t.jsxs)("p",{children:['You provided the following invalid keys: "',e.getErrorCodeArg(1),'"']}),(0,t.jsxs)("p",{children:["See"," ",(0,t.jsx)("a",{href:"/docs/configuration",children:"registerApplication API documentation"})," ","for more information."]})]})}},8511:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>i});r(6540);var t=r(4848);function i(){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("h1",{children:"#39: Invalid registerApplication configuration object"}),(0,t.jsx)("p",{children:"Configuration object can't be an array or null! Please provide a plain object with correct configuration."}),(0,t.jsxs)("p",{children:["See"," ",(0,t.jsx)("a",{href:"/docs/configuration",children:"registerApplication API documentation"})," ","for more information."]})]})}},3731:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#4: Cannot mount parcel - customProps must be an object"}),(0,i.jsxs)("p",{children:["Parcel ",e.getErrorCodeArg(0,"unknown name")," was not provided a customProps object. Was given"," ",(0,i.jsx)("code",{children:e.getErrorCodeArg(1,"unknown customProps")}),"."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n const parcelConfig = singleSpaReact({...});\n const customProps = {domElement: document.getElementById('some-container')}\n\n // You must provide a customProps object with a domElement property as the second argument to mountParcel()\n mountParcel(parcelConfig, customProps);\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["The ",(0,i.jsx)("a",{href:"/docs/parcels-api#mountparcel",children:"mountParcel"})," and"," ",(0,i.jsx)("a",{href:"/docs/parcels-api#mountrootparcel",children:"mountRootParcel"})," apis require that you pass in a second argument."]})]})}},3459:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>i});r(6540);var t=r(4848);function i(e){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("h1",{children:"#40: Invalid custom props returned from function"}),(0,t.jsxs)("p",{children:["The single-spa application ",e.getErrorCodeArg(0)," was registered with a function for its customProps. That function must return an object of custom props, but instead returned ",e.getErrorCodeArg(1),"."]}),(0,t.jsxs)("p",{children:["See the"," ",(0,t.jsx)("a",{href:"/docs/configuration#custom-props",children:"custom props documentation"})," ","for more information."]})]})}},2172:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>i});r(6540);var t=r(4848);function i(e){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("h1",{children:"#41: single-spa is loaded on the page multiple times"}),(0,t.jsx)("p",{children:"The single-spa library should be loaded only one time on the page. This is important both for performance and to avoid bugs. Any functions you import from single-spa are specific to that instance. This means that functions like navigateToUrl, getAppStatus, etc. are specific to the single-spa instance and will not work as expected when you have multiple instances."}),(0,t.jsx)("h2",{children:"To fix:"}),(0,t.jsxs)("p",{children:["Mark single-spa as a"," ",(0,t.jsx)("a",{href:"https://webpack.js.org/configuration/externals/#root",rel:"noopener",target:"_blank",children:"webpack external"})," ","in your root config and in each of your microfrontends. This will ensure that it will be omitted from the bundle and will be provided at runtime in the browser. If using SystemJS, you will need to add single-spa to your ",(0,t.jsx)("a",{href:"/docs/recommended-setup#import-maps",children:"import map"}),"."]}),(0,t.jsx)("h2",{children:"Additional references"}),(0,t.jsxs)("p",{children:["See"," ",(0,t.jsx)("a",{href:"/docs/faq/#can-i-have-only-one-version-of-react-vue-angular-etc-loaded",children:"this FAQ"})," ","and also"," ",(0,t.jsx)("a",{href:"/docs/recommended-setup#shared-dependencies",children:"this documentation"})," ","for additional information."]})]})}},8268:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#5: Cannot mount parcel - customProps.domElement not provided"}),(0,i.jsxs)("p",{children:["Parcel ",e.getErrorCodeArg(0,"unknown name")," was not provided customProps.domElement. The domElement must be a DOMElement container in which the parcel will be mounted."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n const parcelConfig = singleSpaReact({...});\n\n // You must provide a domElement in your customProps provided to mountParcel\n const customProps = {domElement: document.getElementById('some-container')}\n\n mountParcel(parcelConfig, customProps);\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["The ",(0,i.jsx)("a",{href:"/docs/parcels-api#mountparcel",children:"mountParcel"})," and"," ",(0,i.jsx)("a",{href:"/docs/parcels-api#mountrootparcel",children:"mountRootParcel"})," apis require that you pass in customProps that have a property called"," ",(0,i.jsx)("code",{children:"domElement"})," that is a DOMElement."]})]})}},4357:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#6: Cannot unmount parcel because it is not mounted"}),(0,i.jsxs)("p",{children:["Parcel ",e.getErrorCodeArg(0,"unknown name")," cannot be unmounted because it is not currently mounted. The parcel is in"," ",(0,i.jsx)("code",{children:e.getErrorCodeArg(1,"unknown")})," status."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n const parcelConfig = singleSpaVue({...});\n const customProps = {domElement: document.getElementById('some-container')}\n const parcel = mountParcel(parcelConfig, customProps);\n\n // Wait for the parcel to mount before attempting to unmount it\n parcel.mountPromise.then(parcel => {\n // Now it is safe to call unmount\n parcel.unmount()\n })\n\n // Or, check the status before unmounting\n if (parcel.getAppStatus() === 'MOUNTED') {\n parcel.unmount()\n }\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["A parcel has exactly one ",(0,i.jsx)("a",{href:"/docs/api#getappstatus",children:"status"})," ","that indicates which stage of mounting and unmounting it is in. You may only call parcel.unmount() when the parcel is in MOUNTED status."]})]})}},262:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#7: Parcel loading function did not return a promise"}),(0,i.jsx)("p",{children:"When mounting a parcel, the config loading function must return a promise that resolves with the parcel config"}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{children:"Framework agnostic code:"}),(0,i.jsx)(t.A,{children:"\n const customProps = {domElement: document.getElementById('some-container')}\n \n // You need to ensure that the System.import() or import() promise resolves with a valid parcel config object\n const parcel = mountParcel(() => import('./some-parcel.js'), customProps);\n "}),(0,i.jsx)("div",{children:"React code:"}),(0,i.jsx)(t.A,{children:"\n // You need to ensure that the System.import() or import() promise resolves with a valid parcel config object\n System.import('@org-name/some-parcel')} />\n "})]}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["You can call ",(0,i.jsx)("a",{href:"/docs/parcels-api#mountparcel",children:"mountParcel"})," and"," ",(0,i.jsx)("a",{href:"/docs/parcels-api#mountrootparcel",children:"mountRootParcel"})," with a",(0,i.jsx)("a",{href:"https://single-spa.js.org/docs/parcels-api#mountparcel",children:"asynchronous loading function"})," ","as the first argument. When doing so, the loading function must return a promise that resolves with a valid"," ",(0,i.jsx)("a",{href:"https://single-spa.js.org/docs/parcels-overview#parcel-configuration",children:"parcel config object"}),"."]})]})}},6927:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#8: Loading function resolved with invalid parcel config"}),(0,i.jsx)("p",{children:"When mounting a parcel, the config loading function must return a promise that resolves with the parcel config"}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{children:"Framework agnostic code:"}),(0,i.jsx)(t.A,{children:"\n const customProps = {domElement: document.getElementById('some-container')}\n \n // You need to ensure that the System.import() or import() promise resolves with a valid parcel config object\n const parcel = mountParcel(() => import('./some-parcel.js'), customProps);\n "}),(0,i.jsx)("div",{children:"React code:"}),(0,i.jsx)(t.A,{children:"\n // You need to ensure that the System.import() or import() promise resolves with a valid parcel config object\n System.import('@org-name/some-parcel')} />\n "})]}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["You can call ",(0,i.jsx)("a",{href:"/docs/parcels-api#mountparcel",children:"mountParcel"})," and"," ",(0,i.jsx)("a",{href:"/docs/parcels-api#mountrootparcel",children:"mountRootParcel"})," with a",(0,i.jsx)("a",{href:"https://single-spa.js.org/docs/parcels-api#mountparcel",children:"asynchronous loading function"})," ","as the first argument. When doing so, the loading function must return a promise that resolves with a valid"," ",(0,i.jsx)("a",{href:"https://single-spa.js.org/docs/parcels-overview#parcel-configuration",children:"parcel config object"}),"."]})]})}},2568:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(4733),i=r(4848);function o(e){return(0,i.jsx)(t.A,{...e,isParcel:!0,appOrParcelName:e.getErrorCodeArg(0,"unknown name"),lifecycleName:"bootstrap"})}},4733:(e,n,r)=>{"use strict";r.d(n,{A:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("h1",{children:["#",e.errorCode,": Invalid ",e.lifecycleName," lifecycle on"," ",e.isParcel?"parcel":"application"]}),(0,i.jsxs)("p",{children:["The ",e.isParcel?"parcel":"application"," ",e.appOrParcelName," ","has an invalid ",e.lifecycleName," lifecycle function."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{children:"Framework agnostic code:"}),e.isParcel?(0,i.jsx)(t.A,{children:"\n // Create a parcel config by calling singleSpaReact(), singleSpaVue(), singleSpaAngular(), etc.\n const parcelConfig = singleSpaReact({...})\n\n const customProps = {domElement: document.getElementById('some-container')}\n \n // You need to ensure that the System.import() or import() promise resolves with a valid parcel config object\n const parcel = mountParcel(parcelConfig, customProps);\n "}):(0,i.jsx)(t.A,{children:"\n // create your lifecycles with the single-spa helper library for your framework\n const lifecycles = singleSpaAngular({...});\n \n // Export them now\n export const bootstrap = lifecycles.bootstrap;\n export const mount = lifecycles.mount;\n export const unmount = lifecycles.unmount;\n "})]}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["The"," ",(0,i.jsxs)("a",{href:e.isParcel?"http://localhost:3000/docs/parcels-api/#parcel-object":"https://single-spa.js.org/docs/building-applications/#lifecycle-props",children:[e.lifecycleName," lifecycle function"]})," ","must be a function or array of functions that return a promise."]})]})}},8974:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>a});r(6540);var t=r(9641),i=r(4848);const o=r(9999);const a=function(e){const n=new URLSearchParams(e.location.search),r="./"+n.get("code")+".js";if(!o.keys().includes(r))return(0,i.jsx)(t.A,{children:(0,i.jsx)("div",{className:"container container--fluid padding-horiz--xl",style:{marginTop:"8px"},children:n.get("code")?"We could not find an explanation page for the error code "+n.get("code"):"No code query param specified. Could not show error page."})});const a=o("./"+n.get("code")+".js").default,s=n.getAll("arg");return(0,i.jsx)(t.A,{children:(0,i.jsxs)("div",{className:"container container--fluid padding-horiz--xl margin-top--xl",style:{marginBottom:"6.8rem"},children:[(0,i.jsx)(a,{errorCodeArgs:s,getErrorCodeArg:function(e,n){const r=n?"("+n+")":"(unknown)";return s.length>e?s[e]:r},errorCode:n.get("code")}),(0,i.jsx)("a",{href:"https://github.com/single-spa/single-spa.js.org/edit/master/website/src/components/Errors/Codes/"+n.get("code")+".js",children:"Edit this page"})]})})}},9999:(e,n,r)=>{var t={"./1.js":5792,"./10.js":1282,"./11.js":1550,"./12.js":5880,"./13.js":239,"./14.js":2382,"./15.js":6733,"./16.js":2148,"./17.js":7243,"./18.js":9530,"./19.js":4438,"./2.js":8745,"./20.js":2373,"./21.js":534,"./22.js":4355,"./23.js":4092,"./24.js":9625,"./25.js":6490,"./26.js":9063,"./27.js":9344,"./28.js":8893,"./29.js":5150,"./3.js":6218,"./30.js":3264,"./31.js":4311,"./32.js":586,"./33.js":7801,"./34.js":9340,"./35.js":627,"./36.js":3046,"./37.js":3765,"./38.js":5352,"./39.js":8511,"./4.js":3731,"./40.js":3459,"./41.js":2172,"./5.js":8268,"./6.js":4357,"./7.js":262,"./8.js":6927,"./9.js":2568};function i(e){var n=o(e);return r(n)}function o(e){if(!r.o(t,e)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return t[e]}i.keys=function(){return Object.keys(t)},i.resolve=o,e.exports=i,i.id=9999}}]); \ No newline at end of file diff --git a/assets/js/d1104007.eec9a0ca.js b/assets/js/d1104007.eec9a0ca.js new file mode 100644 index 000000000..191b21a10 --- /dev/null +++ b/assets/js/d1104007.eec9a0ca.js @@ -0,0 +1 @@ +(self.webpackChunk=self.webpackChunk||[]).push([[5822],{7268:(e,n,r)=>{"use strict";r.d(n,{A:()=>i});r(6540);var t=r(4848);function i(e){const n=e.children.split("\n"),r=n.find((e=>e.trim()!==e)),i=r?/([^\s])/.exec(r).index:0,o=n.map((e=>e.slice(i))).filter(((e,n)=>e.length>0||n>0)).join("\n");return(0,t.jsx)("pre",{children:o})}},5792:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#1: singleSpa.start() was not called"}),(0,i.jsxs)("p",{children:[(0,i.jsx)("a",{href:"/docs/api#start",children:"singleSpa.start()"})," has not been called, 5000ms after single-spa was loaded. Before start() is called, apps can be declared and loaded, but not bootstrapped or mounted."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n // Insert this into your single-spa root config\n singleSpa.start();\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["The single-spa start() API exists to give you fine-grained control over performance. In the majority of use cases, you should call singleSpa.start() immediately after"," ",(0,i.jsx)("a",{href:"http://localhost:3000/docs/api#registerapplication",children:"registering your applications"}),". It was designed for situations where you want to start downloading a single-spa application's code while you're waiting for initial user data or context. To do that, call registerApplication() immediately but delay calling start until the data is loaded."]})]})}},1282:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(4733),i=r(4848);function o(e){return(0,i.jsx)(t.A,{...e,isParcel:!0,appOrParcelName:e.getErrorCodeArg(0,"unknown name"),lifecycleName:"mount"})}},1550:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(4733),i=r(4848);function o(e){return(0,i.jsx)(t.A,{...e,isParcel:!0,appOrParcelName:e.getErrorCodeArg(0,"unknown name"),lifecycleName:"unmount"})}},5880:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(4733),i=r(4848);function o(e){return(0,i.jsx)(t.A,{...e,isParcel:!0,appOrParcelName:e.getErrorCodeArg(0,"unknown name"),lifecycleName:"update"})}},239:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#13: Parcel is not mountable."}),(0,i.jsxs)("p",{children:["Parcel ",e.getErrorCodeArg(0,"unknown name")," is currently in"," ",e.getErrorCodeArg(1)," status. You may only call parcel.mount() when the parcel is in NOT_MOUNTED status."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n const customProps = {domElement: document.getElementById('some-container')}\n const parcel = mountParcel(() => import('./some-parcel.js'), customProps);\n\n parcel.unmount().then(() => {\n // Now the parcel is guaranteed to be in NOT_MOUNTED status, and you can call parcel.mount()\n parcel.mount()\n })\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["Single-spa parcels have a ",(0,i.jsx)("a",{href:"/docs/api/#getappstatus",children:"status"})," ","(same as single-spa applications). You may only attempt to mount a parcel if it is not currently mounted, but parcel.mount() was called when the parcel was in ",e.getErrorCodeArg(1)," status. Note that you normally do not have to call"," ",(0,i.jsx)("a",{href:"/docs/parcels-api/#mount",children:"parcel.mount()"})," at all, since parcel objects will always be mounted the first time by calling"," ",(0,i.jsx)("a",{href:"/docs/parcels-api/#mountparcel",children:"mountParcel()"}),"."]})]})}},2382:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#14: navigateToUrl / singleSpaNavigate was called incorrectly."}),(0,i.jsx)("p",{children:"singleSpaNavigate/navigateToUrl must be either called with a string url, with an anchor element as its context, or with an event whose currentTarget is an anchor element tag"}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:'\n import { navigateToUrl } from \'single-spa\';\n\n navigateToUrl(\'/path\')\n\n // Or via HTML\n Link\n\n // Or via JSX / templates\n Link\n '})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["The singleSpaNavigate global function and the navigateToUrl exported function are identical. They can be used in three different ways, as described in ",(0,i.jsx)("a",{href:"/docs/api/#navigatetourl",children:"the documentation"}),"."]})]})}},6733:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("h1",{children:["#15: lifecycle function ",e.getErrorCodeArg(2)," did not return a promise"]}),(0,i.jsxs)("p",{children:["For ",e.getErrorCodeArg(0,"microfrontend")," ",e.getErrorCodeArg(1),", the lifecycle function"," ",e.getErrorCodeArg(2)," at array index ",e.getErrorCodeArg(3)," did not return a promise."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsxs)("div",{children:[(0,i.jsx)(t.A,{children:"\n // Similar flow applies for other frameworks\n import singleSpaReact from 'single-spa-react';\n import React from 'react';\n import ReactDOM from 'react-dom';\n import Root from './root.component';\n\n const lifecycles = singleSpaReact({\n React,\n ReactDOM,\n rootComponent: Root,\n })\n\n export const bootstrap = lifecycles.bootstrap;\n export const mount = lifecycles.mount;\n export const unmount = lifecycles.unmount;\n "}),(0,i.jsx)(t.A,{children:"\n // If you're implementing your own lifecycle functions, make sure they are async or return a promise.\n export const bootstrap = async () => {\n // do something\n }\n\n export const mount = () => Promise.resolve().then(() => {\n // do something\n })\n\n export const unmount = async () => {\n // do something\n }\n "})]}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:[(0,i.jsx)("a",{href:"/docs/building-applications#registered-application-lifecycle",children:"Lifecycle functions"})," ","are the framework agnostic API that single-spa uses to mount and unmount microfrontends. A lifecycle function is a function that returns a Promise (or an async function). The promise should resolve once the lifecycle has completed bootstrapping, mounting, or unmounting. The most common implementation for lifecycle functions is to use a"," ",(0,i.jsx)("a",{href:"/docs/ecosystem",children:"helper library"})," for your component framework. If you do that, you won't have to implement the lifecycle functions yourself."]})]})}},2148:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#16: setBootstrapMaxTime was called with an invalid maxTime"}),(0,i.jsx)("p",{children:"The setBootstrapMaxTime API must be called with a non-negative integer representing the number of milliseconds to wait before timing out."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { setBootstrapMaxTime } from 'single-spa';\n\n // Must be called with a non-negative integer\n setBootstrapMaxTime(2000);\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See"," ",(0,i.jsx)("a",{href:"/docs/api#setbootstrapmaxtime",children:"setBootstrapMaxTime documentation"}),"."]})]})}},7243:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#17: setMountMaxTime was called with an invalid maxTime"}),(0,i.jsx)("p",{children:"The setMountMaxTime API must be called with a non-negative integer representing the number of milliseconds to wait before timing out."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { setMountMaxTime } from 'single-spa';\n\n // Must be called with a non-negative integer\n setMountMaxTime(2000);\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See"," ",(0,i.jsx)("a",{href:"/docs/api#setmountmaxtime",children:"setMountMaxTime documentation"}),"."]})]})}},9530:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#18: setUnmountMaxTime was called with an invalid maxTime"}),(0,i.jsx)("p",{children:"The setUnmountMaxTime API must be called with a non-negative integer representing the number of milliseconds to wait before timing out."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { setUnmountMaxTime } from 'single-spa';\n\n // Must be called with a non-negative integer\n setUnmountMaxTime(2000);\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See"," ",(0,i.jsx)("a",{href:"/docs/api#setunmountmaxtime",children:"setUnmountMaxTime documentation"}),"."]})]})}},4438:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#19: setUnloadMaxTime was called with an invalid maxTime"}),(0,i.jsx)("p",{children:"The setUnloadMaxTime API must be called with a non-negative integer representing the number of milliseconds to wait before timing out."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { setUnloadMaxTime } from 'single-spa';\n\n // Must be called with a non-negative integer\n setUnloadMaxTime(2000);\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See"," ",(0,i.jsx)("a",{href:"/docs/api#setunloadmaxtime",children:"setUnloadMaxTime documentation"}),"."]})]})}},8745:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#2: Cannot mount parcel - config not provided"}),(0,i.jsx)("p",{children:"Cannot mount parcel without a config object or config loading function."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsxs)("div",{children:[(0,i.jsx)("p",{children:"Raw, framework agnostic code:"}),(0,i.jsx)(t.A,{children:"\n // The most common root cause of this is that the parcelConfig failed to import correctly\n import parcelConfig from './some-file';\n\n console.log('Make sure this is defined!!!', parcelConfig);\n const domElement = document.createElement('div');\n mountParcel(parcelConfig, {domElement})\n "}),(0,i.jsx)("p",{children:"React-specific code"}),(0,i.jsx)(t.A,{children:"\n // If you're using react, this means the config prop you passed in is undefined,\n // perhaps because it failed to import correctly.\n import parcelConfig from './some-file';\n import Parcel from 'single-spa-react/parcel';\n\n console.log('Make sure this is defined!!!', parcelConfig);\n \n "})]}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["The single-spa start() API exists to give you fine-grained control over performance. In the majority of use cases, you should call singleSpa.start() immediately after"," ",(0,i.jsx)("a",{href:"http://localhost:3000/docs/api#registerapplication",children:"registering your applications"}),". It was designed for situations where you want to start downloading a single-spa application's code while you're waiting for initial user data or context. To do that, call registerApplication() immediately but delay calling start until the data is loaded."]})]})}},2373:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#20: The first argument to registerApplication must be a non-empty string 'appName'"}),(0,i.jsx)("p",{children:"When calling registerApplication, the first argument must be the string name of the application."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { registerApplication } from 'single-spa';\n\n registerApplication(\n '@org/name-of-app',\n loadingFunction,\n activityFunction\n )\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See"," ",(0,i.jsx)("a",{href:"/docs/api#registerApplication",children:"registerApplication documentation"}),"."]})]})}},534:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#21: Duplicate application name"}),(0,i.jsxs)("p",{children:["Cannot register application '",e.getErrorCodeArg(0),"' because an application has already been registered with that name."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { registerApplication } from 'single-spa';\n\n registerApplication(\n 'some-other-name',\n loadingFunction,\n activityFunction\n )\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See"," ",(0,i.jsx)("a",{href:"/docs/api#registerApplication",children:"registerApplication documentation"}),"."]})]})}},4355:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#22: Custom props must be an object"}),(0,i.jsxs)("p",{children:["Cannot register application '",e.getErrorCodeArg(0),"' because the customProps are not a plain JavaScript object."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { registerApplication } from 'single-spa';\n\n // customProps must be a plain object (not an Array)\n const customProps = {foo: 'bar'};\n\n registerApplication(\n 'name',\n loadingFunction,\n activityFunction,\n customProps\n )\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See"," ",(0,i.jsx)("a",{href:"/docs/api#registerApplication",children:"registerApplication documentation"}),"."]})]})}},4092:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#23: Application or loading function is required"}),(0,i.jsx)("p",{children:"You cannot register an application without providing a second argument that is an application object or loading function."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { registerApplication } from 'single-spa';\n\n registerApplication(\n 'name',\n // This function is the \"loading function\" and is required\n () => System.import('name'),\n activityFunction\n )\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See ",(0,i.jsx)("a",{href:"/docs/api#registerApplication",children:"registerApplication"})," and"," ",(0,i.jsx)("a",{href:"/docs/configuration#loading-function-or-application",children:"loading function"})," ","documentation."]})]})}},9625:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#24: The activityFunction argument must be a function"}),(0,i.jsx)("p",{children:"You cannot register an application without providing a third argument that is an application's activity function."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { registerApplication } from 'single-spa';\n\n registerApplication(\n 'name',\n () => System.import('name'),\n // The function below is the \"activity function\", which must be provided\n location => location.pathname.startsWith('/name')\n )\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See ",(0,i.jsx)("a",{href:"/docs/api#registerApplication",children:"registerApplication"})," and"," ",(0,i.jsx)("a",{href:"/docs/configuration#activity-function",children:"activity function"})," ","documentation."]})]})}},6490:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#25: Cannot unregister application - does not exist"}),(0,i.jsxs)("p",{children:["You cannot unregister application ",e.getErrorCodeArg(0)," because no application with that name was registered."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n __SINGLE_SPA_DEVTOOLS__.exposedMethods.unregisterApplication(\n 'name-of-an-application',\n )\n "})})]})}},9063:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#26: unloadApplication requires a string 'appName'"}),(0,i.jsx)("p",{children:"You cannot unload an application without providing a string 'appName' argument."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { unloadApplication } from 'single-spa';\n\n // Make sure that name-of-app is a registered application\n unloadApplication('name-of-app');\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See"," ",(0,i.jsx)("a",{href:"/docs/api#unloadApplication",children:"unloadApplication documentation"}),"."]})]})}},9344:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#27: Cannot unload application - no such application"}),(0,i.jsxs)("p",{children:["There is no such application '",e.getErrorCodeArg(0),"', so it cannot be unloaded."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { unloadApplication } from 'single-spa';\n\n // Make sure that name-of-app is a registered application\n unloadApplication('name-of-app');\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See"," ",(0,i.jsx)("a",{href:"/docs/api#unloadApplication",children:"unloadApplication documentation"}),"."]})]})}},8893:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#28: A single-spa error handler must be a function"}),(0,i.jsx)("p",{children:"You must call addErrorHandler with a function handler as an argument."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { addErrorHandler } from 'single-spa';\n\n addErrorHandler(myHandler);\n\n function myHandler(err) {\n console.error(err);\n }\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See"," ",(0,i.jsx)("a",{href:"/docs/api#adderrorhandler",children:"addErrorHandler documentation"}),"."]})]})}},5150:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#29: A single-spa error handler must be a function"}),(0,i.jsx)("p",{children:"You must call removeErrorHandler with a function handler as an argument."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { removeErrorHandler } from 'single-spa';\n\n const wasRemoved = removeErrorHandler(myHandler);\n\n function myHandler(err) {\n console.error(err);\n }\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See"," ",(0,i.jsx)("a",{href:"/docs/api#removeerrorhandler",children:"removeErrorHandler documentation"}),"."]})]})}},6218:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#3: Cannot mount parcel - name is not a string"}),(0,i.jsxs)("p",{children:["Parcel name must be a string, if provided. Was given"," ",(0,i.jsx)("code",{children:e.getErrorCodeArg(0,"unknown")}),"."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsxs)("div",{children:[(0,i.jsx)(t.A,{children:"\n // The easiest way to avoid this error is let single-spa control the name of your parcel\n const parcelConfig = singleSpaReact({...});\n mountParcel(parcelConfig, {domElement});\n "}),(0,i.jsx)(t.A,{children:"\n // Alternatively, you can provide a name but it must be a string\n const parcelConfig = singleSpaReact({...});\n parcelConfig.name = 'my-parcel';\n mountParcel(parcelConfig, {domElement});\n "})]}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["When you call ",(0,i.jsx)("a",{href:"/docs/parcels-api#mountparcel",children:"mountParcel"})," or"," ",(0,i.jsx)("a",{href:"/docs/parcels-api#mountrootparcel",children:"mountRootParcel"}),", you must provide a"," ",(0,i.jsx)("a",{href:"/docs/parcels-overview#parcel-configuration",children:"parcel config"})," ","object. That object may optionally have a string property called name."]})]})}},3264:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#30: Lifecycle function rejected its promise with a non-Error"}),(0,i.jsxs)("p",{children:["For application or parcel ",e.getErrorCodeArg(0),", the lifecycle function ",e.getErrorCodeArg(0)," rejected its promise with something that is not an"," ",(0,i.jsx)("a",{href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error",target:"_blank",children:"Error"})," ","object."]}),(0,i.jsx)("p",{children:"This problem is logged as a warning to the console, but is not thrown as an additional error. The reason it is logged is that only JavaScript Error objects will provide a good stacktrace for you to debug the cause of the Error."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n export function mount() {\n return new Promise((resolve, reject) => {\n // Always reject with an Error.\n reject(new Error('hi'));\n });\n }\n "})})]})}},4311:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#31: Lifecycle function's promise did not resolve or reject"}),(0,i.jsxs)("p",{children:["For ",e.getErrorCodeArg(1)," ",e.getErrorCodeArg(2),", the lifecycle function ",e.getErrorCodeArg(0)," returned a promise that neither resolved or rejected for ",e.getErrorCodeArg(3),"."]}),(0,i.jsxs)("p",{children:["It is possible that this promise resolved after the timeout occurred. Single-spa has a configuration setting called the"," ",(0,i.jsx)("a",{href:"/docs/api#setbootstrapmaxtime",target:"_blank",children:"timeout configuration"})," ","that controls timeouts for lifecycle functions at both a global and per-app level. You may adjust that setting to no longer see this warning, if you'd like to."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n export function mount() {\n return new Promise((resolve, reject) => {\n // Always reject with an Error.\n reject(new Error('hi'));\n });\n }\n "})})]})}},586:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#32: Cannot update a parcel that is not mounted"}),(0,i.jsxs)("p",{children:["You may not update parcel ",e.getErrorCodeArg(0)," because it is not currently in MOUNTED status."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { mountRootParcel } from 'single-spa';\n\n const parcel = mountRootParcel(parcelConfig, { domElement });\n parcel.mountPromise.then(() => {\n // Wait for the parcel to mount before updating it\n parcel.update();\n });\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See ",(0,i.jsx)("a",{href:"/docs/parcels-api#getstatus",children:"documentation"}),"."]})]})}},7801:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#33: Loading function did not return a promise"}),(0,i.jsxs)("p",{children:["The loading function for ",e.getErrorCodeArg(0)," did not return a promise. This is required as part of the registerApplication API."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { registerApplication } from 'single-spa';\n\n registerApplication('name', loadingFn, activityFn);\n\n function loadingFn() {\n // Make sure this returns a promise!\n return System.import('name');\n }\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See ",(0,i.jsx)("a",{href:"/docs/api/#registerapplication",children:"documentation"}),"."]})]})}},9340:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#34: Application must be an object"}),(0,i.jsxs)("p",{children:["The loading function for ",e.getErrorCodeArg(0,"application")," ",e.getErrorCodeArg(1)," returned a promise that resolved with something that is not an object. The loading function should resolve with an application object that has the single-spa lifecycle functions on it."]}),(0,i.jsxs)("p",{children:["The resolved value for the application was was"," ",e.getErrorCodeArg(2)]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n import { registerApplication } from 'single-spa';\n\n registerApplication('name', loadingFn, activityFn);\n\n function loadingFn() {\n // Make sure the resolved value of the promise is an object!\n return System.import('name');\n }\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See ",(0,i.jsx)("a",{href:"/docs/api/#registerapplication",children:"documentation"}),"."]})]})}},627:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#35: Invalid application - no bootstrap function"}),(0,i.jsxs)("p",{children:["The loading function for ",e.getErrorCodeArg(0,"application")," ",e.getErrorCodeArg(1)," returned a promise that resolved with an invalid application object. The loading function should resolve with an application object that has the single-spa lifecycle functions on it. This application did not have a valid bootstrap function."]}),(0,i.jsxs)("p",{children:["The application object was ",e.getErrorCodeArg(2)]}),(0,i.jsx)("p",{children:"This most commonly occurs due to failed webpack or systemjs configuration."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsxs)("div",{children:[(0,i.jsx)(t.A,{children:"\n import { registerApplication } from 'single-spa';\n\n registerApplication('name', loadingFn, activityFn);\n\n function loadingFn() {\n // Make sure the resolved value of the promise is an object!\n return System.import('name');\n }\n "}),(0,i.jsx)(t.A,{children:"\n // If you're using SystemJS, run the following in the browser console to debug\n System.import('name-of-my-application').then(application => {\n // Verify that this object has the lifecycle functions on it.\n // If compiling with webpack and consuming in-browser with SystemJS, consider\n // setting webpack's output.libraryTarget to \"system\".\n console.log(application)\n })\n "})]}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See ",(0,i.jsx)("a",{href:"/docs/api/#registerapplication",children:"documentation"}),"."]})]})}},3046:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#36: Invalid application - no mount function"}),(0,i.jsxs)("p",{children:["The loading function for ",e.getErrorCodeArg(0,"application")," ",e.getErrorCodeArg(1)," returned a promise that resolved with an invalid application object. The loading function should resolve with an application object that has the single-spa lifecycle functions on it. This application did not have a valid mount function."]}),(0,i.jsxs)("p",{children:["The application object was ",e.getErrorCodeArg(2)]}),(0,i.jsx)("p",{children:"This most commonly occurs due to failed webpack or systemjs configuration."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsxs)("div",{children:[(0,i.jsx)(t.A,{children:"\n import { registerApplication } from 'single-spa';\n\n registerApplication('name', loadingFn, activityFn);\n\n function loadingFn() {\n // Make sure the resolved value of the promise is an object!\n return System.import('name');\n }\n "}),(0,i.jsx)(t.A,{children:"\n // If you're using SystemJS, run the following in the browser console to debug\n System.import('name-of-my-application').then(application => {\n // Verify that this object has the lifecycle functions on it.\n // If compiling with webpack and consuming in-browser with SystemJS, consider\n // setting webpack's output.libraryTarget to \"system\".\n console.log(application)\n })\n "})]}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See ",(0,i.jsx)("a",{href:"/docs/api/#registerapplication",children:"documentation"}),"."]})]})}},3765:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#37: Invalid application - no unmount function"}),(0,i.jsxs)("p",{children:["The loading function for ",e.getErrorCodeArg(0,"application")," ",e.getErrorCodeArg(1)," returned a promise that resolved with an invalid application object. The loading function should resolve with an application object that has the single-spa lifecycle functions on it. This application did not have a valid unmount function."]}),(0,i.jsxs)("p",{children:["The application object was ",e.getErrorCodeArg(2)]}),(0,i.jsx)("p",{children:"This most commonly occurs due to failed webpack or systemjs configuration."}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsxs)("div",{children:[(0,i.jsx)(t.A,{children:"\n import { registerApplication } from 'single-spa';\n\n registerApplication('name', loadingFn, activityFn);\n\n function loadingFn() {\n // Make sure the resolved value of the promise is an object!\n return System.import('name');\n }\n "}),(0,i.jsx)(t.A,{children:"\n // If you're using SystemJS, run the following in the browser console to debug\n System.import('name-of-my-application').then(application => {\n // Verify that this object has the lifecycle functions on it.\n // If compiling with webpack and consuming in-browser with SystemJS, consider\n // setting webpack's output.libraryTarget to \"system\".\n console.log(application)\n })\n "})]}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["See ",(0,i.jsx)("a",{href:"/docs/api/#registerapplication",children:"documentation"}),"."]})]})}},5352:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>i});r(6540);var t=r(4848);function i(e){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("h1",{children:"#38: Invalid registerApplication configuration object"}),(0,t.jsxs)("p",{children:['The configuration object in registerApplication accepts only the following keys: "',e.getErrorCodeArg(0),'"']}),(0,t.jsxs)("p",{children:['You provided the following invalid keys: "',e.getErrorCodeArg(1),'"']}),(0,t.jsxs)("p",{children:["See"," ",(0,t.jsx)("a",{href:"/docs/configuration",children:"registerApplication API documentation"})," ","for more information."]})]})}},8511:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>i});r(6540);var t=r(4848);function i(){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("h1",{children:"#39: Invalid registerApplication configuration object"}),(0,t.jsx)("p",{children:"Configuration object can't be an array or null! Please provide a plain object with correct configuration."}),(0,t.jsxs)("p",{children:["See"," ",(0,t.jsx)("a",{href:"/docs/configuration",children:"registerApplication API documentation"})," ","for more information."]})]})}},3731:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#4: Cannot mount parcel - customProps must be an object"}),(0,i.jsxs)("p",{children:["Parcel ",e.getErrorCodeArg(0,"unknown name")," was not provided a customProps object. Was given"," ",(0,i.jsx)("code",{children:e.getErrorCodeArg(1,"unknown customProps")}),"."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n const parcelConfig = singleSpaReact({...});\n const customProps = {domElement: document.getElementById('some-container')}\n\n // You must provide a customProps object with a domElement property as the second argument to mountParcel()\n mountParcel(parcelConfig, customProps);\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["The ",(0,i.jsx)("a",{href:"/docs/parcels-api#mountparcel",children:"mountParcel"})," and"," ",(0,i.jsx)("a",{href:"/docs/parcels-api#mountrootparcel",children:"mountRootParcel"})," apis require that you pass in a second argument."]})]})}},3459:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>i});r(6540);var t=r(4848);function i(e){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("h1",{children:"#40: Invalid custom props returned from function"}),(0,t.jsxs)("p",{children:["The single-spa application ",e.getErrorCodeArg(0)," was registered with a function for its customProps. That function must return an object of custom props, but instead returned ",e.getErrorCodeArg(1),"."]}),(0,t.jsxs)("p",{children:["See the"," ",(0,t.jsx)("a",{href:"/docs/configuration#custom-props",children:"custom props documentation"})," ","for more information."]})]})}},2172:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>i});r(6540);var t=r(4848);function i(e){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("h1",{children:"#41: single-spa is loaded on the page multiple times"}),(0,t.jsx)("p",{children:"The single-spa library should be loaded only one time on the page. This is important both for performance and to avoid bugs. Any functions you import from single-spa are specific to that instance. This means that functions like navigateToUrl, getAppStatus, etc. are specific to the single-spa instance and will not work as expected when you have multiple instances."}),(0,t.jsx)("h2",{children:"To fix:"}),(0,t.jsxs)("p",{children:["Mark single-spa as a"," ",(0,t.jsx)("a",{href:"https://webpack.js.org/configuration/externals/#root",rel:"noopener",target:"_blank",children:"webpack external"})," ","in your root config and in each of your microfrontends. This will ensure that it will be omitted from the bundle and will be provided at runtime in the browser. If using SystemJS, you will need to add single-spa to your ",(0,t.jsx)("a",{href:"/docs/recommended-setup#import-maps",children:"import map"}),"."]}),(0,t.jsx)("h2",{children:"Additional references"}),(0,t.jsxs)("p",{children:["See"," ",(0,t.jsx)("a",{href:"/docs/faq/#can-i-have-only-one-version-of-react-vue-angular-etc-loaded",children:"this FAQ"})," ","and also"," ",(0,t.jsx)("a",{href:"/docs/recommended-setup#shared-dependencies",children:"this documentation"})," ","for additional information."]})]})}},8268:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#5: Cannot mount parcel - customProps.domElement not provided"}),(0,i.jsxs)("p",{children:["Parcel ",e.getErrorCodeArg(0,"unknown name")," was not provided customProps.domElement. The domElement must be a DOMElement container in which the parcel will be mounted."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n const parcelConfig = singleSpaReact({...});\n\n // You must provide a domElement in your customProps provided to mountParcel\n const customProps = {domElement: document.getElementById('some-container')}\n\n mountParcel(parcelConfig, customProps);\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["The ",(0,i.jsx)("a",{href:"/docs/parcels-api#mountparcel",children:"mountParcel"})," and"," ",(0,i.jsx)("a",{href:"/docs/parcels-api#mountrootparcel",children:"mountRootParcel"})," apis require that you pass in customProps that have a property called"," ",(0,i.jsx)("code",{children:"domElement"})," that is a DOMElement."]})]})}},4357:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#6: Cannot unmount parcel because it is not mounted"}),(0,i.jsxs)("p",{children:["Parcel ",e.getErrorCodeArg(0,"unknown name")," cannot be unmounted because it is not currently mounted. The parcel is in"," ",(0,i.jsx)("code",{children:e.getErrorCodeArg(1,"unknown")})," status."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{children:"\n const parcelConfig = singleSpaVue({...});\n const customProps = {domElement: document.getElementById('some-container')}\n const parcel = mountParcel(parcelConfig, customProps);\n\n // Wait for the parcel to mount before attempting to unmount it\n parcel.mountPromise.then(parcel => {\n // Now it is safe to call unmount\n parcel.unmount()\n })\n\n // Or, check the status before unmounting\n if (parcel.getAppStatus() === 'MOUNTED') {\n parcel.unmount()\n }\n "})}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["A parcel has exactly one ",(0,i.jsx)("a",{href:"/docs/api#getappstatus",children:"status"})," ","that indicates which stage of mounting and unmounting it is in. You may only call parcel.unmount() when the parcel is in MOUNTED status."]})]})}},262:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#7: Parcel loading function did not return a promise"}),(0,i.jsx)("p",{children:"When mounting a parcel, the config loading function must return a promise that resolves with the parcel config"}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{children:"Framework agnostic code:"}),(0,i.jsx)(t.A,{children:"\n const customProps = {domElement: document.getElementById('some-container')}\n \n // You need to ensure that the System.import() or import() promise resolves with a valid parcel config object\n const parcel = mountParcel(() => import('./some-parcel.js'), customProps);\n "}),(0,i.jsx)("div",{children:"React code:"}),(0,i.jsx)(t.A,{children:"\n // You need to ensure that the System.import() or import() promise resolves with a valid parcel config object\n System.import('@org-name/some-parcel')} />\n "})]}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["You can call ",(0,i.jsx)("a",{href:"/docs/parcels-api#mountparcel",children:"mountParcel"})," and"," ",(0,i.jsx)("a",{href:"/docs/parcels-api#mountrootparcel",children:"mountRootParcel"})," with a",(0,i.jsx)("a",{href:"https://single-spa.js.org/docs/parcels-api#mountparcel",children:"asynchronous loading function"})," ","as the first argument. When doing so, the loading function must return a promise that resolves with a valid"," ",(0,i.jsx)("a",{href:"https://single-spa.js.org/docs/parcels-overview#parcel-configuration",children:"parcel config object"}),"."]})]})}},6927:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{children:"#8: Loading function resolved with invalid parcel config"}),(0,i.jsx)("p",{children:"When mounting a parcel, the config loading function must return a promise that resolves with the parcel config"}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{children:"Framework agnostic code:"}),(0,i.jsx)(t.A,{children:"\n const customProps = {domElement: document.getElementById('some-container')}\n \n // You need to ensure that the System.import() or import() promise resolves with a valid parcel config object\n const parcel = mountParcel(() => import('./some-parcel.js'), customProps);\n "}),(0,i.jsx)("div",{children:"React code:"}),(0,i.jsx)(t.A,{children:"\n // You need to ensure that the System.import() or import() promise resolves with a valid parcel config object\n System.import('@org-name/some-parcel')} />\n "})]}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["You can call ",(0,i.jsx)("a",{href:"/docs/parcels-api#mountparcel",children:"mountParcel"})," and"," ",(0,i.jsx)("a",{href:"/docs/parcels-api#mountrootparcel",children:"mountRootParcel"})," with a",(0,i.jsx)("a",{href:"https://single-spa.js.org/docs/parcels-api#mountparcel",children:"asynchronous loading function"})," ","as the first argument. When doing so, the loading function must return a promise that resolves with a valid"," ",(0,i.jsx)("a",{href:"https://single-spa.js.org/docs/parcels-overview#parcel-configuration",children:"parcel config object"}),"."]})]})}},2568:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>o});r(6540);var t=r(4733),i=r(4848);function o(e){return(0,i.jsx)(t.A,{...e,isParcel:!0,appOrParcelName:e.getErrorCodeArg(0,"unknown name"),lifecycleName:"bootstrap"})}},4733:(e,n,r)=>{"use strict";r.d(n,{A:()=>o});r(6540);var t=r(7268),i=r(4848);function o(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("h1",{children:["#",e.errorCode,": Invalid ",e.lifecycleName," lifecycle on"," ",e.isParcel?"parcel":"application"]}),(0,i.jsxs)("p",{children:["The ",e.isParcel?"parcel":"application"," ",e.appOrParcelName," ","has an invalid ",e.lifecycleName," lifecycle function."]}),(0,i.jsx)("h2",{children:"To fix:"}),(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{children:"Framework agnostic code:"}),e.isParcel?(0,i.jsx)(t.A,{children:"\n // Create a parcel config by calling singleSpaReact(), singleSpaVue(), singleSpaAngular(), etc.\n const parcelConfig = singleSpaReact({...})\n\n const customProps = {domElement: document.getElementById('some-container')}\n \n // You need to ensure that the System.import() or import() promise resolves with a valid parcel config object\n const parcel = mountParcel(parcelConfig, customProps);\n "}):(0,i.jsx)(t.A,{children:"\n // create your lifecycles with the single-spa helper library for your framework\n const lifecycles = singleSpaAngular({...});\n \n // Export them now\n export const bootstrap = lifecycles.bootstrap;\n export const mount = lifecycles.mount;\n export const unmount = lifecycles.unmount;\n "})]}),(0,i.jsx)("h2",{children:"Explanation:"}),(0,i.jsxs)("p",{children:["The"," ",(0,i.jsxs)("a",{href:e.isParcel?"http://localhost:3000/docs/parcels-api/#parcel-object":"https://single-spa.js.org/docs/building-applications/#lifecycle-props",children:[e.lifecycleName," lifecycle function"]})," ","must be a function or array of functions that return a promise."]})]})}},8974:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>a});r(6540);var t=r(9641),i=r(4848);const o=r(9999);const a=function(e){const n=new URLSearchParams(e.location.search),r="./"+n.get("code")+".js";if(!o.keys().includes(r))return(0,i.jsx)(t.A,{children:(0,i.jsx)("div",{className:"container container--fluid padding-horiz--xl",style:{marginTop:"8px"},children:n.get("code")?"We could not find an explanation page for the error code "+n.get("code"):"No code query param specified. Could not show error page."})});const a=o("./"+n.get("code")+".js").default,s=n.getAll("arg");return(0,i.jsx)(t.A,{children:(0,i.jsxs)("div",{className:"container container--fluid padding-horiz--xl margin-top--xl",style:{marginBottom:"6.8rem"},children:[(0,i.jsx)(a,{errorCodeArgs:s,getErrorCodeArg:function(e,n){const r=n?"("+n+")":"(unknown)";return s.length>e?s[e]:r},errorCode:n.get("code")}),(0,i.jsx)("a",{href:"https://github.com/single-spa/single-spa.js.org/edit/master/website/src/components/Errors/Codes/"+n.get("code")+".js",children:"Edit this page"})]})})}},9999:(e,n,r)=>{var t={"./1.js":5792,"./10.js":1282,"./11.js":1550,"./12.js":5880,"./13.js":239,"./14.js":2382,"./15.js":6733,"./16.js":2148,"./17.js":7243,"./18.js":9530,"./19.js":4438,"./2.js":8745,"./20.js":2373,"./21.js":534,"./22.js":4355,"./23.js":4092,"./24.js":9625,"./25.js":6490,"./26.js":9063,"./27.js":9344,"./28.js":8893,"./29.js":5150,"./3.js":6218,"./30.js":3264,"./31.js":4311,"./32.js":586,"./33.js":7801,"./34.js":9340,"./35.js":627,"./36.js":3046,"./37.js":3765,"./38.js":5352,"./39.js":8511,"./4.js":3731,"./40.js":3459,"./41.js":2172,"./5.js":8268,"./6.js":4357,"./7.js":262,"./8.js":6927,"./9.js":2568};function i(e){var n=o(e);return r(n)}function o(e){if(!r.o(t,e)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return t[e]}i.keys=function(){return Object.keys(t)},i.resolve=o,e.exports=i,i.id=9999}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.28e7ac9b.js b/assets/js/runtime~main.98d231f6.js similarity index 99% rename from assets/js/runtime~main.28e7ac9b.js rename to assets/js/runtime~main.98d231f6.js index b0fc2adce..36adc0f3c 100644 --- a/assets/js/runtime~main.28e7ac9b.js +++ b/assets/js/runtime~main.98d231f6.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,c,f,d={},b={};function r(e){var a=b[e];if(void 0!==a)return a.exports;var c=b[e]={id:e,loaded:!1,exports:{}};return d[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=d,r.c=b,e=[],r.O=(a,c,f,d)=>{if(!c){var b=1/0;for(i=0;i=d)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,d0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[c,f,d]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var d=Object.create(null);r.r(d);var b={};a=a||[null,c({}),c([]),c(c)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((a=>b[a]=()=>e[a]));return b.default=()=>e,r.d(d,b),d},r.d=(e,a)=>{for(var c in a)r.o(a,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,c)=>(r.f[c](e,a),a)),[])),r.u=e=>"assets/js/"+({88:"cae0f04b",189:"3031e46b",220:"40951796",350:"9eb9fa54",373:"3ab9445b",446:"daa69925",467:"572e4edf",515:"1b186f64",569:"015816e2",667:"e4355444",806:"798c9bc2",1124:"ac1a782b",1295:"dc2cd7e2",1355:"7a54a545",1401:"a4df4865",1458:"01a1bba5",1529:"0abd59c6",1532:"caa2e070",1566:"2431ba31",1628:"0df1a66c",1666:"cdaae041",1834:"3827c3c6",1991:"b2b675dd",2043:"ce6e696b",2051:"e6baa823",2099:"b7efbaa4",2107:"cc32fbde",2138:"1a4e3797",2142:"076c147e",2288:"ef491088",2317:"ca5d36aa",2364:"f89f17ac",2404:"2abf66bb",2546:"d3dd1f61",2570:"dce7fd61",2571:"9c153eaa",2590:"850be153",2594:"e076d91c",2598:"a5852e81",2634:"c4f5d8e4",2669:"5509b76f",2711:"9e4087bc",2723:"9d672d00",2729:"696a01cf",2862:"d7647bb5",2879:"5c035ad5",2950:"5b8adf66",3079:"ab6201ac",3249:"ccc49370",3305:"555148a9",3314:"67152cfe",3315:"bdd8dcaf",3328:"decfdbba",3344:"7d35b4a3",3447:"ec93dc32",3513:"b2f554cd",3529:"3a7fefd0",3570:"cc73ed51",3737:"a1c1515a",3811:"f91e79c8",3893:"7bb2f638",3904:"8ad4811d",4043:"b025bb67",4050:"c41acfd1",4060:"e628667e",4067:"02af63f8",4095:"5e12ca1d",4199:"4f0789b6",4279:"528602c4",4343:"91e4d5ec",4349:"382d183c",4370:"6cb48572",4445:"55102a22",4462:"9afda0ee",4498:"d6377ff4",4510:"76852a88",4570:"e6bcd470",4622:"7bb7102b",4656:"3a23d66b",4732:"9d6f1d6a",4748:"bfcd17f4",4833:"69e6e3bb",4860:"e8db9b6a",4894:"80697847",5011:"017c7e36",5036:"4a6c08fa",5220:"99cd0956",5229:"fcc2aa60",5234:"e85cb86b",5281:"feb0df8a",5354:"0ae76a47",5391:"e84c24e5",5438:"42f9def7",5443:"561a3eb1",5450:"1dc3c8d9",5455:"0f85c961",5477:"420a4aff",5584:"a9668f36",5603:"93e8f896",5604:"075c7a17",5660:"38eb30df",5742:"c377a04b",5767:"8eb4e46b",5771:"6588f8a2",5807:"6c11b4de",5822:"d1104007",5840:"46c309cc",5878:"8c472a46",5894:"0a789486",6022:"2cd23ac7",6061:"1f391b9e",6081:"78e9b454",6084:"1943dfb2",6095:"ae4abcdb",6101:"29aa1e09",6178:"8a734aad",6214:"b9edb02a",6226:"c867fe7c",6255:"5896a7ea",6349:"5118ee85",6422:"6317fbe7",6451:"f57aa09c",6516:"a4cef419",6560:"08c25933",6564:"90e0a41c",6628:"f3344494",6664:"e74a79a5",6780:"940fc73a",6805:"98ffbda8",6887:"2e5fe557",6909:"823b648e",7011:"fcfac0f1",7030:"a57ccd44",7036:"e5846443",7077:"f539466a",7098:"a7bd4aaa",7137:"fa29c2d5",7153:"b5351572",7196:"d549428a",7265:"dcc53905",7291:"8f8ee7f5",7362:"342de35e",7380:"ff185f4e",7472:"814f3328",7487:"50fa5667",7497:"ee4f9438",7512:"ac0c4088",7539:"2aac956c",7541:"0b8ff5c4",7586:"fe4bf730",7635:"8ac9c664",7643:"a6aa9e1f",7685:"fc03b22f",7690:"2e1d0e00",7727:"9efeee7f",7733:"0f572e6e",7745:"1b9bd3d9",7764:"c09e1667",7785:"3082ef22",7874:"a1a42c9b",8015:"c01f4ef7",8055:"9093cedc",8333:"d61e08fd",8401:"17896441",8406:"68a4a0c2",8423:"ee76fcac",8429:"3c561f1c",8528:"edba9c72",8550:"88ab1274",8564:"7a77816f",8581:"935f2afb",8602:"a998b65c",8775:"a9afa101",8819:"b3bcde3d",8849:"d488f8a7",8853:"dc7b4688",9005:"fad948d0",9048:"a94703ab",9126:"5c27e93c",9146:"a97faf63",9153:"febdff58",9268:"a6e5e601",9433:"96f9dd39",9509:"85376e8b",9531:"e469ac48",9647:"5e95c892",9672:"dfd9a880",9695:"674fa9c4",9801:"8999baf8",9903:"8bb54e26",9942:"377636fe"}[e]||e)+"."+{88:"302b823c",189:"004cd365",220:"c6221ce0",350:"05b0afa8",373:"a7c97221",416:"b444750d",446:"86d8d961",467:"59a8d603",515:"b8b6f6fd",569:"bac7eadf",667:"21ae6e4a",806:"77f68c98",985:"f97b89f4",1124:"eae9d71c",1295:"e89f6c2a",1355:"9b35ba76",1401:"47cea819",1458:"b2788fed",1529:"38be1e8f",1532:"bc0c013c",1566:"420d4c87",1628:"f727a3da",1666:"4d438b77",1834:"c3037c1a",1991:"52e5c0d8",2043:"a622a8e5",2051:"54712561",2099:"34fca0f5",2107:"4055c590",2138:"c77e0835",2142:"540f8134",2237:"142894c1",2288:"a48ce8d7",2317:"409281c7",2364:"bb9166d2",2404:"644a7133",2546:"5da15dd0",2570:"7755820c",2571:"76ecf634",2590:"9b366fef",2594:"dad62b1c",2598:"1cb08ad6",2634:"3c5853db",2669:"71fc14d2",2711:"97405554",2723:"4011f9b6",2729:"dcc743d4",2862:"3bd13d47",2879:"ba191d37",2950:"740d8833",3079:"3ed595a7",3249:"50862a89",3305:"3c4a8902",3314:"85cb824b",3315:"754c87d5",3328:"b2cbabe6",3344:"e8ec6311",3447:"dfcd9ea9",3513:"e2985198",3529:"cf8148cb",3570:"8c5f1ddf",3737:"8879917f",3811:"e78ed917",3893:"5b1c5689",3904:"20d40921",4043:"dec3b70f",4050:"3b8ea987",4060:"e5230aa0",4067:"ced52ba9",4095:"ab505c43",4199:"8232b41c",4279:"980add8a",4343:"b9111d9c",4349:"3abfdbba",4370:"59d71911",4445:"5d58e1db",4462:"2539e8a4",4498:"2fd845a0",4510:"6f2f3bc4",4570:"e81456df",4622:"e6a1e618",4656:"7e983e89",4732:"5c3b5e5b",4748:"82c06360",4833:"36673e20",4860:"36bc2cb7",4894:"1dfb400e",5011:"c76a7393",5036:"1c0d196e",5220:"5a9194cc",5229:"77000c5c",5234:"47c912e2",5281:"f01423cd",5354:"715dffee",5391:"15e65363",5438:"5f40b003",5443:"a321f3db",5450:"58bc5ed3",5455:"6f86e938",5477:"3c6518a2",5584:"72a96050",5603:"2d67edf6",5604:"17f0ee5e",5660:"122fa29d",5742:"2d8ebb25",5767:"773cc9c5",5771:"1746c76c",5807:"4e8bd98a",5822:"7c9607a5",5840:"aa74f28f",5878:"111bcb41",5894:"e62e73b7",6022:"cf954b65",6061:"fe882a6e",6081:"44bd04d8",6084:"35313978",6095:"3b2a4222",6101:"c57f85b3",6178:"a5ac8c27",6214:"60c2637a",6226:"7348ee67",6255:"9f9af63b",6349:"75add21e",6422:"3574e24c",6451:"3e59e506",6516:"52815850",6560:"bc5c0b94",6564:"80a1d33d",6628:"a5f4ab2d",6664:"b6966d56",6780:"aea705d4",6805:"a66c2c97",6887:"5c3378a7",6909:"33513b02",7011:"bd90c8c2",7030:"90090bc6",7036:"932747d9",7077:"64c97f52",7098:"0086a292",7137:"3df033ae",7153:"84a54bfa",7196:"2210ab48",7265:"cd4bf74b",7291:"9d9b2e33",7362:"3ac7407a",7380:"4918a68c",7472:"061d2f9f",7487:"efd89bce",7497:"41f437e3",7512:"05ad754a",7539:"3a617416",7541:"f15eed1b",7586:"61038917",7635:"bdd19a76",7643:"773e115b",7685:"bfa0ef25",7690:"a143c35f",7727:"519666b9",7733:"0da0fc72",7745:"2484414b",7764:"85b10151",7785:"9d9061f0",7874:"e74ef182",8015:"ca136caf",8055:"69d8ccc9",8333:"f59ea560",8401:"da12f7c7",8406:"f5c01c0d",8423:"f8dc7e98",8429:"00e45382",8528:"a3b0b85e",8550:"5e9df2c9",8564:"b1352cda",8581:"01fb47d4",8602:"437e4280",8747:"14ecf1a7",8775:"03960ff1",8819:"1079ba07",8849:"6571621e",8853:"5317364b",8913:"b6f04e6e",9005:"2379ab99",9048:"6b9d296d",9126:"1e0e84c4",9146:"496730f9",9153:"f973f826",9268:"ea7806ff",9433:"9ec96a47",9462:"5f105120",9509:"2f42710f",9531:"66eca5d4",9647:"d4a2a90d",9672:"497f0d49",9695:"bcf3cae5",9801:"cac8d9d2",9903:"2c58bb4d",9942:"c4f03700"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},r.l=(e,a,c,d)=>{if(f[e])f[e].push(a);else{var b,t;if(void 0!==c)for(var o=document.getElementsByTagName("script"),n=0;n{b.onerror=b.onload=null,clearTimeout(u);var d=f[e];if(delete f[e],b.parentNode&&b.parentNode.removeChild(b),d&&d.forEach((e=>e(c))),a)return a(c)},u=setTimeout(l.bind(null,void 0,{type:"timeout",target:b}),12e4);b.onerror=l.bind(null,b.onerror),b.onload=l.bind(null,b.onload),t&&document.head.appendChild(b)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"8401",40951796:"220",80697847:"4894",cae0f04b:"88","3031e46b":"189","9eb9fa54":"350","3ab9445b":"373",daa69925:"446","572e4edf":"467","1b186f64":"515","015816e2":"569",e4355444:"667","798c9bc2":"806",ac1a782b:"1124",dc2cd7e2:"1295","7a54a545":"1355",a4df4865:"1401","01a1bba5":"1458","0abd59c6":"1529",caa2e070:"1532","2431ba31":"1566","0df1a66c":"1628",cdaae041:"1666","3827c3c6":"1834",b2b675dd:"1991",ce6e696b:"2043",e6baa823:"2051",b7efbaa4:"2099",cc32fbde:"2107","1a4e3797":"2138","076c147e":"2142",ef491088:"2288",ca5d36aa:"2317",f89f17ac:"2364","2abf66bb":"2404",d3dd1f61:"2546",dce7fd61:"2570","9c153eaa":"2571","850be153":"2590",e076d91c:"2594",a5852e81:"2598",c4f5d8e4:"2634","5509b76f":"2669","9e4087bc":"2711","9d672d00":"2723","696a01cf":"2729",d7647bb5:"2862","5c035ad5":"2879","5b8adf66":"2950",ab6201ac:"3079",ccc49370:"3249","555148a9":"3305","67152cfe":"3314",bdd8dcaf:"3315",decfdbba:"3328","7d35b4a3":"3344",ec93dc32:"3447",b2f554cd:"3513","3a7fefd0":"3529",cc73ed51:"3570",a1c1515a:"3737",f91e79c8:"3811","7bb2f638":"3893","8ad4811d":"3904",b025bb67:"4043",c41acfd1:"4050",e628667e:"4060","02af63f8":"4067","5e12ca1d":"4095","4f0789b6":"4199","528602c4":"4279","91e4d5ec":"4343","382d183c":"4349","6cb48572":"4370","55102a22":"4445","9afda0ee":"4462",d6377ff4:"4498","76852a88":"4510",e6bcd470:"4570","7bb7102b":"4622","3a23d66b":"4656","9d6f1d6a":"4732",bfcd17f4:"4748","69e6e3bb":"4833",e8db9b6a:"4860","017c7e36":"5011","4a6c08fa":"5036","99cd0956":"5220",fcc2aa60:"5229",e85cb86b:"5234",feb0df8a:"5281","0ae76a47":"5354",e84c24e5:"5391","42f9def7":"5438","561a3eb1":"5443","1dc3c8d9":"5450","0f85c961":"5455","420a4aff":"5477",a9668f36:"5584","93e8f896":"5603","075c7a17":"5604","38eb30df":"5660",c377a04b:"5742","8eb4e46b":"5767","6588f8a2":"5771","6c11b4de":"5807",d1104007:"5822","46c309cc":"5840","8c472a46":"5878","0a789486":"5894","2cd23ac7":"6022","1f391b9e":"6061","78e9b454":"6081","1943dfb2":"6084",ae4abcdb:"6095","29aa1e09":"6101","8a734aad":"6178",b9edb02a:"6214",c867fe7c:"6226","5896a7ea":"6255","5118ee85":"6349","6317fbe7":"6422",f57aa09c:"6451",a4cef419:"6516","08c25933":"6560","90e0a41c":"6564",f3344494:"6628",e74a79a5:"6664","940fc73a":"6780","98ffbda8":"6805","2e5fe557":"6887","823b648e":"6909",fcfac0f1:"7011",a57ccd44:"7030",e5846443:"7036",f539466a:"7077",a7bd4aaa:"7098",fa29c2d5:"7137",b5351572:"7153",d549428a:"7196",dcc53905:"7265","8f8ee7f5":"7291","342de35e":"7362",ff185f4e:"7380","814f3328":"7472","50fa5667":"7487",ee4f9438:"7497",ac0c4088:"7512","2aac956c":"7539","0b8ff5c4":"7541",fe4bf730:"7586","8ac9c664":"7635",a6aa9e1f:"7643",fc03b22f:"7685","2e1d0e00":"7690","9efeee7f":"7727","0f572e6e":"7733","1b9bd3d9":"7745",c09e1667:"7764","3082ef22":"7785",a1a42c9b:"7874",c01f4ef7:"8015","9093cedc":"8055",d61e08fd:"8333","68a4a0c2":"8406",ee76fcac:"8423","3c561f1c":"8429",edba9c72:"8528","88ab1274":"8550","7a77816f":"8564","935f2afb":"8581",a998b65c:"8602",a9afa101:"8775",b3bcde3d:"8819",d488f8a7:"8849",dc7b4688:"8853",fad948d0:"9005",a94703ab:"9048","5c27e93c":"9126",a97faf63:"9146",febdff58:"9153",a6e5e601:"9268","96f9dd39":"9433","85376e8b":"9509",e469ac48:"9531","5e95c892":"9647",dfd9a880:"9672","674fa9c4":"9695","8999baf8":"9801","8bb54e26":"9903","377636fe":"9942"}[e]||e,r.p+r.u(e)},(()=>{var e={2973:0,1869:0};r.f.j=(a,c)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)c.push(f[2]);else if(/^(1869|2973)$/.test(a))e[a]=0;else{var d=new Promise(((c,d)=>f=e[a]=[c,d]));c.push(f[2]=d);var b=r.p+r.u(a),t=new Error;r.l(b,(c=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var d=c&&("load"===c.type?"missing":c.type),b=c&&c.target&&c.target.src;t.message="Loading chunk "+a+" failed.\n("+d+": "+b+")",t.name="ChunkLoadError",t.type=d,t.request=b,f[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,c)=>{var f,d,b=c[0],t=c[1],o=c[2],n=0;if(b.some((a=>0!==e[a]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(c);n{"use strict";var e,a,c,f,d={},b={};function r(e){var a=b[e];if(void 0!==a)return a.exports;var c=b[e]={id:e,loaded:!1,exports:{}};return d[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=d,r.c=b,e=[],r.O=(a,c,f,d)=>{if(!c){var b=1/0;for(i=0;i=d)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,d0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[c,f,d]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var d=Object.create(null);r.r(d);var b={};a=a||[null,c({}),c([]),c(c)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((a=>b[a]=()=>e[a]));return b.default=()=>e,r.d(d,b),d},r.d=(e,a)=>{for(var c in a)r.o(a,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,c)=>(r.f[c](e,a),a)),[])),r.u=e=>"assets/js/"+({88:"cae0f04b",189:"3031e46b",220:"40951796",350:"9eb9fa54",373:"3ab9445b",446:"daa69925",467:"572e4edf",515:"1b186f64",569:"015816e2",667:"e4355444",806:"798c9bc2",1124:"ac1a782b",1295:"dc2cd7e2",1355:"7a54a545",1401:"a4df4865",1458:"01a1bba5",1529:"0abd59c6",1532:"caa2e070",1566:"2431ba31",1628:"0df1a66c",1666:"cdaae041",1834:"3827c3c6",1991:"b2b675dd",2043:"ce6e696b",2051:"e6baa823",2099:"b7efbaa4",2107:"cc32fbde",2138:"1a4e3797",2142:"076c147e",2288:"ef491088",2317:"ca5d36aa",2364:"f89f17ac",2404:"2abf66bb",2546:"d3dd1f61",2570:"dce7fd61",2571:"9c153eaa",2590:"850be153",2594:"e076d91c",2598:"a5852e81",2634:"c4f5d8e4",2669:"5509b76f",2711:"9e4087bc",2723:"9d672d00",2729:"696a01cf",2862:"d7647bb5",2879:"5c035ad5",2950:"5b8adf66",3079:"ab6201ac",3249:"ccc49370",3305:"555148a9",3314:"67152cfe",3315:"bdd8dcaf",3328:"decfdbba",3344:"7d35b4a3",3447:"ec93dc32",3513:"b2f554cd",3529:"3a7fefd0",3570:"cc73ed51",3737:"a1c1515a",3811:"f91e79c8",3893:"7bb2f638",3904:"8ad4811d",4043:"b025bb67",4050:"c41acfd1",4060:"e628667e",4067:"02af63f8",4095:"5e12ca1d",4199:"4f0789b6",4279:"528602c4",4343:"91e4d5ec",4349:"382d183c",4370:"6cb48572",4445:"55102a22",4462:"9afda0ee",4498:"d6377ff4",4510:"76852a88",4570:"e6bcd470",4622:"7bb7102b",4656:"3a23d66b",4732:"9d6f1d6a",4748:"bfcd17f4",4833:"69e6e3bb",4860:"e8db9b6a",4894:"80697847",5011:"017c7e36",5036:"4a6c08fa",5220:"99cd0956",5229:"fcc2aa60",5234:"e85cb86b",5281:"feb0df8a",5354:"0ae76a47",5391:"e84c24e5",5438:"42f9def7",5443:"561a3eb1",5450:"1dc3c8d9",5455:"0f85c961",5477:"420a4aff",5584:"a9668f36",5603:"93e8f896",5604:"075c7a17",5660:"38eb30df",5742:"c377a04b",5767:"8eb4e46b",5771:"6588f8a2",5807:"6c11b4de",5822:"d1104007",5840:"46c309cc",5878:"8c472a46",5894:"0a789486",6022:"2cd23ac7",6061:"1f391b9e",6081:"78e9b454",6084:"1943dfb2",6095:"ae4abcdb",6101:"29aa1e09",6178:"8a734aad",6214:"b9edb02a",6226:"c867fe7c",6255:"5896a7ea",6349:"5118ee85",6422:"6317fbe7",6451:"f57aa09c",6516:"a4cef419",6560:"08c25933",6564:"90e0a41c",6628:"f3344494",6664:"e74a79a5",6780:"940fc73a",6805:"98ffbda8",6887:"2e5fe557",6909:"823b648e",7011:"fcfac0f1",7030:"a57ccd44",7036:"e5846443",7077:"f539466a",7098:"a7bd4aaa",7137:"fa29c2d5",7153:"b5351572",7196:"d549428a",7265:"dcc53905",7291:"8f8ee7f5",7362:"342de35e",7380:"ff185f4e",7472:"814f3328",7487:"50fa5667",7497:"ee4f9438",7512:"ac0c4088",7539:"2aac956c",7541:"0b8ff5c4",7586:"fe4bf730",7635:"8ac9c664",7643:"a6aa9e1f",7685:"fc03b22f",7690:"2e1d0e00",7727:"9efeee7f",7733:"0f572e6e",7745:"1b9bd3d9",7764:"c09e1667",7785:"3082ef22",7874:"a1a42c9b",8015:"c01f4ef7",8055:"9093cedc",8333:"d61e08fd",8401:"17896441",8406:"68a4a0c2",8423:"ee76fcac",8429:"3c561f1c",8528:"edba9c72",8550:"88ab1274",8564:"7a77816f",8581:"935f2afb",8602:"a998b65c",8775:"a9afa101",8819:"b3bcde3d",8849:"d488f8a7",8853:"dc7b4688",9005:"fad948d0",9048:"a94703ab",9126:"5c27e93c",9146:"a97faf63",9153:"febdff58",9268:"a6e5e601",9433:"96f9dd39",9509:"85376e8b",9531:"e469ac48",9647:"5e95c892",9672:"dfd9a880",9695:"674fa9c4",9801:"8999baf8",9903:"8bb54e26",9942:"377636fe"}[e]||e)+"."+{88:"302b823c",189:"004cd365",220:"c6221ce0",350:"05b0afa8",373:"a7c97221",416:"b444750d",446:"86d8d961",467:"59a8d603",515:"b8b6f6fd",569:"bac7eadf",667:"21ae6e4a",806:"77f68c98",985:"f97b89f4",1124:"eae9d71c",1295:"e89f6c2a",1355:"9b35ba76",1401:"47cea819",1458:"b2788fed",1529:"38be1e8f",1532:"bc0c013c",1566:"420d4c87",1628:"f727a3da",1666:"4d438b77",1834:"c3037c1a",1991:"52e5c0d8",2043:"a622a8e5",2051:"54712561",2099:"34fca0f5",2107:"4055c590",2138:"c77e0835",2142:"540f8134",2237:"142894c1",2288:"a48ce8d7",2317:"409281c7",2364:"bb9166d2",2404:"644a7133",2546:"5da15dd0",2570:"7755820c",2571:"76ecf634",2590:"9b366fef",2594:"dad62b1c",2598:"1cb08ad6",2634:"3c5853db",2669:"71fc14d2",2711:"97405554",2723:"4011f9b6",2729:"dcc743d4",2862:"3bd13d47",2879:"ba191d37",2950:"740d8833",3079:"3ed595a7",3249:"50862a89",3305:"3c4a8902",3314:"85cb824b",3315:"754c87d5",3328:"b2cbabe6",3344:"e8ec6311",3447:"dfcd9ea9",3513:"e2985198",3529:"cf8148cb",3570:"8c5f1ddf",3737:"8879917f",3811:"e78ed917",3893:"5b1c5689",3904:"20d40921",4043:"dec3b70f",4050:"3b8ea987",4060:"e5230aa0",4067:"ced52ba9",4095:"ab505c43",4199:"8232b41c",4279:"980add8a",4343:"b9111d9c",4349:"3abfdbba",4370:"59d71911",4445:"5d58e1db",4462:"2539e8a4",4498:"2fd845a0",4510:"6f2f3bc4",4570:"e81456df",4622:"e6a1e618",4656:"7e983e89",4732:"5c3b5e5b",4748:"82c06360",4833:"36673e20",4860:"36bc2cb7",4894:"1dfb400e",5011:"c76a7393",5036:"1c0d196e",5220:"5a9194cc",5229:"77000c5c",5234:"47c912e2",5281:"f01423cd",5354:"715dffee",5391:"15e65363",5438:"5f40b003",5443:"a321f3db",5450:"58bc5ed3",5455:"6f86e938",5477:"3c6518a2",5584:"72a96050",5603:"2d67edf6",5604:"17f0ee5e",5660:"122fa29d",5742:"2d8ebb25",5767:"773cc9c5",5771:"1746c76c",5807:"4e8bd98a",5822:"eec9a0ca",5840:"aa74f28f",5878:"111bcb41",5894:"e62e73b7",6022:"cf954b65",6061:"fe882a6e",6081:"44bd04d8",6084:"35313978",6095:"3b2a4222",6101:"c57f85b3",6178:"a5ac8c27",6214:"60c2637a",6226:"7348ee67",6255:"9f9af63b",6349:"75add21e",6422:"3574e24c",6451:"3e59e506",6516:"52815850",6560:"bc5c0b94",6564:"80a1d33d",6628:"a5f4ab2d",6664:"b6966d56",6780:"aea705d4",6805:"a66c2c97",6887:"5c3378a7",6909:"33513b02",7011:"bd90c8c2",7030:"90090bc6",7036:"932747d9",7077:"64c97f52",7098:"0086a292",7137:"3df033ae",7153:"84a54bfa",7196:"2210ab48",7265:"cd4bf74b",7291:"9d9b2e33",7362:"3ac7407a",7380:"4918a68c",7472:"061d2f9f",7487:"efd89bce",7497:"41f437e3",7512:"05ad754a",7539:"3a617416",7541:"f15eed1b",7586:"61038917",7635:"bdd19a76",7643:"773e115b",7685:"bfa0ef25",7690:"a143c35f",7727:"519666b9",7733:"0da0fc72",7745:"2484414b",7764:"85b10151",7785:"9d9061f0",7874:"e74ef182",8015:"ca136caf",8055:"69d8ccc9",8333:"f59ea560",8401:"da12f7c7",8406:"f5c01c0d",8423:"f8dc7e98",8429:"00e45382",8528:"a3b0b85e",8550:"5e9df2c9",8564:"b1352cda",8581:"01fb47d4",8602:"437e4280",8747:"14ecf1a7",8775:"03960ff1",8819:"1079ba07",8849:"6571621e",8853:"5317364b",8913:"b6f04e6e",9005:"2379ab99",9048:"6b9d296d",9126:"1e0e84c4",9146:"496730f9",9153:"f973f826",9268:"ea7806ff",9433:"9ec96a47",9462:"5f105120",9509:"2f42710f",9531:"66eca5d4",9647:"d4a2a90d",9672:"497f0d49",9695:"bcf3cae5",9801:"cac8d9d2",9903:"2c58bb4d",9942:"c4f03700"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},r.l=(e,a,c,d)=>{if(f[e])f[e].push(a);else{var b,t;if(void 0!==c)for(var o=document.getElementsByTagName("script"),n=0;n{b.onerror=b.onload=null,clearTimeout(u);var d=f[e];if(delete f[e],b.parentNode&&b.parentNode.removeChild(b),d&&d.forEach((e=>e(c))),a)return a(c)},u=setTimeout(l.bind(null,void 0,{type:"timeout",target:b}),12e4);b.onerror=l.bind(null,b.onerror),b.onload=l.bind(null,b.onload),t&&document.head.appendChild(b)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"8401",40951796:"220",80697847:"4894",cae0f04b:"88","3031e46b":"189","9eb9fa54":"350","3ab9445b":"373",daa69925:"446","572e4edf":"467","1b186f64":"515","015816e2":"569",e4355444:"667","798c9bc2":"806",ac1a782b:"1124",dc2cd7e2:"1295","7a54a545":"1355",a4df4865:"1401","01a1bba5":"1458","0abd59c6":"1529",caa2e070:"1532","2431ba31":"1566","0df1a66c":"1628",cdaae041:"1666","3827c3c6":"1834",b2b675dd:"1991",ce6e696b:"2043",e6baa823:"2051",b7efbaa4:"2099",cc32fbde:"2107","1a4e3797":"2138","076c147e":"2142",ef491088:"2288",ca5d36aa:"2317",f89f17ac:"2364","2abf66bb":"2404",d3dd1f61:"2546",dce7fd61:"2570","9c153eaa":"2571","850be153":"2590",e076d91c:"2594",a5852e81:"2598",c4f5d8e4:"2634","5509b76f":"2669","9e4087bc":"2711","9d672d00":"2723","696a01cf":"2729",d7647bb5:"2862","5c035ad5":"2879","5b8adf66":"2950",ab6201ac:"3079",ccc49370:"3249","555148a9":"3305","67152cfe":"3314",bdd8dcaf:"3315",decfdbba:"3328","7d35b4a3":"3344",ec93dc32:"3447",b2f554cd:"3513","3a7fefd0":"3529",cc73ed51:"3570",a1c1515a:"3737",f91e79c8:"3811","7bb2f638":"3893","8ad4811d":"3904",b025bb67:"4043",c41acfd1:"4050",e628667e:"4060","02af63f8":"4067","5e12ca1d":"4095","4f0789b6":"4199","528602c4":"4279","91e4d5ec":"4343","382d183c":"4349","6cb48572":"4370","55102a22":"4445","9afda0ee":"4462",d6377ff4:"4498","76852a88":"4510",e6bcd470:"4570","7bb7102b":"4622","3a23d66b":"4656","9d6f1d6a":"4732",bfcd17f4:"4748","69e6e3bb":"4833",e8db9b6a:"4860","017c7e36":"5011","4a6c08fa":"5036","99cd0956":"5220",fcc2aa60:"5229",e85cb86b:"5234",feb0df8a:"5281","0ae76a47":"5354",e84c24e5:"5391","42f9def7":"5438","561a3eb1":"5443","1dc3c8d9":"5450","0f85c961":"5455","420a4aff":"5477",a9668f36:"5584","93e8f896":"5603","075c7a17":"5604","38eb30df":"5660",c377a04b:"5742","8eb4e46b":"5767","6588f8a2":"5771","6c11b4de":"5807",d1104007:"5822","46c309cc":"5840","8c472a46":"5878","0a789486":"5894","2cd23ac7":"6022","1f391b9e":"6061","78e9b454":"6081","1943dfb2":"6084",ae4abcdb:"6095","29aa1e09":"6101","8a734aad":"6178",b9edb02a:"6214",c867fe7c:"6226","5896a7ea":"6255","5118ee85":"6349","6317fbe7":"6422",f57aa09c:"6451",a4cef419:"6516","08c25933":"6560","90e0a41c":"6564",f3344494:"6628",e74a79a5:"6664","940fc73a":"6780","98ffbda8":"6805","2e5fe557":"6887","823b648e":"6909",fcfac0f1:"7011",a57ccd44:"7030",e5846443:"7036",f539466a:"7077",a7bd4aaa:"7098",fa29c2d5:"7137",b5351572:"7153",d549428a:"7196",dcc53905:"7265","8f8ee7f5":"7291","342de35e":"7362",ff185f4e:"7380","814f3328":"7472","50fa5667":"7487",ee4f9438:"7497",ac0c4088:"7512","2aac956c":"7539","0b8ff5c4":"7541",fe4bf730:"7586","8ac9c664":"7635",a6aa9e1f:"7643",fc03b22f:"7685","2e1d0e00":"7690","9efeee7f":"7727","0f572e6e":"7733","1b9bd3d9":"7745",c09e1667:"7764","3082ef22":"7785",a1a42c9b:"7874",c01f4ef7:"8015","9093cedc":"8055",d61e08fd:"8333","68a4a0c2":"8406",ee76fcac:"8423","3c561f1c":"8429",edba9c72:"8528","88ab1274":"8550","7a77816f":"8564","935f2afb":"8581",a998b65c:"8602",a9afa101:"8775",b3bcde3d:"8819",d488f8a7:"8849",dc7b4688:"8853",fad948d0:"9005",a94703ab:"9048","5c27e93c":"9126",a97faf63:"9146",febdff58:"9153",a6e5e601:"9268","96f9dd39":"9433","85376e8b":"9509",e469ac48:"9531","5e95c892":"9647",dfd9a880:"9672","674fa9c4":"9695","8999baf8":"9801","8bb54e26":"9903","377636fe":"9942"}[e]||e,r.p+r.u(e)},(()=>{var e={2973:0,1869:0};r.f.j=(a,c)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)c.push(f[2]);else if(/^(1869|2973)$/.test(a))e[a]=0;else{var d=new Promise(((c,d)=>f=e[a]=[c,d]));c.push(f[2]=d);var b=r.p+r.u(a),t=new Error;r.l(b,(c=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var d=c&&("load"===c.type?"missing":c.type),b=c&&c.target&&c.target.src;t.message="Loading chunk "+a+" failed.\n("+d+": "+b+")",t.name="ChunkLoadError",t.type=d,t.request=b,f[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,c)=>{var f,d,b=c[0],t=c[1],o=c[2],n=0;if(b.some((a=>0!==e[a]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(c);n