{"ast":null,"code":"/**\n * @license React\n * react-dom-test-utils.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function () {\n 'use strict';\n\n var React = require('react');\n var ReactDOM = require('react-dom');\n var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\n // by calls to these methods by a Babel plugin.\n //\n // In PROD (or in packages without access to React internals),\n // they are left as they are instead.\n\n function warn(format) {\n {\n {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n printWarning('warn', format, args);\n }\n }\n }\n function error(format) {\n {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n printWarning('error', format, args);\n }\n }\n }\n function printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n }\n\n /**\n * `ReactInstanceMap` maintains a mapping from a public facing stateful\n * instance (key) and the internal representation (value). This allows public\n * methods to accept the user facing instance as an argument and map them back\n * to internal methods.\n *\n * Note that this module is currently shared and assumed to be stateless.\n * If this becomes an actual Map, that will break.\n */\n function get(key) {\n return key._reactInternals;\n }\n var FunctionComponent = 0;\n var ClassComponent = 1;\n var HostRoot = 3; // Root of a host tree. Could be nested inside another node.\n\n var HostComponent = 5;\n var HostText = 6;\n\n // Don't change these two values. They're used by React Dev Tools.\n var NoFlags = /* */\n 0;\n var Placement = /* */\n 2;\n var Hydrating = /* */\n 4096;\n var ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\n function getNearestMountedFiber(fiber) {\n var node = fiber;\n var nearestMounted = fiber;\n if (!fiber.alternate) {\n // If there is no alternate, this might be a new tree that isn't inserted\n // yet. If it is, then it will have a pending insertion effect on it.\n var nextNode = node;\n do {\n node = nextNode;\n if ((node.flags & (Placement | Hydrating)) !== NoFlags) {\n // This is an insertion or in-progress hydration. The nearest possible\n // mounted fiber is the parent but we need to continue to figure out\n // if that one is still mounted.\n nearestMounted = node.return;\n }\n nextNode = node.return;\n } while (nextNode);\n } else {\n while (node.return) {\n node = node.return;\n }\n }\n if (node.tag === HostRoot) {\n // TODO: Check if this was a nested HostRoot when used with\n // renderContainerIntoSubtree.\n return nearestMounted;\n } // If we didn't hit the root, that means that we're in an disconnected tree\n // that has been unmounted.\n\n return null;\n }\n function assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber) {\n throw new Error('Unable to find node on an unmounted component.');\n }\n }\n function findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n // If there is no alternate, then we only need to check if it is mounted.\n var nearestMounted = getNearestMountedFiber(fiber);\n if (nearestMounted === null) {\n throw new Error('Unable to find node on an unmounted component.');\n }\n if (nearestMounted !== fiber) {\n return null;\n }\n return fiber;\n } // If we have two possible branches, we'll walk backwards up to the root\n // to see what path the root points to. On the way we may hit one of the\n // special cases and we'll deal with them.\n\n var a = fiber;\n var b = alternate;\n while (true) {\n var parentA = a.return;\n if (parentA === null) {\n // We're at the root.\n break;\n }\n var parentB = parentA.alternate;\n if (parentB === null) {\n // There is no alternate. This is an unusual case. Currently, it only\n // happens when a Suspense component is hidden. An extra fragment fiber\n // is inserted in between the Suspense fiber and its children. Skip\n // over this extra fragment fiber and proceed to the next parent.\n var nextParent = parentA.return;\n if (nextParent !== null) {\n a = b = nextParent;\n continue;\n } // If there's no parent, we're at the root.\n\n break;\n } // If both copies of the parent fiber point to the same child, we can\n // assume that the child is current. This happens when we bailout on low\n // priority: the bailed out fiber's child reuses the current child.\n\n if (parentA.child === parentB.child) {\n var child = parentA.child;\n while (child) {\n if (child === a) {\n // We've determined that A is the current branch.\n assertIsMounted(parentA);\n return fiber;\n }\n if (child === b) {\n // We've determined that B is the current branch.\n assertIsMounted(parentA);\n return alternate;\n }\n child = child.sibling;\n } // We should never have an alternate for any mounting node. So the only\n // way this could possibly happen is if this was unmounted, if at all.\n\n throw new Error('Unable to find node on an unmounted component.');\n }\n if (a.return !== b.return) {\n // The return pointer of A and the return pointer of B point to different\n // fibers. We assume that return pointers never criss-cross, so A must\n // belong to the child set of A.return, and B must belong to the child\n // set of B.return.\n a = parentA;\n b = parentB;\n } else {\n // The return pointers point to the same fiber. We'll have to use the\n // default, slow path: scan the child sets of each parent alternate to see\n // which child belongs to which set.\n //\n // Search parent A's child set\n var didFindChild = false;\n var _child = parentA.child;\n while (_child) {\n if (_child === a) {\n didFindChild = true;\n a = parentA;\n b = parentB;\n break;\n }\n if (_child === b) {\n didFindChild = true;\n b = parentA;\n a = parentB;\n break;\n }\n _child = _child.sibling;\n }\n if (!didFindChild) {\n // Search parent B's child set\n _child = parentB.child;\n while (_child) {\n if (_child === a) {\n didFindChild = true;\n a = parentB;\n b = parentA;\n break;\n }\n if (_child === b) {\n didFindChild = true;\n b = parentB;\n a = parentA;\n break;\n }\n _child = _child.sibling;\n }\n if (!didFindChild) {\n throw new Error('Child was not found in either parent set. This indicates a bug ' + 'in React related to the return pointer. Please file an issue.');\n }\n }\n }\n if (a.alternate !== b) {\n throw new Error(\"Return fibers should always be each others' alternates. \" + 'This error is likely caused by a bug in React. Please file an issue.');\n }\n } // If the root is not a host container, we're in a disconnected tree. I.e.\n // unmounted.\n\n if (a.tag !== HostRoot) {\n throw new Error('Unable to find node on an unmounted component.');\n }\n if (a.stateNode.current === a) {\n // We've determined that A is the current branch.\n return fiber;\n } // Otherwise B has to be current branch.\n\n return alternate;\n }\n var assign = Object.assign;\n\n /**\n * `charCode` represents the actual \"character code\" and is safe to use with\n * `String.fromCharCode`. As such, only keys that correspond to printable\n * characters produce a valid `charCode`, the only exception to this is Enter.\n * The Tab-key is considered non-printable and does not have a `charCode`,\n * presumably because it does not produce a tab-character in browsers.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {number} Normalized `charCode` property.\n */\n function getEventCharCode(nativeEvent) {\n var charCode;\n var keyCode = nativeEvent.keyCode;\n if ('charCode' in nativeEvent) {\n charCode = nativeEvent.charCode; // FF does not set `charCode` for the Enter-key, check against `keyCode`.\n\n if (charCode === 0 && keyCode === 13) {\n charCode = 13;\n }\n } else {\n // IE8 does not implement `charCode`, but `keyCode` has the correct value.\n charCode = keyCode;\n } // IE and Edge (on Windows) and Chrome / Safari (on Windows and Linux)\n // report Enter as charCode 10 when ctrl is pressed.\n\n if (charCode === 10) {\n charCode = 13;\n } // Some non-printable keys are reported in `charCode`/`keyCode`, discard them.\n // Must not discard the (non-)printable Enter-key.\n\n if (charCode >= 32 || charCode === 13) {\n return charCode;\n }\n return 0;\n }\n function functionThatReturnsTrue() {\n return true;\n }\n function functionThatReturnsFalse() {\n return false;\n } // This is intentionally a factory so that we have different returned constructors.\n // If we had a single constructor, it would be megamorphic and engines would deopt.\n\n function createSyntheticEvent(Interface) {\n /**\n * Synthetic events are dispatched by event plugins, typically in response to a\n * top-level event delegation handler.\n *\n * These systems should generally use pooling to reduce the frequency of garbage\n * collection. The system should check `isPersistent` to determine whether the\n * event should be released into the pool after being dispatched. Users that\n * need a persisted event should invoke `persist`.\n *\n * Synthetic events (and subclasses) implement the DOM Level 3 Events API by\n * normalizing browser quirks. Subclasses do not necessarily have to implement a\n * DOM interface; custom application-specific events can also subclass this.\n */\n function SyntheticBaseEvent(reactName, reactEventType, targetInst, nativeEvent, nativeEventTarget) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n for (var _propName in Interface) {\n if (!Interface.hasOwnProperty(_propName)) {\n continue;\n }\n var normalize = Interface[_propName];\n if (normalize) {\n this[_propName] = normalize(nativeEvent);\n } else {\n this[_propName] = nativeEvent[_propName];\n }\n }\n var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false;\n if (defaultPrevented) {\n this.isDefaultPrevented = functionThatReturnsTrue;\n } else {\n this.isDefaultPrevented = functionThatReturnsFalse;\n }\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = true;\n var event = this.nativeEvent;\n if (!event) {\n return;\n }\n if (event.preventDefault) {\n event.preventDefault(); // $FlowFixMe - flow is not aware of `unknown` in IE\n } else if (typeof event.returnValue !== 'unknown') {\n event.returnValue = false;\n }\n this.isDefaultPrevented = functionThatReturnsTrue;\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n if (!event) {\n return;\n }\n if (event.stopPropagation) {\n event.stopPropagation(); // $FlowFixMe - flow is not aware of `unknown` in IE\n } else if (typeof event.cancelBubble !== 'unknown') {\n // The ChangeEventPlugin registers a \"propertychange\" event for\n // IE. This event does not support bubbling or cancelling, and\n // any references to cancelBubble throw \"Member not found\". A\n // typeof check of \"unknown\" circumvents this issue (and is also\n // IE specific).\n event.cancelBubble = true;\n }\n this.isPropagationStopped = functionThatReturnsTrue;\n },\n /**\n * We release all dispatched `SyntheticEvent`s after each event loop, adding\n * them back into the pool. This allows a way to hold onto a reference that\n * won't be added back into the pool.\n */\n persist: function () {// Modern event system doesn't use pooling.\n },\n /**\n * Checks if this event should be released back into the pool.\n *\n * @return {boolean} True if this should not be released, false otherwise.\n */\n isPersistent: functionThatReturnsTrue\n });\n return SyntheticBaseEvent;\n }\n /**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\n var EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n };\n var SyntheticEvent = createSyntheticEvent(EventInterface);\n var UIEventInterface = assign({}, EventInterface, {\n view: 0,\n detail: 0\n });\n var SyntheticUIEvent = createSyntheticEvent(UIEventInterface);\n var lastMovementX;\n var lastMovementY;\n var lastMouseEvent;\n function updateMouseMovementPolyfillState(event) {\n if (event !== lastMouseEvent) {\n if (lastMouseEvent && event.type === 'mousemove') {\n lastMovementX = event.screenX - lastMouseEvent.screenX;\n lastMovementY = event.screenY - lastMouseEvent.screenY;\n } else {\n lastMovementX = 0;\n lastMovementY = 0;\n }\n lastMouseEvent = event;\n }\n }\n /**\n * @interface MouseEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\n var MouseEventInterface = assign({}, UIEventInterface, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n if (event.relatedTarget === undefined) return event.fromElement === event.srcElement ? event.toElement : event.fromElement;\n return event.relatedTarget;\n },\n movementX: function (event) {\n if ('movementX' in event) {\n return event.movementX;\n }\n updateMouseMovementPolyfillState(event);\n return lastMovementX;\n },\n movementY: function (event) {\n if ('movementY' in event) {\n return event.movementY;\n } // Don't need to call updateMouseMovementPolyfillState() here\n // because it's guaranteed to have already run when movementX\n // was copied.\n\n return lastMovementY;\n }\n });\n var SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface);\n /**\n * @interface DragEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\n var DragEventInterface = assign({}, MouseEventInterface, {\n dataTransfer: 0\n });\n var SyntheticDragEvent = createSyntheticEvent(DragEventInterface);\n /**\n * @interface FocusEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\n var FocusEventInterface = assign({}, UIEventInterface, {\n relatedTarget: 0\n });\n var SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface);\n /**\n * @interface Event\n * @see http://www.w3.org/TR/css3-animations/#AnimationEvent-interface\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent\n */\n\n var AnimationEventInterface = assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n });\n var SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface);\n /**\n * @interface Event\n * @see http://www.w3.org/TR/clipboard-apis/\n */\n\n var ClipboardEventInterface = assign({}, EventInterface, {\n clipboardData: function (event) {\n return 'clipboardData' in event ? event.clipboardData : window.clipboardData;\n }\n });\n var SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface);\n /**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents\n */\n\n var CompositionEventInterface = assign({}, EventInterface, {\n data: 0\n });\n var SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface);\n /**\n * Normalization of deprecated HTML5 `key` values\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\n\n var normalizeKey = {\n Esc: 'Escape',\n Spacebar: ' ',\n Left: 'ArrowLeft',\n Up: 'ArrowUp',\n Right: 'ArrowRight',\n Down: 'ArrowDown',\n Del: 'Delete',\n Win: 'OS',\n Menu: 'ContextMenu',\n Apps: 'ContextMenu',\n Scroll: 'ScrollLock',\n MozPrintableKey: 'Unidentified'\n };\n /**\n * Translation from legacy `keyCode` to HTML5 `key`\n * Only special keys supported, all others depend on keyboard layout or browser\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\n\n var translateToKey = {\n '8': 'Backspace',\n '9': 'Tab',\n '12': 'Clear',\n '13': 'Enter',\n '16': 'Shift',\n '17': 'Control',\n '18': 'Alt',\n '19': 'Pause',\n '20': 'CapsLock',\n '27': 'Escape',\n '32': ' ',\n '33': 'PageUp',\n '34': 'PageDown',\n '35': 'End',\n '36': 'Home',\n '37': 'ArrowLeft',\n '38': 'ArrowUp',\n '39': 'ArrowRight',\n '40': 'ArrowDown',\n '45': 'Insert',\n '46': 'Delete',\n '112': 'F1',\n '113': 'F2',\n '114': 'F3',\n '115': 'F4',\n '116': 'F5',\n '117': 'F6',\n '118': 'F7',\n '119': 'F8',\n '120': 'F9',\n '121': 'F10',\n '122': 'F11',\n '123': 'F12',\n '144': 'NumLock',\n '145': 'ScrollLock',\n '224': 'Meta'\n };\n /**\n * @param {object} nativeEvent Native browser event.\n * @return {string} Normalized `key` property.\n */\n\n function getEventKey(nativeEvent) {\n if (nativeEvent.key) {\n // Normalize inconsistent values reported by browsers due to\n // implementations of a working draft specification.\n // FireFox implements `key` but returns `MozPrintableKey` for all\n // printable characters (normalized to `Unidentified`), ignore it.\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (key !== 'Unidentified') {\n return key;\n }\n } // Browser does not implement `key`, polyfill as much of it as we can.\n\n if (nativeEvent.type === 'keypress') {\n var charCode = getEventCharCode(nativeEvent); // The enter-key is technically both printable and non-printable and can\n // thus be captured by `keypress`, no other non-printable key should.\n\n return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);\n }\n if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') {\n // While user keyboard layout determines the actual meaning of each\n // `keyCode` value, almost all function keys have a universal value.\n return translateToKey[nativeEvent.keyCode] || 'Unidentified';\n }\n return '';\n }\n /**\n * Translation from modifier key to the associated property in the event.\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers\n */\n\n var modifierKeyToProp = {\n Alt: 'altKey',\n Control: 'ctrlKey',\n Meta: 'metaKey',\n Shift: 'shiftKey'\n }; // Older browsers (Safari <= 10, iOS Safari <= 10.2) do not support\n // getModifierState. If getModifierState is not supported, we map it to a set of\n // modifier keys exposed by the event. In this case, Lock-keys are not supported.\n\n function modifierStateGetter(keyArg) {\n var syntheticEvent = this;\n var nativeEvent = syntheticEvent.nativeEvent;\n if (nativeEvent.getModifierState) {\n return nativeEvent.getModifierState(keyArg);\n }\n var keyProp = modifierKeyToProp[keyArg];\n return keyProp ? !!nativeEvent[keyProp] : false;\n }\n function getEventModifierState(nativeEvent) {\n return modifierStateGetter;\n }\n /**\n * @interface KeyboardEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\n var KeyboardEventInterface = assign({}, UIEventInterface, {\n key: getEventKey,\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: getEventModifierState,\n // Legacy Interface\n charCode: function (event) {\n // `charCode` is the result of a KeyPress event and represents the value of\n // the actual printable character.\n // KeyPress is deprecated, but its replacement is not yet final and not\n // implemented in any major browser. Only KeyPress has charCode.\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n return 0;\n },\n keyCode: function (event) {\n // `keyCode` is the result of a KeyDown/Up event and represents the value of\n // physical keyboard key.\n // The actual meaning of the value depends on the users' keyboard layout\n // which cannot be detected. Assuming that it is a US keyboard layout\n // provides a surprisingly accurate mapping for US and European users.\n // Due to this, it is left to the user to implement at this time.\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n return 0;\n },\n which: function (event) {\n // `which` is an alias for either `keyCode` or `charCode` depending on the\n // type of the event.\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n return 0;\n }\n });\n var SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface);\n /**\n * @interface PointerEvent\n * @see http://www.w3.org/TR/pointerevents/\n */\n\n var PointerEventInterface = assign({}, MouseEventInterface, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n });\n var SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface);\n /**\n * @interface TouchEvent\n * @see http://www.w3.org/TR/touch-events/\n */\n\n var TouchEventInterface = assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n });\n var SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface);\n /**\n * @interface Event\n * @see http://www.w3.org/TR/2009/WD-css3-transitions-20090320/#transition-events-\n * @see https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent\n */\n\n var TransitionEventInterface = assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n });\n var SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface);\n /**\n * @interface WheelEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\n var WheelEventInterface = assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return 'deltaX' in event ? event.deltaX :\n // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).\n 'wheelDeltaX' in event ? -event.wheelDeltaX : 0;\n },\n deltaY: function (event) {\n return 'deltaY' in event ? event.deltaY :\n // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).\n 'wheelDeltaY' in event ? -event.wheelDeltaY :\n // Fallback to `wheelDelta` for IE<9 and normalize (down is positive).\n 'wheelDelta' in event ? -event.wheelDelta : 0;\n },\n deltaZ: 0,\n // Browsers without \"deltaMode\" is reporting in raw wheel delta where one\n // notch on the scroll is always +/- 120, roughly equivalent to pixels.\n // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or\n // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size.\n deltaMode: 0\n });\n var SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface);\n\n /**\n * HTML nodeType values that represent the type of the node\n */\n var ELEMENT_NODE = 1;\n function invokeGuardedCallbackProd(name, func, context, a, b, c, d, e, f) {\n var funcArgs = Array.prototype.slice.call(arguments, 3);\n try {\n func.apply(context, funcArgs);\n } catch (error) {\n this.onError(error);\n }\n }\n var invokeGuardedCallbackImpl = invokeGuardedCallbackProd;\n {\n // In DEV mode, we swap out invokeGuardedCallback for a special version\n // that plays more nicely with the browser's DevTools. The idea is to preserve\n // \"Pause on exceptions\" behavior. Because React wraps all user-provided\n // functions in invokeGuardedCallback, and the production version of\n // invokeGuardedCallback uses a try-catch, all user exceptions are treated\n // like caught exceptions, and the DevTools won't pause unless the developer\n // takes the extra step of enabling pause on caught exceptions. This is\n // unintuitive, though, because even though React has caught the error, from\n // the developer's perspective, the error is uncaught.\n //\n // To preserve the expected \"Pause on exceptions\" behavior, we don't use a\n // try-catch in DEV. Instead, we synchronously dispatch a fake event to a fake\n // DOM node, and call the user-provided callback from inside an event handler\n // for that fake event. If the callback throws, the error is \"captured\" using\n // a global event handler. But because the error happens in a different\n // event loop context, it does not interrupt the normal program flow.\n // Effectively, this gives us try-catch behavior without actually using\n // try-catch. Neat!\n // Check that the browser supports the APIs we need to implement our special\n // DEV version of invokeGuardedCallback\n if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n var fakeNode = document.createElement('react');\n invokeGuardedCallbackImpl = function invokeGuardedCallbackDev(name, func, context, a, b, c, d, e, f) {\n // If document doesn't exist we know for sure we will crash in this method\n // when we call document.createEvent(). However this can cause confusing\n // errors: https://github.com/facebook/create-react-app/issues/3482\n // So we preemptively throw with a better message instead.\n if (typeof document === 'undefined' || document === null) {\n throw new Error('The `document` global was defined when React was initialized, but is not ' + 'defined anymore. This can happen in a test environment if a component ' + 'schedules an update from an asynchronous callback, but the test has already ' + 'finished running. To solve this, you can either unmount the component at ' + 'the end of your test (and ensure that any asynchronous operations get ' + 'canceled in `componentWillUnmount`), or you can change the test itself ' + 'to be asynchronous.');\n }\n var evt = document.createEvent('Event');\n var didCall = false; // Keeps track of whether the user-provided callback threw an error. We\n // set this to true at the beginning, then set it to false right after\n // calling the function. If the function errors, `didError` will never be\n // set to false. This strategy works even if the browser is flaky and\n // fails to call our global error handler, because it doesn't rely on\n // the error event at all.\n\n var didError = true; // Keeps track of the value of window.event so that we can reset it\n // during the callback to let user code access window.event in the\n // browsers that support it.\n\n var windowEvent = window.event; // Keeps track of the descriptor of window.event to restore it after event\n // dispatching: https://github.com/facebook/react/issues/13688\n\n var windowEventDescriptor = Object.getOwnPropertyDescriptor(window, 'event');\n function restoreAfterDispatch() {\n // We immediately remove the callback from event listeners so that\n // nested `invokeGuardedCallback` calls do not clash. Otherwise, a\n // nested call would trigger the fake event handlers of any call higher\n // in the stack.\n fakeNode.removeEventListener(evtType, callCallback, false); // We check for window.hasOwnProperty('event') to prevent the\n // window.event assignment in both IE <= 10 as they throw an error\n // \"Member not found\" in strict mode, and in Firefox which does not\n // support window.event.\n\n if (typeof window.event !== 'undefined' && window.hasOwnProperty('event')) {\n window.event = windowEvent;\n }\n } // Create an event handler for our fake event. We will synchronously\n // dispatch our fake event using `dispatchEvent`. Inside the handler, we\n // call the user-provided callback.\n\n var funcArgs = Array.prototype.slice.call(arguments, 3);\n function callCallback() {\n didCall = true;\n restoreAfterDispatch();\n func.apply(context, funcArgs);\n didError = false;\n } // Create a global error event handler. We use this to capture the value\n // that was thrown. It's possible that this error handler will fire more\n // than once; for example, if non-React code also calls `dispatchEvent`\n // and a handler for that event throws. We should be resilient to most of\n // those cases. Even if our error event handler fires more than once, the\n // last error event is always used. If the callback actually does error,\n // we know that the last error event is the correct one, because it's not\n // possible for anything else to have happened in between our callback\n // erroring and the code that follows the `dispatchEvent` call below. If\n // the callback doesn't error, but the error event was fired, we know to\n // ignore it because `didError` will be false, as described above.\n\n var error; // Use this to track whether the error event is ever called.\n\n var didSetError = false;\n var isCrossOriginError = false;\n function handleWindowError(event) {\n error = event.error;\n didSetError = true;\n if (error === null && event.colno === 0 && event.lineno === 0) {\n isCrossOriginError = true;\n }\n if (event.defaultPrevented) {\n // Some other error handler has prevented default.\n // Browsers silence the error report if this happens.\n // We'll remember this to later decide whether to log it or not.\n if (error != null && typeof error === 'object') {\n try {\n error._suppressLogging = true;\n } catch (inner) {// Ignore.\n }\n }\n }\n } // Create a fake event type.\n\n var evtType = \"react-\" + (name ? name : 'invokeguardedcallback'); // Attach our event handlers\n\n window.addEventListener('error', handleWindowError);\n fakeNode.addEventListener(evtType, callCallback, false); // Synchronously dispatch our fake event. If the user-provided function\n // errors, it will trigger our global error handler.\n\n evt.initEvent(evtType, false, false);\n fakeNode.dispatchEvent(evt);\n if (windowEventDescriptor) {\n Object.defineProperty(window, 'event', windowEventDescriptor);\n }\n if (didCall && didError) {\n if (!didSetError) {\n // The callback errored, but the error event never fired.\n // eslint-disable-next-line react-internal/prod-error-codes\n error = new Error('An error was thrown inside one of your components, but React ' + \"doesn't know what it was. This is likely due to browser \" + 'flakiness. React does its best to preserve the \"Pause on ' + 'exceptions\" behavior of the DevTools, which requires some ' + \"DEV-mode only tricks. It's possible that these don't work in \" + 'your browser. Try triggering the error in production mode, ' + 'or switching to a modern browser. If you suspect that this is ' + 'actually an issue with React, please file an issue.');\n } else if (isCrossOriginError) {\n // eslint-disable-next-line react-internal/prod-error-codes\n error = new Error(\"A cross-origin error was thrown. React doesn't have access to \" + 'the actual error object in development. ' + 'See https://reactjs.org/link/crossorigin-error for more information.');\n }\n this.onError(error);\n } // Remove our event listeners\n\n window.removeEventListener('error', handleWindowError);\n if (!didCall) {\n // Something went really wrong, and our event was not dispatched.\n // https://github.com/facebook/react/issues/16734\n // https://github.com/facebook/react/issues/16585\n // Fall back to the production implementation.\n restoreAfterDispatch();\n return invokeGuardedCallbackProd.apply(this, arguments);\n }\n };\n }\n }\n var invokeGuardedCallbackImpl$1 = invokeGuardedCallbackImpl;\n var hasError = false;\n var caughtError = null; // Used by event system to capture/rethrow the first error.\n\n var hasRethrowError = false;\n var rethrowError = null;\n var reporter = {\n onError: function (error) {\n hasError = true;\n caughtError = error;\n }\n };\n /**\n * Call a function while guarding against errors that happens within it.\n * Returns an error if it throws, otherwise null.\n *\n * In production, this is implemented using a try-catch. The reason we don't\n * use a try-catch directly is so that we can swap out a different\n * implementation in DEV mode.\n *\n * @param {String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} context The context to use when calling the function\n * @param {...*} args Arguments for function\n */\n\n function invokeGuardedCallback(name, func, context, a, b, c, d, e, f) {\n hasError = false;\n caughtError = null;\n invokeGuardedCallbackImpl$1.apply(reporter, arguments);\n }\n /**\n * Same as invokeGuardedCallback, but instead of returning an error, it stores\n * it in a global so it can be rethrown by `rethrowCaughtError` later.\n * TODO: See if caughtError and rethrowError can be unified.\n *\n * @param {String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} context The context to use when calling the function\n * @param {...*} args Arguments for function\n */\n\n function invokeGuardedCallbackAndCatchFirstError(name, func, context, a, b, c, d, e, f) {\n invokeGuardedCallback.apply(this, arguments);\n if (hasError) {\n var error = clearCaughtError();\n if (!hasRethrowError) {\n hasRethrowError = true;\n rethrowError = error;\n }\n }\n }\n /**\n * During execution of guarded functions we will capture the first error which\n * we will rethrow to be handled by the top level error handler.\n */\n\n function rethrowCaughtError() {\n if (hasRethrowError) {\n var error = rethrowError;\n hasRethrowError = false;\n rethrowError = null;\n throw error;\n }\n }\n function clearCaughtError() {\n if (hasError) {\n var error = caughtError;\n hasError = false;\n caughtError = null;\n return error;\n } else {\n throw new Error('clearCaughtError was called but no error was captured. This error ' + 'is likely caused by a bug in React. Please file an issue.');\n }\n }\n var isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\n function isArray(a) {\n return isArrayImpl(a);\n }\n var SecretInternals = ReactDOM.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n var EventInternals = SecretInternals.Events;\n var getInstanceFromNode = EventInternals[0];\n var getNodeFromInstance = EventInternals[1];\n var getFiberCurrentPropsFromNode = EventInternals[2];\n var enqueueStateRestore = EventInternals[3];\n var restoreStateIfNeeded = EventInternals[4];\n var reactAct = React.unstable_act;\n function Event(suffix) {}\n var hasWarnedAboutDeprecatedMockComponent = false;\n /**\n * @class ReactTestUtils\n */\n\n function findAllInRenderedFiberTreeInternal(fiber, test) {\n if (!fiber) {\n return [];\n }\n var currentParent = findCurrentFiberUsingSlowPath(fiber);\n if (!currentParent) {\n return [];\n }\n var node = currentParent;\n var ret = [];\n while (true) {\n if (node.tag === HostComponent || node.tag === HostText || node.tag === ClassComponent || node.tag === FunctionComponent) {\n var publicInst = node.stateNode;\n if (test(publicInst)) {\n ret.push(publicInst);\n }\n }\n if (node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === currentParent) {\n return ret;\n }\n while (!node.sibling) {\n if (!node.return || node.return === currentParent) {\n return ret;\n }\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n function validateClassInstance(inst, methodName) {\n if (!inst) {\n // This is probably too relaxed but it's existing behavior.\n return;\n }\n if (get(inst)) {\n // This is a public instance indeed.\n return;\n }\n var received;\n var stringified = String(inst);\n if (isArray(inst)) {\n received = 'an array';\n } else if (inst && inst.nodeType === ELEMENT_NODE && inst.tagName) {\n received = 'a DOM node';\n } else if (stringified === '[object Object]') {\n received = 'object with keys {' + Object.keys(inst).join(', ') + '}';\n } else {\n received = stringified;\n }\n throw new Error(methodName + \"(...): the first argument must be a React class instance. \" + (\"Instead received: \" + received + \".\"));\n }\n /**\n * Utilities for making it easy to test React components.\n *\n * See https://reactjs.org/docs/test-utils.html\n *\n * Todo: Support the entire DOM.scry query syntax. For now, these simple\n * utilities will suffice for testing purposes.\n * @lends ReactTestUtils\n */\n\n var didWarnAboutReactTestUtilsDeprecation = false;\n function renderIntoDocument(element) {\n {\n if (!didWarnAboutReactTestUtilsDeprecation) {\n didWarnAboutReactTestUtilsDeprecation = true;\n error('ReactDOMTestUtils is deprecated and will be removed in a future ' + 'major release, because it exposes internal implementation details ' + 'that are highly likely to change between releases. Upgrade to a ' + 'modern testing library, such as @testing-library/react. See ' + 'https://react.dev/warnings/react-dom-test-utils for more info.');\n }\n }\n var div = document.createElement('div'); // None of our tests actually require attaching the container to the\n // DOM, and doing so creates a mess that we rely on test isolation to\n // clean up, so we're going to stop honoring the name of this method\n // (and probably rename it eventually) if no problems arise.\n // document.documentElement.appendChild(div);\n\n return ReactDOM.render(element, div);\n }\n function isElement(element) {\n return React.isValidElement(element);\n }\n function isElementOfType(inst, convenienceConstructor) {\n return React.isValidElement(inst) && inst.type === convenienceConstructor;\n }\n function isDOMComponent(inst) {\n return !!(inst && inst.nodeType === ELEMENT_NODE && inst.tagName);\n }\n function isDOMComponentElement(inst) {\n return !!(inst && React.isValidElement(inst) && !!inst.tagName);\n }\n function isCompositeComponent(inst) {\n if (isDOMComponent(inst)) {\n // Accessing inst.setState warns; just return false as that'll be what\n // this returns when we have DOM nodes as refs directly\n return false;\n }\n return inst != null && typeof inst.render === 'function' && typeof inst.setState === 'function';\n }\n function isCompositeComponentWithType(inst, type) {\n if (!isCompositeComponent(inst)) {\n return false;\n }\n var internalInstance = get(inst);\n var constructor = internalInstance.type;\n return constructor === type;\n }\n function findAllInRenderedTree(inst, test) {\n validateClassInstance(inst, 'findAllInRenderedTree');\n if (!inst) {\n return [];\n }\n var internalInstance = get(inst);\n return findAllInRenderedFiberTreeInternal(internalInstance, test);\n }\n /**\n * Finds all instances of components in the rendered tree that are DOM\n * components with the class name matching `className`.\n * @return {array} an array of all the matches.\n */\n\n function scryRenderedDOMComponentsWithClass(root, classNames) {\n validateClassInstance(root, 'scryRenderedDOMComponentsWithClass');\n return findAllInRenderedTree(root, function (inst) {\n if (isDOMComponent(inst)) {\n var className = inst.className;\n if (typeof className !== 'string') {\n // SVG, probably.\n className = inst.getAttribute('class') || '';\n }\n var classList = className.split(/\\s+/);\n if (!isArray(classNames)) {\n if (classNames === undefined) {\n throw new Error('TestUtils.scryRenderedDOMComponentsWithClass expects a ' + 'className as a second argument.');\n }\n classNames = classNames.split(/\\s+/);\n }\n return classNames.every(function (name) {\n return classList.indexOf(name) !== -1;\n });\n }\n return false;\n });\n }\n /**\n * Like scryRenderedDOMComponentsWithClass but expects there to be one result,\n * and returns that one result, or throws exception if there is any other\n * number of matches besides one.\n * @return {!ReactDOMComponent} The one match.\n */\n\n function findRenderedDOMComponentWithClass(root, className) {\n validateClassInstance(root, 'findRenderedDOMComponentWithClass');\n var all = scryRenderedDOMComponentsWithClass(root, className);\n if (all.length !== 1) {\n throw new Error('Did not find exactly one match (found: ' + all.length + ') ' + 'for class:' + className);\n }\n return all[0];\n }\n /**\n * Finds all instances of components in the rendered tree that are DOM\n * components with the tag name matching `tagName`.\n * @return {array} an array of all the matches.\n */\n\n function scryRenderedDOMComponentsWithTag(root, tagName) {\n validateClassInstance(root, 'scryRenderedDOMComponentsWithTag');\n return findAllInRenderedTree(root, function (inst) {\n return isDOMComponent(inst) && inst.tagName.toUpperCase() === tagName.toUpperCase();\n });\n }\n /**\n * Like scryRenderedDOMComponentsWithTag but expects there to be one result,\n * and returns that one result, or throws exception if there is any other\n * number of matches besides one.\n * @return {!ReactDOMComponent} The one match.\n */\n\n function findRenderedDOMComponentWithTag(root, tagName) {\n validateClassInstance(root, 'findRenderedDOMComponentWithTag');\n var all = scryRenderedDOMComponentsWithTag(root, tagName);\n if (all.length !== 1) {\n throw new Error('Did not find exactly one match (found: ' + all.length + ') ' + 'for tag:' + tagName);\n }\n return all[0];\n }\n /**\n * Finds all instances of components with type equal to `componentType`.\n * @return {array} an array of all the matches.\n */\n\n function scryRenderedComponentsWithType(root, componentType) {\n validateClassInstance(root, 'scryRenderedComponentsWithType');\n return findAllInRenderedTree(root, function (inst) {\n return isCompositeComponentWithType(inst, componentType);\n });\n }\n /**\n * Same as `scryRenderedComponentsWithType` but expects there to be one result\n * and returns that one result, or throws exception if there is any other\n * number of matches besides one.\n * @return {!ReactComponent} The one match.\n */\n\n function findRenderedComponentWithType(root, componentType) {\n validateClassInstance(root, 'findRenderedComponentWithType');\n var all = scryRenderedComponentsWithType(root, componentType);\n if (all.length !== 1) {\n throw new Error('Did not find exactly one match (found: ' + all.length + ') ' + 'for componentType:' + componentType);\n }\n return all[0];\n }\n /**\n * Pass a mocked component module to this method to augment it with\n * useful methods that allow it to be used as a dummy React component.\n * Instead of rendering as usual, the component will become a simple\n *
containing any provided children.\n *\n * @param {object} module the mock function object exported from a\n * module that defines the component to be mocked\n * @param {?string} mockTagName optional dummy root tag name to return\n * from render method (overrides\n * module.mockTagName if provided)\n * @return {object} the ReactTestUtils object (for chaining)\n */\n\n function mockComponent(module, mockTagName) {\n {\n if (!hasWarnedAboutDeprecatedMockComponent) {\n hasWarnedAboutDeprecatedMockComponent = true;\n warn('ReactTestUtils.mockComponent() is deprecated. ' + 'Use shallow rendering or jest.mock() instead.\\n\\n' + 'See https://reactjs.org/link/test-utils-mock-component for more information.');\n }\n }\n mockTagName = mockTagName || module.mockTagName || 'div';\n module.prototype.render.mockImplementation(function () {\n return React.createElement(mockTagName, null, this.props.children);\n });\n return this;\n }\n function nativeTouchData(x, y) {\n return {\n touches: [{\n pageX: x,\n pageY: y\n }]\n };\n } // Start of inline: the below functions were inlined from\n // EventPropagator.js, as they deviated from ReactDOM's newer\n // implementations.\n\n /**\n * Dispatch the event to the listener.\n * @param {SyntheticEvent} event SyntheticEvent to handle\n * @param {function} listener Application-level callback\n * @param {*} inst Internal component instance\n */\n\n function executeDispatch(event, listener, inst) {\n var type = event.type || 'unknown-event';\n event.currentTarget = getNodeFromInstance(inst);\n invokeGuardedCallbackAndCatchFirstError(type, listener, undefined, event);\n event.currentTarget = null;\n }\n /**\n * Standard/simple iteration through an event's collected dispatches.\n */\n\n function executeDispatchesInOrder(event) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchInstances = event._dispatchInstances;\n if (isArray(dispatchListeners)) {\n for (var i = 0; i < dispatchListeners.length; i++) {\n if (event.isPropagationStopped()) {\n break;\n } // Listeners and Instances are two parallel arrays that are always in sync.\n\n executeDispatch(event, dispatchListeners[i], dispatchInstances[i]);\n }\n } else if (dispatchListeners) {\n executeDispatch(event, dispatchListeners, dispatchInstances);\n }\n event._dispatchListeners = null;\n event._dispatchInstances = null;\n }\n /**\n * Dispatches an event and releases it back into the pool, unless persistent.\n *\n * @param {?object} event Synthetic event to be dispatched.\n * @private\n */\n\n var executeDispatchesAndRelease = function (event) {\n if (event) {\n executeDispatchesInOrder(event);\n if (!event.isPersistent()) {\n event.constructor.release(event);\n }\n }\n };\n function isInteractive(tag) {\n return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';\n }\n function getParent(inst) {\n do {\n inst = inst.return; // TODO: If this is a HostRoot we might want to bail out.\n // That is depending on if we want nested subtrees (layers) to bubble\n // events to their parent. We could also go through parentNode on the\n // host node but that wouldn't work for React Native and doesn't let us\n // do the portal feature.\n } while (inst && inst.tag !== HostComponent);\n if (inst) {\n return inst;\n }\n return null;\n }\n /**\n * Simulates the traversal of a two-phase, capture/bubble event dispatch.\n */\n\n function traverseTwoPhase(inst, fn, arg) {\n var path = [];\n while (inst) {\n path.push(inst);\n inst = getParent(inst);\n }\n var i;\n for (i = path.length; i-- > 0;) {\n fn(path[i], 'captured', arg);\n }\n for (i = 0; i < path.length; i++) {\n fn(path[i], 'bubbled', arg);\n }\n }\n function shouldPreventMouseEvent(name, type, props) {\n switch (name) {\n case 'onClick':\n case 'onClickCapture':\n case 'onDoubleClick':\n case 'onDoubleClickCapture':\n case 'onMouseDown':\n case 'onMouseDownCapture':\n case 'onMouseMove':\n case 'onMouseMoveCapture':\n case 'onMouseUp':\n case 'onMouseUpCapture':\n case 'onMouseEnter':\n return !!(props.disabled && isInteractive(type));\n default:\n return false;\n }\n }\n /**\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @return {?function} The stored callback.\n */\n\n function getListener(inst, registrationName) {\n // TODO: shouldPreventMouseEvent is DOM-specific and definitely should not\n // live here; needs to be moved to a better place soon\n var stateNode = inst.stateNode;\n if (!stateNode) {\n // Work in progress (ex: onload events in incremental mode).\n return null;\n }\n var props = getFiberCurrentPropsFromNode(stateNode);\n if (!props) {\n // Work in progress.\n return null;\n }\n var listener = props[registrationName];\n if (shouldPreventMouseEvent(registrationName, inst.type, props)) {\n return null;\n }\n if (listener && typeof listener !== 'function') {\n throw new Error(\"Expected `\" + registrationName + \"` listener to be a function, instead got a value of `\" + typeof listener + \"` type.\");\n }\n return listener;\n }\n function listenerAtPhase(inst, event, propagationPhase) {\n var registrationName = event._reactName;\n if (propagationPhase === 'captured') {\n registrationName += 'Capture';\n }\n return getListener(inst, registrationName);\n }\n function accumulateDispatches(inst, ignoredDirection, event) {\n if (inst && event && event._reactName) {\n var registrationName = event._reactName;\n var listener = getListener(inst, registrationName);\n if (listener) {\n if (event._dispatchListeners == null) {\n event._dispatchListeners = [];\n }\n if (event._dispatchInstances == null) {\n event._dispatchInstances = [];\n }\n event._dispatchListeners.push(listener);\n event._dispatchInstances.push(inst);\n }\n }\n }\n function accumulateDirectionalDispatches(inst, phase, event) {\n {\n if (!inst) {\n error('Dispatching inst must not be null');\n }\n }\n var listener = listenerAtPhase(inst, event, phase);\n if (listener) {\n if (event._dispatchListeners == null) {\n event._dispatchListeners = [];\n }\n if (event._dispatchInstances == null) {\n event._dispatchInstances = [];\n }\n event._dispatchListeners.push(listener);\n event._dispatchInstances.push(inst);\n }\n }\n function accumulateDirectDispatchesSingle(event) {\n if (event && event._reactName) {\n accumulateDispatches(event._targetInst, null, event);\n }\n }\n function accumulateTwoPhaseDispatchesSingle(event) {\n if (event && event._reactName) {\n traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event);\n }\n } // End of inline\n\n var Simulate = {};\n var directDispatchEventTypes = new Set(['mouseEnter', 'mouseLeave', 'pointerEnter', 'pointerLeave']);\n /**\n * Exports:\n *\n * - `Simulate.click(Element)`\n * - `Simulate.mouseMove(Element)`\n * - `Simulate.change(Element)`\n * - ... (All keys from event plugin `eventTypes` objects)\n */\n\n function makeSimulator(eventType) {\n return function (domNode, eventData) {\n if (React.isValidElement(domNode)) {\n throw new Error('TestUtils.Simulate expected a DOM node as the first argument but received ' + 'a React element. Pass the DOM node you wish to simulate the event on instead. ' + 'Note that TestUtils.Simulate will not work if you are using shallow rendering.');\n }\n if (isCompositeComponent(domNode)) {\n throw new Error('TestUtils.Simulate expected a DOM node as the first argument but received ' + 'a component instance. Pass the DOM node you wish to simulate the event on instead.');\n }\n var reactName = 'on' + eventType[0].toUpperCase() + eventType.slice(1);\n var fakeNativeEvent = new Event();\n fakeNativeEvent.target = domNode;\n fakeNativeEvent.type = eventType.toLowerCase();\n var targetInst = getInstanceFromNode(domNode);\n var event = new SyntheticEvent(reactName, fakeNativeEvent.type, targetInst, fakeNativeEvent, domNode); // Since we aren't using pooling, always persist the event. This will make\n // sure it's marked and won't warn when setting additional properties.\n\n event.persist();\n assign(event, eventData);\n if (directDispatchEventTypes.has(eventType)) {\n accumulateDirectDispatchesSingle(event);\n } else {\n accumulateTwoPhaseDispatchesSingle(event);\n }\n ReactDOM.unstable_batchedUpdates(function () {\n // Normally extractEvent enqueues a state restore, but we'll just always\n // do that since we're by-passing it here.\n enqueueStateRestore(domNode);\n executeDispatchesAndRelease(event);\n rethrowCaughtError();\n });\n restoreStateIfNeeded();\n };\n } // A one-time snapshot with no plans to update. We'll probably want to deprecate Simulate API.\n\n var simulatedEventTypes = ['blur', 'cancel', 'click', 'close', 'contextMenu', 'copy', 'cut', 'auxClick', 'doubleClick', 'dragEnd', 'dragStart', 'drop', 'focus', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'mouseDown', 'mouseUp', 'paste', 'pause', 'play', 'pointerCancel', 'pointerDown', 'pointerUp', 'rateChange', 'reset', 'resize', 'seeked', 'submit', 'touchCancel', 'touchEnd', 'touchStart', 'volumeChange', 'drag', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'mouseMove', 'mouseOut', 'mouseOver', 'pointerMove', 'pointerOut', 'pointerOver', 'scroll', 'toggle', 'touchMove', 'wheel', 'abort', 'animationEnd', 'animationIteration', 'animationStart', 'canPlay', 'canPlayThrough', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'gotPointerCapture', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'lostPointerCapture', 'playing', 'progress', 'seeking', 'stalled', 'suspend', 'timeUpdate', 'transitionEnd', 'waiting', 'mouseEnter', 'mouseLeave', 'pointerEnter', 'pointerLeave', 'change', 'select', 'beforeInput', 'compositionEnd', 'compositionStart', 'compositionUpdate'];\n function buildSimulators() {\n simulatedEventTypes.forEach(function (eventType) {\n Simulate[eventType] = makeSimulator(eventType);\n });\n }\n buildSimulators();\n var didWarnAboutUsingAct = false;\n var act = function actWithWarning(callback) {\n {\n if (!didWarnAboutUsingAct) {\n didWarnAboutUsingAct = true;\n error('`ReactDOMTestUtils.act` is deprecated in favor of `React.act`. ' + 'Import `act` from `react` instead of `react-dom/test-utils`. ' + 'See https://react.dev/warnings/react-dom-test-utils for more info.');\n }\n }\n return reactAct(callback);\n };\n exports.Simulate = Simulate;\n exports.act = act;\n exports.findAllInRenderedTree = findAllInRenderedTree;\n exports.findRenderedComponentWithType = findRenderedComponentWithType;\n exports.findRenderedDOMComponentWithClass = findRenderedDOMComponentWithClass;\n exports.findRenderedDOMComponentWithTag = findRenderedDOMComponentWithTag;\n exports.isCompositeComponent = isCompositeComponent;\n exports.isCompositeComponentWithType = isCompositeComponentWithType;\n exports.isDOMComponent = isDOMComponent;\n exports.isDOMComponentElement = isDOMComponentElement;\n exports.isElement = isElement;\n exports.isElementOfType = isElementOfType;\n exports.mockComponent = mockComponent;\n exports.nativeTouchData = nativeTouchData;\n exports.renderIntoDocument = renderIntoDocument;\n exports.scryRenderedComponentsWithType = scryRenderedComponentsWithType;\n exports.scryRenderedDOMComponentsWithClass = scryRenderedDOMComponentsWithClass;\n exports.scryRenderedDOMComponentsWithTag = scryRenderedDOMComponentsWithTag;\n exports.traverseTwoPhase = traverseTwoPhase;\n })();\n}","map":{"version":3,"names":["process","env","NODE_ENV","React","require","ReactDOM","ReactSharedInternals","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","warn","format","_len","arguments","length","args","Array","_key","printWarning","error","_len2","_key2","level","ReactDebugCurrentFrame","stack","getStackAddendum","concat","argsWithFormat","map","item","String","unshift","Function","prototype","apply","call","console","get","key","_reactInternals","FunctionComponent","ClassComponent","HostRoot","HostComponent","HostText","NoFlags","Placement","Hydrating","ReactCurrentOwner","getNearestMountedFiber","fiber","node","nearestMounted","alternate","nextNode","flags","return","tag","assertIsMounted","Error","findCurrentFiberUsingSlowPath","a","b","parentA","parentB","nextParent","child","sibling","didFindChild","_child","stateNode","current","assign","Object","getEventCharCode","nativeEvent","charCode","keyCode","functionThatReturnsTrue","functionThatReturnsFalse","createSyntheticEvent","Interface","SyntheticBaseEvent","reactName","reactEventType","targetInst","nativeEventTarget","_reactName","_targetInst","type","target","currentTarget","_propName","hasOwnProperty","normalize","defaultPrevented","returnValue","isDefaultPrevented","isPropagationStopped","preventDefault","event","stopPropagation","cancelBubble","persist","isPersistent","EventInterface","eventPhase","bubbles","cancelable","timeStamp","Date","now","isTrusted","SyntheticEvent","UIEventInterface","view","detail","SyntheticUIEvent","lastMovementX","lastMovementY","lastMouseEvent","updateMouseMovementPolyfillState","screenX","screenY","MouseEventInterface","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","getEventModifierState","button","buttons","relatedTarget","undefined","fromElement","srcElement","toElement","movementX","movementY","SyntheticMouseEvent","DragEventInterface","dataTransfer","SyntheticDragEvent","FocusEventInterface","SyntheticFocusEvent","AnimationEventInterface","animationName","elapsedTime","pseudoElement","SyntheticAnimationEvent","ClipboardEventInterface","clipboardData","window","SyntheticClipboardEvent","CompositionEventInterface","data","SyntheticCompositionEvent","normalizeKey","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","translateToKey","getEventKey","fromCharCode","modifierKeyToProp","Alt","Control","Meta","Shift","modifierStateGetter","keyArg","syntheticEvent","keyProp","KeyboardEventInterface","code","location","repeat","locale","which","SyntheticKeyboardEvent","PointerEventInterface","pointerId","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","SyntheticPointerEvent","TouchEventInterface","touches","targetTouches","changedTouches","SyntheticTouchEvent","TransitionEventInterface","propertyName","SyntheticTransitionEvent","WheelEventInterface","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","SyntheticWheelEvent","ELEMENT_NODE","invokeGuardedCallbackProd","name","func","context","c","d","e","f","funcArgs","slice","onError","invokeGuardedCallbackImpl","dispatchEvent","document","createEvent","fakeNode","createElement","invokeGuardedCallbackDev","evt","didCall","didError","windowEvent","windowEventDescriptor","getOwnPropertyDescriptor","restoreAfterDispatch","removeEventListener","evtType","callCallback","didSetError","isCrossOriginError","handleWindowError","colno","lineno","_suppressLogging","inner","addEventListener","initEvent","defineProperty","invokeGuardedCallbackImpl$1","hasError","caughtError","hasRethrowError","rethrowError","reporter","invokeGuardedCallback","invokeGuardedCallbackAndCatchFirstError","clearCaughtError","rethrowCaughtError","isArrayImpl","isArray","SecretInternals","EventInternals","Events","getInstanceFromNode","getNodeFromInstance","getFiberCurrentPropsFromNode","enqueueStateRestore","restoreStateIfNeeded","reactAct","unstable_act","Event","suffix","hasWarnedAboutDeprecatedMockComponent","findAllInRenderedFiberTreeInternal","test","currentParent","ret","publicInst","push","validateClassInstance","inst","methodName","received","stringified","nodeType","tagName","keys","join","didWarnAboutReactTestUtilsDeprecation","renderIntoDocument","element","div","render","isElement","isValidElement","isElementOfType","convenienceConstructor","isDOMComponent","isDOMComponentElement","isCompositeComponent","setState","isCompositeComponentWithType","internalInstance","constructor","findAllInRenderedTree","scryRenderedDOMComponentsWithClass","root","classNames","className","getAttribute","classList","split","every","indexOf","findRenderedDOMComponentWithClass","all","scryRenderedDOMComponentsWithTag","toUpperCase","findRenderedDOMComponentWithTag","scryRenderedComponentsWithType","componentType","findRenderedComponentWithType","mockComponent","module","mockTagName","mockImplementation","props","children","nativeTouchData","x","y","executeDispatch","listener","executeDispatchesInOrder","dispatchListeners","_dispatchListeners","dispatchInstances","_dispatchInstances","i","executeDispatchesAndRelease","release","isInteractive","getParent","traverseTwoPhase","fn","arg","path","shouldPreventMouseEvent","disabled","getListener","registrationName","listenerAtPhase","propagationPhase","accumulateDispatches","ignoredDirection","accumulateDirectionalDispatches","phase","accumulateDirectDispatchesSingle","accumulateTwoPhaseDispatchesSingle","Simulate","directDispatchEventTypes","Set","makeSimulator","eventType","domNode","eventData","fakeNativeEvent","toLowerCase","has","unstable_batchedUpdates","simulatedEventTypes","buildSimulators","forEach","didWarnAboutUsingAct","act","actWithWarning","callback","exports"],"sources":["/Users/max_liu/max_liu/company/tools_auto_pt/node_modules/react-dom/cjs/react-dom-test-utils.development.js"],"sourcesContent":["/**\n * @license React\n * react-dom-test-utils.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nvar React = require('react');\nvar ReactDOM = require('react-dom');\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\n// by calls to these methods by a Babel plugin.\n//\n// In PROD (or in packages without access to React internals),\n// they are left as they are instead.\n\nfunction warn(format) {\n {\n {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n printWarning('warn', format, args);\n }\n }\n}\nfunction error(format) {\n {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\n/**\n * `ReactInstanceMap` maintains a mapping from a public facing stateful\n * instance (key) and the internal representation (value). This allows public\n * methods to accept the user facing instance as an argument and map them back\n * to internal methods.\n *\n * Note that this module is currently shared and assumed to be stateless.\n * If this becomes an actual Map, that will break.\n */\nfunction get(key) {\n return key._reactInternals;\n}\n\nvar FunctionComponent = 0;\nvar ClassComponent = 1;\n\nvar HostRoot = 3; // Root of a host tree. Could be nested inside another node.\n\nvar HostComponent = 5;\nvar HostText = 6;\n\n// Don't change these two values. They're used by React Dev Tools.\nvar NoFlags =\n/* */\n0;\n\nvar Placement =\n/* */\n2;\nvar Hydrating =\n/* */\n4096;\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nfunction getNearestMountedFiber(fiber) {\n var node = fiber;\n var nearestMounted = fiber;\n\n if (!fiber.alternate) {\n // If there is no alternate, this might be a new tree that isn't inserted\n // yet. If it is, then it will have a pending insertion effect on it.\n var nextNode = node;\n\n do {\n node = nextNode;\n\n if ((node.flags & (Placement | Hydrating)) !== NoFlags) {\n // This is an insertion or in-progress hydration. The nearest possible\n // mounted fiber is the parent but we need to continue to figure out\n // if that one is still mounted.\n nearestMounted = node.return;\n }\n\n nextNode = node.return;\n } while (nextNode);\n } else {\n while (node.return) {\n node = node.return;\n }\n }\n\n if (node.tag === HostRoot) {\n // TODO: Check if this was a nested HostRoot when used with\n // renderContainerIntoSubtree.\n return nearestMounted;\n } // If we didn't hit the root, that means that we're in an disconnected tree\n // that has been unmounted.\n\n\n return null;\n}\n\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber) {\n throw new Error('Unable to find node on an unmounted component.');\n }\n}\n\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n\n if (!alternate) {\n // If there is no alternate, then we only need to check if it is mounted.\n var nearestMounted = getNearestMountedFiber(fiber);\n\n if (nearestMounted === null) {\n throw new Error('Unable to find node on an unmounted component.');\n }\n\n if (nearestMounted !== fiber) {\n return null;\n }\n\n return fiber;\n } // If we have two possible branches, we'll walk backwards up to the root\n // to see what path the root points to. On the way we may hit one of the\n // special cases and we'll deal with them.\n\n\n var a = fiber;\n var b = alternate;\n\n while (true) {\n var parentA = a.return;\n\n if (parentA === null) {\n // We're at the root.\n break;\n }\n\n var parentB = parentA.alternate;\n\n if (parentB === null) {\n // There is no alternate. This is an unusual case. Currently, it only\n // happens when a Suspense component is hidden. An extra fragment fiber\n // is inserted in between the Suspense fiber and its children. Skip\n // over this extra fragment fiber and proceed to the next parent.\n var nextParent = parentA.return;\n\n if (nextParent !== null) {\n a = b = nextParent;\n continue;\n } // If there's no parent, we're at the root.\n\n\n break;\n } // If both copies of the parent fiber point to the same child, we can\n // assume that the child is current. This happens when we bailout on low\n // priority: the bailed out fiber's child reuses the current child.\n\n\n if (parentA.child === parentB.child) {\n var child = parentA.child;\n\n while (child) {\n if (child === a) {\n // We've determined that A is the current branch.\n assertIsMounted(parentA);\n return fiber;\n }\n\n if (child === b) {\n // We've determined that B is the current branch.\n assertIsMounted(parentA);\n return alternate;\n }\n\n child = child.sibling;\n } // We should never have an alternate for any mounting node. So the only\n // way this could possibly happen is if this was unmounted, if at all.\n\n\n throw new Error('Unable to find node on an unmounted component.');\n }\n\n if (a.return !== b.return) {\n // The return pointer of A and the return pointer of B point to different\n // fibers. We assume that return pointers never criss-cross, so A must\n // belong to the child set of A.return, and B must belong to the child\n // set of B.return.\n a = parentA;\n b = parentB;\n } else {\n // The return pointers point to the same fiber. We'll have to use the\n // default, slow path: scan the child sets of each parent alternate to see\n // which child belongs to which set.\n //\n // Search parent A's child set\n var didFindChild = false;\n var _child = parentA.child;\n\n while (_child) {\n if (_child === a) {\n didFindChild = true;\n a = parentA;\n b = parentB;\n break;\n }\n\n if (_child === b) {\n didFindChild = true;\n b = parentA;\n a = parentB;\n break;\n }\n\n _child = _child.sibling;\n }\n\n if (!didFindChild) {\n // Search parent B's child set\n _child = parentB.child;\n\n while (_child) {\n if (_child === a) {\n didFindChild = true;\n a = parentB;\n b = parentA;\n break;\n }\n\n if (_child === b) {\n didFindChild = true;\n b = parentB;\n a = parentA;\n break;\n }\n\n _child = _child.sibling;\n }\n\n if (!didFindChild) {\n throw new Error('Child was not found in either parent set. This indicates a bug ' + 'in React related to the return pointer. Please file an issue.');\n }\n }\n }\n\n if (a.alternate !== b) {\n throw new Error(\"Return fibers should always be each others' alternates. \" + 'This error is likely caused by a bug in React. Please file an issue.');\n }\n } // If the root is not a host container, we're in a disconnected tree. I.e.\n // unmounted.\n\n\n if (a.tag !== HostRoot) {\n throw new Error('Unable to find node on an unmounted component.');\n }\n\n if (a.stateNode.current === a) {\n // We've determined that A is the current branch.\n return fiber;\n } // Otherwise B has to be current branch.\n\n\n return alternate;\n}\n\nvar assign = Object.assign;\n\n/**\n * `charCode` represents the actual \"character code\" and is safe to use with\n * `String.fromCharCode`. As such, only keys that correspond to printable\n * characters produce a valid `charCode`, the only exception to this is Enter.\n * The Tab-key is considered non-printable and does not have a `charCode`,\n * presumably because it does not produce a tab-character in browsers.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {number} Normalized `charCode` property.\n */\nfunction getEventCharCode(nativeEvent) {\n var charCode;\n var keyCode = nativeEvent.keyCode;\n\n if ('charCode' in nativeEvent) {\n charCode = nativeEvent.charCode; // FF does not set `charCode` for the Enter-key, check against `keyCode`.\n\n if (charCode === 0 && keyCode === 13) {\n charCode = 13;\n }\n } else {\n // IE8 does not implement `charCode`, but `keyCode` has the correct value.\n charCode = keyCode;\n } // IE and Edge (on Windows) and Chrome / Safari (on Windows and Linux)\n // report Enter as charCode 10 when ctrl is pressed.\n\n\n if (charCode === 10) {\n charCode = 13;\n } // Some non-printable keys are reported in `charCode`/`keyCode`, discard them.\n // Must not discard the (non-)printable Enter-key.\n\n\n if (charCode >= 32 || charCode === 13) {\n return charCode;\n }\n\n return 0;\n}\n\nfunction functionThatReturnsTrue() {\n return true;\n}\n\nfunction functionThatReturnsFalse() {\n return false;\n} // This is intentionally a factory so that we have different returned constructors.\n// If we had a single constructor, it would be megamorphic and engines would deopt.\n\n\nfunction createSyntheticEvent(Interface) {\n /**\n * Synthetic events are dispatched by event plugins, typically in response to a\n * top-level event delegation handler.\n *\n * These systems should generally use pooling to reduce the frequency of garbage\n * collection. The system should check `isPersistent` to determine whether the\n * event should be released into the pool after being dispatched. Users that\n * need a persisted event should invoke `persist`.\n *\n * Synthetic events (and subclasses) implement the DOM Level 3 Events API by\n * normalizing browser quirks. Subclasses do not necessarily have to implement a\n * DOM interface; custom application-specific events can also subclass this.\n */\n function SyntheticBaseEvent(reactName, reactEventType, targetInst, nativeEvent, nativeEventTarget) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n\n for (var _propName in Interface) {\n if (!Interface.hasOwnProperty(_propName)) {\n continue;\n }\n\n var normalize = Interface[_propName];\n\n if (normalize) {\n this[_propName] = normalize(nativeEvent);\n } else {\n this[_propName] = nativeEvent[_propName];\n }\n }\n\n var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false;\n\n if (defaultPrevented) {\n this.isDefaultPrevented = functionThatReturnsTrue;\n } else {\n this.isDefaultPrevented = functionThatReturnsFalse;\n }\n\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n\n assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = true;\n var event = this.nativeEvent;\n\n if (!event) {\n return;\n }\n\n if (event.preventDefault) {\n event.preventDefault(); // $FlowFixMe - flow is not aware of `unknown` in IE\n } else if (typeof event.returnValue !== 'unknown') {\n event.returnValue = false;\n }\n\n this.isDefaultPrevented = functionThatReturnsTrue;\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n\n if (!event) {\n return;\n }\n\n if (event.stopPropagation) {\n event.stopPropagation(); // $FlowFixMe - flow is not aware of `unknown` in IE\n } else if (typeof event.cancelBubble !== 'unknown') {\n // The ChangeEventPlugin registers a \"propertychange\" event for\n // IE. This event does not support bubbling or cancelling, and\n // any references to cancelBubble throw \"Member not found\". A\n // typeof check of \"unknown\" circumvents this issue (and is also\n // IE specific).\n event.cancelBubble = true;\n }\n\n this.isPropagationStopped = functionThatReturnsTrue;\n },\n\n /**\n * We release all dispatched `SyntheticEvent`s after each event loop, adding\n * them back into the pool. This allows a way to hold onto a reference that\n * won't be added back into the pool.\n */\n persist: function () {// Modern event system doesn't use pooling.\n },\n\n /**\n * Checks if this event should be released back into the pool.\n *\n * @return {boolean} True if this should not be released, false otherwise.\n */\n isPersistent: functionThatReturnsTrue\n });\n return SyntheticBaseEvent;\n}\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\n\nvar EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n};\nvar SyntheticEvent = createSyntheticEvent(EventInterface);\n\nvar UIEventInterface = assign({}, EventInterface, {\n view: 0,\n detail: 0\n});\n\nvar SyntheticUIEvent = createSyntheticEvent(UIEventInterface);\nvar lastMovementX;\nvar lastMovementY;\nvar lastMouseEvent;\n\nfunction updateMouseMovementPolyfillState(event) {\n if (event !== lastMouseEvent) {\n if (lastMouseEvent && event.type === 'mousemove') {\n lastMovementX = event.screenX - lastMouseEvent.screenX;\n lastMovementY = event.screenY - lastMouseEvent.screenY;\n } else {\n lastMovementX = 0;\n lastMovementY = 0;\n }\n\n lastMouseEvent = event;\n }\n}\n/**\n * @interface MouseEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\n\nvar MouseEventInterface = assign({}, UIEventInterface, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n if (event.relatedTarget === undefined) return event.fromElement === event.srcElement ? event.toElement : event.fromElement;\n return event.relatedTarget;\n },\n movementX: function (event) {\n if ('movementX' in event) {\n return event.movementX;\n }\n\n updateMouseMovementPolyfillState(event);\n return lastMovementX;\n },\n movementY: function (event) {\n if ('movementY' in event) {\n return event.movementY;\n } // Don't need to call updateMouseMovementPolyfillState() here\n // because it's guaranteed to have already run when movementX\n // was copied.\n\n\n return lastMovementY;\n }\n});\n\nvar SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface);\n/**\n * @interface DragEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\nvar DragEventInterface = assign({}, MouseEventInterface, {\n dataTransfer: 0\n});\n\nvar SyntheticDragEvent = createSyntheticEvent(DragEventInterface);\n/**\n * @interface FocusEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\nvar FocusEventInterface = assign({}, UIEventInterface, {\n relatedTarget: 0\n});\n\nvar SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface);\n/**\n * @interface Event\n * @see http://www.w3.org/TR/css3-animations/#AnimationEvent-interface\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent\n */\n\nvar AnimationEventInterface = assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n});\n\nvar SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface);\n/**\n * @interface Event\n * @see http://www.w3.org/TR/clipboard-apis/\n */\n\nvar ClipboardEventInterface = assign({}, EventInterface, {\n clipboardData: function (event) {\n return 'clipboardData' in event ? event.clipboardData : window.clipboardData;\n }\n});\n\nvar SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface);\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents\n */\n\nvar CompositionEventInterface = assign({}, EventInterface, {\n data: 0\n});\n\nvar SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface);\n/**\n * Normalization of deprecated HTML5 `key` values\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\n\nvar normalizeKey = {\n Esc: 'Escape',\n Spacebar: ' ',\n Left: 'ArrowLeft',\n Up: 'ArrowUp',\n Right: 'ArrowRight',\n Down: 'ArrowDown',\n Del: 'Delete',\n Win: 'OS',\n Menu: 'ContextMenu',\n Apps: 'ContextMenu',\n Scroll: 'ScrollLock',\n MozPrintableKey: 'Unidentified'\n};\n/**\n * Translation from legacy `keyCode` to HTML5 `key`\n * Only special keys supported, all others depend on keyboard layout or browser\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\n\nvar translateToKey = {\n '8': 'Backspace',\n '9': 'Tab',\n '12': 'Clear',\n '13': 'Enter',\n '16': 'Shift',\n '17': 'Control',\n '18': 'Alt',\n '19': 'Pause',\n '20': 'CapsLock',\n '27': 'Escape',\n '32': ' ',\n '33': 'PageUp',\n '34': 'PageDown',\n '35': 'End',\n '36': 'Home',\n '37': 'ArrowLeft',\n '38': 'ArrowUp',\n '39': 'ArrowRight',\n '40': 'ArrowDown',\n '45': 'Insert',\n '46': 'Delete',\n '112': 'F1',\n '113': 'F2',\n '114': 'F3',\n '115': 'F4',\n '116': 'F5',\n '117': 'F6',\n '118': 'F7',\n '119': 'F8',\n '120': 'F9',\n '121': 'F10',\n '122': 'F11',\n '123': 'F12',\n '144': 'NumLock',\n '145': 'ScrollLock',\n '224': 'Meta'\n};\n/**\n * @param {object} nativeEvent Native browser event.\n * @return {string} Normalized `key` property.\n */\n\nfunction getEventKey(nativeEvent) {\n if (nativeEvent.key) {\n // Normalize inconsistent values reported by browsers due to\n // implementations of a working draft specification.\n // FireFox implements `key` but returns `MozPrintableKey` for all\n // printable characters (normalized to `Unidentified`), ignore it.\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n\n if (key !== 'Unidentified') {\n return key;\n }\n } // Browser does not implement `key`, polyfill as much of it as we can.\n\n\n if (nativeEvent.type === 'keypress') {\n var charCode = getEventCharCode(nativeEvent); // The enter-key is technically both printable and non-printable and can\n // thus be captured by `keypress`, no other non-printable key should.\n\n return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);\n }\n\n if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') {\n // While user keyboard layout determines the actual meaning of each\n // `keyCode` value, almost all function keys have a universal value.\n return translateToKey[nativeEvent.keyCode] || 'Unidentified';\n }\n\n return '';\n}\n/**\n * Translation from modifier key to the associated property in the event.\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers\n */\n\n\nvar modifierKeyToProp = {\n Alt: 'altKey',\n Control: 'ctrlKey',\n Meta: 'metaKey',\n Shift: 'shiftKey'\n}; // Older browsers (Safari <= 10, iOS Safari <= 10.2) do not support\n// getModifierState. If getModifierState is not supported, we map it to a set of\n// modifier keys exposed by the event. In this case, Lock-keys are not supported.\n\nfunction modifierStateGetter(keyArg) {\n var syntheticEvent = this;\n var nativeEvent = syntheticEvent.nativeEvent;\n\n if (nativeEvent.getModifierState) {\n return nativeEvent.getModifierState(keyArg);\n }\n\n var keyProp = modifierKeyToProp[keyArg];\n return keyProp ? !!nativeEvent[keyProp] : false;\n}\n\nfunction getEventModifierState(nativeEvent) {\n return modifierStateGetter;\n}\n/**\n * @interface KeyboardEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\n\nvar KeyboardEventInterface = assign({}, UIEventInterface, {\n key: getEventKey,\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: getEventModifierState,\n // Legacy Interface\n charCode: function (event) {\n // `charCode` is the result of a KeyPress event and represents the value of\n // the actual printable character.\n // KeyPress is deprecated, but its replacement is not yet final and not\n // implemented in any major browser. Only KeyPress has charCode.\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n\n return 0;\n },\n keyCode: function (event) {\n // `keyCode` is the result of a KeyDown/Up event and represents the value of\n // physical keyboard key.\n // The actual meaning of the value depends on the users' keyboard layout\n // which cannot be detected. Assuming that it is a US keyboard layout\n // provides a surprisingly accurate mapping for US and European users.\n // Due to this, it is left to the user to implement at this time.\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n\n return 0;\n },\n which: function (event) {\n // `which` is an alias for either `keyCode` or `charCode` depending on the\n // type of the event.\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n\n return 0;\n }\n});\n\nvar SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface);\n/**\n * @interface PointerEvent\n * @see http://www.w3.org/TR/pointerevents/\n */\n\nvar PointerEventInterface = assign({}, MouseEventInterface, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n});\n\nvar SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface);\n/**\n * @interface TouchEvent\n * @see http://www.w3.org/TR/touch-events/\n */\n\nvar TouchEventInterface = assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n});\n\nvar SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface);\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2009/WD-css3-transitions-20090320/#transition-events-\n * @see https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent\n */\n\nvar TransitionEventInterface = assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n});\n\nvar SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface);\n/**\n * @interface WheelEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\nvar WheelEventInterface = assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return 'deltaX' in event ? event.deltaX : // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).\n 'wheelDeltaX' in event ? -event.wheelDeltaX : 0;\n },\n deltaY: function (event) {\n return 'deltaY' in event ? event.deltaY : // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).\n 'wheelDeltaY' in event ? -event.wheelDeltaY : // Fallback to `wheelDelta` for IE<9 and normalize (down is positive).\n 'wheelDelta' in event ? -event.wheelDelta : 0;\n },\n deltaZ: 0,\n // Browsers without \"deltaMode\" is reporting in raw wheel delta where one\n // notch on the scroll is always +/- 120, roughly equivalent to pixels.\n // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or\n // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size.\n deltaMode: 0\n});\n\nvar SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface);\n\n/**\n * HTML nodeType values that represent the type of the node\n */\nvar ELEMENT_NODE = 1;\n\nfunction invokeGuardedCallbackProd(name, func, context, a, b, c, d, e, f) {\n var funcArgs = Array.prototype.slice.call(arguments, 3);\n\n try {\n func.apply(context, funcArgs);\n } catch (error) {\n this.onError(error);\n }\n}\n\nvar invokeGuardedCallbackImpl = invokeGuardedCallbackProd;\n\n{\n // In DEV mode, we swap out invokeGuardedCallback for a special version\n // that plays more nicely with the browser's DevTools. The idea is to preserve\n // \"Pause on exceptions\" behavior. Because React wraps all user-provided\n // functions in invokeGuardedCallback, and the production version of\n // invokeGuardedCallback uses a try-catch, all user exceptions are treated\n // like caught exceptions, and the DevTools won't pause unless the developer\n // takes the extra step of enabling pause on caught exceptions. This is\n // unintuitive, though, because even though React has caught the error, from\n // the developer's perspective, the error is uncaught.\n //\n // To preserve the expected \"Pause on exceptions\" behavior, we don't use a\n // try-catch in DEV. Instead, we synchronously dispatch a fake event to a fake\n // DOM node, and call the user-provided callback from inside an event handler\n // for that fake event. If the callback throws, the error is \"captured\" using\n // a global event handler. But because the error happens in a different\n // event loop context, it does not interrupt the normal program flow.\n // Effectively, this gives us try-catch behavior without actually using\n // try-catch. Neat!\n // Check that the browser supports the APIs we need to implement our special\n // DEV version of invokeGuardedCallback\n if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n var fakeNode = document.createElement('react');\n\n invokeGuardedCallbackImpl = function invokeGuardedCallbackDev(name, func, context, a, b, c, d, e, f) {\n // If document doesn't exist we know for sure we will crash in this method\n // when we call document.createEvent(). However this can cause confusing\n // errors: https://github.com/facebook/create-react-app/issues/3482\n // So we preemptively throw with a better message instead.\n if (typeof document === 'undefined' || document === null) {\n throw new Error('The `document` global was defined when React was initialized, but is not ' + 'defined anymore. This can happen in a test environment if a component ' + 'schedules an update from an asynchronous callback, but the test has already ' + 'finished running. To solve this, you can either unmount the component at ' + 'the end of your test (and ensure that any asynchronous operations get ' + 'canceled in `componentWillUnmount`), or you can change the test itself ' + 'to be asynchronous.');\n }\n\n var evt = document.createEvent('Event');\n var didCall = false; // Keeps track of whether the user-provided callback threw an error. We\n // set this to true at the beginning, then set it to false right after\n // calling the function. If the function errors, `didError` will never be\n // set to false. This strategy works even if the browser is flaky and\n // fails to call our global error handler, because it doesn't rely on\n // the error event at all.\n\n var didError = true; // Keeps track of the value of window.event so that we can reset it\n // during the callback to let user code access window.event in the\n // browsers that support it.\n\n var windowEvent = window.event; // Keeps track of the descriptor of window.event to restore it after event\n // dispatching: https://github.com/facebook/react/issues/13688\n\n var windowEventDescriptor = Object.getOwnPropertyDescriptor(window, 'event');\n\n function restoreAfterDispatch() {\n // We immediately remove the callback from event listeners so that\n // nested `invokeGuardedCallback` calls do not clash. Otherwise, a\n // nested call would trigger the fake event handlers of any call higher\n // in the stack.\n fakeNode.removeEventListener(evtType, callCallback, false); // We check for window.hasOwnProperty('event') to prevent the\n // window.event assignment in both IE <= 10 as they throw an error\n // \"Member not found\" in strict mode, and in Firefox which does not\n // support window.event.\n\n if (typeof window.event !== 'undefined' && window.hasOwnProperty('event')) {\n window.event = windowEvent;\n }\n } // Create an event handler for our fake event. We will synchronously\n // dispatch our fake event using `dispatchEvent`. Inside the handler, we\n // call the user-provided callback.\n\n\n var funcArgs = Array.prototype.slice.call(arguments, 3);\n\n function callCallback() {\n didCall = true;\n restoreAfterDispatch();\n func.apply(context, funcArgs);\n didError = false;\n } // Create a global error event handler. We use this to capture the value\n // that was thrown. It's possible that this error handler will fire more\n // than once; for example, if non-React code also calls `dispatchEvent`\n // and a handler for that event throws. We should be resilient to most of\n // those cases. Even if our error event handler fires more than once, the\n // last error event is always used. If the callback actually does error,\n // we know that the last error event is the correct one, because it's not\n // possible for anything else to have happened in between our callback\n // erroring and the code that follows the `dispatchEvent` call below. If\n // the callback doesn't error, but the error event was fired, we know to\n // ignore it because `didError` will be false, as described above.\n\n\n var error; // Use this to track whether the error event is ever called.\n\n var didSetError = false;\n var isCrossOriginError = false;\n\n function handleWindowError(event) {\n error = event.error;\n didSetError = true;\n\n if (error === null && event.colno === 0 && event.lineno === 0) {\n isCrossOriginError = true;\n }\n\n if (event.defaultPrevented) {\n // Some other error handler has prevented default.\n // Browsers silence the error report if this happens.\n // We'll remember this to later decide whether to log it or not.\n if (error != null && typeof error === 'object') {\n try {\n error._suppressLogging = true;\n } catch (inner) {// Ignore.\n }\n }\n }\n } // Create a fake event type.\n\n\n var evtType = \"react-\" + (name ? name : 'invokeguardedcallback'); // Attach our event handlers\n\n window.addEventListener('error', handleWindowError);\n fakeNode.addEventListener(evtType, callCallback, false); // Synchronously dispatch our fake event. If the user-provided function\n // errors, it will trigger our global error handler.\n\n evt.initEvent(evtType, false, false);\n fakeNode.dispatchEvent(evt);\n\n if (windowEventDescriptor) {\n Object.defineProperty(window, 'event', windowEventDescriptor);\n }\n\n if (didCall && didError) {\n if (!didSetError) {\n // The callback errored, but the error event never fired.\n // eslint-disable-next-line react-internal/prod-error-codes\n error = new Error('An error was thrown inside one of your components, but React ' + \"doesn't know what it was. This is likely due to browser \" + 'flakiness. React does its best to preserve the \"Pause on ' + 'exceptions\" behavior of the DevTools, which requires some ' + \"DEV-mode only tricks. It's possible that these don't work in \" + 'your browser. Try triggering the error in production mode, ' + 'or switching to a modern browser. If you suspect that this is ' + 'actually an issue with React, please file an issue.');\n } else if (isCrossOriginError) {\n // eslint-disable-next-line react-internal/prod-error-codes\n error = new Error(\"A cross-origin error was thrown. React doesn't have access to \" + 'the actual error object in development. ' + 'See https://reactjs.org/link/crossorigin-error for more information.');\n }\n\n this.onError(error);\n } // Remove our event listeners\n\n\n window.removeEventListener('error', handleWindowError);\n\n if (!didCall) {\n // Something went really wrong, and our event was not dispatched.\n // https://github.com/facebook/react/issues/16734\n // https://github.com/facebook/react/issues/16585\n // Fall back to the production implementation.\n restoreAfterDispatch();\n return invokeGuardedCallbackProd.apply(this, arguments);\n }\n };\n }\n}\n\nvar invokeGuardedCallbackImpl$1 = invokeGuardedCallbackImpl;\n\nvar hasError = false;\nvar caughtError = null; // Used by event system to capture/rethrow the first error.\n\nvar hasRethrowError = false;\nvar rethrowError = null;\nvar reporter = {\n onError: function (error) {\n hasError = true;\n caughtError = error;\n }\n};\n/**\n * Call a function while guarding against errors that happens within it.\n * Returns an error if it throws, otherwise null.\n *\n * In production, this is implemented using a try-catch. The reason we don't\n * use a try-catch directly is so that we can swap out a different\n * implementation in DEV mode.\n *\n * @param {String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} context The context to use when calling the function\n * @param {...*} args Arguments for function\n */\n\nfunction invokeGuardedCallback(name, func, context, a, b, c, d, e, f) {\n hasError = false;\n caughtError = null;\n invokeGuardedCallbackImpl$1.apply(reporter, arguments);\n}\n/**\n * Same as invokeGuardedCallback, but instead of returning an error, it stores\n * it in a global so it can be rethrown by `rethrowCaughtError` later.\n * TODO: See if caughtError and rethrowError can be unified.\n *\n * @param {String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} context The context to use when calling the function\n * @param {...*} args Arguments for function\n */\n\nfunction invokeGuardedCallbackAndCatchFirstError(name, func, context, a, b, c, d, e, f) {\n invokeGuardedCallback.apply(this, arguments);\n\n if (hasError) {\n var error = clearCaughtError();\n\n if (!hasRethrowError) {\n hasRethrowError = true;\n rethrowError = error;\n }\n }\n}\n/**\n * During execution of guarded functions we will capture the first error which\n * we will rethrow to be handled by the top level error handler.\n */\n\nfunction rethrowCaughtError() {\n if (hasRethrowError) {\n var error = rethrowError;\n hasRethrowError = false;\n rethrowError = null;\n throw error;\n }\n}\nfunction clearCaughtError() {\n if (hasError) {\n var error = caughtError;\n hasError = false;\n caughtError = null;\n return error;\n } else {\n throw new Error('clearCaughtError was called but no error was captured. This error ' + 'is likely caused by a bug in React. Please file an issue.');\n }\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n return isArrayImpl(a);\n}\n\nvar SecretInternals = ReactDOM.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\nvar EventInternals = SecretInternals.Events;\nvar getInstanceFromNode = EventInternals[0];\nvar getNodeFromInstance = EventInternals[1];\nvar getFiberCurrentPropsFromNode = EventInternals[2];\nvar enqueueStateRestore = EventInternals[3];\nvar restoreStateIfNeeded = EventInternals[4];\nvar reactAct = React.unstable_act;\n\nfunction Event(suffix) {}\n\nvar hasWarnedAboutDeprecatedMockComponent = false;\n/**\n * @class ReactTestUtils\n */\n\nfunction findAllInRenderedFiberTreeInternal(fiber, test) {\n if (!fiber) {\n return [];\n }\n\n var currentParent = findCurrentFiberUsingSlowPath(fiber);\n\n if (!currentParent) {\n return [];\n }\n\n var node = currentParent;\n var ret = [];\n\n while (true) {\n if (node.tag === HostComponent || node.tag === HostText || node.tag === ClassComponent || node.tag === FunctionComponent) {\n var publicInst = node.stateNode;\n\n if (test(publicInst)) {\n ret.push(publicInst);\n }\n }\n\n if (node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === currentParent) {\n return ret;\n }\n\n while (!node.sibling) {\n if (!node.return || node.return === currentParent) {\n return ret;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n }\n}\n\nfunction validateClassInstance(inst, methodName) {\n if (!inst) {\n // This is probably too relaxed but it's existing behavior.\n return;\n }\n\n if (get(inst)) {\n // This is a public instance indeed.\n return;\n }\n\n var received;\n var stringified = String(inst);\n\n if (isArray(inst)) {\n received = 'an array';\n } else if (inst && inst.nodeType === ELEMENT_NODE && inst.tagName) {\n received = 'a DOM node';\n } else if (stringified === '[object Object]') {\n received = 'object with keys {' + Object.keys(inst).join(', ') + '}';\n } else {\n received = stringified;\n }\n\n throw new Error(methodName + \"(...): the first argument must be a React class instance. \" + (\"Instead received: \" + received + \".\"));\n}\n/**\n * Utilities for making it easy to test React components.\n *\n * See https://reactjs.org/docs/test-utils.html\n *\n * Todo: Support the entire DOM.scry query syntax. For now, these simple\n * utilities will suffice for testing purposes.\n * @lends ReactTestUtils\n */\n\n\nvar didWarnAboutReactTestUtilsDeprecation = false;\n\nfunction renderIntoDocument(element) {\n {\n if (!didWarnAboutReactTestUtilsDeprecation) {\n didWarnAboutReactTestUtilsDeprecation = true;\n\n error('ReactDOMTestUtils is deprecated and will be removed in a future ' + 'major release, because it exposes internal implementation details ' + 'that are highly likely to change between releases. Upgrade to a ' + 'modern testing library, such as @testing-library/react. See ' + 'https://react.dev/warnings/react-dom-test-utils for more info.');\n }\n }\n\n var div = document.createElement('div'); // None of our tests actually require attaching the container to the\n // DOM, and doing so creates a mess that we rely on test isolation to\n // clean up, so we're going to stop honoring the name of this method\n // (and probably rename it eventually) if no problems arise.\n // document.documentElement.appendChild(div);\n\n return ReactDOM.render(element, div);\n}\n\nfunction isElement(element) {\n return React.isValidElement(element);\n}\n\nfunction isElementOfType(inst, convenienceConstructor) {\n return React.isValidElement(inst) && inst.type === convenienceConstructor;\n}\n\nfunction isDOMComponent(inst) {\n return !!(inst && inst.nodeType === ELEMENT_NODE && inst.tagName);\n}\n\nfunction isDOMComponentElement(inst) {\n return !!(inst && React.isValidElement(inst) && !!inst.tagName);\n}\n\nfunction isCompositeComponent(inst) {\n if (isDOMComponent(inst)) {\n // Accessing inst.setState warns; just return false as that'll be what\n // this returns when we have DOM nodes as refs directly\n return false;\n }\n\n return inst != null && typeof inst.render === 'function' && typeof inst.setState === 'function';\n}\n\nfunction isCompositeComponentWithType(inst, type) {\n if (!isCompositeComponent(inst)) {\n return false;\n }\n\n var internalInstance = get(inst);\n var constructor = internalInstance.type;\n return constructor === type;\n}\n\nfunction findAllInRenderedTree(inst, test) {\n validateClassInstance(inst, 'findAllInRenderedTree');\n\n if (!inst) {\n return [];\n }\n\n var internalInstance = get(inst);\n return findAllInRenderedFiberTreeInternal(internalInstance, test);\n}\n/**\n * Finds all instances of components in the rendered tree that are DOM\n * components with the class name matching `className`.\n * @return {array} an array of all the matches.\n */\n\n\nfunction scryRenderedDOMComponentsWithClass(root, classNames) {\n validateClassInstance(root, 'scryRenderedDOMComponentsWithClass');\n return findAllInRenderedTree(root, function (inst) {\n if (isDOMComponent(inst)) {\n var className = inst.className;\n\n if (typeof className !== 'string') {\n // SVG, probably.\n className = inst.getAttribute('class') || '';\n }\n\n var classList = className.split(/\\s+/);\n\n if (!isArray(classNames)) {\n if (classNames === undefined) {\n throw new Error('TestUtils.scryRenderedDOMComponentsWithClass expects a ' + 'className as a second argument.');\n }\n\n classNames = classNames.split(/\\s+/);\n }\n\n return classNames.every(function (name) {\n return classList.indexOf(name) !== -1;\n });\n }\n\n return false;\n });\n}\n/**\n * Like scryRenderedDOMComponentsWithClass but expects there to be one result,\n * and returns that one result, or throws exception if there is any other\n * number of matches besides one.\n * @return {!ReactDOMComponent} The one match.\n */\n\n\nfunction findRenderedDOMComponentWithClass(root, className) {\n validateClassInstance(root, 'findRenderedDOMComponentWithClass');\n var all = scryRenderedDOMComponentsWithClass(root, className);\n\n if (all.length !== 1) {\n throw new Error('Did not find exactly one match (found: ' + all.length + ') ' + 'for class:' + className);\n }\n\n return all[0];\n}\n/**\n * Finds all instances of components in the rendered tree that are DOM\n * components with the tag name matching `tagName`.\n * @return {array} an array of all the matches.\n */\n\n\nfunction scryRenderedDOMComponentsWithTag(root, tagName) {\n validateClassInstance(root, 'scryRenderedDOMComponentsWithTag');\n return findAllInRenderedTree(root, function (inst) {\n return isDOMComponent(inst) && inst.tagName.toUpperCase() === tagName.toUpperCase();\n });\n}\n/**\n * Like scryRenderedDOMComponentsWithTag but expects there to be one result,\n * and returns that one result, or throws exception if there is any other\n * number of matches besides one.\n * @return {!ReactDOMComponent} The one match.\n */\n\n\nfunction findRenderedDOMComponentWithTag(root, tagName) {\n validateClassInstance(root, 'findRenderedDOMComponentWithTag');\n var all = scryRenderedDOMComponentsWithTag(root, tagName);\n\n if (all.length !== 1) {\n throw new Error('Did not find exactly one match (found: ' + all.length + ') ' + 'for tag:' + tagName);\n }\n\n return all[0];\n}\n/**\n * Finds all instances of components with type equal to `componentType`.\n * @return {array} an array of all the matches.\n */\n\n\nfunction scryRenderedComponentsWithType(root, componentType) {\n validateClassInstance(root, 'scryRenderedComponentsWithType');\n return findAllInRenderedTree(root, function (inst) {\n return isCompositeComponentWithType(inst, componentType);\n });\n}\n/**\n * Same as `scryRenderedComponentsWithType` but expects there to be one result\n * and returns that one result, or throws exception if there is any other\n * number of matches besides one.\n * @return {!ReactComponent} The one match.\n */\n\n\nfunction findRenderedComponentWithType(root, componentType) {\n validateClassInstance(root, 'findRenderedComponentWithType');\n var all = scryRenderedComponentsWithType(root, componentType);\n\n if (all.length !== 1) {\n throw new Error('Did not find exactly one match (found: ' + all.length + ') ' + 'for componentType:' + componentType);\n }\n\n return all[0];\n}\n/**\n * Pass a mocked component module to this method to augment it with\n * useful methods that allow it to be used as a dummy React component.\n * Instead of rendering as usual, the component will become a simple\n *
containing any provided children.\n *\n * @param {object} module the mock function object exported from a\n * module that defines the component to be mocked\n * @param {?string} mockTagName optional dummy root tag name to return\n * from render method (overrides\n * module.mockTagName if provided)\n * @return {object} the ReactTestUtils object (for chaining)\n */\n\n\nfunction mockComponent(module, mockTagName) {\n {\n if (!hasWarnedAboutDeprecatedMockComponent) {\n hasWarnedAboutDeprecatedMockComponent = true;\n\n warn('ReactTestUtils.mockComponent() is deprecated. ' + 'Use shallow rendering or jest.mock() instead.\\n\\n' + 'See https://reactjs.org/link/test-utils-mock-component for more information.');\n }\n }\n\n mockTagName = mockTagName || module.mockTagName || 'div';\n module.prototype.render.mockImplementation(function () {\n return React.createElement(mockTagName, null, this.props.children);\n });\n return this;\n}\n\nfunction nativeTouchData(x, y) {\n return {\n touches: [{\n pageX: x,\n pageY: y\n }]\n };\n} // Start of inline: the below functions were inlined from\n// EventPropagator.js, as they deviated from ReactDOM's newer\n// implementations.\n\n/**\n * Dispatch the event to the listener.\n * @param {SyntheticEvent} event SyntheticEvent to handle\n * @param {function} listener Application-level callback\n * @param {*} inst Internal component instance\n */\n\n\nfunction executeDispatch(event, listener, inst) {\n var type = event.type || 'unknown-event';\n event.currentTarget = getNodeFromInstance(inst);\n invokeGuardedCallbackAndCatchFirstError(type, listener, undefined, event);\n event.currentTarget = null;\n}\n/**\n * Standard/simple iteration through an event's collected dispatches.\n */\n\n\nfunction executeDispatchesInOrder(event) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchInstances = event._dispatchInstances;\n\n if (isArray(dispatchListeners)) {\n for (var i = 0; i < dispatchListeners.length; i++) {\n if (event.isPropagationStopped()) {\n break;\n } // Listeners and Instances are two parallel arrays that are always in sync.\n\n\n executeDispatch(event, dispatchListeners[i], dispatchInstances[i]);\n }\n } else if (dispatchListeners) {\n executeDispatch(event, dispatchListeners, dispatchInstances);\n }\n\n event._dispatchListeners = null;\n event._dispatchInstances = null;\n}\n/**\n * Dispatches an event and releases it back into the pool, unless persistent.\n *\n * @param {?object} event Synthetic event to be dispatched.\n * @private\n */\n\n\nvar executeDispatchesAndRelease = function (event) {\n if (event) {\n executeDispatchesInOrder(event);\n\n if (!event.isPersistent()) {\n event.constructor.release(event);\n }\n }\n};\n\nfunction isInteractive(tag) {\n return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';\n}\n\nfunction getParent(inst) {\n do {\n inst = inst.return; // TODO: If this is a HostRoot we might want to bail out.\n // That is depending on if we want nested subtrees (layers) to bubble\n // events to their parent. We could also go through parentNode on the\n // host node but that wouldn't work for React Native and doesn't let us\n // do the portal feature.\n } while (inst && inst.tag !== HostComponent);\n\n if (inst) {\n return inst;\n }\n\n return null;\n}\n/**\n * Simulates the traversal of a two-phase, capture/bubble event dispatch.\n */\n\n\nfunction traverseTwoPhase(inst, fn, arg) {\n var path = [];\n\n while (inst) {\n path.push(inst);\n inst = getParent(inst);\n }\n\n var i;\n\n for (i = path.length; i-- > 0;) {\n fn(path[i], 'captured', arg);\n }\n\n for (i = 0; i < path.length; i++) {\n fn(path[i], 'bubbled', arg);\n }\n}\n\nfunction shouldPreventMouseEvent(name, type, props) {\n switch (name) {\n case 'onClick':\n case 'onClickCapture':\n case 'onDoubleClick':\n case 'onDoubleClickCapture':\n case 'onMouseDown':\n case 'onMouseDownCapture':\n case 'onMouseMove':\n case 'onMouseMoveCapture':\n case 'onMouseUp':\n case 'onMouseUpCapture':\n case 'onMouseEnter':\n return !!(props.disabled && isInteractive(type));\n\n default:\n return false;\n }\n}\n/**\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @return {?function} The stored callback.\n */\n\n\nfunction getListener(inst, registrationName) {\n // TODO: shouldPreventMouseEvent is DOM-specific and definitely should not\n // live here; needs to be moved to a better place soon\n var stateNode = inst.stateNode;\n\n if (!stateNode) {\n // Work in progress (ex: onload events in incremental mode).\n return null;\n }\n\n var props = getFiberCurrentPropsFromNode(stateNode);\n\n if (!props) {\n // Work in progress.\n return null;\n }\n\n var listener = props[registrationName];\n\n if (shouldPreventMouseEvent(registrationName, inst.type, props)) {\n return null;\n }\n\n if (listener && typeof listener !== 'function') {\n throw new Error(\"Expected `\" + registrationName + \"` listener to be a function, instead got a value of `\" + typeof listener + \"` type.\");\n }\n\n return listener;\n}\n\nfunction listenerAtPhase(inst, event, propagationPhase) {\n var registrationName = event._reactName;\n\n if (propagationPhase === 'captured') {\n registrationName += 'Capture';\n }\n\n return getListener(inst, registrationName);\n}\n\nfunction accumulateDispatches(inst, ignoredDirection, event) {\n if (inst && event && event._reactName) {\n var registrationName = event._reactName;\n var listener = getListener(inst, registrationName);\n\n if (listener) {\n if (event._dispatchListeners == null) {\n event._dispatchListeners = [];\n }\n\n if (event._dispatchInstances == null) {\n event._dispatchInstances = [];\n }\n\n event._dispatchListeners.push(listener);\n\n event._dispatchInstances.push(inst);\n }\n }\n}\n\nfunction accumulateDirectionalDispatches(inst, phase, event) {\n {\n if (!inst) {\n error('Dispatching inst must not be null');\n }\n }\n\n var listener = listenerAtPhase(inst, event, phase);\n\n if (listener) {\n if (event._dispatchListeners == null) {\n event._dispatchListeners = [];\n }\n\n if (event._dispatchInstances == null) {\n event._dispatchInstances = [];\n }\n\n event._dispatchListeners.push(listener);\n\n event._dispatchInstances.push(inst);\n }\n}\n\nfunction accumulateDirectDispatchesSingle(event) {\n if (event && event._reactName) {\n accumulateDispatches(event._targetInst, null, event);\n }\n}\n\nfunction accumulateTwoPhaseDispatchesSingle(event) {\n if (event && event._reactName) {\n traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event);\n }\n} // End of inline\n\n\nvar Simulate = {};\nvar directDispatchEventTypes = new Set(['mouseEnter', 'mouseLeave', 'pointerEnter', 'pointerLeave']);\n/**\n * Exports:\n *\n * - `Simulate.click(Element)`\n * - `Simulate.mouseMove(Element)`\n * - `Simulate.change(Element)`\n * - ... (All keys from event plugin `eventTypes` objects)\n */\n\nfunction makeSimulator(eventType) {\n return function (domNode, eventData) {\n if (React.isValidElement(domNode)) {\n throw new Error('TestUtils.Simulate expected a DOM node as the first argument but received ' + 'a React element. Pass the DOM node you wish to simulate the event on instead. ' + 'Note that TestUtils.Simulate will not work if you are using shallow rendering.');\n }\n\n if (isCompositeComponent(domNode)) {\n throw new Error('TestUtils.Simulate expected a DOM node as the first argument but received ' + 'a component instance. Pass the DOM node you wish to simulate the event on instead.');\n }\n\n var reactName = 'on' + eventType[0].toUpperCase() + eventType.slice(1);\n var fakeNativeEvent = new Event();\n fakeNativeEvent.target = domNode;\n fakeNativeEvent.type = eventType.toLowerCase();\n var targetInst = getInstanceFromNode(domNode);\n var event = new SyntheticEvent(reactName, fakeNativeEvent.type, targetInst, fakeNativeEvent, domNode); // Since we aren't using pooling, always persist the event. This will make\n // sure it's marked and won't warn when setting additional properties.\n\n event.persist();\n assign(event, eventData);\n\n if (directDispatchEventTypes.has(eventType)) {\n accumulateDirectDispatchesSingle(event);\n } else {\n accumulateTwoPhaseDispatchesSingle(event);\n }\n\n ReactDOM.unstable_batchedUpdates(function () {\n // Normally extractEvent enqueues a state restore, but we'll just always\n // do that since we're by-passing it here.\n enqueueStateRestore(domNode);\n executeDispatchesAndRelease(event);\n rethrowCaughtError();\n });\n restoreStateIfNeeded();\n };\n} // A one-time snapshot with no plans to update. We'll probably want to deprecate Simulate API.\n\n\nvar simulatedEventTypes = ['blur', 'cancel', 'click', 'close', 'contextMenu', 'copy', 'cut', 'auxClick', 'doubleClick', 'dragEnd', 'dragStart', 'drop', 'focus', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'mouseDown', 'mouseUp', 'paste', 'pause', 'play', 'pointerCancel', 'pointerDown', 'pointerUp', 'rateChange', 'reset', 'resize', 'seeked', 'submit', 'touchCancel', 'touchEnd', 'touchStart', 'volumeChange', 'drag', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'mouseMove', 'mouseOut', 'mouseOver', 'pointerMove', 'pointerOut', 'pointerOver', 'scroll', 'toggle', 'touchMove', 'wheel', 'abort', 'animationEnd', 'animationIteration', 'animationStart', 'canPlay', 'canPlayThrough', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'gotPointerCapture', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'lostPointerCapture', 'playing', 'progress', 'seeking', 'stalled', 'suspend', 'timeUpdate', 'transitionEnd', 'waiting', 'mouseEnter', 'mouseLeave', 'pointerEnter', 'pointerLeave', 'change', 'select', 'beforeInput', 'compositionEnd', 'compositionStart', 'compositionUpdate'];\n\nfunction buildSimulators() {\n simulatedEventTypes.forEach(function (eventType) {\n Simulate[eventType] = makeSimulator(eventType);\n });\n}\n\nbuildSimulators();\nvar didWarnAboutUsingAct = false;\nvar act = function actWithWarning(callback) {\n {\n if (!didWarnAboutUsingAct) {\n didWarnAboutUsingAct = true;\n\n error('`ReactDOMTestUtils.act` is deprecated in favor of `React.act`. ' + 'Import `act` from `react` instead of `react-dom/test-utils`. ' + 'See https://react.dev/warnings/react-dom-test-utils for more info.');\n }\n }\n\n return reactAct(callback);\n} ;\n\nexports.Simulate = Simulate;\nexports.act = act;\nexports.findAllInRenderedTree = findAllInRenderedTree;\nexports.findRenderedComponentWithType = findRenderedComponentWithType;\nexports.findRenderedDOMComponentWithClass = findRenderedDOMComponentWithClass;\nexports.findRenderedDOMComponentWithTag = findRenderedDOMComponentWithTag;\nexports.isCompositeComponent = isCompositeComponent;\nexports.isCompositeComponentWithType = isCompositeComponentWithType;\nexports.isDOMComponent = isDOMComponent;\nexports.isDOMComponentElement = isDOMComponentElement;\nexports.isElement = isElement;\nexports.isElementOfType = isElementOfType;\nexports.mockComponent = mockComponent;\nexports.nativeTouchData = nativeTouchData;\nexports.renderIntoDocument = renderIntoDocument;\nexports.scryRenderedComponentsWithType = scryRenderedComponentsWithType;\nexports.scryRenderedDOMComponentsWithClass = scryRenderedDOMComponentsWithClass;\nexports.scryRenderedDOMComponentsWithTag = scryRenderedDOMComponentsWithTag;\nexports.traverseTwoPhase = traverseTwoPhase;\n })();\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"script","externalDependencies":[]}