├── 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 | ![Demo](.github/demo.gif) 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 | 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 | 24 |

25 |

formState = {"employment-type":""}
-------------------------------------------------------------------------------- /docs/unemployed.html: -------------------------------------------------------------------------------- 1 |

Unemployed

Last page in the flow

Back home

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.

Back home

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.

Back home

formState = {"employment-type":""}
-------------------------------------------------------------------------------- /docs/404.html: -------------------------------------------------------------------------------- 1 | 404: This page could not be found

404

This page could not be found.

Back home

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 | /******/ ([]); --------------------------------------------------------------------------------