| |
| "use strict"; |
| Object.defineProperty(exports, "__esModule", { |
| value: true |
| }); |
| 0 && (module.exports = { |
| Head: null, |
| Html: null, |
| Main: null, |
| NextScript: null, |
| default: null |
| }); |
| function _export(target, all) { |
| for(var name in all)Object.defineProperty(target, name, { |
| enumerable: true, |
| get: all[name] |
| }); |
| } |
| _export(exports, { |
| Head: function() { |
| return Head; |
| }, |
| Html: function() { |
| return Html; |
| }, |
| Main: function() { |
| return Main; |
| }, |
| NextScript: function() { |
| return NextScript; |
| }, |
| |
| |
| |
| default: function() { |
| return Document; |
| } |
| }); |
| const _jsxruntime = require("react/jsx-runtime"); |
| const _react = _interop_require_wildcard(require("react")); |
| const _constants = require("../shared/lib/constants"); |
| const _getpagefiles = require("../server/get-page-files"); |
| const _htmlescape = require("../server/htmlescape"); |
| const _iserror = _interop_require_default(require("../lib/is-error")); |
| const _htmlcontextsharedruntime = require("../shared/lib/html-context.shared-runtime"); |
| const _encodeuripath = require("../shared/lib/encode-uri-path"); |
| const _tracer = require("../server/lib/trace/tracer"); |
| const _utils = require("../server/lib/trace/utils"); |
| function _interop_require_default(obj) { |
| return obj && obj.__esModule ? obj : { |
| default: obj |
| }; |
| } |
| function _getRequireWildcardCache(nodeInterop) { |
| if (typeof WeakMap !== "function") return null; |
| var cacheBabelInterop = new WeakMap(); |
| var cacheNodeInterop = new WeakMap(); |
| return (_getRequireWildcardCache = function(nodeInterop) { |
| return nodeInterop ? cacheNodeInterop : cacheBabelInterop; |
| })(nodeInterop); |
| } |
| function _interop_require_wildcard(obj, nodeInterop) { |
| if (!nodeInterop && obj && obj.__esModule) { |
| return obj; |
| } |
| if (obj === null || typeof obj !== "object" && typeof obj !== "function") { |
| return { |
| default: obj |
| }; |
| } |
| var cache = _getRequireWildcardCache(nodeInterop); |
| if (cache && cache.has(obj)) { |
| return cache.get(obj); |
| } |
| var newObj = { |
| __proto__: null |
| }; |
| var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; |
| for(var key in obj){ |
| if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { |
| var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; |
| if (desc && (desc.get || desc.set)) { |
| Object.defineProperty(newObj, key, desc); |
| } else { |
| newObj[key] = obj[key]; |
| } |
| } |
| } |
| newObj.default = obj; |
| if (cache) { |
| cache.set(obj, newObj); |
| } |
| return newObj; |
| } |
| const largePageDataWarnings = new Set(); |
| function getDocumentFiles(buildManifest, pathname, inAmpMode) { |
| const sharedFiles = (0, _getpagefiles.getPageFiles)(buildManifest, '/_app'); |
| const pageFiles = process.env.NEXT_RUNTIME !== 'edge' && inAmpMode ? [] : (0, _getpagefiles.getPageFiles)(buildManifest, pathname); |
| return { |
| sharedFiles, |
| pageFiles, |
| allFiles: [ |
| ...new Set([ |
| ...sharedFiles, |
| ...pageFiles |
| ]) |
| ] |
| }; |
| } |
| function getPolyfillScripts(context, props) { |
| |
| |
| const { assetPrefix, buildManifest, assetQueryString, disableOptimizedLoading, crossOrigin } = context; |
| return buildManifest.polyfillFiles.filter((polyfill)=>polyfill.endsWith('.js') && !polyfill.endsWith('.module.js')).map((polyfill)=> (0, _jsxruntime.jsx)("script", { |
| defer: !disableOptimizedLoading, |
| nonce: props.nonce, |
| crossOrigin: props.crossOrigin || crossOrigin, |
| noModule: true, |
| src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(polyfill)}${assetQueryString}` |
| }, polyfill)); |
| } |
| function hasComponentProps(child) { |
| return !!child && !!child.props; |
| } |
| function AmpStyles({ styles }) { |
| if (!styles) return null; |
| |
| const curStyles = Array.isArray(styles) ? styles : []; |
| if ( |
| styles.props && |
| Array.isArray(styles.props.children)) { |
| const hasStyles = (el)=>{ |
| var _el_props_dangerouslySetInnerHTML, _el_props; |
| return el == null ? void 0 : (_el_props = el.props) == null ? void 0 : (_el_props_dangerouslySetInnerHTML = _el_props.dangerouslySetInnerHTML) == null ? void 0 : _el_props_dangerouslySetInnerHTML.__html; |
| }; |
| |
| styles.props.children.forEach((child)=>{ |
| if (Array.isArray(child)) { |
| child.forEach((el)=>hasStyles(el) && curStyles.push(el)); |
| } else if (hasStyles(child)) { |
| curStyles.push(child); |
| } |
| }); |
| } |
| return (0, _jsxruntime.jsx)("style", { |
| "amp-custom": "", |
| dangerouslySetInnerHTML: { |
| __html: curStyles.map((style)=>style.props.dangerouslySetInnerHTML.__html).join('').replace(/\/\*# sourceMappingURL=.*\*\//g, '').replace(/\/\*@ sourceURL=.*?\*\//g, '') |
| } |
| }); |
| } |
| function getDynamicChunks(context, props, files) { |
| const { dynamicImports, assetPrefix, isDevelopment, assetQueryString, disableOptimizedLoading, crossOrigin } = context; |
| return dynamicImports.map((file)=>{ |
| if (!file.endsWith('.js') || files.allFiles.includes(file)) return null; |
| return (0, _jsxruntime.jsx)("script", { |
| async: !isDevelopment && disableOptimizedLoading, |
| defer: !disableOptimizedLoading, |
| src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`, |
| nonce: props.nonce, |
| crossOrigin: props.crossOrigin || crossOrigin |
| }, file); |
| }); |
| } |
| function getScripts(context, props, files) { |
| var _buildManifest_lowPriorityFiles; |
| const { assetPrefix, buildManifest, isDevelopment, assetQueryString, disableOptimizedLoading, crossOrigin } = context; |
| const normalScripts = files.allFiles.filter((file)=>file.endsWith('.js')); |
| const lowPriorityScripts = (_buildManifest_lowPriorityFiles = buildManifest.lowPriorityFiles) == null ? void 0 : _buildManifest_lowPriorityFiles.filter((file)=>file.endsWith('.js')); |
| return [ |
| ...normalScripts, |
| ...lowPriorityScripts |
| ].map((file)=>{ |
| return (0, _jsxruntime.jsx)("script", { |
| src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`, |
| nonce: props.nonce, |
| async: !isDevelopment && disableOptimizedLoading, |
| defer: !disableOptimizedLoading, |
| crossOrigin: props.crossOrigin || crossOrigin |
| }, file); |
| }); |
| } |
| function getPreNextWorkerScripts(context, props) { |
| const { assetPrefix, scriptLoader, crossOrigin, nextScriptWorkers } = context; |
| |
| if (!nextScriptWorkers || process.env.NEXT_RUNTIME === 'edge') return null; |
| try { |
| |
| let { partytownSnippet } = __non_webpack_require__('@builder.io/partytown/integration'); |
| const children = Array.isArray(props.children) ? props.children : [ |
| props.children |
| ]; |
| |
| const userDefinedConfig = children.find((child)=>{ |
| var _child_props_dangerouslySetInnerHTML, _child_props; |
| return hasComponentProps(child) && (child == null ? void 0 : (_child_props = child.props) == null ? void 0 : (_child_props_dangerouslySetInnerHTML = _child_props.dangerouslySetInnerHTML) == null ? void 0 : _child_props_dangerouslySetInnerHTML.__html.length) && 'data-partytown-config' in child.props; |
| }); |
| return (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, { |
| children: [ |
| !userDefinedConfig && (0, _jsxruntime.jsx)("script", { |
| "data-partytown-config": "", |
| dangerouslySetInnerHTML: { |
| __html: ` |
| partytown = { |
| lib: "${assetPrefix}/_next/static/~partytown/" |
| }; |
| ` |
| } |
| }), |
| (0, _jsxruntime.jsx)("script", { |
| "data-partytown": "", |
| dangerouslySetInnerHTML: { |
| __html: partytownSnippet() |
| } |
| }), |
| (scriptLoader.worker || []).map((file, index)=>{ |
| const { strategy, src, children: scriptChildren, dangerouslySetInnerHTML, ...scriptProps } = file; |
| let srcProps = {}; |
| if (src) { |
| |
| srcProps.src = src; |
| } else if (dangerouslySetInnerHTML && dangerouslySetInnerHTML.__html) { |
| |
| srcProps.dangerouslySetInnerHTML = { |
| __html: dangerouslySetInnerHTML.__html |
| }; |
| } else if (scriptChildren) { |
| |
| srcProps.dangerouslySetInnerHTML = { |
| __html: typeof scriptChildren === 'string' ? scriptChildren : Array.isArray(scriptChildren) ? scriptChildren.join('') : '' |
| }; |
| } else { |
| throw Object.defineProperty(new Error('Invalid usage of next/script. Did you forget to include a src attribute or an inline script? https://nextjs.org/docs/messages/invalid-script'), "__NEXT_ERROR_CODE", { |
| value: "E82", |
| enumerable: false, |
| configurable: true |
| }); |
| } |
| return (0, _react.createElement)("script", { |
| ...srcProps, |
| ...scriptProps, |
| type: "text/partytown", |
| key: src || index, |
| nonce: props.nonce, |
| "data-nscript": "worker", |
| crossOrigin: props.crossOrigin || crossOrigin |
| }); |
| }) |
| ] |
| }); |
| } catch (err) { |
| if ((0, _iserror.default)(err) && err.code !== 'MODULE_NOT_FOUND') { |
| console.warn(`Warning: ${err.message}`); |
| } |
| return null; |
| } |
| } |
| function getPreNextScripts(context, props) { |
| const { scriptLoader, disableOptimizedLoading, crossOrigin } = context; |
| const webWorkerScripts = getPreNextWorkerScripts(context, props); |
| const beforeInteractiveScripts = (scriptLoader.beforeInteractive || []).filter((script)=>script.src).map((file, index)=>{ |
| const { strategy, ...scriptProps } = file; |
| return (0, _react.createElement)("script", { |
| ...scriptProps, |
| key: scriptProps.src || index, |
| defer: scriptProps.defer ?? !disableOptimizedLoading, |
| nonce: scriptProps.nonce || props.nonce, |
| "data-nscript": "beforeInteractive", |
| crossOrigin: props.crossOrigin || crossOrigin |
| }); |
| }); |
| return (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, { |
| children: [ |
| webWorkerScripts, |
| beforeInteractiveScripts |
| ] |
| }); |
| } |
| function getHeadHTMLProps(props) { |
| const { crossOrigin, nonce, ...restProps } = props; |
| |
| const headProps = restProps; |
| return headProps; |
| } |
| function getAmpPath(ampPath, asPath) { |
| return ampPath || `${asPath}${asPath.includes('?') ? '&' : '?'}amp=1`; |
| } |
| function getNextFontLinkTags(nextFontManifest, dangerousAsPath, assetPrefix = '') { |
| if (!nextFontManifest) { |
| return { |
| preconnect: null, |
| preload: null |
| }; |
| } |
| const appFontsEntry = nextFontManifest.pages['/_app']; |
| const pageFontsEntry = nextFontManifest.pages[dangerousAsPath]; |
| const preloadedFontFiles = Array.from(new Set([ |
| ...appFontsEntry ?? [], |
| ...pageFontsEntry ?? [] |
| ])); |
| |
| const preconnectToSelf = !!(preloadedFontFiles.length === 0 && (appFontsEntry || pageFontsEntry)); |
| return { |
| preconnect: preconnectToSelf ? (0, _jsxruntime.jsx)("link", { |
| "data-next-font": nextFontManifest.pagesUsingSizeAdjust ? 'size-adjust' : '', |
| rel: "preconnect", |
| href: "/", |
| crossOrigin: "anonymous" |
| }) : null, |
| preload: preloadedFontFiles ? preloadedFontFiles.map((fontFile)=>{ |
| const ext = /\.(woff|woff2|eot|ttf|otf)$/.exec(fontFile)[1]; |
| return (0, _jsxruntime.jsx)("link", { |
| rel: "preload", |
| href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(fontFile)}`, |
| as: "font", |
| type: `font/${ext}`, |
| crossOrigin: "anonymous", |
| "data-next-font": fontFile.includes('-s') ? 'size-adjust' : '' |
| }, fontFile); |
| }) : null |
| }; |
| } |
| class Head extends _react.default.Component { |
| static #_ = this.contextType = _htmlcontextsharedruntime.HtmlContext; |
| getCssLinks(files) { |
| const { assetPrefix, assetQueryString, dynamicImports, dynamicCssManifest, crossOrigin, optimizeCss } = this.context; |
| const cssFiles = files.allFiles.filter((f)=>f.endsWith('.css')); |
| const sharedFiles = new Set(files.sharedFiles); |
| |
| |
| let unmanagedFiles = new Set([]); |
| let localDynamicCssFiles = Array.from(new Set(dynamicImports.filter((file)=>file.endsWith('.css')))); |
| if (localDynamicCssFiles.length) { |
| const existing = new Set(cssFiles); |
| localDynamicCssFiles = localDynamicCssFiles.filter((f)=>!(existing.has(f) || sharedFiles.has(f))); |
| unmanagedFiles = new Set(localDynamicCssFiles); |
| cssFiles.push(...localDynamicCssFiles); |
| } |
| let cssLinkElements = []; |
| cssFiles.forEach((file)=>{ |
| const isSharedFile = sharedFiles.has(file); |
| const isUnmanagedFile = unmanagedFiles.has(file); |
| const isFileInDynamicCssManifest = dynamicCssManifest.has(file); |
| if (!optimizeCss) { |
| cssLinkElements.push( (0, _jsxruntime.jsx)("link", { |
| nonce: this.props.nonce, |
| rel: "preload", |
| href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`, |
| as: "style", |
| crossOrigin: this.props.crossOrigin || crossOrigin |
| }, `${file}-preload`)); |
| } |
| cssLinkElements.push( (0, _jsxruntime.jsx)("link", { |
| nonce: this.props.nonce, |
| rel: "stylesheet", |
| href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`, |
| crossOrigin: this.props.crossOrigin || crossOrigin, |
| "data-n-g": isUnmanagedFile ? undefined : isSharedFile ? '' : undefined, |
| "data-n-p": isSharedFile || isUnmanagedFile || isFileInDynamicCssManifest ? undefined : '' |
| }, file)); |
| }); |
| return cssLinkElements.length === 0 ? null : cssLinkElements; |
| } |
| getPreloadDynamicChunks() { |
| const { dynamicImports, assetPrefix, assetQueryString, crossOrigin } = this.context; |
| return dynamicImports.map((file)=>{ |
| if (!file.endsWith('.js')) { |
| return null; |
| } |
| return (0, _jsxruntime.jsx)("link", { |
| rel: "preload", |
| href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`, |
| as: "script", |
| nonce: this.props.nonce, |
| crossOrigin: this.props.crossOrigin || crossOrigin |
| }, file); |
| }) |
| .filter(Boolean); |
| } |
| getPreloadMainLinks(files) { |
| const { assetPrefix, assetQueryString, scriptLoader, crossOrigin } = this.context; |
| const preloadFiles = files.allFiles.filter((file)=>{ |
| return file.endsWith('.js'); |
| }); |
| return [ |
| ...(scriptLoader.beforeInteractive || []).map((file)=> (0, _jsxruntime.jsx)("link", { |
| nonce: this.props.nonce, |
| rel: "preload", |
| href: file.src, |
| as: "script", |
| crossOrigin: this.props.crossOrigin || crossOrigin |
| }, file.src)), |
| ...preloadFiles.map((file)=> (0, _jsxruntime.jsx)("link", { |
| nonce: this.props.nonce, |
| rel: "preload", |
| href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`, |
| as: "script", |
| crossOrigin: this.props.crossOrigin || crossOrigin |
| }, file)) |
| ]; |
| } |
| getBeforeInteractiveInlineScripts() { |
| const { scriptLoader } = this.context; |
| const { nonce, crossOrigin } = this.props; |
| return (scriptLoader.beforeInteractive || []).filter((script)=>!script.src && (script.dangerouslySetInnerHTML || script.children)).map((file, index)=>{ |
| const { strategy, children, dangerouslySetInnerHTML, src, ...scriptProps } = file; |
| let html = ''; |
| if (dangerouslySetInnerHTML && dangerouslySetInnerHTML.__html) { |
| html = dangerouslySetInnerHTML.__html; |
| } else if (children) { |
| html = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : ''; |
| } |
| return (0, _react.createElement)("script", { |
| ...scriptProps, |
| dangerouslySetInnerHTML: { |
| __html: html |
| }, |
| key: scriptProps.id || index, |
| nonce: nonce, |
| "data-nscript": "beforeInteractive", |
| crossOrigin: crossOrigin || process.env.__NEXT_CROSS_ORIGIN |
| }); |
| }); |
| } |
| getDynamicChunks(files) { |
| return getDynamicChunks(this.context, this.props, files); |
| } |
| getPreNextScripts() { |
| return getPreNextScripts(this.context, this.props); |
| } |
| getScripts(files) { |
| return getScripts(this.context, this.props, files); |
| } |
| getPolyfillScripts() { |
| return getPolyfillScripts(this.context, this.props); |
| } |
| render() { |
| const { styles, ampPath, inAmpMode, hybridAmp, canonicalBase, __NEXT_DATA__, dangerousAsPath, headTags, unstable_runtimeJS, unstable_JsPreload, disableOptimizedLoading, optimizeCss, assetPrefix, nextFontManifest } = this.context; |
| const disableRuntimeJS = unstable_runtimeJS === false; |
| const disableJsPreload = unstable_JsPreload === false || !disableOptimizedLoading; |
| this.context.docComponentsRendered.Head = true; |
| let { head } = this.context; |
| let cssPreloads = []; |
| let otherHeadElements = []; |
| if (head) { |
| head.forEach((child)=>{ |
| if (child && child.type === 'link' && child.props['rel'] === 'preload' && child.props['as'] === 'style') { |
| cssPreloads.push(child); |
| } else { |
| if (child) { |
| otherHeadElements.push( _react.default.cloneElement(child, { |
| 'data-next-head': '' |
| })); |
| } |
| } |
| }); |
| head = cssPreloads.concat(otherHeadElements); |
| } |
| let children = _react.default.Children.toArray(this.props.children).filter(Boolean); |
| |
| if (process.env.NODE_ENV !== 'production') { |
| children = _react.default.Children.map(children, (child)=>{ |
| var _child_props; |
| const isReactHelmet = child == null ? void 0 : (_child_props = child.props) == null ? void 0 : _child_props['data-react-helmet']; |
| if (!isReactHelmet) { |
| var _child_props1; |
| if ((child == null ? void 0 : child.type) === 'title') { |
| console.warn("Warning: <title> should not be used in _document.js's <Head>. https://nextjs.org/docs/messages/no-document-title"); |
| } else if ((child == null ? void 0 : child.type) === 'meta' && (child == null ? void 0 : (_child_props1 = child.props) == null ? void 0 : _child_props1.name) === 'viewport') { |
| console.warn("Warning: viewport meta tags should not be used in _document.js's <Head>. https://nextjs.org/docs/messages/no-document-viewport-meta"); |
| } |
| } |
| return child; |
| |
| }); |
| if (this.props.crossOrigin) console.warn('Warning: `Head` attribute `crossOrigin` is deprecated. https://nextjs.org/docs/messages/doc-crossorigin-deprecated'); |
| } |
| let hasAmphtmlRel = false; |
| let hasCanonicalRel = false; |
| |
| head = _react.default.Children.map(head || [], (child)=>{ |
| if (!child) return child; |
| const { type, props } = child; |
| if (process.env.NEXT_RUNTIME !== 'edge' && inAmpMode) { |
| let badProp = ''; |
| if (type === 'meta' && props.name === 'viewport') { |
| badProp = 'name="viewport"'; |
| } else if (type === 'link' && props.rel === 'canonical') { |
| hasCanonicalRel = true; |
| } else if (type === 'script') { |
| |
| |
| |
| |
| if (props.src && props.src.indexOf('ampproject') < -1 || props.dangerouslySetInnerHTML && (!props.type || props.type === 'text/javascript')) { |
| badProp = '<script'; |
| Object.keys(props).forEach((prop)=>{ |
| badProp += ` ${prop}="${props[prop]}"`; |
| }); |
| badProp += '/>'; |
| } |
| } |
| if (badProp) { |
| console.warn(`Found conflicting amp tag "${child.type}" with conflicting prop ${badProp} in ${__NEXT_DATA__.page}. https://nextjs.org/docs/messages/conflicting-amp-tag`); |
| return null; |
| } |
| } else { |
| |
| if (type === 'link' && props.rel === 'amphtml') { |
| hasAmphtmlRel = true; |
| } |
| } |
| return child; |
| |
| }); |
| const files = getDocumentFiles(this.context.buildManifest, this.context.__NEXT_DATA__.page, process.env.NEXT_RUNTIME !== 'edge' && inAmpMode); |
| const nextFontLinkTags = getNextFontLinkTags(nextFontManifest, dangerousAsPath, assetPrefix); |
| const tracingMetadata = (0, _utils.getTracedMetadata)((0, _tracer.getTracer)().getTracePropagationData(), this.context.experimentalClientTraceMetadata); |
| const traceMetaTags = (tracingMetadata || []).map(({ key, value }, index)=> (0, _jsxruntime.jsx)("meta", { |
| name: key, |
| content: value |
| }, `next-trace-data-${index}`)); |
| return (0, _jsxruntime.jsxs)("head", { |
| ...getHeadHTMLProps(this.props), |
| children: [ |
| this.context.isDevelopment && (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, { |
| children: [ |
| (0, _jsxruntime.jsx)("style", { |
| "data-next-hide-fouc": true, |
| "data-ampdevmode": process.env.NEXT_RUNTIME !== 'edge' && inAmpMode ? 'true' : undefined, |
| dangerouslySetInnerHTML: { |
| __html: `body{display:none}` |
| } |
| }), |
| (0, _jsxruntime.jsx)("noscript", { |
| "data-next-hide-fouc": true, |
| "data-ampdevmode": process.env.NEXT_RUNTIME !== 'edge' && inAmpMode ? 'true' : undefined, |
| children: (0, _jsxruntime.jsx)("style", { |
| dangerouslySetInnerHTML: { |
| __html: `body{display:block}` |
| } |
| }) |
| }) |
| ] |
| }), |
| head, |
| children, |
| nextFontLinkTags.preconnect, |
| nextFontLinkTags.preload, |
| process.env.NEXT_RUNTIME !== 'edge' && inAmpMode && (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, { |
| children: [ |
| (0, _jsxruntime.jsx)("meta", { |
| name: "viewport", |
| content: "width=device-width,minimum-scale=1,initial-scale=1" |
| }), |
| !hasCanonicalRel && (0, _jsxruntime.jsx)("link", { |
| rel: "canonical", |
| href: canonicalBase + require('../server/utils').cleanAmpPath(dangerousAsPath) |
| }), |
| (0, _jsxruntime.jsx)("link", { |
| rel: "preload", |
| as: "script", |
| href: "https://cdn.ampproject.org/v0.js" |
| }), |
| (0, _jsxruntime.jsx)(AmpStyles, { |
| styles: styles |
| }), |
| (0, _jsxruntime.jsx)("style", { |
| "amp-boilerplate": "", |
| dangerouslySetInnerHTML: { |
| __html: `body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}` |
| } |
| }), |
| (0, _jsxruntime.jsx)("noscript", { |
| children: (0, _jsxruntime.jsx)("style", { |
| "amp-boilerplate": "", |
| dangerouslySetInnerHTML: { |
| __html: `body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}` |
| } |
| }) |
| }), |
| (0, _jsxruntime.jsx)("script", { |
| async: true, |
| src: "https://cdn.ampproject.org/v0.js" |
| }) |
| ] |
| }), |
| !(process.env.NEXT_RUNTIME !== 'edge' && inAmpMode) && (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, { |
| children: [ |
| !hasAmphtmlRel && hybridAmp && (0, _jsxruntime.jsx)("link", { |
| rel: "amphtml", |
| href: canonicalBase + getAmpPath(ampPath, dangerousAsPath) |
| }), |
| this.getBeforeInteractiveInlineScripts(), |
| !optimizeCss && this.getCssLinks(files), |
| !optimizeCss && (0, _jsxruntime.jsx)("noscript", { |
| "data-n-css": this.props.nonce ?? '' |
| }), |
| !disableRuntimeJS && !disableJsPreload && this.getPreloadDynamicChunks(), |
| !disableRuntimeJS && !disableJsPreload && this.getPreloadMainLinks(files), |
| !disableOptimizedLoading && !disableRuntimeJS && this.getPolyfillScripts(), |
| !disableOptimizedLoading && !disableRuntimeJS && this.getPreNextScripts(), |
| !disableOptimizedLoading && !disableRuntimeJS && this.getDynamicChunks(files), |
| !disableOptimizedLoading && !disableRuntimeJS && this.getScripts(files), |
| optimizeCss && this.getCssLinks(files), |
| optimizeCss && (0, _jsxruntime.jsx)("noscript", { |
| "data-n-css": this.props.nonce ?? '' |
| }), |
| this.context.isDevelopment && |
| |
| |
| (0, _jsxruntime.jsx)("noscript", { |
| id: "__next_css__DO_NOT_USE__" |
| }), |
| traceMetaTags, |
| styles || null |
| ] |
| }), |
| _react.default.createElement(_react.default.Fragment, {}, ...headTags || []) |
| ] |
| }); |
| } |
| } |
| function handleDocumentScriptLoaderItems(scriptLoader, __NEXT_DATA__, props) { |
| var _children_find_props, _children_find, _children_find_props1, _children_find1; |
| if (!props.children) return; |
| const scriptLoaderItems = []; |
| const children = Array.isArray(props.children) ? props.children : [ |
| props.children |
| ]; |
| const headChildren = (_children_find = children.find((child)=>child.type === Head)) == null ? void 0 : (_children_find_props = _children_find.props) == null ? void 0 : _children_find_props.children; |
| const bodyChildren = (_children_find1 = children.find((child)=>child.type === 'body')) == null ? void 0 : (_children_find_props1 = _children_find1.props) == null ? void 0 : _children_find_props1.children; |
| |
| const combinedChildren = [ |
| ...Array.isArray(headChildren) ? headChildren : [ |
| headChildren |
| ], |
| ...Array.isArray(bodyChildren) ? bodyChildren : [ |
| bodyChildren |
| ] |
| ]; |
| _react.default.Children.forEach(combinedChildren, (child)=>{ |
| var _child_type; |
| if (!child) return; |
| |
| if ((_child_type = child.type) == null ? void 0 : _child_type.__nextScript) { |
| if (child.props.strategy === 'beforeInteractive') { |
| scriptLoader.beforeInteractive = (scriptLoader.beforeInteractive || []).concat([ |
| { |
| ...child.props |
| } |
| ]); |
| return; |
| } else if ([ |
| 'lazyOnload', |
| 'afterInteractive', |
| 'worker' |
| ].includes(child.props.strategy)) { |
| scriptLoaderItems.push(child.props); |
| return; |
| } else if (typeof child.props.strategy === 'undefined') { |
| scriptLoaderItems.push({ |
| ...child.props, |
| strategy: 'afterInteractive' |
| }); |
| return; |
| } |
| } |
| }); |
| __NEXT_DATA__.scriptLoader = scriptLoaderItems; |
| } |
| class NextScript extends _react.default.Component { |
| static #_ = this.contextType = _htmlcontextsharedruntime.HtmlContext; |
| getDynamicChunks(files) { |
| return getDynamicChunks(this.context, this.props, files); |
| } |
| getPreNextScripts() { |
| return getPreNextScripts(this.context, this.props); |
| } |
| getScripts(files) { |
| return getScripts(this.context, this.props, files); |
| } |
| getPolyfillScripts() { |
| return getPolyfillScripts(this.context, this.props); |
| } |
| static getInlineScriptSource(context) { |
| const { __NEXT_DATA__, largePageDataBytes } = context; |
| try { |
| const data = JSON.stringify(__NEXT_DATA__); |
| if (largePageDataWarnings.has(__NEXT_DATA__.page)) { |
| return (0, _htmlescape.htmlEscapeJsonString)(data); |
| } |
| const bytes = process.env.NEXT_RUNTIME === 'edge' ? new TextEncoder().encode(data).buffer.byteLength : Buffer.from(data).byteLength; |
| const prettyBytes = require('../lib/pretty-bytes').default; |
| if (largePageDataBytes && bytes > largePageDataBytes) { |
| if (process.env.NODE_ENV === 'production') { |
| largePageDataWarnings.add(__NEXT_DATA__.page); |
| } |
| console.warn(`Warning: data for page "${__NEXT_DATA__.page}"${__NEXT_DATA__.page === context.dangerousAsPath ? '' : ` (path "${context.dangerousAsPath}")`} is ${prettyBytes(bytes)} which exceeds the threshold of ${prettyBytes(largePageDataBytes)}, this amount of data can reduce performance.\nSee more info here: https://nextjs.org/docs/messages/large-page-data`); |
| } |
| return (0, _htmlescape.htmlEscapeJsonString)(data); |
| } catch (err) { |
| if ((0, _iserror.default)(err) && err.message.indexOf('circular structure') !== -1) { |
| throw Object.defineProperty(new Error(`Circular structure in "getInitialProps" result of page "${__NEXT_DATA__.page}". https://nextjs.org/docs/messages/circular-structure`), "__NEXT_ERROR_CODE", { |
| value: "E490", |
| enumerable: false, |
| configurable: true |
| }); |
| } |
| throw err; |
| } |
| } |
| render() { |
| const { assetPrefix, inAmpMode, buildManifest, unstable_runtimeJS, docComponentsRendered, assetQueryString, disableOptimizedLoading, crossOrigin } = this.context; |
| const disableRuntimeJS = unstable_runtimeJS === false; |
| docComponentsRendered.NextScript = true; |
| if (process.env.NEXT_RUNTIME !== 'edge' && inAmpMode) { |
| if (process.env.NODE_ENV === 'production') { |
| return null; |
| } |
| const ampDevFiles = [ |
| ...buildManifest.devFiles, |
| ...buildManifest.polyfillFiles, |
| ...buildManifest.ampDevFiles |
| ]; |
| return (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, { |
| children: [ |
| disableRuntimeJS ? null : (0, _jsxruntime.jsx)("script", { |
| id: "__NEXT_DATA__", |
| type: "application/json", |
| nonce: this.props.nonce, |
| crossOrigin: this.props.crossOrigin || crossOrigin, |
| dangerouslySetInnerHTML: { |
| __html: NextScript.getInlineScriptSource(this.context) |
| }, |
| "data-ampdevmode": true |
| }), |
| ampDevFiles.map((file)=> (0, _jsxruntime.jsx)("script", { |
| src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`, |
| nonce: this.props.nonce, |
| crossOrigin: this.props.crossOrigin || crossOrigin, |
| "data-ampdevmode": true |
| }, file)) |
| ] |
| }); |
| } |
| if (process.env.NODE_ENV !== 'production') { |
| if (this.props.crossOrigin) console.warn('Warning: `NextScript` attribute `crossOrigin` is deprecated. https://nextjs.org/docs/messages/doc-crossorigin-deprecated'); |
| } |
| const files = getDocumentFiles(this.context.buildManifest, this.context.__NEXT_DATA__.page, process.env.NEXT_RUNTIME !== 'edge' && inAmpMode); |
| return (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, { |
| children: [ |
| !disableRuntimeJS && buildManifest.devFiles ? buildManifest.devFiles.map((file)=> (0, _jsxruntime.jsx)("script", { |
| src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`, |
| nonce: this.props.nonce, |
| crossOrigin: this.props.crossOrigin || crossOrigin |
| }, file)) : null, |
| disableRuntimeJS ? null : (0, _jsxruntime.jsx)("script", { |
| id: "__NEXT_DATA__", |
| type: "application/json", |
| nonce: this.props.nonce, |
| crossOrigin: this.props.crossOrigin || crossOrigin, |
| dangerouslySetInnerHTML: { |
| __html: NextScript.getInlineScriptSource(this.context) |
| } |
| }), |
| disableOptimizedLoading && !disableRuntimeJS && this.getPolyfillScripts(), |
| disableOptimizedLoading && !disableRuntimeJS && this.getPreNextScripts(), |
| disableOptimizedLoading && !disableRuntimeJS && this.getDynamicChunks(files), |
| disableOptimizedLoading && !disableRuntimeJS && this.getScripts(files) |
| ] |
| }); |
| } |
| } |
| function Html(props) { |
| const { inAmpMode, docComponentsRendered, locale, scriptLoader, __NEXT_DATA__ } = (0, _htmlcontextsharedruntime.useHtmlContext)(); |
| docComponentsRendered.Html = true; |
| handleDocumentScriptLoaderItems(scriptLoader, __NEXT_DATA__, props); |
| return (0, _jsxruntime.jsx)("html", { |
| ...props, |
| lang: props.lang || locale || undefined, |
| amp: process.env.NEXT_RUNTIME !== 'edge' && inAmpMode ? '' : undefined, |
| "data-ampdevmode": process.env.NEXT_RUNTIME !== 'edge' && inAmpMode && process.env.NODE_ENV !== 'production' ? '' : undefined |
| }); |
| } |
| function Main() { |
| const { docComponentsRendered } = (0, _htmlcontextsharedruntime.useHtmlContext)(); |
| docComponentsRendered.Main = true; |
| |
| return (0, _jsxruntime.jsx)("next-js-internal-body-render-target", {}); |
| } |
| class Document extends _react.default.Component { |
| |
| |
| |
| static getInitialProps(ctx) { |
| return ctx.defaultGetInitialProps(ctx); |
| } |
| render() { |
| return (0, _jsxruntime.jsxs)(Html, { |
| children: [ |
| (0, _jsxruntime.jsx)(Head, { |
| nonce: this.props.nonce |
| }), |
| (0, _jsxruntime.jsxs)("body", { |
| children: [ |
| (0, _jsxruntime.jsx)(Main, {}), |
| (0, _jsxruntime.jsx)(NextScript, { |
| nonce: this.props.nonce |
| }) |
| ] |
| }) |
| ] |
| }); |
| } |
| } |
| |
| |
| const InternalFunctionDocument = function InternalFunctionDocument() { |
| return (0, _jsxruntime.jsxs)(Html, { |
| children: [ |
| (0, _jsxruntime.jsx)(Head, {}), |
| (0, _jsxruntime.jsxs)("body", { |
| children: [ |
| (0, _jsxruntime.jsx)(Main, {}), |
| (0, _jsxruntime.jsx)(NextScript, {}) |
| ] |
| }) |
| ] |
| }); |
| }; |
| Document[_constants.NEXT_BUILTIN_DOCUMENT] = InternalFunctionDocument; |
|
|
| |