├── docs
├── .nojekyll
├── CNAME
├── favicon.ico
├── _next
│ └── static
│ │ ├── webpack
│ │ ├── ae0dab07a800f6d9653f.hot-update.json
│ │ ├── e48945a4296d726faf59.hot-update.json
│ │ └── f9c671d48c662a35911f.hot-update.json
│ │ ├── development
│ │ ├── _ssgManifest.js
│ │ ├── _buildManifest.js
│ │ └── pages
│ │ │ ├── employed.js
│ │ │ ├── index.js
│ │ │ └── employment-type.js
│ │ ├── iNnaT_HIqVHVbBmAztPXf
│ │ ├── _ssgManifest.js
│ │ ├── _buildManifest.js
│ │ └── pages
│ │ │ ├── employed.js
│ │ │ ├── unemployed.js
│ │ │ ├── index.js
│ │ │ ├── employment-type.js
│ │ │ └── _error.js
│ │ ├── runtime
│ │ ├── webpack-c212667a5f965e81e004.js
│ │ ├── main-3b9d336c4548fda92887.js
│ │ └── webpack.js
│ │ ├── chunks
│ │ ├── 0.js
│ │ └── 3be42628624cfdb24f6ed9a498617fe69bbd45a5.36a881b4253e934d1e53.js
│ │ └── css
│ │ └── 54725c2945ebfd324f8a.css
├── vercel.svg
├── employed.html
├── unemployed.html
├── index.html
├── employment-type.html
└── 404.html
├── .github
└── demo.gif
├── public
├── favicon.ico
└── vercel.svg
├── bin
└── build.sh
├── src
├── pages
│ ├── employed.js
│ ├── unemployed.js
│ ├── api
│ │ └── hello.js
│ ├── index.js
│ ├── employment-type.js
│ └── _app.js
├── components
│ └── FormStateEditor.js
└── flow
│ └── useRoutingMachine.js
├── package.json
├── .gitignore
└── README.md
/docs/.nojekyll:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/CNAME:
--------------------------------------------------------------------------------
1 | xstate-flow-demo.sawyer.soy
2 |
--------------------------------------------------------------------------------
/.github/demo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sawyerh/xstate-flow-demo/HEAD/.github/demo.gif
--------------------------------------------------------------------------------
/docs/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sawyerh/xstate-flow-demo/HEAD/docs/favicon.ico
--------------------------------------------------------------------------------
/docs/_next/static/webpack/ae0dab07a800f6d9653f.hot-update.json:
--------------------------------------------------------------------------------
1 | {"h":"51c24c151a7063f0c2a2","c":{}}
--------------------------------------------------------------------------------
/docs/_next/static/webpack/e48945a4296d726faf59.hot-update.json:
--------------------------------------------------------------------------------
1 | {"h":"ae0dab07a800f6d9653f","c":{}}
--------------------------------------------------------------------------------
/docs/_next/static/webpack/f9c671d48c662a35911f.hot-update.json:
--------------------------------------------------------------------------------
1 | {"h":"e48945a4296d726faf59","c":{}}
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sawyerh/xstate-flow-demo/HEAD/public/favicon.ico
--------------------------------------------------------------------------------
/docs/_next/static/development/_ssgManifest.js:
--------------------------------------------------------------------------------
1 | self.__SSG_MANIFEST=new Set;self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB()
--------------------------------------------------------------------------------
/docs/_next/static/development/_buildManifest.js:
--------------------------------------------------------------------------------
1 | self.__BUILD_MANIFEST = {};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
--------------------------------------------------------------------------------
/docs/_next/static/iNnaT_HIqVHVbBmAztPXf/_ssgManifest.js:
--------------------------------------------------------------------------------
1 | self.__SSG_MANIFEST=new Set;self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB()
--------------------------------------------------------------------------------
/docs/_next/static/iNnaT_HIqVHVbBmAztPXf/_buildManifest.js:
--------------------------------------------------------------------------------
1 | self.__BUILD_MANIFEST = {};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
--------------------------------------------------------------------------------
/bin/build.sh:
--------------------------------------------------------------------------------
1 | rm -rf ./next
2 | rm -r ./docs
3 | next build
4 | next export -o docs
5 | touch docs/.nojekyll
6 | echo 'xstate-flow-demo.sawyer.soy' > docs/CNAME
--------------------------------------------------------------------------------
/src/pages/employed.js:
--------------------------------------------------------------------------------
1 | export default function Page() {
2 | return (
3 | <>
4 |
Employed
5 | Last page in the flow
6 | >
7 | );
8 | }
9 |
--------------------------------------------------------------------------------
/src/pages/unemployed.js:
--------------------------------------------------------------------------------
1 | export default function Page() {
2 | return (
3 | <>
4 | Unemployed
5 | Last page in the flow
6 | >
7 | );
8 | }
9 |
--------------------------------------------------------------------------------
/src/pages/api/hello.js:
--------------------------------------------------------------------------------
1 | // Next.js API route support: https://nextjs.org/docs/api-routes/introduction
2 |
3 | export default (req, res) => {
4 | res.statusCode = 200
5 | res.json({ name: 'John Doe' })
6 | }
7 |
--------------------------------------------------------------------------------
/src/pages/index.js:
--------------------------------------------------------------------------------
1 | export default function Page() {
2 | return (
3 | <>
4 | Home
5 |
6 | This is a demo of using XState as a conditional routing tool. Routing
7 | includes conditional logic based on the Form State.
8 |
9 | >
10 | );
11 | }
12 |
--------------------------------------------------------------------------------
/src/pages/employment-type.js:
--------------------------------------------------------------------------------
1 | export default function Page() {
2 | return (
3 | <>
4 | Employed or unemployed?
5 |
6 | Set "employement-type" in the form state to either{" "}
7 | "employed" or "unemployed" to observe the
8 | conditional routing.
9 |
10 | >
11 | );
12 | }
13 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "xstate-flow",
3 | "version": "0.1.0",
4 | "private": true,
5 | "scripts": {
6 | "dev": "next dev",
7 | "build": "./bin/build.sh",
8 | "start": "next start"
9 | },
10 | "dependencies": {
11 | "@xstate/viz": "^0.2.0",
12 | "next": "^9.4.4",
13 | "react": "^16.13.1",
14 | "react-dom": "^16.13.1",
15 | "xstate": "^4.10.0"
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # next.js
12 | /.next/
13 | /out/
14 |
15 | # production
16 | /build
17 |
18 | # misc
19 | .DS_Store
20 |
21 | # debug
22 | npm-debug.log*
23 | yarn-debug.log*
24 | yarn-error.log*
25 |
26 | # local env files
27 | .env.local
28 | .env.development.local
29 | .env.test.local
30 | .env.production.local
31 |
--------------------------------------------------------------------------------
/docs/_next/static/iNnaT_HIqVHVbBmAztPXf/pages/employed.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[5],{LRxO:function(n,t,e){"use strict";e.r(t),e.d(t,"default",(function(){return i}));var o=e("q1tI"),u=e.n(o),r=u.a.createElement;function i(){return r(u.a.Fragment,null,r("h1",null,"Employed"),r("p",null,"Last page in the flow"))}},Qetd:function(n,t,e){"use strict";var o=Object.assign.bind(Object);n.exports=o,n.exports.default=n.exports},YFGv:function(n,t,e){(window.__NEXT_P=window.__NEXT_P||[]).push(["/employed",function(){return e("LRxO")}])}},[["YFGv",0,1]]]);
--------------------------------------------------------------------------------
/docs/_next/static/iNnaT_HIqVHVbBmAztPXf/pages/unemployed.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[8],{"7k2M":function(n,t,e){(window.__NEXT_P=window.__NEXT_P||[]).push(["/unemployed",function(){return e("ixia")}])},Qetd:function(n,t,e){"use strict";var i=Object.assign.bind(Object);n.exports=i,n.exports.default=n.exports},ixia:function(n,t,e){"use strict";e.r(t),e.d(t,"default",(function(){return r}));var i=e("q1tI"),u=e.n(i),o=u.a.createElement;function r(){return o(u.a.Fragment,null,o("h1",null,"Unemployed"),o("p",null,"Last page in the flow"))}}},[["7k2M",0,1]]]);
--------------------------------------------------------------------------------
/docs/_next/static/iNnaT_HIqVHVbBmAztPXf/pages/index.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[7],{Qetd:function(n,t,o){"use strict";var e=Object.assign.bind(Object);n.exports=e,n.exports.default=n.exports},RXBc:function(n,t,o){"use strict";o.r(t),o.d(t,"default",(function(){return a}));var e=o("q1tI"),i=o.n(e),u=i.a.createElement;function a(){return u(i.a.Fragment,null,u("h1",null,"Home"),u("p",null,"This is a demo of using XState as a conditional routing tool. Routing includes conditional logic based on the Form State."))}},vlRD:function(n,t,o){(window.__NEXT_P=window.__NEXT_P||[]).push(["/",function(){return o("RXBc")}])}},[["vlRD",0,1]]]);
--------------------------------------------------------------------------------
/docs/_next/static/iNnaT_HIqVHVbBmAztPXf/pages/employment-type.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[6],{OytW:function(e,t,n){"use strict";n.r(t),n.d(t,"default",(function(){return r}));var o=n("q1tI"),u=n.n(o),l=u.a.createElement;function r(){return l(u.a.Fragment,null,l("h1",null,"Employed or unemployed?"),l("p",null,"Set ",l("code",null,'"employement-type"')," in the form state to either"," ",l("code",null,'"employed"')," or ",l("code",null,'"unemployed"')," to observe the conditional routing."))}},Qetd:function(e,t,n){"use strict";var o=Object.assign.bind(Object);e.exports=o,e.exports.default=e.exports},fLcz:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/employment-type",function(){return n("OytW")}])}},[["fLcz",0,1]]]);
--------------------------------------------------------------------------------
/docs/vercel.svg:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/public/vercel.svg:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | A proof of concept showing [XState](https://xstate.js.org/) as a conditional routing tool. Routing includes conditional logic based on form state.
2 |
3 | 
4 |
5 | ## Running
6 |
7 | ```
8 | npm install
9 | ```
10 |
11 | ```
12 | npm run dev
13 | ```
14 |
15 | Visit `localhost:3000`
16 |
17 | ## Most relevant files
18 |
19 | ### [`src/flow/useRoutingMachine.js`](src/flow/useRoutingMachine.js)
20 |
21 | React hook responsible for maintaining a "routing machine." Establishes all routes in a flow and the logic determining which route the user should be sent to next. Exports a `getNextRoute` method, along with the XState machine. This could be refactored so that the routes definition lives elsewhere.
22 |
23 | ### [`src/pages/_app.js`](src/pages/_app.js)
24 |
25 | Uses the routing machine hook. Includes the "Next" button's click handler, which calls the hook's `getNextRoute` method and navigates the user to the returned route.
26 |
27 | ## Links
28 |
29 | - [Similar state machine using State Designer](https://viewer.state-designer.com/dnxtMlVieGPCbzezdKpQMWNAJ013/Test)
30 |
--------------------------------------------------------------------------------
/src/pages/_app.js:
--------------------------------------------------------------------------------
1 | import "@xstate/viz/themes/dark.css";
2 | import Link from "next/link";
3 | import FormStateEditor from "../components/FormStateEditor";
4 | import router from "next/router";
5 | import useRoutingMachine from "../flow/useRoutingMachine";
6 | import { useState } from "react";
7 |
8 | function App({ Component, pageProps }) {
9 | const initialFormState = { "employment-type": "" };
10 | const [formState, setFormState] = useState(initialFormState);
11 | const { getNextRoute } = useRoutingMachine();
12 |
13 | /**
14 | * Navigate to the next page in the flow
15 | */
16 | function handleNextPageClick() {
17 | const nextRoute = getNextRoute(router.pathname, formState);
18 | return router.push(nextRoute);
19 | }
20 |
21 | return (
22 |
23 |
24 |
25 |
30 | Next
31 |
32 |
33 |
34 |
35 | Back home
36 |
37 |
38 |
39 |
44 |
45 | );
46 | }
47 |
48 | export default App;
49 |
--------------------------------------------------------------------------------
/docs/_next/static/runtime/webpack-c212667a5f965e81e004.js:
--------------------------------------------------------------------------------
1 | !function(e){function r(r){for(var n,l,f=r[0],i=r[1],a=r[2],c=0,s=[];c {
17 | if (typeof window !== "undefined") setMachineReady(true);
18 | }, [routingMachine]);
19 |
20 | return (
21 |
22 |
23 | Form State
24 |
25 |
51 | );
52 | }
53 |
--------------------------------------------------------------------------------
/src/flow/useRoutingMachine.js:
--------------------------------------------------------------------------------
1 | import { Machine } from "xstate";
2 |
3 | /**
4 | * Page routes and routing logic
5 | */
6 | const routes = {
7 | "/": {
8 | on: {
9 | NEXT: "/employment-type",
10 | },
11 | },
12 | "/employment-type": {
13 | on: {
14 | NEXT: [
15 | {
16 | target: "/employed",
17 | cond: "isEmployed",
18 | },
19 | {
20 | target: "/unemployed",
21 | },
22 | ],
23 | },
24 | },
25 | "/employed": {},
26 | "/unemployed": {},
27 | };
28 |
29 | /**
30 | * Conditions available to our routing logic, used as the `cond` value
31 | * in a State node
32 | */
33 | const conditions = {
34 | isEmployed: (context) => context["employment-type"] === "employed",
35 | };
36 |
37 | /**
38 | * Initialize a routing state machine and access methods
39 | * for navigating through the flow
40 | */
41 | function useRoutingMachine() {
42 | const routingMachine = Machine(
43 | {
44 | context: {},
45 | id: "routing",
46 | initial: "/",
47 | states: routes,
48 | },
49 | { guards: conditions }
50 | );
51 |
52 | /**
53 | * Get the next route in the flow after the current route
54 | * @param {string} currentRoute - active route
55 | * @param {object} [formState]
56 | */
57 | function getNextRoute(currentRoute, formState = {}) {
58 | const nextRoutingMachine = routingMachine.withContext(formState);
59 | const nextState = nextRoutingMachine.transition(currentRoute, "NEXT");
60 |
61 | if (nextState) return nextState.value;
62 | }
63 |
64 | return {
65 | getNextRoute,
66 | routingMachine,
67 | };
68 | }
69 |
70 | export default useRoutingMachine;
71 |
--------------------------------------------------------------------------------
/docs/employed.html:
--------------------------------------------------------------------------------
1 | Employed Last page in the flow
Next Back home
Form State
Update form state
formState = {"employment-type":""}
--------------------------------------------------------------------------------
/docs/unemployed.html:
--------------------------------------------------------------------------------
1 | Unemployed Last page in the flow
Next Back home
Form State
Update form state
formState = {"employment-type":""}
--------------------------------------------------------------------------------
/docs/index.html:
--------------------------------------------------------------------------------
1 | Home This is a demo of using XState as a conditional routing tool. Routing includes conditional logic based on the Form State.
Next Back home
Form State
Update form state
formState = {"employment-type":""}
--------------------------------------------------------------------------------
/docs/employment-type.html:
--------------------------------------------------------------------------------
1 | Employed or unemployed? Set "employement-type" in the form state to either "employed" or "unemployed" to observe the conditional routing.
Next Back home
Form State
Update form state
formState = {"employment-type":""}
--------------------------------------------------------------------------------
/docs/404.html:
--------------------------------------------------------------------------------
1 | 404: This page could not be found 404
This page could not be found. Next Back home
Form State
Update form state
formState = {"employment-type":""}
--------------------------------------------------------------------------------
/docs/_next/static/chunks/0.js:
--------------------------------------------------------------------------------
1 | (window["webpackJsonp"] = window["webpackJsonp"] || []).push([[0],{
2 |
3 | /***/ "./node_modules/next/dist/client/dev/noop.js":
4 | /*!***************************************************!*\
5 | !*** ./node_modules/next/dist/client/dev/noop.js ***!
6 | \***************************************************/
7 | /*! no static exports found */
8 | /***/ (function(module, exports, __webpack_require__) {
9 |
10 | "use strict";
11 | eval("/* WEBPACK VAR INJECTION */(function(module) {\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports_1 = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports_1, module.i);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports_1)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports_1;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports_1)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2Rldi9ub29wLmpzLmpzIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/noop.js\n");
12 |
13 | /***/ })
14 |
15 | }]);
--------------------------------------------------------------------------------
/docs/_next/static/css/54725c2945ebfd324f8a.css:
--------------------------------------------------------------------------------
1 | [data-xviz=machine],[data-xviz=service]{--xviz-background-color:#111;--xviz-active-color:#1381c9;--xviz-active-border-color:var(--xviz-active-color);--xviz-inactive-border-color:hsla(0,0%,100%,0.2);--xviz-border-width:2px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;--gap:0.5em;background:var(--xviz-background-color);color:#fff}[data-xviz=machine],[data-xviz=machine] *,[data-xviz=service],[data-xviz=service] *{box-sizing:border-box;position:relative}[data-xviz=service-id]{padding:1em;font-size:125%}[data-xviz=machine]{padding:0 1em;display:grid}[data-xviz=stateNode]{--child-border-style:solid;align-self:self-start;display:grid;grid-template-columns:auto auto;grid-template-rows:1fr;grid-template-areas:"state" "events";grid-column-gap:var(--gap);max-width:calc(100vw/var(--xviz-level))}[data-xviz=stateNode][data-xviz-type=history]{--content:"(history)"}[data-xviz=stateNode][data-xviz-type=history] [data-xviz=stateNode-key]:after{content:var(--content);margin-left:1ch;opacity:.5}[data-xviz=stateNode][data-xviz-type=history][data-xviz-history=deep]{--content:"(history*)"}[data-xviz=stateNode][data-xviz-type=final]>[data-xviz=stateNode-state]:before{--offset:5px;content:"";position:absolute;height:calc(100% + var(--offset)*2 + var(--xviz-border-width)*2);width:calc(100% + var(--offset)*2 + var(--xviz-border-width)*2);top:calc(-1*var(--offset) - var(--xviz-border-width));left:calc(-1*var(--offset) - var(--xviz-border-width));border:inherit;border-radius:.6em}[data-xviz=stateNode][data-xviz-parent-type=parallel]{--child-border-style:dashed}[data-xviz=stateNode]>[data-xviz=stateNode-state]{grid-area:state;align-self:self-start;border-style:var(--child-border-style)}[data-xviz=stateNode]>[data-xviz=stateNode-events]{grid-area:events}+[data-xviz=stateNode]{margin-top:1em}[data-xviz=stateNode][data-xviz-active]{--xviz-border-color:var(--xviz-active-border-color)}[data-xviz=stateNode]:not([data-xviz-active]){--xviz-border-color:var(--xviz-inactive-border-color)}[data-xviz=stateNode-state]{border:2px solid var(--xviz-border-color);border-radius:.25em}[data-xviz=stateNode-children]{display:flex;flex-wrap:wrap;padding:.5em}[data-xviz=stateNode-children]>[data-xviz=stateNode]{margin:1em}[data-xviz=stateNode-content]{display:grid;grid-template-columns:1fr auto;grid-auto-rows:auto}[data-xviz=stateNode-content]>[data-xviz=stateNode-key]{grid-column:1/-1}[data-xviz=stateNode-key]{padding:.5em;font-weight:700}[data-xviz=event-label]{border:var(--xviz-border-width) solid var(--xviz-border-color);color:var(--xviz-color-foreground);border-radius:1em;font-weight:700;font-size:75%;overflow:hidden}[data-xviz=event-label]:not(:hover)+[data-xviz=event-targets]{opacity:.2}[data-xviz=stateNode-invocations]{padding:.5em}[data-xviz=events]{display:flex;flex-direction:column;align-items:flex-start}[data-xviz=event]{margin-bottom:.5em}[data-xviz=event][data-xviz-triggered] [data-xviz=event-label]{animation:flash .6s ease-out both}@keyframes flash{0%{background-color:var(--xviz-active-color);transform:scale(1.1)}to{background-color:transparent}}[data-xviz=event][data-xviz-builtin] [data-xviz=event-type]{font-style:italic}[data-xviz=event][data-xviz-transient] [data-xviz=event-type]:before{content:"transient";font-style:italic}[data-xviz=event][data-xviz-guarded]>[data-xviz=event-label]{display:flex;flex-direction:row;align-items:center}[data-xviz=event-meta]{display:none}[data-xviz=actions] [data-xviz=action-type]:before,[data-xviz=invoke-id]:before{content:var(--content);display:block;text-transform:uppercase;font-weight:700;font-size:75%;color:#999;margin-right:1ch}[data-xviz=actions]{padding:.5em;--content:"do / "}[data-xviz=actions]:empty{display:none}[data-xviz=actions][data-xviz-actions=entry] [data-xviz=action-type]:before{--content:"entry / "}[data-xviz=actions][data-xviz-actions=exit] [data-xviz=action-type]:before{--content:"exit / "}[data-xviz=action]{padding-bottom:.5em}[data-xviz=action][data-xviz-builtin]{opacity:.5}[data-xviz=action][data-xviz-builtin] [data-xviz=action-entry]{display:none}[data-xviz=action-payload]{display:grid;grid-template-columns:-webkit-min-content 1fr;grid-template-columns:min-content 1fr;grid-column-gap:1em;grid-auto-rows:auto}[data-xviz=action-payload]>[data-xviz=action-property]{grid-column:1/2}[data-xviz=action-payload]>[data-xviz=action-value]{grid-column:2/3}[data-xviz=action-entry][data-xviz-entry-type=undefined]{display:none}[data-xviz=action-property]{margin:0}[data-xviz=action-type]{max-width:15em}[data-xviz=event-type]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:.25em .5em}[data-xviz=event-targets]{position:absolute;display:none}[data-xviz=action-value]{margin:0}[data-xviz=edge]:not([data-xviz-current]) *{opacity:.2}[data-xviz=edge][data-xviz-triggered] [data-xviz=edge-path][data-xviz-secondary]{stroke:var(--xviz-active-color);opacity:1;animation:xviz-edge-path-active .6s cubic-bezier(0,1,1,1) both}@keyframes xviz-edge-path-active{0%{stroke-dashoffset:0}to{stroke-dashoffset:-1}}[data-xviz=edge-path]{stroke-width:var(--xviz-stroke-width);stroke:#fff;stroke-dashoffset:0;stroke-dasharray:1 1}[data-xviz=event-cond]{padding:.25em .5em}[data-xviz=event-cond]:after,[data-xviz=event-cond]:before{display:inline-block}[data-xviz=event-cond]:before{content:"["}[data-xviz=event-cond]:after{content:"]"}[data-xviz=event-cond]>[data-xviz=event-cond-name]{display:inline-block}[data-xviz=action-entries]{display:table}[data-xviz=action-entry]{display:table-row}[data-xviz=action-entry]>*{display:table-cell}[data-xviz=invoke][data-xviz-unnamed] [data-xviz=invoke-id]{font-style:italic}[data-xviz=invoke][data-xviz-unnamed] [data-xviz=invoke-id]:before{font-style:normal}[data-xviz=invoke-id]:before{content:"invoke / "}[data-xviz=invoke-src]{display:none}[data-xviz^=json]{font-family:monospace}[data-xviz=json-entry],[data-xviz=json-item]{padding-left:1em}[data-xviz=json-entry][data-xviz-primitive]>[data-xviz=json-key],[data-xviz=json-item][data-xviz-primitive]>[data-xviz=json-key]{margin-right:1ch}[data-xviz=json-entry][data-xviz-primitive]>*,[data-xviz=json-item][data-xviz-primitive]>*{display:inline-block}[data-xviz=json-key]:after{content:":"}[data-xviz=action-entries]{display:none}[data-xviz=sequence] td{border:1px solid #000}[data-xviz=inspector]>[data-xviz=service]{display:grid;grid-template-columns:1fr 20rem;grid-template-rows:1rem -webkit-min-content 1fr;grid-template-rows:1rem min-content 1fr;grid-template-areas:"header header" "machine state" "machine events"}[data-xviz=inspector]>[data-xviz=service]>[data-xviz=machine]{grid-area:machine}[data-xviz=inspector]>[data-xviz=service]>[data-xviz=event-records]{grid-area:events}[data-xviz=inspector]>[data-xviz=service]>[data-xviz=event-records]:before{content:"Events";font-weight:700;display:block;margin-bottom:.5rem}[data-xviz=inspector]>[data-xviz=service]>[data-xviz=state]{grid-area:state}[data-xviz=inspector]>[data-xviz=service]>[data-xviz=state]:before{content:"State";font-weight:700;display:block;margin-bottom:.5rem}@media (max-width:40em){[data-xviz=inspector]>[data-xviz=service]{grid-template-columns:1fr 1fr;grid-template-rows:1rem 1fr 1fr;grid-template-areas:"header header" "machine machine" "state events"}}[data-xviz=event-records]{overflow-y:auto}[data-xviz=event-record-name]{font-family:monospace;font-weight:700}
--------------------------------------------------------------------------------
/docs/_next/static/iNnaT_HIqVHVbBmAztPXf/pages/_error.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[4],{"/0+H":function(e,t,n){"use strict";t.__esModule=!0,t.isInAmpMode=a,t.useAmp=function(){return a(o.default.useContext(u.AmpStateContext))};var r,o=(r=n("q1tI"))&&r.__esModule?r:{default:r},u=n("lwAK");function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.ampFirst,n=void 0!==t&&t,r=e.hybrid,o=void 0!==r&&r,u=e.hasQuery;return n||o&&(void 0!==u&&u)}},"/a9y":function(e,t,n){"use strict";var r=n("lwsE"),o=n("W8MJ"),u=n("7W2i"),a=n("a1gu"),i=n("Nsbk");function c(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=i(e);if(t){var o=i(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return a(this,n)}}var l=n("TqRt");t.__esModule=!0,t.default=void 0;var f=l(n("q1tI")),s=l(n("8Kt/")),d={400:"Bad Request",404:"This page could not be found",405:"Method Not Allowed",500:"Internal Server Error"};function p(e){var t=e.res,n=e.err;return{statusCode:t&&t.statusCode?t.statusCode:n?n.statusCode:404}}var y=function(e){u(n,e);var t=c(n);function n(){return r(this,n),t.apply(this,arguments)}return o(n,[{key:"render",value:function(){var e=this.props.statusCode,t=this.props.title||d[e]||"An unexpected error has occurred";return f.default.createElement("div",{style:h.error},f.default.createElement(s.default,null,f.default.createElement("title",null,e,": ",t)),f.default.createElement("div",null,f.default.createElement("style",{dangerouslySetInnerHTML:{__html:"body { margin: 0 }"}}),e?f.default.createElement("h1",{style:h.h1},e):null,f.default.createElement("div",{style:h.desc},f.default.createElement("h2",{style:h.h2},t,"."))))}}]),n}(f.default.Component);t.default=y,y.displayName="ErrorPage",y.getInitialProps=p,y.origGetInitialProps=p;var h={error:{color:"#000",background:"#fff",fontFamily:'-apple-system, BlinkMacSystemFont, Roboto, "Segoe UI", "Fira Sans", Avenir, "Helvetica Neue", "Lucida Grande", sans-serif',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},desc:{display:"inline-block",textAlign:"left",lineHeight:"49px",height:"49px",verticalAlign:"middle"},h1:{display:"inline-block",borderRight:"1px solid rgba(0, 0, 0,.3)",margin:0,marginRight:"20px",padding:"10px 23px 10px 0",fontSize:"24px",fontWeight:500,verticalAlign:"top"},h2:{fontSize:"14px",fontWeight:"normal",lineHeight:"inherit",margin:0,padding:0}}},"04ac":function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error",function(){return n("/a9y")}])},"7W2i":function(e,t,n){var r=n("SksO");e.exports=function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)}},"8Kt/":function(e,t,n){"use strict";t.__esModule=!0,t.defaultHead=l,t.default=void 0;var r=c(n("q1tI")),o=c(n("Xuae")),u=n("lwAK"),a=n("FYa8"),i=n("/0+H");function c(e){return e&&e.__esModule?e:{default:e}}function l(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=[r.default.createElement("meta",{charSet:"utf-8"})];return e||t.push(r.default.createElement("meta",{name:"viewport",content:"width=device-width"})),t}function f(e,t){return"string"===typeof t||"number"===typeof t?e:t.type===r.default.Fragment?e.concat(r.default.Children.toArray(t.props.children).reduce((function(e,t){return"string"===typeof t||"number"===typeof t?e:e.concat(t)}),[])):e.concat(t)}var s=["name","httpEquiv","charSet","itemProp"];function d(e,t){return e.reduce((function(e,t){var n=r.default.Children.toArray(t.props.children);return e.concat(n)}),[]).reduce(f,[]).reverse().concat(l(t.inAmpMode)).filter(function(){var e=new Set,t=new Set,n=new Set,r={};return function(o){var u=!0;if(o.key&&"number"!==typeof o.key&&o.key.indexOf("$")>0){var a=o.key.slice(o.key.indexOf("$")+1);e.has(a)?u=!1:e.add(a)}switch(o.type){case"title":case"base":t.has(o.type)?u=!1:t.add(o.type);break;case"meta":for(var i=0,c=s.length;ie.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==s[0]?s[0]:{},n.webpackHMR,e.next=4,O.loadPageScript("/_app");case 4:return a=e.sent,o=a.page,i=a.mod,W=o,i&&i.reportWebVitals&&(J=function(e){var t,n=e.id,r=e.name,a=e.startTime,o=e.value,c=e.duration,u=e.entryType,s=e.entries,f="".concat(Date.now(),"-").concat(Math.floor(Math.random()*(9e12-1))+1e12);s&&s.length&&(t=s[0].startTime),i.reportWebVitals({id:n||f,name:r,startTime:a||t,value:null==o?c:o,label:"mark"===u||"measure"===u?"custom":"web-vital"})}),c=I,e.prev=10,e.next=14,O.loadPage(M);case 14:u=e.sent,Y=u.page,e.next=20;break;case 20:e.next=25;break;case 22:e.prev=22,e.t0=e.catch(10),c=e.t0;case 25:if(!window.__NEXT_PRELOADREADY){e.next=29;break}return e.next=29,window.__NEXT_PRELOADREADY(A);case 29:return t.router=G=(0,v.createRouter)(M,N,q,{initialProps:C,pageLoader:O,App:W,Component:Y,wrapApp:ce,err:c,isFallback:B,subscription:function(e,t){return Q({App:t,Component:e.Component,props:e.props,err:e.err})}}),Q({App:W,Component:Y,props:C,err:c}),e.abrupt("return",z);case 35:e.next=37;break;case 37:case"end":return e.stop()}}),e,null,[[10,22]])})));return function(){return e.apply(this,arguments)}}();function Q(e){return ee.apply(this,arguments)}function ee(){return(ee=a(r.mark((function e(t){return r.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t.err){e.next=4;break}return e.next=3,te(t);case 3:return e.abrupt("return");case 4:return e.prev=4,e.next=7,ue(t);case 7:e.next=14;break;case 9:return e.prev=9,e.t0=e.catch(4),e.next=14,te((0,m.default)((0,m.default)({},t),{},{err:e.t0}));case 14:case"end":return e.stop()}}),e,null,[[4,9]])})))).apply(this,arguments)}function te(e){var t=e.App,n=e.err;return console.error(n),O.loadPage("/_error").then((function(r){var a=r.page,o=ce(t),i={Component:a,AppTree:o,router:G,ctx:{err:n,pathname:M,query:N,asPath:q,AppTree:o}};return Promise.resolve(e.props?e.props:(0,x.loadGetInitialProps)(t,i)).then((function(t){return ue((0,m.default)((0,m.default)({},e),{},{err:n,Component:a,props:t}))}))}))}t.default=K;var ne="function"===typeof y.default.hydrate;function re(){x.ST&&(performance.mark("afterHydrate"),performance.measure("Next.js-before-hydration","navigationStart","beforeRender"),performance.measure("Next.js-hydration","beforeRender","afterHydrate"),J&&performance.getEntriesByName("Next.js-hydration").forEach(J),oe())}function ae(){if(x.ST){performance.mark("afterRender");var e=performance.getEntriesByName("routeChange","mark");e.length&&(performance.measure("Next.js-route-change-to-render",e[0].name,"beforeRender"),performance.measure("Next.js-render","beforeRender","afterRender"),J&&(performance.getEntriesByName("Next.js-render").forEach(J),performance.getEntriesByName("Next.js-route-change-to-render").forEach(J)),oe(),["Next.js-route-change-to-render","Next.js-render"].forEach((function(e){return performance.clearMeasures(e)})))}}function oe(){["beforeRender","afterHydrate","afterRender","routeChange"].forEach((function(e){return performance.clearMarks(e)}))}function ie(e){var t=e.children;return(g.default.createElement(Z,{fn:function(e){return te({App:W,err:e}).catch((function(e){return console.error("Error rendering page: ",e)}))}},g.default.createElement(E.RouterContext.Provider,{value:(0,v.makePublicRouterInstance)(G)},g.default.createElement(_.HeadManagerContext.Provider,{value:V},t))))}var ce=function(e){return function(t){var n=(0,m.default)((0,m.default)({},t),{},{Component:Y,err:I,router:G});return(g.default.createElement(ie,null,g.default.createElement(e,n)))}};function ue(e){return se.apply(this,arguments)}function se(){return(se=a(r.mark((function e(t){var n,a,o,i,c,u,s;return r.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.App,a=t.Component,o=t.props,i=t.err,a=a||U.Component,o=o||U.props,c=(0,m.default)((0,m.default)({},o),{},{Component:a,err:i,router:G}),U=c,s=new Promise((function(e,t){X&&X(),u=function(){X=null,e()},X=function(){X=null,t()}})),r=g.default.createElement(fe,{callback:u},g.default.createElement(ie,null,g.default.createElement(n,c))),f=$,x.ST&&performance.mark("beforeRender"),ne?(y.default.hydrate(r,f,re),ne=!1,J&&x.ST&&(0,P.default)(J)):y.default.render(r,f,ae),e.next=10,s;case 10:case"end":return e.stop()}var r,f}),e)})))).apply(this,arguments)}function fe(e){var t=e.callback,n=e.children;return g.default.useLayoutEffect((function(){return t()}),[t]),n}},Z577:function(e,t){Promise.prototype.finally=function(e){if("function"!=typeof e)return this.then(e,e);var t=this.constructor||Promise;return this.then((function(n){return t.resolve(e()).then((function(){return n}))}),(function(n){return t.resolve(e()).then((function(){throw n}))}))}},bGXG:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n("w6Sm");t.default=function(e){(0,r.getCLS)(e),(0,r.getFID)(e),(0,r.getFCP)(e),(0,r.getLCP)(e),(0,r.getTTFB)(e)}},pVnL:function(e,t){function n(){return e.exports=n=Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:-1;return{name:e,value:t,delta:0,entries:[],id:o(),isFinal:!1}},c=function(e,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var n=new PerformanceObserver((function(e){return e.getEntries().map(t)}));return n.observe({type:e,buffered:!0}),n}}catch(e){}},u=!1,s=!1,f=function(e){u=!e.persisted},l=function(){addEventListener("pagehide",f),addEventListener("unload",(function(){}))},p=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];s||(l(),s=!0),addEventListener("visibilitychange",(function(t){var n=t.timeStamp;"hidden"===document.visibilityState&&e({timeStamp:n,isUnloading:u})}),{capture:!0,once:t})},d=function(e,t,n,r){var a;return function(){n&&t.isFinal&&n.disconnect(),t.value>=0&&(r||t.isFinal||"hidden"===document.visibilityState)&&(t.delta=t.value-(a||0),(t.delta||t.isFinal||void 0===a)&&(e(t),a=t.value))}},m=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=i("CLS",0),r=function(e){e.hadRecentInput||(n.value+=e.value,n.entries.push(e),o())},a=c("layout-shift",r),o=d(e,n,a,t);p((function(e){var t=e.isUnloading;a&&a.takeRecords().map(r),t&&(n.isFinal=!0),o()}))},v=function(){return void 0===r&&(r="hidden"===document.visibilityState?0:1/0,p((function(e){var t=e.timeStamp;return r=t}),!0)),{get timeStamp(){return r}}},h=function(e){var t=i("FCP"),n=v(),r=c("paint",(function(e){"first-contentful-paint"===e.name&&e.startTime1&&void 0!==arguments[1]&&arguments[1],n=i("LCP"),r=v(),a=function(e){var t=e.startTime;tt.length)&&(e=t.length);for(var r=0,n=new Array(e);r>>0,1)},emit:function(e){for(var r=arguments.length,n=new Array(r>1?r-1:0),o=1;o0&&t.status>=500)return r();throw new Error("Failed to load static props")}return t.json()}))}().then((function(t){return n?n(t):t})).catch((function(t){throw r||(t.code="PAGE_LOAD_ERROR"),t}))}var _=function(){function t(e,r,n,o){var a=this,c=o.initialProps,u=o.pageLoader,l=o.App,h=o.wrapApp,v=o.Component,y=o.err,m=o.subscription,_=o.isFallback;i(this,t),this.route=void 0,this.pathname=void 0,this.query=void 0,this.asPath=void 0,this.basePath=void 0,this.components=void 0,this.sdc={},this.sub=void 0,this.clc=void 0,this.pageLoader=void 0,this._bps=void 0,this.events=void 0,this._wrapApp=void 0,this.isSsr=void 0,this.isFallback=void 0,this.onPopState=function(t){if(t.state){if((!t.state||!a.isSsr||t.state.as!==a.asPath||(0,s.parse)(t.state.url).pathname!==a.pathname)&&(!a._bps||a._bps(t.state))){var e=t.state,r=e.url,n=e.as,o=e.options;0,a.replace(r,n,o)}}else{var i=a.pathname,c=a.query;a.changeState("replaceState",(0,f.formatWithValidation)({pathname:i,query:c}),(0,f.getURL)())}},this._getStaticData=function(t){var e=b((0,s.parse)(t).pathname);return a.sdc[e]?Promise.resolve(a.sdc[e]):w(e,null,a.isSsr,(function(t){return a.sdc[e]=t}))},this._getServerData=function(t){var e=(0,s.parse)(t,!0),r=e.pathname,n=e.query;return w(r=b(r),n,a.isSsr)},this.route=g(e),this.components={},"/_error"!==e&&(this.components[this.route]={Component:v,props:c,err:y,__N_SSG:c&&c.__N_SSG,__N_SSP:c&&c.__N_SSP}),this.components["/_app"]={Component:l},this.events=t.events,this.pageLoader=u,this.pathname=e,this.query=r,this.asPath=(0,p.isDynamicRoute)(e)&&__NEXT_DATA__.autoExport?e:n,this.basePath=d,this.sub=m,this.clc=null,this._wrapApp=h,this.isSsr=!0,this.isFallback=_,"//"!==n.substr(0,2)&&this.changeState("replaceState",(0,f.formatWithValidation)({pathname:e,query:r}),n),window.addEventListener("popstate",this.onPopState)}return c(t,[{key:"update",value:function(t,e){var r=e.default||e,n=this.components[t];if(!n)throw new Error("Cannot update unavailable route: ".concat(t));var o=Object.assign({},n,{Component:r,__N_SSG:e.__N_SSG,__N_SSP:e.__N_SSP});this.components[t]=o,"/_app"!==t?t===this.route&&this.notify(o):this.notify(this.components[this.route])}},{key:"reload",value:function(){window.location.reload()}},{key:"back",value:function(){window.history.back()}},{key:"push",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.change("pushState",t,e,r)}},{key:"replace",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.change("replaceState",t,e,r)}},{key:"change",value:function(e,r,n,o){var a=this;return new Promise((function(i,c){o._h||(a.isSsr=!1),f.ST&&performance.mark("routeChange");var u="object"===typeof r?(0,f.formatWithValidation)(r):r,l="object"===typeof n?(0,f.formatWithValidation)(n):n;if(u=y(u),l=y(l),a.abortComponentLoad(l),!o._h&&a.onlyAHashChange(l))return a.asPath=l,t.events.emit("hashChangeStart",l),a.changeState(e,u,l,o),a.scrollToHash(l),t.events.emit("hashChangeComplete",l),i(!0);var d=(0,s.parse)(u,!0),m=d.pathname,b=d.query,w=d.protocol;if(!m||w)return i(!1);a.urlIsNew(l)||(e="replaceState");var _=g(m),x=o.shallow,S=void 0!==x&&x;if((0,p.isDynamicRoute)(_)){var P=(0,s.parse)(l).pathname,O=(0,v.getRouteRegex)(_),k=(0,h.getRouteMatcher)(O)(P);if(k)Object.assign(b,k);else if(Object.keys(O.groups).filter((function(t){return!b[t]})).length>0)return c(new Error("The provided `as` value (".concat(P,") is incompatible with the `href` value (").concat(_,"). ")+"Read more: https://err.sh/vercel/next.js/incompatible-href-as"))}t.events.emit("routeChangeStart",l),a.getRouteInfo(_,m,b,l,S).then((function(r){var n=r.error;if(n&&n.cancelled)return i(!1);t.events.emit("beforeHistoryChange",l),a.changeState(e,u,l,o),a.set(_,m,b,l,r).then((function(){if(n)throw t.events.emit("routeChangeError",n,l),n;return t.events.emit("routeChangeComplete",l),i(!0)}))}),c)}))}},{key:"changeState",value:function(t,e,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};"pushState"===t&&(0,f.getURL)()===r||window.history[t]({url:e,as:r,options:n},"",r)}},{key:"getRouteInfo",value:function(t,e,r,n){var o=this,a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],i=this.components[t];if(a&&i&&this.route===t)return Promise.resolve(i);var c=function t(a,i){return new Promise((function(c){return"PAGE_LOAD_ERROR"===a.code||i?(window.location.href=n,a.cancelled=!0,c({error:a})):a.cancelled?c({error:a}):void c(o.fetchComponent("/_error").then((function(t){var n=t.page,i={Component:n,err:a};return new Promise((function(t){o.getInitialProps(n,{err:a,pathname:e,query:r}).then((function(e){i.props=e,i.error=a,t(i)}),(function(e){console.error("Error in error page `getInitialProps`: ",e),i.error=a,i.props={},t(i)}))}))})).catch((function(e){return t(e,!0)})))}))};return new Promise((function(e,r){if(i)return e(i);o.fetchComponent(t).then((function(t){return e({Component:t.page,__N_SSG:t.mod.__N_SSG,__N_SSP:t.mod.__N_SSP})}),r)})).then((function(a){var i=a.Component,c=a.__N_SSG,u=a.__N_SSP;return o._getData((function(){return c?o._getStaticData(n):u?o._getServerData(n):o.getInitialProps(i,{pathname:e,query:r,asPath:n})})).then((function(e){return a.props=e,o.components[t]=a,a}))})).catch(c)}},{key:"set",value:function(t,e,r,n,o){return this.isFallback=!1,this.route=t,this.pathname=e,this.query=r,this.asPath=n,this.notify(o)}},{key:"beforePopState",value:function(t){this._bps=t}},{key:"onlyAHashChange",value:function(t){if(!this.asPath)return!1;var e=this.asPath.split("#"),r=a(e,2),n=r[0],o=r[1],i=t.split("#"),c=a(i,2),u=c[0],s=c[1];return!(!s||n!==u||o!==s)||n===u&&o!==s}},{key:"scrollToHash",value:function(t){var e=t.split("#"),r=a(e,2)[1];if(""!==r){var n=document.getElementById(r);if(n)n.scrollIntoView();else{var o=document.getElementsByName(r)[0];o&&o.scrollIntoView()}}else window.scrollTo(0,0)}},{key:"urlIsNew",value:function(t){return this.asPath!==t}},{key:"prefetch",value:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise((function(o,a){var i=(0,s.parse)(t),c=i.pathname,u=i.protocol;if(c&&!u){0;var l=m(g(c));Promise.all([e.pageLoader.prefetchData(t,m(r)),e.pageLoader[n.priority?"loadPage":"prefetch"](l)]).then((function(){return o()}),a)}}))}},{key:"fetchComponent",value:function(){var t=o(n.mark((function t(e){var r,o,a,i;return n.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=!1,o=this.clc=function(){r=!0},e=m(e),t.next=5,this.pageLoader.loadPage(e);case 5:if(a=t.sent,!r){t.next=10;break}throw(i=new Error('Abort fetching component for route: "'.concat(e,'"'))).cancelled=!0,i;case 10:return o===this.clc&&(this.clc=null),t.abrupt("return",a);case 12:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"_getData",value:function(t){var e=this,r=!1,n=function(){r=!0};return this.clc=n,t().then((function(t){if(n===e.clc&&(e.clc=null),r){var o=new Error("Loading initial props cancelled");throw o.cancelled=!0,o}return t}))}},{key:"getInitialProps",value:function(t,e){var r=this.components["/_app"].Component,n=this._wrapApp(r);return e.AppTree=n,(0,f.loadGetInitialProps)(r,{AppTree:n,Component:t,router:this,ctx:e})}},{key:"abortComponentLoad",value:function(e){if(this.clc){var r=new Error("Route Cancelled");r.cancelled=!0,t.events.emit("routeChangeError",r,e),this.clc(),this.clc=null}}},{key:"notify",value:function(t){return this.sub(t,this.components["/_app"].Component)}}],[{key:"_rewriteUrlForNextExport",value:function(t){return t}}]),t}();e.default=_,_.events=(0,l.default)()},"g/15":function(t,e,r){"use strict";var n=r("o0o1"),o=r("yXPU");e.__esModule=!0,e.execOnce=function(t){var e,r=!1;return function(){return r||(r=!0,e=t.apply(void 0,arguments)),e}},e.getLocationOrigin=i,e.getURL=function(){var t=window.location.href,e=i();return t.substring(e.length)},e.getDisplayName=c,e.isResSent=u,e.loadGetInitialProps=s,e.formatWithValidation=function(t,e){0;return(0,a.format)(t,e)},e.ST=e.SP=e.urlObjectKeys=void 0;var a=r("QmWs");function i(){var t=window.location,e=t.protocol,r=t.hostname,n=t.port;return"".concat(e,"//").concat(r).concat(n?":"+n:"")}function c(t){return"string"===typeof t?t:t.displayName||t.name||"Unknown"}function u(t){return t.finished||t.headersSent}function s(t,e){return l.apply(this,arguments)}function l(){return(l=o(n.mark((function t(e,r){var o,a,i;return n.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:t.next=4;break;case 4:if(o=r.res||r.ctx&&r.ctx.res,e.getInitialProps){t.next=12;break}if(!r.ctx||!r.Component){t.next=11;break}return t.next=9,s(r.Component,r.ctx);case 9:return t.t0=t.sent,t.abrupt("return",{pageProps:t.t0});case 11:return t.abrupt("return",{});case 12:return t.next=14,e.getInitialProps(r);case 14:if(a=t.sent,!o||!u(o)){t.next=17;break}return t.abrupt("return",a);case 17:if(a){t.next=20;break}throw i='"'.concat(c(e),'.getInitialProps()" should resolve to an object. But found "').concat(a,'" instead.'),new Error(i);case 20:return t.abrupt("return",a);case 22:case"end":return t.stop()}}),t)})))).apply(this,arguments)}e.urlObjectKeys=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];var f="undefined"!==typeof performance;e.SP=f;var p=f&&"function"===typeof performance.mark&&"function"===typeof performance.measure;e.ST=p},gguc:function(t,e,r){"use strict";e.__esModule=!0,e.getRouteMatcher=function(t){var e=t.re,r=t.groups;return function(t){var n=e.exec(t);if(!n)return!1;var o=function(t){try{return decodeURIComponent(t)}catch(r){var e=new Error("failed to decode param");throw e.code="DECODE_FAILED",e}},a={};return Object.keys(r).forEach((function(t){var e=r[t],i=n[e.pos];void 0!==i&&(a[t]=~i.indexOf("/")?i.split("/").map((function(t){return o(t)})):e.repeat?[o(i)]:o(i))})),a}}},kd2E:function(t,e,r){"use strict";function n(t,e){return Object.prototype.hasOwnProperty.call(t,e)}t.exports=function(t,e,r,a){e=e||"&",r=r||"=";var i={};if("string"!==typeof t||0===t.length)return i;var c=/\+/g;t=t.split(e);var u=1e3;a&&"number"===typeof a.maxKeys&&(u=a.maxKeys);var s=t.length;u>0&&s>u&&(s=u);for(var l=0;l=0?(f=d.substr(0,y),p=d.substr(y+1)):(f=d,p=""),h=decodeURIComponent(f),v=decodeURIComponent(p),n(i,h)?o(i[h])?i[h].push(v):i[h]=[i[h],v]:i[h]=v}return i};var o=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)}},ls82:function(t,e,r){var n=function(t){"use strict";var e,r=Object.prototype,n=r.hasOwnProperty,o="function"===typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",i=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function u(t,e,r,n){var o=e&&e.prototype instanceof d?e:d,a=Object.create(o.prototype),i=new j(n||[]);return a._invoke=function(t,e,r){var n=l;return function(o,a){if(n===p)throw new Error("Generator is already running");if(n===h){if("throw"===o)throw a;return E()}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var c=P(i,r);if(c){if(c===v)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(n===l)throw n=h,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n=p;var u=s(t,e,r);if("normal"===u.type){if(n=r.done?h:f,u.arg===v)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(n=h,r.method="throw",r.arg=u.arg)}}}(t,r,i),a}function s(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(n){return{type:"throw",arg:n}}}t.wrap=u;var l="suspendedStart",f="suspendedYield",p="executing",h="completed",v={};function d(){}function y(){}function m(){}var g={};g[a]=function(){return this};var b=Object.getPrototypeOf,w=b&&b(b(C([])));w&&w!==r&&n.call(w,a)&&(g=w);var _=m.prototype=d.prototype=Object.create(g);function x(t){["next","throw","return"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function S(t,e){var r;this._invoke=function(o,a){function i(){return new e((function(r,i){!function r(o,a,i,c){var u=s(t[o],t,a);if("throw"!==u.type){var l=u.arg,f=l.value;return f&&"object"===typeof f&&n.call(f,"__await")?e.resolve(f.__await).then((function(t){r("next",t,i,c)}),(function(t){r("throw",t,i,c)})):e.resolve(f).then((function(t){l.value=t,i(l)}),(function(t){return r("throw",t,i,c)}))}c(u.arg)}(o,a,r,i)}))}return r=r?r.then(i,i):i()}}function P(t,r){var n=t.iterator[r.method];if(n===e){if(r.delegate=null,"throw"===r.method){if(t.iterator.return&&(r.method="return",r.arg=e,P(t,r),"throw"===r.method))return v;r.method="throw",r.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var o=s(n,t.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,v;var a=o.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function O(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function k(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function j(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(O,this),this.reset(!0)}function C(t){if(t){var r=t[a];if(r)return r.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o=0;--a){var i=this.tryEntries[a],c=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var u=n.call(i,"catchLoc"),s=n.call(i,"finallyLoc");if(u&&s){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),k(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:C(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=n}catch(o){Function("r","regeneratorRuntime = r")(n)}},lwsE:function(t,e){t.exports=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},m0LI:function(t,e){t.exports=function(t,e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(t)){var r=[],n=!0,o=!1,a=void 0;try{for(var i,c=t[Symbol.iterator]();!(n=(i=c.next()).done)&&(r.push(i.value),!e||r.length!==e);n=!0);}catch(u){o=!0,a=u}finally{try{n||null==c.return||c.return()}finally{if(o)throw a}}return r}}},nOHt:function(t,e,r){"use strict";var n=r("sXyB");function o(t,e){var r;if("undefined"===typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"===typeof t)return a(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return a(t,e)}(t))||e&&t&&"number"===typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,c=!0,u=!1;return{s:function(){r=t[Symbol.iterator]()},n:function(){var t=r.next();return c=t.done,t},e:function(t){u=!0,i=t},f:function(){try{c||null==r.return||r.return()}finally{if(u)throw i}}}}function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r= 0) hot._disposeHandlers.splice(idx, 1);
239 | /******/ },
240 | /******/ invalidate: function() {
241 | /******/ this._selfInvalidated = true;
242 | /******/ switch (hotStatus) {
243 | /******/ case "idle":
244 | /******/ hotUpdate = {};
245 | /******/ hotUpdate[moduleId] = modules[moduleId];
246 | /******/ hotSetStatus("ready");
247 | /******/ break;
248 | /******/ case "ready":
249 | /******/ hotApplyInvalidatedModule(moduleId);
250 | /******/ break;
251 | /******/ case "prepare":
252 | /******/ case "check":
253 | /******/ case "dispose":
254 | /******/ case "apply":
255 | /******/ (hotQueuedInvalidatedModules =
256 | /******/ hotQueuedInvalidatedModules || []).push(moduleId);
257 | /******/ break;
258 | /******/ default:
259 | /******/ // ignore requests in error states
260 | /******/ break;
261 | /******/ }
262 | /******/ },
263 | /******/
264 | /******/ // Management API
265 | /******/ check: hotCheck,
266 | /******/ apply: hotApply,
267 | /******/ status: function(l) {
268 | /******/ if (!l) return hotStatus;
269 | /******/ hotStatusHandlers.push(l);
270 | /******/ },
271 | /******/ addStatusHandler: function(l) {
272 | /******/ hotStatusHandlers.push(l);
273 | /******/ },
274 | /******/ removeStatusHandler: function(l) {
275 | /******/ var idx = hotStatusHandlers.indexOf(l);
276 | /******/ if (idx >= 0) hotStatusHandlers.splice(idx, 1);
277 | /******/ },
278 | /******/
279 | /******/ //inherit from previous dispose call
280 | /******/ data: hotCurrentModuleData[moduleId]
281 | /******/ };
282 | /******/ hotCurrentChildModule = undefined;
283 | /******/ return hot;
284 | /******/ }
285 | /******/
286 | /******/ var hotStatusHandlers = [];
287 | /******/ var hotStatus = "idle";
288 | /******/
289 | /******/ function hotSetStatus(newStatus) {
290 | /******/ hotStatus = newStatus;
291 | /******/ for (var i = 0; i < hotStatusHandlers.length; i++)
292 | /******/ hotStatusHandlers[i].call(null, newStatus);
293 | /******/ }
294 | /******/
295 | /******/ // while downloading
296 | /******/ var hotWaitingFiles = 0;
297 | /******/ var hotChunksLoading = 0;
298 | /******/ var hotWaitingFilesMap = {};
299 | /******/ var hotRequestedFilesMap = {};
300 | /******/ var hotAvailableFilesMap = {};
301 | /******/ var hotDeferred;
302 | /******/
303 | /******/ // The update info
304 | /******/ var hotUpdate, hotUpdateNewHash, hotQueuedInvalidatedModules;
305 | /******/
306 | /******/ function toModuleId(id) {
307 | /******/ var isNumber = +id + "" === id;
308 | /******/ return isNumber ? +id : id;
309 | /******/ }
310 | /******/
311 | /******/ function hotCheck(apply) {
312 | /******/ if (hotStatus !== "idle") {
313 | /******/ throw new Error("check() is only allowed in idle status");
314 | /******/ }
315 | /******/ hotApplyOnUpdate = apply;
316 | /******/ hotSetStatus("check");
317 | /******/ return hotDownloadManifest(hotRequestTimeout).then(function(update) {
318 | /******/ if (!update) {
319 | /******/ hotSetStatus(hotApplyInvalidatedModules() ? "ready" : "idle");
320 | /******/ return null;
321 | /******/ }
322 | /******/ hotRequestedFilesMap = {};
323 | /******/ hotWaitingFilesMap = {};
324 | /******/ hotAvailableFilesMap = update.c;
325 | /******/ hotUpdateNewHash = update.h;
326 | /******/
327 | /******/ hotSetStatus("prepare");
328 | /******/ var promise = new Promise(function(resolve, reject) {
329 | /******/ hotDeferred = {
330 | /******/ resolve: resolve,
331 | /******/ reject: reject
332 | /******/ };
333 | /******/ });
334 | /******/ hotUpdate = {};
335 | /******/ for(var chunkId in installedChunks)
336 | /******/ // eslint-disable-next-line no-lone-blocks
337 | /******/ {
338 | /******/ hotEnsureUpdateChunk(chunkId);
339 | /******/ }
340 | /******/ if (
341 | /******/ hotStatus === "prepare" &&
342 | /******/ hotChunksLoading === 0 &&
343 | /******/ hotWaitingFiles === 0
344 | /******/ ) {
345 | /******/ hotUpdateDownloaded();
346 | /******/ }
347 | /******/ return promise;
348 | /******/ });
349 | /******/ }
350 | /******/
351 | /******/ // eslint-disable-next-line no-unused-vars
352 | /******/ function hotAddUpdateChunk(chunkId, moreModules) {
353 | /******/ if (!hotAvailableFilesMap[chunkId] || !hotRequestedFilesMap[chunkId])
354 | /******/ return;
355 | /******/ hotRequestedFilesMap[chunkId] = false;
356 | /******/ for (var moduleId in moreModules) {
357 | /******/ if (Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
358 | /******/ hotUpdate[moduleId] = moreModules[moduleId];
359 | /******/ }
360 | /******/ }
361 | /******/ if (--hotWaitingFiles === 0 && hotChunksLoading === 0) {
362 | /******/ hotUpdateDownloaded();
363 | /******/ }
364 | /******/ }
365 | /******/
366 | /******/ function hotEnsureUpdateChunk(chunkId) {
367 | /******/ if (!hotAvailableFilesMap[chunkId]) {
368 | /******/ hotWaitingFilesMap[chunkId] = true;
369 | /******/ } else {
370 | /******/ hotRequestedFilesMap[chunkId] = true;
371 | /******/ hotWaitingFiles++;
372 | /******/ hotDownloadUpdateChunk(chunkId);
373 | /******/ }
374 | /******/ }
375 | /******/
376 | /******/ function hotUpdateDownloaded() {
377 | /******/ hotSetStatus("ready");
378 | /******/ var deferred = hotDeferred;
379 | /******/ hotDeferred = null;
380 | /******/ if (!deferred) return;
381 | /******/ if (hotApplyOnUpdate) {
382 | /******/ // Wrap deferred object in Promise to mark it as a well-handled Promise to
383 | /******/ // avoid triggering uncaught exception warning in Chrome.
384 | /******/ // See https://bugs.chromium.org/p/chromium/issues/detail?id=465666
385 | /******/ Promise.resolve()
386 | /******/ .then(function() {
387 | /******/ return hotApply(hotApplyOnUpdate);
388 | /******/ })
389 | /******/ .then(
390 | /******/ function(result) {
391 | /******/ deferred.resolve(result);
392 | /******/ },
393 | /******/ function(err) {
394 | /******/ deferred.reject(err);
395 | /******/ }
396 | /******/ );
397 | /******/ } else {
398 | /******/ var outdatedModules = [];
399 | /******/ for (var id in hotUpdate) {
400 | /******/ if (Object.prototype.hasOwnProperty.call(hotUpdate, id)) {
401 | /******/ outdatedModules.push(toModuleId(id));
402 | /******/ }
403 | /******/ }
404 | /******/ deferred.resolve(outdatedModules);
405 | /******/ }
406 | /******/ }
407 | /******/
408 | /******/ function hotApply(options) {
409 | /******/ if (hotStatus !== "ready")
410 | /******/ throw new Error("apply() is only allowed in ready status");
411 | /******/ options = options || {};
412 | /******/ return hotApplyInternal(options);
413 | /******/ }
414 | /******/
415 | /******/ function hotApplyInternal(options) {
416 | /******/ hotApplyInvalidatedModules();
417 | /******/
418 | /******/ var cb;
419 | /******/ var i;
420 | /******/ var j;
421 | /******/ var module;
422 | /******/ var moduleId;
423 | /******/
424 | /******/ function getAffectedStuff(updateModuleId) {
425 | /******/ var outdatedModules = [updateModuleId];
426 | /******/ var outdatedDependencies = {};
427 | /******/
428 | /******/ var queue = outdatedModules.map(function(id) {
429 | /******/ return {
430 | /******/ chain: [id],
431 | /******/ id: id
432 | /******/ };
433 | /******/ });
434 | /******/ while (queue.length > 0) {
435 | /******/ var queueItem = queue.pop();
436 | /******/ var moduleId = queueItem.id;
437 | /******/ var chain = queueItem.chain;
438 | /******/ module = installedModules[moduleId];
439 | /******/ if (
440 | /******/ !module ||
441 | /******/ (module.hot._selfAccepted && !module.hot._selfInvalidated)
442 | /******/ )
443 | /******/ continue;
444 | /******/ if (module.hot._selfDeclined) {
445 | /******/ return {
446 | /******/ type: "self-declined",
447 | /******/ chain: chain,
448 | /******/ moduleId: moduleId
449 | /******/ };
450 | /******/ }
451 | /******/ if (module.hot._main) {
452 | /******/ return {
453 | /******/ type: "unaccepted",
454 | /******/ chain: chain,
455 | /******/ moduleId: moduleId
456 | /******/ };
457 | /******/ }
458 | /******/ for (var i = 0; i < module.parents.length; i++) {
459 | /******/ var parentId = module.parents[i];
460 | /******/ var parent = installedModules[parentId];
461 | /******/ if (!parent) continue;
462 | /******/ if (parent.hot._declinedDependencies[moduleId]) {
463 | /******/ return {
464 | /******/ type: "declined",
465 | /******/ chain: chain.concat([parentId]),
466 | /******/ moduleId: moduleId,
467 | /******/ parentId: parentId
468 | /******/ };
469 | /******/ }
470 | /******/ if (outdatedModules.indexOf(parentId) !== -1) continue;
471 | /******/ if (parent.hot._acceptedDependencies[moduleId]) {
472 | /******/ if (!outdatedDependencies[parentId])
473 | /******/ outdatedDependencies[parentId] = [];
474 | /******/ addAllToSet(outdatedDependencies[parentId], [moduleId]);
475 | /******/ continue;
476 | /******/ }
477 | /******/ delete outdatedDependencies[parentId];
478 | /******/ outdatedModules.push(parentId);
479 | /******/ queue.push({
480 | /******/ chain: chain.concat([parentId]),
481 | /******/ id: parentId
482 | /******/ });
483 | /******/ }
484 | /******/ }
485 | /******/
486 | /******/ return {
487 | /******/ type: "accepted",
488 | /******/ moduleId: updateModuleId,
489 | /******/ outdatedModules: outdatedModules,
490 | /******/ outdatedDependencies: outdatedDependencies
491 | /******/ };
492 | /******/ }
493 | /******/
494 | /******/ function addAllToSet(a, b) {
495 | /******/ for (var i = 0; i < b.length; i++) {
496 | /******/ var item = b[i];
497 | /******/ if (a.indexOf(item) === -1) a.push(item);
498 | /******/ }
499 | /******/ }
500 | /******/
501 | /******/ // at begin all updates modules are outdated
502 | /******/ // the "outdated" status can propagate to parents if they don't accept the children
503 | /******/ var outdatedDependencies = {};
504 | /******/ var outdatedModules = [];
505 | /******/ var appliedUpdate = {};
506 | /******/
507 | /******/ var warnUnexpectedRequire = function warnUnexpectedRequire() {
508 | /******/ console.warn(
509 | /******/ "[HMR] unexpected require(" + result.moduleId + ") to disposed module"
510 | /******/ );
511 | /******/ };
512 | /******/
513 | /******/ for (var id in hotUpdate) {
514 | /******/ if (Object.prototype.hasOwnProperty.call(hotUpdate, id)) {
515 | /******/ moduleId = toModuleId(id);
516 | /******/ /** @type {TODO} */
517 | /******/ var result;
518 | /******/ if (hotUpdate[id]) {
519 | /******/ result = getAffectedStuff(moduleId);
520 | /******/ } else {
521 | /******/ result = {
522 | /******/ type: "disposed",
523 | /******/ moduleId: id
524 | /******/ };
525 | /******/ }
526 | /******/ /** @type {Error|false} */
527 | /******/ var abortError = false;
528 | /******/ var doApply = false;
529 | /******/ var doDispose = false;
530 | /******/ var chainInfo = "";
531 | /******/ if (result.chain) {
532 | /******/ chainInfo = "\nUpdate propagation: " + result.chain.join(" -> ");
533 | /******/ }
534 | /******/ switch (result.type) {
535 | /******/ case "self-declined":
536 | /******/ if (options.onDeclined) options.onDeclined(result);
537 | /******/ if (!options.ignoreDeclined)
538 | /******/ abortError = new Error(
539 | /******/ "Aborted because of self decline: " +
540 | /******/ result.moduleId +
541 | /******/ chainInfo
542 | /******/ );
543 | /******/ break;
544 | /******/ case "declined":
545 | /******/ if (options.onDeclined) options.onDeclined(result);
546 | /******/ if (!options.ignoreDeclined)
547 | /******/ abortError = new Error(
548 | /******/ "Aborted because of declined dependency: " +
549 | /******/ result.moduleId +
550 | /******/ " in " +
551 | /******/ result.parentId +
552 | /******/ chainInfo
553 | /******/ );
554 | /******/ break;
555 | /******/ case "unaccepted":
556 | /******/ if (options.onUnaccepted) options.onUnaccepted(result);
557 | /******/ if (!options.ignoreUnaccepted)
558 | /******/ abortError = new Error(
559 | /******/ "Aborted because " + moduleId + " is not accepted" + chainInfo
560 | /******/ );
561 | /******/ break;
562 | /******/ case "accepted":
563 | /******/ if (options.onAccepted) options.onAccepted(result);
564 | /******/ doApply = true;
565 | /******/ break;
566 | /******/ case "disposed":
567 | /******/ if (options.onDisposed) options.onDisposed(result);
568 | /******/ doDispose = true;
569 | /******/ break;
570 | /******/ default:
571 | /******/ throw new Error("Unexception type " + result.type);
572 | /******/ }
573 | /******/ if (abortError) {
574 | /******/ hotSetStatus("abort");
575 | /******/ return Promise.reject(abortError);
576 | /******/ }
577 | /******/ if (doApply) {
578 | /******/ appliedUpdate[moduleId] = hotUpdate[moduleId];
579 | /******/ addAllToSet(outdatedModules, result.outdatedModules);
580 | /******/ for (moduleId in result.outdatedDependencies) {
581 | /******/ if (
582 | /******/ Object.prototype.hasOwnProperty.call(
583 | /******/ result.outdatedDependencies,
584 | /******/ moduleId
585 | /******/ )
586 | /******/ ) {
587 | /******/ if (!outdatedDependencies[moduleId])
588 | /******/ outdatedDependencies[moduleId] = [];
589 | /******/ addAllToSet(
590 | /******/ outdatedDependencies[moduleId],
591 | /******/ result.outdatedDependencies[moduleId]
592 | /******/ );
593 | /******/ }
594 | /******/ }
595 | /******/ }
596 | /******/ if (doDispose) {
597 | /******/ addAllToSet(outdatedModules, [result.moduleId]);
598 | /******/ appliedUpdate[moduleId] = warnUnexpectedRequire;
599 | /******/ }
600 | /******/ }
601 | /******/ }
602 | /******/
603 | /******/ // Store self accepted outdated modules to require them later by the module system
604 | /******/ var outdatedSelfAcceptedModules = [];
605 | /******/ for (i = 0; i < outdatedModules.length; i++) {
606 | /******/ moduleId = outdatedModules[i];
607 | /******/ if (
608 | /******/ installedModules[moduleId] &&
609 | /******/ installedModules[moduleId].hot._selfAccepted &&
610 | /******/ // removed self-accepted modules should not be required
611 | /******/ appliedUpdate[moduleId] !== warnUnexpectedRequire &&
612 | /******/ // when called invalidate self-accepting is not possible
613 | /******/ !installedModules[moduleId].hot._selfInvalidated
614 | /******/ ) {
615 | /******/ outdatedSelfAcceptedModules.push({
616 | /******/ module: moduleId,
617 | /******/ parents: installedModules[moduleId].parents.slice(),
618 | /******/ errorHandler: installedModules[moduleId].hot._selfAccepted
619 | /******/ });
620 | /******/ }
621 | /******/ }
622 | /******/
623 | /******/ // Now in "dispose" phase
624 | /******/ hotSetStatus("dispose");
625 | /******/ Object.keys(hotAvailableFilesMap).forEach(function(chunkId) {
626 | /******/ if (hotAvailableFilesMap[chunkId] === false) {
627 | /******/ hotDisposeChunk(chunkId);
628 | /******/ }
629 | /******/ });
630 | /******/
631 | /******/ var idx;
632 | /******/ var queue = outdatedModules.slice();
633 | /******/ while (queue.length > 0) {
634 | /******/ moduleId = queue.pop();
635 | /******/ module = installedModules[moduleId];
636 | /******/ if (!module) continue;
637 | /******/
638 | /******/ var data = {};
639 | /******/
640 | /******/ // Call dispose handlers
641 | /******/ var disposeHandlers = module.hot._disposeHandlers;
642 | /******/ for (j = 0; j < disposeHandlers.length; j++) {
643 | /******/ cb = disposeHandlers[j];
644 | /******/ cb(data);
645 | /******/ }
646 | /******/ hotCurrentModuleData[moduleId] = data;
647 | /******/
648 | /******/ // disable module (this disables requires from this module)
649 | /******/ module.hot.active = false;
650 | /******/
651 | /******/ // remove module from cache
652 | /******/ delete installedModules[moduleId];
653 | /******/
654 | /******/ // when disposing there is no need to call dispose handler
655 | /******/ delete outdatedDependencies[moduleId];
656 | /******/
657 | /******/ // remove "parents" references from all children
658 | /******/ for (j = 0; j < module.children.length; j++) {
659 | /******/ var child = installedModules[module.children[j]];
660 | /******/ if (!child) continue;
661 | /******/ idx = child.parents.indexOf(moduleId);
662 | /******/ if (idx >= 0) {
663 | /******/ child.parents.splice(idx, 1);
664 | /******/ }
665 | /******/ }
666 | /******/ }
667 | /******/
668 | /******/ // remove outdated dependency from module children
669 | /******/ var dependency;
670 | /******/ var moduleOutdatedDependencies;
671 | /******/ for (moduleId in outdatedDependencies) {
672 | /******/ if (
673 | /******/ Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)
674 | /******/ ) {
675 | /******/ module = installedModules[moduleId];
676 | /******/ if (module) {
677 | /******/ moduleOutdatedDependencies = outdatedDependencies[moduleId];
678 | /******/ for (j = 0; j < moduleOutdatedDependencies.length; j++) {
679 | /******/ dependency = moduleOutdatedDependencies[j];
680 | /******/ idx = module.children.indexOf(dependency);
681 | /******/ if (idx >= 0) module.children.splice(idx, 1);
682 | /******/ }
683 | /******/ }
684 | /******/ }
685 | /******/ }
686 | /******/
687 | /******/ // Now in "apply" phase
688 | /******/ hotSetStatus("apply");
689 | /******/
690 | /******/ if (hotUpdateNewHash !== undefined) {
691 | /******/ hotCurrentHash = hotUpdateNewHash;
692 | /******/ hotUpdateNewHash = undefined;
693 | /******/ }
694 | /******/ hotUpdate = undefined;
695 | /******/
696 | /******/ // insert new code
697 | /******/ for (moduleId in appliedUpdate) {
698 | /******/ if (Object.prototype.hasOwnProperty.call(appliedUpdate, moduleId)) {
699 | /******/ modules[moduleId] = appliedUpdate[moduleId];
700 | /******/ }
701 | /******/ }
702 | /******/
703 | /******/ // call accept handlers
704 | /******/ var error = null;
705 | /******/ for (moduleId in outdatedDependencies) {
706 | /******/ if (
707 | /******/ Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)
708 | /******/ ) {
709 | /******/ module = installedModules[moduleId];
710 | /******/ if (module) {
711 | /******/ moduleOutdatedDependencies = outdatedDependencies[moduleId];
712 | /******/ var callbacks = [];
713 | /******/ for (i = 0; i < moduleOutdatedDependencies.length; i++) {
714 | /******/ dependency = moduleOutdatedDependencies[i];
715 | /******/ cb = module.hot._acceptedDependencies[dependency];
716 | /******/ if (cb) {
717 | /******/ if (callbacks.indexOf(cb) !== -1) continue;
718 | /******/ callbacks.push(cb);
719 | /******/ }
720 | /******/ }
721 | /******/ for (i = 0; i < callbacks.length; i++) {
722 | /******/ cb = callbacks[i];
723 | /******/ try {
724 | /******/ cb(moduleOutdatedDependencies);
725 | /******/ } catch (err) {
726 | /******/ if (options.onErrored) {
727 | /******/ options.onErrored({
728 | /******/ type: "accept-errored",
729 | /******/ moduleId: moduleId,
730 | /******/ dependencyId: moduleOutdatedDependencies[i],
731 | /******/ error: err
732 | /******/ });
733 | /******/ }
734 | /******/ if (!options.ignoreErrored) {
735 | /******/ if (!error) error = err;
736 | /******/ }
737 | /******/ }
738 | /******/ }
739 | /******/ }
740 | /******/ }
741 | /******/ }
742 | /******/
743 | /******/ // Load self accepted modules
744 | /******/ for (i = 0; i < outdatedSelfAcceptedModules.length; i++) {
745 | /******/ var item = outdatedSelfAcceptedModules[i];
746 | /******/ moduleId = item.module;
747 | /******/ hotCurrentParents = item.parents;
748 | /******/ hotCurrentChildModule = moduleId;
749 | /******/ try {
750 | /******/ __webpack_require__(moduleId);
751 | /******/ } catch (err) {
752 | /******/ if (typeof item.errorHandler === "function") {
753 | /******/ try {
754 | /******/ item.errorHandler(err);
755 | /******/ } catch (err2) {
756 | /******/ if (options.onErrored) {
757 | /******/ options.onErrored({
758 | /******/ type: "self-accept-error-handler-errored",
759 | /******/ moduleId: moduleId,
760 | /******/ error: err2,
761 | /******/ originalError: err
762 | /******/ });
763 | /******/ }
764 | /******/ if (!options.ignoreErrored) {
765 | /******/ if (!error) error = err2;
766 | /******/ }
767 | /******/ if (!error) error = err;
768 | /******/ }
769 | /******/ } else {
770 | /******/ if (options.onErrored) {
771 | /******/ options.onErrored({
772 | /******/ type: "self-accept-errored",
773 | /******/ moduleId: moduleId,
774 | /******/ error: err
775 | /******/ });
776 | /******/ }
777 | /******/ if (!options.ignoreErrored) {
778 | /******/ if (!error) error = err;
779 | /******/ }
780 | /******/ }
781 | /******/ }
782 | /******/ }
783 | /******/
784 | /******/ // handle errors in accept handlers and self accepted module load
785 | /******/ if (error) {
786 | /******/ hotSetStatus("fail");
787 | /******/ return Promise.reject(error);
788 | /******/ }
789 | /******/
790 | /******/ if (hotQueuedInvalidatedModules) {
791 | /******/ return hotApplyInternal(options).then(function(list) {
792 | /******/ outdatedModules.forEach(function(moduleId) {
793 | /******/ if (list.indexOf(moduleId) < 0) list.push(moduleId);
794 | /******/ });
795 | /******/ return list;
796 | /******/ });
797 | /******/ }
798 | /******/
799 | /******/ hotSetStatus("idle");
800 | /******/ return new Promise(function(resolve) {
801 | /******/ resolve(outdatedModules);
802 | /******/ });
803 | /******/ }
804 | /******/
805 | /******/ function hotApplyInvalidatedModules() {
806 | /******/ if (hotQueuedInvalidatedModules) {
807 | /******/ if (!hotUpdate) hotUpdate = {};
808 | /******/ hotQueuedInvalidatedModules.forEach(hotApplyInvalidatedModule);
809 | /******/ hotQueuedInvalidatedModules = undefined;
810 | /******/ return true;
811 | /******/ }
812 | /******/ }
813 | /******/
814 | /******/ function hotApplyInvalidatedModule(moduleId) {
815 | /******/ if (!Object.prototype.hasOwnProperty.call(hotUpdate, moduleId))
816 | /******/ hotUpdate[moduleId] = modules[moduleId];
817 | /******/ }
818 | /******/
819 | /******/ // The module cache
820 | /******/ var installedModules = {};
821 | /******/
822 | /******/ // object to store loaded and loading chunks
823 | /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
824 | /******/ // Promise = chunk loading, 0 = chunk loaded
825 | /******/ var installedChunks = {
826 | /******/ "static/runtime/webpack.js": 0
827 | /******/ };
828 | /******/
829 | /******/ var deferredModules = [];
830 | /******/
831 | /******/ // script path function
832 | /******/ function jsonpScriptSrc(chunkId) {
833 | /******/ return __webpack_require__.p + "static/chunks/" + ({}[chunkId]||chunkId) + ".js"
834 | /******/ }
835 | /******/
836 | /******/ // The require function
837 | /******/ function __webpack_require__(moduleId) {
838 | /******/
839 | /******/ // Check if module is in cache
840 | /******/ if(installedModules[moduleId]) {
841 | /******/ return installedModules[moduleId].exports;
842 | /******/ }
843 | /******/ // Create a new module (and put it into the cache)
844 | /******/ var module = installedModules[moduleId] = {
845 | /******/ i: moduleId,
846 | /******/ l: false,
847 | /******/ exports: {},
848 | /******/ hot: hotCreateModule(moduleId),
849 | /******/ parents: (hotCurrentParentsTemp = hotCurrentParents, hotCurrentParents = [], hotCurrentParentsTemp),
850 | /******/ children: []
851 | /******/ };
852 | /******/
853 | /******/ // Execute the module function
854 | /******/ var threw = true;
855 | /******/ try {
856 | /******/
857 | /******/ var hasRefresh = typeof self !== "undefined" && !!self.$RefreshInterceptModuleExecution$;
858 | /******/ var cleanup = hasRefresh
859 | /******/ ? self.$RefreshInterceptModuleExecution$(moduleId)
860 | /******/ : function() {};
861 | /******/ try {
862 | /******/
863 | /******/ modules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId));
864 | /******/
865 | /******/ } finally {
866 | /******/ cleanup();
867 | /******/ }
868 | /******/
869 | /******/ threw = false;
870 | /******/ } finally {
871 | /******/ if(threw) delete installedModules[moduleId];
872 | /******/ }
873 | /******/
874 | /******/ // Flag the module as loaded
875 | /******/ module.l = true;
876 | /******/
877 | /******/ // Return the exports of the module
878 | /******/ return module.exports;
879 | /******/ }
880 | /******/
881 | /******/ // This file contains only the entry chunk.
882 | /******/ // The chunk loading function for additional chunks
883 | /******/ __webpack_require__.e = function requireEnsure(chunkId) {
884 | /******/ var promises = [];
885 | /******/
886 | /******/
887 | /******/ // JSONP chunk loading for javascript
888 | /******/
889 | /******/ var installedChunkData = installedChunks[chunkId];
890 | /******/ if(installedChunkData !== 0) { // 0 means "already installed".
891 | /******/
892 | /******/ // a Promise means "currently loading".
893 | /******/ if(installedChunkData) {
894 | /******/ promises.push(installedChunkData[2]);
895 | /******/ } else {
896 | /******/ // setup Promise in chunk cache
897 | /******/ var promise = new Promise(function(resolve, reject) {
898 | /******/ installedChunkData = installedChunks[chunkId] = [resolve, reject];
899 | /******/ });
900 | /******/ promises.push(installedChunkData[2] = promise);
901 | /******/
902 | /******/ // start chunk loading
903 | /******/ var script = document.createElement('script');
904 | /******/ var onScriptComplete;
905 | /******/
906 | /******/ script.charset = 'utf-8';
907 | /******/ script.timeout = 120;
908 | /******/ if (__webpack_require__.nc) {
909 | /******/ script.setAttribute("nonce", __webpack_require__.nc);
910 | /******/ }
911 | /******/ script.src = jsonpScriptSrc(chunkId);
912 | /******/
913 | /******/ // create error before stack unwound to get useful stacktrace later
914 | /******/ var error = new Error();
915 | /******/ onScriptComplete = function (event) {
916 | /******/ // avoid mem leaks in IE.
917 | /******/ script.onerror = script.onload = null;
918 | /******/ clearTimeout(timeout);
919 | /******/ var chunk = installedChunks[chunkId];
920 | /******/ if(chunk !== 0) {
921 | /******/ if(chunk) {
922 | /******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type);
923 | /******/ var realSrc = event && event.target && event.target.src;
924 | /******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')';
925 | /******/ error.name = 'ChunkLoadError';
926 | /******/ error.type = errorType;
927 | /******/ error.request = realSrc;
928 | /******/ chunk[1](error);
929 | /******/ }
930 | /******/ installedChunks[chunkId] = undefined;
931 | /******/ }
932 | /******/ };
933 | /******/ var timeout = setTimeout(function(){
934 | /******/ onScriptComplete({ type: 'timeout', target: script });
935 | /******/ }, 120000);
936 | /******/ script.onerror = script.onload = onScriptComplete;
937 | /******/ document.head.appendChild(script);
938 | /******/ }
939 | /******/ }
940 | /******/ return Promise.all(promises);
941 | /******/ };
942 | /******/
943 | /******/ // expose the modules object (__webpack_modules__)
944 | /******/ __webpack_require__.m = modules;
945 | /******/
946 | /******/ // expose the module cache
947 | /******/ __webpack_require__.c = installedModules;
948 | /******/
949 | /******/ // define getter function for harmony exports
950 | /******/ __webpack_require__.d = function(exports, name, getter) {
951 | /******/ if(!__webpack_require__.o(exports, name)) {
952 | /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
953 | /******/ }
954 | /******/ };
955 | /******/
956 | /******/ // define __esModule on exports
957 | /******/ __webpack_require__.r = function(exports) {
958 | /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
959 | /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
960 | /******/ }
961 | /******/ Object.defineProperty(exports, '__esModule', { value: true });
962 | /******/ };
963 | /******/
964 | /******/ // create a fake namespace object
965 | /******/ // mode & 1: value is a module id, require it
966 | /******/ // mode & 2: merge all properties of value into the ns
967 | /******/ // mode & 4: return value when already ns object
968 | /******/ // mode & 8|1: behave like require
969 | /******/ __webpack_require__.t = function(value, mode) {
970 | /******/ if(mode & 1) value = __webpack_require__(value);
971 | /******/ if(mode & 8) return value;
972 | /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
973 | /******/ var ns = Object.create(null);
974 | /******/ __webpack_require__.r(ns);
975 | /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
976 | /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
977 | /******/ return ns;
978 | /******/ };
979 | /******/
980 | /******/ // getDefaultExport function for compatibility with non-harmony modules
981 | /******/ __webpack_require__.n = function(module) {
982 | /******/ var getter = module && module.__esModule ?
983 | /******/ function getDefault() { return module['default']; } :
984 | /******/ function getModuleExports() { return module; };
985 | /******/ __webpack_require__.d(getter, 'a', getter);
986 | /******/ return getter;
987 | /******/ };
988 | /******/
989 | /******/ // Object.prototype.hasOwnProperty.call
990 | /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
991 | /******/
992 | /******/ // __webpack_public_path__
993 | /******/ __webpack_require__.p = "";
994 | /******/
995 | /******/ // on error function for async loading
996 | /******/ __webpack_require__.oe = function(err) { console.error(err); throw err; };
997 | /******/
998 | /******/ // __webpack_hash__
999 | /******/ __webpack_require__.h = function() { return hotCurrentHash; };
1000 | /******/
1001 | /******/ var jsonpArray = window["webpackJsonp"] = window["webpackJsonp"] || [];
1002 | /******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
1003 | /******/ jsonpArray.push = webpackJsonpCallback;
1004 | /******/ jsonpArray = jsonpArray.slice();
1005 | /******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
1006 | /******/ var parentJsonpFunction = oldJsonpFunction;
1007 | /******/
1008 | /******/
1009 | /******/ // run deferred modules from other chunks
1010 | /******/ checkDeferredModules();
1011 | /******/ })
1012 | /************************************************************************/
1013 | /******/ ([]);
--------------------------------------------------------------------------------