{"ast":null,"code":"\"use strict\";\n\nvar _regeneratorRuntime = require(\"@babel/runtime-corejs2/regenerator\");\n\nvar _classCallCheck = require(\"@babel/runtime-corejs2/helpers/classCallCheck\");\n\nvar _createClass = require(\"@babel/runtime-corejs2/helpers/createClass\");\n\nvar _possibleConstructorReturn = require(\"@babel/runtime-corejs2/helpers/possibleConstructorReturn\");\n\nvar _getPrototypeOf = require(\"@babel/runtime-corejs2/helpers/getPrototypeOf\");\n\nvar _inherits = require(\"@babel/runtime-corejs2/helpers/inherits\");\n\nvar _slicedToArray = require(\"@babel/runtime-corejs2/helpers/slicedToArray\");\n\nvar _interopRequireWildcard3 = require(\"@babel/runtime-corejs2/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.render = render;\nexports.renderError = renderError;\nexports[\"default\"] = exports.emitter = exports.router = exports.version = void 0;\n\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/asyncToGenerator\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/extends\"));\n\nvar _interopRequireWildcard2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/interopRequireWildcard\"));\n\nvar _promise = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/promise\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _headManager = _interopRequireDefault(require(\"./head-manager\"));\n\nvar _router = require(\"next/router\");\n\nvar _mitt = _interopRequireDefault(require(\"../next-server/lib/mitt\"));\n\nvar _utils = require(\"../next-server/lib/utils\");\n\nvar _pageLoader = _interopRequireDefault(require(\"./page-loader\"));\n\nvar envConfig = _interopRequireWildcard3(require(\"../next-server/lib/runtime-config\"));\n\nvar _headManagerContext = require(\"../next-server/lib/head-manager-context\");\n\nvar _routerContext = require(\"../next-server/lib/router-context\");\n\nvar _querystring = require(\"querystring\");\n\nvar _isDynamic = require(\"../next-server/lib/router/utils/is-dynamic\");\n/* global location */\n\n\nif (!window.Promise) {\n  window.Promise = _promise[\"default\"];\n}\n\nvar data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);\nwindow.__NEXT_DATA__ = data;\nvar version = \"9.2.0\";\nexports.version = version;\nvar props = data.props,\n    err = data.err,\n    page = data.page,\n    query = data.query,\n    buildId = data.buildId,\n    assetPrefix = data.assetPrefix,\n    runtimeConfig = data.runtimeConfig,\n    dynamicIds = data.dynamicIds;\nvar prefix = assetPrefix || ''; // With dynamic assetPrefix it's no longer possible to set assetPrefix at the build time\n// So, this is how we do it in the client side at runtime\n\n__webpack_public_path__ = prefix + \"/_next/\"; //eslint-disable-line\n// Initialize next/config with the environment configuration\n\nenvConfig.setConfig({\n  serverRuntimeConfig: {},\n  publicRuntimeConfig: runtimeConfig || {}\n});\nvar asPath = (0, _utils.getURL)();\nvar pageLoader = new _pageLoader[\"default\"](buildId, prefix);\n\nvar register = function register(_ref) {\n  var _ref2 = _slicedToArray(_ref, 2),\n      r = _ref2[0],\n      f = _ref2[1];\n\n  return pageLoader.registerPage(r, f);\n};\n\nif (window.__NEXT_P) {\n  window.__NEXT_P.map(register);\n}\n\nwindow.__NEXT_P = [];\nwindow.__NEXT_P.push = register;\nvar headManager = new _headManager[\"default\"]();\nvar appElement = document.getElementById('__next');\nvar lastAppProps;\nvar webpackHMR;\nvar router;\nexports.router = router;\nvar ErrorComponent;\nvar Component;\nvar App, onPerfEntry;\n\nvar Container =\n/*#__PURE__*/\nfunction (_react$default$Compon) {\n  _inherits(Container, _react$default$Compon);\n\n  function Container() {\n    _classCallCheck(this, Container);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(Container).apply(this, arguments));\n  }\n\n  _createClass(Container, [{\n    key: \"componentDidCatch\",\n    value: function componentDidCatch(err, info) {\n      this.props.fn(err, info);\n    }\n  }, {\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.scrollToHash();\n\n      if (process.env.__NEXT_PLUGINS) {\n        // eslint-disable-next-line\n        _promise[\"default\"].resolve().then(function () {\n          return (0, _interopRequireWildcard2[\"default\"])(require('next-plugin-loader?middleware=unstable-post-hydration!'));\n        }).then(function (mod) {\n          return mod[\"default\"]();\n        })[\"catch\"](function (err) {\n          console.error('Error calling post-hydration for plugins', err);\n        });\n      } // If page was exported and has a querystring\n      // If it's a dynamic route or has a querystring\n\n\n      if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search) || Component && Component.__N_SSG && location.search) {\n        // update query on mount for exported pages\n        router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2[\"default\"])({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {\n          // WARNING: `_h` is an internal option for handing Next.js\n          // client-side hydration. Your app should _never_ use this property.\n          // It may change at any time without notice.\n          _h: 1,\n          shallow: true\n        });\n      }\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate() {\n      this.scrollToHash();\n    }\n  }, {\n    key: \"scrollToHash\",\n    value: function scrollToHash() {\n      var _location = location,\n          hash = _location.hash;\n      hash = hash && hash.substring(1);\n      if (!hash) return;\n      var el = document.getElementById(hash);\n      if (!el) return; // If we call scrollIntoView() in here without a setTimeout\n      // it won't scroll properly.\n\n      setTimeout(function () {\n        return el.scrollIntoView();\n      }, 0);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      return this.props.children;\n    }\n  }]);\n\n  return Container;\n}(_react[\"default\"].Component);\n\nvar emitter = (0, _mitt[\"default\"])();\nexports.emitter = emitter;\n\nvar _default =\n/*#__PURE__*/\nfunction () {\n  var _ref2 = (0, _asyncToGenerator2[\"default\"])(\n  /*#__PURE__*/\n  _regeneratorRuntime.mark(function _callee(_temp) {\n    var _ref, passedWebpackHMR, _ref3, app, mod, initialErr, _require, isValidElementType, renderCtx;\n\n    return _regeneratorRuntime.wrap(function _callee$(_context) {\n      while (1) {\n        switch (_context.prev = _context.next) {\n          case 0:\n            _ref = _temp === void 0 ? {} : _temp, passedWebpackHMR = _ref.webpackHMR; // This makes sure this specific lines are removed in production\n\n            if (false) {\n              webpackHMR = passedWebpackHMR;\n            }\n\n            _context.next = 4;\n            return pageLoader.loadPageScript('/_app');\n\n          case 4:\n            _ref3 = _context.sent;\n            app = _ref3.page;\n            mod = _ref3.mod;\n            App = app;\n\n            if (mod && mod.unstable_onPerformanceData) {\n              onPerfEntry = function onPerfEntry(_ref3) {\n                var name = _ref3.name,\n                    startTime = _ref3.startTime,\n                    value = _ref3.value,\n                    duration = _ref3.duration;\n                mod.unstable_onPerformanceData({\n                  name: name,\n                  startTime: startTime,\n                  value: value,\n                  duration: duration\n                });\n              };\n            }\n\n            initialErr = err;\n            _context.prev = 10;\n            _context.next = 13;\n            return pageLoader.loadPage(page);\n\n          case 13:\n            Component = _context.sent;\n\n            if (!false) {\n              _context.next = 18;\n              break;\n            }\n\n            _require = require('react-is'), isValidElementType = _require.isValidElementType;\n\n            if (isValidElementType(Component)) {\n              _context.next = 18;\n              break;\n            }\n\n            throw new Error(\"The default export is not a React Component in page: \\\"\" + page + \"\\\"\");\n\n          case 18:\n            _context.next = 23;\n            break;\n\n          case 20:\n            _context.prev = 20;\n            _context.t0 = _context[\"catch\"](10);\n            // This catches errors like throwing in the top level of a module\n            initialErr = _context.t0;\n\n          case 23:\n            if (!window.__NEXT_PRELOADREADY) {\n              _context.next = 26;\n              break;\n            }\n\n            _context.next = 26;\n            return window.__NEXT_PRELOADREADY(dynamicIds);\n\n          case 26:\n            exports.router = router = (0, _router.createRouter)(page, query, asPath, {\n              initialProps: props,\n              pageLoader: pageLoader,\n              App: App,\n              Component: Component,\n              wrapApp: wrapApp,\n              err: initialErr,\n              subscription: function subscription(_ref4, App) {\n                var Component = _ref4.Component,\n                    props = _ref4.props,\n                    err = _ref4.err;\n                render({\n                  App: App,\n                  Component: Component,\n                  props: props,\n                  err: err\n                });\n              }\n            }); // call init-client middleware\n\n            if (process.env.__NEXT_PLUGINS) {\n              // eslint-disable-next-line\n              _promise[\"default\"].resolve().then(function () {\n                return (0, _interopRequireWildcard2[\"default\"])(require('next-plugin-loader?middleware=on-init-client!'));\n              }).then(function (mod) {\n                return mod[\"default\"]({\n                  router: router\n                });\n              })[\"catch\"](function (err) {\n                console.error('Error calling client-init for plugins', err);\n              });\n            }\n\n            renderCtx = {\n              App: App,\n              Component: Component,\n              props: props,\n              err: initialErr\n            };\n            render(renderCtx);\n            return _context.abrupt(\"return\", emitter);\n\n          case 31:\n          case \"end\":\n            return _context.stop();\n        }\n      }\n    }, _callee, null, [[10, 20]]);\n  }));\n\n  return function (_x) {\n    return _ref2.apply(this, arguments);\n  };\n}();\n\nexports[\"default\"] = _default;\n\nfunction render(_x2) {\n  return _render.apply(this, arguments);\n} // This method handles all runtime and debug errors.\n// 404 and 500 errors are special kind of errors\n// and they are still handle via the main render method.\n\n\nfunction _render() {\n  _render = (0, _asyncToGenerator2[\"default\"])(\n  /*#__PURE__*/\n  _regeneratorRuntime.mark(function _callee2(props) {\n    return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n      while (1) {\n        switch (_context2.prev = _context2.next) {\n          case 0:\n            if (!props.err) {\n              _context2.next = 4;\n              break;\n            }\n\n            _context2.next = 3;\n            return renderError(props);\n\n          case 3:\n            return _context2.abrupt(\"return\");\n\n          case 4:\n            _context2.prev = 4;\n            _context2.next = 7;\n            return doRender(props);\n\n          case 7:\n            _context2.next = 13;\n            break;\n\n          case 9:\n            _context2.prev = 9;\n            _context2.t0 = _context2[\"catch\"](4);\n            _context2.next = 13;\n            return renderError((0, _extends2[\"default\"])({}, props, {\n              err: _context2.t0\n            }));\n\n          case 13:\n          case \"end\":\n            return _context2.stop();\n        }\n      }\n    }, _callee2, null, [[4, 9]]);\n  }));\n  return _render.apply(this, arguments);\n}\n\nfunction renderError(_x3) {\n  return _renderError.apply(this, arguments);\n} // If hydrate does not exist, eg in preact.\n\n\nfunction _renderError() {\n  _renderError = (0, _asyncToGenerator2[\"default\"])(\n  /*#__PURE__*/\n  _regeneratorRuntime.mark(function _callee3(props) {\n    var App, err, AppTree, appCtx, initProps;\n    return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n      while (1) {\n        switch (_context3.prev = _context3.next) {\n          case 0:\n            App = props.App, err = props.err; // In development runtime errors are caught by react-error-overlay\n            // In production we catch runtime errors using componentDidCatch which will trigger renderError\n\n            if (!false) {\n              _context3.next = 3;\n              break;\n            }\n\n            return _context3.abrupt(\"return\", webpackHMR.reportRuntimeError(webpackHMR.prepareError(err)));\n\n          case 3:\n            if (process.env.__NEXT_PLUGINS) {\n              // eslint-disable-next-line\n              _promise[\"default\"].resolve().then(function () {\n                return (0, _interopRequireWildcard2[\"default\"])(require('next-plugin-loader?middleware=on-error-client!'));\n              }).then(function (mod) {\n                return mod[\"default\"]({\n                  err: err\n                });\n              })[\"catch\"](function (err) {\n                console.error('error calling on-error-client for plugins', err);\n              });\n            } // Make sure we log the error to the console, otherwise users can't track down issues.\n\n\n            console.error(err);\n            _context3.next = 7;\n            return pageLoader.loadPage('/_error');\n\n          case 7:\n            ErrorComponent = _context3.sent;\n            // In production we do a normal render with the `ErrorComponent` as component.\n            // If we've gotten here upon initial render, we can use the props from the server.\n            // Otherwise, we need to call `getInitialProps` on `App` before mounting.\n            AppTree = wrapApp(App);\n            appCtx = {\n              Component: ErrorComponent,\n              AppTree: AppTree,\n              router: router,\n              ctx: {\n                err: err,\n                pathname: page,\n                query: query,\n                asPath: asPath,\n                AppTree: AppTree\n              }\n            };\n\n            if (!props.props) {\n              _context3.next = 14;\n              break;\n            }\n\n            _context3.t0 = props.props;\n            _context3.next = 17;\n            break;\n\n          case 14:\n            _context3.next = 16;\n            return (0, _utils.loadGetInitialProps)(App, appCtx);\n\n          case 16:\n            _context3.t0 = _context3.sent;\n\n          case 17:\n            initProps = _context3.t0;\n            _context3.next = 20;\n            return doRender((0, _extends2[\"default\"])({}, props, {\n              err: err,\n              Component: ErrorComponent,\n              props: initProps\n            }));\n\n          case 20:\n          case \"end\":\n            return _context3.stop();\n        }\n      }\n    }, _callee3);\n  }));\n  return _renderError.apply(this, arguments);\n}\n\nvar isInitialRender = typeof _reactDom[\"default\"].hydrate === 'function';\nvar reactRoot = null;\n\nfunction renderReactElement(reactEl, domEl) {\n  if (process.env.__NEXT_REACT_MODE !== 'legacy') {\n    if (!reactRoot) {\n      var opts = {\n        hydrate: true\n      };\n      reactRoot = process.env.__NEXT_REACT_MODE === 'concurrent' ? _reactDom[\"default\"].createRoot(domEl, opts) : _reactDom[\"default\"].createBlockingRoot(domEl, opts);\n    }\n\n    reactRoot.render(reactEl);\n  } else {\n    // mark start of hydrate/render\n    if (_utils.ST) {\n      performance.mark('beforeRender');\n    } // The check for `.hydrate` is there to support React alternatives like preact\n\n\n    if (isInitialRender) {\n      _reactDom[\"default\"].hydrate(reactEl, domEl, markHydrateComplete);\n\n      isInitialRender = false;\n    } else {\n      _reactDom[\"default\"].render(reactEl, domEl, markRenderComplete);\n    }\n  }\n\n  if (onPerfEntry && _utils.ST) {\n    try {\n      var observer = new PerformanceObserver(function (list) {\n        list.getEntries().forEach(onPerfEntry);\n      }); // Start observing paint entry types.\n\n      observer.observe({\n        type: 'paint',\n        buffered: true\n      });\n    } catch (e) {\n      window.addEventListener('load', function () {\n        performance.getEntriesByType('paint').forEach(onPerfEntry);\n      });\n    }\n  }\n}\n\nfunction markHydrateComplete() {\n  if (!_utils.ST) return;\n  performance.mark('afterHydrate'); // mark end of hydration\n\n  performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');\n  performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');\n\n  if (onPerfEntry) {\n    performance.getEntriesByName('Next.js-hydration').forEach(onPerfEntry);\n    performance.getEntriesByName('beforeRender').forEach(onPerfEntry);\n  }\n\n  clearMarks();\n}\n\nfunction markRenderComplete() {\n  if (!_utils.ST) return;\n  performance.mark('afterRender'); // mark end of render\n\n  var navStartEntries = performance.getEntriesByName('routeChange', 'mark');\n\n  if (!navStartEntries.length) {\n    return;\n  }\n\n  performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');\n  performance.measure('Next.js-render', 'beforeRender', 'afterRender');\n\n  if (onPerfEntry) {\n    performance.getEntriesByName('Next.js-render').forEach(onPerfEntry);\n    performance.getEntriesByName('Next.js-route-change-to-render').forEach(onPerfEntry);\n  }\n\n  clearMarks();\n}\n\nfunction clearMarks() {\n  ;\n  ['beforeRender', 'afterHydrate', 'afterRender', 'routeChange'].forEach(function (mark) {\n    return performance.clearMarks(mark);\n  });\n  ['Next.js-before-hydration', 'Next.js-hydration', 'Next.js-route-change-to-render', 'Next.js-render'].forEach(function (measure) {\n    return performance.clearMeasures(measure);\n  });\n}\n\nfunction AppContainer(_ref5) {\n  var children = _ref5.children;\n  return _react[\"default\"].createElement(Container, {\n    fn: function fn(error) {\n      return renderError({\n        App: App,\n        err: error\n      })[\"catch\"](function (err) {\n        return console.error('Error rendering page: ', err);\n      });\n    }\n  }, _react[\"default\"].createElement(_routerContext.RouterContext.Provider, {\n    value: (0, _router.makePublicRouterInstance)(router)\n  }, _react[\"default\"].createElement(_headManagerContext.HeadManagerContext.Provider, {\n    value: headManager.updateHead\n  }, children)));\n}\n\nvar wrapApp = function wrapApp(App) {\n  return function (props) {\n    var appProps = (0, _extends2[\"default\"])({}, props, {\n      Component: Component,\n      err: err,\n      router: router\n    });\n    return _react[\"default\"].createElement(AppContainer, null, _react[\"default\"].createElement(App, appProps));\n  };\n};\n\nfunction doRender(_x4) {\n  return _doRender.apply(this, arguments);\n}\n\nfunction _doRender() {\n  _doRender = (0, _asyncToGenerator2[\"default\"])(\n  /*#__PURE__*/\n  _regeneratorRuntime.mark(function _callee4(_ref6) {\n    var App, Component, props, err, _router2, pathname, _query, _asPath, AppTree, appCtx, appProps, elem;\n\n    return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n      while (1) {\n        switch (_context4.prev = _context4.next) {\n          case 0:\n            App = _ref6.App, Component = _ref6.Component, props = _ref6.props, err = _ref6.err; // Usual getInitialProps fetching is handled in next/router\n            // this is for when ErrorComponent gets replaced by Component by HMR\n\n            if (!(!props && Component && Component !== ErrorComponent && lastAppProps.Component === ErrorComponent)) {\n              _context4.next = 8;\n              break;\n            }\n\n            _router2 = router, pathname = _router2.pathname, _query = _router2.query, _asPath = _router2.asPath;\n            AppTree = wrapApp(App);\n            appCtx = {\n              router: router,\n              AppTree: AppTree,\n              Component: ErrorComponent,\n              ctx: {\n                err: err,\n                pathname: pathname,\n                query: _query,\n                asPath: _asPath,\n                AppTree: AppTree\n              }\n            };\n            _context4.next = 7;\n            return (0, _utils.loadGetInitialProps)(App, appCtx);\n\n          case 7:\n            props = _context4.sent;\n\n          case 8:\n            Component = Component || lastAppProps.Component;\n            props = props || lastAppProps.props;\n            appProps = (0, _extends2[\"default\"])({}, props, {\n              Component: Component,\n              err: err,\n              router: router\n            }); // lastAppProps has to be set before ReactDom.render to account for ReactDom throwing an error.\n\n            lastAppProps = appProps;\n            emitter.emit('before-reactdom-render', {\n              Component: Component,\n              ErrorComponent: ErrorComponent,\n              appProps: appProps\n            });\n            elem = _react[\"default\"].createElement(AppContainer, null, _react[\"default\"].createElement(App, appProps)); // We catch runtime errors using componentDidCatch which will trigger renderError\n\n            renderReactElement(process.env.__NEXT_STRICT_MODE ? _react[\"default\"].createElement(_react[\"default\"].StrictMode, null, elem) : elem, appElement);\n            emitter.emit('after-reactdom-render', {\n              Component: Component,\n              ErrorComponent: ErrorComponent,\n              appProps: appProps\n            });\n\n          case 16:\n          case \"end\":\n            return _context4.stop();\n        }\n      }\n    }, _callee4);\n  }));\n  return _doRender.apply(this, arguments);\n}","map":null,"metadata":{},"sourceType":"script"}