/** @license React v17.0.2 * react-dom.development.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ !(function ( global, factory ) { "object" == typeof exports && "undefined" != typeof module ? factory( exports, require( "react" ) ) : "function" == typeof define && define.amd ? define( ["exports", "react",], factory ) : factory( ((global = global || self).ReactDOM = { }), global.React ); })( this, function ( exports, React ) { "use strict"; var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; function warn( format ) { for ( var _len = arguments.length, args = new Array( _len > 1 ? _len - 1 : 0 ), _key = 1; _key < _len; _key++ ) args[_key - 1] = arguments[_key]; printWarning( "warn", format, args ); } function error( format ) { for ( var _len2 = arguments.length, args = new Array( _len2 > 1 ? _len2 - 1 : 0 ), _key2 = 1; _key2 < _len2; _key2++ ) args[_key2 - 1] = arguments[_key2]; printWarning( "error", format, args ); } function printWarning( level, format, args ) { var stack = ReactSharedInternals.ReactDebugCurrentFrame.getStackAddendum( ); "" !== stack && ((format += "%s"), (args = args.concat( [stack,] ))); var argsWithFormat = args.map( function ( item ) { return "" + item; } ); argsWithFormat.unshift( "Warning: " + format ), Function.prototype.apply.call( console[level], console, argsWithFormat ); } if (!React) throw Error( "ReactDOM was loaded before React. Make sure you load the React package before loading ReactDOM.", ); var allNativeEvents = new Set( ), registrationNameDependencies = { }, possibleRegistrationNames = { }; function registerTwoPhaseEvent( registrationName, dependencies ) { registerDirectEvent( registrationName, dependencies ), registerDirectEvent( registrationName + "Capture", dependencies ); } function registerDirectEvent( registrationName, dependencies ) { registrationNameDependencies[registrationName] && 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 (var i = 0; i < dependencies.length; i++) allNativeEvents.add( dependencies[i] ); } var canUseDOM = !( "undefined" == typeof window || void 0 === window.document || void 0 === window.document.createElement ), ATTRIBUTE_NAME_START_CHAR = ":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", ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + "\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040", VALID_ATTRIBUTE_NAME_REGEX = new RegExp( "^[" + ATTRIBUTE_NAME_START_CHAR + "][" + ATTRIBUTE_NAME_CHAR + "]*$", ), hasOwnProperty = Object.prototype.hasOwnProperty, illegalAttributeNameCache = { }, validatedAttributeNameCache = { }; function isAttributeNameSafe( attributeName ) { return ( !!hasOwnProperty.call( validatedAttributeNameCache, attributeName ) || (!hasOwnProperty.call( illegalAttributeNameCache, attributeName ) && (VALID_ATTRIBUTE_NAME_REGEX.test( attributeName ) ? ((validatedAttributeNameCache[attributeName] = !0), !0) : ((illegalAttributeNameCache[attributeName] = !0), error( "Invalid attribute name: `%s`", attributeName ), !1))) ); } function shouldIgnoreAttribute( name, propertyInfo, isCustomComponentTag ) { return null !== propertyInfo ? 0 === propertyInfo.type : !isCustomComponentTag && name.length > 2 && ("o" === name[0] || "O" === name[0]) && ("n" === name[1] || "N" === name[1]); } function shouldRemoveAttributeWithWarning( name, value, propertyInfo, isCustomComponentTag, ) { if (null !== propertyInfo && 0 === propertyInfo.type) return !1; switch (typeof value) { case "function": case "symbol": return !0; case "boolean": if (isCustomComponentTag) return !1; if (null !== propertyInfo) return !propertyInfo.acceptsBooleans; var prefix = name.toLowerCase( ).slice( 0, 5 ); return "data-" !== prefix && "aria-" !== prefix; default: return !1; } } function shouldRemoveAttribute( name, value, propertyInfo, isCustomComponentTag, ) { if (null == value) return !0; if ( shouldRemoveAttributeWithWarning( name, value, propertyInfo, isCustomComponentTag, ) ) return !0; if (isCustomComponentTag) return !1; if (null !== propertyInfo) switch (propertyInfo.type) { case 3: return !value; case 4: return !1 === value; case 5: return isNaN( value ); case 6: return isNaN( value ) || value < 1; } return !1; } function getPropertyInfo( name ) { return properties.hasOwnProperty( name ) ? properties[name] : null; } function PropertyInfoRecord( name, type, mustUseProperty, attributeName, attributeNamespace, sanitizeURL, removeEmptyString, ) { (this.acceptsBooleans = 2 === type || 3 === type || 4 === type), (this.attributeName = attributeName), (this.attributeNamespace = attributeNamespace), (this.mustUseProperty = mustUseProperty), (this.propertyName = name), (this.type = type), (this.sanitizeURL = sanitizeURL), (this.removeEmptyString = removeEmptyString); } var properties = { }; [ "children", "dangerouslySetInnerHTML", "defaultValue", "defaultChecked", "innerHTML", "suppressContentEditableWarning", "suppressHydrationWarning", "style", ].forEach( function ( name ) { properties[name] = new PropertyInfoRecord( name, 0, !1, name, null, !1, !1 ); } ), [ ["acceptCharset", "accept-charset",], ["className", "class",], ["htmlFor", "for",], ["httpEquiv", "http-equiv",], ].forEach( function ( _ref ) { var name = _ref[0], attributeName = _ref[1]; properties[name] = new PropertyInfoRecord( name, 1, !1, attributeName, null, !1, !1, ); } ), ["contentEditable", "draggable", "spellCheck", "value",].forEach( function ( name, ) { properties[name] = new PropertyInfoRecord( name, 2, !1, name.toLowerCase( ), null, !1, !1, ); } ), [ "autoReverse", "externalResourcesRequired", "focusable", "preserveAlpha", ].forEach( function ( name ) { properties[name] = new PropertyInfoRecord( name, 2, !1, name, null, !1, !1, ); } ), [ "allowFullScreen", "async", "autoFocus", "autoPlay", "controls", "default", "defer", "disabled", "disablePictureInPicture", "disableRemotePlayback", "formNoValidate", "hidden", "loop", "noModule", "noValidate", "open", "playsInline", "readOnly", "required", "reversed", "scoped", "seamless", "itemScope", ].forEach( function ( name ) { properties[name] = new PropertyInfoRecord( name, 3, !1, name.toLowerCase( ), null, !1, !1, ); } ), ["checked", "multiple", "muted", "selected",].forEach( function ( name ) { properties[name] = new PropertyInfoRecord( name, 3, !0, name, null, !1, !1, ); } ), ["capture", "download",].forEach( function ( name ) { properties[name] = new PropertyInfoRecord( name, 4, !1, name, null, !1, !1, ); } ), ["cols", "rows", "size", "span",].forEach( function ( name ) { properties[name] = new PropertyInfoRecord( name, 6, !1, name, null, !1, !1, ); } ), ["rowSpan", "start",].forEach( function ( name ) { properties[name] = new PropertyInfoRecord( name, 5, !1, name.toLowerCase( ), null, !1, !1, ); } ); var CAMELIZE = /[\-\:]([a-z])/g, capitalize = function ( token ) { return token[1].toUpperCase( ); }; [ "accent-height", "alignment-baseline", "arabic-form", "baseline-shift", "cap-height", "clip-path", "clip-rule", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "dominant-baseline", "enable-background", "fill-opacity", "fill-rule", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "glyph-name", "glyph-orientation-horizontal", "glyph-orientation-vertical", "horiz-adv-x", "horiz-origin-x", "image-rendering", "letter-spacing", "lighting-color", "marker-end", "marker-mid", "marker-start", "overline-position", "overline-thickness", "paint-order", "panose-1", "pointer-events", "rendering-intent", "shape-rendering", "stop-color", "stop-opacity", "strikethrough-position", "strikethrough-thickness", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "text-anchor", "text-decoration", "text-rendering", "underline-position", "underline-thickness", "unicode-bidi", "unicode-range", "units-per-em", "v-alphabetic", "v-hanging", "v-ideographic", "v-mathematical", "vector-effect", "vert-adv-y", "vert-origin-x", "vert-origin-y", "word-spacing", "writing-mode", "xmlns:xlink", "x-height", ].forEach( function ( attributeName ) { var name = attributeName.replace( CAMELIZE, capitalize ); properties[name] = new PropertyInfoRecord( name, 1, !1, attributeName, null, !1, !1, ); } ), [ "xlink:actuate", "xlink:arcrole", "xlink:role", "xlink:show", "xlink:title", "xlink:type", ].forEach( function ( attributeName ) { var name = attributeName.replace( CAMELIZE, capitalize ); properties[name] = new PropertyInfoRecord( name, 1, !1, attributeName, "http://www.w3.org/1999/xlink", !1, !1, ); } ), ["xml:base", "xml:lang", "xml:space",].forEach( function ( attributeName ) { var name = attributeName.replace( CAMELIZE, capitalize ); properties[name] = new PropertyInfoRecord( name, 1, !1, attributeName, "http://www.w3.org/XML/1998/namespace", !1, !1, ); } ), ["tabIndex", "crossOrigin",].forEach( function ( attributeName ) { properties[attributeName] = new PropertyInfoRecord( attributeName, 1, !1, attributeName.toLowerCase( ), null, !1, !1, ); } ); (properties.xlinkHref = new PropertyInfoRecord( "xlinkHref", 1, !1, "xlink:href", "http://www.w3.org/1999/xlink", !0, !1, )), ["src", "href", "action", "formAction",].forEach( function ( attributeName ) { properties[attributeName] = new PropertyInfoRecord( attributeName, 1, !1, attributeName.toLowerCase( ), null, !0, !0, ); } ); var 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, didWarn = !1; function sanitizeURL( url ) { !didWarn && isJavaScriptProtocol.test( url ) && ((didWarn = !0), error( "A future version of React will block javascript: URLs as a security precaution. Use event handlers instead if you can. If you need to generate unsafe HTML try using dangerouslySetInnerHTML instead. React was passed %s.", JSON.stringify( url ), )); } function getValueForProperty( node, name, expected, propertyInfo ) { if (propertyInfo.mustUseProperty) return node[propertyInfo.propertyName]; propertyInfo.sanitizeURL && sanitizeURL( "" + expected ); var attributeName = propertyInfo.attributeName, stringValue = null; if (4 === propertyInfo.type) { if (node.hasAttribute( attributeName )) { var value = node.getAttribute( attributeName ); return ( "" === value || (shouldRemoveAttribute( name, expected, propertyInfo, !1 ) ? value : value === "" + expected ? expected : value) ); } } else if (node.hasAttribute( attributeName )) { if (shouldRemoveAttribute( name, expected, propertyInfo, !1 )) return node.getAttribute( attributeName ); if (3 === propertyInfo.type) return expected; stringValue = node.getAttribute( attributeName ); } return shouldRemoveAttribute( name, expected, propertyInfo, !1 ) ? null === stringValue ? expected : stringValue : stringValue === "" + expected ? expected : stringValue; } function getValueForAttribute( node, name, expected ) { if (isAttributeNameSafe( name )) { if ( (function ( value ) { return ( null !== value && "object" == typeof value && value.$$typeof === REACT_OPAQUE_ID_TYPE ); })( expected ) ) return expected; if (!node.hasAttribute( name )) return void 0 === expected ? void 0 : null; var value = node.getAttribute( name ); return value === "" + expected ? expected : value; } } function setValueForProperty( node, name, value, isCustomComponentTag ) { var propertyInfo = getPropertyInfo( name ); if (!shouldIgnoreAttribute( name, propertyInfo, isCustomComponentTag )) if ( (shouldRemoveAttribute( name, value, propertyInfo, isCustomComponentTag, ) && (value = null), isCustomComponentTag || null === propertyInfo) ) { if (isAttributeNameSafe( name )) { var _attributeName = name; null === value ? node.removeAttribute( _attributeName ) : node.setAttribute( _attributeName, "" + value ); } } else if (propertyInfo.mustUseProperty) { var propertyName = propertyInfo.propertyName; if (null === value) { var type = propertyInfo.type; node[propertyName] = 3 !== type && ""; } else node[propertyName] = value; } else { var attributeName = propertyInfo.attributeName, attributeNamespace = propertyInfo.attributeNamespace; if (null === value) node.removeAttribute( attributeName ); else { var attributeValue, _type = propertyInfo.type; 3 === _type || (4 === _type && !0 === value) ? (attributeValue = "") : ((attributeValue = "" + value), propertyInfo.sanitizeURL && sanitizeURL( attributeValue.toString( ) )), attributeNamespace ? node.setAttributeNS( attributeNamespace, attributeName, attributeValue, ) : node.setAttribute( attributeName, attributeValue ); } } } var _assign = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.assign, REACT_ELEMENT_TYPE = 60103, REACT_PORTAL_TYPE = 60106, REACT_FRAGMENT_TYPE = 60107, REACT_STRICT_MODE_TYPE = 60108, REACT_PROFILER_TYPE = 60114, REACT_PROVIDER_TYPE = 60109, REACT_CONTEXT_TYPE = 60110, REACT_FORWARD_REF_TYPE = 60112, REACT_SUSPENSE_TYPE = 60113, REACT_SUSPENSE_LIST_TYPE = 60120, REACT_MEMO_TYPE = 60115, REACT_LAZY_TYPE = 60116, REACT_BLOCK_TYPE = 60121, REACT_SCOPE_TYPE = 60119, REACT_OPAQUE_ID_TYPE = 60128, REACT_DEBUG_TRACING_MODE_TYPE = 60129, REACT_OFFSCREEN_TYPE = 60130, REACT_LEGACY_HIDDEN_TYPE = 60131; if ("function" == typeof Symbol && Symbol.for) { var symbolFor = Symbol.for; (REACT_ELEMENT_TYPE = symbolFor( "react.element" )), (REACT_PORTAL_TYPE = symbolFor( "react.portal" )), (REACT_FRAGMENT_TYPE = symbolFor( "react.fragment" )), (REACT_STRICT_MODE_TYPE = symbolFor( "react.strict_mode" )), (REACT_PROFILER_TYPE = symbolFor( "react.profiler" )), (REACT_PROVIDER_TYPE = symbolFor( "react.provider" )), (REACT_CONTEXT_TYPE = symbolFor( "react.context" )), (REACT_FORWARD_REF_TYPE = symbolFor( "react.forward_ref" )), (REACT_SUSPENSE_TYPE = symbolFor( "react.suspense" )), (REACT_SUSPENSE_LIST_TYPE = symbolFor( "react.suspense_list" )), (REACT_MEMO_TYPE = symbolFor( "react.memo" )), (REACT_LAZY_TYPE = symbolFor( "react.lazy" )), (REACT_BLOCK_TYPE = symbolFor( "react.block" )), symbolFor( "react.server.block" ), symbolFor( "react.fundamental" ), (REACT_SCOPE_TYPE = symbolFor( "react.scope" )), (REACT_OPAQUE_ID_TYPE = symbolFor( "react.opaque.id" )), (REACT_DEBUG_TRACING_MODE_TYPE = symbolFor( "react.debug_trace_mode" )), (REACT_OFFSCREEN_TYPE = symbolFor( "react.offscreen" )), (REACT_LEGACY_HIDDEN_TYPE = symbolFor( "react.legacy_hidden" )); } var MAYBE_ITERATOR_SYMBOL = "function" == typeof Symbol && Symbol.iterator; function getIteratorFn( maybeIterable ) { if (null === maybeIterable || "object" != typeof maybeIterable) return null; var maybeIterator = (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) || maybeIterable["@@iterator"]; return "function" == typeof maybeIterator ? maybeIterator : null; } var prevLog, prevInfo, prevWarn, prevError, prevGroup, prevGroupCollapsed, prevGroupEnd, disabledDepth = 0; 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( ) { 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, } ), } ); } disabledDepth < 0 && error( "disabledDepth fell below zero. This is a bug in React. Please file an issue.", ); } disabledLog.__reactDisabledLog = !0; var prefix, ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher; function describeBuiltInComponentFrame( name, source, ownerFn ) { if (void 0 === prefix) try { throw Error( ); } catch (x) { var match = x.stack.trim( ).match( /\n( *(at )?)/ ); prefix = (match && match[1]) || ""; } return "\n" + prefix + name; } var componentFrameCache, reentry = !1, PossiblyWeakMap = "function" == typeof WeakMap ? WeakMap : Map; function describeNativeComponentFrame( fn, construct ) { if (!fn || reentry) return ""; var control, frame = componentFrameCache.get( fn ); if (void 0 !== frame) return frame; reentry = !0; var previousDispatcher, previousPrepareStackTrace = Error.prepareStackTrace; (Error.prepareStackTrace = void 0), (previousDispatcher = ReactCurrentDispatcher.current), (ReactCurrentDispatcher.current = null), disableLogs( ); try { if (construct) { var Fake = function ( ) { throw Error( ); }; if ( (Object.defineProperty( Fake.prototype, "props", { set: function ( ) { throw Error( ); }, } ), "object" == typeof Reflect && Reflect.construct) ) { try { Reflect.construct( Fake, [] ); } catch (x) { control = x; } Reflect.construct( fn, [], Fake ); } else { try { Fake.call( ); } catch (x) { control = x; } fn.call( Fake.prototype ); } } else { try { throw Error( ); } catch (x) { control = x; } fn( ); } } catch (sample) { if (sample && control && "string" == typeof sample.stack) { for ( var sampleLines = sample.stack.split( "\n" ), controlLines = control.stack.split( "\n" ), s = sampleLines.length - 1, c = controlLines.length - 1; s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]; ) c--; for (; s >= 1 && c >= 0; s--, c--) if (sampleLines[s] !== controlLines[c]) { if (1 !== s || 1 !== c) do { if ((s--, --c < 0 || sampleLines[s] !== controlLines[c])) { var _frame = "\n" + sampleLines[s].replace( " at new ", " at " ); return ( "function" == typeof fn && componentFrameCache.set( fn, _frame ), _frame ); } } while (s >= 1 && c >= 0); break; } } } finally { (reentry = !1), (ReactCurrentDispatcher.current = previousDispatcher), reenableLogs( ), (Error.prepareStackTrace = previousPrepareStackTrace); } var name = fn ? fn.displayName || fn.name : "", syntheticFrame = name ? describeBuiltInComponentFrame( name ) : ""; return ( "function" == typeof fn && componentFrameCache.set( fn, syntheticFrame ), syntheticFrame ); } function describeFunctionComponentFrame( fn, source, ownerFn ) { return describeNativeComponentFrame( fn, !1 ); } function describeUnknownElementTypeFrameInDEV( type, source, ownerFn ) { if (null == type) return ""; if ("function" == typeof type) return describeNativeComponentFrame( type, !(!(prototype = type.prototype) || !prototype.isReactComponent), ); var prototype; if ("string" == typeof type) return describeBuiltInComponentFrame( type ); switch (type) { case REACT_SUSPENSE_TYPE: return describeBuiltInComponentFrame( "Suspense" ); case REACT_SUSPENSE_LIST_TYPE: return describeBuiltInComponentFrame( "SuspenseList" ); } if ("object" == typeof type) switch (type.$$typeof) { case REACT_FORWARD_REF_TYPE: return describeFunctionComponentFrame( type.render ); case REACT_MEMO_TYPE: return describeUnknownElementTypeFrameInDEV( type.type, source, ownerFn, ); case REACT_BLOCK_TYPE: return describeFunctionComponentFrame( type._render ); case REACT_LAZY_TYPE: var lazyComponent = type, payload = lazyComponent._payload, init = lazyComponent._init; try { return describeUnknownElementTypeFrameInDEV( init( payload ), source, ownerFn, ); } catch (x) {} } return ""; } function describeFiber( fiber ) { fiber._debugOwner && fiber._debugOwner.type, fiber._debugSource; switch (fiber.tag) { case 5: return describeBuiltInComponentFrame( fiber.type ); case 16: return describeBuiltInComponentFrame( "Lazy" ); case 13: return describeBuiltInComponentFrame( "Suspense" ); case 19: return describeBuiltInComponentFrame( "SuspenseList" ); case 0: case 2: case 15: return describeFunctionComponentFrame( fiber.type ); case 11: return describeFunctionComponentFrame( fiber.type.render ); case 22: return describeFunctionComponentFrame( fiber.type._render ); case 1: return describeNativeComponentFrame( fiber.type, !0 ); default: return ""; } } function getStackByFiberInDevAndProd( workInProgress ) { try { var info = "", node = workInProgress; do { (info += describeFiber( node )), (node = node.return); } while (node); return info; } catch (x) { return "\nError generating stack: " + x.message + "\n" + x.stack; } } function getContextName( type ) { return type.displayName || "Context"; } function getComponentName( type ) { if (null == type) return null; if ( ("number" == typeof type.tag && error( "Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue.", ), "function" == typeof type) ) return type.displayName || type.name || null; if ("string" == typeof type) return type; switch (type) { case REACT_FRAGMENT_TYPE: return "Fragment"; case REACT_PORTAL_TYPE: return "Portal"; 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"; } if ("object" == typeof type) switch (type.$$typeof) { case REACT_CONTEXT_TYPE: return getContextName( type ) + ".Consumer"; case REACT_PROVIDER_TYPE: return getContextName( type._context ) + ".Provider"; case REACT_FORWARD_REF_TYPE: return ( (outerType = type), (innerType = type.render), (wrapperName = "ForwardRef"), (functionName = innerType.displayName || innerType.name || ""), outerType.displayName || ("" !== functionName ? wrapperName + "(" + functionName + ")" : wrapperName) ); case REACT_MEMO_TYPE: return getComponentName( type.type ); case REACT_BLOCK_TYPE: return getComponentName( type._render ); case REACT_LAZY_TYPE: var lazyComponent = type, payload = lazyComponent._payload, init = lazyComponent._init; try { return getComponentName( init( payload ) ); } catch (x) { return null; } } var outerType, innerType, wrapperName, functionName; return null; } componentFrameCache = new PossiblyWeakMap( ); var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame, current = null, isRendering = !1; function getCurrentFiberOwnerNameInDevOrNull( ) { if (null === current) return null; var owner = current._debugOwner; return null != owner ? getComponentName( owner.type ) : null; } function getCurrentFiberStackInDev( ) { return null === current ? "" : getStackByFiberInDevAndProd( current ); } function resetCurrentFiber( ) { (ReactDebugCurrentFrame.getCurrentStack = null), (current = null), (isRendering = !1); } function setCurrentFiber( fiber ) { (ReactDebugCurrentFrame.getCurrentStack = getCurrentFiberStackInDev), (current = fiber), (isRendering = !1); } function setIsRendering( rendering ) { isRendering = rendering; } function toString( value ) { return "" + value; } function getToStringValue( value ) { switch (typeof value) { case "boolean": case "number": case "object": case "string": case "undefined": return value; default: return ""; } } var hasReadOnlyValue = { button: !0, checkbox: !0, image: !0, hidden: !0, radio: !0, reset: !0, submit: !0, }; function checkControlledValueProps( tagName, props ) { hasReadOnlyValue[props.type] || props.onChange || props.onInput || props.readOnly || props.disabled || null == props.value || 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 || 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 isCheckable( elem ) { var type = elem.type, nodeName = elem.nodeName; return ( nodeName && "input" === nodeName.toLowerCase( ) && ("checkbox" === type || "radio" === type) ); } function getTracker( node ) { return node._valueTracker; } function track( node ) { getTracker( node ) || (node._valueTracker = (function ( node ) { var valueField = isCheckable( node ) ? "checked" : "value", descriptor = Object.getOwnPropertyDescriptor( node.constructor.prototype, valueField, ), currentValue = "" + node[valueField]; if ( !node.hasOwnProperty( valueField ) && void 0 !== descriptor && "function" == typeof descriptor.get && "function" == typeof descriptor.set ) { var get = descriptor.get, set = descriptor.set; return ( Object.defineProperty( node, valueField, { configurable: !0, get: function ( ) { return get.call( this ); }, set: function ( value ) { (currentValue = "" + value), set.call( this, value ); }, } ), Object.defineProperty( node, valueField, { enumerable: descriptor.enumerable, } ), { getValue: function ( ) { return currentValue; }, setValue: function ( value ) { currentValue = "" + value; }, stopTracking: function ( ) { !(function ( node ) { node._valueTracker = null; })( node ), delete node[valueField]; }, } ); } })( node )); } function updateValueIfChanged( node ) { if (!node) return !1; var tracker = getTracker( node ); if (!tracker) return !0; var lastValue = tracker.getValue( ), nextValue = (function ( node ) { var value = ""; return node ? (value = isCheckable( node ) ? node.checked ? "true" : "false" : node.value) : value; })( node ); return nextValue !== lastValue && (tracker.setValue( nextValue ), !0); } function getActiveElement( doc ) { if ( void 0 === (doc = doc || ("undefined" != typeof document ? document : void 0)) ) return null; try { return doc.activeElement || doc.body; } catch (e) { return doc.body; } } var didWarnValueDefaultValue = !1, didWarnCheckedDefaultChecked = !1, didWarnControlledToUncontrolled = !1, didWarnUncontrolledToControlled = !1; function isControlled( props ) { return "checkbox" === props.type || "radio" === props.type ? null != props.checked : null != props.value; } function getHostProps( element, props ) { var node = element, checked = props.checked; return _assign( { }, props, { defaultChecked: void 0, defaultValue: void 0, value: void 0, checked: null != checked ? checked : node._wrapperState.initialChecked, } ); } function initWrapperState( element, props ) { checkControlledValueProps( 0, props ), void 0 === props.checked || void 0 === props.defaultChecked || didWarnCheckedDefaultChecked || (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://reactjs.org/link/controlled-components", getCurrentFiberOwnerNameInDevOrNull( ) || "A component", props.type, ), (didWarnCheckedDefaultChecked = !0)), void 0 === props.value || void 0 === props.defaultValue || didWarnValueDefaultValue || (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://reactjs.org/link/controlled-components", getCurrentFiberOwnerNameInDevOrNull( ) || "A component", props.type, ), (didWarnValueDefaultValue = !0)); var node = element, defaultValue = null == props.defaultValue ? "" : props.defaultValue; node._wrapperState = { initialChecked: null != props.checked ? props.checked : props.defaultChecked, initialValue: getToStringValue( null != props.value ? props.value : defaultValue, ), controlled: isControlled( props ), }; } function updateChecked( element, props ) { var node = element, checked = props.checked; null != checked && setValueForProperty( node, "checked", checked, !1 ); } function updateWrapper( element, props ) { var node = element, controlled = isControlled( props ); node._wrapperState.controlled || !controlled || didWarnUncontrolledToControlled || (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://reactjs.org/link/controlled-components", ), (didWarnUncontrolledToControlled = !0)), !node._wrapperState.controlled || controlled || didWarnControlledToUncontrolled || (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://reactjs.org/link/controlled-components", ), (didWarnControlledToUncontrolled = !0)), updateChecked( element, props ); var value = getToStringValue( props.value ), type = props.type; if (null != value) "number" === type ? ((0 === value && "" === node.value) || node.value != value) && (node.value = toString( value )) : node.value !== toString( value ) && (node.value = toString( value )); else if ("submit" === type || "reset" === type) return void node.removeAttribute( "value" ); props.hasOwnProperty( "value" ) ? setDefaultValue( node, props.type, value ) : props.hasOwnProperty( "defaultValue" ) && setDefaultValue( node, props.type, getToStringValue( props.defaultValue ) ), null == props.checked && null != props.defaultChecked && (node.defaultChecked = !!props.defaultChecked); } function postMountWrapper( element, props, isHydrating ) { var node = element; if (props.hasOwnProperty( "value" ) || props.hasOwnProperty( "defaultValue" )) { var type = props.type; if ( ("submit" === type || "reset" === type) && (void 0 === props.value || null === props.value) ) return; var initialValue = toString( node._wrapperState.initialValue ); isHydrating || (initialValue !== node.value && (node.value = initialValue)), (node.defaultValue = initialValue); } var name = node.name; "" !== name && (node.name = ""), (node.defaultChecked = !node.defaultChecked), (node.defaultChecked = !!node._wrapperState.initialChecked), "" !== name && (node.name = name); } function restoreControlledState( element, props ) { var node = element; updateWrapper( node, props ), (function ( rootNode, props ) { var name = props.name; if ("radio" === props.type && null != name) { for (var queryRoot = rootNode; queryRoot.parentNode; ) queryRoot = queryRoot.parentNode; for ( var group = queryRoot.querySelectorAll( "input[name=" + JSON.stringify( "" + name ) + '][type="radio"]', ), i = 0; i < group.length; i++ ) { var otherNode = group[i]; if (otherNode !== rootNode && otherNode.form === rootNode.form) { var otherProps = getFiberCurrentPropsFromNode( otherNode ); if (!otherProps) throw Error( "ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.", ); updateValueIfChanged( otherNode ), updateWrapper( otherNode, otherProps ); } } } })( node, props ); } function setDefaultValue( node, type, value ) { ("number" === type && getActiveElement( node.ownerDocument ) === node) || (null == value ? (node.defaultValue = toString( node._wrapperState.initialValue )) : node.defaultValue !== toString( value ) && (node.defaultValue = toString( value ))); } var didWarnValueDefaultValue$1, didWarnSelectedSetOnOption = !1, didWarnInvalidChild = !1; function validateProps( element, props ) { "object" == typeof props.children && null !== props.children && React.Children.forEach( props.children, function ( child ) { null != child && "string" != typeof child && "number" != typeof child && "string" == typeof child.type && (didWarnInvalidChild || ((didWarnInvalidChild = !0), error( "Only strings and numbers are supported as