react-dom
Version:
React package for working with the DOM.
1,450 lines (1,443 loc) • 221 kB
JavaScript
/**
* @license React
* react-dom-server.browser.production.js
*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/*
JS Implementation of MurmurHash3 (r136) (as of May 20, 2011)
Copyright (c) 2011 Gary Court
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
"use strict";
var React = require("react"),
ReactDOM = require("react-dom");
function formatProdErrorMessage(code) {
var url = "https://react.dev/errors/" + code;
if (1 < arguments.length) {
url += "?args[]=" + encodeURIComponent(arguments[1]);
for (var i = 2; i < arguments.length; i++)
url += "&args[]=" + encodeURIComponent(arguments[i]);
}
return (
"Minified React error #" +
code +
"; visit " +
url +
" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."
);
}
var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
REACT_PORTAL_TYPE = Symbol.for("react.portal"),
REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
REACT_PROVIDER_TYPE = Symbol.for("react.provider"),
REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
REACT_CONTEXT_TYPE = Symbol.for("react.context"),
REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"),
REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"),
REACT_MEMO_TYPE = Symbol.for("react.memo"),
REACT_LAZY_TYPE = Symbol.for("react.lazy"),
REACT_SCOPE_TYPE = Symbol.for("react.scope"),
REACT_DEBUG_TRACING_MODE_TYPE = Symbol.for("react.debug_trace_mode"),
REACT_OFFSCREEN_TYPE = Symbol.for("react.offscreen"),
REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"),
REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"),
MAYBE_ITERATOR_SYMBOL = Symbol.iterator,
isArrayImpl = Array.isArray;
function murmurhash3_32_gc(key, seed) {
var remainder = key.length & 3;
var bytes = key.length - remainder;
var h1 = seed;
for (seed = 0; seed < bytes; ) {
var k1 =
(key.charCodeAt(seed) & 255) |
((key.charCodeAt(++seed) & 255) << 8) |
((key.charCodeAt(++seed) & 255) << 16) |
((key.charCodeAt(++seed) & 255) << 24);
++seed;
k1 =
(3432918353 * (k1 & 65535) +
(((3432918353 * (k1 >>> 16)) & 65535) << 16)) &
4294967295;
k1 = (k1 << 15) | (k1 >>> 17);
k1 =
(461845907 * (k1 & 65535) + (((461845907 * (k1 >>> 16)) & 65535) << 16)) &
4294967295;
h1 ^= k1;
h1 = (h1 << 13) | (h1 >>> 19);
h1 = (5 * (h1 & 65535) + (((5 * (h1 >>> 16)) & 65535) << 16)) & 4294967295;
h1 = (h1 & 65535) + 27492 + ((((h1 >>> 16) + 58964) & 65535) << 16);
}
k1 = 0;
switch (remainder) {
case 3:
k1 ^= (key.charCodeAt(seed + 2) & 255) << 16;
case 2:
k1 ^= (key.charCodeAt(seed + 1) & 255) << 8;
case 1:
(k1 ^= key.charCodeAt(seed) & 255),
(k1 =
(3432918353 * (k1 & 65535) +
(((3432918353 * (k1 >>> 16)) & 65535) << 16)) &
4294967295),
(k1 = (k1 << 15) | (k1 >>> 17)),
(h1 ^=
(461845907 * (k1 & 65535) +
(((461845907 * (k1 >>> 16)) & 65535) << 16)) &
4294967295);
}
h1 ^= key.length;
h1 ^= h1 >>> 16;
h1 =
(2246822507 * (h1 & 65535) + (((2246822507 * (h1 >>> 16)) & 65535) << 16)) &
4294967295;
h1 ^= h1 >>> 13;
h1 =
(3266489909 * (h1 & 65535) + (((3266489909 * (h1 >>> 16)) & 65535) << 16)) &
4294967295;
return (h1 ^ (h1 >>> 16)) >>> 0;
}
var channel = new MessageChannel(),
taskQueue = [];
channel.port1.onmessage = function () {
var task = taskQueue.shift();
task && task();
};
function scheduleWork(callback) {
taskQueue.push(callback);
channel.port2.postMessage(null);
}
function handleErrorInNextTick(error) {
setTimeout(function () {
throw error;
});
}
var LocalPromise = Promise,
scheduleMicrotask =
"function" === typeof queueMicrotask
? queueMicrotask
: function (callback) {
LocalPromise.resolve(null)
.then(callback)
.catch(handleErrorInNextTick);
},
currentView = null,
writtenBytes = 0;
function writeChunk(destination, chunk) {
if (0 !== chunk.byteLength)
if (2048 < chunk.byteLength)
0 < writtenBytes &&
(destination.enqueue(
new Uint8Array(currentView.buffer, 0, writtenBytes)
),
(currentView = new Uint8Array(2048)),
(writtenBytes = 0)),
destination.enqueue(chunk);
else {
var allowableBytes = currentView.length - writtenBytes;
allowableBytes < chunk.byteLength &&
(0 === allowableBytes
? destination.enqueue(currentView)
: (currentView.set(chunk.subarray(0, allowableBytes), writtenBytes),
destination.enqueue(currentView),
(chunk = chunk.subarray(allowableBytes))),
(currentView = new Uint8Array(2048)),
(writtenBytes = 0));
currentView.set(chunk, writtenBytes);
writtenBytes += chunk.byteLength;
}
}
function writeChunkAndReturn(destination, chunk) {
writeChunk(destination, chunk);
return !0;
}
function completeWriting(destination) {
currentView &&
0 < writtenBytes &&
(destination.enqueue(new Uint8Array(currentView.buffer, 0, writtenBytes)),
(currentView = null),
(writtenBytes = 0));
}
var textEncoder = new TextEncoder();
function stringToChunk(content) {
return textEncoder.encode(content);
}
function stringToPrecomputedChunk(content) {
return textEncoder.encode(content);
}
function closeWithError(destination, error) {
"function" === typeof destination.error
? destination.error(error)
: destination.close();
}
var assign = Object.assign,
hasOwnProperty = Object.prototype.hasOwnProperty,
VALID_ATTRIBUTE_NAME_REGEX = RegExp(
"^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"
),
illegalAttributeNameCache = {},
validatedAttributeNameCache = {};
function isAttributeNameSafe(attributeName) {
if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))
return !0;
if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;
if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))
return (validatedAttributeNameCache[attributeName] = !0);
illegalAttributeNameCache[attributeName] = !0;
return !1;
}
var unitlessNumbers = new Set(
"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(
" "
)
),
aliases = new Map([
["acceptCharset", "accept-charset"],
["htmlFor", "for"],
["httpEquiv", "http-equiv"],
["crossOrigin", "crossorigin"],
["accentHeight", "accent-height"],
["alignmentBaseline", "alignment-baseline"],
["arabicForm", "arabic-form"],
["baselineShift", "baseline-shift"],
["capHeight", "cap-height"],
["clipPath", "clip-path"],
["clipRule", "clip-rule"],
["colorInterpolation", "color-interpolation"],
["colorInterpolationFilters", "color-interpolation-filters"],
["colorProfile", "color-profile"],
["colorRendering", "color-rendering"],
["dominantBaseline", "dominant-baseline"],
["enableBackground", "enable-background"],
["fillOpacity", "fill-opacity"],
["fillRule", "fill-rule"],
["floodColor", "flood-color"],
["floodOpacity", "flood-opacity"],
["fontFamily", "font-family"],
["fontSize", "font-size"],
["fontSizeAdjust", "font-size-adjust"],
["fontStretch", "font-stretch"],
["fontStyle", "font-style"],
["fontVariant", "font-variant"],
["fontWeight", "font-weight"],
["glyphName", "glyph-name"],
["glyphOrientationHorizontal", "glyph-orientation-horizontal"],
["glyphOrientationVertical", "glyph-orientation-vertical"],
["horizAdvX", "horiz-adv-x"],
["horizOriginX", "horiz-origin-x"],
["imageRendering", "image-rendering"],
["letterSpacing", "letter-spacing"],
["lightingColor", "lighting-color"],
["markerEnd", "marker-end"],
["markerMid", "marker-mid"],
["markerStart", "marker-start"],
["overlinePosition", "overline-position"],
["overlineThickness", "overline-thickness"],
["paintOrder", "paint-order"],
["panose-1", "panose-1"],
["pointerEvents", "pointer-events"],
["renderingIntent", "rendering-intent"],
["shapeRendering", "shape-rendering"],
["stopColor", "stop-color"],
["stopOpacity", "stop-opacity"],
["strikethroughPosition", "strikethrough-position"],
["strikethroughThickness", "strikethrough-thickness"],
["strokeDasharray", "stroke-dasharray"],
["strokeDashoffset", "stroke-dashoffset"],
["strokeLinecap", "stroke-linecap"],
["strokeLinejoin", "stroke-linejoin"],
["strokeMiterlimit", "stroke-miterlimit"],
["strokeOpacity", "stroke-opacity"],
["strokeWidth", "stroke-width"],
["textAnchor", "text-anchor"],
["textDecoration", "text-decoration"],
["textRendering", "text-rendering"],
["transformOrigin", "transform-origin"],
["underlinePosition", "underline-position"],
["underlineThickness", "underline-thickness"],
["unicodeBidi", "unicode-bidi"],
["unicodeRange", "unicode-range"],
["unitsPerEm", "units-per-em"],
["vAlphabetic", "v-alphabetic"],
["vHanging", "v-hanging"],
["vIdeographic", "v-ideographic"],
["vMathematical", "v-mathematical"],
["vectorEffect", "vector-effect"],
["vertAdvY", "vert-adv-y"],
["vertOriginX", "vert-origin-x"],
["vertOriginY", "vert-origin-y"],
["wordSpacing", "word-spacing"],
["writingMode", "writing-mode"],
["xmlnsXlink", "xmlns:xlink"],
["xHeight", "x-height"]
]),
matchHtmlRegExp = /["'&<>]/;
function escapeTextForBrowser(text) {
if (
"boolean" === typeof text ||
"number" === typeof text ||
"bigint" === typeof text
)
return "" + text;
text = "" + text;
var match = matchHtmlRegExp.exec(text);
if (match) {
var html = "",
index,
lastIndex = 0;
for (index = match.index; index < text.length; index++) {
switch (text.charCodeAt(index)) {
case 34:
match = """;
break;
case 38:
match = "&";
break;
case 39:
match = "'";
break;
case 60:
match = "<";
break;
case 62:
match = ">";
break;
default:
continue;
}
lastIndex !== index && (html += text.slice(lastIndex, index));
lastIndex = index + 1;
html += match;
}
text = lastIndex !== index ? html + text.slice(lastIndex, index) : html;
}
return text;
}
var uppercasePattern = /([A-Z])/g,
msPattern = /^ms-/,
isJavaScriptProtocol =
/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;
function sanitizeURL(url) {
return isJavaScriptProtocol.test("" + url)
? "javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')"
: url;
}
var ReactSharedInternals =
React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
ReactDOMSharedInternals =
ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
sharedNotPendingObject = {
pending: !1,
data: null,
method: null,
action: null
},
previousDispatcher = ReactDOMSharedInternals.d;
ReactDOMSharedInternals.d = {
f: previousDispatcher.f,
r: previousDispatcher.r,
D: prefetchDNS,
C: preconnect,
L: preload,
m: preloadModule,
X: preinitScript,
S: preinitStyle,
M: preinitModuleScript
};
var PRELOAD_NO_CREDS = [];
stringToPrecomputedChunk('"></template>');
var startInlineScript = stringToPrecomputedChunk("<script>"),
endInlineScript = stringToPrecomputedChunk("\x3c/script>"),
startScriptSrc = stringToPrecomputedChunk('<script src="'),
startModuleSrc = stringToPrecomputedChunk('<script type="module" src="'),
scriptNonce = stringToPrecomputedChunk('" nonce="'),
scriptIntegirty = stringToPrecomputedChunk('" integrity="'),
scriptCrossOrigin = stringToPrecomputedChunk('" crossorigin="'),
endAsyncScript = stringToPrecomputedChunk('" async="">\x3c/script>'),
scriptRegex = /(<\/|<)(s)(cript)/gi;
function scriptReplacer(match, prefix, s, suffix) {
return "" + prefix + ("s" === s ? "\\u0073" : "\\u0053") + suffix;
}
var importMapScriptStart = stringToPrecomputedChunk(
'<script type="importmap">'
),
importMapScriptEnd = stringToPrecomputedChunk("\x3c/script>");
function createRenderState(
resumableState,
nonce,
externalRuntimeConfig,
importMap,
onHeaders,
maxHeadersLength
) {
var inlineScriptWithNonce =
void 0 === nonce
? startInlineScript
: stringToPrecomputedChunk(
'<script nonce="' + escapeTextForBrowser(nonce) + '">'
),
idPrefix = resumableState.idPrefix;
externalRuntimeConfig = [];
var bootstrapScriptContent = resumableState.bootstrapScriptContent,
bootstrapScripts = resumableState.bootstrapScripts,
bootstrapModules = resumableState.bootstrapModules;
void 0 !== bootstrapScriptContent &&
externalRuntimeConfig.push(
inlineScriptWithNonce,
stringToChunk(
("" + bootstrapScriptContent).replace(scriptRegex, scriptReplacer)
),
endInlineScript
);
bootstrapScriptContent = [];
void 0 !== importMap &&
(bootstrapScriptContent.push(importMapScriptStart),
bootstrapScriptContent.push(
stringToChunk(
("" + JSON.stringify(importMap)).replace(scriptRegex, scriptReplacer)
)
),
bootstrapScriptContent.push(importMapScriptEnd));
importMap = onHeaders
? {
preconnects: "",
fontPreloads: "",
highImagePreloads: "",
remainingCapacity:
2 + ("number" === typeof maxHeadersLength ? maxHeadersLength : 2e3)
}
: null;
onHeaders = {
placeholderPrefix: stringToPrecomputedChunk(idPrefix + "P:"),
segmentPrefix: stringToPrecomputedChunk(idPrefix + "S:"),
boundaryPrefix: stringToPrecomputedChunk(idPrefix + "B:"),
startInlineScript: inlineScriptWithNonce,
htmlChunks: null,
headChunks: null,
externalRuntimeScript: null,
bootstrapChunks: externalRuntimeConfig,
importMapChunks: bootstrapScriptContent,
onHeaders: onHeaders,
headers: importMap,
resets: {
font: {},
dns: {},
connect: { default: {}, anonymous: {}, credentials: {} },
image: {},
style: {}
},
charsetChunks: [],
viewportChunks: [],
hoistableChunks: [],
preconnects: new Set(),
fontPreloads: new Set(),
highImagePreloads: new Set(),
styles: new Map(),
bootstrapScripts: new Set(),
scripts: new Set(),
bulkPreloads: new Set(),
preloads: {
images: new Map(),
stylesheets: new Map(),
scripts: new Map(),
moduleScripts: new Map()
},
nonce: nonce,
hoistableState: null,
stylesToHoist: !1
};
if (void 0 !== bootstrapScripts)
for (importMap = 0; importMap < bootstrapScripts.length; importMap++) {
var scriptConfig = bootstrapScripts[importMap];
idPrefix = inlineScriptWithNonce = void 0;
bootstrapScriptContent = {
rel: "preload",
as: "script",
fetchPriority: "low",
nonce: nonce
};
"string" === typeof scriptConfig
? (bootstrapScriptContent.href = maxHeadersLength = scriptConfig)
: ((bootstrapScriptContent.href = maxHeadersLength = scriptConfig.src),
(bootstrapScriptContent.integrity = idPrefix =
"string" === typeof scriptConfig.integrity
? scriptConfig.integrity
: void 0),
(bootstrapScriptContent.crossOrigin = inlineScriptWithNonce =
"string" === typeof scriptConfig || null == scriptConfig.crossOrigin
? void 0
: "use-credentials" === scriptConfig.crossOrigin
? "use-credentials"
: ""));
scriptConfig = resumableState;
var href = maxHeadersLength;
scriptConfig.scriptResources[href] = null;
scriptConfig.moduleScriptResources[href] = null;
scriptConfig = [];
pushLinkImpl(scriptConfig, bootstrapScriptContent);
onHeaders.bootstrapScripts.add(scriptConfig);
externalRuntimeConfig.push(
startScriptSrc,
stringToChunk(escapeTextForBrowser(maxHeadersLength))
);
nonce &&
externalRuntimeConfig.push(
scriptNonce,
stringToChunk(escapeTextForBrowser(nonce))
);
"string" === typeof idPrefix &&
externalRuntimeConfig.push(
scriptIntegirty,
stringToChunk(escapeTextForBrowser(idPrefix))
);
"string" === typeof inlineScriptWithNonce &&
externalRuntimeConfig.push(
scriptCrossOrigin,
stringToChunk(escapeTextForBrowser(inlineScriptWithNonce))
);
externalRuntimeConfig.push(endAsyncScript);
}
if (void 0 !== bootstrapModules)
for (
bootstrapScripts = 0;
bootstrapScripts < bootstrapModules.length;
bootstrapScripts++
)
(bootstrapScriptContent = bootstrapModules[bootstrapScripts]),
(inlineScriptWithNonce = maxHeadersLength = void 0),
(idPrefix = {
rel: "modulepreload",
fetchPriority: "low",
nonce: nonce
}),
"string" === typeof bootstrapScriptContent
? (idPrefix.href = importMap = bootstrapScriptContent)
: ((idPrefix.href = importMap = bootstrapScriptContent.src),
(idPrefix.integrity = inlineScriptWithNonce =
"string" === typeof bootstrapScriptContent.integrity
? bootstrapScriptContent.integrity
: void 0),
(idPrefix.crossOrigin = maxHeadersLength =
"string" === typeof bootstrapScriptContent ||
null == bootstrapScriptContent.crossOrigin
? void 0
: "use-credentials" === bootstrapScriptContent.crossOrigin
? "use-credentials"
: "")),
(bootstrapScriptContent = resumableState),
(scriptConfig = importMap),
(bootstrapScriptContent.scriptResources[scriptConfig] = null),
(bootstrapScriptContent.moduleScriptResources[scriptConfig] = null),
(bootstrapScriptContent = []),
pushLinkImpl(bootstrapScriptContent, idPrefix),
onHeaders.bootstrapScripts.add(bootstrapScriptContent),
externalRuntimeConfig.push(
startModuleSrc,
stringToChunk(escapeTextForBrowser(importMap))
),
nonce &&
externalRuntimeConfig.push(
scriptNonce,
stringToChunk(escapeTextForBrowser(nonce))
),
"string" === typeof inlineScriptWithNonce &&
externalRuntimeConfig.push(
scriptIntegirty,
stringToChunk(escapeTextForBrowser(inlineScriptWithNonce))
),
"string" === typeof maxHeadersLength &&
externalRuntimeConfig.push(
scriptCrossOrigin,
stringToChunk(escapeTextForBrowser(maxHeadersLength))
),
externalRuntimeConfig.push(endAsyncScript);
return onHeaders;
}
function createResumableState(
identifierPrefix,
externalRuntimeConfig,
bootstrapScriptContent,
bootstrapScripts,
bootstrapModules
) {
return {
idPrefix: void 0 === identifierPrefix ? "" : identifierPrefix,
nextFormID: 0,
streamingFormat: 0,
bootstrapScriptContent: bootstrapScriptContent,
bootstrapScripts: bootstrapScripts,
bootstrapModules: bootstrapModules,
instructions: 0,
hasBody: !1,
hasHtml: !1,
unknownResources: {},
dnsResources: {},
connectResources: { default: {}, anonymous: {}, credentials: {} },
imageResources: {},
styleResources: {},
scriptResources: {},
moduleUnknownResources: {},
moduleScriptResources: {}
};
}
function createFormatContext(insertionMode, selectedValue, tagScope) {
return {
insertionMode: insertionMode,
selectedValue: selectedValue,
tagScope: tagScope
};
}
function createRootFormatContext(namespaceURI) {
return createFormatContext(
"http://www.w3.org/2000/svg" === namespaceURI
? 3
: "http://www.w3.org/1998/Math/MathML" === namespaceURI
? 4
: 0,
null,
0
);
}
function getChildFormatContext(parentContext, type, props) {
switch (type) {
case "noscript":
return createFormatContext(2, null, parentContext.tagScope | 1);
case "select":
return createFormatContext(
2,
null != props.value ? props.value : props.defaultValue,
parentContext.tagScope
);
case "svg":
return createFormatContext(3, null, parentContext.tagScope);
case "picture":
return createFormatContext(2, null, parentContext.tagScope | 2);
case "math":
return createFormatContext(4, null, parentContext.tagScope);
case "foreignObject":
return createFormatContext(2, null, parentContext.tagScope);
case "table":
return createFormatContext(5, null, parentContext.tagScope);
case "thead":
case "tbody":
case "tfoot":
return createFormatContext(6, null, parentContext.tagScope);
case "colgroup":
return createFormatContext(8, null, parentContext.tagScope);
case "tr":
return createFormatContext(7, null, parentContext.tagScope);
}
return 5 <= parentContext.insertionMode
? createFormatContext(2, null, parentContext.tagScope)
: 0 === parentContext.insertionMode
? "html" === type
? createFormatContext(1, null, parentContext.tagScope)
: createFormatContext(2, null, parentContext.tagScope)
: 1 === parentContext.insertionMode
? createFormatContext(2, null, parentContext.tagScope)
: parentContext;
}
var textSeparator = stringToPrecomputedChunk("\x3c!-- --\x3e");
function pushTextInstance(target, text, renderState, textEmbedded) {
if ("" === text) return textEmbedded;
textEmbedded && target.push(textSeparator);
target.push(stringToChunk(escapeTextForBrowser(text)));
return !0;
}
var styleNameCache = new Map(),
styleAttributeStart = stringToPrecomputedChunk(' style="'),
styleAssign = stringToPrecomputedChunk(":"),
styleSeparator = stringToPrecomputedChunk(";");
function pushStyleAttribute(target, style) {
if ("object" !== typeof style) throw Error(formatProdErrorMessage(62));
var isFirst = !0,
styleName;
for (styleName in style)
if (hasOwnProperty.call(style, styleName)) {
var styleValue = style[styleName];
if (
null != styleValue &&
"boolean" !== typeof styleValue &&
"" !== styleValue
) {
if (0 === styleName.indexOf("--")) {
var nameChunk = stringToChunk(escapeTextForBrowser(styleName));
styleValue = stringToChunk(
escapeTextForBrowser(("" + styleValue).trim())
);
} else
(nameChunk = styleNameCache.get(styleName)),
void 0 === nameChunk &&
((nameChunk = stringToPrecomputedChunk(
escapeTextForBrowser(
styleName
.replace(uppercasePattern, "-$1")
.toLowerCase()
.replace(msPattern, "-ms-")
)
)),
styleNameCache.set(styleName, nameChunk)),
(styleValue =
"number" === typeof styleValue
? 0 === styleValue || unitlessNumbers.has(styleName)
? stringToChunk("" + styleValue)
: stringToChunk(styleValue + "px")
: stringToChunk(
escapeTextForBrowser(("" + styleValue).trim())
));
isFirst
? ((isFirst = !1),
target.push(
styleAttributeStart,
nameChunk,
styleAssign,
styleValue
))
: target.push(styleSeparator, nameChunk, styleAssign, styleValue);
}
}
isFirst || target.push(attributeEnd);
}
var attributeSeparator = stringToPrecomputedChunk(" "),
attributeAssign = stringToPrecomputedChunk('="'),
attributeEnd = stringToPrecomputedChunk('"'),
attributeEmptyString = stringToPrecomputedChunk('=""');
function pushBooleanAttribute(target, name, value) {
value &&
"function" !== typeof value &&
"symbol" !== typeof value &&
target.push(attributeSeparator, stringToChunk(name), attributeEmptyString);
}
function pushStringAttribute(target, name, value) {
"function" !== typeof value &&
"symbol" !== typeof value &&
"boolean" !== typeof value &&
target.push(
attributeSeparator,
stringToChunk(name),
attributeAssign,
stringToChunk(escapeTextForBrowser(value)),
attributeEnd
);
}
var actionJavaScriptURL = stringToPrecomputedChunk(
escapeTextForBrowser(
"javascript:throw new Error('React form unexpectedly submitted.')"
)
),
startHiddenInputChunk = stringToPrecomputedChunk('<input type="hidden"');
function pushAdditionalFormField(value, key) {
this.push(startHiddenInputChunk);
validateAdditionalFormField(value);
pushStringAttribute(this, "name", key);
pushStringAttribute(this, "value", value);
this.push(endOfStartTagSelfClosing);
}
function validateAdditionalFormField(value) {
if ("string" !== typeof value) throw Error(formatProdErrorMessage(480));
}
function getCustomFormFields(resumableState, formAction) {
if ("function" === typeof formAction.$$FORM_ACTION) {
var id = resumableState.nextFormID++;
resumableState = resumableState.idPrefix + id;
try {
var customFields = formAction.$$FORM_ACTION(resumableState);
if (customFields) {
var formData = customFields.data;
null != formData && formData.forEach(validateAdditionalFormField);
}
return customFields;
} catch (x) {
if ("object" === typeof x && null !== x && "function" === typeof x.then)
throw x;
}
}
return null;
}
function pushFormActionAttribute(
target,
resumableState,
renderState,
formAction,
formEncType,
formMethod,
formTarget,
name
) {
var formData = null;
if ("function" === typeof formAction) {
var customFields = getCustomFormFields(resumableState, formAction);
null !== customFields
? ((name = customFields.name),
(formAction = customFields.action || ""),
(formEncType = customFields.encType),
(formMethod = customFields.method),
(formTarget = customFields.target),
(formData = customFields.data))
: (target.push(
attributeSeparator,
stringToChunk("formAction"),
attributeAssign,
actionJavaScriptURL,
attributeEnd
),
(formTarget = formMethod = formEncType = formAction = name = null),
injectFormReplayingRuntime(resumableState, renderState));
}
null != name && pushAttribute(target, "name", name);
null != formAction && pushAttribute(target, "formAction", formAction);
null != formEncType && pushAttribute(target, "formEncType", formEncType);
null != formMethod && pushAttribute(target, "formMethod", formMethod);
null != formTarget && pushAttribute(target, "formTarget", formTarget);
return formData;
}
function pushAttribute(target, name, value) {
switch (name) {
case "className":
pushStringAttribute(target, "class", value);
break;
case "tabIndex":
pushStringAttribute(target, "tabindex", value);
break;
case "dir":
case "role":
case "viewBox":
case "width":
case "height":
pushStringAttribute(target, name, value);
break;
case "style":
pushStyleAttribute(target, value);
break;
case "src":
case "href":
if ("" === value) break;
case "action":
case "formAction":
if (
null == value ||
"function" === typeof value ||
"symbol" === typeof value ||
"boolean" === typeof value
)
break;
value = sanitizeURL("" + value);
target.push(
attributeSeparator,
stringToChunk(name),
attributeAssign,
stringToChunk(escapeTextForBrowser(value)),
attributeEnd
);
break;
case "defaultValue":
case "defaultChecked":
case "innerHTML":
case "suppressContentEditableWarning":
case "suppressHydrationWarning":
case "ref":
break;
case "autoFocus":
case "multiple":
case "muted":
pushBooleanAttribute(target, name.toLowerCase(), value);
break;
case "xlinkHref":
if (
"function" === typeof value ||
"symbol" === typeof value ||
"boolean" === typeof value
)
break;
value = sanitizeURL("" + value);
target.push(
attributeSeparator,
stringToChunk("xlink:href"),
attributeAssign,
stringToChunk(escapeTextForBrowser(value)),
attributeEnd
);
break;
case "contentEditable":
case "spellCheck":
case "draggable":
case "value":
case "autoReverse":
case "externalResourcesRequired":
case "focusable":
case "preserveAlpha":
"function" !== typeof value &&
"symbol" !== typeof value &&
target.push(
attributeSeparator,
stringToChunk(name),
attributeAssign,
stringToChunk(escapeTextForBrowser(value)),
attributeEnd
);
break;
case "inert":
case "allowFullScreen":
case "async":
case "autoPlay":
case "controls":
case "default":
case "defer":
case "disabled":
case "disablePictureInPicture":
case "disableRemotePlayback":
case "formNoValidate":
case "hidden":
case "loop":
case "noModule":
case "noValidate":
case "open":
case "playsInline":
case "readOnly":
case "required":
case "reversed":
case "scoped":
case "seamless":
case "itemScope":
value &&
"function" !== typeof value &&
"symbol" !== typeof value &&
target.push(
attributeSeparator,
stringToChunk(name),
attributeEmptyString
);
break;
case "capture":
case "download":
!0 === value
? target.push(
attributeSeparator,
stringToChunk(name),
attributeEmptyString
)
: !1 !== value &&
"function" !== typeof value &&
"symbol" !== typeof value &&
target.push(
attributeSeparator,
stringToChunk(name),
attributeAssign,
stringToChunk(escapeTextForBrowser(value)),
attributeEnd
);
break;
case "cols":
case "rows":
case "size":
case "span":
"function" !== typeof value &&
"symbol" !== typeof value &&
!isNaN(value) &&
1 <= value &&
target.push(
attributeSeparator,
stringToChunk(name),
attributeAssign,
stringToChunk(escapeTextForBrowser(value)),
attributeEnd
);
break;
case "rowSpan":
case "start":
"function" === typeof value ||
"symbol" === typeof value ||
isNaN(value) ||
target.push(
attributeSeparator,
stringToChunk(name),
attributeAssign,
stringToChunk(escapeTextForBrowser(value)),
attributeEnd
);
break;
case "xlinkActuate":
pushStringAttribute(target, "xlink:actuate", value);
break;
case "xlinkArcrole":
pushStringAttribute(target, "xlink:arcrole", value);
break;
case "xlinkRole":
pushStringAttribute(target, "xlink:role", value);
break;
case "xlinkShow":
pushStringAttribute(target, "xlink:show", value);
break;
case "xlinkTitle":
pushStringAttribute(target, "xlink:title", value);
break;
case "xlinkType":
pushStringAttribute(target, "xlink:type", value);
break;
case "xmlBase":
pushStringAttribute(target, "xml:base", value);
break;
case "xmlLang":
pushStringAttribute(target, "xml:lang", value);
break;
case "xmlSpace":
pushStringAttribute(target, "xml:space", value);
break;
default:
if (
!(2 < name.length) ||
("o" !== name[0] && "O" !== name[0]) ||
("n" !== name[1] && "N" !== name[1])
)
if (((name = aliases.get(name) || name), isAttributeNameSafe(name))) {
switch (typeof value) {
case "function":
case "symbol":
return;
case "boolean":
var prefix$8 = name.toLowerCase().slice(0, 5);
if ("data-" !== prefix$8 && "aria-" !== prefix$8) return;
}
target.push(
attributeSeparator,
stringToChunk(name),
attributeAssign,
stringToChunk(escapeTextForBrowser(value)),
attributeEnd
);
}
}
}
var endOfStartTag = stringToPrecomputedChunk(">"),
endOfStartTagSelfClosing = stringToPrecomputedChunk("/>");
function pushInnerHTML(target, innerHTML, children) {
if (null != innerHTML) {
if (null != children) throw Error(formatProdErrorMessage(60));
if ("object" !== typeof innerHTML || !("__html" in innerHTML))
throw Error(formatProdErrorMessage(61));
innerHTML = innerHTML.__html;
null !== innerHTML &&
void 0 !== innerHTML &&
target.push(stringToChunk("" + innerHTML));
}
}
function flattenOptionChildren(children) {
var content = "";
React.Children.forEach(children, function (child) {
null != child && (content += child);
});
return content;
}
var selectedMarkerAttribute = stringToPrecomputedChunk(' selected=""'),
formReplayingRuntimeScript = stringToPrecomputedChunk(
'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});'
);
function injectFormReplayingRuntime(resumableState, renderState) {
0 === (resumableState.instructions & 16) &&
((resumableState.instructions |= 16),
renderState.bootstrapChunks.unshift(
renderState.startInlineScript,
formReplayingRuntimeScript,
endInlineScript
));
}
var formStateMarkerIsMatching = stringToPrecomputedChunk("\x3c!--F!--\x3e"),
formStateMarkerIsNotMatching = stringToPrecomputedChunk("\x3c!--F--\x3e");
function pushLinkImpl(target, props) {
target.push(startChunkForTag("link"));
for (var propKey in props)
if (hasOwnProperty.call(props, propKey)) {
var propValue = props[propKey];
if (null != propValue)
switch (propKey) {
case "children":
case "dangerouslySetInnerHTML":
throw Error(formatProdErrorMessage(399, "link"));
default:
pushAttribute(target, propKey, propValue);
}
}
target.push(endOfStartTagSelfClosing);
return null;
}
var styleRegex = /(<\/|<)(s)(tyle)/gi;
function styleReplacer(match, prefix, s, suffix) {
return "" + prefix + ("s" === s ? "\\73 " : "\\53 ") + suffix;
}
function pushSelfClosing(target, props, tag) {
target.push(startChunkForTag(tag));
for (var propKey in props)
if (hasOwnProperty.call(props, propKey)) {
var propValue = props[propKey];
if (null != propValue)
switch (propKey) {
case "children":
case "dangerouslySetInnerHTML":
throw Error(formatProdErrorMessage(399, tag));
default:
pushAttribute(target, propKey, propValue);
}
}
target.push(endOfStartTagSelfClosing);
return null;
}
function pushTitleImpl(target, props) {
target.push(startChunkForTag("title"));
var children = null,
innerHTML = null,
propKey;
for (propKey in props)
if (hasOwnProperty.call(props, propKey)) {
var propValue = props[propKey];
if (null != propValue)
switch (propKey) {
case "children":
children = propValue;
break;
case "dangerouslySetInnerHTML":
innerHTML = propValue;
break;
default:
pushAttribute(target, propKey, propValue);
}
}
target.push(endOfStartTag);
props = Array.isArray(children)
? 2 > children.length
? children[0]
: null
: children;
"function" !== typeof props &&
"symbol" !== typeof props &&
null !== props &&
void 0 !== props &&
target.push(stringToChunk(escapeTextForBrowser("" + props)));
pushInnerHTML(target, innerHTML, children);
target.push(endChunkForTag("title"));
return null;
}
function pushScriptImpl(target, props) {
target.push(startChunkForTag("script"));
var children = null,
innerHTML = null,
propKey;
for (propKey in props)
if (hasOwnProperty.call(props, propKey)) {
var propValue = props[propKey];
if (null != propValue)
switch (propKey) {
case "children":
children = propValue;
break;
case "dangerouslySetInnerHTML":
innerHTML = propValue;
break;
default:
pushAttribute(target, propKey, propValue);
}
}
target.push(endOfStartTag);
pushInnerHTML(target, innerHTML, children);
"string" === typeof children &&
target.push(
stringToChunk(("" + children).replace(scriptRegex, scriptReplacer))
);
target.push(endChunkForTag("script"));
return null;
}
function pushStartGenericElement(target, props, tag) {
target.push(startChunkForTag(tag));
var innerHTML = (tag = null),
propKey;
for (propKey in props)
if (hasOwnProperty.call(props, propKey)) {
var propValue = props[propKey];
if (null != propValue)
switch (propKey) {
case "children":
tag = propValue;
break;
case "dangerouslySetInnerHTML":
innerHTML = propValue;
break;
default:
pushAttribute(target, propKey, propValue);
}
}
target.push(endOfStartTag);
pushInnerHTML(target, innerHTML, tag);
return "string" === typeof tag
? (target.push(stringToChunk(escapeTextForBrowser(tag))), null)
: tag;
}
var leadingNewline = stringToPrecomputedChunk("\n"),
VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,
validatedTagCache = new Map();
function startChunkForTag(tag) {
var tagStartChunk = validatedTagCache.get(tag);
if (void 0 === tagStartChunk) {
if (!VALID_TAG_REGEX.test(tag))
throw Error(formatProdErrorMessage(65, tag));
tagStartChunk = stringToPrecomputedChunk("<" + tag);
validatedTagCache.set(tag, tagStartChunk);
}
return tagStartChunk;
}
var doctypeChunk = stringToPrecomputedChunk("<!DOCTYPE html>");
function pushStartInstance(
target$jscomp$0,
type,
props,
resumableState,
renderState,
hoistableState,
formatContext,
textEmbedded,
isFallback
) {
switch (type) {
case "div":
case "span":
case "svg":
case "path":
break;
case "a":
target$jscomp$0.push(startChunkForTag("a"));
var children = null,
innerHTML = null,
propKey;
for (propKey in props)
if (hasOwnProperty.call(props, propKey)) {
var propValue = props[propKey];
if (null != propValue)
switch (propKey) {
case "children":
children = propValue;
break;
case "dangerouslySetInnerHTML":
innerHTML = propValue;
break;
case "href":
"" === propValue
? pushStringAttribute(target$jscomp$0, "href", "")
: pushAttribute(target$jscomp$0, propKey, propValue);
break;
default:
pushAttribute(target$jscomp$0, propKey, propValue);
}
}
target$jscomp$0.push(endOfStartTag);
pushInnerHTML(target$jscomp$0, innerHTML, children);
if ("string" === typeof children) {
target$jscomp$0.push(stringToChunk(escapeTextForBrowser(children)));
var JSCompiler_inline_result = null;
} else JSCompiler_inline_result = children;
return JSCompiler_inline_result;
case "g":
case "p":
case "li":
break;
case "select":
target$jscomp$0.push(startChunkForTag("select"));
var children$jscomp$0 = null,
innerHTML$jscomp$0 = null,
propKey$jscomp$0;
for (propKey$jscomp$0 in props)
if (hasOwnProperty.call(props, propKey$jscomp$0)) {
var propValue$jscomp$0 = props[propKey$jscomp$0];
if (null != propValue$jscomp$0)
switch (propKey$jscomp$0) {
case "children":
children$jscomp$0 = propValue$jscomp$0;
break;
case "dangerouslySetInnerHTML":
innerHTML$jscomp$0 = propValue$jscomp$0;
break;
case "defaultValue":
case "value":
break;
default:
pushAttribute(
target$jscomp$0,
propKey$jscomp$0,
propValue$jscomp$0
);
}
}
target$jscomp$0.push(endOfStartTag);
pushInnerHTML(target$jscomp$0, innerHTML$jscomp$0, children$jscomp$0);
return children$jscomp$0;
case "option":
var selectedValue = formatContext.selectedValue;
target$jscomp$0.push(startChunkForTag("option"));
var children$jscomp$1 = null,
value = null,
selected = null,
innerHTML$jscomp$1 = null,
propKey$jscomp$1;
for (propKey$jscomp$1 in props)
if (hasOwnProperty.call(props, propKey$jscomp$1)) {
var propValue$jscomp$1 = props[propKey$jscomp$1];
if (null != propValue$jscomp$1)
switch (propKey$jscomp$1) {
case "children":
children$jscomp$1 = propValue$jscomp$1;
break;
case "selected":
selected = propValue$jscomp$1;
break;
case "dangerouslySetInnerHTML":
innerHTML$jscomp$1 = propValue$jscomp$1;
break;
case "value":
value = propValue$jscomp$1;
default:
pushAttribute(
target$jscomp$0,
propKey$jscomp$1,
propValue$jscomp$1
);
}
}
if (null != selectedValue) {
var stringValue =
null !== value
? "" + value
: flattenOptionChildren(children$jscomp$1);
if (isArrayImpl(selectedValue))
for (var i = 0; i < selectedValue.length; i++) {
if ("" + selectedValue[i] === stringValue) {
target$jscomp$0.push(selectedMarkerAttribute);
break;
}
}
else
"" + selectedValue === stringValue &&
target$jscomp$0.push(selectedMarkerAttribute);
} else selected && target$jscomp$0.push(selectedMarkerAttribute);
target$jscomp$0.push(endOfStartTag);
pushInnerHTML(target$jscomp$0, innerHTML$jscomp$1, children$jscomp$1);
return children$jscomp$1;
case "textarea":
target$jscomp$0.push(startChunkForTag("textarea"));
var value$jscomp$0 = null,
defaultValue = null,
children$jscomp$2 = null,
propKey$jscomp$2;
for (propKey$jscomp$2 in props)
if (hasOwnProperty.call(props, propKey$jscomp$2)) {
var propValue$jscomp$2 = props[propKey$jscomp$2];
if (null != propValue$jscomp$2)
switch (propKey$jscomp$2) {
case "children":
children$jscomp$2 = propValue$jscomp$2;
break;
case "value":
value$jscomp$0 = propValue$jscomp$2;
break;
case "defaultValue":
defaultValue = propValue$jscomp$2;
break;
case "dangerouslySetInnerHTML":
throw Error(formatProdErrorMessage(91));
default:
pushAttribute(
target$jscomp$0,
propKey$jscomp$2,
propValue$jscomp$2
);
}
}
null === value$jscomp$0 &&
null !== defaultValue &&
(value$jscomp$0 = defaultValue);
target$jscomp$0.push(endOfStartTag);
if (null != children$jscomp$2) {
if (null != value$jscomp$0) throw Error(formatProdErrorMessage(92));
if (isArrayImpl(children$jscomp$2)) {
if (1 < children$jscomp$2.length)
throw Error(formatProdErrorMessage(93));
value$jscomp$0 = "" + children$jscomp$2[0];
}
value$jscomp$0 = "" + children$jscomp$2;
}
"string" === typeof value$jscomp$0 &&
"\n" === value$jscomp$0[0] &&
target$jscomp$0.push(leadingNewline);
null !== value$jscomp$0 &&
target$jscomp$0.push(
stringToChunk(escapeTextForBrowser("" + value$jscomp$0))
);
return null;
case "input":
target$jscomp$0.push(startChunkForTag("input"));
var name = null,
formAction = null,
formEncType = null,
formMethod = null,
formTarget = null,
value$jscomp$1 = null,
defaultValue$jscomp$0 = null,
checked = null,
defaultChecked = null,
propKey$jscomp$3;
for (propKey$jscomp$3 in props)
if (hasOwnProperty.call(props, propKey$jscomp$3)) {
var propValue$jscomp$3 = props[propKey$jscomp$3];
if (null != propValue$jscomp$3)
switch (propKey$jscomp$3) {
case "children":
case "dangerouslySetInnerHTML":
throw Error(formatProdErrorMessage(399, "input"));
case "name":
name = propValue$jscomp$3;
break;
case "formAction":
formAction = propValue$jscomp$3;
break;
case "formEncType":
formEncType = propValue$jscomp$3;
break;
case "formMethod":
formMethod = propValue$jscomp$3;
break;
case "formTarget":
formTarget = propValue$jscomp$3;
break;
case "defaultChecked":
defaultChecked = propValue$jscomp$3;
break;
case "defaultValue":
defaultValue$jscomp$0 = propValue$jscomp$3;
break;
case "checked":
checked = propValue$jscomp$3;
break;
case "value":
value$jscomp$1 = propValue$jscomp$3;
break;
default:
pushAttribute(
target$jscomp$0,
propKey$jscomp$3,
propValue$jscomp$3