Files
2025-08-28 21:37:32 +02:00

25669 lines
949 KiB
JavaScript

/**
* @license React
* react-dom-client.development.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.
*/
/*
Modernizr 3.0.0pre (Custom Build) | MIT
*/
'use strict'
'production' !== process.env.NODE_ENV &&
(function () {
function findHook(fiber, id) {
for (fiber = fiber.memoizedState; null !== fiber && 0 < id; )
((fiber = fiber.next), id--)
return fiber
}
function copyWithSetImpl(obj, path, index, value) {
if (index >= path.length) return value
var key = path[index],
updated = isArrayImpl(obj) ? obj.slice() : assign({}, obj)
updated[key] = copyWithSetImpl(obj[key], path, index + 1, value)
return updated
}
function copyWithRename(obj, oldPath, newPath) {
if (oldPath.length !== newPath.length)
console.warn('copyWithRename() expects paths of the same length')
else {
for (var i = 0; i < newPath.length - 1; i++)
if (oldPath[i] !== newPath[i]) {
console.warn(
'copyWithRename() expects paths to be the same except for the deepest key'
)
return
}
return copyWithRenameImpl(obj, oldPath, newPath, 0)
}
}
function copyWithRenameImpl(obj, oldPath, newPath, index) {
var oldKey = oldPath[index],
updated = isArrayImpl(obj) ? obj.slice() : assign({}, obj)
index + 1 === oldPath.length
? ((updated[newPath[index]] = updated[oldKey]),
isArrayImpl(updated)
? updated.splice(oldKey, 1)
: delete updated[oldKey])
: (updated[oldKey] = copyWithRenameImpl(
obj[oldKey],
oldPath,
newPath,
index + 1
))
return updated
}
function copyWithDeleteImpl(obj, path, index) {
var key = path[index],
updated = isArrayImpl(obj) ? obj.slice() : assign({}, obj)
if (index + 1 === path.length)
return (
isArrayImpl(updated) ? updated.splice(key, 1) : delete updated[key],
updated
)
updated[key] = copyWithDeleteImpl(obj[key], path, index + 1)
return updated
}
function shouldSuspendImpl() {
return !1
}
function shouldErrorImpl() {
return null
}
function warnInvalidHookAccess() {
console.error(
'Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. You can only call Hooks at the top level of your React function. For more information, see https://react.dev/link/rules-of-hooks'
)
}
function warnInvalidContextAccess() {
console.error(
'Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().'
)
}
function noop() {}
function warnForMissingKey() {}
function setToSortedString(set) {
var array = []
set.forEach(function (value) {
array.push(value)
})
return array.sort().join(', ')
}
function createFiber(tag, pendingProps, key, mode) {
return new FiberNode(tag, pendingProps, key, mode)
}
function scheduleRoot(root, element) {
root.context === emptyContextObject &&
(updateContainerImpl(root.current, 2, element, root, null, null),
flushSyncWork$1())
}
function scheduleRefresh(root, update) {
if (null !== resolveFamily) {
var staleFamilies = update.staleFamilies
update = update.updatedFamilies
flushPendingEffects()
scheduleFibersWithFamiliesRecursively(
root.current,
update,
staleFamilies
)
flushSyncWork$1()
}
}
function setRefreshHandler(handler) {
resolveFamily = handler
}
function isValidContainer(node) {
return !(
!node ||
(1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)
)
}
function getNearestMountedFiber(fiber) {
var node = fiber,
nearestMounted = fiber
if (fiber.alternate) for (; node.return; ) node = node.return
else {
fiber = node
do
((node = fiber),
0 !== (node.flags & 4098) && (nearestMounted = node.return),
(fiber = node.return))
while (fiber)
}
return 3 === node.tag ? nearestMounted : null
}
function getSuspenseInstanceFromFiber(fiber) {
if (13 === fiber.tag) {
var suspenseState = fiber.memoizedState
null === suspenseState &&
((fiber = fiber.alternate),
null !== fiber && (suspenseState = fiber.memoizedState))
if (null !== suspenseState) return suspenseState.dehydrated
}
return null
}
function getActivityInstanceFromFiber(fiber) {
if (31 === fiber.tag) {
var activityState = fiber.memoizedState
null === activityState &&
((fiber = fiber.alternate),
null !== fiber && (activityState = fiber.memoizedState))
if (null !== activityState) return activityState.dehydrated
}
return null
}
function assertIsMounted(fiber) {
if (getNearestMountedFiber(fiber) !== fiber)
throw Error('Unable to find node on an unmounted component.')
}
function findCurrentFiberUsingSlowPath(fiber) {
var alternate = fiber.alternate
if (!alternate) {
alternate = getNearestMountedFiber(fiber)
if (null === alternate)
throw Error('Unable to find node on an unmounted component.')
return alternate !== fiber ? null : fiber
}
for (var a = fiber, b = alternate; ; ) {
var parentA = a.return
if (null === parentA) break
var parentB = parentA.alternate
if (null === parentB) {
b = parentA.return
if (null !== b) {
a = b
continue
}
break
}
if (parentA.child === parentB.child) {
for (parentB = parentA.child; parentB; ) {
if (parentB === a) return (assertIsMounted(parentA), fiber)
if (parentB === b) return (assertIsMounted(parentA), alternate)
parentB = parentB.sibling
}
throw Error('Unable to find node on an unmounted component.')
}
if (a.return !== b.return) ((a = parentA), (b = parentB))
else {
for (var didFindChild = !1, _child = parentA.child; _child; ) {
if (_child === a) {
didFindChild = !0
a = parentA
b = parentB
break
}
if (_child === b) {
didFindChild = !0
b = parentA
a = parentB
break
}
_child = _child.sibling
}
if (!didFindChild) {
for (_child = parentB.child; _child; ) {
if (_child === a) {
didFindChild = !0
a = parentB
b = parentA
break
}
if (_child === b) {
didFindChild = !0
b = parentB
a = parentA
break
}
_child = _child.sibling
}
if (!didFindChild)
throw Error(
'Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.'
)
}
}
if (a.alternate !== b)
throw Error(
"Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue."
)
}
if (3 !== a.tag)
throw Error('Unable to find node on an unmounted component.')
return a.stateNode.current === a ? fiber : alternate
}
function findCurrentHostFiberImpl(node) {
var tag = node.tag
if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node
for (node = node.child; null !== node; ) {
tag = findCurrentHostFiberImpl(node)
if (null !== tag) return tag
node = node.sibling
}
return null
}
function getIteratorFn(maybeIterable) {
if (null === maybeIterable || 'object' !== typeof maybeIterable)
return null
maybeIterable =
(MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
maybeIterable['@@iterator']
return 'function' === typeof maybeIterable ? maybeIterable : null
}
function getComponentNameFromType(type) {
if (null == type) return null
if ('function' === typeof type)
return type.$$typeof === REACT_CLIENT_REFERENCE
? null
: type.displayName || type.name || null
if ('string' === typeof type) return type
switch (type) {
case REACT_FRAGMENT_TYPE:
return 'Fragment'
case REACT_PROFILER_TYPE:
return 'Profiler'
case REACT_STRICT_MODE_TYPE:
return 'StrictMode'
case REACT_SUSPENSE_TYPE:
return 'Suspense'
case REACT_SUSPENSE_LIST_TYPE:
return 'SuspenseList'
case REACT_ACTIVITY_TYPE:
return 'Activity'
}
if ('object' === typeof type)
switch (
('number' === typeof type.tag &&
console.error(
'Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.'
),
type.$$typeof)
) {
case REACT_PORTAL_TYPE:
return 'Portal'
case REACT_CONTEXT_TYPE:
return type.displayName || 'Context'
case REACT_CONSUMER_TYPE:
return (type._context.displayName || 'Context') + '.Consumer'
case REACT_FORWARD_REF_TYPE:
var innerType = type.render
type = type.displayName
type ||
((type = innerType.displayName || innerType.name || ''),
(type = '' !== type ? 'ForwardRef(' + type + ')' : 'ForwardRef'))
return type
case REACT_MEMO_TYPE:
return (
(innerType = type.displayName || null),
null !== innerType
? innerType
: getComponentNameFromType(type.type) || 'Memo'
)
case REACT_LAZY_TYPE:
innerType = type._payload
type = type._init
try {
return getComponentNameFromType(type(innerType))
} catch (x) {}
}
return null
}
function getComponentNameFromOwner(owner) {
return 'number' === typeof owner.tag
? getComponentNameFromFiber(owner)
: 'string' === typeof owner.name
? owner.name
: null
}
function getComponentNameFromFiber(fiber) {
var type = fiber.type
switch (fiber.tag) {
case 31:
return 'Activity'
case 24:
return 'Cache'
case 9:
return (type._context.displayName || 'Context') + '.Consumer'
case 10:
return type.displayName || 'Context'
case 18:
return 'DehydratedFragment'
case 11:
return (
(fiber = type.render),
(fiber = fiber.displayName || fiber.name || ''),
type.displayName ||
('' !== fiber ? 'ForwardRef(' + fiber + ')' : 'ForwardRef')
)
case 7:
return 'Fragment'
case 26:
case 27:
case 5:
return type
case 4:
return 'Portal'
case 3:
return 'Root'
case 6:
return 'Text'
case 16:
return getComponentNameFromType(type)
case 8:
return type === REACT_STRICT_MODE_TYPE ? 'StrictMode' : 'Mode'
case 22:
return 'Offscreen'
case 12:
return 'Profiler'
case 21:
return 'Scope'
case 13:
return 'Suspense'
case 19:
return 'SuspenseList'
case 25:
return 'TracingMarker'
case 1:
case 0:
case 14:
case 15:
if ('function' === typeof type)
return type.displayName || type.name || null
if ('string' === typeof type) return type
break
case 29:
type = fiber._debugInfo
if (null != type)
for (var i = type.length - 1; 0 <= i; i--)
if ('string' === typeof type[i].name) return type[i].name
if (null !== fiber.return)
return getComponentNameFromFiber(fiber.return)
}
return null
}
function createCursor(defaultValue) {
return { current: defaultValue }
}
function pop(cursor, fiber) {
0 > index$jscomp$0
? console.error('Unexpected pop.')
: (fiber !== fiberStack[index$jscomp$0] &&
console.error('Unexpected Fiber popped.'),
(cursor.current = valueStack[index$jscomp$0]),
(valueStack[index$jscomp$0] = null),
(fiberStack[index$jscomp$0] = null),
index$jscomp$0--)
}
function push(cursor, value, fiber) {
index$jscomp$0++
valueStack[index$jscomp$0] = cursor.current
fiberStack[index$jscomp$0] = fiber
cursor.current = value
}
function requiredContext(c) {
null === c &&
console.error(
'Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.'
)
return c
}
function pushHostContainer(fiber, nextRootInstance) {
push(rootInstanceStackCursor, nextRootInstance, fiber)
push(contextFiberStackCursor, fiber, fiber)
push(contextStackCursor, null, fiber)
var nextRootContext = nextRootInstance.nodeType
switch (nextRootContext) {
case 9:
case 11:
nextRootContext = 9 === nextRootContext ? '#document' : '#fragment'
nextRootInstance = (nextRootInstance =
nextRootInstance.documentElement)
? (nextRootInstance = nextRootInstance.namespaceURI)
? getOwnHostContext(nextRootInstance)
: HostContextNamespaceNone
: HostContextNamespaceNone
break
default:
if (
((nextRootContext = nextRootInstance.tagName),
(nextRootInstance = nextRootInstance.namespaceURI))
)
((nextRootInstance = getOwnHostContext(nextRootInstance)),
(nextRootInstance = getChildHostContextProd(
nextRootInstance,
nextRootContext
)))
else
switch (nextRootContext) {
case 'svg':
nextRootInstance = HostContextNamespaceSvg
break
case 'math':
nextRootInstance = HostContextNamespaceMath
break
default:
nextRootInstance = HostContextNamespaceNone
}
}
nextRootContext = nextRootContext.toLowerCase()
nextRootContext = updatedAncestorInfoDev(null, nextRootContext)
nextRootContext = {
context: nextRootInstance,
ancestorInfo: nextRootContext,
}
pop(contextStackCursor, fiber)
push(contextStackCursor, nextRootContext, fiber)
}
function popHostContainer(fiber) {
pop(contextStackCursor, fiber)
pop(contextFiberStackCursor, fiber)
pop(rootInstanceStackCursor, fiber)
}
function getHostContext() {
return requiredContext(contextStackCursor.current)
}
function pushHostContext(fiber) {
null !== fiber.memoizedState &&
push(hostTransitionProviderCursor, fiber, fiber)
var context = requiredContext(contextStackCursor.current)
var type = fiber.type
var nextContext = getChildHostContextProd(context.context, type)
type = updatedAncestorInfoDev(context.ancestorInfo, type)
nextContext = { context: nextContext, ancestorInfo: type }
context !== nextContext &&
(push(contextFiberStackCursor, fiber, fiber),
push(contextStackCursor, nextContext, fiber))
}
function popHostContext(fiber) {
contextFiberStackCursor.current === fiber &&
(pop(contextStackCursor, fiber), pop(contextFiberStackCursor, fiber))
hostTransitionProviderCursor.current === fiber &&
(pop(hostTransitionProviderCursor, fiber),
(HostTransitionContext._currentValue = NotPendingTransition))
}
function disabledLog() {}
function disableLogs() {
if (0 === disabledDepth) {
prevLog = console.log
prevInfo = console.info
prevWarn = console.warn
prevError = console.error
prevGroup = console.group
prevGroupCollapsed = console.groupCollapsed
prevGroupEnd = console.groupEnd
var props = {
configurable: !0,
enumerable: !0,
value: disabledLog,
writable: !0,
}
Object.defineProperties(console, {
info: props,
log: props,
warn: props,
error: props,
group: props,
groupCollapsed: props,
groupEnd: props,
})
}
disabledDepth++
}
function reenableLogs() {
disabledDepth--
if (0 === disabledDepth) {
var props = { configurable: !0, enumerable: !0, writable: !0 }
Object.defineProperties(console, {
log: assign({}, props, { value: prevLog }),
info: assign({}, props, { value: prevInfo }),
warn: assign({}, props, { value: prevWarn }),
error: assign({}, props, { value: prevError }),
group: assign({}, props, { value: prevGroup }),
groupCollapsed: assign({}, props, { value: prevGroupCollapsed }),
groupEnd: assign({}, props, { value: prevGroupEnd }),
})
}
0 > disabledDepth &&
console.error(
'disabledDepth fell below zero. This is a bug in React. Please file an issue.'
)
}
function formatOwnerStack(error) {
var prevPrepareStackTrace = Error.prepareStackTrace
Error.prepareStackTrace = void 0
error = error.stack
Error.prepareStackTrace = prevPrepareStackTrace
error.startsWith('Error: react-stack-top-frame\n') &&
(error = error.slice(29))
prevPrepareStackTrace = error.indexOf('\n')
;-1 !== prevPrepareStackTrace &&
(error = error.slice(prevPrepareStackTrace + 1))
prevPrepareStackTrace = error.indexOf('react_stack_bottom_frame')
;-1 !== prevPrepareStackTrace &&
(prevPrepareStackTrace = error.lastIndexOf('\n', prevPrepareStackTrace))
if (-1 !== prevPrepareStackTrace)
error = error.slice(0, prevPrepareStackTrace)
else return ''
return error
}
function describeBuiltInComponentFrame(name) {
if (void 0 === prefix)
try {
throw Error()
} catch (x) {
var match = x.stack.trim().match(/\n( *(at )?)/)
prefix = (match && match[1]) || ''
suffix =
-1 < x.stack.indexOf('\n at')
? ' (<anonymous>)'
: -1 < x.stack.indexOf('@')
? '@unknown:0:0'
: ''
}
return '\n' + prefix + name + suffix
}
function describeNativeComponentFrame(fn, construct) {
if (!fn || reentry) return ''
var frame = componentFrameCache.get(fn)
if (void 0 !== frame) return frame
reentry = !0
frame = Error.prepareStackTrace
Error.prepareStackTrace = void 0
var previousDispatcher = null
previousDispatcher = ReactSharedInternals.H
ReactSharedInternals.H = null
disableLogs()
try {
var RunInRootFrame = {
DetermineComponentFrameRoot: function () {
try {
if (construct) {
var Fake = function () {
throw Error()
}
Object.defineProperty(Fake.prototype, 'props', {
set: function () {
throw Error()
},
})
if ('object' === typeof Reflect && Reflect.construct) {
try {
Reflect.construct(Fake, [])
} catch (x) {
var control = x
}
Reflect.construct(fn, [], Fake)
} else {
try {
Fake.call()
} catch (x$0) {
control = x$0
}
fn.call(Fake.prototype)
}
} else {
try {
throw Error()
} catch (x$1) {
control = x$1
}
;(Fake = fn()) &&
'function' === typeof Fake.catch &&
Fake.catch(function () {})
}
} catch (sample) {
if (sample && control && 'string' === typeof sample.stack)
return [sample.stack, control.stack]
}
return [null, null]
},
}
RunInRootFrame.DetermineComponentFrameRoot.displayName =
'DetermineComponentFrameRoot'
var namePropDescriptor = Object.getOwnPropertyDescriptor(
RunInRootFrame.DetermineComponentFrameRoot,
'name'
)
namePropDescriptor &&
namePropDescriptor.configurable &&
Object.defineProperty(
RunInRootFrame.DetermineComponentFrameRoot,
'name',
{ value: 'DetermineComponentFrameRoot' }
)
var _RunInRootFrame$Deter =
RunInRootFrame.DetermineComponentFrameRoot(),
sampleStack = _RunInRootFrame$Deter[0],
controlStack = _RunInRootFrame$Deter[1]
if (sampleStack && controlStack) {
var sampleLines = sampleStack.split('\n'),
controlLines = controlStack.split('\n')
for (
_RunInRootFrame$Deter = namePropDescriptor = 0;
namePropDescriptor < sampleLines.length &&
!sampleLines[namePropDescriptor].includes(
'DetermineComponentFrameRoot'
);
)
namePropDescriptor++
for (
;
_RunInRootFrame$Deter < controlLines.length &&
!controlLines[_RunInRootFrame$Deter].includes(
'DetermineComponentFrameRoot'
);
)
_RunInRootFrame$Deter++
if (
namePropDescriptor === sampleLines.length ||
_RunInRootFrame$Deter === controlLines.length
)
for (
namePropDescriptor = sampleLines.length - 1,
_RunInRootFrame$Deter = controlLines.length - 1;
1 <= namePropDescriptor &&
0 <= _RunInRootFrame$Deter &&
sampleLines[namePropDescriptor] !==
controlLines[_RunInRootFrame$Deter];
)
_RunInRootFrame$Deter--
for (
;
1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter;
namePropDescriptor--, _RunInRootFrame$Deter--
)
if (
sampleLines[namePropDescriptor] !==
controlLines[_RunInRootFrame$Deter]
) {
if (1 !== namePropDescriptor || 1 !== _RunInRootFrame$Deter) {
do
if (
(namePropDescriptor--,
_RunInRootFrame$Deter--,
0 > _RunInRootFrame$Deter ||
sampleLines[namePropDescriptor] !==
controlLines[_RunInRootFrame$Deter])
) {
var _frame =
'\n' +
sampleLines[namePropDescriptor].replace(
' at new ',
' at '
)
fn.displayName &&
_frame.includes('<anonymous>') &&
(_frame = _frame.replace('<anonymous>', fn.displayName))
'function' === typeof fn &&
componentFrameCache.set(fn, _frame)
return _frame
}
while (1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter)
}
break
}
}
} finally {
;((reentry = !1),
(ReactSharedInternals.H = previousDispatcher),
reenableLogs(),
(Error.prepareStackTrace = frame))
}
sampleLines = (sampleLines = fn ? fn.displayName || fn.name : '')
? describeBuiltInComponentFrame(sampleLines)
: ''
'function' === typeof fn && componentFrameCache.set(fn, sampleLines)
return sampleLines
}
function describeFiber(fiber, childFiber) {
switch (fiber.tag) {
case 26:
case 27:
case 5:
return describeBuiltInComponentFrame(fiber.type)
case 16:
return describeBuiltInComponentFrame('Lazy')
case 13:
return fiber.child !== childFiber && null !== childFiber
? describeBuiltInComponentFrame('Suspense Fallback')
: describeBuiltInComponentFrame('Suspense')
case 19:
return describeBuiltInComponentFrame('SuspenseList')
case 0:
case 15:
return describeNativeComponentFrame(fiber.type, !1)
case 11:
return describeNativeComponentFrame(fiber.type.render, !1)
case 1:
return describeNativeComponentFrame(fiber.type, !0)
case 31:
return describeBuiltInComponentFrame('Activity')
default:
return ''
}
}
function getStackByFiberInDevAndProd(workInProgress) {
try {
var info = '',
previous = null
do {
info += describeFiber(workInProgress, previous)
var debugInfo = workInProgress._debugInfo
if (debugInfo)
for (var i = debugInfo.length - 1; 0 <= i; i--) {
var entry = debugInfo[i]
if ('string' === typeof entry.name) {
var JSCompiler_temp_const = info
a: {
var name = entry.name,
env = entry.env,
location = entry.debugLocation
if (null != location) {
var childStack = formatOwnerStack(location),
idx = childStack.lastIndexOf('\n'),
lastLine =
-1 === idx ? childStack : childStack.slice(idx + 1)
if (-1 !== lastLine.indexOf(name)) {
var JSCompiler_inline_result = '\n' + lastLine
break a
}
}
JSCompiler_inline_result = describeBuiltInComponentFrame(
name + (env ? ' [' + env + ']' : '')
)
}
info = JSCompiler_temp_const + JSCompiler_inline_result
}
}
previous = workInProgress
workInProgress = workInProgress.return
} while (workInProgress)
return info
} catch (x) {
return '\nError generating stack: ' + x.message + '\n' + x.stack
}
}
function describeFunctionComponentFrameWithoutLineNumber(fn) {
return (fn = fn ? fn.displayName || fn.name : '')
? describeBuiltInComponentFrame(fn)
: ''
}
function getCurrentFiberOwnerNameInDevOrNull() {
if (null === current) return null
var owner = current._debugOwner
return null != owner ? getComponentNameFromOwner(owner) : null
}
function getCurrentFiberStackInDev() {
if (null === current) return ''
var workInProgress = current
try {
var info = ''
6 === workInProgress.tag && (workInProgress = workInProgress.return)
switch (workInProgress.tag) {
case 26:
case 27:
case 5:
info += describeBuiltInComponentFrame(workInProgress.type)
break
case 13:
info += describeBuiltInComponentFrame('Suspense')
break
case 19:
info += describeBuiltInComponentFrame('SuspenseList')
break
case 31:
info += describeBuiltInComponentFrame('Activity')
break
case 30:
case 0:
case 15:
case 1:
workInProgress._debugOwner ||
'' !== info ||
(info += describeFunctionComponentFrameWithoutLineNumber(
workInProgress.type
))
break
case 11:
workInProgress._debugOwner ||
'' !== info ||
(info += describeFunctionComponentFrameWithoutLineNumber(
workInProgress.type.render
))
}
for (; workInProgress; )
if ('number' === typeof workInProgress.tag) {
var fiber = workInProgress
workInProgress = fiber._debugOwner
var debugStack = fiber._debugStack
if (workInProgress && debugStack) {
var formattedStack = formatOwnerStack(debugStack)
'' !== formattedStack && (info += '\n' + formattedStack)
}
} else if (null != workInProgress.debugStack) {
var ownerStack = workInProgress.debugStack
;(workInProgress = workInProgress.owner) &&
ownerStack &&
(info += '\n' + formatOwnerStack(ownerStack))
} else break
var JSCompiler_inline_result = info
} catch (x) {
JSCompiler_inline_result =
'\nError generating stack: ' + x.message + '\n' + x.stack
}
return JSCompiler_inline_result
}
function runWithFiberInDEV(fiber, callback, arg0, arg1, arg2, arg3, arg4) {
var previousFiber = current
setCurrentFiber(fiber)
try {
return null !== fiber && fiber._debugTask
? fiber._debugTask.run(
callback.bind(null, arg0, arg1, arg2, arg3, arg4)
)
: callback(arg0, arg1, arg2, arg3, arg4)
} finally {
setCurrentFiber(previousFiber)
}
throw Error(
'runWithFiberInDEV should never be called in production. This is a bug in React.'
)
}
function setCurrentFiber(fiber) {
ReactSharedInternals.getCurrentStack =
null === fiber ? null : getCurrentFiberStackInDev
isRendering = !1
current = fiber
}
function typeName(value) {
return (
('function' === typeof Symbol &&
Symbol.toStringTag &&
value[Symbol.toStringTag]) ||
value.constructor.name ||
'Object'
)
}
function willCoercionThrow(value) {
try {
return (testStringCoercion(value), !1)
} catch (e) {
return !0
}
}
function testStringCoercion(value) {
return '' + value
}
function checkAttributeStringCoercion(value, attributeName) {
if (willCoercionThrow(value))
return (
console.error(
'The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before using it here.',
attributeName,
typeName(value)
),
testStringCoercion(value)
)
}
function checkCSSPropertyStringCoercion(value, propName) {
if (willCoercionThrow(value))
return (
console.error(
'The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before using it here.',
propName,
typeName(value)
),
testStringCoercion(value)
)
}
function checkFormFieldValueStringCoercion(value) {
if (willCoercionThrow(value))
return (
console.error(
'Form field values (value, checked, defaultValue, or defaultChecked props) must be strings, not %s. This value must be coerced to a string before using it here.',
typeName(value)
),
testStringCoercion(value)
)
}
function injectInternals(internals) {
if ('undefined' === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) return !1
var hook = __REACT_DEVTOOLS_GLOBAL_HOOK__
if (hook.isDisabled) return !0
if (!hook.supportsFiber)
return (
console.error(
'The installed version of React DevTools is too old and will not work with the current version of React. Please update React DevTools. https://react.dev/link/react-devtools'
),
!0
)
try {
;((rendererID = hook.inject(internals)), (injectedHook = hook))
} catch (err) {
console.error('React instrumentation encountered an error: %o.', err)
}
return hook.checkDCE ? !0 : !1
}
function setIsStrictModeForDevtools(newIsStrictMode) {
'function' === typeof log$1 &&
unstable_setDisableYieldValue(newIsStrictMode)
if (injectedHook && 'function' === typeof injectedHook.setStrictMode)
try {
injectedHook.setStrictMode(rendererID, newIsStrictMode)
} catch (err) {
hasLoggedError ||
((hasLoggedError = !0),
console.error(
'React instrumentation encountered an error: %o',
err
))
}
}
function injectProfilingHooks(profilingHooks) {
injectedProfilingHooks = profilingHooks
}
function markCommitStopped() {
null !== injectedProfilingHooks &&
'function' === typeof injectedProfilingHooks.markCommitStopped &&
injectedProfilingHooks.markCommitStopped()
}
function markComponentRenderStarted(fiber) {
null !== injectedProfilingHooks &&
'function' ===
typeof injectedProfilingHooks.markComponentRenderStarted &&
injectedProfilingHooks.markComponentRenderStarted(fiber)
}
function markComponentRenderStopped() {
null !== injectedProfilingHooks &&
'function' ===
typeof injectedProfilingHooks.markComponentRenderStopped &&
injectedProfilingHooks.markComponentRenderStopped()
}
function markRenderStarted(lanes) {
null !== injectedProfilingHooks &&
'function' === typeof injectedProfilingHooks.markRenderStarted &&
injectedProfilingHooks.markRenderStarted(lanes)
}
function markRenderStopped() {
null !== injectedProfilingHooks &&
'function' === typeof injectedProfilingHooks.markRenderStopped &&
injectedProfilingHooks.markRenderStopped()
}
function markStateUpdateScheduled(fiber, lane) {
null !== injectedProfilingHooks &&
'function' === typeof injectedProfilingHooks.markStateUpdateScheduled &&
injectedProfilingHooks.markStateUpdateScheduled(fiber, lane)
}
function clz32Fallback(x) {
x >>>= 0
return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0
}
function getLabelForLane(lane) {
if (lane & 1) return 'SyncHydrationLane'
if (lane & 2) return 'Sync'
if (lane & 4) return 'InputContinuousHydration'
if (lane & 8) return 'InputContinuous'
if (lane & 16) return 'DefaultHydration'
if (lane & 32) return 'Default'
if (lane & 128) return 'TransitionHydration'
if (lane & 4194048) return 'Transition'
if (lane & 62914560) return 'Retry'
if (lane & 67108864) return 'SelectiveHydration'
if (lane & 134217728) return 'IdleHydration'
if (lane & 268435456) return 'Idle'
if (lane & 536870912) return 'Offscreen'
if (lane & 1073741824) return 'Deferred'
}
function getHighestPriorityLanes(lanes) {
var pendingSyncLanes = lanes & 42
if (0 !== pendingSyncLanes) return pendingSyncLanes
switch (lanes & -lanes) {
case 1:
return 1
case 2:
return 2
case 4:
return 4
case 8:
return 8
case 16:
return 16
case 32:
return 32
case 64:
return 64
case 128:
return 128
case 256:
case 512:
case 1024:
case 2048:
case 4096:
case 8192:
case 16384:
case 32768:
case 65536:
case 131072:
case 262144:
case 524288:
case 1048576:
case 2097152:
return lanes & 4194048
case 4194304:
case 8388608:
case 16777216:
case 33554432:
return lanes & 62914560
case 67108864:
return 67108864
case 134217728:
return 134217728
case 268435456:
return 268435456
case 536870912:
return 536870912
case 1073741824:
return 0
default:
return (
console.error(
'Should have found matching lanes. This is a bug in React.'
),
lanes
)
}
}
function getNextLanes(root, wipLanes, rootHasPendingCommit) {
var pendingLanes = root.pendingLanes
if (0 === pendingLanes) return 0
var nextLanes = 0,
suspendedLanes = root.suspendedLanes,
pingedLanes = root.pingedLanes
root = root.warmLanes
var nonIdlePendingLanes = pendingLanes & 134217727
0 !== nonIdlePendingLanes
? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),
0 !== pendingLanes
? (nextLanes = getHighestPriorityLanes(pendingLanes))
: ((pingedLanes &= nonIdlePendingLanes),
0 !== pingedLanes
? (nextLanes = getHighestPriorityLanes(pingedLanes))
: rootHasPendingCommit ||
((rootHasPendingCommit = nonIdlePendingLanes & ~root),
0 !== rootHasPendingCommit &&
(nextLanes =
getHighestPriorityLanes(rootHasPendingCommit)))))
: ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),
0 !== nonIdlePendingLanes
? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))
: 0 !== pingedLanes
? (nextLanes = getHighestPriorityLanes(pingedLanes))
: rootHasPendingCommit ||
((rootHasPendingCommit = pendingLanes & ~root),
0 !== rootHasPendingCommit &&
(nextLanes = getHighestPriorityLanes(rootHasPendingCommit))))
return 0 === nextLanes
? 0
: 0 !== wipLanes &&
wipLanes !== nextLanes &&
0 === (wipLanes & suspendedLanes) &&
((suspendedLanes = nextLanes & -nextLanes),
(rootHasPendingCommit = wipLanes & -wipLanes),
suspendedLanes >= rootHasPendingCommit ||
(32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)))
? wipLanes
: nextLanes
}
function checkIfRootIsPrerendering(root, renderLanes) {
return (
0 ===
(root.pendingLanes &
~(root.suspendedLanes & ~root.pingedLanes) &
renderLanes)
)
}
function computeExpirationTime(lane, currentTime) {
switch (lane) {
case 1:
case 2:
case 4:
case 8:
case 64:
return currentTime + 250
case 16:
case 32:
case 128:
case 256:
case 512:
case 1024:
case 2048:
case 4096:
case 8192:
case 16384:
case 32768:
case 65536:
case 131072:
case 262144:
case 524288:
case 1048576:
case 2097152:
return currentTime + 5e3
case 4194304:
case 8388608:
case 16777216:
case 33554432:
return -1
case 67108864:
case 134217728:
case 268435456:
case 536870912:
case 1073741824:
return -1
default:
return (
console.error(
'Should have found matching lanes. This is a bug in React.'
),
-1
)
}
}
function claimNextTransitionLane() {
var lane = nextTransitionLane
nextTransitionLane <<= 1
0 === (nextTransitionLane & 4194048) && (nextTransitionLane = 256)
return lane
}
function claimNextRetryLane() {
var lane = nextRetryLane
nextRetryLane <<= 1
0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304)
return lane
}
function createLaneMap(initial) {
for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial)
return laneMap
}
function markRootUpdated$1(root, updateLane) {
root.pendingLanes |= updateLane
268435456 !== updateLane &&
((root.suspendedLanes = 0),
(root.pingedLanes = 0),
(root.warmLanes = 0))
}
function markRootFinished(
root,
finishedLanes,
remainingLanes,
spawnedLane,
updatedLanes,
suspendedRetryLanes
) {
var previouslyPendingLanes = root.pendingLanes
root.pendingLanes = remainingLanes
root.suspendedLanes = 0
root.pingedLanes = 0
root.warmLanes = 0
root.expiredLanes &= remainingLanes
root.entangledLanes &= remainingLanes
root.errorRecoveryDisabledLanes &= remainingLanes
root.shellSuspendCounter = 0
var entanglements = root.entanglements,
expirationTimes = root.expirationTimes,
hiddenUpdates = root.hiddenUpdates
for (
remainingLanes = previouslyPendingLanes & ~remainingLanes;
0 < remainingLanes;
) {
var index = 31 - clz32(remainingLanes),
lane = 1 << index
entanglements[index] = 0
expirationTimes[index] = -1
var hiddenUpdatesForLane = hiddenUpdates[index]
if (null !== hiddenUpdatesForLane)
for (
hiddenUpdates[index] = null, index = 0;
index < hiddenUpdatesForLane.length;
index++
) {
var update = hiddenUpdatesForLane[index]
null !== update && (update.lane &= -536870913)
}
remainingLanes &= ~lane
}
0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0)
0 !== suspendedRetryLanes &&
0 === updatedLanes &&
0 !== root.tag &&
(root.suspendedLanes |=
suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes))
}
function markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {
root.pendingLanes |= spawnedLane
root.suspendedLanes &= ~spawnedLane
var spawnedLaneIndex = 31 - clz32(spawnedLane)
root.entangledLanes |= spawnedLane
root.entanglements[spawnedLaneIndex] =
root.entanglements[spawnedLaneIndex] |
1073741824 |
(entangledLanes & 4194090)
}
function markRootEntangled(root, entangledLanes) {
var rootEntangledLanes = (root.entangledLanes |= entangledLanes)
for (root = root.entanglements; rootEntangledLanes; ) {
var index = 31 - clz32(rootEntangledLanes),
lane = 1 << index
;(lane & entangledLanes) | (root[index] & entangledLanes) &&
(root[index] |= entangledLanes)
rootEntangledLanes &= ~lane
}
}
function getBumpedLaneForHydration(root, renderLanes) {
var renderLane = renderLanes & -renderLanes
renderLane =
0 !== (renderLane & 42)
? 1
: getBumpedLaneForHydrationByLane(renderLane)
return 0 !== (renderLane & (root.suspendedLanes | renderLanes))
? 0
: renderLane
}
function getBumpedLaneForHydrationByLane(lane) {
switch (lane) {
case 2:
lane = 1
break
case 8:
lane = 4
break
case 32:
lane = 16
break
case 256:
case 512:
case 1024:
case 2048:
case 4096:
case 8192:
case 16384:
case 32768:
case 65536:
case 131072:
case 262144:
case 524288:
case 1048576:
case 2097152:
case 4194304:
case 8388608:
case 16777216:
case 33554432:
lane = 128
break
case 268435456:
lane = 134217728
break
default:
lane = 0
}
return lane
}
function addFiberToLanesMap(root, fiber, lanes) {
if (isDevToolsPresent)
for (root = root.pendingUpdatersLaneMap; 0 < lanes; ) {
var index = 31 - clz32(lanes),
lane = 1 << index
root[index].add(fiber)
lanes &= ~lane
}
}
function movePendingFibersToMemoized(root, lanes) {
if (isDevToolsPresent)
for (
var pendingUpdatersLaneMap = root.pendingUpdatersLaneMap,
memoizedUpdaters = root.memoizedUpdaters;
0 < lanes;
) {
var index = 31 - clz32(lanes)
root = 1 << index
index = pendingUpdatersLaneMap[index]
0 < index.size &&
(index.forEach(function (fiber) {
var alternate = fiber.alternate
;(null !== alternate && memoizedUpdaters.has(alternate)) ||
memoizedUpdaters.add(fiber)
}),
index.clear())
lanes &= ~root
}
}
function lanesToEventPriority(lanes) {
lanes &= -lanes
return 0 !== DiscreteEventPriority && DiscreteEventPriority < lanes
? 0 !== ContinuousEventPriority && ContinuousEventPriority < lanes
? 0 !== (lanes & 134217727)
? DefaultEventPriority
: IdleEventPriority
: ContinuousEventPriority
: DiscreteEventPriority
}
function resolveUpdatePriority() {
var updatePriority = ReactDOMSharedInternals.p
if (0 !== updatePriority) return updatePriority
updatePriority = window.event
return void 0 === updatePriority
? DefaultEventPriority
: getEventPriority(updatePriority.type)
}
function runWithPriority(priority, fn) {
var previousPriority = ReactDOMSharedInternals.p
try {
return ((ReactDOMSharedInternals.p = priority), fn())
} finally {
ReactDOMSharedInternals.p = previousPriority
}
}
function detachDeletedInstance(node) {
delete node[internalInstanceKey]
delete node[internalPropsKey]
delete node[internalEventHandlersKey]
delete node[internalEventHandlerListenersKey]
delete node[internalEventHandlesSetKey]
}
function getClosestInstanceFromNode(targetNode) {
var targetInst = targetNode[internalInstanceKey]
if (targetInst) return targetInst
for (var parentNode = targetNode.parentNode; parentNode; ) {
if (
(targetInst =
parentNode[internalContainerInstanceKey] ||
parentNode[internalInstanceKey])
) {
parentNode = targetInst.alternate
if (
null !== targetInst.child ||
(null !== parentNode && null !== parentNode.child)
)
for (
targetNode = getParentHydrationBoundary(targetNode);
null !== targetNode;
) {
if ((parentNode = targetNode[internalInstanceKey]))
return parentNode
targetNode = getParentHydrationBoundary(targetNode)
}
return targetInst
}
targetNode = parentNode
parentNode = targetNode.parentNode
}
return null
}
function getInstanceFromNode(node) {
if (
(node = node[internalInstanceKey] || node[internalContainerInstanceKey])
) {
var tag = node.tag
if (
5 === tag ||
6 === tag ||
13 === tag ||
31 === tag ||
26 === tag ||
27 === tag ||
3 === tag
)
return node
}
return null
}
function getNodeFromInstance(inst) {
var tag = inst.tag
if (5 === tag || 26 === tag || 27 === tag || 6 === tag)
return inst.stateNode
throw Error('getNodeFromInstance: Invalid argument.')
}
function getResourcesFromRoot(root) {
var resources = root[internalRootNodeResourcesKey]
resources ||
(resources = root[internalRootNodeResourcesKey] =
{ hoistableStyles: new Map(), hoistableScripts: new Map() })
return resources
}
function markNodeAsHoistable(node) {
node[internalHoistableMarker] = !0
}
function registerTwoPhaseEvent(registrationName, dependencies) {
registerDirectEvent(registrationName, dependencies)
registerDirectEvent(registrationName + 'Capture', dependencies)
}
function registerDirectEvent(registrationName, dependencies) {
registrationNameDependencies[registrationName] &&
console.error(
'EventRegistry: More than one plugin attempted to publish the same registration name, `%s`.',
registrationName
)
registrationNameDependencies[registrationName] = dependencies
var lowerCasedName = registrationName.toLowerCase()
possibleRegistrationNames[lowerCasedName] = registrationName
'onDoubleClick' === registrationName &&
(possibleRegistrationNames.ondblclick = registrationName)
for (
registrationName = 0;
registrationName < dependencies.length;
registrationName++
)
allNativeEvents.add(dependencies[registrationName])
}
function checkControlledValueProps(tagName, props) {
hasReadOnlyValue[props.type] ||
props.onChange ||
props.onInput ||
props.readOnly ||
props.disabled ||
null == props.value ||
('select' === tagName
? console.error(
'You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set `onChange`.'
)
: console.error(
'You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.'
))
props.onChange ||
props.readOnly ||
props.disabled ||
null == props.checked ||
console.error(
'You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.'
)
}
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
console.error('Invalid attribute name: `%s`', attributeName)
return !1
}
function getValueForAttributeOnCustomComponent(node, name, expected) {
if (isAttributeNameSafe(name)) {
if (!node.hasAttribute(name)) {
switch (typeof expected) {
case 'symbol':
case 'object':
return expected
case 'function':
return expected
case 'boolean':
if (!1 === expected) return expected
}
return void 0 === expected ? void 0 : null
}
node = node.getAttribute(name)
if ('' === node && !0 === expected) return !0
checkAttributeStringCoercion(expected, name)
return node === '' + expected ? expected : node
}
}
function setValueForAttribute(node, name, value) {
if (isAttributeNameSafe(name))
if (null === value) node.removeAttribute(name)
else {
switch (typeof value) {
case 'undefined':
case 'function':
case 'symbol':
node.removeAttribute(name)
return
case 'boolean':
var prefix = name.toLowerCase().slice(0, 5)
if ('data-' !== prefix && 'aria-' !== prefix) {
node.removeAttribute(name)
return
}
}
checkAttributeStringCoercion(value, name)
node.setAttribute(name, '' + value)
}
}
function setValueForKnownAttribute(node, name, value) {
if (null === value) node.removeAttribute(name)
else {
switch (typeof value) {
case 'undefined':
case 'function':
case 'symbol':
case 'boolean':
node.removeAttribute(name)
return
}
checkAttributeStringCoercion(value, name)
node.setAttribute(name, '' + value)
}
}
function setValueForNamespacedAttribute(node, namespace, name, value) {
if (null === value) node.removeAttribute(name)
else {
switch (typeof value) {
case 'undefined':
case 'function':
case 'symbol':
case 'boolean':
node.removeAttribute(name)
return
}
checkAttributeStringCoercion(value, name)
node.setAttributeNS(namespace, name, '' + value)
}
}
function getToStringValue(value) {
switch (typeof value) {
case 'bigint':
case 'boolean':
case 'number':
case 'string':
case 'undefined':
return value
case 'object':
return (checkFormFieldValueStringCoercion(value), value)
default:
return ''
}
}
function isCheckable(elem) {
var type = elem.type
return (
(elem = elem.nodeName) &&
'input' === elem.toLowerCase() &&
('checkbox' === type || 'radio' === type)
)
}
function trackValueOnNode(node, valueField, currentValue) {
var descriptor = Object.getOwnPropertyDescriptor(
node.constructor.prototype,
valueField
)
if (
!node.hasOwnProperty(valueField) &&
'undefined' !== typeof descriptor &&
'function' === typeof descriptor.get &&
'function' === typeof descriptor.set
) {
var get = descriptor.get,
set = descriptor.set
Object.defineProperty(node, valueField, {
configurable: !0,
get: function () {
return get.call(this)
},
set: function (value) {
checkFormFieldValueStringCoercion(value)
currentValue = '' + value
set.call(this, value)
},
})
Object.defineProperty(node, valueField, {
enumerable: descriptor.enumerable,
})
return {
getValue: function () {
return currentValue
},
setValue: function (value) {
checkFormFieldValueStringCoercion(value)
currentValue = '' + value
},
stopTracking: function () {
node._valueTracker = null
delete node[valueField]
},
}
}
}
function track(node) {
if (!node._valueTracker) {
var valueField = isCheckable(node) ? 'checked' : 'value'
node._valueTracker = trackValueOnNode(
node,
valueField,
'' + node[valueField]
)
}
}
function updateValueIfChanged(node) {
if (!node) return !1
var tracker = node._valueTracker
if (!tracker) return !0
var lastValue = tracker.getValue()
var value = ''
node &&
(value = isCheckable(node)
? node.checked
? 'true'
: 'false'
: node.value)
node = value
return node !== lastValue ? (tracker.setValue(node), !0) : !1
}
function getActiveElement(doc) {
doc = doc || ('undefined' !== typeof document ? document : void 0)
if ('undefined' === typeof doc) return null
try {
return doc.activeElement || doc.body
} catch (e) {
return doc.body
}
}
function escapeSelectorAttributeValueInsideDoubleQuotes(value) {
return value.replace(
escapeSelectorAttributeValueInsideDoubleQuotesRegex,
function (ch) {
return '\\' + ch.charCodeAt(0).toString(16) + ' '
}
)
}
function validateInputProps(element, props) {
void 0 === props.checked ||
void 0 === props.defaultChecked ||
didWarnCheckedDefaultChecked ||
(console.error(
'%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components',
getCurrentFiberOwnerNameInDevOrNull() || 'A component',
props.type
),
(didWarnCheckedDefaultChecked = !0))
void 0 === props.value ||
void 0 === props.defaultValue ||
didWarnValueDefaultValue$1 ||
(console.error(
'%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components',
getCurrentFiberOwnerNameInDevOrNull() || 'A component',
props.type
),
(didWarnValueDefaultValue$1 = !0))
}
function updateInput(
element,
value,
defaultValue,
lastDefaultValue,
checked,
defaultChecked,
type,
name
) {
element.name = ''
null != type &&
'function' !== typeof type &&
'symbol' !== typeof type &&
'boolean' !== typeof type
? (checkAttributeStringCoercion(type, 'type'), (element.type = type))
: element.removeAttribute('type')
if (null != value)
if ('number' === type) {
if ((0 === value && '' === element.value) || element.value != value)
element.value = '' + getToStringValue(value)
} else
element.value !== '' + getToStringValue(value) &&
(element.value = '' + getToStringValue(value))
else
('submit' !== type && 'reset' !== type) ||
element.removeAttribute('value')
null != value
? setDefaultValue(element, type, getToStringValue(value))
: null != defaultValue
? setDefaultValue(element, type, getToStringValue(defaultValue))
: null != lastDefaultValue && element.removeAttribute('value')
null == checked &&
null != defaultChecked &&
(element.defaultChecked = !!defaultChecked)
null != checked &&
(element.checked =
checked &&
'function' !== typeof checked &&
'symbol' !== typeof checked)
null != name &&
'function' !== typeof name &&
'symbol' !== typeof name &&
'boolean' !== typeof name
? (checkAttributeStringCoercion(name, 'name'),
(element.name = '' + getToStringValue(name)))
: element.removeAttribute('name')
}
function initInput(
element,
value,
defaultValue,
checked,
defaultChecked,
type,
name,
isHydrating
) {
null != type &&
'function' !== typeof type &&
'symbol' !== typeof type &&
'boolean' !== typeof type &&
(checkAttributeStringCoercion(type, 'type'), (element.type = type))
if (null != value || null != defaultValue) {
if (
!(
('submit' !== type && 'reset' !== type) ||
(void 0 !== value && null !== value)
)
) {
track(element)
return
}
defaultValue =
null != defaultValue ? '' + getToStringValue(defaultValue) : ''
value = null != value ? '' + getToStringValue(value) : defaultValue
isHydrating || value === element.value || (element.value = value)
element.defaultValue = value
}
checked = null != checked ? checked : defaultChecked
checked =
'function' !== typeof checked &&
'symbol' !== typeof checked &&
!!checked
element.checked = isHydrating ? element.checked : !!checked
element.defaultChecked = !!checked
null != name &&
'function' !== typeof name &&
'symbol' !== typeof name &&
'boolean' !== typeof name &&
(checkAttributeStringCoercion(name, 'name'), (element.name = name))
track(element)
}
function setDefaultValue(node, type, value) {
;('number' === type && getActiveElement(node.ownerDocument) === node) ||
node.defaultValue === '' + value ||
(node.defaultValue = '' + value)
}
function validateOptionProps(element, props) {
null == props.value &&
('object' === typeof props.children && null !== props.children
? React.Children.forEach(props.children, function (child) {
null == child ||
'string' === typeof child ||
'number' === typeof child ||
'bigint' === typeof child ||
didWarnInvalidChild ||
((didWarnInvalidChild = !0),
console.error(
'Cannot infer the option value of complex children. Pass a `value` prop or use a plain string as children to <option>.'
))
})
: null == props.dangerouslySetInnerHTML ||
didWarnInvalidInnerHTML ||
((didWarnInvalidInnerHTML = !0),
console.error(
'Pass a `value` prop if you set dangerouslyInnerHTML so React knows which value should be selected.'
)))
null == props.selected ||
didWarnSelectedSetOnOption ||
(console.error(
'Use the `defaultValue` or `value` props on <select> instead of setting `selected` on <option>.'
),
(didWarnSelectedSetOnOption = !0))
}
function getDeclarationErrorAddendum() {
var ownerName = getCurrentFiberOwnerNameInDevOrNull()
return ownerName
? '\n\nCheck the render method of `' + ownerName + '`.'
: ''
}
function updateOptions(node, multiple, propValue, setDefaultSelected) {
node = node.options
if (multiple) {
multiple = {}
for (var i = 0; i < propValue.length; i++)
multiple['$' + propValue[i]] = !0
for (propValue = 0; propValue < node.length; propValue++)
((i = multiple.hasOwnProperty('$' + node[propValue].value)),
node[propValue].selected !== i && (node[propValue].selected = i),
i && setDefaultSelected && (node[propValue].defaultSelected = !0))
} else {
propValue = '' + getToStringValue(propValue)
multiple = null
for (i = 0; i < node.length; i++) {
if (node[i].value === propValue) {
node[i].selected = !0
setDefaultSelected && (node[i].defaultSelected = !0)
return
}
null !== multiple || node[i].disabled || (multiple = node[i])
}
null !== multiple && (multiple.selected = !0)
}
}
function validateSelectProps(element, props) {
for (element = 0; element < valuePropNames.length; element++) {
var propName = valuePropNames[element]
if (null != props[propName]) {
var propNameIsArray = isArrayImpl(props[propName])
props.multiple && !propNameIsArray
? console.error(
'The `%s` prop supplied to <select> must be an array if `multiple` is true.%s',
propName,
getDeclarationErrorAddendum()
)
: !props.multiple &&
propNameIsArray &&
console.error(
'The `%s` prop supplied to <select> must be a scalar value if `multiple` is false.%s',
propName,
getDeclarationErrorAddendum()
)
}
}
void 0 === props.value ||
void 0 === props.defaultValue ||
didWarnValueDefaultValue ||
(console.error(
'Select elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled select element and remove one of these props. More info: https://react.dev/link/controlled-components'
),
(didWarnValueDefaultValue = !0))
}
function validateTextareaProps(element, props) {
void 0 === props.value ||
void 0 === props.defaultValue ||
didWarnValDefaultVal ||
(console.error(
'%s contains a textarea with both value and defaultValue props. Textarea elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled textarea and remove one of these props. More info: https://react.dev/link/controlled-components',
getCurrentFiberOwnerNameInDevOrNull() || 'A component'
),
(didWarnValDefaultVal = !0))
null != props.children &&
null == props.value &&
console.error(
'Use the `defaultValue` or `value` props instead of setting children on <textarea>.'
)
}
function updateTextarea(element, value, defaultValue) {
if (
null != value &&
((value = '' + getToStringValue(value)),
value !== element.value && (element.value = value),
null == defaultValue)
) {
element.defaultValue !== value && (element.defaultValue = value)
return
}
element.defaultValue =
null != defaultValue ? '' + getToStringValue(defaultValue) : ''
}
function initTextarea(element, value, defaultValue, children) {
if (null == value) {
if (null != children) {
if (null != defaultValue)
throw Error(
'If you supply `defaultValue` on a <textarea>, do not pass children.'
)
if (isArrayImpl(children)) {
if (1 < children.length)
throw Error('<textarea> can only have at most one child.')
children = children[0]
}
defaultValue = children
}
null == defaultValue && (defaultValue = '')
value = defaultValue
}
defaultValue = getToStringValue(value)
element.defaultValue = defaultValue
children = element.textContent
children === defaultValue &&
'' !== children &&
null !== children &&
(element.value = children)
track(element)
}
function findNotableNode(node, indent) {
return void 0 === node.serverProps &&
0 === node.serverTail.length &&
1 === node.children.length &&
3 < node.distanceFromLeaf &&
node.distanceFromLeaf > 15 - indent
? findNotableNode(node.children[0], indent)
: node
}
function indentation(indent) {
return ' ' + ' '.repeat(indent)
}
function added(indent) {
return '+ ' + ' '.repeat(indent)
}
function removed(indent) {
return '- ' + ' '.repeat(indent)
}
function describeFiberType(fiber) {
switch (fiber.tag) {
case 26:
case 27:
case 5:
return fiber.type
case 16:
return 'Lazy'
case 31:
return 'Activity'
case 13:
return 'Suspense'
case 19:
return 'SuspenseList'
case 0:
case 15:
return ((fiber = fiber.type), fiber.displayName || fiber.name || null)
case 11:
return (
(fiber = fiber.type.render),
fiber.displayName || fiber.name || null
)
case 1:
return ((fiber = fiber.type), fiber.displayName || fiber.name || null)
default:
return null
}
}
function describeTextNode(content, maxLength) {
return needsEscaping.test(content)
? ((content = JSON.stringify(content)),
content.length > maxLength - 2
? 8 > maxLength
? '{"..."}'
: '{' + content.slice(0, maxLength - 7) + '..."}'
: '{' + content + '}')
: content.length > maxLength
? 5 > maxLength
? '{"..."}'
: content.slice(0, maxLength - 3) + '...'
: content
}
function describeTextDiff(clientText, serverProps, indent) {
var maxLength = 120 - 2 * indent
if (null === serverProps)
return added(indent) + describeTextNode(clientText, maxLength) + '\n'
if ('string' === typeof serverProps) {
for (
var firstDiff = 0;
firstDiff < serverProps.length &&
firstDiff < clientText.length &&
serverProps.charCodeAt(firstDiff) ===
clientText.charCodeAt(firstDiff);
firstDiff++
);
firstDiff > maxLength - 8 &&
10 < firstDiff &&
((clientText = '...' + clientText.slice(firstDiff - 8)),
(serverProps = '...' + serverProps.slice(firstDiff - 8)))
return (
added(indent) +
describeTextNode(clientText, maxLength) +
'\n' +
removed(indent) +
describeTextNode(serverProps, maxLength) +
'\n'
)
}
return (
indentation(indent) + describeTextNode(clientText, maxLength) + '\n'
)
}
function objectName(object) {
return Object.prototype.toString
.call(object)
.replace(/^\[object (.*)\]$/, function (m, p0) {
return p0
})
}
function describeValue(value, maxLength) {
switch (typeof value) {
case 'string':
return (
(value = JSON.stringify(value)),
value.length > maxLength
? 5 > maxLength
? '"..."'
: value.slice(0, maxLength - 4) + '..."'
: value
)
case 'object':
if (null === value) return 'null'
if (isArrayImpl(value)) return '[...]'
if (value.$$typeof === REACT_ELEMENT_TYPE)
return (maxLength = getComponentNameFromType(value.type))
? '<' + maxLength + '>'
: '<...>'
var name = objectName(value)
if ('Object' === name) {
name = ''
maxLength -= 2
for (var propName in value)
if (value.hasOwnProperty(propName)) {
var jsonPropName = JSON.stringify(propName)
jsonPropName !== '"' + propName + '"' &&
(propName = jsonPropName)
maxLength -= propName.length - 2
jsonPropName = describeValue(
value[propName],
15 > maxLength ? maxLength : 15
)
maxLength -= jsonPropName.length
if (0 > maxLength) {
name += '' === name ? '...' : ', ...'
break
}
name += ('' === name ? '' : ',') + propName + ':' + jsonPropName
}
return '{' + name + '}'
}
return name
case 'function':
return (maxLength = value.displayName || value.name)
? 'function ' + maxLength
: 'function'
default:
return String(value)
}
}
function describePropValue(value, maxLength) {
return 'string' !== typeof value || needsEscaping.test(value)
? '{' + describeValue(value, maxLength - 2) + '}'
: value.length > maxLength - 2
? 5 > maxLength
? '"..."'
: '"' + value.slice(0, maxLength - 5) + '..."'
: '"' + value + '"'
}
function describeExpandedElement(type, props, rowPrefix) {
var remainingRowLength = 120 - rowPrefix.length - type.length,
properties = [],
propName
for (propName in props)
if (props.hasOwnProperty(propName) && 'children' !== propName) {
var propValue = describePropValue(
props[propName],
120 - rowPrefix.length - propName.length - 1
)
remainingRowLength -= propName.length + propValue.length + 2
properties.push(propName + '=' + propValue)
}
return 0 === properties.length
? rowPrefix + '<' + type + '>\n'
: 0 < remainingRowLength
? rowPrefix + '<' + type + ' ' + properties.join(' ') + '>\n'
: rowPrefix +
'<' +
type +
'\n' +
rowPrefix +
' ' +
properties.join('\n' + rowPrefix + ' ') +
'\n' +
rowPrefix +
'>\n'
}
function describePropertiesDiff(clientObject, serverObject, indent) {
var properties = '',
remainingServerProperties = assign({}, serverObject),
propName
for (propName in clientObject)
if (clientObject.hasOwnProperty(propName)) {
delete remainingServerProperties[propName]
var maxLength = 120 - 2 * indent - propName.length - 2,
clientPropValue = describeValue(clientObject[propName], maxLength)
serverObject.hasOwnProperty(propName)
? ((maxLength = describeValue(serverObject[propName], maxLength)),
(properties +=
added(indent) + propName + ': ' + clientPropValue + '\n'),
(properties +=
removed(indent) + propName + ': ' + maxLength + '\n'))
: (properties +=
added(indent) + propName + ': ' + clientPropValue + '\n')
}
for (var _propName in remainingServerProperties)
remainingServerProperties.hasOwnProperty(_propName) &&
((clientObject = describeValue(
remainingServerProperties[_propName],
120 - 2 * indent - _propName.length - 2
)),
(properties +=
removed(indent) + _propName + ': ' + clientObject + '\n'))
return properties
}
function describeElementDiff(type, clientProps, serverProps, indent) {
var content = '',
serverPropNames = new Map()
for (propName$jscomp$0 in serverProps)
serverProps.hasOwnProperty(propName$jscomp$0) &&
serverPropNames.set(
propName$jscomp$0.toLowerCase(),
propName$jscomp$0
)
if (1 === serverPropNames.size && serverPropNames.has('children'))
content += describeExpandedElement(
type,
clientProps,
indentation(indent)
)
else {
for (var _propName2 in clientProps)
if (
clientProps.hasOwnProperty(_propName2) &&
'children' !== _propName2
) {
var maxLength$jscomp$0 =
120 - 2 * (indent + 1) - _propName2.length - 1,
serverPropName = serverPropNames.get(_propName2.toLowerCase())
if (void 0 !== serverPropName) {
serverPropNames.delete(_propName2.toLowerCase())
var propName$jscomp$0 = clientProps[_propName2]
serverPropName = serverProps[serverPropName]
var clientPropValue = describePropValue(
propName$jscomp$0,
maxLength$jscomp$0
)
maxLength$jscomp$0 = describePropValue(
serverPropName,
maxLength$jscomp$0
)
'object' === typeof propName$jscomp$0 &&
null !== propName$jscomp$0 &&
'object' === typeof serverPropName &&
null !== serverPropName &&
'Object' === objectName(propName$jscomp$0) &&
'Object' === objectName(serverPropName) &&
(2 < Object.keys(propName$jscomp$0).length ||
2 < Object.keys(serverPropName).length ||
-1 < clientPropValue.indexOf('...') ||
-1 < maxLength$jscomp$0.indexOf('...'))
? (content +=
indentation(indent + 1) +
_propName2 +
'={{\n' +
describePropertiesDiff(
propName$jscomp$0,
serverPropName,
indent + 2
) +
indentation(indent + 1) +
'}}\n')
: ((content +=
added(indent + 1) +
_propName2 +
'=' +
clientPropValue +
'\n'),
(content +=
removed(indent + 1) +
_propName2 +
'=' +
maxLength$jscomp$0 +
'\n'))
} else
content +=
indentation(indent + 1) +
_propName2 +
'=' +
describePropValue(clientProps[_propName2], maxLength$jscomp$0) +
'\n'
}
serverPropNames.forEach(function (propName) {
if ('children' !== propName) {
var maxLength = 120 - 2 * (indent + 1) - propName.length - 1
content +=
removed(indent + 1) +
propName +
'=' +
describePropValue(serverProps[propName], maxLength) +
'\n'
}
})
content =
'' === content
? indentation(indent) + '<' + type + '>\n'
: indentation(indent) +
'<' +
type +
'\n' +
content +
indentation(indent) +
'>\n'
}
type = serverProps.children
clientProps = clientProps.children
if (
'string' === typeof type ||
'number' === typeof type ||
'bigint' === typeof type
) {
serverPropNames = ''
if (
'string' === typeof clientProps ||
'number' === typeof clientProps ||
'bigint' === typeof clientProps
)
serverPropNames = '' + clientProps
content += describeTextDiff(serverPropNames, '' + type, indent + 1)
} else if (
'string' === typeof clientProps ||
'number' === typeof clientProps ||
'bigint' === typeof clientProps
)
content =
null == type
? content + describeTextDiff('' + clientProps, null, indent + 1)
: content + describeTextDiff('' + clientProps, void 0, indent + 1)
return content
}
function describeSiblingFiber(fiber, indent) {
var type = describeFiberType(fiber)
if (null === type) {
type = ''
for (fiber = fiber.child; fiber; )
((type += describeSiblingFiber(fiber, indent)),
(fiber = fiber.sibling))
return type
}
return indentation(indent) + '<' + type + '>\n'
}
function describeNode(node, indent) {
var skipToNode = findNotableNode(node, indent)
if (
skipToNode !== node &&
(1 !== node.children.length || node.children[0] !== skipToNode)
)
return (
indentation(indent) + '...\n' + describeNode(skipToNode, indent + 1)
)
skipToNode = ''
var debugInfo = node.fiber._debugInfo
if (debugInfo)
for (var i = 0; i < debugInfo.length; i++) {
var serverComponentName = debugInfo[i].name
'string' === typeof serverComponentName &&
((skipToNode +=
indentation(indent) + '<' + serverComponentName + '>\n'),
indent++)
}
debugInfo = ''
i = node.fiber.pendingProps
if (6 === node.fiber.tag)
((debugInfo = describeTextDiff(i, node.serverProps, indent)), indent++)
else if (
((serverComponentName = describeFiberType(node.fiber)),
null !== serverComponentName)
)
if (void 0 === node.serverProps) {
debugInfo = indent
var maxLength = 120 - 2 * debugInfo - serverComponentName.length - 2,
content = ''
for (propName in i)
if (i.hasOwnProperty(propName) && 'children' !== propName) {
var propValue = describePropValue(i[propName], 15)
maxLength -= propName.length + propValue.length + 2
if (0 > maxLength) {
content += ' ...'
break
}
content += ' ' + propName + '=' + propValue
}
debugInfo =
indentation(debugInfo) + '<' + serverComponentName + content + '>\n'
indent++
} else
null === node.serverProps
? ((debugInfo = describeExpandedElement(
serverComponentName,
i,
added(indent)
)),
indent++)
: 'string' === typeof node.serverProps
? console.error(
'Should not have matched a non HostText fiber to a Text node. This is a bug in React.'
)
: ((debugInfo = describeElementDiff(
serverComponentName,
i,
node.serverProps,
indent
)),
indent++)
var propName = ''
i = node.fiber.child
for (
serverComponentName = 0;
i && serverComponentName < node.children.length;
)
((maxLength = node.children[serverComponentName]),
maxLength.fiber === i
? ((propName += describeNode(maxLength, indent)),
serverComponentName++)
: (propName += describeSiblingFiber(i, indent)),
(i = i.sibling))
i &&
0 < node.children.length &&
(propName += indentation(indent) + '...\n')
i = node.serverTail
null === node.serverProps && indent--
for (node = 0; node < i.length; node++)
((serverComponentName = i[node]),
(propName =
'string' === typeof serverComponentName
? propName +
(removed(indent) +
describeTextNode(serverComponentName, 120 - 2 * indent) +
'\n')
: propName +
describeExpandedElement(
serverComponentName.type,
serverComponentName.props,
removed(indent)
)))
return skipToNode + debugInfo + propName
}
function describeDiff(rootNode) {
try {
return '\n\n' + describeNode(rootNode, 0)
} catch (x) {
return ''
}
}
function describeAncestors(ancestor, child, props) {
for (var fiber = child, node = null, distanceFromLeaf = 0; fiber; )
(fiber === ancestor && (distanceFromLeaf = 0),
(node = {
fiber: fiber,
children: null !== node ? [node] : [],
serverProps:
fiber === child ? props : fiber === ancestor ? null : void 0,
serverTail: [],
distanceFromLeaf: distanceFromLeaf,
}),
distanceFromLeaf++,
(fiber = fiber.return))
return null !== node ? describeDiff(node).replaceAll(/^[+-]/gm, '>') : ''
}
function updatedAncestorInfoDev(oldInfo, tag) {
var ancestorInfo = assign({}, oldInfo || emptyAncestorInfoDev),
info = { tag: tag }
;-1 !== inScopeTags.indexOf(tag) &&
((ancestorInfo.aTagInScope = null),
(ancestorInfo.buttonTagInScope = null),
(ancestorInfo.nobrTagInScope = null))
;-1 !== buttonScopeTags.indexOf(tag) &&
(ancestorInfo.pTagInButtonScope = null)
;-1 !== specialTags.indexOf(tag) &&
'address' !== tag &&
'div' !== tag &&
'p' !== tag &&
((ancestorInfo.listItemTagAutoclosing = null),
(ancestorInfo.dlItemTagAutoclosing = null))
ancestorInfo.current = info
'form' === tag && (ancestorInfo.formTag = info)
'a' === tag && (ancestorInfo.aTagInScope = info)
'button' === tag && (ancestorInfo.buttonTagInScope = info)
'nobr' === tag && (ancestorInfo.nobrTagInScope = info)
'p' === tag && (ancestorInfo.pTagInButtonScope = info)
'li' === tag && (ancestorInfo.listItemTagAutoclosing = info)
if ('dd' === tag || 'dt' === tag) ancestorInfo.dlItemTagAutoclosing = info
'#document' === tag || 'html' === tag
? (ancestorInfo.containerTagInScope = null)
: ancestorInfo.containerTagInScope ||
(ancestorInfo.containerTagInScope = info)
null !== oldInfo ||
('#document' !== tag && 'html' !== tag && 'body' !== tag)
? !0 === ancestorInfo.implicitRootScope &&
(ancestorInfo.implicitRootScope = !1)
: (ancestorInfo.implicitRootScope = !0)
return ancestorInfo
}
function isTagValidWithParent(tag, parentTag, implicitRootScope) {
switch (parentTag) {
case 'select':
return (
'hr' === tag ||
'option' === tag ||
'optgroup' === tag ||
'script' === tag ||
'template' === tag ||
'#text' === tag
)
case 'optgroup':
return 'option' === tag || '#text' === tag
case 'option':
return '#text' === tag
case 'tr':
return (
'th' === tag ||
'td' === tag ||
'style' === tag ||
'script' === tag ||
'template' === tag
)
case 'tbody':
case 'thead':
case 'tfoot':
return (
'tr' === tag ||
'style' === tag ||
'script' === tag ||
'template' === tag
)
case 'colgroup':
return 'col' === tag || 'template' === tag
case 'table':
return (
'caption' === tag ||
'colgroup' === tag ||
'tbody' === tag ||
'tfoot' === tag ||
'thead' === tag ||
'style' === tag ||
'script' === tag ||
'template' === tag
)
case 'head':
return (
'base' === tag ||
'basefont' === tag ||
'bgsound' === tag ||
'link' === tag ||
'meta' === tag ||
'title' === tag ||
'noscript' === tag ||
'noframes' === tag ||
'style' === tag ||
'script' === tag ||
'template' === tag
)
case 'html':
if (implicitRootScope) break
return 'head' === tag || 'body' === tag || 'frameset' === tag
case 'frameset':
return 'frame' === tag
case '#document':
if (!implicitRootScope) return 'html' === tag
}
switch (tag) {
case 'h1':
case 'h2':
case 'h3':
case 'h4':
case 'h5':
case 'h6':
return (
'h1' !== parentTag &&
'h2' !== parentTag &&
'h3' !== parentTag &&
'h4' !== parentTag &&
'h5' !== parentTag &&
'h6' !== parentTag
)
case 'rp':
case 'rt':
return -1 === impliedEndTags.indexOf(parentTag)
case 'caption':
case 'col':
case 'colgroup':
case 'frameset':
case 'frame':
case 'tbody':
case 'td':
case 'tfoot':
case 'th':
case 'thead':
case 'tr':
return null == parentTag
case 'head':
return implicitRootScope || null === parentTag
case 'html':
return (
(implicitRootScope && '#document' === parentTag) ||
null === parentTag
)
case 'body':
return (
(implicitRootScope &&
('#document' === parentTag || 'html' === parentTag)) ||
null === parentTag
)
}
return !0
}
function findInvalidAncestorForTag(tag, ancestorInfo) {
switch (tag) {
case 'address':
case 'article':
case 'aside':
case 'blockquote':
case 'center':
case 'details':
case 'dialog':
case 'dir':
case 'div':
case 'dl':
case 'fieldset':
case 'figcaption':
case 'figure':
case 'footer':
case 'header':
case 'hgroup':
case 'main':
case 'menu':
case 'nav':
case 'ol':
case 'p':
case 'section':
case 'summary':
case 'ul':
case 'pre':
case 'listing':
case 'table':
case 'hr':
case 'xmp':
case 'h1':
case 'h2':
case 'h3':
case 'h4':
case 'h5':
case 'h6':
return ancestorInfo.pTagInButtonScope
case 'form':
return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope
case 'li':
return ancestorInfo.listItemTagAutoclosing
case 'dd':
case 'dt':
return ancestorInfo.dlItemTagAutoclosing
case 'button':
return ancestorInfo.buttonTagInScope
case 'a':
return ancestorInfo.aTagInScope
case 'nobr':
return ancestorInfo.nobrTagInScope
}
return null
}
function findAncestor(parent, tagName) {
for (; parent; ) {
switch (parent.tag) {
case 5:
case 26:
case 27:
if (parent.type === tagName) return parent
}
parent = parent.return
}
return null
}
function validateDOMNesting(childTag, ancestorInfo) {
ancestorInfo = ancestorInfo || emptyAncestorInfoDev
var parentInfo = ancestorInfo.current
ancestorInfo = (parentInfo = isTagValidWithParent(
childTag,
parentInfo && parentInfo.tag,
ancestorInfo.implicitRootScope
)
? null
: parentInfo)
? null
: findInvalidAncestorForTag(childTag, ancestorInfo)
ancestorInfo = parentInfo || ancestorInfo
if (!ancestorInfo) return !0
var ancestorTag = ancestorInfo.tag
ancestorInfo = String(!!parentInfo) + '|' + childTag + '|' + ancestorTag
if (didWarn[ancestorInfo]) return !1
didWarn[ancestorInfo] = !0
var ancestor = (ancestorInfo = current)
? findAncestor(ancestorInfo.return, ancestorTag)
: null,
ancestorDescription =
null !== ancestorInfo && null !== ancestor
? describeAncestors(ancestor, ancestorInfo, null)
: '',
tagDisplayName = '<' + childTag + '>'
parentInfo
? ((parentInfo = ''),
'table' === ancestorTag &&
'tr' === childTag &&
(parentInfo +=
' Add a <tbody>, <thead> or <tfoot> to your code to match the DOM tree generated by the browser.'),
console.error(
'In HTML, %s cannot be a child of <%s>.%s\nThis will cause a hydration error.%s',
tagDisplayName,
ancestorTag,
parentInfo,
ancestorDescription
))
: console.error(
'In HTML, %s cannot be a descendant of <%s>.\nThis will cause a hydration error.%s',
tagDisplayName,
ancestorTag,
ancestorDescription
)
ancestorInfo &&
((childTag = ancestorInfo.return),
null === ancestor ||
null === childTag ||
(ancestor === childTag &&
childTag._debugOwner === ancestorInfo._debugOwner) ||
runWithFiberInDEV(ancestor, function () {
console.error(
'<%s> cannot contain a nested %s.\nSee this log for the ancestor stack trace.',
ancestorTag,
tagDisplayName
)
}))
return !1
}
function validateTextNesting(childText, parentTag, implicitRootScope) {
if (implicitRootScope || isTagValidWithParent('#text', parentTag, !1))
return !0
implicitRootScope = '#text|' + parentTag
if (didWarn[implicitRootScope]) return !1
didWarn[implicitRootScope] = !0
var ancestor = (implicitRootScope = current)
? findAncestor(implicitRootScope, parentTag)
: null
implicitRootScope =
null !== implicitRootScope && null !== ancestor
? describeAncestors(
ancestor,
implicitRootScope,
6 !== implicitRootScope.tag ? { children: null } : null
)
: ''
;/\S/.test(childText)
? console.error(
'In HTML, text nodes cannot be a child of <%s>.\nThis will cause a hydration error.%s',
parentTag,
implicitRootScope
)
: console.error(
"In HTML, whitespace text nodes cannot be a child of <%s>. Make sure you don't have any extra whitespace between tags on each line of your source code.\nThis will cause a hydration error.%s",
parentTag,
implicitRootScope
)
return !1
}
function setTextContent(node, text) {
if (text) {
var firstChild = node.firstChild
if (
firstChild &&
firstChild === node.lastChild &&
3 === firstChild.nodeType
) {
firstChild.nodeValue = text
return
}
}
node.textContent = text
}
function camelize(string) {
return string.replace(hyphenPattern, function (_, character) {
return character.toUpperCase()
})
}
function setValueForStyle(style, styleName, value) {
var isCustomProperty = 0 === styleName.indexOf('--')
isCustomProperty ||
(-1 < styleName.indexOf('-')
? (warnedStyleNames.hasOwnProperty(styleName) &&
warnedStyleNames[styleName]) ||
((warnedStyleNames[styleName] = !0),
console.error(
'Unsupported style property %s. Did you mean %s?',
styleName,
camelize(styleName.replace(msPattern, 'ms-'))
))
: badVendoredStyleNamePattern.test(styleName)
? (warnedStyleNames.hasOwnProperty(styleName) &&
warnedStyleNames[styleName]) ||
((warnedStyleNames[styleName] = !0),
console.error(
'Unsupported vendor-prefixed style property %s. Did you mean %s?',
styleName,
styleName.charAt(0).toUpperCase() + styleName.slice(1)
))
: !badStyleValueWithSemicolonPattern.test(value) ||
(warnedStyleValues.hasOwnProperty(value) &&
warnedStyleValues[value]) ||
((warnedStyleValues[value] = !0),
console.error(
'Style property values shouldn\'t contain a semicolon. Try "%s: %s" instead.',
styleName,
value.replace(badStyleValueWithSemicolonPattern, '')
)),
'number' === typeof value &&
(isNaN(value)
? warnedForNaNValue ||
((warnedForNaNValue = !0),
console.error(
'`NaN` is an invalid value for the `%s` css style property.',
styleName
))
: isFinite(value) ||
warnedForInfinityValue ||
((warnedForInfinityValue = !0),
console.error(
'`Infinity` is an invalid value for the `%s` css style property.',
styleName
))))
null == value || 'boolean' === typeof value || '' === value
? isCustomProperty
? style.setProperty(styleName, '')
: 'float' === styleName
? (style.cssFloat = '')
: (style[styleName] = '')
: isCustomProperty
? style.setProperty(styleName, value)
: 'number' !== typeof value ||
0 === value ||
unitlessNumbers.has(styleName)
? 'float' === styleName
? (style.cssFloat = value)
: (checkCSSPropertyStringCoercion(value, styleName),
(style[styleName] = ('' + value).trim()))
: (style[styleName] = value + 'px')
}
function setValueForStyles(node, styles, prevStyles) {
if (null != styles && 'object' !== typeof styles)
throw Error(
"The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX."
)
styles && Object.freeze(styles)
node = node.style
if (null != prevStyles) {
if (styles) {
var expandedUpdates = {}
if (prevStyles)
for (var key in prevStyles)
if (prevStyles.hasOwnProperty(key) && !styles.hasOwnProperty(key))
for (
var longhands = shorthandToLonghand[key] || [key], i = 0;
i < longhands.length;
i++
)
expandedUpdates[longhands[i]] = key
for (var _key in styles)
if (
styles.hasOwnProperty(_key) &&
(!prevStyles || prevStyles[_key] !== styles[_key])
)
for (
key = shorthandToLonghand[_key] || [_key], longhands = 0;
longhands < key.length;
longhands++
)
expandedUpdates[key[longhands]] = _key
_key = {}
for (var key$jscomp$0 in styles)
for (
key = shorthandToLonghand[key$jscomp$0] || [key$jscomp$0],
longhands = 0;
longhands < key.length;
longhands++
)
_key[key[longhands]] = key$jscomp$0
key$jscomp$0 = {}
for (var _key2 in expandedUpdates)
if (
((key = expandedUpdates[_key2]),
(longhands = _key[_key2]) &&
key !== longhands &&
((i = key + ',' + longhands), !key$jscomp$0[i]))
) {
key$jscomp$0[i] = !0
i = console
var value = styles[key]
i.error.call(
i,
"%s a style property during rerender (%s) when a conflicting property is set (%s) can lead to styling bugs. To avoid this, don't mix shorthand and non-shorthand properties for the same value; instead, replace the shorthand with separate values.",
null == value || 'boolean' === typeof value || '' === value
? 'Removing'
: 'Updating',
key,
longhands
)
}
}
for (var styleName in prevStyles)
!prevStyles.hasOwnProperty(styleName) ||
(null != styles && styles.hasOwnProperty(styleName)) ||
(0 === styleName.indexOf('--')
? node.setProperty(styleName, '')
: 'float' === styleName
? (node.cssFloat = '')
: (node[styleName] = ''))
for (var _styleName in styles)
((_key2 = styles[_styleName]),
styles.hasOwnProperty(_styleName) &&
prevStyles[_styleName] !== _key2 &&
setValueForStyle(node, _styleName, _key2))
} else
for (expandedUpdates in styles)
styles.hasOwnProperty(expandedUpdates) &&
setValueForStyle(node, expandedUpdates, styles[expandedUpdates])
}
function isCustomElement(tagName) {
if (-1 === tagName.indexOf('-')) return !1
switch (tagName) {
case 'annotation-xml':
case 'color-profile':
case 'font-face':
case 'font-face-src':
case 'font-face-uri':
case 'font-face-format':
case 'font-face-name':
case 'missing-glyph':
return !1
default:
return !0
}
}
function getAttributeAlias(name) {
return aliases.get(name) || name
}
function validateProperty$1(tagName, name) {
if (
hasOwnProperty.call(warnedProperties$1, name) &&
warnedProperties$1[name]
)
return !0
if (rARIACamel$1.test(name)) {
tagName = 'aria-' + name.slice(4).toLowerCase()
tagName = ariaProperties.hasOwnProperty(tagName) ? tagName : null
if (null == tagName)
return (
console.error(
'Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.',
name
),
(warnedProperties$1[name] = !0)
)
if (name !== tagName)
return (
console.error(
'Invalid ARIA attribute `%s`. Did you mean `%s`?',
name,
tagName
),
(warnedProperties$1[name] = !0)
)
}
if (rARIA$1.test(name)) {
tagName = name.toLowerCase()
tagName = ariaProperties.hasOwnProperty(tagName) ? tagName : null
if (null == tagName) return ((warnedProperties$1[name] = !0), !1)
name !== tagName &&
(console.error(
'Unknown ARIA attribute `%s`. Did you mean `%s`?',
name,
tagName
),
(warnedProperties$1[name] = !0))
}
return !0
}
function validateProperties$2(type, props) {
var invalidProps = [],
key
for (key in props) validateProperty$1(type, key) || invalidProps.push(key)
props = invalidProps
.map(function (prop) {
return '`' + prop + '`'
})
.join(', ')
1 === invalidProps.length
? console.error(
'Invalid aria prop %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props',
props,
type
)
: 1 < invalidProps.length &&
console.error(
'Invalid aria props %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props',
props,
type
)
}
function validateProperty(tagName, name, value, eventRegistry) {
if (hasOwnProperty.call(warnedProperties, name) && warnedProperties[name])
return !0
var lowerCasedName = name.toLowerCase()
if ('onfocusin' === lowerCasedName || 'onfocusout' === lowerCasedName)
return (
console.error(
'React uses onFocus and onBlur instead of onFocusIn and onFocusOut. All React events are normalized to bubble, so onFocusIn and onFocusOut are not needed/supported by React.'
),
(warnedProperties[name] = !0)
)
if (
'function' === typeof value &&
(('form' === tagName && 'action' === name) ||
('input' === tagName && 'formAction' === name) ||
('button' === tagName && 'formAction' === name))
)
return !0
if (null != eventRegistry) {
tagName = eventRegistry.possibleRegistrationNames
if (eventRegistry.registrationNameDependencies.hasOwnProperty(name))
return !0
eventRegistry = tagName.hasOwnProperty(lowerCasedName)
? tagName[lowerCasedName]
: null
if (null != eventRegistry)
return (
console.error(
'Invalid event handler property `%s`. Did you mean `%s`?',
name,
eventRegistry
),
(warnedProperties[name] = !0)
)
if (EVENT_NAME_REGEX.test(name))
return (
console.error(
'Unknown event handler property `%s`. It will be ignored.',
name
),
(warnedProperties[name] = !0)
)
} else if (EVENT_NAME_REGEX.test(name))
return (
INVALID_EVENT_NAME_REGEX.test(name) &&
console.error(
'Invalid event handler property `%s`. React events use the camelCase naming convention, for example `onClick`.',
name
),
(warnedProperties[name] = !0)
)
if (rARIA.test(name) || rARIACamel.test(name)) return !0
if ('innerhtml' === lowerCasedName)
return (
console.error(
'Directly setting property `innerHTML` is not permitted. For more information, lookup documentation on `dangerouslySetInnerHTML`.'
),
(warnedProperties[name] = !0)
)
if ('aria' === lowerCasedName)
return (
console.error(
'The `aria` attribute is reserved for future use in React. Pass individual `aria-` attributes instead.'
),
(warnedProperties[name] = !0)
)
if (
'is' === lowerCasedName &&
null !== value &&
void 0 !== value &&
'string' !== typeof value
)
return (
console.error(
'Received a `%s` for a string attribute `is`. If this is expected, cast the value to a string.',
typeof value
),
(warnedProperties[name] = !0)
)
if ('number' === typeof value && isNaN(value))
return (
console.error(
'Received NaN for the `%s` attribute. If this is expected, cast the value to a string.',
name
),
(warnedProperties[name] = !0)
)
if (possibleStandardNames.hasOwnProperty(lowerCasedName)) {
if (
((lowerCasedName = possibleStandardNames[lowerCasedName]),
lowerCasedName !== name)
)
return (
console.error(
'Invalid DOM property `%s`. Did you mean `%s`?',
name,
lowerCasedName
),
(warnedProperties[name] = !0)
)
} else if (name !== lowerCasedName)
return (
console.error(
'React does not recognize the `%s` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `%s` instead. If you accidentally passed it from a parent component, remove it from the DOM element.',
name,
lowerCasedName
),
(warnedProperties[name] = !0)
)
switch (name) {
case 'dangerouslySetInnerHTML':
case 'children':
case 'style':
case 'suppressContentEditableWarning':
case 'suppressHydrationWarning':
case 'defaultValue':
case 'defaultChecked':
case 'innerHTML':
case 'ref':
return !0
case 'innerText':
case 'textContent':
return !0
}
switch (typeof value) {
case 'boolean':
switch (name) {
case 'autoFocus':
case 'checked':
case 'multiple':
case 'muted':
case 'selected':
case 'contentEditable':
case 'spellCheck':
case 'draggable':
case 'value':
case 'autoReverse':
case 'externalResourcesRequired':
case 'focusable':
case 'preserveAlpha':
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':
case 'capture':
case 'download':
case 'inert':
return !0
default:
lowerCasedName = name.toLowerCase().slice(0, 5)
if ('data-' === lowerCasedName || 'aria-' === lowerCasedName)
return !0
value
? console.error(
'Received `%s` for a non-boolean attribute `%s`.\n\nIf you want to write it to the DOM, pass a string instead: %s="%s" or %s={value.toString()}.',
value,
name,
name,
value,
name
)
: console.error(
'Received `%s` for a non-boolean attribute `%s`.\n\nIf you want to write it to the DOM, pass a string instead: %s="%s" or %s={value.toString()}.\n\nIf you used to conditionally omit it with %s={condition && value}, pass %s={condition ? value : undefined} instead.',
value,
name,
name,
value,
name,
name,
name
)
return (warnedProperties[name] = !0)
}
case 'function':
case 'symbol':
return ((warnedProperties[name] = !0), !1)
case 'string':
if ('false' === value || 'true' === value) {
switch (name) {
case 'checked':
case 'selected':
case 'multiple':
case 'muted':
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':
case 'inert':
break
default:
return !0
}
console.error(
'Received the string `%s` for the boolean attribute `%s`. %s Did you mean %s={%s}?',
value,
name,
'false' === value
? 'The browser will interpret it as a truthy value.'
: 'Although this works, it will not work as expected if you pass the string "false".',
name,
value
)
warnedProperties[name] = !0
}
}
return !0
}
function warnUnknownProperties(type, props, eventRegistry) {
var unknownProps = [],
key
for (key in props)
validateProperty(type, key, props[key], eventRegistry) ||
unknownProps.push(key)
props = unknownProps
.map(function (prop) {
return '`' + prop + '`'
})
.join(', ')
1 === unknownProps.length
? console.error(
'Invalid value for prop %s on <%s> tag. Either remove it from the element, or pass a string or number value to keep it in the DOM. For details, see https://react.dev/link/attribute-behavior ',
props,
type
)
: 1 < unknownProps.length &&
console.error(
'Invalid values for props %s on <%s> tag. Either remove them from the element, or pass a string or number value to keep them in the DOM. For details, see https://react.dev/link/attribute-behavior ',
props,
type
)
}
function sanitizeURL(url) {
return isJavaScriptProtocol.test('' + url)
? "javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')"
: url
}
function noop$1() {}
function getEventTarget(nativeEvent) {
nativeEvent = nativeEvent.target || nativeEvent.srcElement || window
nativeEvent.correspondingUseElement &&
(nativeEvent = nativeEvent.correspondingUseElement)
return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent
}
function restoreStateOfTarget(target) {
var internalInstance = getInstanceFromNode(target)
if (internalInstance && (target = internalInstance.stateNode)) {
var props = target[internalPropsKey] || null
a: switch (
((target = internalInstance.stateNode), internalInstance.type)
) {
case 'input':
updateInput(
target,
props.value,
props.defaultValue,
props.defaultValue,
props.checked,
props.defaultChecked,
props.type,
props.name
)
internalInstance = props.name
if ('radio' === props.type && null != internalInstance) {
for (props = target; props.parentNode; ) props = props.parentNode
checkAttributeStringCoercion(internalInstance, 'name')
props = props.querySelectorAll(
'input[name="' +
escapeSelectorAttributeValueInsideDoubleQuotes(
'' + internalInstance
) +
'"][type="radio"]'
)
for (
internalInstance = 0;
internalInstance < props.length;
internalInstance++
) {
var otherNode = props[internalInstance]
if (otherNode !== target && otherNode.form === target.form) {
var otherProps = otherNode[internalPropsKey] || null
if (!otherProps)
throw Error(
'ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.'
)
updateInput(
otherNode,
otherProps.value,
otherProps.defaultValue,
otherProps.defaultValue,
otherProps.checked,
otherProps.defaultChecked,
otherProps.type,
otherProps.name
)
}
}
for (
internalInstance = 0;
internalInstance < props.length;
internalInstance++
)
((otherNode = props[internalInstance]),
otherNode.form === target.form &&
updateValueIfChanged(otherNode))
}
break a
case 'textarea':
updateTextarea(target, props.value, props.defaultValue)
break a
case 'select':
;((internalInstance = props.value),
null != internalInstance &&
updateOptions(target, !!props.multiple, internalInstance, !1))
}
}
}
function batchedUpdates$1(fn, a, b) {
if (isInsideEventHandler) return fn(a, b)
isInsideEventHandler = !0
try {
var JSCompiler_inline_result = fn(a)
return JSCompiler_inline_result
} finally {
if (
((isInsideEventHandler = !1),
null !== restoreTarget || null !== restoreQueue)
)
if (
(flushSyncWork$1(),
restoreTarget &&
((a = restoreTarget),
(fn = restoreQueue),
(restoreQueue = restoreTarget = null),
restoreStateOfTarget(a),
fn))
)
for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a])
}
}
function getListener(inst, registrationName) {
var stateNode = inst.stateNode
if (null === stateNode) return null
var props = stateNode[internalPropsKey] || null
if (null === props) return null
stateNode = props[registrationName]
a: switch (registrationName) {
case 'onClick':
case 'onClickCapture':
case 'onDoubleClick':
case 'onDoubleClickCapture':
case 'onMouseDown':
case 'onMouseDownCapture':
case 'onMouseMove':
case 'onMouseMoveCapture':
case 'onMouseUp':
case 'onMouseUpCapture':
case 'onMouseEnter':
;(props = !props.disabled) ||
((inst = inst.type),
(props = !(
'button' === inst ||
'input' === inst ||
'select' === inst ||
'textarea' === inst
)))
inst = !props
break a
default:
inst = !1
}
if (inst) return null
if (stateNode && 'function' !== typeof stateNode)
throw Error(
'Expected `' +
registrationName +
'` listener to be a function, instead got a value of `' +
typeof stateNode +
'` type.'
)
return stateNode
}
function getData() {
if (fallbackText) return fallbackText
var start,
startValue = startText,
startLength = startValue.length,
end,
endValue = 'value' in root ? root.value : root.textContent,
endLength = endValue.length
for (
start = 0;
start < startLength && startValue[start] === endValue[start];
start++
);
var minEnd = startLength - start
for (
end = 1;
end <= minEnd &&
startValue[startLength - end] === endValue[endLength - end];
end++
);
return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0))
}
function getEventCharCode(nativeEvent) {
var keyCode = nativeEvent.keyCode
'charCode' in nativeEvent
? ((nativeEvent = nativeEvent.charCode),
0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))
: (nativeEvent = keyCode)
10 === nativeEvent && (nativeEvent = 13)
return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0
}
function functionThatReturnsTrue() {
return !0
}
function functionThatReturnsFalse() {
return !1
}
function createSyntheticEvent(Interface) {
function SyntheticBaseEvent(
reactName,
reactEventType,
targetInst,
nativeEvent,
nativeEventTarget
) {
this._reactName = reactName
this._targetInst = targetInst
this.type = reactEventType
this.nativeEvent = nativeEvent
this.target = nativeEventTarget
this.currentTarget = null
for (var propName in Interface)
Interface.hasOwnProperty(propName) &&
((reactName = Interface[propName]),
(this[propName] = reactName
? reactName(nativeEvent)
: nativeEvent[propName]))
this.isDefaultPrevented = (
null != nativeEvent.defaultPrevented
? nativeEvent.defaultPrevented
: !1 === nativeEvent.returnValue
)
? functionThatReturnsTrue
: functionThatReturnsFalse
this.isPropagationStopped = functionThatReturnsFalse
return this
}
assign(SyntheticBaseEvent.prototype, {
preventDefault: function () {
this.defaultPrevented = !0
var event = this.nativeEvent
event &&
(event.preventDefault
? event.preventDefault()
: 'unknown' !== typeof event.returnValue &&
(event.returnValue = !1),
(this.isDefaultPrevented = functionThatReturnsTrue))
},
stopPropagation: function () {
var event = this.nativeEvent
event &&
(event.stopPropagation
? event.stopPropagation()
: 'unknown' !== typeof event.cancelBubble &&
(event.cancelBubble = !0),
(this.isPropagationStopped = functionThatReturnsTrue))
},
persist: function () {},
isPersistent: functionThatReturnsTrue,
})
return SyntheticBaseEvent
}
function modifierStateGetter(keyArg) {
var nativeEvent = this.nativeEvent
return nativeEvent.getModifierState
? nativeEvent.getModifierState(keyArg)
: (keyArg = modifierKeyToProp[keyArg])
? !!nativeEvent[keyArg]
: !1
}
function getEventModifierState() {
return modifierStateGetter
}
function isFallbackCompositionEnd(domEventName, nativeEvent) {
switch (domEventName) {
case 'keyup':
return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode)
case 'keydown':
return nativeEvent.keyCode !== START_KEYCODE
case 'keypress':
case 'mousedown':
case 'focusout':
return !0
default:
return !1
}
}
function getDataFromCustomEvent(nativeEvent) {
nativeEvent = nativeEvent.detail
return 'object' === typeof nativeEvent && 'data' in nativeEvent
? nativeEvent.data
: null
}
function getNativeBeforeInputChars(domEventName, nativeEvent) {
switch (domEventName) {
case 'compositionend':
return getDataFromCustomEvent(nativeEvent)
case 'keypress':
if (nativeEvent.which !== SPACEBAR_CODE) return null
hasSpaceKeypress = !0
return SPACEBAR_CHAR
case 'textInput':
return (
(domEventName = nativeEvent.data),
domEventName === SPACEBAR_CHAR && hasSpaceKeypress
? null
: domEventName
)
default:
return null
}
}
function getFallbackBeforeInputChars(domEventName, nativeEvent) {
if (isComposing)
return 'compositionend' === domEventName ||
(!canUseCompositionEvent &&
isFallbackCompositionEnd(domEventName, nativeEvent))
? ((domEventName = getData()),
(fallbackText = startText = root = null),
(isComposing = !1),
domEventName)
: null
switch (domEventName) {
case 'paste':
return null
case 'keypress':
if (
!(
nativeEvent.ctrlKey ||
nativeEvent.altKey ||
nativeEvent.metaKey
) ||
(nativeEvent.ctrlKey && nativeEvent.altKey)
) {
if (nativeEvent.char && 1 < nativeEvent.char.length)
return nativeEvent.char
if (nativeEvent.which) return String.fromCharCode(nativeEvent.which)
}
return null
case 'compositionend':
return useFallbackCompositionData && 'ko' !== nativeEvent.locale
? null
: nativeEvent.data
default:
return null
}
}
function isTextInputElement(elem) {
var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase()
return 'input' === nodeName
? !!supportedInputTypes[elem.type]
: 'textarea' === nodeName
? !0
: !1
}
function isEventSupported(eventNameSuffix) {
if (!canUseDOM) return !1
eventNameSuffix = 'on' + eventNameSuffix
var isSupported = eventNameSuffix in document
isSupported ||
((isSupported = document.createElement('div')),
isSupported.setAttribute(eventNameSuffix, 'return;'),
(isSupported = 'function' === typeof isSupported[eventNameSuffix]))
return isSupported
}
function createAndAccumulateChangeEvent(
dispatchQueue,
inst,
nativeEvent,
target
) {
restoreTarget
? restoreQueue
? restoreQueue.push(target)
: (restoreQueue = [target])
: (restoreTarget = target)
inst = accumulateTwoPhaseListeners(inst, 'onChange')
0 < inst.length &&
((nativeEvent = new SyntheticEvent(
'onChange',
'change',
null,
nativeEvent,
target
)),
dispatchQueue.push({ event: nativeEvent, listeners: inst }))
}
function runEventInBatch(dispatchQueue) {
processDispatchQueue(dispatchQueue, 0)
}
function getInstIfValueChanged(targetInst) {
var targetNode = getNodeFromInstance(targetInst)
if (updateValueIfChanged(targetNode)) return targetInst
}
function getTargetInstForChangeEvent(domEventName, targetInst) {
if ('change' === domEventName) return targetInst
}
function stopWatchingForValueChange() {
activeElement$1 &&
(activeElement$1.detachEvent('onpropertychange', handlePropertyChange),
(activeElementInst$1 = activeElement$1 = null))
}
function handlePropertyChange(nativeEvent) {
if (
'value' === nativeEvent.propertyName &&
getInstIfValueChanged(activeElementInst$1)
) {
var dispatchQueue = []
createAndAccumulateChangeEvent(
dispatchQueue,
activeElementInst$1,
nativeEvent,
getEventTarget(nativeEvent)
)
batchedUpdates$1(runEventInBatch, dispatchQueue)
}
}
function handleEventsForInputEventPolyfill(
domEventName,
target,
targetInst
) {
'focusin' === domEventName
? (stopWatchingForValueChange(),
(activeElement$1 = target),
(activeElementInst$1 = targetInst),
activeElement$1.attachEvent('onpropertychange', handlePropertyChange))
: 'focusout' === domEventName && stopWatchingForValueChange()
}
function getTargetInstForInputEventPolyfill(domEventName) {
if (
'selectionchange' === domEventName ||
'keyup' === domEventName ||
'keydown' === domEventName
)
return getInstIfValueChanged(activeElementInst$1)
}
function getTargetInstForClickEvent(domEventName, targetInst) {
if ('click' === domEventName) return getInstIfValueChanged(targetInst)
}
function getTargetInstForInputOrChangeEvent(domEventName, targetInst) {
if ('input' === domEventName || 'change' === domEventName)
return getInstIfValueChanged(targetInst)
}
function is(x, y) {
return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y)
}
function shallowEqual(objA, objB) {
if (objectIs(objA, objB)) return !0
if (
'object' !== typeof objA ||
null === objA ||
'object' !== typeof objB ||
null === objB
)
return !1
var keysA = Object.keys(objA),
keysB = Object.keys(objB)
if (keysA.length !== keysB.length) return !1
for (keysB = 0; keysB < keysA.length; keysB++) {
var currentKey = keysA[keysB]
if (
!hasOwnProperty.call(objB, currentKey) ||
!objectIs(objA[currentKey], objB[currentKey])
)
return !1
}
return !0
}
function getLeafNode(node) {
for (; node && node.firstChild; ) node = node.firstChild
return node
}
function getNodeForCharacterOffset(root, offset) {
var node = getLeafNode(root)
root = 0
for (var nodeEnd; node; ) {
if (3 === node.nodeType) {
nodeEnd = root + node.textContent.length
if (root <= offset && nodeEnd >= offset)
return { node: node, offset: offset - root }
root = nodeEnd
}
a: {
for (; node; ) {
if (node.nextSibling) {
node = node.nextSibling
break a
}
node = node.parentNode
}
node = void 0
}
node = getLeafNode(node)
}
}
function containsNode(outerNode, innerNode) {
return outerNode && innerNode
? outerNode === innerNode
? !0
: outerNode && 3 === outerNode.nodeType
? !1
: innerNode && 3 === innerNode.nodeType
? containsNode(outerNode, innerNode.parentNode)
: 'contains' in outerNode
? outerNode.contains(innerNode)
: outerNode.compareDocumentPosition
? !!(outerNode.compareDocumentPosition(innerNode) & 16)
: !1
: !1
}
function getActiveElementDeep(containerInfo) {
containerInfo =
null != containerInfo &&
null != containerInfo.ownerDocument &&
null != containerInfo.ownerDocument.defaultView
? containerInfo.ownerDocument.defaultView
: window
for (
var element = getActiveElement(containerInfo.document);
element instanceof containerInfo.HTMLIFrameElement;
) {
try {
var JSCompiler_inline_result =
'string' === typeof element.contentWindow.location.href
} catch (err) {
JSCompiler_inline_result = !1
}
if (JSCompiler_inline_result) containerInfo = element.contentWindow
else break
element = getActiveElement(containerInfo.document)
}
return element
}
function hasSelectionCapabilities(elem) {
var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase()
return (
nodeName &&
(('input' === nodeName &&
('text' === elem.type ||
'search' === elem.type ||
'tel' === elem.type ||
'url' === elem.type ||
'password' === elem.type)) ||
'textarea' === nodeName ||
'true' === elem.contentEditable)
)
}
function constructSelectEvent(
dispatchQueue,
nativeEvent,
nativeEventTarget
) {
var doc =
nativeEventTarget.window === nativeEventTarget
? nativeEventTarget.document
: 9 === nativeEventTarget.nodeType
? nativeEventTarget
: nativeEventTarget.ownerDocument
mouseDown ||
null == activeElement ||
activeElement !== getActiveElement(doc) ||
((doc = activeElement),
'selectionStart' in doc && hasSelectionCapabilities(doc)
? (doc = { start: doc.selectionStart, end: doc.selectionEnd })
: ((doc = (
(doc.ownerDocument && doc.ownerDocument.defaultView) ||
window
).getSelection()),
(doc = {
anchorNode: doc.anchorNode,
anchorOffset: doc.anchorOffset,
focusNode: doc.focusNode,
focusOffset: doc.focusOffset,
})),
(lastSelection && shallowEqual(lastSelection, doc)) ||
((lastSelection = doc),
(doc = accumulateTwoPhaseListeners(activeElementInst, 'onSelect')),
0 < doc.length &&
((nativeEvent = new SyntheticEvent(
'onSelect',
'select',
null,
nativeEvent,
nativeEventTarget
)),
dispatchQueue.push({ event: nativeEvent, listeners: doc }),
(nativeEvent.target = activeElement))))
}
function makePrefixMap(styleProp, eventName) {
var prefixes = {}
prefixes[styleProp.toLowerCase()] = eventName.toLowerCase()
prefixes['Webkit' + styleProp] = 'webkit' + eventName
prefixes['Moz' + styleProp] = 'moz' + eventName
return prefixes
}
function getVendorPrefixedEventName(eventName) {
if (prefixedEventNames[eventName]) return prefixedEventNames[eventName]
if (!vendorPrefixes[eventName]) return eventName
var prefixMap = vendorPrefixes[eventName],
styleProp
for (styleProp in prefixMap)
if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)
return (prefixedEventNames[eventName] = prefixMap[styleProp])
return eventName
}
function registerSimpleEvent(domEventName, reactName) {
topLevelEventsToReactNames.set(domEventName, reactName)
registerTwoPhaseEvent(reactName, [domEventName])
}
function finishQueueingConcurrentUpdates() {
for (
var endIndex = concurrentQueuesIndex,
i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);
i < endIndex;
) {
var fiber = concurrentQueues[i]
concurrentQueues[i++] = null
var queue = concurrentQueues[i]
concurrentQueues[i++] = null
var update = concurrentQueues[i]
concurrentQueues[i++] = null
var lane = concurrentQueues[i]
concurrentQueues[i++] = null
if (null !== queue && null !== update) {
var pending = queue.pending
null === pending
? (update.next = update)
: ((update.next = pending.next), (pending.next = update))
queue.pending = update
}
0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane)
}
}
function enqueueUpdate$1(fiber, queue, update, lane) {
concurrentQueues[concurrentQueuesIndex++] = fiber
concurrentQueues[concurrentQueuesIndex++] = queue
concurrentQueues[concurrentQueuesIndex++] = update
concurrentQueues[concurrentQueuesIndex++] = lane
concurrentlyUpdatedLanes |= lane
fiber.lanes |= lane
fiber = fiber.alternate
null !== fiber && (fiber.lanes |= lane)
}
function enqueueConcurrentHookUpdate(fiber, queue, update, lane) {
enqueueUpdate$1(fiber, queue, update, lane)
return getRootForUpdatedFiber(fiber)
}
function enqueueConcurrentRenderForLane(fiber, lane) {
enqueueUpdate$1(fiber, null, null, lane)
return getRootForUpdatedFiber(fiber)
}
function markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {
sourceFiber.lanes |= lane
var alternate = sourceFiber.alternate
null !== alternate && (alternate.lanes |= lane)
for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )
((parent.childLanes |= lane),
(alternate = parent.alternate),
null !== alternate && (alternate.childLanes |= lane),
22 === parent.tag &&
((sourceFiber = parent.stateNode),
null === sourceFiber ||
sourceFiber._visibility & OffscreenVisible ||
(isHidden = !0)),
(sourceFiber = parent),
(parent = parent.return))
return 3 === sourceFiber.tag
? ((parent = sourceFiber.stateNode),
isHidden &&
null !== update &&
((isHidden = 31 - clz32(lane)),
(sourceFiber = parent.hiddenUpdates),
(alternate = sourceFiber[isHidden]),
null === alternate
? (sourceFiber[isHidden] = [update])
: alternate.push(update),
(update.lane = lane | 536870912)),
parent)
: null
}
function getRootForUpdatedFiber(sourceFiber) {
if (nestedUpdateCount > NESTED_UPDATE_LIMIT)
throw (
(nestedPassiveUpdateCount = nestedUpdateCount = 0),
(rootWithPassiveNestedUpdates = rootWithNestedUpdates = null),
Error(
'Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.'
)
)
nestedPassiveUpdateCount > NESTED_PASSIVE_UPDATE_LIMIT &&
((nestedPassiveUpdateCount = 0),
(rootWithPassiveNestedUpdates = null),
console.error(
"Maximum update depth exceeded. This can happen when a component calls setState inside useEffect, but useEffect either doesn't have a dependency array, or one of the dependencies changes on every render."
))
null === sourceFiber.alternate &&
0 !== (sourceFiber.flags & 4098) &&
warnAboutUpdateOnNotYetMountedFiberInDEV(sourceFiber)
for (var node = sourceFiber, parent = node.return; null !== parent; )
(null === node.alternate &&
0 !== (node.flags & 4098) &&
warnAboutUpdateOnNotYetMountedFiberInDEV(sourceFiber),
(node = parent),
(parent = node.return))
return 3 === node.tag ? node.stateNode : null
}
function resolveFunctionForHotReloading(type) {
if (null === resolveFamily) return type
var family = resolveFamily(type)
return void 0 === family ? type : family.current
}
function resolveForwardRefForHotReloading(type) {
if (null === resolveFamily) return type
var family = resolveFamily(type)
return void 0 === family
? null !== type &&
void 0 !== type &&
'function' === typeof type.render &&
((family = resolveFunctionForHotReloading(type.render)),
type.render !== family)
? ((family = { $$typeof: REACT_FORWARD_REF_TYPE, render: family }),
void 0 !== type.displayName &&
(family.displayName = type.displayName),
family)
: type
: family.current
}
function isCompatibleFamilyForHotReloading(fiber, element) {
if (null === resolveFamily) return !1
var prevType = fiber.elementType
element = element.type
var needsCompareFamilies = !1,
$$typeofNextType =
'object' === typeof element && null !== element
? element.$$typeof
: null
switch (fiber.tag) {
case 1:
'function' === typeof element && (needsCompareFamilies = !0)
break
case 0:
'function' === typeof element
? (needsCompareFamilies = !0)
: $$typeofNextType === REACT_LAZY_TYPE &&
(needsCompareFamilies = !0)
break
case 11:
$$typeofNextType === REACT_FORWARD_REF_TYPE
? (needsCompareFamilies = !0)
: $$typeofNextType === REACT_LAZY_TYPE &&
(needsCompareFamilies = !0)
break
case 14:
case 15:
$$typeofNextType === REACT_MEMO_TYPE
? (needsCompareFamilies = !0)
: $$typeofNextType === REACT_LAZY_TYPE &&
(needsCompareFamilies = !0)
break
default:
return !1
}
return needsCompareFamilies &&
((fiber = resolveFamily(prevType)),
void 0 !== fiber && fiber === resolveFamily(element))
? !0
: !1
}
function markFailedErrorBoundaryForHotReloading(fiber) {
null !== resolveFamily &&
'function' === typeof WeakSet &&
(null === failedBoundaries && (failedBoundaries = new WeakSet()),
failedBoundaries.add(fiber))
}
function scheduleFibersWithFamiliesRecursively(
fiber,
updatedFamilies,
staleFamilies
) {
do {
var _fiber = fiber,
alternate = _fiber.alternate,
child = _fiber.child,
sibling = _fiber.sibling,
tag = _fiber.tag
_fiber = _fiber.type
var candidateType = null
switch (tag) {
case 0:
case 15:
case 1:
candidateType = _fiber
break
case 11:
candidateType = _fiber.render
}
if (null === resolveFamily)
throw Error('Expected resolveFamily to be set during hot reload.')
var needsRender = !1
_fiber = !1
null !== candidateType &&
((candidateType = resolveFamily(candidateType)),
void 0 !== candidateType &&
(staleFamilies.has(candidateType)
? (_fiber = !0)
: updatedFamilies.has(candidateType) &&
(1 === tag ? (_fiber = !0) : (needsRender = !0))))
null !== failedBoundaries &&
(failedBoundaries.has(fiber) ||
(null !== alternate && failedBoundaries.has(alternate))) &&
(_fiber = !0)
_fiber && (fiber._debugNeedsRemount = !0)
if (_fiber || needsRender)
((alternate = enqueueConcurrentRenderForLane(fiber, 2)),
null !== alternate && scheduleUpdateOnFiber(alternate, fiber, 2))
null === child ||
_fiber ||
scheduleFibersWithFamiliesRecursively(
child,
updatedFamilies,
staleFamilies
)
if (null === sibling) break
fiber = sibling
} while (1)
}
function FiberNode(tag, pendingProps, key, mode) {
this.tag = tag
this.key = key
this.sibling =
this.child =
this.return =
this.stateNode =
this.type =
this.elementType =
null
this.index = 0
this.refCleanup = this.ref = null
this.pendingProps = pendingProps
this.dependencies =
this.memoizedState =
this.updateQueue =
this.memoizedProps =
null
this.mode = mode
this.subtreeFlags = this.flags = 0
this.deletions = null
this.childLanes = this.lanes = 0
this.alternate = null
this.actualDuration = -0
this.actualStartTime = -1.1
this.treeBaseDuration = this.selfBaseDuration = -0
this._debugTask =
this._debugStack =
this._debugOwner =
this._debugInfo =
null
this._debugNeedsRemount = !1
this._debugHookTypes = null
hasBadMapPolyfill ||
'function' !== typeof Object.preventExtensions ||
Object.preventExtensions(this)
}
function shouldConstruct(Component) {
Component = Component.prototype
return !(!Component || !Component.isReactComponent)
}
function createWorkInProgress(current, pendingProps) {
var workInProgress = current.alternate
null === workInProgress
? ((workInProgress = createFiber(
current.tag,
pendingProps,
current.key,
current.mode
)),
(workInProgress.elementType = current.elementType),
(workInProgress.type = current.type),
(workInProgress.stateNode = current.stateNode),
(workInProgress._debugOwner = current._debugOwner),
(workInProgress._debugStack = current._debugStack),
(workInProgress._debugTask = current._debugTask),
(workInProgress._debugHookTypes = current._debugHookTypes),
(workInProgress.alternate = current),
(current.alternate = workInProgress))
: ((workInProgress.pendingProps = pendingProps),
(workInProgress.type = current.type),
(workInProgress.flags = 0),
(workInProgress.subtreeFlags = 0),
(workInProgress.deletions = null),
(workInProgress.actualDuration = -0),
(workInProgress.actualStartTime = -1.1))
workInProgress.flags = current.flags & 65011712
workInProgress.childLanes = current.childLanes
workInProgress.lanes = current.lanes
workInProgress.child = current.child
workInProgress.memoizedProps = current.memoizedProps
workInProgress.memoizedState = current.memoizedState
workInProgress.updateQueue = current.updateQueue
pendingProps = current.dependencies
workInProgress.dependencies =
null === pendingProps
? null
: {
lanes: pendingProps.lanes,
firstContext: pendingProps.firstContext,
_debugThenableState: pendingProps._debugThenableState,
}
workInProgress.sibling = current.sibling
workInProgress.index = current.index
workInProgress.ref = current.ref
workInProgress.refCleanup = current.refCleanup
workInProgress.selfBaseDuration = current.selfBaseDuration
workInProgress.treeBaseDuration = current.treeBaseDuration
workInProgress._debugInfo = current._debugInfo
workInProgress._debugNeedsRemount = current._debugNeedsRemount
switch (workInProgress.tag) {
case 0:
case 15:
workInProgress.type = resolveFunctionForHotReloading(current.type)
break
case 1:
workInProgress.type = resolveFunctionForHotReloading(current.type)
break
case 11:
workInProgress.type = resolveForwardRefForHotReloading(current.type)
}
return workInProgress
}
function resetWorkInProgress(workInProgress, renderLanes) {
workInProgress.flags &= 65011714
var current = workInProgress.alternate
null === current
? ((workInProgress.childLanes = 0),
(workInProgress.lanes = renderLanes),
(workInProgress.child = null),
(workInProgress.subtreeFlags = 0),
(workInProgress.memoizedProps = null),
(workInProgress.memoizedState = null),
(workInProgress.updateQueue = null),
(workInProgress.dependencies = null),
(workInProgress.stateNode = null),
(workInProgress.selfBaseDuration = 0),
(workInProgress.treeBaseDuration = 0))
: ((workInProgress.childLanes = current.childLanes),
(workInProgress.lanes = current.lanes),
(workInProgress.child = current.child),
(workInProgress.subtreeFlags = 0),
(workInProgress.deletions = null),
(workInProgress.memoizedProps = current.memoizedProps),
(workInProgress.memoizedState = current.memoizedState),
(workInProgress.updateQueue = current.updateQueue),
(workInProgress.type = current.type),
(renderLanes = current.dependencies),
(workInProgress.dependencies =
null === renderLanes
? null
: {
lanes: renderLanes.lanes,
firstContext: renderLanes.firstContext,
_debugThenableState: renderLanes._debugThenableState,
}),
(workInProgress.selfBaseDuration = current.selfBaseDuration),
(workInProgress.treeBaseDuration = current.treeBaseDuration))
return workInProgress
}
function createFiberFromTypeAndProps(
type,
key,
pendingProps,
owner,
mode,
lanes
) {
var fiberTag = 0,
resolvedType = type
if ('function' === typeof type)
(shouldConstruct(type) && (fiberTag = 1),
(resolvedType = resolveFunctionForHotReloading(resolvedType)))
else if ('string' === typeof type)
((fiberTag = getHostContext()),
(fiberTag = isHostHoistableType(type, pendingProps, fiberTag)
? 26
: 'html' === type || 'head' === type || 'body' === type
? 27
: 5))
else
a: switch (type) {
case REACT_ACTIVITY_TYPE:
return (
(key = createFiber(31, pendingProps, key, mode)),
(key.elementType = REACT_ACTIVITY_TYPE),
(key.lanes = lanes),
key
)
case REACT_FRAGMENT_TYPE:
return createFiberFromFragment(
pendingProps.children,
mode,
lanes,
key
)
case REACT_STRICT_MODE_TYPE:
fiberTag = 8
mode |= StrictLegacyMode
mode |= StrictEffectsMode
break
case REACT_PROFILER_TYPE:
return (
(type = pendingProps),
(owner = mode),
'string' !== typeof type.id &&
console.error(
'Profiler must specify an "id" of type `string` as a prop. Received the type `%s` instead.',
typeof type.id
),
(key = createFiber(12, type, key, owner | ProfileMode)),
(key.elementType = REACT_PROFILER_TYPE),
(key.lanes = lanes),
(key.stateNode = { effectDuration: 0, passiveEffectDuration: 0 }),
key
)
case REACT_SUSPENSE_TYPE:
return (
(key = createFiber(13, pendingProps, key, mode)),
(key.elementType = REACT_SUSPENSE_TYPE),
(key.lanes = lanes),
key
)
case REACT_SUSPENSE_LIST_TYPE:
return (
(key = createFiber(19, pendingProps, key, mode)),
(key.elementType = REACT_SUSPENSE_LIST_TYPE),
(key.lanes = lanes),
key
)
default:
if ('object' === typeof type && null !== type)
switch (type.$$typeof) {
case REACT_CONTEXT_TYPE:
fiberTag = 10
break a
case REACT_CONSUMER_TYPE:
fiberTag = 9
break a
case REACT_FORWARD_REF_TYPE:
fiberTag = 11
resolvedType = resolveForwardRefForHotReloading(resolvedType)
break a
case REACT_MEMO_TYPE:
fiberTag = 14
break a
case REACT_LAZY_TYPE:
fiberTag = 16
resolvedType = null
break a
}
resolvedType = ''
if (
void 0 === type ||
('object' === typeof type &&
null !== type &&
0 === Object.keys(type).length)
)
resolvedType +=
" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports."
null === type
? (pendingProps = 'null')
: isArrayImpl(type)
? (pendingProps = 'array')
: void 0 !== type && type.$$typeof === REACT_ELEMENT_TYPE
? ((pendingProps =
'<' +
(getComponentNameFromType(type.type) || 'Unknown') +
' />'),
(resolvedType =
' Did you accidentally export a JSX literal instead of a component?'))
: (pendingProps = typeof type)
;(fiberTag = owner ? getComponentNameFromOwner(owner) : null) &&
(resolvedType +=
'\n\nCheck the render method of `' + fiberTag + '`.')
fiberTag = 29
pendingProps = Error(
'Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: ' +
(pendingProps + '.' + resolvedType)
)
resolvedType = null
}
key = createFiber(fiberTag, pendingProps, key, mode)
key.elementType = type
key.type = resolvedType
key.lanes = lanes
key._debugOwner = owner
return key
}
function createFiberFromElement(element, mode, lanes) {
mode = createFiberFromTypeAndProps(
element.type,
element.key,
element.props,
element._owner,
mode,
lanes
)
mode._debugOwner = element._owner
mode._debugStack = element._debugStack
mode._debugTask = element._debugTask
return mode
}
function createFiberFromFragment(elements, mode, lanes, key) {
elements = createFiber(7, elements, key, mode)
elements.lanes = lanes
return elements
}
function createFiberFromText(content, mode, lanes) {
content = createFiber(6, content, null, mode)
content.lanes = lanes
return content
}
function createFiberFromDehydratedFragment(dehydratedNode) {
var fiber = createFiber(18, null, null, NoMode)
fiber.stateNode = dehydratedNode
return fiber
}
function createFiberFromPortal(portal, mode, lanes) {
mode = createFiber(
4,
null !== portal.children ? portal.children : [],
portal.key,
mode
)
mode.lanes = lanes
mode.stateNode = {
containerInfo: portal.containerInfo,
pendingChildren: null,
implementation: portal.implementation,
}
return mode
}
function createCapturedValueAtFiber(value, source) {
if ('object' === typeof value && null !== value) {
var existing = CapturedStacks.get(value)
if (void 0 !== existing) return existing
source = {
value: value,
source: source,
stack: getStackByFiberInDevAndProd(source),
}
CapturedStacks.set(value, source)
return source
}
return {
value: value,
source: source,
stack: getStackByFiberInDevAndProd(source),
}
}
function pushTreeFork(workInProgress, totalChildren) {
warnIfNotHydrating()
forkStack[forkStackIndex++] = treeForkCount
forkStack[forkStackIndex++] = treeForkProvider
treeForkProvider = workInProgress
treeForkCount = totalChildren
}
function pushTreeId(workInProgress, totalChildren, index) {
warnIfNotHydrating()
idStack[idStackIndex++] = treeContextId
idStack[idStackIndex++] = treeContextOverflow
idStack[idStackIndex++] = treeContextProvider
treeContextProvider = workInProgress
var baseIdWithLeadingBit = treeContextId
workInProgress = treeContextOverflow
var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1
baseIdWithLeadingBit &= ~(1 << baseLength)
index += 1
var length = 32 - clz32(totalChildren) + baseLength
if (30 < length) {
var numberOfOverflowBits = baseLength - (baseLength % 5)
length = (
baseIdWithLeadingBit &
((1 << numberOfOverflowBits) - 1)
).toString(32)
baseIdWithLeadingBit >>= numberOfOverflowBits
baseLength -= numberOfOverflowBits
treeContextId =
(1 << (32 - clz32(totalChildren) + baseLength)) |
(index << baseLength) |
baseIdWithLeadingBit
treeContextOverflow = length + workInProgress
} else
((treeContextId =
(1 << length) | (index << baseLength) | baseIdWithLeadingBit),
(treeContextOverflow = workInProgress))
}
function pushMaterializedTreeId(workInProgress) {
warnIfNotHydrating()
null !== workInProgress.return &&
(pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0))
}
function popTreeContext(workInProgress) {
for (; workInProgress === treeForkProvider; )
((treeForkProvider = forkStack[--forkStackIndex]),
(forkStack[forkStackIndex] = null),
(treeForkCount = forkStack[--forkStackIndex]),
(forkStack[forkStackIndex] = null))
for (; workInProgress === treeContextProvider; )
((treeContextProvider = idStack[--idStackIndex]),
(idStack[idStackIndex] = null),
(treeContextOverflow = idStack[--idStackIndex]),
(idStack[idStackIndex] = null),
(treeContextId = idStack[--idStackIndex]),
(idStack[idStackIndex] = null))
}
function getSuspendedTreeContext() {
warnIfNotHydrating()
return null !== treeContextProvider
? { id: treeContextId, overflow: treeContextOverflow }
: null
}
function restoreSuspendedTreeContext(workInProgress, suspendedContext) {
warnIfNotHydrating()
idStack[idStackIndex++] = treeContextId
idStack[idStackIndex++] = treeContextOverflow
idStack[idStackIndex++] = treeContextProvider
treeContextId = suspendedContext.id
treeContextOverflow = suspendedContext.overflow
treeContextProvider = workInProgress
}
function warnIfNotHydrating() {
isHydrating ||
console.error(
'Expected to be hydrating. This is a bug in React. Please file an issue.'
)
}
function buildHydrationDiffNode(fiber, distanceFromLeaf) {
if (null === fiber.return) {
if (null === hydrationDiffRootDEV)
hydrationDiffRootDEV = {
fiber: fiber,
children: [],
serverProps: void 0,
serverTail: [],
distanceFromLeaf: distanceFromLeaf,
}
else {
if (hydrationDiffRootDEV.fiber !== fiber)
throw Error(
'Saw multiple hydration diff roots in a pass. This is a bug in React.'
)
hydrationDiffRootDEV.distanceFromLeaf > distanceFromLeaf &&
(hydrationDiffRootDEV.distanceFromLeaf = distanceFromLeaf)
}
return hydrationDiffRootDEV
}
var siblings = buildHydrationDiffNode(
fiber.return,
distanceFromLeaf + 1
).children
if (0 < siblings.length && siblings[siblings.length - 1].fiber === fiber)
return (
(siblings = siblings[siblings.length - 1]),
siblings.distanceFromLeaf > distanceFromLeaf &&
(siblings.distanceFromLeaf = distanceFromLeaf),
siblings
)
distanceFromLeaf = {
fiber: fiber,
children: [],
serverProps: void 0,
serverTail: [],
distanceFromLeaf: distanceFromLeaf,
}
siblings.push(distanceFromLeaf)
return distanceFromLeaf
}
function warnIfHydrating() {
isHydrating &&
console.error(
'We should not be hydrating here. This is a bug in React. Please file a bug.'
)
}
function warnNonHydratedInstance(fiber, rejectedCandidate) {
didSuspendOrErrorDEV ||
((fiber = buildHydrationDiffNode(fiber, 0)),
(fiber.serverProps = null),
null !== rejectedCandidate &&
((rejectedCandidate =
describeHydratableInstanceForDevWarnings(rejectedCandidate)),
fiber.serverTail.push(rejectedCandidate)))
}
function throwOnHydrationMismatch(fiber) {
var fromText =
1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : !1,
diff = '',
diffRoot = hydrationDiffRootDEV
null !== diffRoot &&
((hydrationDiffRootDEV = null), (diff = describeDiff(diffRoot)))
queueHydrationError(
createCapturedValueAtFiber(
Error(
'Hydration failed because the server rendered ' +
(fromText ? 'text' : 'HTML') +
" didn't match the client. As a result this tree will be regenerated on the client. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\nhttps://react.dev/link/hydration-mismatch" +
diff
),
fiber
)
)
throw HydrationMismatchException
}
function prepareToHydrateHostInstance(fiber) {
var didHydrate = fiber.stateNode
var type = fiber.type,
props = fiber.memoizedProps
didHydrate[internalInstanceKey] = fiber
didHydrate[internalPropsKey] = props
validatePropertiesInDevelopment(type, props)
switch (type) {
case 'dialog':
listenToNonDelegatedEvent('cancel', didHydrate)
listenToNonDelegatedEvent('close', didHydrate)
break
case 'iframe':
case 'object':
case 'embed':
listenToNonDelegatedEvent('load', didHydrate)
break
case 'video':
case 'audio':
for (type = 0; type < mediaEventTypes.length; type++)
listenToNonDelegatedEvent(mediaEventTypes[type], didHydrate)
break
case 'source':
listenToNonDelegatedEvent('error', didHydrate)
break
case 'img':
case 'image':
case 'link':
listenToNonDelegatedEvent('error', didHydrate)
listenToNonDelegatedEvent('load', didHydrate)
break
case 'details':
listenToNonDelegatedEvent('toggle', didHydrate)
break
case 'input':
checkControlledValueProps('input', props)
listenToNonDelegatedEvent('invalid', didHydrate)
validateInputProps(didHydrate, props)
initInput(
didHydrate,
props.value,
props.defaultValue,
props.checked,
props.defaultChecked,
props.type,
props.name,
!0
)
break
case 'option':
validateOptionProps(didHydrate, props)
break
case 'select':
checkControlledValueProps('select', props)
listenToNonDelegatedEvent('invalid', didHydrate)
validateSelectProps(didHydrate, props)
break
case 'textarea':
;(checkControlledValueProps('textarea', props),
listenToNonDelegatedEvent('invalid', didHydrate),
validateTextareaProps(didHydrate, props),
initTextarea(
didHydrate,
props.value,
props.defaultValue,
props.children
))
}
type = props.children
;('string' !== typeof type &&
'number' !== typeof type &&
'bigint' !== typeof type) ||
didHydrate.textContent === '' + type ||
!0 === props.suppressHydrationWarning ||
checkForUnmatchedText(didHydrate.textContent, type)
? (null != props.popover &&
(listenToNonDelegatedEvent('beforetoggle', didHydrate),
listenToNonDelegatedEvent('toggle', didHydrate)),
null != props.onScroll &&
listenToNonDelegatedEvent('scroll', didHydrate),
null != props.onScrollEnd &&
listenToNonDelegatedEvent('scrollend', didHydrate),
null != props.onClick && (didHydrate.onclick = noop$1),
(didHydrate = !0))
: (didHydrate = !1)
didHydrate || throwOnHydrationMismatch(fiber, !0)
}
function popToNextHostParent(fiber) {
for (hydrationParentFiber = fiber.return; hydrationParentFiber; )
switch (hydrationParentFiber.tag) {
case 5:
case 31:
case 13:
rootOrSingletonContext = !1
return
case 27:
case 3:
rootOrSingletonContext = !0
return
default:
hydrationParentFiber = hydrationParentFiber.return
}
}
function popHydrationState(fiber) {
if (fiber !== hydrationParentFiber) return !1
if (!isHydrating)
return (popToNextHostParent(fiber), (isHydrating = !0), !1)
var tag = fiber.tag,
JSCompiler_temp
if ((JSCompiler_temp = 3 !== tag && 27 !== tag)) {
if ((JSCompiler_temp = 5 === tag))
((JSCompiler_temp = fiber.type),
(JSCompiler_temp =
!('form' !== JSCompiler_temp && 'button' !== JSCompiler_temp) ||
shouldSetTextContent(fiber.type, fiber.memoizedProps)))
JSCompiler_temp = !JSCompiler_temp
}
if (JSCompiler_temp && nextHydratableInstance) {
for (JSCompiler_temp = nextHydratableInstance; JSCompiler_temp; ) {
var diffNode = buildHydrationDiffNode(fiber, 0),
description =
describeHydratableInstanceForDevWarnings(JSCompiler_temp)
diffNode.serverTail.push(description)
JSCompiler_temp =
'Suspense' === description.type
? getNextHydratableInstanceAfterHydrationBoundary(JSCompiler_temp)
: getNextHydratable(JSCompiler_temp.nextSibling)
}
throwOnHydrationMismatch(fiber)
}
popToNextHostParent(fiber)
if (13 === tag) {
fiber = fiber.memoizedState
fiber = null !== fiber ? fiber.dehydrated : null
if (!fiber)
throw Error(
'Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.'
)
nextHydratableInstance =
getNextHydratableInstanceAfterHydrationBoundary(fiber)
} else if (31 === tag) {
fiber = fiber.memoizedState
fiber = null !== fiber ? fiber.dehydrated : null
if (!fiber)
throw Error(
'Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.'
)
nextHydratableInstance =
getNextHydratableInstanceAfterHydrationBoundary(fiber)
} else
27 === tag
? ((tag = nextHydratableInstance),
isSingletonScope(fiber.type)
? ((fiber = previousHydratableOnEnteringScopedSingleton),
(previousHydratableOnEnteringScopedSingleton = null),
(nextHydratableInstance = fiber))
: (nextHydratableInstance = tag))
: (nextHydratableInstance = hydrationParentFiber
? getNextHydratable(fiber.stateNode.nextSibling)
: null)
return !0
}
function resetHydrationState() {
nextHydratableInstance = hydrationParentFiber = null
didSuspendOrErrorDEV = isHydrating = !1
}
function upgradeHydrationErrorsToRecoverable() {
var queuedErrors = hydrationErrors
null !== queuedErrors &&
(null === workInProgressRootRecoverableErrors
? (workInProgressRootRecoverableErrors = queuedErrors)
: workInProgressRootRecoverableErrors.push.apply(
workInProgressRootRecoverableErrors,
queuedErrors
),
(hydrationErrors = null))
return queuedErrors
}
function queueHydrationError(error) {
null === hydrationErrors
? (hydrationErrors = [error])
: hydrationErrors.push(error)
}
function emitPendingHydrationWarnings() {
var diffRoot = hydrationDiffRootDEV
if (null !== diffRoot) {
hydrationDiffRootDEV = null
for (var diff = describeDiff(diffRoot); 0 < diffRoot.children.length; )
diffRoot = diffRoot.children[0]
runWithFiberInDEV(diffRoot.fiber, function () {
console.error(
"A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\n%s%s",
'https://react.dev/link/hydration-mismatch',
diff
)
})
}
}
function resetContextDependencies() {
lastContextDependency = currentlyRenderingFiber$1 = null
isDisallowedContextReadInDEV = !1
}
function pushProvider(providerFiber, context, nextValue) {
push(valueCursor, context._currentValue, providerFiber)
context._currentValue = nextValue
push(rendererCursorDEV, context._currentRenderer, providerFiber)
void 0 !== context._currentRenderer &&
null !== context._currentRenderer &&
context._currentRenderer !== rendererSigil &&
console.error(
'Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported.'
)
context._currentRenderer = rendererSigil
}
function popProvider(context, providerFiber) {
context._currentValue = valueCursor.current
var currentRenderer = rendererCursorDEV.current
pop(rendererCursorDEV, providerFiber)
context._currentRenderer = currentRenderer
pop(valueCursor, providerFiber)
}
function scheduleContextWorkOnParentPath(
parent,
renderLanes,
propagationRoot
) {
for (; null !== parent; ) {
var alternate = parent.alternate
;(parent.childLanes & renderLanes) !== renderLanes
? ((parent.childLanes |= renderLanes),
null !== alternate && (alternate.childLanes |= renderLanes))
: null !== alternate &&
(alternate.childLanes & renderLanes) !== renderLanes &&
(alternate.childLanes |= renderLanes)
if (parent === propagationRoot) break
parent = parent.return
}
parent !== propagationRoot &&
console.error(
'Expected to find the propagation root when scheduling context work. This error is likely caused by a bug in React. Please file an issue.'
)
}
function propagateContextChanges(
workInProgress,
contexts,
renderLanes,
forcePropagateEntireTree
) {
var fiber = workInProgress.child
null !== fiber && (fiber.return = workInProgress)
for (; null !== fiber; ) {
var list = fiber.dependencies
if (null !== list) {
var nextFiber = fiber.child
list = list.firstContext
a: for (; null !== list; ) {
var dependency = list
list = fiber
for (var i = 0; i < contexts.length; i++)
if (dependency.context === contexts[i]) {
list.lanes |= renderLanes
dependency = list.alternate
null !== dependency && (dependency.lanes |= renderLanes)
scheduleContextWorkOnParentPath(
list.return,
renderLanes,
workInProgress
)
forcePropagateEntireTree || (nextFiber = null)
break a
}
list = dependency.next
}
} else if (18 === fiber.tag) {
nextFiber = fiber.return
if (null === nextFiber)
throw Error(
'We just came from a parent so we must have had a parent. This is a bug in React.'
)
nextFiber.lanes |= renderLanes
list = nextFiber.alternate
null !== list && (list.lanes |= renderLanes)
scheduleContextWorkOnParentPath(
nextFiber,
renderLanes,
workInProgress
)
nextFiber = null
} else nextFiber = fiber.child
if (null !== nextFiber) nextFiber.return = fiber
else
for (nextFiber = fiber; null !== nextFiber; ) {
if (nextFiber === workInProgress) {
nextFiber = null
break
}
fiber = nextFiber.sibling
if (null !== fiber) {
fiber.return = nextFiber.return
nextFiber = fiber
break
}
nextFiber = nextFiber.return
}
fiber = nextFiber
}
}
function propagateParentContextChanges(
current,
workInProgress,
renderLanes,
forcePropagateEntireTree
) {
current = null
for (
var parent = workInProgress, isInsidePropagationBailout = !1;
null !== parent;
) {
if (!isInsidePropagationBailout)
if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0
else if (0 !== (parent.flags & 262144)) break
if (10 === parent.tag) {
var currentParent = parent.alternate
if (null === currentParent)
throw Error('Should have a current fiber. This is a bug in React.')
currentParent = currentParent.memoizedProps
if (null !== currentParent) {
var context = parent.type
objectIs(parent.pendingProps.value, currentParent.value) ||
(null !== current ? current.push(context) : (current = [context]))
}
} else if (parent === hostTransitionProviderCursor.current) {
currentParent = parent.alternate
if (null === currentParent)
throw Error('Should have a current fiber. This is a bug in React.')
currentParent.memoizedState.memoizedState !==
parent.memoizedState.memoizedState &&
(null !== current
? current.push(HostTransitionContext)
: (current = [HostTransitionContext]))
}
parent = parent.return
}
null !== current &&
propagateContextChanges(
workInProgress,
current,
renderLanes,
forcePropagateEntireTree
)
workInProgress.flags |= 262144
}
function checkIfContextChanged(currentDependencies) {
for (
currentDependencies = currentDependencies.firstContext;
null !== currentDependencies;
) {
if (
!objectIs(
currentDependencies.context._currentValue,
currentDependencies.memoizedValue
)
)
return !0
currentDependencies = currentDependencies.next
}
return !1
}
function prepareToReadContext(workInProgress) {
currentlyRenderingFiber$1 = workInProgress
lastContextDependency = null
workInProgress = workInProgress.dependencies
null !== workInProgress && (workInProgress.firstContext = null)
}
function readContext(context) {
isDisallowedContextReadInDEV &&
console.error(
'Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().'
)
return readContextForConsumer(currentlyRenderingFiber$1, context)
}
function readContextDuringReconciliation(consumer, context) {
null === currentlyRenderingFiber$1 && prepareToReadContext(consumer)
return readContextForConsumer(consumer, context)
}
function readContextForConsumer(consumer, context) {
var value = context._currentValue
context = { context: context, memoizedValue: value, next: null }
if (null === lastContextDependency) {
if (null === consumer)
throw Error(
'Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().'
)
lastContextDependency = context
consumer.dependencies = {
lanes: 0,
firstContext: context,
_debugThenableState: null,
}
consumer.flags |= 524288
} else lastContextDependency = lastContextDependency.next = context
return value
}
function createCache() {
return {
controller: new AbortControllerLocal(),
data: new Map(),
refCount: 0,
}
}
function retainCache(cache) {
cache.controller.signal.aborted &&
console.warn(
'A cache instance was retained after it was already freed. This likely indicates a bug in React.'
)
cache.refCount++
}
function releaseCache(cache) {
cache.refCount--
0 > cache.refCount &&
console.warn(
'A cache instance was released after it was already freed. This likely indicates a bug in React.'
)
0 === cache.refCount &&
scheduleCallback$2(NormalPriority, function () {
cache.controller.abort()
})
}
function pushNestedEffectDurations() {
var prevEffectDuration = profilerEffectDuration
profilerEffectDuration = 0
return prevEffectDuration
}
function popNestedEffectDurations(prevEffectDuration) {
var elapsedTime = profilerEffectDuration
profilerEffectDuration = prevEffectDuration
return elapsedTime
}
function bubbleNestedEffectDurations(prevEffectDuration) {
var elapsedTime = profilerEffectDuration
profilerEffectDuration += prevEffectDuration
return elapsedTime
}
function pushComponentEffectStart() {
var prevEffectStart = componentEffectStartTime
componentEffectStartTime = -1.1
return prevEffectStart
}
function popComponentEffectStart(prevEffectStart) {
0 <= prevEffectStart && (componentEffectStartTime = prevEffectStart)
}
function startProfilerTimer(fiber) {
profilerStartTime = now()
0 > fiber.actualStartTime && (fiber.actualStartTime = profilerStartTime)
}
function stopProfilerTimerIfRunningAndRecordDuration(fiber) {
if (0 <= profilerStartTime) {
var elapsedTime = now() - profilerStartTime
fiber.actualDuration += elapsedTime
fiber.selfBaseDuration = elapsedTime
profilerStartTime = -1
}
}
function stopProfilerTimerIfRunningAndRecordIncompleteDuration(fiber) {
if (0 <= profilerStartTime) {
var elapsedTime = now() - profilerStartTime
fiber.actualDuration += elapsedTime
profilerStartTime = -1
}
}
function recordEffectDuration() {
if (0 <= profilerStartTime) {
var elapsedTime = now() - profilerStartTime
profilerStartTime = -1
profilerEffectDuration += elapsedTime
}
}
function startEffectTimer() {
profilerStartTime = now()
0 > componentEffectStartTime &&
(componentEffectStartTime = profilerStartTime)
}
function transferActualDuration(fiber) {
for (var child = fiber.child; child; )
((fiber.actualDuration += child.actualDuration),
(child = child.sibling))
}
function entangleAsyncAction(transition, thenable) {
if (null === currentEntangledListeners) {
var entangledListeners = (currentEntangledListeners = [])
currentEntangledPendingCount = 0
currentEntangledLane = requestTransitionLane()
currentEntangledActionThenable = {
status: 'pending',
value: void 0,
then: function (resolve) {
entangledListeners.push(resolve)
},
}
}
currentEntangledPendingCount++
thenable.then(pingEngtangledActionScope, pingEngtangledActionScope)
return thenable
}
function pingEngtangledActionScope() {
if (
0 === --currentEntangledPendingCount &&
null !== currentEntangledListeners
) {
null !== currentEntangledActionThenable &&
(currentEntangledActionThenable.status = 'fulfilled')
var listeners = currentEntangledListeners
currentEntangledListeners = null
currentEntangledLane = 0
currentEntangledActionThenable = null
for (var i = 0; i < listeners.length; i++) (0, listeners[i])()
}
}
function chainThenableValue(thenable, result) {
var listeners = [],
thenableWithOverride = {
status: 'pending',
value: null,
reason: null,
then: function (resolve) {
listeners.push(resolve)
},
}
thenable.then(
function () {
thenableWithOverride.status = 'fulfilled'
thenableWithOverride.value = result
for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result)
},
function (error) {
thenableWithOverride.status = 'rejected'
thenableWithOverride.reason = error
for (error = 0; error < listeners.length; error++)
(0, listeners[error])(void 0)
}
)
return thenableWithOverride
}
function peekCacheFromPool() {
var cacheResumedFromPreviousRender = resumedCache.current
return null !== cacheResumedFromPreviousRender
? cacheResumedFromPreviousRender
: workInProgressRoot.pooledCache
}
function pushTransition(offscreenWorkInProgress, prevCachePool) {
null === prevCachePool
? push(resumedCache, resumedCache.current, offscreenWorkInProgress)
: push(resumedCache, prevCachePool.pool, offscreenWorkInProgress)
}
function getSuspendedCache() {
var cacheFromPool = peekCacheFromPool()
return null === cacheFromPool
? null
: { parent: CacheContext._currentValue, pool: cacheFromPool }
}
function createThenableState() {
return { didWarnAboutUncachedPromise: !1, thenables: [] }
}
function isThenableResolved(thenable) {
thenable = thenable.status
return 'fulfilled' === thenable || 'rejected' === thenable
}
function trackUsedThenable(thenableState, thenable, index) {
null !== ReactSharedInternals.actQueue &&
(ReactSharedInternals.didUsePromise = !0)
var trackedThenables = thenableState.thenables
index = trackedThenables[index]
void 0 === index
? trackedThenables.push(thenable)
: index !== thenable &&
(thenableState.didWarnAboutUncachedPromise ||
((thenableState.didWarnAboutUncachedPromise = !0),
console.error(
'A component was suspended by an uncached promise. Creating promises inside a Client Component or hook is not yet supported, except via a Suspense-compatible library or framework.'
)),
thenable.then(noop$1, noop$1),
(thenable = index))
if (void 0 === thenable._debugInfo) {
thenableState = performance.now()
trackedThenables = thenable.displayName
var ioInfo = {
name:
'string' === typeof trackedThenables ? trackedThenables : 'Promise',
start: thenableState,
end: thenableState,
value: thenable,
}
thenable._debugInfo = [{ awaited: ioInfo }]
'fulfilled' !== thenable.status &&
'rejected' !== thenable.status &&
((thenableState = function () {
ioInfo.end = performance.now()
}),
thenable.then(thenableState, thenableState))
}
switch (thenable.status) {
case 'fulfilled':
return thenable.value
case 'rejected':
throw (
(thenableState = thenable.reason),
checkIfUseWrappedInAsyncCatch(thenableState),
thenableState
)
default:
if ('string' === typeof thenable.status) thenable.then(noop$1, noop$1)
else {
thenableState = workInProgressRoot
if (
null !== thenableState &&
100 < thenableState.shellSuspendCounter
)
throw Error(
"An unknown Component is an async Client Component. Only Server Components can be async at the moment. This error is often caused by accidentally adding `'use client'` to a module that was originally written for the server."
)
thenableState = thenable
thenableState.status = 'pending'
thenableState.then(
function (fulfilledValue) {
if ('pending' === thenable.status) {
var fulfilledThenable = thenable
fulfilledThenable.status = 'fulfilled'
fulfilledThenable.value = fulfilledValue
}
},
function (error) {
if ('pending' === thenable.status) {
var rejectedThenable = thenable
rejectedThenable.status = 'rejected'
rejectedThenable.reason = error
}
}
)
}
switch (thenable.status) {
case 'fulfilled':
return thenable.value
case 'rejected':
throw (
(thenableState = thenable.reason),
checkIfUseWrappedInAsyncCatch(thenableState),
thenableState
)
}
suspendedThenable = thenable
needsToResetSuspendedThenableDEV = !0
throw SuspenseException
}
}
function resolveLazy(lazyType) {
try {
return callLazyInitInDEV(lazyType)
} catch (x) {
if (null !== x && 'object' === typeof x && 'function' === typeof x.then)
throw (
(suspendedThenable = x),
(needsToResetSuspendedThenableDEV = !0),
SuspenseException
)
throw x
}
}
function getSuspendedThenable() {
if (null === suspendedThenable)
throw Error(
'Expected a suspended thenable. This is a bug in React. Please file an issue.'
)
var thenable = suspendedThenable
suspendedThenable = null
needsToResetSuspendedThenableDEV = !1
return thenable
}
function checkIfUseWrappedInAsyncCatch(rejectedReason) {
if (
rejectedReason === SuspenseException ||
rejectedReason === SuspenseActionException
)
throw Error(
"Hooks are not supported inside an async component. This error is often caused by accidentally adding `'use client'` to a module that was originally written for the server."
)
}
function pushDebugInfo(debugInfo) {
var previousDebugInfo = currentDebugInfo
null != debugInfo &&
(currentDebugInfo =
null === previousDebugInfo
? debugInfo
: previousDebugInfo.concat(debugInfo))
return previousDebugInfo
}
function validateFragmentProps(element, fiber, returnFiber) {
for (var keys = Object.keys(element.props), i = 0; i < keys.length; i++) {
var key = keys[i]
if ('children' !== key && 'key' !== key) {
null === fiber &&
((fiber = createFiberFromElement(element, returnFiber.mode, 0)),
(fiber._debugInfo = currentDebugInfo),
(fiber.return = returnFiber))
runWithFiberInDEV(
fiber,
function (erroredKey) {
console.error(
'Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.',
erroredKey
)
},
key
)
break
}
}
}
function unwrapThenable(thenable) {
var index = thenableIndexCounter$1
thenableIndexCounter$1 += 1
null === thenableState$1 && (thenableState$1 = createThenableState())
return trackUsedThenable(thenableState$1, thenable, index)
}
function coerceRef(workInProgress, element) {
element = element.props.ref
workInProgress.ref = void 0 !== element ? element : null
}
function throwOnInvalidObjectType(returnFiber, newChild) {
if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)
throw Error(
'A React Element from an older version of React was rendered. This is not supported. It can happen if:\n- Multiple copies of the "react" package is used.\n- A library pre-bundled an old copy of "react" or "react/jsx-runtime".\n- A compiler tries to "inline" JSX instead of using the runtime.'
)
returnFiber = Object.prototype.toString.call(newChild)
throw Error(
'Objects are not valid as a React child (found: ' +
('[object Object]' === returnFiber
? 'object with keys {' + Object.keys(newChild).join(', ') + '}'
: returnFiber) +
'). If you meant to render a collection of children, use an array instead.'
)
}
function warnOnFunctionType(returnFiber, invalidChild) {
var parentName = getComponentNameFromFiber(returnFiber) || 'Component'
ownerHasFunctionTypeWarning[parentName] ||
((ownerHasFunctionTypeWarning[parentName] = !0),
(invalidChild =
invalidChild.displayName || invalidChild.name || 'Component'),
3 === returnFiber.tag
? console.error(
'Functions are not valid as a React child. This may happen if you return %s instead of <%s /> from render. Or maybe you meant to call this function rather than return it.\n root.render(%s)',
invalidChild,
invalidChild,
invalidChild
)
: console.error(
'Functions are not valid as a React child. This may happen if you return %s instead of <%s /> from render. Or maybe you meant to call this function rather than return it.\n <%s>{%s}</%s>',
invalidChild,
invalidChild,
parentName,
invalidChild,
parentName
))
}
function warnOnSymbolType(returnFiber, invalidChild) {
var parentName = getComponentNameFromFiber(returnFiber) || 'Component'
ownerHasSymbolTypeWarning[parentName] ||
((ownerHasSymbolTypeWarning[parentName] = !0),
(invalidChild = String(invalidChild)),
3 === returnFiber.tag
? console.error(
'Symbols are not valid as a React child.\n root.render(%s)',
invalidChild
)
: console.error(
'Symbols are not valid as a React child.\n <%s>%s</%s>',
parentName,
invalidChild,
parentName
))
}
function createChildReconciler(shouldTrackSideEffects) {
function deleteChild(returnFiber, childToDelete) {
if (shouldTrackSideEffects) {
var deletions = returnFiber.deletions
null === deletions
? ((returnFiber.deletions = [childToDelete]),
(returnFiber.flags |= 16))
: deletions.push(childToDelete)
}
}
function deleteRemainingChildren(returnFiber, currentFirstChild) {
if (!shouldTrackSideEffects) return null
for (; null !== currentFirstChild; )
(deleteChild(returnFiber, currentFirstChild),
(currentFirstChild = currentFirstChild.sibling))
return null
}
function mapRemainingChildren(currentFirstChild) {
for (var existingChildren = new Map(); null !== currentFirstChild; )
(null !== currentFirstChild.key
? existingChildren.set(currentFirstChild.key, currentFirstChild)
: existingChildren.set(currentFirstChild.index, currentFirstChild),
(currentFirstChild = currentFirstChild.sibling))
return existingChildren
}
function useFiber(fiber, pendingProps) {
fiber = createWorkInProgress(fiber, pendingProps)
fiber.index = 0
fiber.sibling = null
return fiber
}
function placeChild(newFiber, lastPlacedIndex, newIndex) {
newFiber.index = newIndex
if (!shouldTrackSideEffects)
return ((newFiber.flags |= 1048576), lastPlacedIndex)
newIndex = newFiber.alternate
if (null !== newIndex)
return (
(newIndex = newIndex.index),
newIndex < lastPlacedIndex
? ((newFiber.flags |= 67108866), lastPlacedIndex)
: newIndex
)
newFiber.flags |= 67108866
return lastPlacedIndex
}
function placeSingleChild(newFiber) {
shouldTrackSideEffects &&
null === newFiber.alternate &&
(newFiber.flags |= 67108866)
return newFiber
}
function updateTextNode(returnFiber, current, textContent, lanes) {
if (null === current || 6 !== current.tag)
return (
(current = createFiberFromText(
textContent,
returnFiber.mode,
lanes
)),
(current.return = returnFiber),
(current._debugOwner = returnFiber),
(current._debugTask = returnFiber._debugTask),
(current._debugInfo = currentDebugInfo),
current
)
current = useFiber(current, textContent)
current.return = returnFiber
current._debugInfo = currentDebugInfo
return current
}
function updateElement(returnFiber, current, element, lanes) {
var elementType = element.type
if (elementType === REACT_FRAGMENT_TYPE)
return (
(current = updateFragment(
returnFiber,
current,
element.props.children,
lanes,
element.key
)),
validateFragmentProps(element, current, returnFiber),
current
)
if (
null !== current &&
(current.elementType === elementType ||
isCompatibleFamilyForHotReloading(current, element) ||
('object' === typeof elementType &&
null !== elementType &&
elementType.$$typeof === REACT_LAZY_TYPE &&
resolveLazy(elementType) === current.type))
)
return (
(current = useFiber(current, element.props)),
coerceRef(current, element),
(current.return = returnFiber),
(current._debugOwner = element._owner),
(current._debugInfo = currentDebugInfo),
current
)
current = createFiberFromElement(element, returnFiber.mode, lanes)
coerceRef(current, element)
current.return = returnFiber
current._debugInfo = currentDebugInfo
return current
}
function updatePortal(returnFiber, current, portal, lanes) {
if (
null === current ||
4 !== current.tag ||
current.stateNode.containerInfo !== portal.containerInfo ||
current.stateNode.implementation !== portal.implementation
)
return (
(current = createFiberFromPortal(portal, returnFiber.mode, lanes)),
(current.return = returnFiber),
(current._debugInfo = currentDebugInfo),
current
)
current = useFiber(current, portal.children || [])
current.return = returnFiber
current._debugInfo = currentDebugInfo
return current
}
function updateFragment(returnFiber, current, fragment, lanes, key) {
if (null === current || 7 !== current.tag)
return (
(current = createFiberFromFragment(
fragment,
returnFiber.mode,
lanes,
key
)),
(current.return = returnFiber),
(current._debugOwner = returnFiber),
(current._debugTask = returnFiber._debugTask),
(current._debugInfo = currentDebugInfo),
current
)
current = useFiber(current, fragment)
current.return = returnFiber
current._debugInfo = currentDebugInfo
return current
}
function createChild(returnFiber, newChild, lanes) {
if (
('string' === typeof newChild && '' !== newChild) ||
'number' === typeof newChild ||
'bigint' === typeof newChild
)
return (
(newChild = createFiberFromText(
'' + newChild,
returnFiber.mode,
lanes
)),
(newChild.return = returnFiber),
(newChild._debugOwner = returnFiber),
(newChild._debugTask = returnFiber._debugTask),
(newChild._debugInfo = currentDebugInfo),
newChild
)
if ('object' === typeof newChild && null !== newChild) {
switch (newChild.$$typeof) {
case REACT_ELEMENT_TYPE:
return (
(lanes = createFiberFromElement(
newChild,
returnFiber.mode,
lanes
)),
coerceRef(lanes, newChild),
(lanes.return = returnFiber),
(returnFiber = pushDebugInfo(newChild._debugInfo)),
(lanes._debugInfo = currentDebugInfo),
(currentDebugInfo = returnFiber),
lanes
)
case REACT_PORTAL_TYPE:
return (
(newChild = createFiberFromPortal(
newChild,
returnFiber.mode,
lanes
)),
(newChild.return = returnFiber),
(newChild._debugInfo = currentDebugInfo),
newChild
)
case REACT_LAZY_TYPE:
var _prevDebugInfo = pushDebugInfo(newChild._debugInfo)
newChild = resolveLazy(newChild)
returnFiber = createChild(returnFiber, newChild, lanes)
currentDebugInfo = _prevDebugInfo
return returnFiber
}
if (isArrayImpl(newChild) || getIteratorFn(newChild))
return (
(lanes = createFiberFromFragment(
newChild,
returnFiber.mode,
lanes,
null
)),
(lanes.return = returnFiber),
(lanes._debugOwner = returnFiber),
(lanes._debugTask = returnFiber._debugTask),
(returnFiber = pushDebugInfo(newChild._debugInfo)),
(lanes._debugInfo = currentDebugInfo),
(currentDebugInfo = returnFiber),
lanes
)
if ('function' === typeof newChild.then)
return (
(_prevDebugInfo = pushDebugInfo(newChild._debugInfo)),
(returnFiber = createChild(
returnFiber,
unwrapThenable(newChild),
lanes
)),
(currentDebugInfo = _prevDebugInfo),
returnFiber
)
if (newChild.$$typeof === REACT_CONTEXT_TYPE)
return createChild(
returnFiber,
readContextDuringReconciliation(returnFiber, newChild),
lanes
)
throwOnInvalidObjectType(returnFiber, newChild)
}
'function' === typeof newChild &&
warnOnFunctionType(returnFiber, newChild)
'symbol' === typeof newChild && warnOnSymbolType(returnFiber, newChild)
return null
}
function updateSlot(returnFiber, oldFiber, newChild, lanes) {
var key = null !== oldFiber ? oldFiber.key : null
if (
('string' === typeof newChild && '' !== newChild) ||
'number' === typeof newChild ||
'bigint' === typeof newChild
)
return null !== key
? null
: updateTextNode(returnFiber, oldFiber, '' + newChild, lanes)
if ('object' === typeof newChild && null !== newChild) {
switch (newChild.$$typeof) {
case REACT_ELEMENT_TYPE:
return newChild.key === key
? ((key = pushDebugInfo(newChild._debugInfo)),
(returnFiber = updateElement(
returnFiber,
oldFiber,
newChild,
lanes
)),
(currentDebugInfo = key),
returnFiber)
: null
case REACT_PORTAL_TYPE:
return newChild.key === key
? updatePortal(returnFiber, oldFiber, newChild, lanes)
: null
case REACT_LAZY_TYPE:
return (
(key = pushDebugInfo(newChild._debugInfo)),
(newChild = resolveLazy(newChild)),
(returnFiber = updateSlot(
returnFiber,
oldFiber,
newChild,
lanes
)),
(currentDebugInfo = key),
returnFiber
)
}
if (isArrayImpl(newChild) || getIteratorFn(newChild)) {
if (null !== key) return null
key = pushDebugInfo(newChild._debugInfo)
returnFiber = updateFragment(
returnFiber,
oldFiber,
newChild,
lanes,
null
)
currentDebugInfo = key
return returnFiber
}
if ('function' === typeof newChild.then)
return (
(key = pushDebugInfo(newChild._debugInfo)),
(returnFiber = updateSlot(
returnFiber,
oldFiber,
unwrapThenable(newChild),
lanes
)),
(currentDebugInfo = key),
returnFiber
)
if (newChild.$$typeof === REACT_CONTEXT_TYPE)
return updateSlot(
returnFiber,
oldFiber,
readContextDuringReconciliation(returnFiber, newChild),
lanes
)
throwOnInvalidObjectType(returnFiber, newChild)
}
'function' === typeof newChild &&
warnOnFunctionType(returnFiber, newChild)
'symbol' === typeof newChild && warnOnSymbolType(returnFiber, newChild)
return null
}
function updateFromMap(
existingChildren,
returnFiber,
newIdx,
newChild,
lanes
) {
if (
('string' === typeof newChild && '' !== newChild) ||
'number' === typeof newChild ||
'bigint' === typeof newChild
)
return (
(existingChildren = existingChildren.get(newIdx) || null),
updateTextNode(returnFiber, existingChildren, '' + newChild, lanes)
)
if ('object' === typeof newChild && null !== newChild) {
switch (newChild.$$typeof) {
case REACT_ELEMENT_TYPE:
return (
(newIdx =
existingChildren.get(
null === newChild.key ? newIdx : newChild.key
) || null),
(existingChildren = pushDebugInfo(newChild._debugInfo)),
(returnFiber = updateElement(
returnFiber,
newIdx,
newChild,
lanes
)),
(currentDebugInfo = existingChildren),
returnFiber
)
case REACT_PORTAL_TYPE:
return (
(existingChildren =
existingChildren.get(
null === newChild.key ? newIdx : newChild.key
) || null),
updatePortal(returnFiber, existingChildren, newChild, lanes)
)
case REACT_LAZY_TYPE:
var _prevDebugInfo7 = pushDebugInfo(newChild._debugInfo)
newChild = resolveLazy(newChild)
returnFiber = updateFromMap(
existingChildren,
returnFiber,
newIdx,
newChild,
lanes
)
currentDebugInfo = _prevDebugInfo7
return returnFiber
}
if (isArrayImpl(newChild) || getIteratorFn(newChild))
return (
(newIdx = existingChildren.get(newIdx) || null),
(existingChildren = pushDebugInfo(newChild._debugInfo)),
(returnFiber = updateFragment(
returnFiber,
newIdx,
newChild,
lanes,
null
)),
(currentDebugInfo = existingChildren),
returnFiber
)
if ('function' === typeof newChild.then)
return (
(_prevDebugInfo7 = pushDebugInfo(newChild._debugInfo)),
(returnFiber = updateFromMap(
existingChildren,
returnFiber,
newIdx,
unwrapThenable(newChild),
lanes
)),
(currentDebugInfo = _prevDebugInfo7),
returnFiber
)
if (newChild.$$typeof === REACT_CONTEXT_TYPE)
return updateFromMap(
existingChildren,
returnFiber,
newIdx,
readContextDuringReconciliation(returnFiber, newChild),
lanes
)
throwOnInvalidObjectType(returnFiber, newChild)
}
'function' === typeof newChild &&
warnOnFunctionType(returnFiber, newChild)
'symbol' === typeof newChild && warnOnSymbolType(returnFiber, newChild)
return null
}
function warnOnInvalidKey(returnFiber, workInProgress, child, knownKeys) {
if ('object' !== typeof child || null === child) return knownKeys
switch (child.$$typeof) {
case REACT_ELEMENT_TYPE:
case REACT_PORTAL_TYPE:
warnForMissingKey(returnFiber, workInProgress, child)
var key = child.key
if ('string' !== typeof key) break
if (null === knownKeys) {
knownKeys = new Set()
knownKeys.add(key)
break
}
if (!knownKeys.has(key)) {
knownKeys.add(key)
break
}
runWithFiberInDEV(workInProgress, function () {
console.error(
'Encountered two children with the same key, `%s`. Keys should be unique so that components maintain their identity across updates. Non-unique keys may cause children to be duplicated and/or omitted \u2014 the behavior is unsupported and could change in a future version.',
key
)
})
break
case REACT_LAZY_TYPE:
;((child = resolveLazy(child)),
warnOnInvalidKey(returnFiber, workInProgress, child, knownKeys))
}
return knownKeys
}
function reconcileChildrenArray(
returnFiber,
currentFirstChild,
newChildren,
lanes
) {
for (
var knownKeys = null,
resultingFirstChild = null,
previousNewFiber = null,
oldFiber = currentFirstChild,
newIdx = (currentFirstChild = 0),
nextOldFiber = null;
null !== oldFiber && newIdx < newChildren.length;
newIdx++
) {
oldFiber.index > newIdx
? ((nextOldFiber = oldFiber), (oldFiber = null))
: (nextOldFiber = oldFiber.sibling)
var newFiber = updateSlot(
returnFiber,
oldFiber,
newChildren[newIdx],
lanes
)
if (null === newFiber) {
null === oldFiber && (oldFiber = nextOldFiber)
break
}
knownKeys = warnOnInvalidKey(
returnFiber,
newFiber,
newChildren[newIdx],
knownKeys
)
shouldTrackSideEffects &&
oldFiber &&
null === newFiber.alternate &&
deleteChild(returnFiber, oldFiber)
currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx)
null === previousNewFiber
? (resultingFirstChild = newFiber)
: (previousNewFiber.sibling = newFiber)
previousNewFiber = newFiber
oldFiber = nextOldFiber
}
if (newIdx === newChildren.length)
return (
deleteRemainingChildren(returnFiber, oldFiber),
isHydrating && pushTreeFork(returnFiber, newIdx),
resultingFirstChild
)
if (null === oldFiber) {
for (; newIdx < newChildren.length; newIdx++)
((oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),
null !== oldFiber &&
((knownKeys = warnOnInvalidKey(
returnFiber,
oldFiber,
newChildren[newIdx],
knownKeys
)),
(currentFirstChild = placeChild(
oldFiber,
currentFirstChild,
newIdx
)),
null === previousNewFiber
? (resultingFirstChild = oldFiber)
: (previousNewFiber.sibling = oldFiber),
(previousNewFiber = oldFiber)))
isHydrating && pushTreeFork(returnFiber, newIdx)
return resultingFirstChild
}
for (
oldFiber = mapRemainingChildren(oldFiber);
newIdx < newChildren.length;
newIdx++
)
((nextOldFiber = updateFromMap(
oldFiber,
returnFiber,
newIdx,
newChildren[newIdx],
lanes
)),
null !== nextOldFiber &&
((knownKeys = warnOnInvalidKey(
returnFiber,
nextOldFiber,
newChildren[newIdx],
knownKeys
)),
shouldTrackSideEffects &&
null !== nextOldFiber.alternate &&
oldFiber.delete(
null === nextOldFiber.key ? newIdx : nextOldFiber.key
),
(currentFirstChild = placeChild(
nextOldFiber,
currentFirstChild,
newIdx
)),
null === previousNewFiber
? (resultingFirstChild = nextOldFiber)
: (previousNewFiber.sibling = nextOldFiber),
(previousNewFiber = nextOldFiber)))
shouldTrackSideEffects &&
oldFiber.forEach(function (child) {
return deleteChild(returnFiber, child)
})
isHydrating && pushTreeFork(returnFiber, newIdx)
return resultingFirstChild
}
function reconcileChildrenIterator(
returnFiber,
currentFirstChild,
newChildren,
lanes
) {
if (null == newChildren)
throw Error('An iterable object provided no iterator.')
for (
var resultingFirstChild = null,
previousNewFiber = null,
oldFiber = currentFirstChild,
newIdx = (currentFirstChild = 0),
nextOldFiber = null,
knownKeys = null,
step = newChildren.next();
null !== oldFiber && !step.done;
newIdx++, step = newChildren.next()
) {
oldFiber.index > newIdx
? ((nextOldFiber = oldFiber), (oldFiber = null))
: (nextOldFiber = oldFiber.sibling)
var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes)
if (null === newFiber) {
null === oldFiber && (oldFiber = nextOldFiber)
break
}
knownKeys = warnOnInvalidKey(
returnFiber,
newFiber,
step.value,
knownKeys
)
shouldTrackSideEffects &&
oldFiber &&
null === newFiber.alternate &&
deleteChild(returnFiber, oldFiber)
currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx)
null === previousNewFiber
? (resultingFirstChild = newFiber)
: (previousNewFiber.sibling = newFiber)
previousNewFiber = newFiber
oldFiber = nextOldFiber
}
if (step.done)
return (
deleteRemainingChildren(returnFiber, oldFiber),
isHydrating && pushTreeFork(returnFiber, newIdx),
resultingFirstChild
)
if (null === oldFiber) {
for (; !step.done; newIdx++, step = newChildren.next())
((oldFiber = createChild(returnFiber, step.value, lanes)),
null !== oldFiber &&
((knownKeys = warnOnInvalidKey(
returnFiber,
oldFiber,
step.value,
knownKeys
)),
(currentFirstChild = placeChild(
oldFiber,
currentFirstChild,
newIdx
)),
null === previousNewFiber
? (resultingFirstChild = oldFiber)
: (previousNewFiber.sibling = oldFiber),
(previousNewFiber = oldFiber)))
isHydrating && pushTreeFork(returnFiber, newIdx)
return resultingFirstChild
}
for (
oldFiber = mapRemainingChildren(oldFiber);
!step.done;
newIdx++, step = newChildren.next()
)
((nextOldFiber = updateFromMap(
oldFiber,
returnFiber,
newIdx,
step.value,
lanes
)),
null !== nextOldFiber &&
((knownKeys = warnOnInvalidKey(
returnFiber,
nextOldFiber,
step.value,
knownKeys
)),
shouldTrackSideEffects &&
null !== nextOldFiber.alternate &&
oldFiber.delete(
null === nextOldFiber.key ? newIdx : nextOldFiber.key
),
(currentFirstChild = placeChild(
nextOldFiber,
currentFirstChild,
newIdx
)),
null === previousNewFiber
? (resultingFirstChild = nextOldFiber)
: (previousNewFiber.sibling = nextOldFiber),
(previousNewFiber = nextOldFiber)))
shouldTrackSideEffects &&
oldFiber.forEach(function (child) {
return deleteChild(returnFiber, child)
})
isHydrating && pushTreeFork(returnFiber, newIdx)
return resultingFirstChild
}
function reconcileChildFibersImpl(
returnFiber,
currentFirstChild,
newChild,
lanes
) {
'object' === typeof newChild &&
null !== newChild &&
newChild.type === REACT_FRAGMENT_TYPE &&
null === newChild.key &&
(validateFragmentProps(newChild, null, returnFiber),
(newChild = newChild.props.children))
if ('object' === typeof newChild && null !== newChild) {
switch (newChild.$$typeof) {
case REACT_ELEMENT_TYPE:
var prevDebugInfo = pushDebugInfo(newChild._debugInfo)
a: {
for (var key = newChild.key; null !== currentFirstChild; ) {
if (currentFirstChild.key === key) {
key = newChild.type
if (key === REACT_FRAGMENT_TYPE) {
if (7 === currentFirstChild.tag) {
deleteRemainingChildren(
returnFiber,
currentFirstChild.sibling
)
lanes = useFiber(
currentFirstChild,
newChild.props.children
)
lanes.return = returnFiber
lanes._debugOwner = newChild._owner
lanes._debugInfo = currentDebugInfo
validateFragmentProps(newChild, lanes, returnFiber)
returnFiber = lanes
break a
}
} else if (
currentFirstChild.elementType === key ||
isCompatibleFamilyForHotReloading(
currentFirstChild,
newChild
) ||
('object' === typeof key &&
null !== key &&
key.$$typeof === REACT_LAZY_TYPE &&
resolveLazy(key) === currentFirstChild.type)
) {
deleteRemainingChildren(
returnFiber,
currentFirstChild.sibling
)
lanes = useFiber(currentFirstChild, newChild.props)
coerceRef(lanes, newChild)
lanes.return = returnFiber
lanes._debugOwner = newChild._owner
lanes._debugInfo = currentDebugInfo
returnFiber = lanes
break a
}
deleteRemainingChildren(returnFiber, currentFirstChild)
break
} else deleteChild(returnFiber, currentFirstChild)
currentFirstChild = currentFirstChild.sibling
}
newChild.type === REACT_FRAGMENT_TYPE
? ((lanes = createFiberFromFragment(
newChild.props.children,
returnFiber.mode,
lanes,
newChild.key
)),
(lanes.return = returnFiber),
(lanes._debugOwner = returnFiber),
(lanes._debugTask = returnFiber._debugTask),
(lanes._debugInfo = currentDebugInfo),
validateFragmentProps(newChild, lanes, returnFiber),
(returnFiber = lanes))
: ((lanes = createFiberFromElement(
newChild,
returnFiber.mode,
lanes
)),
coerceRef(lanes, newChild),
(lanes.return = returnFiber),
(lanes._debugInfo = currentDebugInfo),
(returnFiber = lanes))
}
returnFiber = placeSingleChild(returnFiber)
currentDebugInfo = prevDebugInfo
return returnFiber
case REACT_PORTAL_TYPE:
a: {
prevDebugInfo = newChild
for (
newChild = prevDebugInfo.key;
null !== currentFirstChild;
) {
if (currentFirstChild.key === newChild)
if (
4 === currentFirstChild.tag &&
currentFirstChild.stateNode.containerInfo ===
prevDebugInfo.containerInfo &&
currentFirstChild.stateNode.implementation ===
prevDebugInfo.implementation
) {
deleteRemainingChildren(
returnFiber,
currentFirstChild.sibling
)
lanes = useFiber(
currentFirstChild,
prevDebugInfo.children || []
)
lanes.return = returnFiber
returnFiber = lanes
break a
} else {
deleteRemainingChildren(returnFiber, currentFirstChild)
break
}
else deleteChild(returnFiber, currentFirstChild)
currentFirstChild = currentFirstChild.sibling
}
lanes = createFiberFromPortal(
prevDebugInfo,
returnFiber.mode,
lanes
)
lanes.return = returnFiber
returnFiber = lanes
}
return placeSingleChild(returnFiber)
case REACT_LAZY_TYPE:
return (
(prevDebugInfo = pushDebugInfo(newChild._debugInfo)),
(newChild = resolveLazy(newChild)),
(returnFiber = reconcileChildFibersImpl(
returnFiber,
currentFirstChild,
newChild,
lanes
)),
(currentDebugInfo = prevDebugInfo),
returnFiber
)
}
if (isArrayImpl(newChild))
return (
(prevDebugInfo = pushDebugInfo(newChild._debugInfo)),
(returnFiber = reconcileChildrenArray(
returnFiber,
currentFirstChild,
newChild,
lanes
)),
(currentDebugInfo = prevDebugInfo),
returnFiber
)
if (getIteratorFn(newChild)) {
prevDebugInfo = pushDebugInfo(newChild._debugInfo)
key = getIteratorFn(newChild)
if ('function' !== typeof key)
throw Error(
'An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.'
)
var newChildren = key.call(newChild)
if (newChildren === newChild) {
if (
0 !== returnFiber.tag ||
'[object GeneratorFunction]' !==
Object.prototype.toString.call(returnFiber.type) ||
'[object Generator]' !==
Object.prototype.toString.call(newChildren)
)
(didWarnAboutGenerators ||
console.error(
'Using Iterators as children is unsupported and will likely yield unexpected results because enumerating a generator mutates it. You may convert it to an array with `Array.from()` or the `[...spread]` operator before rendering. You can also use an Iterable that can iterate multiple times over the same items.'
),
(didWarnAboutGenerators = !0))
} else
newChild.entries !== key ||
didWarnAboutMaps ||
(console.error(
'Using Maps as children is not supported. Use an array of keyed ReactElements instead.'
),
(didWarnAboutMaps = !0))
returnFiber = reconcileChildrenIterator(
returnFiber,
currentFirstChild,
newChildren,
lanes
)
currentDebugInfo = prevDebugInfo
return returnFiber
}
if ('function' === typeof newChild.then)
return (
(prevDebugInfo = pushDebugInfo(newChild._debugInfo)),
(returnFiber = reconcileChildFibersImpl(
returnFiber,
currentFirstChild,
unwrapThenable(newChild),
lanes
)),
(currentDebugInfo = prevDebugInfo),
returnFiber
)
if (newChild.$$typeof === REACT_CONTEXT_TYPE)
return reconcileChildFibersImpl(
returnFiber,
currentFirstChild,
readContextDuringReconciliation(returnFiber, newChild),
lanes
)
throwOnInvalidObjectType(returnFiber, newChild)
}
if (
('string' === typeof newChild && '' !== newChild) ||
'number' === typeof newChild ||
'bigint' === typeof newChild
)
return (
(prevDebugInfo = '' + newChild),
null !== currentFirstChild && 6 === currentFirstChild.tag
? (deleteRemainingChildren(
returnFiber,
currentFirstChild.sibling
),
(lanes = useFiber(currentFirstChild, prevDebugInfo)),
(lanes.return = returnFiber),
(returnFiber = lanes))
: (deleteRemainingChildren(returnFiber, currentFirstChild),
(lanes = createFiberFromText(
prevDebugInfo,
returnFiber.mode,
lanes
)),
(lanes.return = returnFiber),
(lanes._debugOwner = returnFiber),
(lanes._debugTask = returnFiber._debugTask),
(lanes._debugInfo = currentDebugInfo),
(returnFiber = lanes)),
placeSingleChild(returnFiber)
)
'function' === typeof newChild &&
warnOnFunctionType(returnFiber, newChild)
'symbol' === typeof newChild && warnOnSymbolType(returnFiber, newChild)
return deleteRemainingChildren(returnFiber, currentFirstChild)
}
return function (returnFiber, currentFirstChild, newChild, lanes) {
var prevDebugInfo = currentDebugInfo
currentDebugInfo = null
try {
thenableIndexCounter$1 = 0
var firstChildFiber = reconcileChildFibersImpl(
returnFiber,
currentFirstChild,
newChild,
lanes
)
thenableState$1 = null
return firstChildFiber
} catch (x) {
if (x === SuspenseException || x === SuspenseActionException) throw x
var fiber = createFiber(29, x, null, returnFiber.mode)
fiber.lanes = lanes
fiber.return = returnFiber
var debugInfo = (fiber._debugInfo = currentDebugInfo)
fiber._debugOwner = returnFiber._debugOwner
fiber._debugTask = returnFiber._debugTask
if (null != debugInfo)
for (var i = debugInfo.length - 1; 0 <= i; i--)
if ('string' === typeof debugInfo[i].stack) {
fiber._debugOwner = debugInfo[i]
fiber._debugTask = debugInfo[i].debugTask
break
}
return fiber
} finally {
currentDebugInfo = prevDebugInfo
}
}
}
function validateSuspenseListNestedChild(childSlot, index) {
var isAnArray = isArrayImpl(childSlot)
childSlot = !isAnArray && 'function' === typeof getIteratorFn(childSlot)
return isAnArray || childSlot
? ((isAnArray = isAnArray ? 'array' : 'iterable'),
console.error(
'A nested %s was passed to row #%s in <SuspenseList />. Wrap it in an additional SuspenseList to configure its revealOrder: <SuspenseList revealOrder=...> ... <SuspenseList revealOrder=...>{%s}</SuspenseList> ... </SuspenseList>',
isAnArray,
index,
isAnArray
),
!1)
: !0
}
function initializeUpdateQueue(fiber) {
fiber.updateQueue = {
baseState: fiber.memoizedState,
firstBaseUpdate: null,
lastBaseUpdate: null,
shared: { pending: null, lanes: 0, hiddenCallbacks: null },
callbacks: null,
}
}
function cloneUpdateQueue(current, workInProgress) {
current = current.updateQueue
workInProgress.updateQueue === current &&
(workInProgress.updateQueue = {
baseState: current.baseState,
firstBaseUpdate: current.firstBaseUpdate,
lastBaseUpdate: current.lastBaseUpdate,
shared: current.shared,
callbacks: null,
})
}
function createUpdate(lane) {
return {
lane: lane,
tag: UpdateState,
payload: null,
callback: null,
next: null,
}
}
function enqueueUpdate(fiber, update, lane) {
var updateQueue = fiber.updateQueue
if (null === updateQueue) return null
updateQueue = updateQueue.shared
if (
currentlyProcessingQueue === updateQueue &&
!didWarnUpdateInsideUpdate
) {
var componentName = getComponentNameFromFiber(fiber)
console.error(
'An update (setState, replaceState, or forceUpdate) was scheduled from inside an update function. Update functions should be pure, with zero side-effects. Consider using componentDidUpdate or a callback.\n\nPlease update the following component: %s',
componentName
)
didWarnUpdateInsideUpdate = !0
}
if ((executionContext & RenderContext) !== NoContext)
return (
(componentName = updateQueue.pending),
null === componentName
? (update.next = update)
: ((update.next = componentName.next),
(componentName.next = update)),
(updateQueue.pending = update),
(update = getRootForUpdatedFiber(fiber)),
markUpdateLaneFromFiberToRoot(fiber, null, lane),
update
)
enqueueUpdate$1(fiber, updateQueue, update, lane)
return getRootForUpdatedFiber(fiber)
}
function entangleTransitions(root, fiber, lane) {
fiber = fiber.updateQueue
if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194048))) {
var queueLanes = fiber.lanes
queueLanes &= root.pendingLanes
lane |= queueLanes
fiber.lanes = lane
markRootEntangled(root, lane)
}
}
function enqueueCapturedUpdate(workInProgress, capturedUpdate) {
var queue = workInProgress.updateQueue,
current = workInProgress.alternate
if (
null !== current &&
((current = current.updateQueue), queue === current)
) {
var newFirst = null,
newLast = null
queue = queue.firstBaseUpdate
if (null !== queue) {
do {
var clone = {
lane: queue.lane,
tag: queue.tag,
payload: queue.payload,
callback: null,
next: null,
}
null === newLast
? (newFirst = newLast = clone)
: (newLast = newLast.next = clone)
queue = queue.next
} while (null !== queue)
null === newLast
? (newFirst = newLast = capturedUpdate)
: (newLast = newLast.next = capturedUpdate)
} else newFirst = newLast = capturedUpdate
queue = {
baseState: current.baseState,
firstBaseUpdate: newFirst,
lastBaseUpdate: newLast,
shared: current.shared,
callbacks: current.callbacks,
}
workInProgress.updateQueue = queue
return
}
workInProgress = queue.lastBaseUpdate
null === workInProgress
? (queue.firstBaseUpdate = capturedUpdate)
: (workInProgress.next = capturedUpdate)
queue.lastBaseUpdate = capturedUpdate
}
function suspendIfUpdateReadFromEntangledAsyncAction() {
if (didReadFromEntangledAsyncAction) {
var entangledActionThenable = currentEntangledActionThenable
if (null !== entangledActionThenable) throw entangledActionThenable
}
}
function processUpdateQueue(
workInProgress,
props,
instance$jscomp$0,
renderLanes
) {
didReadFromEntangledAsyncAction = !1
var queue = workInProgress.updateQueue
hasForceUpdate = !1
currentlyProcessingQueue = queue.shared
var firstBaseUpdate = queue.firstBaseUpdate,
lastBaseUpdate = queue.lastBaseUpdate,
pendingQueue = queue.shared.pending
if (null !== pendingQueue) {
queue.shared.pending = null
var lastPendingUpdate = pendingQueue,
firstPendingUpdate = lastPendingUpdate.next
lastPendingUpdate.next = null
null === lastBaseUpdate
? (firstBaseUpdate = firstPendingUpdate)
: (lastBaseUpdate.next = firstPendingUpdate)
lastBaseUpdate = lastPendingUpdate
var current = workInProgress.alternate
null !== current &&
((current = current.updateQueue),
(pendingQueue = current.lastBaseUpdate),
pendingQueue !== lastBaseUpdate &&
(null === pendingQueue
? (current.firstBaseUpdate = firstPendingUpdate)
: (pendingQueue.next = firstPendingUpdate),
(current.lastBaseUpdate = lastPendingUpdate)))
}
if (null !== firstBaseUpdate) {
var newState = queue.baseState
lastBaseUpdate = 0
current = firstPendingUpdate = lastPendingUpdate = null
pendingQueue = firstBaseUpdate
do {
var updateLane = pendingQueue.lane & -536870913,
isHiddenUpdate = updateLane !== pendingQueue.lane
if (
isHiddenUpdate
? (workInProgressRootRenderLanes & updateLane) === updateLane
: (renderLanes & updateLane) === updateLane
) {
0 !== updateLane &&
updateLane === currentEntangledLane &&
(didReadFromEntangledAsyncAction = !0)
null !== current &&
(current = current.next =
{
lane: 0,
tag: pendingQueue.tag,
payload: pendingQueue.payload,
callback: null,
next: null,
})
a: {
updateLane = workInProgress
var partialState = pendingQueue
var nextProps = props,
instance = instance$jscomp$0
switch (partialState.tag) {
case ReplaceState:
partialState = partialState.payload
if ('function' === typeof partialState) {
isDisallowedContextReadInDEV = !0
var nextState = partialState.call(
instance,
newState,
nextProps
)
if (updateLane.mode & StrictLegacyMode) {
setIsStrictModeForDevtools(!0)
try {
partialState.call(instance, newState, nextProps)
} finally {
setIsStrictModeForDevtools(!1)
}
}
isDisallowedContextReadInDEV = !1
newState = nextState
break a
}
newState = partialState
break a
case CaptureUpdate:
updateLane.flags = (updateLane.flags & -65537) | 128
case UpdateState:
nextState = partialState.payload
if ('function' === typeof nextState) {
isDisallowedContextReadInDEV = !0
partialState = nextState.call(instance, newState, nextProps)
if (updateLane.mode & StrictLegacyMode) {
setIsStrictModeForDevtools(!0)
try {
nextState.call(instance, newState, nextProps)
} finally {
setIsStrictModeForDevtools(!1)
}
}
isDisallowedContextReadInDEV = !1
} else partialState = nextState
if (null === partialState || void 0 === partialState) break a
newState = assign({}, newState, partialState)
break a
case ForceUpdate:
hasForceUpdate = !0
}
}
updateLane = pendingQueue.callback
null !== updateLane &&
((workInProgress.flags |= 64),
isHiddenUpdate && (workInProgress.flags |= 8192),
(isHiddenUpdate = queue.callbacks),
null === isHiddenUpdate
? (queue.callbacks = [updateLane])
: isHiddenUpdate.push(updateLane))
} else
((isHiddenUpdate = {
lane: updateLane,
tag: pendingQueue.tag,
payload: pendingQueue.payload,
callback: pendingQueue.callback,
next: null,
}),
null === current
? ((firstPendingUpdate = current = isHiddenUpdate),
(lastPendingUpdate = newState))
: (current = current.next = isHiddenUpdate),
(lastBaseUpdate |= updateLane))
pendingQueue = pendingQueue.next
if (null === pendingQueue)
if (((pendingQueue = queue.shared.pending), null === pendingQueue))
break
else
((isHiddenUpdate = pendingQueue),
(pendingQueue = isHiddenUpdate.next),
(isHiddenUpdate.next = null),
(queue.lastBaseUpdate = isHiddenUpdate),
(queue.shared.pending = null))
} while (1)
null === current && (lastPendingUpdate = newState)
queue.baseState = lastPendingUpdate
queue.firstBaseUpdate = firstPendingUpdate
queue.lastBaseUpdate = current
null === firstBaseUpdate && (queue.shared.lanes = 0)
workInProgressRootSkippedLanes |= lastBaseUpdate
workInProgress.lanes = lastBaseUpdate
workInProgress.memoizedState = newState
}
currentlyProcessingQueue = null
}
function callCallback(callback, context) {
if ('function' !== typeof callback)
throw Error(
'Invalid argument passed as callback. Expected a function. Instead received: ' +
callback
)
callback.call(context)
}
function commitHiddenCallbacks(updateQueue, context) {
var hiddenCallbacks = updateQueue.shared.hiddenCallbacks
if (null !== hiddenCallbacks)
for (
updateQueue.shared.hiddenCallbacks = null, updateQueue = 0;
updateQueue < hiddenCallbacks.length;
updateQueue++
)
callCallback(hiddenCallbacks[updateQueue], context)
}
function commitCallbacks(updateQueue, context) {
var callbacks = updateQueue.callbacks
if (null !== callbacks)
for (
updateQueue.callbacks = null, updateQueue = 0;
updateQueue < callbacks.length;
updateQueue++
)
callCallback(callbacks[updateQueue], context)
}
function pushHiddenContext(fiber, context) {
var prevEntangledRenderLanes = entangledRenderLanes
push(prevEntangledRenderLanesCursor, prevEntangledRenderLanes, fiber)
push(currentTreeHiddenStackCursor, context, fiber)
entangledRenderLanes = prevEntangledRenderLanes | context.baseLanes
}
function reuseHiddenContextOnStack(fiber) {
push(prevEntangledRenderLanesCursor, entangledRenderLanes, fiber)
push(
currentTreeHiddenStackCursor,
currentTreeHiddenStackCursor.current,
fiber
)
}
function popHiddenContext(fiber) {
entangledRenderLanes = prevEntangledRenderLanesCursor.current
pop(currentTreeHiddenStackCursor, fiber)
pop(prevEntangledRenderLanesCursor, fiber)
}
function pushPrimaryTreeSuspenseHandler(handler) {
var current = handler.alternate
push(
suspenseStackCursor,
suspenseStackCursor.current & SubtreeSuspenseContextMask,
handler
)
push(suspenseHandlerStackCursor, handler, handler)
null === shellBoundary &&
(null === current || null !== currentTreeHiddenStackCursor.current
? (shellBoundary = handler)
: null !== current.memoizedState && (shellBoundary = handler))
}
function pushDehydratedActivitySuspenseHandler(fiber) {
push(suspenseStackCursor, suspenseStackCursor.current, fiber)
push(suspenseHandlerStackCursor, fiber, fiber)
null === shellBoundary && (shellBoundary = fiber)
}
function pushOffscreenSuspenseHandler(fiber) {
22 === fiber.tag
? (push(suspenseStackCursor, suspenseStackCursor.current, fiber),
push(suspenseHandlerStackCursor, fiber, fiber),
null === shellBoundary && (shellBoundary = fiber))
: reuseSuspenseHandlerOnStack(fiber)
}
function reuseSuspenseHandlerOnStack(fiber) {
push(suspenseStackCursor, suspenseStackCursor.current, fiber)
push(
suspenseHandlerStackCursor,
suspenseHandlerStackCursor.current,
fiber
)
}
function popSuspenseHandler(fiber) {
pop(suspenseHandlerStackCursor, fiber)
shellBoundary === fiber && (shellBoundary = null)
pop(suspenseStackCursor, fiber)
}
function findFirstSuspended(row) {
for (var node = row; null !== node; ) {
if (13 === node.tag) {
var state = node.memoizedState
if (
null !== state &&
((state = state.dehydrated),
null === state ||
isSuspenseInstancePending(state) ||
isSuspenseInstanceFallback(state))
)
return node
} else if (
19 === node.tag &&
('forwards' === node.memoizedProps.revealOrder ||
'backwards' === node.memoizedProps.revealOrder ||
'unstable_legacy-backwards' === node.memoizedProps.revealOrder ||
'together' === node.memoizedProps.revealOrder)
) {
if (0 !== (node.flags & 128)) return node
} else if (null !== node.child) {
node.child.return = node
node = node.child
continue
}
if (node === row) break
for (; null === node.sibling; ) {
if (null === node.return || node.return === row) return null
node = node.return
}
node.sibling.return = node.return
node = node.sibling
}
return null
}
function mountHookTypesDev() {
var hookName = currentHookNameInDev
null === hookTypesDev
? (hookTypesDev = [hookName])
: hookTypesDev.push(hookName)
}
function updateHookTypesDev() {
var hookName = currentHookNameInDev
if (
null !== hookTypesDev &&
(hookTypesUpdateIndexDev++,
hookTypesDev[hookTypesUpdateIndexDev] !== hookName)
) {
var componentName = getComponentNameFromFiber(currentlyRenderingFiber)
if (
!didWarnAboutMismatchedHooksForComponent.has(componentName) &&
(didWarnAboutMismatchedHooksForComponent.add(componentName),
null !== hookTypesDev)
) {
for (var table = '', i = 0; i <= hookTypesUpdateIndexDev; i++) {
var oldHookName = hookTypesDev[i],
newHookName =
i === hookTypesUpdateIndexDev ? hookName : oldHookName
for (
oldHookName = i + 1 + '. ' + oldHookName;
30 > oldHookName.length;
)
oldHookName += ' '
oldHookName += newHookName + '\n'
table += oldHookName
}
console.error(
'React has detected a change in the order of Hooks called by %s. This will lead to bugs and errors if not fixed. For more information, read the Rules of Hooks: https://react.dev/link/rules-of-hooks\n\n Previous render Next render\n ------------------------------------------------------\n%s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n',
componentName,
table
)
}
}
}
function checkDepsAreArrayDev(deps) {
void 0 === deps ||
null === deps ||
isArrayImpl(deps) ||
console.error(
'%s received a final argument that is not an array (instead, received `%s`). When specified, the final argument must be an array.',
currentHookNameInDev,
typeof deps
)
}
function warnOnUseFormStateInDev() {
var componentName = getComponentNameFromFiber(currentlyRenderingFiber)
didWarnAboutUseFormState.has(componentName) ||
(didWarnAboutUseFormState.add(componentName),
console.error(
'ReactDOM.useFormState has been renamed to React.useActionState. Please update %s to use React.useActionState.',
componentName
))
}
function throwInvalidHookError() {
throw Error(
'Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.'
)
}
function areHookInputsEqual(nextDeps, prevDeps) {
if (ignorePreviousDependencies) return !1
if (null === prevDeps)
return (
console.error(
'%s received a final argument during this render, but not during the previous render. Even though the final argument is optional, its type cannot change between renders.',
currentHookNameInDev
),
!1
)
nextDeps.length !== prevDeps.length &&
console.error(
'The final argument passed to %s changed size between renders. The order and size of this array must remain constant.\n\nPrevious: %s\nIncoming: %s',
currentHookNameInDev,
'[' + prevDeps.join(', ') + ']',
'[' + nextDeps.join(', ') + ']'
)
for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)
if (!objectIs(nextDeps[i], prevDeps[i])) return !1
return !0
}
function renderWithHooks(
current,
workInProgress,
Component,
props,
secondArg,
nextRenderLanes
) {
renderLanes = nextRenderLanes
currentlyRenderingFiber = workInProgress
hookTypesDev = null !== current ? current._debugHookTypes : null
hookTypesUpdateIndexDev = -1
ignorePreviousDependencies =
null !== current && current.type !== workInProgress.type
if (
'[object AsyncFunction]' ===
Object.prototype.toString.call(Component) ||
'[object AsyncGeneratorFunction]' ===
Object.prototype.toString.call(Component)
)
((nextRenderLanes = getComponentNameFromFiber(currentlyRenderingFiber)),
didWarnAboutAsyncClientComponent.has(nextRenderLanes) ||
(didWarnAboutAsyncClientComponent.add(nextRenderLanes),
console.error(
"%s is an async Client Component. Only Server Components can be async at the moment. This error is often caused by accidentally adding `'use client'` to a module that was originally written for the server.",
null === nextRenderLanes
? 'An unknown Component'
: '<' + nextRenderLanes + '>'
)))
workInProgress.memoizedState = null
workInProgress.updateQueue = null
workInProgress.lanes = 0
ReactSharedInternals.H =
null !== current && null !== current.memoizedState
? HooksDispatcherOnUpdateInDEV
: null !== hookTypesDev
? HooksDispatcherOnMountWithHookTypesInDEV
: HooksDispatcherOnMountInDEV
shouldDoubleInvokeUserFnsInHooksDEV = nextRenderLanes =
(workInProgress.mode & StrictLegacyMode) !== NoMode
var children = callComponentInDEV(Component, props, secondArg)
shouldDoubleInvokeUserFnsInHooksDEV = !1
didScheduleRenderPhaseUpdateDuringThisPass &&
(children = renderWithHooksAgain(
workInProgress,
Component,
props,
secondArg
))
if (nextRenderLanes) {
setIsStrictModeForDevtools(!0)
try {
children = renderWithHooksAgain(
workInProgress,
Component,
props,
secondArg
)
} finally {
setIsStrictModeForDevtools(!1)
}
}
finishRenderingHooks(current, workInProgress)
return children
}
function finishRenderingHooks(current, workInProgress) {
workInProgress._debugHookTypes = hookTypesDev
null === workInProgress.dependencies
? null !== thenableState &&
(workInProgress.dependencies = {
lanes: 0,
firstContext: null,
_debugThenableState: thenableState,
})
: (workInProgress.dependencies._debugThenableState = thenableState)
ReactSharedInternals.H = ContextOnlyDispatcher
var didRenderTooFewHooks =
null !== currentHook && null !== currentHook.next
renderLanes = 0
hookTypesDev =
currentHookNameInDev =
workInProgressHook =
currentHook =
currentlyRenderingFiber =
null
hookTypesUpdateIndexDev = -1
null !== current &&
(current.flags & 65011712) !== (workInProgress.flags & 65011712) &&
console.error(
'Internal React error: Expected static flag was missing. Please notify the React team.'
)
didScheduleRenderPhaseUpdate = !1
thenableIndexCounter = 0
thenableState = null
if (didRenderTooFewHooks)
throw Error(
'Rendered fewer hooks than expected. This may be caused by an accidental early return statement.'
)
null === current ||
didReceiveUpdate ||
((current = current.dependencies),
null !== current &&
checkIfContextChanged(current) &&
(didReceiveUpdate = !0))
needsToResetSuspendedThenableDEV
? ((needsToResetSuspendedThenableDEV = !1), (current = !0))
: (current = !1)
current &&
((workInProgress =
getComponentNameFromFiber(workInProgress) || 'Unknown'),
didWarnAboutUseWrappedInTryCatch.has(workInProgress) ||
didWarnAboutAsyncClientComponent.has(workInProgress) ||
(didWarnAboutUseWrappedInTryCatch.add(workInProgress),
console.error(
'`use` was called from inside a try/catch block. This is not allowed and can lead to unexpected behavior. To handle errors triggered by `use`, wrap your component in a error boundary.'
)))
}
function renderWithHooksAgain(workInProgress, Component, props, secondArg) {
currentlyRenderingFiber = workInProgress
var numberOfReRenders = 0
do {
didScheduleRenderPhaseUpdateDuringThisPass && (thenableState = null)
thenableIndexCounter = 0
didScheduleRenderPhaseUpdateDuringThisPass = !1
if (numberOfReRenders >= RE_RENDER_LIMIT)
throw Error(
'Too many re-renders. React limits the number of renders to prevent an infinite loop.'
)
numberOfReRenders += 1
ignorePreviousDependencies = !1
workInProgressHook = currentHook = null
if (null != workInProgress.updateQueue) {
var children = workInProgress.updateQueue
children.lastEffect = null
children.events = null
children.stores = null
null != children.memoCache && (children.memoCache.index = 0)
}
hookTypesUpdateIndexDev = -1
ReactSharedInternals.H = HooksDispatcherOnRerenderInDEV
children = callComponentInDEV(Component, props, secondArg)
} while (didScheduleRenderPhaseUpdateDuringThisPass)
return children
}
function TransitionAwareHostComponent() {
var dispatcher = ReactSharedInternals.H,
maybeThenable = dispatcher.useState()[0]
maybeThenable =
'function' === typeof maybeThenable.then
? useThenable(maybeThenable)
: maybeThenable
dispatcher = dispatcher.useState()[0]
;(null !== currentHook ? currentHook.memoizedState : null) !==
dispatcher && (currentlyRenderingFiber.flags |= 1024)
return maybeThenable
}
function checkDidRenderIdHook() {
var didRenderIdHook = 0 !== localIdCounter
localIdCounter = 0
return didRenderIdHook
}
function bailoutHooks(current, workInProgress, lanes) {
workInProgress.updateQueue = current.updateQueue
workInProgress.flags =
(workInProgress.mode & StrictEffectsMode) !== NoMode
? workInProgress.flags & -402655237
: workInProgress.flags & -2053
current.lanes &= ~lanes
}
function resetHooksOnUnwind(workInProgress) {
if (didScheduleRenderPhaseUpdate) {
for (
workInProgress = workInProgress.memoizedState;
null !== workInProgress;
) {
var queue = workInProgress.queue
null !== queue && (queue.pending = null)
workInProgress = workInProgress.next
}
didScheduleRenderPhaseUpdate = !1
}
renderLanes = 0
hookTypesDev =
workInProgressHook =
currentHook =
currentlyRenderingFiber =
null
hookTypesUpdateIndexDev = -1
currentHookNameInDev = null
didScheduleRenderPhaseUpdateDuringThisPass = !1
thenableIndexCounter = localIdCounter = 0
thenableState = null
}
function mountWorkInProgressHook() {
var hook = {
memoizedState: null,
baseState: null,
baseQueue: null,
queue: null,
next: null,
}
null === workInProgressHook
? (currentlyRenderingFiber.memoizedState = workInProgressHook = hook)
: (workInProgressHook = workInProgressHook.next = hook)
return workInProgressHook
}
function updateWorkInProgressHook() {
if (null === currentHook) {
var nextCurrentHook = currentlyRenderingFiber.alternate
nextCurrentHook =
null !== nextCurrentHook ? nextCurrentHook.memoizedState : null
} else nextCurrentHook = currentHook.next
var nextWorkInProgressHook =
null === workInProgressHook
? currentlyRenderingFiber.memoizedState
: workInProgressHook.next
if (null !== nextWorkInProgressHook)
((workInProgressHook = nextWorkInProgressHook),
(currentHook = nextCurrentHook))
else {
if (null === nextCurrentHook) {
if (null === currentlyRenderingFiber.alternate)
throw Error(
'Update hook called on initial render. This is likely a bug in React. Please file an issue.'
)
throw Error('Rendered more hooks than during the previous render.')
}
currentHook = nextCurrentHook
nextCurrentHook = {
memoizedState: currentHook.memoizedState,
baseState: currentHook.baseState,
baseQueue: currentHook.baseQueue,
queue: currentHook.queue,
next: null,
}
null === workInProgressHook
? (currentlyRenderingFiber.memoizedState = workInProgressHook =
nextCurrentHook)
: (workInProgressHook = workInProgressHook.next = nextCurrentHook)
}
return workInProgressHook
}
function createFunctionComponentUpdateQueue() {
return { lastEffect: null, events: null, stores: null, memoCache: null }
}
function useThenable(thenable) {
var index = thenableIndexCounter
thenableIndexCounter += 1
null === thenableState && (thenableState = createThenableState())
thenable = trackUsedThenable(thenableState, thenable, index)
index = currentlyRenderingFiber
null ===
(null === workInProgressHook
? index.memoizedState
: workInProgressHook.next) &&
((index = index.alternate),
(ReactSharedInternals.H =
null !== index && null !== index.memoizedState
? HooksDispatcherOnUpdateInDEV
: HooksDispatcherOnMountInDEV))
return thenable
}
function use(usable) {
if (null !== usable && 'object' === typeof usable) {
if ('function' === typeof usable.then) return useThenable(usable)
if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable)
}
throw Error('An unsupported type was passed to use(): ' + String(usable))
}
function useMemoCache(size) {
var memoCache = null,
updateQueue = currentlyRenderingFiber.updateQueue
null !== updateQueue && (memoCache = updateQueue.memoCache)
if (null == memoCache) {
var current = currentlyRenderingFiber.alternate
null !== current &&
((current = current.updateQueue),
null !== current &&
((current = current.memoCache),
null != current &&
(memoCache = {
data: current.data.map(function (array) {
return array.slice()
}),
index: 0,
})))
}
null == memoCache && (memoCache = { data: [], index: 0 })
null === updateQueue &&
((updateQueue = createFunctionComponentUpdateQueue()),
(currentlyRenderingFiber.updateQueue = updateQueue))
updateQueue.memoCache = memoCache
updateQueue = memoCache.data[memoCache.index]
if (void 0 === updateQueue || ignorePreviousDependencies)
for (
updateQueue = memoCache.data[memoCache.index] = Array(size),
current = 0;
current < size;
current++
)
updateQueue[current] = REACT_MEMO_CACHE_SENTINEL
else
updateQueue.length !== size &&
console.error(
'Expected a constant size argument for each invocation of useMemoCache. The previous cache was allocated with size %s but size %s was requested.',
updateQueue.length,
size
)
memoCache.index++
return updateQueue
}
function basicStateReducer(state, action) {
return 'function' === typeof action ? action(state) : action
}
function mountReducer(reducer, initialArg, init) {
var hook = mountWorkInProgressHook()
if (void 0 !== init) {
var initialState = init(initialArg)
if (shouldDoubleInvokeUserFnsInHooksDEV) {
setIsStrictModeForDevtools(!0)
try {
init(initialArg)
} finally {
setIsStrictModeForDevtools(!1)
}
}
} else initialState = initialArg
hook.memoizedState = hook.baseState = initialState
reducer = {
pending: null,
lanes: 0,
dispatch: null,
lastRenderedReducer: reducer,
lastRenderedState: initialState,
}
hook.queue = reducer
reducer = reducer.dispatch = dispatchReducerAction.bind(
null,
currentlyRenderingFiber,
reducer
)
return [hook.memoizedState, reducer]
}
function updateReducer(reducer) {
var hook = updateWorkInProgressHook()
return updateReducerImpl(hook, currentHook, reducer)
}
function updateReducerImpl(hook, current, reducer) {
var queue = hook.queue
if (null === queue)
throw Error(
'Should have a queue. You are likely calling Hooks conditionally, which is not allowed. (https://react.dev/link/invalid-hook-call)'
)
queue.lastRenderedReducer = reducer
var baseQueue = hook.baseQueue,
pendingQueue = queue.pending
if (null !== pendingQueue) {
if (null !== baseQueue) {
var baseFirst = baseQueue.next
baseQueue.next = pendingQueue.next
pendingQueue.next = baseFirst
}
current.baseQueue !== baseQueue &&
console.error(
'Internal error: Expected work-in-progress queue to be a clone. This is a bug in React.'
)
current.baseQueue = baseQueue = pendingQueue
queue.pending = null
}
pendingQueue = hook.baseState
if (null === baseQueue) hook.memoizedState = pendingQueue
else {
current = baseQueue.next
var newBaseQueueFirst = (baseFirst = null),
newBaseQueueLast = null,
update = current,
didReadFromEntangledAsyncAction = !1
do {
var updateLane = update.lane & -536870913
if (
updateLane !== update.lane
? (workInProgressRootRenderLanes & updateLane) === updateLane
: (renderLanes & updateLane) === updateLane
) {
var revertLane = update.revertLane
if (0 === revertLane)
(null !== newBaseQueueLast &&
(newBaseQueueLast = newBaseQueueLast.next =
{
lane: 0,
revertLane: 0,
gesture: null,
action: update.action,
hasEagerState: update.hasEagerState,
eagerState: update.eagerState,
next: null,
}),
updateLane === currentEntangledLane &&
(didReadFromEntangledAsyncAction = !0))
else if ((renderLanes & revertLane) === revertLane) {
update = update.next
revertLane === currentEntangledLane &&
(didReadFromEntangledAsyncAction = !0)
continue
} else
((updateLane = {
lane: 0,
revertLane: update.revertLane,
gesture: null,
action: update.action,
hasEagerState: update.hasEagerState,
eagerState: update.eagerState,
next: null,
}),
null === newBaseQueueLast
? ((newBaseQueueFirst = newBaseQueueLast = updateLane),
(baseFirst = pendingQueue))
: (newBaseQueueLast = newBaseQueueLast.next = updateLane),
(currentlyRenderingFiber.lanes |= revertLane),
(workInProgressRootSkippedLanes |= revertLane))
updateLane = update.action
shouldDoubleInvokeUserFnsInHooksDEV &&
reducer(pendingQueue, updateLane)
pendingQueue = update.hasEagerState
? update.eagerState
: reducer(pendingQueue, updateLane)
} else
((revertLane = {
lane: updateLane,
revertLane: update.revertLane,
gesture: update.gesture,
action: update.action,
hasEagerState: update.hasEagerState,
eagerState: update.eagerState,
next: null,
}),
null === newBaseQueueLast
? ((newBaseQueueFirst = newBaseQueueLast = revertLane),
(baseFirst = pendingQueue))
: (newBaseQueueLast = newBaseQueueLast.next = revertLane),
(currentlyRenderingFiber.lanes |= updateLane),
(workInProgressRootSkippedLanes |= updateLane))
update = update.next
} while (null !== update && update !== current)
null === newBaseQueueLast
? (baseFirst = pendingQueue)
: (newBaseQueueLast.next = newBaseQueueFirst)
if (
!objectIs(pendingQueue, hook.memoizedState) &&
((didReceiveUpdate = !0),
didReadFromEntangledAsyncAction &&
((reducer = currentEntangledActionThenable), null !== reducer))
)
throw reducer
hook.memoizedState = pendingQueue
hook.baseState = baseFirst
hook.baseQueue = newBaseQueueLast
queue.lastRenderedState = pendingQueue
}
null === baseQueue && (queue.lanes = 0)
return [hook.memoizedState, queue.dispatch]
}
function rerenderReducer(reducer) {
var hook = updateWorkInProgressHook(),
queue = hook.queue
if (null === queue)
throw Error(
'Should have a queue. You are likely calling Hooks conditionally, which is not allowed. (https://react.dev/link/invalid-hook-call)'
)
queue.lastRenderedReducer = reducer
var dispatch = queue.dispatch,
lastRenderPhaseUpdate = queue.pending,
newState = hook.memoizedState
if (null !== lastRenderPhaseUpdate) {
queue.pending = null
var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next)
do
((newState = reducer(newState, update.action)),
(update = update.next))
while (update !== lastRenderPhaseUpdate)
objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0)
hook.memoizedState = newState
null === hook.baseQueue && (hook.baseState = newState)
queue.lastRenderedState = newState
}
return [newState, dispatch]
}
function mountSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {
var fiber = currentlyRenderingFiber,
hook = mountWorkInProgressHook()
if (isHydrating) {
if (void 0 === getServerSnapshot)
throw Error(
'Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering.'
)
var nextSnapshot = getServerSnapshot()
didWarnUncachedGetSnapshot ||
nextSnapshot === getServerSnapshot() ||
(console.error(
'The result of getServerSnapshot should be cached to avoid an infinite loop'
),
(didWarnUncachedGetSnapshot = !0))
} else {
nextSnapshot = getSnapshot()
didWarnUncachedGetSnapshot ||
((getServerSnapshot = getSnapshot()),
objectIs(nextSnapshot, getServerSnapshot) ||
(console.error(
'The result of getSnapshot should be cached to avoid an infinite loop'
),
(didWarnUncachedGetSnapshot = !0)))
if (null === workInProgressRoot)
throw Error(
'Expected a work-in-progress root. This is a bug in React. Please file an issue.'
)
0 !== (workInProgressRootRenderLanes & 124) ||
pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot)
}
hook.memoizedState = nextSnapshot
getServerSnapshot = { value: nextSnapshot, getSnapshot: getSnapshot }
hook.queue = getServerSnapshot
mountEffect(
subscribeToStore.bind(null, fiber, getServerSnapshot, subscribe),
[subscribe]
)
fiber.flags |= 2048
pushSimpleEffect(
HasEffect | Passive,
{ destroy: void 0 },
updateStoreInstance.bind(
null,
fiber,
getServerSnapshot,
nextSnapshot,
getSnapshot
),
null
)
return nextSnapshot
}
function updateSyncExternalStore(
subscribe,
getSnapshot,
getServerSnapshot
) {
var fiber = currentlyRenderingFiber,
hook = updateWorkInProgressHook(),
isHydrating$jscomp$0 = isHydrating
if (isHydrating$jscomp$0) {
if (void 0 === getServerSnapshot)
throw Error(
'Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering.'
)
getServerSnapshot = getServerSnapshot()
} else if (
((getServerSnapshot = getSnapshot()), !didWarnUncachedGetSnapshot)
) {
var cachedSnapshot = getSnapshot()
objectIs(getServerSnapshot, cachedSnapshot) ||
(console.error(
'The result of getSnapshot should be cached to avoid an infinite loop'
),
(didWarnUncachedGetSnapshot = !0))
}
if (
(cachedSnapshot = !objectIs(
(currentHook || hook).memoizedState,
getServerSnapshot
))
)
((hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0))
hook = hook.queue
var create = subscribeToStore.bind(null, fiber, hook, subscribe)
updateEffectImpl(2048, Passive, create, [subscribe])
if (
hook.getSnapshot !== getSnapshot ||
cachedSnapshot ||
(null !== workInProgressHook &&
workInProgressHook.memoizedState.tag & HasEffect)
) {
fiber.flags |= 2048
pushSimpleEffect(
HasEffect | Passive,
{ destroy: void 0 },
updateStoreInstance.bind(
null,
fiber,
hook,
getServerSnapshot,
getSnapshot
),
null
)
if (null === workInProgressRoot)
throw Error(
'Expected a work-in-progress root. This is a bug in React. Please file an issue.'
)
isHydrating$jscomp$0 ||
0 !== (renderLanes & 124) ||
pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot)
}
return getServerSnapshot
}
function pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {
fiber.flags |= 16384
fiber = { getSnapshot: getSnapshot, value: renderedSnapshot }
getSnapshot = currentlyRenderingFiber.updateQueue
null === getSnapshot
? ((getSnapshot = createFunctionComponentUpdateQueue()),
(currentlyRenderingFiber.updateQueue = getSnapshot),
(getSnapshot.stores = [fiber]))
: ((renderedSnapshot = getSnapshot.stores),
null === renderedSnapshot
? (getSnapshot.stores = [fiber])
: renderedSnapshot.push(fiber))
}
function updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {
inst.value = nextSnapshot
inst.getSnapshot = getSnapshot
checkIfSnapshotChanged(inst) && forceStoreRerender(fiber)
}
function subscribeToStore(fiber, inst, subscribe) {
return subscribe(function () {
checkIfSnapshotChanged(inst) && forceStoreRerender(fiber)
})
}
function checkIfSnapshotChanged(inst) {
var latestGetSnapshot = inst.getSnapshot
inst = inst.value
try {
var nextValue = latestGetSnapshot()
return !objectIs(inst, nextValue)
} catch (error) {
return !0
}
}
function forceStoreRerender(fiber) {
var root = enqueueConcurrentRenderForLane(fiber, 2)
null !== root && scheduleUpdateOnFiber(root, fiber, 2)
}
function mountStateImpl(initialState) {
var hook = mountWorkInProgressHook()
if ('function' === typeof initialState) {
var initialStateInitializer = initialState
initialState = initialStateInitializer()
if (shouldDoubleInvokeUserFnsInHooksDEV) {
setIsStrictModeForDevtools(!0)
try {
initialStateInitializer()
} finally {
setIsStrictModeForDevtools(!1)
}
}
}
hook.memoizedState = hook.baseState = initialState
hook.queue = {
pending: null,
lanes: 0,
dispatch: null,
lastRenderedReducer: basicStateReducer,
lastRenderedState: initialState,
}
return hook
}
function mountState(initialState) {
initialState = mountStateImpl(initialState)
var queue = initialState.queue,
dispatch = dispatchSetState.bind(null, currentlyRenderingFiber, queue)
queue.dispatch = dispatch
return [initialState.memoizedState, dispatch]
}
function mountOptimistic(passthrough) {
var hook = mountWorkInProgressHook()
hook.memoizedState = hook.baseState = passthrough
var queue = {
pending: null,
lanes: 0,
dispatch: null,
lastRenderedReducer: null,
lastRenderedState: null,
}
hook.queue = queue
hook = dispatchOptimisticSetState.bind(
null,
currentlyRenderingFiber,
!0,
queue
)
queue.dispatch = hook
return [passthrough, hook]
}
function updateOptimistic(passthrough, reducer) {
var hook = updateWorkInProgressHook()
return updateOptimisticImpl(hook, currentHook, passthrough, reducer)
}
function updateOptimisticImpl(hook, current, passthrough, reducer) {
hook.baseState = passthrough
return updateReducerImpl(
hook,
currentHook,
'function' === typeof reducer ? reducer : basicStateReducer
)
}
function rerenderOptimistic(passthrough, reducer) {
var hook = updateWorkInProgressHook()
if (null !== currentHook)
return updateOptimisticImpl(hook, currentHook, passthrough, reducer)
hook.baseState = passthrough
return [passthrough, hook.queue.dispatch]
}
function dispatchActionState(
fiber,
actionQueue,
setPendingState,
setState,
payload
) {
if (isRenderPhaseUpdate(fiber))
throw Error('Cannot update form state while rendering.')
fiber = actionQueue.action
if (null !== fiber) {
var actionNode = {
payload: payload,
action: fiber,
next: null,
isTransition: !0,
status: 'pending',
value: null,
reason: null,
listeners: [],
then: function (listener) {
actionNode.listeners.push(listener)
},
}
null !== ReactSharedInternals.T
? setPendingState(!0)
: (actionNode.isTransition = !1)
setState(actionNode)
setPendingState = actionQueue.pending
null === setPendingState
? ((actionNode.next = actionQueue.pending = actionNode),
runActionStateAction(actionQueue, actionNode))
: ((actionNode.next = setPendingState.next),
(actionQueue.pending = setPendingState.next = actionNode))
}
}
function runActionStateAction(actionQueue, node) {
var action = node.action,
payload = node.payload,
prevState = actionQueue.state
if (node.isTransition) {
var prevTransition = ReactSharedInternals.T,
currentTransition = {}
currentTransition._updatedFibers = new Set()
ReactSharedInternals.T = currentTransition
try {
var returnValue = action(prevState, payload),
onStartTransitionFinish = ReactSharedInternals.S
null !== onStartTransitionFinish &&
onStartTransitionFinish(currentTransition, returnValue)
handleActionReturnValue(actionQueue, node, returnValue)
} catch (error) {
onActionError(actionQueue, node, error)
} finally {
;(null !== prevTransition &&
null !== currentTransition.types &&
(null !== prevTransition.types &&
prevTransition.types !== currentTransition.types &&
console.error(
'We expected inner Transitions to have transferred the outer types set and that you cannot add to the outer Transition while inside the inner.This is a bug in React.'
),
(prevTransition.types = currentTransition.types)),
(ReactSharedInternals.T = prevTransition),
null === prevTransition &&
currentTransition._updatedFibers &&
((actionQueue = currentTransition._updatedFibers.size),
currentTransition._updatedFibers.clear(),
10 < actionQueue &&
console.warn(
'Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table.'
)))
}
} else
try {
;((currentTransition = action(prevState, payload)),
handleActionReturnValue(actionQueue, node, currentTransition))
} catch (error$4) {
onActionError(actionQueue, node, error$4)
}
}
function handleActionReturnValue(actionQueue, node, returnValue) {
null !== returnValue &&
'object' === typeof returnValue &&
'function' === typeof returnValue.then
? (ReactSharedInternals.asyncTransitions++,
returnValue.then(releaseAsyncTransition, releaseAsyncTransition),
returnValue.then(
function (nextState) {
onActionSuccess(actionQueue, node, nextState)
},
function (error) {
return onActionError(actionQueue, node, error)
}
),
node.isTransition ||
console.error(
'An async function with useActionState was called outside of a transition. This is likely not what you intended (for example, isPending will not update correctly). Either call the returned function inside startTransition, or pass it to an `action` or `formAction` prop.'
))
: onActionSuccess(actionQueue, node, returnValue)
}
function onActionSuccess(actionQueue, actionNode, nextState) {
actionNode.status = 'fulfilled'
actionNode.value = nextState
notifyActionListeners(actionNode)
actionQueue.state = nextState
actionNode = actionQueue.pending
null !== actionNode &&
((nextState = actionNode.next),
nextState === actionNode
? (actionQueue.pending = null)
: ((nextState = nextState.next),
(actionNode.next = nextState),
runActionStateAction(actionQueue, nextState)))
}
function onActionError(actionQueue, actionNode, error) {
var last = actionQueue.pending
actionQueue.pending = null
if (null !== last) {
last = last.next
do
((actionNode.status = 'rejected'),
(actionNode.reason = error),
notifyActionListeners(actionNode),
(actionNode = actionNode.next))
while (actionNode !== last)
}
actionQueue.action = null
}
function notifyActionListeners(actionNode) {
actionNode = actionNode.listeners
for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])()
}
function actionStateReducer(oldState, newState) {
return newState
}
function mountActionState(action, initialStateProp) {
if (isHydrating) {
var ssrFormState = workInProgressRoot.formState
if (null !== ssrFormState) {
a: {
var isMatching = currentlyRenderingFiber
if (isHydrating) {
if (nextHydratableInstance) {
b: {
var markerInstance = nextHydratableInstance
for (
var inRootOrSingleton = rootOrSingletonContext;
8 !== markerInstance.nodeType;
) {
if (!inRootOrSingleton) {
markerInstance = null
break b
}
markerInstance = getNextHydratable(
markerInstance.nextSibling
)
if (null === markerInstance) {
markerInstance = null
break b
}
}
inRootOrSingleton = markerInstance.data
markerInstance =
inRootOrSingleton === FORM_STATE_IS_MATCHING ||
inRootOrSingleton === FORM_STATE_IS_NOT_MATCHING
? markerInstance
: null
}
if (markerInstance) {
nextHydratableInstance = getNextHydratable(
markerInstance.nextSibling
)
isMatching = markerInstance.data === FORM_STATE_IS_MATCHING
break a
}
}
throwOnHydrationMismatch(isMatching)
}
isMatching = !1
}
isMatching && (initialStateProp = ssrFormState[0])
}
}
ssrFormState = mountWorkInProgressHook()
ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp
isMatching = {
pending: null,
lanes: 0,
dispatch: null,
lastRenderedReducer: actionStateReducer,
lastRenderedState: initialStateProp,
}
ssrFormState.queue = isMatching
ssrFormState = dispatchSetState.bind(
null,
currentlyRenderingFiber,
isMatching
)
isMatching.dispatch = ssrFormState
isMatching = mountStateImpl(!1)
inRootOrSingleton = dispatchOptimisticSetState.bind(
null,
currentlyRenderingFiber,
!1,
isMatching.queue
)
isMatching = mountWorkInProgressHook()
markerInstance = {
state: initialStateProp,
dispatch: null,
action: action,
pending: null,
}
isMatching.queue = markerInstance
ssrFormState = dispatchActionState.bind(
null,
currentlyRenderingFiber,
markerInstance,
inRootOrSingleton,
ssrFormState
)
markerInstance.dispatch = ssrFormState
isMatching.memoizedState = action
return [initialStateProp, ssrFormState, !1]
}
function updateActionState(action) {
var stateHook = updateWorkInProgressHook()
return updateActionStateImpl(stateHook, currentHook, action)
}
function updateActionStateImpl(stateHook, currentStateHook, action) {
currentStateHook = updateReducerImpl(
stateHook,
currentStateHook,
actionStateReducer
)[0]
stateHook = updateReducer(basicStateReducer)[0]
if (
'object' === typeof currentStateHook &&
null !== currentStateHook &&
'function' === typeof currentStateHook.then
)
try {
var state = useThenable(currentStateHook)
} catch (x) {
if (x === SuspenseException) throw SuspenseActionException
throw x
}
else state = currentStateHook
currentStateHook = updateWorkInProgressHook()
var actionQueue = currentStateHook.queue,
dispatch = actionQueue.dispatch
action !== currentStateHook.memoizedState &&
((currentlyRenderingFiber.flags |= 2048),
pushSimpleEffect(
HasEffect | Passive,
{ destroy: void 0 },
actionStateActionEffect.bind(null, actionQueue, action),
null
))
return [state, dispatch, stateHook]
}
function actionStateActionEffect(actionQueue, action) {
actionQueue.action = action
}
function rerenderActionState(action) {
var stateHook = updateWorkInProgressHook(),
currentStateHook = currentHook
if (null !== currentStateHook)
return updateActionStateImpl(stateHook, currentStateHook, action)
updateWorkInProgressHook()
stateHook = stateHook.memoizedState
currentStateHook = updateWorkInProgressHook()
var dispatch = currentStateHook.queue.dispatch
currentStateHook.memoizedState = action
return [stateHook, dispatch, !1]
}
function pushSimpleEffect(tag, inst, create, deps) {
tag = { tag: tag, create: create, deps: deps, inst: inst, next: null }
inst = currentlyRenderingFiber.updateQueue
null === inst &&
((inst = createFunctionComponentUpdateQueue()),
(currentlyRenderingFiber.updateQueue = inst))
create = inst.lastEffect
null === create
? (inst.lastEffect = tag.next = tag)
: ((deps = create.next),
(create.next = tag),
(tag.next = deps),
(inst.lastEffect = tag))
return tag
}
function mountRef(initialValue) {
var hook = mountWorkInProgressHook()
initialValue = { current: initialValue }
return (hook.memoizedState = initialValue)
}
function mountEffectImpl(fiberFlags, hookFlags, create, deps) {
var hook = mountWorkInProgressHook()
currentlyRenderingFiber.flags |= fiberFlags
hook.memoizedState = pushSimpleEffect(
HasEffect | hookFlags,
{ destroy: void 0 },
create,
void 0 === deps ? null : deps
)
}
function updateEffectImpl(fiberFlags, hookFlags, create, deps) {
var hook = updateWorkInProgressHook()
deps = void 0 === deps ? null : deps
var inst = hook.memoizedState.inst
null !== currentHook &&
null !== deps &&
areHookInputsEqual(deps, currentHook.memoizedState.deps)
? (hook.memoizedState = pushSimpleEffect(hookFlags, inst, create, deps))
: ((currentlyRenderingFiber.flags |= fiberFlags),
(hook.memoizedState = pushSimpleEffect(
HasEffect | hookFlags,
inst,
create,
deps
)))
}
function mountEffect(create, deps) {
;(currentlyRenderingFiber.mode & StrictEffectsMode) !== NoMode
? mountEffectImpl(276826112, Passive, create, deps)
: mountEffectImpl(8390656, Passive, create, deps)
}
function mountLayoutEffect(create, deps) {
var fiberFlags = 4194308
;(currentlyRenderingFiber.mode & StrictEffectsMode) !== NoMode &&
(fiberFlags |= 134217728)
return mountEffectImpl(fiberFlags, Layout, create, deps)
}
function imperativeHandleEffect(create, ref) {
if ('function' === typeof ref) {
create = create()
var refCleanup = ref(create)
return function () {
'function' === typeof refCleanup ? refCleanup() : ref(null)
}
}
if (null !== ref && void 0 !== ref)
return (
ref.hasOwnProperty('current') ||
console.error(
'Expected useImperativeHandle() first argument to either be a ref callback or React.createRef() object. Instead received: %s.',
'an object with keys {' + Object.keys(ref).join(', ') + '}'
),
(create = create()),
(ref.current = create),
function () {
ref.current = null
}
)
}
function mountImperativeHandle(ref, create, deps) {
'function' !== typeof create &&
console.error(
'Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.',
null !== create ? typeof create : 'null'
)
deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null
var fiberFlags = 4194308
;(currentlyRenderingFiber.mode & StrictEffectsMode) !== NoMode &&
(fiberFlags |= 134217728)
mountEffectImpl(
fiberFlags,
Layout,
imperativeHandleEffect.bind(null, create, ref),
deps
)
}
function updateImperativeHandle(ref, create, deps) {
'function' !== typeof create &&
console.error(
'Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.',
null !== create ? typeof create : 'null'
)
deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null
updateEffectImpl(
4,
Layout,
imperativeHandleEffect.bind(null, create, ref),
deps
)
}
function mountCallback(callback, deps) {
mountWorkInProgressHook().memoizedState = [
callback,
void 0 === deps ? null : deps,
]
return callback
}
function updateCallback(callback, deps) {
var hook = updateWorkInProgressHook()
deps = void 0 === deps ? null : deps
var prevState = hook.memoizedState
if (null !== deps && areHookInputsEqual(deps, prevState[1]))
return prevState[0]
hook.memoizedState = [callback, deps]
return callback
}
function mountMemo(nextCreate, deps) {
var hook = mountWorkInProgressHook()
deps = void 0 === deps ? null : deps
var nextValue = nextCreate()
if (shouldDoubleInvokeUserFnsInHooksDEV) {
setIsStrictModeForDevtools(!0)
try {
nextCreate()
} finally {
setIsStrictModeForDevtools(!1)
}
}
hook.memoizedState = [nextValue, deps]
return nextValue
}
function updateMemo(nextCreate, deps) {
var hook = updateWorkInProgressHook()
deps = void 0 === deps ? null : deps
var prevState = hook.memoizedState
if (null !== deps && areHookInputsEqual(deps, prevState[1]))
return prevState[0]
prevState = nextCreate()
if (shouldDoubleInvokeUserFnsInHooksDEV) {
setIsStrictModeForDevtools(!0)
try {
nextCreate()
} finally {
setIsStrictModeForDevtools(!1)
}
}
hook.memoizedState = [prevState, deps]
return prevState
}
function mountDeferredValue(value, initialValue) {
var hook = mountWorkInProgressHook()
return mountDeferredValueImpl(hook, value, initialValue)
}
function updateDeferredValue(value, initialValue) {
var hook = updateWorkInProgressHook()
return updateDeferredValueImpl(
hook,
currentHook.memoizedState,
value,
initialValue
)
}
function rerenderDeferredValue(value, initialValue) {
var hook = updateWorkInProgressHook()
return null === currentHook
? mountDeferredValueImpl(hook, value, initialValue)
: updateDeferredValueImpl(
hook,
currentHook.memoizedState,
value,
initialValue
)
}
function mountDeferredValueImpl(hook, value, initialValue) {
if (void 0 === initialValue || 0 !== (renderLanes & 1073741824))
return (hook.memoizedState = value)
hook.memoizedState = initialValue
hook = requestDeferredLane()
currentlyRenderingFiber.lanes |= hook
workInProgressRootSkippedLanes |= hook
return initialValue
}
function updateDeferredValueImpl(hook, prevValue, value, initialValue) {
if (objectIs(value, prevValue)) return value
if (null !== currentTreeHiddenStackCursor.current)
return (
(hook = mountDeferredValueImpl(hook, value, initialValue)),
objectIs(hook, prevValue) || (didReceiveUpdate = !0),
hook
)
if (0 === (renderLanes & 42) || 0 !== (renderLanes & 1073741824))
return ((didReceiveUpdate = !0), (hook.memoizedState = value))
hook = requestDeferredLane()
currentlyRenderingFiber.lanes |= hook
workInProgressRootSkippedLanes |= hook
return prevValue
}
function releaseAsyncTransition() {
ReactSharedInternals.asyncTransitions--
}
function startTransition(
fiber,
queue,
pendingState,
finishedState,
callback
) {
var previousPriority = ReactDOMSharedInternals.p
ReactDOMSharedInternals.p =
0 !== previousPriority && previousPriority < ContinuousEventPriority
? previousPriority
: ContinuousEventPriority
var prevTransition = ReactSharedInternals.T,
currentTransition = {}
currentTransition._updatedFibers = new Set()
ReactSharedInternals.T = currentTransition
dispatchOptimisticSetState(fiber, !1, queue, pendingState)
try {
var returnValue = callback(),
onStartTransitionFinish = ReactSharedInternals.S
null !== onStartTransitionFinish &&
onStartTransitionFinish(currentTransition, returnValue)
if (
null !== returnValue &&
'object' === typeof returnValue &&
'function' === typeof returnValue.then
) {
ReactSharedInternals.asyncTransitions++
returnValue.then(releaseAsyncTransition, releaseAsyncTransition)
var thenableForFinishedState = chainThenableValue(
returnValue,
finishedState
)
dispatchSetStateInternal(
fiber,
queue,
thenableForFinishedState,
requestUpdateLane(fiber)
)
} else
dispatchSetStateInternal(
fiber,
queue,
finishedState,
requestUpdateLane(fiber)
)
} catch (error) {
dispatchSetStateInternal(
fiber,
queue,
{ then: function () {}, status: 'rejected', reason: error },
requestUpdateLane(fiber)
)
} finally {
;((ReactDOMSharedInternals.p = previousPriority),
null !== prevTransition &&
null !== currentTransition.types &&
(null !== prevTransition.types &&
prevTransition.types !== currentTransition.types &&
console.error(
'We expected inner Transitions to have transferred the outer types set and that you cannot add to the outer Transition while inside the inner.This is a bug in React.'
),
(prevTransition.types = currentTransition.types)),
(ReactSharedInternals.T = prevTransition),
null === prevTransition &&
currentTransition._updatedFibers &&
((fiber = currentTransition._updatedFibers.size),
currentTransition._updatedFibers.clear(),
10 < fiber &&
console.warn(
'Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table.'
)))
}
}
function startHostTransition(formFiber, pendingState, action, formData) {
if (5 !== formFiber.tag)
throw Error(
'Expected the form instance to be a HostComponent. This is a bug in React.'
)
var queue = ensureFormComponentIsStateful(formFiber).queue
startTransition(
formFiber,
queue,
pendingState,
NotPendingTransition,
null === action
? noop
: function () {
requestFormReset$1(formFiber)
return action(formData)
}
)
}
function ensureFormComponentIsStateful(formFiber) {
var existingStateHook = formFiber.memoizedState
if (null !== existingStateHook) return existingStateHook
existingStateHook = {
memoizedState: NotPendingTransition,
baseState: NotPendingTransition,
baseQueue: null,
queue: {
pending: null,
lanes: 0,
dispatch: null,
lastRenderedReducer: basicStateReducer,
lastRenderedState: NotPendingTransition,
},
next: null,
}
var initialResetState = {}
existingStateHook.next = {
memoizedState: initialResetState,
baseState: initialResetState,
baseQueue: null,
queue: {
pending: null,
lanes: 0,
dispatch: null,
lastRenderedReducer: basicStateReducer,
lastRenderedState: initialResetState,
},
next: null,
}
formFiber.memoizedState = existingStateHook
formFiber = formFiber.alternate
null !== formFiber && (formFiber.memoizedState = existingStateHook)
return existingStateHook
}
function requestFormReset$1(formFiber) {
null === ReactSharedInternals.T &&
console.error(
'requestFormReset was called outside a transition or action. To fix, move to an action, or wrap with startTransition.'
)
var stateHook = ensureFormComponentIsStateful(formFiber)
null === stateHook.next && (stateHook = formFiber.alternate.memoizedState)
dispatchSetStateInternal(
formFiber,
stateHook.next.queue,
{},
requestUpdateLane(formFiber)
)
}
function mountTransition() {
var stateHook = mountStateImpl(!1)
stateHook = startTransition.bind(
null,
currentlyRenderingFiber,
stateHook.queue,
!0,
!1
)
mountWorkInProgressHook().memoizedState = stateHook
return [!1, stateHook]
}
function updateTransition() {
var booleanOrThenable = updateReducer(basicStateReducer)[0],
start = updateWorkInProgressHook().memoizedState
return [
'boolean' === typeof booleanOrThenable
? booleanOrThenable
: useThenable(booleanOrThenable),
start,
]
}
function rerenderTransition() {
var booleanOrThenable = rerenderReducer(basicStateReducer)[0],
start = updateWorkInProgressHook().memoizedState
return [
'boolean' === typeof booleanOrThenable
? booleanOrThenable
: useThenable(booleanOrThenable),
start,
]
}
function useHostTransitionStatus() {
return readContext(HostTransitionContext)
}
function mountId() {
var hook = mountWorkInProgressHook(),
identifierPrefix = workInProgressRoot.identifierPrefix
if (isHydrating) {
var treeId = treeContextOverflow
var idWithLeadingBit = treeContextId
treeId =
(
idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))
).toString(32) + treeId
identifierPrefix = '_' + identifierPrefix + 'R_' + treeId
treeId = localIdCounter++
0 < treeId && (identifierPrefix += 'H' + treeId.toString(32))
identifierPrefix += '_'
} else
((treeId = globalClientIdCounter++),
(identifierPrefix =
'_' + identifierPrefix + 'r_' + treeId.toString(32) + '_'))
return (hook.memoizedState = identifierPrefix)
}
function mountRefresh() {
return (mountWorkInProgressHook().memoizedState = refreshCache.bind(
null,
currentlyRenderingFiber
))
}
function refreshCache(fiber, seedKey) {
for (var provider = fiber.return; null !== provider; ) {
switch (provider.tag) {
case 24:
case 3:
var lane = requestUpdateLane(provider)
fiber = createUpdate(lane)
var root = enqueueUpdate(provider, fiber, lane)
null !== root &&
(scheduleUpdateOnFiber(root, provider, lane),
entangleTransitions(root, provider, lane))
provider = createCache()
null !== seedKey &&
void 0 !== seedKey &&
null !== root &&
console.error(
'The seed argument is not enabled outside experimental channels.'
)
fiber.payload = { cache: provider }
return
}
provider = provider.return
}
}
function dispatchReducerAction(fiber, queue, action) {
var args = arguments
'function' === typeof args[3] &&
console.error(
"State updates from the useState() and useReducer() Hooks don't support the second callback argument. To execute a side effect after rendering, declare it in the component body with useEffect()."
)
args = requestUpdateLane(fiber)
var update = {
lane: args,
revertLane: 0,
gesture: null,
action: action,
hasEagerState: !1,
eagerState: null,
next: null,
}
isRenderPhaseUpdate(fiber)
? enqueueRenderPhaseUpdate(queue, update)
: ((update = enqueueConcurrentHookUpdate(fiber, queue, update, args)),
null !== update &&
(scheduleUpdateOnFiber(update, fiber, args),
entangleTransitionUpdate(update, queue, args)))
markStateUpdateScheduled(fiber, args)
}
function dispatchSetState(fiber, queue, action) {
var args = arguments
'function' === typeof args[3] &&
console.error(
"State updates from the useState() and useReducer() Hooks don't support the second callback argument. To execute a side effect after rendering, declare it in the component body with useEffect()."
)
args = requestUpdateLane(fiber)
dispatchSetStateInternal(fiber, queue, action, args)
markStateUpdateScheduled(fiber, args)
}
function dispatchSetStateInternal(fiber, queue, action, lane) {
var update = {
lane: lane,
revertLane: 0,
gesture: null,
action: action,
hasEagerState: !1,
eagerState: null,
next: null,
}
if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update)
else {
var alternate = fiber.alternate
if (
0 === fiber.lanes &&
(null === alternate || 0 === alternate.lanes) &&
((alternate = queue.lastRenderedReducer), null !== alternate)
) {
var prevDispatcher = ReactSharedInternals.H
ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV
try {
var currentState = queue.lastRenderedState,
eagerState = alternate(currentState, action)
update.hasEagerState = !0
update.eagerState = eagerState
if (objectIs(eagerState, currentState))
return (
enqueueUpdate$1(fiber, queue, update, 0),
null === workInProgressRoot &&
finishQueueingConcurrentUpdates(),
!1
)
} catch (error) {
} finally {
ReactSharedInternals.H = prevDispatcher
}
}
action = enqueueConcurrentHookUpdate(fiber, queue, update, lane)
if (null !== action)
return (
scheduleUpdateOnFiber(action, fiber, lane),
entangleTransitionUpdate(action, queue, lane),
!0
)
}
return !1
}
function dispatchOptimisticSetState(
fiber,
throwIfDuringRender,
queue,
action
) {
null === ReactSharedInternals.T &&
0 === currentEntangledLane &&
console.error(
'An optimistic state update occurred outside a transition or action. To fix, move the update to an action, or wrap with startTransition.'
)
action = {
lane: 2,
revertLane: requestTransitionLane(),
gesture: null,
action: action,
hasEagerState: !1,
eagerState: null,
next: null,
}
if (isRenderPhaseUpdate(fiber)) {
if (throwIfDuringRender)
throw Error('Cannot update optimistic state while rendering.')
console.error('Cannot call startTransition while rendering.')
} else
((throwIfDuringRender = enqueueConcurrentHookUpdate(
fiber,
queue,
action,
2
)),
null !== throwIfDuringRender &&
scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2))
markStateUpdateScheduled(fiber, 2)
}
function isRenderPhaseUpdate(fiber) {
var alternate = fiber.alternate
return (
fiber === currentlyRenderingFiber ||
(null !== alternate && alternate === currentlyRenderingFiber)
)
}
function enqueueRenderPhaseUpdate(queue, update) {
didScheduleRenderPhaseUpdateDuringThisPass =
didScheduleRenderPhaseUpdate = !0
var pending = queue.pending
null === pending
? (update.next = update)
: ((update.next = pending.next), (pending.next = update))
queue.pending = update
}
function entangleTransitionUpdate(root, queue, lane) {
if (0 !== (lane & 4194048)) {
var queueLanes = queue.lanes
queueLanes &= root.pendingLanes
lane |= queueLanes
queue.lanes = lane
markRootEntangled(root, lane)
}
}
function warnOnInvalidCallback(callback) {
if (null !== callback && 'function' !== typeof callback) {
var key = String(callback)
didWarnOnInvalidCallback.has(key) ||
(didWarnOnInvalidCallback.add(key),
console.error(
'Expected the last optional `callback` argument to be a function. Instead received: %s.',
callback
))
}
}
function applyDerivedStateFromProps(
workInProgress,
ctor,
getDerivedStateFromProps,
nextProps
) {
var prevState = workInProgress.memoizedState,
partialState = getDerivedStateFromProps(nextProps, prevState)
if (workInProgress.mode & StrictLegacyMode) {
setIsStrictModeForDevtools(!0)
try {
partialState = getDerivedStateFromProps(nextProps, prevState)
} finally {
setIsStrictModeForDevtools(!1)
}
}
void 0 === partialState &&
((ctor = getComponentNameFromType(ctor) || 'Component'),
didWarnAboutUndefinedDerivedState.has(ctor) ||
(didWarnAboutUndefinedDerivedState.add(ctor),
console.error(
'%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. You have returned undefined.',
ctor
)))
prevState =
null === partialState || void 0 === partialState
? prevState
: assign({}, prevState, partialState)
workInProgress.memoizedState = prevState
0 === workInProgress.lanes &&
(workInProgress.updateQueue.baseState = prevState)
}
function checkShouldComponentUpdate(
workInProgress,
ctor,
oldProps,
newProps,
oldState,
newState,
nextContext
) {
var instance = workInProgress.stateNode
if ('function' === typeof instance.shouldComponentUpdate) {
oldProps = instance.shouldComponentUpdate(
newProps,
newState,
nextContext
)
if (workInProgress.mode & StrictLegacyMode) {
setIsStrictModeForDevtools(!0)
try {
oldProps = instance.shouldComponentUpdate(
newProps,
newState,
nextContext
)
} finally {
setIsStrictModeForDevtools(!1)
}
}
void 0 === oldProps &&
console.error(
'%s.shouldComponentUpdate(): Returned undefined instead of a boolean value. Make sure to return true or false.',
getComponentNameFromType(ctor) || 'Component'
)
return oldProps
}
return ctor.prototype && ctor.prototype.isPureReactComponent
? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)
: !0
}
function callComponentWillReceiveProps(
workInProgress,
instance,
newProps,
nextContext
) {
var oldState = instance.state
'function' === typeof instance.componentWillReceiveProps &&
instance.componentWillReceiveProps(newProps, nextContext)
'function' === typeof instance.UNSAFE_componentWillReceiveProps &&
instance.UNSAFE_componentWillReceiveProps(newProps, nextContext)
instance.state !== oldState &&
((workInProgress =
getComponentNameFromFiber(workInProgress) || 'Component'),
didWarnAboutStateAssignmentForComponent.has(workInProgress) ||
(didWarnAboutStateAssignmentForComponent.add(workInProgress),
console.error(
"%s.componentWillReceiveProps(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.",
workInProgress
)),
classComponentUpdater.enqueueReplaceState(
instance,
instance.state,
null
))
}
function resolveClassComponentProps(Component, baseProps) {
var newProps = baseProps
if ('ref' in baseProps) {
newProps = {}
for (var propName in baseProps)
'ref' !== propName && (newProps[propName] = baseProps[propName])
}
if ((Component = Component.defaultProps)) {
newProps === baseProps && (newProps = assign({}, newProps))
for (var _propName in Component)
void 0 === newProps[_propName] &&
(newProps[_propName] = Component[_propName])
}
return newProps
}
function defaultOnUncaughtError(error) {
reportGlobalError(error)
console.warn(
'%s\n\n%s\n',
componentName
? 'An error occurred in the <' + componentName + '> component.'
: 'An error occurred in one of your React components.',
'Consider adding an error boundary to your tree to customize error handling behavior.\nVisit https://react.dev/link/error-boundaries to learn more about error boundaries.'
)
}
function defaultOnCaughtError(error) {
var componentNameMessage = componentName
? 'The above error occurred in the <' + componentName + '> component.'
: 'The above error occurred in one of your React components.',
recreateMessage =
'React will try to recreate this component tree from scratch using the error boundary you provided, ' +
((errorBoundaryName || 'Anonymous') + '.')
if (
'object' === typeof error &&
null !== error &&
'string' === typeof error.environmentName
) {
var JSCompiler_inline_result = error.environmentName
error = [
'%o\n\n%s\n\n%s\n',
error,
componentNameMessage,
recreateMessage,
].slice(0)
'string' === typeof error[0]
? error.splice(
0,
1,
badgeFormat + ' ' + error[0],
badgeStyle,
pad + JSCompiler_inline_result + pad,
resetStyle
)
: error.splice(
0,
0,
badgeFormat,
badgeStyle,
pad + JSCompiler_inline_result + pad,
resetStyle
)
error.unshift(console)
JSCompiler_inline_result = bind.apply(console.error, error)
JSCompiler_inline_result()
} else
console.error(
'%o\n\n%s\n\n%s\n',
error,
componentNameMessage,
recreateMessage
)
}
function defaultOnRecoverableError(error) {
reportGlobalError(error)
}
function logUncaughtError(root, errorInfo) {
try {
componentName = errorInfo.source
? getComponentNameFromFiber(errorInfo.source)
: null
errorBoundaryName = null
var error = errorInfo.value
if (null !== ReactSharedInternals.actQueue)
ReactSharedInternals.thrownErrors.push(error)
else {
var onUncaughtError = root.onUncaughtError
onUncaughtError(error, { componentStack: errorInfo.stack })
}
} catch (e$5) {
setTimeout(function () {
throw e$5
})
}
}
function logCaughtError(root, boundary, errorInfo) {
try {
componentName = errorInfo.source
? getComponentNameFromFiber(errorInfo.source)
: null
errorBoundaryName = getComponentNameFromFiber(boundary)
var onCaughtError = root.onCaughtError
onCaughtError(errorInfo.value, {
componentStack: errorInfo.stack,
errorBoundary: 1 === boundary.tag ? boundary.stateNode : null,
})
} catch (e$6) {
setTimeout(function () {
throw e$6
})
}
}
function createRootErrorUpdate(root, errorInfo, lane) {
lane = createUpdate(lane)
lane.tag = CaptureUpdate
lane.payload = { element: null }
lane.callback = function () {
runWithFiberInDEV(errorInfo.source, logUncaughtError, root, errorInfo)
}
return lane
}
function createClassErrorUpdate(lane) {
lane = createUpdate(lane)
lane.tag = CaptureUpdate
return lane
}
function initializeClassErrorUpdate(update, root, fiber, errorInfo) {
var getDerivedStateFromError = fiber.type.getDerivedStateFromError
if ('function' === typeof getDerivedStateFromError) {
var error = errorInfo.value
update.payload = function () {
return getDerivedStateFromError(error)
}
update.callback = function () {
markFailedErrorBoundaryForHotReloading(fiber)
runWithFiberInDEV(
errorInfo.source,
logCaughtError,
root,
fiber,
errorInfo
)
}
}
var inst = fiber.stateNode
null !== inst &&
'function' === typeof inst.componentDidCatch &&
(update.callback = function () {
markFailedErrorBoundaryForHotReloading(fiber)
runWithFiberInDEV(
errorInfo.source,
logCaughtError,
root,
fiber,
errorInfo
)
'function' !== typeof getDerivedStateFromError &&
(null === legacyErrorBoundariesThatAlreadyFailed
? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))
: legacyErrorBoundariesThatAlreadyFailed.add(this))
callComponentDidCatchInDEV(this, errorInfo)
'function' === typeof getDerivedStateFromError ||
(0 === (fiber.lanes & 2) &&
console.error(
'%s: Error boundaries should implement getDerivedStateFromError(). In that method, return a state update to display an error message or fallback UI.',
getComponentNameFromFiber(fiber) || 'Unknown'
))
})
}
function throwException(
root,
returnFiber,
sourceFiber,
value,
rootRenderLanes
) {
sourceFiber.flags |= 32768
isDevToolsPresent && restorePendingUpdaters(root, rootRenderLanes)
if (
null !== value &&
'object' === typeof value &&
'function' === typeof value.then
) {
returnFiber = sourceFiber.alternate
null !== returnFiber &&
propagateParentContextChanges(
returnFiber,
sourceFiber,
rootRenderLanes,
!0
)
isHydrating && (didSuspendOrErrorDEV = !0)
sourceFiber = suspenseHandlerStackCursor.current
if (null !== sourceFiber) {
switch (sourceFiber.tag) {
case 31:
case 13:
return (
null === shellBoundary
? renderDidSuspendDelayIfPossible()
: null === sourceFiber.alternate &&
workInProgressRootExitStatus === RootInProgress &&
(workInProgressRootExitStatus = RootSuspended),
(sourceFiber.flags &= -257),
(sourceFiber.flags |= 65536),
(sourceFiber.lanes = rootRenderLanes),
value === noopSuspenseyCommitThenable
? (sourceFiber.flags |= 16384)
: ((returnFiber = sourceFiber.updateQueue),
null === returnFiber
? (sourceFiber.updateQueue = new Set([value]))
: returnFiber.add(value),
attachPingListener(root, value, rootRenderLanes)),
!1
)
case 22:
return (
(sourceFiber.flags |= 65536),
value === noopSuspenseyCommitThenable
? (sourceFiber.flags |= 16384)
: ((returnFiber = sourceFiber.updateQueue),
null === returnFiber
? ((returnFiber = {
transitions: null,
markerInstances: null,
retryQueue: new Set([value]),
}),
(sourceFiber.updateQueue = returnFiber))
: ((sourceFiber = returnFiber.retryQueue),
null === sourceFiber
? (returnFiber.retryQueue = new Set([value]))
: sourceFiber.add(value)),
attachPingListener(root, value, rootRenderLanes)),
!1
)
}
throw Error(
'Unexpected Suspense handler tag (' +
sourceFiber.tag +
'). This is a bug in React.'
)
}
attachPingListener(root, value, rootRenderLanes)
renderDidSuspendDelayIfPossible()
return !1
}
if (isHydrating)
return (
(didSuspendOrErrorDEV = !0),
(returnFiber = suspenseHandlerStackCursor.current),
null !== returnFiber
? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),
(returnFiber.flags |= 65536),
(returnFiber.lanes = rootRenderLanes),
value !== HydrationMismatchException &&
queueHydrationError(
createCapturedValueAtFiber(
Error(
'There was an error while hydrating but React was able to recover by instead client rendering from the nearest Suspense boundary.',
{ cause: value }
),
sourceFiber
)
))
: (value !== HydrationMismatchException &&
queueHydrationError(
createCapturedValueAtFiber(
Error(
'There was an error while hydrating but React was able to recover by instead client rendering the entire root.',
{ cause: value }
),
sourceFiber
)
),
(root = root.current.alternate),
(root.flags |= 65536),
(rootRenderLanes &= -rootRenderLanes),
(root.lanes |= rootRenderLanes),
(value = createCapturedValueAtFiber(value, sourceFiber)),
(rootRenderLanes = createRootErrorUpdate(
root.stateNode,
value,
rootRenderLanes
)),
enqueueCapturedUpdate(root, rootRenderLanes),
workInProgressRootExitStatus !== RootSuspendedWithDelay &&
(workInProgressRootExitStatus = RootErrored)),
!1
)
var error = createCapturedValueAtFiber(
Error(
'There was an error during concurrent rendering but React was able to recover by instead synchronously rendering the entire root.',
{ cause: value }
),
sourceFiber
)
null === workInProgressRootConcurrentErrors
? (workInProgressRootConcurrentErrors = [error])
: workInProgressRootConcurrentErrors.push(error)
workInProgressRootExitStatus !== RootSuspendedWithDelay &&
(workInProgressRootExitStatus = RootErrored)
if (null === returnFiber) return !0
value = createCapturedValueAtFiber(value, sourceFiber)
sourceFiber = returnFiber
do {
switch (sourceFiber.tag) {
case 3:
return (
(sourceFiber.flags |= 65536),
(root = rootRenderLanes & -rootRenderLanes),
(sourceFiber.lanes |= root),
(root = createRootErrorUpdate(
sourceFiber.stateNode,
value,
root
)),
enqueueCapturedUpdate(sourceFiber, root),
!1
)
case 1:
if (
((returnFiber = sourceFiber.type),
(error = sourceFiber.stateNode),
0 === (sourceFiber.flags & 128) &&
('function' === typeof returnFiber.getDerivedStateFromError ||
(null !== error &&
'function' === typeof error.componentDidCatch &&
(null === legacyErrorBoundariesThatAlreadyFailed ||
!legacyErrorBoundariesThatAlreadyFailed.has(error)))))
)
return (
(sourceFiber.flags |= 65536),
(rootRenderLanes &= -rootRenderLanes),
(sourceFiber.lanes |= rootRenderLanes),
(rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),
initializeClassErrorUpdate(
rootRenderLanes,
root,
sourceFiber,
value
),
enqueueCapturedUpdate(sourceFiber, rootRenderLanes),
!1
)
}
sourceFiber = sourceFiber.return
} while (null !== sourceFiber)
return !1
}
function reconcileChildren(
current,
workInProgress,
nextChildren,
renderLanes
) {
workInProgress.child =
null === current
? mountChildFibers(workInProgress, null, nextChildren, renderLanes)
: reconcileChildFibers(
workInProgress,
current.child,
nextChildren,
renderLanes
)
}
function updateForwardRef(
current,
workInProgress,
Component,
nextProps,
renderLanes
) {
Component = Component.render
var ref = workInProgress.ref
if ('ref' in nextProps) {
var propsWithoutRef = {}
for (var key in nextProps)
'ref' !== key && (propsWithoutRef[key] = nextProps[key])
} else propsWithoutRef = nextProps
prepareToReadContext(workInProgress)
markComponentRenderStarted(workInProgress)
nextProps = renderWithHooks(
current,
workInProgress,
Component,
propsWithoutRef,
ref,
renderLanes
)
key = checkDidRenderIdHook()
markComponentRenderStopped()
if (null !== current && !didReceiveUpdate)
return (
bailoutHooks(current, workInProgress, renderLanes),
bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)
)
isHydrating && key && pushMaterializedTreeId(workInProgress)
workInProgress.flags |= 1
reconcileChildren(current, workInProgress, nextProps, renderLanes)
return workInProgress.child
}
function updateMemoComponent(
current,
workInProgress,
Component,
nextProps,
renderLanes
) {
if (null === current) {
var type = Component.type
if (
'function' === typeof type &&
!shouldConstruct(type) &&
void 0 === type.defaultProps &&
null === Component.compare
)
return (
(Component = resolveFunctionForHotReloading(type)),
(workInProgress.tag = 15),
(workInProgress.type = Component),
validateFunctionComponentInDev(workInProgress, type),
updateSimpleMemoComponent(
current,
workInProgress,
Component,
nextProps,
renderLanes
)
)
current = createFiberFromTypeAndProps(
Component.type,
null,
nextProps,
workInProgress,
workInProgress.mode,
renderLanes
)
current.ref = workInProgress.ref
current.return = workInProgress
return (workInProgress.child = current)
}
type = current.child
if (!checkScheduledUpdateOrContext(current, renderLanes)) {
var prevProps = type.memoizedProps
Component = Component.compare
Component = null !== Component ? Component : shallowEqual
if (
Component(prevProps, nextProps) &&
current.ref === workInProgress.ref
)
return bailoutOnAlreadyFinishedWork(
current,
workInProgress,
renderLanes
)
}
workInProgress.flags |= 1
current = createWorkInProgress(type, nextProps)
current.ref = workInProgress.ref
current.return = workInProgress
return (workInProgress.child = current)
}
function updateSimpleMemoComponent(
current,
workInProgress,
Component,
nextProps,
renderLanes
) {
if (null !== current) {
var prevProps = current.memoizedProps
if (
shallowEqual(prevProps, nextProps) &&
current.ref === workInProgress.ref &&
workInProgress.type === current.type
)
if (
((didReceiveUpdate = !1),
(workInProgress.pendingProps = nextProps = prevProps),
checkScheduledUpdateOrContext(current, renderLanes))
)
0 !== (current.flags & 131072) && (didReceiveUpdate = !0)
else
return (
(workInProgress.lanes = current.lanes),
bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)
)
}
return updateFunctionComponent(
current,
workInProgress,
Component,
nextProps,
renderLanes
)
}
function updateOffscreenComponent(
current,
workInProgress,
renderLanes,
nextProps
) {
var nextChildren = nextProps.children,
prevState = null !== current ? current.memoizedState : null
null === current &&
null === workInProgress.stateNode &&
(workInProgress.stateNode = {
_visibility: OffscreenVisible,
_pendingMarkers: null,
_retryCache: null,
_transitions: null,
})
if ('hidden' === nextProps.mode) {
if (0 !== (workInProgress.flags & 128)) {
nextProps =
null !== prevState ? prevState.baseLanes | renderLanes : renderLanes
if (null !== current) {
nextChildren = workInProgress.child = current.child
for (prevState = 0; null !== nextChildren; )
((prevState =
prevState | nextChildren.lanes | nextChildren.childLanes),
(nextChildren = nextChildren.sibling))
workInProgress.childLanes = prevState & ~nextProps
} else
((workInProgress.childLanes = 0), (workInProgress.child = null))
return deferHiddenOffscreenComponent(
current,
workInProgress,
nextProps,
renderLanes
)
}
if (0 !== (renderLanes & 536870912))
((workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),
null !== current &&
pushTransition(
workInProgress,
null !== prevState ? prevState.cachePool : null
),
null !== prevState
? pushHiddenContext(workInProgress, prevState)
: reuseHiddenContextOnStack(workInProgress),
pushOffscreenSuspenseHandler(workInProgress))
else
return (
(workInProgress.lanes = workInProgress.childLanes = 536870912),
deferHiddenOffscreenComponent(
current,
workInProgress,
null !== prevState
? prevState.baseLanes | renderLanes
: renderLanes,
renderLanes
)
)
} else
null !== prevState
? (pushTransition(workInProgress, prevState.cachePool),
pushHiddenContext(workInProgress, prevState),
reuseSuspenseHandlerOnStack(workInProgress),
(workInProgress.memoizedState = null))
: (null !== current && pushTransition(workInProgress, null),
reuseHiddenContextOnStack(workInProgress),
reuseSuspenseHandlerOnStack(workInProgress))
reconcileChildren(current, workInProgress, nextChildren, renderLanes)
return workInProgress.child
}
function bailoutOffscreenComponent(current, workInProgress) {
;(null !== current && 22 === current.tag) ||
null !== workInProgress.stateNode ||
(workInProgress.stateNode = {
_visibility: OffscreenVisible,
_pendingMarkers: null,
_retryCache: null,
_transitions: null,
})
return workInProgress.sibling
}
function deferHiddenOffscreenComponent(
current,
workInProgress,
nextBaseLanes,
renderLanes
) {
var JSCompiler_inline_result = peekCacheFromPool()
JSCompiler_inline_result =
null === JSCompiler_inline_result
? null
: {
parent: CacheContext._currentValue,
pool: JSCompiler_inline_result,
}
workInProgress.memoizedState = {
baseLanes: nextBaseLanes,
cachePool: JSCompiler_inline_result,
}
null !== current && pushTransition(workInProgress, null)
reuseHiddenContextOnStack(workInProgress)
pushOffscreenSuspenseHandler(workInProgress)
null !== current &&
propagateParentContextChanges(current, workInProgress, renderLanes, !0)
return null
}
function mountActivityChildren(workInProgress, nextProps) {
var hiddenProp = nextProps.hidden
void 0 !== hiddenProp &&
console.error(
'<Activity> doesn\'t accept a hidden prop. Use mode="hidden" instead.\n- <Activity %s>\n+ <Activity %s>',
!0 === hiddenProp
? 'hidden'
: !1 === hiddenProp
? 'hidden={false}'
: 'hidden={...}',
hiddenProp ? 'mode="hidden"' : 'mode="visible"'
)
nextProps = mountWorkInProgressOffscreenFiber(
{ mode: nextProps.mode, children: nextProps.children },
workInProgress.mode
)
nextProps.ref = workInProgress.ref
workInProgress.child = nextProps
nextProps.return = workInProgress
return nextProps
}
function retryActivityComponentWithoutHydrating(
current,
workInProgress,
renderLanes
) {
reconcileChildFibers(workInProgress, current.child, null, renderLanes)
current = mountActivityChildren(
workInProgress,
workInProgress.pendingProps
)
current.flags |= 2
popSuspenseHandler(workInProgress)
workInProgress.memoizedState = null
return current
}
function updateActivityComponent(current, workInProgress, renderLanes) {
var nextProps = workInProgress.pendingProps,
didSuspend = 0 !== (workInProgress.flags & 128)
workInProgress.flags &= -129
if (null === current) {
if (isHydrating) {
if ('hidden' === nextProps.mode)
return (
(current = mountActivityChildren(workInProgress, nextProps)),
(workInProgress.lanes = 536870912),
bailoutOffscreenComponent(null, current)
)
pushDehydratedActivitySuspenseHandler(workInProgress)
if ((current = nextHydratableInstance)) {
if (
((renderLanes = canHydrateHydrationBoundary(
current,
rootOrSingletonContext
)),
(renderLanes =
null !== renderLanes && renderLanes.data === ACTIVITY_START_DATA
? renderLanes
: null),
null !== renderLanes)
) {
var activityState = {
dehydrated: renderLanes,
treeContext: getSuspendedTreeContext(),
retryLane: 536870912,
hydrationErrors: null,
}
workInProgress.memoizedState = activityState
activityState = createFiberFromDehydratedFragment(renderLanes)
activityState.return = workInProgress
workInProgress.child = activityState
hydrationParentFiber = workInProgress
nextHydratableInstance = null
}
} else renderLanes = null
if (null === renderLanes)
throw (
warnNonHydratedInstance(workInProgress, current),
throwOnHydrationMismatch(workInProgress)
)
workInProgress.lanes = 536870912
return null
}
return mountActivityChildren(workInProgress, nextProps)
}
activityState = current.memoizedState
if (null !== activityState) {
var activityInstance = activityState.dehydrated
pushDehydratedActivitySuspenseHandler(workInProgress)
if (didSuspend)
if (workInProgress.flags & 256)
((workInProgress.flags &= -257),
(workInProgress = retryActivityComponentWithoutHydrating(
current,
workInProgress,
renderLanes
)))
else if (null !== workInProgress.memoizedState)
((workInProgress.child = current.child),
(workInProgress.flags |= 128),
(workInProgress = null))
else
throw Error(
'Client rendering an Activity suspended it again. This is a bug in React.'
)
else if (
(warnIfHydrating(),
didReceiveUpdate ||
propagateParentContextChanges(
current,
workInProgress,
renderLanes,
!1
),
(didSuspend = 0 !== (renderLanes & current.childLanes)),
didReceiveUpdate || didSuspend)
) {
nextProps = workInProgressRoot
if (
null !== nextProps &&
((activityInstance = getBumpedLaneForHydration(
nextProps,
renderLanes
)),
0 !== activityInstance &&
activityInstance !== activityState.retryLane)
)
throw (
(activityState.retryLane = activityInstance),
enqueueConcurrentRenderForLane(current, activityInstance),
scheduleUpdateOnFiber(nextProps, current, activityInstance),
SelectiveHydrationException
)
renderDidSuspendDelayIfPossible()
workInProgress = retryActivityComponentWithoutHydrating(
current,
workInProgress,
renderLanes
)
} else
((current = activityState.treeContext),
(nextHydratableInstance = getNextHydratable(
activityInstance.nextSibling
)),
(hydrationParentFiber = workInProgress),
(isHydrating = !0),
(hydrationErrors = null),
(didSuspendOrErrorDEV = !1),
(hydrationDiffRootDEV = null),
(rootOrSingletonContext = !1),
null !== current &&
restoreSuspendedTreeContext(workInProgress, current),
(workInProgress = mountActivityChildren(workInProgress, nextProps)),
(workInProgress.flags |= 4096))
return workInProgress
}
current = createWorkInProgress(current.child, {
mode: nextProps.mode,
children: nextProps.children,
})
current.ref = workInProgress.ref
workInProgress.child = current
current.return = workInProgress
return current
}
function markRef(current, workInProgress) {
var ref = workInProgress.ref
if (null === ref)
null !== current &&
null !== current.ref &&
(workInProgress.flags |= 4194816)
else {
if ('function' !== typeof ref && 'object' !== typeof ref)
throw Error(
'Expected ref to be a function, an object returned by React.createRef(), or undefined/null.'
)
if (null === current || current.ref !== ref)
workInProgress.flags |= 4194816
}
}
function updateFunctionComponent(
current,
workInProgress,
Component,
nextProps,
renderLanes
) {
if (
Component.prototype &&
'function' === typeof Component.prototype.render
) {
var componentName = getComponentNameFromType(Component) || 'Unknown'
didWarnAboutBadClass[componentName] ||
(console.error(
"The <%s /> component appears to have a render method, but doesn't extend React.Component. This is likely to cause errors. Change %s to extend React.Component instead.",
componentName,
componentName
),
(didWarnAboutBadClass[componentName] = !0))
}
workInProgress.mode & StrictLegacyMode &&
ReactStrictModeWarnings.recordLegacyContextWarning(workInProgress, null)
null === current &&
(validateFunctionComponentInDev(workInProgress, workInProgress.type),
Component.contextTypes &&
((componentName = getComponentNameFromType(Component) || 'Unknown'),
didWarnAboutContextTypes[componentName] ||
((didWarnAboutContextTypes[componentName] = !0),
console.error(
'%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with React.useContext() instead. (https://react.dev/link/legacy-context)',
componentName
))))
prepareToReadContext(workInProgress)
markComponentRenderStarted(workInProgress)
Component = renderWithHooks(
current,
workInProgress,
Component,
nextProps,
void 0,
renderLanes
)
nextProps = checkDidRenderIdHook()
markComponentRenderStopped()
if (null !== current && !didReceiveUpdate)
return (
bailoutHooks(current, workInProgress, renderLanes),
bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)
)
isHydrating && nextProps && pushMaterializedTreeId(workInProgress)
workInProgress.flags |= 1
reconcileChildren(current, workInProgress, Component, renderLanes)
return workInProgress.child
}
function replayFunctionComponent(
current,
workInProgress,
nextProps,
Component,
secondArg,
renderLanes
) {
prepareToReadContext(workInProgress)
markComponentRenderStarted(workInProgress)
hookTypesUpdateIndexDev = -1
ignorePreviousDependencies =
null !== current && current.type !== workInProgress.type
workInProgress.updateQueue = null
nextProps = renderWithHooksAgain(
workInProgress,
Component,
nextProps,
secondArg
)
finishRenderingHooks(current, workInProgress)
Component = checkDidRenderIdHook()
markComponentRenderStopped()
if (null !== current && !didReceiveUpdate)
return (
bailoutHooks(current, workInProgress, renderLanes),
bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)
)
isHydrating && Component && pushMaterializedTreeId(workInProgress)
workInProgress.flags |= 1
reconcileChildren(current, workInProgress, nextProps, renderLanes)
return workInProgress.child
}
function updateClassComponent(
current,
workInProgress,
Component,
nextProps,
renderLanes
) {
switch (shouldErrorImpl(workInProgress)) {
case !1:
var _instance = workInProgress.stateNode,
state = new workInProgress.type(
workInProgress.memoizedProps,
_instance.context
).state
_instance.updater.enqueueSetState(_instance, state, null)
break
case !0:
workInProgress.flags |= 128
workInProgress.flags |= 65536
_instance = Error('Simulated error coming from DevTools')
var lane = renderLanes & -renderLanes
workInProgress.lanes |= lane
state = workInProgressRoot
if (null === state)
throw Error(
'Expected a work-in-progress root. This is a bug in React. Please file an issue.'
)
lane = createClassErrorUpdate(lane)
initializeClassErrorUpdate(
lane,
state,
workInProgress,
createCapturedValueAtFiber(_instance, workInProgress)
)
enqueueCapturedUpdate(workInProgress, lane)
}
prepareToReadContext(workInProgress)
if (null === workInProgress.stateNode) {
state = emptyContextObject
_instance = Component.contextType
'contextType' in Component &&
null !== _instance &&
(void 0 === _instance || _instance.$$typeof !== REACT_CONTEXT_TYPE) &&
!didWarnAboutInvalidateContextType.has(Component) &&
(didWarnAboutInvalidateContextType.add(Component),
(lane =
void 0 === _instance
? ' However, it is set to undefined. This can be caused by a typo or by mixing up named and default imports. This can also happen due to a circular dependency, so try moving the createContext() call to a separate file.'
: 'object' !== typeof _instance
? ' However, it is set to a ' + typeof _instance + '.'
: _instance.$$typeof === REACT_CONSUMER_TYPE
? ' Did you accidentally pass the Context.Consumer instead?'
: ' However, it is set to an object with keys {' +
Object.keys(_instance).join(', ') +
'}.'),
console.error(
'%s defines an invalid contextType. contextType should point to the Context object returned by React.createContext().%s',
getComponentNameFromType(Component) || 'Component',
lane
))
'object' === typeof _instance &&
null !== _instance &&
(state = readContext(_instance))
_instance = new Component(nextProps, state)
if (workInProgress.mode & StrictLegacyMode) {
setIsStrictModeForDevtools(!0)
try {
_instance = new Component(nextProps, state)
} finally {
setIsStrictModeForDevtools(!1)
}
}
state = workInProgress.memoizedState =
null !== _instance.state && void 0 !== _instance.state
? _instance.state
: null
_instance.updater = classComponentUpdater
workInProgress.stateNode = _instance
_instance._reactInternals = workInProgress
_instance._reactInternalInstance = fakeInternalInstance
'function' === typeof Component.getDerivedStateFromProps &&
null === state &&
((state = getComponentNameFromType(Component) || 'Component'),
didWarnAboutUninitializedState.has(state) ||
(didWarnAboutUninitializedState.add(state),
console.error(
'`%s` uses `getDerivedStateFromProps` but its initial state is %s. This is not recommended. Instead, define the initial state by assigning an object to `this.state` in the constructor of `%s`. This ensures that `getDerivedStateFromProps` arguments have a consistent shape.',
state,
null === _instance.state ? 'null' : 'undefined',
state
)))
if (
'function' === typeof Component.getDerivedStateFromProps ||
'function' === typeof _instance.getSnapshotBeforeUpdate
) {
var foundWillUpdateName = (lane = state = null)
'function' === typeof _instance.componentWillMount &&
!0 !== _instance.componentWillMount.__suppressDeprecationWarning
? (state = 'componentWillMount')
: 'function' === typeof _instance.UNSAFE_componentWillMount &&
(state = 'UNSAFE_componentWillMount')
'function' === typeof _instance.componentWillReceiveProps &&
!0 !==
_instance.componentWillReceiveProps.__suppressDeprecationWarning
? (lane = 'componentWillReceiveProps')
: 'function' ===
typeof _instance.UNSAFE_componentWillReceiveProps &&
(lane = 'UNSAFE_componentWillReceiveProps')
'function' === typeof _instance.componentWillUpdate &&
!0 !== _instance.componentWillUpdate.__suppressDeprecationWarning
? (foundWillUpdateName = 'componentWillUpdate')
: 'function' === typeof _instance.UNSAFE_componentWillUpdate &&
(foundWillUpdateName = 'UNSAFE_componentWillUpdate')
if (null !== state || null !== lane || null !== foundWillUpdateName) {
_instance = getComponentNameFromType(Component) || 'Component'
var newApiName =
'function' === typeof Component.getDerivedStateFromProps
? 'getDerivedStateFromProps()'
: 'getSnapshotBeforeUpdate()'
didWarnAboutLegacyLifecyclesAndDerivedState.has(_instance) ||
(didWarnAboutLegacyLifecyclesAndDerivedState.add(_instance),
console.error(
'Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n%s uses %s but also contains the following legacy lifecycles:%s%s%s\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://react.dev/link/unsafe-component-lifecycles',
_instance,
newApiName,
null !== state ? '\n ' + state : '',
null !== lane ? '\n ' + lane : '',
null !== foundWillUpdateName ? '\n ' + foundWillUpdateName : ''
))
}
}
_instance = workInProgress.stateNode
state = getComponentNameFromType(Component) || 'Component'
_instance.render ||
(Component.prototype &&
'function' === typeof Component.prototype.render
? console.error(
'No `render` method found on the %s instance: did you accidentally return an object from the constructor?',
state
)
: console.error(
'No `render` method found on the %s instance: you may have forgotten to define `render`.',
state
))
!_instance.getInitialState ||
_instance.getInitialState.isReactClassApproved ||
_instance.state ||
console.error(
'getInitialState was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Did you mean to define a state property instead?',
state
)
_instance.getDefaultProps &&
!_instance.getDefaultProps.isReactClassApproved &&
console.error(
'getDefaultProps was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Use a static property to define defaultProps instead.',
state
)
_instance.contextType &&
console.error(
'contextType was defined as an instance property on %s. Use a static property to define contextType instead.',
state
)
Component.childContextTypes &&
!didWarnAboutChildContextTypes.has(Component) &&
(didWarnAboutChildContextTypes.add(Component),
console.error(
'%s uses the legacy childContextTypes API which was removed in React 19. Use React.createContext() instead. (https://react.dev/link/legacy-context)',
state
))
Component.contextTypes &&
!didWarnAboutContextTypes$1.has(Component) &&
(didWarnAboutContextTypes$1.add(Component),
console.error(
'%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with static contextType instead. (https://react.dev/link/legacy-context)',
state
))
'function' === typeof _instance.componentShouldUpdate &&
console.error(
'%s has a method called componentShouldUpdate(). Did you mean shouldComponentUpdate()? The name is phrased as a question because the function is expected to return a value.',
state
)
Component.prototype &&
Component.prototype.isPureReactComponent &&
'undefined' !== typeof _instance.shouldComponentUpdate &&
console.error(
'%s has a method called shouldComponentUpdate(). shouldComponentUpdate should not be used when extending React.PureComponent. Please extend React.Component if shouldComponentUpdate is used.',
getComponentNameFromType(Component) || 'A pure component'
)
'function' === typeof _instance.componentDidUnmount &&
console.error(
'%s has a method called componentDidUnmount(). But there is no such lifecycle method. Did you mean componentWillUnmount()?',
state
)
'function' === typeof _instance.componentDidReceiveProps &&
console.error(
'%s has a method called componentDidReceiveProps(). But there is no such lifecycle method. If you meant to update the state in response to changing props, use componentWillReceiveProps(). If you meant to fetch data or run side-effects or mutations after React has updated the UI, use componentDidUpdate().',
state
)
'function' === typeof _instance.componentWillRecieveProps &&
console.error(
'%s has a method called componentWillRecieveProps(). Did you mean componentWillReceiveProps()?',
state
)
'function' === typeof _instance.UNSAFE_componentWillRecieveProps &&
console.error(
'%s has a method called UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?',
state
)
lane = _instance.props !== nextProps
void 0 !== _instance.props &&
lane &&
console.error(
"When calling super() in `%s`, make sure to pass up the same props that your component's constructor was passed.",
state
)
_instance.defaultProps &&
console.error(
'Setting defaultProps as an instance property on %s is not supported and will be ignored. Instead, define defaultProps as a static property on %s.',
state,
state
)
'function' !== typeof _instance.getSnapshotBeforeUpdate ||
'function' === typeof _instance.componentDidUpdate ||
didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.has(Component) ||
(didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.add(Component),
console.error(
'%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). This component defines getSnapshotBeforeUpdate() only.',
getComponentNameFromType(Component)
))
'function' === typeof _instance.getDerivedStateFromProps &&
console.error(
'%s: getDerivedStateFromProps() is defined as an instance method and will be ignored. Instead, declare it as a static method.',
state
)
'function' === typeof _instance.getDerivedStateFromError &&
console.error(
'%s: getDerivedStateFromError() is defined as an instance method and will be ignored. Instead, declare it as a static method.',
state
)
'function' === typeof Component.getSnapshotBeforeUpdate &&
console.error(
'%s: getSnapshotBeforeUpdate() is defined as a static method and will be ignored. Instead, declare it as an instance method.',
state
)
;(lane = _instance.state) &&
('object' !== typeof lane || isArrayImpl(lane)) &&
console.error('%s.state: must be set to an object or null', state)
'function' === typeof _instance.getChildContext &&
'object' !== typeof Component.childContextTypes &&
console.error(
'%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().',
state
)
_instance = workInProgress.stateNode
_instance.props = nextProps
_instance.state = workInProgress.memoizedState
_instance.refs = {}
initializeUpdateQueue(workInProgress)
state = Component.contextType
_instance.context =
'object' === typeof state && null !== state
? readContext(state)
: emptyContextObject
_instance.state === nextProps &&
((state = getComponentNameFromType(Component) || 'Component'),
didWarnAboutDirectlyAssigningPropsToState.has(state) ||
(didWarnAboutDirectlyAssigningPropsToState.add(state),
console.error(
"%s: It is not recommended to assign props directly to state because updates to props won't be reflected in state. In most cases, it is better to use props directly.",
state
)))
workInProgress.mode & StrictLegacyMode &&
ReactStrictModeWarnings.recordLegacyContextWarning(
workInProgress,
_instance
)
ReactStrictModeWarnings.recordUnsafeLifecycleWarnings(
workInProgress,
_instance
)
_instance.state = workInProgress.memoizedState
state = Component.getDerivedStateFromProps
'function' === typeof state &&
(applyDerivedStateFromProps(
workInProgress,
Component,
state,
nextProps
),
(_instance.state = workInProgress.memoizedState))
'function' === typeof Component.getDerivedStateFromProps ||
'function' === typeof _instance.getSnapshotBeforeUpdate ||
('function' !== typeof _instance.UNSAFE_componentWillMount &&
'function' !== typeof _instance.componentWillMount) ||
((state = _instance.state),
'function' === typeof _instance.componentWillMount &&
_instance.componentWillMount(),
'function' === typeof _instance.UNSAFE_componentWillMount &&
_instance.UNSAFE_componentWillMount(),
state !== _instance.state &&
(console.error(
"%s.componentWillMount(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.",
getComponentNameFromFiber(workInProgress) || 'Component'
),
classComponentUpdater.enqueueReplaceState(
_instance,
_instance.state,
null
)),
processUpdateQueue(workInProgress, nextProps, _instance, renderLanes),
suspendIfUpdateReadFromEntangledAsyncAction(),
(_instance.state = workInProgress.memoizedState))
'function' === typeof _instance.componentDidMount &&
(workInProgress.flags |= 4194308)
;(workInProgress.mode & StrictEffectsMode) !== NoMode &&
(workInProgress.flags |= 134217728)
_instance = !0
} else if (null === current) {
_instance = workInProgress.stateNode
var unresolvedOldProps = workInProgress.memoizedProps
lane = resolveClassComponentProps(Component, unresolvedOldProps)
_instance.props = lane
var oldContext = _instance.context
foundWillUpdateName = Component.contextType
state = emptyContextObject
'object' === typeof foundWillUpdateName &&
null !== foundWillUpdateName &&
(state = readContext(foundWillUpdateName))
newApiName = Component.getDerivedStateFromProps
foundWillUpdateName =
'function' === typeof newApiName ||
'function' === typeof _instance.getSnapshotBeforeUpdate
unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps
foundWillUpdateName ||
('function' !== typeof _instance.UNSAFE_componentWillReceiveProps &&
'function' !== typeof _instance.componentWillReceiveProps) ||
((unresolvedOldProps || oldContext !== state) &&
callComponentWillReceiveProps(
workInProgress,
_instance,
nextProps,
state
))
hasForceUpdate = !1
var oldState = workInProgress.memoizedState
_instance.state = oldState
processUpdateQueue(workInProgress, nextProps, _instance, renderLanes)
suspendIfUpdateReadFromEntangledAsyncAction()
oldContext = workInProgress.memoizedState
unresolvedOldProps || oldState !== oldContext || hasForceUpdate
? ('function' === typeof newApiName &&
(applyDerivedStateFromProps(
workInProgress,
Component,
newApiName,
nextProps
),
(oldContext = workInProgress.memoizedState)),
(lane =
hasForceUpdate ||
checkShouldComponentUpdate(
workInProgress,
Component,
lane,
nextProps,
oldState,
oldContext,
state
))
? (foundWillUpdateName ||
('function' !== typeof _instance.UNSAFE_componentWillMount &&
'function' !== typeof _instance.componentWillMount) ||
('function' === typeof _instance.componentWillMount &&
_instance.componentWillMount(),
'function' === typeof _instance.UNSAFE_componentWillMount &&
_instance.UNSAFE_componentWillMount()),
'function' === typeof _instance.componentDidMount &&
(workInProgress.flags |= 4194308),
(workInProgress.mode & StrictEffectsMode) !== NoMode &&
(workInProgress.flags |= 134217728))
: ('function' === typeof _instance.componentDidMount &&
(workInProgress.flags |= 4194308),
(workInProgress.mode & StrictEffectsMode) !== NoMode &&
(workInProgress.flags |= 134217728),
(workInProgress.memoizedProps = nextProps),
(workInProgress.memoizedState = oldContext)),
(_instance.props = nextProps),
(_instance.state = oldContext),
(_instance.context = state),
(_instance = lane))
: ('function' === typeof _instance.componentDidMount &&
(workInProgress.flags |= 4194308),
(workInProgress.mode & StrictEffectsMode) !== NoMode &&
(workInProgress.flags |= 134217728),
(_instance = !1))
} else {
_instance = workInProgress.stateNode
cloneUpdateQueue(current, workInProgress)
state = workInProgress.memoizedProps
foundWillUpdateName = resolveClassComponentProps(Component, state)
_instance.props = foundWillUpdateName
newApiName = workInProgress.pendingProps
oldState = _instance.context
oldContext = Component.contextType
lane = emptyContextObject
'object' === typeof oldContext &&
null !== oldContext &&
(lane = readContext(oldContext))
unresolvedOldProps = Component.getDerivedStateFromProps
;(oldContext =
'function' === typeof unresolvedOldProps ||
'function' === typeof _instance.getSnapshotBeforeUpdate) ||
('function' !== typeof _instance.UNSAFE_componentWillReceiveProps &&
'function' !== typeof _instance.componentWillReceiveProps) ||
((state !== newApiName || oldState !== lane) &&
callComponentWillReceiveProps(
workInProgress,
_instance,
nextProps,
lane
))
hasForceUpdate = !1
oldState = workInProgress.memoizedState
_instance.state = oldState
processUpdateQueue(workInProgress, nextProps, _instance, renderLanes)
suspendIfUpdateReadFromEntangledAsyncAction()
var newState = workInProgress.memoizedState
state !== newApiName ||
oldState !== newState ||
hasForceUpdate ||
(null !== current &&
null !== current.dependencies &&
checkIfContextChanged(current.dependencies))
? ('function' === typeof unresolvedOldProps &&
(applyDerivedStateFromProps(
workInProgress,
Component,
unresolvedOldProps,
nextProps
),
(newState = workInProgress.memoizedState)),
(foundWillUpdateName =
hasForceUpdate ||
checkShouldComponentUpdate(
workInProgress,
Component,
foundWillUpdateName,
nextProps,
oldState,
newState,
lane
) ||
(null !== current &&
null !== current.dependencies &&
checkIfContextChanged(current.dependencies)))
? (oldContext ||
('function' !== typeof _instance.UNSAFE_componentWillUpdate &&
'function' !== typeof _instance.componentWillUpdate) ||
('function' === typeof _instance.componentWillUpdate &&
_instance.componentWillUpdate(nextProps, newState, lane),
'function' === typeof _instance.UNSAFE_componentWillUpdate &&
_instance.UNSAFE_componentWillUpdate(
nextProps,
newState,
lane
)),
'function' === typeof _instance.componentDidUpdate &&
(workInProgress.flags |= 4),
'function' === typeof _instance.getSnapshotBeforeUpdate &&
(workInProgress.flags |= 1024))
: ('function' !== typeof _instance.componentDidUpdate ||
(state === current.memoizedProps &&
oldState === current.memoizedState) ||
(workInProgress.flags |= 4),
'function' !== typeof _instance.getSnapshotBeforeUpdate ||
(state === current.memoizedProps &&
oldState === current.memoizedState) ||
(workInProgress.flags |= 1024),
(workInProgress.memoizedProps = nextProps),
(workInProgress.memoizedState = newState)),
(_instance.props = nextProps),
(_instance.state = newState),
(_instance.context = lane),
(_instance = foundWillUpdateName))
: ('function' !== typeof _instance.componentDidUpdate ||
(state === current.memoizedProps &&
oldState === current.memoizedState) ||
(workInProgress.flags |= 4),
'function' !== typeof _instance.getSnapshotBeforeUpdate ||
(state === current.memoizedProps &&
oldState === current.memoizedState) ||
(workInProgress.flags |= 1024),
(_instance = !1))
}
lane = _instance
markRef(current, workInProgress)
state = 0 !== (workInProgress.flags & 128)
if (lane || state) {
lane = workInProgress.stateNode
setCurrentFiber(workInProgress)
if (state && 'function' !== typeof Component.getDerivedStateFromError)
((Component = null), (profilerStartTime = -1))
else {
markComponentRenderStarted(workInProgress)
Component = callRenderInDEV(lane)
if (workInProgress.mode & StrictLegacyMode) {
setIsStrictModeForDevtools(!0)
try {
callRenderInDEV(lane)
} finally {
setIsStrictModeForDevtools(!1)
}
}
markComponentRenderStopped()
}
workInProgress.flags |= 1
null !== current && state
? ((workInProgress.child = reconcileChildFibers(
workInProgress,
current.child,
null,
renderLanes
)),
(workInProgress.child = reconcileChildFibers(
workInProgress,
null,
Component,
renderLanes
)))
: reconcileChildren(current, workInProgress, Component, renderLanes)
workInProgress.memoizedState = lane.state
current = workInProgress.child
} else
current = bailoutOnAlreadyFinishedWork(
current,
workInProgress,
renderLanes
)
renderLanes = workInProgress.stateNode
_instance &&
renderLanes.props !== nextProps &&
(didWarnAboutReassigningProps ||
console.error(
'It looks like %s is reassigning its own `this.props` while rendering. This is not supported and can lead to confusing bugs.',
getComponentNameFromFiber(workInProgress) || 'a component'
),
(didWarnAboutReassigningProps = !0))
return current
}
function mountHostRootWithoutHydrating(
current,
workInProgress,
nextChildren,
renderLanes
) {
resetHydrationState()
workInProgress.flags |= 256
reconcileChildren(current, workInProgress, nextChildren, renderLanes)
return workInProgress.child
}
function validateFunctionComponentInDev(workInProgress, Component) {
Component &&
Component.childContextTypes &&
console.error(
'childContextTypes cannot be defined on a function component.\n %s.childContextTypes = ...',
Component.displayName || Component.name || 'Component'
)
'function' === typeof Component.getDerivedStateFromProps &&
((workInProgress = getComponentNameFromType(Component) || 'Unknown'),
didWarnAboutGetDerivedStateOnFunctionComponent[workInProgress] ||
(console.error(
'%s: Function components do not support getDerivedStateFromProps.',
workInProgress
),
(didWarnAboutGetDerivedStateOnFunctionComponent[workInProgress] =
!0)))
'object' === typeof Component.contextType &&
null !== Component.contextType &&
((Component = getComponentNameFromType(Component) || 'Unknown'),
didWarnAboutContextTypeOnFunctionComponent[Component] ||
(console.error(
'%s: Function components do not support contextType.',
Component
),
(didWarnAboutContextTypeOnFunctionComponent[Component] = !0)))
}
function mountSuspenseOffscreenState(renderLanes) {
return { baseLanes: renderLanes, cachePool: getSuspendedCache() }
}
function getRemainingWorkInPrimaryTree(
current,
primaryTreeDidDefer,
renderLanes
) {
current = null !== current ? current.childLanes & ~renderLanes : 0
primaryTreeDidDefer && (current |= workInProgressDeferredLane)
return current
}
function updateSuspenseComponent(current, workInProgress, renderLanes) {
var JSCompiler_object_inline_digest_2532
var JSCompiler_object_inline_stack_2533 = workInProgress.pendingProps
shouldSuspendImpl(workInProgress) && (workInProgress.flags |= 128)
var JSCompiler_object_inline_message_2531 = !1
var didSuspend = 0 !== (workInProgress.flags & 128)
;(JSCompiler_object_inline_digest_2532 = didSuspend) ||
(JSCompiler_object_inline_digest_2532 =
null !== current && null === current.memoizedState
? !1
: 0 !== (suspenseStackCursor.current & ForceSuspenseFallback))
JSCompiler_object_inline_digest_2532 &&
((JSCompiler_object_inline_message_2531 = !0),
(workInProgress.flags &= -129))
JSCompiler_object_inline_digest_2532 = 0 !== (workInProgress.flags & 32)
workInProgress.flags &= -33
if (null === current) {
if (isHydrating) {
JSCompiler_object_inline_message_2531
? pushPrimaryTreeSuspenseHandler(workInProgress)
: reuseSuspenseHandlerOnStack(workInProgress)
;(current = nextHydratableInstance)
? ((renderLanes = canHydrateHydrationBoundary(
current,
rootOrSingletonContext
)),
(renderLanes =
null !== renderLanes && renderLanes.data !== ACTIVITY_START_DATA
? renderLanes
: null),
null !== renderLanes &&
((JSCompiler_object_inline_digest_2532 = {
dehydrated: renderLanes,
treeContext: getSuspendedTreeContext(),
retryLane: 536870912,
hydrationErrors: null,
}),
(workInProgress.memoizedState =
JSCompiler_object_inline_digest_2532),
(JSCompiler_object_inline_digest_2532 =
createFiberFromDehydratedFragment(renderLanes)),
(JSCompiler_object_inline_digest_2532.return = workInProgress),
(workInProgress.child = JSCompiler_object_inline_digest_2532),
(hydrationParentFiber = workInProgress),
(nextHydratableInstance = null)))
: (renderLanes = null)
if (null === renderLanes)
throw (
warnNonHydratedInstance(workInProgress, current),
throwOnHydrationMismatch(workInProgress)
)
isSuspenseInstanceFallback(renderLanes)
? (workInProgress.lanes = 32)
: (workInProgress.lanes = 536870912)
return null
}
var nextPrimaryChildren = JSCompiler_object_inline_stack_2533.children
JSCompiler_object_inline_stack_2533 =
JSCompiler_object_inline_stack_2533.fallback
if (JSCompiler_object_inline_message_2531) {
reuseSuspenseHandlerOnStack(workInProgress)
var mode = workInProgress.mode
nextPrimaryChildren = mountWorkInProgressOffscreenFiber(
{ mode: 'hidden', children: nextPrimaryChildren },
mode
)
JSCompiler_object_inline_stack_2533 = createFiberFromFragment(
JSCompiler_object_inline_stack_2533,
mode,
renderLanes,
null
)
nextPrimaryChildren.return = workInProgress
JSCompiler_object_inline_stack_2533.return = workInProgress
nextPrimaryChildren.sibling = JSCompiler_object_inline_stack_2533
workInProgress.child = nextPrimaryChildren
JSCompiler_object_inline_stack_2533 = workInProgress.child
JSCompiler_object_inline_stack_2533.memoizedState =
mountSuspenseOffscreenState(renderLanes)
JSCompiler_object_inline_stack_2533.childLanes =
getRemainingWorkInPrimaryTree(
current,
JSCompiler_object_inline_digest_2532,
renderLanes
)
workInProgress.memoizedState = SUSPENDED_MARKER
return bailoutOffscreenComponent(
null,
JSCompiler_object_inline_stack_2533
)
}
pushPrimaryTreeSuspenseHandler(workInProgress)
return mountSuspensePrimaryChildren(workInProgress, nextPrimaryChildren)
}
var prevState = current.memoizedState
if (null !== prevState) {
var JSCompiler_object_inline_componentStack_2534 = prevState.dehydrated
if (null !== JSCompiler_object_inline_componentStack_2534) {
if (didSuspend)
workInProgress.flags & 256
? (pushPrimaryTreeSuspenseHandler(workInProgress),
(workInProgress.flags &= -257),
(workInProgress = retrySuspenseComponentWithoutHydrating(
current,
workInProgress,
renderLanes
)))
: null !== workInProgress.memoizedState
? (reuseSuspenseHandlerOnStack(workInProgress),
(workInProgress.child = current.child),
(workInProgress.flags |= 128),
(workInProgress = null))
: (reuseSuspenseHandlerOnStack(workInProgress),
(nextPrimaryChildren =
JSCompiler_object_inline_stack_2533.fallback),
(mode = workInProgress.mode),
(JSCompiler_object_inline_stack_2533 =
mountWorkInProgressOffscreenFiber(
{
mode: 'visible',
children: JSCompiler_object_inline_stack_2533.children,
},
mode
)),
(nextPrimaryChildren = createFiberFromFragment(
nextPrimaryChildren,
mode,
renderLanes,
null
)),
(nextPrimaryChildren.flags |= 2),
(JSCompiler_object_inline_stack_2533.return = workInProgress),
(nextPrimaryChildren.return = workInProgress),
(JSCompiler_object_inline_stack_2533.sibling =
nextPrimaryChildren),
(workInProgress.child = JSCompiler_object_inline_stack_2533),
reconcileChildFibers(
workInProgress,
current.child,
null,
renderLanes
),
(JSCompiler_object_inline_stack_2533 = workInProgress.child),
(JSCompiler_object_inline_stack_2533.memoizedState =
mountSuspenseOffscreenState(renderLanes)),
(JSCompiler_object_inline_stack_2533.childLanes =
getRemainingWorkInPrimaryTree(
current,
JSCompiler_object_inline_digest_2532,
renderLanes
)),
(workInProgress.memoizedState = SUSPENDED_MARKER),
(workInProgress = bailoutOffscreenComponent(
null,
JSCompiler_object_inline_stack_2533
)))
else if (
(pushPrimaryTreeSuspenseHandler(workInProgress),
warnIfHydrating(),
isSuspenseInstanceFallback(
JSCompiler_object_inline_componentStack_2534
))
) {
JSCompiler_object_inline_digest_2532 =
JSCompiler_object_inline_componentStack_2534.nextSibling &&
JSCompiler_object_inline_componentStack_2534.nextSibling.dataset
if (JSCompiler_object_inline_digest_2532) {
nextPrimaryChildren = JSCompiler_object_inline_digest_2532.dgst
var message = JSCompiler_object_inline_digest_2532.msg
mode = JSCompiler_object_inline_digest_2532.stck
var componentStack = JSCompiler_object_inline_digest_2532.cstck
}
JSCompiler_object_inline_message_2531 = message
JSCompiler_object_inline_digest_2532 = nextPrimaryChildren
JSCompiler_object_inline_stack_2533 = mode
JSCompiler_object_inline_componentStack_2534 = componentStack
nextPrimaryChildren = JSCompiler_object_inline_message_2531
mode = JSCompiler_object_inline_componentStack_2534
nextPrimaryChildren = nextPrimaryChildren
? Error(nextPrimaryChildren)
: Error(
'The server could not finish this Suspense boundary, likely due to an error during server rendering. Switched to client rendering.'
)
nextPrimaryChildren.stack =
JSCompiler_object_inline_stack_2533 || ''
nextPrimaryChildren.digest = JSCompiler_object_inline_digest_2532
JSCompiler_object_inline_digest_2532 = void 0 === mode ? null : mode
JSCompiler_object_inline_stack_2533 = {
value: nextPrimaryChildren,
source: null,
stack: JSCompiler_object_inline_digest_2532,
}
'string' === typeof JSCompiler_object_inline_digest_2532 &&
CapturedStacks.set(
nextPrimaryChildren,
JSCompiler_object_inline_stack_2533
)
queueHydrationError(JSCompiler_object_inline_stack_2533)
workInProgress = retrySuspenseComponentWithoutHydrating(
current,
workInProgress,
renderLanes
)
} else if (
(didReceiveUpdate ||
propagateParentContextChanges(
current,
workInProgress,
renderLanes,
!1
),
(JSCompiler_object_inline_digest_2532 =
0 !== (renderLanes & current.childLanes)),
didReceiveUpdate || JSCompiler_object_inline_digest_2532)
) {
JSCompiler_object_inline_digest_2532 = workInProgressRoot
if (
null !== JSCompiler_object_inline_digest_2532 &&
((JSCompiler_object_inline_stack_2533 = getBumpedLaneForHydration(
JSCompiler_object_inline_digest_2532,
renderLanes
)),
0 !== JSCompiler_object_inline_stack_2533 &&
JSCompiler_object_inline_stack_2533 !== prevState.retryLane)
)
throw (
(prevState.retryLane = JSCompiler_object_inline_stack_2533),
enqueueConcurrentRenderForLane(
current,
JSCompiler_object_inline_stack_2533
),
scheduleUpdateOnFiber(
JSCompiler_object_inline_digest_2532,
current,
JSCompiler_object_inline_stack_2533
),
SelectiveHydrationException
)
isSuspenseInstancePending(
JSCompiler_object_inline_componentStack_2534
) || renderDidSuspendDelayIfPossible()
workInProgress = retrySuspenseComponentWithoutHydrating(
current,
workInProgress,
renderLanes
)
} else
isSuspenseInstancePending(
JSCompiler_object_inline_componentStack_2534
)
? ((workInProgress.flags |= 192),
(workInProgress.child = current.child),
(workInProgress = null))
: ((current = prevState.treeContext),
(nextHydratableInstance = getNextHydratable(
JSCompiler_object_inline_componentStack_2534.nextSibling
)),
(hydrationParentFiber = workInProgress),
(isHydrating = !0),
(hydrationErrors = null),
(didSuspendOrErrorDEV = !1),
(hydrationDiffRootDEV = null),
(rootOrSingletonContext = !1),
null !== current &&
restoreSuspendedTreeContext(workInProgress, current),
(workInProgress = mountSuspensePrimaryChildren(
workInProgress,
JSCompiler_object_inline_stack_2533.children
)),
(workInProgress.flags |= 4096))
return workInProgress
}
}
if (JSCompiler_object_inline_message_2531)
return (
reuseSuspenseHandlerOnStack(workInProgress),
(nextPrimaryChildren = JSCompiler_object_inline_stack_2533.fallback),
(mode = workInProgress.mode),
(componentStack = current.child),
(JSCompiler_object_inline_componentStack_2534 =
componentStack.sibling),
(JSCompiler_object_inline_stack_2533 = createWorkInProgress(
componentStack,
{
mode: 'hidden',
children: JSCompiler_object_inline_stack_2533.children,
}
)),
(JSCompiler_object_inline_stack_2533.subtreeFlags =
componentStack.subtreeFlags & 65011712),
null !== JSCompiler_object_inline_componentStack_2534
? (nextPrimaryChildren = createWorkInProgress(
JSCompiler_object_inline_componentStack_2534,
nextPrimaryChildren
))
: ((nextPrimaryChildren = createFiberFromFragment(
nextPrimaryChildren,
mode,
renderLanes,
null
)),
(nextPrimaryChildren.flags |= 2)),
(nextPrimaryChildren.return = workInProgress),
(JSCompiler_object_inline_stack_2533.return = workInProgress),
(JSCompiler_object_inline_stack_2533.sibling = nextPrimaryChildren),
(workInProgress.child = JSCompiler_object_inline_stack_2533),
bailoutOffscreenComponent(null, JSCompiler_object_inline_stack_2533),
(JSCompiler_object_inline_stack_2533 = workInProgress.child),
(nextPrimaryChildren = current.child.memoizedState),
null === nextPrimaryChildren
? (nextPrimaryChildren = mountSuspenseOffscreenState(renderLanes))
: ((mode = nextPrimaryChildren.cachePool),
null !== mode
? ((componentStack = CacheContext._currentValue),
(mode =
mode.parent !== componentStack
? { parent: componentStack, pool: componentStack }
: mode))
: (mode = getSuspendedCache()),
(nextPrimaryChildren = {
baseLanes: nextPrimaryChildren.baseLanes | renderLanes,
cachePool: mode,
})),
(JSCompiler_object_inline_stack_2533.memoizedState =
nextPrimaryChildren),
(JSCompiler_object_inline_stack_2533.childLanes =
getRemainingWorkInPrimaryTree(
current,
JSCompiler_object_inline_digest_2532,
renderLanes
)),
(workInProgress.memoizedState = SUSPENDED_MARKER),
bailoutOffscreenComponent(
current.child,
JSCompiler_object_inline_stack_2533
)
)
pushPrimaryTreeSuspenseHandler(workInProgress)
renderLanes = current.child
current = renderLanes.sibling
renderLanes = createWorkInProgress(renderLanes, {
mode: 'visible',
children: JSCompiler_object_inline_stack_2533.children,
})
renderLanes.return = workInProgress
renderLanes.sibling = null
null !== current &&
((JSCompiler_object_inline_digest_2532 = workInProgress.deletions),
null === JSCompiler_object_inline_digest_2532
? ((workInProgress.deletions = [current]),
(workInProgress.flags |= 16))
: JSCompiler_object_inline_digest_2532.push(current))
workInProgress.child = renderLanes
workInProgress.memoizedState = null
return renderLanes
}
function mountSuspensePrimaryChildren(workInProgress, primaryChildren) {
primaryChildren = mountWorkInProgressOffscreenFiber(
{ mode: 'visible', children: primaryChildren },
workInProgress.mode
)
primaryChildren.return = workInProgress
return (workInProgress.child = primaryChildren)
}
function mountWorkInProgressOffscreenFiber(offscreenProps, mode) {
offscreenProps = createFiber(22, offscreenProps, null, mode)
offscreenProps.lanes = 0
return offscreenProps
}
function retrySuspenseComponentWithoutHydrating(
current,
workInProgress,
renderLanes
) {
reconcileChildFibers(workInProgress, current.child, null, renderLanes)
current = mountSuspensePrimaryChildren(
workInProgress,
workInProgress.pendingProps.children
)
current.flags |= 2
workInProgress.memoizedState = null
return current
}
function scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {
fiber.lanes |= renderLanes
var alternate = fiber.alternate
null !== alternate && (alternate.lanes |= renderLanes)
scheduleContextWorkOnParentPath(
fiber.return,
renderLanes,
propagationRoot
)
}
function initSuspenseListRenderState(
workInProgress,
isBackwards,
tail,
lastContentRow,
tailMode,
treeForkCount
) {
var renderState = workInProgress.memoizedState
null === renderState
? (workInProgress.memoizedState = {
isBackwards: isBackwards,
rendering: null,
renderingStartTime: 0,
last: lastContentRow,
tail: tail,
tailMode: tailMode,
treeForkCount: treeForkCount,
})
: ((renderState.isBackwards = isBackwards),
(renderState.rendering = null),
(renderState.renderingStartTime = 0),
(renderState.last = lastContentRow),
(renderState.tail = tail),
(renderState.tailMode = tailMode),
(renderState.treeForkCount = treeForkCount))
}
function updateSuspenseListComponent(current, workInProgress, renderLanes) {
var nextProps = workInProgress.pendingProps,
revealOrder = nextProps.revealOrder,
tailMode = nextProps.tail,
newChildren = nextProps.children,
suspenseContext = suspenseStackCursor.current
;(nextProps = 0 !== (suspenseContext & ForceSuspenseFallback))
? ((suspenseContext =
(suspenseContext & SubtreeSuspenseContextMask) |
ForceSuspenseFallback),
(workInProgress.flags |= 128))
: (suspenseContext &= SubtreeSuspenseContextMask)
push(suspenseStackCursor, suspenseContext, workInProgress)
suspenseContext = null == revealOrder ? 'null' : revealOrder
if (
'forwards' !== revealOrder &&
'unstable_legacy-backwards' !== revealOrder &&
'together' !== revealOrder &&
'independent' !== revealOrder &&
!didWarnAboutRevealOrder[suspenseContext]
)
if (
((didWarnAboutRevealOrder[suspenseContext] = !0), null == revealOrder)
)
console.error(
'The default for the <SuspenseList revealOrder="..."> prop is changing. To be future compatible you must explictly specify either "independent" (the current default), "together", "forwards" or "legacy_unstable-backwards".'
)
else if ('backwards' === revealOrder)
console.error(
'The rendering order of <SuspenseList revealOrder="backwards"> is changing. To be future compatible you must specify revealOrder="legacy_unstable-backwards" instead.'
)
else if ('string' === typeof revealOrder)
switch (revealOrder.toLowerCase()) {
case 'together':
case 'forwards':
case 'backwards':
case 'independent':
console.error(
'"%s" is not a valid value for revealOrder on <SuspenseList />. Use lowercase "%s" instead.',
revealOrder,
revealOrder.toLowerCase()
)
break
case 'forward':
case 'backward':
console.error(
'"%s" is not a valid value for revealOrder on <SuspenseList />. React uses the -s suffix in the spelling. Use "%ss" instead.',
revealOrder,
revealOrder.toLowerCase()
)
break
default:
console.error(
'"%s" is not a supported revealOrder on <SuspenseList />. Did you mean "independent", "together", "forwards" or "backwards"?',
revealOrder
)
}
else
console.error(
'%s is not a supported value for revealOrder on <SuspenseList />. Did you mean "independent", "together", "forwards" or "backwards"?',
revealOrder
)
suspenseContext = null == tailMode ? 'null' : tailMode
if (!didWarnAboutTailOptions[suspenseContext])
if (null == tailMode) {
if (
'forwards' === revealOrder ||
'backwards' === revealOrder ||
'unstable_legacy-backwards' === revealOrder
)
((didWarnAboutTailOptions[suspenseContext] = !0),
console.error(
'The default for the <SuspenseList tail="..."> prop is changing. To be future compatible you must explictly specify either "visible" (the current default), "collapsed" or "hidden".'
))
} else
'visible' !== tailMode &&
'collapsed' !== tailMode &&
'hidden' !== tailMode
? ((didWarnAboutTailOptions[suspenseContext] = !0),
console.error(
'"%s" is not a supported value for tail on <SuspenseList />. Did you mean "visible", "collapsed" or "hidden"?',
tailMode
))
: 'forwards' !== revealOrder &&
'backwards' !== revealOrder &&
'unstable_legacy-backwards' !== revealOrder &&
((didWarnAboutTailOptions[suspenseContext] = !0),
console.error(
'<SuspenseList tail="%s" /> is only valid if revealOrder is "forwards" or "backwards". Did you mean to specify revealOrder="forwards"?',
tailMode
))
a: if (
('forwards' === revealOrder ||
'backwards' === revealOrder ||
'unstable_legacy-backwards' === revealOrder) &&
void 0 !== newChildren &&
null !== newChildren &&
!1 !== newChildren
)
if (isArrayImpl(newChildren))
for (
suspenseContext = 0;
suspenseContext < newChildren.length;
suspenseContext++
) {
if (
!validateSuspenseListNestedChild(
newChildren[suspenseContext],
suspenseContext
)
)
break a
}
else if (
((suspenseContext = getIteratorFn(newChildren)),
'function' === typeof suspenseContext)
) {
if ((suspenseContext = suspenseContext.call(newChildren)))
for (
var step = suspenseContext.next(), _i = 0;
!step.done;
step = suspenseContext.next()
) {
if (!validateSuspenseListNestedChild(step.value, _i)) break a
_i++
}
} else
console.error(
'A single row was passed to a <SuspenseList revealOrder="%s" />. This is not useful since it needs multiple rows. Did you mean to pass multiple children or an array?',
revealOrder
)
reconcileChildren(current, workInProgress, newChildren, renderLanes)
isHydrating
? (warnIfNotHydrating(), (newChildren = treeForkCount))
: (newChildren = 0)
if (!nextProps && null !== current && 0 !== (current.flags & 128))
a: for (current = workInProgress.child; null !== current; ) {
if (13 === current.tag)
null !== current.memoizedState &&
scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress)
else if (19 === current.tag)
scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress)
else if (null !== current.child) {
current.child.return = current
current = current.child
continue
}
if (current === workInProgress) break a
for (; null === current.sibling; ) {
if (null === current.return || current.return === workInProgress)
break a
current = current.return
}
current.sibling.return = current.return
current = current.sibling
}
switch (revealOrder) {
case 'forwards':
renderLanes = workInProgress.child
for (revealOrder = null; null !== renderLanes; )
((current = renderLanes.alternate),
null !== current &&
null === findFirstSuspended(current) &&
(revealOrder = renderLanes),
(renderLanes = renderLanes.sibling))
renderLanes = revealOrder
null === renderLanes
? ((revealOrder = workInProgress.child),
(workInProgress.child = null))
: ((revealOrder = renderLanes.sibling),
(renderLanes.sibling = null))
initSuspenseListRenderState(
workInProgress,
!1,
revealOrder,
renderLanes,
tailMode,
newChildren
)
break
case 'backwards':
case 'unstable_legacy-backwards':
renderLanes = null
revealOrder = workInProgress.child
for (workInProgress.child = null; null !== revealOrder; ) {
current = revealOrder.alternate
if (null !== current && null === findFirstSuspended(current)) {
workInProgress.child = revealOrder
break
}
current = revealOrder.sibling
revealOrder.sibling = renderLanes
renderLanes = revealOrder
revealOrder = current
}
initSuspenseListRenderState(
workInProgress,
!0,
renderLanes,
null,
tailMode,
newChildren
)
break
case 'together':
initSuspenseListRenderState(
workInProgress,
!1,
null,
null,
void 0,
newChildren
)
break
default:
workInProgress.memoizedState = null
}
return workInProgress.child
}
function bailoutOnAlreadyFinishedWork(
current,
workInProgress,
renderLanes
) {
null !== current && (workInProgress.dependencies = current.dependencies)
profilerStartTime = -1
workInProgressRootSkippedLanes |= workInProgress.lanes
if (0 === (renderLanes & workInProgress.childLanes))
if (null !== current) {
if (
(propagateParentContextChanges(
current,
workInProgress,
renderLanes,
!1
),
0 === (renderLanes & workInProgress.childLanes))
)
return null
} else return null
if (null !== current && workInProgress.child !== current.child)
throw Error('Resuming work not yet implemented.')
if (null !== workInProgress.child) {
current = workInProgress.child
renderLanes = createWorkInProgress(current, current.pendingProps)
workInProgress.child = renderLanes
for (renderLanes.return = workInProgress; null !== current.sibling; )
((current = current.sibling),
(renderLanes = renderLanes.sibling =
createWorkInProgress(current, current.pendingProps)),
(renderLanes.return = workInProgress))
renderLanes.sibling = null
}
return workInProgress.child
}
function checkScheduledUpdateOrContext(current, renderLanes) {
if (0 !== (current.lanes & renderLanes)) return !0
current = current.dependencies
return null !== current && checkIfContextChanged(current) ? !0 : !1
}
function attemptEarlyBailoutIfNoScheduledUpdate(
current,
workInProgress,
renderLanes
) {
switch (workInProgress.tag) {
case 3:
pushHostContainer(
workInProgress,
workInProgress.stateNode.containerInfo
)
pushProvider(
workInProgress,
CacheContext,
current.memoizedState.cache
)
resetHydrationState()
break
case 27:
case 5:
pushHostContext(workInProgress)
break
case 4:
pushHostContainer(
workInProgress,
workInProgress.stateNode.containerInfo
)
break
case 10:
pushProvider(
workInProgress,
workInProgress.type,
workInProgress.memoizedProps.value
)
break
case 12:
0 !== (renderLanes & workInProgress.childLanes) &&
(workInProgress.flags |= 4)
workInProgress.flags |= 2048
var stateNode = workInProgress.stateNode
stateNode.effectDuration = -0
stateNode.passiveEffectDuration = -0
break
case 31:
if (null !== workInProgress.memoizedState)
return (
(workInProgress.flags |= 128),
pushDehydratedActivitySuspenseHandler(workInProgress),
null
)
break
case 13:
stateNode = workInProgress.memoizedState
if (null !== stateNode) {
if (null !== stateNode.dehydrated)
return (
pushPrimaryTreeSuspenseHandler(workInProgress),
(workInProgress.flags |= 128),
null
)
if (0 !== (renderLanes & workInProgress.child.childLanes))
return updateSuspenseComponent(
current,
workInProgress,
renderLanes
)
pushPrimaryTreeSuspenseHandler(workInProgress)
current = bailoutOnAlreadyFinishedWork(
current,
workInProgress,
renderLanes
)
return null !== current ? current.sibling : null
}
pushPrimaryTreeSuspenseHandler(workInProgress)
break
case 19:
var didSuspendBefore = 0 !== (current.flags & 128)
stateNode = 0 !== (renderLanes & workInProgress.childLanes)
stateNode ||
(propagateParentContextChanges(
current,
workInProgress,
renderLanes,
!1
),
(stateNode = 0 !== (renderLanes & workInProgress.childLanes)))
if (didSuspendBefore) {
if (stateNode)
return updateSuspenseListComponent(
current,
workInProgress,
renderLanes
)
workInProgress.flags |= 128
}
didSuspendBefore = workInProgress.memoizedState
null !== didSuspendBefore &&
((didSuspendBefore.rendering = null),
(didSuspendBefore.tail = null),
(didSuspendBefore.lastEffect = null))
push(suspenseStackCursor, suspenseStackCursor.current, workInProgress)
if (stateNode) break
else return null
case 22:
return (
(workInProgress.lanes = 0),
updateOffscreenComponent(
current,
workInProgress,
renderLanes,
workInProgress.pendingProps
)
)
case 24:
pushProvider(
workInProgress,
CacheContext,
current.memoizedState.cache
)
}
return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)
}
function beginWork(current, workInProgress, renderLanes) {
if (workInProgress._debugNeedsRemount && null !== current) {
renderLanes = createFiberFromTypeAndProps(
workInProgress.type,
workInProgress.key,
workInProgress.pendingProps,
workInProgress._debugOwner || null,
workInProgress.mode,
workInProgress.lanes
)
renderLanes._debugStack = workInProgress._debugStack
renderLanes._debugTask = workInProgress._debugTask
var returnFiber = workInProgress.return
if (null === returnFiber) throw Error('Cannot swap the root fiber.')
current.alternate = null
workInProgress.alternate = null
renderLanes.index = workInProgress.index
renderLanes.sibling = workInProgress.sibling
renderLanes.return = workInProgress.return
renderLanes.ref = workInProgress.ref
renderLanes._debugInfo = workInProgress._debugInfo
if (workInProgress === returnFiber.child)
returnFiber.child = renderLanes
else {
var prevSibling = returnFiber.child
if (null === prevSibling)
throw Error('Expected parent to have a child.')
for (; prevSibling.sibling !== workInProgress; )
if (((prevSibling = prevSibling.sibling), null === prevSibling))
throw Error('Expected to find the previous sibling.')
prevSibling.sibling = renderLanes
}
workInProgress = returnFiber.deletions
null === workInProgress
? ((returnFiber.deletions = [current]), (returnFiber.flags |= 16))
: workInProgress.push(current)
renderLanes.flags |= 2
return renderLanes
}
if (null !== current)
if (
current.memoizedProps !== workInProgress.pendingProps ||
workInProgress.type !== current.type
)
didReceiveUpdate = !0
else {
if (
!checkScheduledUpdateOrContext(current, renderLanes) &&
0 === (workInProgress.flags & 128)
)
return (
(didReceiveUpdate = !1),
attemptEarlyBailoutIfNoScheduledUpdate(
current,
workInProgress,
renderLanes
)
)
didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1
}
else {
didReceiveUpdate = !1
if ((returnFiber = isHydrating))
(warnIfNotHydrating(),
(returnFiber = 0 !== (workInProgress.flags & 1048576)))
returnFiber &&
((returnFiber = workInProgress.index),
warnIfNotHydrating(),
pushTreeId(workInProgress, treeForkCount, returnFiber))
}
workInProgress.lanes = 0
switch (workInProgress.tag) {
case 16:
a: if (
((returnFiber = workInProgress.pendingProps),
(current = resolveLazy(workInProgress.elementType)),
(workInProgress.type = current),
'function' === typeof current)
)
shouldConstruct(current)
? ((returnFiber = resolveClassComponentProps(
current,
returnFiber
)),
(workInProgress.tag = 1),
(workInProgress.type = current =
resolveFunctionForHotReloading(current)),
(workInProgress = updateClassComponent(
null,
workInProgress,
current,
returnFiber,
renderLanes
)))
: ((workInProgress.tag = 0),
validateFunctionComponentInDev(workInProgress, current),
(workInProgress.type = current =
resolveFunctionForHotReloading(current)),
(workInProgress = updateFunctionComponent(
null,
workInProgress,
current,
returnFiber,
renderLanes
)))
else {
if (void 0 !== current && null !== current)
if (
((prevSibling = current.$$typeof),
prevSibling === REACT_FORWARD_REF_TYPE)
) {
workInProgress.tag = 11
workInProgress.type = current =
resolveForwardRefForHotReloading(current)
workInProgress = updateForwardRef(
null,
workInProgress,
current,
returnFiber,
renderLanes
)
break a
} else if (prevSibling === REACT_MEMO_TYPE) {
workInProgress.tag = 14
workInProgress = updateMemoComponent(
null,
workInProgress,
current,
returnFiber,
renderLanes
)
break a
}
workInProgress = ''
null !== current &&
'object' === typeof current &&
current.$$typeof === REACT_LAZY_TYPE &&
(workInProgress =
' Did you wrap a component in React.lazy() more than once?')
renderLanes = getComponentNameFromType(current) || current
throw Error(
'Element type is invalid. Received a promise that resolves to: ' +
renderLanes +
'. Lazy element type must resolve to a class or function.' +
workInProgress
)
}
return workInProgress
case 0:
return updateFunctionComponent(
current,
workInProgress,
workInProgress.type,
workInProgress.pendingProps,
renderLanes
)
case 1:
return (
(returnFiber = workInProgress.type),
(prevSibling = resolveClassComponentProps(
returnFiber,
workInProgress.pendingProps
)),
updateClassComponent(
current,
workInProgress,
returnFiber,
prevSibling,
renderLanes
)
)
case 3:
a: {
pushHostContainer(
workInProgress,
workInProgress.stateNode.containerInfo
)
if (null === current)
throw Error(
'Should have a current fiber. This is a bug in React.'
)
returnFiber = workInProgress.pendingProps
var prevState = workInProgress.memoizedState
prevSibling = prevState.element
cloneUpdateQueue(current, workInProgress)
processUpdateQueue(workInProgress, returnFiber, null, renderLanes)
var nextState = workInProgress.memoizedState
returnFiber = nextState.cache
pushProvider(workInProgress, CacheContext, returnFiber)
returnFiber !== prevState.cache &&
propagateContextChanges(
workInProgress,
[CacheContext],
renderLanes,
!0
)
suspendIfUpdateReadFromEntangledAsyncAction()
returnFiber = nextState.element
if (prevState.isDehydrated)
if (
((prevState = {
element: returnFiber,
isDehydrated: !1,
cache: nextState.cache,
}),
(workInProgress.updateQueue.baseState = prevState),
(workInProgress.memoizedState = prevState),
workInProgress.flags & 256)
) {
workInProgress = mountHostRootWithoutHydrating(
current,
workInProgress,
returnFiber,
renderLanes
)
break a
} else if (returnFiber !== prevSibling) {
prevSibling = createCapturedValueAtFiber(
Error(
'This root received an early update, before anything was able hydrate. Switched the entire root to client rendering.'
),
workInProgress
)
queueHydrationError(prevSibling)
workInProgress = mountHostRootWithoutHydrating(
current,
workInProgress,
returnFiber,
renderLanes
)
break a
} else {
current = workInProgress.stateNode.containerInfo
switch (current.nodeType) {
case 9:
current = current.body
break
default:
current =
'HTML' === current.nodeName
? current.ownerDocument.body
: current
}
nextHydratableInstance = getNextHydratable(current.firstChild)
hydrationParentFiber = workInProgress
isHydrating = !0
hydrationErrors = null
didSuspendOrErrorDEV = !1
hydrationDiffRootDEV = null
rootOrSingletonContext = !0
renderLanes = mountChildFibers(
workInProgress,
null,
returnFiber,
renderLanes
)
for (workInProgress.child = renderLanes; renderLanes; )
((renderLanes.flags = (renderLanes.flags & -3) | 4096),
(renderLanes = renderLanes.sibling))
}
else {
resetHydrationState()
if (returnFiber === prevSibling) {
workInProgress = bailoutOnAlreadyFinishedWork(
current,
workInProgress,
renderLanes
)
break a
}
reconcileChildren(
current,
workInProgress,
returnFiber,
renderLanes
)
}
workInProgress = workInProgress.child
}
return workInProgress
case 26:
return (
markRef(current, workInProgress),
null === current
? (renderLanes = getResource(
workInProgress.type,
null,
workInProgress.pendingProps,
null
))
? (workInProgress.memoizedState = renderLanes)
: isHydrating ||
((renderLanes = workInProgress.type),
(current = workInProgress.pendingProps),
(returnFiber = requiredContext(
rootInstanceStackCursor.current
)),
(returnFiber =
getOwnerDocumentFromRootContainer(
returnFiber
).createElement(renderLanes)),
(returnFiber[internalInstanceKey] = workInProgress),
(returnFiber[internalPropsKey] = current),
setInitialProperties(returnFiber, renderLanes, current),
markNodeAsHoistable(returnFiber),
(workInProgress.stateNode = returnFiber))
: (workInProgress.memoizedState = getResource(
workInProgress.type,
current.memoizedProps,
workInProgress.pendingProps,
current.memoizedState
)),
null
)
case 27:
return (
pushHostContext(workInProgress),
null === current &&
isHydrating &&
((returnFiber = requiredContext(rootInstanceStackCursor.current)),
(prevSibling = getHostContext()),
(returnFiber = workInProgress.stateNode =
resolveSingletonInstance(
workInProgress.type,
workInProgress.pendingProps,
returnFiber,
prevSibling,
!1
)),
didSuspendOrErrorDEV ||
((prevSibling = diffHydratedProperties(
returnFiber,
workInProgress.type,
workInProgress.pendingProps,
prevSibling
)),
null !== prevSibling &&
(buildHydrationDiffNode(workInProgress, 0).serverProps =
prevSibling)),
(hydrationParentFiber = workInProgress),
(rootOrSingletonContext = !0),
(prevSibling = nextHydratableInstance),
isSingletonScope(workInProgress.type)
? ((previousHydratableOnEnteringScopedSingleton = prevSibling),
(nextHydratableInstance = getNextHydratable(
returnFiber.firstChild
)))
: (nextHydratableInstance = prevSibling)),
reconcileChildren(
current,
workInProgress,
workInProgress.pendingProps.children,
renderLanes
),
markRef(current, workInProgress),
null === current && (workInProgress.flags |= 4194304),
workInProgress.child
)
case 5:
return (
null === current &&
isHydrating &&
((prevState = getHostContext()),
(returnFiber = validateDOMNesting(
workInProgress.type,
prevState.ancestorInfo
)),
(prevSibling = nextHydratableInstance),
(nextState = !prevSibling) ||
((nextState = canHydrateInstance(
prevSibling,
workInProgress.type,
workInProgress.pendingProps,
rootOrSingletonContext
)),
null !== nextState
? ((workInProgress.stateNode = nextState),
didSuspendOrErrorDEV ||
((prevState = diffHydratedProperties(
nextState,
workInProgress.type,
workInProgress.pendingProps,
prevState
)),
null !== prevState &&
(buildHydrationDiffNode(workInProgress, 0).serverProps =
prevState)),
(hydrationParentFiber = workInProgress),
(nextHydratableInstance = getNextHydratable(
nextState.firstChild
)),
(rootOrSingletonContext = !1),
(prevState = !0))
: (prevState = !1),
(nextState = !prevState)),
nextState &&
(returnFiber &&
warnNonHydratedInstance(workInProgress, prevSibling),
throwOnHydrationMismatch(workInProgress))),
pushHostContext(workInProgress),
(prevSibling = workInProgress.type),
(prevState = workInProgress.pendingProps),
(nextState = null !== current ? current.memoizedProps : null),
(returnFiber = prevState.children),
shouldSetTextContent(prevSibling, prevState)
? (returnFiber = null)
: null !== nextState &&
shouldSetTextContent(prevSibling, nextState) &&
(workInProgress.flags |= 32),
null !== workInProgress.memoizedState &&
((prevSibling = renderWithHooks(
current,
workInProgress,
TransitionAwareHostComponent,
null,
null,
renderLanes
)),
(HostTransitionContext._currentValue = prevSibling)),
markRef(current, workInProgress),
reconcileChildren(
current,
workInProgress,
returnFiber,
renderLanes
),
workInProgress.child
)
case 6:
return (
null === current &&
isHydrating &&
((renderLanes = workInProgress.pendingProps),
(current = getHostContext()),
(returnFiber = current.ancestorInfo.current),
(renderLanes =
null != returnFiber
? validateTextNesting(
renderLanes,
returnFiber.tag,
current.ancestorInfo.implicitRootScope
)
: !0),
(current = nextHydratableInstance),
(returnFiber = !current) ||
((returnFiber = canHydrateTextInstance(
current,
workInProgress.pendingProps,
rootOrSingletonContext
)),
null !== returnFiber
? ((workInProgress.stateNode = returnFiber),
(hydrationParentFiber = workInProgress),
(nextHydratableInstance = null),
(returnFiber = !0))
: (returnFiber = !1),
(returnFiber = !returnFiber)),
returnFiber &&
(renderLanes &&
warnNonHydratedInstance(workInProgress, current),
throwOnHydrationMismatch(workInProgress))),
null
)
case 13:
return updateSuspenseComponent(current, workInProgress, renderLanes)
case 4:
return (
pushHostContainer(
workInProgress,
workInProgress.stateNode.containerInfo
),
(returnFiber = workInProgress.pendingProps),
null === current
? (workInProgress.child = reconcileChildFibers(
workInProgress,
null,
returnFiber,
renderLanes
))
: reconcileChildren(
current,
workInProgress,
returnFiber,
renderLanes
),
workInProgress.child
)
case 11:
return updateForwardRef(
current,
workInProgress,
workInProgress.type,
workInProgress.pendingProps,
renderLanes
)
case 7:
return (
reconcileChildren(
current,
workInProgress,
workInProgress.pendingProps,
renderLanes
),
workInProgress.child
)
case 8:
return (
reconcileChildren(
current,
workInProgress,
workInProgress.pendingProps.children,
renderLanes
),
workInProgress.child
)
case 12:
return (
(workInProgress.flags |= 4),
(workInProgress.flags |= 2048),
(returnFiber = workInProgress.stateNode),
(returnFiber.effectDuration = -0),
(returnFiber.passiveEffectDuration = -0),
reconcileChildren(
current,
workInProgress,
workInProgress.pendingProps.children,
renderLanes
),
workInProgress.child
)
case 10:
return (
(returnFiber = workInProgress.type),
(prevSibling = workInProgress.pendingProps),
(prevState = prevSibling.value),
'value' in prevSibling ||
hasWarnedAboutUsingNoValuePropOnContextProvider ||
((hasWarnedAboutUsingNoValuePropOnContextProvider = !0),
console.error(
'The `value` prop is required for the `<Context.Provider>`. Did you misspell it or forget to pass it?'
)),
pushProvider(workInProgress, returnFiber, prevState),
reconcileChildren(
current,
workInProgress,
prevSibling.children,
renderLanes
),
workInProgress.child
)
case 9:
return (
(prevSibling = workInProgress.type._context),
(returnFiber = workInProgress.pendingProps.children),
'function' !== typeof returnFiber &&
console.error(
"A context consumer was rendered with multiple children, or a child that isn't a function. A context consumer expects a single child that is a function. If you did pass a function, make sure there is no trailing or leading whitespace around it."
),
prepareToReadContext(workInProgress),
(prevSibling = readContext(prevSibling)),
markComponentRenderStarted(workInProgress),
(returnFiber = callComponentInDEV(
returnFiber,
prevSibling,
void 0
)),
markComponentRenderStopped(),
(workInProgress.flags |= 1),
reconcileChildren(
current,
workInProgress,
returnFiber,
renderLanes
),
workInProgress.child
)
case 14:
return updateMemoComponent(
current,
workInProgress,
workInProgress.type,
workInProgress.pendingProps,
renderLanes
)
case 15:
return updateSimpleMemoComponent(
current,
workInProgress,
workInProgress.type,
workInProgress.pendingProps,
renderLanes
)
case 19:
return updateSuspenseListComponent(
current,
workInProgress,
renderLanes
)
case 31:
return updateActivityComponent(current, workInProgress, renderLanes)
case 22:
return updateOffscreenComponent(
current,
workInProgress,
renderLanes,
workInProgress.pendingProps
)
case 24:
return (
prepareToReadContext(workInProgress),
(returnFiber = readContext(CacheContext)),
null === current
? ((prevSibling = peekCacheFromPool()),
null === prevSibling &&
((prevSibling = workInProgressRoot),
(prevState = createCache()),
(prevSibling.pooledCache = prevState),
retainCache(prevState),
null !== prevState &&
(prevSibling.pooledCacheLanes |= renderLanes),
(prevSibling = prevState)),
(workInProgress.memoizedState = {
parent: returnFiber,
cache: prevSibling,
}),
initializeUpdateQueue(workInProgress),
pushProvider(workInProgress, CacheContext, prevSibling))
: (0 !== (current.lanes & renderLanes) &&
(cloneUpdateQueue(current, workInProgress),
processUpdateQueue(workInProgress, null, null, renderLanes),
suspendIfUpdateReadFromEntangledAsyncAction()),
(prevSibling = current.memoizedState),
(prevState = workInProgress.memoizedState),
prevSibling.parent !== returnFiber
? ((prevSibling = {
parent: returnFiber,
cache: returnFiber,
}),
(workInProgress.memoizedState = prevSibling),
0 === workInProgress.lanes &&
(workInProgress.memoizedState =
workInProgress.updateQueue.baseState =
prevSibling),
pushProvider(workInProgress, CacheContext, returnFiber))
: ((returnFiber = prevState.cache),
pushProvider(workInProgress, CacheContext, returnFiber),
returnFiber !== prevSibling.cache &&
propagateContextChanges(
workInProgress,
[CacheContext],
renderLanes,
!0
))),
reconcileChildren(
current,
workInProgress,
workInProgress.pendingProps.children,
renderLanes
),
workInProgress.child
)
case 29:
throw workInProgress.pendingProps
}
throw Error(
'Unknown unit of work tag (' +
workInProgress.tag +
'). This error is likely caused by a bug in React. Please file an issue.'
)
}
function markUpdate(workInProgress) {
workInProgress.flags |= 4
}
function preloadInstanceAndSuspendIfNeeded(
workInProgress,
type,
oldProps,
newProps,
renderLanes
) {
if ((type = (workInProgress.mode & SuspenseyImagesMode) !== NoMode))
type = !1
if (type) {
if (
((workInProgress.flags |= 16777216),
(renderLanes & 335544128) === renderLanes)
)
if (workInProgress.stateNode.complete) workInProgress.flags |= 8192
else if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192
else
throw (
(suspendedThenable = noopSuspenseyCommitThenable),
SuspenseyCommitException
)
} else workInProgress.flags &= -16777217
}
function preloadResourceAndSuspendIfNeeded(workInProgress, resource) {
if (
'stylesheet' !== resource.type ||
(resource.state.loading & Inserted) !== NotLoaded
)
workInProgress.flags &= -16777217
else if (((workInProgress.flags |= 16777216), !preloadResource(resource)))
if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192
else
throw (
(suspendedThenable = noopSuspenseyCommitThenable),
SuspenseyCommitException
)
}
function scheduleRetryEffect(workInProgress, retryQueue) {
null !== retryQueue && (workInProgress.flags |= 4)
workInProgress.flags & 16384 &&
((retryQueue =
22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),
(workInProgress.lanes |= retryQueue),
(workInProgressSuspendedRetryLanes |= retryQueue))
}
function cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {
if (!isHydrating)
switch (renderState.tailMode) {
case 'hidden':
hasRenderedATailFallback = renderState.tail
for (var lastTailNode = null; null !== hasRenderedATailFallback; )
(null !== hasRenderedATailFallback.alternate &&
(lastTailNode = hasRenderedATailFallback),
(hasRenderedATailFallback = hasRenderedATailFallback.sibling))
null === lastTailNode
? (renderState.tail = null)
: (lastTailNode.sibling = null)
break
case 'collapsed':
lastTailNode = renderState.tail
for (var _lastTailNode = null; null !== lastTailNode; )
(null !== lastTailNode.alternate &&
(_lastTailNode = lastTailNode),
(lastTailNode = lastTailNode.sibling))
null === _lastTailNode
? hasRenderedATailFallback || null === renderState.tail
? (renderState.tail = null)
: (renderState.tail.sibling = null)
: (_lastTailNode.sibling = null)
}
}
function bubbleProperties(completedWork) {
var didBailout =
null !== completedWork.alternate &&
completedWork.alternate.child === completedWork.child,
newChildLanes = 0,
subtreeFlags = 0
if (didBailout)
if ((completedWork.mode & ProfileMode) !== NoMode) {
for (
var _treeBaseDuration = completedWork.selfBaseDuration,
_child2 = completedWork.child;
null !== _child2;
)
((newChildLanes |= _child2.lanes | _child2.childLanes),
(subtreeFlags |= _child2.subtreeFlags & 65011712),
(subtreeFlags |= _child2.flags & 65011712),
(_treeBaseDuration += _child2.treeBaseDuration),
(_child2 = _child2.sibling))
completedWork.treeBaseDuration = _treeBaseDuration
} else
for (
_treeBaseDuration = completedWork.child;
null !== _treeBaseDuration;
)
((newChildLanes |=
_treeBaseDuration.lanes | _treeBaseDuration.childLanes),
(subtreeFlags |= _treeBaseDuration.subtreeFlags & 65011712),
(subtreeFlags |= _treeBaseDuration.flags & 65011712),
(_treeBaseDuration.return = completedWork),
(_treeBaseDuration = _treeBaseDuration.sibling))
else if ((completedWork.mode & ProfileMode) !== NoMode) {
_treeBaseDuration = completedWork.actualDuration
_child2 = completedWork.selfBaseDuration
for (var child = completedWork.child; null !== child; )
((newChildLanes |= child.lanes | child.childLanes),
(subtreeFlags |= child.subtreeFlags),
(subtreeFlags |= child.flags),
(_treeBaseDuration += child.actualDuration),
(_child2 += child.treeBaseDuration),
(child = child.sibling))
completedWork.actualDuration = _treeBaseDuration
completedWork.treeBaseDuration = _child2
} else
for (
_treeBaseDuration = completedWork.child;
null !== _treeBaseDuration;
)
((newChildLanes |=
_treeBaseDuration.lanes | _treeBaseDuration.childLanes),
(subtreeFlags |= _treeBaseDuration.subtreeFlags),
(subtreeFlags |= _treeBaseDuration.flags),
(_treeBaseDuration.return = completedWork),
(_treeBaseDuration = _treeBaseDuration.sibling))
completedWork.subtreeFlags |= subtreeFlags
completedWork.childLanes = newChildLanes
return didBailout
}
function completeWork(current, workInProgress, renderLanes) {
var newProps = workInProgress.pendingProps
popTreeContext(workInProgress)
switch (workInProgress.tag) {
case 16:
case 15:
case 0:
case 11:
case 7:
case 8:
case 12:
case 9:
case 14:
return (bubbleProperties(workInProgress), null)
case 1:
return (bubbleProperties(workInProgress), null)
case 3:
renderLanes = workInProgress.stateNode
newProps = null
null !== current && (newProps = current.memoizedState.cache)
workInProgress.memoizedState.cache !== newProps &&
(workInProgress.flags |= 2048)
popProvider(CacheContext, workInProgress)
popHostContainer(workInProgress)
renderLanes.pendingContext &&
((renderLanes.context = renderLanes.pendingContext),
(renderLanes.pendingContext = null))
if (null === current || null === current.child)
popHydrationState(workInProgress)
? (emitPendingHydrationWarnings(), markUpdate(workInProgress))
: null === current ||
(current.memoizedState.isDehydrated &&
0 === (workInProgress.flags & 256)) ||
((workInProgress.flags |= 1024),
upgradeHydrationErrorsToRecoverable())
bubbleProperties(workInProgress)
return null
case 26:
var type = workInProgress.type,
nextResource = workInProgress.memoizedState
null === current
? (markUpdate(workInProgress),
null !== nextResource
? (bubbleProperties(workInProgress),
preloadResourceAndSuspendIfNeeded(
workInProgress,
nextResource
))
: (bubbleProperties(workInProgress),
preloadInstanceAndSuspendIfNeeded(
workInProgress,
type,
null,
newProps,
renderLanes
)))
: nextResource
? nextResource !== current.memoizedState
? (markUpdate(workInProgress),
bubbleProperties(workInProgress),
preloadResourceAndSuspendIfNeeded(
workInProgress,
nextResource
))
: (bubbleProperties(workInProgress),
(workInProgress.flags &= -16777217))
: ((current = current.memoizedProps),
current !== newProps && markUpdate(workInProgress),
bubbleProperties(workInProgress),
preloadInstanceAndSuspendIfNeeded(
workInProgress,
type,
current,
newProps,
renderLanes
))
return null
case 27:
popHostContext(workInProgress)
renderLanes = requiredContext(rootInstanceStackCursor.current)
type = workInProgress.type
if (null !== current && null != workInProgress.stateNode)
current.memoizedProps !== newProps && markUpdate(workInProgress)
else {
if (!newProps) {
if (null === workInProgress.stateNode)
throw Error(
'We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.'
)
bubbleProperties(workInProgress)
return null
}
current = getHostContext()
popHydrationState(workInProgress)
? prepareToHydrateHostInstance(workInProgress, current)
: ((current = resolveSingletonInstance(
type,
newProps,
renderLanes,
current,
!0
)),
(workInProgress.stateNode = current),
markUpdate(workInProgress))
}
bubbleProperties(workInProgress)
return null
case 5:
popHostContext(workInProgress)
type = workInProgress.type
if (null !== current && null != workInProgress.stateNode)
current.memoizedProps !== newProps && markUpdate(workInProgress)
else {
if (!newProps) {
if (null === workInProgress.stateNode)
throw Error(
'We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.'
)
bubbleProperties(workInProgress)
return null
}
var _currentHostContext = getHostContext()
if (popHydrationState(workInProgress))
prepareToHydrateHostInstance(workInProgress, _currentHostContext)
else {
nextResource = requiredContext(rootInstanceStackCursor.current)
validateDOMNesting(type, _currentHostContext.ancestorInfo)
_currentHostContext = _currentHostContext.context
nextResource = getOwnerDocumentFromRootContainer(nextResource)
switch (_currentHostContext) {
case HostContextNamespaceSvg:
nextResource = nextResource.createElementNS(
SVG_NAMESPACE,
type
)
break
case HostContextNamespaceMath:
nextResource = nextResource.createElementNS(
MATH_NAMESPACE,
type
)
break
default:
switch (type) {
case 'svg':
nextResource = nextResource.createElementNS(
SVG_NAMESPACE,
type
)
break
case 'math':
nextResource = nextResource.createElementNS(
MATH_NAMESPACE,
type
)
break
case 'script':
nextResource = nextResource.createElement('div')
nextResource.innerHTML = '<script>\x3c/script>'
nextResource = nextResource.removeChild(
nextResource.firstChild
)
break
case 'select':
nextResource =
'string' === typeof newProps.is
? nextResource.createElement('select', {
is: newProps.is,
})
: nextResource.createElement('select')
newProps.multiple
? (nextResource.multiple = !0)
: newProps.size && (nextResource.size = newProps.size)
break
default:
;((nextResource =
'string' === typeof newProps.is
? nextResource.createElement(type, {
is: newProps.is,
})
: nextResource.createElement(type)),
-1 === type.indexOf('-') &&
(type !== type.toLowerCase() &&
console.error(
'<%s /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.',
type
),
'[object HTMLUnknownElement]' !==
Object.prototype.toString.call(nextResource) ||
hasOwnProperty.call(warnedUnknownTags, type) ||
((warnedUnknownTags[type] = !0),
console.error(
'The tag <%s> is unrecognized in this browser. If you meant to render a React component, start its name with an uppercase letter.',
type
))))
}
}
nextResource[internalInstanceKey] = workInProgress
nextResource[internalPropsKey] = newProps
a: for (
_currentHostContext = workInProgress.child;
null !== _currentHostContext;
) {
if (
5 === _currentHostContext.tag ||
6 === _currentHostContext.tag
)
nextResource.appendChild(_currentHostContext.stateNode)
else if (
4 !== _currentHostContext.tag &&
27 !== _currentHostContext.tag &&
null !== _currentHostContext.child
) {
_currentHostContext.child.return = _currentHostContext
_currentHostContext = _currentHostContext.child
continue
}
if (_currentHostContext === workInProgress) break a
for (; null === _currentHostContext.sibling; ) {
if (
null === _currentHostContext.return ||
_currentHostContext.return === workInProgress
)
break a
_currentHostContext = _currentHostContext.return
}
_currentHostContext.sibling.return = _currentHostContext.return
_currentHostContext = _currentHostContext.sibling
}
workInProgress.stateNode = nextResource
a: switch (
(setInitialProperties(nextResource, type, newProps), type)
) {
case 'button':
case 'input':
case 'select':
case 'textarea':
newProps = !!newProps.autoFocus
break a
case 'img':
newProps = !0
break a
default:
newProps = !1
}
newProps && markUpdate(workInProgress)
}
}
bubbleProperties(workInProgress)
preloadInstanceAndSuspendIfNeeded(
workInProgress,
workInProgress.type,
null === current ? null : current.memoizedProps,
workInProgress.pendingProps,
renderLanes
)
return null
case 6:
if (current && null != workInProgress.stateNode)
current.memoizedProps !== newProps && markUpdate(workInProgress)
else {
if (
'string' !== typeof newProps &&
null === workInProgress.stateNode
)
throw Error(
'We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.'
)
current = requiredContext(rootInstanceStackCursor.current)
renderLanes = getHostContext()
if (popHydrationState(workInProgress)) {
current = workInProgress.stateNode
renderLanes = workInProgress.memoizedProps
type = !didSuspendOrErrorDEV
newProps = null
nextResource = hydrationParentFiber
if (null !== nextResource)
switch (nextResource.tag) {
case 3:
type &&
((type = diffHydratedTextForDevWarnings(
current,
renderLanes,
newProps
)),
null !== type &&
(buildHydrationDiffNode(workInProgress, 0).serverProps =
type))
break
case 27:
case 5:
;((newProps = nextResource.memoizedProps),
type &&
((type = diffHydratedTextForDevWarnings(
current,
renderLanes,
newProps
)),
null !== type &&
(buildHydrationDiffNode(
workInProgress,
0
).serverProps = type)))
}
current[internalInstanceKey] = workInProgress
current =
current.nodeValue === renderLanes ||
(null !== newProps &&
!0 === newProps.suppressHydrationWarning) ||
checkForUnmatchedText(current.nodeValue, renderLanes)
? !0
: !1
current || throwOnHydrationMismatch(workInProgress, !0)
} else
((type = renderLanes.ancestorInfo.current),
null != type &&
validateTextNesting(
newProps,
type.tag,
renderLanes.ancestorInfo.implicitRootScope
),
(current =
getOwnerDocumentFromRootContainer(current).createTextNode(
newProps
)),
(current[internalInstanceKey] = workInProgress),
(workInProgress.stateNode = current))
}
bubbleProperties(workInProgress)
return null
case 31:
renderLanes = workInProgress.memoizedState
if (null === current || null !== current.memoizedState) {
newProps = popHydrationState(workInProgress)
if (null !== renderLanes) {
if (null === current) {
if (!newProps)
throw Error(
'A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React.'
)
current = workInProgress.memoizedState
current = null !== current ? current.dehydrated : null
if (!current)
throw Error(
'Expected to have a hydrated activity instance. This error is likely caused by a bug in React. Please file an issue.'
)
current[internalInstanceKey] = workInProgress
bubbleProperties(workInProgress)
;(workInProgress.mode & ProfileMode) !== NoMode &&
null !== renderLanes &&
((current = workInProgress.child),
null !== current &&
(workInProgress.treeBaseDuration -=
current.treeBaseDuration))
} else
(emitPendingHydrationWarnings(),
resetHydrationState(),
0 === (workInProgress.flags & 128) &&
(renderLanes = workInProgress.memoizedState = null),
(workInProgress.flags |= 4),
bubbleProperties(workInProgress),
(workInProgress.mode & ProfileMode) !== NoMode &&
null !== renderLanes &&
((current = workInProgress.child),
null !== current &&
(workInProgress.treeBaseDuration -=
current.treeBaseDuration)))
current = !1
} else
((renderLanes = upgradeHydrationErrorsToRecoverable()),
null !== current &&
null !== current.memoizedState &&
(current.memoizedState.hydrationErrors = renderLanes),
(current = !0))
if (!current) {
if (workInProgress.flags & 256)
return (popSuspenseHandler(workInProgress), workInProgress)
popSuspenseHandler(workInProgress)
return null
}
if (0 !== (workInProgress.flags & 128))
throw Error(
'Client rendering an Activity suspended it again. This is a bug in React.'
)
}
bubbleProperties(workInProgress)
return null
case 13:
newProps = workInProgress.memoizedState
if (
null === current ||
(null !== current.memoizedState &&
null !== current.memoizedState.dehydrated)
) {
type = newProps
nextResource = popHydrationState(workInProgress)
if (null !== type && null !== type.dehydrated) {
if (null === current) {
if (!nextResource)
throw Error(
'A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React.'
)
nextResource = workInProgress.memoizedState
nextResource =
null !== nextResource ? nextResource.dehydrated : null
if (!nextResource)
throw Error(
'Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.'
)
nextResource[internalInstanceKey] = workInProgress
bubbleProperties(workInProgress)
;(workInProgress.mode & ProfileMode) !== NoMode &&
null !== type &&
((type = workInProgress.child),
null !== type &&
(workInProgress.treeBaseDuration -= type.treeBaseDuration))
} else
(emitPendingHydrationWarnings(),
resetHydrationState(),
0 === (workInProgress.flags & 128) &&
(type = workInProgress.memoizedState = null),
(workInProgress.flags |= 4),
bubbleProperties(workInProgress),
(workInProgress.mode & ProfileMode) !== NoMode &&
null !== type &&
((type = workInProgress.child),
null !== type &&
(workInProgress.treeBaseDuration -=
type.treeBaseDuration)))
type = !1
} else
((type = upgradeHydrationErrorsToRecoverable()),
null !== current &&
null !== current.memoizedState &&
(current.memoizedState.hydrationErrors = type),
(type = !0))
if (!type) {
if (workInProgress.flags & 256)
return (popSuspenseHandler(workInProgress), workInProgress)
popSuspenseHandler(workInProgress)
return null
}
}
popSuspenseHandler(workInProgress)
if (0 !== (workInProgress.flags & 128))
return (
(workInProgress.lanes = renderLanes),
(workInProgress.mode & ProfileMode) !== NoMode &&
transferActualDuration(workInProgress),
workInProgress
)
renderLanes = null !== newProps
current = null !== current && null !== current.memoizedState
renderLanes &&
((newProps = workInProgress.child),
(type = null),
null !== newProps.alternate &&
null !== newProps.alternate.memoizedState &&
null !== newProps.alternate.memoizedState.cachePool &&
(type = newProps.alternate.memoizedState.cachePool.pool),
(nextResource = null),
null !== newProps.memoizedState &&
null !== newProps.memoizedState.cachePool &&
(nextResource = newProps.memoizedState.cachePool.pool),
nextResource !== type && (newProps.flags |= 2048))
renderLanes !== current &&
renderLanes &&
(workInProgress.child.flags |= 8192)
scheduleRetryEffect(workInProgress, workInProgress.updateQueue)
bubbleProperties(workInProgress)
;(workInProgress.mode & ProfileMode) !== NoMode &&
renderLanes &&
((current = workInProgress.child),
null !== current &&
(workInProgress.treeBaseDuration -= current.treeBaseDuration))
return null
case 4:
return (
popHostContainer(workInProgress),
null === current &&
listenToAllSupportedEvents(
workInProgress.stateNode.containerInfo
),
bubbleProperties(workInProgress),
null
)
case 10:
return (
popProvider(workInProgress.type, workInProgress),
bubbleProperties(workInProgress),
null
)
case 19:
pop(suspenseStackCursor, workInProgress)
newProps = workInProgress.memoizedState
if (null === newProps) return (bubbleProperties(workInProgress), null)
type = 0 !== (workInProgress.flags & 128)
nextResource = newProps.rendering
if (null === nextResource)
if (type) cutOffTailIfNeeded(newProps, !1)
else {
if (
workInProgressRootExitStatus !== RootInProgress ||
(null !== current && 0 !== (current.flags & 128))
)
for (current = workInProgress.child; null !== current; ) {
nextResource = findFirstSuspended(current)
if (null !== nextResource) {
workInProgress.flags |= 128
cutOffTailIfNeeded(newProps, !1)
current = nextResource.updateQueue
workInProgress.updateQueue = current
scheduleRetryEffect(workInProgress, current)
workInProgress.subtreeFlags = 0
current = renderLanes
for (
renderLanes = workInProgress.child;
null !== renderLanes;
)
(resetWorkInProgress(renderLanes, current),
(renderLanes = renderLanes.sibling))
push(
suspenseStackCursor,
(suspenseStackCursor.current &
SubtreeSuspenseContextMask) |
ForceSuspenseFallback,
workInProgress
)
isHydrating &&
pushTreeFork(workInProgress, newProps.treeForkCount)
return workInProgress.child
}
current = current.sibling
}
null !== newProps.tail &&
now$1() > workInProgressRootRenderTargetTime &&
((workInProgress.flags |= 128),
(type = !0),
cutOffTailIfNeeded(newProps, !1),
(workInProgress.lanes = 4194304))
}
else {
if (!type)
if (
((current = findFirstSuspended(nextResource)), null !== current)
) {
if (
((workInProgress.flags |= 128),
(type = !0),
(current = current.updateQueue),
(workInProgress.updateQueue = current),
scheduleRetryEffect(workInProgress, current),
cutOffTailIfNeeded(newProps, !0),
null === newProps.tail &&
'hidden' === newProps.tailMode &&
!nextResource.alternate &&
!isHydrating)
)
return (bubbleProperties(workInProgress), null)
} else
2 * now$1() - newProps.renderingStartTime >
workInProgressRootRenderTargetTime &&
536870912 !== renderLanes &&
((workInProgress.flags |= 128),
(type = !0),
cutOffTailIfNeeded(newProps, !1),
(workInProgress.lanes = 4194304))
newProps.isBackwards
? ((nextResource.sibling = workInProgress.child),
(workInProgress.child = nextResource))
: ((current = newProps.last),
null !== current
? (current.sibling = nextResource)
: (workInProgress.child = nextResource),
(newProps.last = nextResource))
}
if (null !== newProps.tail)
return (
(current = newProps.tail),
(newProps.rendering = current),
(newProps.tail = current.sibling),
(newProps.renderingStartTime = now$1()),
(current.sibling = null),
(renderLanes = suspenseStackCursor.current),
(renderLanes = type
? (renderLanes & SubtreeSuspenseContextMask) |
ForceSuspenseFallback
: renderLanes & SubtreeSuspenseContextMask),
push(suspenseStackCursor, renderLanes, workInProgress),
isHydrating &&
pushTreeFork(workInProgress, newProps.treeForkCount),
current
)
bubbleProperties(workInProgress)
return null
case 22:
case 23:
return (
popSuspenseHandler(workInProgress),
popHiddenContext(workInProgress),
(newProps = null !== workInProgress.memoizedState),
null !== current
? (null !== current.memoizedState) !== newProps &&
(workInProgress.flags |= 8192)
: newProps && (workInProgress.flags |= 8192),
newProps
? 0 !== (renderLanes & 536870912) &&
0 === (workInProgress.flags & 128) &&
(bubbleProperties(workInProgress),
workInProgress.subtreeFlags & 6 &&
(workInProgress.flags |= 8192))
: bubbleProperties(workInProgress),
(renderLanes = workInProgress.updateQueue),
null !== renderLanes &&
scheduleRetryEffect(workInProgress, renderLanes.retryQueue),
(renderLanes = null),
null !== current &&
null !== current.memoizedState &&
null !== current.memoizedState.cachePool &&
(renderLanes = current.memoizedState.cachePool.pool),
(newProps = null),
null !== workInProgress.memoizedState &&
null !== workInProgress.memoizedState.cachePool &&
(newProps = workInProgress.memoizedState.cachePool.pool),
newProps !== renderLanes && (workInProgress.flags |= 2048),
null !== current && pop(resumedCache, workInProgress),
null
)
case 24:
return (
(renderLanes = null),
null !== current && (renderLanes = current.memoizedState.cache),
workInProgress.memoizedState.cache !== renderLanes &&
(workInProgress.flags |= 2048),
popProvider(CacheContext, workInProgress),
bubbleProperties(workInProgress),
null
)
case 25:
return null
case 30:
return null
}
throw Error(
'Unknown unit of work tag (' +
workInProgress.tag +
'). This error is likely caused by a bug in React. Please file an issue.'
)
}
function unwindWork(current, workInProgress) {
popTreeContext(workInProgress)
switch (workInProgress.tag) {
case 1:
return (
(current = workInProgress.flags),
current & 65536
? ((workInProgress.flags = (current & -65537) | 128),
(workInProgress.mode & ProfileMode) !== NoMode &&
transferActualDuration(workInProgress),
workInProgress)
: null
)
case 3:
return (
popProvider(CacheContext, workInProgress),
popHostContainer(workInProgress),
(current = workInProgress.flags),
0 !== (current & 65536) && 0 === (current & 128)
? ((workInProgress.flags = (current & -65537) | 128),
workInProgress)
: null
)
case 26:
case 27:
case 5:
return (popHostContext(workInProgress), null)
case 31:
if (null !== workInProgress.memoizedState) {
popSuspenseHandler(workInProgress)
if (null === workInProgress.alternate)
throw Error(
'Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue.'
)
resetHydrationState()
}
current = workInProgress.flags
return current & 65536
? ((workInProgress.flags = (current & -65537) | 128),
(workInProgress.mode & ProfileMode) !== NoMode &&
transferActualDuration(workInProgress),
workInProgress)
: null
case 13:
popSuspenseHandler(workInProgress)
current = workInProgress.memoizedState
if (null !== current && null !== current.dehydrated) {
if (null === workInProgress.alternate)
throw Error(
'Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue.'
)
resetHydrationState()
}
current = workInProgress.flags
return current & 65536
? ((workInProgress.flags = (current & -65537) | 128),
(workInProgress.mode & ProfileMode) !== NoMode &&
transferActualDuration(workInProgress),
workInProgress)
: null
case 19:
return (pop(suspenseStackCursor, workInProgress), null)
case 4:
return (popHostContainer(workInProgress), null)
case 10:
return (popProvider(workInProgress.type, workInProgress), null)
case 22:
case 23:
return (
popSuspenseHandler(workInProgress),
popHiddenContext(workInProgress),
null !== current && pop(resumedCache, workInProgress),
(current = workInProgress.flags),
current & 65536
? ((workInProgress.flags = (current & -65537) | 128),
(workInProgress.mode & ProfileMode) !== NoMode &&
transferActualDuration(workInProgress),
workInProgress)
: null
)
case 24:
return (popProvider(CacheContext, workInProgress), null)
case 25:
return null
default:
return null
}
}
function unwindInterruptedWork(current, interruptedWork) {
popTreeContext(interruptedWork)
switch (interruptedWork.tag) {
case 3:
popProvider(CacheContext, interruptedWork)
popHostContainer(interruptedWork)
break
case 26:
case 27:
case 5:
popHostContext(interruptedWork)
break
case 4:
popHostContainer(interruptedWork)
break
case 31:
null !== interruptedWork.memoizedState &&
popSuspenseHandler(interruptedWork)
break
case 13:
popSuspenseHandler(interruptedWork)
break
case 19:
pop(suspenseStackCursor, interruptedWork)
break
case 10:
popProvider(interruptedWork.type, interruptedWork)
break
case 22:
case 23:
popSuspenseHandler(interruptedWork)
popHiddenContext(interruptedWork)
null !== current && pop(resumedCache, interruptedWork)
break
case 24:
popProvider(CacheContext, interruptedWork)
}
}
function shouldProfile(current) {
return (current.mode & ProfileMode) !== NoMode
}
function commitHookLayoutEffects(finishedWork, hookFlags) {
shouldProfile(finishedWork)
? (startEffectTimer(),
commitHookEffectListMount(hookFlags, finishedWork),
recordEffectDuration())
: commitHookEffectListMount(hookFlags, finishedWork)
}
function commitHookLayoutUnmountEffects(
finishedWork,
nearestMountedAncestor,
hookFlags
) {
shouldProfile(finishedWork)
? (startEffectTimer(),
commitHookEffectListUnmount(
hookFlags,
finishedWork,
nearestMountedAncestor
),
recordEffectDuration())
: commitHookEffectListUnmount(
hookFlags,
finishedWork,
nearestMountedAncestor
)
}
function commitHookEffectListMount(flags, finishedWork) {
try {
var updateQueue = finishedWork.updateQueue,
lastEffect = null !== updateQueue ? updateQueue.lastEffect : null
if (null !== lastEffect) {
var firstEffect = lastEffect.next
updateQueue = firstEffect
do {
if (
(updateQueue.tag & flags) === flags &&
((flags & Passive) !== NoFlags
? null !== injectedProfilingHooks &&
'function' ===
typeof injectedProfilingHooks.markComponentPassiveEffectMountStarted &&
injectedProfilingHooks.markComponentPassiveEffectMountStarted(
finishedWork
)
: (flags & Layout) !== NoFlags &&
null !== injectedProfilingHooks &&
'function' ===
typeof injectedProfilingHooks.markComponentLayoutEffectMountStarted &&
injectedProfilingHooks.markComponentLayoutEffectMountStarted(
finishedWork
),
(lastEffect = void 0),
(flags & Insertion) !== NoFlags &&
(isRunningInsertionEffect = !0),
(lastEffect = runWithFiberInDEV(
finishedWork,
callCreateInDEV,
updateQueue
)),
(flags & Insertion) !== NoFlags &&
(isRunningInsertionEffect = !1),
(flags & Passive) !== NoFlags
? null !== injectedProfilingHooks &&
'function' ===
typeof injectedProfilingHooks.markComponentPassiveEffectMountStopped &&
injectedProfilingHooks.markComponentPassiveEffectMountStopped()
: (flags & Layout) !== NoFlags &&
null !== injectedProfilingHooks &&
'function' ===
typeof injectedProfilingHooks.markComponentLayoutEffectMountStopped &&
injectedProfilingHooks.markComponentLayoutEffectMountStopped(),
void 0 !== lastEffect && 'function' !== typeof lastEffect)
) {
var hookName = void 0
hookName =
0 !== (updateQueue.tag & Layout)
? 'useLayoutEffect'
: 0 !== (updateQueue.tag & Insertion)
? 'useInsertionEffect'
: 'useEffect'
var addendum = void 0
addendum =
null === lastEffect
? ' You returned null. If your effect does not require clean up, return undefined (or nothing).'
: 'function' === typeof lastEffect.then
? '\n\nIt looks like you wrote ' +
hookName +
'(async () => ...) or returned a Promise. Instead, write the async function inside your effect and call it immediately:\n\n' +
hookName +
"(() => {\n async function fetchData() {\n // You can await here\n const response = await MyAPI.getData(someId);\n // ...\n }\n fetchData();\n}, [someId]); // Or [] if effect doesn't need props or state\n\nLearn more about data fetching with Hooks: https://react.dev/link/hooks-data-fetching"
: ' You returned: ' + lastEffect
runWithFiberInDEV(
finishedWork,
function (n, a) {
console.error(
'%s must not return anything besides a function, which is used for clean-up.%s',
n,
a
)
},
hookName,
addendum
)
}
updateQueue = updateQueue.next
} while (updateQueue !== firstEffect)
}
} catch (error) {
captureCommitPhaseError(finishedWork, finishedWork.return, error)
}
}
function commitHookEffectListUnmount(
flags,
finishedWork,
nearestMountedAncestor
) {
try {
var updateQueue = finishedWork.updateQueue,
lastEffect = null !== updateQueue ? updateQueue.lastEffect : null
if (null !== lastEffect) {
var firstEffect = lastEffect.next
updateQueue = firstEffect
do {
if ((updateQueue.tag & flags) === flags) {
var inst = updateQueue.inst,
destroy = inst.destroy
void 0 !== destroy &&
((inst.destroy = void 0),
(flags & Passive) !== NoFlags
? null !== injectedProfilingHooks &&
'function' ===
typeof injectedProfilingHooks.markComponentPassiveEffectUnmountStarted &&
injectedProfilingHooks.markComponentPassiveEffectUnmountStarted(
finishedWork
)
: (flags & Layout) !== NoFlags &&
null !== injectedProfilingHooks &&
'function' ===
typeof injectedProfilingHooks.markComponentLayoutEffectUnmountStarted &&
injectedProfilingHooks.markComponentLayoutEffectUnmountStarted(
finishedWork
),
(flags & Insertion) !== NoFlags &&
(isRunningInsertionEffect = !0),
(lastEffect = finishedWork),
runWithFiberInDEV(
lastEffect,
callDestroyInDEV,
lastEffect,
nearestMountedAncestor,
destroy
),
(flags & Insertion) !== NoFlags &&
(isRunningInsertionEffect = !1),
(flags & Passive) !== NoFlags
? null !== injectedProfilingHooks &&
'function' ===
typeof injectedProfilingHooks.markComponentPassiveEffectUnmountStopped &&
injectedProfilingHooks.markComponentPassiveEffectUnmountStopped()
: (flags & Layout) !== NoFlags &&
null !== injectedProfilingHooks &&
'function' ===
typeof injectedProfilingHooks.markComponentLayoutEffectUnmountStopped &&
injectedProfilingHooks.markComponentLayoutEffectUnmountStopped())
}
updateQueue = updateQueue.next
} while (updateQueue !== firstEffect)
}
} catch (error) {
captureCommitPhaseError(finishedWork, finishedWork.return, error)
}
}
function commitHookPassiveMountEffects(finishedWork, hookFlags) {
shouldProfile(finishedWork)
? (startEffectTimer(),
commitHookEffectListMount(hookFlags, finishedWork),
recordEffectDuration())
: commitHookEffectListMount(hookFlags, finishedWork)
}
function commitHookPassiveUnmountEffects(
finishedWork,
nearestMountedAncestor,
hookFlags
) {
shouldProfile(finishedWork)
? (startEffectTimer(),
commitHookEffectListUnmount(
hookFlags,
finishedWork,
nearestMountedAncestor
),
recordEffectDuration())
: commitHookEffectListUnmount(
hookFlags,
finishedWork,
nearestMountedAncestor
)
}
function commitClassCallbacks(finishedWork) {
var updateQueue = finishedWork.updateQueue
if (null !== updateQueue) {
var instance = finishedWork.stateNode
finishedWork.type.defaultProps ||
'ref' in finishedWork.memoizedProps ||
didWarnAboutReassigningProps ||
(instance.props !== finishedWork.memoizedProps &&
console.error(
'Expected %s props to match memoized props before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.',
getComponentNameFromFiber(finishedWork) || 'instance'
),
instance.state !== finishedWork.memoizedState &&
console.error(
'Expected %s state to match memoized state before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.',
getComponentNameFromFiber(finishedWork) || 'instance'
))
try {
runWithFiberInDEV(
finishedWork,
commitCallbacks,
updateQueue,
instance
)
} catch (error) {
captureCommitPhaseError(finishedWork, finishedWork.return, error)
}
}
}
function callGetSnapshotBeforeUpdates(instance, prevProps, prevState) {
return instance.getSnapshotBeforeUpdate(prevProps, prevState)
}
function commitClassSnapshot(finishedWork, current) {
var prevProps = current.memoizedProps,
prevState = current.memoizedState
current = finishedWork.stateNode
finishedWork.type.defaultProps ||
'ref' in finishedWork.memoizedProps ||
didWarnAboutReassigningProps ||
(current.props !== finishedWork.memoizedProps &&
console.error(
'Expected %s props to match memoized props before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.',
getComponentNameFromFiber(finishedWork) || 'instance'
),
current.state !== finishedWork.memoizedState &&
console.error(
'Expected %s state to match memoized state before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.',
getComponentNameFromFiber(finishedWork) || 'instance'
))
try {
var resolvedPrevProps = resolveClassComponentProps(
finishedWork.type,
prevProps
)
var snapshot = runWithFiberInDEV(
finishedWork,
callGetSnapshotBeforeUpdates,
current,
resolvedPrevProps,
prevState
)
prevProps = didWarnAboutUndefinedSnapshotBeforeUpdate
void 0 !== snapshot ||
prevProps.has(finishedWork.type) ||
(prevProps.add(finishedWork.type),
runWithFiberInDEV(finishedWork, function () {
console.error(
'%s.getSnapshotBeforeUpdate(): A snapshot value (or null) must be returned. You have returned undefined.',
getComponentNameFromFiber(finishedWork)
)
}))
current.__reactInternalSnapshotBeforeUpdate = snapshot
} catch (error) {
captureCommitPhaseError(finishedWork, finishedWork.return, error)
}
}
function safelyCallComponentWillUnmount(
current,
nearestMountedAncestor,
instance
) {
instance.props = resolveClassComponentProps(
current.type,
current.memoizedProps
)
instance.state = current.memoizedState
shouldProfile(current)
? (startEffectTimer(),
runWithFiberInDEV(
current,
callComponentWillUnmountInDEV,
current,
nearestMountedAncestor,
instance
),
recordEffectDuration())
: runWithFiberInDEV(
current,
callComponentWillUnmountInDEV,
current,
nearestMountedAncestor,
instance
)
}
function commitAttachRef(finishedWork) {
var ref = finishedWork.ref
if (null !== ref) {
switch (finishedWork.tag) {
case 26:
case 27:
case 5:
var instanceToUse = finishedWork.stateNode
break
case 30:
instanceToUse = finishedWork.stateNode
break
default:
instanceToUse = finishedWork.stateNode
}
if ('function' === typeof ref)
if (shouldProfile(finishedWork))
try {
;(startEffectTimer(),
(finishedWork.refCleanup = ref(instanceToUse)))
} finally {
recordEffectDuration()
}
else finishedWork.refCleanup = ref(instanceToUse)
else
('string' === typeof ref
? console.error('String refs are no longer supported.')
: ref.hasOwnProperty('current') ||
console.error(
'Unexpected ref object provided for %s. Use either a ref-setter function or React.createRef().',
getComponentNameFromFiber(finishedWork)
),
(ref.current = instanceToUse))
}
}
function safelyAttachRef(current, nearestMountedAncestor) {
try {
runWithFiberInDEV(current, commitAttachRef, current)
} catch (error) {
captureCommitPhaseError(current, nearestMountedAncestor, error)
}
}
function safelyDetachRef(current, nearestMountedAncestor) {
var ref = current.ref,
refCleanup = current.refCleanup
if (null !== ref)
if ('function' === typeof refCleanup)
try {
if (shouldProfile(current))
try {
;(startEffectTimer(), runWithFiberInDEV(current, refCleanup))
} finally {
recordEffectDuration(current)
}
else runWithFiberInDEV(current, refCleanup)
} catch (error) {
captureCommitPhaseError(current, nearestMountedAncestor, error)
} finally {
;((current.refCleanup = null),
(current = current.alternate),
null != current && (current.refCleanup = null))
}
else if ('function' === typeof ref)
try {
if (shouldProfile(current))
try {
;(startEffectTimer(), runWithFiberInDEV(current, ref, null))
} finally {
recordEffectDuration(current)
}
else runWithFiberInDEV(current, ref, null)
} catch (error$7) {
captureCommitPhaseError(current, nearestMountedAncestor, error$7)
}
else ref.current = null
}
function commitProfiler(
finishedWork,
current,
commitStartTime,
effectDuration
) {
var _finishedWork$memoize = finishedWork.memoizedProps,
id = _finishedWork$memoize.id,
onCommit = _finishedWork$memoize.onCommit
_finishedWork$memoize = _finishedWork$memoize.onRender
current = null === current ? 'mount' : 'update'
currentUpdateIsNested && (current = 'nested-update')
'function' === typeof _finishedWork$memoize &&
_finishedWork$memoize(
id,
current,
finishedWork.actualDuration,
finishedWork.treeBaseDuration,
finishedWork.actualStartTime,
commitStartTime
)
'function' === typeof onCommit &&
onCommit(id, current, effectDuration, commitStartTime)
}
function commitProfilerPostCommitImpl(
finishedWork,
current,
commitStartTime,
passiveEffectDuration
) {
var _finishedWork$memoize2 = finishedWork.memoizedProps
finishedWork = _finishedWork$memoize2.id
_finishedWork$memoize2 = _finishedWork$memoize2.onPostCommit
current = null === current ? 'mount' : 'update'
currentUpdateIsNested && (current = 'nested-update')
'function' === typeof _finishedWork$memoize2 &&
_finishedWork$memoize2(
finishedWork,
current,
passiveEffectDuration,
commitStartTime
)
}
function commitHostMount(finishedWork) {
var type = finishedWork.type,
props = finishedWork.memoizedProps,
instance = finishedWork.stateNode
try {
runWithFiberInDEV(
finishedWork,
commitMount,
instance,
type,
props,
finishedWork
)
} catch (error) {
captureCommitPhaseError(finishedWork, finishedWork.return, error)
}
}
function commitHostUpdate(finishedWork, newProps, oldProps) {
try {
runWithFiberInDEV(
finishedWork,
commitUpdate,
finishedWork.stateNode,
finishedWork.type,
oldProps,
newProps,
finishedWork
)
} catch (error) {
captureCommitPhaseError(finishedWork, finishedWork.return, error)
}
}
function isHostParent(fiber) {
return (
5 === fiber.tag ||
3 === fiber.tag ||
26 === fiber.tag ||
(27 === fiber.tag && isSingletonScope(fiber.type)) ||
4 === fiber.tag
)
}
function getHostSibling(fiber) {
a: for (;;) {
for (; null === fiber.sibling; ) {
if (null === fiber.return || isHostParent(fiber.return)) return null
fiber = fiber.return
}
fiber.sibling.return = fiber.return
for (
fiber = fiber.sibling;
5 !== fiber.tag && 6 !== fiber.tag && 18 !== fiber.tag;
) {
if (27 === fiber.tag && isSingletonScope(fiber.type)) continue a
if (fiber.flags & 2) continue a
if (null === fiber.child || 4 === fiber.tag) continue a
else ((fiber.child.return = fiber), (fiber = fiber.child))
}
if (!(fiber.flags & 2)) return fiber.stateNode
}
}
function insertOrAppendPlacementNodeIntoContainer(node, before, parent) {
var tag = node.tag
if (5 === tag || 6 === tag)
((node = node.stateNode),
before
? (warnForReactChildrenConflict(parent),
(9 === parent.nodeType
? parent.body
: 'HTML' === parent.nodeName
? parent.ownerDocument.body
: parent
).insertBefore(node, before))
: (warnForReactChildrenConflict(parent),
(before =
9 === parent.nodeType
? parent.body
: 'HTML' === parent.nodeName
? parent.ownerDocument.body
: parent),
before.appendChild(node),
(parent = parent._reactRootContainer),
(null !== parent && void 0 !== parent) ||
null !== before.onclick ||
(before.onclick = noop$1)))
else if (
4 !== tag &&
(27 === tag &&
isSingletonScope(node.type) &&
((parent = node.stateNode), (before = null)),
(node = node.child),
null !== node)
)
for (
insertOrAppendPlacementNodeIntoContainer(node, before, parent),
node = node.sibling;
null !== node;
)
(insertOrAppendPlacementNodeIntoContainer(node, before, parent),
(node = node.sibling))
}
function insertOrAppendPlacementNode(node, before, parent) {
var tag = node.tag
if (5 === tag || 6 === tag)
((node = node.stateNode),
before ? parent.insertBefore(node, before) : parent.appendChild(node))
else if (
4 !== tag &&
(27 === tag && isSingletonScope(node.type) && (parent = node.stateNode),
(node = node.child),
null !== node)
)
for (
insertOrAppendPlacementNode(node, before, parent),
node = node.sibling;
null !== node;
)
(insertOrAppendPlacementNode(node, before, parent),
(node = node.sibling))
}
function commitPlacement(finishedWork) {
for (
var hostParentFiber, parentFiber = finishedWork.return;
null !== parentFiber;
) {
if (isHostParent(parentFiber)) {
hostParentFiber = parentFiber
break
}
parentFiber = parentFiber.return
}
if (null == hostParentFiber)
throw Error(
'Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.'
)
switch (hostParentFiber.tag) {
case 27:
hostParentFiber = hostParentFiber.stateNode
parentFiber = getHostSibling(finishedWork)
insertOrAppendPlacementNode(
finishedWork,
parentFiber,
hostParentFiber
)
break
case 5:
parentFiber = hostParentFiber.stateNode
hostParentFiber.flags & 32 &&
(resetTextContent(parentFiber), (hostParentFiber.flags &= -33))
hostParentFiber = getHostSibling(finishedWork)
insertOrAppendPlacementNode(
finishedWork,
hostParentFiber,
parentFiber
)
break
case 3:
case 4:
hostParentFiber = hostParentFiber.stateNode.containerInfo
parentFiber = getHostSibling(finishedWork)
insertOrAppendPlacementNodeIntoContainer(
finishedWork,
parentFiber,
hostParentFiber
)
break
default:
throw Error(
'Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue.'
)
}
}
function commitHostSingletonAcquisition(finishedWork) {
var singleton = finishedWork.stateNode,
props = finishedWork.memoizedProps
try {
runWithFiberInDEV(
finishedWork,
acquireSingletonInstance,
finishedWork.type,
props,
singleton,
finishedWork
)
} catch (error) {
captureCommitPhaseError(finishedWork, finishedWork.return, error)
}
}
function commitBeforeMutationEffects(root, firstChild) {
root = root.containerInfo
eventsEnabled = _enabled
root = getActiveElementDeep(root)
if (hasSelectionCapabilities(root)) {
if ('selectionStart' in root)
var JSCompiler_temp = {
start: root.selectionStart,
end: root.selectionEnd,
}
else
a: {
JSCompiler_temp =
((JSCompiler_temp = root.ownerDocument) &&
JSCompiler_temp.defaultView) ||
window
var selection =
JSCompiler_temp.getSelection && JSCompiler_temp.getSelection()
if (selection && 0 !== selection.rangeCount) {
JSCompiler_temp = selection.anchorNode
var anchorOffset = selection.anchorOffset,
focusNode = selection.focusNode
selection = selection.focusOffset
try {
;(JSCompiler_temp.nodeType, focusNode.nodeType)
} catch (e$2) {
JSCompiler_temp = null
break a
}
var length = 0,
start = -1,
end = -1,
indexWithinAnchor = 0,
indexWithinFocus = 0,
node = root,
parentNode = null
b: for (;;) {
for (var next; ; ) {
node !== JSCompiler_temp ||
(0 !== anchorOffset && 3 !== node.nodeType) ||
(start = length + anchorOffset)
node !== focusNode ||
(0 !== selection && 3 !== node.nodeType) ||
(end = length + selection)
3 === node.nodeType && (length += node.nodeValue.length)
if (null === (next = node.firstChild)) break
parentNode = node
node = next
}
for (;;) {
if (node === root) break b
parentNode === JSCompiler_temp &&
++indexWithinAnchor === anchorOffset &&
(start = length)
parentNode === focusNode &&
++indexWithinFocus === selection &&
(end = length)
if (null !== (next = node.nextSibling)) break
node = parentNode
parentNode = node.parentNode
}
node = next
}
JSCompiler_temp =
-1 === start || -1 === end ? null : { start: start, end: end }
} else JSCompiler_temp = null
}
JSCompiler_temp = JSCompiler_temp || { start: 0, end: 0 }
} else JSCompiler_temp = null
selectionInformation = {
focusedElem: root,
selectionRange: JSCompiler_temp,
}
_enabled = !1
for (nextEffect = firstChild; null !== nextEffect; )
if (
((firstChild = nextEffect),
(root = firstChild.child),
0 !== (firstChild.subtreeFlags & 1024) && null !== root)
)
((root.return = firstChild), (nextEffect = root))
else
for (; null !== nextEffect; ) {
root = firstChild = nextEffect
JSCompiler_temp = root.alternate
anchorOffset = root.flags
switch (root.tag) {
case 0:
break
case 11:
case 15:
break
case 1:
0 !== (anchorOffset & 1024) &&
null !== JSCompiler_temp &&
commitClassSnapshot(root, JSCompiler_temp)
break
case 3:
if (0 !== (anchorOffset & 1024))
if (
((root = root.stateNode.containerInfo),
(JSCompiler_temp = root.nodeType),
9 === JSCompiler_temp)
)
clearContainerSparingly(root)
else if (1 === JSCompiler_temp)
switch (root.nodeName) {
case 'HEAD':
case 'HTML':
case 'BODY':
clearContainerSparingly(root)
break
default:
root.textContent = ''
}
break
case 5:
case 26:
case 27:
case 6:
case 4:
case 17:
break
default:
if (0 !== (anchorOffset & 1024))
throw Error(
'This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.'
)
}
root = firstChild.sibling
if (null !== root) {
root.return = firstChild.return
nextEffect = root
break
}
nextEffect = firstChild.return
}
}
function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) {
var prevEffectStart = pushComponentEffectStart(),
flags = finishedWork.flags
switch (finishedWork.tag) {
case 0:
case 11:
case 15:
recursivelyTraverseLayoutEffects(finishedRoot, finishedWork)
flags & 4 && commitHookLayoutEffects(finishedWork, Layout | HasEffect)
break
case 1:
recursivelyTraverseLayoutEffects(finishedRoot, finishedWork)
if (flags & 4)
if (((finishedRoot = finishedWork.stateNode), null === current))
(finishedWork.type.defaultProps ||
'ref' in finishedWork.memoizedProps ||
didWarnAboutReassigningProps ||
(finishedRoot.props !== finishedWork.memoizedProps &&
console.error(
'Expected %s props to match memoized props before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.',
getComponentNameFromFiber(finishedWork) || 'instance'
),
finishedRoot.state !== finishedWork.memoizedState &&
console.error(
'Expected %s state to match memoized state before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.',
getComponentNameFromFiber(finishedWork) || 'instance'
)),
shouldProfile(finishedWork)
? (startEffectTimer(),
runWithFiberInDEV(
finishedWork,
callComponentDidMountInDEV,
finishedWork,
finishedRoot
),
recordEffectDuration())
: runWithFiberInDEV(
finishedWork,
callComponentDidMountInDEV,
finishedWork,
finishedRoot
))
else {
var prevProps = resolveClassComponentProps(
finishedWork.type,
current.memoizedProps
)
current = current.memoizedState
finishedWork.type.defaultProps ||
'ref' in finishedWork.memoizedProps ||
didWarnAboutReassigningProps ||
(finishedRoot.props !== finishedWork.memoizedProps &&
console.error(
'Expected %s props to match memoized props before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.',
getComponentNameFromFiber(finishedWork) || 'instance'
),
finishedRoot.state !== finishedWork.memoizedState &&
console.error(
'Expected %s state to match memoized state before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.',
getComponentNameFromFiber(finishedWork) || 'instance'
))
shouldProfile(finishedWork)
? (startEffectTimer(),
runWithFiberInDEV(
finishedWork,
callComponentDidUpdateInDEV,
finishedWork,
finishedRoot,
prevProps,
current,
finishedRoot.__reactInternalSnapshotBeforeUpdate
),
recordEffectDuration())
: runWithFiberInDEV(
finishedWork,
callComponentDidUpdateInDEV,
finishedWork,
finishedRoot,
prevProps,
current,
finishedRoot.__reactInternalSnapshotBeforeUpdate
)
}
flags & 64 && commitClassCallbacks(finishedWork)
flags & 512 && safelyAttachRef(finishedWork, finishedWork.return)
break
case 3:
current = pushNestedEffectDurations()
recursivelyTraverseLayoutEffects(finishedRoot, finishedWork)
if (
flags & 64 &&
((flags = finishedWork.updateQueue), null !== flags)
) {
prevProps = null
if (null !== finishedWork.child)
switch (finishedWork.child.tag) {
case 27:
case 5:
prevProps = finishedWork.child.stateNode
break
case 1:
prevProps = finishedWork.child.stateNode
}
try {
runWithFiberInDEV(finishedWork, commitCallbacks, flags, prevProps)
} catch (error) {
captureCommitPhaseError(finishedWork, finishedWork.return, error)
}
}
finishedRoot.effectDuration += popNestedEffectDurations(current)
break
case 27:
null === current &&
flags & 4 &&
commitHostSingletonAcquisition(finishedWork)
case 26:
case 5:
recursivelyTraverseLayoutEffects(finishedRoot, finishedWork)
if (null === current)
if (flags & 4) commitHostMount(finishedWork)
else if (flags & 64) {
finishedRoot = finishedWork.type
current = finishedWork.memoizedProps
prevProps = finishedWork.stateNode
try {
runWithFiberInDEV(
finishedWork,
commitHydratedInstance,
prevProps,
finishedRoot,
current,
finishedWork
)
} catch (error) {
captureCommitPhaseError(
finishedWork,
finishedWork.return,
error
)
}
}
flags & 512 && safelyAttachRef(finishedWork, finishedWork.return)
break
case 12:
if (flags & 4) {
flags = pushNestedEffectDurations()
recursivelyTraverseLayoutEffects(finishedRoot, finishedWork)
finishedRoot = finishedWork.stateNode
finishedRoot.effectDuration += bubbleNestedEffectDurations(flags)
try {
runWithFiberInDEV(
finishedWork,
commitProfiler,
finishedWork,
current,
commitStartTime,
finishedRoot.effectDuration
)
} catch (error) {
captureCommitPhaseError(finishedWork, finishedWork.return, error)
}
} else recursivelyTraverseLayoutEffects(finishedRoot, finishedWork)
break
case 31:
recursivelyTraverseLayoutEffects(finishedRoot, finishedWork)
flags & 4 &&
commitActivityHydrationCallbacks(finishedRoot, finishedWork)
break
case 13:
recursivelyTraverseLayoutEffects(finishedRoot, finishedWork)
flags & 4 &&
commitSuspenseHydrationCallbacks(finishedRoot, finishedWork)
flags & 64 &&
((finishedRoot = finishedWork.memoizedState),
null !== finishedRoot &&
((finishedRoot = finishedRoot.dehydrated),
null !== finishedRoot &&
((finishedWork = retryDehydratedSuspenseBoundary.bind(
null,
finishedWork
)),
registerSuspenseInstanceRetry(finishedRoot, finishedWork))))
break
case 22:
flags =
null !== finishedWork.memoizedState || offscreenSubtreeIsHidden
if (!flags) {
current =
(null !== current && null !== current.memoizedState) ||
offscreenSubtreeWasHidden
prevProps = offscreenSubtreeIsHidden
var prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden
offscreenSubtreeIsHidden = flags
;(offscreenSubtreeWasHidden = current) &&
!prevOffscreenSubtreeWasHidden
? recursivelyTraverseReappearLayoutEffects(
finishedRoot,
finishedWork,
0 !== (finishedWork.subtreeFlags & 8772)
)
: recursivelyTraverseLayoutEffects(finishedRoot, finishedWork)
offscreenSubtreeIsHidden = prevProps
offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden
}
break
case 30:
break
default:
recursivelyTraverseLayoutEffects(finishedRoot, finishedWork)
}
popComponentEffectStart(prevEffectStart)
}
function detachFiberAfterEffects(fiber) {
var alternate = fiber.alternate
null !== alternate &&
((fiber.alternate = null), detachFiberAfterEffects(alternate))
fiber.child = null
fiber.deletions = null
fiber.sibling = null
5 === fiber.tag &&
((alternate = fiber.stateNode),
null !== alternate && detachDeletedInstance(alternate))
fiber.stateNode = null
fiber._debugOwner = null
fiber.return = null
fiber.dependencies = null
fiber.memoizedProps = null
fiber.memoizedState = null
fiber.pendingProps = null
fiber.stateNode = null
fiber.updateQueue = null
}
function recursivelyTraverseDeletionEffects(
finishedRoot,
nearestMountedAncestor,
parent
) {
for (parent = parent.child; null !== parent; )
(commitDeletionEffectsOnFiber(
finishedRoot,
nearestMountedAncestor,
parent
),
(parent = parent.sibling))
}
function commitDeletionEffectsOnFiber(
finishedRoot,
nearestMountedAncestor,
deletedFiber
) {
if (
injectedHook &&
'function' === typeof injectedHook.onCommitFiberUnmount
)
try {
injectedHook.onCommitFiberUnmount(rendererID, deletedFiber)
} catch (err) {
hasLoggedError ||
((hasLoggedError = !0),
console.error(
'React instrumentation encountered an error: %o',
err
))
}
var prevEffectStart = pushComponentEffectStart()
switch (deletedFiber.tag) {
case 26:
offscreenSubtreeWasHidden ||
safelyDetachRef(deletedFiber, nearestMountedAncestor)
recursivelyTraverseDeletionEffects(
finishedRoot,
nearestMountedAncestor,
deletedFiber
)
deletedFiber.memoizedState
? deletedFiber.memoizedState.count--
: deletedFiber.stateNode &&
((deletedFiber = deletedFiber.stateNode),
deletedFiber.parentNode.removeChild(deletedFiber))
break
case 27:
offscreenSubtreeWasHidden ||
safelyDetachRef(deletedFiber, nearestMountedAncestor)
var prevHostParent = hostParent,
prevHostParentIsContainer = hostParentIsContainer
isSingletonScope(deletedFiber.type) &&
((hostParent = deletedFiber.stateNode),
(hostParentIsContainer = !1))
recursivelyTraverseDeletionEffects(
finishedRoot,
nearestMountedAncestor,
deletedFiber
)
runWithFiberInDEV(
deletedFiber,
releaseSingletonInstance,
deletedFiber.stateNode
)
hostParent = prevHostParent
hostParentIsContainer = prevHostParentIsContainer
break
case 5:
offscreenSubtreeWasHidden ||
safelyDetachRef(deletedFiber, nearestMountedAncestor)
case 6:
prevHostParent = hostParent
prevHostParentIsContainer = hostParentIsContainer
hostParent = null
recursivelyTraverseDeletionEffects(
finishedRoot,
nearestMountedAncestor,
deletedFiber
)
hostParent = prevHostParent
hostParentIsContainer = prevHostParentIsContainer
if (null !== hostParent)
if (hostParentIsContainer)
try {
runWithFiberInDEV(
deletedFiber,
removeChildFromContainer,
hostParent,
deletedFiber.stateNode
)
} catch (error) {
captureCommitPhaseError(
deletedFiber,
nearestMountedAncestor,
error
)
}
else
try {
runWithFiberInDEV(
deletedFiber,
removeChild,
hostParent,
deletedFiber.stateNode
)
} catch (error) {
captureCommitPhaseError(
deletedFiber,
nearestMountedAncestor,
error
)
}
break
case 18:
null !== hostParent &&
(hostParentIsContainer
? ((finishedRoot = hostParent),
clearHydrationBoundary(
9 === finishedRoot.nodeType
? finishedRoot.body
: 'HTML' === finishedRoot.nodeName
? finishedRoot.ownerDocument.body
: finishedRoot,
deletedFiber.stateNode
),
retryIfBlockedOn(finishedRoot))
: clearHydrationBoundary(hostParent, deletedFiber.stateNode))
break
case 4:
prevHostParent = hostParent
prevHostParentIsContainer = hostParentIsContainer
hostParent = deletedFiber.stateNode.containerInfo
hostParentIsContainer = !0
recursivelyTraverseDeletionEffects(
finishedRoot,
nearestMountedAncestor,
deletedFiber
)
hostParent = prevHostParent
hostParentIsContainer = prevHostParentIsContainer
break
case 0:
case 11:
case 14:
case 15:
offscreenSubtreeWasHidden ||
commitHookEffectListUnmount(
Insertion,
deletedFiber,
nearestMountedAncestor
)
offscreenSubtreeWasHidden ||
commitHookLayoutUnmountEffects(
deletedFiber,
nearestMountedAncestor,
Layout
)
recursivelyTraverseDeletionEffects(
finishedRoot,
nearestMountedAncestor,
deletedFiber
)
break
case 1:
offscreenSubtreeWasHidden ||
(safelyDetachRef(deletedFiber, nearestMountedAncestor),
(prevHostParent = deletedFiber.stateNode),
'function' === typeof prevHostParent.componentWillUnmount &&
safelyCallComponentWillUnmount(
deletedFiber,
nearestMountedAncestor,
prevHostParent
))
recursivelyTraverseDeletionEffects(
finishedRoot,
nearestMountedAncestor,
deletedFiber
)
break
case 21:
recursivelyTraverseDeletionEffects(
finishedRoot,
nearestMountedAncestor,
deletedFiber
)
break
case 22:
offscreenSubtreeWasHidden =
(prevHostParent = offscreenSubtreeWasHidden) ||
null !== deletedFiber.memoizedState
recursivelyTraverseDeletionEffects(
finishedRoot,
nearestMountedAncestor,
deletedFiber
)
offscreenSubtreeWasHidden = prevHostParent
break
default:
recursivelyTraverseDeletionEffects(
finishedRoot,
nearestMountedAncestor,
deletedFiber
)
}
popComponentEffectStart(prevEffectStart)
}
function commitActivityHydrationCallbacks(finishedRoot, finishedWork) {
if (
null === finishedWork.memoizedState &&
((finishedRoot = finishedWork.alternate),
null !== finishedRoot &&
((finishedRoot = finishedRoot.memoizedState), null !== finishedRoot))
) {
finishedRoot = finishedRoot.dehydrated
try {
runWithFiberInDEV(
finishedWork,
commitHydratedActivityInstance,
finishedRoot
)
} catch (error) {
captureCommitPhaseError(finishedWork, finishedWork.return, error)
}
}
}
function commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {
if (
null === finishedWork.memoizedState &&
((finishedRoot = finishedWork.alternate),
null !== finishedRoot &&
((finishedRoot = finishedRoot.memoizedState),
null !== finishedRoot &&
((finishedRoot = finishedRoot.dehydrated), null !== finishedRoot)))
)
try {
runWithFiberInDEV(
finishedWork,
commitHydratedSuspenseInstance,
finishedRoot
)
} catch (error) {
captureCommitPhaseError(finishedWork, finishedWork.return, error)
}
}
function getRetryCache(finishedWork) {
switch (finishedWork.tag) {
case 31:
case 13:
case 19:
var retryCache = finishedWork.stateNode
null === retryCache &&
(retryCache = finishedWork.stateNode = new PossiblyWeakSet())
return retryCache
case 22:
return (
(finishedWork = finishedWork.stateNode),
(retryCache = finishedWork._retryCache),
null === retryCache &&
(retryCache = finishedWork._retryCache = new PossiblyWeakSet()),
retryCache
)
default:
throw Error(
'Unexpected Suspense handler tag (' +
finishedWork.tag +
'). This is a bug in React.'
)
}
}
function attachSuspenseRetryListeners(finishedWork, wakeables) {
var retryCache = getRetryCache(finishedWork)
wakeables.forEach(function (wakeable) {
if (!retryCache.has(wakeable)) {
retryCache.add(wakeable)
if (isDevToolsPresent)
if (null !== inProgressLanes && null !== inProgressRoot)
restorePendingUpdaters(inProgressRoot, inProgressLanes)
else
throw Error(
'Expected finished root and lanes to be set. This is a bug in React.'
)
var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable)
wakeable.then(retry, retry)
}
})
}
function recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {
var deletions = parentFiber.deletions
if (null !== deletions)
for (var i = 0; i < deletions.length; i++) {
var root = root$jscomp$0,
returnFiber = parentFiber,
deletedFiber = deletions[i],
prevEffectStart = pushComponentEffectStart(),
parent = returnFiber
a: for (; null !== parent; ) {
switch (parent.tag) {
case 27:
if (isSingletonScope(parent.type)) {
hostParent = parent.stateNode
hostParentIsContainer = !1
break a
}
break
case 5:
hostParent = parent.stateNode
hostParentIsContainer = !1
break a
case 3:
case 4:
hostParent = parent.stateNode.containerInfo
hostParentIsContainer = !0
break a
}
parent = parent.return
}
if (null === hostParent)
throw Error(
'Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.'
)
commitDeletionEffectsOnFiber(root, returnFiber, deletedFiber)
hostParent = null
hostParentIsContainer = !1
popComponentEffectStart(prevEffectStart)
root = deletedFiber
returnFiber = root.alternate
null !== returnFiber && (returnFiber.return = null)
root.return = null
}
if (parentFiber.subtreeFlags & 13878)
for (parentFiber = parentFiber.child; null !== parentFiber; )
(commitMutationEffectsOnFiber(parentFiber, root$jscomp$0),
(parentFiber = parentFiber.sibling))
}
function commitMutationEffectsOnFiber(finishedWork, root) {
var prevEffectStart = pushComponentEffectStart(),
current = finishedWork.alternate,
flags = finishedWork.flags
switch (finishedWork.tag) {
case 0:
case 11:
case 14:
case 15:
recursivelyTraverseMutationEffects(root, finishedWork)
commitReconciliationEffects(finishedWork)
flags & 4 &&
(commitHookEffectListUnmount(
Insertion | HasEffect,
finishedWork,
finishedWork.return
),
commitHookEffectListMount(Insertion | HasEffect, finishedWork),
commitHookLayoutUnmountEffects(
finishedWork,
finishedWork.return,
Layout | HasEffect
))
break
case 1:
recursivelyTraverseMutationEffects(root, finishedWork)
commitReconciliationEffects(finishedWork)
flags & 512 &&
(offscreenSubtreeWasHidden ||
null === current ||
safelyDetachRef(current, current.return))
flags & 64 &&
offscreenSubtreeIsHidden &&
((finishedWork = finishedWork.updateQueue),
null !== finishedWork &&
((flags = finishedWork.callbacks),
null !== flags &&
((current = finishedWork.shared.hiddenCallbacks),
(finishedWork.shared.hiddenCallbacks =
null === current ? flags : current.concat(flags)))))
break
case 26:
var hoistableRoot = currentHoistableRoot
recursivelyTraverseMutationEffects(root, finishedWork)
commitReconciliationEffects(finishedWork)
flags & 512 &&
(offscreenSubtreeWasHidden ||
null === current ||
safelyDetachRef(current, current.return))
if (flags & 4) {
var currentResource =
null !== current ? current.memoizedState : null
flags = finishedWork.memoizedState
if (null === current)
if (null === flags)
if (null === finishedWork.stateNode) {
a: {
flags = finishedWork.type
current = finishedWork.memoizedProps
hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot
b: switch (flags) {
case 'title':
currentResource =
hoistableRoot.getElementsByTagName('title')[0]
if (
!currentResource ||
currentResource[internalHoistableMarker] ||
currentResource[internalInstanceKey] ||
currentResource.namespaceURI === SVG_NAMESPACE ||
currentResource.hasAttribute('itemprop')
)
((currentResource =
hoistableRoot.createElement(flags)),
hoistableRoot.head.insertBefore(
currentResource,
hoistableRoot.querySelector('head > title')
))
setInitialProperties(currentResource, flags, current)
currentResource[internalInstanceKey] = finishedWork
markNodeAsHoistable(currentResource)
flags = currentResource
break a
case 'link':
var maybeNodes = getHydratableHoistableCache(
'link',
'href',
hoistableRoot
).get(flags + (current.href || ''))
if (maybeNodes)
for (var i = 0; i < maybeNodes.length; i++)
if (
((currentResource = maybeNodes[i]),
currentResource.getAttribute('href') ===
(null == current.href || '' === current.href
? null
: current.href) &&
currentResource.getAttribute('rel') ===
(null == current.rel ? null : current.rel) &&
currentResource.getAttribute('title') ===
(null == current.title
? null
: current.title) &&
currentResource.getAttribute('crossorigin') ===
(null == current.crossOrigin
? null
: current.crossOrigin))
) {
maybeNodes.splice(i, 1)
break b
}
currentResource = hoistableRoot.createElement(flags)
setInitialProperties(currentResource, flags, current)
hoistableRoot.head.appendChild(currentResource)
break
case 'meta':
if (
(maybeNodes = getHydratableHoistableCache(
'meta',
'content',
hoistableRoot
).get(flags + (current.content || '')))
)
for (i = 0; i < maybeNodes.length; i++)
if (
((currentResource = maybeNodes[i]),
checkAttributeStringCoercion(
current.content,
'content'
),
currentResource.getAttribute('content') ===
(null == current.content
? null
: '' + current.content) &&
currentResource.getAttribute('name') ===
(null == current.name
? null
: current.name) &&
currentResource.getAttribute('property') ===
(null == current.property
? null
: current.property) &&
currentResource.getAttribute('http-equiv') ===
(null == current.httpEquiv
? null
: current.httpEquiv) &&
currentResource.getAttribute('charset') ===
(null == current.charSet
? null
: current.charSet))
) {
maybeNodes.splice(i, 1)
break b
}
currentResource = hoistableRoot.createElement(flags)
setInitialProperties(currentResource, flags, current)
hoistableRoot.head.appendChild(currentResource)
break
default:
throw Error(
'getNodesForType encountered a type it did not expect: "' +
flags +
'". This is a bug in React.'
)
}
currentResource[internalInstanceKey] = finishedWork
markNodeAsHoistable(currentResource)
flags = currentResource
}
finishedWork.stateNode = flags
} else
mountHoistable(
hoistableRoot,
finishedWork.type,
finishedWork.stateNode
)
else
finishedWork.stateNode = acquireResource(
hoistableRoot,
flags,
finishedWork.memoizedProps
)
else
currentResource !== flags
? (null === currentResource
? null !== current.stateNode &&
((current = current.stateNode),
current.parentNode.removeChild(current))
: currentResource.count--,
null === flags
? mountHoistable(
hoistableRoot,
finishedWork.type,
finishedWork.stateNode
)
: acquireResource(
hoistableRoot,
flags,
finishedWork.memoizedProps
))
: null === flags &&
null !== finishedWork.stateNode &&
commitHostUpdate(
finishedWork,
finishedWork.memoizedProps,
current.memoizedProps
)
}
break
case 27:
recursivelyTraverseMutationEffects(root, finishedWork)
commitReconciliationEffects(finishedWork)
flags & 512 &&
(offscreenSubtreeWasHidden ||
null === current ||
safelyDetachRef(current, current.return))
null !== current &&
flags & 4 &&
commitHostUpdate(
finishedWork,
finishedWork.memoizedProps,
current.memoizedProps
)
break
case 5:
recursivelyTraverseMutationEffects(root, finishedWork)
commitReconciliationEffects(finishedWork)
flags & 512 &&
(offscreenSubtreeWasHidden ||
null === current ||
safelyDetachRef(current, current.return))
if (finishedWork.flags & 32) {
hoistableRoot = finishedWork.stateNode
try {
runWithFiberInDEV(finishedWork, resetTextContent, hoistableRoot)
} catch (error) {
captureCommitPhaseError(finishedWork, finishedWork.return, error)
}
}
flags & 4 &&
null != finishedWork.stateNode &&
((hoistableRoot = finishedWork.memoizedProps),
commitHostUpdate(
finishedWork,
hoistableRoot,
null !== current ? current.memoizedProps : hoistableRoot
))
flags & 1024 &&
((needsFormReset = !0),
'form' !== finishedWork.type &&
console.error(
'Unexpected host component type. Expected a form. This is a bug in React.'
))
break
case 6:
recursivelyTraverseMutationEffects(root, finishedWork)
commitReconciliationEffects(finishedWork)
if (flags & 4) {
if (null === finishedWork.stateNode)
throw Error(
'This should have a text node initialized. This error is likely caused by a bug in React. Please file an issue.'
)
flags = finishedWork.memoizedProps
current = null !== current ? current.memoizedProps : flags
hoistableRoot = finishedWork.stateNode
try {
runWithFiberInDEV(
finishedWork,
commitTextUpdate,
hoistableRoot,
current,
flags
)
} catch (error) {
captureCommitPhaseError(finishedWork, finishedWork.return, error)
}
}
break
case 3:
hoistableRoot = pushNestedEffectDurations()
tagCaches = null
currentResource = currentHoistableRoot
currentHoistableRoot = getHoistableRoot(root.containerInfo)
recursivelyTraverseMutationEffects(root, finishedWork)
currentHoistableRoot = currentResource
commitReconciliationEffects(finishedWork)
if (
flags & 4 &&
null !== current &&
current.memoizedState.isDehydrated
)
try {
runWithFiberInDEV(
finishedWork,
commitHydratedContainer,
root.containerInfo
)
} catch (error) {
captureCommitPhaseError(finishedWork, finishedWork.return, error)
}
needsFormReset &&
((needsFormReset = !1), recursivelyResetForms(finishedWork))
root.effectDuration += popNestedEffectDurations(hoistableRoot)
break
case 4:
flags = currentHoistableRoot
currentHoistableRoot = getHoistableRoot(
finishedWork.stateNode.containerInfo
)
recursivelyTraverseMutationEffects(root, finishedWork)
commitReconciliationEffects(finishedWork)
currentHoistableRoot = flags
break
case 12:
flags = pushNestedEffectDurations()
recursivelyTraverseMutationEffects(root, finishedWork)
commitReconciliationEffects(finishedWork)
finishedWork.stateNode.effectDuration +=
bubbleNestedEffectDurations(flags)
break
case 31:
recursivelyTraverseMutationEffects(root, finishedWork)
commitReconciliationEffects(finishedWork)
flags & 4 &&
((flags = finishedWork.updateQueue),
null !== flags &&
((finishedWork.updateQueue = null),
attachSuspenseRetryListeners(finishedWork, flags)))
break
case 13:
recursivelyTraverseMutationEffects(root, finishedWork)
commitReconciliationEffects(finishedWork)
finishedWork.child.flags & 8192 &&
(null !== finishedWork.memoizedState) !==
(null !== current && null !== current.memoizedState) &&
(globalMostRecentFallbackTime = now$1())
flags & 4 &&
((flags = finishedWork.updateQueue),
null !== flags &&
((finishedWork.updateQueue = null),
attachSuspenseRetryListeners(finishedWork, flags)))
break
case 22:
hoistableRoot = null !== finishedWork.memoizedState
var wasHidden = null !== current && null !== current.memoizedState,
prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden,
prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden
offscreenSubtreeIsHidden =
prevOffscreenSubtreeIsHidden || hoistableRoot
offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden || wasHidden
recursivelyTraverseMutationEffects(root, finishedWork)
offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden
offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden
commitReconciliationEffects(finishedWork)
if (flags & 8192)
a: for (
root = finishedWork.stateNode,
root._visibility = hoistableRoot
? root._visibility & ~OffscreenVisible
: root._visibility | OffscreenVisible,
hoistableRoot &&
(null === current ||
wasHidden ||
offscreenSubtreeIsHidden ||
offscreenSubtreeWasHidden ||
recursivelyTraverseDisappearLayoutEffects(finishedWork)),
current = null,
root = finishedWork;
;
) {
if (5 === root.tag || 26 === root.tag) {
if (null === current) {
wasHidden = current = root
try {
;((currentResource = wasHidden.stateNode),
hoistableRoot
? runWithFiberInDEV(
wasHidden,
hideInstance,
currentResource
)
: runWithFiberInDEV(
wasHidden,
unhideInstance,
wasHidden.stateNode,
wasHidden.memoizedProps
))
} catch (error) {
captureCommitPhaseError(wasHidden, wasHidden.return, error)
}
}
} else if (6 === root.tag) {
if (null === current) {
wasHidden = root
try {
;((maybeNodes = wasHidden.stateNode),
hoistableRoot
? runWithFiberInDEV(
wasHidden,
hideTextInstance,
maybeNodes
)
: runWithFiberInDEV(
wasHidden,
unhideTextInstance,
maybeNodes,
wasHidden.memoizedProps
))
} catch (error) {
captureCommitPhaseError(wasHidden, wasHidden.return, error)
}
}
} else if (18 === root.tag) {
if (null === current) {
wasHidden = root
try {
;((i = wasHidden.stateNode),
hoistableRoot
? runWithFiberInDEV(
wasHidden,
hideDehydratedBoundary,
i
)
: runWithFiberInDEV(
wasHidden,
unhideDehydratedBoundary,
wasHidden.stateNode
))
} catch (error) {
captureCommitPhaseError(wasHidden, wasHidden.return, error)
}
}
} else if (
((22 !== root.tag && 23 !== root.tag) ||
null === root.memoizedState ||
root === finishedWork) &&
null !== root.child
) {
root.child.return = root
root = root.child
continue
}
if (root === finishedWork) break a
for (; null === root.sibling; ) {
if (null === root.return || root.return === finishedWork)
break a
current === root && (current = null)
root = root.return
}
current === root && (current = null)
root.sibling.return = root.return
root = root.sibling
}
flags & 4 &&
((flags = finishedWork.updateQueue),
null !== flags &&
((current = flags.retryQueue),
null !== current &&
((flags.retryQueue = null),
attachSuspenseRetryListeners(finishedWork, current))))
break
case 19:
recursivelyTraverseMutationEffects(root, finishedWork)
commitReconciliationEffects(finishedWork)
flags & 4 &&
((flags = finishedWork.updateQueue),
null !== flags &&
((finishedWork.updateQueue = null),
attachSuspenseRetryListeners(finishedWork, flags)))
break
case 30:
break
case 21:
break
default:
;(recursivelyTraverseMutationEffects(root, finishedWork),
commitReconciliationEffects(finishedWork))
}
popComponentEffectStart(prevEffectStart)
}
function commitReconciliationEffects(finishedWork) {
var flags = finishedWork.flags
if (flags & 2) {
try {
runWithFiberInDEV(finishedWork, commitPlacement, finishedWork)
} catch (error) {
captureCommitPhaseError(finishedWork, finishedWork.return, error)
}
finishedWork.flags &= -3
}
flags & 4096 && (finishedWork.flags &= -4097)
}
function recursivelyResetForms(parentFiber) {
if (parentFiber.subtreeFlags & 1024)
for (parentFiber = parentFiber.child; null !== parentFiber; ) {
var fiber = parentFiber
recursivelyResetForms(fiber)
5 === fiber.tag && fiber.flags & 1024 && fiber.stateNode.reset()
parentFiber = parentFiber.sibling
}
}
function recursivelyTraverseLayoutEffects(root, parentFiber) {
if (parentFiber.subtreeFlags & 8772)
for (parentFiber = parentFiber.child; null !== parentFiber; )
(commitLayoutEffectOnFiber(root, parentFiber.alternate, parentFiber),
(parentFiber = parentFiber.sibling))
}
function disappearLayoutEffects(finishedWork) {
var prevEffectStart = pushComponentEffectStart()
switch (finishedWork.tag) {
case 0:
case 11:
case 14:
case 15:
commitHookLayoutUnmountEffects(
finishedWork,
finishedWork.return,
Layout
)
recursivelyTraverseDisappearLayoutEffects(finishedWork)
break
case 1:
safelyDetachRef(finishedWork, finishedWork.return)
var instance = finishedWork.stateNode
'function' === typeof instance.componentWillUnmount &&
safelyCallComponentWillUnmount(
finishedWork,
finishedWork.return,
instance
)
recursivelyTraverseDisappearLayoutEffects(finishedWork)
break
case 27:
runWithFiberInDEV(
finishedWork,
releaseSingletonInstance,
finishedWork.stateNode
)
case 26:
case 5:
safelyDetachRef(finishedWork, finishedWork.return)
recursivelyTraverseDisappearLayoutEffects(finishedWork)
break
case 22:
null === finishedWork.memoizedState &&
recursivelyTraverseDisappearLayoutEffects(finishedWork)
break
case 30:
recursivelyTraverseDisappearLayoutEffects(finishedWork)
break
default:
recursivelyTraverseDisappearLayoutEffects(finishedWork)
}
popComponentEffectStart(prevEffectStart)
}
function recursivelyTraverseDisappearLayoutEffects(parentFiber) {
for (parentFiber = parentFiber.child; null !== parentFiber; )
(disappearLayoutEffects(parentFiber),
(parentFiber = parentFiber.sibling))
}
function reappearLayoutEffects(
finishedRoot,
current,
finishedWork,
includeWorkInProgressEffects
) {
var prevEffectStart = pushComponentEffectStart(),
flags = finishedWork.flags
switch (finishedWork.tag) {
case 0:
case 11:
case 15:
recursivelyTraverseReappearLayoutEffects(
finishedRoot,
finishedWork,
includeWorkInProgressEffects
)
commitHookLayoutEffects(finishedWork, Layout)
break
case 1:
recursivelyTraverseReappearLayoutEffects(
finishedRoot,
finishedWork,
includeWorkInProgressEffects
)
current = finishedWork.stateNode
'function' === typeof current.componentDidMount &&
runWithFiberInDEV(
finishedWork,
callComponentDidMountInDEV,
finishedWork,
current
)
current = finishedWork.updateQueue
if (null !== current) {
finishedRoot = finishedWork.stateNode
try {
runWithFiberInDEV(
finishedWork,
commitHiddenCallbacks,
current,
finishedRoot
)
} catch (error) {
captureCommitPhaseError(finishedWork, finishedWork.return, error)
}
}
includeWorkInProgressEffects &&
flags & 64 &&
commitClassCallbacks(finishedWork)
safelyAttachRef(finishedWork, finishedWork.return)
break
case 27:
commitHostSingletonAcquisition(finishedWork)
case 26:
case 5:
recursivelyTraverseReappearLayoutEffects(
finishedRoot,
finishedWork,
includeWorkInProgressEffects
)
includeWorkInProgressEffects &&
null === current &&
flags & 4 &&
commitHostMount(finishedWork)
safelyAttachRef(finishedWork, finishedWork.return)
break
case 12:
if (includeWorkInProgressEffects && flags & 4) {
flags = pushNestedEffectDurations()
recursivelyTraverseReappearLayoutEffects(
finishedRoot,
finishedWork,
includeWorkInProgressEffects
)
includeWorkInProgressEffects = finishedWork.stateNode
includeWorkInProgressEffects.effectDuration +=
bubbleNestedEffectDurations(flags)
try {
runWithFiberInDEV(
finishedWork,
commitProfiler,
finishedWork,
current,
commitStartTime,
includeWorkInProgressEffects.effectDuration
)
} catch (error) {
captureCommitPhaseError(finishedWork, finishedWork.return, error)
}
} else
recursivelyTraverseReappearLayoutEffects(
finishedRoot,
finishedWork,
includeWorkInProgressEffects
)
break
case 31:
recursivelyTraverseReappearLayoutEffects(
finishedRoot,
finishedWork,
includeWorkInProgressEffects
)
includeWorkInProgressEffects &&
flags & 4 &&
commitActivityHydrationCallbacks(finishedRoot, finishedWork)
break
case 13:
recursivelyTraverseReappearLayoutEffects(
finishedRoot,
finishedWork,
includeWorkInProgressEffects
)
includeWorkInProgressEffects &&
flags & 4 &&
commitSuspenseHydrationCallbacks(finishedRoot, finishedWork)
break
case 22:
null === finishedWork.memoizedState &&
recursivelyTraverseReappearLayoutEffects(
finishedRoot,
finishedWork,
includeWorkInProgressEffects
)
safelyAttachRef(finishedWork, finishedWork.return)
break
case 30:
break
default:
recursivelyTraverseReappearLayoutEffects(
finishedRoot,
finishedWork,
includeWorkInProgressEffects
)
}
popComponentEffectStart(prevEffectStart)
}
function recursivelyTraverseReappearLayoutEffects(
finishedRoot,
parentFiber,
includeWorkInProgressEffects
) {
includeWorkInProgressEffects =
includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 8772)
for (parentFiber = parentFiber.child; null !== parentFiber; )
(reappearLayoutEffects(
finishedRoot,
parentFiber.alternate,
parentFiber,
includeWorkInProgressEffects
),
(parentFiber = parentFiber.sibling))
}
function commitOffscreenPassiveMountEffects(current, finishedWork) {
var previousCache = null
null !== current &&
null !== current.memoizedState &&
null !== current.memoizedState.cachePool &&
(previousCache = current.memoizedState.cachePool.pool)
current = null
null !== finishedWork.memoizedState &&
null !== finishedWork.memoizedState.cachePool &&
(current = finishedWork.memoizedState.cachePool.pool)
current !== previousCache &&
(null != current && retainCache(current),
null != previousCache && releaseCache(previousCache))
}
function commitCachePassiveMountEffect(current, finishedWork) {
current = null
null !== finishedWork.alternate &&
(current = finishedWork.alternate.memoizedState.cache)
finishedWork = finishedWork.memoizedState.cache
finishedWork !== current &&
(retainCache(finishedWork), null != current && releaseCache(current))
}
function recursivelyTraversePassiveMountEffects(
root,
parentFiber,
committedLanes,
committedTransitions
) {
if (parentFiber.subtreeFlags & 10256)
for (parentFiber = parentFiber.child; null !== parentFiber; )
(commitPassiveMountOnFiber(
root,
parentFiber,
committedLanes,
committedTransitions
),
(parentFiber = parentFiber.sibling))
}
function commitPassiveMountOnFiber(
finishedRoot,
finishedWork,
committedLanes,
committedTransitions
) {
var prevEffectStart = pushComponentEffectStart(),
flags = finishedWork.flags
switch (finishedWork.tag) {
case 0:
case 11:
case 15:
recursivelyTraversePassiveMountEffects(
finishedRoot,
finishedWork,
committedLanes,
committedTransitions
)
flags & 2048 &&
commitHookPassiveMountEffects(finishedWork, Passive | HasEffect)
break
case 1:
recursivelyTraversePassiveMountEffects(
finishedRoot,
finishedWork,
committedLanes,
committedTransitions
)
break
case 3:
var prevProfilerEffectDuration = pushNestedEffectDurations()
recursivelyTraversePassiveMountEffects(
finishedRoot,
finishedWork,
committedLanes,
committedTransitions
)
flags & 2048 &&
((committedLanes = null),
null !== finishedWork.alternate &&
(committedLanes = finishedWork.alternate.memoizedState.cache),
(finishedWork = finishedWork.memoizedState.cache),
finishedWork !== committedLanes &&
(retainCache(finishedWork),
null != committedLanes && releaseCache(committedLanes)))
finishedRoot.passiveEffectDuration += popNestedEffectDurations(
prevProfilerEffectDuration
)
break
case 12:
if (flags & 2048) {
flags = pushNestedEffectDurations()
recursivelyTraversePassiveMountEffects(
finishedRoot,
finishedWork,
committedLanes,
committedTransitions
)
finishedRoot = finishedWork.stateNode
finishedRoot.passiveEffectDuration +=
bubbleNestedEffectDurations(flags)
try {
runWithFiberInDEV(
finishedWork,
commitProfilerPostCommitImpl,
finishedWork,
finishedWork.alternate,
commitStartTime,
finishedRoot.passiveEffectDuration
)
} catch (error) {
captureCommitPhaseError(finishedWork, finishedWork.return, error)
}
} else
recursivelyTraversePassiveMountEffects(
finishedRoot,
finishedWork,
committedLanes,
committedTransitions
)
break
case 31:
recursivelyTraversePassiveMountEffects(
finishedRoot,
finishedWork,
committedLanes,
committedTransitions
)
break
case 13:
recursivelyTraversePassiveMountEffects(
finishedRoot,
finishedWork,
committedLanes,
committedTransitions
)
break
case 23:
break
case 22:
prevProfilerEffectDuration = finishedWork.stateNode
var _current = finishedWork.alternate
null !== finishedWork.memoizedState
? prevProfilerEffectDuration._visibility &
OffscreenPassiveEffectsConnected
? recursivelyTraversePassiveMountEffects(
finishedRoot,
finishedWork,
committedLanes,
committedTransitions
)
: recursivelyTraverseAtomicPassiveEffects(
finishedRoot,
finishedWork
)
: prevProfilerEffectDuration._visibility &
OffscreenPassiveEffectsConnected
? recursivelyTraversePassiveMountEffects(
finishedRoot,
finishedWork,
committedLanes,
committedTransitions
)
: ((prevProfilerEffectDuration._visibility |=
OffscreenPassiveEffectsConnected),
recursivelyTraverseReconnectPassiveEffects(
finishedRoot,
finishedWork,
committedLanes,
committedTransitions,
0 !== (finishedWork.subtreeFlags & 10256)
))
flags & 2048 &&
commitOffscreenPassiveMountEffects(_current, finishedWork)
break
case 24:
recursivelyTraversePassiveMountEffects(
finishedRoot,
finishedWork,
committedLanes,
committedTransitions
)
flags & 2048 &&
commitCachePassiveMountEffect(finishedWork.alternate, finishedWork)
break
default:
recursivelyTraversePassiveMountEffects(
finishedRoot,
finishedWork,
committedLanes,
committedTransitions
)
}
popComponentEffectStart(prevEffectStart)
}
function recursivelyTraverseReconnectPassiveEffects(
finishedRoot,
parentFiber,
committedLanes,
committedTransitions,
includeWorkInProgressEffects
) {
includeWorkInProgressEffects =
includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 10256)
for (parentFiber = parentFiber.child; null !== parentFiber; )
(reconnectPassiveEffects(
finishedRoot,
parentFiber,
committedLanes,
committedTransitions,
includeWorkInProgressEffects
),
(parentFiber = parentFiber.sibling))
}
function reconnectPassiveEffects(
finishedRoot,
finishedWork,
committedLanes,
committedTransitions,
includeWorkInProgressEffects
) {
var prevEffectStart = pushComponentEffectStart(),
flags = finishedWork.flags
switch (finishedWork.tag) {
case 0:
case 11:
case 15:
recursivelyTraverseReconnectPassiveEffects(
finishedRoot,
finishedWork,
committedLanes,
committedTransitions,
includeWorkInProgressEffects
)
commitHookPassiveMountEffects(finishedWork, Passive)
break
case 23:
break
case 22:
var _instance2 = finishedWork.stateNode
null !== finishedWork.memoizedState
? _instance2._visibility & OffscreenPassiveEffectsConnected
? recursivelyTraverseReconnectPassiveEffects(
finishedRoot,
finishedWork,
committedLanes,
committedTransitions,
includeWorkInProgressEffects
)
: recursivelyTraverseAtomicPassiveEffects(
finishedRoot,
finishedWork
)
: ((_instance2._visibility |= OffscreenPassiveEffectsConnected),
recursivelyTraverseReconnectPassiveEffects(
finishedRoot,
finishedWork,
committedLanes,
committedTransitions,
includeWorkInProgressEffects
))
includeWorkInProgressEffects &&
flags & 2048 &&
commitOffscreenPassiveMountEffects(
finishedWork.alternate,
finishedWork
)
break
case 24:
recursivelyTraverseReconnectPassiveEffects(
finishedRoot,
finishedWork,
committedLanes,
committedTransitions,
includeWorkInProgressEffects
)
includeWorkInProgressEffects &&
flags & 2048 &&
commitCachePassiveMountEffect(finishedWork.alternate, finishedWork)
break
default:
recursivelyTraverseReconnectPassiveEffects(
finishedRoot,
finishedWork,
committedLanes,
committedTransitions,
includeWorkInProgressEffects
)
}
popComponentEffectStart(prevEffectStart)
}
function recursivelyTraverseAtomicPassiveEffects(
finishedRoot$jscomp$0,
parentFiber
) {
if (parentFiber.subtreeFlags & 10256)
for (parentFiber = parentFiber.child; null !== parentFiber; ) {
var finishedRoot = finishedRoot$jscomp$0,
finishedWork = parentFiber,
flags = finishedWork.flags
switch (finishedWork.tag) {
case 22:
recursivelyTraverseAtomicPassiveEffects(
finishedRoot,
finishedWork
)
flags & 2048 &&
commitOffscreenPassiveMountEffects(
finishedWork.alternate,
finishedWork
)
break
case 24:
recursivelyTraverseAtomicPassiveEffects(
finishedRoot,
finishedWork
)
flags & 2048 &&
commitCachePassiveMountEffect(
finishedWork.alternate,
finishedWork
)
break
default:
recursivelyTraverseAtomicPassiveEffects(
finishedRoot,
finishedWork
)
}
parentFiber = parentFiber.sibling
}
}
function recursivelyAccumulateSuspenseyCommit(parentFiber) {
if (parentFiber.subtreeFlags & suspenseyCommitFlag)
for (parentFiber = parentFiber.child; null !== parentFiber; )
(accumulateSuspenseyCommitOnFiber(parentFiber),
(parentFiber = parentFiber.sibling))
}
function accumulateSuspenseyCommitOnFiber(fiber) {
switch (fiber.tag) {
case 26:
recursivelyAccumulateSuspenseyCommit(fiber)
fiber.flags & suspenseyCommitFlag &&
null !== fiber.memoizedState &&
suspendResource(
currentHoistableRoot,
fiber.memoizedState,
fiber.memoizedProps
)
break
case 5:
recursivelyAccumulateSuspenseyCommit(fiber)
break
case 3:
case 4:
var previousHoistableRoot = currentHoistableRoot
currentHoistableRoot = getHoistableRoot(fiber.stateNode.containerInfo)
recursivelyAccumulateSuspenseyCommit(fiber)
currentHoistableRoot = previousHoistableRoot
break
case 22:
null === fiber.memoizedState &&
((previousHoistableRoot = fiber.alternate),
null !== previousHoistableRoot &&
null !== previousHoistableRoot.memoizedState
? ((previousHoistableRoot = suspenseyCommitFlag),
(suspenseyCommitFlag = 16777216),
recursivelyAccumulateSuspenseyCommit(fiber),
(suspenseyCommitFlag = previousHoistableRoot))
: recursivelyAccumulateSuspenseyCommit(fiber))
break
default:
recursivelyAccumulateSuspenseyCommit(fiber)
}
}
function detachAlternateSiblings(parentFiber) {
var previousFiber = parentFiber.alternate
if (
null !== previousFiber &&
((parentFiber = previousFiber.child), null !== parentFiber)
) {
previousFiber.child = null
do
((previousFiber = parentFiber.sibling),
(parentFiber.sibling = null),
(parentFiber = previousFiber))
while (null !== parentFiber)
}
}
function recursivelyTraversePassiveUnmountEffects(parentFiber) {
var deletions = parentFiber.deletions
if (0 !== (parentFiber.flags & 16)) {
if (null !== deletions)
for (var i = 0; i < deletions.length; i++) {
var childToDelete = deletions[i],
prevEffectStart = pushComponentEffectStart()
nextEffect = childToDelete
commitPassiveUnmountEffectsInsideOfDeletedTree_begin(
childToDelete,
parentFiber
)
popComponentEffectStart(prevEffectStart)
}
detachAlternateSiblings(parentFiber)
}
if (parentFiber.subtreeFlags & 10256)
for (parentFiber = parentFiber.child; null !== parentFiber; )
(commitPassiveUnmountOnFiber(parentFiber),
(parentFiber = parentFiber.sibling))
}
function commitPassiveUnmountOnFiber(finishedWork) {
var prevEffectStart = pushComponentEffectStart()
switch (finishedWork.tag) {
case 0:
case 11:
case 15:
recursivelyTraversePassiveUnmountEffects(finishedWork)
finishedWork.flags & 2048 &&
commitHookPassiveUnmountEffects(
finishedWork,
finishedWork.return,
Passive | HasEffect
)
break
case 3:
var prevProfilerEffectDuration = pushNestedEffectDurations()
recursivelyTraversePassiveUnmountEffects(finishedWork)
finishedWork.stateNode.passiveEffectDuration +=
popNestedEffectDurations(prevProfilerEffectDuration)
break
case 12:
prevProfilerEffectDuration = pushNestedEffectDurations()
recursivelyTraversePassiveUnmountEffects(finishedWork)
finishedWork.stateNode.passiveEffectDuration +=
bubbleNestedEffectDurations(prevProfilerEffectDuration)
break
case 22:
prevProfilerEffectDuration = finishedWork.stateNode
null !== finishedWork.memoizedState &&
prevProfilerEffectDuration._visibility &
OffscreenPassiveEffectsConnected &&
(null === finishedWork.return || 13 !== finishedWork.return.tag)
? ((prevProfilerEffectDuration._visibility &=
~OffscreenPassiveEffectsConnected),
recursivelyTraverseDisconnectPassiveEffects(finishedWork))
: recursivelyTraversePassiveUnmountEffects(finishedWork)
break
default:
recursivelyTraversePassiveUnmountEffects(finishedWork)
}
popComponentEffectStart(prevEffectStart)
}
function recursivelyTraverseDisconnectPassiveEffects(parentFiber) {
var deletions = parentFiber.deletions
if (0 !== (parentFiber.flags & 16)) {
if (null !== deletions)
for (var i = 0; i < deletions.length; i++) {
var childToDelete = deletions[i],
prevEffectStart = pushComponentEffectStart()
nextEffect = childToDelete
commitPassiveUnmountEffectsInsideOfDeletedTree_begin(
childToDelete,
parentFiber
)
popComponentEffectStart(prevEffectStart)
}
detachAlternateSiblings(parentFiber)
}
for (parentFiber = parentFiber.child; null !== parentFiber; )
(disconnectPassiveEffect(parentFiber),
(parentFiber = parentFiber.sibling))
}
function disconnectPassiveEffect(finishedWork) {
var prevEffectStart = pushComponentEffectStart()
switch (finishedWork.tag) {
case 0:
case 11:
case 15:
commitHookPassiveUnmountEffects(
finishedWork,
finishedWork.return,
Passive
)
recursivelyTraverseDisconnectPassiveEffects(finishedWork)
break
case 22:
var instance = finishedWork.stateNode
instance._visibility & OffscreenPassiveEffectsConnected &&
((instance._visibility &= ~OffscreenPassiveEffectsConnected),
recursivelyTraverseDisconnectPassiveEffects(finishedWork))
break
default:
recursivelyTraverseDisconnectPassiveEffects(finishedWork)
}
popComponentEffectStart(prevEffectStart)
}
function commitPassiveUnmountEffectsInsideOfDeletedTree_begin(
deletedSubtreeRoot,
nearestMountedAncestor$jscomp$0
) {
for (; null !== nextEffect; ) {
var fiber = nextEffect,
current = fiber,
nearestMountedAncestor = nearestMountedAncestor$jscomp$0,
prevEffectStart = pushComponentEffectStart()
switch (current.tag) {
case 0:
case 11:
case 15:
commitHookPassiveUnmountEffects(
current,
nearestMountedAncestor,
Passive
)
break
case 23:
case 22:
null !== current.memoizedState &&
null !== current.memoizedState.cachePool &&
((current = current.memoizedState.cachePool.pool),
null != current && retainCache(current))
break
case 24:
releaseCache(current.memoizedState.cache)
}
popComponentEffectStart(prevEffectStart)
prevEffectStart = fiber.child
if (null !== prevEffectStart)
((prevEffectStart.return = fiber), (nextEffect = prevEffectStart))
else
a: for (fiber = deletedSubtreeRoot; null !== nextEffect; ) {
prevEffectStart = nextEffect
current = prevEffectStart.sibling
nearestMountedAncestor = prevEffectStart.return
detachFiberAfterEffects(prevEffectStart)
if (prevEffectStart === fiber) {
nextEffect = null
break a
}
if (null !== current) {
current.return = nearestMountedAncestor
nextEffect = current
break a
}
nextEffect = nearestMountedAncestor
}
}
}
function onCommitRoot() {
commitHooks.forEach(function (commitHook) {
return commitHook()
})
}
function isConcurrentActEnvironment() {
var isReactActEnvironmentGlobal =
'undefined' !== typeof IS_REACT_ACT_ENVIRONMENT
? IS_REACT_ACT_ENVIRONMENT
: void 0
isReactActEnvironmentGlobal ||
null === ReactSharedInternals.actQueue ||
console.error(
'The current testing environment is not configured to support act(...)'
)
return isReactActEnvironmentGlobal
}
function requestUpdateLane(fiber) {
if (
(executionContext & RenderContext) !== NoContext &&
0 !== workInProgressRootRenderLanes
)
return workInProgressRootRenderLanes & -workInProgressRootRenderLanes
var transition = ReactSharedInternals.T
return null !== transition
? (transition._updatedFibers || (transition._updatedFibers = new Set()),
transition._updatedFibers.add(fiber),
requestTransitionLane())
: resolveUpdatePriority()
}
function requestDeferredLane() {
0 === workInProgressDeferredLane &&
(workInProgressDeferredLane =
0 === (workInProgressRootRenderLanes & 536870912) || isHydrating
? claimNextTransitionLane()
: 536870912)
var suspenseHandler = suspenseHandlerStackCursor.current
null !== suspenseHandler && (suspenseHandler.flags |= 32)
return workInProgressDeferredLane
}
function scheduleUpdateOnFiber(root, fiber, lane) {
isRunningInsertionEffect &&
console.error('useInsertionEffect must not schedule updates.')
isFlushingPassiveEffects && (didScheduleUpdateDuringPassiveEffects = !0)
if (
(root === workInProgressRoot &&
(workInProgressSuspendedReason === SuspendedOnData ||
workInProgressSuspendedReason === SuspendedOnAction)) ||
null !== root.cancelPendingCommit
)
(prepareFreshStack(root, 0),
markRootSuspended(
root,
workInProgressRootRenderLanes,
workInProgressDeferredLane,
!1
))
markRootUpdated$1(root, lane)
if (
(executionContext & RenderContext) !== NoContext &&
root === workInProgressRoot
) {
if (isRendering)
switch (fiber.tag) {
case 0:
case 11:
case 15:
root =
(workInProgress && getComponentNameFromFiber(workInProgress)) ||
'Unknown'
didWarnAboutUpdateInRenderForAnotherComponent.has(root) ||
(didWarnAboutUpdateInRenderForAnotherComponent.add(root),
(fiber = getComponentNameFromFiber(fiber) || 'Unknown'),
console.error(
'Cannot update a component (`%s`) while rendering a different component (`%s`). To locate the bad setState() call inside `%s`, follow the stack trace as described in https://react.dev/link/setstate-in-render',
fiber,
root,
root
))
break
case 1:
didWarnAboutUpdateInRender ||
(console.error(
'Cannot update during an existing state transition (such as within `render`). Render methods should be a pure function of props and state.'
),
(didWarnAboutUpdateInRender = !0))
}
} else
(isDevToolsPresent && addFiberToLanesMap(root, fiber, lane),
warnIfUpdatesNotWrappedWithActDEV(fiber),
root === workInProgressRoot &&
((executionContext & RenderContext) === NoContext &&
(workInProgressRootInterleavedUpdatedLanes |= lane),
workInProgressRootExitStatus === RootSuspendedWithDelay &&
markRootSuspended(
root,
workInProgressRootRenderLanes,
workInProgressDeferredLane,
!1
)),
ensureRootIsScheduled(root))
}
function performWorkOnRoot(root, lanes, forceSync) {
if ((executionContext & (RenderContext | CommitContext)) !== NoContext)
throw Error('Should not already be working.')
var shouldTimeSlice =
(!forceSync &&
0 === (lanes & 124) &&
0 === (lanes & root.expiredLanes)) ||
checkIfRootIsPrerendering(root, lanes),
exitStatus = shouldTimeSlice
? renderRootConcurrent(root, lanes)
: renderRootSync(root, lanes, !0),
renderWasConcurrent = shouldTimeSlice
do {
if (exitStatus === RootInProgress) {
workInProgressRootIsPrerendering &&
!shouldTimeSlice &&
markRootSuspended(root, lanes, 0, !1)
break
} else {
forceSync = root.current.alternate
if (
renderWasConcurrent &&
!isRenderConsistentWithExternalStores(forceSync)
) {
exitStatus = renderRootSync(root, lanes, !1)
renderWasConcurrent = !1
continue
}
if (exitStatus === RootErrored) {
renderWasConcurrent = lanes
if (root.errorRecoveryDisabledLanes & renderWasConcurrent)
var errorRetryLanes = 0
else
((errorRetryLanes = root.pendingLanes & -536870913),
(errorRetryLanes =
0 !== errorRetryLanes
? errorRetryLanes
: errorRetryLanes & 536870912
? 536870912
: 0))
if (0 !== errorRetryLanes) {
lanes = errorRetryLanes
a: {
exitStatus = root
var errorRetryLanes$jscomp$0 = errorRetryLanes
errorRetryLanes = workInProgressRootConcurrentErrors
var wasRootDehydrated =
exitStatus.current.memoizedState.isDehydrated
wasRootDehydrated &&
(prepareFreshStack(
exitStatus,
errorRetryLanes$jscomp$0
).flags |= 256)
errorRetryLanes$jscomp$0 = renderRootSync(
exitStatus,
errorRetryLanes$jscomp$0,
!1
)
if (errorRetryLanes$jscomp$0 !== RootErrored) {
if (
workInProgressRootDidAttachPingListener &&
!wasRootDehydrated
) {
exitStatus.errorRecoveryDisabledLanes |= renderWasConcurrent
workInProgressRootInterleavedUpdatedLanes |=
renderWasConcurrent
exitStatus = RootSuspendedWithDelay
break a
}
exitStatus = workInProgressRootRecoverableErrors
workInProgressRootRecoverableErrors = errorRetryLanes
null !== exitStatus &&
(null === workInProgressRootRecoverableErrors
? (workInProgressRootRecoverableErrors = exitStatus)
: workInProgressRootRecoverableErrors.push.apply(
workInProgressRootRecoverableErrors,
exitStatus
))
}
exitStatus = errorRetryLanes$jscomp$0
}
renderWasConcurrent = !1
if (exitStatus !== RootErrored) continue
}
}
if (exitStatus === RootFatalErrored) {
prepareFreshStack(root, 0)
markRootSuspended(root, lanes, 0, !0)
break
}
a: {
shouldTimeSlice = root
switch (exitStatus) {
case RootInProgress:
case RootFatalErrored:
throw Error('Root did not complete. This is a bug in React.')
case RootSuspendedWithDelay:
if ((lanes & 4194048) !== lanes) break
case RootSuspendedAtTheShell:
markRootSuspended(
shouldTimeSlice,
lanes,
workInProgressDeferredLane,
!workInProgressRootDidSkipSuspendedSiblings
)
break a
case RootErrored:
workInProgressRootRecoverableErrors = null
break
case RootSuspended:
case RootCompleted:
break
default:
throw Error('Unknown root exit status.')
}
if (null !== ReactSharedInternals.actQueue)
commitRoot(
shouldTimeSlice,
forceSync,
lanes,
workInProgressRootRecoverableErrors,
workInProgressTransitions,
workInProgressRootDidIncludeRecursiveRenderUpdate,
workInProgressDeferredLane,
workInProgressRootInterleavedUpdatedLanes,
workInProgressSuspendedRetryLanes
)
else {
if (
(lanes & 62914560) === lanes &&
((renderWasConcurrent =
globalMostRecentFallbackTime +
FALLBACK_THROTTLE_MS -
now$1()),
10 < renderWasConcurrent)
) {
markRootSuspended(
shouldTimeSlice,
lanes,
workInProgressDeferredLane,
!workInProgressRootDidSkipSuspendedSiblings
)
if (0 !== getNextLanes(shouldTimeSlice, 0, !0)) break a
shouldTimeSlice.timeoutHandle = scheduleTimeout(
commitRootWhenReady.bind(
null,
shouldTimeSlice,
forceSync,
workInProgressRootRecoverableErrors,
workInProgressTransitions,
workInProgressRootDidIncludeRecursiveRenderUpdate,
lanes,
workInProgressDeferredLane,
workInProgressRootInterleavedUpdatedLanes,
workInProgressSuspendedRetryLanes,
workInProgressRootDidSkipSuspendedSiblings,
exitStatus,
THROTTLED_COMMIT,
renderStartTime,
0
),
renderWasConcurrent
)
break a
}
commitRootWhenReady(
shouldTimeSlice,
forceSync,
workInProgressRootRecoverableErrors,
workInProgressTransitions,
workInProgressRootDidIncludeRecursiveRenderUpdate,
lanes,
workInProgressDeferredLane,
workInProgressRootInterleavedUpdatedLanes,
workInProgressSuspendedRetryLanes,
workInProgressRootDidSkipSuspendedSiblings,
exitStatus,
IMMEDIATE_COMMIT,
renderStartTime,
0
)
}
}
}
break
} while (1)
ensureRootIsScheduled(root)
}
function commitRootWhenReady(
root,
finishedWork,
recoverableErrors,
transitions,
didIncludeRenderPhaseUpdate,
lanes,
spawnedLane,
updatedLanes,
suspendedRetryLanes,
didSkipSuspendedSiblings,
exitStatus,
suspendedCommitReason,
completedRenderStartTime,
completedRenderEndTime
) {
root.timeoutHandle = noTimeout
suspendedCommitReason = finishedWork.subtreeFlags
if (
suspendedCommitReason & 8192 ||
16785408 === (suspendedCommitReason & 16785408)
)
if (
((suspendedState = {
stylesheets: null,
count: 0,
unsuspend: noop$1,
}),
accumulateSuspenseyCommitOnFiber(finishedWork),
(suspendedCommitReason = waitForCommitToBeReady()),
null !== suspendedCommitReason)
) {
root.cancelPendingCommit = suspendedCommitReason(
commitRoot.bind(
null,
root,
finishedWork,
lanes,
recoverableErrors,
transitions,
didIncludeRenderPhaseUpdate,
spawnedLane,
updatedLanes,
suspendedRetryLanes,
exitStatus,
SUSPENDED_COMMIT,
completedRenderStartTime,
completedRenderEndTime
)
)
markRootSuspended(root, lanes, spawnedLane, !didSkipSuspendedSiblings)
return
}
commitRoot(
root,
finishedWork,
lanes,
recoverableErrors,
transitions,
didIncludeRenderPhaseUpdate,
spawnedLane,
updatedLanes,
suspendedRetryLanes
)
}
function isRenderConsistentWithExternalStores(finishedWork) {
for (var node = finishedWork; ; ) {
var tag = node.tag
if (
(0 === tag || 11 === tag || 15 === tag) &&
node.flags & 16384 &&
((tag = node.updateQueue),
null !== tag && ((tag = tag.stores), null !== tag))
)
for (var i = 0; i < tag.length; i++) {
var check = tag[i],
getSnapshot = check.getSnapshot
check = check.value
try {
if (!objectIs(getSnapshot(), check)) return !1
} catch (error) {
return !1
}
}
tag = node.child
if (node.subtreeFlags & 16384 && null !== tag)
((tag.return = node), (node = tag))
else {
if (node === finishedWork) break
for (; null === node.sibling; ) {
if (null === node.return || node.return === finishedWork) return !0
node = node.return
}
node.sibling.return = node.return
node = node.sibling
}
}
return !0
}
function markRootSuspended(
root,
suspendedLanes,
spawnedLane,
didAttemptEntireTree
) {
suspendedLanes &= ~workInProgressRootPingedLanes
suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes
root.suspendedLanes |= suspendedLanes
root.pingedLanes &= ~suspendedLanes
didAttemptEntireTree && (root.warmLanes |= suspendedLanes)
didAttemptEntireTree = root.expirationTimes
for (var lanes = suspendedLanes; 0 < lanes; ) {
var index = 31 - clz32(lanes),
lane = 1 << index
didAttemptEntireTree[index] = -1
lanes &= ~lane
}
0 !== spawnedLane &&
markSpawnedDeferredLane(root, spawnedLane, suspendedLanes)
}
function flushSyncWork$1() {
return (executionContext & (RenderContext | CommitContext)) === NoContext
? (flushSyncWorkAcrossRoots_impl(0, !1), !1)
: !0
}
function resetWorkInProgressStack() {
if (null !== workInProgress) {
if (workInProgressSuspendedReason === NotSuspended)
var interruptedWork = workInProgress.return
else
((interruptedWork = workInProgress),
resetContextDependencies(),
resetHooksOnUnwind(interruptedWork),
(thenableState$1 = null),
(thenableIndexCounter$1 = 0),
(interruptedWork = workInProgress))
for (; null !== interruptedWork; )
(unwindInterruptedWork(interruptedWork.alternate, interruptedWork),
(interruptedWork = interruptedWork.return))
workInProgress = null
}
}
function prepareFreshStack(root, lanes) {
var timeoutHandle = root.timeoutHandle
timeoutHandle !== noTimeout &&
((root.timeoutHandle = noTimeout), cancelTimeout(timeoutHandle))
timeoutHandle = root.cancelPendingCommit
null !== timeoutHandle &&
((root.cancelPendingCommit = null), timeoutHandle())
resetWorkInProgressStack()
workInProgressRoot = root
workInProgress = timeoutHandle = createWorkInProgress(root.current, null)
workInProgressRootRenderLanes = lanes
workInProgressSuspendedReason = NotSuspended
workInProgressThrownValue = null
workInProgressRootDidSkipSuspendedSiblings = !1
workInProgressRootIsPrerendering = checkIfRootIsPrerendering(root, lanes)
workInProgressRootDidAttachPingListener = !1
workInProgressRootExitStatus = RootInProgress
workInProgressSuspendedRetryLanes =
workInProgressDeferredLane =
workInProgressRootPingedLanes =
workInProgressRootInterleavedUpdatedLanes =
workInProgressRootSkippedLanes =
0
workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors =
null
workInProgressRootDidIncludeRecursiveRenderUpdate = !1
0 !== (lanes & 8) && (lanes |= lanes & 32)
var allEntangledLanes = root.entangledLanes
if (0 !== allEntangledLanes)
for (
root = root.entanglements, allEntangledLanes &= lanes;
0 < allEntangledLanes;
) {
var index = 31 - clz32(allEntangledLanes),
lane = 1 << index
lanes |= root[index]
allEntangledLanes &= ~lane
}
entangledRenderLanes = lanes
finishQueueingConcurrentUpdates()
lanes = getCurrentTime()
1e3 < lanes - lastResetTime &&
((ReactSharedInternals.recentlyCreatedOwnerStacks = 0),
(lastResetTime = lanes))
ReactStrictModeWarnings.discardPendingWarnings()
return timeoutHandle
}
function handleThrow(root, thrownValue) {
currentlyRenderingFiber = null
ReactSharedInternals.H = ContextOnlyDispatcher
ReactSharedInternals.getCurrentStack = null
isRendering = !1
current = null
thrownValue === SuspenseException ||
thrownValue === SuspenseActionException
? ((thrownValue = getSuspendedThenable()),
(workInProgressSuspendedReason = SuspendedOnImmediate))
: thrownValue === SuspenseyCommitException
? ((thrownValue = getSuspendedThenable()),
(workInProgressSuspendedReason = SuspendedOnInstance))
: (workInProgressSuspendedReason =
thrownValue === SelectiveHydrationException
? SuspendedOnHydration
: null !== thrownValue &&
'object' === typeof thrownValue &&
'function' === typeof thrownValue.then
? SuspendedOnDeprecatedThrowPromise
: SuspendedOnError)
workInProgressThrownValue = thrownValue
var erroredWork = workInProgress
if (null === erroredWork)
((workInProgressRootExitStatus = RootFatalErrored),
logUncaughtError(
root,
createCapturedValueAtFiber(thrownValue, root.current)
))
else
switch (
(erroredWork.mode & ProfileMode &&
stopProfilerTimerIfRunningAndRecordDuration(erroredWork),
markComponentRenderStopped(),
workInProgressSuspendedReason)
) {
case SuspendedOnError:
null !== injectedProfilingHooks &&
'function' ===
typeof injectedProfilingHooks.markComponentErrored &&
injectedProfilingHooks.markComponentErrored(
erroredWork,
thrownValue,
workInProgressRootRenderLanes
)
break
case SuspendedOnData:
case SuspendedOnAction:
case SuspendedOnImmediate:
case SuspendedOnDeprecatedThrowPromise:
case SuspendedAndReadyToContinue:
null !== injectedProfilingHooks &&
'function' ===
typeof injectedProfilingHooks.markComponentSuspended &&
injectedProfilingHooks.markComponentSuspended(
erroredWork,
thrownValue,
workInProgressRootRenderLanes
)
}
}
function shouldRemainOnPreviousScreen() {
var handler = suspenseHandlerStackCursor.current
return null === handler
? !0
: (workInProgressRootRenderLanes & 4194048) ===
workInProgressRootRenderLanes
? null === shellBoundary
? !0
: !1
: (workInProgressRootRenderLanes & 62914560) ===
workInProgressRootRenderLanes ||
0 !== (workInProgressRootRenderLanes & 536870912)
? handler === shellBoundary
: !1
}
function pushDispatcher() {
var prevDispatcher = ReactSharedInternals.H
ReactSharedInternals.H = ContextOnlyDispatcher
return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher
}
function pushAsyncDispatcher() {
var prevAsyncDispatcher = ReactSharedInternals.A
ReactSharedInternals.A = DefaultAsyncDispatcher
return prevAsyncDispatcher
}
function renderDidSuspendDelayIfPossible() {
workInProgressRootExitStatus = RootSuspendedWithDelay
workInProgressRootDidSkipSuspendedSiblings ||
((workInProgressRootRenderLanes & 4194048) !==
workInProgressRootRenderLanes &&
null !== suspenseHandlerStackCursor.current) ||
(workInProgressRootIsPrerendering = !0)
;(0 === (workInProgressRootSkippedLanes & 134217727) &&
0 === (workInProgressRootInterleavedUpdatedLanes & 134217727)) ||
null === workInProgressRoot ||
markRootSuspended(
workInProgressRoot,
workInProgressRootRenderLanes,
workInProgressDeferredLane,
!1
)
}
function renderRootSync(root, lanes, shouldYieldForPrerendering) {
var prevExecutionContext = executionContext
executionContext |= RenderContext
var prevDispatcher = pushDispatcher(),
prevAsyncDispatcher = pushAsyncDispatcher()
if (
workInProgressRoot !== root ||
workInProgressRootRenderLanes !== lanes
) {
if (isDevToolsPresent) {
var memoizedUpdaters = root.memoizedUpdaters
0 < memoizedUpdaters.size &&
(restorePendingUpdaters(root, workInProgressRootRenderLanes),
memoizedUpdaters.clear())
movePendingFibersToMemoized(root, lanes)
}
workInProgressTransitions = null
prepareFreshStack(root, lanes)
}
markRenderStarted(lanes)
lanes = !1
memoizedUpdaters = workInProgressRootExitStatus
a: do
try {
if (
workInProgressSuspendedReason !== NotSuspended &&
null !== workInProgress
) {
var unitOfWork = workInProgress,
thrownValue = workInProgressThrownValue
switch (workInProgressSuspendedReason) {
case SuspendedOnHydration:
resetWorkInProgressStack()
memoizedUpdaters = RootSuspendedAtTheShell
break a
case SuspendedOnImmediate:
case SuspendedOnData:
case SuspendedOnAction:
case SuspendedOnDeprecatedThrowPromise:
null === suspenseHandlerStackCursor.current && (lanes = !0)
var reason = workInProgressSuspendedReason
workInProgressSuspendedReason = NotSuspended
workInProgressThrownValue = null
throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason)
if (
shouldYieldForPrerendering &&
workInProgressRootIsPrerendering
) {
memoizedUpdaters = RootInProgress
break a
}
break
default:
;((reason = workInProgressSuspendedReason),
(workInProgressSuspendedReason = NotSuspended),
(workInProgressThrownValue = null),
throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason))
}
}
workLoopSync()
memoizedUpdaters = workInProgressRootExitStatus
break
} catch (thrownValue$8) {
handleThrow(root, thrownValue$8)
}
while (1)
lanes && root.shellSuspendCounter++
resetContextDependencies()
executionContext = prevExecutionContext
ReactSharedInternals.H = prevDispatcher
ReactSharedInternals.A = prevAsyncDispatcher
markRenderStopped()
null === workInProgress &&
((workInProgressRoot = null),
(workInProgressRootRenderLanes = 0),
finishQueueingConcurrentUpdates())
return memoizedUpdaters
}
function workLoopSync() {
for (; null !== workInProgress; ) performUnitOfWork(workInProgress)
}
function renderRootConcurrent(root, lanes) {
var prevExecutionContext = executionContext
executionContext |= RenderContext
var prevDispatcher = pushDispatcher(),
prevAsyncDispatcher = pushAsyncDispatcher()
if (
workInProgressRoot !== root ||
workInProgressRootRenderLanes !== lanes
) {
if (isDevToolsPresent) {
var memoizedUpdaters = root.memoizedUpdaters
0 < memoizedUpdaters.size &&
(restorePendingUpdaters(root, workInProgressRootRenderLanes),
memoizedUpdaters.clear())
movePendingFibersToMemoized(root, lanes)
}
workInProgressTransitions = null
workInProgressRootRenderTargetTime = now$1() + RENDER_TIMEOUT_MS
prepareFreshStack(root, lanes)
} else
workInProgressRootIsPrerendering = checkIfRootIsPrerendering(
root,
lanes
)
markRenderStarted(lanes)
a: do
try {
if (
workInProgressSuspendedReason !== NotSuspended &&
null !== workInProgress
)
b: switch (
((lanes = workInProgress),
(memoizedUpdaters = workInProgressThrownValue),
workInProgressSuspendedReason)
) {
case SuspendedOnError:
workInProgressSuspendedReason = NotSuspended
workInProgressThrownValue = null
throwAndUnwindWorkLoop(
root,
lanes,
memoizedUpdaters,
SuspendedOnError
)
break
case SuspendedOnData:
case SuspendedOnAction:
if (isThenableResolved(memoizedUpdaters)) {
workInProgressSuspendedReason = NotSuspended
workInProgressThrownValue = null
replaySuspendedUnitOfWork(lanes)
break
}
lanes = function () {
;(workInProgressSuspendedReason !== SuspendedOnData &&
workInProgressSuspendedReason !== SuspendedOnAction) ||
workInProgressRoot !== root ||
(workInProgressSuspendedReason =
SuspendedAndReadyToContinue)
ensureRootIsScheduled(root)
}
memoizedUpdaters.then(lanes, lanes)
break a
case SuspendedOnImmediate:
workInProgressSuspendedReason = SuspendedAndReadyToContinue
break a
case SuspendedOnInstance:
workInProgressSuspendedReason =
SuspendedOnInstanceAndReadyToContinue
break a
case SuspendedAndReadyToContinue:
isThenableResolved(memoizedUpdaters)
? ((workInProgressSuspendedReason = NotSuspended),
(workInProgressThrownValue = null),
replaySuspendedUnitOfWork(lanes))
: ((workInProgressSuspendedReason = NotSuspended),
(workInProgressThrownValue = null),
throwAndUnwindWorkLoop(
root,
lanes,
memoizedUpdaters,
SuspendedAndReadyToContinue
))
break
case SuspendedOnInstanceAndReadyToContinue:
var resource = null
switch (workInProgress.tag) {
case 26:
resource = workInProgress.memoizedState
case 5:
case 27:
var hostFiber = workInProgress
if (
resource
? preloadResource(resource)
: hostFiber.stateNode.complete
) {
workInProgressSuspendedReason = NotSuspended
workInProgressThrownValue = null
var sibling = hostFiber.sibling
if (null !== sibling) workInProgress = sibling
else {
var returnFiber = hostFiber.return
null !== returnFiber
? ((workInProgress = returnFiber),
completeUnitOfWork(returnFiber))
: (workInProgress = null)
}
break b
}
break
default:
console.error(
'Unexpected type of fiber triggered a suspensey commit. This is a bug in React.'
)
}
workInProgressSuspendedReason = NotSuspended
workInProgressThrownValue = null
throwAndUnwindWorkLoop(
root,
lanes,
memoizedUpdaters,
SuspendedOnInstanceAndReadyToContinue
)
break
case SuspendedOnDeprecatedThrowPromise:
workInProgressSuspendedReason = NotSuspended
workInProgressThrownValue = null
throwAndUnwindWorkLoop(
root,
lanes,
memoizedUpdaters,
SuspendedOnDeprecatedThrowPromise
)
break
case SuspendedOnHydration:
resetWorkInProgressStack()
workInProgressRootExitStatus = RootSuspendedAtTheShell
break a
default:
throw Error(
'Unexpected SuspendedReason. This is a bug in React.'
)
}
null !== ReactSharedInternals.actQueue
? workLoopSync()
: workLoopConcurrentByScheduler()
break
} catch (thrownValue$9) {
handleThrow(root, thrownValue$9)
}
while (1)
resetContextDependencies()
ReactSharedInternals.H = prevDispatcher
ReactSharedInternals.A = prevAsyncDispatcher
executionContext = prevExecutionContext
if (null !== workInProgress)
return (
null !== injectedProfilingHooks &&
'function' === typeof injectedProfilingHooks.markRenderYielded &&
injectedProfilingHooks.markRenderYielded(),
RootInProgress
)
markRenderStopped()
workInProgressRoot = null
workInProgressRootRenderLanes = 0
finishQueueingConcurrentUpdates()
return workInProgressRootExitStatus
}
function workLoopConcurrentByScheduler() {
for (; null !== workInProgress && !shouldYield(); )
performUnitOfWork(workInProgress)
}
function performUnitOfWork(unitOfWork) {
var current = unitOfWork.alternate
;(unitOfWork.mode & ProfileMode) !== NoMode
? (startProfilerTimer(unitOfWork),
(current = runWithFiberInDEV(
unitOfWork,
beginWork,
current,
unitOfWork,
entangledRenderLanes
)),
stopProfilerTimerIfRunningAndRecordDuration(unitOfWork))
: (current = runWithFiberInDEV(
unitOfWork,
beginWork,
current,
unitOfWork,
entangledRenderLanes
))
unitOfWork.memoizedProps = unitOfWork.pendingProps
null === current
? completeUnitOfWork(unitOfWork)
: (workInProgress = current)
}
function replaySuspendedUnitOfWork(unitOfWork) {
var next = runWithFiberInDEV(unitOfWork, replayBeginWork, unitOfWork)
unitOfWork.memoizedProps = unitOfWork.pendingProps
null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next)
}
function replayBeginWork(unitOfWork) {
var current = unitOfWork.alternate,
isProfilingMode = (unitOfWork.mode & ProfileMode) !== NoMode
isProfilingMode && startProfilerTimer(unitOfWork)
switch (unitOfWork.tag) {
case 15:
case 0:
current = replayFunctionComponent(
current,
unitOfWork,
unitOfWork.pendingProps,
unitOfWork.type,
void 0,
workInProgressRootRenderLanes
)
break
case 11:
current = replayFunctionComponent(
current,
unitOfWork,
unitOfWork.pendingProps,
unitOfWork.type.render,
unitOfWork.ref,
workInProgressRootRenderLanes
)
break
case 5:
resetHooksOnUnwind(unitOfWork)
default:
;(unwindInterruptedWork(current, unitOfWork),
(unitOfWork = workInProgress =
resetWorkInProgress(unitOfWork, entangledRenderLanes)),
(current = beginWork(current, unitOfWork, entangledRenderLanes)))
}
isProfilingMode && stopProfilerTimerIfRunningAndRecordDuration(unitOfWork)
return current
}
function throwAndUnwindWorkLoop(
root,
unitOfWork,
thrownValue,
suspendedReason
) {
resetContextDependencies()
resetHooksOnUnwind(unitOfWork)
thenableState$1 = null
thenableIndexCounter$1 = 0
var returnFiber = unitOfWork.return
try {
if (
throwException(
root,
returnFiber,
unitOfWork,
thrownValue,
workInProgressRootRenderLanes
)
) {
workInProgressRootExitStatus = RootFatalErrored
logUncaughtError(
root,
createCapturedValueAtFiber(thrownValue, root.current)
)
workInProgress = null
return
}
} catch (error) {
if (null !== returnFiber) throw ((workInProgress = returnFiber), error)
workInProgressRootExitStatus = RootFatalErrored
logUncaughtError(
root,
createCapturedValueAtFiber(thrownValue, root.current)
)
workInProgress = null
return
}
if (unitOfWork.flags & 32768) {
if (isHydrating || suspendedReason === SuspendedOnError) root = !0
else if (
workInProgressRootIsPrerendering ||
0 !== (workInProgressRootRenderLanes & 536870912)
)
root = !1
else if (
((workInProgressRootDidSkipSuspendedSiblings = root = !0),
suspendedReason === SuspendedOnData ||
suspendedReason === SuspendedOnAction ||
suspendedReason === SuspendedOnImmediate ||
suspendedReason === SuspendedOnDeprecatedThrowPromise)
)
((suspendedReason = suspenseHandlerStackCursor.current),
null !== suspendedReason &&
13 === suspendedReason.tag &&
(suspendedReason.flags |= 16384))
unwindUnitOfWork(unitOfWork, root)
} else completeUnitOfWork(unitOfWork)
}
function completeUnitOfWork(unitOfWork) {
var completedWork = unitOfWork
do {
if (0 !== (completedWork.flags & 32768)) {
unwindUnitOfWork(
completedWork,
workInProgressRootDidSkipSuspendedSiblings
)
return
}
var current = completedWork.alternate
unitOfWork = completedWork.return
startProfilerTimer(completedWork)
current = runWithFiberInDEV(
completedWork,
completeWork,
current,
completedWork,
entangledRenderLanes
)
;(completedWork.mode & ProfileMode) !== NoMode &&
stopProfilerTimerIfRunningAndRecordIncompleteDuration(completedWork)
if (null !== current) {
workInProgress = current
return
}
completedWork = completedWork.sibling
if (null !== completedWork) {
workInProgress = completedWork
return
}
workInProgress = completedWork = unitOfWork
} while (null !== completedWork)
workInProgressRootExitStatus === RootInProgress &&
(workInProgressRootExitStatus = RootCompleted)
}
function unwindUnitOfWork(unitOfWork, skipSiblings) {
do {
var next = unwindWork(unitOfWork.alternate, unitOfWork)
if (null !== next) {
next.flags &= 32767
workInProgress = next
return
}
if ((unitOfWork.mode & ProfileMode) !== NoMode) {
stopProfilerTimerIfRunningAndRecordIncompleteDuration(unitOfWork)
next = unitOfWork.actualDuration
for (var child = unitOfWork.child; null !== child; )
((next += child.actualDuration), (child = child.sibling))
unitOfWork.actualDuration = next
}
next = unitOfWork.return
null !== next &&
((next.flags |= 32768),
(next.subtreeFlags = 0),
(next.deletions = null))
if (
!skipSiblings &&
((unitOfWork = unitOfWork.sibling), null !== unitOfWork)
) {
workInProgress = unitOfWork
return
}
workInProgress = unitOfWork = next
} while (null !== unitOfWork)
workInProgressRootExitStatus = RootSuspendedAtTheShell
workInProgress = null
}
function commitRoot(
root,
finishedWork,
lanes,
recoverableErrors,
transitions,
didIncludeRenderPhaseUpdate,
spawnedLane,
updatedLanes,
suspendedRetryLanes
) {
root.cancelPendingCommit = null
do flushPendingEffects()
while (pendingEffectsStatus !== NO_PENDING_EFFECTS)
ReactStrictModeWarnings.flushLegacyContextWarning()
ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings()
if ((executionContext & (RenderContext | CommitContext)) !== NoContext)
throw Error('Should not already be working.')
null !== injectedProfilingHooks &&
'function' === typeof injectedProfilingHooks.markCommitStarted &&
injectedProfilingHooks.markCommitStarted(lanes)
if (null === finishedWork) markCommitStopped()
else {
0 === lanes &&
console.error(
'finishedLanes should not be empty during a commit. This is a bug in React.'
)
if (finishedWork === root.current)
throw Error(
'Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue.'
)
didIncludeRenderPhaseUpdate =
finishedWork.lanes | finishedWork.childLanes
didIncludeRenderPhaseUpdate |= concurrentlyUpdatedLanes
markRootFinished(
root,
lanes,
didIncludeRenderPhaseUpdate,
spawnedLane,
updatedLanes,
suspendedRetryLanes
)
root === workInProgressRoot &&
((workInProgress = workInProgressRoot = null),
(workInProgressRootRenderLanes = 0))
pendingFinishedWork = finishedWork
pendingEffectsRoot = root
pendingEffectsLanes = lanes
pendingEffectsRemainingLanes = didIncludeRenderPhaseUpdate
pendingPassiveTransitions = transitions
pendingRecoverableErrors = recoverableErrors
0 !== (finishedWork.subtreeFlags & 10256) ||
0 !== (finishedWork.flags & 10256)
? ((root.callbackNode = null),
(root.callbackPriority = 0),
scheduleCallback$1(NormalPriority$1, function () {
flushPassiveEffects(!0)
return null
}))
: ((root.callbackNode = null), (root.callbackPriority = 0))
commitStartTime = now()
recoverableErrors = 0 !== (finishedWork.flags & 13878)
if (0 !== (finishedWork.subtreeFlags & 13878) || recoverableErrors) {
recoverableErrors = ReactSharedInternals.T
ReactSharedInternals.T = null
transitions = ReactDOMSharedInternals.p
ReactDOMSharedInternals.p = DiscreteEventPriority
spawnedLane = executionContext
executionContext |= CommitContext
try {
commitBeforeMutationEffects(root, finishedWork, lanes)
} finally {
;((executionContext = spawnedLane),
(ReactDOMSharedInternals.p = transitions),
(ReactSharedInternals.T = recoverableErrors))
}
}
pendingEffectsStatus = PENDING_MUTATION_PHASE
flushMutationEffects()
flushLayoutEffects()
flushSpawnedWork()
}
}
function flushMutationEffects() {
if (pendingEffectsStatus === PENDING_MUTATION_PHASE) {
pendingEffectsStatus = NO_PENDING_EFFECTS
var root = pendingEffectsRoot,
finishedWork = pendingFinishedWork,
lanes = pendingEffectsLanes,
rootMutationHasEffect = 0 !== (finishedWork.flags & 13878)
if (
0 !== (finishedWork.subtreeFlags & 13878) ||
rootMutationHasEffect
) {
rootMutationHasEffect = ReactSharedInternals.T
ReactSharedInternals.T = null
var previousPriority = ReactDOMSharedInternals.p
ReactDOMSharedInternals.p = DiscreteEventPriority
var prevExecutionContext = executionContext
executionContext |= CommitContext
try {
inProgressLanes = lanes
inProgressRoot = root
componentEffectStartTime = -1.1
commitMutationEffectsOnFiber(finishedWork, root)
inProgressRoot = inProgressLanes = null
lanes = selectionInformation
var curFocusedElem = getActiveElementDeep(root.containerInfo),
priorFocusedElem = lanes.focusedElem,
priorSelectionRange = lanes.selectionRange
if (
curFocusedElem !== priorFocusedElem &&
priorFocusedElem &&
priorFocusedElem.ownerDocument &&
containsNode(
priorFocusedElem.ownerDocument.documentElement,
priorFocusedElem
)
) {
if (
null !== priorSelectionRange &&
hasSelectionCapabilities(priorFocusedElem)
) {
var start = priorSelectionRange.start,
end = priorSelectionRange.end
void 0 === end && (end = start)
if ('selectionStart' in priorFocusedElem)
((priorFocusedElem.selectionStart = start),
(priorFocusedElem.selectionEnd = Math.min(
end,
priorFocusedElem.value.length
)))
else {
var doc = priorFocusedElem.ownerDocument || document,
win = (doc && doc.defaultView) || window
if (win.getSelection) {
var selection = win.getSelection(),
length = priorFocusedElem.textContent.length,
start$jscomp$0 = Math.min(
priorSelectionRange.start,
length
),
end$jscomp$0 =
void 0 === priorSelectionRange.end
? start$jscomp$0
: Math.min(priorSelectionRange.end, length)
!selection.extend &&
start$jscomp$0 > end$jscomp$0 &&
((curFocusedElem = end$jscomp$0),
(end$jscomp$0 = start$jscomp$0),
(start$jscomp$0 = curFocusedElem))
var startMarker = getNodeForCharacterOffset(
priorFocusedElem,
start$jscomp$0
),
endMarker = getNodeForCharacterOffset(
priorFocusedElem,
end$jscomp$0
)
if (
startMarker &&
endMarker &&
(1 !== selection.rangeCount ||
selection.anchorNode !== startMarker.node ||
selection.anchorOffset !== startMarker.offset ||
selection.focusNode !== endMarker.node ||
selection.focusOffset !== endMarker.offset)
) {
var range = doc.createRange()
range.setStart(startMarker.node, startMarker.offset)
selection.removeAllRanges()
start$jscomp$0 > end$jscomp$0
? (selection.addRange(range),
selection.extend(endMarker.node, endMarker.offset))
: (range.setEnd(endMarker.node, endMarker.offset),
selection.addRange(range))
}
}
}
}
doc = []
for (
selection = priorFocusedElem;
(selection = selection.parentNode);
)
1 === selection.nodeType &&
doc.push({
element: selection,
left: selection.scrollLeft,
top: selection.scrollTop,
})
'function' === typeof priorFocusedElem.focus &&
priorFocusedElem.focus()
for (
priorFocusedElem = 0;
priorFocusedElem < doc.length;
priorFocusedElem++
) {
var info = doc[priorFocusedElem]
info.element.scrollLeft = info.left
info.element.scrollTop = info.top
}
}
_enabled = !!eventsEnabled
selectionInformation = eventsEnabled = null
} finally {
;((executionContext = prevExecutionContext),
(ReactDOMSharedInternals.p = previousPriority),
(ReactSharedInternals.T = rootMutationHasEffect))
}
}
root.current = finishedWork
pendingEffectsStatus = PENDING_LAYOUT_PHASE
}
}
function flushLayoutEffects() {
if (pendingEffectsStatus === PENDING_LAYOUT_PHASE) {
pendingEffectsStatus = NO_PENDING_EFFECTS
var root = pendingEffectsRoot,
finishedWork = pendingFinishedWork,
lanes = pendingEffectsLanes,
rootHasLayoutEffect = 0 !== (finishedWork.flags & 8772)
if (0 !== (finishedWork.subtreeFlags & 8772) || rootHasLayoutEffect) {
rootHasLayoutEffect = ReactSharedInternals.T
ReactSharedInternals.T = null
var _previousPriority = ReactDOMSharedInternals.p
ReactDOMSharedInternals.p = DiscreteEventPriority
var _prevExecutionContext = executionContext
executionContext |= CommitContext
try {
;(null !== injectedProfilingHooks &&
'function' ===
typeof injectedProfilingHooks.markLayoutEffectsStarted &&
injectedProfilingHooks.markLayoutEffectsStarted(lanes),
(inProgressLanes = lanes),
(inProgressRoot = root),
(componentEffectStartTime = -1.1),
commitLayoutEffectOnFiber(
root,
finishedWork.alternate,
finishedWork
),
(inProgressRoot = inProgressLanes = null),
null !== injectedProfilingHooks &&
'function' ===
typeof injectedProfilingHooks.markLayoutEffectsStopped &&
injectedProfilingHooks.markLayoutEffectsStopped())
} finally {
;((executionContext = _prevExecutionContext),
(ReactDOMSharedInternals.p = _previousPriority),
(ReactSharedInternals.T = rootHasLayoutEffect))
}
}
pendingEffectsStatus = PENDING_AFTER_MUTATION_PHASE
}
}
function flushSpawnedWork() {
if (
pendingEffectsStatus === PENDING_SPAWNED_WORK ||
pendingEffectsStatus === PENDING_AFTER_MUTATION_PHASE
) {
pendingEffectsStatus = NO_PENDING_EFFECTS
requestPaint()
var root = pendingEffectsRoot,
finishedWork = pendingFinishedWork,
lanes = pendingEffectsLanes,
recoverableErrors = pendingRecoverableErrors,
rootDidHavePassiveEffects =
0 !== (finishedWork.subtreeFlags & 10256) ||
0 !== (finishedWork.flags & 10256)
rootDidHavePassiveEffects
? (pendingEffectsStatus = PENDING_PASSIVE_PHASE)
: ((pendingEffectsStatus = NO_PENDING_EFFECTS),
(pendingFinishedWork = pendingEffectsRoot = null),
releaseRootPooledCache(root, root.pendingLanes),
(nestedPassiveUpdateCount = 0),
(rootWithPassiveNestedUpdates = null))
var remainingLanes = root.pendingLanes
0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null)
rootDidHavePassiveEffects || commitDoubleInvokeEffectsInDEV(root)
rootDidHavePassiveEffects = lanesToEventPriority(lanes)
finishedWork = finishedWork.stateNode
if (
injectedHook &&
'function' === typeof injectedHook.onCommitFiberRoot
)
try {
var didError = 128 === (finishedWork.current.flags & 128)
switch (rootDidHavePassiveEffects) {
case DiscreteEventPriority:
var schedulerPriority = ImmediatePriority
break
case ContinuousEventPriority:
schedulerPriority = UserBlockingPriority
break
case DefaultEventPriority:
schedulerPriority = NormalPriority$1
break
case IdleEventPriority:
schedulerPriority = IdlePriority
break
default:
schedulerPriority = NormalPriority$1
}
injectedHook.onCommitFiberRoot(
rendererID,
finishedWork,
schedulerPriority,
didError
)
} catch (err) {
hasLoggedError ||
((hasLoggedError = !0),
console.error(
'React instrumentation encountered an error: %o',
err
))
}
isDevToolsPresent && root.memoizedUpdaters.clear()
onCommitRoot()
if (null !== recoverableErrors) {
didError = ReactSharedInternals.T
schedulerPriority = ReactDOMSharedInternals.p
ReactDOMSharedInternals.p = DiscreteEventPriority
ReactSharedInternals.T = null
try {
var onRecoverableError = root.onRecoverableError
for (
finishedWork = 0;
finishedWork < recoverableErrors.length;
finishedWork++
) {
var recoverableError = recoverableErrors[finishedWork],
errorInfo = makeErrorInfo(recoverableError.stack)
runWithFiberInDEV(
recoverableError.source,
onRecoverableError,
recoverableError.value,
errorInfo
)
}
} finally {
;((ReactSharedInternals.T = didError),
(ReactDOMSharedInternals.p = schedulerPriority))
}
}
0 !== (pendingEffectsLanes & 3) && flushPendingEffects()
ensureRootIsScheduled(root)
remainingLanes = root.pendingLanes
0 !== (lanes & 4194090) && 0 !== (remainingLanes & 42)
? ((nestedUpdateScheduled = !0),
root === rootWithNestedUpdates
? nestedUpdateCount++
: ((nestedUpdateCount = 0), (rootWithNestedUpdates = root)))
: (nestedUpdateCount = 0)
flushSyncWorkAcrossRoots_impl(0, !1)
markCommitStopped()
}
}
function makeErrorInfo(componentStack) {
componentStack = { componentStack: componentStack }
Object.defineProperty(componentStack, 'digest', {
get: function () {
console.error(
'You are accessing "digest" from the errorInfo object passed to onRecoverableError. This property is no longer provided as part of errorInfo but can be accessed as a property of the Error instance itself.'
)
},
})
return componentStack
}
function releaseRootPooledCache(root, remainingLanes) {
0 === (root.pooledCacheLanes &= remainingLanes) &&
((remainingLanes = root.pooledCache),
null != remainingLanes &&
((root.pooledCache = null), releaseCache(remainingLanes)))
}
function flushPendingEffects(wasDelayedCommit) {
flushMutationEffects()
flushLayoutEffects()
flushSpawnedWork()
return flushPassiveEffects(wasDelayedCommit)
}
function flushPassiveEffects() {
if (pendingEffectsStatus !== PENDING_PASSIVE_PHASE) return !1
var root = pendingEffectsRoot,
remainingLanes = pendingEffectsRemainingLanes
pendingEffectsRemainingLanes = 0
var renderPriority = lanesToEventPriority(pendingEffectsLanes),
priority =
0 === DefaultEventPriority || DefaultEventPriority > renderPriority
? DefaultEventPriority
: renderPriority
renderPriority = ReactSharedInternals.T
var previousPriority = ReactDOMSharedInternals.p
try {
ReactDOMSharedInternals.p = priority
ReactSharedInternals.T = null
priority = pendingPassiveTransitions
pendingPassiveTransitions = null
var root$jscomp$0 = pendingEffectsRoot,
lanes = pendingEffectsLanes
pendingEffectsStatus = NO_PENDING_EFFECTS
pendingFinishedWork = pendingEffectsRoot = null
pendingEffectsLanes = 0
if ((executionContext & (RenderContext | CommitContext)) !== NoContext)
throw Error('Cannot flush passive effects while already rendering.')
isFlushingPassiveEffects = !0
didScheduleUpdateDuringPassiveEffects = !1
null !== injectedProfilingHooks &&
'function' ===
typeof injectedProfilingHooks.markPassiveEffectsStarted &&
injectedProfilingHooks.markPassiveEffectsStarted(lanes)
var prevExecutionContext = executionContext
executionContext |= CommitContext
var finishedWork = root$jscomp$0.current
componentEffectStartTime = -1.1
commitPassiveUnmountOnFiber(finishedWork)
var finishedWork$jscomp$0 = root$jscomp$0.current
componentEffectStartTime = -1.1
commitPassiveMountOnFiber(
root$jscomp$0,
finishedWork$jscomp$0,
lanes,
priority
)
null !== injectedProfilingHooks &&
'function' ===
typeof injectedProfilingHooks.markPassiveEffectsStopped &&
injectedProfilingHooks.markPassiveEffectsStopped()
commitDoubleInvokeEffectsInDEV(root$jscomp$0)
executionContext = prevExecutionContext
flushSyncWorkAcrossRoots_impl(0, !1)
didScheduleUpdateDuringPassiveEffects
? root$jscomp$0 === rootWithPassiveNestedUpdates
? nestedPassiveUpdateCount++
: ((nestedPassiveUpdateCount = 0),
(rootWithPassiveNestedUpdates = root$jscomp$0))
: (nestedPassiveUpdateCount = 0)
didScheduleUpdateDuringPassiveEffects = isFlushingPassiveEffects = !1
if (
injectedHook &&
'function' === typeof injectedHook.onPostCommitFiberRoot
)
try {
injectedHook.onPostCommitFiberRoot(rendererID, root$jscomp$0)
} catch (err) {
hasLoggedError ||
((hasLoggedError = !0),
console.error(
'React instrumentation encountered an error: %o',
err
))
}
var stateNode = root$jscomp$0.current.stateNode
stateNode.effectDuration = 0
stateNode.passiveEffectDuration = 0
return !0
} finally {
;((ReactDOMSharedInternals.p = previousPriority),
(ReactSharedInternals.T = renderPriority),
releaseRootPooledCache(root, remainingLanes))
}
}
function captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {
sourceFiber = createCapturedValueAtFiber(error, sourceFiber)
sourceFiber = createRootErrorUpdate(rootFiber.stateNode, sourceFiber, 2)
rootFiber = enqueueUpdate(rootFiber, sourceFiber, 2)
null !== rootFiber &&
(markRootUpdated$1(rootFiber, 2), ensureRootIsScheduled(rootFiber))
}
function captureCommitPhaseError(
sourceFiber,
nearestMountedAncestor,
error
) {
isRunningInsertionEffect = !1
if (3 === sourceFiber.tag)
captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error)
else {
for (; null !== nearestMountedAncestor; ) {
if (3 === nearestMountedAncestor.tag) {
captureCommitPhaseErrorOnRoot(
nearestMountedAncestor,
sourceFiber,
error
)
return
}
if (1 === nearestMountedAncestor.tag) {
var instance = nearestMountedAncestor.stateNode
if (
'function' ===
typeof nearestMountedAncestor.type.getDerivedStateFromError ||
('function' === typeof instance.componentDidCatch &&
(null === legacyErrorBoundariesThatAlreadyFailed ||
!legacyErrorBoundariesThatAlreadyFailed.has(instance)))
) {
sourceFiber = createCapturedValueAtFiber(error, sourceFiber)
error = createClassErrorUpdate(2)
instance = enqueueUpdate(nearestMountedAncestor, error, 2)
null !== instance &&
(initializeClassErrorUpdate(
error,
instance,
nearestMountedAncestor,
sourceFiber
),
markRootUpdated$1(instance, 2),
ensureRootIsScheduled(instance))
return
}
}
nearestMountedAncestor = nearestMountedAncestor.return
}
console.error(
'Internal React error: Attempted to capture a commit phase error inside a detached tree. This indicates a bug in React. Potential causes include deleting the same fiber more than once, committing an already-finished tree, or an inconsistent return pointer.\n\nError message:\n\n%s',
error
)
}
}
function attachPingListener(root, wakeable, lanes) {
var pingCache = root.pingCache
if (null === pingCache) {
pingCache = root.pingCache = new PossiblyWeakMap()
var threadIDs = new Set()
pingCache.set(wakeable, threadIDs)
} else
((threadIDs = pingCache.get(wakeable)),
void 0 === threadIDs &&
((threadIDs = new Set()), pingCache.set(wakeable, threadIDs)))
threadIDs.has(lanes) ||
((workInProgressRootDidAttachPingListener = !0),
threadIDs.add(lanes),
(pingCache = pingSuspendedRoot.bind(null, root, wakeable, lanes)),
isDevToolsPresent && restorePendingUpdaters(root, lanes),
wakeable.then(pingCache, pingCache))
}
function pingSuspendedRoot(root, wakeable, pingedLanes) {
var pingCache = root.pingCache
null !== pingCache && pingCache.delete(wakeable)
root.pingedLanes |= root.suspendedLanes & pingedLanes
root.warmLanes &= ~pingedLanes
isConcurrentActEnvironment() &&
null === ReactSharedInternals.actQueue &&
console.error(
"A suspended resource finished loading inside a test, but the event was not wrapped in act(...).\n\nWhen testing, code that resolves suspended data should be wrapped into act(...):\n\nact(() => {\n /* finish loading suspended data */\n});\n/* assert on the output */\n\nThis ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act"
)
workInProgressRoot === root &&
(workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&
(workInProgressRootExitStatus === RootSuspendedWithDelay ||
(workInProgressRootExitStatus === RootSuspended &&
(workInProgressRootRenderLanes & 62914560) ===
workInProgressRootRenderLanes &&
now$1() - globalMostRecentFallbackTime < FALLBACK_THROTTLE_MS)
? (executionContext & RenderContext) === NoContext &&
prepareFreshStack(root, 0)
: (workInProgressRootPingedLanes |= pingedLanes),
workInProgressSuspendedRetryLanes === workInProgressRootRenderLanes &&
(workInProgressSuspendedRetryLanes = 0))
ensureRootIsScheduled(root)
}
function retryTimedOutBoundary(boundaryFiber, retryLane) {
0 === retryLane && (retryLane = claimNextRetryLane())
boundaryFiber = enqueueConcurrentRenderForLane(boundaryFiber, retryLane)
null !== boundaryFiber &&
(markRootUpdated$1(boundaryFiber, retryLane),
ensureRootIsScheduled(boundaryFiber))
}
function retryDehydratedSuspenseBoundary(boundaryFiber) {
var suspenseState = boundaryFiber.memoizedState,
retryLane = 0
null !== suspenseState && (retryLane = suspenseState.retryLane)
retryTimedOutBoundary(boundaryFiber, retryLane)
}
function resolveRetryWakeable(boundaryFiber, wakeable) {
var retryLane = 0
switch (boundaryFiber.tag) {
case 31:
case 13:
var retryCache = boundaryFiber.stateNode
var suspenseState = boundaryFiber.memoizedState
null !== suspenseState && (retryLane = suspenseState.retryLane)
break
case 19:
retryCache = boundaryFiber.stateNode
break
case 22:
retryCache = boundaryFiber.stateNode._retryCache
break
default:
throw Error(
'Pinged unknown suspense boundary type. This is probably a bug in React.'
)
}
null !== retryCache && retryCache.delete(wakeable)
retryTimedOutBoundary(boundaryFiber, retryLane)
}
function recursivelyTraverseAndDoubleInvokeEffectsInDEV(
root$jscomp$0,
parentFiber,
isInStrictMode
) {
if (0 !== (parentFiber.subtreeFlags & 67117056))
for (parentFiber = parentFiber.child; null !== parentFiber; ) {
var root = root$jscomp$0,
fiber = parentFiber,
isStrictModeFiber = fiber.type === REACT_STRICT_MODE_TYPE
isStrictModeFiber = isInStrictMode || isStrictModeFiber
22 !== fiber.tag
? fiber.flags & 67108864
? isStrictModeFiber &&
runWithFiberInDEV(
fiber,
doubleInvokeEffectsOnFiber,
root,
fiber
)
: recursivelyTraverseAndDoubleInvokeEffectsInDEV(
root,
fiber,
isStrictModeFiber
)
: null === fiber.memoizedState &&
(isStrictModeFiber && fiber.flags & 8192
? runWithFiberInDEV(
fiber,
doubleInvokeEffectsOnFiber,
root,
fiber
)
: fiber.subtreeFlags & 67108864 &&
runWithFiberInDEV(
fiber,
recursivelyTraverseAndDoubleInvokeEffectsInDEV,
root,
fiber,
isStrictModeFiber
))
parentFiber = parentFiber.sibling
}
}
function doubleInvokeEffectsOnFiber(root, fiber) {
setIsStrictModeForDevtools(!0)
try {
;(disappearLayoutEffects(fiber),
disconnectPassiveEffect(fiber),
reappearLayoutEffects(root, fiber.alternate, fiber, !1),
reconnectPassiveEffects(root, fiber, 0, null, !1, 0))
} finally {
setIsStrictModeForDevtools(!1)
}
}
function commitDoubleInvokeEffectsInDEV(root) {
var doubleInvokeEffects = !0
root.current.mode & (StrictLegacyMode | StrictEffectsMode) ||
(doubleInvokeEffects = !1)
recursivelyTraverseAndDoubleInvokeEffectsInDEV(
root,
root.current,
doubleInvokeEffects
)
}
function warnAboutUpdateOnNotYetMountedFiberInDEV(fiber) {
if ((executionContext & RenderContext) === NoContext) {
var tag = fiber.tag
if (
3 === tag ||
1 === tag ||
0 === tag ||
11 === tag ||
14 === tag ||
15 === tag
) {
tag = getComponentNameFromFiber(fiber) || 'ReactComponent'
if (null !== didWarnStateUpdateForNotYetMountedComponent) {
if (didWarnStateUpdateForNotYetMountedComponent.has(tag)) return
didWarnStateUpdateForNotYetMountedComponent.add(tag)
} else didWarnStateUpdateForNotYetMountedComponent = new Set([tag])
runWithFiberInDEV(fiber, function () {
console.error(
"Can't perform a React state update on a component that hasn't mounted yet. This indicates that you have a side-effect in your render function that asynchronously tries to update the component. Move this work to useEffect instead."
)
})
}
}
}
function restorePendingUpdaters(root, lanes) {
isDevToolsPresent &&
root.memoizedUpdaters.forEach(function (schedulingFiber) {
addFiberToLanesMap(root, schedulingFiber, lanes)
})
}
function scheduleCallback$1(priorityLevel, callback) {
var actQueue = ReactSharedInternals.actQueue
return null !== actQueue
? (actQueue.push(callback), fakeActCallbackNode$1)
: scheduleCallback$3(priorityLevel, callback)
}
function warnIfUpdatesNotWrappedWithActDEV(fiber) {
isConcurrentActEnvironment() &&
null === ReactSharedInternals.actQueue &&
runWithFiberInDEV(fiber, function () {
console.error(
"An update to %s inside a test was not wrapped in act(...).\n\nWhen testing, code that causes React state updates should be wrapped into act(...):\n\nact(() => {\n /* fire events that update state */\n});\n/* assert on the output */\n\nThis ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act",
getComponentNameFromFiber(fiber)
)
})
}
function ensureRootIsScheduled(root) {
root !== lastScheduledRoot &&
null === root.next &&
(null === lastScheduledRoot
? (firstScheduledRoot = lastScheduledRoot = root)
: (lastScheduledRoot = lastScheduledRoot.next = root))
mightHavePendingSyncWork = !0
null !== ReactSharedInternals.actQueue
? didScheduleMicrotask_act ||
((didScheduleMicrotask_act = !0), scheduleImmediateRootScheduleTask())
: didScheduleMicrotask ||
((didScheduleMicrotask = !0), scheduleImmediateRootScheduleTask())
}
function flushSyncWorkAcrossRoots_impl(syncTransitionLanes, onlyLegacy) {
if (!isFlushingWork && mightHavePendingSyncWork) {
isFlushingWork = !0
do {
var didPerformSomeWork = !1
for (var root = firstScheduledRoot; null !== root; ) {
if (!onlyLegacy)
if (0 !== syncTransitionLanes) {
var pendingLanes = root.pendingLanes
if (0 === pendingLanes) var nextLanes = 0
else {
var suspendedLanes = root.suspendedLanes,
pingedLanes = root.pingedLanes
nextLanes =
(1 << (31 - clz32(42 | syncTransitionLanes) + 1)) - 1
nextLanes &= pendingLanes & ~(suspendedLanes & ~pingedLanes)
nextLanes =
nextLanes & 201326741
? (nextLanes & 201326741) | 1
: nextLanes
? nextLanes | 2
: 0
}
0 !== nextLanes &&
((didPerformSomeWork = !0),
performSyncWorkOnRoot(root, nextLanes))
} else
((nextLanes = workInProgressRootRenderLanes),
(nextLanes = getNextLanes(
root,
root === workInProgressRoot ? nextLanes : 0,
null !== root.cancelPendingCommit ||
root.timeoutHandle !== noTimeout
)),
0 === (nextLanes & 3) ||
checkIfRootIsPrerendering(root, nextLanes) ||
((didPerformSomeWork = !0),
performSyncWorkOnRoot(root, nextLanes)))
root = root.next
}
} while (didPerformSomeWork)
isFlushingWork = !1
}
}
function processRootScheduleInImmediateTask() {
processRootScheduleInMicrotask()
}
function processRootScheduleInMicrotask() {
mightHavePendingSyncWork =
didScheduleMicrotask_act =
didScheduleMicrotask =
!1
var syncTransitionLanes = 0
0 !== currentEventTransitionLane &&
shouldAttemptEagerTransition() &&
(syncTransitionLanes = currentEventTransitionLane)
for (
var currentTime = now$1(), prev = null, root = firstScheduledRoot;
null !== root;
) {
var next = root.next,
nextLanes = scheduleTaskForRootDuringMicrotask(root, currentTime)
if (0 === nextLanes)
((root.next = null),
null === prev ? (firstScheduledRoot = next) : (prev.next = next),
null === next && (lastScheduledRoot = prev))
else if (
((prev = root), 0 !== syncTransitionLanes || 0 !== (nextLanes & 3))
)
mightHavePendingSyncWork = !0
root = next
}
;(pendingEffectsStatus !== NO_PENDING_EFFECTS &&
pendingEffectsStatus !== PENDING_PASSIVE_PHASE) ||
flushSyncWorkAcrossRoots_impl(syncTransitionLanes, !1)
0 !== currentEventTransitionLane && (currentEventTransitionLane = 0)
}
function scheduleTaskForRootDuringMicrotask(root, currentTime) {
for (
var suspendedLanes = root.suspendedLanes,
pingedLanes = root.pingedLanes,
expirationTimes = root.expirationTimes,
lanes = root.pendingLanes & -62914561;
0 < lanes;
) {
var index = 31 - clz32(lanes),
lane = 1 << index,
expirationTime = expirationTimes[index]
if (-1 === expirationTime) {
if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))
expirationTimes[index] = computeExpirationTime(lane, currentTime)
} else expirationTime <= currentTime && (root.expiredLanes |= lane)
lanes &= ~lane
}
currentTime = workInProgressRoot
suspendedLanes = workInProgressRootRenderLanes
suspendedLanes = getNextLanes(
root,
root === currentTime ? suspendedLanes : 0,
null !== root.cancelPendingCommit || root.timeoutHandle !== noTimeout
)
pingedLanes = root.callbackNode
if (
0 === suspendedLanes ||
(root === currentTime &&
(workInProgressSuspendedReason === SuspendedOnData ||
workInProgressSuspendedReason === SuspendedOnAction)) ||
null !== root.cancelPendingCommit
)
return (
null !== pingedLanes && cancelCallback(pingedLanes),
(root.callbackNode = null),
(root.callbackPriority = 0)
)
if (
0 === (suspendedLanes & 3) ||
checkIfRootIsPrerendering(root, suspendedLanes)
) {
currentTime = suspendedLanes & -suspendedLanes
if (
currentTime !== root.callbackPriority ||
(null !== ReactSharedInternals.actQueue &&
pingedLanes !== fakeActCallbackNode)
)
cancelCallback(pingedLanes)
else return currentTime
switch (lanesToEventPriority(suspendedLanes)) {
case DiscreteEventPriority:
case ContinuousEventPriority:
suspendedLanes = UserBlockingPriority
break
case DefaultEventPriority:
suspendedLanes = NormalPriority$1
break
case IdleEventPriority:
suspendedLanes = IdlePriority
break
default:
suspendedLanes = NormalPriority$1
}
pingedLanes = performWorkOnRootViaSchedulerTask.bind(null, root)
null !== ReactSharedInternals.actQueue
? (ReactSharedInternals.actQueue.push(pingedLanes),
(suspendedLanes = fakeActCallbackNode))
: (suspendedLanes = scheduleCallback$3(suspendedLanes, pingedLanes))
root.callbackPriority = currentTime
root.callbackNode = suspendedLanes
return currentTime
}
null !== pingedLanes && cancelCallback(pingedLanes)
root.callbackPriority = 2
root.callbackNode = null
return 2
}
function performWorkOnRootViaSchedulerTask(root, didTimeout) {
nestedUpdateScheduled = currentUpdateIsNested = !1
if (
pendingEffectsStatus !== NO_PENDING_EFFECTS &&
pendingEffectsStatus !== PENDING_PASSIVE_PHASE
)
return ((root.callbackNode = null), (root.callbackPriority = 0), null)
var originalCallbackNode = root.callbackNode
if (flushPendingEffects(!0) && root.callbackNode !== originalCallbackNode)
return null
var workInProgressRootRenderLanes$jscomp$0 = workInProgressRootRenderLanes
workInProgressRootRenderLanes$jscomp$0 = getNextLanes(
root,
root === workInProgressRoot
? workInProgressRootRenderLanes$jscomp$0
: 0,
null !== root.cancelPendingCommit || root.timeoutHandle !== noTimeout
)
if (0 === workInProgressRootRenderLanes$jscomp$0) return null
performWorkOnRoot(
root,
workInProgressRootRenderLanes$jscomp$0,
didTimeout
)
scheduleTaskForRootDuringMicrotask(root, now$1())
return null != root.callbackNode &&
root.callbackNode === originalCallbackNode
? performWorkOnRootViaSchedulerTask.bind(null, root)
: null
}
function performSyncWorkOnRoot(root, lanes) {
if (flushPendingEffects()) return null
currentUpdateIsNested = nestedUpdateScheduled
nestedUpdateScheduled = !1
performWorkOnRoot(root, lanes, !0)
}
function cancelCallback(callbackNode) {
callbackNode !== fakeActCallbackNode &&
null !== callbackNode &&
cancelCallback$1(callbackNode)
}
function scheduleImmediateRootScheduleTask() {
null !== ReactSharedInternals.actQueue &&
ReactSharedInternals.actQueue.push(function () {
processRootScheduleInMicrotask()
return null
})
scheduleMicrotask(function () {
;(executionContext & (RenderContext | CommitContext)) !== NoContext
? scheduleCallback$3(
ImmediatePriority,
processRootScheduleInImmediateTask
)
: processRootScheduleInMicrotask()
})
}
function requestTransitionLane() {
if (0 === currentEventTransitionLane) {
var actionScopeLane = currentEntangledLane
currentEventTransitionLane =
0 !== actionScopeLane ? actionScopeLane : claimNextTransitionLane()
}
return currentEventTransitionLane
}
function coerceFormActionProp(actionProp) {
if (
null == actionProp ||
'symbol' === typeof actionProp ||
'boolean' === typeof actionProp
)
return null
if ('function' === typeof actionProp) return actionProp
checkAttributeStringCoercion(actionProp, 'action')
return sanitizeURL('' + actionProp)
}
function createFormDataWithSubmitter(form, submitter) {
var temp = submitter.ownerDocument.createElement('input')
temp.name = submitter.name
temp.value = submitter.value
form.id && temp.setAttribute('form', form.id)
submitter.parentNode.insertBefore(temp, submitter)
form = new FormData(form)
temp.parentNode.removeChild(temp)
return form
}
function extractEvents$1(
dispatchQueue,
domEventName,
maybeTargetInst,
nativeEvent,
nativeEventTarget
) {
if (
'submit' === domEventName &&
maybeTargetInst &&
maybeTargetInst.stateNode === nativeEventTarget
) {
var action = coerceFormActionProp(
(nativeEventTarget[internalPropsKey] || null).action
),
submitter = nativeEvent.submitter
submitter &&
((domEventName = (domEventName = submitter[internalPropsKey] || null)
? coerceFormActionProp(domEventName.formAction)
: submitter.getAttribute('formAction')),
null !== domEventName &&
((action = domEventName), (submitter = null)))
var event = new SyntheticEvent(
'action',
'action',
null,
nativeEvent,
nativeEventTarget
)
dispatchQueue.push({
event: event,
listeners: [
{
instance: null,
listener: function () {
if (nativeEvent.defaultPrevented) {
if (0 !== currentEventTransitionLane) {
var formData = submitter
? createFormDataWithSubmitter(
nativeEventTarget,
submitter
)
: new FormData(nativeEventTarget),
pendingState = {
pending: !0,
data: formData,
method: nativeEventTarget.method,
action: action,
}
Object.freeze(pendingState)
startHostTransition(
maybeTargetInst,
pendingState,
null,
formData
)
}
} else
'function' === typeof action &&
(event.preventDefault(),
(formData = submitter
? createFormDataWithSubmitter(
nativeEventTarget,
submitter
)
: new FormData(nativeEventTarget)),
(pendingState = {
pending: !0,
data: formData,
method: nativeEventTarget.method,
action: action,
}),
Object.freeze(pendingState),
startHostTransition(
maybeTargetInst,
pendingState,
action,
formData
))
},
currentTarget: nativeEventTarget,
},
],
})
}
}
function executeDispatch(event, listener, currentTarget) {
event.currentTarget = currentTarget
try {
listener(event)
} catch (error) {
reportGlobalError(error)
}
event.currentTarget = null
}
function processDispatchQueue(dispatchQueue, eventSystemFlags) {
eventSystemFlags = 0 !== (eventSystemFlags & 4)
for (var i = 0; i < dispatchQueue.length; i++) {
var _dispatchQueue$i = dispatchQueue[i]
a: {
var previousInstance = void 0,
event = _dispatchQueue$i.event
_dispatchQueue$i = _dispatchQueue$i.listeners
if (eventSystemFlags)
for (
var i$jscomp$0 = _dispatchQueue$i.length - 1;
0 <= i$jscomp$0;
i$jscomp$0--
) {
var _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0],
instance = _dispatchListeners$i.instance,
currentTarget = _dispatchListeners$i.currentTarget
_dispatchListeners$i = _dispatchListeners$i.listener
if (instance !== previousInstance && event.isPropagationStopped())
break a
null !== instance
? runWithFiberInDEV(
instance,
executeDispatch,
event,
_dispatchListeners$i,
currentTarget
)
: executeDispatch(event, _dispatchListeners$i, currentTarget)
previousInstance = instance
}
else
for (
i$jscomp$0 = 0;
i$jscomp$0 < _dispatchQueue$i.length;
i$jscomp$0++
) {
_dispatchListeners$i = _dispatchQueue$i[i$jscomp$0]
instance = _dispatchListeners$i.instance
currentTarget = _dispatchListeners$i.currentTarget
_dispatchListeners$i = _dispatchListeners$i.listener
if (instance !== previousInstance && event.isPropagationStopped())
break a
null !== instance
? runWithFiberInDEV(
instance,
executeDispatch,
event,
_dispatchListeners$i,
currentTarget
)
: executeDispatch(event, _dispatchListeners$i, currentTarget)
previousInstance = instance
}
}
}
}
function listenToNonDelegatedEvent(domEventName, targetElement) {
nonDelegatedEvents.has(domEventName) ||
console.error(
'Did not expect a listenToNonDelegatedEvent() call for "%s". This is a bug in React. Please file an issue.',
domEventName
)
var listenerSet = targetElement[internalEventHandlersKey]
void 0 === listenerSet &&
(listenerSet = targetElement[internalEventHandlersKey] = new Set())
var listenerSetKey = domEventName + '__bubble'
listenerSet.has(listenerSetKey) ||
(addTrappedEventListener(targetElement, domEventName, 2, !1),
listenerSet.add(listenerSetKey))
}
function listenToNativeEvent(domEventName, isCapturePhaseListener, target) {
nonDelegatedEvents.has(domEventName) &&
!isCapturePhaseListener &&
console.error(
'Did not expect a listenToNativeEvent() call for "%s" in the bubble phase. This is a bug in React. Please file an issue.',
domEventName
)
var eventSystemFlags = 0
isCapturePhaseListener && (eventSystemFlags |= 4)
addTrappedEventListener(
target,
domEventName,
eventSystemFlags,
isCapturePhaseListener
)
}
function listenToAllSupportedEvents(rootContainerElement) {
if (!rootContainerElement[listeningMarker]) {
rootContainerElement[listeningMarker] = !0
allNativeEvents.forEach(function (domEventName) {
'selectionchange' !== domEventName &&
(nonDelegatedEvents.has(domEventName) ||
listenToNativeEvent(domEventName, !1, rootContainerElement),
listenToNativeEvent(domEventName, !0, rootContainerElement))
})
var ownerDocument =
9 === rootContainerElement.nodeType
? rootContainerElement
: rootContainerElement.ownerDocument
null === ownerDocument ||
ownerDocument[listeningMarker] ||
((ownerDocument[listeningMarker] = !0),
listenToNativeEvent('selectionchange', !1, ownerDocument))
}
}
function addTrappedEventListener(
targetContainer,
domEventName,
eventSystemFlags,
isCapturePhaseListener
) {
switch (getEventPriority(domEventName)) {
case DiscreteEventPriority:
var listenerWrapper = dispatchDiscreteEvent
break
case ContinuousEventPriority:
listenerWrapper = dispatchContinuousEvent
break
default:
listenerWrapper = dispatchEvent
}
eventSystemFlags = listenerWrapper.bind(
null,
domEventName,
eventSystemFlags,
targetContainer
)
listenerWrapper = void 0
!passiveBrowserEventsSupported ||
('touchstart' !== domEventName &&
'touchmove' !== domEventName &&
'wheel' !== domEventName) ||
(listenerWrapper = !0)
isCapturePhaseListener
? void 0 !== listenerWrapper
? targetContainer.addEventListener(domEventName, eventSystemFlags, {
capture: !0,
passive: listenerWrapper,
})
: targetContainer.addEventListener(domEventName, eventSystemFlags, !0)
: void 0 !== listenerWrapper
? targetContainer.addEventListener(domEventName, eventSystemFlags, {
passive: listenerWrapper,
})
: targetContainer.addEventListener(domEventName, eventSystemFlags, !1)
}
function dispatchEventForPluginEventSystem(
domEventName,
eventSystemFlags,
nativeEvent,
targetInst$jscomp$0,
targetContainer
) {
var ancestorInst = targetInst$jscomp$0
if (
0 === (eventSystemFlags & 1) &&
0 === (eventSystemFlags & 2) &&
null !== targetInst$jscomp$0
)
a: for (;;) {
if (null === targetInst$jscomp$0) return
var nodeTag = targetInst$jscomp$0.tag
if (3 === nodeTag || 4 === nodeTag) {
var container = targetInst$jscomp$0.stateNode.containerInfo
if (container === targetContainer) break
if (4 === nodeTag)
for (nodeTag = targetInst$jscomp$0.return; null !== nodeTag; ) {
var grandTag = nodeTag.tag
if (
(3 === grandTag || 4 === grandTag) &&
nodeTag.stateNode.containerInfo === targetContainer
)
return
nodeTag = nodeTag.return
}
for (; null !== container; ) {
nodeTag = getClosestInstanceFromNode(container)
if (null === nodeTag) return
grandTag = nodeTag.tag
if (
5 === grandTag ||
6 === grandTag ||
26 === grandTag ||
27 === grandTag
) {
targetInst$jscomp$0 = ancestorInst = nodeTag
continue a
}
container = container.parentNode
}
}
targetInst$jscomp$0 = targetInst$jscomp$0.return
}
batchedUpdates$1(function () {
var targetInst = ancestorInst,
nativeEventTarget = getEventTarget(nativeEvent),
dispatchQueue = []
a: {
var reactName = topLevelEventsToReactNames.get(domEventName)
if (void 0 !== reactName) {
var SyntheticEventCtor = SyntheticEvent,
reactEventType = domEventName
switch (domEventName) {
case 'keypress':
if (0 === getEventCharCode(nativeEvent)) break a
case 'keydown':
case 'keyup':
SyntheticEventCtor = SyntheticKeyboardEvent
break
case 'focusin':
reactEventType = 'focus'
SyntheticEventCtor = SyntheticFocusEvent
break
case 'focusout':
reactEventType = 'blur'
SyntheticEventCtor = SyntheticFocusEvent
break
case 'beforeblur':
case 'afterblur':
SyntheticEventCtor = SyntheticFocusEvent
break
case 'click':
if (2 === nativeEvent.button) break a
case 'auxclick':
case 'dblclick':
case 'mousedown':
case 'mousemove':
case 'mouseup':
case 'mouseout':
case 'mouseover':
case 'contextmenu':
SyntheticEventCtor = SyntheticMouseEvent
break
case 'drag':
case 'dragend':
case 'dragenter':
case 'dragexit':
case 'dragleave':
case 'dragover':
case 'dragstart':
case 'drop':
SyntheticEventCtor = SyntheticDragEvent
break
case 'touchcancel':
case 'touchend':
case 'touchmove':
case 'touchstart':
SyntheticEventCtor = SyntheticTouchEvent
break
case ANIMATION_END:
case ANIMATION_ITERATION:
case ANIMATION_START:
SyntheticEventCtor = SyntheticAnimationEvent
break
case TRANSITION_END:
SyntheticEventCtor = SyntheticTransitionEvent
break
case 'scroll':
case 'scrollend':
SyntheticEventCtor = SyntheticUIEvent
break
case 'wheel':
SyntheticEventCtor = SyntheticWheelEvent
break
case 'copy':
case 'cut':
case 'paste':
SyntheticEventCtor = SyntheticClipboardEvent
break
case 'gotpointercapture':
case 'lostpointercapture':
case 'pointercancel':
case 'pointerdown':
case 'pointermove':
case 'pointerout':
case 'pointerover':
case 'pointerup':
SyntheticEventCtor = SyntheticPointerEvent
break
case 'toggle':
case 'beforetoggle':
SyntheticEventCtor = SyntheticToggleEvent
}
var inCapturePhase = 0 !== (eventSystemFlags & 4),
accumulateTargetOnly =
!inCapturePhase &&
('scroll' === domEventName || 'scrollend' === domEventName),
reactEventName = inCapturePhase
? null !== reactName
? reactName + 'Capture'
: null
: reactName
inCapturePhase = []
for (
var instance = targetInst, lastHostComponent;
null !== instance;
) {
var _instance2 = instance
lastHostComponent = _instance2.stateNode
_instance2 = _instance2.tag
;(5 !== _instance2 && 26 !== _instance2 && 27 !== _instance2) ||
null === lastHostComponent ||
null === reactEventName ||
((_instance2 = getListener(instance, reactEventName)),
null != _instance2 &&
inCapturePhase.push(
createDispatchListener(
instance,
_instance2,
lastHostComponent
)
))
if (accumulateTargetOnly) break
instance = instance.return
}
0 < inCapturePhase.length &&
((reactName = new SyntheticEventCtor(
reactName,
reactEventType,
null,
nativeEvent,
nativeEventTarget
)),
dispatchQueue.push({
event: reactName,
listeners: inCapturePhase,
}))
}
}
if (0 === (eventSystemFlags & 7)) {
a: {
reactName =
'mouseover' === domEventName || 'pointerover' === domEventName
SyntheticEventCtor =
'mouseout' === domEventName || 'pointerout' === domEventName
if (
reactName &&
nativeEvent !== currentReplayingEvent &&
(reactEventType =
nativeEvent.relatedTarget || nativeEvent.fromElement) &&
(getClosestInstanceFromNode(reactEventType) ||
reactEventType[internalContainerInstanceKey])
)
break a
if (SyntheticEventCtor || reactName) {
reactName =
nativeEventTarget.window === nativeEventTarget
? nativeEventTarget
: (reactName = nativeEventTarget.ownerDocument)
? reactName.defaultView || reactName.parentWindow
: window
if (SyntheticEventCtor) {
if (
((reactEventType =
nativeEvent.relatedTarget || nativeEvent.toElement),
(SyntheticEventCtor = targetInst),
(reactEventType = reactEventType
? getClosestInstanceFromNode(reactEventType)
: null),
null !== reactEventType &&
((accumulateTargetOnly =
getNearestMountedFiber(reactEventType)),
(inCapturePhase = reactEventType.tag),
reactEventType !== accumulateTargetOnly ||
(5 !== inCapturePhase &&
27 !== inCapturePhase &&
6 !== inCapturePhase)))
)
reactEventType = null
} else
((SyntheticEventCtor = null), (reactEventType = targetInst))
if (SyntheticEventCtor !== reactEventType) {
inCapturePhase = SyntheticMouseEvent
_instance2 = 'onMouseLeave'
reactEventName = 'onMouseEnter'
instance = 'mouse'
if (
'pointerout' === domEventName ||
'pointerover' === domEventName
)
((inCapturePhase = SyntheticPointerEvent),
(_instance2 = 'onPointerLeave'),
(reactEventName = 'onPointerEnter'),
(instance = 'pointer'))
accumulateTargetOnly =
null == SyntheticEventCtor
? reactName
: getNodeFromInstance(SyntheticEventCtor)
lastHostComponent =
null == reactEventType
? reactName
: getNodeFromInstance(reactEventType)
reactName = new inCapturePhase(
_instance2,
instance + 'leave',
SyntheticEventCtor,
nativeEvent,
nativeEventTarget
)
reactName.target = accumulateTargetOnly
reactName.relatedTarget = lastHostComponent
_instance2 = null
getClosestInstanceFromNode(nativeEventTarget) === targetInst &&
((inCapturePhase = new inCapturePhase(
reactEventName,
instance + 'enter',
reactEventType,
nativeEvent,
nativeEventTarget
)),
(inCapturePhase.target = lastHostComponent),
(inCapturePhase.relatedTarget = accumulateTargetOnly),
(_instance2 = inCapturePhase))
accumulateTargetOnly = _instance2
if (SyntheticEventCtor && reactEventType)
b: {
inCapturePhase = getParent
reactEventName = SyntheticEventCtor
instance = reactEventType
lastHostComponent = 0
for (
_instance2 = reactEventName;
_instance2;
_instance2 = inCapturePhase(_instance2)
)
lastHostComponent++
_instance2 = 0
for (
var tempB = instance;
tempB;
tempB = inCapturePhase(tempB)
)
_instance2++
for (; 0 < lastHostComponent - _instance2; )
((reactEventName = inCapturePhase(reactEventName)),
lastHostComponent--)
for (; 0 < _instance2 - lastHostComponent; )
((instance = inCapturePhase(instance)), _instance2--)
for (; lastHostComponent--; ) {
if (
reactEventName === instance ||
(null !== instance &&
reactEventName === instance.alternate)
) {
inCapturePhase = reactEventName
break b
}
reactEventName = inCapturePhase(reactEventName)
instance = inCapturePhase(instance)
}
inCapturePhase = null
}
else inCapturePhase = null
null !== SyntheticEventCtor &&
accumulateEnterLeaveListenersForEvent(
dispatchQueue,
reactName,
SyntheticEventCtor,
inCapturePhase,
!1
)
null !== reactEventType &&
null !== accumulateTargetOnly &&
accumulateEnterLeaveListenersForEvent(
dispatchQueue,
accumulateTargetOnly,
reactEventType,
inCapturePhase,
!0
)
}
}
}
a: {
reactName = targetInst ? getNodeFromInstance(targetInst) : window
SyntheticEventCtor =
reactName.nodeName && reactName.nodeName.toLowerCase()
if (
'select' === SyntheticEventCtor ||
('input' === SyntheticEventCtor && 'file' === reactName.type)
)
var getTargetInstFunc = getTargetInstForChangeEvent
else if (isTextInputElement(reactName))
if (isInputEventSupported)
getTargetInstFunc = getTargetInstForInputOrChangeEvent
else {
getTargetInstFunc = getTargetInstForInputEventPolyfill
var handleEventFunc = handleEventsForInputEventPolyfill
}
else
((SyntheticEventCtor = reactName.nodeName),
!SyntheticEventCtor ||
'input' !== SyntheticEventCtor.toLowerCase() ||
('checkbox' !== reactName.type && 'radio' !== reactName.type)
? targetInst &&
isCustomElement(targetInst.elementType) &&
(getTargetInstFunc = getTargetInstForChangeEvent)
: (getTargetInstFunc = getTargetInstForClickEvent))
if (
getTargetInstFunc &&
(getTargetInstFunc = getTargetInstFunc(domEventName, targetInst))
) {
createAndAccumulateChangeEvent(
dispatchQueue,
getTargetInstFunc,
nativeEvent,
nativeEventTarget
)
break a
}
handleEventFunc &&
handleEventFunc(domEventName, reactName, targetInst)
'focusout' === domEventName &&
targetInst &&
'number' === reactName.type &&
null != targetInst.memoizedProps.value &&
setDefaultValue(reactName, 'number', reactName.value)
}
handleEventFunc = targetInst
? getNodeFromInstance(targetInst)
: window
switch (domEventName) {
case 'focusin':
if (
isTextInputElement(handleEventFunc) ||
'true' === handleEventFunc.contentEditable
)
((activeElement = handleEventFunc),
(activeElementInst = targetInst),
(lastSelection = null))
break
case 'focusout':
lastSelection = activeElementInst = activeElement = null
break
case 'mousedown':
mouseDown = !0
break
case 'contextmenu':
case 'mouseup':
case 'dragend':
mouseDown = !1
constructSelectEvent(
dispatchQueue,
nativeEvent,
nativeEventTarget
)
break
case 'selectionchange':
if (skipSelectionChangeEvent) break
case 'keydown':
case 'keyup':
constructSelectEvent(
dispatchQueue,
nativeEvent,
nativeEventTarget
)
}
var fallbackData
if (canUseCompositionEvent)
b: {
switch (domEventName) {
case 'compositionstart':
var eventType = 'onCompositionStart'
break b
case 'compositionend':
eventType = 'onCompositionEnd'
break b
case 'compositionupdate':
eventType = 'onCompositionUpdate'
break b
}
eventType = void 0
}
else
isComposing
? isFallbackCompositionEnd(domEventName, nativeEvent) &&
(eventType = 'onCompositionEnd')
: 'keydown' === domEventName &&
nativeEvent.keyCode === START_KEYCODE &&
(eventType = 'onCompositionStart')
eventType &&
(useFallbackCompositionData &&
'ko' !== nativeEvent.locale &&
(isComposing || 'onCompositionStart' !== eventType
? 'onCompositionEnd' === eventType &&
isComposing &&
(fallbackData = getData())
: ((root = nativeEventTarget),
(startText = 'value' in root ? root.value : root.textContent),
(isComposing = !0))),
(handleEventFunc = accumulateTwoPhaseListeners(
targetInst,
eventType
)),
0 < handleEventFunc.length &&
((eventType = new SyntheticCompositionEvent(
eventType,
domEventName,
null,
nativeEvent,
nativeEventTarget
)),
dispatchQueue.push({
event: eventType,
listeners: handleEventFunc,
}),
fallbackData
? (eventType.data = fallbackData)
: ((fallbackData = getDataFromCustomEvent(nativeEvent)),
null !== fallbackData && (eventType.data = fallbackData))))
if (
(fallbackData = canUseTextInputEvent
? getNativeBeforeInputChars(domEventName, nativeEvent)
: getFallbackBeforeInputChars(domEventName, nativeEvent))
)
((eventType = accumulateTwoPhaseListeners(
targetInst,
'onBeforeInput'
)),
0 < eventType.length &&
((handleEventFunc = new SyntheticInputEvent(
'onBeforeInput',
'beforeinput',
null,
nativeEvent,
nativeEventTarget
)),
dispatchQueue.push({
event: handleEventFunc,
listeners: eventType,
}),
(handleEventFunc.data = fallbackData)))
extractEvents$1(
dispatchQueue,
domEventName,
targetInst,
nativeEvent,
nativeEventTarget
)
}
processDispatchQueue(dispatchQueue, eventSystemFlags)
})
}
function createDispatchListener(instance, listener, currentTarget) {
return {
instance: instance,
listener: listener,
currentTarget: currentTarget,
}
}
function accumulateTwoPhaseListeners(targetFiber, reactName) {
for (
var captureName = reactName + 'Capture', listeners = [];
null !== targetFiber;
) {
var _instance3 = targetFiber,
stateNode = _instance3.stateNode
_instance3 = _instance3.tag
;(5 !== _instance3 && 26 !== _instance3 && 27 !== _instance3) ||
null === stateNode ||
((_instance3 = getListener(targetFiber, captureName)),
null != _instance3 &&
listeners.unshift(
createDispatchListener(targetFiber, _instance3, stateNode)
),
(_instance3 = getListener(targetFiber, reactName)),
null != _instance3 &&
listeners.push(
createDispatchListener(targetFiber, _instance3, stateNode)
))
if (3 === targetFiber.tag) return listeners
targetFiber = targetFiber.return
}
return []
}
function getParent(inst) {
if (null === inst) return null
do inst = inst.return
while (inst && 5 !== inst.tag && 27 !== inst.tag)
return inst ? inst : null
}
function accumulateEnterLeaveListenersForEvent(
dispatchQueue,
event,
target,
common,
inCapturePhase
) {
for (
var registrationName = event._reactName, listeners = [];
null !== target && target !== common;
) {
var _instance4 = target,
alternate = _instance4.alternate,
stateNode = _instance4.stateNode
_instance4 = _instance4.tag
if (null !== alternate && alternate === common) break
;(5 !== _instance4 && 26 !== _instance4 && 27 !== _instance4) ||
null === stateNode ||
((alternate = stateNode),
inCapturePhase
? ((stateNode = getListener(target, registrationName)),
null != stateNode &&
listeners.unshift(
createDispatchListener(target, stateNode, alternate)
))
: inCapturePhase ||
((stateNode = getListener(target, registrationName)),
null != stateNode &&
listeners.push(
createDispatchListener(target, stateNode, alternate)
)))
target = target.return
}
0 !== listeners.length &&
dispatchQueue.push({ event: event, listeners: listeners })
}
function validatePropertiesInDevelopment(type, props) {
validateProperties$2(type, props)
;('input' !== type && 'textarea' !== type && 'select' !== type) ||
null == props ||
null !== props.value ||
didWarnValueNull ||
((didWarnValueNull = !0),
'select' === type && props.multiple
? console.error(
'`value` prop on `%s` should not be null. Consider using an empty array when `multiple` is set to `true` to clear the component or `undefined` for uncontrolled components.',
type
)
: console.error(
'`value` prop on `%s` should not be null. Consider using an empty string to clear the component or `undefined` for uncontrolled components.',
type
))
var eventRegistry = {
registrationNameDependencies: registrationNameDependencies,
possibleRegistrationNames: possibleRegistrationNames,
}
isCustomElement(type) ||
'string' === typeof props.is ||
warnUnknownProperties(type, props, eventRegistry)
props.contentEditable &&
!props.suppressContentEditableWarning &&
null != props.children &&
console.error(
'A component is `contentEditable` and contains `children` managed by React. It is now your responsibility to guarantee that none of those nodes are unexpectedly modified or duplicated. This is probably not intentional.'
)
}
function warnForPropDifference(
propName,
serverValue,
clientValue,
serverDifferences
) {
serverValue !== clientValue &&
((clientValue = normalizeMarkupForTextOrAttribute(clientValue)),
normalizeMarkupForTextOrAttribute(serverValue) !== clientValue &&
(serverDifferences[propName] = serverValue))
}
function warnForExtraAttributes(
domElement,
attributeNames,
serverDifferences
) {
attributeNames.forEach(function (attributeName) {
serverDifferences[getPropNameFromAttributeName(attributeName)] =
'style' === attributeName
? getStylesObjectFromElement(domElement)
: domElement.getAttribute(attributeName)
})
}
function warnForInvalidEventListener(registrationName, listener) {
!1 === listener
? console.error(
'Expected `%s` listener to be a function, instead got `false`.\n\nIf you used to conditionally omit it with %s={condition && value}, pass %s={condition ? value : undefined} instead.',
registrationName,
registrationName,
registrationName
)
: console.error(
'Expected `%s` listener to be a function, instead got a value of `%s` type.',
registrationName,
typeof listener
)
}
function normalizeHTML(parent, html) {
parent =
parent.namespaceURI === MATH_NAMESPACE ||
parent.namespaceURI === SVG_NAMESPACE
? parent.ownerDocument.createElementNS(
parent.namespaceURI,
parent.tagName
)
: parent.ownerDocument.createElement(parent.tagName)
parent.innerHTML = html
return parent.innerHTML
}
function normalizeMarkupForTextOrAttribute(markup) {
willCoercionThrow(markup) &&
(console.error(
'The provided HTML markup uses a value of unsupported type %s. This value must be coerced to a string before using it here.',
typeName(markup)
),
testStringCoercion(markup))
return ('string' === typeof markup ? markup : '' + markup)
.replace(NORMALIZE_NEWLINES_REGEX, '\n')
.replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, '')
}
function checkForUnmatchedText(serverText, clientText) {
clientText = normalizeMarkupForTextOrAttribute(clientText)
return normalizeMarkupForTextOrAttribute(serverText) === clientText
? !0
: !1
}
function setProp(domElement, tag, key, value, props, prevValue) {
switch (key) {
case 'children':
if ('string' === typeof value)
(validateTextNesting(value, tag, !1),
'body' === tag ||
('textarea' === tag && '' === value) ||
setTextContent(domElement, value))
else if ('number' === typeof value || 'bigint' === typeof value)
(validateTextNesting('' + value, tag, !1),
'body' !== tag && setTextContent(domElement, '' + value))
break
case 'className':
setValueForKnownAttribute(domElement, 'class', value)
break
case 'tabIndex':
setValueForKnownAttribute(domElement, 'tabindex', value)
break
case 'dir':
case 'role':
case 'viewBox':
case 'width':
case 'height':
setValueForKnownAttribute(domElement, key, value)
break
case 'style':
setValueForStyles(domElement, value, prevValue)
break
case 'data':
if ('object' !== tag) {
setValueForKnownAttribute(domElement, 'data', value)
break
}
case 'src':
case 'href':
if ('' === value && ('a' !== tag || 'href' !== key)) {
'src' === key
? console.error(
'An empty string ("") was passed to the %s attribute. This may cause the browser to download the whole page again over the network. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
key,
key
)
: console.error(
'An empty string ("") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
key,
key
)
domElement.removeAttribute(key)
break
}
if (
null == value ||
'function' === typeof value ||
'symbol' === typeof value ||
'boolean' === typeof value
) {
domElement.removeAttribute(key)
break
}
checkAttributeStringCoercion(value, key)
value = sanitizeURL('' + value)
domElement.setAttribute(key, value)
break
case 'action':
case 'formAction':
null != value &&
('form' === tag
? 'formAction' === key
? console.error(
'You can only pass the formAction prop to <input> or <button>. Use the action prop on <form>.'
)
: 'function' === typeof value &&
((null == props.encType && null == props.method) ||
didWarnFormActionMethod ||
((didWarnFormActionMethod = !0),
console.error(
'Cannot specify a encType or method for a form that specifies a function as the action. React provides those automatically. They will get overridden.'
)),
null == props.target ||
didWarnFormActionTarget ||
((didWarnFormActionTarget = !0),
console.error(
'Cannot specify a target for a form that specifies a function as the action. The function will always be executed in the same window.'
)))
: 'input' === tag || 'button' === tag
? 'action' === key
? console.error(
'You can only pass the action prop to <form>. Use the formAction prop on <input> or <button>.'
)
: 'input' !== tag ||
'submit' === props.type ||
'image' === props.type ||
didWarnFormActionType
? 'button' !== tag ||
null == props.type ||
'submit' === props.type ||
didWarnFormActionType
? 'function' === typeof value &&
(null == props.name ||
didWarnFormActionName ||
((didWarnFormActionName = !0),
console.error(
'Cannot specify a "name" prop for a button that specifies a function as a formAction. React needs it to encode which action should be invoked. It will get overridden.'
)),
(null == props.formEncType &&
null == props.formMethod) ||
didWarnFormActionMethod ||
((didWarnFormActionMethod = !0),
console.error(
'Cannot specify a formEncType or formMethod for a button that specifies a function as a formAction. React provides those automatically. They will get overridden.'
)),
null == props.formTarget ||
didWarnFormActionTarget ||
((didWarnFormActionTarget = !0),
console.error(
'Cannot specify a formTarget for a button that specifies a function as a formAction. The function will always be executed in the same window.'
)))
: ((didWarnFormActionType = !0),
console.error(
'A button can only specify a formAction along with type="submit" or no type.'
))
: ((didWarnFormActionType = !0),
console.error(
'An input can only specify a formAction along with type="submit" or type="image".'
))
: 'action' === key
? console.error(
'You can only pass the action prop to <form>.'
)
: console.error(
'You can only pass the formAction prop to <input> or <button>.'
))
if ('function' === typeof value) {
domElement.setAttribute(
key,
"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')"
)
break
} else
'function' === typeof prevValue &&
('formAction' === key
? ('input' !== tag &&
setProp(domElement, tag, 'name', props.name, props, null),
setProp(
domElement,
tag,
'formEncType',
props.formEncType,
props,
null
),
setProp(
domElement,
tag,
'formMethod',
props.formMethod,
props,
null
),
setProp(
domElement,
tag,
'formTarget',
props.formTarget,
props,
null
))
: (setProp(
domElement,
tag,
'encType',
props.encType,
props,
null
),
setProp(domElement, tag, 'method', props.method, props, null),
setProp(
domElement,
tag,
'target',
props.target,
props,
null
)))
if (
null == value ||
'symbol' === typeof value ||
'boolean' === typeof value
) {
domElement.removeAttribute(key)
break
}
checkAttributeStringCoercion(value, key)
value = sanitizeURL('' + value)
domElement.setAttribute(key, value)
break
case 'onClick':
null != value &&
('function' !== typeof value &&
warnForInvalidEventListener(key, value),
(domElement.onclick = noop$1))
break
case 'onScroll':
null != value &&
('function' !== typeof value &&
warnForInvalidEventListener(key, value),
listenToNonDelegatedEvent('scroll', domElement))
break
case 'onScrollEnd':
null != value &&
('function' !== typeof value &&
warnForInvalidEventListener(key, value),
listenToNonDelegatedEvent('scrollend', domElement))
break
case 'dangerouslySetInnerHTML':
if (null != value) {
if ('object' !== typeof value || !('__html' in value))
throw Error(
'`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information.'
)
key = value.__html
if (null != key) {
if (null != props.children)
throw Error(
'Can only set one of `children` or `props.dangerouslySetInnerHTML`.'
)
domElement.innerHTML = key
}
}
break
case 'multiple':
domElement.multiple =
value && 'function' !== typeof value && 'symbol' !== typeof value
break
case 'muted':
domElement.muted =
value && 'function' !== typeof value && 'symbol' !== typeof value
break
case 'suppressContentEditableWarning':
case 'suppressHydrationWarning':
case 'defaultValue':
case 'defaultChecked':
case 'innerHTML':
case 'ref':
break
case 'autoFocus':
break
case 'xlinkHref':
if (
null == value ||
'function' === typeof value ||
'boolean' === typeof value ||
'symbol' === typeof value
) {
domElement.removeAttribute('xlink:href')
break
}
checkAttributeStringCoercion(value, key)
key = sanitizeURL('' + value)
domElement.setAttributeNS(xlinkNamespace, 'xlink:href', key)
break
case 'contentEditable':
case 'spellCheck':
case 'draggable':
case 'value':
case 'autoReverse':
case 'externalResourcesRequired':
case 'focusable':
case 'preserveAlpha':
null != value &&
'function' !== typeof value &&
'symbol' !== typeof value
? (checkAttributeStringCoercion(value, key),
domElement.setAttribute(key, '' + value))
: domElement.removeAttribute(key)
break
case 'inert':
'' !== value ||
didWarnForNewBooleanPropsWithEmptyValue[key] ||
((didWarnForNewBooleanPropsWithEmptyValue[key] = !0),
console.error(
'Received an empty string for a boolean attribute `%s`. This will treat the attribute as if it were false. Either pass `false` to silence this warning, or pass `true` if you used an empty string in earlier versions of React to indicate this attribute is true.',
key
))
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
? domElement.setAttribute(key, '')
: domElement.removeAttribute(key)
break
case 'capture':
case 'download':
!0 === value
? domElement.setAttribute(key, '')
: !1 !== value &&
null != value &&
'function' !== typeof value &&
'symbol' !== typeof value
? (checkAttributeStringCoercion(value, key),
domElement.setAttribute(key, value))
: domElement.removeAttribute(key)
break
case 'cols':
case 'rows':
case 'size':
case 'span':
null != value &&
'function' !== typeof value &&
'symbol' !== typeof value &&
!isNaN(value) &&
1 <= value
? (checkAttributeStringCoercion(value, key),
domElement.setAttribute(key, value))
: domElement.removeAttribute(key)
break
case 'rowSpan':
case 'start':
null == value ||
'function' === typeof value ||
'symbol' === typeof value ||
isNaN(value)
? domElement.removeAttribute(key)
: (checkAttributeStringCoercion(value, key),
domElement.setAttribute(key, value))
break
case 'popover':
listenToNonDelegatedEvent('beforetoggle', domElement)
listenToNonDelegatedEvent('toggle', domElement)
setValueForAttribute(domElement, 'popover', value)
break
case 'xlinkActuate':
setValueForNamespacedAttribute(
domElement,
xlinkNamespace,
'xlink:actuate',
value
)
break
case 'xlinkArcrole':
setValueForNamespacedAttribute(
domElement,
xlinkNamespace,
'xlink:arcrole',
value
)
break
case 'xlinkRole':
setValueForNamespacedAttribute(
domElement,
xlinkNamespace,
'xlink:role',
value
)
break
case 'xlinkShow':
setValueForNamespacedAttribute(
domElement,
xlinkNamespace,
'xlink:show',
value
)
break
case 'xlinkTitle':
setValueForNamespacedAttribute(
domElement,
xlinkNamespace,
'xlink:title',
value
)
break
case 'xlinkType':
setValueForNamespacedAttribute(
domElement,
xlinkNamespace,
'xlink:type',
value
)
break
case 'xmlBase':
setValueForNamespacedAttribute(
domElement,
xmlNamespace,
'xml:base',
value
)
break
case 'xmlLang':
setValueForNamespacedAttribute(
domElement,
xmlNamespace,
'xml:lang',
value
)
break
case 'xmlSpace':
setValueForNamespacedAttribute(
domElement,
xmlNamespace,
'xml:space',
value
)
break
case 'is':
null != prevValue &&
console.error(
'Cannot update the "is" prop after it has been initialized.'
)
setValueForAttribute(domElement, 'is', value)
break
case 'innerText':
case 'textContent':
break
case 'popoverTarget':
didWarnPopoverTargetObject ||
null == value ||
'object' !== typeof value ||
((didWarnPopoverTargetObject = !0),
console.error(
'The `popoverTarget` prop expects the ID of an Element as a string. Received %s instead.',
value
))
default:
!(2 < key.length) ||
('o' !== key[0] && 'O' !== key[0]) ||
('n' !== key[1] && 'N' !== key[1])
? ((key = getAttributeAlias(key)),
setValueForAttribute(domElement, key, value))
: registrationNameDependencies.hasOwnProperty(key) &&
null != value &&
'function' !== typeof value &&
warnForInvalidEventListener(key, value)
}
}
function setPropOnCustomElement(
domElement,
tag,
key,
value,
props,
prevValue
) {
switch (key) {
case 'style':
setValueForStyles(domElement, value, prevValue)
break
case 'dangerouslySetInnerHTML':
if (null != value) {
if ('object' !== typeof value || !('__html' in value))
throw Error(
'`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information.'
)
key = value.__html
if (null != key) {
if (null != props.children)
throw Error(
'Can only set one of `children` or `props.dangerouslySetInnerHTML`.'
)
domElement.innerHTML = key
}
}
break
case 'children':
'string' === typeof value
? setTextContent(domElement, value)
: ('number' === typeof value || 'bigint' === typeof value) &&
setTextContent(domElement, '' + value)
break
case 'onScroll':
null != value &&
('function' !== typeof value &&
warnForInvalidEventListener(key, value),
listenToNonDelegatedEvent('scroll', domElement))
break
case 'onScrollEnd':
null != value &&
('function' !== typeof value &&
warnForInvalidEventListener(key, value),
listenToNonDelegatedEvent('scrollend', domElement))
break
case 'onClick':
null != value &&
('function' !== typeof value &&
warnForInvalidEventListener(key, value),
(domElement.onclick = noop$1))
break
case 'suppressContentEditableWarning':
case 'suppressHydrationWarning':
case 'innerHTML':
case 'ref':
break
case 'innerText':
case 'textContent':
break
default:
if (registrationNameDependencies.hasOwnProperty(key))
null != value &&
'function' !== typeof value &&
warnForInvalidEventListener(key, value)
else
a: {
if (
'o' === key[0] &&
'n' === key[1] &&
((props = key.endsWith('Capture')),
(tag = key.slice(2, props ? key.length - 7 : void 0)),
(prevValue = domElement[internalPropsKey] || null),
(prevValue = null != prevValue ? prevValue[key] : null),
'function' === typeof prevValue &&
domElement.removeEventListener(tag, prevValue, props),
'function' === typeof value)
) {
'function' !== typeof prevValue &&
null !== prevValue &&
(key in domElement
? (domElement[key] = null)
: domElement.hasAttribute(key) &&
domElement.removeAttribute(key))
domElement.addEventListener(tag, value, props)
break a
}
key in domElement
? (domElement[key] = value)
: !0 === value
? domElement.setAttribute(key, '')
: setValueForAttribute(domElement, key, value)
}
}
}
function setInitialProperties(domElement, tag, props) {
validatePropertiesInDevelopment(tag, props)
switch (tag) {
case 'div':
case 'span':
case 'svg':
case 'path':
case 'a':
case 'g':
case 'p':
case 'li':
break
case 'img':
listenToNonDelegatedEvent('error', domElement)
listenToNonDelegatedEvent('load', domElement)
var hasSrc = !1,
hasSrcSet = !1,
propKey
for (propKey in props)
if (props.hasOwnProperty(propKey)) {
var propValue = props[propKey]
if (null != propValue)
switch (propKey) {
case 'src':
hasSrc = !0
break
case 'srcSet':
hasSrcSet = !0
break
case 'children':
case 'dangerouslySetInnerHTML':
throw Error(
tag +
' is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.'
)
default:
setProp(domElement, tag, propKey, propValue, props, null)
}
}
hasSrcSet &&
setProp(domElement, tag, 'srcSet', props.srcSet, props, null)
hasSrc && setProp(domElement, tag, 'src', props.src, props, null)
return
case 'input':
checkControlledValueProps('input', props)
listenToNonDelegatedEvent('invalid', domElement)
var defaultValue = (propKey = propValue = hasSrcSet = null),
checked = null,
defaultChecked = null
for (hasSrc in props)
if (props.hasOwnProperty(hasSrc)) {
var _propValue = props[hasSrc]
if (null != _propValue)
switch (hasSrc) {
case 'name':
hasSrcSet = _propValue
break
case 'type':
propValue = _propValue
break
case 'checked':
checked = _propValue
break
case 'defaultChecked':
defaultChecked = _propValue
break
case 'value':
propKey = _propValue
break
case 'defaultValue':
defaultValue = _propValue
break
case 'children':
case 'dangerouslySetInnerHTML':
if (null != _propValue)
throw Error(
tag +
' is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.'
)
break
default:
setProp(domElement, tag, hasSrc, _propValue, props, null)
}
}
validateInputProps(domElement, props)
initInput(
domElement,
propKey,
defaultValue,
checked,
defaultChecked,
propValue,
hasSrcSet,
!1
)
return
case 'select':
checkControlledValueProps('select', props)
listenToNonDelegatedEvent('invalid', domElement)
hasSrc = propValue = propKey = null
for (hasSrcSet in props)
if (
props.hasOwnProperty(hasSrcSet) &&
((defaultValue = props[hasSrcSet]), null != defaultValue)
)
switch (hasSrcSet) {
case 'value':
propKey = defaultValue
break
case 'defaultValue':
propValue = defaultValue
break
case 'multiple':
hasSrc = defaultValue
default:
setProp(domElement, tag, hasSrcSet, defaultValue, props, null)
}
validateSelectProps(domElement, props)
tag = propKey
props = propValue
domElement.multiple = !!hasSrc
null != tag
? updateOptions(domElement, !!hasSrc, tag, !1)
: null != props && updateOptions(domElement, !!hasSrc, props, !0)
return
case 'textarea':
checkControlledValueProps('textarea', props)
listenToNonDelegatedEvent('invalid', domElement)
propKey = hasSrcSet = hasSrc = null
for (propValue in props)
if (
props.hasOwnProperty(propValue) &&
((defaultValue = props[propValue]), null != defaultValue)
)
switch (propValue) {
case 'value':
hasSrc = defaultValue
break
case 'defaultValue':
hasSrcSet = defaultValue
break
case 'children':
propKey = defaultValue
break
case 'dangerouslySetInnerHTML':
if (null != defaultValue)
throw Error(
'`dangerouslySetInnerHTML` does not make sense on <textarea>.'
)
break
default:
setProp(domElement, tag, propValue, defaultValue, props, null)
}
validateTextareaProps(domElement, props)
initTextarea(domElement, hasSrc, hasSrcSet, propKey)
return
case 'option':
validateOptionProps(domElement, props)
for (checked in props)
if (
props.hasOwnProperty(checked) &&
((hasSrc = props[checked]), null != hasSrc)
)
switch (checked) {
case 'selected':
domElement.selected =
hasSrc &&
'function' !== typeof hasSrc &&
'symbol' !== typeof hasSrc
break
default:
setProp(domElement, tag, checked, hasSrc, props, null)
}
return
case 'dialog':
listenToNonDelegatedEvent('beforetoggle', domElement)
listenToNonDelegatedEvent('toggle', domElement)
listenToNonDelegatedEvent('cancel', domElement)
listenToNonDelegatedEvent('close', domElement)
break
case 'iframe':
case 'object':
listenToNonDelegatedEvent('load', domElement)
break
case 'video':
case 'audio':
for (hasSrc = 0; hasSrc < mediaEventTypes.length; hasSrc++)
listenToNonDelegatedEvent(mediaEventTypes[hasSrc], domElement)
break
case 'image':
listenToNonDelegatedEvent('error', domElement)
listenToNonDelegatedEvent('load', domElement)
break
case 'details':
listenToNonDelegatedEvent('toggle', domElement)
break
case 'embed':
case 'source':
case 'link':
;(listenToNonDelegatedEvent('error', domElement),
listenToNonDelegatedEvent('load', domElement))
case 'area':
case 'base':
case 'br':
case 'col':
case 'hr':
case 'keygen':
case 'meta':
case 'param':
case 'track':
case 'wbr':
case 'menuitem':
for (defaultChecked in props)
if (
props.hasOwnProperty(defaultChecked) &&
((hasSrc = props[defaultChecked]), null != hasSrc)
)
switch (defaultChecked) {
case 'children':
case 'dangerouslySetInnerHTML':
throw Error(
tag +
' is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.'
)
default:
setProp(domElement, tag, defaultChecked, hasSrc, props, null)
}
return
default:
if (isCustomElement(tag)) {
for (_propValue in props)
props.hasOwnProperty(_propValue) &&
((hasSrc = props[_propValue]),
void 0 !== hasSrc &&
setPropOnCustomElement(
domElement,
tag,
_propValue,
hasSrc,
props,
void 0
))
return
}
}
for (defaultValue in props)
props.hasOwnProperty(defaultValue) &&
((hasSrc = props[defaultValue]),
null != hasSrc &&
setProp(domElement, tag, defaultValue, hasSrc, props, null))
}
function updateProperties(domElement, tag, lastProps, nextProps) {
validatePropertiesInDevelopment(tag, nextProps)
switch (tag) {
case 'div':
case 'span':
case 'svg':
case 'path':
case 'a':
case 'g':
case 'p':
case 'li':
break
case 'input':
var name = null,
type = null,
value = null,
defaultValue = null,
lastDefaultValue = null,
checked = null,
defaultChecked = null
for (propKey in lastProps) {
var lastProp = lastProps[propKey]
if (lastProps.hasOwnProperty(propKey) && null != lastProp)
switch (propKey) {
case 'checked':
break
case 'value':
break
case 'defaultValue':
lastDefaultValue = lastProp
default:
nextProps.hasOwnProperty(propKey) ||
setProp(domElement, tag, propKey, null, nextProps, lastProp)
}
}
for (var _propKey8 in nextProps) {
var propKey = nextProps[_propKey8]
lastProp = lastProps[_propKey8]
if (
nextProps.hasOwnProperty(_propKey8) &&
(null != propKey || null != lastProp)
)
switch (_propKey8) {
case 'type':
type = propKey
break
case 'name':
name = propKey
break
case 'checked':
checked = propKey
break
case 'defaultChecked':
defaultChecked = propKey
break
case 'value':
value = propKey
break
case 'defaultValue':
defaultValue = propKey
break
case 'children':
case 'dangerouslySetInnerHTML':
if (null != propKey)
throw Error(
tag +
' is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.'
)
break
default:
propKey !== lastProp &&
setProp(
domElement,
tag,
_propKey8,
propKey,
nextProps,
lastProp
)
}
}
tag =
'checkbox' === lastProps.type || 'radio' === lastProps.type
? null != lastProps.checked
: null != lastProps.value
nextProps =
'checkbox' === nextProps.type || 'radio' === nextProps.type
? null != nextProps.checked
: null != nextProps.value
tag ||
!nextProps ||
didWarnUncontrolledToControlled ||
(console.error(
'A component is changing an uncontrolled input to be controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://react.dev/link/controlled-components'
),
(didWarnUncontrolledToControlled = !0))
!tag ||
nextProps ||
didWarnControlledToUncontrolled ||
(console.error(
'A component is changing a controlled input to be uncontrolled. This is likely caused by the value changing from a defined to undefined, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://react.dev/link/controlled-components'
),
(didWarnControlledToUncontrolled = !0))
updateInput(
domElement,
value,
defaultValue,
lastDefaultValue,
checked,
defaultChecked,
type,
name
)
return
case 'select':
propKey = value = defaultValue = _propKey8 = null
for (type in lastProps)
if (
((lastDefaultValue = lastProps[type]),
lastProps.hasOwnProperty(type) && null != lastDefaultValue)
)
switch (type) {
case 'value':
break
case 'multiple':
propKey = lastDefaultValue
default:
nextProps.hasOwnProperty(type) ||
setProp(
domElement,
tag,
type,
null,
nextProps,
lastDefaultValue
)
}
for (name in nextProps)
if (
((type = nextProps[name]),
(lastDefaultValue = lastProps[name]),
nextProps.hasOwnProperty(name) &&
(null != type || null != lastDefaultValue))
)
switch (name) {
case 'value':
_propKey8 = type
break
case 'defaultValue':
defaultValue = type
break
case 'multiple':
value = type
default:
type !== lastDefaultValue &&
setProp(
domElement,
tag,
name,
type,
nextProps,
lastDefaultValue
)
}
nextProps = defaultValue
tag = value
lastProps = propKey
null != _propKey8
? updateOptions(domElement, !!tag, _propKey8, !1)
: !!lastProps !== !!tag &&
(null != nextProps
? updateOptions(domElement, !!tag, nextProps, !0)
: updateOptions(domElement, !!tag, tag ? [] : '', !1))
return
case 'textarea':
propKey = _propKey8 = null
for (defaultValue in lastProps)
if (
((name = lastProps[defaultValue]),
lastProps.hasOwnProperty(defaultValue) &&
null != name &&
!nextProps.hasOwnProperty(defaultValue))
)
switch (defaultValue) {
case 'value':
break
case 'children':
break
default:
setProp(domElement, tag, defaultValue, null, nextProps, name)
}
for (value in nextProps)
if (
((name = nextProps[value]),
(type = lastProps[value]),
nextProps.hasOwnProperty(value) && (null != name || null != type))
)
switch (value) {
case 'value':
_propKey8 = name
break
case 'defaultValue':
propKey = name
break
case 'children':
break
case 'dangerouslySetInnerHTML':
if (null != name)
throw Error(
'`dangerouslySetInnerHTML` does not make sense on <textarea>.'
)
break
default:
name !== type &&
setProp(domElement, tag, value, name, nextProps, type)
}
updateTextarea(domElement, _propKey8, propKey)
return
case 'option':
for (var _propKey13 in lastProps)
if (
((_propKey8 = lastProps[_propKey13]),
lastProps.hasOwnProperty(_propKey13) &&
null != _propKey8 &&
!nextProps.hasOwnProperty(_propKey13))
)
switch (_propKey13) {
case 'selected':
domElement.selected = !1
break
default:
setProp(
domElement,
tag,
_propKey13,
null,
nextProps,
_propKey8
)
}
for (lastDefaultValue in nextProps)
if (
((_propKey8 = nextProps[lastDefaultValue]),
(propKey = lastProps[lastDefaultValue]),
nextProps.hasOwnProperty(lastDefaultValue) &&
_propKey8 !== propKey &&
(null != _propKey8 || null != propKey))
)
switch (lastDefaultValue) {
case 'selected':
domElement.selected =
_propKey8 &&
'function' !== typeof _propKey8 &&
'symbol' !== typeof _propKey8
break
default:
setProp(
domElement,
tag,
lastDefaultValue,
_propKey8,
nextProps,
propKey
)
}
return
case 'img':
case 'link':
case 'area':
case 'base':
case 'br':
case 'col':
case 'embed':
case 'hr':
case 'keygen':
case 'meta':
case 'param':
case 'source':
case 'track':
case 'wbr':
case 'menuitem':
for (var _propKey15 in lastProps)
((_propKey8 = lastProps[_propKey15]),
lastProps.hasOwnProperty(_propKey15) &&
null != _propKey8 &&
!nextProps.hasOwnProperty(_propKey15) &&
setProp(
domElement,
tag,
_propKey15,
null,
nextProps,
_propKey8
))
for (checked in nextProps)
if (
((_propKey8 = nextProps[checked]),
(propKey = lastProps[checked]),
nextProps.hasOwnProperty(checked) &&
_propKey8 !== propKey &&
(null != _propKey8 || null != propKey))
)
switch (checked) {
case 'children':
case 'dangerouslySetInnerHTML':
if (null != _propKey8)
throw Error(
tag +
' is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.'
)
break
default:
setProp(
domElement,
tag,
checked,
_propKey8,
nextProps,
propKey
)
}
return
default:
if (isCustomElement(tag)) {
for (var _propKey17 in lastProps)
((_propKey8 = lastProps[_propKey17]),
lastProps.hasOwnProperty(_propKey17) &&
void 0 !== _propKey8 &&
!nextProps.hasOwnProperty(_propKey17) &&
setPropOnCustomElement(
domElement,
tag,
_propKey17,
void 0,
nextProps,
_propKey8
))
for (defaultChecked in nextProps)
((_propKey8 = nextProps[defaultChecked]),
(propKey = lastProps[defaultChecked]),
!nextProps.hasOwnProperty(defaultChecked) ||
_propKey8 === propKey ||
(void 0 === _propKey8 && void 0 === propKey) ||
setPropOnCustomElement(
domElement,
tag,
defaultChecked,
_propKey8,
nextProps,
propKey
))
return
}
}
for (var _propKey19 in lastProps)
((_propKey8 = lastProps[_propKey19]),
lastProps.hasOwnProperty(_propKey19) &&
null != _propKey8 &&
!nextProps.hasOwnProperty(_propKey19) &&
setProp(domElement, tag, _propKey19, null, nextProps, _propKey8))
for (lastProp in nextProps)
((_propKey8 = nextProps[lastProp]),
(propKey = lastProps[lastProp]),
!nextProps.hasOwnProperty(lastProp) ||
_propKey8 === propKey ||
(null == _propKey8 && null == propKey) ||
setProp(domElement, tag, lastProp, _propKey8, nextProps, propKey))
}
function getPropNameFromAttributeName(attrName) {
switch (attrName) {
case 'class':
return 'className'
case 'for':
return 'htmlFor'
default:
return attrName
}
}
function getStylesObjectFromElement(domElement) {
var serverValueInObjectForm = {}
domElement = domElement.style
for (var i = 0; i < domElement.length; i++) {
var styleName = domElement[i]
serverValueInObjectForm[styleName] =
domElement.getPropertyValue(styleName)
}
return serverValueInObjectForm
}
function diffHydratedStyles(domElement, value$jscomp$0, serverDifferences) {
if (null != value$jscomp$0 && 'object' !== typeof value$jscomp$0)
console.error(
"The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX."
)
else {
var clientValue
var delimiter = (clientValue = ''),
styleName
for (styleName in value$jscomp$0)
if (value$jscomp$0.hasOwnProperty(styleName)) {
var value = value$jscomp$0[styleName]
null != value &&
'boolean' !== typeof value &&
'' !== value &&
(0 === styleName.indexOf('--')
? (checkCSSPropertyStringCoercion(value, styleName),
(clientValue +=
delimiter + styleName + ':' + ('' + value).trim()))
: 'number' !== typeof value ||
0 === value ||
unitlessNumbers.has(styleName)
? (checkCSSPropertyStringCoercion(value, styleName),
(clientValue +=
delimiter +
styleName
.replace(uppercasePattern, '-$1')
.toLowerCase()
.replace(msPattern$1, '-ms-') +
':' +
('' + value).trim()))
: (clientValue +=
delimiter +
styleName
.replace(uppercasePattern, '-$1')
.toLowerCase()
.replace(msPattern$1, '-ms-') +
':' +
value +
'px'),
(delimiter = ';'))
}
clientValue = clientValue || null
value$jscomp$0 = domElement.getAttribute('style')
value$jscomp$0 !== clientValue &&
((clientValue = normalizeMarkupForTextOrAttribute(clientValue)),
normalizeMarkupForTextOrAttribute(value$jscomp$0) !== clientValue &&
(serverDifferences.style = getStylesObjectFromElement(domElement)))
}
}
function hydrateAttribute(
domElement,
propKey,
attributeName,
value,
extraAttributes,
serverDifferences
) {
extraAttributes.delete(attributeName)
domElement = domElement.getAttribute(attributeName)
if (null === domElement)
switch (typeof value) {
case 'undefined':
case 'function':
case 'symbol':
case 'boolean':
return
}
else if (null != value)
switch (typeof value) {
case 'function':
case 'symbol':
case 'boolean':
break
default:
if (
(checkAttributeStringCoercion(value, propKey),
domElement === '' + value)
)
return
}
warnForPropDifference(propKey, domElement, value, serverDifferences)
}
function hydrateBooleanAttribute(
domElement,
propKey,
attributeName,
value,
extraAttributes,
serverDifferences
) {
extraAttributes.delete(attributeName)
domElement = domElement.getAttribute(attributeName)
if (null === domElement) {
switch (typeof value) {
case 'function':
case 'symbol':
return
}
if (!value) return
} else
switch (typeof value) {
case 'function':
case 'symbol':
break
default:
if (value) return
}
warnForPropDifference(propKey, domElement, value, serverDifferences)
}
function hydrateBooleanishAttribute(
domElement,
propKey,
attributeName,
value,
extraAttributes,
serverDifferences
) {
extraAttributes.delete(attributeName)
domElement = domElement.getAttribute(attributeName)
if (null === domElement)
switch (typeof value) {
case 'undefined':
case 'function':
case 'symbol':
return
}
else if (null != value)
switch (typeof value) {
case 'function':
case 'symbol':
break
default:
if (
(checkAttributeStringCoercion(value, attributeName),
domElement === '' + value)
)
return
}
warnForPropDifference(propKey, domElement, value, serverDifferences)
}
function hydrateNumericAttribute(
domElement,
propKey,
attributeName,
value,
extraAttributes,
serverDifferences
) {
extraAttributes.delete(attributeName)
domElement = domElement.getAttribute(attributeName)
if (null === domElement)
switch (typeof value) {
case 'undefined':
case 'function':
case 'symbol':
case 'boolean':
return
default:
if (isNaN(value)) return
}
else if (null != value)
switch (typeof value) {
case 'function':
case 'symbol':
case 'boolean':
break
default:
if (
!isNaN(value) &&
(checkAttributeStringCoercion(value, propKey),
domElement === '' + value)
)
return
}
warnForPropDifference(propKey, domElement, value, serverDifferences)
}
function hydrateSanitizedAttribute(
domElement,
propKey,
attributeName,
value,
extraAttributes,
serverDifferences
) {
extraAttributes.delete(attributeName)
domElement = domElement.getAttribute(attributeName)
if (null === domElement)
switch (typeof value) {
case 'undefined':
case 'function':
case 'symbol':
case 'boolean':
return
}
else if (null != value)
switch (typeof value) {
case 'function':
case 'symbol':
case 'boolean':
break
default:
if (
(checkAttributeStringCoercion(value, propKey),
(attributeName = sanitizeURL('' + value)),
domElement === attributeName)
)
return
}
warnForPropDifference(propKey, domElement, value, serverDifferences)
}
function diffHydratedProperties(domElement, tag, props, hostContext) {
for (
var serverDifferences = {},
extraAttributes = new Set(),
attributes = domElement.attributes,
i = 0;
i < attributes.length;
i++
)
switch (attributes[i].name.toLowerCase()) {
case 'value':
break
case 'checked':
break
case 'selected':
break
default:
extraAttributes.add(attributes[i].name)
}
if (isCustomElement(tag))
for (var propKey in props) {
if (props.hasOwnProperty(propKey)) {
var value = props[propKey]
if (null != value)
if (registrationNameDependencies.hasOwnProperty(propKey))
'function' !== typeof value &&
warnForInvalidEventListener(propKey, value)
else if (!0 !== props.suppressHydrationWarning)
switch (propKey) {
case 'children':
;('string' !== typeof value && 'number' !== typeof value) ||
warnForPropDifference(
'children',
domElement.textContent,
value,
serverDifferences
)
continue
case 'suppressContentEditableWarning':
case 'suppressHydrationWarning':
case 'defaultValue':
case 'defaultChecked':
case 'innerHTML':
case 'ref':
continue
case 'dangerouslySetInnerHTML':
attributes = domElement.innerHTML
value = value ? value.__html : void 0
null != value &&
((value = normalizeHTML(domElement, value)),
warnForPropDifference(
propKey,
attributes,
value,
serverDifferences
))
continue
case 'style':
extraAttributes.delete(propKey)
diffHydratedStyles(domElement, value, serverDifferences)
continue
case 'offsetParent':
case 'offsetTop':
case 'offsetLeft':
case 'offsetWidth':
case 'offsetHeight':
case 'isContentEditable':
case 'outerText':
case 'outerHTML':
extraAttributes.delete(propKey.toLowerCase())
console.error(
'Assignment to read-only property will result in a no-op: `%s`',
propKey
)
continue
case 'className':
extraAttributes.delete('class')
attributes = getValueForAttributeOnCustomComponent(
domElement,
'class',
value
)
warnForPropDifference(
'className',
attributes,
value,
serverDifferences
)
continue
default:
;(hostContext.context === HostContextNamespaceNone &&
'svg' !== tag &&
'math' !== tag
? extraAttributes.delete(propKey.toLowerCase())
: extraAttributes.delete(propKey),
(attributes = getValueForAttributeOnCustomComponent(
domElement,
propKey,
value
)),
warnForPropDifference(
propKey,
attributes,
value,
serverDifferences
))
}
}
}
else
for (value in props)
if (
props.hasOwnProperty(value) &&
((propKey = props[value]), null != propKey)
)
if (registrationNameDependencies.hasOwnProperty(value))
'function' !== typeof propKey &&
warnForInvalidEventListener(value, propKey)
else if (!0 !== props.suppressHydrationWarning)
switch (value) {
case 'children':
;('string' !== typeof propKey &&
'number' !== typeof propKey) ||
warnForPropDifference(
'children',
domElement.textContent,
propKey,
serverDifferences
)
continue
case 'suppressContentEditableWarning':
case 'suppressHydrationWarning':
case 'value':
case 'checked':
case 'selected':
case 'defaultValue':
case 'defaultChecked':
case 'innerHTML':
case 'ref':
continue
case 'dangerouslySetInnerHTML':
attributes = domElement.innerHTML
propKey = propKey ? propKey.__html : void 0
null != propKey &&
((propKey = normalizeHTML(domElement, propKey)),
attributes !== propKey &&
(serverDifferences[value] = { __html: attributes }))
continue
case 'className':
hydrateAttribute(
domElement,
value,
'class',
propKey,
extraAttributes,
serverDifferences
)
continue
case 'tabIndex':
hydrateAttribute(
domElement,
value,
'tabindex',
propKey,
extraAttributes,
serverDifferences
)
continue
case 'style':
extraAttributes.delete(value)
diffHydratedStyles(domElement, propKey, serverDifferences)
continue
case 'multiple':
extraAttributes.delete(value)
warnForPropDifference(
value,
domElement.multiple,
propKey,
serverDifferences
)
continue
case 'muted':
extraAttributes.delete(value)
warnForPropDifference(
value,
domElement.muted,
propKey,
serverDifferences
)
continue
case 'autoFocus':
extraAttributes.delete('autofocus')
warnForPropDifference(
value,
domElement.autofocus,
propKey,
serverDifferences
)
continue
case 'data':
if ('object' !== tag) {
extraAttributes.delete(value)
attributes = domElement.getAttribute('data')
warnForPropDifference(
value,
attributes,
propKey,
serverDifferences
)
continue
}
case 'src':
case 'href':
if (
!(
'' !== propKey ||
('a' === tag && 'href' === value) ||
('object' === tag && 'data' === value)
)
) {
'src' === value
? console.error(
'An empty string ("") was passed to the %s attribute. This may cause the browser to download the whole page again over the network. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
value,
value
)
: console.error(
'An empty string ("") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
value,
value
)
continue
}
hydrateSanitizedAttribute(
domElement,
value,
value,
propKey,
extraAttributes,
serverDifferences
)
continue
case 'action':
case 'formAction':
attributes = domElement.getAttribute(value)
if ('function' === typeof propKey) {
extraAttributes.delete(value.toLowerCase())
'formAction' === value
? (extraAttributes.delete('name'),
extraAttributes.delete('formenctype'),
extraAttributes.delete('formmethod'),
extraAttributes.delete('formtarget'))
: (extraAttributes.delete('enctype'),
extraAttributes.delete('method'),
extraAttributes.delete('target'))
continue
} else if (attributes === EXPECTED_FORM_ACTION_URL) {
extraAttributes.delete(value.toLowerCase())
warnForPropDifference(
value,
'function',
propKey,
serverDifferences
)
continue
}
hydrateSanitizedAttribute(
domElement,
value,
value.toLowerCase(),
propKey,
extraAttributes,
serverDifferences
)
continue
case 'xlinkHref':
hydrateSanitizedAttribute(
domElement,
value,
'xlink:href',
propKey,
extraAttributes,
serverDifferences
)
continue
case 'contentEditable':
hydrateBooleanishAttribute(
domElement,
value,
'contenteditable',
propKey,
extraAttributes,
serverDifferences
)
continue
case 'spellCheck':
hydrateBooleanishAttribute(
domElement,
value,
'spellcheck',
propKey,
extraAttributes,
serverDifferences
)
continue
case 'draggable':
case 'autoReverse':
case 'externalResourcesRequired':
case 'focusable':
case 'preserveAlpha':
hydrateBooleanishAttribute(
domElement,
value,
value,
propKey,
extraAttributes,
serverDifferences
)
continue
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':
hydrateBooleanAttribute(
domElement,
value,
value.toLowerCase(),
propKey,
extraAttributes,
serverDifferences
)
continue
case 'capture':
case 'download':
a: {
i = domElement
var attributeName = (attributes = value),
serverDifferences$jscomp$0 = serverDifferences
extraAttributes.delete(attributeName)
i = i.getAttribute(attributeName)
if (null === i)
switch (typeof propKey) {
case 'undefined':
case 'function':
case 'symbol':
break a
default:
if (!1 === propKey) break a
}
else if (null != propKey)
switch (typeof propKey) {
case 'function':
case 'symbol':
break
case 'boolean':
if (!0 === propKey && '' === i) break a
break
default:
if (
(checkAttributeStringCoercion(propKey, attributes),
i === '' + propKey)
)
break a
}
warnForPropDifference(
attributes,
i,
propKey,
serverDifferences$jscomp$0
)
}
continue
case 'cols':
case 'rows':
case 'size':
case 'span':
a: {
i = domElement
attributeName = attributes = value
serverDifferences$jscomp$0 = serverDifferences
extraAttributes.delete(attributeName)
i = i.getAttribute(attributeName)
if (null === i)
switch (typeof propKey) {
case 'undefined':
case 'function':
case 'symbol':
case 'boolean':
break a
default:
if (isNaN(propKey) || 1 > propKey) break a
}
else if (null != propKey)
switch (typeof propKey) {
case 'function':
case 'symbol':
case 'boolean':
break
default:
if (
!(isNaN(propKey) || 1 > propKey) &&
(checkAttributeStringCoercion(propKey, attributes),
i === '' + propKey)
)
break a
}
warnForPropDifference(
attributes,
i,
propKey,
serverDifferences$jscomp$0
)
}
continue
case 'rowSpan':
hydrateNumericAttribute(
domElement,
value,
'rowspan',
propKey,
extraAttributes,
serverDifferences
)
continue
case 'start':
hydrateNumericAttribute(
domElement,
value,
value,
propKey,
extraAttributes,
serverDifferences
)
continue
case 'xHeight':
hydrateAttribute(
domElement,
value,
'x-height',
propKey,
extraAttributes,
serverDifferences
)
continue
case 'xlinkActuate':
hydrateAttribute(
domElement,
value,
'xlink:actuate',
propKey,
extraAttributes,
serverDifferences
)
continue
case 'xlinkArcrole':
hydrateAttribute(
domElement,
value,
'xlink:arcrole',
propKey,
extraAttributes,
serverDifferences
)
continue
case 'xlinkRole':
hydrateAttribute(
domElement,
value,
'xlink:role',
propKey,
extraAttributes,
serverDifferences
)
continue
case 'xlinkShow':
hydrateAttribute(
domElement,
value,
'xlink:show',
propKey,
extraAttributes,
serverDifferences
)
continue
case 'xlinkTitle':
hydrateAttribute(
domElement,
value,
'xlink:title',
propKey,
extraAttributes,
serverDifferences
)
continue
case 'xlinkType':
hydrateAttribute(
domElement,
value,
'xlink:type',
propKey,
extraAttributes,
serverDifferences
)
continue
case 'xmlBase':
hydrateAttribute(
domElement,
value,
'xml:base',
propKey,
extraAttributes,
serverDifferences
)
continue
case 'xmlLang':
hydrateAttribute(
domElement,
value,
'xml:lang',
propKey,
extraAttributes,
serverDifferences
)
continue
case 'xmlSpace':
hydrateAttribute(
domElement,
value,
'xml:space',
propKey,
extraAttributes,
serverDifferences
)
continue
case 'inert':
'' !== propKey ||
didWarnForNewBooleanPropsWithEmptyValue[value] ||
((didWarnForNewBooleanPropsWithEmptyValue[value] = !0),
console.error(
'Received an empty string for a boolean attribute `%s`. This will treat the attribute as if it were false. Either pass `false` to silence this warning, or pass `true` if you used an empty string in earlier versions of React to indicate this attribute is true.',
value
))
hydrateBooleanAttribute(
domElement,
value,
value,
propKey,
extraAttributes,
serverDifferences
)
continue
default:
if (
!(2 < value.length) ||
('o' !== value[0] && 'O' !== value[0]) ||
('n' !== value[1] && 'N' !== value[1])
) {
i = getAttributeAlias(value)
attributes = !1
hostContext.context === HostContextNamespaceNone &&
'svg' !== tag &&
'math' !== tag
? extraAttributes.delete(i.toLowerCase())
: ((attributeName = value.toLowerCase()),
(attributeName = possibleStandardNames.hasOwnProperty(
attributeName
)
? possibleStandardNames[attributeName] || null
: null),
null !== attributeName &&
attributeName !== value &&
((attributes = !0),
extraAttributes.delete(attributeName)),
extraAttributes.delete(i))
a: if (
((attributeName = domElement),
(serverDifferences$jscomp$0 = i),
(i = propKey),
isAttributeNameSafe(serverDifferences$jscomp$0))
)
if (
attributeName.hasAttribute(serverDifferences$jscomp$0)
)
((attributeName = attributeName.getAttribute(
serverDifferences$jscomp$0
)),
checkAttributeStringCoercion(
i,
serverDifferences$jscomp$0
),
(i = attributeName === '' + i ? i : attributeName))
else {
switch (typeof i) {
case 'function':
case 'symbol':
break a
case 'boolean':
if (
((attributeName = serverDifferences$jscomp$0
.toLowerCase()
.slice(0, 5)),
'data-' !== attributeName &&
'aria-' !== attributeName)
)
break a
}
i = void 0 === i ? void 0 : null
}
else i = void 0
attributes ||
warnForPropDifference(
value,
i,
propKey,
serverDifferences
)
}
}
0 < extraAttributes.size &&
!0 !== props.suppressHydrationWarning &&
warnForExtraAttributes(domElement, extraAttributes, serverDifferences)
return 0 === Object.keys(serverDifferences).length
? null
: serverDifferences
}
function propNamesListJoin(list, combinator) {
switch (list.length) {
case 0:
return ''
case 1:
return list[0]
case 2:
return list[0] + ' ' + combinator + ' ' + list[1]
default:
return (
list.slice(0, -1).join(', ') +
', ' +
combinator +
' ' +
list[list.length - 1]
)
}
}
function getOwnerDocumentFromRootContainer(rootContainerElement) {
return 9 === rootContainerElement.nodeType
? rootContainerElement
: rootContainerElement.ownerDocument
}
function getOwnHostContext(namespaceURI) {
switch (namespaceURI) {
case SVG_NAMESPACE:
return HostContextNamespaceSvg
case MATH_NAMESPACE:
return HostContextNamespaceMath
default:
return HostContextNamespaceNone
}
}
function getChildHostContextProd(parentNamespace, type) {
if (parentNamespace === HostContextNamespaceNone)
switch (type) {
case 'svg':
return HostContextNamespaceSvg
case 'math':
return HostContextNamespaceMath
default:
return HostContextNamespaceNone
}
return parentNamespace === HostContextNamespaceSvg &&
'foreignObject' === type
? HostContextNamespaceNone
: parentNamespace
}
function shouldSetTextContent(type, props) {
return (
'textarea' === type ||
'noscript' === type ||
'string' === typeof props.children ||
'number' === typeof props.children ||
'bigint' === typeof props.children ||
('object' === typeof props.dangerouslySetInnerHTML &&
null !== props.dangerouslySetInnerHTML &&
null != props.dangerouslySetInnerHTML.__html)
)
}
function shouldAttemptEagerTransition() {
var event = window.event
if (event && 'popstate' === event.type) {
if (event === currentPopstateTransitionEvent) return !1
currentPopstateTransitionEvent = event
return !0
}
currentPopstateTransitionEvent = null
return !1
}
function handleErrorInNextTick(error) {
setTimeout(function () {
throw error
})
}
function commitMount(domElement, type, newProps) {
switch (type) {
case 'button':
case 'input':
case 'select':
case 'textarea':
newProps.autoFocus && domElement.focus()
break
case 'img':
newProps.src
? (domElement.src = newProps.src)
: newProps.srcSet && (domElement.srcset = newProps.srcSet)
}
}
function commitHydratedInstance() {}
function commitUpdate(domElement, type, oldProps, newProps) {
updateProperties(domElement, type, oldProps, newProps)
domElement[internalPropsKey] = newProps
}
function resetTextContent(domElement) {
setTextContent(domElement, '')
}
function commitTextUpdate(textInstance, oldText, newText) {
textInstance.nodeValue = newText
}
function warnForReactChildrenConflict(container) {
if (!container.__reactWarnedAboutChildrenConflict) {
var props = container[internalPropsKey] || null
if (null !== props) {
var fiber = getInstanceFromNode(container)
null !== fiber &&
('string' === typeof props.children ||
'number' === typeof props.children
? ((container.__reactWarnedAboutChildrenConflict = !0),
runWithFiberInDEV(fiber, function () {
console.error(
'Cannot use a ref on a React element as a container to `createRoot` or `createPortal` if that element also sets "children" text content using React. It should be a leaf with no children. Otherwise it\'s ambiguous which children should be used.'
)
}))
: null != props.dangerouslySetInnerHTML &&
((container.__reactWarnedAboutChildrenConflict = !0),
runWithFiberInDEV(fiber, function () {
console.error(
'Cannot use a ref on a React element as a container to `createRoot` or `createPortal` if that element also sets "dangerouslySetInnerHTML" using React. It should be a leaf with no children. Otherwise it\'s ambiguous which children should be used.'
)
})))
}
}
}
function isSingletonScope(type) {
return 'head' === type
}
function removeChild(parentInstance, child) {
parentInstance.removeChild(child)
}
function removeChildFromContainer(container, child) {
;(9 === container.nodeType
? container.body
: 'HTML' === container.nodeName
? container.ownerDocument.body
: container
).removeChild(child)
}
function clearHydrationBoundary(parentInstance, hydrationInstance) {
var node = hydrationInstance,
depth = 0
do {
var nextNode = node.nextSibling
parentInstance.removeChild(node)
if (nextNode && 8 === nextNode.nodeType)
if (
((node = nextNode.data),
node === SUSPENSE_END_DATA || node === ACTIVITY_END_DATA)
) {
if (0 === depth) {
parentInstance.removeChild(nextNode)
retryIfBlockedOn(hydrationInstance)
return
}
depth--
} else if (
node === SUSPENSE_START_DATA ||
node === SUSPENSE_PENDING_START_DATA ||
node === SUSPENSE_QUEUED_START_DATA ||
node === SUSPENSE_FALLBACK_START_DATA ||
node === ACTIVITY_START_DATA
)
depth++
else if (node === PREAMBLE_CONTRIBUTION_HTML)
releaseSingletonInstance(
parentInstance.ownerDocument.documentElement
)
else if (node === PREAMBLE_CONTRIBUTION_HEAD) {
node = parentInstance.ownerDocument.head
releaseSingletonInstance(node)
for (var node$jscomp$0 = node.firstChild; node$jscomp$0; ) {
var nextNode$jscomp$0 = node$jscomp$0.nextSibling,
nodeName = node$jscomp$0.nodeName
node$jscomp$0[internalHoistableMarker] ||
'SCRIPT' === nodeName ||
'STYLE' === nodeName ||
('LINK' === nodeName &&
'stylesheet' === node$jscomp$0.rel.toLowerCase()) ||
node.removeChild(node$jscomp$0)
node$jscomp$0 = nextNode$jscomp$0
}
} else
node === PREAMBLE_CONTRIBUTION_BODY &&
releaseSingletonInstance(parentInstance.ownerDocument.body)
node = nextNode
} while (node)
retryIfBlockedOn(hydrationInstance)
}
function hideOrUnhideDehydratedBoundary(suspenseInstance, isHidden) {
var node = suspenseInstance
suspenseInstance = 0
do {
var nextNode = node.nextSibling
1 === node.nodeType
? isHidden
? ((node._stashedDisplay = node.style.display),
(node.style.display = 'none'))
: ((node.style.display = node._stashedDisplay || ''),
'' === node.getAttribute('style') &&
node.removeAttribute('style'))
: 3 === node.nodeType &&
(isHidden
? ((node._stashedText = node.nodeValue), (node.nodeValue = ''))
: (node.nodeValue = node._stashedText || ''))
if (nextNode && 8 === nextNode.nodeType)
if (((node = nextNode.data), node === SUSPENSE_END_DATA))
if (0 === suspenseInstance) break
else suspenseInstance--
else
(node !== SUSPENSE_START_DATA &&
node !== SUSPENSE_PENDING_START_DATA &&
node !== SUSPENSE_QUEUED_START_DATA &&
node !== SUSPENSE_FALLBACK_START_DATA) ||
suspenseInstance++
node = nextNode
} while (node)
}
function hideDehydratedBoundary(suspenseInstance) {
hideOrUnhideDehydratedBoundary(suspenseInstance, !0)
}
function hideInstance(instance) {
instance = instance.style
'function' === typeof instance.setProperty
? instance.setProperty('display', 'none', 'important')
: (instance.display = 'none')
}
function hideTextInstance(textInstance) {
textInstance.nodeValue = ''
}
function unhideDehydratedBoundary(dehydratedInstance) {
hideOrUnhideDehydratedBoundary(dehydratedInstance, !1)
}
function unhideInstance(instance, props) {
props = props[STYLE]
props =
void 0 !== props && null !== props && props.hasOwnProperty('display')
? props.display
: null
instance.style.display =
null == props || 'boolean' === typeof props ? '' : ('' + props).trim()
}
function unhideTextInstance(textInstance, text) {
textInstance.nodeValue = text
}
function clearContainerSparingly(container) {
var nextNode = container.firstChild
nextNode && 10 === nextNode.nodeType && (nextNode = nextNode.nextSibling)
for (; nextNode; ) {
var node = nextNode
nextNode = nextNode.nextSibling
switch (node.nodeName) {
case 'HTML':
case 'HEAD':
case 'BODY':
clearContainerSparingly(node)
detachDeletedInstance(node)
continue
case 'SCRIPT':
case 'STYLE':
continue
case 'LINK':
if ('stylesheet' === node.rel.toLowerCase()) continue
}
container.removeChild(node)
}
}
function canHydrateInstance(instance, type, props, inRootOrSingleton) {
for (; 1 === instance.nodeType; ) {
var anyProps = props
if (instance.nodeName.toLowerCase() !== type.toLowerCase()) {
if (
!inRootOrSingleton &&
('INPUT' !== instance.nodeName || 'hidden' !== instance.type)
)
break
} else if (!inRootOrSingleton)
if ('input' === type && 'hidden' === instance.type) {
checkAttributeStringCoercion(anyProps.name, 'name')
var name = null == anyProps.name ? null : '' + anyProps.name
if (
'hidden' === anyProps.type &&
instance.getAttribute('name') === name
)
return instance
} else return instance
else if (!instance[internalHoistableMarker])
switch (type) {
case 'meta':
if (!instance.hasAttribute('itemprop')) break
return instance
case 'link':
name = instance.getAttribute('rel')
if (
'stylesheet' === name &&
instance.hasAttribute('data-precedence')
)
break
else if (
name !== anyProps.rel ||
instance.getAttribute('href') !==
(null == anyProps.href || '' === anyProps.href
? null
: anyProps.href) ||
instance.getAttribute('crossorigin') !==
(null == anyProps.crossOrigin
? null
: anyProps.crossOrigin) ||
instance.getAttribute('title') !==
(null == anyProps.title ? null : anyProps.title)
)
break
return instance
case 'style':
if (instance.hasAttribute('data-precedence')) break
return instance
case 'script':
name = instance.getAttribute('src')
if (
(name !== (null == anyProps.src ? null : anyProps.src) ||
instance.getAttribute('type') !==
(null == anyProps.type ? null : anyProps.type) ||
instance.getAttribute('crossorigin') !==
(null == anyProps.crossOrigin
? null
: anyProps.crossOrigin)) &&
name &&
instance.hasAttribute('async') &&
!instance.hasAttribute('itemprop')
)
break
return instance
default:
return instance
}
instance = getNextHydratable(instance.nextSibling)
if (null === instance) break
}
return null
}
function canHydrateTextInstance(instance, text, inRootOrSingleton) {
if ('' === text) return null
for (; 3 !== instance.nodeType; ) {
if (
(1 !== instance.nodeType ||
'INPUT' !== instance.nodeName ||
'hidden' !== instance.type) &&
!inRootOrSingleton
)
return null
instance = getNextHydratable(instance.nextSibling)
if (null === instance) return null
}
return instance
}
function canHydrateHydrationBoundary(instance, inRootOrSingleton) {
for (; 8 !== instance.nodeType; ) {
if (
(1 !== instance.nodeType ||
'INPUT' !== instance.nodeName ||
'hidden' !== instance.type) &&
!inRootOrSingleton
)
return null
instance = getNextHydratable(instance.nextSibling)
if (null === instance) return null
}
return instance
}
function isSuspenseInstancePending(instance) {
return (
instance.data === SUSPENSE_PENDING_START_DATA ||
instance.data === SUSPENSE_QUEUED_START_DATA
)
}
function isSuspenseInstanceFallback(instance) {
return (
instance.data === SUSPENSE_FALLBACK_START_DATA ||
(instance.data === SUSPENSE_PENDING_START_DATA &&
instance.ownerDocument.readyState !== DOCUMENT_READY_STATE_LOADING)
)
}
function registerSuspenseInstanceRetry(instance, callback) {
var ownerDocument = instance.ownerDocument
if (instance.data === SUSPENSE_QUEUED_START_DATA)
instance._reactRetry = callback
else if (
instance.data !== SUSPENSE_PENDING_START_DATA ||
ownerDocument.readyState !== DOCUMENT_READY_STATE_LOADING
)
callback()
else {
var listener = function () {
callback()
ownerDocument.removeEventListener('DOMContentLoaded', listener)
}
ownerDocument.addEventListener('DOMContentLoaded', listener)
instance._reactRetry = listener
}
}
function getNextHydratable(node) {
for (; null != node; node = node.nextSibling) {
var nodeType = node.nodeType
if (1 === nodeType || 3 === nodeType) break
if (8 === nodeType) {
nodeType = node.data
if (
nodeType === SUSPENSE_START_DATA ||
nodeType === SUSPENSE_FALLBACK_START_DATA ||
nodeType === SUSPENSE_PENDING_START_DATA ||
nodeType === SUSPENSE_QUEUED_START_DATA ||
nodeType === ACTIVITY_START_DATA ||
nodeType === FORM_STATE_IS_MATCHING ||
nodeType === FORM_STATE_IS_NOT_MATCHING
)
break
if (nodeType === SUSPENSE_END_DATA || nodeType === ACTIVITY_END_DATA)
return null
}
}
return node
}
function describeHydratableInstanceForDevWarnings(instance) {
if (1 === instance.nodeType) {
for (
var JSCompiler_temp_const = instance.nodeName.toLowerCase(),
serverDifferences = {},
attributes = instance.attributes,
i = 0;
i < attributes.length;
i++
) {
var attr = attributes[i]
serverDifferences[getPropNameFromAttributeName(attr.name)] =
'style' === attr.name.toLowerCase()
? getStylesObjectFromElement(instance)
: attr.value
}
return { type: JSCompiler_temp_const, props: serverDifferences }
}
return 8 === instance.nodeType
? instance.data === ACTIVITY_START_DATA
? { type: 'Activity', props: {} }
: { type: 'Suspense', props: {} }
: instance.nodeValue
}
function diffHydratedTextForDevWarnings(textInstance, text, parentProps) {
return null === parentProps ||
!0 !== parentProps[SUPPRESS_HYDRATION_WARNING]
? (textInstance.nodeValue === text
? (textInstance = null)
: ((text = normalizeMarkupForTextOrAttribute(text)),
(textInstance =
normalizeMarkupForTextOrAttribute(textInstance.nodeValue) ===
text
? null
: textInstance.nodeValue)),
textInstance)
: null
}
function getNextHydratableInstanceAfterHydrationBoundary(
hydrationInstance
) {
hydrationInstance = hydrationInstance.nextSibling
for (var depth = 0; hydrationInstance; ) {
if (8 === hydrationInstance.nodeType) {
var data = hydrationInstance.data
if (data === SUSPENSE_END_DATA || data === ACTIVITY_END_DATA) {
if (0 === depth)
return getNextHydratable(hydrationInstance.nextSibling)
depth--
} else
(data !== SUSPENSE_START_DATA &&
data !== SUSPENSE_FALLBACK_START_DATA &&
data !== SUSPENSE_PENDING_START_DATA &&
data !== SUSPENSE_QUEUED_START_DATA &&
data !== ACTIVITY_START_DATA) ||
depth++
}
hydrationInstance = hydrationInstance.nextSibling
}
return null
}
function getParentHydrationBoundary(targetInstance) {
targetInstance = targetInstance.previousSibling
for (var depth = 0; targetInstance; ) {
if (8 === targetInstance.nodeType) {
var data = targetInstance.data
if (
data === SUSPENSE_START_DATA ||
data === SUSPENSE_FALLBACK_START_DATA ||
data === SUSPENSE_PENDING_START_DATA ||
data === SUSPENSE_QUEUED_START_DATA ||
data === ACTIVITY_START_DATA
) {
if (0 === depth) return targetInstance
depth--
} else
(data !== SUSPENSE_END_DATA && data !== ACTIVITY_END_DATA) ||
depth++
}
targetInstance = targetInstance.previousSibling
}
return null
}
function commitHydratedContainer(container) {
retryIfBlockedOn(container)
}
function commitHydratedActivityInstance(activityInstance) {
retryIfBlockedOn(activityInstance)
}
function commitHydratedSuspenseInstance(suspenseInstance) {
retryIfBlockedOn(suspenseInstance)
}
function resolveSingletonInstance(
type,
props,
rootContainerInstance,
hostContext,
validateDOMNestingDev
) {
validateDOMNestingDev &&
validateDOMNesting(type, hostContext.ancestorInfo)
props = getOwnerDocumentFromRootContainer(rootContainerInstance)
switch (type) {
case 'html':
type = props.documentElement
if (!type)
throw Error(
'React expected an <html> element (document.documentElement) to exist in the Document but one was not found. React never removes the documentElement for any Document it renders into so the cause is likely in some other script running on this page.'
)
return type
case 'head':
type = props.head
if (!type)
throw Error(
'React expected a <head> element (document.head) to exist in the Document but one was not found. React never removes the head for any Document it renders into so the cause is likely in some other script running on this page.'
)
return type
case 'body':
type = props.body
if (!type)
throw Error(
'React expected a <body> element (document.body) to exist in the Document but one was not found. React never removes the body for any Document it renders into so the cause is likely in some other script running on this page.'
)
return type
default:
throw Error(
'resolveSingletonInstance was called with an element type that is not supported. This is a bug in React.'
)
}
}
function acquireSingletonInstance(
type,
props,
instance,
internalInstanceHandle
) {
if (
!instance[internalContainerInstanceKey] &&
getInstanceFromNode(instance)
) {
var tagName = instance.tagName.toLowerCase()
console.error(
'You are mounting a new %s component when a previous one has not first unmounted. It is an error to render more than one %s component at a time and attributes and children of these components will likely fail in unpredictable ways. Please only render a single instance of <%s> and if you need to mount a new one, ensure any previous ones have unmounted first.',
tagName,
tagName,
tagName
)
}
switch (type) {
case 'html':
case 'head':
case 'body':
break
default:
console.error(
'acquireSingletonInstance was called with an element type that is not supported. This is a bug in React.'
)
}
for (tagName = instance.attributes; tagName.length; )
instance.removeAttributeNode(tagName[0])
setInitialProperties(instance, type, props)
instance[internalInstanceKey] = internalInstanceHandle
instance[internalPropsKey] = props
}
function releaseSingletonInstance(instance) {
for (var attributes = instance.attributes; attributes.length; )
instance.removeAttributeNode(attributes[0])
detachDeletedInstance(instance)
}
function getHoistableRoot(container) {
return 'function' === typeof container.getRootNode
? container.getRootNode()
: 9 === container.nodeType
? container
: container.ownerDocument
}
function preconnectAs(rel, href, crossOrigin) {
var ownerDocument = globalDocument
if (ownerDocument && 'string' === typeof href && href) {
var limitedEscapedHref =
escapeSelectorAttributeValueInsideDoubleQuotes(href)
limitedEscapedHref =
'link[rel="' + rel + '"][href="' + limitedEscapedHref + '"]'
'string' === typeof crossOrigin &&
(limitedEscapedHref += '[crossorigin="' + crossOrigin + '"]')
preconnectsSet.has(limitedEscapedHref) ||
(preconnectsSet.add(limitedEscapedHref),
(rel = { rel: rel, crossOrigin: crossOrigin, href: href }),
null === ownerDocument.querySelector(limitedEscapedHref) &&
((href = ownerDocument.createElement('link')),
setInitialProperties(href, 'link', rel),
markNodeAsHoistable(href),
ownerDocument.head.appendChild(href)))
}
}
function getResource(type, currentProps, pendingProps, currentResource) {
var resourceRoot = (resourceRoot = rootInstanceStackCursor.current)
? getHoistableRoot(resourceRoot)
: null
if (!resourceRoot)
throw Error(
'"resourceRoot" was expected to exist. This is a bug in React.'
)
switch (type) {
case 'meta':
case 'title':
return null
case 'style':
return 'string' === typeof pendingProps.precedence &&
'string' === typeof pendingProps.href
? ((pendingProps = getStyleKey(pendingProps.href)),
(currentProps =
getResourcesFromRoot(resourceRoot).hoistableStyles),
(currentResource = currentProps.get(pendingProps)),
currentResource ||
((currentResource = {
type: 'style',
instance: null,
count: 0,
state: null,
}),
currentProps.set(pendingProps, currentResource)),
currentResource)
: { type: 'void', instance: null, count: 0, state: null }
case 'link':
if (
'stylesheet' === pendingProps.rel &&
'string' === typeof pendingProps.href &&
'string' === typeof pendingProps.precedence
) {
type = getStyleKey(pendingProps.href)
var _styles = getResourcesFromRoot(resourceRoot).hoistableStyles,
_resource = _styles.get(type)
if (
!_resource &&
((resourceRoot = resourceRoot.ownerDocument || resourceRoot),
(_resource = {
type: 'stylesheet',
instance: null,
count: 0,
state: { loading: NotLoaded, preload: null },
}),
_styles.set(type, _resource),
(_styles = resourceRoot.querySelector(
getStylesheetSelectorFromKey(type)
)) &&
!_styles._p &&
((_resource.instance = _styles),
(_resource.state.loading = Loaded | Inserted)),
!preloadPropsMap.has(type))
) {
var preloadProps = {
rel: 'preload',
as: 'style',
href: pendingProps.href,
crossOrigin: pendingProps.crossOrigin,
integrity: pendingProps.integrity,
media: pendingProps.media,
hrefLang: pendingProps.hrefLang,
referrerPolicy: pendingProps.referrerPolicy,
}
preloadPropsMap.set(type, preloadProps)
_styles ||
preloadStylesheet(
resourceRoot,
type,
preloadProps,
_resource.state
)
}
if (currentProps && null === currentResource)
throw (
(pendingProps =
'\n\n - ' +
describeLinkForResourceErrorDEV(currentProps) +
'\n + ' +
describeLinkForResourceErrorDEV(pendingProps)),
Error(
'Expected <link> not to update to be updated to a stylesheet with precedence. Check the `rel`, `href`, and `precedence` props of this component. Alternatively, check whether two different <link> components render in the same slot or share the same key.' +
pendingProps
)
)
return _resource
}
if (currentProps && null !== currentResource)
throw (
(pendingProps =
'\n\n - ' +
describeLinkForResourceErrorDEV(currentProps) +
'\n + ' +
describeLinkForResourceErrorDEV(pendingProps)),
Error(
'Expected stylesheet with precedence to not be updated to a different kind of <link>. Check the `rel`, `href`, and `precedence` props of this component. Alternatively, check whether two different <link> components render in the same slot or share the same key.' +
pendingProps
)
)
return null
case 'script':
return (
(currentProps = pendingProps.async),
(pendingProps = pendingProps.src),
'string' === typeof pendingProps &&
currentProps &&
'function' !== typeof currentProps &&
'symbol' !== typeof currentProps
? ((pendingProps = getScriptKey(pendingProps)),
(currentProps =
getResourcesFromRoot(resourceRoot).hoistableScripts),
(currentResource = currentProps.get(pendingProps)),
currentResource ||
((currentResource = {
type: 'script',
instance: null,
count: 0,
state: null,
}),
currentProps.set(pendingProps, currentResource)),
currentResource)
: { type: 'void', instance: null, count: 0, state: null }
)
default:
throw Error(
'getResource encountered a type it did not expect: "' +
type +
'". this is a bug in React.'
)
}
}
function describeLinkForResourceErrorDEV(props) {
var describedProps = 0,
description = '<link'
'string' === typeof props.rel
? (describedProps++, (description += ' rel="' + props.rel + '"'))
: hasOwnProperty.call(props, 'rel') &&
(describedProps++,
(description +=
' rel="' +
(null === props.rel ? 'null' : 'invalid type ' + typeof props.rel) +
'"'))
'string' === typeof props.href
? (describedProps++, (description += ' href="' + props.href + '"'))
: hasOwnProperty.call(props, 'href') &&
(describedProps++,
(description +=
' href="' +
(null === props.href
? 'null'
: 'invalid type ' + typeof props.href) +
'"'))
'string' === typeof props.precedence
? (describedProps++,
(description += ' precedence="' + props.precedence + '"'))
: hasOwnProperty.call(props, 'precedence') &&
(describedProps++,
(description +=
' precedence={' +
(null === props.precedence
? 'null'
: 'invalid type ' + typeof props.precedence) +
'}'))
Object.getOwnPropertyNames(props).length > describedProps &&
(description += ' ...')
return description + ' />'
}
function getStyleKey(href) {
return (
'href="' + escapeSelectorAttributeValueInsideDoubleQuotes(href) + '"'
)
}
function getStylesheetSelectorFromKey(key) {
return 'link[rel="stylesheet"][' + key + ']'
}
function stylesheetPropsFromRawProps(rawProps) {
return assign({}, rawProps, {
'data-precedence': rawProps.precedence,
precedence: null,
})
}
function preloadStylesheet(ownerDocument, key, preloadProps, state) {
ownerDocument.querySelector(
'link[rel="preload"][as="style"][' + key + ']'
)
? (state.loading = Loaded)
: ((key = ownerDocument.createElement('link')),
(state.preload = key),
key.addEventListener('load', function () {
return (state.loading |= Loaded)
}),
key.addEventListener('error', function () {
return (state.loading |= Errored)
}),
setInitialProperties(key, 'link', preloadProps),
markNodeAsHoistable(key),
ownerDocument.head.appendChild(key))
}
function getScriptKey(src) {
return (
'[src="' + escapeSelectorAttributeValueInsideDoubleQuotes(src) + '"]'
)
}
function getScriptSelectorFromKey(key) {
return 'script[async]' + key
}
function acquireResource(hoistableRoot, resource, props) {
resource.count++
if (null === resource.instance)
switch (resource.type) {
case 'style':
var instance = hoistableRoot.querySelector(
'style[data-href~="' +
escapeSelectorAttributeValueInsideDoubleQuotes(props.href) +
'"]'
)
if (instance)
return (
(resource.instance = instance),
markNodeAsHoistable(instance),
instance
)
var styleProps = assign({}, props, {
'data-href': props.href,
'data-precedence': props.precedence,
href: null,
precedence: null,
})
instance = (
hoistableRoot.ownerDocument || hoistableRoot
).createElement('style')
markNodeAsHoistable(instance)
setInitialProperties(instance, 'style', styleProps)
insertStylesheet(instance, props.precedence, hoistableRoot)
return (resource.instance = instance)
case 'stylesheet':
styleProps = getStyleKey(props.href)
var _instance = hoistableRoot.querySelector(
getStylesheetSelectorFromKey(styleProps)
)
if (_instance)
return (
(resource.state.loading |= Inserted),
(resource.instance = _instance),
markNodeAsHoistable(_instance),
_instance
)
instance = stylesheetPropsFromRawProps(props)
;(styleProps = preloadPropsMap.get(styleProps)) &&
adoptPreloadPropsForStylesheet(instance, styleProps)
_instance = (
hoistableRoot.ownerDocument || hoistableRoot
).createElement('link')
markNodeAsHoistable(_instance)
var linkInstance = _instance
linkInstance._p = new Promise(function (resolve, reject) {
linkInstance.onload = resolve
linkInstance.onerror = reject
})
setInitialProperties(_instance, 'link', instance)
resource.state.loading |= Inserted
insertStylesheet(_instance, props.precedence, hoistableRoot)
return (resource.instance = _instance)
case 'script':
_instance = getScriptKey(props.src)
if (
(styleProps = hoistableRoot.querySelector(
getScriptSelectorFromKey(_instance)
))
)
return (
(resource.instance = styleProps),
markNodeAsHoistable(styleProps),
styleProps
)
instance = props
if ((styleProps = preloadPropsMap.get(_instance)))
((instance = assign({}, props)),
adoptPreloadPropsForScript(instance, styleProps))
hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot
styleProps = hoistableRoot.createElement('script')
markNodeAsHoistable(styleProps)
setInitialProperties(styleProps, 'link', instance)
hoistableRoot.head.appendChild(styleProps)
return (resource.instance = styleProps)
case 'void':
return null
default:
throw Error(
'acquireResource encountered a resource type it did not expect: "' +
resource.type +
'". this is a bug in React.'
)
}
else
'stylesheet' === resource.type &&
(resource.state.loading & Inserted) === NotLoaded &&
((instance = resource.instance),
(resource.state.loading |= Inserted),
insertStylesheet(instance, props.precedence, hoistableRoot))
return resource.instance
}
function insertStylesheet(instance, precedence, root) {
for (
var nodes = root.querySelectorAll(
'link[rel="stylesheet"][data-precedence],style[data-precedence]'
),
last = nodes.length ? nodes[nodes.length - 1] : null,
prior = last,
i = 0;
i < nodes.length;
i++
) {
var node = nodes[i]
if (node.dataset.precedence === precedence) prior = node
else if (prior !== last) break
}
prior
? prior.parentNode.insertBefore(instance, prior.nextSibling)
: ((precedence = 9 === root.nodeType ? root.head : root),
precedence.insertBefore(instance, precedence.firstChild))
}
function adoptPreloadPropsForStylesheet(stylesheetProps, preloadProps) {
null == stylesheetProps.crossOrigin &&
(stylesheetProps.crossOrigin = preloadProps.crossOrigin)
null == stylesheetProps.referrerPolicy &&
(stylesheetProps.referrerPolicy = preloadProps.referrerPolicy)
null == stylesheetProps.title &&
(stylesheetProps.title = preloadProps.title)
}
function adoptPreloadPropsForScript(scriptProps, preloadProps) {
null == scriptProps.crossOrigin &&
(scriptProps.crossOrigin = preloadProps.crossOrigin)
null == scriptProps.referrerPolicy &&
(scriptProps.referrerPolicy = preloadProps.referrerPolicy)
null == scriptProps.integrity &&
(scriptProps.integrity = preloadProps.integrity)
}
function getHydratableHoistableCache(type, keyAttribute, ownerDocument) {
if (null === tagCaches) {
var cache = new Map()
var caches = (tagCaches = new Map())
caches.set(ownerDocument, cache)
} else
((caches = tagCaches),
(cache = caches.get(ownerDocument)),
cache || ((cache = new Map()), caches.set(ownerDocument, cache)))
if (cache.has(type)) return cache
cache.set(type, null)
ownerDocument = ownerDocument.getElementsByTagName(type)
for (caches = 0; caches < ownerDocument.length; caches++) {
var node = ownerDocument[caches]
if (
!(
node[internalHoistableMarker] ||
node[internalInstanceKey] ||
('link' === type && 'stylesheet' === node.getAttribute('rel'))
) &&
node.namespaceURI !== SVG_NAMESPACE
) {
var nodeKey = node.getAttribute(keyAttribute) || ''
nodeKey = type + nodeKey
var existing = cache.get(nodeKey)
existing ? existing.push(node) : cache.set(nodeKey, [node])
}
}
return cache
}
function mountHoistable(hoistableRoot, type, instance) {
hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot
hoistableRoot.head.insertBefore(
instance,
'title' === type ? hoistableRoot.querySelector('head > title') : null
)
}
function isHostHoistableType(type, props, hostContext) {
var outsideHostContainerContext =
!hostContext.ancestorInfo.containerTagInScope
if (
hostContext.context === HostContextNamespaceSvg ||
null != props.itemProp
)
return (
!outsideHostContainerContext ||
null == props.itemProp ||
('meta' !== type &&
'title' !== type &&
'style' !== type &&
'link' !== type &&
'script' !== type) ||
console.error(
'Cannot render a <%s> outside the main document if it has an `itemProp` prop. `itemProp` suggests the tag belongs to an `itemScope` which can appear anywhere in the DOM. If you were intending for React to hoist this <%s> remove the `itemProp` prop. Otherwise, try moving this tag into the <head> or <body> of the Document.',
type,
type
),
!1
)
switch (type) {
case 'meta':
case 'title':
return !0
case 'style':
if (
'string' !== typeof props.precedence ||
'string' !== typeof props.href ||
'' === props.href
) {
outsideHostContainerContext &&
console.error(
'Cannot render a <style> outside the main document without knowing its precedence and a unique href key. React can hoist and deduplicate <style> tags if you provide a `precedence` prop along with an `href` prop that does not conflict with the `href` values used in any other hoisted <style> or <link rel="stylesheet" ...> tags. Note that hoisting <style> tags is considered an advanced feature that most will not use directly. Consider moving the <style> tag to the <head> or consider adding a `precedence="default"` and `href="some unique resource identifier"`.'
)
break
}
return !0
case 'link':
if (
'string' !== typeof props.rel ||
'string' !== typeof props.href ||
'' === props.href ||
props.onLoad ||
props.onError
) {
if (
'stylesheet' === props.rel &&
'string' === typeof props.precedence
) {
type = props.href
var onError = props.onError,
disabled = props.disabled
hostContext = []
props.onLoad && hostContext.push('`onLoad`')
onError && hostContext.push('`onError`')
null != disabled && hostContext.push('`disabled`')
onError = propNamesListJoin(hostContext, 'and')
onError += 1 === hostContext.length ? ' prop' : ' props'
disabled =
1 === hostContext.length ? 'an ' + onError : 'the ' + onError
hostContext.length &&
console.error(
'React encountered a <link rel="stylesheet" href="%s" ... /> with a `precedence` prop that also included %s. The presence of loading and error handlers indicates an intent to manage the stylesheet loading state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the %s, otherwise remove the `precedence` prop.',
type,
disabled,
onError
)
}
outsideHostContainerContext &&
('string' !== typeof props.rel ||
'string' !== typeof props.href ||
'' === props.href
? console.error(
'Cannot render a <link> outside the main document without a `rel` and `href` prop. Try adding a `rel` and/or `href` prop to this <link> or moving the link into the <head> tag'
)
: (props.onError || props.onLoad) &&
console.error(
'Cannot render a <link> with onLoad or onError listeners outside the main document. Try removing onLoad={...} and onError={...} or moving it into the root <head> tag or somewhere in the <body>.'
))
break
}
switch (props.rel) {
case 'stylesheet':
return (
(type = props.precedence),
(props = props.disabled),
'string' !== typeof type &&
outsideHostContainerContext &&
console.error(
'Cannot render a <link rel="stylesheet" /> outside the main document without knowing its precedence. Consider adding precedence="default" or moving it into the root <head> tag.'
),
'string' === typeof type && null == props
)
default:
return !0
}
case 'script':
type =
props.async &&
'function' !== typeof props.async &&
'symbol' !== typeof props.async
if (
!type ||
props.onLoad ||
props.onError ||
!props.src ||
'string' !== typeof props.src
) {
outsideHostContainerContext &&
(type
? props.onLoad || props.onError
? console.error(
'Cannot render a <script> with onLoad or onError listeners outside the main document. Try removing onLoad={...} and onError={...} or moving it into the root <head> tag or somewhere in the <body>.'
)
: console.error(
'Cannot render a <script> outside the main document without `async={true}` and a non-empty `src` prop. Ensure there is a valid `src` and either make the script async or move it into the root <head> tag or somewhere in the <body>.'
)
: console.error(
'Cannot render a sync or defer <script> outside the main document without knowing its order. Try adding async="" or moving it into the root <head> tag.'
))
break
}
return !0
case 'noscript':
case 'template':
outsideHostContainerContext &&
console.error(
'Cannot render <%s> outside the main document. Try moving it into the root <head> tag.',
type
)
}
return !1
}
function preloadResource(resource) {
return 'stylesheet' === resource.type &&
(resource.state.loading & Settled) === NotLoaded
? !1
: !0
}
function suspendResource(hoistableRoot, resource, props) {
if (null === suspendedState)
throw Error(
'Internal React Error: suspendedState null when it was expected to exists. Please report this as a React bug.'
)
var state = suspendedState
if (
'stylesheet' === resource.type &&
('string' !== typeof props.media ||
!1 !== matchMedia(props.media).matches) &&
(resource.state.loading & Inserted) === NotLoaded
) {
if (null === resource.instance) {
var key = getStyleKey(props.href),
instance = hoistableRoot.querySelector(
getStylesheetSelectorFromKey(key)
)
if (instance) {
hoistableRoot = instance._p
null !== hoistableRoot &&
'object' === typeof hoistableRoot &&
'function' === typeof hoistableRoot.then &&
(state.count++,
(state = onUnsuspend.bind(state)),
hoistableRoot.then(state, state))
resource.state.loading |= Inserted
resource.instance = instance
markNodeAsHoistable(instance)
return
}
instance = hoistableRoot.ownerDocument || hoistableRoot
props = stylesheetPropsFromRawProps(props)
;(key = preloadPropsMap.get(key)) &&
adoptPreloadPropsForStylesheet(props, key)
instance = instance.createElement('link')
markNodeAsHoistable(instance)
var linkInstance = instance
linkInstance._p = new Promise(function (resolve, reject) {
linkInstance.onload = resolve
linkInstance.onerror = reject
})
setInitialProperties(instance, 'link', props)
resource.instance = instance
}
null === state.stylesheets && (state.stylesheets = new Map())
state.stylesheets.set(resource, hoistableRoot)
;(hoistableRoot = resource.state.preload) &&
(resource.state.loading & Settled) === NotLoaded &&
(state.count++,
(resource = onUnsuspend.bind(state)),
hoistableRoot.addEventListener('load', resource),
hoistableRoot.addEventListener('error', resource))
}
}
function waitForCommitToBeReady() {
if (null === suspendedState)
throw Error(
'Internal React Error: suspendedState null when it was expected to exists. Please report this as a React bug.'
)
var state = suspendedState
state.stylesheets &&
0 === state.count &&
insertSuspendedStylesheets(state, state.stylesheets)
return 0 < state.count
? function (commit) {
var stylesheetTimer = setTimeout(function () {
state.stylesheets &&
insertSuspendedStylesheets(state, state.stylesheets)
if (state.unsuspend) {
var unsuspend = state.unsuspend
state.unsuspend = null
unsuspend()
}
}, 6e4)
state.unsuspend = commit
return function () {
state.unsuspend = null
clearTimeout(stylesheetTimer)
}
}
: null
}
function onUnsuspend() {
this.count--
if (0 === this.count)
if (this.stylesheets) insertSuspendedStylesheets(this, this.stylesheets)
else if (this.unsuspend) {
var unsuspend = this.unsuspend
this.unsuspend = null
unsuspend()
}
}
function insertSuspendedStylesheets(state, resources) {
state.stylesheets = null
null !== state.unsuspend &&
(state.count++,
(precedencesByRoot = new Map()),
resources.forEach(insertStylesheetIntoRoot, state),
(precedencesByRoot = null),
onUnsuspend.call(state))
}
function insertStylesheetIntoRoot(root, resource) {
if (!(resource.state.loading & Inserted)) {
var precedences = precedencesByRoot.get(root)
if (precedences) var last = precedences.get(LAST_PRECEDENCE)
else {
precedences = new Map()
precedencesByRoot.set(root, precedences)
for (
var nodes = root.querySelectorAll(
'link[data-precedence],style[data-precedence]'
),
i = 0;
i < nodes.length;
i++
) {
var node = nodes[i]
if (
'LINK' === node.nodeName ||
'not all' !== node.getAttribute('media')
)
(precedences.set(node.dataset.precedence, node), (last = node))
}
last && precedences.set(LAST_PRECEDENCE, last)
}
nodes = resource.instance
node = nodes.getAttribute('data-precedence')
i = precedences.get(node) || last
i === last && precedences.set(LAST_PRECEDENCE, nodes)
precedences.set(node, nodes)
this.count++
last = onUnsuspend.bind(this)
nodes.addEventListener('load', last)
nodes.addEventListener('error', last)
i
? i.parentNode.insertBefore(nodes, i.nextSibling)
: ((root = 9 === root.nodeType ? root.head : root),
root.insertBefore(nodes, root.firstChild))
resource.state.loading |= Inserted
}
}
function FiberRootNode(
containerInfo,
tag,
hydrate,
identifierPrefix,
onUncaughtError,
onCaughtError,
onRecoverableError,
onDefaultTransitionIndicator,
formState
) {
this.tag = 1
this.containerInfo = containerInfo
this.pingCache = this.current = this.pendingChildren = null
this.timeoutHandle = noTimeout
this.callbackNode =
this.next =
this.pendingContext =
this.context =
this.cancelPendingCommit =
null
this.callbackPriority = 0
this.expirationTimes = createLaneMap(-1)
this.entangledLanes =
this.shellSuspendCounter =
this.errorRecoveryDisabledLanes =
this.expiredLanes =
this.warmLanes =
this.pingedLanes =
this.suspendedLanes =
this.pendingLanes =
0
this.entanglements = createLaneMap(0)
this.hiddenUpdates = createLaneMap(null)
this.identifierPrefix = identifierPrefix
this.onUncaughtError = onUncaughtError
this.onCaughtError = onCaughtError
this.onRecoverableError = onRecoverableError
this.pooledCache = null
this.pooledCacheLanes = 0
this.formState = formState
this.incompleteTransitions = new Map()
this.passiveEffectDuration = this.effectDuration = -0
this.memoizedUpdaters = new Set()
containerInfo = this.pendingUpdatersLaneMap = []
for (tag = 0; 31 > tag; tag++) containerInfo.push(new Set())
this._debugRootType = hydrate ? 'hydrateRoot()' : 'createRoot()'
}
function createFiberRoot(
containerInfo,
tag,
hydrate,
initialChildren,
hydrationCallbacks,
isStrictMode,
identifierPrefix,
formState,
onUncaughtError,
onCaughtError,
onRecoverableError,
onDefaultTransitionIndicator
) {
containerInfo = new FiberRootNode(
containerInfo,
tag,
hydrate,
identifierPrefix,
onUncaughtError,
onCaughtError,
onRecoverableError,
onDefaultTransitionIndicator,
formState
)
tag = ConcurrentMode
!0 === isStrictMode && (tag |= StrictLegacyMode | StrictEffectsMode)
isDevToolsPresent && (tag |= ProfileMode)
isStrictMode = createFiber(3, null, null, tag)
containerInfo.current = isStrictMode
isStrictMode.stateNode = containerInfo
tag = createCache()
retainCache(tag)
containerInfo.pooledCache = tag
retainCache(tag)
isStrictMode.memoizedState = {
element: initialChildren,
isDehydrated: hydrate,
cache: tag,
}
initializeUpdateQueue(isStrictMode)
return containerInfo
}
function getContextForSubtree(parentComponent) {
if (!parentComponent) return emptyContextObject
parentComponent = emptyContextObject
return parentComponent
}
function updateContainerImpl(
rootFiber,
lane,
element,
container,
parentComponent,
callback
) {
if (
injectedHook &&
'function' === typeof injectedHook.onScheduleFiberRoot
)
try {
injectedHook.onScheduleFiberRoot(rendererID, container, element)
} catch (err) {
hasLoggedError ||
((hasLoggedError = !0),
console.error(
'React instrumentation encountered an error: %o',
err
))
}
null !== injectedProfilingHooks &&
'function' === typeof injectedProfilingHooks.markRenderScheduled &&
injectedProfilingHooks.markRenderScheduled(lane)
parentComponent = getContextForSubtree(parentComponent)
null === container.context
? (container.context = parentComponent)
: (container.pendingContext = parentComponent)
isRendering &&
null !== current &&
!didWarnAboutNestedUpdates &&
((didWarnAboutNestedUpdates = !0),
console.error(
'Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate.\n\nCheck the render method of %s.',
getComponentNameFromFiber(current) || 'Unknown'
))
container = createUpdate(lane)
container.payload = { element: element }
callback = void 0 === callback ? null : callback
null !== callback &&
('function' !== typeof callback &&
console.error(
'Expected the last optional `callback` argument to be a function. Instead received: %s.',
callback
),
(container.callback = callback))
element = enqueueUpdate(rootFiber, container, lane)
null !== element &&
(scheduleUpdateOnFiber(element, rootFiber, lane),
entangleTransitions(element, rootFiber, lane))
}
function markRetryLaneImpl(fiber, retryLane) {
fiber = fiber.memoizedState
if (null !== fiber && null !== fiber.dehydrated) {
var a = fiber.retryLane
fiber.retryLane = 0 !== a && a < retryLane ? a : retryLane
}
}
function markRetryLaneIfNotHydrated(fiber, retryLane) {
markRetryLaneImpl(fiber, retryLane)
;(fiber = fiber.alternate) && markRetryLaneImpl(fiber, retryLane)
}
function attemptContinuousHydration(fiber) {
if (13 === fiber.tag || 31 === fiber.tag) {
var root = enqueueConcurrentRenderForLane(fiber, 67108864)
null !== root && scheduleUpdateOnFiber(root, fiber, 67108864)
markRetryLaneIfNotHydrated(fiber, 67108864)
}
}
function attemptHydrationAtCurrentPriority(fiber) {
if (13 === fiber.tag || 31 === fiber.tag) {
var lane = requestUpdateLane(fiber)
lane = getBumpedLaneForHydrationByLane(lane)
var root = enqueueConcurrentRenderForLane(fiber, lane)
null !== root && scheduleUpdateOnFiber(root, fiber, lane)
markRetryLaneIfNotHydrated(fiber, lane)
}
}
function getCurrentFiberForDevTools() {
return current
}
function getLaneLabelMap() {
for (var map = new Map(), lane = 1, index = 0; 31 > index; index++) {
var label = getLabelForLane(lane)
map.set(lane, label)
lane *= 2
}
return map
}
function dispatchDiscreteEvent(
domEventName,
eventSystemFlags,
container,
nativeEvent
) {
var prevTransition = ReactSharedInternals.T
ReactSharedInternals.T = null
var previousPriority = ReactDOMSharedInternals.p
try {
;((ReactDOMSharedInternals.p = DiscreteEventPriority),
dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent))
} finally {
;((ReactDOMSharedInternals.p = previousPriority),
(ReactSharedInternals.T = prevTransition))
}
}
function dispatchContinuousEvent(
domEventName,
eventSystemFlags,
container,
nativeEvent
) {
var prevTransition = ReactSharedInternals.T
ReactSharedInternals.T = null
var previousPriority = ReactDOMSharedInternals.p
try {
;((ReactDOMSharedInternals.p = ContinuousEventPriority),
dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent))
} finally {
;((ReactDOMSharedInternals.p = previousPriority),
(ReactSharedInternals.T = prevTransition))
}
}
function dispatchEvent(
domEventName,
eventSystemFlags,
targetContainer,
nativeEvent
) {
if (_enabled) {
var blockedOn = findInstanceBlockingEvent(nativeEvent)
if (null === blockedOn)
(dispatchEventForPluginEventSystem(
domEventName,
eventSystemFlags,
nativeEvent,
return_targetInst,
targetContainer
),
clearIfContinuousEvent(domEventName, nativeEvent))
else if (
queueIfContinuousEvent(
blockedOn,
domEventName,
eventSystemFlags,
targetContainer,
nativeEvent
)
)
nativeEvent.stopPropagation()
else if (
(clearIfContinuousEvent(domEventName, nativeEvent),
eventSystemFlags & 4 &&
-1 < discreteReplayableEvents.indexOf(domEventName))
) {
for (; null !== blockedOn; ) {
var fiber = getInstanceFromNode(blockedOn)
if (null !== fiber)
switch (fiber.tag) {
case 3:
fiber = fiber.stateNode
if (fiber.current.memoizedState.isDehydrated) {
var lanes = getHighestPriorityLanes(fiber.pendingLanes)
if (0 !== lanes) {
var root = fiber
root.pendingLanes |= 2
for (root.entangledLanes |= 2; lanes; ) {
var lane = 1 << (31 - clz32(lanes))
root.entanglements[1] |= lane
lanes &= ~lane
}
ensureRootIsScheduled(fiber)
;(executionContext & (RenderContext | CommitContext)) ===
NoContext &&
((workInProgressRootRenderTargetTime =
now$1() + RENDER_TIMEOUT_MS),
flushSyncWorkAcrossRoots_impl(0, !1))
}
}
break
case 31:
case 13:
;((root = enqueueConcurrentRenderForLane(fiber, 2)),
null !== root && scheduleUpdateOnFiber(root, fiber, 2),
flushSyncWork$1(),
markRetryLaneIfNotHydrated(fiber, 2))
}
fiber = findInstanceBlockingEvent(nativeEvent)
null === fiber &&
dispatchEventForPluginEventSystem(
domEventName,
eventSystemFlags,
nativeEvent,
return_targetInst,
targetContainer
)
if (fiber === blockedOn) break
blockedOn = fiber
}
null !== blockedOn && nativeEvent.stopPropagation()
} else
dispatchEventForPluginEventSystem(
domEventName,
eventSystemFlags,
nativeEvent,
null,
targetContainer
)
}
}
function findInstanceBlockingEvent(nativeEvent) {
nativeEvent = getEventTarget(nativeEvent)
return findInstanceBlockingTarget(nativeEvent)
}
function findInstanceBlockingTarget(targetNode) {
return_targetInst = null
targetNode = getClosestInstanceFromNode(targetNode)
if (null !== targetNode) {
var nearestMounted = getNearestMountedFiber(targetNode)
if (null === nearestMounted) targetNode = null
else {
var tag = nearestMounted.tag
if (13 === tag) {
targetNode = getSuspenseInstanceFromFiber(nearestMounted)
if (null !== targetNode) return targetNode
targetNode = null
} else if (31 === tag) {
targetNode = getActivityInstanceFromFiber(nearestMounted)
if (null !== targetNode) return targetNode
targetNode = null
} else if (3 === tag) {
if (nearestMounted.stateNode.current.memoizedState.isDehydrated)
return 3 === nearestMounted.tag
? nearestMounted.stateNode.containerInfo
: null
targetNode = null
} else nearestMounted !== targetNode && (targetNode = null)
}
}
return_targetInst = targetNode
return null
}
function getEventPriority(domEventName) {
switch (domEventName) {
case 'beforetoggle':
case 'cancel':
case 'click':
case 'close':
case 'contextmenu':
case 'copy':
case 'cut':
case 'auxclick':
case 'dblclick':
case 'dragend':
case 'dragstart':
case 'drop':
case 'focusin':
case 'focusout':
case 'input':
case 'invalid':
case 'keydown':
case 'keypress':
case 'keyup':
case 'mousedown':
case 'mouseup':
case 'paste':
case 'pause':
case 'play':
case 'pointercancel':
case 'pointerdown':
case 'pointerup':
case 'ratechange':
case 'reset':
case 'resize':
case 'seeked':
case 'submit':
case 'toggle':
case 'touchcancel':
case 'touchend':
case 'touchstart':
case 'volumechange':
case 'change':
case 'selectionchange':
case 'textInput':
case 'compositionstart':
case 'compositionend':
case 'compositionupdate':
case 'beforeblur':
case 'afterblur':
case 'beforeinput':
case 'blur':
case 'fullscreenchange':
case 'focus':
case 'hashchange':
case 'popstate':
case 'select':
case 'selectstart':
return DiscreteEventPriority
case 'drag':
case 'dragenter':
case 'dragexit':
case 'dragleave':
case 'dragover':
case 'mousemove':
case 'mouseout':
case 'mouseover':
case 'pointermove':
case 'pointerout':
case 'pointerover':
case 'scroll':
case 'touchmove':
case 'wheel':
case 'mouseenter':
case 'mouseleave':
case 'pointerenter':
case 'pointerleave':
return ContinuousEventPriority
case 'message':
switch (getCurrentPriorityLevel()) {
case ImmediatePriority:
return DiscreteEventPriority
case UserBlockingPriority:
return ContinuousEventPriority
case NormalPriority$1:
case LowPriority:
return DefaultEventPriority
case IdlePriority:
return IdleEventPriority
default:
return DefaultEventPriority
}
default:
return DefaultEventPriority
}
}
function clearIfContinuousEvent(domEventName, nativeEvent) {
switch (domEventName) {
case 'focusin':
case 'focusout':
queuedFocus = null
break
case 'dragenter':
case 'dragleave':
queuedDrag = null
break
case 'mouseover':
case 'mouseout':
queuedMouse = null
break
case 'pointerover':
case 'pointerout':
queuedPointers.delete(nativeEvent.pointerId)
break
case 'gotpointercapture':
case 'lostpointercapture':
queuedPointerCaptures.delete(nativeEvent.pointerId)
}
}
function accumulateOrCreateContinuousQueuedReplayableEvent(
existingQueuedEvent,
blockedOn,
domEventName,
eventSystemFlags,
targetContainer,
nativeEvent
) {
if (
null === existingQueuedEvent ||
existingQueuedEvent.nativeEvent !== nativeEvent
)
return (
(existingQueuedEvent = {
blockedOn: blockedOn,
domEventName: domEventName,
eventSystemFlags: eventSystemFlags,
nativeEvent: nativeEvent,
targetContainers: [targetContainer],
}),
null !== blockedOn &&
((blockedOn = getInstanceFromNode(blockedOn)),
null !== blockedOn && attemptContinuousHydration(blockedOn)),
existingQueuedEvent
)
existingQueuedEvent.eventSystemFlags |= eventSystemFlags
blockedOn = existingQueuedEvent.targetContainers
null !== targetContainer &&
-1 === blockedOn.indexOf(targetContainer) &&
blockedOn.push(targetContainer)
return existingQueuedEvent
}
function queueIfContinuousEvent(
blockedOn,
domEventName,
eventSystemFlags,
targetContainer,
nativeEvent
) {
switch (domEventName) {
case 'focusin':
return (
(queuedFocus = accumulateOrCreateContinuousQueuedReplayableEvent(
queuedFocus,
blockedOn,
domEventName,
eventSystemFlags,
targetContainer,
nativeEvent
)),
!0
)
case 'dragenter':
return (
(queuedDrag = accumulateOrCreateContinuousQueuedReplayableEvent(
queuedDrag,
blockedOn,
domEventName,
eventSystemFlags,
targetContainer,
nativeEvent
)),
!0
)
case 'mouseover':
return (
(queuedMouse = accumulateOrCreateContinuousQueuedReplayableEvent(
queuedMouse,
blockedOn,
domEventName,
eventSystemFlags,
targetContainer,
nativeEvent
)),
!0
)
case 'pointerover':
var pointerId = nativeEvent.pointerId
queuedPointers.set(
pointerId,
accumulateOrCreateContinuousQueuedReplayableEvent(
queuedPointers.get(pointerId) || null,
blockedOn,
domEventName,
eventSystemFlags,
targetContainer,
nativeEvent
)
)
return !0
case 'gotpointercapture':
return (
(pointerId = nativeEvent.pointerId),
queuedPointerCaptures.set(
pointerId,
accumulateOrCreateContinuousQueuedReplayableEvent(
queuedPointerCaptures.get(pointerId) || null,
blockedOn,
domEventName,
eventSystemFlags,
targetContainer,
nativeEvent
)
),
!0
)
}
return !1
}
function attemptExplicitHydrationTarget(queuedTarget) {
var targetInst = getClosestInstanceFromNode(queuedTarget.target)
if (null !== targetInst) {
var nearestMounted = getNearestMountedFiber(targetInst)
if (null !== nearestMounted)
if (((targetInst = nearestMounted.tag), 13 === targetInst)) {
if (
((targetInst = getSuspenseInstanceFromFiber(nearestMounted)),
null !== targetInst)
) {
queuedTarget.blockedOn = targetInst
runWithPriority(queuedTarget.priority, function () {
attemptHydrationAtCurrentPriority(nearestMounted)
})
return
}
} else if (31 === targetInst) {
if (
((targetInst = getActivityInstanceFromFiber(nearestMounted)),
null !== targetInst)
) {
queuedTarget.blockedOn = targetInst
runWithPriority(queuedTarget.priority, function () {
attemptHydrationAtCurrentPriority(nearestMounted)
})
return
}
} else if (
3 === targetInst &&
nearestMounted.stateNode.current.memoizedState.isDehydrated
) {
queuedTarget.blockedOn =
3 === nearestMounted.tag
? nearestMounted.stateNode.containerInfo
: null
return
}
}
queuedTarget.blockedOn = null
}
function attemptReplayContinuousQueuedEvent(queuedEvent) {
if (null !== queuedEvent.blockedOn) return !1
for (
var targetContainers = queuedEvent.targetContainers;
0 < targetContainers.length;
) {
var nextBlockedOn = findInstanceBlockingEvent(queuedEvent.nativeEvent)
if (null === nextBlockedOn) {
nextBlockedOn = queuedEvent.nativeEvent
var nativeEventClone = new nextBlockedOn.constructor(
nextBlockedOn.type,
nextBlockedOn
),
event = nativeEventClone
null !== currentReplayingEvent &&
console.error(
'Expected currently replaying event to be null. This error is likely caused by a bug in React. Please file an issue.'
)
currentReplayingEvent = event
nextBlockedOn.target.dispatchEvent(nativeEventClone)
null === currentReplayingEvent &&
console.error(
'Expected currently replaying event to not be null. This error is likely caused by a bug in React. Please file an issue.'
)
currentReplayingEvent = null
} else
return (
(targetContainers = getInstanceFromNode(nextBlockedOn)),
null !== targetContainers &&
attemptContinuousHydration(targetContainers),
(queuedEvent.blockedOn = nextBlockedOn),
!1
)
targetContainers.shift()
}
return !0
}
function attemptReplayContinuousQueuedEventInMap(queuedEvent, key, map) {
attemptReplayContinuousQueuedEvent(queuedEvent) && map.delete(key)
}
function replayUnblockedEvents() {
hasScheduledReplayAttempt = !1
null !== queuedFocus &&
attemptReplayContinuousQueuedEvent(queuedFocus) &&
(queuedFocus = null)
null !== queuedDrag &&
attemptReplayContinuousQueuedEvent(queuedDrag) &&
(queuedDrag = null)
null !== queuedMouse &&
attemptReplayContinuousQueuedEvent(queuedMouse) &&
(queuedMouse = null)
queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap)
queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap)
}
function scheduleCallbackIfUnblocked(queuedEvent, unblocked) {
queuedEvent.blockedOn === unblocked &&
((queuedEvent.blockedOn = null),
hasScheduledReplayAttempt ||
((hasScheduledReplayAttempt = !0),
Scheduler.unstable_scheduleCallback(
Scheduler.unstable_NormalPriority,
replayUnblockedEvents
)))
}
function scheduleReplayQueueIfNeeded(formReplayingQueue) {
lastScheduledReplayQueue !== formReplayingQueue &&
((lastScheduledReplayQueue = formReplayingQueue),
Scheduler.unstable_scheduleCallback(
Scheduler.unstable_NormalPriority,
function () {
lastScheduledReplayQueue === formReplayingQueue &&
(lastScheduledReplayQueue = null)
for (var i = 0; i < formReplayingQueue.length; i += 3) {
var form = formReplayingQueue[i],
submitterOrAction = formReplayingQueue[i + 1],
formData = formReplayingQueue[i + 2]
if ('function' !== typeof submitterOrAction)
if (
null === findInstanceBlockingTarget(submitterOrAction || form)
)
continue
else break
var formInst = getInstanceFromNode(form)
null !== formInst &&
(formReplayingQueue.splice(i, 3),
(i -= 3),
(form = {
pending: !0,
data: formData,
method: form.method,
action: submitterOrAction,
}),
Object.freeze(form),
startHostTransition(
formInst,
form,
submitterOrAction,
formData
))
}
}
))
}
function retryIfBlockedOn(unblocked) {
function unblock(queuedEvent) {
return scheduleCallbackIfUnblocked(queuedEvent, unblocked)
}
null !== queuedFocus &&
scheduleCallbackIfUnblocked(queuedFocus, unblocked)
null !== queuedDrag && scheduleCallbackIfUnblocked(queuedDrag, unblocked)
null !== queuedMouse &&
scheduleCallbackIfUnblocked(queuedMouse, unblocked)
queuedPointers.forEach(unblock)
queuedPointerCaptures.forEach(unblock)
for (var i = 0; i < queuedExplicitHydrationTargets.length; i++) {
var queuedTarget = queuedExplicitHydrationTargets[i]
queuedTarget.blockedOn === unblocked && (queuedTarget.blockedOn = null)
}
for (
;
0 < queuedExplicitHydrationTargets.length &&
((i = queuedExplicitHydrationTargets[0]), null === i.blockedOn);
)
(attemptExplicitHydrationTarget(i),
null === i.blockedOn && queuedExplicitHydrationTargets.shift())
i = (unblocked.ownerDocument || unblocked).$$reactFormReplay
if (null != i)
for (queuedTarget = 0; queuedTarget < i.length; queuedTarget += 3) {
var form = i[queuedTarget],
submitterOrAction = i[queuedTarget + 1],
formProps = form[internalPropsKey] || null
if ('function' === typeof submitterOrAction)
formProps || scheduleReplayQueueIfNeeded(i)
else if (formProps) {
var action = null
if (
submitterOrAction &&
submitterOrAction.hasAttribute('formAction')
)
if (
((form = submitterOrAction),
(formProps = submitterOrAction[internalPropsKey] || null))
)
action = formProps.formAction
else {
if (null !== findInstanceBlockingTarget(form)) continue
}
else action = formProps.action
'function' === typeof action
? (i[queuedTarget + 1] = action)
: (i.splice(queuedTarget, 3), (queuedTarget -= 3))
scheduleReplayQueueIfNeeded(i)
}
}
}
function defaultOnDefaultTransitionIndicator() {
function handleNavigate(event) {
event.canIntercept &&
'react-transition' === event.info &&
event.intercept({
handler: function () {
return new Promise(function (resolve) {
return (pendingResolve = resolve)
})
},
focusReset: 'manual',
scroll: 'manual',
})
}
function handleNavigateComplete() {
null !== pendingResolve && (pendingResolve(), (pendingResolve = null))
isCancelled || setTimeout(startFakeNavigation, 20)
}
function startFakeNavigation() {
if (!isCancelled && !navigation.transition) {
var currentEntry = navigation.currentEntry
currentEntry &&
null != currentEntry.url &&
navigation.navigate(currentEntry.url, {
state: currentEntry.getState(),
info: 'react-transition',
history: 'replace',
})
}
}
if ('object' === typeof navigation) {
var isCancelled = !1,
pendingResolve = null
navigation.addEventListener('navigate', handleNavigate)
navigation.addEventListener('navigatesuccess', handleNavigateComplete)
navigation.addEventListener('navigateerror', handleNavigateComplete)
setTimeout(startFakeNavigation, 100)
return function () {
isCancelled = !0
navigation.removeEventListener('navigate', handleNavigate)
navigation.removeEventListener(
'navigatesuccess',
handleNavigateComplete
)
navigation.removeEventListener(
'navigateerror',
handleNavigateComplete
)
null !== pendingResolve && (pendingResolve(), (pendingResolve = null))
}
}
}
function ReactDOMRoot(internalRoot) {
this._internalRoot = internalRoot
}
function ReactDOMHydrationRoot(internalRoot) {
this._internalRoot = internalRoot
}
function warnIfReactDOMContainerInDEV(container) {
container[internalContainerInstanceKey] &&
(container._reactRootContainer
? console.error(
'You are calling ReactDOMClient.createRoot() on a container that was previously passed to ReactDOM.render(). This is not supported.'
)
: console.error(
'You are calling ReactDOMClient.createRoot() on a container that has already been passed to createRoot() before. Instead, call root.render() on the existing root instead if you want to update it.'
))
}
'undefined' !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
'function' ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&
__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error())
var Scheduler = require('scheduler'),
React = require('react'),
ReactDOM = require('react-dom'),
assign = Object.assign,
REACT_LEGACY_ELEMENT_TYPE = Symbol.for('react.element'),
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_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')
Symbol.for('react.scope')
var REACT_ACTIVITY_TYPE = Symbol.for('react.activity')
Symbol.for('react.legacy_hidden')
Symbol.for('react.tracing_marker')
var REACT_MEMO_CACHE_SENTINEL = Symbol.for('react.memo_cache_sentinel')
Symbol.for('react.view_transition')
var MAYBE_ITERATOR_SYMBOL = Symbol.iterator,
REACT_CLIENT_REFERENCE = Symbol.for('react.client.reference'),
isArrayImpl = Array.isArray,
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,
NotPending = Object.freeze({
pending: !1,
data: null,
method: null,
action: null,
}),
valueStack = []
var fiberStack = []
var index$jscomp$0 = -1,
contextStackCursor = createCursor(null),
contextFiberStackCursor = createCursor(null),
rootInstanceStackCursor = createCursor(null),
hostTransitionProviderCursor = createCursor(null),
disabledDepth = 0,
prevLog,
prevInfo,
prevWarn,
prevError,
prevGroup,
prevGroupCollapsed,
prevGroupEnd
disabledLog.__reactDisabledLog = !0
var prefix,
suffix,
reentry = !1
var componentFrameCache = new (
'function' === typeof WeakMap ? WeakMap : Map
)()
var current = null,
isRendering = !1,
hasOwnProperty = Object.prototype.hasOwnProperty,
scheduleCallback$3 = Scheduler.unstable_scheduleCallback,
cancelCallback$1 = Scheduler.unstable_cancelCallback,
shouldYield = Scheduler.unstable_shouldYield,
requestPaint = Scheduler.unstable_requestPaint,
now$1 = Scheduler.unstable_now,
getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,
ImmediatePriority = Scheduler.unstable_ImmediatePriority,
UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,
NormalPriority$1 = Scheduler.unstable_NormalPriority,
LowPriority = Scheduler.unstable_LowPriority,
IdlePriority = Scheduler.unstable_IdlePriority,
log$1 = Scheduler.log,
unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,
rendererID = null,
injectedHook = null,
injectedProfilingHooks = null,
hasLoggedError = !1,
isDevToolsPresent = 'undefined' !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__,
clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,
log = Math.log,
LN2 = Math.LN2,
nextTransitionLane = 256,
nextRetryLane = 4194304,
DiscreteEventPriority = 2,
ContinuousEventPriority = 8,
DefaultEventPriority = 32,
IdleEventPriority = 268435456,
randomKey = Math.random().toString(36).slice(2),
internalInstanceKey = '__reactFiber$' + randomKey,
internalPropsKey = '__reactProps$' + randomKey,
internalContainerInstanceKey = '__reactContainer$' + randomKey,
internalEventHandlersKey = '__reactEvents$' + randomKey,
internalEventHandlerListenersKey = '__reactListeners$' + randomKey,
internalEventHandlesSetKey = '__reactHandles$' + randomKey,
internalRootNodeResourcesKey = '__reactResources$' + randomKey,
internalHoistableMarker = '__reactMarker$' + randomKey,
allNativeEvents = new Set(),
registrationNameDependencies = {},
possibleRegistrationNames = {},
hasReadOnlyValue = {
button: !0,
checkbox: !0,
image: !0,
hidden: !0,
radio: !0,
reset: !0,
submit: !0,
},
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 = {},
escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\n"\\]/g,
didWarnValueDefaultValue$1 = !1,
didWarnCheckedDefaultChecked = !1,
didWarnSelectedSetOnOption = !1,
didWarnInvalidChild = !1,
didWarnInvalidInnerHTML = !1
var didWarnValueDefaultValue = !1
var valuePropNames = ['value', 'defaultValue'],
didWarnValDefaultVal = !1,
needsEscaping = /["'&<>\n\t]|^\s|\s$/,
specialTags =
'address applet area article aside base basefont bgsound blockquote body br button caption center col colgroup dd details dir div dl dt embed fieldset figcaption figure footer form frame frameset h1 h2 h3 h4 h5 h6 head header hgroup hr html iframe img input isindex li link listing main marquee menu menuitem meta nav noembed noframes noscript object ol p param plaintext pre script section select source style summary table tbody td template textarea tfoot th thead title tr track ul wbr xmp'.split(
' '
),
inScopeTags =
'applet caption html table td th marquee object template foreignObject desc title'.split(
' '
),
buttonScopeTags = inScopeTags.concat(['button']),
impliedEndTags = 'dd dt li option optgroup p rp rt'.split(' '),
emptyAncestorInfoDev = {
current: null,
formTag: null,
aTagInScope: null,
buttonTagInScope: null,
nobrTagInScope: null,
pTagInButtonScope: null,
listItemTagAutoclosing: null,
dlItemTagAutoclosing: null,
containerTagInScope: null,
implicitRootScope: !1,
},
didWarn = {},
shorthandToLonghand = {
animation:
'animationDelay animationDirection animationDuration animationFillMode animationIterationCount animationName animationPlayState animationTimingFunction'.split(
' '
),
background:
'backgroundAttachment backgroundClip backgroundColor backgroundImage backgroundOrigin backgroundPositionX backgroundPositionY backgroundRepeat backgroundSize'.split(
' '
),
backgroundPosition: ['backgroundPositionX', 'backgroundPositionY'],
border:
'borderBottomColor borderBottomStyle borderBottomWidth borderImageOutset borderImageRepeat borderImageSlice borderImageSource borderImageWidth borderLeftColor borderLeftStyle borderLeftWidth borderRightColor borderRightStyle borderRightWidth borderTopColor borderTopStyle borderTopWidth'.split(
' '
),
borderBlockEnd: [
'borderBlockEndColor',
'borderBlockEndStyle',
'borderBlockEndWidth',
],
borderBlockStart: [
'borderBlockStartColor',
'borderBlockStartStyle',
'borderBlockStartWidth',
],
borderBottom: [
'borderBottomColor',
'borderBottomStyle',
'borderBottomWidth',
],
borderColor: [
'borderBottomColor',
'borderLeftColor',
'borderRightColor',
'borderTopColor',
],
borderImage: [
'borderImageOutset',
'borderImageRepeat',
'borderImageSlice',
'borderImageSource',
'borderImageWidth',
],
borderInlineEnd: [
'borderInlineEndColor',
'borderInlineEndStyle',
'borderInlineEndWidth',
],
borderInlineStart: [
'borderInlineStartColor',
'borderInlineStartStyle',
'borderInlineStartWidth',
],
borderLeft: ['borderLeftColor', 'borderLeftStyle', 'borderLeftWidth'],
borderRadius: [
'borderBottomLeftRadius',
'borderBottomRightRadius',
'borderTopLeftRadius',
'borderTopRightRadius',
],
borderRight: [
'borderRightColor',
'borderRightStyle',
'borderRightWidth',
],
borderStyle: [
'borderBottomStyle',
'borderLeftStyle',
'borderRightStyle',
'borderTopStyle',
],
borderTop: ['borderTopColor', 'borderTopStyle', 'borderTopWidth'],
borderWidth: [
'borderBottomWidth',
'borderLeftWidth',
'borderRightWidth',
'borderTopWidth',
],
columnRule: ['columnRuleColor', 'columnRuleStyle', 'columnRuleWidth'],
columns: ['columnCount', 'columnWidth'],
flex: ['flexBasis', 'flexGrow', 'flexShrink'],
flexFlow: ['flexDirection', 'flexWrap'],
font: 'fontFamily fontFeatureSettings fontKerning fontLanguageOverride fontSize fontSizeAdjust fontStretch fontStyle fontVariant fontVariantAlternates fontVariantCaps fontVariantEastAsian fontVariantLigatures fontVariantNumeric fontVariantPosition fontWeight lineHeight'.split(
' '
),
fontVariant:
'fontVariantAlternates fontVariantCaps fontVariantEastAsian fontVariantLigatures fontVariantNumeric fontVariantPosition'.split(
' '
),
gap: ['columnGap', 'rowGap'],
grid: 'gridAutoColumns gridAutoFlow gridAutoRows gridTemplateAreas gridTemplateColumns gridTemplateRows'.split(
' '
),
gridArea: [
'gridColumnEnd',
'gridColumnStart',
'gridRowEnd',
'gridRowStart',
],
gridColumn: ['gridColumnEnd', 'gridColumnStart'],
gridColumnGap: ['columnGap'],
gridGap: ['columnGap', 'rowGap'],
gridRow: ['gridRowEnd', 'gridRowStart'],
gridRowGap: ['rowGap'],
gridTemplate: [
'gridTemplateAreas',
'gridTemplateColumns',
'gridTemplateRows',
],
listStyle: ['listStyleImage', 'listStylePosition', 'listStyleType'],
margin: ['marginBottom', 'marginLeft', 'marginRight', 'marginTop'],
marker: ['markerEnd', 'markerMid', 'markerStart'],
mask: 'maskClip maskComposite maskImage maskMode maskOrigin maskPositionX maskPositionY maskRepeat maskSize'.split(
' '
),
maskPosition: ['maskPositionX', 'maskPositionY'],
outline: ['outlineColor', 'outlineStyle', 'outlineWidth'],
overflow: ['overflowX', 'overflowY'],
padding: ['paddingBottom', 'paddingLeft', 'paddingRight', 'paddingTop'],
placeContent: ['alignContent', 'justifyContent'],
placeItems: ['alignItems', 'justifyItems'],
placeSelf: ['alignSelf', 'justifySelf'],
textDecoration: [
'textDecorationColor',
'textDecorationLine',
'textDecorationStyle',
],
textEmphasis: ['textEmphasisColor', 'textEmphasisStyle'],
transition: [
'transitionDelay',
'transitionDuration',
'transitionProperty',
'transitionTimingFunction',
],
wordWrap: ['overflowWrap'],
},
uppercasePattern = /([A-Z])/g,
msPattern$1 = /^ms-/,
badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/,
msPattern = /^-ms-/,
hyphenPattern = /-(.)/g,
badStyleValueWithSemicolonPattern = /;\s*$/,
warnedStyleNames = {},
warnedStyleValues = {},
warnedForNaNValue = !1,
warnedForInfinityValue = !1,
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(
' '
)
),
MATH_NAMESPACE = 'http://www.w3.org/1998/Math/MathML',
SVG_NAMESPACE = 'http://www.w3.org/2000/svg',
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'],
]),
possibleStandardNames = {
accept: 'accept',
acceptcharset: 'acceptCharset',
'accept-charset': 'acceptCharset',
accesskey: 'accessKey',
action: 'action',
allowfullscreen: 'allowFullScreen',
alt: 'alt',
as: 'as',
async: 'async',
autocapitalize: 'autoCapitalize',
autocomplete: 'autoComplete',
autocorrect: 'autoCorrect',
autofocus: 'autoFocus',
autoplay: 'autoPlay',
autosave: 'autoSave',
capture: 'capture',
cellpadding: 'cellPadding',
cellspacing: 'cellSpacing',
challenge: 'challenge',
charset: 'charSet',
checked: 'checked',
children: 'children',
cite: 'cite',
class: 'className',
classid: 'classID',
classname: 'className',
cols: 'cols',
colspan: 'colSpan',
content: 'content',
contenteditable: 'contentEditable',
contextmenu: 'contextMenu',
controls: 'controls',
controlslist: 'controlsList',
coords: 'coords',
crossorigin: 'crossOrigin',
dangerouslysetinnerhtml: 'dangerouslySetInnerHTML',
data: 'data',
datetime: 'dateTime',
default: 'default',
defaultchecked: 'defaultChecked',
defaultvalue: 'defaultValue',
defer: 'defer',
dir: 'dir',
disabled: 'disabled',
disablepictureinpicture: 'disablePictureInPicture',
disableremoteplayback: 'disableRemotePlayback',
download: 'download',
draggable: 'draggable',
enctype: 'encType',
enterkeyhint: 'enterKeyHint',
fetchpriority: 'fetchPriority',
for: 'htmlFor',
form: 'form',
formmethod: 'formMethod',
formaction: 'formAction',
formenctype: 'formEncType',
formnovalidate: 'formNoValidate',
formtarget: 'formTarget',
frameborder: 'frameBorder',
headers: 'headers',
height: 'height',
hidden: 'hidden',
high: 'high',
href: 'href',
hreflang: 'hrefLang',
htmlfor: 'htmlFor',
httpequiv: 'httpEquiv',
'http-equiv': 'httpEquiv',
icon: 'icon',
id: 'id',
imagesizes: 'imageSizes',
imagesrcset: 'imageSrcSet',
inert: 'inert',
innerhtml: 'innerHTML',
inputmode: 'inputMode',
integrity: 'integrity',
is: 'is',
itemid: 'itemID',
itemprop: 'itemProp',
itemref: 'itemRef',
itemscope: 'itemScope',
itemtype: 'itemType',
keyparams: 'keyParams',
keytype: 'keyType',
kind: 'kind',
label: 'label',
lang: 'lang',
list: 'list',
loop: 'loop',
low: 'low',
manifest: 'manifest',
marginwidth: 'marginWidth',
marginheight: 'marginHeight',
max: 'max',
maxlength: 'maxLength',
media: 'media',
mediagroup: 'mediaGroup',
method: 'method',
min: 'min',
minlength: 'minLength',
multiple: 'multiple',
muted: 'muted',
name: 'name',
nomodule: 'noModule',
nonce: 'nonce',
novalidate: 'noValidate',
open: 'open',
optimum: 'optimum',
pattern: 'pattern',
placeholder: 'placeholder',
playsinline: 'playsInline',
poster: 'poster',
preload: 'preload',
profile: 'profile',
radiogroup: 'radioGroup',
readonly: 'readOnly',
referrerpolicy: 'referrerPolicy',
rel: 'rel',
required: 'required',
reversed: 'reversed',
role: 'role',
rows: 'rows',
rowspan: 'rowSpan',
sandbox: 'sandbox',
scope: 'scope',
scoped: 'scoped',
scrolling: 'scrolling',
seamless: 'seamless',
selected: 'selected',
shape: 'shape',
size: 'size',
sizes: 'sizes',
span: 'span',
spellcheck: 'spellCheck',
src: 'src',
srcdoc: 'srcDoc',
srclang: 'srcLang',
srcset: 'srcSet',
start: 'start',
step: 'step',
style: 'style',
summary: 'summary',
tabindex: 'tabIndex',
target: 'target',
title: 'title',
type: 'type',
usemap: 'useMap',
value: 'value',
width: 'width',
wmode: 'wmode',
wrap: 'wrap',
about: 'about',
accentheight: 'accentHeight',
'accent-height': 'accentHeight',
accumulate: 'accumulate',
additive: 'additive',
alignmentbaseline: 'alignmentBaseline',
'alignment-baseline': 'alignmentBaseline',
allowreorder: 'allowReorder',
alphabetic: 'alphabetic',
amplitude: 'amplitude',
arabicform: 'arabicForm',
'arabic-form': 'arabicForm',
ascent: 'ascent',
attributename: 'attributeName',
attributetype: 'attributeType',
autoreverse: 'autoReverse',
azimuth: 'azimuth',
basefrequency: 'baseFrequency',
baselineshift: 'baselineShift',
'baseline-shift': 'baselineShift',
baseprofile: 'baseProfile',
bbox: 'bbox',
begin: 'begin',
bias: 'bias',
by: 'by',
calcmode: 'calcMode',
capheight: 'capHeight',
'cap-height': 'capHeight',
clip: 'clip',
clippath: 'clipPath',
'clip-path': 'clipPath',
clippathunits: 'clipPathUnits',
cliprule: 'clipRule',
'clip-rule': 'clipRule',
color: 'color',
colorinterpolation: 'colorInterpolation',
'color-interpolation': 'colorInterpolation',
colorinterpolationfilters: 'colorInterpolationFilters',
'color-interpolation-filters': 'colorInterpolationFilters',
colorprofile: 'colorProfile',
'color-profile': 'colorProfile',
colorrendering: 'colorRendering',
'color-rendering': 'colorRendering',
contentscripttype: 'contentScriptType',
contentstyletype: 'contentStyleType',
cursor: 'cursor',
cx: 'cx',
cy: 'cy',
d: 'd',
datatype: 'datatype',
decelerate: 'decelerate',
descent: 'descent',
diffuseconstant: 'diffuseConstant',
direction: 'direction',
display: 'display',
divisor: 'divisor',
dominantbaseline: 'dominantBaseline',
'dominant-baseline': 'dominantBaseline',
dur: 'dur',
dx: 'dx',
dy: 'dy',
edgemode: 'edgeMode',
elevation: 'elevation',
enablebackground: 'enableBackground',
'enable-background': 'enableBackground',
end: 'end',
exponent: 'exponent',
externalresourcesrequired: 'externalResourcesRequired',
fill: 'fill',
fillopacity: 'fillOpacity',
'fill-opacity': 'fillOpacity',
fillrule: 'fillRule',
'fill-rule': 'fillRule',
filter: 'filter',
filterres: 'filterRes',
filterunits: 'filterUnits',
floodopacity: 'floodOpacity',
'flood-opacity': 'floodOpacity',
floodcolor: 'floodColor',
'flood-color': 'floodColor',
focusable: 'focusable',
fontfamily: 'fontFamily',
'font-family': 'fontFamily',
fontsize: 'fontSize',
'font-size': 'fontSize',
fontsizeadjust: 'fontSizeAdjust',
'font-size-adjust': 'fontSizeAdjust',
fontstretch: 'fontStretch',
'font-stretch': 'fontStretch',
fontstyle: 'fontStyle',
'font-style': 'fontStyle',
fontvariant: 'fontVariant',
'font-variant': 'fontVariant',
fontweight: 'fontWeight',
'font-weight': 'fontWeight',
format: 'format',
from: 'from',
fx: 'fx',
fy: 'fy',
g1: 'g1',
g2: 'g2',
glyphname: 'glyphName',
'glyph-name': 'glyphName',
glyphorientationhorizontal: 'glyphOrientationHorizontal',
'glyph-orientation-horizontal': 'glyphOrientationHorizontal',
glyphorientationvertical: 'glyphOrientationVertical',
'glyph-orientation-vertical': 'glyphOrientationVertical',
glyphref: 'glyphRef',
gradienttransform: 'gradientTransform',
gradientunits: 'gradientUnits',
hanging: 'hanging',
horizadvx: 'horizAdvX',
'horiz-adv-x': 'horizAdvX',
horizoriginx: 'horizOriginX',
'horiz-origin-x': 'horizOriginX',
ideographic: 'ideographic',
imagerendering: 'imageRendering',
'image-rendering': 'imageRendering',
in2: 'in2',
in: 'in',
inlist: 'inlist',
intercept: 'intercept',
k1: 'k1',
k2: 'k2',
k3: 'k3',
k4: 'k4',
k: 'k',
kernelmatrix: 'kernelMatrix',
kernelunitlength: 'kernelUnitLength',
kerning: 'kerning',
keypoints: 'keyPoints',
keysplines: 'keySplines',
keytimes: 'keyTimes',
lengthadjust: 'lengthAdjust',
letterspacing: 'letterSpacing',
'letter-spacing': 'letterSpacing',
lightingcolor: 'lightingColor',
'lighting-color': 'lightingColor',
limitingconeangle: 'limitingConeAngle',
local: 'local',
markerend: 'markerEnd',
'marker-end': 'markerEnd',
markerheight: 'markerHeight',
markermid: 'markerMid',
'marker-mid': 'markerMid',
markerstart: 'markerStart',
'marker-start': 'markerStart',
markerunits: 'markerUnits',
markerwidth: 'markerWidth',
mask: 'mask',
maskcontentunits: 'maskContentUnits',
maskunits: 'maskUnits',
mathematical: 'mathematical',
mode: 'mode',
numoctaves: 'numOctaves',
offset: 'offset',
opacity: 'opacity',
operator: 'operator',
order: 'order',
orient: 'orient',
orientation: 'orientation',
origin: 'origin',
overflow: 'overflow',
overlineposition: 'overlinePosition',
'overline-position': 'overlinePosition',
overlinethickness: 'overlineThickness',
'overline-thickness': 'overlineThickness',
paintorder: 'paintOrder',
'paint-order': 'paintOrder',
panose1: 'panose1',
'panose-1': 'panose1',
pathlength: 'pathLength',
patterncontentunits: 'patternContentUnits',
patterntransform: 'patternTransform',
patternunits: 'patternUnits',
pointerevents: 'pointerEvents',
'pointer-events': 'pointerEvents',
points: 'points',
pointsatx: 'pointsAtX',
pointsaty: 'pointsAtY',
pointsatz: 'pointsAtZ',
popover: 'popover',
popovertarget: 'popoverTarget',
popovertargetaction: 'popoverTargetAction',
prefix: 'prefix',
preservealpha: 'preserveAlpha',
preserveaspectratio: 'preserveAspectRatio',
primitiveunits: 'primitiveUnits',
property: 'property',
r: 'r',
radius: 'radius',
refx: 'refX',
refy: 'refY',
renderingintent: 'renderingIntent',
'rendering-intent': 'renderingIntent',
repeatcount: 'repeatCount',
repeatdur: 'repeatDur',
requiredextensions: 'requiredExtensions',
requiredfeatures: 'requiredFeatures',
resource: 'resource',
restart: 'restart',
result: 'result',
results: 'results',
rotate: 'rotate',
rx: 'rx',
ry: 'ry',
scale: 'scale',
security: 'security',
seed: 'seed',
shaperendering: 'shapeRendering',
'shape-rendering': 'shapeRendering',
slope: 'slope',
spacing: 'spacing',
specularconstant: 'specularConstant',
specularexponent: 'specularExponent',
speed: 'speed',
spreadmethod: 'spreadMethod',
startoffset: 'startOffset',
stddeviation: 'stdDeviation',
stemh: 'stemh',
stemv: 'stemv',
stitchtiles: 'stitchTiles',
stopcolor: 'stopColor',
'stop-color': 'stopColor',
stopopacity: 'stopOpacity',
'stop-opacity': 'stopOpacity',
strikethroughposition: 'strikethroughPosition',
'strikethrough-position': 'strikethroughPosition',
strikethroughthickness: 'strikethroughThickness',
'strikethrough-thickness': 'strikethroughThickness',
string: 'string',
stroke: 'stroke',
strokedasharray: 'strokeDasharray',
'stroke-dasharray': 'strokeDasharray',
strokedashoffset: 'strokeDashoffset',
'stroke-dashoffset': 'strokeDashoffset',
strokelinecap: 'strokeLinecap',
'stroke-linecap': 'strokeLinecap',
strokelinejoin: 'strokeLinejoin',
'stroke-linejoin': 'strokeLinejoin',
strokemiterlimit: 'strokeMiterlimit',
'stroke-miterlimit': 'strokeMiterlimit',
strokewidth: 'strokeWidth',
'stroke-width': 'strokeWidth',
strokeopacity: 'strokeOpacity',
'stroke-opacity': 'strokeOpacity',
suppresscontenteditablewarning: 'suppressContentEditableWarning',
suppresshydrationwarning: 'suppressHydrationWarning',
surfacescale: 'surfaceScale',
systemlanguage: 'systemLanguage',
tablevalues: 'tableValues',
targetx: 'targetX',
targety: 'targetY',
textanchor: 'textAnchor',
'text-anchor': 'textAnchor',
textdecoration: 'textDecoration',
'text-decoration': 'textDecoration',
textlength: 'textLength',
textrendering: 'textRendering',
'text-rendering': 'textRendering',
to: 'to',
transform: 'transform',
transformorigin: 'transformOrigin',
'transform-origin': 'transformOrigin',
typeof: 'typeof',
u1: 'u1',
u2: 'u2',
underlineposition: 'underlinePosition',
'underline-position': 'underlinePosition',
underlinethickness: 'underlineThickness',
'underline-thickness': 'underlineThickness',
unicode: 'unicode',
unicodebidi: 'unicodeBidi',
'unicode-bidi': 'unicodeBidi',
unicoderange: 'unicodeRange',
'unicode-range': 'unicodeRange',
unitsperem: 'unitsPerEm',
'units-per-em': 'unitsPerEm',
unselectable: 'unselectable',
valphabetic: 'vAlphabetic',
'v-alphabetic': 'vAlphabetic',
values: 'values',
vectoreffect: 'vectorEffect',
'vector-effect': 'vectorEffect',
version: 'version',
vertadvy: 'vertAdvY',
'vert-adv-y': 'vertAdvY',
vertoriginx: 'vertOriginX',
'vert-origin-x': 'vertOriginX',
vertoriginy: 'vertOriginY',
'vert-origin-y': 'vertOriginY',
vhanging: 'vHanging',
'v-hanging': 'vHanging',
videographic: 'vIdeographic',
'v-ideographic': 'vIdeographic',
viewbox: 'viewBox',
viewtarget: 'viewTarget',
visibility: 'visibility',
vmathematical: 'vMathematical',
'v-mathematical': 'vMathematical',
vocab: 'vocab',
widths: 'widths',
wordspacing: 'wordSpacing',
'word-spacing': 'wordSpacing',
writingmode: 'writingMode',
'writing-mode': 'writingMode',
x1: 'x1',
x2: 'x2',
x: 'x',
xchannelselector: 'xChannelSelector',
xheight: 'xHeight',
'x-height': 'xHeight',
xlinkactuate: 'xlinkActuate',
'xlink:actuate': 'xlinkActuate',
xlinkarcrole: 'xlinkArcrole',
'xlink:arcrole': 'xlinkArcrole',
xlinkhref: 'xlinkHref',
'xlink:href': 'xlinkHref',
xlinkrole: 'xlinkRole',
'xlink:role': 'xlinkRole',
xlinkshow: 'xlinkShow',
'xlink:show': 'xlinkShow',
xlinktitle: 'xlinkTitle',
'xlink:title': 'xlinkTitle',
xlinktype: 'xlinkType',
'xlink:type': 'xlinkType',
xmlbase: 'xmlBase',
'xml:base': 'xmlBase',
xmllang: 'xmlLang',
'xml:lang': 'xmlLang',
xmlns: 'xmlns',
'xml:space': 'xmlSpace',
xmlnsxlink: 'xmlnsXlink',
'xmlns:xlink': 'xmlnsXlink',
xmlspace: 'xmlSpace',
y1: 'y1',
y2: 'y2',
y: 'y',
ychannelselector: 'yChannelSelector',
z: 'z',
zoomandpan: 'zoomAndPan',
},
ariaProperties = {
'aria-current': 0,
'aria-description': 0,
'aria-details': 0,
'aria-disabled': 0,
'aria-hidden': 0,
'aria-invalid': 0,
'aria-keyshortcuts': 0,
'aria-label': 0,
'aria-roledescription': 0,
'aria-autocomplete': 0,
'aria-checked': 0,
'aria-expanded': 0,
'aria-haspopup': 0,
'aria-level': 0,
'aria-modal': 0,
'aria-multiline': 0,
'aria-multiselectable': 0,
'aria-orientation': 0,
'aria-placeholder': 0,
'aria-pressed': 0,
'aria-readonly': 0,
'aria-required': 0,
'aria-selected': 0,
'aria-sort': 0,
'aria-valuemax': 0,
'aria-valuemin': 0,
'aria-valuenow': 0,
'aria-valuetext': 0,
'aria-atomic': 0,
'aria-busy': 0,
'aria-live': 0,
'aria-relevant': 0,
'aria-dropeffect': 0,
'aria-grabbed': 0,
'aria-activedescendant': 0,
'aria-colcount': 0,
'aria-colindex': 0,
'aria-colspan': 0,
'aria-controls': 0,
'aria-describedby': 0,
'aria-errormessage': 0,
'aria-flowto': 0,
'aria-labelledby': 0,
'aria-owns': 0,
'aria-posinset': 0,
'aria-rowcount': 0,
'aria-rowindex': 0,
'aria-rowspan': 0,
'aria-setsize': 0,
'aria-braillelabel': 0,
'aria-brailleroledescription': 0,
'aria-colindextext': 0,
'aria-rowindextext': 0,
},
warnedProperties$1 = {},
rARIA$1 = RegExp(
'^(aria)-[: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]*$'
),
rARIACamel$1 = RegExp(
'^(aria)[A-Z][: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]*$'
),
didWarnValueNull = !1,
warnedProperties = {},
EVENT_NAME_REGEX = /^on./,
INVALID_EVENT_NAME_REGEX = /^on[^A-Z]/,
rARIA = RegExp(
'^(aria)-[: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]*$'
),
rARIACamel = RegExp(
'^(aria)[A-Z][: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]*$'
),
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,
currentReplayingEvent = null,
restoreTarget = null,
restoreQueue = null,
isInsideEventHandler = !1,
canUseDOM = !(
'undefined' === typeof window ||
'undefined' === typeof window.document ||
'undefined' === typeof window.document.createElement
),
passiveBrowserEventsSupported = !1
if (canUseDOM)
try {
var options$jscomp$0 = {}
Object.defineProperty(options$jscomp$0, 'passive', {
get: function () {
passiveBrowserEventsSupported = !0
},
})
window.addEventListener('test', options$jscomp$0, options$jscomp$0)
window.removeEventListener('test', options$jscomp$0, options$jscomp$0)
} catch (e) {
passiveBrowserEventsSupported = !1
}
var root = null,
startText = null,
fallbackText = null,
EventInterface = {
eventPhase: 0,
bubbles: 0,
cancelable: 0,
timeStamp: function (event) {
return event.timeStamp || Date.now()
},
defaultPrevented: 0,
isTrusted: 0,
},
SyntheticEvent = createSyntheticEvent(EventInterface),
UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),
SyntheticUIEvent = createSyntheticEvent(UIEventInterface),
lastMovementX,
lastMovementY,
lastMouseEvent,
MouseEventInterface = assign({}, UIEventInterface, {
screenX: 0,
screenY: 0,
clientX: 0,
clientY: 0,
pageX: 0,
pageY: 0,
ctrlKey: 0,
shiftKey: 0,
altKey: 0,
metaKey: 0,
getModifierState: getEventModifierState,
button: 0,
buttons: 0,
relatedTarget: function (event) {
return void 0 === event.relatedTarget
? event.fromElement === event.srcElement
? event.toElement
: event.fromElement
: event.relatedTarget
},
movementX: function (event) {
if ('movementX' in event) return event.movementX
event !== lastMouseEvent &&
(lastMouseEvent && 'mousemove' === event.type
? ((lastMovementX = event.screenX - lastMouseEvent.screenX),
(lastMovementY = event.screenY - lastMouseEvent.screenY))
: (lastMovementY = lastMovementX = 0),
(lastMouseEvent = event))
return lastMovementX
},
movementY: function (event) {
return 'movementY' in event ? event.movementY : lastMovementY
},
}),
SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),
DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),
SyntheticDragEvent = createSyntheticEvent(DragEventInterface),
FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),
SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),
AnimationEventInterface = assign({}, EventInterface, {
animationName: 0,
elapsedTime: 0,
pseudoElement: 0,
}),
SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),
ClipboardEventInterface = assign({}, EventInterface, {
clipboardData: function (event) {
return 'clipboardData' in event
? event.clipboardData
: window.clipboardData
},
}),
SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),
CompositionEventInterface = assign({}, EventInterface, { data: 0 }),
SyntheticCompositionEvent = createSyntheticEvent(
CompositionEventInterface
),
SyntheticInputEvent = SyntheticCompositionEvent,
normalizeKey = {
Esc: 'Escape',
Spacebar: ' ',
Left: 'ArrowLeft',
Up: 'ArrowUp',
Right: 'ArrowRight',
Down: 'ArrowDown',
Del: 'Delete',
Win: 'OS',
Menu: 'ContextMenu',
Apps: 'ContextMenu',
Scroll: 'ScrollLock',
MozPrintableKey: 'Unidentified',
},
translateToKey = {
8: 'Backspace',
9: 'Tab',
12: 'Clear',
13: 'Enter',
16: 'Shift',
17: 'Control',
18: 'Alt',
19: 'Pause',
20: 'CapsLock',
27: 'Escape',
32: ' ',
33: 'PageUp',
34: 'PageDown',
35: 'End',
36: 'Home',
37: 'ArrowLeft',
38: 'ArrowUp',
39: 'ArrowRight',
40: 'ArrowDown',
45: 'Insert',
46: 'Delete',
112: 'F1',
113: 'F2',
114: 'F3',
115: 'F4',
116: 'F5',
117: 'F6',
118: 'F7',
119: 'F8',
120: 'F9',
121: 'F10',
122: 'F11',
123: 'F12',
144: 'NumLock',
145: 'ScrollLock',
224: 'Meta',
},
modifierKeyToProp = {
Alt: 'altKey',
Control: 'ctrlKey',
Meta: 'metaKey',
Shift: 'shiftKey',
},
KeyboardEventInterface = assign({}, UIEventInterface, {
key: function (nativeEvent) {
if (nativeEvent.key) {
var key = normalizeKey[nativeEvent.key] || nativeEvent.key
if ('Unidentified' !== key) return key
}
return 'keypress' === nativeEvent.type
? ((nativeEvent = getEventCharCode(nativeEvent)),
13 === nativeEvent ? 'Enter' : String.fromCharCode(nativeEvent))
: 'keydown' === nativeEvent.type || 'keyup' === nativeEvent.type
? translateToKey[nativeEvent.keyCode] || 'Unidentified'
: ''
},
code: 0,
location: 0,
ctrlKey: 0,
shiftKey: 0,
altKey: 0,
metaKey: 0,
repeat: 0,
locale: 0,
getModifierState: getEventModifierState,
charCode: function (event) {
return 'keypress' === event.type ? getEventCharCode(event) : 0
},
keyCode: function (event) {
return 'keydown' === event.type || 'keyup' === event.type
? event.keyCode
: 0
},
which: function (event) {
return 'keypress' === event.type
? getEventCharCode(event)
: 'keydown' === event.type || 'keyup' === event.type
? event.keyCode
: 0
},
}),
SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),
PointerEventInterface = assign({}, MouseEventInterface, {
pointerId: 0,
width: 0,
height: 0,
pressure: 0,
tangentialPressure: 0,
tiltX: 0,
tiltY: 0,
twist: 0,
pointerType: 0,
isPrimary: 0,
}),
SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),
TouchEventInterface = assign({}, UIEventInterface, {
touches: 0,
targetTouches: 0,
changedTouches: 0,
altKey: 0,
metaKey: 0,
ctrlKey: 0,
shiftKey: 0,
getModifierState: getEventModifierState,
}),
SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),
TransitionEventInterface = assign({}, EventInterface, {
propertyName: 0,
elapsedTime: 0,
pseudoElement: 0,
}),
SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),
WheelEventInterface = assign({}, MouseEventInterface, {
deltaX: function (event) {
return 'deltaX' in event
? event.deltaX
: 'wheelDeltaX' in event
? -event.wheelDeltaX
: 0
},
deltaY: function (event) {
return 'deltaY' in event
? event.deltaY
: 'wheelDeltaY' in event
? -event.wheelDeltaY
: 'wheelDelta' in event
? -event.wheelDelta
: 0
},
deltaZ: 0,
deltaMode: 0,
}),
SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),
ToggleEventInterface = assign({}, EventInterface, {
newState: 0,
oldState: 0,
}),
SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),
END_KEYCODES = [9, 13, 27, 32],
START_KEYCODE = 229,
canUseCompositionEvent = canUseDOM && 'CompositionEvent' in window,
documentMode = null
canUseDOM &&
'documentMode' in document &&
(documentMode = document.documentMode)
var canUseTextInputEvent =
canUseDOM && 'TextEvent' in window && !documentMode,
useFallbackCompositionData =
canUseDOM &&
(!canUseCompositionEvent ||
(documentMode && 8 < documentMode && 11 >= documentMode)),
SPACEBAR_CODE = 32,
SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE),
hasSpaceKeypress = !1,
isComposing = !1,
supportedInputTypes = {
color: !0,
date: !0,
datetime: !0,
'datetime-local': !0,
email: !0,
month: !0,
number: !0,
password: !0,
range: !0,
search: !0,
tel: !0,
text: !0,
time: !0,
url: !0,
week: !0,
},
activeElement$1 = null,
activeElementInst$1 = null,
isInputEventSupported = !1
canUseDOM &&
(isInputEventSupported =
isEventSupported('input') &&
(!document.documentMode || 9 < document.documentMode))
var objectIs = 'function' === typeof Object.is ? Object.is : is,
skipSelectionChangeEvent =
canUseDOM && 'documentMode' in document && 11 >= document.documentMode,
activeElement = null,
activeElementInst = null,
lastSelection = null,
mouseDown = !1,
vendorPrefixes = {
animationend: makePrefixMap('Animation', 'AnimationEnd'),
animationiteration: makePrefixMap('Animation', 'AnimationIteration'),
animationstart: makePrefixMap('Animation', 'AnimationStart'),
transitionrun: makePrefixMap('Transition', 'TransitionRun'),
transitionstart: makePrefixMap('Transition', 'TransitionStart'),
transitioncancel: makePrefixMap('Transition', 'TransitionCancel'),
transitionend: makePrefixMap('Transition', 'TransitionEnd'),
},
prefixedEventNames = {},
style = {}
canUseDOM &&
((style = document.createElement('div').style),
'AnimationEvent' in window ||
(delete vendorPrefixes.animationend.animation,
delete vendorPrefixes.animationiteration.animation,
delete vendorPrefixes.animationstart.animation),
'TransitionEvent' in window ||
delete vendorPrefixes.transitionend.transition)
var ANIMATION_END = getVendorPrefixedEventName('animationend'),
ANIMATION_ITERATION = getVendorPrefixedEventName('animationiteration'),
ANIMATION_START = getVendorPrefixedEventName('animationstart'),
TRANSITION_RUN = getVendorPrefixedEventName('transitionrun'),
TRANSITION_START = getVendorPrefixedEventName('transitionstart'),
TRANSITION_CANCEL = getVendorPrefixedEventName('transitioncancel'),
TRANSITION_END = getVendorPrefixedEventName('transitionend'),
topLevelEventsToReactNames = new Map(),
simpleEventPluginEvents =
'abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel'.split(
' '
)
simpleEventPluginEvents.push('scrollEnd')
var lastResetTime = 0
if (
'object' === typeof performance &&
'function' === typeof performance.now
) {
var localPerformance = performance
var getCurrentTime = function () {
return localPerformance.now()
}
} else {
var localDate = Date
getCurrentTime = function () {
return localDate.now()
}
}
var reportGlobalError =
'function' === typeof reportError
? reportError
: function (error) {
if (
'object' === typeof window &&
'function' === typeof window.ErrorEvent
) {
var event = new window.ErrorEvent('error', {
bubbles: !0,
cancelable: !0,
message:
'object' === typeof error &&
null !== error &&
'string' === typeof error.message
? String(error.message)
: String(error),
error: error,
})
if (!window.dispatchEvent(event)) return
} else if (
'object' === typeof process &&
'function' === typeof process.emit
) {
process.emit('uncaughtException', error)
return
}
console.error(error)
},
OffscreenVisible = 1,
OffscreenPassiveEffectsConnected = 2,
concurrentQueues = [],
concurrentQueuesIndex = 0,
concurrentlyUpdatedLanes = 0,
emptyContextObject = {}
Object.freeze(emptyContextObject)
var resolveFamily = null,
failedBoundaries = null,
NoMode = 0,
ConcurrentMode = 1,
ProfileMode = 2,
StrictLegacyMode = 8,
StrictEffectsMode = 16,
SuspenseyImagesMode = 32
var hasBadMapPolyfill = !1
try {
var nonExtensibleObject = Object.preventExtensions({})
new Map([[nonExtensibleObject, null]])
new Set([nonExtensibleObject])
} catch (e$3) {
hasBadMapPolyfill = !0
}
var CapturedStacks = new WeakMap(),
forkStack = [],
forkStackIndex = 0,
treeForkProvider = null,
treeForkCount = 0,
idStack = [],
idStackIndex = 0,
treeContextProvider = null,
treeContextId = 1,
treeContextOverflow = '',
hydrationParentFiber = null,
nextHydratableInstance = null,
isHydrating = !1,
didSuspendOrErrorDEV = !1,
hydrationDiffRootDEV = null,
hydrationErrors = null,
rootOrSingletonContext = !1,
HydrationMismatchException = Error(
"Hydration Mismatch Exception: This is not a real error, and should not leak into userspace. If you're seeing this, it's likely a bug in React."
),
valueCursor = createCursor(null)
var rendererCursorDEV = createCursor(null)
var rendererSigil = {}
var currentlyRenderingFiber$1 = null,
lastContextDependency = null,
isDisallowedContextReadInDEV = !1,
AbortControllerLocal =
'undefined' !== typeof AbortController
? AbortController
: function () {
var listeners = [],
signal = (this.signal = {
aborted: !1,
addEventListener: function (type, listener) {
listeners.push(listener)
},
})
this.abort = function () {
signal.aborted = !0
listeners.forEach(function (listener) {
return listener()
})
}
},
scheduleCallback$2 = Scheduler.unstable_scheduleCallback,
NormalPriority = Scheduler.unstable_NormalPriority,
CacheContext = {
$$typeof: REACT_CONTEXT_TYPE,
Consumer: null,
Provider: null,
_currentValue: null,
_currentValue2: null,
_threadCount: 0,
_currentRenderer: null,
_currentRenderer2: null,
},
now = Scheduler.unstable_now,
renderStartTime = -0,
commitStartTime = -0,
profilerStartTime = -1.1,
profilerEffectDuration = -0,
componentEffectStartTime = -1.1,
currentUpdateIsNested = !1,
nestedUpdateScheduled = !1,
currentEntangledListeners = null,
currentEntangledPendingCount = 0,
currentEntangledLane = 0,
currentEntangledActionThenable = null,
prevOnStartTransitionFinish = ReactSharedInternals.S
ReactSharedInternals.S = function (transition, returnValue) {
'object' === typeof returnValue &&
null !== returnValue &&
'function' === typeof returnValue.then &&
entangleAsyncAction(transition, returnValue)
null !== prevOnStartTransitionFinish &&
prevOnStartTransitionFinish(transition, returnValue)
}
var resumedCache = createCursor(null),
ReactStrictModeWarnings = {
recordUnsafeLifecycleWarnings: function () {},
flushPendingUnsafeLifecycleWarnings: function () {},
recordLegacyContextWarning: function () {},
flushLegacyContextWarning: function () {},
discardPendingWarnings: function () {},
},
pendingComponentWillMountWarnings = [],
pendingUNSAFE_ComponentWillMountWarnings = [],
pendingComponentWillReceivePropsWarnings = [],
pendingUNSAFE_ComponentWillReceivePropsWarnings = [],
pendingComponentWillUpdateWarnings = [],
pendingUNSAFE_ComponentWillUpdateWarnings = [],
didWarnAboutUnsafeLifecycles = new Set()
ReactStrictModeWarnings.recordUnsafeLifecycleWarnings = function (
fiber,
instance
) {
didWarnAboutUnsafeLifecycles.has(fiber.type) ||
('function' === typeof instance.componentWillMount &&
!0 !== instance.componentWillMount.__suppressDeprecationWarning &&
pendingComponentWillMountWarnings.push(fiber),
fiber.mode & StrictLegacyMode &&
'function' === typeof instance.UNSAFE_componentWillMount &&
pendingUNSAFE_ComponentWillMountWarnings.push(fiber),
'function' === typeof instance.componentWillReceiveProps &&
!0 !==
instance.componentWillReceiveProps.__suppressDeprecationWarning &&
pendingComponentWillReceivePropsWarnings.push(fiber),
fiber.mode & StrictLegacyMode &&
'function' === typeof instance.UNSAFE_componentWillReceiveProps &&
pendingUNSAFE_ComponentWillReceivePropsWarnings.push(fiber),
'function' === typeof instance.componentWillUpdate &&
!0 !== instance.componentWillUpdate.__suppressDeprecationWarning &&
pendingComponentWillUpdateWarnings.push(fiber),
fiber.mode & StrictLegacyMode &&
'function' === typeof instance.UNSAFE_componentWillUpdate &&
pendingUNSAFE_ComponentWillUpdateWarnings.push(fiber))
}
ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings = function () {
var componentWillMountUniqueNames = new Set()
0 < pendingComponentWillMountWarnings.length &&
(pendingComponentWillMountWarnings.forEach(function (fiber) {
componentWillMountUniqueNames.add(
getComponentNameFromFiber(fiber) || 'Component'
)
didWarnAboutUnsafeLifecycles.add(fiber.type)
}),
(pendingComponentWillMountWarnings = []))
var UNSAFE_componentWillMountUniqueNames = new Set()
0 < pendingUNSAFE_ComponentWillMountWarnings.length &&
(pendingUNSAFE_ComponentWillMountWarnings.forEach(function (fiber) {
UNSAFE_componentWillMountUniqueNames.add(
getComponentNameFromFiber(fiber) || 'Component'
)
didWarnAboutUnsafeLifecycles.add(fiber.type)
}),
(pendingUNSAFE_ComponentWillMountWarnings = []))
var componentWillReceivePropsUniqueNames = new Set()
0 < pendingComponentWillReceivePropsWarnings.length &&
(pendingComponentWillReceivePropsWarnings.forEach(function (fiber) {
componentWillReceivePropsUniqueNames.add(
getComponentNameFromFiber(fiber) || 'Component'
)
didWarnAboutUnsafeLifecycles.add(fiber.type)
}),
(pendingComponentWillReceivePropsWarnings = []))
var UNSAFE_componentWillReceivePropsUniqueNames = new Set()
0 < pendingUNSAFE_ComponentWillReceivePropsWarnings.length &&
(pendingUNSAFE_ComponentWillReceivePropsWarnings.forEach(
function (fiber) {
UNSAFE_componentWillReceivePropsUniqueNames.add(
getComponentNameFromFiber(fiber) || 'Component'
)
didWarnAboutUnsafeLifecycles.add(fiber.type)
}
),
(pendingUNSAFE_ComponentWillReceivePropsWarnings = []))
var componentWillUpdateUniqueNames = new Set()
0 < pendingComponentWillUpdateWarnings.length &&
(pendingComponentWillUpdateWarnings.forEach(function (fiber) {
componentWillUpdateUniqueNames.add(
getComponentNameFromFiber(fiber) || 'Component'
)
didWarnAboutUnsafeLifecycles.add(fiber.type)
}),
(pendingComponentWillUpdateWarnings = []))
var UNSAFE_componentWillUpdateUniqueNames = new Set()
0 < pendingUNSAFE_ComponentWillUpdateWarnings.length &&
(pendingUNSAFE_ComponentWillUpdateWarnings.forEach(function (fiber) {
UNSAFE_componentWillUpdateUniqueNames.add(
getComponentNameFromFiber(fiber) || 'Component'
)
didWarnAboutUnsafeLifecycles.add(fiber.type)
}),
(pendingUNSAFE_ComponentWillUpdateWarnings = []))
if (0 < UNSAFE_componentWillMountUniqueNames.size) {
var sortedNames = setToSortedString(
UNSAFE_componentWillMountUniqueNames
)
console.error(
'Using UNSAFE_componentWillMount in strict mode is not recommended and may indicate bugs in your code. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move code with side effects to componentDidMount, and set initial state in the constructor.\n\nPlease update the following components: %s',
sortedNames
)
}
0 < UNSAFE_componentWillReceivePropsUniqueNames.size &&
((sortedNames = setToSortedString(
UNSAFE_componentWillReceivePropsUniqueNames
)),
console.error(
"Using UNSAFE_componentWillReceiveProps in strict mode is not recommended and may indicate bugs in your code. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move data fetching code or side effects to componentDidUpdate.\n* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://react.dev/link/derived-state\n\nPlease update the following components: %s",
sortedNames
))
0 < UNSAFE_componentWillUpdateUniqueNames.size &&
((sortedNames = setToSortedString(
UNSAFE_componentWillUpdateUniqueNames
)),
console.error(
'Using UNSAFE_componentWillUpdate in strict mode is not recommended and may indicate bugs in your code. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move data fetching code or side effects to componentDidUpdate.\n\nPlease update the following components: %s',
sortedNames
))
0 < componentWillMountUniqueNames.size &&
((sortedNames = setToSortedString(componentWillMountUniqueNames)),
console.warn(
'componentWillMount has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move code with side effects to componentDidMount, and set initial state in the constructor.\n* Rename componentWillMount to UNSAFE_componentWillMount to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.\n\nPlease update the following components: %s',
sortedNames
))
0 < componentWillReceivePropsUniqueNames.size &&
((sortedNames = setToSortedString(
componentWillReceivePropsUniqueNames
)),
console.warn(
"componentWillReceiveProps has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move data fetching code or side effects to componentDidUpdate.\n* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://react.dev/link/derived-state\n* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.\n\nPlease update the following components: %s",
sortedNames
))
0 < componentWillUpdateUniqueNames.size &&
((sortedNames = setToSortedString(componentWillUpdateUniqueNames)),
console.warn(
'componentWillUpdate has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\n\n* Move data fetching code or side effects to componentDidUpdate.\n* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.\n\nPlease update the following components: %s',
sortedNames
))
}
var pendingLegacyContextWarning = new Map(),
didWarnAboutLegacyContext = new Set()
ReactStrictModeWarnings.recordLegacyContextWarning = function (
fiber,
instance
) {
var strictRoot = null
for (var node = fiber; null !== node; )
(node.mode & StrictLegacyMode && (strictRoot = node),
(node = node.return))
null === strictRoot
? console.error(
'Expected to find a StrictMode component in a strict mode tree. This error is likely caused by a bug in React. Please file an issue.'
)
: !didWarnAboutLegacyContext.has(fiber.type) &&
((node = pendingLegacyContextWarning.get(strictRoot)),
null != fiber.type.contextTypes ||
null != fiber.type.childContextTypes ||
(null !== instance &&
'function' === typeof instance.getChildContext)) &&
(void 0 === node &&
((node = []), pendingLegacyContextWarning.set(strictRoot, node)),
node.push(fiber))
}
ReactStrictModeWarnings.flushLegacyContextWarning = function () {
pendingLegacyContextWarning.forEach(function (fiberArray) {
if (0 !== fiberArray.length) {
var firstFiber = fiberArray[0],
uniqueNames = new Set()
fiberArray.forEach(function (fiber) {
uniqueNames.add(getComponentNameFromFiber(fiber) || 'Component')
didWarnAboutLegacyContext.add(fiber.type)
})
var sortedNames = setToSortedString(uniqueNames)
runWithFiberInDEV(firstFiber, function () {
console.error(
'Legacy context API has been detected within a strict-mode tree.\n\nThe old API will be supported in all 16.x releases, but applications using it should migrate to the new version.\n\nPlease update the following components: %s\n\nLearn more about this warning here: https://react.dev/link/legacy-context',
sortedNames
)
})
}
})
}
ReactStrictModeWarnings.discardPendingWarnings = function () {
pendingComponentWillMountWarnings = []
pendingUNSAFE_ComponentWillMountWarnings = []
pendingComponentWillReceivePropsWarnings = []
pendingUNSAFE_ComponentWillReceivePropsWarnings = []
pendingComponentWillUpdateWarnings = []
pendingUNSAFE_ComponentWillUpdateWarnings = []
pendingLegacyContextWarning = new Map()
}
var callComponent = {
react_stack_bottom_frame: function (Component, props, secondArg) {
var wasRendering = isRendering
isRendering = !0
try {
return Component(props, secondArg)
} finally {
isRendering = wasRendering
}
},
},
callComponentInDEV =
callComponent.react_stack_bottom_frame.bind(callComponent),
callRender = {
react_stack_bottom_frame: function (instance) {
var wasRendering = isRendering
isRendering = !0
try {
return instance.render()
} finally {
isRendering = wasRendering
}
},
},
callRenderInDEV = callRender.react_stack_bottom_frame.bind(callRender),
callComponentDidMount = {
react_stack_bottom_frame: function (finishedWork, instance) {
try {
instance.componentDidMount()
} catch (error) {
captureCommitPhaseError(finishedWork, finishedWork.return, error)
}
},
},
callComponentDidMountInDEV =
callComponentDidMount.react_stack_bottom_frame.bind(
callComponentDidMount
),
callComponentDidUpdate = {
react_stack_bottom_frame: function (
finishedWork,
instance,
prevProps,
prevState,
snapshot
) {
try {
instance.componentDidUpdate(prevProps, prevState, snapshot)
} catch (error) {
captureCommitPhaseError(finishedWork, finishedWork.return, error)
}
},
},
callComponentDidUpdateInDEV =
callComponentDidUpdate.react_stack_bottom_frame.bind(
callComponentDidUpdate
),
callComponentDidCatch = {
react_stack_bottom_frame: function (instance, errorInfo) {
var stack = errorInfo.stack
instance.componentDidCatch(errorInfo.value, {
componentStack: null !== stack ? stack : '',
})
},
},
callComponentDidCatchInDEV =
callComponentDidCatch.react_stack_bottom_frame.bind(
callComponentDidCatch
),
callComponentWillUnmount = {
react_stack_bottom_frame: function (
current,
nearestMountedAncestor,
instance
) {
try {
instance.componentWillUnmount()
} catch (error) {
captureCommitPhaseError(current, nearestMountedAncestor, error)
}
},
},
callComponentWillUnmountInDEV =
callComponentWillUnmount.react_stack_bottom_frame.bind(
callComponentWillUnmount
),
callCreate = {
react_stack_bottom_frame: function (effect) {
var create = effect.create
effect = effect.inst
create = create()
return (effect.destroy = create)
},
},
callCreateInDEV = callCreate.react_stack_bottom_frame.bind(callCreate),
callDestroy = {
react_stack_bottom_frame: function (
current,
nearestMountedAncestor,
destroy
) {
try {
destroy()
} catch (error) {
captureCommitPhaseError(current, nearestMountedAncestor, error)
}
},
},
callDestroyInDEV = callDestroy.react_stack_bottom_frame.bind(callDestroy),
callLazyInit = {
react_stack_bottom_frame: function (lazy) {
var init = lazy._init
return init(lazy._payload)
},
},
callLazyInitInDEV =
callLazyInit.react_stack_bottom_frame.bind(callLazyInit),
SuspenseException = Error(
"Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`."
),
SuspenseyCommitException = Error(
"Suspense Exception: This is not a real error, and should not leak into userspace. If you're seeing this, it's likely a bug in React."
),
SuspenseActionException = Error(
"Suspense Exception: This is not a real error! It's an implementation detail of `useActionState` to interrupt the current render. You must either rethrow it immediately, or move the `useActionState` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary."
),
noopSuspenseyCommitThenable = {
then: function () {
console.error(
'Internal React error: A listener was unexpectedly attached to a "noop" thenable. This is a bug in React. Please file an issue.'
)
},
},
suspendedThenable = null,
needsToResetSuspendedThenableDEV = !1,
thenableState$1 = null,
thenableIndexCounter$1 = 0,
currentDebugInfo = null,
didWarnAboutMaps
var didWarnAboutGenerators = (didWarnAboutMaps = !1)
var ownerHasKeyUseWarning = {}
var ownerHasFunctionTypeWarning = {}
var ownerHasSymbolTypeWarning = {}
warnForMissingKey = function (returnFiber, workInProgress, child) {
if (
null !== child &&
'object' === typeof child &&
child._store &&
((!child._store.validated && null == child.key) ||
2 === child._store.validated)
) {
if ('object' !== typeof child._store)
throw Error(
'React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue.'
)
child._store.validated = 1
var componentName = getComponentNameFromFiber(returnFiber),
componentKey = componentName || 'null'
if (!ownerHasKeyUseWarning[componentKey]) {
ownerHasKeyUseWarning[componentKey] = !0
child = child._owner
returnFiber = returnFiber._debugOwner
var currentComponentErrorInfo = ''
returnFiber &&
'number' === typeof returnFiber.tag &&
(componentKey = getComponentNameFromFiber(returnFiber)) &&
(currentComponentErrorInfo =
'\n\nCheck the render method of `' + componentKey + '`.')
currentComponentErrorInfo ||
(componentName &&
(currentComponentErrorInfo =
'\n\nCheck the top-level render call using <' +
componentName +
'>.'))
var childOwnerAppendix = ''
null != child &&
returnFiber !== child &&
((componentName = null),
'number' === typeof child.tag
? (componentName = getComponentNameFromFiber(child))
: 'string' === typeof child.name && (componentName = child.name),
componentName &&
(childOwnerAppendix =
' It was passed a child from ' + componentName + '.'))
runWithFiberInDEV(workInProgress, function () {
console.error(
'Each child in a list should have a unique "key" prop.%s%s See https://react.dev/link/warning-keys for more information.',
currentComponentErrorInfo,
childOwnerAppendix
)
})
}
}
}
var reconcileChildFibers = createChildReconciler(!0),
mountChildFibers = createChildReconciler(!1),
UpdateState = 0,
ReplaceState = 1,
ForceUpdate = 2,
CaptureUpdate = 3,
hasForceUpdate = !1
var didWarnUpdateInsideUpdate = !1
var currentlyProcessingQueue = null
var didReadFromEntangledAsyncAction = !1,
currentTreeHiddenStackCursor = createCursor(null),
prevEntangledRenderLanesCursor = createCursor(0),
suspenseHandlerStackCursor = createCursor(null),
shellBoundary = null,
SubtreeSuspenseContextMask = 1,
ForceSuspenseFallback = 2,
suspenseStackCursor = createCursor(0),
NoFlags = 0,
HasEffect = 1,
Insertion = 2,
Layout = 4,
Passive = 8,
didWarnUncachedGetSnapshot
var didWarnAboutMismatchedHooksForComponent = new Set()
var didWarnAboutUseWrappedInTryCatch = new Set()
var didWarnAboutAsyncClientComponent = new Set()
var didWarnAboutUseFormState = new Set()
var renderLanes = 0,
currentlyRenderingFiber = null,
currentHook = null,
workInProgressHook = null,
didScheduleRenderPhaseUpdate = !1,
didScheduleRenderPhaseUpdateDuringThisPass = !1,
shouldDoubleInvokeUserFnsInHooksDEV = !1,
localIdCounter = 0,
thenableIndexCounter = 0,
thenableState = null,
globalClientIdCounter = 0,
RE_RENDER_LIMIT = 25,
currentHookNameInDev = null,
hookTypesDev = null,
hookTypesUpdateIndexDev = -1,
ignorePreviousDependencies = !1,
ContextOnlyDispatcher = {
readContext: readContext,
use: use,
useCallback: throwInvalidHookError,
useContext: throwInvalidHookError,
useEffect: throwInvalidHookError,
useImperativeHandle: throwInvalidHookError,
useLayoutEffect: throwInvalidHookError,
useInsertionEffect: throwInvalidHookError,
useMemo: throwInvalidHookError,
useReducer: throwInvalidHookError,
useRef: throwInvalidHookError,
useState: throwInvalidHookError,
useDebugValue: throwInvalidHookError,
useDeferredValue: throwInvalidHookError,
useTransition: throwInvalidHookError,
useSyncExternalStore: throwInvalidHookError,
useId: throwInvalidHookError,
useHostTransitionStatus: throwInvalidHookError,
useFormState: throwInvalidHookError,
useActionState: throwInvalidHookError,
useOptimistic: throwInvalidHookError,
useMemoCache: throwInvalidHookError,
useCacheRefresh: throwInvalidHookError,
},
HooksDispatcherOnMountInDEV = null,
HooksDispatcherOnMountWithHookTypesInDEV = null,
HooksDispatcherOnUpdateInDEV = null,
HooksDispatcherOnRerenderInDEV = null,
InvalidNestedHooksDispatcherOnMountInDEV = null,
InvalidNestedHooksDispatcherOnUpdateInDEV = null,
InvalidNestedHooksDispatcherOnRerenderInDEV = null
HooksDispatcherOnMountInDEV = {
readContext: function (context) {
return readContext(context)
},
use: use,
useCallback: function (callback, deps) {
currentHookNameInDev = 'useCallback'
mountHookTypesDev()
checkDepsAreArrayDev(deps)
return mountCallback(callback, deps)
},
useContext: function (context) {
currentHookNameInDev = 'useContext'
mountHookTypesDev()
return readContext(context)
},
useEffect: function (create, deps) {
currentHookNameInDev = 'useEffect'
mountHookTypesDev()
checkDepsAreArrayDev(deps)
return mountEffect(create, deps)
},
useImperativeHandle: function (ref, create, deps) {
currentHookNameInDev = 'useImperativeHandle'
mountHookTypesDev()
checkDepsAreArrayDev(deps)
return mountImperativeHandle(ref, create, deps)
},
useInsertionEffect: function (create, deps) {
currentHookNameInDev = 'useInsertionEffect'
mountHookTypesDev()
checkDepsAreArrayDev(deps)
mountEffectImpl(4, Insertion, create, deps)
},
useLayoutEffect: function (create, deps) {
currentHookNameInDev = 'useLayoutEffect'
mountHookTypesDev()
checkDepsAreArrayDev(deps)
return mountLayoutEffect(create, deps)
},
useMemo: function (create, deps) {
currentHookNameInDev = 'useMemo'
mountHookTypesDev()
checkDepsAreArrayDev(deps)
var prevDispatcher = ReactSharedInternals.H
ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV
try {
return mountMemo(create, deps)
} finally {
ReactSharedInternals.H = prevDispatcher
}
},
useReducer: function (reducer, initialArg, init) {
currentHookNameInDev = 'useReducer'
mountHookTypesDev()
var prevDispatcher = ReactSharedInternals.H
ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV
try {
return mountReducer(reducer, initialArg, init)
} finally {
ReactSharedInternals.H = prevDispatcher
}
},
useRef: function (initialValue) {
currentHookNameInDev = 'useRef'
mountHookTypesDev()
return mountRef(initialValue)
},
useState: function (initialState) {
currentHookNameInDev = 'useState'
mountHookTypesDev()
var prevDispatcher = ReactSharedInternals.H
ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV
try {
return mountState(initialState)
} finally {
ReactSharedInternals.H = prevDispatcher
}
},
useDebugValue: function () {
currentHookNameInDev = 'useDebugValue'
mountHookTypesDev()
},
useDeferredValue: function (value, initialValue) {
currentHookNameInDev = 'useDeferredValue'
mountHookTypesDev()
return mountDeferredValue(value, initialValue)
},
useTransition: function () {
currentHookNameInDev = 'useTransition'
mountHookTypesDev()
return mountTransition()
},
useSyncExternalStore: function (
subscribe,
getSnapshot,
getServerSnapshot
) {
currentHookNameInDev = 'useSyncExternalStore'
mountHookTypesDev()
return mountSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)
},
useId: function () {
currentHookNameInDev = 'useId'
mountHookTypesDev()
return mountId()
},
useFormState: function (action, initialState) {
currentHookNameInDev = 'useFormState'
mountHookTypesDev()
warnOnUseFormStateInDev()
return mountActionState(action, initialState)
},
useActionState: function (action, initialState) {
currentHookNameInDev = 'useActionState'
mountHookTypesDev()
return mountActionState(action, initialState)
},
useOptimistic: function (passthrough) {
currentHookNameInDev = 'useOptimistic'
mountHookTypesDev()
return mountOptimistic(passthrough)
},
useHostTransitionStatus: useHostTransitionStatus,
useMemoCache: useMemoCache,
useCacheRefresh: function () {
currentHookNameInDev = 'useCacheRefresh'
mountHookTypesDev()
return mountRefresh()
},
}
HooksDispatcherOnMountWithHookTypesInDEV = {
readContext: function (context) {
return readContext(context)
},
use: use,
useCallback: function (callback, deps) {
currentHookNameInDev = 'useCallback'
updateHookTypesDev()
return mountCallback(callback, deps)
},
useContext: function (context) {
currentHookNameInDev = 'useContext'
updateHookTypesDev()
return readContext(context)
},
useEffect: function (create, deps) {
currentHookNameInDev = 'useEffect'
updateHookTypesDev()
return mountEffect(create, deps)
},
useImperativeHandle: function (ref, create, deps) {
currentHookNameInDev = 'useImperativeHandle'
updateHookTypesDev()
return mountImperativeHandle(ref, create, deps)
},
useInsertionEffect: function (create, deps) {
currentHookNameInDev = 'useInsertionEffect'
updateHookTypesDev()
mountEffectImpl(4, Insertion, create, deps)
},
useLayoutEffect: function (create, deps) {
currentHookNameInDev = 'useLayoutEffect'
updateHookTypesDev()
return mountLayoutEffect(create, deps)
},
useMemo: function (create, deps) {
currentHookNameInDev = 'useMemo'
updateHookTypesDev()
var prevDispatcher = ReactSharedInternals.H
ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV
try {
return mountMemo(create, deps)
} finally {
ReactSharedInternals.H = prevDispatcher
}
},
useReducer: function (reducer, initialArg, init) {
currentHookNameInDev = 'useReducer'
updateHookTypesDev()
var prevDispatcher = ReactSharedInternals.H
ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV
try {
return mountReducer(reducer, initialArg, init)
} finally {
ReactSharedInternals.H = prevDispatcher
}
},
useRef: function (initialValue) {
currentHookNameInDev = 'useRef'
updateHookTypesDev()
return mountRef(initialValue)
},
useState: function (initialState) {
currentHookNameInDev = 'useState'
updateHookTypesDev()
var prevDispatcher = ReactSharedInternals.H
ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV
try {
return mountState(initialState)
} finally {
ReactSharedInternals.H = prevDispatcher
}
},
useDebugValue: function () {
currentHookNameInDev = 'useDebugValue'
updateHookTypesDev()
},
useDeferredValue: function (value, initialValue) {
currentHookNameInDev = 'useDeferredValue'
updateHookTypesDev()
return mountDeferredValue(value, initialValue)
},
useTransition: function () {
currentHookNameInDev = 'useTransition'
updateHookTypesDev()
return mountTransition()
},
useSyncExternalStore: function (
subscribe,
getSnapshot,
getServerSnapshot
) {
currentHookNameInDev = 'useSyncExternalStore'
updateHookTypesDev()
return mountSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)
},
useId: function () {
currentHookNameInDev = 'useId'
updateHookTypesDev()
return mountId()
},
useActionState: function (action, initialState) {
currentHookNameInDev = 'useActionState'
updateHookTypesDev()
return mountActionState(action, initialState)
},
useFormState: function (action, initialState) {
currentHookNameInDev = 'useFormState'
updateHookTypesDev()
warnOnUseFormStateInDev()
return mountActionState(action, initialState)
},
useOptimistic: function (passthrough) {
currentHookNameInDev = 'useOptimistic'
updateHookTypesDev()
return mountOptimistic(passthrough)
},
useHostTransitionStatus: useHostTransitionStatus,
useMemoCache: useMemoCache,
useCacheRefresh: function () {
currentHookNameInDev = 'useCacheRefresh'
updateHookTypesDev()
return mountRefresh()
},
}
HooksDispatcherOnUpdateInDEV = {
readContext: function (context) {
return readContext(context)
},
use: use,
useCallback: function (callback, deps) {
currentHookNameInDev = 'useCallback'
updateHookTypesDev()
return updateCallback(callback, deps)
},
useContext: function (context) {
currentHookNameInDev = 'useContext'
updateHookTypesDev()
return readContext(context)
},
useEffect: function (create, deps) {
currentHookNameInDev = 'useEffect'
updateHookTypesDev()
updateEffectImpl(2048, Passive, create, deps)
},
useImperativeHandle: function (ref, create, deps) {
currentHookNameInDev = 'useImperativeHandle'
updateHookTypesDev()
return updateImperativeHandle(ref, create, deps)
},
useInsertionEffect: function (create, deps) {
currentHookNameInDev = 'useInsertionEffect'
updateHookTypesDev()
return updateEffectImpl(4, Insertion, create, deps)
},
useLayoutEffect: function (create, deps) {
currentHookNameInDev = 'useLayoutEffect'
updateHookTypesDev()
return updateEffectImpl(4, Layout, create, deps)
},
useMemo: function (create, deps) {
currentHookNameInDev = 'useMemo'
updateHookTypesDev()
var prevDispatcher = ReactSharedInternals.H
ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV
try {
return updateMemo(create, deps)
} finally {
ReactSharedInternals.H = prevDispatcher
}
},
useReducer: function (reducer, initialArg, init) {
currentHookNameInDev = 'useReducer'
updateHookTypesDev()
var prevDispatcher = ReactSharedInternals.H
ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV
try {
return updateReducer(reducer, initialArg, init)
} finally {
ReactSharedInternals.H = prevDispatcher
}
},
useRef: function () {
currentHookNameInDev = 'useRef'
updateHookTypesDev()
return updateWorkInProgressHook().memoizedState
},
useState: function () {
currentHookNameInDev = 'useState'
updateHookTypesDev()
var prevDispatcher = ReactSharedInternals.H
ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV
try {
return updateReducer(basicStateReducer)
} finally {
ReactSharedInternals.H = prevDispatcher
}
},
useDebugValue: function () {
currentHookNameInDev = 'useDebugValue'
updateHookTypesDev()
},
useDeferredValue: function (value, initialValue) {
currentHookNameInDev = 'useDeferredValue'
updateHookTypesDev()
return updateDeferredValue(value, initialValue)
},
useTransition: function () {
currentHookNameInDev = 'useTransition'
updateHookTypesDev()
return updateTransition()
},
useSyncExternalStore: function (
subscribe,
getSnapshot,
getServerSnapshot
) {
currentHookNameInDev = 'useSyncExternalStore'
updateHookTypesDev()
return updateSyncExternalStore(
subscribe,
getSnapshot,
getServerSnapshot
)
},
useId: function () {
currentHookNameInDev = 'useId'
updateHookTypesDev()
return updateWorkInProgressHook().memoizedState
},
useFormState: function (action) {
currentHookNameInDev = 'useFormState'
updateHookTypesDev()
warnOnUseFormStateInDev()
return updateActionState(action)
},
useActionState: function (action) {
currentHookNameInDev = 'useActionState'
updateHookTypesDev()
return updateActionState(action)
},
useOptimistic: function (passthrough, reducer) {
currentHookNameInDev = 'useOptimistic'
updateHookTypesDev()
return updateOptimistic(passthrough, reducer)
},
useHostTransitionStatus: useHostTransitionStatus,
useMemoCache: useMemoCache,
useCacheRefresh: function () {
currentHookNameInDev = 'useCacheRefresh'
updateHookTypesDev()
return updateWorkInProgressHook().memoizedState
},
}
HooksDispatcherOnRerenderInDEV = {
readContext: function (context) {
return readContext(context)
},
use: use,
useCallback: function (callback, deps) {
currentHookNameInDev = 'useCallback'
updateHookTypesDev()
return updateCallback(callback, deps)
},
useContext: function (context) {
currentHookNameInDev = 'useContext'
updateHookTypesDev()
return readContext(context)
},
useEffect: function (create, deps) {
currentHookNameInDev = 'useEffect'
updateHookTypesDev()
updateEffectImpl(2048, Passive, create, deps)
},
useImperativeHandle: function (ref, create, deps) {
currentHookNameInDev = 'useImperativeHandle'
updateHookTypesDev()
return updateImperativeHandle(ref, create, deps)
},
useInsertionEffect: function (create, deps) {
currentHookNameInDev = 'useInsertionEffect'
updateHookTypesDev()
return updateEffectImpl(4, Insertion, create, deps)
},
useLayoutEffect: function (create, deps) {
currentHookNameInDev = 'useLayoutEffect'
updateHookTypesDev()
return updateEffectImpl(4, Layout, create, deps)
},
useMemo: function (create, deps) {
currentHookNameInDev = 'useMemo'
updateHookTypesDev()
var prevDispatcher = ReactSharedInternals.H
ReactSharedInternals.H = InvalidNestedHooksDispatcherOnRerenderInDEV
try {
return updateMemo(create, deps)
} finally {
ReactSharedInternals.H = prevDispatcher
}
},
useReducer: function (reducer, initialArg, init) {
currentHookNameInDev = 'useReducer'
updateHookTypesDev()
var prevDispatcher = ReactSharedInternals.H
ReactSharedInternals.H = InvalidNestedHooksDispatcherOnRerenderInDEV
try {
return rerenderReducer(reducer, initialArg, init)
} finally {
ReactSharedInternals.H = prevDispatcher
}
},
useRef: function () {
currentHookNameInDev = 'useRef'
updateHookTypesDev()
return updateWorkInProgressHook().memoizedState
},
useState: function () {
currentHookNameInDev = 'useState'
updateHookTypesDev()
var prevDispatcher = ReactSharedInternals.H
ReactSharedInternals.H = InvalidNestedHooksDispatcherOnRerenderInDEV
try {
return rerenderReducer(basicStateReducer)
} finally {
ReactSharedInternals.H = prevDispatcher
}
},
useDebugValue: function () {
currentHookNameInDev = 'useDebugValue'
updateHookTypesDev()
},
useDeferredValue: function (value, initialValue) {
currentHookNameInDev = 'useDeferredValue'
updateHookTypesDev()
return rerenderDeferredValue(value, initialValue)
},
useTransition: function () {
currentHookNameInDev = 'useTransition'
updateHookTypesDev()
return rerenderTransition()
},
useSyncExternalStore: function (
subscribe,
getSnapshot,
getServerSnapshot
) {
currentHookNameInDev = 'useSyncExternalStore'
updateHookTypesDev()
return updateSyncExternalStore(
subscribe,
getSnapshot,
getServerSnapshot
)
},
useId: function () {
currentHookNameInDev = 'useId'
updateHookTypesDev()
return updateWorkInProgressHook().memoizedState
},
useFormState: function (action) {
currentHookNameInDev = 'useFormState'
updateHookTypesDev()
warnOnUseFormStateInDev()
return rerenderActionState(action)
},
useActionState: function (action) {
currentHookNameInDev = 'useActionState'
updateHookTypesDev()
return rerenderActionState(action)
},
useOptimistic: function (passthrough, reducer) {
currentHookNameInDev = 'useOptimistic'
updateHookTypesDev()
return rerenderOptimistic(passthrough, reducer)
},
useHostTransitionStatus: useHostTransitionStatus,
useMemoCache: useMemoCache,
useCacheRefresh: function () {
currentHookNameInDev = 'useCacheRefresh'
updateHookTypesDev()
return updateWorkInProgressHook().memoizedState
},
}
InvalidNestedHooksDispatcherOnMountInDEV = {
readContext: function (context) {
warnInvalidContextAccess()
return readContext(context)
},
use: function (usable) {
warnInvalidHookAccess()
return use(usable)
},
useCallback: function (callback, deps) {
currentHookNameInDev = 'useCallback'
warnInvalidHookAccess()
mountHookTypesDev()
return mountCallback(callback, deps)
},
useContext: function (context) {
currentHookNameInDev = 'useContext'
warnInvalidHookAccess()
mountHookTypesDev()
return readContext(context)
},
useEffect: function (create, deps) {
currentHookNameInDev = 'useEffect'
warnInvalidHookAccess()
mountHookTypesDev()
return mountEffect(create, deps)
},
useImperativeHandle: function (ref, create, deps) {
currentHookNameInDev = 'useImperativeHandle'
warnInvalidHookAccess()
mountHookTypesDev()
return mountImperativeHandle(ref, create, deps)
},
useInsertionEffect: function (create, deps) {
currentHookNameInDev = 'useInsertionEffect'
warnInvalidHookAccess()
mountHookTypesDev()
mountEffectImpl(4, Insertion, create, deps)
},
useLayoutEffect: function (create, deps) {
currentHookNameInDev = 'useLayoutEffect'
warnInvalidHookAccess()
mountHookTypesDev()
return mountLayoutEffect(create, deps)
},
useMemo: function (create, deps) {
currentHookNameInDev = 'useMemo'
warnInvalidHookAccess()
mountHookTypesDev()
var prevDispatcher = ReactSharedInternals.H
ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV
try {
return mountMemo(create, deps)
} finally {
ReactSharedInternals.H = prevDispatcher
}
},
useReducer: function (reducer, initialArg, init) {
currentHookNameInDev = 'useReducer'
warnInvalidHookAccess()
mountHookTypesDev()
var prevDispatcher = ReactSharedInternals.H
ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV
try {
return mountReducer(reducer, initialArg, init)
} finally {
ReactSharedInternals.H = prevDispatcher
}
},
useRef: function (initialValue) {
currentHookNameInDev = 'useRef'
warnInvalidHookAccess()
mountHookTypesDev()
return mountRef(initialValue)
},
useState: function (initialState) {
currentHookNameInDev = 'useState'
warnInvalidHookAccess()
mountHookTypesDev()
var prevDispatcher = ReactSharedInternals.H
ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV
try {
return mountState(initialState)
} finally {
ReactSharedInternals.H = prevDispatcher
}
},
useDebugValue: function () {
currentHookNameInDev = 'useDebugValue'
warnInvalidHookAccess()
mountHookTypesDev()
},
useDeferredValue: function (value, initialValue) {
currentHookNameInDev = 'useDeferredValue'
warnInvalidHookAccess()
mountHookTypesDev()
return mountDeferredValue(value, initialValue)
},
useTransition: function () {
currentHookNameInDev = 'useTransition'
warnInvalidHookAccess()
mountHookTypesDev()
return mountTransition()
},
useSyncExternalStore: function (
subscribe,
getSnapshot,
getServerSnapshot
) {
currentHookNameInDev = 'useSyncExternalStore'
warnInvalidHookAccess()
mountHookTypesDev()
return mountSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)
},
useId: function () {
currentHookNameInDev = 'useId'
warnInvalidHookAccess()
mountHookTypesDev()
return mountId()
},
useFormState: function (action, initialState) {
currentHookNameInDev = 'useFormState'
warnInvalidHookAccess()
mountHookTypesDev()
return mountActionState(action, initialState)
},
useActionState: function (action, initialState) {
currentHookNameInDev = 'useActionState'
warnInvalidHookAccess()
mountHookTypesDev()
return mountActionState(action, initialState)
},
useOptimistic: function (passthrough) {
currentHookNameInDev = 'useOptimistic'
warnInvalidHookAccess()
mountHookTypesDev()
return mountOptimistic(passthrough)
},
useMemoCache: function (size) {
warnInvalidHookAccess()
return useMemoCache(size)
},
useHostTransitionStatus: useHostTransitionStatus,
useCacheRefresh: function () {
currentHookNameInDev = 'useCacheRefresh'
mountHookTypesDev()
return mountRefresh()
},
}
InvalidNestedHooksDispatcherOnUpdateInDEV = {
readContext: function (context) {
warnInvalidContextAccess()
return readContext(context)
},
use: function (usable) {
warnInvalidHookAccess()
return use(usable)
},
useCallback: function (callback, deps) {
currentHookNameInDev = 'useCallback'
warnInvalidHookAccess()
updateHookTypesDev()
return updateCallback(callback, deps)
},
useContext: function (context) {
currentHookNameInDev = 'useContext'
warnInvalidHookAccess()
updateHookTypesDev()
return readContext(context)
},
useEffect: function (create, deps) {
currentHookNameInDev = 'useEffect'
warnInvalidHookAccess()
updateHookTypesDev()
updateEffectImpl(2048, Passive, create, deps)
},
useImperativeHandle: function (ref, create, deps) {
currentHookNameInDev = 'useImperativeHandle'
warnInvalidHookAccess()
updateHookTypesDev()
return updateImperativeHandle(ref, create, deps)
},
useInsertionEffect: function (create, deps) {
currentHookNameInDev = 'useInsertionEffect'
warnInvalidHookAccess()
updateHookTypesDev()
return updateEffectImpl(4, Insertion, create, deps)
},
useLayoutEffect: function (create, deps) {
currentHookNameInDev = 'useLayoutEffect'
warnInvalidHookAccess()
updateHookTypesDev()
return updateEffectImpl(4, Layout, create, deps)
},
useMemo: function (create, deps) {
currentHookNameInDev = 'useMemo'
warnInvalidHookAccess()
updateHookTypesDev()
var prevDispatcher = ReactSharedInternals.H
ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV
try {
return updateMemo(create, deps)
} finally {
ReactSharedInternals.H = prevDispatcher
}
},
useReducer: function (reducer, initialArg, init) {
currentHookNameInDev = 'useReducer'
warnInvalidHookAccess()
updateHookTypesDev()
var prevDispatcher = ReactSharedInternals.H
ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV
try {
return updateReducer(reducer, initialArg, init)
} finally {
ReactSharedInternals.H = prevDispatcher
}
},
useRef: function () {
currentHookNameInDev = 'useRef'
warnInvalidHookAccess()
updateHookTypesDev()
return updateWorkInProgressHook().memoizedState
},
useState: function () {
currentHookNameInDev = 'useState'
warnInvalidHookAccess()
updateHookTypesDev()
var prevDispatcher = ReactSharedInternals.H
ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV
try {
return updateReducer(basicStateReducer)
} finally {
ReactSharedInternals.H = prevDispatcher
}
},
useDebugValue: function () {
currentHookNameInDev = 'useDebugValue'
warnInvalidHookAccess()
updateHookTypesDev()
},
useDeferredValue: function (value, initialValue) {
currentHookNameInDev = 'useDeferredValue'
warnInvalidHookAccess()
updateHookTypesDev()
return updateDeferredValue(value, initialValue)
},
useTransition: function () {
currentHookNameInDev = 'useTransition'
warnInvalidHookAccess()
updateHookTypesDev()
return updateTransition()
},
useSyncExternalStore: function (
subscribe,
getSnapshot,
getServerSnapshot
) {
currentHookNameInDev = 'useSyncExternalStore'
warnInvalidHookAccess()
updateHookTypesDev()
return updateSyncExternalStore(
subscribe,
getSnapshot,
getServerSnapshot
)
},
useId: function () {
currentHookNameInDev = 'useId'
warnInvalidHookAccess()
updateHookTypesDev()
return updateWorkInProgressHook().memoizedState
},
useFormState: function (action) {
currentHookNameInDev = 'useFormState'
warnInvalidHookAccess()
updateHookTypesDev()
return updateActionState(action)
},
useActionState: function (action) {
currentHookNameInDev = 'useActionState'
warnInvalidHookAccess()
updateHookTypesDev()
return updateActionState(action)
},
useOptimistic: function (passthrough, reducer) {
currentHookNameInDev = 'useOptimistic'
warnInvalidHookAccess()
updateHookTypesDev()
return updateOptimistic(passthrough, reducer)
},
useMemoCache: function (size) {
warnInvalidHookAccess()
return useMemoCache(size)
},
useHostTransitionStatus: useHostTransitionStatus,
useCacheRefresh: function () {
currentHookNameInDev = 'useCacheRefresh'
updateHookTypesDev()
return updateWorkInProgressHook().memoizedState
},
}
InvalidNestedHooksDispatcherOnRerenderInDEV = {
readContext: function (context) {
warnInvalidContextAccess()
return readContext(context)
},
use: function (usable) {
warnInvalidHookAccess()
return use(usable)
},
useCallback: function (callback, deps) {
currentHookNameInDev = 'useCallback'
warnInvalidHookAccess()
updateHookTypesDev()
return updateCallback(callback, deps)
},
useContext: function (context) {
currentHookNameInDev = 'useContext'
warnInvalidHookAccess()
updateHookTypesDev()
return readContext(context)
},
useEffect: function (create, deps) {
currentHookNameInDev = 'useEffect'
warnInvalidHookAccess()
updateHookTypesDev()
updateEffectImpl(2048, Passive, create, deps)
},
useImperativeHandle: function (ref, create, deps) {
currentHookNameInDev = 'useImperativeHandle'
warnInvalidHookAccess()
updateHookTypesDev()
return updateImperativeHandle(ref, create, deps)
},
useInsertionEffect: function (create, deps) {
currentHookNameInDev = 'useInsertionEffect'
warnInvalidHookAccess()
updateHookTypesDev()
return updateEffectImpl(4, Insertion, create, deps)
},
useLayoutEffect: function (create, deps) {
currentHookNameInDev = 'useLayoutEffect'
warnInvalidHookAccess()
updateHookTypesDev()
return updateEffectImpl(4, Layout, create, deps)
},
useMemo: function (create, deps) {
currentHookNameInDev = 'useMemo'
warnInvalidHookAccess()
updateHookTypesDev()
var prevDispatcher = ReactSharedInternals.H
ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV
try {
return updateMemo(create, deps)
} finally {
ReactSharedInternals.H = prevDispatcher
}
},
useReducer: function (reducer, initialArg, init) {
currentHookNameInDev = 'useReducer'
warnInvalidHookAccess()
updateHookTypesDev()
var prevDispatcher = ReactSharedInternals.H
ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV
try {
return rerenderReducer(reducer, initialArg, init)
} finally {
ReactSharedInternals.H = prevDispatcher
}
},
useRef: function () {
currentHookNameInDev = 'useRef'
warnInvalidHookAccess()
updateHookTypesDev()
return updateWorkInProgressHook().memoizedState
},
useState: function () {
currentHookNameInDev = 'useState'
warnInvalidHookAccess()
updateHookTypesDev()
var prevDispatcher = ReactSharedInternals.H
ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV
try {
return rerenderReducer(basicStateReducer)
} finally {
ReactSharedInternals.H = prevDispatcher
}
},
useDebugValue: function () {
currentHookNameInDev = 'useDebugValue'
warnInvalidHookAccess()
updateHookTypesDev()
},
useDeferredValue: function (value, initialValue) {
currentHookNameInDev = 'useDeferredValue'
warnInvalidHookAccess()
updateHookTypesDev()
return rerenderDeferredValue(value, initialValue)
},
useTransition: function () {
currentHookNameInDev = 'useTransition'
warnInvalidHookAccess()
updateHookTypesDev()
return rerenderTransition()
},
useSyncExternalStore: function (
subscribe,
getSnapshot,
getServerSnapshot
) {
currentHookNameInDev = 'useSyncExternalStore'
warnInvalidHookAccess()
updateHookTypesDev()
return updateSyncExternalStore(
subscribe,
getSnapshot,
getServerSnapshot
)
},
useId: function () {
currentHookNameInDev = 'useId'
warnInvalidHookAccess()
updateHookTypesDev()
return updateWorkInProgressHook().memoizedState
},
useFormState: function (action) {
currentHookNameInDev = 'useFormState'
warnInvalidHookAccess()
updateHookTypesDev()
return rerenderActionState(action)
},
useActionState: function (action) {
currentHookNameInDev = 'useActionState'
warnInvalidHookAccess()
updateHookTypesDev()
return rerenderActionState(action)
},
useOptimistic: function (passthrough, reducer) {
currentHookNameInDev = 'useOptimistic'
warnInvalidHookAccess()
updateHookTypesDev()
return rerenderOptimistic(passthrough, reducer)
},
useMemoCache: function (size) {
warnInvalidHookAccess()
return useMemoCache(size)
},
useHostTransitionStatus: useHostTransitionStatus,
useCacheRefresh: function () {
currentHookNameInDev = 'useCacheRefresh'
updateHookTypesDev()
return updateWorkInProgressHook().memoizedState
},
}
var fakeInternalInstance = {}
var didWarnAboutStateAssignmentForComponent = new Set()
var didWarnAboutUninitializedState = new Set()
var didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate = new Set()
var didWarnAboutLegacyLifecyclesAndDerivedState = new Set()
var didWarnAboutDirectlyAssigningPropsToState = new Set()
var didWarnAboutUndefinedDerivedState = new Set()
var didWarnAboutContextTypes$1 = new Set()
var didWarnAboutChildContextTypes = new Set()
var didWarnAboutInvalidateContextType = new Set()
var didWarnOnInvalidCallback = new Set()
Object.freeze(fakeInternalInstance)
var classComponentUpdater = {
enqueueSetState: function (inst, payload, callback) {
inst = inst._reactInternals
var lane = requestUpdateLane(inst),
update = createUpdate(lane)
update.payload = payload
void 0 !== callback &&
null !== callback &&
(warnOnInvalidCallback(callback), (update.callback = callback))
payload = enqueueUpdate(inst, update, lane)
null !== payload &&
(scheduleUpdateOnFiber(payload, inst, lane),
entangleTransitions(payload, inst, lane))
markStateUpdateScheduled(inst, lane)
},
enqueueReplaceState: function (inst, payload, callback) {
inst = inst._reactInternals
var lane = requestUpdateLane(inst),
update = createUpdate(lane)
update.tag = ReplaceState
update.payload = payload
void 0 !== callback &&
null !== callback &&
(warnOnInvalidCallback(callback), (update.callback = callback))
payload = enqueueUpdate(inst, update, lane)
null !== payload &&
(scheduleUpdateOnFiber(payload, inst, lane),
entangleTransitions(payload, inst, lane))
markStateUpdateScheduled(inst, lane)
},
enqueueForceUpdate: function (inst, callback) {
inst = inst._reactInternals
var lane = requestUpdateLane(inst),
update = createUpdate(lane)
update.tag = ForceUpdate
void 0 !== callback &&
null !== callback &&
(warnOnInvalidCallback(callback), (update.callback = callback))
callback = enqueueUpdate(inst, update, lane)
null !== callback &&
(scheduleUpdateOnFiber(callback, inst, lane),
entangleTransitions(callback, inst, lane))
null !== injectedProfilingHooks &&
'function' ===
typeof injectedProfilingHooks.markForceUpdateScheduled &&
injectedProfilingHooks.markForceUpdateScheduled(inst, lane)
},
},
componentName = null,
errorBoundaryName = null,
SelectiveHydrationException = Error(
"This is not a real error. It's an implementation detail of React's selective hydration feature. If this leaks into userspace, it's a bug in React. Please file an issue."
),
didReceiveUpdate = !1
var didWarnAboutBadClass = {}
var didWarnAboutContextTypeOnFunctionComponent = {}
var didWarnAboutContextTypes = {}
var didWarnAboutGetDerivedStateOnFunctionComponent = {}
var didWarnAboutReassigningProps = !1
var didWarnAboutRevealOrder = {}
var didWarnAboutTailOptions = {}
var SUSPENDED_MARKER = {
dehydrated: null,
treeContext: null,
retryLane: 0,
hydrationErrors: null,
},
hasWarnedAboutUsingNoValuePropOnContextProvider = !1,
didWarnAboutUndefinedSnapshotBeforeUpdate = null
didWarnAboutUndefinedSnapshotBeforeUpdate = new Set()
var offscreenSubtreeIsHidden = !1,
offscreenSubtreeWasHidden = !1,
needsFormReset = !1,
PossiblyWeakSet = 'function' === typeof WeakSet ? WeakSet : Set,
nextEffect = null,
inProgressLanes = null,
inProgressRoot = null,
hostParent = null,
hostParentIsContainer = !1,
currentHoistableRoot = null,
suspenseyCommitFlag = 8192,
DefaultAsyncDispatcher = {
getCacheForType: function (resourceType) {
var cache = readContext(CacheContext),
cacheForType = cache.data.get(resourceType)
void 0 === cacheForType &&
((cacheForType = resourceType()),
cache.data.set(resourceType, cacheForType))
return cacheForType
},
cacheSignal: function () {
return readContext(CacheContext).controller.signal
},
getOwner: function () {
return current
},
}
if ('function' === typeof Symbol && Symbol.for) {
var symbolFor = Symbol.for
symbolFor('selector.component')
symbolFor('selector.has_pseudo_class')
symbolFor('selector.role')
symbolFor('selector.test_id')
symbolFor('selector.text')
}
var commitHooks = [],
PossiblyWeakMap = 'function' === typeof WeakMap ? WeakMap : Map,
NoContext = 0,
RenderContext = 2,
CommitContext = 4,
RootInProgress = 0,
RootFatalErrored = 1,
RootErrored = 2,
RootSuspended = 3,
RootSuspendedWithDelay = 4,
RootSuspendedAtTheShell = 6,
RootCompleted = 5,
executionContext = NoContext,
workInProgressRoot = null,
workInProgress = null,
workInProgressRootRenderLanes = 0,
NotSuspended = 0,
SuspendedOnError = 1,
SuspendedOnData = 2,
SuspendedOnImmediate = 3,
SuspendedOnInstance = 4,
SuspendedOnInstanceAndReadyToContinue = 5,
SuspendedOnDeprecatedThrowPromise = 6,
SuspendedAndReadyToContinue = 7,
SuspendedOnHydration = 8,
SuspendedOnAction = 9,
workInProgressSuspendedReason = NotSuspended,
workInProgressThrownValue = null,
workInProgressRootDidSkipSuspendedSiblings = !1,
workInProgressRootIsPrerendering = !1,
workInProgressRootDidAttachPingListener = !1,
entangledRenderLanes = 0,
workInProgressRootExitStatus = RootInProgress,
workInProgressRootSkippedLanes = 0,
workInProgressRootInterleavedUpdatedLanes = 0,
workInProgressRootPingedLanes = 0,
workInProgressDeferredLane = 0,
workInProgressSuspendedRetryLanes = 0,
workInProgressRootConcurrentErrors = null,
workInProgressRootRecoverableErrors = null,
workInProgressRootDidIncludeRecursiveRenderUpdate = !1,
globalMostRecentFallbackTime = 0,
FALLBACK_THROTTLE_MS = 300,
workInProgressRootRenderTargetTime = Infinity,
RENDER_TIMEOUT_MS = 500,
workInProgressTransitions = null,
legacyErrorBoundariesThatAlreadyFailed = null,
IMMEDIATE_COMMIT = 0,
SUSPENDED_COMMIT = 1,
THROTTLED_COMMIT = 2,
NO_PENDING_EFFECTS = 0,
PENDING_MUTATION_PHASE = 1,
PENDING_LAYOUT_PHASE = 2,
PENDING_AFTER_MUTATION_PHASE = 3,
PENDING_SPAWNED_WORK = 4,
PENDING_PASSIVE_PHASE = 5,
pendingEffectsStatus = 0,
pendingEffectsRoot = null,
pendingFinishedWork = null,
pendingEffectsLanes = 0,
pendingEffectsRemainingLanes = 0,
pendingPassiveTransitions = null,
pendingRecoverableErrors = null,
NESTED_UPDATE_LIMIT = 50,
nestedUpdateCount = 0,
rootWithNestedUpdates = null,
isFlushingPassiveEffects = !1,
didScheduleUpdateDuringPassiveEffects = !1,
NESTED_PASSIVE_UPDATE_LIMIT = 50,
nestedPassiveUpdateCount = 0,
rootWithPassiveNestedUpdates = null,
isRunningInsertionEffect = !1,
didWarnStateUpdateForNotYetMountedComponent = null,
didWarnAboutUpdateInRender = !1
var didWarnAboutUpdateInRenderForAnotherComponent = new Set()
var fakeActCallbackNode$1 = {},
firstScheduledRoot = null,
lastScheduledRoot = null,
didScheduleMicrotask = !1,
didScheduleMicrotask_act = !1,
mightHavePendingSyncWork = !1,
isFlushingWork = !1,
currentEventTransitionLane = 0,
fakeActCallbackNode = {}
;(function () {
for (var i = 0; i < simpleEventPluginEvents.length; i++) {
var eventName = simpleEventPluginEvents[i],
domEventName = eventName.toLowerCase()
eventName = eventName[0].toUpperCase() + eventName.slice(1)
registerSimpleEvent(domEventName, 'on' + eventName)
}
registerSimpleEvent(ANIMATION_END, 'onAnimationEnd')
registerSimpleEvent(ANIMATION_ITERATION, 'onAnimationIteration')
registerSimpleEvent(ANIMATION_START, 'onAnimationStart')
registerSimpleEvent('dblclick', 'onDoubleClick')
registerSimpleEvent('focusin', 'onFocus')
registerSimpleEvent('focusout', 'onBlur')
registerSimpleEvent(TRANSITION_RUN, 'onTransitionRun')
registerSimpleEvent(TRANSITION_START, 'onTransitionStart')
registerSimpleEvent(TRANSITION_CANCEL, 'onTransitionCancel')
registerSimpleEvent(TRANSITION_END, 'onTransitionEnd')
})()
registerDirectEvent('onMouseEnter', ['mouseout', 'mouseover'])
registerDirectEvent('onMouseLeave', ['mouseout', 'mouseover'])
registerDirectEvent('onPointerEnter', ['pointerout', 'pointerover'])
registerDirectEvent('onPointerLeave', ['pointerout', 'pointerover'])
registerTwoPhaseEvent(
'onChange',
'change click focusin focusout input keydown keyup selectionchange'.split(
' '
)
)
registerTwoPhaseEvent(
'onSelect',
'focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange'.split(
' '
)
)
registerTwoPhaseEvent('onBeforeInput', [
'compositionend',
'keypress',
'textInput',
'paste',
])
registerTwoPhaseEvent(
'onCompositionEnd',
'compositionend focusout keydown keypress keyup mousedown'.split(' ')
)
registerTwoPhaseEvent(
'onCompositionStart',
'compositionstart focusout keydown keypress keyup mousedown'.split(' ')
)
registerTwoPhaseEvent(
'onCompositionUpdate',
'compositionupdate focusout keydown keypress keyup mousedown'.split(' ')
)
var mediaEventTypes =
'abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting'.split(
' '
),
nonDelegatedEvents = new Set(
'beforetoggle cancel close invalid load scroll scrollend toggle'
.split(' ')
.concat(mediaEventTypes)
),
listeningMarker = '_reactListening' + Math.random().toString(36).slice(2),
didWarnControlledToUncontrolled = !1,
didWarnUncontrolledToControlled = !1,
didWarnFormActionType = !1,
didWarnFormActionName = !1,
didWarnFormActionTarget = !1,
didWarnFormActionMethod = !1,
didWarnPopoverTargetObject = !1
var didWarnForNewBooleanPropsWithEmptyValue = {}
var NORMALIZE_NEWLINES_REGEX = /\r\n?/g,
NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\u0000|\uFFFD/g,
xlinkNamespace = 'http://www.w3.org/1999/xlink',
xmlNamespace = 'http://www.w3.org/XML/1998/namespace',
EXPECTED_FORM_ACTION_URL =
"javascript:throw new Error('React form unexpectedly submitted.')",
SUPPRESS_HYDRATION_WARNING = 'suppressHydrationWarning',
ACTIVITY_START_DATA = '&',
ACTIVITY_END_DATA = '/&',
SUSPENSE_START_DATA = '$',
SUSPENSE_END_DATA = '/$',
SUSPENSE_PENDING_START_DATA = '$?',
SUSPENSE_QUEUED_START_DATA = '$~',
SUSPENSE_FALLBACK_START_DATA = '$!',
PREAMBLE_CONTRIBUTION_HTML = 'html',
PREAMBLE_CONTRIBUTION_BODY = 'body',
PREAMBLE_CONTRIBUTION_HEAD = 'head',
FORM_STATE_IS_MATCHING = 'F!',
FORM_STATE_IS_NOT_MATCHING = 'F',
DOCUMENT_READY_STATE_LOADING = 'loading',
STYLE = 'style',
HostContextNamespaceNone = 0,
HostContextNamespaceSvg = 1,
HostContextNamespaceMath = 2,
eventsEnabled = null,
selectionInformation = null,
warnedUnknownTags = { dialog: !0, webview: !0 },
currentPopstateTransitionEvent = null,
scheduleTimeout = 'function' === typeof setTimeout ? setTimeout : void 0,
cancelTimeout =
'function' === typeof clearTimeout ? clearTimeout : void 0,
noTimeout = -1,
localPromise = 'function' === typeof Promise ? Promise : void 0,
scheduleMicrotask =
'function' === typeof queueMicrotask
? queueMicrotask
: 'undefined' !== typeof localPromise
? function (callback) {
return localPromise
.resolve(null)
.then(callback)
.catch(handleErrorInNextTick)
}
: scheduleTimeout,
previousHydratableOnEnteringScopedSingleton = null,
NotLoaded = 0,
Loaded = 1,
Errored = 2,
Settled = 3,
Inserted = 4,
preloadPropsMap = new Map(),
preconnectsSet = new Set(),
previousDispatcher = ReactDOMSharedInternals.d
ReactDOMSharedInternals.d = {
f: function () {
var previousWasRendering = previousDispatcher.f(),
wasRendering = flushSyncWork$1()
return previousWasRendering || wasRendering
},
r: function (form) {
var formInst = getInstanceFromNode(form)
null !== formInst && 5 === formInst.tag && 'form' === formInst.type
? requestFormReset$1(formInst)
: previousDispatcher.r(form)
},
D: function (href) {
previousDispatcher.D(href)
preconnectAs('dns-prefetch', href, null)
},
C: function (href, crossOrigin) {
previousDispatcher.C(href, crossOrigin)
preconnectAs('preconnect', href, crossOrigin)
},
L: function (href, as, options) {
previousDispatcher.L(href, as, options)
var ownerDocument = globalDocument
if (ownerDocument && href && as) {
var preloadSelector =
'link[rel="preload"][as="' +
escapeSelectorAttributeValueInsideDoubleQuotes(as) +
'"]'
'image' === as
? options && options.imageSrcSet
? ((preloadSelector +=
'[imagesrcset="' +
escapeSelectorAttributeValueInsideDoubleQuotes(
options.imageSrcSet
) +
'"]'),
'string' === typeof options.imageSizes &&
(preloadSelector +=
'[imagesizes="' +
escapeSelectorAttributeValueInsideDoubleQuotes(
options.imageSizes
) +
'"]'))
: (preloadSelector +=
'[href="' +
escapeSelectorAttributeValueInsideDoubleQuotes(href) +
'"]')
: (preloadSelector +=
'[href="' +
escapeSelectorAttributeValueInsideDoubleQuotes(href) +
'"]')
var key = preloadSelector
switch (as) {
case 'style':
key = getStyleKey(href)
break
case 'script':
key = getScriptKey(href)
}
preloadPropsMap.has(key) ||
((href = assign(
{
rel: 'preload',
href:
'image' === as && options && options.imageSrcSet
? void 0
: href,
as: as,
},
options
)),
preloadPropsMap.set(key, href),
null !== ownerDocument.querySelector(preloadSelector) ||
('style' === as &&
ownerDocument.querySelector(
getStylesheetSelectorFromKey(key)
)) ||
('script' === as &&
ownerDocument.querySelector(getScriptSelectorFromKey(key))) ||
((as = ownerDocument.createElement('link')),
setInitialProperties(as, 'link', href),
markNodeAsHoistable(as),
ownerDocument.head.appendChild(as)))
}
},
m: function (href, options) {
previousDispatcher.m(href, options)
var ownerDocument = globalDocument
if (ownerDocument && href) {
var as =
options && 'string' === typeof options.as ? options.as : 'script',
preloadSelector =
'link[rel="modulepreload"][as="' +
escapeSelectorAttributeValueInsideDoubleQuotes(as) +
'"][href="' +
escapeSelectorAttributeValueInsideDoubleQuotes(href) +
'"]',
key = preloadSelector
switch (as) {
case 'audioworklet':
case 'paintworklet':
case 'serviceworker':
case 'sharedworker':
case 'worker':
case 'script':
key = getScriptKey(href)
}
if (
!preloadPropsMap.has(key) &&
((href = assign({ rel: 'modulepreload', href: href }, options)),
preloadPropsMap.set(key, href),
null === ownerDocument.querySelector(preloadSelector))
) {
switch (as) {
case 'audioworklet':
case 'paintworklet':
case 'serviceworker':
case 'sharedworker':
case 'worker':
case 'script':
if (ownerDocument.querySelector(getScriptSelectorFromKey(key)))
return
}
as = ownerDocument.createElement('link')
setInitialProperties(as, 'link', href)
markNodeAsHoistable(as)
ownerDocument.head.appendChild(as)
}
}
},
X: function (src, options) {
previousDispatcher.X(src, options)
var ownerDocument = globalDocument
if (ownerDocument && src) {
var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,
key = getScriptKey(src),
resource = scripts.get(key)
resource ||
((resource = ownerDocument.querySelector(
getScriptSelectorFromKey(key)
)),
resource ||
((src = assign({ src: src, async: !0 }, options)),
(options = preloadPropsMap.get(key)) &&
adoptPreloadPropsForScript(src, options),
(resource = ownerDocument.createElement('script')),
markNodeAsHoistable(resource),
setInitialProperties(resource, 'link', src),
ownerDocument.head.appendChild(resource)),
(resource = {
type: 'script',
instance: resource,
count: 1,
state: null,
}),
scripts.set(key, resource))
}
},
S: function (href, precedence, options) {
previousDispatcher.S(href, precedence, options)
var ownerDocument = globalDocument
if (ownerDocument && href) {
var styles = getResourcesFromRoot(ownerDocument).hoistableStyles,
key = getStyleKey(href)
precedence = precedence || 'default'
var resource = styles.get(key)
if (!resource) {
var state = { loading: NotLoaded, preload: null }
if (
(resource = ownerDocument.querySelector(
getStylesheetSelectorFromKey(key)
))
)
state.loading = Loaded | Inserted
else {
href = assign(
{
rel: 'stylesheet',
href: href,
'data-precedence': precedence,
},
options
)
;(options = preloadPropsMap.get(key)) &&
adoptPreloadPropsForStylesheet(href, options)
var link = (resource = ownerDocument.createElement('link'))
markNodeAsHoistable(link)
setInitialProperties(link, 'link', href)
link._p = new Promise(function (resolve, reject) {
link.onload = resolve
link.onerror = reject
})
link.addEventListener('load', function () {
state.loading |= Loaded
})
link.addEventListener('error', function () {
state.loading |= Errored
})
state.loading |= Inserted
insertStylesheet(resource, precedence, ownerDocument)
}
resource = {
type: 'stylesheet',
instance: resource,
count: 1,
state: state,
}
styles.set(key, resource)
}
}
},
M: function (src, options) {
previousDispatcher.M(src, options)
var ownerDocument = globalDocument
if (ownerDocument && src) {
var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,
key = getScriptKey(src),
resource = scripts.get(key)
resource ||
((resource = ownerDocument.querySelector(
getScriptSelectorFromKey(key)
)),
resource ||
((src = assign({ src: src, async: !0, type: 'module' }, options)),
(options = preloadPropsMap.get(key)) &&
adoptPreloadPropsForScript(src, options),
(resource = ownerDocument.createElement('script')),
markNodeAsHoistable(resource),
setInitialProperties(resource, 'link', src),
ownerDocument.head.appendChild(resource)),
(resource = {
type: 'script',
instance: resource,
count: 1,
state: null,
}),
scripts.set(key, resource))
}
},
}
var globalDocument = 'undefined' === typeof document ? null : document,
tagCaches = null,
suspendedState = null,
LAST_PRECEDENCE = null,
precedencesByRoot = null,
NotPendingTransition = NotPending,
HostTransitionContext = {
$$typeof: REACT_CONTEXT_TYPE,
Provider: null,
Consumer: null,
_currentValue: NotPendingTransition,
_currentValue2: NotPendingTransition,
_threadCount: 0,
},
badgeFormat = '%c%s%c',
badgeStyle =
'background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px',
resetStyle = '',
pad = ' ',
bind = Function.prototype.bind
var didWarnAboutNestedUpdates = !1
var overrideHookState = null,
overrideHookStateDeletePath = null,
overrideHookStateRenamePath = null,
overrideProps = null,
overridePropsDeletePath = null,
overridePropsRenamePath = null,
scheduleUpdate = null,
setErrorHandler = null,
setSuspenseHandler = null
overrideHookState = function (fiber, id, path, value) {
id = findHook(fiber, id)
null !== id &&
((path = copyWithSetImpl(id.memoizedState, path, 0, value)),
(id.memoizedState = path),
(id.baseState = path),
(fiber.memoizedProps = assign({}, fiber.memoizedProps)),
(path = enqueueConcurrentRenderForLane(fiber, 2)),
null !== path && scheduleUpdateOnFiber(path, fiber, 2))
}
overrideHookStateDeletePath = function (fiber, id, path) {
id = findHook(fiber, id)
null !== id &&
((path = copyWithDeleteImpl(id.memoizedState, path, 0)),
(id.memoizedState = path),
(id.baseState = path),
(fiber.memoizedProps = assign({}, fiber.memoizedProps)),
(path = enqueueConcurrentRenderForLane(fiber, 2)),
null !== path && scheduleUpdateOnFiber(path, fiber, 2))
}
overrideHookStateRenamePath = function (fiber, id, oldPath, newPath) {
id = findHook(fiber, id)
null !== id &&
((oldPath = copyWithRename(id.memoizedState, oldPath, newPath)),
(id.memoizedState = oldPath),
(id.baseState = oldPath),
(fiber.memoizedProps = assign({}, fiber.memoizedProps)),
(oldPath = enqueueConcurrentRenderForLane(fiber, 2)),
null !== oldPath && scheduleUpdateOnFiber(oldPath, fiber, 2))
}
overrideProps = function (fiber, path, value) {
fiber.pendingProps = copyWithSetImpl(fiber.memoizedProps, path, 0, value)
fiber.alternate && (fiber.alternate.pendingProps = fiber.pendingProps)
path = enqueueConcurrentRenderForLane(fiber, 2)
null !== path && scheduleUpdateOnFiber(path, fiber, 2)
}
overridePropsDeletePath = function (fiber, path) {
fiber.pendingProps = copyWithDeleteImpl(fiber.memoizedProps, path, 0)
fiber.alternate && (fiber.alternate.pendingProps = fiber.pendingProps)
path = enqueueConcurrentRenderForLane(fiber, 2)
null !== path && scheduleUpdateOnFiber(path, fiber, 2)
}
overridePropsRenamePath = function (fiber, oldPath, newPath) {
fiber.pendingProps = copyWithRename(fiber.memoizedProps, oldPath, newPath)
fiber.alternate && (fiber.alternate.pendingProps = fiber.pendingProps)
oldPath = enqueueConcurrentRenderForLane(fiber, 2)
null !== oldPath && scheduleUpdateOnFiber(oldPath, fiber, 2)
}
scheduleUpdate = function (fiber) {
var root = enqueueConcurrentRenderForLane(fiber, 2)
null !== root && scheduleUpdateOnFiber(root, fiber, 2)
}
setErrorHandler = function (newShouldErrorImpl) {
shouldErrorImpl = newShouldErrorImpl
}
setSuspenseHandler = function (newShouldSuspendImpl) {
shouldSuspendImpl = newShouldSuspendImpl
}
var _enabled = !0,
return_targetInst = null,
hasScheduledReplayAttempt = !1,
queuedFocus = null,
queuedDrag = null,
queuedMouse = null,
queuedPointers = new Map(),
queuedPointerCaptures = new Map(),
queuedExplicitHydrationTargets = [],
discreteReplayableEvents =
'mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset'.split(
' '
),
lastScheduledReplayQueue = null
ReactDOMHydrationRoot.prototype.render = ReactDOMRoot.prototype.render =
function (children) {
var root = this._internalRoot
if (null === root) throw Error('Cannot update an unmounted root.')
var args = arguments
'function' === typeof args[1]
? console.error(
'does not support the second callback argument. To execute a side effect after rendering, declare it in a component body with useEffect().'
)
: isValidContainer(args[1])
? console.error(
"You passed a container to the second argument of root.render(...). You don't need to pass it again since you already passed it to create the root."
)
: 'undefined' !== typeof args[1] &&
console.error(
'You passed a second argument to root.render(...) but it only accepts one argument.'
)
args = children
var current = root.current,
lane = requestUpdateLane(current)
updateContainerImpl(current, lane, args, root, null, null)
}
ReactDOMHydrationRoot.prototype.unmount = ReactDOMRoot.prototype.unmount =
function () {
var args = arguments
'function' === typeof args[0] &&
console.error(
'does not support a callback argument. To execute a side effect after rendering, declare it in a component body with useEffect().'
)
args = this._internalRoot
if (null !== args) {
this._internalRoot = null
var container = args.containerInfo
;(executionContext & (RenderContext | CommitContext)) !== NoContext &&
console.error(
'Attempted to synchronously unmount a root while React was already rendering. React cannot finish unmounting the root until the current render has completed, which may lead to a race condition.'
)
updateContainerImpl(args.current, 2, null, args, null, null)
flushSyncWork$1()
container[internalContainerInstanceKey] = null
}
}
ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (
target
) {
if (target) {
var updatePriority = resolveUpdatePriority()
target = { blockedOn: null, target: target, priority: updatePriority }
for (
var i = 0;
i < queuedExplicitHydrationTargets.length &&
0 !== updatePriority &&
updatePriority < queuedExplicitHydrationTargets[i].priority;
i++
);
queuedExplicitHydrationTargets.splice(i, 0, target)
0 === i && attemptExplicitHydrationTarget(target)
}
}
;(function () {
var isomorphicReactPackageVersion = React.version
if ('19.2.0-canary-33a1095d-20250827' !== isomorphicReactPackageVersion)
throw Error(
'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
(isomorphicReactPackageVersion +
'\n - react-dom: 19.2.0-canary-33a1095d-20250827\nLearn more: https://react.dev/warnings/version-mismatch')
)
})()
;('function' === typeof Map &&
null != Map.prototype &&
'function' === typeof Map.prototype.forEach &&
'function' === typeof Set &&
null != Set.prototype &&
'function' === typeof Set.prototype.clear &&
'function' === typeof Set.prototype.forEach) ||
console.error(
'React depends on Map and Set built-in types. Make sure that you load a polyfill in older browsers. https://react.dev/link/react-polyfills'
)
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
var fiber = componentOrElement._reactInternals
if (void 0 === fiber) {
if ('function' === typeof componentOrElement.render)
throw Error('Unable to find node on an unmounted component.')
componentOrElement = Object.keys(componentOrElement).join(',')
throw Error(
'Argument appears to not be a ReactComponent. Keys: ' +
componentOrElement
)
}
componentOrElement = findCurrentFiberUsingSlowPath(fiber)
componentOrElement =
null !== componentOrElement
? findCurrentHostFiberImpl(componentOrElement)
: null
componentOrElement =
null === componentOrElement ? null : componentOrElement.stateNode
return componentOrElement
}
if (
!(function () {
var internals = {
bundleType: 1,
version: '19.2.0-canary-33a1095d-20250827',
rendererPackageName: 'react-dom',
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: '19.2.0-canary-33a1095d-20250827',
}
internals.overrideHookState = overrideHookState
internals.overrideHookStateDeletePath = overrideHookStateDeletePath
internals.overrideHookStateRenamePath = overrideHookStateRenamePath
internals.overrideProps = overrideProps
internals.overridePropsDeletePath = overridePropsDeletePath
internals.overridePropsRenamePath = overridePropsRenamePath
internals.scheduleUpdate = scheduleUpdate
internals.setErrorHandler = setErrorHandler
internals.setSuspenseHandler = setSuspenseHandler
internals.scheduleRefresh = scheduleRefresh
internals.scheduleRoot = scheduleRoot
internals.setRefreshHandler = setRefreshHandler
internals.getCurrentFiber = getCurrentFiberForDevTools
internals.getLaneLabelMap = getLaneLabelMap
internals.injectProfilingHooks = injectProfilingHooks
return injectInternals(internals)
})() &&
canUseDOM &&
window.top === window.self &&
((-1 < navigator.userAgent.indexOf('Chrome') &&
-1 === navigator.userAgent.indexOf('Edge')) ||
-1 < navigator.userAgent.indexOf('Firefox'))
) {
var protocol = window.location.protocol
;/^(https?|file):$/.test(protocol) &&
console.info(
'%cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools' +
('file:' === protocol
? '\nYou might need to use a local HTTP server (instead of file://): https://react.dev/link/react-devtools-faq'
: ''),
'font-weight:bold'
)
}
exports.createRoot = function (container, options) {
if (!isValidContainer(container))
throw Error('Target container is not a DOM element.')
warnIfReactDOMContainerInDEV(container)
var isStrictMode = !1,
identifierPrefix = '',
onUncaughtError = defaultOnUncaughtError,
onCaughtError = defaultOnCaughtError,
onRecoverableError = defaultOnRecoverableError
null !== options &&
void 0 !== options &&
(options.hydrate
? console.warn(
'hydrate through createRoot is deprecated. Use ReactDOMClient.hydrateRoot(container, <App />) instead.'
)
: 'object' === typeof options &&
null !== options &&
options.$$typeof === REACT_ELEMENT_TYPE &&
console.error(
'You passed a JSX element to createRoot. You probably meant to call root.render instead. Example usage:\n\n let root = createRoot(domContainer);\n root.render(<App />);'
),
!0 === options.unstable_strictMode && (isStrictMode = !0),
void 0 !== options.identifierPrefix &&
(identifierPrefix = options.identifierPrefix),
void 0 !== options.onUncaughtError &&
(onUncaughtError = options.onUncaughtError),
void 0 !== options.onCaughtError &&
(onCaughtError = options.onCaughtError),
void 0 !== options.onRecoverableError &&
(onRecoverableError = options.onRecoverableError))
options = createFiberRoot(
container,
1,
!1,
null,
null,
isStrictMode,
identifierPrefix,
null,
onUncaughtError,
onCaughtError,
onRecoverableError,
defaultOnDefaultTransitionIndicator
)
container[internalContainerInstanceKey] = options.current
listenToAllSupportedEvents(container)
return new ReactDOMRoot(options)
}
exports.hydrateRoot = function (container, initialChildren, options) {
if (!isValidContainer(container))
throw Error('Target container is not a DOM element.')
warnIfReactDOMContainerInDEV(container)
void 0 === initialChildren &&
console.error(
'Must provide initial children as second argument to hydrateRoot. Example usage: hydrateRoot(domContainer, <App />)'
)
var isStrictMode = !1,
identifierPrefix = '',
onUncaughtError = defaultOnUncaughtError,
onCaughtError = defaultOnCaughtError,
onRecoverableError = defaultOnRecoverableError,
formState = null
null !== options &&
void 0 !== options &&
(!0 === options.unstable_strictMode && (isStrictMode = !0),
void 0 !== options.identifierPrefix &&
(identifierPrefix = options.identifierPrefix),
void 0 !== options.onUncaughtError &&
(onUncaughtError = options.onUncaughtError),
void 0 !== options.onCaughtError &&
(onCaughtError = options.onCaughtError),
void 0 !== options.onRecoverableError &&
(onRecoverableError = options.onRecoverableError),
void 0 !== options.formState && (formState = options.formState))
initialChildren = createFiberRoot(
container,
1,
!0,
initialChildren,
null != options ? options : null,
isStrictMode,
identifierPrefix,
formState,
onUncaughtError,
onCaughtError,
onRecoverableError,
defaultOnDefaultTransitionIndicator
)
initialChildren.context = getContextForSubtree(null)
options = initialChildren.current
isStrictMode = requestUpdateLane(options)
isStrictMode = getBumpedLaneForHydrationByLane(isStrictMode)
identifierPrefix = createUpdate(isStrictMode)
identifierPrefix.callback = null
enqueueUpdate(options, identifierPrefix, isStrictMode)
options = isStrictMode
initialChildren.current.lanes = options
markRootUpdated$1(initialChildren, options)
ensureRootIsScheduled(initialChildren)
container[internalContainerInstanceKey] = initialChildren.current
listenToAllSupportedEvents(container)
return new ReactDOMHydrationRoot(initialChildren)
}
exports.version = '19.2.0-canary-33a1095d-20250827'
'undefined' !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
'function' ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())
})()