UNPKG

react-easy-password-validation

Version:

React component for validation input password via specified rules set

1,162 lines (1,135 loc) 1.78 MB
// modules are defined as an array // [ module function, map of requires ] // // map of requires is short require name -> numeric require // // anything defined in a previous bundle is accessed via the // orig method which is the require for previous bundles (function (modules, entry, mainEntry, parcelRequireName, globalName) { /* eslint-disable no-undef */ var globalObject = typeof globalThis !== 'undefined' ? globalThis : typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {}; /* eslint-enable no-undef */ // Save the require from previous bundle to this closure if any var previousRequire = typeof globalObject[parcelRequireName] === 'function' && globalObject[parcelRequireName]; var cache = previousRequire.cache || {}; // Do not use `require` to prevent Webpack from trying to bundle this call var nodeRequire = typeof module !== 'undefined' && typeof module.require === 'function' && module.require.bind(module); function newRequire(name, jumped) { if (!cache[name]) { if (!modules[name]) { // if we cannot find the module within our internal map or // cache jump to the current global require ie. the last bundle // that was added to the page. var currentRequire = typeof globalObject[parcelRequireName] === 'function' && globalObject[parcelRequireName]; if (!jumped && currentRequire) { return currentRequire(name, true); } // If there are other bundles on this page the require from the // previous one is saved to 'previousRequire'. Repeat this as // many times as there are bundles until the module is found or // we exhaust the require chain. if (previousRequire) { return previousRequire(name, true); } // Try the node require function if it exists. if (nodeRequire && typeof name === 'string') { return nodeRequire(name); } var err = new Error("Cannot find module '" + name + "'"); err.code = 'MODULE_NOT_FOUND'; throw err; } localRequire.resolve = resolve; localRequire.cache = {}; var module = (cache[name] = new newRequire.Module(name)); modules[name][0].call( module.exports, localRequire, module, module.exports, this ); } return cache[name].exports; function localRequire(x) { var res = localRequire.resolve(x); return res === false ? {} : newRequire(res); } function resolve(x) { var id = modules[name][1][x]; return id != null ? id : x; } } function Module(moduleName) { this.id = moduleName; this.bundle = newRequire; this.exports = {}; } newRequire.isParcelRequire = true; newRequire.Module = Module; newRequire.modules = modules; newRequire.cache = cache; newRequire.parent = previousRequire; newRequire.register = function (id, exports) { modules[id] = [ function (require, module) { module.exports = exports; }, {}, ]; }; Object.defineProperty(newRequire, 'root', { get: function () { return globalObject[parcelRequireName]; }, }); globalObject[parcelRequireName] = newRequire; for (var i = 0; i < entry.length; i++) { newRequire(entry[i]); } if (mainEntry) { // Expose entry point to Node, AMD or browser globals // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js var mainExports = newRequire(mainEntry); // CommonJS if (typeof exports === 'object' && typeof module !== 'undefined') { module.exports = mainExports; // RequireJS } else if (typeof define === 'function' && define.amd) { define(function () { return mainExports; }); // <script> } else if (globalName) { this[globalName] = mainExports; } } })({"9p54t":[function(require,module,exports) { var global = arguments[3]; var HMR_HOST = null; var HMR_PORT = null; var HMR_SECURE = false; var HMR_ENV_HASH = "d6ea1d42532a7575"; module.bundle.HMR_BUNDLE_ID = "4d94d0802d3ace14"; "use strict"; /* global HMR_HOST, HMR_PORT, HMR_ENV_HASH, HMR_SECURE, chrome, browser, __parcel__import__, __parcel__importScripts__, ServiceWorkerGlobalScope */ /*:: import type { HMRAsset, HMRMessage, } from '@parcel/reporter-dev-server/src/HMRServer.js'; interface ParcelRequire { (string): mixed; cache: {|[string]: ParcelModule|}; hotData: {|[string]: mixed|}; Module: any; parent: ?ParcelRequire; isParcelRequire: true; modules: {|[string]: [Function, {|[string]: string|}]|}; HMR_BUNDLE_ID: string; root: ParcelRequire; } interface ParcelModule { hot: {| data: mixed, accept(cb: (Function) => void): void, dispose(cb: (mixed) => void): void, // accept(deps: Array<string> | string, cb: (Function) => void): void, // decline(): void, _acceptCallbacks: Array<(Function) => void>, _disposeCallbacks: Array<(mixed) => void>, |}; } interface ExtensionContext { runtime: {| reload(): void, getURL(url: string): string; getManifest(): {manifest_version: number, ...}; |}; } declare var module: {bundle: ParcelRequire, ...}; declare var HMR_HOST: string; declare var HMR_PORT: string; declare var HMR_ENV_HASH: string; declare var HMR_SECURE: boolean; declare var chrome: ExtensionContext; declare var browser: ExtensionContext; declare var __parcel__import__: (string) => Promise<void>; declare var __parcel__importScripts__: (string) => Promise<void>; declare var globalThis: typeof self; declare var ServiceWorkerGlobalScope: Object; */ var OVERLAY_ID = "__parcel__error__overlay__"; var OldModule = module.bundle.Module; function Module(moduleName) { OldModule.call(this, moduleName); this.hot = { data: module.bundle.hotData[moduleName], _acceptCallbacks: [], _disposeCallbacks: [], accept: function(fn) { this._acceptCallbacks.push(fn || function() {}); }, dispose: function(fn) { this._disposeCallbacks.push(fn); } }; module.bundle.hotData[moduleName] = undefined; } module.bundle.Module = Module; module.bundle.hotData = {}; var checkedAssets /*: {|[string]: boolean|} */ , assetsToDispose /*: Array<[ParcelRequire, string]> */ , assetsToAccept /*: Array<[ParcelRequire, string]> */ ; function getHostname() { return HMR_HOST || (location.protocol.indexOf("http") === 0 ? location.hostname : "localhost"); } function getPort() { return HMR_PORT || location.port; } // eslint-disable-next-line no-redeclare var parent = module.bundle.parent; if ((!parent || !parent.isParcelRequire) && typeof WebSocket !== "undefined") { var hostname = getHostname(); var port = getPort(); var protocol = HMR_SECURE || location.protocol == "https:" && !/localhost|127.0.0.1|0.0.0.0/.test(hostname) ? "wss" : "ws"; var ws; try { ws = new WebSocket(protocol + "://" + hostname + (port ? ":" + port : "") + "/"); } catch (err) { if (err.message) console.error(err.message); ws = {}; } // Web extension context var extCtx = typeof browser === "undefined" ? typeof chrome === "undefined" ? null : chrome : browser; // Safari doesn't support sourceURL in error stacks. // eval may also be disabled via CSP, so do a quick check. var supportsSourceURL = false; try { (0, eval)('throw new Error("test"); //# sourceURL=test.js'); } catch (err) { supportsSourceURL = err.stack.includes("test.js"); } // $FlowFixMe ws.onmessage = async function(event /*: {data: string, ...} */ ) { checkedAssets = {} /*: {|[string]: boolean|} */ ; assetsToAccept = []; assetsToDispose = []; var data /*: HMRMessage */ = JSON.parse(event.data); if (data.type === "update") { // Remove error overlay if there is one if (typeof document !== "undefined") removeErrorOverlay(); let assets = data.assets.filter((asset)=>asset.envHash === HMR_ENV_HASH); // Handle HMR Update let handled = assets.every((asset)=>{ return asset.type === "css" || asset.type === "js" && hmrAcceptCheck(module.bundle.root, asset.id, asset.depsByBundle); }); if (handled) { console.clear(); // Dispatch custom event so other runtimes (e.g React Refresh) are aware. if (typeof window !== "undefined" && typeof CustomEvent !== "undefined") window.dispatchEvent(new CustomEvent("parcelhmraccept")); await hmrApplyUpdates(assets); // Dispose all old assets. let processedAssets = {} /*: {|[string]: boolean|} */ ; for(let i = 0; i < assetsToDispose.length; i++){ let id = assetsToDispose[i][1]; if (!processedAssets[id]) { hmrDispose(assetsToDispose[i][0], id); processedAssets[id] = true; } } // Run accept callbacks. This will also re-execute other disposed assets in topological order. processedAssets = {}; for(let i = 0; i < assetsToAccept.length; i++){ let id = assetsToAccept[i][1]; if (!processedAssets[id]) { hmrAccept(assetsToAccept[i][0], id); processedAssets[id] = true; } } } else fullReload(); } if (data.type === "error") { // Log parcel errors to console for (let ansiDiagnostic of data.diagnostics.ansi){ let stack = ansiDiagnostic.codeframe ? ansiDiagnostic.codeframe : ansiDiagnostic.stack; console.error("\uD83D\uDEA8 [parcel]: " + ansiDiagnostic.message + "\n" + stack + "\n\n" + ansiDiagnostic.hints.join("\n")); } if (typeof document !== "undefined") { // Render the fancy html overlay removeErrorOverlay(); var overlay = createErrorOverlay(data.diagnostics.html); // $FlowFixMe document.body.appendChild(overlay); } } }; ws.onerror = function(e) { if (e.message) console.error(e.message); }; ws.onclose = function() { console.warn("[parcel] \uD83D\uDEA8 Connection to the HMR server was lost"); }; } function removeErrorOverlay() { var overlay = document.getElementById(OVERLAY_ID); if (overlay) { overlay.remove(); console.log("[parcel] \u2728 Error resolved"); } } function createErrorOverlay(diagnostics) { var overlay = document.createElement("div"); overlay.id = OVERLAY_ID; let errorHTML = '<div style="background: black; opacity: 0.85; font-size: 16px; color: white; position: fixed; height: 100%; width: 100%; top: 0px; left: 0px; padding: 30px; font-family: Menlo, Consolas, monospace; z-index: 9999;">'; for (let diagnostic of diagnostics){ let stack = diagnostic.frames.length ? diagnostic.frames.reduce((p, frame)=>{ return `${p} <a href="/__parcel_launch_editor?file=${encodeURIComponent(frame.location)}" style="text-decoration: underline; color: #888" onclick="fetch(this.href); return false">${frame.location}</a> ${frame.code}`; }, "") : diagnostic.stack; errorHTML += ` <div> <div style="font-size: 18px; font-weight: bold; margin-top: 20px;"> \u{1F6A8} ${diagnostic.message} </div> <pre>${stack}</pre> <div> ${diagnostic.hints.map((hint)=>"<div>\uD83D\uDCA1 " + hint + "</div>").join("")} </div> ${diagnostic.documentation ? `<div>\u{1F4DD} <a style="color: violet" href="${diagnostic.documentation}" target="_blank">Learn more</a></div>` : ""} </div> `; } errorHTML += "</div>"; overlay.innerHTML = errorHTML; return overlay; } function fullReload() { if ("reload" in location) location.reload(); else if (extCtx && extCtx.runtime && extCtx.runtime.reload) extCtx.runtime.reload(); } function getParents(bundle, id) /*: Array<[ParcelRequire, string]> */ { var modules = bundle.modules; if (!modules) return []; var parents = []; var k, d, dep; for(k in modules)for(d in modules[k][1]){ dep = modules[k][1][d]; if (dep === id || Array.isArray(dep) && dep[dep.length - 1] === id) parents.push([ bundle, k ]); } if (bundle.parent) parents = parents.concat(getParents(bundle.parent, id)); return parents; } function updateLink(link) { var href = link.getAttribute("href"); if (!href) return; var newLink = link.cloneNode(); newLink.onload = function() { if (link.parentNode !== null) // $FlowFixMe link.parentNode.removeChild(link); }; newLink.setAttribute("href", // $FlowFixMe href.split("?")[0] + "?" + Date.now()); // $FlowFixMe link.parentNode.insertBefore(newLink, link.nextSibling); } var cssTimeout = null; function reloadCSS() { if (cssTimeout) return; cssTimeout = setTimeout(function() { var links = document.querySelectorAll('link[rel="stylesheet"]'); for(var i = 0; i < links.length; i++){ // $FlowFixMe[incompatible-type] var href /*: string */ = links[i].getAttribute("href"); var hostname = getHostname(); var servedFromHMRServer = hostname === "localhost" ? new RegExp("^(https?:\\/\\/(0.0.0.0|127.0.0.1)|localhost):" + getPort()).test(href) : href.indexOf(hostname + ":" + getPort()); var absolute = /^https?:\/\//i.test(href) && href.indexOf(location.origin) !== 0 && !servedFromHMRServer; if (!absolute) updateLink(links[i]); } cssTimeout = null; }, 50); } function hmrDownload(asset) { if (asset.type === "js") { if (typeof document !== "undefined") { let script = document.createElement("script"); script.src = asset.url + "?t=" + Date.now(); if (asset.outputFormat === "esmodule") script.type = "module"; return new Promise((resolve, reject)=>{ var _document$head; script.onload = ()=>resolve(script); script.onerror = reject; (_document$head = document.head) === null || _document$head === void 0 || _document$head.appendChild(script); }); } else if (typeof importScripts === "function") { // Worker scripts if (asset.outputFormat === "esmodule") return import(asset.url + "?t=" + Date.now()); else return new Promise((resolve, reject)=>{ try { importScripts(asset.url + "?t=" + Date.now()); resolve(); } catch (err) { reject(err); } }); } } } async function hmrApplyUpdates(assets) { global.parcelHotUpdate = Object.create(null); let scriptsToRemove; try { // If sourceURL comments aren't supported in eval, we need to load // the update from the dev server over HTTP so that stack traces // are correct in errors/logs. This is much slower than eval, so // we only do it if needed (currently just Safari). // https://bugs.webkit.org/show_bug.cgi?id=137297 // This path is also taken if a CSP disallows eval. if (!supportsSourceURL) { let promises = assets.map((asset)=>{ var _hmrDownload; return (_hmrDownload = hmrDownload(asset)) === null || _hmrDownload === void 0 ? void 0 : _hmrDownload.catch((err)=>{ // Web extension fix if (extCtx && extCtx.runtime && extCtx.runtime.getManifest().manifest_version == 3 && typeof ServiceWorkerGlobalScope != "undefined" && global instanceof ServiceWorkerGlobalScope) { extCtx.runtime.reload(); return; } throw err; }); }); scriptsToRemove = await Promise.all(promises); } assets.forEach(function(asset) { hmrApply(module.bundle.root, asset); }); } finally{ delete global.parcelHotUpdate; if (scriptsToRemove) scriptsToRemove.forEach((script)=>{ if (script) { var _document$head2; (_document$head2 = document.head) === null || _document$head2 === void 0 || _document$head2.removeChild(script); } }); } } function hmrApply(bundle /*: ParcelRequire */ , asset /*: HMRAsset */ ) { var modules = bundle.modules; if (!modules) return; if (asset.type === "css") reloadCSS(); else if (asset.type === "js") { let deps = asset.depsByBundle[bundle.HMR_BUNDLE_ID]; if (deps) { if (modules[asset.id]) { // Remove dependencies that are removed and will become orphaned. // This is necessary so that if the asset is added back again, the cache is gone, and we prevent a full page reload. let oldDeps = modules[asset.id][1]; for(let dep in oldDeps)if (!deps[dep] || deps[dep] !== oldDeps[dep]) { let id = oldDeps[dep]; let parents = getParents(module.bundle.root, id); if (parents.length === 1) hmrDelete(module.bundle.root, id); } } if (supportsSourceURL) // Global eval. We would use `new Function` here but browser // support for source maps is better with eval. (0, eval)(asset.output); // $FlowFixMe let fn = global.parcelHotUpdate[asset.id]; modules[asset.id] = [ fn, deps ]; } else if (bundle.parent) hmrApply(bundle.parent, asset); } } function hmrDelete(bundle, id) { let modules = bundle.modules; if (!modules) return; if (modules[id]) { // Collect dependencies that will become orphaned when this module is deleted. let deps = modules[id][1]; let orphans = []; for(let dep in deps){ let parents = getParents(module.bundle.root, deps[dep]); if (parents.length === 1) orphans.push(deps[dep]); } // Delete the module. This must be done before deleting dependencies in case of circular dependencies. delete modules[id]; delete bundle.cache[id]; // Now delete the orphans. orphans.forEach((id)=>{ hmrDelete(module.bundle.root, id); }); } else if (bundle.parent) hmrDelete(bundle.parent, id); } function hmrAcceptCheck(bundle /*: ParcelRequire */ , id /*: string */ , depsByBundle /*: ?{ [string]: { [string]: string } }*/ ) { if (hmrAcceptCheckOne(bundle, id, depsByBundle)) return true; // Traverse parents breadth first. All possible ancestries must accept the HMR update, or we'll reload. let parents = getParents(module.bundle.root, id); let accepted = false; while(parents.length > 0){ let v = parents.shift(); let a = hmrAcceptCheckOne(v[0], v[1], null); if (a) // If this parent accepts, stop traversing upward, but still consider siblings. accepted = true; else { // Otherwise, queue the parents in the next level upward. let p = getParents(module.bundle.root, v[1]); if (p.length === 0) { // If there are no parents, then we've reached an entry without accepting. Reload. accepted = false; break; } parents.push(...p); } } return accepted; } function hmrAcceptCheckOne(bundle /*: ParcelRequire */ , id /*: string */ , depsByBundle /*: ?{ [string]: { [string]: string } }*/ ) { var modules = bundle.modules; if (!modules) return; if (depsByBundle && !depsByBundle[bundle.HMR_BUNDLE_ID]) { // If we reached the root bundle without finding where the asset should go, // there's nothing to do. Mark as "accepted" so we don't reload the page. if (!bundle.parent) return true; return hmrAcceptCheck(bundle.parent, id, depsByBundle); } if (checkedAssets[id]) return true; checkedAssets[id] = true; var cached = bundle.cache[id]; assetsToDispose.push([ bundle, id ]); if (!cached || cached.hot && cached.hot._acceptCallbacks.length) { assetsToAccept.push([ bundle, id ]); return true; } } function hmrDispose(bundle /*: ParcelRequire */ , id /*: string */ ) { var cached = bundle.cache[id]; bundle.hotData[id] = {}; if (cached && cached.hot) cached.hot.data = bundle.hotData[id]; if (cached && cached.hot && cached.hot._disposeCallbacks.length) cached.hot._disposeCallbacks.forEach(function(cb) { cb(bundle.hotData[id]); }); delete bundle.cache[id]; } function hmrAccept(bundle /*: ParcelRequire */ , id /*: string */ ) { // Execute the module. bundle(id); // Run the accept callbacks in the new version of the module. var cached = bundle.cache[id]; if (cached && cached.hot && cached.hot._acceptCallbacks.length) cached.hot._acceptCallbacks.forEach(function(cb) { var assetsToAlsoAccept = cb(function() { return getParents(module.bundle.root, id); }); if (assetsToAlsoAccept && assetsToAccept.length) { assetsToAlsoAccept.forEach(function(a) { hmrDispose(a[0], a[1]); }); // $FlowFixMe[method-unbinding] assetsToAccept.push.apply(assetsToAccept, assetsToAlsoAccept); } }); } },{}],"1xC6H":[function(require,module,exports) { var Refresh = require("6d18d6bd340e7473"); var ErrorOverlay = require("74ad5ea14201648c"); Refresh.injectIntoGlobalHook(window); window.$RefreshReg$ = function() {}; window.$RefreshSig$ = function() { return function(type) { return type; }; }; ErrorOverlay.setEditorHandler(function editorHandler(errorLocation) { let file = `${errorLocation.fileName}:${errorLocation.lineNumber || 1}:${errorLocation.colNumber || 1}`; fetch(`/__parcel_launch_editor?file=${encodeURIComponent(file)}`); }); ErrorOverlay.startReportingRuntimeErrors({ onError: function() {} }); window.addEventListener("parcelhmraccept", ()=>{ ErrorOverlay.dismissRuntimeErrors(); }); },{"6d18d6bd340e7473":"786KC","74ad5ea14201648c":"1dldy"}],"786KC":[function(require,module,exports) { "use strict"; module.exports = require("96622d495519d4e"); },{"96622d495519d4e":"hdge7"}],"hdge7":[function(require,module,exports) { /** @license React v0.9.0 * react-refresh-runtime.development.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ "use strict"; (function() { "use strict"; // ATTENTION // When adding new symbols to this file, // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols' // The Symbol used to tag the ReactElement-like types. If there is no native Symbol // nor polyfill, then a plain number is used for performance. var REACT_ELEMENT_TYPE = 0xeac7; var REACT_PORTAL_TYPE = 0xeaca; var REACT_FRAGMENT_TYPE = 0xeacb; var REACT_STRICT_MODE_TYPE = 0xeacc; var REACT_PROFILER_TYPE = 0xead2; var REACT_PROVIDER_TYPE = 0xeacd; var REACT_CONTEXT_TYPE = 0xeace; var REACT_FORWARD_REF_TYPE = 0xead0; var REACT_SUSPENSE_TYPE = 0xead1; var REACT_SUSPENSE_LIST_TYPE = 0xead8; var REACT_MEMO_TYPE = 0xead3; var REACT_LAZY_TYPE = 0xead4; var REACT_BLOCK_TYPE = 0xead9; var REACT_SERVER_BLOCK_TYPE = 0xeada; var REACT_FUNDAMENTAL_TYPE = 0xead5; var REACT_SCOPE_TYPE = 0xead7; var REACT_OPAQUE_ID_TYPE = 0xeae0; var REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1; var REACT_OFFSCREEN_TYPE = 0xeae2; var REACT_LEGACY_HIDDEN_TYPE = 0xeae3; if (typeof Symbol === "function" && Symbol.for) { var symbolFor = Symbol.for; REACT_ELEMENT_TYPE = symbolFor("react.element"); REACT_PORTAL_TYPE = symbolFor("react.portal"); REACT_FRAGMENT_TYPE = symbolFor("react.fragment"); REACT_STRICT_MODE_TYPE = symbolFor("react.strict_mode"); REACT_PROFILER_TYPE = symbolFor("react.profiler"); REACT_PROVIDER_TYPE = symbolFor("react.provider"); REACT_CONTEXT_TYPE = symbolFor("react.context"); REACT_FORWARD_REF_TYPE = symbolFor("react.forward_ref"); REACT_SUSPENSE_TYPE = symbolFor("react.suspense"); REACT_SUSPENSE_LIST_TYPE = symbolFor("react.suspense_list"); REACT_MEMO_TYPE = symbolFor("react.memo"); REACT_LAZY_TYPE = symbolFor("react.lazy"); REACT_BLOCK_TYPE = symbolFor("react.block"); REACT_SERVER_BLOCK_TYPE = symbolFor("react.server.block"); REACT_FUNDAMENTAL_TYPE = symbolFor("react.fundamental"); REACT_SCOPE_TYPE = symbolFor("react.scope"); REACT_OPAQUE_ID_TYPE = symbolFor("react.opaque.id"); REACT_DEBUG_TRACING_MODE_TYPE = symbolFor("react.debug_trace_mode"); REACT_OFFSCREEN_TYPE = symbolFor("react.offscreen"); REACT_LEGACY_HIDDEN_TYPE = symbolFor("react.legacy_hidden"); } var PossiblyWeakMap = typeof WeakMap === "function" ? WeakMap : Map; // We never remove these associations. // It's OK to reference families, but use WeakMap/Set for types. var allFamiliesByID = new Map(); var allFamiliesByType = new PossiblyWeakMap(); var allSignaturesByType = new PossiblyWeakMap(); // This WeakMap is read by React, so we only put families // that have actually been edited here. This keeps checks fast. // $FlowIssue var updatedFamiliesByType = new PossiblyWeakMap(); // This is cleared on every performReactRefresh() call. // It is an array of [Family, NextType] tuples. var pendingUpdates = []; // This is injected by the renderer via DevTools global hook. var helpersByRendererID = new Map(); var helpersByRoot = new Map(); // We keep track of mounted roots so we can schedule updates. var mountedRoots = new Set(); // If a root captures an error, we remember it so we can retry on edit. var failedRoots = new Set(); // In environments that support WeakMap, we also remember the last element for every root. // It needs to be weak because we do this even for roots that failed to mount. // If there is no WeakMap, we won't attempt to do retrying. // $FlowIssue var rootElements = typeof WeakMap === "function" ? new WeakMap() : null; var isPerformingRefresh = false; function computeFullKey(signature) { if (signature.fullKey !== null) return signature.fullKey; var fullKey = signature.ownKey; var hooks; try { hooks = signature.getCustomHooks(); } catch (err) { // This can happen in an edge case, e.g. if expression like Foo.useSomething // depends on Foo which is lazily initialized during rendering. // In that case just assume we'll have to remount. signature.forceReset = true; signature.fullKey = fullKey; return fullKey; } for(var i = 0; i < hooks.length; i++){ var hook = hooks[i]; if (typeof hook !== "function") { // Something's wrong. Assume we need to remount. signature.forceReset = true; signature.fullKey = fullKey; return fullKey; } var nestedHookSignature = allSignaturesByType.get(hook); if (nestedHookSignature === undefined) continue; var nestedHookKey = computeFullKey(nestedHookSignature); if (nestedHookSignature.forceReset) signature.forceReset = true; fullKey += "\n---\n" + nestedHookKey; } signature.fullKey = fullKey; return fullKey; } function haveEqualSignatures(prevType, nextType) { var prevSignature = allSignaturesByType.get(prevType); var nextSignature = allSignaturesByType.get(nextType); if (prevSignature === undefined && nextSignature === undefined) return true; if (prevSignature === undefined || nextSignature === undefined) return false; if (computeFullKey(prevSignature) !== computeFullKey(nextSignature)) return false; if (nextSignature.forceReset) return false; return true; } function isReactClass(type) { return type.prototype && type.prototype.isReactComponent; } function canPreserveStateBetween(prevType, nextType) { if (isReactClass(prevType) || isReactClass(nextType)) return false; if (haveEqualSignatures(prevType, nextType)) return true; return false; } function resolveFamily(type) { // Only check updated types to keep lookups fast. return updatedFamiliesByType.get(type); } // If we didn't care about IE11, we could use new Map/Set(iterable). function cloneMap(map) { var clone = new Map(); map.forEach(function(value, key) { clone.set(key, value); }); return clone; } function cloneSet(set) { var clone = new Set(); set.forEach(function(value) { clone.add(value); }); return clone; } function performReactRefresh() { if (pendingUpdates.length === 0) return null; if (isPerformingRefresh) return null; isPerformingRefresh = true; try { var staleFamilies = new Set(); var updatedFamilies = new Set(); var updates = pendingUpdates; pendingUpdates = []; updates.forEach(function(_ref) { var family = _ref[0], nextType = _ref[1]; // Now that we got a real edit, we can create associations // that will be read by the React reconciler. var prevType = family.current; updatedFamiliesByType.set(prevType, family); updatedFamiliesByType.set(nextType, family); family.current = nextType; // Determine whether this should be a re-render or a re-mount. if (canPreserveStateBetween(prevType, nextType)) updatedFamilies.add(family); else staleFamilies.add(family); }); // TODO: rename these fields to something more meaningful. var update = { updatedFamilies: updatedFamilies, // Families that will re-render preserving state staleFamilies: staleFamilies // Families that will be remounted }; helpersByRendererID.forEach(function(helpers) { // Even if there are no roots, set the handler on first update. // This ensures that if *new* roots are mounted, they'll use the resolve handler. helpers.setRefreshHandler(resolveFamily); }); var didError = false; var firstError = null; // We snapshot maps and sets that are mutated during commits. // If we don't do this, there is a risk they will be mutated while // we iterate over them. For example, trying to recover a failed root // may cause another root to be added to the failed list -- an infinite loop. var failedRootsSnapshot = cloneSet(failedRoots); var mountedRootsSnapshot = cloneSet(mountedRoots); var helpersByRootSnapshot = cloneMap(helpersByRoot); failedRootsSnapshot.forEach(function(root) { var helpers = helpersByRootSnapshot.get(root); if (helpers === undefined) throw new Error("Could not find helpers for a root. This is a bug in React Refresh."); failedRoots.has(root); if (rootElements === null) return; if (!rootElements.has(root)) return; var element = rootElements.get(root); try { helpers.scheduleRoot(root, element); } catch (err) { if (!didError) { didError = true; firstError = err; } // Keep trying other roots. } }); mountedRootsSnapshot.forEach(function(root) { var helpers = helpersByRootSnapshot.get(root); if (helpers === undefined) throw new Error("Could not find helpers for a root. This is a bug in React Refresh."); mountedRoots.has(root); try { helpers.scheduleRefresh(root, update); } catch (err) { if (!didError) { didError = true; firstError = err; } // Keep trying other roots. } }); if (didError) throw firstError; return update; } finally{ isPerformingRefresh = false; } } function register(type, id) { if (type === null) return; if (typeof type !== "function" && typeof type !== "object") return; // This can happen in an edge case, e.g. if we register // return value of a HOC but it returns a cached component. // Ignore anything but the first registration for each type. if (allFamiliesByType.has(type)) return; // Create family or remember to update it. // None of this bookkeeping affects reconciliation // until the first performReactRefresh() call above. var family = allFamiliesByID.get(id); if (family === undefined) { family = { current: type }; allFamiliesByID.set(id, family); } else pendingUpdates.push([ family, type ]); allFamiliesByType.set(type, family); // Visit inner types because we might not have registered them. if (typeof type === "object" && type !== null) switch(type.$$typeof){ case REACT_FORWARD_REF_TYPE: register(type.render, id + "$render"); break; case REACT_MEMO_TYPE: register(type.type, id + "$type"); break; } } function setSignature(type, key) { var forceReset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; var getCustomHooks = arguments.length > 3 ? arguments[3] : undefined; allSignaturesByType.set(type, { forceReset: forceReset, ownKey: key, fullKey: null, getCustomHooks: getCustomHooks || function() { return []; } }); } // This is lazily called during first render for a type. // It captures Hook list at that time so inline requires don't break comparisons. function collectCustomHooksForSignature(type) { var signature = allSignaturesByType.get(type); if (signature !== undefined) computeFullKey(signature); } function getFamilyByID(id) { return allFamiliesByID.get(id); } function getFamilyByType(type) { return allFamiliesByType.get(type); } function findAffectedHostInstances(families) { var affectedInstances = new Set(); mountedRoots.forEach(function(root) { var helpers = helpersByRoot.get(root); if (helpers === undefined) throw new Error("Could not find helpers for a root. This is a bug in React Refresh."); var instancesForRoot = helpers.findHostInstancesForRefresh(root, families); instancesForRoot.forEach(function(inst) { affectedInstances.add(inst); }); }); return affectedInstances; } function injectIntoGlobalHook(globalObject) { // For React Native, the global hook will be set up by require('react-devtools-core'). // That code will run before us. So we need to monkeypatch functions on existing hook. // For React Web, the global hook will be set up by the extension. // This will also run before us. var hook = globalObject.__REACT_DEVTOOLS_GLOBAL_HOOK__; if (hook === undefined) { // However, if there is no DevTools extension, we'll need to set up the global hook ourselves. // Note that in this case it's important that renderer code runs *after* this method call. // Otherwise, the renderer will think that there is no global hook, and won't do the injection. var nextID = 0; globalObject.__REACT_DEVTOOLS_GLOBAL_HOOK__ = hook = { renderers: new Map(), supportsFiber: true, inject: function(injected) { return nextID++; }, onScheduleFiberRoot: function(id, root, children) {}, onCommitFiberRoot: function(id, root, maybePriorityLevel, didError) {}, onCommitFiberUnmount: function() {} }; } // Here, we just want to get a reference to scheduleRefresh. var oldInject = hook.inject; hook.inject = function(injected) { var id = oldInject.apply(this, arguments); if (typeof injected.scheduleRefresh === "function" && typeof injected.setRefreshHandler === "function") // This version supports React Refresh. helpersByRendererID.set(id, injected); return id; }; // Do the same for any already injected roots. // This is useful if ReactDOM has already been initialized. // https://github.com/facebook/react/issues/17626 hook.renderers.forEach(function(injected, id) { if (typeof injected.scheduleRefresh === "function" && typeof injected.setRefreshHandler === "function") // This version supports React Refresh. helpersByRendererID.set(id, injected); }); // We also want to track currently mounted roots. var oldOnCommitFiberRoot = hook.onCommitFiberRoot; var oldOnScheduleFiberRoot = hook.onScheduleFiberRoot || function() {}; hook.onScheduleFiberRoot = function(id, root, children) { if (!isPerformingRefresh) { // If it was intentionally scheduled, don't attempt to restore. // This includes intentionally scheduled unmounts. failedRoots.delete(root); if (rootElements !== null) rootElements.set(root, children); } return oldOnScheduleFiberRoot.apply(this, arguments); }; hook.onCommitFiberRoot = function(id, root, maybePriorityLevel, didError) { var helpers = helpersByRendererID.get(id); if (helpers === undefined) return; helpersByRoot.set(root, helpers); var current = root.current; var alternate = current.alternate; // We need to determine whether this root has just (un)mounted. // This logic is copy-pasted from similar logic in the DevTools backend. // If this breaks with some refactoring, you'll want to update DevTools too. if (alternate !== null) { var wasMounted = alternate.memoizedState != null && alternate.memoizedState.element != null; var isMounted = current.memoizedState != null && current.memoizedState.element != null; if (!wasMounted && isMounted) { // Mount a new root. mountedRoots.add(root); failedRoots.delete(root); } else if (wasMounted && isMounted) ; else if (wasMounted && !isMounted) { // Unmount an existing root. mountedRoots.delete(root); if (didError) // We'll remount it on future edits. failedRoots.add(root); else helpersByRoot.delete(root); } else if (!wasMounted && !isMounted) { if (didError) // We'll remount it on future edits. failedRoots.add(root); } } else // Mount a new root. mountedRoots.add(root); return oldOnCommitFiberRoot.apply(this, arguments); }; } function hasUnrecoverableErrors() { // TODO: delete this after removing dependency in RN. return false; } // Exposed for testing. function _getMountedRootCount() { return mountedRoots.size; } // This is a wrapper over more primitive functions for setting signature. // Signatures let us decide whether the Hook order has changed on refresh. // // This function is intended to be used as a transform target, e.g.: // var _s = createSignatureFunctionForTransform() // // function Hello() { // const [foo, setFoo] = useState(0); // const value = useCustomHook(); // _s(); /* Second call triggers collecting the custom Hook list. // * This doesn't happen during the module evaluation because we // * don't want to change the module order with inline requires. // * Next calls are noops. */ // return <h1>Hi</h1>; // } // // /* First call specifies the signature: */ // _s( // Hello, // 'useState{[foo, setFoo]}(0)', // () => [useCustomHook], /* Lazy to avoid triggering inline requires */ // ); function createSignatureFunctionForTransform() { // We'll fill in the signature in two steps. // First, we'll know the signature itself. This happens outside the component. // Then, we'll know the references to custom Hooks. This happens inside the component. // After that, the returned function will be a fast path no-op. var status = "needsSignature"; var savedType; var hasCustomHooks; return function(type, key, forceReset, getCustomHooks) { switch(status){ case "needsSignature": if (type !== undefined) { // If we received an argument, this is the initial registration call. savedType = type; hasCustomHooks = typeof getCustomHooks === "function"; setSignature(type, key, forceReset, getCustomHooks); // The next call we expect is from inside a function, to fill in the custom Hooks. status = "needsCustomHooks"; } break; case "needsCustomHooks": if (hasCustomHooks) collectCustomHooksForSignature(savedType); status = "resolved"; break; } return type; }; } function isLikelyComponentType(type) { switch(typeof type){ case "function": // First, deal with classes. if (type.prototype != null) { if (type.prototype.isReactComponent) // React class. return true; var ownNames = Object.getOwnPropertyNames(type.prototype); if (ownNames.length > 1 || ownNames[0] !== "constructor") // This looks like a class. return false; // eslint-disable-next-line no-proto if (type.prototype.__proto__ !== Object.prototype) // It has a superclass. return false; // Pass through. // This looks like a regular function with empty prototype. } // For plain functions and arrows, use name as a heuristic. var name = type.name || type.displayName; return typeof name === "string" && /^[A-Z]/.test(name); case "object": if (type != null) switch(type.$$typeof){ case REACT_FORWARD_REF_TYPE: case REACT_MEMO_TYPE: // Definitely React components. return true; default: return false; } return false; default: return false; } } exports._getMountedRootCount = _getMountedRootCount; exports.collectCustomHooksForSignature = collectCustomHooksForSignature; exports.createSignatureFunctionForTransform = createSignatureFunctionForTransform; exports.findAffectedHostInstances = findAffectedHostInstances; exports.getFamilyByID = getFamilyByID; exports.getFamilyByType = getFamilyByType; exports.hasUnrecoverableErrors = hasUnrecoverableErrors; exports.injectIntoGlobalHook = injectIntoGlobalHook; exports.isLikelyComponentType = isLikelyComponentType; exports.performReactRefresh = performReactRefresh; exports.register = register; exports.setSignature = setSignature; })(); },{}],"1dldy":[function(require,module,exports) { var process = require("d1546958eb39fdcf"); !function(e, t) { module.exports = t(); }(window, function() { return function(e) { var t = {}; function r(n) { if (t[n]) return t[n].exports; var o = t[n] = { i: n, l: !1, exports: {} }; return e[n].call(o.exports, o, o.exports, r), o.l = !0, o.exports; } return r.m = e, r.c = t, r.d = function(e, t, n) { r.o(e, t) || Object.defineProperty(e, t, { enumerable: !0, get: n }); }, r.r = function(e) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 }); }, r.t = function(e, t) { if (1 & t && (e = r(e)), 8 & t) return e; if (4 & t && "object" == typeof e && e && e.__esModule) return e; var n = Object.create(null); if (r.r(n), Object.defineProperty(n, "default", { enumerable: !0, value: e }), 2 & t && "string" != typeof e) for(var o in e)r.d(n, o, (function(t) { return e[t]; }).bind(null, o)); return n; }, r.n = function(e) { var t = e && e.__esModule ? function() { return e.default; } : function() { return e; }; return r.d(t, "a", t), t; }, r.o = function(e, t) { return Object.prototype.hasOwnProperty.call(e, t); }, r.p = "", r(r.s = 15); }([ function(e, t, r) { e.exports = r(8); }, function(e, t) { t.getArg = function(e, t, r) { if (t in e) return e[t]; if (3 === arguments.length) return r; throw new Error('"' + t + '" is a required argument.'); }; var r = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/, n = /^data:.+\,.+$/; function o(e) { var t = e.match(r); return t ? { scheme: t[1], auth: t[2], host: t[3], port: t[4], path: t[5] } : null; } function a(e) { var t = ""; return e.scheme && (t += e.scheme + ":"), t += "//", e.auth && (t += e.auth + "@"), e.host && (t += e.host), e.port && (t += ":" + e.port), e.path && (t += e.path), t; } function i(e) { var r = e, n = o(e); if (n) { if (!n.path) return e; r = n.path; } for(var i, l = t.isAbsolute(r), u = r.split(/\/+/), c = 0, s = u.length - 1; s >= 0; s--)"." === (i = u[s]) ? u.splice(s, 1) : ".." === i ? c++ : c > 0 && ("" === i ? (u.splice(s + 1, c), c = 0) : (u.splice(s, 2), c--)); return "" === (r = u.join("/")) && (r = l ? "/" : "."), n ? (n.path = r, a(n)) : r; } t.urlParse = o, t.urlGenerate = a, t.normalize = i, t.join = function(e, t) { "" === e && (e = "."), "" === t && (t = "."); var r = o(t), l = o(e); if (l && (e = l.path || "/"), r && !r.scheme) return l && (r.scheme = l.scheme), a(r); if (r || t.match(n)) return t; if (l && !l.host && !l.path) return l.host = t, a(l); var u = "/" === t.charAt(0) ? t : i(e.replace(/\/+$/, "") + "/" + t); return l ? (l.path = u, a(l)) : u; }, t.isAbsolute = function(e) { return "/" === e.charAt(0) || !!e.match(r); }, t.relative = function(e, t) { "" === e && (e = "."), e = e.replace(/\/$/, ""); for(var r = 0; 0 !== t.indexOf(e + "/");){ var n = e.lastIndexOf("/"); if (n < 0) return t; if ((e = e.slice(0, n)).match(/^([^\/]+:\/)?\/*$/)) return t; ++r; }