1 |
- {"ast":null,"code":"/** @license React vundefined\n * react-refresh-runtime.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'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function () {\n 'use strict'; // ATTENTION\n // When adding new symbols to this file,\n // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n // The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n // nor polyfill, then a plain number is used for performance.\n\n var REACT_ELEMENT_TYPE = 0xeac7;\n var REACT_PORTAL_TYPE = 0xeaca;\n var REACT_FRAGMENT_TYPE = 0xeacb;\n var REACT_STRICT_MODE_TYPE = 0xeacc;\n var REACT_PROFILER_TYPE = 0xead2;\n var REACT_PROVIDER_TYPE = 0xeacd;\n var REACT_CONTEXT_TYPE = 0xeace;\n var REACT_FORWARD_REF_TYPE = 0xead0;\n var REACT_SUSPENSE_TYPE = 0xead1;\n var REACT_SUSPENSE_LIST_TYPE = 0xead8;\n var REACT_MEMO_TYPE = 0xead3;\n var REACT_LAZY_TYPE = 0xead4;\n var REACT_SCOPE_TYPE = 0xead7;\n var REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\n var REACT_OFFSCREEN_TYPE = 0xeae2;\n var REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\n var REACT_CACHE_TYPE = 0xeae4;\n\n if (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n REACT_FRAGMENT_TYPE = symbolFor('react.fragment');\n REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');\n REACT_PROFILER_TYPE = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n REACT_SUSPENSE_TYPE = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n REACT_CACHE_TYPE = symbolFor('react.cache');\n }\n\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map; // We never remove these associations.\n // It's OK to reference families, but use WeakMap/Set for types.\n\n var allFamiliesByID = new Map();\n var allFamiliesByType = new PossiblyWeakMap();\n var allSignaturesByType = new PossiblyWeakMap(); // This WeakMap is read by React, so we only put families\n // that have actually been edited here. This keeps checks fast.\n // $FlowIssue\n\n var updatedFamiliesByType = new PossiblyWeakMap(); // This is cleared on every performReactRefresh() call.\n // It is an array of [Family, NextType] tuples.\n\n var pendingUpdates = []; // This is injected by the renderer via DevTools global hook.\n\n var helpersByRendererID = new Map();\n var helpersByRoot = new Map(); // We keep track of mounted roots so we can schedule updates.\n\n var mountedRoots = new Set(); // If a root captures an error, we remember it so we can retry on edit.\n\n var failedRoots = new Set(); // In environments that support WeakMap, we also remember the last element for every root.\n // It needs to be weak because we do this even for roots that failed to mount.\n // If there is no WeakMap, we won't attempt to do retrying.\n // $FlowIssue\n\n var rootElements = // $FlowIssue\n typeof WeakMap === 'function' ? new WeakMap() : null;\n var isPerformingRefresh = false;\n\n function computeFullKey(signature) {\n if (signature.fullKey !== null) {\n return signature.fullKey;\n }\n\n var fullKey = signature.ownKey;\n var hooks;\n\n try {\n hooks = signature.getCustomHooks();\n } catch (err) {\n // This can happen in an edge case, e.g. if expression like Foo.useSomething\n // depends on Foo which is lazily initialized during rendering.\n // In that case just assume we'll have to remount.\n signature.forceReset = true;\n signature.fullKey = fullKey;\n return fullKey;\n }\n\n for (var i = 0; i < hooks.length; i++) {\n var hook = hooks[i];\n\n if (typeof hook !== 'function') {\n // Something's wrong. Assume we need to remount.\n signature.forceReset = true;\n signature.fullKey = fullKey;\n return fullKey;\n }\n\n var nestedHookSignature = allSignaturesByType.get(hook);\n\n if (nestedHookSignature === undefined) {\n // No signature means Hook wasn't in the source code, e.g. in a library.\n // We'll skip it because we can assume it won't change during this session.\n continue;\n }\n\n var nestedHookKey = computeFullKey(nestedHookSignature);\n\n if (nestedHookSignature.forceReset) {\n signature.forceReset = true;\n }\n\n fullKey += '\\n---\\n' + nestedHookKey;\n }\n\n signature.fullKey = fullKey;\n return fullKey;\n }\n\n function haveEqualSignatures(prevType, nextType) {\n var prevSignature = allSignaturesByType.get(prevType);\n var nextSignature = allSignaturesByType.get(nextType);\n\n if (prevSignature === undefined && nextSignature === undefined) {\n return true;\n }\n\n if (prevSignature === undefined || nextSignature === undefined) {\n return false;\n }\n\n if (computeFullKey(prevSignature) !== computeFullKey(nextSignature)) {\n return false;\n }\n\n if (nextSignature.forceReset) {\n return false;\n }\n\n return true;\n }\n\n function isReactClass(type) {\n return type.prototype && type.prototype.isReactComponent;\n }\n\n function canPreserveStateBetween(prevType, nextType) {\n if (isReactClass(prevType) || isReactClass(nextType)) {\n return false;\n }\n\n if (haveEqualSignatures(prevType, nextType)) {\n return true;\n }\n\n return false;\n }\n\n function resolveFamily(type) {\n // Only check updated types to keep lookups fast.\n return updatedFamiliesByType.get(type);\n } // If we didn't care about IE11, we could use new Map/Set(iterable).\n\n\n function cloneMap(map) {\n var clone = new Map();\n map.forEach(function (value, key) {\n clone.set(key, value);\n });\n return clone;\n }\n\n function cloneSet(set) {\n var clone = new Set();\n set.forEach(function (value) {\n clone.add(value);\n });\n return clone;\n } // This is a safety mechanism to protect against rogue getters and Proxies.\n\n\n function getProperty(object, property) {\n try {\n return object[property];\n } catch (err) {\n // Intentionally ignore.\n return undefined;\n }\n }\n\n function performReactRefresh() {\n if (pendingUpdates.length === 0) {\n return null;\n }\n\n if (isPerformingRefresh) {\n return null;\n }\n\n isPerformingRefresh = true;\n\n try {\n var staleFamilies = new Set();\n var updatedFamilies = new Set();\n var updates = pendingUpdates;\n pendingUpdates = [];\n updates.forEach(function (_ref) {\n var family = _ref[0],\n nextType = _ref[1]; // Now that we got a real edit, we can create associations\n // that will be read by the React reconciler.\n\n var prevType = family.current;\n updatedFamiliesByType.set(prevType, family);\n updatedFamiliesByType.set(nextType, family);\n family.current = nextType; // Determine whether this should be a re-render or a re-mount.\n\n if (canPreserveStateBetween(prevType, nextType)) {\n updatedFamilies.add(family);\n } else {\n staleFamilies.add(family);\n }\n }); // TODO: rename these fields to something more meaningful.\n\n var update = {\n updatedFamilies: updatedFamilies,\n // Families that will re-render preserving state\n staleFamilies: staleFamilies // Families that will be remounted\n\n };\n helpersByRendererID.forEach(function (helpers) {\n // Even if there are no roots, set the handler on first update.\n // This ensures that if *new* roots are mounted, they'll use the resolve handler.\n helpers.setRefreshHandler(resolveFamily);\n });\n var didError = false;\n var firstError = null; // We snapshot maps and sets that are mutated during commits.\n // If we don't do this, there is a risk they will be mutated while\n // we iterate over them. For example, trying to recover a failed root\n // may cause another root to be added to the failed list -- an infinite loop.\n\n var failedRootsSnapshot = cloneSet(failedRoots);\n var mountedRootsSnapshot = cloneSet(mountedRoots);\n var helpersByRootSnapshot = cloneMap(helpersByRoot);\n failedRootsSnapshot.forEach(function (root) {\n var helpers = helpersByRootSnapshot.get(root);\n\n if (helpers === undefined) {\n throw new Error('Could not find helpers for a root. This is a bug in React Refresh.');\n }\n\n if (!failedRoots.has(root)) {// No longer failed.\n }\n\n if (rootElements === null) {\n return;\n }\n\n if (!rootElements.has(root)) {\n return;\n }\n\n var element = rootElements.get(root);\n\n try {\n helpers.scheduleRoot(root, element);\n } catch (err) {\n if (!didError) {\n didError = true;\n firstError = err;\n } // Keep trying other roots.\n\n }\n });\n mountedRootsSnapshot.forEach(function (root) {\n var helpers = helpersByRootSnapshot.get(root);\n\n if (helpers === undefined) {\n throw new Error('Could not find helpers for a root. This is a bug in React Refresh.');\n }\n\n if (!mountedRoots.has(root)) {// No longer mounted.\n }\n\n try {\n helpers.scheduleRefresh(root, update);\n } catch (err) {\n if (!didError) {\n didError = true;\n firstError = err;\n } // Keep trying other roots.\n\n }\n });\n\n if (didError) {\n throw firstError;\n }\n\n return update;\n } finally {\n isPerformingRefresh = false;\n }\n }\n\n function register(type, id) {\n {\n if (type === null) {\n return;\n }\n\n if (typeof type !== 'function' && typeof type !== 'object') {\n return;\n } // This can happen in an edge case, e.g. if we register\n // return value of a HOC but it returns a cached component.\n // Ignore anything but the first registration for each type.\n\n\n if (allFamiliesByType.has(type)) {\n return;\n } // Create family or remember to update it.\n // None of this bookkeeping affects reconciliation\n // until the first performReactRefresh() call above.\n\n\n var family = allFamiliesByID.get(id);\n\n if (family === undefined) {\n family = {\n current: type\n };\n allFamiliesByID.set(id, family);\n } else {\n pendingUpdates.push([family, type]);\n }\n\n allFamiliesByType.set(type, family); // Visit inner types because we might not have registered them.\n\n if (typeof type === 'object' && type !== null) {\n switch (getProperty(type, '$$typeof')) {\n case REACT_FORWARD_REF_TYPE:\n register(type.render, id + '$render');\n break;\n\n case REACT_MEMO_TYPE:\n register(type.type, id + '$type');\n break;\n }\n }\n }\n }\n\n function setSignature(type, key) {\n var forceReset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var getCustomHooks = arguments.length > 3 ? arguments[3] : undefined;\n {\n if (!allSignaturesByType.has(type)) {\n allSignaturesByType.set(type, {\n forceReset: forceReset,\n ownKey: key,\n fullKey: null,\n getCustomHooks: getCustomHooks || function () {\n return [];\n }\n });\n } // Visit inner types because we might not have signed them.\n\n\n if (typeof type === 'object' && type !== null) {\n switch (getProperty(type, '$$typeof')) {\n case REACT_FORWARD_REF_TYPE:\n setSignature(type.render, key, forceReset, getCustomHooks);\n break;\n\n case REACT_MEMO_TYPE:\n setSignature(type.type, key, forceReset, getCustomHooks);\n break;\n }\n }\n }\n } // This is lazily called during first render for a type.\n // It captures Hook list at that time so inline requires don't break comparisons.\n\n\n function collectCustomHooksForSignature(type) {\n {\n var signature = allSignaturesByType.get(type);\n\n if (signature !== undefined) {\n computeFullKey(signature);\n }\n }\n }\n\n function getFamilyByID(id) {\n {\n return allFamiliesByID.get(id);\n }\n }\n\n function getFamilyByType(type) {\n {\n return allFamiliesByType.get(type);\n }\n }\n\n function findAffectedHostInstances(families) {\n {\n var affectedInstances = new Set();\n mountedRoots.forEach(function (root) {\n var helpers = helpersByRoot.get(root);\n\n if (helpers === undefined) {\n throw new Error('Could not find helpers for a root. This is a bug in React Refresh.');\n }\n\n var instancesForRoot = helpers.findHostInstancesForRefresh(root, families);\n instancesForRoot.forEach(function (inst) {\n affectedInstances.add(inst);\n });\n });\n return affectedInstances;\n }\n }\n\n function injectIntoGlobalHook(globalObject) {\n {\n // For React Native, the global hook will be set up by require('react-devtools-core').\n // That code will run before us. So we need to monkeypatch functions on existing hook.\n // For React Web, the global hook will be set up by the extension.\n // This will also run before us.\n var hook = globalObject.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n\n if (hook === undefined) {\n // However, if there is no DevTools extension, we'll need to set up the global hook ourselves.\n // Note that in this case it's important that renderer code runs *after* this method call.\n // Otherwise, the renderer will think that there is no global hook, and won't do the injection.\n var nextID = 0;\n globalObject.__REACT_DEVTOOLS_GLOBAL_HOOK__ = hook = {\n renderers: new Map(),\n supportsFiber: true,\n inject: function (injected) {\n return nextID++;\n },\n onScheduleFiberRoot: function (id, root, children) {},\n onCommitFiberRoot: function (id, root, maybePriorityLevel, didError) {},\n onCommitFiberUnmount: function () {}\n };\n }\n\n if (hook.isDisabled) {\n // This isn't a real property on the hook, but it can be set to opt out\n // of DevTools integration and associated warnings and logs.\n // Using console['warn'] to evade Babel and ESLint\n console['warn']('Something has shimmed the React DevTools global hook (__REACT_DEVTOOLS_GLOBAL_HOOK__). ' + 'Fast Refresh is not compatible with this shim and will be disabled.');\n return;\n } // Here, we just want to get a reference to scheduleRefresh.\n\n\n var oldInject = hook.inject;\n\n hook.inject = function (injected) {\n var id = oldInject.apply(this, arguments);\n\n if (typeof injected.scheduleRefresh === 'function' && typeof injected.setRefreshHandler === 'function') {\n // This version supports React Refresh.\n helpersByRendererID.set(id, injected);\n }\n\n return id;\n }; // Do the same for any already injected roots.\n // This is useful if ReactDOM has already been initialized.\n // https://github.com/facebook/react/issues/17626\n\n\n hook.renderers.forEach(function (injected, id) {\n if (typeof injected.scheduleRefresh === 'function' && typeof injected.setRefreshHandler === 'function') {\n // This version supports React Refresh.\n helpersByRendererID.set(id, injected);\n }\n }); // We also want to track currently mounted roots.\n\n var oldOnCommitFiberRoot = hook.onCommitFiberRoot;\n\n var oldOnScheduleFiberRoot = hook.onScheduleFiberRoot || function () {};\n\n hook.onScheduleFiberRoot = function (id, root, children) {\n if (!isPerformingRefresh) {\n // If it was intentionally scheduled, don't attempt to restore.\n // This includes intentionally scheduled unmounts.\n failedRoots.delete(root);\n\n if (rootElements !== null) {\n rootElements.set(root, children);\n }\n }\n\n return oldOnScheduleFiberRoot.apply(this, arguments);\n };\n\n hook.onCommitFiberRoot = function (id, root, maybePriorityLevel, didError) {\n var helpers = helpersByRendererID.get(id);\n\n if (helpers !== undefined) {\n helpersByRoot.set(root, helpers);\n var current = root.current;\n var alternate = current.alternate; // We need to determine whether this root has just (un)mounted.\n // This logic is copy-pasted from similar logic in the DevTools backend.\n // If this breaks with some refactoring, you'll want to update DevTools too.\n\n if (alternate !== null) {\n var wasMounted = alternate.memoizedState != null && alternate.memoizedState.element != null;\n var isMounted = current.memoizedState != null && current.memoizedState.element != null;\n\n if (!wasMounted && isMounted) {\n // Mount a new root.\n mountedRoots.add(root);\n failedRoots.delete(root);\n } else if (wasMounted && isMounted) ;else if (wasMounted && !isMounted) {\n // Unmount an existing root.\n mountedRoots.delete(root);\n\n if (didError) {\n // We'll remount it on future edits.\n failedRoots.add(root);\n } else {\n helpersByRoot.delete(root);\n }\n } else if (!wasMounted && !isMounted) {\n if (didError) {\n // We'll remount it on future edits.\n failedRoots.add(root);\n }\n }\n } else {\n // Mount a new root.\n mountedRoots.add(root);\n }\n } // Always call the decorated DevTools hook.\n\n\n return oldOnCommitFiberRoot.apply(this, arguments);\n };\n }\n }\n\n function hasUnrecoverableErrors() {\n // TODO: delete this after removing dependency in RN.\n return false;\n } // Exposed for testing.\n\n\n function _getMountedRootCount() {\n {\n return mountedRoots.size;\n }\n } // This is a wrapper over more primitive functions for setting signature.\n // Signatures let us decide whether the Hook order has changed on refresh.\n //\n // This function is intended to be used as a transform target, e.g.:\n // var _s = createSignatureFunctionForTransform()\n //\n // function Hello() {\n // const [foo, setFoo] = useState(0);\n // const value = useCustomHook();\n // _s(); /* Call without arguments triggers collecting the custom Hook list.\n // * This doesn't happen during the module evaluation because we\n // * don't want to change the module order with inline requires.\n // * Next calls are noops. */\n // return <h1>Hi</h1>;\n // }\n //\n // /* Call with arguments attaches the signature to the type: */\n // _s(\n // Hello,\n // 'useState{[foo, setFoo]}(0)',\n // () => [useCustomHook], /* Lazy to avoid triggering inline requires */\n // );\n\n\n function createSignatureFunctionForTransform() {\n {\n var savedType;\n var hasCustomHooks;\n var didCollectHooks = false;\n return function (type, key, forceReset, getCustomHooks) {\n if (typeof key === 'string') {\n // We're in the initial phase that associates signatures\n // with the functions. Note this may be called multiple times\n // in HOC chains like _s(hoc1(_s(hoc2(_s(actualFunction))))).\n if (!savedType) {\n // We're in the innermost call, so this is the actual type.\n savedType = type;\n hasCustomHooks = typeof getCustomHooks === 'function';\n } // Set the signature for all types (even wrappers!) in case\n // they have no signatures of their own. This is to prevent\n // problems like https://github.com/facebook/react/issues/20417.\n\n\n if (type != null && (typeof type === 'function' || typeof type === 'object')) {\n setSignature(type, key, forceReset, getCustomHooks);\n }\n\n return type;\n } else {\n // We're in the _s() call without arguments, which means\n // this is the time to collect custom Hook signatures.\n // Only do this once. This path is hot and runs *inside* every render!\n if (!didCollectHooks && hasCustomHooks) {\n didCollectHooks = true;\n collectCustomHooksForSignature(savedType);\n }\n }\n };\n }\n }\n\n function isLikelyComponentType(type) {\n {\n switch (typeof type) {\n case 'function':\n {\n // First, deal with classes.\n if (type.prototype != null) {\n if (type.prototype.isReactComponent) {\n // React class.\n return true;\n }\n\n var ownNames = Object.getOwnPropertyNames(type.prototype);\n\n if (ownNames.length > 1 || ownNames[0] !== 'constructor') {\n // This looks like a class.\n return false;\n } // eslint-disable-next-line no-proto\n\n\n if (type.prototype.__proto__ !== Object.prototype) {\n // It has a superclass.\n return false;\n } // Pass through.\n // This looks like a regular function with empty prototype.\n\n } // For plain functions and arrows, use name as a heuristic.\n\n\n var name = type.name || type.displayName;\n return typeof name === 'string' && /^[A-Z]/.test(name);\n }\n\n case 'object':\n {\n if (type != null) {\n switch (getProperty(type, '$$typeof')) {\n case REACT_FORWARD_REF_TYPE:\n case REACT_MEMO_TYPE:\n // Definitely React components.\n return true;\n\n default:\n return false;\n }\n }\n\n return false;\n }\n\n default:\n {\n return false;\n }\n }\n }\n }\n\n exports._getMountedRootCount = _getMountedRootCount;\n exports.collectCustomHooksForSignature = collectCustomHooksForSignature;\n exports.createSignatureFunctionForTransform = createSignatureFunctionForTransform;\n exports.findAffectedHostInstances = findAffectedHostInstances;\n exports.getFamilyByID = getFamilyByID;\n exports.getFamilyByType = getFamilyByType;\n exports.hasUnrecoverableErrors = hasUnrecoverableErrors;\n exports.injectIntoGlobalHook = injectIntoGlobalHook;\n exports.isLikelyComponentType = isLikelyComponentType;\n exports.performReactRefresh = performReactRefresh;\n exports.register = register;\n exports.setSignature = setSignature;\n })();\n}","map":{"version":3,"sources":["/home/ilya/projects/NIX/temp/react/store/node_modules/react-refresh/cjs/react-refresh-runtime.development.js"],"names":["process","env","NODE_ENV","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_SCOPE_TYPE","REACT_DEBUG_TRACING_MODE_TYPE","REACT_OFFSCREEN_TYPE","REACT_LEGACY_HIDDEN_TYPE","REACT_CACHE_TYPE","Symbol","for","symbolFor","PossiblyWeakMap","WeakMap","Map","allFamiliesByID","allFamiliesByType","allSignaturesByType","updatedFamiliesByType","pendingUpdates","helpersByRendererID","helpersByRoot","mountedRoots","Set","failedRoots","rootElements","isPerformingRefresh","computeFullKey","signature","fullKey","ownKey","hooks","getCustomHooks","err","forceReset","i","length","hook","nestedHookSignature","get","undefined","nestedHookKey","haveEqualSignatures","prevType","nextType","prevSignature","nextSignature","isReactClass","type","prototype","isReactComponent","canPreserveStateBetween","resolveFamily","cloneMap","map","clone","forEach","value","key","set","cloneSet","add","getProperty","object","property","performReactRefresh","staleFamilies","updatedFamilies","updates","_ref","family","current","update","helpers","setRefreshHandler","didError","firstError","failedRootsSnapshot","mountedRootsSnapshot","helpersByRootSnapshot","root","Error","has","element","scheduleRoot","scheduleRefresh","register","id","push","render","setSignature","arguments","collectCustomHooksForSignature","getFamilyByID","getFamilyByType","findAffectedHostInstances","families","affectedInstances","instancesForRoot","findHostInstancesForRefresh","inst","injectIntoGlobalHook","globalObject","__REACT_DEVTOOLS_GLOBAL_HOOK__","nextID","renderers","supportsFiber","inject","injected","onScheduleFiberRoot","children","onCommitFiberRoot","maybePriorityLevel","onCommitFiberUnmount","isDisabled","console","oldInject","apply","oldOnCommitFiberRoot","oldOnScheduleFiberRoot","delete","alternate","wasMounted","memoizedState","isMounted","hasUnrecoverableErrors","_getMountedRootCount","size","createSignatureFunctionForTransform","savedType","hasCustomHooks","didCollectHooks","isLikelyComponentType","ownNames","Object","getOwnPropertyNames","__proto__","name","displayName","test","exports"],"mappings":"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","sourcesContent":["/** @license React vundefined\n * react-refresh-runtime.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// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = 0xeac7;\nvar REACT_PORTAL_TYPE = 0xeaca;\nvar REACT_FRAGMENT_TYPE = 0xeacb;\nvar REACT_STRICT_MODE_TYPE = 0xeacc;\nvar REACT_PROFILER_TYPE = 0xead2;\nvar REACT_PROVIDER_TYPE = 0xeacd;\nvar REACT_CONTEXT_TYPE = 0xeace;\nvar REACT_FORWARD_REF_TYPE = 0xead0;\nvar REACT_SUSPENSE_TYPE = 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = 0xead8;\nvar REACT_MEMO_TYPE = 0xead3;\nvar REACT_LAZY_TYPE = 0xead4;\nvar REACT_SCOPE_TYPE = 0xead7;\nvar REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\nvar REACT_OFFSCREEN_TYPE = 0xeae2;\nvar REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\nvar REACT_CACHE_TYPE = 0xeae4;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n REACT_FRAGMENT_TYPE = symbolFor('react.fragment');\n REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');\n REACT_PROFILER_TYPE = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n REACT_SUSPENSE_TYPE = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n REACT_CACHE_TYPE = symbolFor('react.cache');\n}\n\nvar PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map; // We never remove these associations.\n// It's OK to reference families, but use WeakMap/Set for types.\n\nvar allFamiliesByID = new Map();\nvar allFamiliesByType = new PossiblyWeakMap();\nvar allSignaturesByType = new PossiblyWeakMap(); // This WeakMap is read by React, so we only put families\n// that have actually been edited here. This keeps checks fast.\n// $FlowIssue\n\nvar updatedFamiliesByType = new PossiblyWeakMap(); // This is cleared on every performReactRefresh() call.\n// It is an array of [Family, NextType] tuples.\n\nvar pendingUpdates = []; // This is injected by the renderer via DevTools global hook.\n\nvar helpersByRendererID = new Map();\nvar helpersByRoot = new Map(); // We keep track of mounted roots so we can schedule updates.\n\nvar mountedRoots = new Set(); // If a root captures an error, we remember it so we can retry on edit.\n\nvar failedRoots = new Set(); // In environments that support WeakMap, we also remember the last element for every root.\n// It needs to be weak because we do this even for roots that failed to mount.\n// If there is no WeakMap, we won't attempt to do retrying.\n// $FlowIssue\n\nvar rootElements = // $FlowIssue\ntypeof WeakMap === 'function' ? new WeakMap() : null;\nvar isPerformingRefresh = false;\n\nfunction computeFullKey(signature) {\n if (signature.fullKey !== null) {\n return signature.fullKey;\n }\n\n var fullKey = signature.ownKey;\n var hooks;\n\n try {\n hooks = signature.getCustomHooks();\n } catch (err) {\n // This can happen in an edge case, e.g. if expression like Foo.useSomething\n // depends on Foo which is lazily initialized during rendering.\n // In that case just assume we'll have to remount.\n signature.forceReset = true;\n signature.fullKey = fullKey;\n return fullKey;\n }\n\n for (var i = 0; i < hooks.length; i++) {\n var hook = hooks[i];\n\n if (typeof hook !== 'function') {\n // Something's wrong. Assume we need to remount.\n signature.forceReset = true;\n signature.fullKey = fullKey;\n return fullKey;\n }\n\n var nestedHookSignature = allSignaturesByType.get(hook);\n\n if (nestedHookSignature === undefined) {\n // No signature means Hook wasn't in the source code, e.g. in a library.\n // We'll skip it because we can assume it won't change during this session.\n continue;\n }\n\n var nestedHookKey = computeFullKey(nestedHookSignature);\n\n if (nestedHookSignature.forceReset) {\n signature.forceReset = true;\n }\n\n fullKey += '\\n---\\n' + nestedHookKey;\n }\n\n signature.fullKey = fullKey;\n return fullKey;\n}\n\nfunction haveEqualSignatures(prevType, nextType) {\n var prevSignature = allSignaturesByType.get(prevType);\n var nextSignature = allSignaturesByType.get(nextType);\n\n if (prevSignature === undefined && nextSignature === undefined) {\n return true;\n }\n\n if (prevSignature === undefined || nextSignature === undefined) {\n return false;\n }\n\n if (computeFullKey(prevSignature) !== computeFullKey(nextSignature)) {\n return false;\n }\n\n if (nextSignature.forceReset) {\n return false;\n }\n\n return true;\n}\n\nfunction isReactClass(type) {\n return type.prototype && type.prototype.isReactComponent;\n}\n\nfunction canPreserveStateBetween(prevType, nextType) {\n if (isReactClass(prevType) || isReactClass(nextType)) {\n return false;\n }\n\n if (haveEqualSignatures(prevType, nextType)) {\n return true;\n }\n\n return false;\n}\n\nfunction resolveFamily(type) {\n // Only check updated types to keep lookups fast.\n return updatedFamiliesByType.get(type);\n} // If we didn't care about IE11, we could use new Map/Set(iterable).\n\n\nfunction cloneMap(map) {\n var clone = new Map();\n map.forEach(function (value, key) {\n clone.set(key, value);\n });\n return clone;\n}\n\nfunction cloneSet(set) {\n var clone = new Set();\n set.forEach(function (value) {\n clone.add(value);\n });\n return clone;\n} // This is a safety mechanism to protect against rogue getters and Proxies.\n\n\nfunction getProperty(object, property) {\n try {\n return object[property];\n } catch (err) {\n // Intentionally ignore.\n return undefined;\n }\n}\n\nfunction performReactRefresh() {\n\n if (pendingUpdates.length === 0) {\n return null;\n }\n\n if (isPerformingRefresh) {\n return null;\n }\n\n isPerformingRefresh = true;\n\n try {\n var staleFamilies = new Set();\n var updatedFamilies = new Set();\n var updates = pendingUpdates;\n pendingUpdates = [];\n updates.forEach(function (_ref) {\n var family = _ref[0],\n nextType = _ref[1];\n // Now that we got a real edit, we can create associations\n // that will be read by the React reconciler.\n var prevType = family.current;\n updatedFamiliesByType.set(prevType, family);\n updatedFamiliesByType.set(nextType, family);\n family.current = nextType; // Determine whether this should be a re-render or a re-mount.\n\n if (canPreserveStateBetween(prevType, nextType)) {\n updatedFamilies.add(family);\n } else {\n staleFamilies.add(family);\n }\n }); // TODO: rename these fields to something more meaningful.\n\n var update = {\n updatedFamilies: updatedFamilies,\n // Families that will re-render preserving state\n staleFamilies: staleFamilies // Families that will be remounted\n\n };\n helpersByRendererID.forEach(function (helpers) {\n // Even if there are no roots, set the handler on first update.\n // This ensures that if *new* roots are mounted, they'll use the resolve handler.\n helpers.setRefreshHandler(resolveFamily);\n });\n var didError = false;\n var firstError = null; // We snapshot maps and sets that are mutated during commits.\n // If we don't do this, there is a risk they will be mutated while\n // we iterate over them. For example, trying to recover a failed root\n // may cause another root to be added to the failed list -- an infinite loop.\n\n var failedRootsSnapshot = cloneSet(failedRoots);\n var mountedRootsSnapshot = cloneSet(mountedRoots);\n var helpersByRootSnapshot = cloneMap(helpersByRoot);\n failedRootsSnapshot.forEach(function (root) {\n var helpers = helpersByRootSnapshot.get(root);\n\n if (helpers === undefined) {\n throw new Error('Could not find helpers for a root. This is a bug in React Refresh.');\n }\n\n if (!failedRoots.has(root)) {// No longer failed.\n }\n\n if (rootElements === null) {\n return;\n }\n\n if (!rootElements.has(root)) {\n return;\n }\n\n var element = rootElements.get(root);\n\n try {\n helpers.scheduleRoot(root, element);\n } catch (err) {\n if (!didError) {\n didError = true;\n firstError = err;\n } // Keep trying other roots.\n\n }\n });\n mountedRootsSnapshot.forEach(function (root) {\n var helpers = helpersByRootSnapshot.get(root);\n\n if (helpers === undefined) {\n throw new Error('Could not find helpers for a root. This is a bug in React Refresh.');\n }\n\n if (!mountedRoots.has(root)) {// No longer mounted.\n }\n\n try {\n helpers.scheduleRefresh(root, update);\n } catch (err) {\n if (!didError) {\n didError = true;\n firstError = err;\n } // Keep trying other roots.\n\n }\n });\n\n if (didError) {\n throw firstError;\n }\n\n return update;\n } finally {\n isPerformingRefresh = false;\n }\n}\nfunction register(type, id) {\n {\n if (type === null) {\n return;\n }\n\n if (typeof type !== 'function' && typeof type !== 'object') {\n return;\n } // This can happen in an edge case, e.g. if we register\n // return value of a HOC but it returns a cached component.\n // Ignore anything but the first registration for each type.\n\n\n if (allFamiliesByType.has(type)) {\n return;\n } // Create family or remember to update it.\n // None of this bookkeeping affects reconciliation\n // until the first performReactRefresh() call above.\n\n\n var family = allFamiliesByID.get(id);\n\n if (family === undefined) {\n family = {\n current: type\n };\n allFamiliesByID.set(id, family);\n } else {\n pendingUpdates.push([family, type]);\n }\n\n allFamiliesByType.set(type, family); // Visit inner types because we might not have registered them.\n\n if (typeof type === 'object' && type !== null) {\n switch (getProperty(type, '$$typeof')) {\n case REACT_FORWARD_REF_TYPE:\n register(type.render, id + '$render');\n break;\n\n case REACT_MEMO_TYPE:\n register(type.type, id + '$type');\n break;\n }\n }\n }\n}\nfunction setSignature(type, key) {\n var forceReset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var getCustomHooks = arguments.length > 3 ? arguments[3] : undefined;\n\n {\n if (!allSignaturesByType.has(type)) {\n allSignaturesByType.set(type, {\n forceReset: forceReset,\n ownKey: key,\n fullKey: null,\n getCustomHooks: getCustomHooks || function () {\n return [];\n }\n });\n } // Visit inner types because we might not have signed them.\n\n\n if (typeof type === 'object' && type !== null) {\n switch (getProperty(type, '$$typeof')) {\n case REACT_FORWARD_REF_TYPE:\n setSignature(type.render, key, forceReset, getCustomHooks);\n break;\n\n case REACT_MEMO_TYPE:\n setSignature(type.type, key, forceReset, getCustomHooks);\n break;\n }\n }\n }\n} // This is lazily called during first render for a type.\n// It captures Hook list at that time so inline requires don't break comparisons.\n\nfunction collectCustomHooksForSignature(type) {\n {\n var signature = allSignaturesByType.get(type);\n\n if (signature !== undefined) {\n computeFullKey(signature);\n }\n }\n}\nfunction getFamilyByID(id) {\n {\n return allFamiliesByID.get(id);\n }\n}\nfunction getFamilyByType(type) {\n {\n return allFamiliesByType.get(type);\n }\n}\nfunction findAffectedHostInstances(families) {\n {\n var affectedInstances = new Set();\n mountedRoots.forEach(function (root) {\n var helpers = helpersByRoot.get(root);\n\n if (helpers === undefined) {\n throw new Error('Could not find helpers for a root. This is a bug in React Refresh.');\n }\n\n var instancesForRoot = helpers.findHostInstancesForRefresh(root, families);\n instancesForRoot.forEach(function (inst) {\n affectedInstances.add(inst);\n });\n });\n return affectedInstances;\n }\n}\nfunction injectIntoGlobalHook(globalObject) {\n {\n // For React Native, the global hook will be set up by require('react-devtools-core').\n // That code will run before us. So we need to monkeypatch functions on existing hook.\n // For React Web, the global hook will be set up by the extension.\n // This will also run before us.\n var hook = globalObject.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n\n if (hook === undefined) {\n // However, if there is no DevTools extension, we'll need to set up the global hook ourselves.\n // Note that in this case it's important that renderer code runs *after* this method call.\n // Otherwise, the renderer will think that there is no global hook, and won't do the injection.\n var nextID = 0;\n globalObject.__REACT_DEVTOOLS_GLOBAL_HOOK__ = hook = {\n renderers: new Map(),\n supportsFiber: true,\n inject: function (injected) {\n return nextID++;\n },\n onScheduleFiberRoot: function (id, root, children) {},\n onCommitFiberRoot: function (id, root, maybePriorityLevel, didError) {},\n onCommitFiberUnmount: function () {}\n };\n }\n\n if (hook.isDisabled) {\n // This isn't a real property on the hook, but it can be set to opt out\n // of DevTools integration and associated warnings and logs.\n // Using console['warn'] to evade Babel and ESLint\n console['warn']('Something has shimmed the React DevTools global hook (__REACT_DEVTOOLS_GLOBAL_HOOK__). ' + 'Fast Refresh is not compatible with this shim and will be disabled.');\n return;\n } // Here, we just want to get a reference to scheduleRefresh.\n\n\n var oldInject = hook.inject;\n\n hook.inject = function (injected) {\n var id = oldInject.apply(this, arguments);\n\n if (typeof injected.scheduleRefresh === 'function' && typeof injected.setRefreshHandler === 'function') {\n // This version supports React Refresh.\n helpersByRendererID.set(id, injected);\n }\n\n return id;\n }; // Do the same for any already injected roots.\n // This is useful if ReactDOM has already been initialized.\n // https://github.com/facebook/react/issues/17626\n\n\n hook.renderers.forEach(function (injected, id) {\n if (typeof injected.scheduleRefresh === 'function' && typeof injected.setRefreshHandler === 'function') {\n // This version supports React Refresh.\n helpersByRendererID.set(id, injected);\n }\n }); // We also want to track currently mounted roots.\n\n var oldOnCommitFiberRoot = hook.onCommitFiberRoot;\n\n var oldOnScheduleFiberRoot = hook.onScheduleFiberRoot || function () {};\n\n hook.onScheduleFiberRoot = function (id, root, children) {\n if (!isPerformingRefresh) {\n // If it was intentionally scheduled, don't attempt to restore.\n // This includes intentionally scheduled unmounts.\n failedRoots.delete(root);\n\n if (rootElements !== null) {\n rootElements.set(root, children);\n }\n }\n\n return oldOnScheduleFiberRoot.apply(this, arguments);\n };\n\n hook.onCommitFiberRoot = function (id, root, maybePriorityLevel, didError) {\n var helpers = helpersByRendererID.get(id);\n\n if (helpers !== undefined) {\n helpersByRoot.set(root, helpers);\n var current = root.current;\n var alternate = current.alternate; // We need to determine whether this root has just (un)mounted.\n // This logic is copy-pasted from similar logic in the DevTools backend.\n // If this breaks with some refactoring, you'll want to update DevTools too.\n\n if (alternate !== null) {\n var wasMounted = alternate.memoizedState != null && alternate.memoizedState.element != null;\n var isMounted = current.memoizedState != null && current.memoizedState.element != null;\n\n if (!wasMounted && isMounted) {\n // Mount a new root.\n mountedRoots.add(root);\n failedRoots.delete(root);\n } else if (wasMounted && isMounted) ; else if (wasMounted && !isMounted) {\n // Unmount an existing root.\n mountedRoots.delete(root);\n\n if (didError) {\n // We'll remount it on future edits.\n failedRoots.add(root);\n } else {\n helpersByRoot.delete(root);\n }\n } else if (!wasMounted && !isMounted) {\n if (didError) {\n // We'll remount it on future edits.\n failedRoots.add(root);\n }\n }\n } else {\n // Mount a new root.\n mountedRoots.add(root);\n }\n } // Always call the decorated DevTools hook.\n\n\n return oldOnCommitFiberRoot.apply(this, arguments);\n };\n }\n}\nfunction hasUnrecoverableErrors() {\n // TODO: delete this after removing dependency in RN.\n return false;\n} // Exposed for testing.\n\nfunction _getMountedRootCount() {\n {\n return mountedRoots.size;\n }\n} // This is a wrapper over more primitive functions for setting signature.\n// Signatures let us decide whether the Hook order has changed on refresh.\n//\n// This function is intended to be used as a transform target, e.g.:\n// var _s = createSignatureFunctionForTransform()\n//\n// function Hello() {\n// const [foo, setFoo] = useState(0);\n// const value = useCustomHook();\n// _s(); /* Call without arguments triggers collecting the custom Hook list.\n// * This doesn't happen during the module evaluation because we\n// * don't want to change the module order with inline requires.\n// * Next calls are noops. */\n// return <h1>Hi</h1>;\n// }\n//\n// /* Call with arguments attaches the signature to the type: */\n// _s(\n// Hello,\n// 'useState{[foo, setFoo]}(0)',\n// () => [useCustomHook], /* Lazy to avoid triggering inline requires */\n// );\n\nfunction createSignatureFunctionForTransform() {\n {\n var savedType;\n var hasCustomHooks;\n var didCollectHooks = false;\n return function (type, key, forceReset, getCustomHooks) {\n if (typeof key === 'string') {\n // We're in the initial phase that associates signatures\n // with the functions. Note this may be called multiple times\n // in HOC chains like _s(hoc1(_s(hoc2(_s(actualFunction))))).\n if (!savedType) {\n // We're in the innermost call, so this is the actual type.\n savedType = type;\n hasCustomHooks = typeof getCustomHooks === 'function';\n } // Set the signature for all types (even wrappers!) in case\n // they have no signatures of their own. This is to prevent\n // problems like https://github.com/facebook/react/issues/20417.\n\n\n if (type != null && (typeof type === 'function' || typeof type === 'object')) {\n setSignature(type, key, forceReset, getCustomHooks);\n }\n\n return type;\n } else {\n // We're in the _s() call without arguments, which means\n // this is the time to collect custom Hook signatures.\n // Only do this once. This path is hot and runs *inside* every render!\n if (!didCollectHooks && hasCustomHooks) {\n didCollectHooks = true;\n collectCustomHooksForSignature(savedType);\n }\n }\n };\n }\n}\nfunction isLikelyComponentType(type) {\n {\n switch (typeof type) {\n case 'function':\n {\n // First, deal with classes.\n if (type.prototype != null) {\n if (type.prototype.isReactComponent) {\n // React class.\n return true;\n }\n\n var ownNames = Object.getOwnPropertyNames(type.prototype);\n\n if (ownNames.length > 1 || ownNames[0] !== 'constructor') {\n // This looks like a class.\n return false;\n } // eslint-disable-next-line no-proto\n\n\n if (type.prototype.__proto__ !== Object.prototype) {\n // It has a superclass.\n return false;\n } // Pass through.\n // This looks like a regular function with empty prototype.\n\n } // For plain functions and arrows, use name as a heuristic.\n\n\n var name = type.name || type.displayName;\n return typeof name === 'string' && /^[A-Z]/.test(name);\n }\n\n case 'object':\n {\n if (type != null) {\n switch (getProperty(type, '$$typeof')) {\n case REACT_FORWARD_REF_TYPE:\n case REACT_MEMO_TYPE:\n // Definitely React components.\n return true;\n\n default:\n return false;\n }\n }\n\n return false;\n }\n\n default:\n {\n return false;\n }\n }\n }\n}\n\nexports._getMountedRootCount = _getMountedRootCount;\nexports.collectCustomHooksForSignature = collectCustomHooksForSignature;\nexports.createSignatureFunctionForTransform = createSignatureFunctionForTransform;\nexports.findAffectedHostInstances = findAffectedHostInstances;\nexports.getFamilyByID = getFamilyByID;\nexports.getFamilyByType = getFamilyByType;\nexports.hasUnrecoverableErrors = hasUnrecoverableErrors;\nexports.injectIntoGlobalHook = injectIntoGlobalHook;\nexports.isLikelyComponentType = isLikelyComponentType;\nexports.performReactRefresh = performReactRefresh;\nexports.register = register;\nexports.setSignature = setSignature;\n })();\n}\n"]},"metadata":{},"sourceType":"script"}
|