From 79cc965b92bad87b24f79802175e8615304b1710 Mon Sep 17 00:00:00 2001 From: omoladeodetara Date: Wed, 4 Jun 2025 03:45:57 +0200 Subject: [PATCH 1/2] Release 25.6.4 - Date-based versioning update --- background.js | 27 + chrome-extension/README.md | 0 chrome-extension/background.js | 0 chrome-extension/content.js | 0 chrome-extension/manifest.json | 0 chrome-extension/options.css | 0 chrome-extension/options.html | 0 chrome-extension/options.js | 0 chrome-extension/popup.css | 0 chrome-extension/popup.html | 0 chrome-extension/popup.js | 0 content.js | 25 + dist/assets/index-DLucZkwV.js | 191 - dist/assets/index-DQak_qXR.css | 1 - dist/assets/options.css | 3489 +++ dist/background.js | 27 + dist/content.js | 25 + .../icons/interzept128.png | Bin .../icon16.png => dist/icons/interzept16.png | Bin .../icon48.png => dist/icons/interzept48.png | Bin dist/index.html | 18 - dist/manifest.json | 32 + dist/options.html | 14 + dist/options.js | 21424 ++++++++++++++++ dist/options.js.map | 1 + dist/popup.html | 540 + dist/popup.js | 93 + icons/icon128.png | Bin 0 -> 20461 bytes icons/icon16.png | Bin 0 -> 889 bytes icons/icon48.png | Bin 0 -> 4418 bytes manifest.json | 16 +- package.json | 10 +- pnpm-lock.yaml | 99 +- popup.js | 4 +- scripts/dev-helper.js | 58 + scripts/prepare-extension.js | 74 + src/options/Options.tsx | 954 + src/options/index.html | 13 + src/options/index.tsx | 7 + vite.config.options.ts | 25 + vite.config.ts | 16 + 41 files changed, 26964 insertions(+), 219 deletions(-) create mode 100644 background.js delete mode 100644 chrome-extension/README.md delete mode 100644 chrome-extension/background.js delete mode 100644 chrome-extension/content.js delete mode 100644 chrome-extension/manifest.json delete mode 100644 chrome-extension/options.css delete mode 100644 chrome-extension/options.html delete mode 100644 chrome-extension/options.js delete mode 100644 chrome-extension/popup.css delete mode 100644 chrome-extension/popup.html delete mode 100644 chrome-extension/popup.js create mode 100644 content.js delete mode 100644 dist/assets/index-DLucZkwV.js delete mode 100644 dist/assets/index-DQak_qXR.css create mode 100644 dist/assets/options.css create mode 100644 dist/background.js create mode 100644 dist/content.js rename chrome-extension/icons/icon128.png => dist/icons/interzept128.png (100%) rename chrome-extension/icons/icon16.png => dist/icons/interzept16.png (100%) rename chrome-extension/icons/icon48.png => dist/icons/interzept48.png (100%) delete mode 100644 dist/index.html create mode 100644 dist/manifest.json create mode 100644 dist/options.html create mode 100644 dist/options.js create mode 100644 dist/options.js.map create mode 100644 dist/popup.html create mode 100644 dist/popup.js create mode 100644 icons/icon128.png create mode 100644 icons/icon16.png create mode 100644 icons/icon48.png create mode 100644 scripts/dev-helper.js create mode 100644 src/options/Options.tsx create mode 100644 src/options/index.html create mode 100644 src/options/index.tsx create mode 100644 vite.config.options.ts diff --git a/background.js b/background.js new file mode 100644 index 0000000..4699e8b --- /dev/null +++ b/background.js @@ -0,0 +1,27 @@ +// Background script for Interzept Chrome Extension +console.log('Interzept background script loaded'); + +// Handle extension installation +chrome.runtime.onInstalled.addListener((details) => { + console.log('Interzept extension installed/updated:', details.reason); +}); + +// Handle extension startup +chrome.runtime.onStartup.addListener(() => { + console.log('Interzept extension started'); +}); + +// Optional: Handle messages from content scripts or popup +chrome.runtime.onMessage.addListener((request, sender, sendResponse) => { + console.log('Background received message:', request); + + switch (request.action) { + case 'openOptions': + chrome.runtime.openOptionsPage(); + break; + default: + console.log('Unknown action:', request.action); + } + + sendResponse({ success: true }); +}); diff --git a/chrome-extension/README.md b/chrome-extension/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/chrome-extension/background.js b/chrome-extension/background.js deleted file mode 100644 index e69de29..0000000 diff --git a/chrome-extension/content.js b/chrome-extension/content.js deleted file mode 100644 index e69de29..0000000 diff --git a/chrome-extension/manifest.json b/chrome-extension/manifest.json deleted file mode 100644 index e69de29..0000000 diff --git a/chrome-extension/options.css b/chrome-extension/options.css deleted file mode 100644 index e69de29..0000000 diff --git a/chrome-extension/options.html b/chrome-extension/options.html deleted file mode 100644 index e69de29..0000000 diff --git a/chrome-extension/options.js b/chrome-extension/options.js deleted file mode 100644 index e69de29..0000000 diff --git a/chrome-extension/popup.css b/chrome-extension/popup.css deleted file mode 100644 index e69de29..0000000 diff --git a/chrome-extension/popup.html b/chrome-extension/popup.html deleted file mode 100644 index e69de29..0000000 diff --git a/chrome-extension/popup.js b/chrome-extension/popup.js deleted file mode 100644 index e69de29..0000000 diff --git a/content.js b/content.js new file mode 100644 index 0000000..050eb3e --- /dev/null +++ b/content.js @@ -0,0 +1,25 @@ +// Content script for Interzept Chrome Extension +console.log('Interzept content script loaded'); + +// This content script can be used to inject functionality into web pages +// For now, it's just a placeholder for future API interception features + +// Example: Listen for messages from the extension +chrome.runtime.onMessage.addListener((request, sender, sendResponse) => { + console.log('Content script received message:', request); + + switch (request.action) { + case 'interceptRequests': + console.log('Request interception enabled'); + // Future: Add request interception logic here + break; + case 'stopInterception': + console.log('Request interception disabled'); + // Future: Stop request interception + break; + default: + console.log('Unknown action:', request.action); + } + + sendResponse({ success: true }); +}); diff --git a/dist/assets/index-DLucZkwV.js b/dist/assets/index-DLucZkwV.js deleted file mode 100644 index e984163..0000000 --- a/dist/assets/index-DLucZkwV.js +++ /dev/null @@ -1,191 +0,0 @@ -function My(a,r){for(var o=0;oc[s]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}(function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))c(s);new MutationObserver(s=>{for(const d of s)if(d.type==="childList")for(const m of d.addedNodes)m.tagName==="LINK"&&m.rel==="modulepreload"&&c(m)}).observe(document,{childList:!0,subtree:!0});function o(s){const d={};return s.integrity&&(d.integrity=s.integrity),s.referrerPolicy&&(d.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?d.credentials="include":s.crossOrigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function c(s){if(s.ep)return;s.ep=!0;const d=o(s);fetch(s.href,d)}})();function rv(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var jo={exports:{}},bi={};/** - * @license React - * react-jsx-runtime.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Eh;function _y(){if(Eh)return bi;Eh=1;var a=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function o(c,s,d){var m=null;if(d!==void 0&&(m=""+d),s.key!==void 0&&(m=""+s.key),"key"in s){d={};for(var v in s)v!=="key"&&(d[v]=s[v])}else d=s;return s=d.ref,{$$typeof:a,type:c,key:m,ref:s!==void 0?s:null,props:d}}return bi.Fragment=r,bi.jsx=o,bi.jsxs=o,bi}var wh;function Dy(){return wh||(wh=1,jo.exports=_y()),jo.exports}var y=Dy(),zo={exports:{}},xi={},Uo={exports:{}},Ho={};/** - * @license React - * scheduler.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Ah;function jy(){return Ah||(Ah=1,function(a){function r(M,Z){var K=M.length;M.push(Z);e:for(;0>>1,w=M[le];if(0>>1;les(P,K))aes(ge,P)?(M[le]=ge,M[ae]=K,le=ae):(M[le]=P,M[F]=K,le=F);else if(aes(ge,K))M[le]=ge,M[ae]=K,le=ae;else break e}}return Z}function s(M,Z){var K=M.sortIndex-Z.sortIndex;return K!==0?K:M.id-Z.id}if(a.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var d=performance;a.unstable_now=function(){return d.now()}}else{var m=Date,v=m.now();a.unstable_now=function(){return m.now()-v}}var g=[],h=[],x=1,A=null,N=3,O=!1,j=!1,E=!1,C=!1,U=typeof setTimeout=="function"?setTimeout:null,_=typeof clearTimeout=="function"?clearTimeout:null,L=typeof setImmediate<"u"?setImmediate:null;function k(M){for(var Z=o(h);Z!==null;){if(Z.callback===null)c(h);else if(Z.startTime<=M)c(h),Z.sortIndex=Z.expirationTime,r(g,Z);else break;Z=o(h)}}function X(M){if(E=!1,k(M),!j)if(o(g)!==null)j=!0,te||(te=!0,$());else{var Z=o(h);Z!==null&&fe(X,Z.startTime-M)}}var te=!1,J=-1,I=5,q=-1;function W(){return C?!0:!(a.unstable_now()-qM&&W());){var le=A.callback;if(typeof le=="function"){A.callback=null,N=A.priorityLevel;var w=le(A.expirationTime<=M);if(M=a.unstable_now(),typeof w=="function"){A.callback=w,k(M),Z=!0;break t}A===o(g)&&c(g),k(M)}else c(g);A=o(g)}if(A!==null)Z=!0;else{var Y=o(h);Y!==null&&fe(X,Y.startTime-M),Z=!1}}break e}finally{A=null,N=K,O=!1}Z=void 0}}finally{Z?$():te=!1}}}var $;if(typeof L=="function")$=function(){L(ee)};else if(typeof MessageChannel<"u"){var he=new MessageChannel,de=he.port2;he.port1.onmessage=ee,$=function(){de.postMessage(null)}}else $=function(){U(ee,0)};function fe(M,Z){J=U(function(){M(a.unstable_now())},Z)}a.unstable_IdlePriority=5,a.unstable_ImmediatePriority=1,a.unstable_LowPriority=4,a.unstable_NormalPriority=3,a.unstable_Profiling=null,a.unstable_UserBlockingPriority=2,a.unstable_cancelCallback=function(M){M.callback=null},a.unstable_forceFrameRate=function(M){0>M||125le?(M.sortIndex=K,r(h,M),o(g)===null&&M===o(h)&&(E?(_(J),J=-1):E=!0,fe(X,K-le))):(M.sortIndex=w,r(g,M),j||O||(j=!0,te||(te=!0,$()))),M},a.unstable_shouldYield=W,a.unstable_wrapCallback=function(M){var Z=N;return function(){var K=N;N=Z;try{return M.apply(this,arguments)}finally{N=K}}}}(Ho)),Ho}var Th;function zy(){return Th||(Th=1,Uo.exports=jy()),Uo.exports}var Bo={exports:{}},ve={};/** - * @license React - * react.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Nh;function Uy(){if(Nh)return ve;Nh=1;var a=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),c=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),d=Symbol.for("react.consumer"),m=Symbol.for("react.context"),v=Symbol.for("react.forward_ref"),g=Symbol.for("react.suspense"),h=Symbol.for("react.memo"),x=Symbol.for("react.lazy"),A=Symbol.iterator;function N(w){return w===null||typeof w!="object"?null:(w=A&&w[A]||w["@@iterator"],typeof w=="function"?w:null)}var O={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},j=Object.assign,E={};function C(w,Y,F){this.props=w,this.context=Y,this.refs=E,this.updater=F||O}C.prototype.isReactComponent={},C.prototype.setState=function(w,Y){if(typeof w!="object"&&typeof w!="function"&&w!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,w,Y,"setState")},C.prototype.forceUpdate=function(w){this.updater.enqueueForceUpdate(this,w,"forceUpdate")};function U(){}U.prototype=C.prototype;function _(w,Y,F){this.props=w,this.context=Y,this.refs=E,this.updater=F||O}var L=_.prototype=new U;L.constructor=_,j(L,C.prototype),L.isPureReactComponent=!0;var k=Array.isArray,X={H:null,A:null,T:null,S:null,V:null},te=Object.prototype.hasOwnProperty;function J(w,Y,F,P,ae,ge){return F=ge.ref,{$$typeof:a,type:w,key:Y,ref:F!==void 0?F:null,props:ge}}function I(w,Y){return J(w.type,Y,void 0,void 0,void 0,w.props)}function q(w){return typeof w=="object"&&w!==null&&w.$$typeof===a}function W(w){var Y={"=":"=0",":":"=2"};return"$"+w.replace(/[=:]/g,function(F){return Y[F]})}var ee=/\/+/g;function $(w,Y){return typeof w=="object"&&w!==null&&w.key!=null?W(""+w.key):Y.toString(36)}function he(){}function de(w){switch(w.status){case"fulfilled":return w.value;case"rejected":throw w.reason;default:switch(typeof w.status=="string"?w.then(he,he):(w.status="pending",w.then(function(Y){w.status==="pending"&&(w.status="fulfilled",w.value=Y)},function(Y){w.status==="pending"&&(w.status="rejected",w.reason=Y)})),w.status){case"fulfilled":return w.value;case"rejected":throw w.reason}}throw w}function fe(w,Y,F,P,ae){var ge=typeof w;(ge==="undefined"||ge==="boolean")&&(w=null);var re=!1;if(w===null)re=!0;else switch(ge){case"bigint":case"string":case"number":re=!0;break;case"object":switch(w.$$typeof){case a:case r:re=!0;break;case x:return re=w._init,fe(re(w._payload),Y,F,P,ae)}}if(re)return ae=ae(w),re=P===""?"."+$(w,0):P,k(ae)?(F="",re!=null&&(F=re.replace(ee,"$&/")+"/"),fe(ae,Y,F,"",function(Be){return Be})):ae!=null&&(q(ae)&&(ae=I(ae,F+(ae.key==null||w&&w.key===ae.key?"":(""+ae.key).replace(ee,"$&/")+"/")+re)),Y.push(ae)),1;re=0;var ie=P===""?".":P+":";if(k(w))for(var oe=0;oe"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(a)}catch(r){console.error(r)}}return a(),Lo.exports=Hy(),Lo.exports}/** - * @license React - * react-dom-client.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Mh;function By(){if(Mh)return xi;Mh=1;var a=zy(),r=vs(),o=cv();function c(e){var t="https://react.dev/errors/"+e;if(1w||(e.current=le[w],le[w]=null,w--)}function P(e,t){w++,le[w]=e.current,e.current=t}var ae=Y(null),ge=Y(null),re=Y(null),ie=Y(null);function oe(e,t){switch(P(re,t),P(ge,e),P(ae,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?$m(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=$m(t),e=Pm(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}F(ae),P(ae,e)}function Be(){F(ae),F(ge),F(re)}function Re(e){e.memoizedState!==null&&P(ie,e);var t=ae.current,n=Pm(t,e.type);t!==n&&(P(ge,e),P(ae,n))}function we(e){ge.current===e&&(F(ae),F(ge)),ie.current===e&&(F(ie),hi._currentValue=K)}var Ae=Object.prototype.hasOwnProperty,tt=a.unstable_scheduleCallback,ft=a.unstable_cancelCallback,nl=a.unstable_shouldYield,ll=a.unstable_requestPaint,it=a.unstable_now,xr=a.unstable_getCurrentPriorityLevel,al=a.unstable_ImmediatePriority,Ms=a.unstable_UserBlockingPriority,_i=a.unstable_NormalPriority,f0=a.unstable_LowPriority,_s=a.unstable_IdlePriority,d0=a.log,m0=a.unstable_setDisableYieldValue,Ea=null,yt=null;function An(e){if(typeof d0=="function"&&m0(e),yt&&typeof yt.setStrictMode=="function")try{yt.setStrictMode(Ea,e)}catch{}}var bt=Math.clz32?Math.clz32:p0,h0=Math.log,v0=Math.LN2;function p0(e){return e>>>=0,e===0?32:31-(h0(e)/v0|0)|0}var Di=256,ji=4194304;function il(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function zi(e,t,n){var l=e.pendingLanes;if(l===0)return 0;var i=0,u=e.suspendedLanes,f=e.pingedLanes;e=e.warmLanes;var p=l&134217727;return p!==0?(l=p&~u,l!==0?i=il(l):(f&=p,f!==0?i=il(f):n||(n=p&~e,n!==0&&(i=il(n))))):(p=l&~u,p!==0?i=il(p):f!==0?i=il(f):n||(n=l&~e,n!==0&&(i=il(n)))),i===0?0:t!==0&&t!==i&&(t&u)===0&&(u=i&-i,n=t&-t,u>=n||u===32&&(n&4194048)!==0)?t:i}function wa(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function g0(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Ds(){var e=Di;return Di<<=1,(Di&4194048)===0&&(Di=256),e}function js(){var e=ji;return ji<<=1,(ji&62914560)===0&&(ji=4194304),e}function Sr(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Aa(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function y0(e,t,n,l,i,u){var f=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var p=e.entanglements,S=e.expirationTimes,z=e.hiddenUpdates;for(n=f&~n;0)":-1i||S[l]!==z[i]){var G=` -`+S[l].replace(" at new "," at ");return e.displayName&&G.includes("")&&(G=G.replace("",e.displayName)),G}while(1<=l&&0<=i);break}}}finally{Rr=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?Ml(n):""}function A0(e){switch(e.tag){case 26:case 27:case 5:return Ml(e.type);case 16:return Ml("Lazy");case 13:return Ml("Suspense");case 19:return Ml("SuspenseList");case 0:case 15:return Cr(e.type,!1);case 11:return Cr(e.type.render,!1);case 1:return Cr(e.type,!0);case 31:return Ml("Activity");default:return""}}function Xs(e){try{var t="";do t+=A0(e),e=e.return;while(e);return t}catch(n){return` -Error generating stack: `+n.message+` -`+n.stack}}function Ot(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Qs(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function T0(e){var t=Qs(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),l=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,u=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(f){l=""+f,u.call(this,f)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return l},setValue:function(f){l=""+f},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Bi(e){e._valueTracker||(e._valueTracker=T0(e))}function Zs(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),l="";return e&&(l=Qs(e)?e.checked?"true":"false":e.value),e=l,e!==n?(t.setValue(e),!0):!1}function Li(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var N0=/[\n"\\]/g;function Mt(e){return e.replace(N0,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function Or(e,t,n,l,i,u,f,p){e.name="",f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"?e.type=f:e.removeAttribute("type"),t!=null?f==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+Ot(t)):e.value!==""+Ot(t)&&(e.value=""+Ot(t)):f!=="submit"&&f!=="reset"||e.removeAttribute("value"),t!=null?Mr(e,f,Ot(t)):n!=null?Mr(e,f,Ot(n)):l!=null&&e.removeAttribute("value"),i==null&&u!=null&&(e.defaultChecked=!!u),i!=null&&(e.checked=i&&typeof i!="function"&&typeof i!="symbol"),p!=null&&typeof p!="function"&&typeof p!="symbol"&&typeof p!="boolean"?e.name=""+Ot(p):e.removeAttribute("name")}function ks(e,t,n,l,i,u,f,p){if(u!=null&&typeof u!="function"&&typeof u!="symbol"&&typeof u!="boolean"&&(e.type=u),t!=null||n!=null){if(!(u!=="submit"&&u!=="reset"||t!=null))return;n=n!=null?""+Ot(n):"",t=t!=null?""+Ot(t):n,p||t===e.value||(e.value=t),e.defaultValue=t}l=l??i,l=typeof l!="function"&&typeof l!="symbol"&&!!l,e.checked=p?e.checked:!!l,e.defaultChecked=!!l,f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"&&(e.name=f)}function Mr(e,t,n){t==="number"&&Li(e.ownerDocument)===e||e.defaultValue===""+n||(e.defaultValue=""+n)}function _l(e,t,n,l){if(e=e.options,t){t={};for(var i=0;i"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Ur=!1;if(un)try{var Ca={};Object.defineProperty(Ca,"passive",{get:function(){Ur=!0}}),window.addEventListener("test",Ca,Ca),window.removeEventListener("test",Ca,Ca)}catch{Ur=!1}var Nn=null,Hr=null,Yi=null;function Is(){if(Yi)return Yi;var e,t=Hr,n=t.length,l,i="value"in Nn?Nn.value:Nn.textContent,u=i.length;for(e=0;e=_a),uf=" ",rf=!1;function cf(e,t){switch(e){case"keyup":return eg.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function of(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Ul=!1;function ng(e,t){switch(e){case"compositionend":return of(t);case"keypress":return t.which!==32?null:(rf=!0,uf);case"textInput":return e=t.data,e===uf&&rf?null:e;default:return null}}function lg(e,t){if(Ul)return e==="compositionend"||!Gr&&cf(e,t)?(e=Is(),Yi=Hr=Nn=null,Ul=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=l}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=gf(n)}}function bf(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?bf(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function xf(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Li(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Li(e.document)}return t}function Qr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var fg=un&&"documentMode"in document&&11>=document.documentMode,Hl=null,Zr=null,Ua=null,kr=!1;function Sf(e,t,n){var l=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;kr||Hl==null||Hl!==Li(l)||(l=Hl,"selectionStart"in l&&Qr(l)?l={start:l.selectionStart,end:l.selectionEnd}:(l=(l.ownerDocument&&l.ownerDocument.defaultView||window).getSelection(),l={anchorNode:l.anchorNode,anchorOffset:l.anchorOffset,focusNode:l.focusNode,focusOffset:l.focusOffset}),Ua&&za(Ua,l)||(Ua=l,l=Mu(Zr,"onSelect"),0>=f,i-=f,cn=1<<32-bt(t)+i|n<u?u:8;var f=M.T,p={};M.T=p,_c(e,!1,t,n);try{var S=i(),z=M.S;if(z!==null&&z(p,S),S!==null&&typeof S=="object"&&typeof S.then=="function"){var G=xg(S,l);$a(e,t,G,Tt(e))}else $a(e,t,l,Tt(e))}catch(Q){$a(e,t,{then:function(){},status:"rejected",reason:Q},Tt())}finally{Z.p=u,M.T=f}}function Tg(){}function Oc(e,t,n,l){if(e.tag!==5)throw Error(c(476));var i=Ed(e).queue;Sd(e,i,t,K,n===null?Tg:function(){return wd(e),n(l)})}function Ed(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:K,baseState:K,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:dn,lastRenderedState:K},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:dn,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function wd(e){var t=Ed(e).next.queue;$a(e,t,{},Tt())}function Mc(){return rt(hi)}function Ad(){return Ke().memoizedState}function Td(){return Ke().memoizedState}function Ng(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=Tt();e=On(n);var l=Mn(t,e,n);l!==null&&(Nt(l,t,n),Qa(l,t,n)),t={cache:uc()},e.payload=t;return}t=t.return}}function Rg(e,t,n){var l=Tt();n={lane:l,revertLane:0,action:n,hasEagerState:!1,eagerState:null,next:null},su(e)?Rd(t,n):(n=$r(e,t,n,l),n!==null&&(Nt(n,e,l),Cd(n,t,l)))}function Nd(e,t,n){var l=Tt();$a(e,t,n,l)}function $a(e,t,n,l){var i={lane:l,revertLane:0,action:n,hasEagerState:!1,eagerState:null,next:null};if(su(e))Rd(t,i);else{var u=e.alternate;if(e.lanes===0&&(u===null||u.lanes===0)&&(u=t.lastRenderedReducer,u!==null))try{var f=t.lastRenderedState,p=u(f,n);if(i.hasEagerState=!0,i.eagerState=p,xt(p,f))return Ki(e,t,i,0),He===null&&ki(),!1}catch{}finally{}if(n=$r(e,t,i,l),n!==null)return Nt(n,e,l),Cd(n,t,l),!0}return!1}function _c(e,t,n,l){if(l={lane:2,revertLane:oo(),action:l,hasEagerState:!1,eagerState:null,next:null},su(e)){if(t)throw Error(c(479))}else t=$r(e,n,l,2),t!==null&&Nt(t,e,2)}function su(e){var t=e.alternate;return e===ye||t!==null&&t===ye}function Rd(e,t){kl=au=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Cd(e,t,n){if((n&4194048)!==0){var l=t.lanes;l&=e.pendingLanes,n|=l,t.lanes=n,Us(e,n)}}var fu={readContext:rt,use:uu,useCallback:Xe,useContext:Xe,useEffect:Xe,useImperativeHandle:Xe,useLayoutEffect:Xe,useInsertionEffect:Xe,useMemo:Xe,useReducer:Xe,useRef:Xe,useState:Xe,useDebugValue:Xe,useDeferredValue:Xe,useTransition:Xe,useSyncExternalStore:Xe,useId:Xe,useHostTransitionStatus:Xe,useFormState:Xe,useActionState:Xe,useOptimistic:Xe,useMemoCache:Xe,useCacheRefresh:Xe},Od={readContext:rt,use:uu,useCallback:function(e,t){return ht().memoizedState=[e,t===void 0?null:t],e},useContext:rt,useEffect:dd,useImperativeHandle:function(e,t,n){n=n!=null?n.concat([e]):null,ou(4194308,4,pd.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ou(4194308,4,e,t)},useInsertionEffect:function(e,t){ou(4,2,e,t)},useMemo:function(e,t){var n=ht();t=t===void 0?null:t;var l=e();if(yl){An(!0);try{e()}finally{An(!1)}}return n.memoizedState=[l,t],l},useReducer:function(e,t,n){var l=ht();if(n!==void 0){var i=n(t);if(yl){An(!0);try{n(t)}finally{An(!1)}}}else i=t;return l.memoizedState=l.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},l.queue=e,e=e.dispatch=Rg.bind(null,ye,e),[l.memoizedState,e]},useRef:function(e){var t=ht();return e={current:e},t.memoizedState=e},useState:function(e){e=Tc(e);var t=e.queue,n=Nd.bind(null,ye,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Rc,useDeferredValue:function(e,t){var n=ht();return Cc(n,e,t)},useTransition:function(){var e=Tc(!1);return e=Sd.bind(null,ye,e.queue,!0,!1),ht().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var l=ye,i=ht();if(Ne){if(n===void 0)throw Error(c(407));n=n()}else{if(n=t(),He===null)throw Error(c(349));(Ee&124)!==0||$f(l,t,n)}i.memoizedState=n;var u={value:n,getSnapshot:t};return i.queue=u,dd(Ff.bind(null,l,u,e),[e]),l.flags|=2048,Jl(9,cu(),Pf.bind(null,l,u,n,t),null),n},useId:function(){var e=ht(),t=He.identifierPrefix;if(Ne){var n=on,l=cn;n=(l&~(1<<32-bt(l)-1)).toString(32)+n,t="ยซ"+t+"R"+n,n=iu++,0se?(et=ue,ue=null):et=ue.sibling;var Te=H(R,ue,D[se],V);if(Te===null){ue===null&&(ue=et);break}e&&ue&&Te.alternate===null&&t(R,ue),T=u(Te,T,se),be===null?ne=Te:be.sibling=Te,be=Te,ue=et}if(se===D.length)return n(R,ue),Ne&&dl(R,se),ne;if(ue===null){for(;sese?(et=ue,ue=null):et=ue.sibling;var Kn=H(R,ue,Te.value,V);if(Kn===null){ue===null&&(ue=et);break}e&&ue&&Kn.alternate===null&&t(R,ue),T=u(Kn,T,se),be===null?ne=Kn:be.sibling=Kn,be=Kn,ue=et}if(Te.done)return n(R,ue),Ne&&dl(R,se),ne;if(ue===null){for(;!Te.done;se++,Te=D.next())Te=Q(R,Te.value,V),Te!==null&&(T=u(Te,T,se),be===null?ne=Te:be.sibling=Te,be=Te);return Ne&&dl(R,se),ne}for(ue=l(ue);!Te.done;se++,Te=D.next())Te=B(ue,R,se,Te.value,V),Te!==null&&(e&&Te.alternate!==null&&ue.delete(Te.key===null?se:Te.key),T=u(Te,T,se),be===null?ne=Te:be.sibling=Te,be=Te);return e&&ue.forEach(function(Oy){return t(R,Oy)}),Ne&&dl(R,se),ne}function je(R,T,D,V){if(typeof D=="object"&&D!==null&&D.type===j&&D.key===null&&(D=D.props.children),typeof D=="object"&&D!==null){switch(D.$$typeof){case N:e:{for(var ne=D.key;T!==null;){if(T.key===ne){if(ne=D.type,ne===j){if(T.tag===7){n(R,T.sibling),V=i(T,D.props.children),V.return=R,R=V;break e}}else if(T.elementType===ne||typeof ne=="object"&&ne!==null&&ne.$$typeof===I&&_d(ne)===T.type){n(R,T.sibling),V=i(T,D.props),Fa(V,D),V.return=R,R=V;break e}n(R,T);break}else t(R,T);T=T.sibling}D.type===j?(V=sl(D.props.children,R.mode,V,D.key),V.return=R,R=V):(V=Wi(D.type,D.key,D.props,null,R.mode,V),Fa(V,D),V.return=R,R=V)}return f(R);case O:e:{for(ne=D.key;T!==null;){if(T.key===ne)if(T.tag===4&&T.stateNode.containerInfo===D.containerInfo&&T.stateNode.implementation===D.implementation){n(R,T.sibling),V=i(T,D.children||[]),V.return=R,R=V;break e}else{n(R,T);break}else t(R,T);T=T.sibling}V=Ir(D,R.mode,V),V.return=R,R=V}return f(R);case I:return ne=D._init,D=ne(D._payload),je(R,T,D,V)}if(fe(D))return me(R,T,D,V);if($(D)){if(ne=$(D),typeof ne!="function")throw Error(c(150));return D=ne.call(D),ce(R,T,D,V)}if(typeof D.then=="function")return je(R,T,du(D),V);if(D.$$typeof===L)return je(R,T,Ii(R,D),V);mu(R,D)}return typeof D=="string"&&D!==""||typeof D=="number"||typeof D=="bigint"?(D=""+D,T!==null&&T.tag===6?(n(R,T.sibling),V=i(T,D),V.return=R,R=V):(n(R,T),V=Fr(D,R.mode,V),V.return=R,R=V),f(R)):n(R,T)}return function(R,T,D,V){try{Pa=0;var ne=je(R,T,D,V);return Wl=null,ne}catch(ue){if(ue===Va||ue===tu)throw ue;var be=St(29,ue,null,R.mode);return be.lanes=V,be.return=R,be}finally{}}}var $l=Dd(!0),jd=Dd(!1),Ut=Y(null),Jt=null;function Dn(e){var t=e.alternate;P(We,We.current&1),P(Ut,e),Jt===null&&(t===null||Zl.current!==null||t.memoizedState!==null)&&(Jt=e)}function zd(e){if(e.tag===22){if(P(We,We.current),P(Ut,e),Jt===null){var t=e.alternate;t!==null&&t.memoizedState!==null&&(Jt=e)}}else jn()}function jn(){P(We,We.current),P(Ut,Ut.current)}function mn(e){F(Ut),Jt===e&&(Jt=null),F(We)}var We=Y(0);function hu(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||Eo(n)))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}function Dc(e,t,n,l){t=e.memoizedState,n=n(l,t),n=n==null?t:x({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var jc={enqueueSetState:function(e,t,n){e=e._reactInternals;var l=Tt(),i=On(l);i.payload=t,n!=null&&(i.callback=n),t=Mn(e,i,l),t!==null&&(Nt(t,e,l),Qa(t,e,l))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var l=Tt(),i=On(l);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=Mn(e,i,l),t!==null&&(Nt(t,e,l),Qa(t,e,l))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=Tt(),l=On(n);l.tag=2,t!=null&&(l.callback=t),t=Mn(e,l,n),t!==null&&(Nt(t,e,n),Qa(t,e,n))}};function Ud(e,t,n,l,i,u,f){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(l,u,f):t.prototype&&t.prototype.isPureReactComponent?!za(n,l)||!za(i,u):!0}function Hd(e,t,n,l){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(n,l),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(n,l),t.state!==e&&jc.enqueueReplaceState(t,t.state,null)}function bl(e,t){var n=t;if("ref"in t){n={};for(var l in t)l!=="ref"&&(n[l]=t[l])}if(e=e.defaultProps){n===t&&(n=x({},n));for(var i in e)n[i]===void 0&&(n[i]=e[i])}return n}var vu=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)};function Bd(e){vu(e)}function Ld(e){console.error(e)}function qd(e){vu(e)}function pu(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(l){setTimeout(function(){throw l})}}function Yd(e,t,n){try{var l=e.onCaughtError;l(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(i){setTimeout(function(){throw i})}}function zc(e,t,n){return n=On(n),n.tag=3,n.payload={element:null},n.callback=function(){pu(e,t)},n}function Gd(e){return e=On(e),e.tag=3,e}function Vd(e,t,n,l){var i=n.type.getDerivedStateFromError;if(typeof i=="function"){var u=l.value;e.payload=function(){return i(u)},e.callback=function(){Yd(t,n,l)}}var f=n.stateNode;f!==null&&typeof f.componentDidCatch=="function"&&(e.callback=function(){Yd(t,n,l),typeof i!="function"&&(qn===null?qn=new Set([this]):qn.add(this));var p=l.stack;this.componentDidCatch(l.value,{componentStack:p!==null?p:""})})}function Og(e,t,n,l,i){if(n.flags|=32768,l!==null&&typeof l=="object"&&typeof l.then=="function"){if(t=n.alternate,t!==null&&qa(t,n,i,!0),n=Ut.current,n!==null){switch(n.tag){case 13:return Jt===null?ao():n.alternate===null&&Ve===0&&(Ve=3),n.flags&=-257,n.flags|=65536,n.lanes=i,l===oc?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([l]):t.add(l),uo(e,l,i)),!1;case 22:return n.flags|=65536,l===oc?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([l])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([l]):n.add(l)),uo(e,l,i)),!1}throw Error(c(435,n.tag))}return uo(e,l,i),ao(),!1}if(Ne)return t=Ut.current,t!==null?((t.flags&65536)===0&&(t.flags|=256),t.flags|=65536,t.lanes=i,l!==nc&&(e=Error(c(422),{cause:l}),La(_t(e,n)))):(l!==nc&&(t=Error(c(423),{cause:l}),La(_t(t,n))),e=e.current.alternate,e.flags|=65536,i&=-i,e.lanes|=i,l=_t(l,n),i=zc(e.stateNode,l,i),dc(e,i),Ve!==4&&(Ve=2)),!1;var u=Error(c(520),{cause:l});if(u=_t(u,n),ii===null?ii=[u]:ii.push(u),Ve!==4&&(Ve=2),t===null)return!0;l=_t(l,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=i&-i,n.lanes|=e,e=zc(n.stateNode,l,e),dc(n,e),!1;case 1:if(t=n.type,u=n.stateNode,(n.flags&128)===0&&(typeof t.getDerivedStateFromError=="function"||u!==null&&typeof u.componentDidCatch=="function"&&(qn===null||!qn.has(u))))return n.flags|=65536,i&=-i,n.lanes|=i,i=Gd(i),Vd(i,e,n,l),dc(n,i),!1}n=n.return}while(n!==null);return!1}var Xd=Error(c(461)),Fe=!1;function nt(e,t,n,l){t.child=e===null?jd(t,null,n,l):$l(t,e.child,n,l)}function Qd(e,t,n,l,i){n=n.render;var u=t.ref;if("ref"in l){var f={};for(var p in l)p!=="ref"&&(f[p]=l[p])}else f=l;return pl(t),l=gc(e,t,n,f,u,i),p=yc(),e!==null&&!Fe?(bc(e,t,i),hn(e,t,i)):(Ne&&p&&ec(t),t.flags|=1,nt(e,t,l,i),t.child)}function Zd(e,t,n,l,i){if(e===null){var u=n.type;return typeof u=="function"&&!Pr(u)&&u.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=u,kd(e,t,u,l,i)):(e=Wi(n.type,null,l,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(u=e.child,!Vc(e,i)){var f=u.memoizedProps;if(n=n.compare,n=n!==null?n:za,n(f,l)&&e.ref===t.ref)return hn(e,t,i)}return t.flags|=1,e=rn(u,l),e.ref=t.ref,e.return=t,t.child=e}function kd(e,t,n,l,i){if(e!==null){var u=e.memoizedProps;if(za(u,l)&&e.ref===t.ref)if(Fe=!1,t.pendingProps=l=u,Vc(e,i))(e.flags&131072)!==0&&(Fe=!0);else return t.lanes=e.lanes,hn(e,t,i)}return Uc(e,t,n,l,i)}function Kd(e,t,n){var l=t.pendingProps,i=l.children,u=e!==null?e.memoizedState:null;if(l.mode==="hidden"){if((t.flags&128)!==0){if(l=u!==null?u.baseLanes|n:n,e!==null){for(i=t.child=e.child,u=0;i!==null;)u=u|i.lanes|i.childLanes,i=i.sibling;t.childLanes=u&~l}else t.childLanes=0,t.child=null;return Jd(e,t,l,n)}if((n&536870912)!==0)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&eu(t,u!==null?u.cachePool:null),u!==null?kf(t,u):hc(),zd(t);else return t.lanes=t.childLanes=536870912,Jd(e,t,u!==null?u.baseLanes|n:n,n)}else u!==null?(eu(t,u.cachePool),kf(t,u),jn(),t.memoizedState=null):(e!==null&&eu(t,null),hc(),jn());return nt(e,t,i,n),t.child}function Jd(e,t,n,l){var i=cc();return i=i===null?null:{parent:Je._currentValue,pool:i},t.memoizedState={baseLanes:n,cachePool:i},e!==null&&eu(t,null),hc(),zd(t),e!==null&&qa(e,t,l,!0),null}function gu(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!="function"&&typeof n!="object")throw Error(c(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function Uc(e,t,n,l,i){return pl(t),n=gc(e,t,n,l,void 0,i),l=yc(),e!==null&&!Fe?(bc(e,t,i),hn(e,t,i)):(Ne&&l&&ec(t),t.flags|=1,nt(e,t,n,i),t.child)}function Wd(e,t,n,l,i,u){return pl(t),t.updateQueue=null,n=Jf(t,l,n,i),Kf(e),l=yc(),e!==null&&!Fe?(bc(e,t,u),hn(e,t,u)):(Ne&&l&&ec(t),t.flags|=1,nt(e,t,n,u),t.child)}function $d(e,t,n,l,i){if(pl(t),t.stateNode===null){var u=Yl,f=n.contextType;typeof f=="object"&&f!==null&&(u=rt(f)),u=new n(l,u),t.memoizedState=u.state!==null&&u.state!==void 0?u.state:null,u.updater=jc,t.stateNode=u,u._reactInternals=t,u=t.stateNode,u.props=l,u.state=t.memoizedState,u.refs={},sc(t),f=n.contextType,u.context=typeof f=="object"&&f!==null?rt(f):Yl,u.state=t.memoizedState,f=n.getDerivedStateFromProps,typeof f=="function"&&(Dc(t,n,f,l),u.state=t.memoizedState),typeof n.getDerivedStateFromProps=="function"||typeof u.getSnapshotBeforeUpdate=="function"||typeof u.UNSAFE_componentWillMount!="function"&&typeof u.componentWillMount!="function"||(f=u.state,typeof u.componentWillMount=="function"&&u.componentWillMount(),typeof u.UNSAFE_componentWillMount=="function"&&u.UNSAFE_componentWillMount(),f!==u.state&&jc.enqueueReplaceState(u,u.state,null),ka(t,l,u,i),Za(),u.state=t.memoizedState),typeof u.componentDidMount=="function"&&(t.flags|=4194308),l=!0}else if(e===null){u=t.stateNode;var p=t.memoizedProps,S=bl(n,p);u.props=S;var z=u.context,G=n.contextType;f=Yl,typeof G=="object"&&G!==null&&(f=rt(G));var Q=n.getDerivedStateFromProps;G=typeof Q=="function"||typeof u.getSnapshotBeforeUpdate=="function",p=t.pendingProps!==p,G||typeof u.UNSAFE_componentWillReceiveProps!="function"&&typeof u.componentWillReceiveProps!="function"||(p||z!==f)&&Hd(t,u,l,f),Cn=!1;var H=t.memoizedState;u.state=H,ka(t,l,u,i),Za(),z=t.memoizedState,p||H!==z||Cn?(typeof Q=="function"&&(Dc(t,n,Q,l),z=t.memoizedState),(S=Cn||Ud(t,n,S,l,H,z,f))?(G||typeof u.UNSAFE_componentWillMount!="function"&&typeof u.componentWillMount!="function"||(typeof u.componentWillMount=="function"&&u.componentWillMount(),typeof u.UNSAFE_componentWillMount=="function"&&u.UNSAFE_componentWillMount()),typeof u.componentDidMount=="function"&&(t.flags|=4194308)):(typeof u.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=l,t.memoizedState=z),u.props=l,u.state=z,u.context=f,l=S):(typeof u.componentDidMount=="function"&&(t.flags|=4194308),l=!1)}else{u=t.stateNode,fc(e,t),f=t.memoizedProps,G=bl(n,f),u.props=G,Q=t.pendingProps,H=u.context,z=n.contextType,S=Yl,typeof z=="object"&&z!==null&&(S=rt(z)),p=n.getDerivedStateFromProps,(z=typeof p=="function"||typeof u.getSnapshotBeforeUpdate=="function")||typeof u.UNSAFE_componentWillReceiveProps!="function"&&typeof u.componentWillReceiveProps!="function"||(f!==Q||H!==S)&&Hd(t,u,l,S),Cn=!1,H=t.memoizedState,u.state=H,ka(t,l,u,i),Za();var B=t.memoizedState;f!==Q||H!==B||Cn||e!==null&&e.dependencies!==null&&Fi(e.dependencies)?(typeof p=="function"&&(Dc(t,n,p,l),B=t.memoizedState),(G=Cn||Ud(t,n,G,l,H,B,S)||e!==null&&e.dependencies!==null&&Fi(e.dependencies))?(z||typeof u.UNSAFE_componentWillUpdate!="function"&&typeof u.componentWillUpdate!="function"||(typeof u.componentWillUpdate=="function"&&u.componentWillUpdate(l,B,S),typeof u.UNSAFE_componentWillUpdate=="function"&&u.UNSAFE_componentWillUpdate(l,B,S)),typeof u.componentDidUpdate=="function"&&(t.flags|=4),typeof u.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof u.componentDidUpdate!="function"||f===e.memoizedProps&&H===e.memoizedState||(t.flags|=4),typeof u.getSnapshotBeforeUpdate!="function"||f===e.memoizedProps&&H===e.memoizedState||(t.flags|=1024),t.memoizedProps=l,t.memoizedState=B),u.props=l,u.state=B,u.context=S,l=G):(typeof u.componentDidUpdate!="function"||f===e.memoizedProps&&H===e.memoizedState||(t.flags|=4),typeof u.getSnapshotBeforeUpdate!="function"||f===e.memoizedProps&&H===e.memoizedState||(t.flags|=1024),l=!1)}return u=l,gu(e,t),l=(t.flags&128)!==0,u||l?(u=t.stateNode,n=l&&typeof n.getDerivedStateFromError!="function"?null:u.render(),t.flags|=1,e!==null&&l?(t.child=$l(t,e.child,null,i),t.child=$l(t,null,n,i)):nt(e,t,n,i),t.memoizedState=u.state,e=t.child):e=hn(e,t,i),e}function Pd(e,t,n,l){return Ba(),t.flags|=256,nt(e,t,n,l),t.child}var Hc={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Bc(e){return{baseLanes:e,cachePool:Lf()}}function Lc(e,t,n){return e=e!==null?e.childLanes&~n:0,t&&(e|=Ht),e}function Fd(e,t,n){var l=t.pendingProps,i=!1,u=(t.flags&128)!==0,f;if((f=u)||(f=e!==null&&e.memoizedState===null?!1:(We.current&2)!==0),f&&(i=!0,t.flags&=-129),f=(t.flags&32)!==0,t.flags&=-33,e===null){if(Ne){if(i?Dn(t):jn(),Ne){var p=Ge,S;if(S=p){e:{for(S=p,p=Kt;S.nodeType!==8;){if(!p){p=null;break e}if(S=Yt(S.nextSibling),S===null){p=null;break e}}p=S}p!==null?(t.memoizedState={dehydrated:p,treeContext:fl!==null?{id:cn,overflow:on}:null,retryLane:536870912,hydrationErrors:null},S=St(18,null,null,0),S.stateNode=p,S.return=t,t.child=S,ot=t,Ge=null,S=!0):S=!1}S||hl(t)}if(p=t.memoizedState,p!==null&&(p=p.dehydrated,p!==null))return Eo(p)?t.lanes=32:t.lanes=536870912,null;mn(t)}return p=l.children,l=l.fallback,i?(jn(),i=t.mode,p=yu({mode:"hidden",children:p},i),l=sl(l,i,n,null),p.return=t,l.return=t,p.sibling=l,t.child=p,i=t.child,i.memoizedState=Bc(n),i.childLanes=Lc(e,f,n),t.memoizedState=Hc,l):(Dn(t),qc(t,p))}if(S=e.memoizedState,S!==null&&(p=S.dehydrated,p!==null)){if(u)t.flags&256?(Dn(t),t.flags&=-257,t=Yc(e,t,n)):t.memoizedState!==null?(jn(),t.child=e.child,t.flags|=128,t=null):(jn(),i=l.fallback,p=t.mode,l=yu({mode:"visible",children:l.children},p),i=sl(i,p,n,null),i.flags|=2,l.return=t,i.return=t,l.sibling=i,t.child=l,$l(t,e.child,null,n),l=t.child,l.memoizedState=Bc(n),l.childLanes=Lc(e,f,n),t.memoizedState=Hc,t=i);else if(Dn(t),Eo(p)){if(f=p.nextSibling&&p.nextSibling.dataset,f)var z=f.dgst;f=z,l=Error(c(419)),l.stack="",l.digest=f,La({value:l,source:null,stack:null}),t=Yc(e,t,n)}else if(Fe||qa(e,t,n,!1),f=(n&e.childLanes)!==0,Fe||f){if(f=He,f!==null&&(l=n&-n,l=(l&42)!==0?1:Er(l),l=(l&(f.suspendedLanes|n))!==0?0:l,l!==0&&l!==S.retryLane))throw S.retryLane=l,ql(e,l),Nt(f,e,l),Xd;p.data==="$?"||ao(),t=Yc(e,t,n)}else p.data==="$?"?(t.flags|=192,t.child=e.child,t=null):(e=S.treeContext,Ge=Yt(p.nextSibling),ot=t,Ne=!0,ml=null,Kt=!1,e!==null&&(jt[zt++]=cn,jt[zt++]=on,jt[zt++]=fl,cn=e.id,on=e.overflow,fl=t),t=qc(t,l.children),t.flags|=4096);return t}return i?(jn(),i=l.fallback,p=t.mode,S=e.child,z=S.sibling,l=rn(S,{mode:"hidden",children:l.children}),l.subtreeFlags=S.subtreeFlags&65011712,z!==null?i=rn(z,i):(i=sl(i,p,n,null),i.flags|=2),i.return=t,l.return=t,l.sibling=i,t.child=l,l=i,i=t.child,p=e.child.memoizedState,p===null?p=Bc(n):(S=p.cachePool,S!==null?(z=Je._currentValue,S=S.parent!==z?{parent:z,pool:z}:S):S=Lf(),p={baseLanes:p.baseLanes|n,cachePool:S}),i.memoizedState=p,i.childLanes=Lc(e,f,n),t.memoizedState=Hc,l):(Dn(t),n=e.child,e=n.sibling,n=rn(n,{mode:"visible",children:l.children}),n.return=t,n.sibling=null,e!==null&&(f=t.deletions,f===null?(t.deletions=[e],t.flags|=16):f.push(e)),t.child=n,t.memoizedState=null,n)}function qc(e,t){return t=yu({mode:"visible",children:t},e.mode),t.return=e,e.child=t}function yu(e,t){return e=St(22,e,null,t),e.lanes=0,e.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},e}function Yc(e,t,n){return $l(t,e.child,null,n),e=qc(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Id(e,t,n){e.lanes|=t;var l=e.alternate;l!==null&&(l.lanes|=t),ac(e.return,t,n)}function Gc(e,t,n,l,i){var u=e.memoizedState;u===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:l,tail:n,tailMode:i}:(u.isBackwards=t,u.rendering=null,u.renderingStartTime=0,u.last=l,u.tail=n,u.tailMode=i)}function em(e,t,n){var l=t.pendingProps,i=l.revealOrder,u=l.tail;if(nt(e,t,l.children,n),l=We.current,(l&2)!==0)l=l&1|2,t.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Id(e,n,t);else if(e.tag===19)Id(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}l&=1}switch(P(We,l),i){case"forwards":for(n=t.child,i=null;n!==null;)e=n.alternate,e!==null&&hu(e)===null&&(i=n),n=n.sibling;n=i,n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),Gc(t,!1,i,n,u);break;case"backwards":for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&hu(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}Gc(t,!0,n,null,u);break;case"together":Gc(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function hn(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Ln|=t.lanes,(n&t.childLanes)===0)if(e!==null){if(qa(e,t,n,!1),(n&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(c(153));if(t.child!==null){for(e=t.child,n=rn(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=rn(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Vc(e,t){return(e.lanes&t)!==0?!0:(e=e.dependencies,!!(e!==null&&Fi(e)))}function Mg(e,t,n){switch(t.tag){case 3:oe(t,t.stateNode.containerInfo),Rn(t,Je,e.memoizedState.cache),Ba();break;case 27:case 5:Re(t);break;case 4:oe(t,t.stateNode.containerInfo);break;case 10:Rn(t,t.type,t.memoizedProps.value);break;case 13:var l=t.memoizedState;if(l!==null)return l.dehydrated!==null?(Dn(t),t.flags|=128,null):(n&t.child.childLanes)!==0?Fd(e,t,n):(Dn(t),e=hn(e,t,n),e!==null?e.sibling:null);Dn(t);break;case 19:var i=(e.flags&128)!==0;if(l=(n&t.childLanes)!==0,l||(qa(e,t,n,!1),l=(n&t.childLanes)!==0),i){if(l)return em(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),P(We,We.current),l)break;return null;case 22:case 23:return t.lanes=0,Kd(e,t,n);case 24:Rn(t,Je,e.memoizedState.cache)}return hn(e,t,n)}function tm(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps)Fe=!0;else{if(!Vc(e,n)&&(t.flags&128)===0)return Fe=!1,Mg(e,t,n);Fe=(e.flags&131072)!==0}else Fe=!1,Ne&&(t.flags&1048576)!==0&&_f(t,Pi,t.index);switch(t.lanes=0,t.tag){case 16:e:{e=t.pendingProps;var l=t.elementType,i=l._init;if(l=i(l._payload),t.type=l,typeof l=="function")Pr(l)?(e=bl(l,e),t.tag=1,t=$d(null,t,l,e,n)):(t.tag=0,t=Uc(null,t,l,e,n));else{if(l!=null){if(i=l.$$typeof,i===k){t.tag=11,t=Qd(null,t,l,e,n);break e}else if(i===J){t.tag=14,t=Zd(null,t,l,e,n);break e}}throw t=de(l)||l,Error(c(306,t,""))}}return t;case 0:return Uc(e,t,t.type,t.pendingProps,n);case 1:return l=t.type,i=bl(l,t.pendingProps),$d(e,t,l,i,n);case 3:e:{if(oe(t,t.stateNode.containerInfo),e===null)throw Error(c(387));l=t.pendingProps;var u=t.memoizedState;i=u.element,fc(e,t),ka(t,l,null,n);var f=t.memoizedState;if(l=f.cache,Rn(t,Je,l),l!==u.cache&&ic(t,[Je],n,!0),Za(),l=f.element,u.isDehydrated)if(u={element:l,isDehydrated:!1,cache:f.cache},t.updateQueue.baseState=u,t.memoizedState=u,t.flags&256){t=Pd(e,t,l,n);break e}else if(l!==i){i=_t(Error(c(424)),t),La(i),t=Pd(e,t,l,n);break e}else{switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName==="HTML"?e.ownerDocument.body:e}for(Ge=Yt(e.firstChild),ot=t,Ne=!0,ml=null,Kt=!0,n=jd(t,null,l,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(Ba(),l===i){t=hn(e,t,n);break e}nt(e,t,l,n)}t=t.child}return t;case 26:return gu(e,t),e===null?(n=ih(t.type,null,t.pendingProps,null))?t.memoizedState=n:Ne||(n=t.type,e=t.pendingProps,l=Du(re.current).createElement(n),l[ut]=t,l[dt]=e,at(l,n,e),Pe(l),t.stateNode=l):t.memoizedState=ih(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return Re(t),e===null&&Ne&&(l=t.stateNode=nh(t.type,t.pendingProps,re.current),ot=t,Kt=!0,i=Ge,Vn(t.type)?(wo=i,Ge=Yt(l.firstChild)):Ge=i),nt(e,t,t.pendingProps.children,n),gu(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&Ne&&((i=l=Ge)&&(l=ay(l,t.type,t.pendingProps,Kt),l!==null?(t.stateNode=l,ot=t,Ge=Yt(l.firstChild),Kt=!1,i=!0):i=!1),i||hl(t)),Re(t),i=t.type,u=t.pendingProps,f=e!==null?e.memoizedProps:null,l=u.children,bo(i,u)?l=null:f!==null&&bo(i,f)&&(t.flags|=32),t.memoizedState!==null&&(i=gc(e,t,Eg,null,null,n),hi._currentValue=i),gu(e,t),nt(e,t,l,n),t.child;case 6:return e===null&&Ne&&((e=n=Ge)&&(n=iy(n,t.pendingProps,Kt),n!==null?(t.stateNode=n,ot=t,Ge=null,e=!0):e=!1),e||hl(t)),null;case 13:return Fd(e,t,n);case 4:return oe(t,t.stateNode.containerInfo),l=t.pendingProps,e===null?t.child=$l(t,null,l,n):nt(e,t,l,n),t.child;case 11:return Qd(e,t,t.type,t.pendingProps,n);case 7:return nt(e,t,t.pendingProps,n),t.child;case 8:return nt(e,t,t.pendingProps.children,n),t.child;case 12:return nt(e,t,t.pendingProps.children,n),t.child;case 10:return l=t.pendingProps,Rn(t,t.type,l.value),nt(e,t,l.children,n),t.child;case 9:return i=t.type._context,l=t.pendingProps.children,pl(t),i=rt(i),l=l(i),t.flags|=1,nt(e,t,l,n),t.child;case 14:return Zd(e,t,t.type,t.pendingProps,n);case 15:return kd(e,t,t.type,t.pendingProps,n);case 19:return em(e,t,n);case 31:return l=t.pendingProps,n=t.mode,l={mode:l.mode,children:l.children},e===null?(n=yu(l,n),n.ref=t.ref,t.child=n,n.return=t,t=n):(n=rn(e.child,l),n.ref=t.ref,t.child=n,n.return=t,t=n),t;case 22:return Kd(e,t,n);case 24:return pl(t),l=rt(Je),e===null?(i=cc(),i===null&&(i=He,u=uc(),i.pooledCache=u,u.refCount++,u!==null&&(i.pooledCacheLanes|=n),i=u),t.memoizedState={parent:l,cache:i},sc(t),Rn(t,Je,i)):((e.lanes&n)!==0&&(fc(e,t),ka(t,null,null,n),Za()),i=e.memoizedState,u=t.memoizedState,i.parent!==l?(i={parent:l,cache:l},t.memoizedState=i,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=i),Rn(t,Je,l)):(l=u.cache,Rn(t,Je,l),l!==i.cache&&ic(t,[Je],n,!0))),nt(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(c(156,t.tag))}function vn(e){e.flags|=4}function nm(e,t){if(t.type!=="stylesheet"||(t.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!sh(t)){if(t=Ut.current,t!==null&&((Ee&4194048)===Ee?Jt!==null:(Ee&62914560)!==Ee&&(Ee&536870912)===0||t!==Jt))throw Xa=oc,qf;e.flags|=8192}}function bu(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag!==22?js():536870912,e.lanes|=t,ea|=t)}function Ia(e,t){if(!Ne)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var l=null;n!==null;)n.alternate!==null&&(l=n),n=n.sibling;l===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:l.sibling=null}}function Ye(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,l=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,l|=i.subtreeFlags&65011712,l|=i.flags&65011712,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,l|=i.subtreeFlags,l|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=l,e.childLanes=n,t}function _g(e,t,n){var l=t.pendingProps;switch(tc(t),t.tag){case 31:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ye(t),null;case 1:return Ye(t),null;case 3:return n=t.stateNode,l=null,e!==null&&(l=e.memoizedState.cache),t.memoizedState.cache!==l&&(t.flags|=2048),fn(Je),Be(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(Ha(t)?vn(t):e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,zf())),Ye(t),null;case 26:return n=t.memoizedState,e===null?(vn(t),n!==null?(Ye(t),nm(t,n)):(Ye(t),t.flags&=-16777217)):n?n!==e.memoizedState?(vn(t),Ye(t),nm(t,n)):(Ye(t),t.flags&=-16777217):(e.memoizedProps!==l&&vn(t),Ye(t),t.flags&=-16777217),null;case 27:we(t),n=re.current;var i=t.type;if(e!==null&&t.stateNode!=null)e.memoizedProps!==l&&vn(t);else{if(!l){if(t.stateNode===null)throw Error(c(166));return Ye(t),null}e=ae.current,Ha(t)?Df(t):(e=nh(i,l,n),t.stateNode=e,vn(t))}return Ye(t),null;case 5:if(we(t),n=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==l&&vn(t);else{if(!l){if(t.stateNode===null)throw Error(c(166));return Ye(t),null}if(e=ae.current,Ha(t))Df(t);else{switch(i=Du(re.current),e){case 1:e=i.createElementNS("http://www.w3.org/2000/svg",n);break;case 2:e=i.createElementNS("http://www.w3.org/1998/Math/MathML",n);break;default:switch(n){case"svg":e=i.createElementNS("http://www.w3.org/2000/svg",n);break;case"math":e=i.createElementNS("http://www.w3.org/1998/Math/MathML",n);break;case"script":e=i.createElement("div"),e.innerHTML=" - - - -
- - diff --git a/dist/manifest.json b/dist/manifest.json new file mode 100644 index 0000000..13ae8c7 --- /dev/null +++ b/dist/manifest.json @@ -0,0 +1,32 @@ +{ + "manifest_version": 3, + "name": "Interzept", + "version": "1.0.3", + "description": "Quick access to Interzept - mock, modify, and override API calls. Intercept requests and debug applications efficiently.", + "permissions": ["storage", "activeTab"], + "host_permissions": [""], + "background": { + "service_worker": "background.js" + }, + "content_scripts": [ + { + "matches": [""], + "js": ["content.js"], + "run_at": "document_start" + } + ], + "action": { + "default_popup": "popup.html", + "default_icon": { + "16": "icons/interzept16.png", + "48": "icons/interzept48.png", + "128": "icons/interzept128.png" + } + }, + "options_page": "options.html", + "icons": { + "16": "icons/interzept16.png", + "48": "icons/interzept48.png", + "128": "icons/interzept128.png" + } +} diff --git a/dist/options.html b/dist/options.html new file mode 100644 index 0000000..68118f8 --- /dev/null +++ b/dist/options.html @@ -0,0 +1,14 @@ + + + + + + Interzept Options + + + + + +
+ + diff --git a/dist/options.js b/dist/options.js new file mode 100644 index 0000000..60dff98 --- /dev/null +++ b/dist/options.js @@ -0,0 +1,21424 @@ +var __defProp = Object.defineProperty; +var __defProps = Object.defineProperties; +var __getOwnPropDescs = Object.getOwnPropertyDescriptors; +var __getOwnPropSymbols = Object.getOwnPropertySymbols; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __propIsEnum = Object.prototype.propertyIsEnumerable; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + if (__getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(b)) { + if (__propIsEnum.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + } + return a; +}; +var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); +var __objRest = (source, exclude) => { + var target = {}; + for (var prop in source) + if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) + target[prop] = source[prop]; + if (source != null && __getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(source)) { + if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop)) + target[prop] = source[prop]; + } + return target; +}; +function _mergeNamespaces(n, m) { + for (var i = 0; i < m.length; i++) { + const e = m[i]; + if (typeof e !== "string" && !Array.isArray(e)) { + for (const k in e) { + if (k !== "default" && !(k in n)) { + const d = Object.getOwnPropertyDescriptor(e, k); + if (d) { + Object.defineProperty(n, k, d.get ? d : { + enumerable: true, + get: () => e[k] + }); + } + } + } + } + } + return Object.freeze(Object.defineProperty(n, Symbol.toStringTag, { value: "Module" })); +} +(function polyfill() { + const relList = document.createElement("link").relList; + if (relList && relList.supports && relList.supports("modulepreload")) { + return; + } + for (const link of document.querySelectorAll('link[rel="modulepreload"]')) { + processPreload(link); + } + new MutationObserver((mutations) => { + for (const mutation of mutations) { + if (mutation.type !== "childList") { + continue; + } + for (const node of mutation.addedNodes) { + if (node.tagName === "LINK" && node.rel === "modulepreload") + processPreload(node); + } + } + }).observe(document, { childList: true, subtree: true }); + function getFetchOpts(link) { + const fetchOpts = {}; + if (link.integrity) fetchOpts.integrity = link.integrity; + if (link.referrerPolicy) fetchOpts.referrerPolicy = link.referrerPolicy; + if (link.crossOrigin === "use-credentials") + fetchOpts.credentials = "include"; + else if (link.crossOrigin === "anonymous") fetchOpts.credentials = "omit"; + else fetchOpts.credentials = "same-origin"; + return fetchOpts; + } + function processPreload(link) { + if (link.ep) + return; + link.ep = true; + const fetchOpts = getFetchOpts(link); + fetch(link.href, fetchOpts); + } +})(); +function getDefaultExportFromCjs(x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x; +} +var jsxRuntime = { exports: {} }; +var reactJsxRuntime_production = {}; +/** + * @license React + * react-jsx-runtime.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +var hasRequiredReactJsxRuntime_production; +function requireReactJsxRuntime_production() { + if (hasRequiredReactJsxRuntime_production) return reactJsxRuntime_production; + hasRequiredReactJsxRuntime_production = 1; + var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"), REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"); + function jsxProd(type, config, maybeKey) { + var key = null; + void 0 !== maybeKey && (key = "" + maybeKey); + void 0 !== config.key && (key = "" + config.key); + if ("key" in config) { + maybeKey = {}; + for (var propName in config) + "key" !== propName && (maybeKey[propName] = config[propName]); + } else maybeKey = config; + config = maybeKey.ref; + return { + $$typeof: REACT_ELEMENT_TYPE, + type, + key, + ref: void 0 !== config ? config : null, + props: maybeKey + }; + } + reactJsxRuntime_production.Fragment = REACT_FRAGMENT_TYPE; + reactJsxRuntime_production.jsx = jsxProd; + reactJsxRuntime_production.jsxs = jsxProd; + return reactJsxRuntime_production; +} +var hasRequiredJsxRuntime; +function requireJsxRuntime() { + if (hasRequiredJsxRuntime) return jsxRuntime.exports; + hasRequiredJsxRuntime = 1; + { + jsxRuntime.exports = requireReactJsxRuntime_production(); + } + return jsxRuntime.exports; +} +var jsxRuntimeExports = requireJsxRuntime(); +var client = { exports: {} }; +var reactDomClient_production = {}; +var scheduler = { exports: {} }; +var scheduler_production = {}; +/** + * @license React + * scheduler.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +var hasRequiredScheduler_production; +function requireScheduler_production() { + if (hasRequiredScheduler_production) return scheduler_production; + hasRequiredScheduler_production = 1; + (function(exports) { + function push(heap, node) { + var index2 = heap.length; + heap.push(node); + a: for (; 0 < index2; ) { + var parentIndex = index2 - 1 >>> 1, parent = heap[parentIndex]; + if (0 < compare(parent, node)) + heap[parentIndex] = node, heap[index2] = parent, index2 = parentIndex; + else break a; + } + } + function peek(heap) { + return 0 === heap.length ? null : heap[0]; + } + function pop(heap) { + if (0 === heap.length) return null; + var first = heap[0], last = heap.pop(); + if (last !== first) { + heap[0] = last; + a: for (var index2 = 0, length = heap.length, halfLength = length >>> 1; index2 < halfLength; ) { + var leftIndex = 2 * (index2 + 1) - 1, left = heap[leftIndex], rightIndex = leftIndex + 1, right = heap[rightIndex]; + if (0 > compare(left, last)) + rightIndex < length && 0 > compare(right, left) ? (heap[index2] = right, heap[rightIndex] = last, index2 = rightIndex) : (heap[index2] = left, heap[leftIndex] = last, index2 = leftIndex); + else if (rightIndex < length && 0 > compare(right, last)) + heap[index2] = right, heap[rightIndex] = last, index2 = rightIndex; + else break a; + } + } + return first; + } + function compare(a, b) { + var diff = a.sortIndex - b.sortIndex; + return 0 !== diff ? diff : a.id - b.id; + } + exports.unstable_now = void 0; + if ("object" === typeof performance && "function" === typeof performance.now) { + var localPerformance = performance; + exports.unstable_now = function() { + return localPerformance.now(); + }; + } else { + var localDate = Date, initialTime = localDate.now(); + exports.unstable_now = function() { + return localDate.now() - initialTime; + }; + } + var taskQueue = [], timerQueue = [], taskIdCounter = 1, currentTask = null, currentPriorityLevel = 3, isPerformingWork = false, isHostCallbackScheduled = false, isHostTimeoutScheduled = false, needsPaint = false, localSetTimeout = "function" === typeof setTimeout ? setTimeout : null, localClearTimeout = "function" === typeof clearTimeout ? clearTimeout : null, localSetImmediate = "undefined" !== typeof setImmediate ? setImmediate : null; + function advanceTimers(currentTime) { + for (var timer = peek(timerQueue); null !== timer; ) { + if (null === timer.callback) pop(timerQueue); + else if (timer.startTime <= currentTime) + pop(timerQueue), timer.sortIndex = timer.expirationTime, push(taskQueue, timer); + else break; + timer = peek(timerQueue); + } + } + function handleTimeout(currentTime) { + isHostTimeoutScheduled = false; + advanceTimers(currentTime); + if (!isHostCallbackScheduled) + if (null !== peek(taskQueue)) + isHostCallbackScheduled = true, isMessageLoopRunning || (isMessageLoopRunning = true, schedulePerformWorkUntilDeadline()); + else { + var firstTimer = peek(timerQueue); + null !== firstTimer && requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime); + } + } + var isMessageLoopRunning = false, taskTimeoutID = -1, frameInterval = 5, startTime = -1; + function shouldYieldToHost() { + return needsPaint ? true : exports.unstable_now() - startTime < frameInterval ? false : true; + } + function performWorkUntilDeadline() { + needsPaint = false; + if (isMessageLoopRunning) { + var currentTime = exports.unstable_now(); + startTime = currentTime; + var hasMoreWork = true; + try { + a: { + isHostCallbackScheduled = false; + isHostTimeoutScheduled && (isHostTimeoutScheduled = false, localClearTimeout(taskTimeoutID), taskTimeoutID = -1); + isPerformingWork = true; + var previousPriorityLevel = currentPriorityLevel; + try { + b: { + advanceTimers(currentTime); + for (currentTask = peek(taskQueue); null !== currentTask && !(currentTask.expirationTime > currentTime && shouldYieldToHost()); ) { + var callback = currentTask.callback; + if ("function" === typeof callback) { + currentTask.callback = null; + currentPriorityLevel = currentTask.priorityLevel; + var continuationCallback = callback( + currentTask.expirationTime <= currentTime + ); + currentTime = exports.unstable_now(); + if ("function" === typeof continuationCallback) { + currentTask.callback = continuationCallback; + advanceTimers(currentTime); + hasMoreWork = true; + break b; + } + currentTask === peek(taskQueue) && pop(taskQueue); + advanceTimers(currentTime); + } else pop(taskQueue); + currentTask = peek(taskQueue); + } + if (null !== currentTask) hasMoreWork = true; + else { + var firstTimer = peek(timerQueue); + null !== firstTimer && requestHostTimeout( + handleTimeout, + firstTimer.startTime - currentTime + ); + hasMoreWork = false; + } + } + break a; + } finally { + currentTask = null, currentPriorityLevel = previousPriorityLevel, isPerformingWork = false; + } + hasMoreWork = void 0; + } + } finally { + hasMoreWork ? schedulePerformWorkUntilDeadline() : isMessageLoopRunning = false; + } + } + } + var schedulePerformWorkUntilDeadline; + if ("function" === typeof localSetImmediate) + schedulePerformWorkUntilDeadline = function() { + localSetImmediate(performWorkUntilDeadline); + }; + else if ("undefined" !== typeof MessageChannel) { + var channel = new MessageChannel(), port = channel.port2; + channel.port1.onmessage = performWorkUntilDeadline; + schedulePerformWorkUntilDeadline = function() { + port.postMessage(null); + }; + } else + schedulePerformWorkUntilDeadline = function() { + localSetTimeout(performWorkUntilDeadline, 0); + }; + function requestHostTimeout(callback, ms) { + taskTimeoutID = localSetTimeout(function() { + callback(exports.unstable_now()); + }, ms); + } + exports.unstable_IdlePriority = 5; + exports.unstable_ImmediatePriority = 1; + exports.unstable_LowPriority = 4; + exports.unstable_NormalPriority = 3; + exports.unstable_Profiling = null; + exports.unstable_UserBlockingPriority = 2; + exports.unstable_cancelCallback = function(task) { + task.callback = null; + }; + exports.unstable_forceFrameRate = function(fps) { + 0 > fps || 125 < fps ? console.error( + "forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported" + ) : frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5; + }; + exports.unstable_getCurrentPriorityLevel = function() { + return currentPriorityLevel; + }; + exports.unstable_next = function(eventHandler) { + switch (currentPriorityLevel) { + case 1: + case 2: + case 3: + var priorityLevel = 3; + break; + default: + priorityLevel = currentPriorityLevel; + } + var previousPriorityLevel = currentPriorityLevel; + currentPriorityLevel = priorityLevel; + try { + return eventHandler(); + } finally { + currentPriorityLevel = previousPriorityLevel; + } + }; + exports.unstable_requestPaint = function() { + needsPaint = true; + }; + exports.unstable_runWithPriority = function(priorityLevel, eventHandler) { + switch (priorityLevel) { + case 1: + case 2: + case 3: + case 4: + case 5: + break; + default: + priorityLevel = 3; + } + var previousPriorityLevel = currentPriorityLevel; + currentPriorityLevel = priorityLevel; + try { + return eventHandler(); + } finally { + currentPriorityLevel = previousPriorityLevel; + } + }; + exports.unstable_scheduleCallback = function(priorityLevel, callback, options) { + var currentTime = exports.unstable_now(); + "object" === typeof options && null !== options ? (options = options.delay, options = "number" === typeof options && 0 < options ? currentTime + options : currentTime) : options = currentTime; + switch (priorityLevel) { + case 1: + var timeout = -1; + break; + case 2: + timeout = 250; + break; + case 5: + timeout = 1073741823; + break; + case 4: + timeout = 1e4; + break; + default: + timeout = 5e3; + } + timeout = options + timeout; + priorityLevel = { + id: taskIdCounter++, + callback, + priorityLevel, + startTime: options, + expirationTime: timeout, + sortIndex: -1 + }; + options > currentTime ? (priorityLevel.sortIndex = options, push(timerQueue, priorityLevel), null === peek(taskQueue) && priorityLevel === peek(timerQueue) && (isHostTimeoutScheduled ? (localClearTimeout(taskTimeoutID), taskTimeoutID = -1) : isHostTimeoutScheduled = true, requestHostTimeout(handleTimeout, options - currentTime))) : (priorityLevel.sortIndex = timeout, push(taskQueue, priorityLevel), isHostCallbackScheduled || isPerformingWork || (isHostCallbackScheduled = true, isMessageLoopRunning || (isMessageLoopRunning = true, schedulePerformWorkUntilDeadline()))); + return priorityLevel; + }; + exports.unstable_shouldYield = shouldYieldToHost; + exports.unstable_wrapCallback = function(callback) { + var parentPriorityLevel = currentPriorityLevel; + return function() { + var previousPriorityLevel = currentPriorityLevel; + currentPriorityLevel = parentPriorityLevel; + try { + return callback.apply(this, arguments); + } finally { + currentPriorityLevel = previousPriorityLevel; + } + }; + }; + })(scheduler_production); + return scheduler_production; +} +var hasRequiredScheduler; +function requireScheduler() { + if (hasRequiredScheduler) return scheduler.exports; + hasRequiredScheduler = 1; + { + scheduler.exports = requireScheduler_production(); + } + return scheduler.exports; +} +var react = { exports: {} }; +var react_production = {}; +/** + * @license React + * react.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +var hasRequiredReact_production; +function requireReact_production() { + if (hasRequiredReact_production) return react_production; + hasRequiredReact_production = 1; + var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"), REACT_PORTAL_TYPE = Symbol.for("react.portal"), REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"), REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"), REACT_PROFILER_TYPE = Symbol.for("react.profiler"), REACT_CONSUMER_TYPE = Symbol.for("react.consumer"), REACT_CONTEXT_TYPE = Symbol.for("react.context"), REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"), REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"), REACT_MEMO_TYPE = Symbol.for("react.memo"), REACT_LAZY_TYPE = Symbol.for("react.lazy"), MAYBE_ITERATOR_SYMBOL = Symbol.iterator; + function getIteratorFn(maybeIterable) { + if (null === maybeIterable || "object" !== typeof maybeIterable) return null; + maybeIterable = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable["@@iterator"]; + return "function" === typeof maybeIterable ? maybeIterable : null; + } + var ReactNoopUpdateQueue = { + isMounted: function() { + return false; + }, + enqueueForceUpdate: function() { + }, + enqueueReplaceState: function() { + }, + enqueueSetState: function() { + } + }, assign = Object.assign, emptyObject = {}; + function Component(props, context, updater) { + this.props = props; + this.context = context; + this.refs = emptyObject; + this.updater = updater || ReactNoopUpdateQueue; + } + Component.prototype.isReactComponent = {}; + Component.prototype.setState = function(partialState, callback) { + if ("object" !== typeof partialState && "function" !== typeof partialState && null != partialState) + throw Error( + "takes an object of state variables to update or a function which returns an object of state variables." + ); + this.updater.enqueueSetState(this, partialState, callback, "setState"); + }; + Component.prototype.forceUpdate = function(callback) { + this.updater.enqueueForceUpdate(this, callback, "forceUpdate"); + }; + function ComponentDummy() { + } + ComponentDummy.prototype = Component.prototype; + function PureComponent(props, context, updater) { + this.props = props; + this.context = context; + this.refs = emptyObject; + this.updater = updater || ReactNoopUpdateQueue; + } + var pureComponentPrototype = PureComponent.prototype = new ComponentDummy(); + pureComponentPrototype.constructor = PureComponent; + assign(pureComponentPrototype, Component.prototype); + pureComponentPrototype.isPureReactComponent = true; + var isArrayImpl = Array.isArray, ReactSharedInternals = { H: null, A: null, T: null, S: null, V: null }, hasOwnProperty = Object.prototype.hasOwnProperty; + function ReactElement(type, key, self, source, owner, props) { + self = props.ref; + return { + $$typeof: REACT_ELEMENT_TYPE, + type, + key, + ref: void 0 !== self ? self : null, + props + }; + } + function cloneAndReplaceKey(oldElement, newKey) { + return ReactElement( + oldElement.type, + newKey, + void 0, + void 0, + void 0, + oldElement.props + ); + } + function isValidElement(object) { + return "object" === typeof object && null !== object && object.$$typeof === REACT_ELEMENT_TYPE; + } + function escape(key) { + var escaperLookup = { "=": "=0", ":": "=2" }; + return "$" + key.replace(/[=:]/g, function(match) { + return escaperLookup[match]; + }); + } + var userProvidedKeyEscapeRegex = /\/+/g; + function getElementKey(element, index2) { + return "object" === typeof element && null !== element && null != element.key ? escape("" + element.key) : index2.toString(36); + } + function noop$1() { + } + function resolveThenable(thenable) { + switch (thenable.status) { + case "fulfilled": + return thenable.value; + case "rejected": + throw thenable.reason; + default: + switch ("string" === typeof thenable.status ? thenable.then(noop$1, noop$1) : (thenable.status = "pending", thenable.then( + function(fulfilledValue) { + "pending" === thenable.status && (thenable.status = "fulfilled", thenable.value = fulfilledValue); + }, + function(error) { + "pending" === thenable.status && (thenable.status = "rejected", thenable.reason = error); + } + )), thenable.status) { + case "fulfilled": + return thenable.value; + case "rejected": + throw thenable.reason; + } + } + throw thenable; + } + function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) { + var type = typeof children; + if ("undefined" === type || "boolean" === type) children = null; + var invokeCallback = false; + if (null === children) invokeCallback = true; + else + switch (type) { + case "bigint": + case "string": + case "number": + invokeCallback = true; + break; + case "object": + switch (children.$$typeof) { + case REACT_ELEMENT_TYPE: + case REACT_PORTAL_TYPE: + invokeCallback = true; + break; + case REACT_LAZY_TYPE: + return invokeCallback = children._init, mapIntoArray( + invokeCallback(children._payload), + array, + escapedPrefix, + nameSoFar, + callback + ); + } + } + if (invokeCallback) + return callback = callback(children), invokeCallback = "" === nameSoFar ? "." + getElementKey(children, 0) : nameSoFar, isArrayImpl(callback) ? (escapedPrefix = "", null != invokeCallback && (escapedPrefix = invokeCallback.replace(userProvidedKeyEscapeRegex, "$&/") + "/"), mapIntoArray(callback, array, escapedPrefix, "", function(c) { + return c; + })) : null != callback && (isValidElement(callback) && (callback = cloneAndReplaceKey( + callback, + escapedPrefix + (null == callback.key || children && children.key === callback.key ? "" : ("" + callback.key).replace( + userProvidedKeyEscapeRegex, + "$&/" + ) + "/") + invokeCallback + )), array.push(callback)), 1; + invokeCallback = 0; + var nextNamePrefix = "" === nameSoFar ? "." : nameSoFar + ":"; + if (isArrayImpl(children)) + for (var i = 0; i < children.length; i++) + nameSoFar = children[i], type = nextNamePrefix + getElementKey(nameSoFar, i), invokeCallback += mapIntoArray( + nameSoFar, + array, + escapedPrefix, + type, + callback + ); + else if (i = getIteratorFn(children), "function" === typeof i) + for (children = i.call(children), i = 0; !(nameSoFar = children.next()).done; ) + nameSoFar = nameSoFar.value, type = nextNamePrefix + getElementKey(nameSoFar, i++), invokeCallback += mapIntoArray( + nameSoFar, + array, + escapedPrefix, + type, + callback + ); + else if ("object" === type) { + if ("function" === typeof children.then) + return mapIntoArray( + resolveThenable(children), + array, + escapedPrefix, + nameSoFar, + callback + ); + array = String(children); + throw Error( + "Objects are not valid as a React child (found: " + ("[object Object]" === array ? "object with keys {" + Object.keys(children).join(", ") + "}" : array) + "). If you meant to render a collection of children, use an array instead." + ); + } + return invokeCallback; + } + function mapChildren(children, func, context) { + if (null == children) return children; + var result = [], count2 = 0; + mapIntoArray(children, result, "", "", function(child) { + return func.call(context, child, count2++); + }); + return result; + } + function lazyInitializer(payload) { + if (-1 === payload._status) { + var ctor = payload._result; + ctor = ctor(); + ctor.then( + function(moduleObject) { + if (0 === payload._status || -1 === payload._status) + payload._status = 1, payload._result = moduleObject; + }, + function(error) { + if (0 === payload._status || -1 === payload._status) + payload._status = 2, payload._result = error; + } + ); + -1 === payload._status && (payload._status = 0, payload._result = ctor); + } + if (1 === payload._status) return payload._result.default; + throw payload._result; + } + var reportGlobalError = "function" === typeof reportError ? reportError : function(error) { + if ("object" === typeof window && "function" === typeof window.ErrorEvent) { + var event = new window.ErrorEvent("error", { + bubbles: true, + cancelable: true, + message: "object" === typeof error && null !== error && "string" === typeof error.message ? String(error.message) : String(error), + error + }); + if (!window.dispatchEvent(event)) return; + } else if ("object" === typeof process && "function" === typeof process.emit) { + process.emit("uncaughtException", error); + return; + } + console.error(error); + }; + function noop3() { + } + react_production.Children = { + map: mapChildren, + forEach: function(children, forEachFunc, forEachContext) { + mapChildren( + children, + function() { + forEachFunc.apply(this, arguments); + }, + forEachContext + ); + }, + count: function(children) { + var n = 0; + mapChildren(children, function() { + n++; + }); + return n; + }, + toArray: function(children) { + return mapChildren(children, function(child) { + return child; + }) || []; + }, + only: function(children) { + if (!isValidElement(children)) + throw Error( + "React.Children.only expected to receive a single React element child." + ); + return children; + } + }; + react_production.Component = Component; + react_production.Fragment = REACT_FRAGMENT_TYPE; + react_production.Profiler = REACT_PROFILER_TYPE; + react_production.PureComponent = PureComponent; + react_production.StrictMode = REACT_STRICT_MODE_TYPE; + react_production.Suspense = REACT_SUSPENSE_TYPE; + react_production.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = ReactSharedInternals; + react_production.__COMPILER_RUNTIME = { + __proto__: null, + c: function(size2) { + return ReactSharedInternals.H.useMemoCache(size2); + } + }; + react_production.cache = function(fn) { + return function() { + return fn.apply(null, arguments); + }; + }; + react_production.cloneElement = function(element, config, children) { + if (null === element || void 0 === element) + throw Error( + "The argument must be a React element, but you passed " + element + "." + ); + var props = assign({}, element.props), key = element.key, owner = void 0; + if (null != config) + for (propName in void 0 !== config.ref && (owner = void 0), void 0 !== config.key && (key = "" + config.key), config) + !hasOwnProperty.call(config, propName) || "key" === propName || "__self" === propName || "__source" === propName || "ref" === propName && void 0 === config.ref || (props[propName] = config[propName]); + var propName = arguments.length - 2; + if (1 === propName) props.children = children; + else if (1 < propName) { + for (var childArray = Array(propName), i = 0; i < propName; i++) + childArray[i] = arguments[i + 2]; + props.children = childArray; + } + return ReactElement(element.type, key, void 0, void 0, owner, props); + }; + react_production.createContext = function(defaultValue) { + defaultValue = { + $$typeof: REACT_CONTEXT_TYPE, + _currentValue: defaultValue, + _currentValue2: defaultValue, + _threadCount: 0, + Provider: null, + Consumer: null + }; + defaultValue.Provider = defaultValue; + defaultValue.Consumer = { + $$typeof: REACT_CONSUMER_TYPE, + _context: defaultValue + }; + return defaultValue; + }; + react_production.createElement = function(type, config, children) { + var propName, props = {}, key = null; + if (null != config) + for (propName in void 0 !== config.key && (key = "" + config.key), config) + hasOwnProperty.call(config, propName) && "key" !== propName && "__self" !== propName && "__source" !== propName && (props[propName] = config[propName]); + var childrenLength = arguments.length - 2; + if (1 === childrenLength) props.children = children; + else if (1 < childrenLength) { + for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++) + childArray[i] = arguments[i + 2]; + props.children = childArray; + } + if (type && type.defaultProps) + for (propName in childrenLength = type.defaultProps, childrenLength) + void 0 === props[propName] && (props[propName] = childrenLength[propName]); + return ReactElement(type, key, void 0, void 0, null, props); + }; + react_production.createRef = function() { + return { current: null }; + }; + react_production.forwardRef = function(render) { + return { $$typeof: REACT_FORWARD_REF_TYPE, render }; + }; + react_production.isValidElement = isValidElement; + react_production.lazy = function(ctor) { + return { + $$typeof: REACT_LAZY_TYPE, + _payload: { _status: -1, _result: ctor }, + _init: lazyInitializer + }; + }; + react_production.memo = function(type, compare) { + return { + $$typeof: REACT_MEMO_TYPE, + type, + compare: void 0 === compare ? null : compare + }; + }; + react_production.startTransition = function(scope) { + var prevTransition = ReactSharedInternals.T, currentTransition = {}; + ReactSharedInternals.T = currentTransition; + try { + var returnValue = scope(), onStartTransitionFinish = ReactSharedInternals.S; + null !== onStartTransitionFinish && onStartTransitionFinish(currentTransition, returnValue); + "object" === typeof returnValue && null !== returnValue && "function" === typeof returnValue.then && returnValue.then(noop3, reportGlobalError); + } catch (error) { + reportGlobalError(error); + } finally { + ReactSharedInternals.T = prevTransition; + } + }; + react_production.unstable_useCacheRefresh = function() { + return ReactSharedInternals.H.useCacheRefresh(); + }; + react_production.use = function(usable) { + return ReactSharedInternals.H.use(usable); + }; + react_production.useActionState = function(action, initialState, permalink) { + return ReactSharedInternals.H.useActionState(action, initialState, permalink); + }; + react_production.useCallback = function(callback, deps) { + return ReactSharedInternals.H.useCallback(callback, deps); + }; + react_production.useContext = function(Context) { + return ReactSharedInternals.H.useContext(Context); + }; + react_production.useDebugValue = function() { + }; + react_production.useDeferredValue = function(value, initialValue) { + return ReactSharedInternals.H.useDeferredValue(value, initialValue); + }; + react_production.useEffect = function(create, createDeps, update) { + var dispatcher = ReactSharedInternals.H; + if ("function" === typeof update) + throw Error( + "useEffect CRUD overload is not enabled in this build of React." + ); + return dispatcher.useEffect(create, createDeps); + }; + react_production.useId = function() { + return ReactSharedInternals.H.useId(); + }; + react_production.useImperativeHandle = function(ref, create, deps) { + return ReactSharedInternals.H.useImperativeHandle(ref, create, deps); + }; + react_production.useInsertionEffect = function(create, deps) { + return ReactSharedInternals.H.useInsertionEffect(create, deps); + }; + react_production.useLayoutEffect = function(create, deps) { + return ReactSharedInternals.H.useLayoutEffect(create, deps); + }; + react_production.useMemo = function(create, deps) { + return ReactSharedInternals.H.useMemo(create, deps); + }; + react_production.useOptimistic = function(passthrough, reducer) { + return ReactSharedInternals.H.useOptimistic(passthrough, reducer); + }; + react_production.useReducer = function(reducer, initialArg, init) { + return ReactSharedInternals.H.useReducer(reducer, initialArg, init); + }; + react_production.useRef = function(initialValue) { + return ReactSharedInternals.H.useRef(initialValue); + }; + react_production.useState = function(initialState) { + return ReactSharedInternals.H.useState(initialState); + }; + react_production.useSyncExternalStore = function(subscribe, getSnapshot, getServerSnapshot) { + return ReactSharedInternals.H.useSyncExternalStore( + subscribe, + getSnapshot, + getServerSnapshot + ); + }; + react_production.useTransition = function() { + return ReactSharedInternals.H.useTransition(); + }; + react_production.version = "19.1.0"; + return react_production; +} +var hasRequiredReact; +function requireReact() { + if (hasRequiredReact) return react.exports; + hasRequiredReact = 1; + { + react.exports = requireReact_production(); + } + return react.exports; +} +var reactDom = { exports: {} }; +var reactDom_production = {}; +/** + * @license React + * react-dom.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +var hasRequiredReactDom_production; +function requireReactDom_production() { + if (hasRequiredReactDom_production) return reactDom_production; + hasRequiredReactDom_production = 1; + var React2 = requireReact(); + function formatProdErrorMessage(code) { + var url = "https://react.dev/errors/" + code; + if (1 < arguments.length) { + url += "?args[]=" + encodeURIComponent(arguments[1]); + for (var i = 2; i < arguments.length; i++) + url += "&args[]=" + encodeURIComponent(arguments[i]); + } + return "Minified React error #" + code + "; visit " + url + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings."; + } + function noop3() { + } + var Internals = { + d: { + f: noop3, + r: function() { + throw Error(formatProdErrorMessage(522)); + }, + D: noop3, + C: noop3, + L: noop3, + m: noop3, + X: noop3, + S: noop3, + M: noop3 + }, + p: 0, + findDOMNode: null + }, REACT_PORTAL_TYPE = Symbol.for("react.portal"); + function createPortal$1(children, containerInfo, implementation) { + var key = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null; + return { + $$typeof: REACT_PORTAL_TYPE, + key: null == key ? null : "" + key, + children, + containerInfo, + implementation + }; + } + var ReactSharedInternals = React2.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE; + function getCrossOriginStringAs(as, input) { + if ("font" === as) return ""; + if ("string" === typeof input) + return "use-credentials" === input ? input : ""; + } + reactDom_production.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = Internals; + reactDom_production.createPortal = function(children, container2) { + var key = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null; + if (!container2 || 1 !== container2.nodeType && 9 !== container2.nodeType && 11 !== container2.nodeType) + throw Error(formatProdErrorMessage(299)); + return createPortal$1(children, container2, null, key); + }; + reactDom_production.flushSync = function(fn) { + var previousTransition = ReactSharedInternals.T, previousUpdatePriority = Internals.p; + try { + if (ReactSharedInternals.T = null, Internals.p = 2, fn) return fn(); + } finally { + ReactSharedInternals.T = previousTransition, Internals.p = previousUpdatePriority, Internals.d.f(); + } + }; + reactDom_production.preconnect = function(href, options) { + "string" === typeof href && (options ? (options = options.crossOrigin, options = "string" === typeof options ? "use-credentials" === options ? options : "" : void 0) : options = null, Internals.d.C(href, options)); + }; + reactDom_production.prefetchDNS = function(href) { + "string" === typeof href && Internals.d.D(href); + }; + reactDom_production.preinit = function(href, options) { + if ("string" === typeof href && options && "string" === typeof options.as) { + var as = options.as, crossOrigin = getCrossOriginStringAs(as, options.crossOrigin), integrity = "string" === typeof options.integrity ? options.integrity : void 0, fetchPriority = "string" === typeof options.fetchPriority ? options.fetchPriority : void 0; + "style" === as ? Internals.d.S( + href, + "string" === typeof options.precedence ? options.precedence : void 0, + { + crossOrigin, + integrity, + fetchPriority + } + ) : "script" === as && Internals.d.X(href, { + crossOrigin, + integrity, + fetchPriority, + nonce: "string" === typeof options.nonce ? options.nonce : void 0 + }); + } + }; + reactDom_production.preinitModule = function(href, options) { + if ("string" === typeof href) + if ("object" === typeof options && null !== options) { + if (null == options.as || "script" === options.as) { + var crossOrigin = getCrossOriginStringAs( + options.as, + options.crossOrigin + ); + Internals.d.M(href, { + crossOrigin, + integrity: "string" === typeof options.integrity ? options.integrity : void 0, + nonce: "string" === typeof options.nonce ? options.nonce : void 0 + }); + } + } else null == options && Internals.d.M(href); + }; + reactDom_production.preload = function(href, options) { + if ("string" === typeof href && "object" === typeof options && null !== options && "string" === typeof options.as) { + var as = options.as, crossOrigin = getCrossOriginStringAs(as, options.crossOrigin); + Internals.d.L(href, as, { + crossOrigin, + integrity: "string" === typeof options.integrity ? options.integrity : void 0, + nonce: "string" === typeof options.nonce ? options.nonce : void 0, + type: "string" === typeof options.type ? options.type : void 0, + fetchPriority: "string" === typeof options.fetchPriority ? options.fetchPriority : void 0, + referrerPolicy: "string" === typeof options.referrerPolicy ? options.referrerPolicy : void 0, + imageSrcSet: "string" === typeof options.imageSrcSet ? options.imageSrcSet : void 0, + imageSizes: "string" === typeof options.imageSizes ? options.imageSizes : void 0, + media: "string" === typeof options.media ? options.media : void 0 + }); + } + }; + reactDom_production.preloadModule = function(href, options) { + if ("string" === typeof href) + if (options) { + var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin); + Internals.d.m(href, { + as: "string" === typeof options.as && "script" !== options.as ? options.as : void 0, + crossOrigin, + integrity: "string" === typeof options.integrity ? options.integrity : void 0 + }); + } else Internals.d.m(href); + }; + reactDom_production.requestFormReset = function(form) { + Internals.d.r(form); + }; + reactDom_production.unstable_batchedUpdates = function(fn, a) { + return fn(a); + }; + reactDom_production.useFormState = function(action, initialState, permalink) { + return ReactSharedInternals.H.useFormState(action, initialState, permalink); + }; + reactDom_production.useFormStatus = function() { + return ReactSharedInternals.H.useHostTransitionStatus(); + }; + reactDom_production.version = "19.1.0"; + return reactDom_production; +} +var hasRequiredReactDom; +function requireReactDom() { + if (hasRequiredReactDom) return reactDom.exports; + hasRequiredReactDom = 1; + function checkDCE() { + if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === "undefined" || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== "function") { + return; + } + try { + __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE); + } catch (err) { + console.error(err); + } + } + { + checkDCE(); + reactDom.exports = requireReactDom_production(); + } + return reactDom.exports; +} +/** + * @license React + * react-dom-client.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +var hasRequiredReactDomClient_production; +function requireReactDomClient_production() { + if (hasRequiredReactDomClient_production) return reactDomClient_production; + hasRequiredReactDomClient_production = 1; + var Scheduler = requireScheduler(), React2 = requireReact(), ReactDOM2 = requireReactDom(); + function formatProdErrorMessage(code) { + var url = "https://react.dev/errors/" + code; + if (1 < arguments.length) { + url += "?args[]=" + encodeURIComponent(arguments[1]); + for (var i = 2; i < arguments.length; i++) + url += "&args[]=" + encodeURIComponent(arguments[i]); + } + return "Minified React error #" + code + "; visit " + url + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings."; + } + function isValidContainer(node) { + return !(!node || 1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType); + } + function getNearestMountedFiber(fiber) { + var node = fiber, nearestMounted = fiber; + if (fiber.alternate) for (; node.return; ) node = node.return; + else { + fiber = node; + do + node = fiber, 0 !== (node.flags & 4098) && (nearestMounted = node.return), fiber = node.return; + while (fiber); + } + return 3 === node.tag ? nearestMounted : null; + } + function getSuspenseInstanceFromFiber(fiber) { + if (13 === fiber.tag) { + var suspenseState = fiber.memoizedState; + null === suspenseState && (fiber = fiber.alternate, null !== fiber && (suspenseState = fiber.memoizedState)); + if (null !== suspenseState) return suspenseState.dehydrated; + } + return null; + } + function assertIsMounted(fiber) { + if (getNearestMountedFiber(fiber) !== fiber) + throw Error(formatProdErrorMessage(188)); + } + function findCurrentFiberUsingSlowPath(fiber) { + var alternate = fiber.alternate; + if (!alternate) { + alternate = getNearestMountedFiber(fiber); + if (null === alternate) throw Error(formatProdErrorMessage(188)); + return alternate !== fiber ? null : fiber; + } + for (var a = fiber, b = alternate; ; ) { + var parentA = a.return; + if (null === parentA) break; + var parentB = parentA.alternate; + if (null === parentB) { + b = parentA.return; + if (null !== b) { + a = b; + continue; + } + break; + } + if (parentA.child === parentB.child) { + for (parentB = parentA.child; parentB; ) { + if (parentB === a) return assertIsMounted(parentA), fiber; + if (parentB === b) return assertIsMounted(parentA), alternate; + parentB = parentB.sibling; + } + throw Error(formatProdErrorMessage(188)); + } + if (a.return !== b.return) a = parentA, b = parentB; + else { + for (var didFindChild = false, child$0 = parentA.child; child$0; ) { + if (child$0 === a) { + didFindChild = true; + a = parentA; + b = parentB; + break; + } + if (child$0 === b) { + didFindChild = true; + b = parentA; + a = parentB; + break; + } + child$0 = child$0.sibling; + } + if (!didFindChild) { + for (child$0 = parentB.child; child$0; ) { + if (child$0 === a) { + didFindChild = true; + a = parentB; + b = parentA; + break; + } + if (child$0 === b) { + didFindChild = true; + b = parentB; + a = parentA; + break; + } + child$0 = child$0.sibling; + } + if (!didFindChild) throw Error(formatProdErrorMessage(189)); + } + } + if (a.alternate !== b) throw Error(formatProdErrorMessage(190)); + } + if (3 !== a.tag) throw Error(formatProdErrorMessage(188)); + return a.stateNode.current === a ? fiber : alternate; + } + function findCurrentHostFiberImpl(node) { + var tag = node.tag; + if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node; + for (node = node.child; null !== node; ) { + tag = findCurrentHostFiberImpl(node); + if (null !== tag) return tag; + node = node.sibling; + } + return null; + } + var assign = Object.assign, REACT_LEGACY_ELEMENT_TYPE = Symbol.for("react.element"), REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"), REACT_PORTAL_TYPE = Symbol.for("react.portal"), REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"), REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"), REACT_PROFILER_TYPE = Symbol.for("react.profiler"), REACT_PROVIDER_TYPE = Symbol.for("react.provider"), REACT_CONSUMER_TYPE = Symbol.for("react.consumer"), REACT_CONTEXT_TYPE = Symbol.for("react.context"), REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"), REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"), REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"), REACT_MEMO_TYPE = Symbol.for("react.memo"), REACT_LAZY_TYPE = Symbol.for("react.lazy"); + var REACT_ACTIVITY_TYPE = Symbol.for("react.activity"); + var REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"); + var MAYBE_ITERATOR_SYMBOL = Symbol.iterator; + function getIteratorFn(maybeIterable) { + if (null === maybeIterable || "object" !== typeof maybeIterable) return null; + maybeIterable = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable["@@iterator"]; + return "function" === typeof maybeIterable ? maybeIterable : null; + } + var REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"); + function getComponentNameFromType(type) { + if (null == type) return null; + if ("function" === typeof type) + return type.$$typeof === REACT_CLIENT_REFERENCE ? null : type.displayName || type.name || null; + if ("string" === typeof type) return type; + switch (type) { + case REACT_FRAGMENT_TYPE: + return "Fragment"; + case REACT_PROFILER_TYPE: + return "Profiler"; + case REACT_STRICT_MODE_TYPE: + return "StrictMode"; + case REACT_SUSPENSE_TYPE: + return "Suspense"; + case REACT_SUSPENSE_LIST_TYPE: + return "SuspenseList"; + case REACT_ACTIVITY_TYPE: + return "Activity"; + } + if ("object" === typeof type) + switch (type.$$typeof) { + case REACT_PORTAL_TYPE: + return "Portal"; + case REACT_CONTEXT_TYPE: + return (type.displayName || "Context") + ".Provider"; + case REACT_CONSUMER_TYPE: + return (type._context.displayName || "Context") + ".Consumer"; + case REACT_FORWARD_REF_TYPE: + var innerType = type.render; + type = type.displayName; + type || (type = innerType.displayName || innerType.name || "", type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"); + return type; + case REACT_MEMO_TYPE: + return innerType = type.displayName || null, null !== innerType ? innerType : getComponentNameFromType(type.type) || "Memo"; + case REACT_LAZY_TYPE: + innerType = type._payload; + type = type._init; + try { + return getComponentNameFromType(type(innerType)); + } catch (x) { + } + } + return null; + } + var isArrayImpl = Array.isArray, ReactSharedInternals = React2.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, ReactDOMSharedInternals = ReactDOM2.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, sharedNotPendingObject = { + pending: false, + data: null, + method: null, + action: null + }, valueStack = [], index2 = -1; + function createCursor(defaultValue) { + return { current: defaultValue }; + } + function pop(cursor) { + 0 > index2 || (cursor.current = valueStack[index2], valueStack[index2] = null, index2--); + } + function push(cursor, value) { + index2++; + valueStack[index2] = cursor.current; + cursor.current = value; + } + var contextStackCursor = createCursor(null), contextFiberStackCursor = createCursor(null), rootInstanceStackCursor = createCursor(null), hostTransitionProviderCursor = createCursor(null); + function pushHostContainer(fiber, nextRootInstance) { + push(rootInstanceStackCursor, nextRootInstance); + push(contextFiberStackCursor, fiber); + push(contextStackCursor, null); + switch (nextRootInstance.nodeType) { + case 9: + case 11: + fiber = (fiber = nextRootInstance.documentElement) ? (fiber = fiber.namespaceURI) ? getOwnHostContext(fiber) : 0 : 0; + break; + default: + if (fiber = nextRootInstance.tagName, nextRootInstance = nextRootInstance.namespaceURI) + nextRootInstance = getOwnHostContext(nextRootInstance), fiber = getChildHostContextProd(nextRootInstance, fiber); + else + switch (fiber) { + case "svg": + fiber = 1; + break; + case "math": + fiber = 2; + break; + default: + fiber = 0; + } + } + pop(contextStackCursor); + push(contextStackCursor, fiber); + } + function popHostContainer() { + pop(contextStackCursor); + pop(contextFiberStackCursor); + pop(rootInstanceStackCursor); + } + function pushHostContext(fiber) { + null !== fiber.memoizedState && push(hostTransitionProviderCursor, fiber); + var context = contextStackCursor.current; + var JSCompiler_inline_result = getChildHostContextProd(context, fiber.type); + context !== JSCompiler_inline_result && (push(contextFiberStackCursor, fiber), push(contextStackCursor, JSCompiler_inline_result)); + } + function popHostContext(fiber) { + contextFiberStackCursor.current === fiber && (pop(contextStackCursor), pop(contextFiberStackCursor)); + hostTransitionProviderCursor.current === fiber && (pop(hostTransitionProviderCursor), HostTransitionContext._currentValue = sharedNotPendingObject); + } + var hasOwnProperty = Object.prototype.hasOwnProperty, scheduleCallback$3 = Scheduler.unstable_scheduleCallback, cancelCallback$1 = Scheduler.unstable_cancelCallback, shouldYield = Scheduler.unstable_shouldYield, requestPaint = Scheduler.unstable_requestPaint, now = Scheduler.unstable_now, getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel, ImmediatePriority = Scheduler.unstable_ImmediatePriority, UserBlockingPriority = Scheduler.unstable_UserBlockingPriority, NormalPriority$1 = Scheduler.unstable_NormalPriority, LowPriority = Scheduler.unstable_LowPriority, IdlePriority = Scheduler.unstable_IdlePriority, log$1 = Scheduler.log, unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue, rendererID = null, injectedHook = null; + function setIsStrictModeForDevtools(newIsStrictMode) { + "function" === typeof log$1 && unstable_setDisableYieldValue(newIsStrictMode); + if (injectedHook && "function" === typeof injectedHook.setStrictMode) + try { + injectedHook.setStrictMode(rendererID, newIsStrictMode); + } catch (err) { + } + } + var clz32 = Math.clz32 ? Math.clz32 : clz32Fallback, log = Math.log, LN2 = Math.LN2; + function clz32Fallback(x) { + x >>>= 0; + return 0 === x ? 32 : 31 - (log(x) / LN2 | 0) | 0; + } + var nextTransitionLane = 256, nextRetryLane = 4194304; + function getHighestPriorityLanes(lanes) { + var pendingSyncLanes = lanes & 42; + if (0 !== pendingSyncLanes) return pendingSyncLanes; + switch (lanes & -lanes) { + case 1: + return 1; + case 2: + return 2; + case 4: + return 4; + case 8: + return 8; + case 16: + return 16; + case 32: + return 32; + case 64: + return 64; + case 128: + return 128; + case 256: + case 512: + case 1024: + case 2048: + case 4096: + case 8192: + case 16384: + case 32768: + case 65536: + case 131072: + case 262144: + case 524288: + case 1048576: + case 2097152: + return lanes & 4194048; + case 4194304: + case 8388608: + case 16777216: + case 33554432: + return lanes & 62914560; + case 67108864: + return 67108864; + case 134217728: + return 134217728; + case 268435456: + return 268435456; + case 536870912: + return 536870912; + case 1073741824: + return 0; + default: + return lanes; + } + } + function getNextLanes(root3, wipLanes, rootHasPendingCommit) { + var pendingLanes = root3.pendingLanes; + if (0 === pendingLanes) return 0; + var nextLanes = 0, suspendedLanes = root3.suspendedLanes, pingedLanes = root3.pingedLanes; + root3 = root3.warmLanes; + var nonIdlePendingLanes = pendingLanes & 134217727; + 0 !== nonIdlePendingLanes ? (pendingLanes = nonIdlePendingLanes & ~suspendedLanes, 0 !== pendingLanes ? nextLanes = getHighestPriorityLanes(pendingLanes) : (pingedLanes &= nonIdlePendingLanes, 0 !== pingedLanes ? nextLanes = getHighestPriorityLanes(pingedLanes) : rootHasPendingCommit || (rootHasPendingCommit = nonIdlePendingLanes & ~root3, 0 !== rootHasPendingCommit && (nextLanes = getHighestPriorityLanes(rootHasPendingCommit))))) : (nonIdlePendingLanes = pendingLanes & ~suspendedLanes, 0 !== nonIdlePendingLanes ? nextLanes = getHighestPriorityLanes(nonIdlePendingLanes) : 0 !== pingedLanes ? nextLanes = getHighestPriorityLanes(pingedLanes) : rootHasPendingCommit || (rootHasPendingCommit = pendingLanes & ~root3, 0 !== rootHasPendingCommit && (nextLanes = getHighestPriorityLanes(rootHasPendingCommit)))); + return 0 === nextLanes ? 0 : 0 !== wipLanes && wipLanes !== nextLanes && 0 === (wipLanes & suspendedLanes) && (suspendedLanes = nextLanes & -nextLanes, rootHasPendingCommit = wipLanes & -wipLanes, suspendedLanes >= rootHasPendingCommit || 32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)) ? wipLanes : nextLanes; + } + function checkIfRootIsPrerendering(root3, renderLanes2) { + return 0 === (root3.pendingLanes & ~(root3.suspendedLanes & ~root3.pingedLanes) & renderLanes2); + } + function computeExpirationTime(lane, currentTime) { + switch (lane) { + case 1: + case 2: + case 4: + case 8: + case 64: + return currentTime + 250; + case 16: + case 32: + case 128: + case 256: + case 512: + case 1024: + case 2048: + case 4096: + case 8192: + case 16384: + case 32768: + case 65536: + case 131072: + case 262144: + case 524288: + case 1048576: + case 2097152: + return currentTime + 5e3; + case 4194304: + case 8388608: + case 16777216: + case 33554432: + return -1; + case 67108864: + case 134217728: + case 268435456: + case 536870912: + case 1073741824: + return -1; + default: + return -1; + } + } + function claimNextTransitionLane() { + var lane = nextTransitionLane; + nextTransitionLane <<= 1; + 0 === (nextTransitionLane & 4194048) && (nextTransitionLane = 256); + return lane; + } + function claimNextRetryLane() { + var lane = nextRetryLane; + nextRetryLane <<= 1; + 0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304); + return lane; + } + function createLaneMap(initial) { + for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial); + return laneMap; + } + function markRootUpdated$1(root3, updateLane) { + root3.pendingLanes |= updateLane; + 268435456 !== updateLane && (root3.suspendedLanes = 0, root3.pingedLanes = 0, root3.warmLanes = 0); + } + function markRootFinished(root3, finishedLanes, remainingLanes, spawnedLane, updatedLanes, suspendedRetryLanes) { + var previouslyPendingLanes = root3.pendingLanes; + root3.pendingLanes = remainingLanes; + root3.suspendedLanes = 0; + root3.pingedLanes = 0; + root3.warmLanes = 0; + root3.expiredLanes &= remainingLanes; + root3.entangledLanes &= remainingLanes; + root3.errorRecoveryDisabledLanes &= remainingLanes; + root3.shellSuspendCounter = 0; + var entanglements = root3.entanglements, expirationTimes = root3.expirationTimes, hiddenUpdates = root3.hiddenUpdates; + for (remainingLanes = previouslyPendingLanes & ~remainingLanes; 0 < remainingLanes; ) { + var index$5 = 31 - clz32(remainingLanes), lane = 1 << index$5; + entanglements[index$5] = 0; + expirationTimes[index$5] = -1; + var hiddenUpdatesForLane = hiddenUpdates[index$5]; + if (null !== hiddenUpdatesForLane) + for (hiddenUpdates[index$5] = null, index$5 = 0; index$5 < hiddenUpdatesForLane.length; index$5++) { + var update = hiddenUpdatesForLane[index$5]; + null !== update && (update.lane &= -536870913); + } + remainingLanes &= ~lane; + } + 0 !== spawnedLane && markSpawnedDeferredLane(root3, spawnedLane, 0); + 0 !== suspendedRetryLanes && 0 === updatedLanes && 0 !== root3.tag && (root3.suspendedLanes |= suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes)); + } + function markSpawnedDeferredLane(root3, spawnedLane, entangledLanes) { + root3.pendingLanes |= spawnedLane; + root3.suspendedLanes &= ~spawnedLane; + var spawnedLaneIndex = 31 - clz32(spawnedLane); + root3.entangledLanes |= spawnedLane; + root3.entanglements[spawnedLaneIndex] = root3.entanglements[spawnedLaneIndex] | 1073741824 | entangledLanes & 4194090; + } + function markRootEntangled(root3, entangledLanes) { + var rootEntangledLanes = root3.entangledLanes |= entangledLanes; + for (root3 = root3.entanglements; rootEntangledLanes; ) { + var index$6 = 31 - clz32(rootEntangledLanes), lane = 1 << index$6; + lane & entangledLanes | root3[index$6] & entangledLanes && (root3[index$6] |= entangledLanes); + rootEntangledLanes &= ~lane; + } + } + function getBumpedLaneForHydrationByLane(lane) { + switch (lane) { + case 2: + lane = 1; + break; + case 8: + lane = 4; + break; + case 32: + lane = 16; + break; + case 256: + case 512: + case 1024: + case 2048: + case 4096: + case 8192: + case 16384: + case 32768: + case 65536: + case 131072: + case 262144: + case 524288: + case 1048576: + case 2097152: + case 4194304: + case 8388608: + case 16777216: + case 33554432: + lane = 128; + break; + case 268435456: + lane = 134217728; + break; + default: + lane = 0; + } + return lane; + } + function lanesToEventPriority(lanes) { + lanes &= -lanes; + return 2 < lanes ? 8 < lanes ? 0 !== (lanes & 134217727) ? 32 : 268435456 : 8 : 2; + } + function resolveUpdatePriority() { + var updatePriority = ReactDOMSharedInternals.p; + if (0 !== updatePriority) return updatePriority; + updatePriority = window.event; + return void 0 === updatePriority ? 32 : getEventPriority(updatePriority.type); + } + function runWithPriority(priority, fn) { + var previousPriority = ReactDOMSharedInternals.p; + try { + return ReactDOMSharedInternals.p = priority, fn(); + } finally { + ReactDOMSharedInternals.p = previousPriority; + } + } + var randomKey = Math.random().toString(36).slice(2), internalInstanceKey = "__reactFiber$" + randomKey, internalPropsKey = "__reactProps$" + randomKey, internalContainerInstanceKey = "__reactContainer$" + randomKey, internalEventHandlersKey = "__reactEvents$" + randomKey, internalEventHandlerListenersKey = "__reactListeners$" + randomKey, internalEventHandlesSetKey = "__reactHandles$" + randomKey, internalRootNodeResourcesKey = "__reactResources$" + randomKey, internalHoistableMarker = "__reactMarker$" + randomKey; + function detachDeletedInstance(node) { + delete node[internalInstanceKey]; + delete node[internalPropsKey]; + delete node[internalEventHandlersKey]; + delete node[internalEventHandlerListenersKey]; + delete node[internalEventHandlesSetKey]; + } + function getClosestInstanceFromNode(targetNode) { + var targetInst = targetNode[internalInstanceKey]; + if (targetInst) return targetInst; + for (var parentNode = targetNode.parentNode; parentNode; ) { + if (targetInst = parentNode[internalContainerInstanceKey] || parentNode[internalInstanceKey]) { + parentNode = targetInst.alternate; + if (null !== targetInst.child || null !== parentNode && null !== parentNode.child) + for (targetNode = getParentSuspenseInstance(targetNode); null !== targetNode; ) { + if (parentNode = targetNode[internalInstanceKey]) return parentNode; + targetNode = getParentSuspenseInstance(targetNode); + } + return targetInst; + } + targetNode = parentNode; + parentNode = targetNode.parentNode; + } + return null; + } + function getInstanceFromNode(node) { + if (node = node[internalInstanceKey] || node[internalContainerInstanceKey]) { + var tag = node.tag; + if (5 === tag || 6 === tag || 13 === tag || 26 === tag || 27 === tag || 3 === tag) + return node; + } + return null; + } + function getNodeFromInstance(inst) { + var tag = inst.tag; + if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return inst.stateNode; + throw Error(formatProdErrorMessage(33)); + } + function getResourcesFromRoot(root3) { + var resources = root3[internalRootNodeResourcesKey]; + resources || (resources = root3[internalRootNodeResourcesKey] = { hoistableStyles: /* @__PURE__ */ new Map(), hoistableScripts: /* @__PURE__ */ new Map() }); + return resources; + } + function markNodeAsHoistable(node) { + node[internalHoistableMarker] = true; + } + var allNativeEvents = /* @__PURE__ */ new Set(), registrationNameDependencies = {}; + function registerTwoPhaseEvent(registrationName, dependencies) { + registerDirectEvent(registrationName, dependencies); + registerDirectEvent(registrationName + "Capture", dependencies); + } + function registerDirectEvent(registrationName, dependencies) { + registrationNameDependencies[registrationName] = dependencies; + for (registrationName = 0; registrationName < dependencies.length; registrationName++) + allNativeEvents.add(dependencies[registrationName]); + } + var VALID_ATTRIBUTE_NAME_REGEX = RegExp( + "^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$" + ), illegalAttributeNameCache = {}, validatedAttributeNameCache = {}; + function isAttributeNameSafe(attributeName) { + if (hasOwnProperty.call(validatedAttributeNameCache, attributeName)) + return true; + if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return false; + if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) + return validatedAttributeNameCache[attributeName] = true; + illegalAttributeNameCache[attributeName] = true; + return false; + } + function setValueForAttribute(node, name, value) { + if (isAttributeNameSafe(name)) + if (null === value) node.removeAttribute(name); + else { + switch (typeof value) { + case "undefined": + case "function": + case "symbol": + node.removeAttribute(name); + return; + case "boolean": + var prefix$8 = name.toLowerCase().slice(0, 5); + if ("data-" !== prefix$8 && "aria-" !== prefix$8) { + node.removeAttribute(name); + return; + } + } + node.setAttribute(name, "" + value); + } + } + function setValueForKnownAttribute(node, name, value) { + if (null === value) node.removeAttribute(name); + else { + switch (typeof value) { + case "undefined": + case "function": + case "symbol": + case "boolean": + node.removeAttribute(name); + return; + } + node.setAttribute(name, "" + value); + } + } + function setValueForNamespacedAttribute(node, namespace, name, value) { + if (null === value) node.removeAttribute(name); + else { + switch (typeof value) { + case "undefined": + case "function": + case "symbol": + case "boolean": + node.removeAttribute(name); + return; + } + node.setAttributeNS(namespace, name, "" + value); + } + } + var prefix, suffix; + function describeBuiltInComponentFrame(name) { + if (void 0 === prefix) + try { + throw Error(); + } catch (x) { + var match = x.stack.trim().match(/\n( *(at )?)/); + prefix = match && match[1] || ""; + suffix = -1 < x.stack.indexOf("\n at") ? " ()" : -1 < x.stack.indexOf("@") ? "@unknown:0:0" : ""; + } + return "\n" + prefix + name + suffix; + } + var reentry = false; + function describeNativeComponentFrame(fn, construct) { + if (!fn || reentry) return ""; + reentry = true; + var previousPrepareStackTrace = Error.prepareStackTrace; + Error.prepareStackTrace = void 0; + try { + var RunInRootFrame = { + DetermineComponentFrameRoot: function() { + try { + if (construct) { + var Fake = function() { + throw Error(); + }; + Object.defineProperty(Fake.prototype, "props", { + set: function() { + throw Error(); + } + }); + if ("object" === typeof Reflect && Reflect.construct) { + try { + Reflect.construct(Fake, []); + } catch (x) { + var control = x; + } + Reflect.construct(fn, [], Fake); + } else { + try { + Fake.call(); + } catch (x$9) { + control = x$9; + } + fn.call(Fake.prototype); + } + } else { + try { + throw Error(); + } catch (x$10) { + control = x$10; + } + (Fake = fn()) && "function" === typeof Fake.catch && Fake.catch(function() { + }); + } + } catch (sample) { + if (sample && control && "string" === typeof sample.stack) + return [sample.stack, control.stack]; + } + return [null, null]; + } + }; + RunInRootFrame.DetermineComponentFrameRoot.displayName = "DetermineComponentFrameRoot"; + var namePropDescriptor = Object.getOwnPropertyDescriptor( + RunInRootFrame.DetermineComponentFrameRoot, + "name" + ); + namePropDescriptor && namePropDescriptor.configurable && Object.defineProperty( + RunInRootFrame.DetermineComponentFrameRoot, + "name", + { value: "DetermineComponentFrameRoot" } + ); + var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(), sampleStack = _RunInRootFrame$Deter[0], controlStack = _RunInRootFrame$Deter[1]; + if (sampleStack && controlStack) { + var sampleLines = sampleStack.split("\n"), controlLines = controlStack.split("\n"); + for (namePropDescriptor = RunInRootFrame = 0; RunInRootFrame < sampleLines.length && !sampleLines[RunInRootFrame].includes("DetermineComponentFrameRoot"); ) + RunInRootFrame++; + for (; namePropDescriptor < controlLines.length && !controlLines[namePropDescriptor].includes( + "DetermineComponentFrameRoot" + ); ) + namePropDescriptor++; + if (RunInRootFrame === sampleLines.length || namePropDescriptor === controlLines.length) + for (RunInRootFrame = sampleLines.length - 1, namePropDescriptor = controlLines.length - 1; 1 <= RunInRootFrame && 0 <= namePropDescriptor && sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]; ) + namePropDescriptor--; + for (; 1 <= RunInRootFrame && 0 <= namePropDescriptor; RunInRootFrame--, namePropDescriptor--) + if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) { + if (1 !== RunInRootFrame || 1 !== namePropDescriptor) { + do + if (RunInRootFrame--, namePropDescriptor--, 0 > namePropDescriptor || sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) { + var frame = "\n" + sampleLines[RunInRootFrame].replace(" at new ", " at "); + fn.displayName && frame.includes("") && (frame = frame.replace("", fn.displayName)); + return frame; + } + while (1 <= RunInRootFrame && 0 <= namePropDescriptor); + } + break; + } + } + } finally { + reentry = false, Error.prepareStackTrace = previousPrepareStackTrace; + } + return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : "") ? describeBuiltInComponentFrame(previousPrepareStackTrace) : ""; + } + function describeFiber(fiber) { + switch (fiber.tag) { + case 26: + case 27: + case 5: + return describeBuiltInComponentFrame(fiber.type); + case 16: + return describeBuiltInComponentFrame("Lazy"); + case 13: + return describeBuiltInComponentFrame("Suspense"); + case 19: + return describeBuiltInComponentFrame("SuspenseList"); + case 0: + case 15: + return describeNativeComponentFrame(fiber.type, false); + case 11: + return describeNativeComponentFrame(fiber.type.render, false); + case 1: + return describeNativeComponentFrame(fiber.type, true); + case 31: + return describeBuiltInComponentFrame("Activity"); + default: + return ""; + } + } + function getStackByFiberInDevAndProd(workInProgress2) { + try { + var info = ""; + do + info += describeFiber(workInProgress2), workInProgress2 = workInProgress2.return; + while (workInProgress2); + return info; + } catch (x) { + return "\nError generating stack: " + x.message + "\n" + x.stack; + } + } + function getToStringValue(value) { + switch (typeof value) { + case "bigint": + case "boolean": + case "number": + case "string": + case "undefined": + return value; + case "object": + return value; + default: + return ""; + } + } + function isCheckable(elem) { + var type = elem.type; + return (elem = elem.nodeName) && "input" === elem.toLowerCase() && ("checkbox" === type || "radio" === type); + } + function trackValueOnNode(node) { + var valueField = isCheckable(node) ? "checked" : "value", descriptor = Object.getOwnPropertyDescriptor( + node.constructor.prototype, + valueField + ), currentValue = "" + node[valueField]; + if (!node.hasOwnProperty(valueField) && "undefined" !== typeof descriptor && "function" === typeof descriptor.get && "function" === typeof descriptor.set) { + var get = descriptor.get, set = descriptor.set; + Object.defineProperty(node, valueField, { + configurable: true, + get: function() { + return get.call(this); + }, + set: function(value) { + currentValue = "" + value; + set.call(this, value); + } + }); + Object.defineProperty(node, valueField, { + enumerable: descriptor.enumerable + }); + return { + getValue: function() { + return currentValue; + }, + setValue: function(value) { + currentValue = "" + value; + }, + stopTracking: function() { + node._valueTracker = null; + delete node[valueField]; + } + }; + } + } + function track(node) { + node._valueTracker || (node._valueTracker = trackValueOnNode(node)); + } + function updateValueIfChanged(node) { + if (!node) return false; + var tracker = node._valueTracker; + if (!tracker) return true; + var lastValue = tracker.getValue(); + var value = ""; + node && (value = isCheckable(node) ? node.checked ? "true" : "false" : node.value); + node = value; + return node !== lastValue ? (tracker.setValue(node), true) : false; + } + function getActiveElement(doc) { + doc = doc || ("undefined" !== typeof document ? document : void 0); + if ("undefined" === typeof doc) return null; + try { + return doc.activeElement || doc.body; + } catch (e) { + return doc.body; + } + } + var escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\n"\\]/g; + function escapeSelectorAttributeValueInsideDoubleQuotes(value) { + return value.replace( + escapeSelectorAttributeValueInsideDoubleQuotesRegex, + function(ch) { + return "\\" + ch.charCodeAt(0).toString(16) + " "; + } + ); + } + function updateInput(element, value, defaultValue, lastDefaultValue, checked, defaultChecked, type, name) { + element.name = ""; + null != type && "function" !== typeof type && "symbol" !== typeof type && "boolean" !== typeof type ? element.type = type : element.removeAttribute("type"); + if (null != value) + if ("number" === type) { + if (0 === value && "" === element.value || element.value != value) + element.value = "" + getToStringValue(value); + } else + element.value !== "" + getToStringValue(value) && (element.value = "" + getToStringValue(value)); + else + "submit" !== type && "reset" !== type || element.removeAttribute("value"); + null != value ? setDefaultValue(element, type, getToStringValue(value)) : null != defaultValue ? setDefaultValue(element, type, getToStringValue(defaultValue)) : null != lastDefaultValue && element.removeAttribute("value"); + null == checked && null != defaultChecked && (element.defaultChecked = !!defaultChecked); + null != checked && (element.checked = checked && "function" !== typeof checked && "symbol" !== typeof checked); + null != name && "function" !== typeof name && "symbol" !== typeof name && "boolean" !== typeof name ? element.name = "" + getToStringValue(name) : element.removeAttribute("name"); + } + function initInput(element, value, defaultValue, checked, defaultChecked, type, name, isHydrating2) { + null != type && "function" !== typeof type && "symbol" !== typeof type && "boolean" !== typeof type && (element.type = type); + if (null != value || null != defaultValue) { + if (!("submit" !== type && "reset" !== type || void 0 !== value && null !== value)) + return; + defaultValue = null != defaultValue ? "" + getToStringValue(defaultValue) : ""; + value = null != value ? "" + getToStringValue(value) : defaultValue; + isHydrating2 || value === element.value || (element.value = value); + element.defaultValue = value; + } + checked = null != checked ? checked : defaultChecked; + checked = "function" !== typeof checked && "symbol" !== typeof checked && !!checked; + element.checked = isHydrating2 ? element.checked : !!checked; + element.defaultChecked = !!checked; + null != name && "function" !== typeof name && "symbol" !== typeof name && "boolean" !== typeof name && (element.name = name); + } + function setDefaultValue(node, type, value) { + "number" === type && getActiveElement(node.ownerDocument) === node || node.defaultValue === "" + value || (node.defaultValue = "" + value); + } + function updateOptions(node, multiple, propValue, setDefaultSelected) { + node = node.options; + if (multiple) { + multiple = {}; + for (var i = 0; i < propValue.length; i++) + multiple["$" + propValue[i]] = true; + for (propValue = 0; propValue < node.length; propValue++) + i = multiple.hasOwnProperty("$" + node[propValue].value), node[propValue].selected !== i && (node[propValue].selected = i), i && setDefaultSelected && (node[propValue].defaultSelected = true); + } else { + propValue = "" + getToStringValue(propValue); + multiple = null; + for (i = 0; i < node.length; i++) { + if (node[i].value === propValue) { + node[i].selected = true; + setDefaultSelected && (node[i].defaultSelected = true); + return; + } + null !== multiple || node[i].disabled || (multiple = node[i]); + } + null !== multiple && (multiple.selected = true); + } + } + function updateTextarea(element, value, defaultValue) { + if (null != value && (value = "" + getToStringValue(value), value !== element.value && (element.value = value), null == defaultValue)) { + element.defaultValue !== value && (element.defaultValue = value); + return; + } + element.defaultValue = null != defaultValue ? "" + getToStringValue(defaultValue) : ""; + } + function initTextarea(element, value, defaultValue, children) { + if (null == value) { + if (null != children) { + if (null != defaultValue) throw Error(formatProdErrorMessage(92)); + if (isArrayImpl(children)) { + if (1 < children.length) throw Error(formatProdErrorMessage(93)); + children = children[0]; + } + defaultValue = children; + } + null == defaultValue && (defaultValue = ""); + value = defaultValue; + } + defaultValue = getToStringValue(value); + element.defaultValue = defaultValue; + children = element.textContent; + children === defaultValue && "" !== children && null !== children && (element.value = children); + } + function setTextContent(node, text) { + if (text) { + var firstChild = node.firstChild; + if (firstChild && firstChild === node.lastChild && 3 === firstChild.nodeType) { + firstChild.nodeValue = text; + return; + } + } + node.textContent = text; + } + var unitlessNumbers = new Set( + "animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split( + " " + ) + ); + function setValueForStyle(style2, styleName, value) { + var isCustomProperty = 0 === styleName.indexOf("--"); + null == value || "boolean" === typeof value || "" === value ? isCustomProperty ? style2.setProperty(styleName, "") : "float" === styleName ? style2.cssFloat = "" : style2[styleName] = "" : isCustomProperty ? style2.setProperty(styleName, value) : "number" !== typeof value || 0 === value || unitlessNumbers.has(styleName) ? "float" === styleName ? style2.cssFloat = value : style2[styleName] = ("" + value).trim() : style2[styleName] = value + "px"; + } + function setValueForStyles(node, styles, prevStyles) { + if (null != styles && "object" !== typeof styles) + throw Error(formatProdErrorMessage(62)); + node = node.style; + if (null != prevStyles) { + for (var styleName in prevStyles) + !prevStyles.hasOwnProperty(styleName) || null != styles && styles.hasOwnProperty(styleName) || (0 === styleName.indexOf("--") ? node.setProperty(styleName, "") : "float" === styleName ? node.cssFloat = "" : node[styleName] = ""); + for (var styleName$16 in styles) + styleName = styles[styleName$16], styles.hasOwnProperty(styleName$16) && prevStyles[styleName$16] !== styleName && setValueForStyle(node, styleName$16, styleName); + } else + for (var styleName$17 in styles) + styles.hasOwnProperty(styleName$17) && setValueForStyle(node, styleName$17, styles[styleName$17]); + } + function isCustomElement(tagName) { + if (-1 === tagName.indexOf("-")) return false; + switch (tagName) { + case "annotation-xml": + case "color-profile": + case "font-face": + case "font-face-src": + case "font-face-uri": + case "font-face-format": + case "font-face-name": + case "missing-glyph": + return false; + default: + return true; + } + } + var aliases = /* @__PURE__ */ new Map([ + ["acceptCharset", "accept-charset"], + ["htmlFor", "for"], + ["httpEquiv", "http-equiv"], + ["crossOrigin", "crossorigin"], + ["accentHeight", "accent-height"], + ["alignmentBaseline", "alignment-baseline"], + ["arabicForm", "arabic-form"], + ["baselineShift", "baseline-shift"], + ["capHeight", "cap-height"], + ["clipPath", "clip-path"], + ["clipRule", "clip-rule"], + ["colorInterpolation", "color-interpolation"], + ["colorInterpolationFilters", "color-interpolation-filters"], + ["colorProfile", "color-profile"], + ["colorRendering", "color-rendering"], + ["dominantBaseline", "dominant-baseline"], + ["enableBackground", "enable-background"], + ["fillOpacity", "fill-opacity"], + ["fillRule", "fill-rule"], + ["floodColor", "flood-color"], + ["floodOpacity", "flood-opacity"], + ["fontFamily", "font-family"], + ["fontSize", "font-size"], + ["fontSizeAdjust", "font-size-adjust"], + ["fontStretch", "font-stretch"], + ["fontStyle", "font-style"], + ["fontVariant", "font-variant"], + ["fontWeight", "font-weight"], + ["glyphName", "glyph-name"], + ["glyphOrientationHorizontal", "glyph-orientation-horizontal"], + ["glyphOrientationVertical", "glyph-orientation-vertical"], + ["horizAdvX", "horiz-adv-x"], + ["horizOriginX", "horiz-origin-x"], + ["imageRendering", "image-rendering"], + ["letterSpacing", "letter-spacing"], + ["lightingColor", "lighting-color"], + ["markerEnd", "marker-end"], + ["markerMid", "marker-mid"], + ["markerStart", "marker-start"], + ["overlinePosition", "overline-position"], + ["overlineThickness", "overline-thickness"], + ["paintOrder", "paint-order"], + ["panose-1", "panose-1"], + ["pointerEvents", "pointer-events"], + ["renderingIntent", "rendering-intent"], + ["shapeRendering", "shape-rendering"], + ["stopColor", "stop-color"], + ["stopOpacity", "stop-opacity"], + ["strikethroughPosition", "strikethrough-position"], + ["strikethroughThickness", "strikethrough-thickness"], + ["strokeDasharray", "stroke-dasharray"], + ["strokeDashoffset", "stroke-dashoffset"], + ["strokeLinecap", "stroke-linecap"], + ["strokeLinejoin", "stroke-linejoin"], + ["strokeMiterlimit", "stroke-miterlimit"], + ["strokeOpacity", "stroke-opacity"], + ["strokeWidth", "stroke-width"], + ["textAnchor", "text-anchor"], + ["textDecoration", "text-decoration"], + ["textRendering", "text-rendering"], + ["transformOrigin", "transform-origin"], + ["underlinePosition", "underline-position"], + ["underlineThickness", "underline-thickness"], + ["unicodeBidi", "unicode-bidi"], + ["unicodeRange", "unicode-range"], + ["unitsPerEm", "units-per-em"], + ["vAlphabetic", "v-alphabetic"], + ["vHanging", "v-hanging"], + ["vIdeographic", "v-ideographic"], + ["vMathematical", "v-mathematical"], + ["vectorEffect", "vector-effect"], + ["vertAdvY", "vert-adv-y"], + ["vertOriginX", "vert-origin-x"], + ["vertOriginY", "vert-origin-y"], + ["wordSpacing", "word-spacing"], + ["writingMode", "writing-mode"], + ["xmlnsXlink", "xmlns:xlink"], + ["xHeight", "x-height"] + ]), isJavaScriptProtocol = /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i; + function sanitizeURL(url) { + return isJavaScriptProtocol.test("" + url) ? "javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')" : url; + } + var currentReplayingEvent = null; + function getEventTarget(nativeEvent) { + nativeEvent = nativeEvent.target || nativeEvent.srcElement || window; + nativeEvent.correspondingUseElement && (nativeEvent = nativeEvent.correspondingUseElement); + return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent; + } + var restoreTarget = null, restoreQueue = null; + function restoreStateOfTarget(target) { + var internalInstance = getInstanceFromNode(target); + if (internalInstance && (target = internalInstance.stateNode)) { + var props = target[internalPropsKey] || null; + a: switch (target = internalInstance.stateNode, internalInstance.type) { + case "input": + updateInput( + target, + props.value, + props.defaultValue, + props.defaultValue, + props.checked, + props.defaultChecked, + props.type, + props.name + ); + internalInstance = props.name; + if ("radio" === props.type && null != internalInstance) { + for (props = target; props.parentNode; ) props = props.parentNode; + props = props.querySelectorAll( + 'input[name="' + escapeSelectorAttributeValueInsideDoubleQuotes( + "" + internalInstance + ) + '"][type="radio"]' + ); + for (internalInstance = 0; internalInstance < props.length; internalInstance++) { + var otherNode = props[internalInstance]; + if (otherNode !== target && otherNode.form === target.form) { + var otherProps = otherNode[internalPropsKey] || null; + if (!otherProps) throw Error(formatProdErrorMessage(90)); + updateInput( + otherNode, + otherProps.value, + otherProps.defaultValue, + otherProps.defaultValue, + otherProps.checked, + otherProps.defaultChecked, + otherProps.type, + otherProps.name + ); + } + } + for (internalInstance = 0; internalInstance < props.length; internalInstance++) + otherNode = props[internalInstance], otherNode.form === target.form && updateValueIfChanged(otherNode); + } + break a; + case "textarea": + updateTextarea(target, props.value, props.defaultValue); + break a; + case "select": + internalInstance = props.value, null != internalInstance && updateOptions(target, !!props.multiple, internalInstance, false); + } + } + } + var isInsideEventHandler = false; + function batchedUpdates$1(fn, a, b) { + if (isInsideEventHandler) return fn(a, b); + isInsideEventHandler = true; + try { + var JSCompiler_inline_result = fn(a); + return JSCompiler_inline_result; + } finally { + if (isInsideEventHandler = false, null !== restoreTarget || null !== restoreQueue) { + if (flushSyncWork$1(), restoreTarget && (a = restoreTarget, fn = restoreQueue, restoreQueue = restoreTarget = null, restoreStateOfTarget(a), fn)) + for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]); + } + } + } + function getListener(inst, registrationName) { + var stateNode = inst.stateNode; + if (null === stateNode) return null; + var props = stateNode[internalPropsKey] || null; + if (null === props) return null; + stateNode = props[registrationName]; + a: switch (registrationName) { + case "onClick": + case "onClickCapture": + case "onDoubleClick": + case "onDoubleClickCapture": + case "onMouseDown": + case "onMouseDownCapture": + case "onMouseMove": + case "onMouseMoveCapture": + case "onMouseUp": + case "onMouseUpCapture": + case "onMouseEnter": + (props = !props.disabled) || (inst = inst.type, props = !("button" === inst || "input" === inst || "select" === inst || "textarea" === inst)); + inst = !props; + break a; + default: + inst = false; + } + if (inst) return null; + if (stateNode && "function" !== typeof stateNode) + throw Error( + formatProdErrorMessage(231, registrationName, typeof stateNode) + ); + return stateNode; + } + var canUseDOM = !("undefined" === typeof window || "undefined" === typeof window.document || "undefined" === typeof window.document.createElement), passiveBrowserEventsSupported = false; + if (canUseDOM) + try { + var options = {}; + Object.defineProperty(options, "passive", { + get: function() { + passiveBrowserEventsSupported = true; + } + }); + window.addEventListener("test", options, options); + window.removeEventListener("test", options, options); + } catch (e) { + passiveBrowserEventsSupported = false; + } + var root2 = null, startText = null, fallbackText = null; + function getData() { + if (fallbackText) return fallbackText; + var start, startValue = startText, startLength = startValue.length, end, endValue = "value" in root2 ? root2.value : root2.textContent, endLength = endValue.length; + for (start = 0; start < startLength && startValue[start] === endValue[start]; start++) ; + var minEnd = startLength - start; + for (end = 1; end <= minEnd && startValue[startLength - end] === endValue[endLength - end]; end++) ; + return fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0); + } + function getEventCharCode(nativeEvent) { + var keyCode = nativeEvent.keyCode; + "charCode" in nativeEvent ? (nativeEvent = nativeEvent.charCode, 0 === nativeEvent && 13 === keyCode && (nativeEvent = 13)) : nativeEvent = keyCode; + 10 === nativeEvent && (nativeEvent = 13); + return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0; + } + function functionThatReturnsTrue() { + return true; + } + function functionThatReturnsFalse() { + return false; + } + function createSyntheticEvent(Interface) { + function SyntheticBaseEvent(reactName, reactEventType, targetInst, nativeEvent, nativeEventTarget) { + this._reactName = reactName; + this._targetInst = targetInst; + this.type = reactEventType; + this.nativeEvent = nativeEvent; + this.target = nativeEventTarget; + this.currentTarget = null; + for (var propName in Interface) + Interface.hasOwnProperty(propName) && (reactName = Interface[propName], this[propName] = reactName ? reactName(nativeEvent) : nativeEvent[propName]); + this.isDefaultPrevented = (null != nativeEvent.defaultPrevented ? nativeEvent.defaultPrevented : false === nativeEvent.returnValue) ? functionThatReturnsTrue : functionThatReturnsFalse; + this.isPropagationStopped = functionThatReturnsFalse; + return this; + } + assign(SyntheticBaseEvent.prototype, { + preventDefault: function() { + this.defaultPrevented = true; + var event = this.nativeEvent; + event && (event.preventDefault ? event.preventDefault() : "unknown" !== typeof event.returnValue && (event.returnValue = false), this.isDefaultPrevented = functionThatReturnsTrue); + }, + stopPropagation: function() { + var event = this.nativeEvent; + event && (event.stopPropagation ? event.stopPropagation() : "unknown" !== typeof event.cancelBubble && (event.cancelBubble = true), this.isPropagationStopped = functionThatReturnsTrue); + }, + persist: function() { + }, + isPersistent: functionThatReturnsTrue + }); + return SyntheticBaseEvent; + } + var EventInterface = { + eventPhase: 0, + bubbles: 0, + cancelable: 0, + timeStamp: function(event) { + return event.timeStamp || Date.now(); + }, + defaultPrevented: 0, + isTrusted: 0 + }, SyntheticEvent = createSyntheticEvent(EventInterface), UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }), SyntheticUIEvent = createSyntheticEvent(UIEventInterface), lastMovementX, lastMovementY, lastMouseEvent, MouseEventInterface = assign({}, UIEventInterface, { + screenX: 0, + screenY: 0, + clientX: 0, + clientY: 0, + pageX: 0, + pageY: 0, + ctrlKey: 0, + shiftKey: 0, + altKey: 0, + metaKey: 0, + getModifierState: getEventModifierState, + button: 0, + buttons: 0, + relatedTarget: function(event) { + return void 0 === event.relatedTarget ? event.fromElement === event.srcElement ? event.toElement : event.fromElement : event.relatedTarget; + }, + movementX: function(event) { + if ("movementX" in event) return event.movementX; + event !== lastMouseEvent && (lastMouseEvent && "mousemove" === event.type ? (lastMovementX = event.screenX - lastMouseEvent.screenX, lastMovementY = event.screenY - lastMouseEvent.screenY) : lastMovementY = lastMovementX = 0, lastMouseEvent = event); + return lastMovementX; + }, + movementY: function(event) { + return "movementY" in event ? event.movementY : lastMovementY; + } + }), SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface), DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }), SyntheticDragEvent = createSyntheticEvent(DragEventInterface), FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }), SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface), AnimationEventInterface = assign({}, EventInterface, { + animationName: 0, + elapsedTime: 0, + pseudoElement: 0 + }), SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface), ClipboardEventInterface = assign({}, EventInterface, { + clipboardData: function(event) { + return "clipboardData" in event ? event.clipboardData : window.clipboardData; + } + }), SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface), CompositionEventInterface = assign({}, EventInterface, { data: 0 }), SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface), normalizeKey = { + Esc: "Escape", + Spacebar: " ", + Left: "ArrowLeft", + Up: "ArrowUp", + Right: "ArrowRight", + Down: "ArrowDown", + Del: "Delete", + Win: "OS", + Menu: "ContextMenu", + Apps: "ContextMenu", + Scroll: "ScrollLock", + MozPrintableKey: "Unidentified" + }, translateToKey = { + 8: "Backspace", + 9: "Tab", + 12: "Clear", + 13: "Enter", + 16: "Shift", + 17: "Control", + 18: "Alt", + 19: "Pause", + 20: "CapsLock", + 27: "Escape", + 32: " ", + 33: "PageUp", + 34: "PageDown", + 35: "End", + 36: "Home", + 37: "ArrowLeft", + 38: "ArrowUp", + 39: "ArrowRight", + 40: "ArrowDown", + 45: "Insert", + 46: "Delete", + 112: "F1", + 113: "F2", + 114: "F3", + 115: "F4", + 116: "F5", + 117: "F6", + 118: "F7", + 119: "F8", + 120: "F9", + 121: "F10", + 122: "F11", + 123: "F12", + 144: "NumLock", + 145: "ScrollLock", + 224: "Meta" + }, modifierKeyToProp = { + Alt: "altKey", + Control: "ctrlKey", + Meta: "metaKey", + Shift: "shiftKey" + }; + function modifierStateGetter(keyArg) { + var nativeEvent = this.nativeEvent; + return nativeEvent.getModifierState ? nativeEvent.getModifierState(keyArg) : (keyArg = modifierKeyToProp[keyArg]) ? !!nativeEvent[keyArg] : false; + } + function getEventModifierState() { + return modifierStateGetter; + } + var KeyboardEventInterface = assign({}, UIEventInterface, { + key: function(nativeEvent) { + if (nativeEvent.key) { + var key = normalizeKey[nativeEvent.key] || nativeEvent.key; + if ("Unidentified" !== key) return key; + } + return "keypress" === nativeEvent.type ? (nativeEvent = getEventCharCode(nativeEvent), 13 === nativeEvent ? "Enter" : String.fromCharCode(nativeEvent)) : "keydown" === nativeEvent.type || "keyup" === nativeEvent.type ? translateToKey[nativeEvent.keyCode] || "Unidentified" : ""; + }, + code: 0, + location: 0, + ctrlKey: 0, + shiftKey: 0, + altKey: 0, + metaKey: 0, + repeat: 0, + locale: 0, + getModifierState: getEventModifierState, + charCode: function(event) { + return "keypress" === event.type ? getEventCharCode(event) : 0; + }, + keyCode: function(event) { + return "keydown" === event.type || "keyup" === event.type ? event.keyCode : 0; + }, + which: function(event) { + return "keypress" === event.type ? getEventCharCode(event) : "keydown" === event.type || "keyup" === event.type ? event.keyCode : 0; + } + }), SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface), PointerEventInterface = assign({}, MouseEventInterface, { + pointerId: 0, + width: 0, + height: 0, + pressure: 0, + tangentialPressure: 0, + tiltX: 0, + tiltY: 0, + twist: 0, + pointerType: 0, + isPrimary: 0 + }), SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface), TouchEventInterface = assign({}, UIEventInterface, { + touches: 0, + targetTouches: 0, + changedTouches: 0, + altKey: 0, + metaKey: 0, + ctrlKey: 0, + shiftKey: 0, + getModifierState: getEventModifierState + }), SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface), TransitionEventInterface = assign({}, EventInterface, { + propertyName: 0, + elapsedTime: 0, + pseudoElement: 0 + }), SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface), WheelEventInterface = assign({}, MouseEventInterface, { + deltaX: function(event) { + return "deltaX" in event ? event.deltaX : "wheelDeltaX" in event ? -event.wheelDeltaX : 0; + }, + deltaY: function(event) { + return "deltaY" in event ? event.deltaY : "wheelDeltaY" in event ? -event.wheelDeltaY : "wheelDelta" in event ? -event.wheelDelta : 0; + }, + deltaZ: 0, + deltaMode: 0 + }), SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface), ToggleEventInterface = assign({}, EventInterface, { + newState: 0, + oldState: 0 + }), SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface), END_KEYCODES = [9, 13, 27, 32], canUseCompositionEvent = canUseDOM && "CompositionEvent" in window, documentMode = null; + canUseDOM && "documentMode" in document && (documentMode = document.documentMode); + var canUseTextInputEvent = canUseDOM && "TextEvent" in window && !documentMode, useFallbackCompositionData = canUseDOM && (!canUseCompositionEvent || documentMode && 8 < documentMode && 11 >= documentMode), SPACEBAR_CHAR = String.fromCharCode(32), hasSpaceKeypress = false; + function isFallbackCompositionEnd(domEventName, nativeEvent) { + switch (domEventName) { + case "keyup": + return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode); + case "keydown": + return 229 !== nativeEvent.keyCode; + case "keypress": + case "mousedown": + case "focusout": + return true; + default: + return false; + } + } + function getDataFromCustomEvent(nativeEvent) { + nativeEvent = nativeEvent.detail; + return "object" === typeof nativeEvent && "data" in nativeEvent ? nativeEvent.data : null; + } + var isComposing = false; + function getNativeBeforeInputChars(domEventName, nativeEvent) { + switch (domEventName) { + case "compositionend": + return getDataFromCustomEvent(nativeEvent); + case "keypress": + if (32 !== nativeEvent.which) return null; + hasSpaceKeypress = true; + return SPACEBAR_CHAR; + case "textInput": + return domEventName = nativeEvent.data, domEventName === SPACEBAR_CHAR && hasSpaceKeypress ? null : domEventName; + default: + return null; + } + } + function getFallbackBeforeInputChars(domEventName, nativeEvent) { + if (isComposing) + return "compositionend" === domEventName || !canUseCompositionEvent && isFallbackCompositionEnd(domEventName, nativeEvent) ? (domEventName = getData(), fallbackText = startText = root2 = null, isComposing = false, domEventName) : null; + switch (domEventName) { + case "paste": + return null; + case "keypress": + if (!(nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) || nativeEvent.ctrlKey && nativeEvent.altKey) { + if (nativeEvent.char && 1 < nativeEvent.char.length) + return nativeEvent.char; + if (nativeEvent.which) return String.fromCharCode(nativeEvent.which); + } + return null; + case "compositionend": + return useFallbackCompositionData && "ko" !== nativeEvent.locale ? null : nativeEvent.data; + default: + return null; + } + } + var supportedInputTypes = { + color: true, + date: true, + datetime: true, + "datetime-local": true, + email: true, + month: true, + number: true, + password: true, + range: true, + search: true, + tel: true, + text: true, + time: true, + url: true, + week: true + }; + function isTextInputElement(elem) { + var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase(); + return "input" === nodeName ? !!supportedInputTypes[elem.type] : "textarea" === nodeName ? true : false; + } + function createAndAccumulateChangeEvent(dispatchQueue, inst, nativeEvent, target) { + restoreTarget ? restoreQueue ? restoreQueue.push(target) : restoreQueue = [target] : restoreTarget = target; + inst = accumulateTwoPhaseListeners(inst, "onChange"); + 0 < inst.length && (nativeEvent = new SyntheticEvent( + "onChange", + "change", + null, + nativeEvent, + target + ), dispatchQueue.push({ event: nativeEvent, listeners: inst })); + } + var activeElement$1 = null, activeElementInst$1 = null; + function runEventInBatch(dispatchQueue) { + processDispatchQueue(dispatchQueue, 0); + } + function getInstIfValueChanged(targetInst) { + var targetNode = getNodeFromInstance(targetInst); + if (updateValueIfChanged(targetNode)) return targetInst; + } + function getTargetInstForChangeEvent(domEventName, targetInst) { + if ("change" === domEventName) return targetInst; + } + var isInputEventSupported = false; + if (canUseDOM) { + var JSCompiler_inline_result$jscomp$282; + if (canUseDOM) { + var isSupported$jscomp$inline_417 = "oninput" in document; + if (!isSupported$jscomp$inline_417) { + var element$jscomp$inline_418 = document.createElement("div"); + element$jscomp$inline_418.setAttribute("oninput", "return;"); + isSupported$jscomp$inline_417 = "function" === typeof element$jscomp$inline_418.oninput; + } + JSCompiler_inline_result$jscomp$282 = isSupported$jscomp$inline_417; + } else JSCompiler_inline_result$jscomp$282 = false; + isInputEventSupported = JSCompiler_inline_result$jscomp$282 && (!document.documentMode || 9 < document.documentMode); + } + function stopWatchingForValueChange() { + activeElement$1 && (activeElement$1.detachEvent("onpropertychange", handlePropertyChange), activeElementInst$1 = activeElement$1 = null); + } + function handlePropertyChange(nativeEvent) { + if ("value" === nativeEvent.propertyName && getInstIfValueChanged(activeElementInst$1)) { + var dispatchQueue = []; + createAndAccumulateChangeEvent( + dispatchQueue, + activeElementInst$1, + nativeEvent, + getEventTarget(nativeEvent) + ); + batchedUpdates$1(runEventInBatch, dispatchQueue); + } + } + function handleEventsForInputEventPolyfill(domEventName, target, targetInst) { + "focusin" === domEventName ? (stopWatchingForValueChange(), activeElement$1 = target, activeElementInst$1 = targetInst, activeElement$1.attachEvent("onpropertychange", handlePropertyChange)) : "focusout" === domEventName && stopWatchingForValueChange(); + } + function getTargetInstForInputEventPolyfill(domEventName) { + if ("selectionchange" === domEventName || "keyup" === domEventName || "keydown" === domEventName) + return getInstIfValueChanged(activeElementInst$1); + } + function getTargetInstForClickEvent(domEventName, targetInst) { + if ("click" === domEventName) return getInstIfValueChanged(targetInst); + } + function getTargetInstForInputOrChangeEvent(domEventName, targetInst) { + if ("input" === domEventName || "change" === domEventName) + return getInstIfValueChanged(targetInst); + } + function is(x, y) { + return x === y && (0 !== x || 1 / x === 1 / y) || x !== x && y !== y; + } + var objectIs = "function" === typeof Object.is ? Object.is : is; + function shallowEqual(objA, objB) { + if (objectIs(objA, objB)) return true; + if ("object" !== typeof objA || null === objA || "object" !== typeof objB || null === objB) + return false; + var keysA = Object.keys(objA), keysB = Object.keys(objB); + if (keysA.length !== keysB.length) return false; + for (keysB = 0; keysB < keysA.length; keysB++) { + var currentKey = keysA[keysB]; + if (!hasOwnProperty.call(objB, currentKey) || !objectIs(objA[currentKey], objB[currentKey])) + return false; + } + return true; + } + function getLeafNode(node) { + for (; node && node.firstChild; ) node = node.firstChild; + return node; + } + function getNodeForCharacterOffset(root3, offset2) { + var node = getLeafNode(root3); + root3 = 0; + for (var nodeEnd; node; ) { + if (3 === node.nodeType) { + nodeEnd = root3 + node.textContent.length; + if (root3 <= offset2 && nodeEnd >= offset2) + return { node, offset: offset2 - root3 }; + root3 = nodeEnd; + } + a: { + for (; node; ) { + if (node.nextSibling) { + node = node.nextSibling; + break a; + } + node = node.parentNode; + } + node = void 0; + } + node = getLeafNode(node); + } + } + function containsNode(outerNode, innerNode) { + return outerNode && innerNode ? outerNode === innerNode ? true : outerNode && 3 === outerNode.nodeType ? false : innerNode && 3 === innerNode.nodeType ? containsNode(outerNode, innerNode.parentNode) : "contains" in outerNode ? outerNode.contains(innerNode) : outerNode.compareDocumentPosition ? !!(outerNode.compareDocumentPosition(innerNode) & 16) : false : false; + } + function getActiveElementDeep(containerInfo) { + containerInfo = null != containerInfo && null != containerInfo.ownerDocument && null != containerInfo.ownerDocument.defaultView ? containerInfo.ownerDocument.defaultView : window; + for (var element = getActiveElement(containerInfo.document); element instanceof containerInfo.HTMLIFrameElement; ) { + try { + var JSCompiler_inline_result = "string" === typeof element.contentWindow.location.href; + } catch (err) { + JSCompiler_inline_result = false; + } + if (JSCompiler_inline_result) containerInfo = element.contentWindow; + else break; + element = getActiveElement(containerInfo.document); + } + return element; + } + function hasSelectionCapabilities(elem) { + var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase(); + return nodeName && ("input" === nodeName && ("text" === elem.type || "search" === elem.type || "tel" === elem.type || "url" === elem.type || "password" === elem.type) || "textarea" === nodeName || "true" === elem.contentEditable); + } + var skipSelectionChangeEvent = canUseDOM && "documentMode" in document && 11 >= document.documentMode, activeElement = null, activeElementInst = null, lastSelection = null, mouseDown = false; + function constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) { + var doc = nativeEventTarget.window === nativeEventTarget ? nativeEventTarget.document : 9 === nativeEventTarget.nodeType ? nativeEventTarget : nativeEventTarget.ownerDocument; + mouseDown || null == activeElement || activeElement !== getActiveElement(doc) || (doc = activeElement, "selectionStart" in doc && hasSelectionCapabilities(doc) ? doc = { start: doc.selectionStart, end: doc.selectionEnd } : (doc = (doc.ownerDocument && doc.ownerDocument.defaultView || window).getSelection(), doc = { + anchorNode: doc.anchorNode, + anchorOffset: doc.anchorOffset, + focusNode: doc.focusNode, + focusOffset: doc.focusOffset + }), lastSelection && shallowEqual(lastSelection, doc) || (lastSelection = doc, doc = accumulateTwoPhaseListeners(activeElementInst, "onSelect"), 0 < doc.length && (nativeEvent = new SyntheticEvent( + "onSelect", + "select", + null, + nativeEvent, + nativeEventTarget + ), dispatchQueue.push({ event: nativeEvent, listeners: doc }), nativeEvent.target = activeElement))); + } + function makePrefixMap(styleProp, eventName) { + var prefixes = {}; + prefixes[styleProp.toLowerCase()] = eventName.toLowerCase(); + prefixes["Webkit" + styleProp] = "webkit" + eventName; + prefixes["Moz" + styleProp] = "moz" + eventName; + return prefixes; + } + var vendorPrefixes = { + animationend: makePrefixMap("Animation", "AnimationEnd"), + animationiteration: makePrefixMap("Animation", "AnimationIteration"), + animationstart: makePrefixMap("Animation", "AnimationStart"), + transitionrun: makePrefixMap("Transition", "TransitionRun"), + transitionstart: makePrefixMap("Transition", "TransitionStart"), + transitioncancel: makePrefixMap("Transition", "TransitionCancel"), + transitionend: makePrefixMap("Transition", "TransitionEnd") + }, prefixedEventNames = {}, style = {}; + canUseDOM && (style = document.createElement("div").style, "AnimationEvent" in window || (delete vendorPrefixes.animationend.animation, delete vendorPrefixes.animationiteration.animation, delete vendorPrefixes.animationstart.animation), "TransitionEvent" in window || delete vendorPrefixes.transitionend.transition); + function getVendorPrefixedEventName(eventName) { + if (prefixedEventNames[eventName]) return prefixedEventNames[eventName]; + if (!vendorPrefixes[eventName]) return eventName; + var prefixMap = vendorPrefixes[eventName], styleProp; + for (styleProp in prefixMap) + if (prefixMap.hasOwnProperty(styleProp) && styleProp in style) + return prefixedEventNames[eventName] = prefixMap[styleProp]; + return eventName; + } + var ANIMATION_END = getVendorPrefixedEventName("animationend"), ANIMATION_ITERATION = getVendorPrefixedEventName("animationiteration"), ANIMATION_START = getVendorPrefixedEventName("animationstart"), TRANSITION_RUN = getVendorPrefixedEventName("transitionrun"), TRANSITION_START = getVendorPrefixedEventName("transitionstart"), TRANSITION_CANCEL = getVendorPrefixedEventName("transitioncancel"), TRANSITION_END = getVendorPrefixedEventName("transitionend"), topLevelEventsToReactNames = /* @__PURE__ */ new Map(), simpleEventPluginEvents = "abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split( + " " + ); + simpleEventPluginEvents.push("scrollEnd"); + function registerSimpleEvent(domEventName, reactName) { + topLevelEventsToReactNames.set(domEventName, reactName); + registerTwoPhaseEvent(reactName, [domEventName]); + } + var CapturedStacks = /* @__PURE__ */ new WeakMap(); + function createCapturedValueAtFiber(value, source) { + if ("object" === typeof value && null !== value) { + var existing = CapturedStacks.get(value); + if (void 0 !== existing) return existing; + source = { + value, + source, + stack: getStackByFiberInDevAndProd(source) + }; + CapturedStacks.set(value, source); + return source; + } + return { + value, + source, + stack: getStackByFiberInDevAndProd(source) + }; + } + var concurrentQueues = [], concurrentQueuesIndex = 0, concurrentlyUpdatedLanes = 0; + function finishQueueingConcurrentUpdates() { + for (var endIndex = concurrentQueuesIndex, i = concurrentlyUpdatedLanes = concurrentQueuesIndex = 0; i < endIndex; ) { + var fiber = concurrentQueues[i]; + concurrentQueues[i++] = null; + var queue = concurrentQueues[i]; + concurrentQueues[i++] = null; + var update = concurrentQueues[i]; + concurrentQueues[i++] = null; + var lane = concurrentQueues[i]; + concurrentQueues[i++] = null; + if (null !== queue && null !== update) { + var pending = queue.pending; + null === pending ? update.next = update : (update.next = pending.next, pending.next = update); + queue.pending = update; + } + 0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane); + } + } + function enqueueUpdate$1(fiber, queue, update, lane) { + concurrentQueues[concurrentQueuesIndex++] = fiber; + concurrentQueues[concurrentQueuesIndex++] = queue; + concurrentQueues[concurrentQueuesIndex++] = update; + concurrentQueues[concurrentQueuesIndex++] = lane; + concurrentlyUpdatedLanes |= lane; + fiber.lanes |= lane; + fiber = fiber.alternate; + null !== fiber && (fiber.lanes |= lane); + } + function enqueueConcurrentHookUpdate(fiber, queue, update, lane) { + enqueueUpdate$1(fiber, queue, update, lane); + return getRootForUpdatedFiber(fiber); + } + function enqueueConcurrentRenderForLane(fiber, lane) { + enqueueUpdate$1(fiber, null, null, lane); + return getRootForUpdatedFiber(fiber); + } + function markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) { + sourceFiber.lanes |= lane; + var alternate = sourceFiber.alternate; + null !== alternate && (alternate.lanes |= lane); + for (var isHidden2 = false, parent = sourceFiber.return; null !== parent; ) + parent.childLanes |= lane, alternate = parent.alternate, null !== alternate && (alternate.childLanes |= lane), 22 === parent.tag && (sourceFiber = parent.stateNode, null === sourceFiber || sourceFiber._visibility & 1 || (isHidden2 = true)), sourceFiber = parent, parent = parent.return; + return 3 === sourceFiber.tag ? (parent = sourceFiber.stateNode, isHidden2 && null !== update && (isHidden2 = 31 - clz32(lane), sourceFiber = parent.hiddenUpdates, alternate = sourceFiber[isHidden2], null === alternate ? sourceFiber[isHidden2] = [update] : alternate.push(update), update.lane = lane | 536870912), parent) : null; + } + function getRootForUpdatedFiber(sourceFiber) { + if (50 < nestedUpdateCount) + throw nestedUpdateCount = 0, rootWithNestedUpdates = null, Error(formatProdErrorMessage(185)); + for (var parent = sourceFiber.return; null !== parent; ) + sourceFiber = parent, parent = sourceFiber.return; + return 3 === sourceFiber.tag ? sourceFiber.stateNode : null; + } + var emptyContextObject = {}; + function FiberNode(tag, pendingProps, key, mode) { + this.tag = tag; + this.key = key; + this.sibling = this.child = this.return = this.stateNode = this.type = this.elementType = null; + this.index = 0; + this.refCleanup = this.ref = null; + this.pendingProps = pendingProps; + this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null; + this.mode = mode; + this.subtreeFlags = this.flags = 0; + this.deletions = null; + this.childLanes = this.lanes = 0; + this.alternate = null; + } + function createFiberImplClass(tag, pendingProps, key, mode) { + return new FiberNode(tag, pendingProps, key, mode); + } + function shouldConstruct(Component) { + Component = Component.prototype; + return !(!Component || !Component.isReactComponent); + } + function createWorkInProgress(current, pendingProps) { + var workInProgress2 = current.alternate; + null === workInProgress2 ? (workInProgress2 = createFiberImplClass( + current.tag, + pendingProps, + current.key, + current.mode + ), workInProgress2.elementType = current.elementType, workInProgress2.type = current.type, workInProgress2.stateNode = current.stateNode, workInProgress2.alternate = current, current.alternate = workInProgress2) : (workInProgress2.pendingProps = pendingProps, workInProgress2.type = current.type, workInProgress2.flags = 0, workInProgress2.subtreeFlags = 0, workInProgress2.deletions = null); + workInProgress2.flags = current.flags & 65011712; + workInProgress2.childLanes = current.childLanes; + workInProgress2.lanes = current.lanes; + workInProgress2.child = current.child; + workInProgress2.memoizedProps = current.memoizedProps; + workInProgress2.memoizedState = current.memoizedState; + workInProgress2.updateQueue = current.updateQueue; + pendingProps = current.dependencies; + workInProgress2.dependencies = null === pendingProps ? null : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext }; + workInProgress2.sibling = current.sibling; + workInProgress2.index = current.index; + workInProgress2.ref = current.ref; + workInProgress2.refCleanup = current.refCleanup; + return workInProgress2; + } + function resetWorkInProgress(workInProgress2, renderLanes2) { + workInProgress2.flags &= 65011714; + var current = workInProgress2.alternate; + null === current ? (workInProgress2.childLanes = 0, workInProgress2.lanes = renderLanes2, workInProgress2.child = null, workInProgress2.subtreeFlags = 0, workInProgress2.memoizedProps = null, workInProgress2.memoizedState = null, workInProgress2.updateQueue = null, workInProgress2.dependencies = null, workInProgress2.stateNode = null) : (workInProgress2.childLanes = current.childLanes, workInProgress2.lanes = current.lanes, workInProgress2.child = current.child, workInProgress2.subtreeFlags = 0, workInProgress2.deletions = null, workInProgress2.memoizedProps = current.memoizedProps, workInProgress2.memoizedState = current.memoizedState, workInProgress2.updateQueue = current.updateQueue, workInProgress2.type = current.type, renderLanes2 = current.dependencies, workInProgress2.dependencies = null === renderLanes2 ? null : { + lanes: renderLanes2.lanes, + firstContext: renderLanes2.firstContext + }); + return workInProgress2; + } + function createFiberFromTypeAndProps(type, key, pendingProps, owner, mode, lanes) { + var fiberTag = 0; + owner = type; + if ("function" === typeof type) shouldConstruct(type) && (fiberTag = 1); + else if ("string" === typeof type) + fiberTag = isHostHoistableType( + type, + pendingProps, + contextStackCursor.current + ) ? 26 : "html" === type || "head" === type || "body" === type ? 27 : 5; + else + a: switch (type) { + case REACT_ACTIVITY_TYPE: + return type = createFiberImplClass(31, pendingProps, key, mode), type.elementType = REACT_ACTIVITY_TYPE, type.lanes = lanes, type; + case REACT_FRAGMENT_TYPE: + return createFiberFromFragment(pendingProps.children, mode, lanes, key); + case REACT_STRICT_MODE_TYPE: + fiberTag = 8; + mode |= 24; + break; + case REACT_PROFILER_TYPE: + return type = createFiberImplClass(12, pendingProps, key, mode | 2), type.elementType = REACT_PROFILER_TYPE, type.lanes = lanes, type; + case REACT_SUSPENSE_TYPE: + return type = createFiberImplClass(13, pendingProps, key, mode), type.elementType = REACT_SUSPENSE_TYPE, type.lanes = lanes, type; + case REACT_SUSPENSE_LIST_TYPE: + return type = createFiberImplClass(19, pendingProps, key, mode), type.elementType = REACT_SUSPENSE_LIST_TYPE, type.lanes = lanes, type; + default: + if ("object" === typeof type && null !== type) + switch (type.$$typeof) { + case REACT_PROVIDER_TYPE: + case REACT_CONTEXT_TYPE: + fiberTag = 10; + break a; + case REACT_CONSUMER_TYPE: + fiberTag = 9; + break a; + case REACT_FORWARD_REF_TYPE: + fiberTag = 11; + break a; + case REACT_MEMO_TYPE: + fiberTag = 14; + break a; + case REACT_LAZY_TYPE: + fiberTag = 16; + owner = null; + break a; + } + fiberTag = 29; + pendingProps = Error( + formatProdErrorMessage(130, null === type ? "null" : typeof type, "") + ); + owner = null; + } + key = createFiberImplClass(fiberTag, pendingProps, key, mode); + key.elementType = type; + key.type = owner; + key.lanes = lanes; + return key; + } + function createFiberFromFragment(elements, mode, lanes, key) { + elements = createFiberImplClass(7, elements, key, mode); + elements.lanes = lanes; + return elements; + } + function createFiberFromText(content, mode, lanes) { + content = createFiberImplClass(6, content, null, mode); + content.lanes = lanes; + return content; + } + function createFiberFromPortal(portal, mode, lanes) { + mode = createFiberImplClass( + 4, + null !== portal.children ? portal.children : [], + portal.key, + mode + ); + mode.lanes = lanes; + mode.stateNode = { + containerInfo: portal.containerInfo, + pendingChildren: null, + implementation: portal.implementation + }; + return mode; + } + var forkStack = [], forkStackIndex = 0, treeForkProvider = null, treeForkCount = 0, idStack = [], idStackIndex = 0, treeContextProvider = null, treeContextId = 1, treeContextOverflow = ""; + function pushTreeFork(workInProgress2, totalChildren) { + forkStack[forkStackIndex++] = treeForkCount; + forkStack[forkStackIndex++] = treeForkProvider; + treeForkProvider = workInProgress2; + treeForkCount = totalChildren; + } + function pushTreeId(workInProgress2, totalChildren, index3) { + idStack[idStackIndex++] = treeContextId; + idStack[idStackIndex++] = treeContextOverflow; + idStack[idStackIndex++] = treeContextProvider; + treeContextProvider = workInProgress2; + var baseIdWithLeadingBit = treeContextId; + workInProgress2 = treeContextOverflow; + var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1; + baseIdWithLeadingBit &= ~(1 << baseLength); + index3 += 1; + var length = 32 - clz32(totalChildren) + baseLength; + if (30 < length) { + var numberOfOverflowBits = baseLength - baseLength % 5; + length = (baseIdWithLeadingBit & (1 << numberOfOverflowBits) - 1).toString(32); + baseIdWithLeadingBit >>= numberOfOverflowBits; + baseLength -= numberOfOverflowBits; + treeContextId = 1 << 32 - clz32(totalChildren) + baseLength | index3 << baseLength | baseIdWithLeadingBit; + treeContextOverflow = length + workInProgress2; + } else + treeContextId = 1 << length | index3 << baseLength | baseIdWithLeadingBit, treeContextOverflow = workInProgress2; + } + function pushMaterializedTreeId(workInProgress2) { + null !== workInProgress2.return && (pushTreeFork(workInProgress2, 1), pushTreeId(workInProgress2, 1, 0)); + } + function popTreeContext(workInProgress2) { + for (; workInProgress2 === treeForkProvider; ) + treeForkProvider = forkStack[--forkStackIndex], forkStack[forkStackIndex] = null, treeForkCount = forkStack[--forkStackIndex], forkStack[forkStackIndex] = null; + for (; workInProgress2 === treeContextProvider; ) + treeContextProvider = idStack[--idStackIndex], idStack[idStackIndex] = null, treeContextOverflow = idStack[--idStackIndex], idStack[idStackIndex] = null, treeContextId = idStack[--idStackIndex], idStack[idStackIndex] = null; + } + var hydrationParentFiber = null, nextHydratableInstance = null, isHydrating = false, hydrationErrors = null, rootOrSingletonContext = false, HydrationMismatchException = Error(formatProdErrorMessage(519)); + function throwOnHydrationMismatch(fiber) { + var error = Error(formatProdErrorMessage(418, "")); + queueHydrationError(createCapturedValueAtFiber(error, fiber)); + throw HydrationMismatchException; + } + function prepareToHydrateHostInstance(fiber) { + var instance = fiber.stateNode, type = fiber.type, props = fiber.memoizedProps; + instance[internalInstanceKey] = fiber; + instance[internalPropsKey] = props; + switch (type) { + case "dialog": + listenToNonDelegatedEvent("cancel", instance); + listenToNonDelegatedEvent("close", instance); + break; + case "iframe": + case "object": + case "embed": + listenToNonDelegatedEvent("load", instance); + break; + case "video": + case "audio": + for (type = 0; type < mediaEventTypes.length; type++) + listenToNonDelegatedEvent(mediaEventTypes[type], instance); + break; + case "source": + listenToNonDelegatedEvent("error", instance); + break; + case "img": + case "image": + case "link": + listenToNonDelegatedEvent("error", instance); + listenToNonDelegatedEvent("load", instance); + break; + case "details": + listenToNonDelegatedEvent("toggle", instance); + break; + case "input": + listenToNonDelegatedEvent("invalid", instance); + initInput( + instance, + props.value, + props.defaultValue, + props.checked, + props.defaultChecked, + props.type, + props.name, + true + ); + track(instance); + break; + case "select": + listenToNonDelegatedEvent("invalid", instance); + break; + case "textarea": + listenToNonDelegatedEvent("invalid", instance), initTextarea(instance, props.value, props.defaultValue, props.children), track(instance); + } + type = props.children; + "string" !== typeof type && "number" !== typeof type && "bigint" !== typeof type || instance.textContent === "" + type || true === props.suppressHydrationWarning || checkForUnmatchedText(instance.textContent, type) ? (null != props.popover && (listenToNonDelegatedEvent("beforetoggle", instance), listenToNonDelegatedEvent("toggle", instance)), null != props.onScroll && listenToNonDelegatedEvent("scroll", instance), null != props.onScrollEnd && listenToNonDelegatedEvent("scrollend", instance), null != props.onClick && (instance.onclick = noop$1), instance = true) : instance = false; + instance || throwOnHydrationMismatch(fiber); + } + function popToNextHostParent(fiber) { + for (hydrationParentFiber = fiber.return; hydrationParentFiber; ) + switch (hydrationParentFiber.tag) { + case 5: + case 13: + rootOrSingletonContext = false; + return; + case 27: + case 3: + rootOrSingletonContext = true; + return; + default: + hydrationParentFiber = hydrationParentFiber.return; + } + } + function popHydrationState(fiber) { + if (fiber !== hydrationParentFiber) return false; + if (!isHydrating) return popToNextHostParent(fiber), isHydrating = true, false; + var tag = fiber.tag, JSCompiler_temp; + if (JSCompiler_temp = 3 !== tag && 27 !== tag) { + if (JSCompiler_temp = 5 === tag) + JSCompiler_temp = fiber.type, JSCompiler_temp = !("form" !== JSCompiler_temp && "button" !== JSCompiler_temp) || shouldSetTextContent(fiber.type, fiber.memoizedProps); + JSCompiler_temp = !JSCompiler_temp; + } + JSCompiler_temp && nextHydratableInstance && throwOnHydrationMismatch(fiber); + popToNextHostParent(fiber); + if (13 === tag) { + fiber = fiber.memoizedState; + fiber = null !== fiber ? fiber.dehydrated : null; + if (!fiber) throw Error(formatProdErrorMessage(317)); + a: { + fiber = fiber.nextSibling; + for (tag = 0; fiber; ) { + if (8 === fiber.nodeType) + if (JSCompiler_temp = fiber.data, "/$" === JSCompiler_temp) { + if (0 === tag) { + nextHydratableInstance = getNextHydratable(fiber.nextSibling); + break a; + } + tag--; + } else + "$" !== JSCompiler_temp && "$!" !== JSCompiler_temp && "$?" !== JSCompiler_temp || tag++; + fiber = fiber.nextSibling; + } + nextHydratableInstance = null; + } + } else + 27 === tag ? (tag = nextHydratableInstance, isSingletonScope(fiber.type) ? (fiber = previousHydratableOnEnteringScopedSingleton, previousHydratableOnEnteringScopedSingleton = null, nextHydratableInstance = fiber) : nextHydratableInstance = tag) : nextHydratableInstance = hydrationParentFiber ? getNextHydratable(fiber.stateNode.nextSibling) : null; + return true; + } + function resetHydrationState() { + nextHydratableInstance = hydrationParentFiber = null; + isHydrating = false; + } + function upgradeHydrationErrorsToRecoverable() { + var queuedErrors = hydrationErrors; + null !== queuedErrors && (null === workInProgressRootRecoverableErrors ? workInProgressRootRecoverableErrors = queuedErrors : workInProgressRootRecoverableErrors.push.apply( + workInProgressRootRecoverableErrors, + queuedErrors + ), hydrationErrors = null); + return queuedErrors; + } + function queueHydrationError(error) { + null === hydrationErrors ? hydrationErrors = [error] : hydrationErrors.push(error); + } + var valueCursor = createCursor(null), currentlyRenderingFiber$1 = null, lastContextDependency = null; + function pushProvider(providerFiber, context, nextValue) { + push(valueCursor, context._currentValue); + context._currentValue = nextValue; + } + function popProvider(context) { + context._currentValue = valueCursor.current; + pop(valueCursor); + } + function scheduleContextWorkOnParentPath(parent, renderLanes2, propagationRoot) { + for (; null !== parent; ) { + var alternate = parent.alternate; + (parent.childLanes & renderLanes2) !== renderLanes2 ? (parent.childLanes |= renderLanes2, null !== alternate && (alternate.childLanes |= renderLanes2)) : null !== alternate && (alternate.childLanes & renderLanes2) !== renderLanes2 && (alternate.childLanes |= renderLanes2); + if (parent === propagationRoot) break; + parent = parent.return; + } + } + function propagateContextChanges(workInProgress2, contexts, renderLanes2, forcePropagateEntireTree) { + var fiber = workInProgress2.child; + null !== fiber && (fiber.return = workInProgress2); + for (; null !== fiber; ) { + var list = fiber.dependencies; + if (null !== list) { + var nextFiber = fiber.child; + list = list.firstContext; + a: for (; null !== list; ) { + var dependency = list; + list = fiber; + for (var i = 0; i < contexts.length; i++) + if (dependency.context === contexts[i]) { + list.lanes |= renderLanes2; + dependency = list.alternate; + null !== dependency && (dependency.lanes |= renderLanes2); + scheduleContextWorkOnParentPath( + list.return, + renderLanes2, + workInProgress2 + ); + forcePropagateEntireTree || (nextFiber = null); + break a; + } + list = dependency.next; + } + } else if (18 === fiber.tag) { + nextFiber = fiber.return; + if (null === nextFiber) throw Error(formatProdErrorMessage(341)); + nextFiber.lanes |= renderLanes2; + list = nextFiber.alternate; + null !== list && (list.lanes |= renderLanes2); + scheduleContextWorkOnParentPath(nextFiber, renderLanes2, workInProgress2); + nextFiber = null; + } else nextFiber = fiber.child; + if (null !== nextFiber) nextFiber.return = fiber; + else + for (nextFiber = fiber; null !== nextFiber; ) { + if (nextFiber === workInProgress2) { + nextFiber = null; + break; + } + fiber = nextFiber.sibling; + if (null !== fiber) { + fiber.return = nextFiber.return; + nextFiber = fiber; + break; + } + nextFiber = nextFiber.return; + } + fiber = nextFiber; + } + } + function propagateParentContextChanges(current, workInProgress2, renderLanes2, forcePropagateEntireTree) { + current = null; + for (var parent = workInProgress2, isInsidePropagationBailout = false; null !== parent; ) { + if (!isInsidePropagationBailout) { + if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = true; + else if (0 !== (parent.flags & 262144)) break; + } + if (10 === parent.tag) { + var currentParent = parent.alternate; + if (null === currentParent) throw Error(formatProdErrorMessage(387)); + currentParent = currentParent.memoizedProps; + if (null !== currentParent) { + var context = parent.type; + objectIs(parent.pendingProps.value, currentParent.value) || (null !== current ? current.push(context) : current = [context]); + } + } else if (parent === hostTransitionProviderCursor.current) { + currentParent = parent.alternate; + if (null === currentParent) throw Error(formatProdErrorMessage(387)); + currentParent.memoizedState.memoizedState !== parent.memoizedState.memoizedState && (null !== current ? current.push(HostTransitionContext) : current = [HostTransitionContext]); + } + parent = parent.return; + } + null !== current && propagateContextChanges( + workInProgress2, + current, + renderLanes2, + forcePropagateEntireTree + ); + workInProgress2.flags |= 262144; + } + function checkIfContextChanged(currentDependencies) { + for (currentDependencies = currentDependencies.firstContext; null !== currentDependencies; ) { + if (!objectIs( + currentDependencies.context._currentValue, + currentDependencies.memoizedValue + )) + return true; + currentDependencies = currentDependencies.next; + } + return false; + } + function prepareToReadContext(workInProgress2) { + currentlyRenderingFiber$1 = workInProgress2; + lastContextDependency = null; + workInProgress2 = workInProgress2.dependencies; + null !== workInProgress2 && (workInProgress2.firstContext = null); + } + function readContext(context) { + return readContextForConsumer(currentlyRenderingFiber$1, context); + } + function readContextDuringReconciliation(consumer, context) { + null === currentlyRenderingFiber$1 && prepareToReadContext(consumer); + return readContextForConsumer(consumer, context); + } + function readContextForConsumer(consumer, context) { + var value = context._currentValue; + context = { context, memoizedValue: value, next: null }; + if (null === lastContextDependency) { + if (null === consumer) throw Error(formatProdErrorMessage(308)); + lastContextDependency = context; + consumer.dependencies = { lanes: 0, firstContext: context }; + consumer.flags |= 524288; + } else lastContextDependency = lastContextDependency.next = context; + return value; + } + var AbortControllerLocal = "undefined" !== typeof AbortController ? AbortController : function() { + var listeners = [], signal = this.signal = { + aborted: false, + addEventListener: function(type, listener) { + listeners.push(listener); + } + }; + this.abort = function() { + signal.aborted = true; + listeners.forEach(function(listener) { + return listener(); + }); + }; + }, scheduleCallback$2 = Scheduler.unstable_scheduleCallback, NormalPriority = Scheduler.unstable_NormalPriority, CacheContext = { + $$typeof: REACT_CONTEXT_TYPE, + Consumer: null, + Provider: null, + _currentValue: null, + _currentValue2: null, + _threadCount: 0 + }; + function createCache() { + return { + controller: new AbortControllerLocal(), + data: /* @__PURE__ */ new Map(), + refCount: 0 + }; + } + function releaseCache(cache) { + cache.refCount--; + 0 === cache.refCount && scheduleCallback$2(NormalPriority, function() { + cache.controller.abort(); + }); + } + var currentEntangledListeners = null, currentEntangledPendingCount = 0, currentEntangledLane = 0, currentEntangledActionThenable = null; + function entangleAsyncAction(transition, thenable) { + if (null === currentEntangledListeners) { + var entangledListeners = currentEntangledListeners = []; + currentEntangledPendingCount = 0; + currentEntangledLane = requestTransitionLane(); + currentEntangledActionThenable = { + status: "pending", + value: void 0, + then: function(resolve) { + entangledListeners.push(resolve); + } + }; + } + currentEntangledPendingCount++; + thenable.then(pingEngtangledActionScope, pingEngtangledActionScope); + return thenable; + } + function pingEngtangledActionScope() { + if (0 === --currentEntangledPendingCount && null !== currentEntangledListeners) { + null !== currentEntangledActionThenable && (currentEntangledActionThenable.status = "fulfilled"); + var listeners = currentEntangledListeners; + currentEntangledListeners = null; + currentEntangledLane = 0; + currentEntangledActionThenable = null; + for (var i = 0; i < listeners.length; i++) (0, listeners[i])(); + } + } + function chainThenableValue(thenable, result) { + var listeners = [], thenableWithOverride = { + status: "pending", + value: null, + reason: null, + then: function(resolve) { + listeners.push(resolve); + } + }; + thenable.then( + function() { + thenableWithOverride.status = "fulfilled"; + thenableWithOverride.value = result; + for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result); + }, + function(error) { + thenableWithOverride.status = "rejected"; + thenableWithOverride.reason = error; + for (error = 0; error < listeners.length; error++) + (0, listeners[error])(void 0); + } + ); + return thenableWithOverride; + } + var prevOnStartTransitionFinish = ReactSharedInternals.S; + ReactSharedInternals.S = function(transition, returnValue) { + "object" === typeof returnValue && null !== returnValue && "function" === typeof returnValue.then && entangleAsyncAction(transition, returnValue); + null !== prevOnStartTransitionFinish && prevOnStartTransitionFinish(transition, returnValue); + }; + var resumedCache = createCursor(null); + function peekCacheFromPool() { + var cacheResumedFromPreviousRender = resumedCache.current; + return null !== cacheResumedFromPreviousRender ? cacheResumedFromPreviousRender : workInProgressRoot.pooledCache; + } + function pushTransition(offscreenWorkInProgress, prevCachePool) { + null === prevCachePool ? push(resumedCache, resumedCache.current) : push(resumedCache, prevCachePool.pool); + } + function getSuspendedCache() { + var cacheFromPool = peekCacheFromPool(); + return null === cacheFromPool ? null : { parent: CacheContext._currentValue, pool: cacheFromPool }; + } + var SuspenseException = Error(formatProdErrorMessage(460)), SuspenseyCommitException = Error(formatProdErrorMessage(474)), SuspenseActionException = Error(formatProdErrorMessage(542)), noopSuspenseyCommitThenable = { then: function() { + } }; + function isThenableResolved(thenable) { + thenable = thenable.status; + return "fulfilled" === thenable || "rejected" === thenable; + } + function noop$3() { + } + function trackUsedThenable(thenableState2, thenable, index3) { + index3 = thenableState2[index3]; + void 0 === index3 ? thenableState2.push(thenable) : index3 !== thenable && (thenable.then(noop$3, noop$3), thenable = index3); + switch (thenable.status) { + case "fulfilled": + return thenable.value; + case "rejected": + throw thenableState2 = thenable.reason, checkIfUseWrappedInAsyncCatch(thenableState2), thenableState2; + default: + if ("string" === typeof thenable.status) thenable.then(noop$3, noop$3); + else { + thenableState2 = workInProgressRoot; + if (null !== thenableState2 && 100 < thenableState2.shellSuspendCounter) + throw Error(formatProdErrorMessage(482)); + thenableState2 = thenable; + thenableState2.status = "pending"; + thenableState2.then( + function(fulfilledValue) { + if ("pending" === thenable.status) { + var fulfilledThenable = thenable; + fulfilledThenable.status = "fulfilled"; + fulfilledThenable.value = fulfilledValue; + } + }, + function(error) { + if ("pending" === thenable.status) { + var rejectedThenable = thenable; + rejectedThenable.status = "rejected"; + rejectedThenable.reason = error; + } + } + ); + } + switch (thenable.status) { + case "fulfilled": + return thenable.value; + case "rejected": + throw thenableState2 = thenable.reason, checkIfUseWrappedInAsyncCatch(thenableState2), thenableState2; + } + suspendedThenable = thenable; + throw SuspenseException; + } + } + var suspendedThenable = null; + function getSuspendedThenable() { + if (null === suspendedThenable) throw Error(formatProdErrorMessage(459)); + var thenable = suspendedThenable; + suspendedThenable = null; + return thenable; + } + function checkIfUseWrappedInAsyncCatch(rejectedReason) { + if (rejectedReason === SuspenseException || rejectedReason === SuspenseActionException) + throw Error(formatProdErrorMessage(483)); + } + var hasForceUpdate = false; + function initializeUpdateQueue(fiber) { + fiber.updateQueue = { + baseState: fiber.memoizedState, + firstBaseUpdate: null, + lastBaseUpdate: null, + shared: { pending: null, lanes: 0, hiddenCallbacks: null }, + callbacks: null + }; + } + function cloneUpdateQueue(current, workInProgress2) { + current = current.updateQueue; + workInProgress2.updateQueue === current && (workInProgress2.updateQueue = { + baseState: current.baseState, + firstBaseUpdate: current.firstBaseUpdate, + lastBaseUpdate: current.lastBaseUpdate, + shared: current.shared, + callbacks: null + }); + } + function createUpdate(lane) { + return { lane, tag: 0, payload: null, callback: null, next: null }; + } + function enqueueUpdate(fiber, update, lane) { + var updateQueue = fiber.updateQueue; + if (null === updateQueue) return null; + updateQueue = updateQueue.shared; + if (0 !== (executionContext & 2)) { + var pending = updateQueue.pending; + null === pending ? update.next = update : (update.next = pending.next, pending.next = update); + updateQueue.pending = update; + update = getRootForUpdatedFiber(fiber); + markUpdateLaneFromFiberToRoot(fiber, null, lane); + return update; + } + enqueueUpdate$1(fiber, updateQueue, update, lane); + return getRootForUpdatedFiber(fiber); + } + function entangleTransitions(root3, fiber, lane) { + fiber = fiber.updateQueue; + if (null !== fiber && (fiber = fiber.shared, 0 !== (lane & 4194048))) { + var queueLanes = fiber.lanes; + queueLanes &= root3.pendingLanes; + lane |= queueLanes; + fiber.lanes = lane; + markRootEntangled(root3, lane); + } + } + function enqueueCapturedUpdate(workInProgress2, capturedUpdate) { + var queue = workInProgress2.updateQueue, current = workInProgress2.alternate; + if (null !== current && (current = current.updateQueue, queue === current)) { + var newFirst = null, newLast = null; + queue = queue.firstBaseUpdate; + if (null !== queue) { + do { + var clone = { + lane: queue.lane, + tag: queue.tag, + payload: queue.payload, + callback: null, + next: null + }; + null === newLast ? newFirst = newLast = clone : newLast = newLast.next = clone; + queue = queue.next; + } while (null !== queue); + null === newLast ? newFirst = newLast = capturedUpdate : newLast = newLast.next = capturedUpdate; + } else newFirst = newLast = capturedUpdate; + queue = { + baseState: current.baseState, + firstBaseUpdate: newFirst, + lastBaseUpdate: newLast, + shared: current.shared, + callbacks: current.callbacks + }; + workInProgress2.updateQueue = queue; + return; + } + workInProgress2 = queue.lastBaseUpdate; + null === workInProgress2 ? queue.firstBaseUpdate = capturedUpdate : workInProgress2.next = capturedUpdate; + queue.lastBaseUpdate = capturedUpdate; + } + var didReadFromEntangledAsyncAction = false; + function suspendIfUpdateReadFromEntangledAsyncAction() { + if (didReadFromEntangledAsyncAction) { + var entangledActionThenable = currentEntangledActionThenable; + if (null !== entangledActionThenable) throw entangledActionThenable; + } + } + function processUpdateQueue(workInProgress$jscomp$0, props, instance$jscomp$0, renderLanes2) { + didReadFromEntangledAsyncAction = false; + var queue = workInProgress$jscomp$0.updateQueue; + hasForceUpdate = false; + var firstBaseUpdate = queue.firstBaseUpdate, lastBaseUpdate = queue.lastBaseUpdate, pendingQueue = queue.shared.pending; + if (null !== pendingQueue) { + queue.shared.pending = null; + var lastPendingUpdate = pendingQueue, firstPendingUpdate = lastPendingUpdate.next; + lastPendingUpdate.next = null; + null === lastBaseUpdate ? firstBaseUpdate = firstPendingUpdate : lastBaseUpdate.next = firstPendingUpdate; + lastBaseUpdate = lastPendingUpdate; + var current = workInProgress$jscomp$0.alternate; + null !== current && (current = current.updateQueue, pendingQueue = current.lastBaseUpdate, pendingQueue !== lastBaseUpdate && (null === pendingQueue ? current.firstBaseUpdate = firstPendingUpdate : pendingQueue.next = firstPendingUpdate, current.lastBaseUpdate = lastPendingUpdate)); + } + if (null !== firstBaseUpdate) { + var newState = queue.baseState; + lastBaseUpdate = 0; + current = firstPendingUpdate = lastPendingUpdate = null; + pendingQueue = firstBaseUpdate; + do { + var updateLane = pendingQueue.lane & -536870913, isHiddenUpdate = updateLane !== pendingQueue.lane; + if (isHiddenUpdate ? (workInProgressRootRenderLanes & updateLane) === updateLane : (renderLanes2 & updateLane) === updateLane) { + 0 !== updateLane && updateLane === currentEntangledLane && (didReadFromEntangledAsyncAction = true); + null !== current && (current = current.next = { + lane: 0, + tag: pendingQueue.tag, + payload: pendingQueue.payload, + callback: null, + next: null + }); + a: { + var workInProgress2 = workInProgress$jscomp$0, update = pendingQueue; + updateLane = props; + var instance = instance$jscomp$0; + switch (update.tag) { + case 1: + workInProgress2 = update.payload; + if ("function" === typeof workInProgress2) { + newState = workInProgress2.call(instance, newState, updateLane); + break a; + } + newState = workInProgress2; + break a; + case 3: + workInProgress2.flags = workInProgress2.flags & -65537 | 128; + case 0: + workInProgress2 = update.payload; + updateLane = "function" === typeof workInProgress2 ? workInProgress2.call(instance, newState, updateLane) : workInProgress2; + if (null === updateLane || void 0 === updateLane) break a; + newState = assign({}, newState, updateLane); + break a; + case 2: + hasForceUpdate = true; + } + } + updateLane = pendingQueue.callback; + null !== updateLane && (workInProgress$jscomp$0.flags |= 64, isHiddenUpdate && (workInProgress$jscomp$0.flags |= 8192), isHiddenUpdate = queue.callbacks, null === isHiddenUpdate ? queue.callbacks = [updateLane] : isHiddenUpdate.push(updateLane)); + } else + isHiddenUpdate = { + lane: updateLane, + tag: pendingQueue.tag, + payload: pendingQueue.payload, + callback: pendingQueue.callback, + next: null + }, null === current ? (firstPendingUpdate = current = isHiddenUpdate, lastPendingUpdate = newState) : current = current.next = isHiddenUpdate, lastBaseUpdate |= updateLane; + pendingQueue = pendingQueue.next; + if (null === pendingQueue) + if (pendingQueue = queue.shared.pending, null === pendingQueue) + break; + else + isHiddenUpdate = pendingQueue, pendingQueue = isHiddenUpdate.next, isHiddenUpdate.next = null, queue.lastBaseUpdate = isHiddenUpdate, queue.shared.pending = null; + } while (1); + null === current && (lastPendingUpdate = newState); + queue.baseState = lastPendingUpdate; + queue.firstBaseUpdate = firstPendingUpdate; + queue.lastBaseUpdate = current; + null === firstBaseUpdate && (queue.shared.lanes = 0); + workInProgressRootSkippedLanes |= lastBaseUpdate; + workInProgress$jscomp$0.lanes = lastBaseUpdate; + workInProgress$jscomp$0.memoizedState = newState; + } + } + function callCallback(callback, context) { + if ("function" !== typeof callback) + throw Error(formatProdErrorMessage(191, callback)); + callback.call(context); + } + function commitCallbacks(updateQueue, context) { + var callbacks = updateQueue.callbacks; + if (null !== callbacks) + for (updateQueue.callbacks = null, updateQueue = 0; updateQueue < callbacks.length; updateQueue++) + callCallback(callbacks[updateQueue], context); + } + var currentTreeHiddenStackCursor = createCursor(null), prevEntangledRenderLanesCursor = createCursor(0); + function pushHiddenContext(fiber, context) { + fiber = entangledRenderLanes; + push(prevEntangledRenderLanesCursor, fiber); + push(currentTreeHiddenStackCursor, context); + entangledRenderLanes = fiber | context.baseLanes; + } + function reuseHiddenContextOnStack() { + push(prevEntangledRenderLanesCursor, entangledRenderLanes); + push(currentTreeHiddenStackCursor, currentTreeHiddenStackCursor.current); + } + function popHiddenContext() { + entangledRenderLanes = prevEntangledRenderLanesCursor.current; + pop(currentTreeHiddenStackCursor); + pop(prevEntangledRenderLanesCursor); + } + var renderLanes = 0, currentlyRenderingFiber = null, currentHook = null, workInProgressHook = null, didScheduleRenderPhaseUpdate = false, didScheduleRenderPhaseUpdateDuringThisPass = false, shouldDoubleInvokeUserFnsInHooksDEV = false, localIdCounter = 0, thenableIndexCounter$1 = 0, thenableState$1 = null, globalClientIdCounter = 0; + function throwInvalidHookError() { + throw Error(formatProdErrorMessage(321)); + } + function areHookInputsEqual(nextDeps, prevDeps) { + if (null === prevDeps) return false; + for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++) + if (!objectIs(nextDeps[i], prevDeps[i])) return false; + return true; + } + function renderWithHooks(current, workInProgress2, Component, props, secondArg, nextRenderLanes) { + renderLanes = nextRenderLanes; + currentlyRenderingFiber = workInProgress2; + workInProgress2.memoizedState = null; + workInProgress2.updateQueue = null; + workInProgress2.lanes = 0; + ReactSharedInternals.H = null === current || null === current.memoizedState ? HooksDispatcherOnMount : HooksDispatcherOnUpdate; + shouldDoubleInvokeUserFnsInHooksDEV = false; + nextRenderLanes = Component(props, secondArg); + shouldDoubleInvokeUserFnsInHooksDEV = false; + didScheduleRenderPhaseUpdateDuringThisPass && (nextRenderLanes = renderWithHooksAgain( + workInProgress2, + Component, + props, + secondArg + )); + finishRenderingHooks(current); + return nextRenderLanes; + } + function finishRenderingHooks(current) { + ReactSharedInternals.H = ContextOnlyDispatcher; + var didRenderTooFewHooks = null !== currentHook && null !== currentHook.next; + renderLanes = 0; + workInProgressHook = currentHook = currentlyRenderingFiber = null; + didScheduleRenderPhaseUpdate = false; + thenableIndexCounter$1 = 0; + thenableState$1 = null; + if (didRenderTooFewHooks) throw Error(formatProdErrorMessage(300)); + null === current || didReceiveUpdate || (current = current.dependencies, null !== current && checkIfContextChanged(current) && (didReceiveUpdate = true)); + } + function renderWithHooksAgain(workInProgress2, Component, props, secondArg) { + currentlyRenderingFiber = workInProgress2; + var numberOfReRenders = 0; + do { + didScheduleRenderPhaseUpdateDuringThisPass && (thenableState$1 = null); + thenableIndexCounter$1 = 0; + didScheduleRenderPhaseUpdateDuringThisPass = false; + if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301)); + numberOfReRenders += 1; + workInProgressHook = currentHook = null; + if (null != workInProgress2.updateQueue) { + var children = workInProgress2.updateQueue; + children.lastEffect = null; + children.events = null; + children.stores = null; + null != children.memoCache && (children.memoCache.index = 0); + } + ReactSharedInternals.H = HooksDispatcherOnRerender; + children = Component(props, secondArg); + } while (didScheduleRenderPhaseUpdateDuringThisPass); + return children; + } + function TransitionAwareHostComponent() { + var dispatcher = ReactSharedInternals.H, maybeThenable = dispatcher.useState()[0]; + maybeThenable = "function" === typeof maybeThenable.then ? useThenable(maybeThenable) : maybeThenable; + dispatcher = dispatcher.useState()[0]; + (null !== currentHook ? currentHook.memoizedState : null) !== dispatcher && (currentlyRenderingFiber.flags |= 1024); + return maybeThenable; + } + function checkDidRenderIdHook() { + var didRenderIdHook = 0 !== localIdCounter; + localIdCounter = 0; + return didRenderIdHook; + } + function bailoutHooks(current, workInProgress2, lanes) { + workInProgress2.updateQueue = current.updateQueue; + workInProgress2.flags &= -2053; + current.lanes &= ~lanes; + } + function resetHooksOnUnwind(workInProgress2) { + if (didScheduleRenderPhaseUpdate) { + for (workInProgress2 = workInProgress2.memoizedState; null !== workInProgress2; ) { + var queue = workInProgress2.queue; + null !== queue && (queue.pending = null); + workInProgress2 = workInProgress2.next; + } + didScheduleRenderPhaseUpdate = false; + } + renderLanes = 0; + workInProgressHook = currentHook = currentlyRenderingFiber = null; + didScheduleRenderPhaseUpdateDuringThisPass = false; + thenableIndexCounter$1 = localIdCounter = 0; + thenableState$1 = null; + } + function mountWorkInProgressHook() { + var hook = { + memoizedState: null, + baseState: null, + baseQueue: null, + queue: null, + next: null + }; + null === workInProgressHook ? currentlyRenderingFiber.memoizedState = workInProgressHook = hook : workInProgressHook = workInProgressHook.next = hook; + return workInProgressHook; + } + function updateWorkInProgressHook() { + if (null === currentHook) { + var nextCurrentHook = currentlyRenderingFiber.alternate; + nextCurrentHook = null !== nextCurrentHook ? nextCurrentHook.memoizedState : null; + } else nextCurrentHook = currentHook.next; + var nextWorkInProgressHook = null === workInProgressHook ? currentlyRenderingFiber.memoizedState : workInProgressHook.next; + if (null !== nextWorkInProgressHook) + workInProgressHook = nextWorkInProgressHook, currentHook = nextCurrentHook; + else { + if (null === nextCurrentHook) { + if (null === currentlyRenderingFiber.alternate) + throw Error(formatProdErrorMessage(467)); + throw Error(formatProdErrorMessage(310)); + } + currentHook = nextCurrentHook; + nextCurrentHook = { + memoizedState: currentHook.memoizedState, + baseState: currentHook.baseState, + baseQueue: currentHook.baseQueue, + queue: currentHook.queue, + next: null + }; + null === workInProgressHook ? currentlyRenderingFiber.memoizedState = workInProgressHook = nextCurrentHook : workInProgressHook = workInProgressHook.next = nextCurrentHook; + } + return workInProgressHook; + } + function createFunctionComponentUpdateQueue() { + return { lastEffect: null, events: null, stores: null, memoCache: null }; + } + function useThenable(thenable) { + var index3 = thenableIndexCounter$1; + thenableIndexCounter$1 += 1; + null === thenableState$1 && (thenableState$1 = []); + thenable = trackUsedThenable(thenableState$1, thenable, index3); + index3 = currentlyRenderingFiber; + null === (null === workInProgressHook ? index3.memoizedState : workInProgressHook.next) && (index3 = index3.alternate, ReactSharedInternals.H = null === index3 || null === index3.memoizedState ? HooksDispatcherOnMount : HooksDispatcherOnUpdate); + return thenable; + } + function use(usable) { + if (null !== usable && "object" === typeof usable) { + if ("function" === typeof usable.then) return useThenable(usable); + if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable); + } + throw Error(formatProdErrorMessage(438, String(usable))); + } + function useMemoCache(size2) { + var memoCache = null, updateQueue = currentlyRenderingFiber.updateQueue; + null !== updateQueue && (memoCache = updateQueue.memoCache); + if (null == memoCache) { + var current = currentlyRenderingFiber.alternate; + null !== current && (current = current.updateQueue, null !== current && (current = current.memoCache, null != current && (memoCache = { + data: current.data.map(function(array) { + return array.slice(); + }), + index: 0 + }))); + } + null == memoCache && (memoCache = { data: [], index: 0 }); + null === updateQueue && (updateQueue = createFunctionComponentUpdateQueue(), currentlyRenderingFiber.updateQueue = updateQueue); + updateQueue.memoCache = memoCache; + updateQueue = memoCache.data[memoCache.index]; + if (void 0 === updateQueue) + for (updateQueue = memoCache.data[memoCache.index] = Array(size2), current = 0; current < size2; current++) + updateQueue[current] = REACT_MEMO_CACHE_SENTINEL; + memoCache.index++; + return updateQueue; + } + function basicStateReducer(state, action) { + return "function" === typeof action ? action(state) : action; + } + function updateReducer(reducer) { + var hook = updateWorkInProgressHook(); + return updateReducerImpl(hook, currentHook, reducer); + } + function updateReducerImpl(hook, current, reducer) { + var queue = hook.queue; + if (null === queue) throw Error(formatProdErrorMessage(311)); + queue.lastRenderedReducer = reducer; + var baseQueue = hook.baseQueue, pendingQueue = queue.pending; + if (null !== pendingQueue) { + if (null !== baseQueue) { + var baseFirst = baseQueue.next; + baseQueue.next = pendingQueue.next; + pendingQueue.next = baseFirst; + } + current.baseQueue = baseQueue = pendingQueue; + queue.pending = null; + } + pendingQueue = hook.baseState; + if (null === baseQueue) hook.memoizedState = pendingQueue; + else { + current = baseQueue.next; + var newBaseQueueFirst = baseFirst = null, newBaseQueueLast = null, update = current, didReadFromEntangledAsyncAction$32 = false; + do { + var updateLane = update.lane & -536870913; + if (updateLane !== update.lane ? (workInProgressRootRenderLanes & updateLane) === updateLane : (renderLanes & updateLane) === updateLane) { + var revertLane = update.revertLane; + if (0 === revertLane) + null !== newBaseQueueLast && (newBaseQueueLast = newBaseQueueLast.next = { + lane: 0, + revertLane: 0, + action: update.action, + hasEagerState: update.hasEagerState, + eagerState: update.eagerState, + next: null + }), updateLane === currentEntangledLane && (didReadFromEntangledAsyncAction$32 = true); + else if ((renderLanes & revertLane) === revertLane) { + update = update.next; + revertLane === currentEntangledLane && (didReadFromEntangledAsyncAction$32 = true); + continue; + } else + updateLane = { + lane: 0, + revertLane: update.revertLane, + action: update.action, + hasEagerState: update.hasEagerState, + eagerState: update.eagerState, + next: null + }, null === newBaseQueueLast ? (newBaseQueueFirst = newBaseQueueLast = updateLane, baseFirst = pendingQueue) : newBaseQueueLast = newBaseQueueLast.next = updateLane, currentlyRenderingFiber.lanes |= revertLane, workInProgressRootSkippedLanes |= revertLane; + updateLane = update.action; + shouldDoubleInvokeUserFnsInHooksDEV && reducer(pendingQueue, updateLane); + pendingQueue = update.hasEagerState ? update.eagerState : reducer(pendingQueue, updateLane); + } else + revertLane = { + lane: updateLane, + revertLane: update.revertLane, + action: update.action, + hasEagerState: update.hasEagerState, + eagerState: update.eagerState, + next: null + }, null === newBaseQueueLast ? (newBaseQueueFirst = newBaseQueueLast = revertLane, baseFirst = pendingQueue) : newBaseQueueLast = newBaseQueueLast.next = revertLane, currentlyRenderingFiber.lanes |= updateLane, workInProgressRootSkippedLanes |= updateLane; + update = update.next; + } while (null !== update && update !== current); + null === newBaseQueueLast ? baseFirst = pendingQueue : newBaseQueueLast.next = newBaseQueueFirst; + if (!objectIs(pendingQueue, hook.memoizedState) && (didReceiveUpdate = true, didReadFromEntangledAsyncAction$32 && (reducer = currentEntangledActionThenable, null !== reducer))) + throw reducer; + hook.memoizedState = pendingQueue; + hook.baseState = baseFirst; + hook.baseQueue = newBaseQueueLast; + queue.lastRenderedState = pendingQueue; + } + null === baseQueue && (queue.lanes = 0); + return [hook.memoizedState, queue.dispatch]; + } + function rerenderReducer(reducer) { + var hook = updateWorkInProgressHook(), queue = hook.queue; + if (null === queue) throw Error(formatProdErrorMessage(311)); + queue.lastRenderedReducer = reducer; + var dispatch = queue.dispatch, lastRenderPhaseUpdate = queue.pending, newState = hook.memoizedState; + if (null !== lastRenderPhaseUpdate) { + queue.pending = null; + var update = lastRenderPhaseUpdate = lastRenderPhaseUpdate.next; + do + newState = reducer(newState, update.action), update = update.next; + while (update !== lastRenderPhaseUpdate); + objectIs(newState, hook.memoizedState) || (didReceiveUpdate = true); + hook.memoizedState = newState; + null === hook.baseQueue && (hook.baseState = newState); + queue.lastRenderedState = newState; + } + return [newState, dispatch]; + } + function updateSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) { + var fiber = currentlyRenderingFiber, hook = updateWorkInProgressHook(), isHydrating$jscomp$0 = isHydrating; + if (isHydrating$jscomp$0) { + if (void 0 === getServerSnapshot) throw Error(formatProdErrorMessage(407)); + getServerSnapshot = getServerSnapshot(); + } else getServerSnapshot = getSnapshot(); + var snapshotChanged = !objectIs( + (currentHook || hook).memoizedState, + getServerSnapshot + ); + snapshotChanged && (hook.memoizedState = getServerSnapshot, didReceiveUpdate = true); + hook = hook.queue; + var create = subscribeToStore.bind(null, fiber, hook, subscribe); + updateEffectImpl(2048, 8, create, [subscribe]); + if (hook.getSnapshot !== getSnapshot || snapshotChanged || null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1) { + fiber.flags |= 2048; + pushSimpleEffect( + 9, + createEffectInstance(), + updateStoreInstance.bind( + null, + fiber, + hook, + getServerSnapshot, + getSnapshot + ), + null + ); + if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349)); + isHydrating$jscomp$0 || 0 !== (renderLanes & 124) || pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot); + } + return getServerSnapshot; + } + function pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) { + fiber.flags |= 16384; + fiber = { getSnapshot, value: renderedSnapshot }; + getSnapshot = currentlyRenderingFiber.updateQueue; + null === getSnapshot ? (getSnapshot = createFunctionComponentUpdateQueue(), currentlyRenderingFiber.updateQueue = getSnapshot, getSnapshot.stores = [fiber]) : (renderedSnapshot = getSnapshot.stores, null === renderedSnapshot ? getSnapshot.stores = [fiber] : renderedSnapshot.push(fiber)); + } + function updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) { + inst.value = nextSnapshot; + inst.getSnapshot = getSnapshot; + checkIfSnapshotChanged(inst) && forceStoreRerender(fiber); + } + function subscribeToStore(fiber, inst, subscribe) { + return subscribe(function() { + checkIfSnapshotChanged(inst) && forceStoreRerender(fiber); + }); + } + function checkIfSnapshotChanged(inst) { + var latestGetSnapshot = inst.getSnapshot; + inst = inst.value; + try { + var nextValue = latestGetSnapshot(); + return !objectIs(inst, nextValue); + } catch (error) { + return true; + } + } + function forceStoreRerender(fiber) { + var root3 = enqueueConcurrentRenderForLane(fiber, 2); + null !== root3 && scheduleUpdateOnFiber(root3, fiber, 2); + } + function mountStateImpl(initialState) { + var hook = mountWorkInProgressHook(); + if ("function" === typeof initialState) { + var initialStateInitializer = initialState; + initialState = initialStateInitializer(); + if (shouldDoubleInvokeUserFnsInHooksDEV) { + setIsStrictModeForDevtools(true); + try { + initialStateInitializer(); + } finally { + setIsStrictModeForDevtools(false); + } + } + } + hook.memoizedState = hook.baseState = initialState; + hook.queue = { + pending: null, + lanes: 0, + dispatch: null, + lastRenderedReducer: basicStateReducer, + lastRenderedState: initialState + }; + return hook; + } + function updateOptimisticImpl(hook, current, passthrough, reducer) { + hook.baseState = passthrough; + return updateReducerImpl( + hook, + currentHook, + "function" === typeof reducer ? reducer : basicStateReducer + ); + } + function dispatchActionState(fiber, actionQueue, setPendingState, setState, payload) { + if (isRenderPhaseUpdate(fiber)) throw Error(formatProdErrorMessage(485)); + fiber = actionQueue.action; + if (null !== fiber) { + var actionNode = { + payload, + action: fiber, + next: null, + isTransition: true, + status: "pending", + value: null, + reason: null, + listeners: [], + then: function(listener) { + actionNode.listeners.push(listener); + } + }; + null !== ReactSharedInternals.T ? setPendingState(true) : actionNode.isTransition = false; + setState(actionNode); + setPendingState = actionQueue.pending; + null === setPendingState ? (actionNode.next = actionQueue.pending = actionNode, runActionStateAction(actionQueue, actionNode)) : (actionNode.next = setPendingState.next, actionQueue.pending = setPendingState.next = actionNode); + } + } + function runActionStateAction(actionQueue, node) { + var action = node.action, payload = node.payload, prevState = actionQueue.state; + if (node.isTransition) { + var prevTransition = ReactSharedInternals.T, currentTransition = {}; + ReactSharedInternals.T = currentTransition; + try { + var returnValue = action(prevState, payload), onStartTransitionFinish = ReactSharedInternals.S; + null !== onStartTransitionFinish && onStartTransitionFinish(currentTransition, returnValue); + handleActionReturnValue(actionQueue, node, returnValue); + } catch (error) { + onActionError(actionQueue, node, error); + } finally { + ReactSharedInternals.T = prevTransition; + } + } else + try { + prevTransition = action(prevState, payload), handleActionReturnValue(actionQueue, node, prevTransition); + } catch (error$38) { + onActionError(actionQueue, node, error$38); + } + } + function handleActionReturnValue(actionQueue, node, returnValue) { + null !== returnValue && "object" === typeof returnValue && "function" === typeof returnValue.then ? returnValue.then( + function(nextState) { + onActionSuccess(actionQueue, node, nextState); + }, + function(error) { + return onActionError(actionQueue, node, error); + } + ) : onActionSuccess(actionQueue, node, returnValue); + } + function onActionSuccess(actionQueue, actionNode, nextState) { + actionNode.status = "fulfilled"; + actionNode.value = nextState; + notifyActionListeners(actionNode); + actionQueue.state = nextState; + actionNode = actionQueue.pending; + null !== actionNode && (nextState = actionNode.next, nextState === actionNode ? actionQueue.pending = null : (nextState = nextState.next, actionNode.next = nextState, runActionStateAction(actionQueue, nextState))); + } + function onActionError(actionQueue, actionNode, error) { + var last = actionQueue.pending; + actionQueue.pending = null; + if (null !== last) { + last = last.next; + do + actionNode.status = "rejected", actionNode.reason = error, notifyActionListeners(actionNode), actionNode = actionNode.next; + while (actionNode !== last); + } + actionQueue.action = null; + } + function notifyActionListeners(actionNode) { + actionNode = actionNode.listeners; + for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])(); + } + function actionStateReducer(oldState, newState) { + return newState; + } + function mountActionState(action, initialStateProp) { + if (isHydrating) { + var ssrFormState = workInProgressRoot.formState; + if (null !== ssrFormState) { + a: { + var JSCompiler_inline_result = currentlyRenderingFiber; + if (isHydrating) { + if (nextHydratableInstance) { + b: { + var JSCompiler_inline_result$jscomp$0 = nextHydratableInstance; + for (var inRootOrSingleton = rootOrSingletonContext; 8 !== JSCompiler_inline_result$jscomp$0.nodeType; ) { + if (!inRootOrSingleton) { + JSCompiler_inline_result$jscomp$0 = null; + break b; + } + JSCompiler_inline_result$jscomp$0 = getNextHydratable( + JSCompiler_inline_result$jscomp$0.nextSibling + ); + if (null === JSCompiler_inline_result$jscomp$0) { + JSCompiler_inline_result$jscomp$0 = null; + break b; + } + } + inRootOrSingleton = JSCompiler_inline_result$jscomp$0.data; + JSCompiler_inline_result$jscomp$0 = "F!" === inRootOrSingleton || "F" === inRootOrSingleton ? JSCompiler_inline_result$jscomp$0 : null; + } + if (JSCompiler_inline_result$jscomp$0) { + nextHydratableInstance = getNextHydratable( + JSCompiler_inline_result$jscomp$0.nextSibling + ); + JSCompiler_inline_result = "F!" === JSCompiler_inline_result$jscomp$0.data; + break a; + } + } + throwOnHydrationMismatch(JSCompiler_inline_result); + } + JSCompiler_inline_result = false; + } + JSCompiler_inline_result && (initialStateProp = ssrFormState[0]); + } + } + ssrFormState = mountWorkInProgressHook(); + ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp; + JSCompiler_inline_result = { + pending: null, + lanes: 0, + dispatch: null, + lastRenderedReducer: actionStateReducer, + lastRenderedState: initialStateProp + }; + ssrFormState.queue = JSCompiler_inline_result; + ssrFormState = dispatchSetState.bind( + null, + currentlyRenderingFiber, + JSCompiler_inline_result + ); + JSCompiler_inline_result.dispatch = ssrFormState; + JSCompiler_inline_result = mountStateImpl(false); + inRootOrSingleton = dispatchOptimisticSetState.bind( + null, + currentlyRenderingFiber, + false, + JSCompiler_inline_result.queue + ); + JSCompiler_inline_result = mountWorkInProgressHook(); + JSCompiler_inline_result$jscomp$0 = { + state: initialStateProp, + dispatch: null, + action, + pending: null + }; + JSCompiler_inline_result.queue = JSCompiler_inline_result$jscomp$0; + ssrFormState = dispatchActionState.bind( + null, + currentlyRenderingFiber, + JSCompiler_inline_result$jscomp$0, + inRootOrSingleton, + ssrFormState + ); + JSCompiler_inline_result$jscomp$0.dispatch = ssrFormState; + JSCompiler_inline_result.memoizedState = action; + return [initialStateProp, ssrFormState, false]; + } + function updateActionState(action) { + var stateHook = updateWorkInProgressHook(); + return updateActionStateImpl(stateHook, currentHook, action); + } + function updateActionStateImpl(stateHook, currentStateHook, action) { + currentStateHook = updateReducerImpl( + stateHook, + currentStateHook, + actionStateReducer + )[0]; + stateHook = updateReducer(basicStateReducer)[0]; + if ("object" === typeof currentStateHook && null !== currentStateHook && "function" === typeof currentStateHook.then) + try { + var state = useThenable(currentStateHook); + } catch (x) { + if (x === SuspenseException) throw SuspenseActionException; + throw x; + } + else state = currentStateHook; + currentStateHook = updateWorkInProgressHook(); + var actionQueue = currentStateHook.queue, dispatch = actionQueue.dispatch; + action !== currentStateHook.memoizedState && (currentlyRenderingFiber.flags |= 2048, pushSimpleEffect( + 9, + createEffectInstance(), + actionStateActionEffect.bind(null, actionQueue, action), + null + )); + return [state, dispatch, stateHook]; + } + function actionStateActionEffect(actionQueue, action) { + actionQueue.action = action; + } + function rerenderActionState(action) { + var stateHook = updateWorkInProgressHook(), currentStateHook = currentHook; + if (null !== currentStateHook) + return updateActionStateImpl(stateHook, currentStateHook, action); + updateWorkInProgressHook(); + stateHook = stateHook.memoizedState; + currentStateHook = updateWorkInProgressHook(); + var dispatch = currentStateHook.queue.dispatch; + currentStateHook.memoizedState = action; + return [stateHook, dispatch, false]; + } + function pushSimpleEffect(tag, inst, create, createDeps) { + tag = { tag, create, deps: createDeps, inst, next: null }; + inst = currentlyRenderingFiber.updateQueue; + null === inst && (inst = createFunctionComponentUpdateQueue(), currentlyRenderingFiber.updateQueue = inst); + create = inst.lastEffect; + null === create ? inst.lastEffect = tag.next = tag : (createDeps = create.next, create.next = tag, tag.next = createDeps, inst.lastEffect = tag); + return tag; + } + function createEffectInstance() { + return { destroy: void 0, resource: void 0 }; + } + function updateRef() { + return updateWorkInProgressHook().memoizedState; + } + function mountEffectImpl(fiberFlags, hookFlags, create, createDeps) { + var hook = mountWorkInProgressHook(); + createDeps = void 0 === createDeps ? null : createDeps; + currentlyRenderingFiber.flags |= fiberFlags; + hook.memoizedState = pushSimpleEffect( + 1 | hookFlags, + createEffectInstance(), + create, + createDeps + ); + } + function updateEffectImpl(fiberFlags, hookFlags, create, deps) { + var hook = updateWorkInProgressHook(); + deps = void 0 === deps ? null : deps; + var inst = hook.memoizedState.inst; + null !== currentHook && null !== deps && areHookInputsEqual(deps, currentHook.memoizedState.deps) ? hook.memoizedState = pushSimpleEffect(hookFlags, inst, create, deps) : (currentlyRenderingFiber.flags |= fiberFlags, hook.memoizedState = pushSimpleEffect( + 1 | hookFlags, + inst, + create, + deps + )); + } + function mountEffect(create, createDeps) { + mountEffectImpl(8390656, 8, create, createDeps); + } + function updateEffect(create, createDeps) { + updateEffectImpl(2048, 8, create, createDeps); + } + function updateInsertionEffect(create, deps) { + return updateEffectImpl(4, 2, create, deps); + } + function updateLayoutEffect(create, deps) { + return updateEffectImpl(4, 4, create, deps); + } + function imperativeHandleEffect(create, ref) { + if ("function" === typeof ref) { + create = create(); + var refCleanup = ref(create); + return function() { + "function" === typeof refCleanup ? refCleanup() : ref(null); + }; + } + if (null !== ref && void 0 !== ref) + return create = create(), ref.current = create, function() { + ref.current = null; + }; + } + function updateImperativeHandle(ref, create, deps) { + deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null; + updateEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps); + } + function mountDebugValue() { + } + function updateCallback(callback, deps) { + var hook = updateWorkInProgressHook(); + deps = void 0 === deps ? null : deps; + var prevState = hook.memoizedState; + if (null !== deps && areHookInputsEqual(deps, prevState[1])) + return prevState[0]; + hook.memoizedState = [callback, deps]; + return callback; + } + function updateMemo(nextCreate, deps) { + var hook = updateWorkInProgressHook(); + deps = void 0 === deps ? null : deps; + var prevState = hook.memoizedState; + if (null !== deps && areHookInputsEqual(deps, prevState[1])) + return prevState[0]; + prevState = nextCreate(); + if (shouldDoubleInvokeUserFnsInHooksDEV) { + setIsStrictModeForDevtools(true); + try { + nextCreate(); + } finally { + setIsStrictModeForDevtools(false); + } + } + hook.memoizedState = [prevState, deps]; + return prevState; + } + function mountDeferredValueImpl(hook, value, initialValue) { + if (void 0 === initialValue || 0 !== (renderLanes & 1073741824)) + return hook.memoizedState = value; + hook.memoizedState = initialValue; + hook = requestDeferredLane(); + currentlyRenderingFiber.lanes |= hook; + workInProgressRootSkippedLanes |= hook; + return initialValue; + } + function updateDeferredValueImpl(hook, prevValue, value, initialValue) { + if (objectIs(value, prevValue)) return value; + if (null !== currentTreeHiddenStackCursor.current) + return hook = mountDeferredValueImpl(hook, value, initialValue), objectIs(hook, prevValue) || (didReceiveUpdate = true), hook; + if (0 === (renderLanes & 42)) + return didReceiveUpdate = true, hook.memoizedState = value; + hook = requestDeferredLane(); + currentlyRenderingFiber.lanes |= hook; + workInProgressRootSkippedLanes |= hook; + return prevValue; + } + function startTransition(fiber, queue, pendingState, finishedState, callback) { + var previousPriority = ReactDOMSharedInternals.p; + ReactDOMSharedInternals.p = 0 !== previousPriority && 8 > previousPriority ? previousPriority : 8; + var prevTransition = ReactSharedInternals.T, currentTransition = {}; + ReactSharedInternals.T = currentTransition; + dispatchOptimisticSetState(fiber, false, queue, pendingState); + try { + var returnValue = callback(), onStartTransitionFinish = ReactSharedInternals.S; + null !== onStartTransitionFinish && onStartTransitionFinish(currentTransition, returnValue); + if (null !== returnValue && "object" === typeof returnValue && "function" === typeof returnValue.then) { + var thenableForFinishedState = chainThenableValue( + returnValue, + finishedState + ); + dispatchSetStateInternal( + fiber, + queue, + thenableForFinishedState, + requestUpdateLane(fiber) + ); + } else + dispatchSetStateInternal( + fiber, + queue, + finishedState, + requestUpdateLane(fiber) + ); + } catch (error) { + dispatchSetStateInternal( + fiber, + queue, + { then: function() { + }, status: "rejected", reason: error }, + requestUpdateLane() + ); + } finally { + ReactDOMSharedInternals.p = previousPriority, ReactSharedInternals.T = prevTransition; + } + } + function noop$2() { + } + function startHostTransition(formFiber, pendingState, action, formData) { + if (5 !== formFiber.tag) throw Error(formatProdErrorMessage(476)); + var queue = ensureFormComponentIsStateful(formFiber).queue; + startTransition( + formFiber, + queue, + pendingState, + sharedNotPendingObject, + null === action ? noop$2 : function() { + requestFormReset$1(formFiber); + return action(formData); + } + ); + } + function ensureFormComponentIsStateful(formFiber) { + var existingStateHook = formFiber.memoizedState; + if (null !== existingStateHook) return existingStateHook; + existingStateHook = { + memoizedState: sharedNotPendingObject, + baseState: sharedNotPendingObject, + baseQueue: null, + queue: { + pending: null, + lanes: 0, + dispatch: null, + lastRenderedReducer: basicStateReducer, + lastRenderedState: sharedNotPendingObject + }, + next: null + }; + var initialResetState = {}; + existingStateHook.next = { + memoizedState: initialResetState, + baseState: initialResetState, + baseQueue: null, + queue: { + pending: null, + lanes: 0, + dispatch: null, + lastRenderedReducer: basicStateReducer, + lastRenderedState: initialResetState + }, + next: null + }; + formFiber.memoizedState = existingStateHook; + formFiber = formFiber.alternate; + null !== formFiber && (formFiber.memoizedState = existingStateHook); + return existingStateHook; + } + function requestFormReset$1(formFiber) { + var resetStateQueue = ensureFormComponentIsStateful(formFiber).next.queue; + dispatchSetStateInternal(formFiber, resetStateQueue, {}, requestUpdateLane()); + } + function useHostTransitionStatus() { + return readContext(HostTransitionContext); + } + function updateId() { + return updateWorkInProgressHook().memoizedState; + } + function updateRefresh() { + return updateWorkInProgressHook().memoizedState; + } + function refreshCache(fiber) { + for (var provider = fiber.return; null !== provider; ) { + switch (provider.tag) { + case 24: + case 3: + var lane = requestUpdateLane(); + fiber = createUpdate(lane); + var root$41 = enqueueUpdate(provider, fiber, lane); + null !== root$41 && (scheduleUpdateOnFiber(root$41, provider, lane), entangleTransitions(root$41, provider, lane)); + provider = { cache: createCache() }; + fiber.payload = provider; + return; + } + provider = provider.return; + } + } + function dispatchReducerAction(fiber, queue, action) { + var lane = requestUpdateLane(); + action = { + lane, + revertLane: 0, + action, + hasEagerState: false, + eagerState: null, + next: null + }; + isRenderPhaseUpdate(fiber) ? enqueueRenderPhaseUpdate(queue, action) : (action = enqueueConcurrentHookUpdate(fiber, queue, action, lane), null !== action && (scheduleUpdateOnFiber(action, fiber, lane), entangleTransitionUpdate(action, queue, lane))); + } + function dispatchSetState(fiber, queue, action) { + var lane = requestUpdateLane(); + dispatchSetStateInternal(fiber, queue, action, lane); + } + function dispatchSetStateInternal(fiber, queue, action, lane) { + var update = { + lane, + revertLane: 0, + action, + hasEagerState: false, + eagerState: null, + next: null + }; + if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update); + else { + var alternate = fiber.alternate; + if (0 === fiber.lanes && (null === alternate || 0 === alternate.lanes) && (alternate = queue.lastRenderedReducer, null !== alternate)) + try { + var currentState = queue.lastRenderedState, eagerState = alternate(currentState, action); + update.hasEagerState = true; + update.eagerState = eagerState; + if (objectIs(eagerState, currentState)) + return enqueueUpdate$1(fiber, queue, update, 0), null === workInProgressRoot && finishQueueingConcurrentUpdates(), false; + } catch (error) { + } finally { + } + action = enqueueConcurrentHookUpdate(fiber, queue, update, lane); + if (null !== action) + return scheduleUpdateOnFiber(action, fiber, lane), entangleTransitionUpdate(action, queue, lane), true; + } + return false; + } + function dispatchOptimisticSetState(fiber, throwIfDuringRender, queue, action) { + action = { + lane: 2, + revertLane: requestTransitionLane(), + action, + hasEagerState: false, + eagerState: null, + next: null + }; + if (isRenderPhaseUpdate(fiber)) { + if (throwIfDuringRender) throw Error(formatProdErrorMessage(479)); + } else + throwIfDuringRender = enqueueConcurrentHookUpdate( + fiber, + queue, + action, + 2 + ), null !== throwIfDuringRender && scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2); + } + function isRenderPhaseUpdate(fiber) { + var alternate = fiber.alternate; + return fiber === currentlyRenderingFiber || null !== alternate && alternate === currentlyRenderingFiber; + } + function enqueueRenderPhaseUpdate(queue, update) { + didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate = true; + var pending = queue.pending; + null === pending ? update.next = update : (update.next = pending.next, pending.next = update); + queue.pending = update; + } + function entangleTransitionUpdate(root3, queue, lane) { + if (0 !== (lane & 4194048)) { + var queueLanes = queue.lanes; + queueLanes &= root3.pendingLanes; + lane |= queueLanes; + queue.lanes = lane; + markRootEntangled(root3, lane); + } + } + var ContextOnlyDispatcher = { + readContext, + use, + useCallback: throwInvalidHookError, + useContext: throwInvalidHookError, + useEffect: throwInvalidHookError, + useImperativeHandle: throwInvalidHookError, + useLayoutEffect: throwInvalidHookError, + useInsertionEffect: throwInvalidHookError, + useMemo: throwInvalidHookError, + useReducer: throwInvalidHookError, + useRef: throwInvalidHookError, + useState: throwInvalidHookError, + useDebugValue: throwInvalidHookError, + useDeferredValue: throwInvalidHookError, + useTransition: throwInvalidHookError, + useSyncExternalStore: throwInvalidHookError, + useId: throwInvalidHookError, + useHostTransitionStatus: throwInvalidHookError, + useFormState: throwInvalidHookError, + useActionState: throwInvalidHookError, + useOptimistic: throwInvalidHookError, + useMemoCache: throwInvalidHookError, + useCacheRefresh: throwInvalidHookError + }, HooksDispatcherOnMount = { + readContext, + use, + useCallback: function(callback, deps) { + mountWorkInProgressHook().memoizedState = [ + callback, + void 0 === deps ? null : deps + ]; + return callback; + }, + useContext: readContext, + useEffect: mountEffect, + useImperativeHandle: function(ref, create, deps) { + deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null; + mountEffectImpl( + 4194308, + 4, + imperativeHandleEffect.bind(null, create, ref), + deps + ); + }, + useLayoutEffect: function(create, deps) { + return mountEffectImpl(4194308, 4, create, deps); + }, + useInsertionEffect: function(create, deps) { + mountEffectImpl(4, 2, create, deps); + }, + useMemo: function(nextCreate, deps) { + var hook = mountWorkInProgressHook(); + deps = void 0 === deps ? null : deps; + var nextValue = nextCreate(); + if (shouldDoubleInvokeUserFnsInHooksDEV) { + setIsStrictModeForDevtools(true); + try { + nextCreate(); + } finally { + setIsStrictModeForDevtools(false); + } + } + hook.memoizedState = [nextValue, deps]; + return nextValue; + }, + useReducer: function(reducer, initialArg, init) { + var hook = mountWorkInProgressHook(); + if (void 0 !== init) { + var initialState = init(initialArg); + if (shouldDoubleInvokeUserFnsInHooksDEV) { + setIsStrictModeForDevtools(true); + try { + init(initialArg); + } finally { + setIsStrictModeForDevtools(false); + } + } + } else initialState = initialArg; + hook.memoizedState = hook.baseState = initialState; + reducer = { + pending: null, + lanes: 0, + dispatch: null, + lastRenderedReducer: reducer, + lastRenderedState: initialState + }; + hook.queue = reducer; + reducer = reducer.dispatch = dispatchReducerAction.bind( + null, + currentlyRenderingFiber, + reducer + ); + return [hook.memoizedState, reducer]; + }, + useRef: function(initialValue) { + var hook = mountWorkInProgressHook(); + initialValue = { current: initialValue }; + return hook.memoizedState = initialValue; + }, + useState: function(initialState) { + initialState = mountStateImpl(initialState); + var queue = initialState.queue, dispatch = dispatchSetState.bind(null, currentlyRenderingFiber, queue); + queue.dispatch = dispatch; + return [initialState.memoizedState, dispatch]; + }, + useDebugValue: mountDebugValue, + useDeferredValue: function(value, initialValue) { + var hook = mountWorkInProgressHook(); + return mountDeferredValueImpl(hook, value, initialValue); + }, + useTransition: function() { + var stateHook = mountStateImpl(false); + stateHook = startTransition.bind( + null, + currentlyRenderingFiber, + stateHook.queue, + true, + false + ); + mountWorkInProgressHook().memoizedState = stateHook; + return [false, stateHook]; + }, + useSyncExternalStore: function(subscribe, getSnapshot, getServerSnapshot) { + var fiber = currentlyRenderingFiber, hook = mountWorkInProgressHook(); + if (isHydrating) { + if (void 0 === getServerSnapshot) + throw Error(formatProdErrorMessage(407)); + getServerSnapshot = getServerSnapshot(); + } else { + getServerSnapshot = getSnapshot(); + if (null === workInProgressRoot) + throw Error(formatProdErrorMessage(349)); + 0 !== (workInProgressRootRenderLanes & 124) || pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot); + } + hook.memoizedState = getServerSnapshot; + var inst = { value: getServerSnapshot, getSnapshot }; + hook.queue = inst; + mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [ + subscribe + ]); + fiber.flags |= 2048; + pushSimpleEffect( + 9, + createEffectInstance(), + updateStoreInstance.bind( + null, + fiber, + inst, + getServerSnapshot, + getSnapshot + ), + null + ); + return getServerSnapshot; + }, + useId: function() { + var hook = mountWorkInProgressHook(), identifierPrefix = workInProgressRoot.identifierPrefix; + if (isHydrating) { + var JSCompiler_inline_result = treeContextOverflow; + var idWithLeadingBit = treeContextId; + JSCompiler_inline_result = (idWithLeadingBit & ~(1 << 32 - clz32(idWithLeadingBit) - 1)).toString(32) + JSCompiler_inline_result; + identifierPrefix = "ยซ" + identifierPrefix + "R" + JSCompiler_inline_result; + JSCompiler_inline_result = localIdCounter++; + 0 < JSCompiler_inline_result && (identifierPrefix += "H" + JSCompiler_inline_result.toString(32)); + identifierPrefix += "ยป"; + } else + JSCompiler_inline_result = globalClientIdCounter++, identifierPrefix = "ยซ" + identifierPrefix + "r" + JSCompiler_inline_result.toString(32) + "ยป"; + return hook.memoizedState = identifierPrefix; + }, + useHostTransitionStatus, + useFormState: mountActionState, + useActionState: mountActionState, + useOptimistic: function(passthrough) { + var hook = mountWorkInProgressHook(); + hook.memoizedState = hook.baseState = passthrough; + var queue = { + pending: null, + lanes: 0, + dispatch: null, + lastRenderedReducer: null, + lastRenderedState: null + }; + hook.queue = queue; + hook = dispatchOptimisticSetState.bind( + null, + currentlyRenderingFiber, + true, + queue + ); + queue.dispatch = hook; + return [passthrough, hook]; + }, + useMemoCache, + useCacheRefresh: function() { + return mountWorkInProgressHook().memoizedState = refreshCache.bind( + null, + currentlyRenderingFiber + ); + } + }, HooksDispatcherOnUpdate = { + readContext, + use, + useCallback: updateCallback, + useContext: readContext, + useEffect: updateEffect, + useImperativeHandle: updateImperativeHandle, + useInsertionEffect: updateInsertionEffect, + useLayoutEffect: updateLayoutEffect, + useMemo: updateMemo, + useReducer: updateReducer, + useRef: updateRef, + useState: function() { + return updateReducer(basicStateReducer); + }, + useDebugValue: mountDebugValue, + useDeferredValue: function(value, initialValue) { + var hook = updateWorkInProgressHook(); + return updateDeferredValueImpl( + hook, + currentHook.memoizedState, + value, + initialValue + ); + }, + useTransition: function() { + var booleanOrThenable = updateReducer(basicStateReducer)[0], start = updateWorkInProgressHook().memoizedState; + return [ + "boolean" === typeof booleanOrThenable ? booleanOrThenable : useThenable(booleanOrThenable), + start + ]; + }, + useSyncExternalStore: updateSyncExternalStore, + useId: updateId, + useHostTransitionStatus, + useFormState: updateActionState, + useActionState: updateActionState, + useOptimistic: function(passthrough, reducer) { + var hook = updateWorkInProgressHook(); + return updateOptimisticImpl(hook, currentHook, passthrough, reducer); + }, + useMemoCache, + useCacheRefresh: updateRefresh + }, HooksDispatcherOnRerender = { + readContext, + use, + useCallback: updateCallback, + useContext: readContext, + useEffect: updateEffect, + useImperativeHandle: updateImperativeHandle, + useInsertionEffect: updateInsertionEffect, + useLayoutEffect: updateLayoutEffect, + useMemo: updateMemo, + useReducer: rerenderReducer, + useRef: updateRef, + useState: function() { + return rerenderReducer(basicStateReducer); + }, + useDebugValue: mountDebugValue, + useDeferredValue: function(value, initialValue) { + var hook = updateWorkInProgressHook(); + return null === currentHook ? mountDeferredValueImpl(hook, value, initialValue) : updateDeferredValueImpl( + hook, + currentHook.memoizedState, + value, + initialValue + ); + }, + useTransition: function() { + var booleanOrThenable = rerenderReducer(basicStateReducer)[0], start = updateWorkInProgressHook().memoizedState; + return [ + "boolean" === typeof booleanOrThenable ? booleanOrThenable : useThenable(booleanOrThenable), + start + ]; + }, + useSyncExternalStore: updateSyncExternalStore, + useId: updateId, + useHostTransitionStatus, + useFormState: rerenderActionState, + useActionState: rerenderActionState, + useOptimistic: function(passthrough, reducer) { + var hook = updateWorkInProgressHook(); + if (null !== currentHook) + return updateOptimisticImpl(hook, currentHook, passthrough, reducer); + hook.baseState = passthrough; + return [passthrough, hook.queue.dispatch]; + }, + useMemoCache, + useCacheRefresh: updateRefresh + }, thenableState = null, thenableIndexCounter = 0; + function unwrapThenable(thenable) { + var index3 = thenableIndexCounter; + thenableIndexCounter += 1; + null === thenableState && (thenableState = []); + return trackUsedThenable(thenableState, thenable, index3); + } + function coerceRef(workInProgress2, element) { + element = element.props.ref; + workInProgress2.ref = void 0 !== element ? element : null; + } + function throwOnInvalidObjectType(returnFiber, newChild) { + if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE) + throw Error(formatProdErrorMessage(525)); + returnFiber = Object.prototype.toString.call(newChild); + throw Error( + formatProdErrorMessage( + 31, + "[object Object]" === returnFiber ? "object with keys {" + Object.keys(newChild).join(", ") + "}" : returnFiber + ) + ); + } + function resolveLazy(lazyType) { + var init = lazyType._init; + return init(lazyType._payload); + } + function createChildReconciler(shouldTrackSideEffects) { + function deleteChild(returnFiber, childToDelete) { + if (shouldTrackSideEffects) { + var deletions = returnFiber.deletions; + null === deletions ? (returnFiber.deletions = [childToDelete], returnFiber.flags |= 16) : deletions.push(childToDelete); + } + } + function deleteRemainingChildren(returnFiber, currentFirstChild) { + if (!shouldTrackSideEffects) return null; + for (; null !== currentFirstChild; ) + deleteChild(returnFiber, currentFirstChild), currentFirstChild = currentFirstChild.sibling; + return null; + } + function mapRemainingChildren(currentFirstChild) { + for (var existingChildren = /* @__PURE__ */ new Map(); null !== currentFirstChild; ) + null !== currentFirstChild.key ? existingChildren.set(currentFirstChild.key, currentFirstChild) : existingChildren.set(currentFirstChild.index, currentFirstChild), currentFirstChild = currentFirstChild.sibling; + return existingChildren; + } + function useFiber(fiber, pendingProps) { + fiber = createWorkInProgress(fiber, pendingProps); + fiber.index = 0; + fiber.sibling = null; + return fiber; + } + function placeChild(newFiber, lastPlacedIndex, newIndex) { + newFiber.index = newIndex; + if (!shouldTrackSideEffects) + return newFiber.flags |= 1048576, lastPlacedIndex; + newIndex = newFiber.alternate; + if (null !== newIndex) + return newIndex = newIndex.index, newIndex < lastPlacedIndex ? (newFiber.flags |= 67108866, lastPlacedIndex) : newIndex; + newFiber.flags |= 67108866; + return lastPlacedIndex; + } + function placeSingleChild(newFiber) { + shouldTrackSideEffects && null === newFiber.alternate && (newFiber.flags |= 67108866); + return newFiber; + } + function updateTextNode(returnFiber, current, textContent, lanes) { + if (null === current || 6 !== current.tag) + return current = createFiberFromText(textContent, returnFiber.mode, lanes), current.return = returnFiber, current; + current = useFiber(current, textContent); + current.return = returnFiber; + return current; + } + function updateElement(returnFiber, current, element, lanes) { + var elementType = element.type; + if (elementType === REACT_FRAGMENT_TYPE) + return updateFragment( + returnFiber, + current, + element.props.children, + lanes, + element.key + ); + if (null !== current && (current.elementType === elementType || "object" === typeof elementType && null !== elementType && elementType.$$typeof === REACT_LAZY_TYPE && resolveLazy(elementType) === current.type)) + return current = useFiber(current, element.props), coerceRef(current, element), current.return = returnFiber, current; + current = createFiberFromTypeAndProps( + element.type, + element.key, + element.props, + null, + returnFiber.mode, + lanes + ); + coerceRef(current, element); + current.return = returnFiber; + return current; + } + function updatePortal(returnFiber, current, portal, lanes) { + if (null === current || 4 !== current.tag || current.stateNode.containerInfo !== portal.containerInfo || current.stateNode.implementation !== portal.implementation) + return current = createFiberFromPortal(portal, returnFiber.mode, lanes), current.return = returnFiber, current; + current = useFiber(current, portal.children || []); + current.return = returnFiber; + return current; + } + function updateFragment(returnFiber, current, fragment, lanes, key) { + if (null === current || 7 !== current.tag) + return current = createFiberFromFragment( + fragment, + returnFiber.mode, + lanes, + key + ), current.return = returnFiber, current; + current = useFiber(current, fragment); + current.return = returnFiber; + return current; + } + function createChild(returnFiber, newChild, lanes) { + if ("string" === typeof newChild && "" !== newChild || "number" === typeof newChild || "bigint" === typeof newChild) + return newChild = createFiberFromText( + "" + newChild, + returnFiber.mode, + lanes + ), newChild.return = returnFiber, newChild; + if ("object" === typeof newChild && null !== newChild) { + switch (newChild.$$typeof) { + case REACT_ELEMENT_TYPE: + return lanes = createFiberFromTypeAndProps( + newChild.type, + newChild.key, + newChild.props, + null, + returnFiber.mode, + lanes + ), coerceRef(lanes, newChild), lanes.return = returnFiber, lanes; + case REACT_PORTAL_TYPE: + return newChild = createFiberFromPortal( + newChild, + returnFiber.mode, + lanes + ), newChild.return = returnFiber, newChild; + case REACT_LAZY_TYPE: + var init = newChild._init; + newChild = init(newChild._payload); + return createChild(returnFiber, newChild, lanes); + } + if (isArrayImpl(newChild) || getIteratorFn(newChild)) + return newChild = createFiberFromFragment( + newChild, + returnFiber.mode, + lanes, + null + ), newChild.return = returnFiber, newChild; + if ("function" === typeof newChild.then) + return createChild(returnFiber, unwrapThenable(newChild), lanes); + if (newChild.$$typeof === REACT_CONTEXT_TYPE) + return createChild( + returnFiber, + readContextDuringReconciliation(returnFiber, newChild), + lanes + ); + throwOnInvalidObjectType(returnFiber, newChild); + } + return null; + } + function updateSlot(returnFiber, oldFiber, newChild, lanes) { + var key = null !== oldFiber ? oldFiber.key : null; + if ("string" === typeof newChild && "" !== newChild || "number" === typeof newChild || "bigint" === typeof newChild) + return null !== key ? null : updateTextNode(returnFiber, oldFiber, "" + newChild, lanes); + if ("object" === typeof newChild && null !== newChild) { + switch (newChild.$$typeof) { + case REACT_ELEMENT_TYPE: + return newChild.key === key ? updateElement(returnFiber, oldFiber, newChild, lanes) : null; + case REACT_PORTAL_TYPE: + return newChild.key === key ? updatePortal(returnFiber, oldFiber, newChild, lanes) : null; + case REACT_LAZY_TYPE: + return key = newChild._init, newChild = key(newChild._payload), updateSlot(returnFiber, oldFiber, newChild, lanes); + } + if (isArrayImpl(newChild) || getIteratorFn(newChild)) + return null !== key ? null : updateFragment(returnFiber, oldFiber, newChild, lanes, null); + if ("function" === typeof newChild.then) + return updateSlot( + returnFiber, + oldFiber, + unwrapThenable(newChild), + lanes + ); + if (newChild.$$typeof === REACT_CONTEXT_TYPE) + return updateSlot( + returnFiber, + oldFiber, + readContextDuringReconciliation(returnFiber, newChild), + lanes + ); + throwOnInvalidObjectType(returnFiber, newChild); + } + return null; + } + function updateFromMap(existingChildren, returnFiber, newIdx, newChild, lanes) { + if ("string" === typeof newChild && "" !== newChild || "number" === typeof newChild || "bigint" === typeof newChild) + return existingChildren = existingChildren.get(newIdx) || null, updateTextNode(returnFiber, existingChildren, "" + newChild, lanes); + if ("object" === typeof newChild && null !== newChild) { + switch (newChild.$$typeof) { + case REACT_ELEMENT_TYPE: + return existingChildren = existingChildren.get( + null === newChild.key ? newIdx : newChild.key + ) || null, updateElement(returnFiber, existingChildren, newChild, lanes); + case REACT_PORTAL_TYPE: + return existingChildren = existingChildren.get( + null === newChild.key ? newIdx : newChild.key + ) || null, updatePortal(returnFiber, existingChildren, newChild, lanes); + case REACT_LAZY_TYPE: + var init = newChild._init; + newChild = init(newChild._payload); + return updateFromMap( + existingChildren, + returnFiber, + newIdx, + newChild, + lanes + ); + } + if (isArrayImpl(newChild) || getIteratorFn(newChild)) + return existingChildren = existingChildren.get(newIdx) || null, updateFragment(returnFiber, existingChildren, newChild, lanes, null); + if ("function" === typeof newChild.then) + return updateFromMap( + existingChildren, + returnFiber, + newIdx, + unwrapThenable(newChild), + lanes + ); + if (newChild.$$typeof === REACT_CONTEXT_TYPE) + return updateFromMap( + existingChildren, + returnFiber, + newIdx, + readContextDuringReconciliation(returnFiber, newChild), + lanes + ); + throwOnInvalidObjectType(returnFiber, newChild); + } + return null; + } + function reconcileChildrenArray(returnFiber, currentFirstChild, newChildren, lanes) { + for (var resultingFirstChild = null, previousNewFiber = null, oldFiber = currentFirstChild, newIdx = currentFirstChild = 0, nextOldFiber = null; null !== oldFiber && newIdx < newChildren.length; newIdx++) { + oldFiber.index > newIdx ? (nextOldFiber = oldFiber, oldFiber = null) : nextOldFiber = oldFiber.sibling; + var newFiber = updateSlot( + returnFiber, + oldFiber, + newChildren[newIdx], + lanes + ); + if (null === newFiber) { + null === oldFiber && (oldFiber = nextOldFiber); + break; + } + shouldTrackSideEffects && oldFiber && null === newFiber.alternate && deleteChild(returnFiber, oldFiber); + currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx); + null === previousNewFiber ? resultingFirstChild = newFiber : previousNewFiber.sibling = newFiber; + previousNewFiber = newFiber; + oldFiber = nextOldFiber; + } + if (newIdx === newChildren.length) + return deleteRemainingChildren(returnFiber, oldFiber), isHydrating && pushTreeFork(returnFiber, newIdx), resultingFirstChild; + if (null === oldFiber) { + for (; newIdx < newChildren.length; newIdx++) + oldFiber = createChild(returnFiber, newChildren[newIdx], lanes), null !== oldFiber && (currentFirstChild = placeChild( + oldFiber, + currentFirstChild, + newIdx + ), null === previousNewFiber ? resultingFirstChild = oldFiber : previousNewFiber.sibling = oldFiber, previousNewFiber = oldFiber); + isHydrating && pushTreeFork(returnFiber, newIdx); + return resultingFirstChild; + } + for (oldFiber = mapRemainingChildren(oldFiber); newIdx < newChildren.length; newIdx++) + nextOldFiber = updateFromMap( + oldFiber, + returnFiber, + newIdx, + newChildren[newIdx], + lanes + ), null !== nextOldFiber && (shouldTrackSideEffects && null !== nextOldFiber.alternate && oldFiber.delete( + null === nextOldFiber.key ? newIdx : nextOldFiber.key + ), currentFirstChild = placeChild( + nextOldFiber, + currentFirstChild, + newIdx + ), null === previousNewFiber ? resultingFirstChild = nextOldFiber : previousNewFiber.sibling = nextOldFiber, previousNewFiber = nextOldFiber); + shouldTrackSideEffects && oldFiber.forEach(function(child) { + return deleteChild(returnFiber, child); + }); + isHydrating && pushTreeFork(returnFiber, newIdx); + return resultingFirstChild; + } + function reconcileChildrenIterator(returnFiber, currentFirstChild, newChildren, lanes) { + if (null == newChildren) throw Error(formatProdErrorMessage(151)); + for (var resultingFirstChild = null, previousNewFiber = null, oldFiber = currentFirstChild, newIdx = currentFirstChild = 0, nextOldFiber = null, step = newChildren.next(); null !== oldFiber && !step.done; newIdx++, step = newChildren.next()) { + oldFiber.index > newIdx ? (nextOldFiber = oldFiber, oldFiber = null) : nextOldFiber = oldFiber.sibling; + var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes); + if (null === newFiber) { + null === oldFiber && (oldFiber = nextOldFiber); + break; + } + shouldTrackSideEffects && oldFiber && null === newFiber.alternate && deleteChild(returnFiber, oldFiber); + currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx); + null === previousNewFiber ? resultingFirstChild = newFiber : previousNewFiber.sibling = newFiber; + previousNewFiber = newFiber; + oldFiber = nextOldFiber; + } + if (step.done) + return deleteRemainingChildren(returnFiber, oldFiber), isHydrating && pushTreeFork(returnFiber, newIdx), resultingFirstChild; + if (null === oldFiber) { + for (; !step.done; newIdx++, step = newChildren.next()) + step = createChild(returnFiber, step.value, lanes), null !== step && (currentFirstChild = placeChild(step, currentFirstChild, newIdx), null === previousNewFiber ? resultingFirstChild = step : previousNewFiber.sibling = step, previousNewFiber = step); + isHydrating && pushTreeFork(returnFiber, newIdx); + return resultingFirstChild; + } + for (oldFiber = mapRemainingChildren(oldFiber); !step.done; newIdx++, step = newChildren.next()) + step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes), null !== step && (shouldTrackSideEffects && null !== step.alternate && oldFiber.delete(null === step.key ? newIdx : step.key), currentFirstChild = placeChild(step, currentFirstChild, newIdx), null === previousNewFiber ? resultingFirstChild = step : previousNewFiber.sibling = step, previousNewFiber = step); + shouldTrackSideEffects && oldFiber.forEach(function(child) { + return deleteChild(returnFiber, child); + }); + isHydrating && pushTreeFork(returnFiber, newIdx); + return resultingFirstChild; + } + function reconcileChildFibersImpl(returnFiber, currentFirstChild, newChild, lanes) { + "object" === typeof newChild && null !== newChild && newChild.type === REACT_FRAGMENT_TYPE && null === newChild.key && (newChild = newChild.props.children); + if ("object" === typeof newChild && null !== newChild) { + switch (newChild.$$typeof) { + case REACT_ELEMENT_TYPE: + a: { + for (var key = newChild.key; null !== currentFirstChild; ) { + if (currentFirstChild.key === key) { + key = newChild.type; + if (key === REACT_FRAGMENT_TYPE) { + if (7 === currentFirstChild.tag) { + deleteRemainingChildren( + returnFiber, + currentFirstChild.sibling + ); + lanes = useFiber( + currentFirstChild, + newChild.props.children + ); + lanes.return = returnFiber; + returnFiber = lanes; + break a; + } + } else if (currentFirstChild.elementType === key || "object" === typeof key && null !== key && key.$$typeof === REACT_LAZY_TYPE && resolveLazy(key) === currentFirstChild.type) { + deleteRemainingChildren( + returnFiber, + currentFirstChild.sibling + ); + lanes = useFiber(currentFirstChild, newChild.props); + coerceRef(lanes, newChild); + lanes.return = returnFiber; + returnFiber = lanes; + break a; + } + deleteRemainingChildren(returnFiber, currentFirstChild); + break; + } else deleteChild(returnFiber, currentFirstChild); + currentFirstChild = currentFirstChild.sibling; + } + newChild.type === REACT_FRAGMENT_TYPE ? (lanes = createFiberFromFragment( + newChild.props.children, + returnFiber.mode, + lanes, + newChild.key + ), lanes.return = returnFiber, returnFiber = lanes) : (lanes = createFiberFromTypeAndProps( + newChild.type, + newChild.key, + newChild.props, + null, + returnFiber.mode, + lanes + ), coerceRef(lanes, newChild), lanes.return = returnFiber, returnFiber = lanes); + } + return placeSingleChild(returnFiber); + case REACT_PORTAL_TYPE: + a: { + for (key = newChild.key; null !== currentFirstChild; ) { + if (currentFirstChild.key === key) + if (4 === currentFirstChild.tag && currentFirstChild.stateNode.containerInfo === newChild.containerInfo && currentFirstChild.stateNode.implementation === newChild.implementation) { + deleteRemainingChildren( + returnFiber, + currentFirstChild.sibling + ); + lanes = useFiber(currentFirstChild, newChild.children || []); + lanes.return = returnFiber; + returnFiber = lanes; + break a; + } else { + deleteRemainingChildren(returnFiber, currentFirstChild); + break; + } + else deleteChild(returnFiber, currentFirstChild); + currentFirstChild = currentFirstChild.sibling; + } + lanes = createFiberFromPortal(newChild, returnFiber.mode, lanes); + lanes.return = returnFiber; + returnFiber = lanes; + } + return placeSingleChild(returnFiber); + case REACT_LAZY_TYPE: + return key = newChild._init, newChild = key(newChild._payload), reconcileChildFibersImpl( + returnFiber, + currentFirstChild, + newChild, + lanes + ); + } + if (isArrayImpl(newChild)) + return reconcileChildrenArray( + returnFiber, + currentFirstChild, + newChild, + lanes + ); + if (getIteratorFn(newChild)) { + key = getIteratorFn(newChild); + if ("function" !== typeof key) throw Error(formatProdErrorMessage(150)); + newChild = key.call(newChild); + return reconcileChildrenIterator( + returnFiber, + currentFirstChild, + newChild, + lanes + ); + } + if ("function" === typeof newChild.then) + return reconcileChildFibersImpl( + returnFiber, + currentFirstChild, + unwrapThenable(newChild), + lanes + ); + if (newChild.$$typeof === REACT_CONTEXT_TYPE) + return reconcileChildFibersImpl( + returnFiber, + currentFirstChild, + readContextDuringReconciliation(returnFiber, newChild), + lanes + ); + throwOnInvalidObjectType(returnFiber, newChild); + } + return "string" === typeof newChild && "" !== newChild || "number" === typeof newChild || "bigint" === typeof newChild ? (newChild = "" + newChild, null !== currentFirstChild && 6 === currentFirstChild.tag ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling), lanes = useFiber(currentFirstChild, newChild), lanes.return = returnFiber, returnFiber = lanes) : (deleteRemainingChildren(returnFiber, currentFirstChild), lanes = createFiberFromText(newChild, returnFiber.mode, lanes), lanes.return = returnFiber, returnFiber = lanes), placeSingleChild(returnFiber)) : deleteRemainingChildren(returnFiber, currentFirstChild); + } + return function(returnFiber, currentFirstChild, newChild, lanes) { + try { + thenableIndexCounter = 0; + var firstChildFiber = reconcileChildFibersImpl( + returnFiber, + currentFirstChild, + newChild, + lanes + ); + thenableState = null; + return firstChildFiber; + } catch (x) { + if (x === SuspenseException || x === SuspenseActionException) throw x; + var fiber = createFiberImplClass(29, x, null, returnFiber.mode); + fiber.lanes = lanes; + fiber.return = returnFiber; + return fiber; + } finally { + } + }; + } + var reconcileChildFibers = createChildReconciler(true), mountChildFibers = createChildReconciler(false), suspenseHandlerStackCursor = createCursor(null), shellBoundary = null; + function pushPrimaryTreeSuspenseHandler(handler) { + var current = handler.alternate; + push(suspenseStackCursor, suspenseStackCursor.current & 1); + push(suspenseHandlerStackCursor, handler); + null === shellBoundary && (null === current || null !== currentTreeHiddenStackCursor.current ? shellBoundary = handler : null !== current.memoizedState && (shellBoundary = handler)); + } + function pushOffscreenSuspenseHandler(fiber) { + if (22 === fiber.tag) { + if (push(suspenseStackCursor, suspenseStackCursor.current), push(suspenseHandlerStackCursor, fiber), null === shellBoundary) { + var current = fiber.alternate; + null !== current && null !== current.memoizedState && (shellBoundary = fiber); + } + } else reuseSuspenseHandlerOnStack(); + } + function reuseSuspenseHandlerOnStack() { + push(suspenseStackCursor, suspenseStackCursor.current); + push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current); + } + function popSuspenseHandler(fiber) { + pop(suspenseHandlerStackCursor); + shellBoundary === fiber && (shellBoundary = null); + pop(suspenseStackCursor); + } + var suspenseStackCursor = createCursor(0); + function findFirstSuspended(row) { + for (var node = row; null !== node; ) { + if (13 === node.tag) { + var state = node.memoizedState; + if (null !== state && (state = state.dehydrated, null === state || "$?" === state.data || isSuspenseInstanceFallback(state))) + return node; + } else if (19 === node.tag && void 0 !== node.memoizedProps.revealOrder) { + if (0 !== (node.flags & 128)) return node; + } else if (null !== node.child) { + node.child.return = node; + node = node.child; + continue; + } + if (node === row) break; + for (; null === node.sibling; ) { + if (null === node.return || node.return === row) return null; + node = node.return; + } + node.sibling.return = node.return; + node = node.sibling; + } + return null; + } + function applyDerivedStateFromProps(workInProgress2, ctor, getDerivedStateFromProps, nextProps) { + ctor = workInProgress2.memoizedState; + getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor); + getDerivedStateFromProps = null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps ? ctor : assign({}, ctor, getDerivedStateFromProps); + workInProgress2.memoizedState = getDerivedStateFromProps; + 0 === workInProgress2.lanes && (workInProgress2.updateQueue.baseState = getDerivedStateFromProps); + } + var classComponentUpdater = { + enqueueSetState: function(inst, payload, callback) { + inst = inst._reactInternals; + var lane = requestUpdateLane(), update = createUpdate(lane); + update.payload = payload; + void 0 !== callback && null !== callback && (update.callback = callback); + payload = enqueueUpdate(inst, update, lane); + null !== payload && (scheduleUpdateOnFiber(payload, inst, lane), entangleTransitions(payload, inst, lane)); + }, + enqueueReplaceState: function(inst, payload, callback) { + inst = inst._reactInternals; + var lane = requestUpdateLane(), update = createUpdate(lane); + update.tag = 1; + update.payload = payload; + void 0 !== callback && null !== callback && (update.callback = callback); + payload = enqueueUpdate(inst, update, lane); + null !== payload && (scheduleUpdateOnFiber(payload, inst, lane), entangleTransitions(payload, inst, lane)); + }, + enqueueForceUpdate: function(inst, callback) { + inst = inst._reactInternals; + var lane = requestUpdateLane(), update = createUpdate(lane); + update.tag = 2; + void 0 !== callback && null !== callback && (update.callback = callback); + callback = enqueueUpdate(inst, update, lane); + null !== callback && (scheduleUpdateOnFiber(callback, inst, lane), entangleTransitions(callback, inst, lane)); + } + }; + function checkShouldComponentUpdate(workInProgress2, ctor, oldProps, newProps, oldState, newState, nextContext) { + workInProgress2 = workInProgress2.stateNode; + return "function" === typeof workInProgress2.shouldComponentUpdate ? workInProgress2.shouldComponentUpdate(newProps, newState, nextContext) : ctor.prototype && ctor.prototype.isPureReactComponent ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState) : true; + } + function callComponentWillReceiveProps(workInProgress2, instance, newProps, nextContext) { + workInProgress2 = instance.state; + "function" === typeof instance.componentWillReceiveProps && instance.componentWillReceiveProps(newProps, nextContext); + "function" === typeof instance.UNSAFE_componentWillReceiveProps && instance.UNSAFE_componentWillReceiveProps(newProps, nextContext); + instance.state !== workInProgress2 && classComponentUpdater.enqueueReplaceState(instance, instance.state, null); + } + function resolveClassComponentProps(Component, baseProps) { + var newProps = baseProps; + if ("ref" in baseProps) { + newProps = {}; + for (var propName in baseProps) + "ref" !== propName && (newProps[propName] = baseProps[propName]); + } + if (Component = Component.defaultProps) { + newProps === baseProps && (newProps = assign({}, newProps)); + for (var propName$73 in Component) + void 0 === newProps[propName$73] && (newProps[propName$73] = Component[propName$73]); + } + return newProps; + } + var reportGlobalError = "function" === typeof reportError ? reportError : function(error) { + if ("object" === typeof window && "function" === typeof window.ErrorEvent) { + var event = new window.ErrorEvent("error", { + bubbles: true, + cancelable: true, + message: "object" === typeof error && null !== error && "string" === typeof error.message ? String(error.message) : String(error), + error + }); + if (!window.dispatchEvent(event)) return; + } else if ("object" === typeof process && "function" === typeof process.emit) { + process.emit("uncaughtException", error); + return; + } + console.error(error); + }; + function defaultOnUncaughtError(error) { + reportGlobalError(error); + } + function defaultOnCaughtError(error) { + console.error(error); + } + function defaultOnRecoverableError(error) { + reportGlobalError(error); + } + function logUncaughtError(root3, errorInfo) { + try { + var onUncaughtError = root3.onUncaughtError; + onUncaughtError(errorInfo.value, { componentStack: errorInfo.stack }); + } catch (e$74) { + setTimeout(function() { + throw e$74; + }); + } + } + function logCaughtError(root3, boundary, errorInfo) { + try { + var onCaughtError = root3.onCaughtError; + onCaughtError(errorInfo.value, { + componentStack: errorInfo.stack, + errorBoundary: 1 === boundary.tag ? boundary.stateNode : null + }); + } catch (e$75) { + setTimeout(function() { + throw e$75; + }); + } + } + function createRootErrorUpdate(root3, errorInfo, lane) { + lane = createUpdate(lane); + lane.tag = 3; + lane.payload = { element: null }; + lane.callback = function() { + logUncaughtError(root3, errorInfo); + }; + return lane; + } + function createClassErrorUpdate(lane) { + lane = createUpdate(lane); + lane.tag = 3; + return lane; + } + function initializeClassErrorUpdate(update, root3, fiber, errorInfo) { + var getDerivedStateFromError = fiber.type.getDerivedStateFromError; + if ("function" === typeof getDerivedStateFromError) { + var error = errorInfo.value; + update.payload = function() { + return getDerivedStateFromError(error); + }; + update.callback = function() { + logCaughtError(root3, fiber, errorInfo); + }; + } + var inst = fiber.stateNode; + null !== inst && "function" === typeof inst.componentDidCatch && (update.callback = function() { + logCaughtError(root3, fiber, errorInfo); + "function" !== typeof getDerivedStateFromError && (null === legacyErrorBoundariesThatAlreadyFailed ? legacyErrorBoundariesThatAlreadyFailed = /* @__PURE__ */ new Set([this]) : legacyErrorBoundariesThatAlreadyFailed.add(this)); + var stack = errorInfo.stack; + this.componentDidCatch(errorInfo.value, { + componentStack: null !== stack ? stack : "" + }); + }); + } + function throwException(root3, returnFiber, sourceFiber, value, rootRenderLanes) { + sourceFiber.flags |= 32768; + if (null !== value && "object" === typeof value && "function" === typeof value.then) { + returnFiber = sourceFiber.alternate; + null !== returnFiber && propagateParentContextChanges( + returnFiber, + sourceFiber, + rootRenderLanes, + true + ); + sourceFiber = suspenseHandlerStackCursor.current; + if (null !== sourceFiber) { + switch (sourceFiber.tag) { + case 13: + return null === shellBoundary ? renderDidSuspendDelayIfPossible() : null === sourceFiber.alternate && 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 3), sourceFiber.flags &= -257, sourceFiber.flags |= 65536, sourceFiber.lanes = rootRenderLanes, value === noopSuspenseyCommitThenable ? sourceFiber.flags |= 16384 : (returnFiber = sourceFiber.updateQueue, null === returnFiber ? sourceFiber.updateQueue = /* @__PURE__ */ new Set([value]) : returnFiber.add(value), attachPingListener(root3, value, rootRenderLanes)), false; + case 22: + return sourceFiber.flags |= 65536, value === noopSuspenseyCommitThenable ? sourceFiber.flags |= 16384 : (returnFiber = sourceFiber.updateQueue, null === returnFiber ? (returnFiber = { + transitions: null, + markerInstances: null, + retryQueue: /* @__PURE__ */ new Set([value]) + }, sourceFiber.updateQueue = returnFiber) : (sourceFiber = returnFiber.retryQueue, null === sourceFiber ? returnFiber.retryQueue = /* @__PURE__ */ new Set([value]) : sourceFiber.add(value)), attachPingListener(root3, value, rootRenderLanes)), false; + } + throw Error(formatProdErrorMessage(435, sourceFiber.tag)); + } + attachPingListener(root3, value, rootRenderLanes); + renderDidSuspendDelayIfPossible(); + return false; + } + if (isHydrating) + return returnFiber = suspenseHandlerStackCursor.current, null !== returnFiber ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256), returnFiber.flags |= 65536, returnFiber.lanes = rootRenderLanes, value !== HydrationMismatchException && (root3 = Error(formatProdErrorMessage(422), { cause: value }), queueHydrationError(createCapturedValueAtFiber(root3, sourceFiber)))) : (value !== HydrationMismatchException && (returnFiber = Error(formatProdErrorMessage(423), { + cause: value + }), queueHydrationError( + createCapturedValueAtFiber(returnFiber, sourceFiber) + )), root3 = root3.current.alternate, root3.flags |= 65536, rootRenderLanes &= -rootRenderLanes, root3.lanes |= rootRenderLanes, value = createCapturedValueAtFiber(value, sourceFiber), rootRenderLanes = createRootErrorUpdate( + root3.stateNode, + value, + rootRenderLanes + ), enqueueCapturedUpdate(root3, rootRenderLanes), 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2)), false; + var wrapperError = Error(formatProdErrorMessage(520), { cause: value }); + wrapperError = createCapturedValueAtFiber(wrapperError, sourceFiber); + null === workInProgressRootConcurrentErrors ? workInProgressRootConcurrentErrors = [wrapperError] : workInProgressRootConcurrentErrors.push(wrapperError); + 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2); + if (null === returnFiber) return true; + value = createCapturedValueAtFiber(value, sourceFiber); + sourceFiber = returnFiber; + do { + switch (sourceFiber.tag) { + case 3: + return sourceFiber.flags |= 65536, root3 = rootRenderLanes & -rootRenderLanes, sourceFiber.lanes |= root3, root3 = createRootErrorUpdate(sourceFiber.stateNode, value, root3), enqueueCapturedUpdate(sourceFiber, root3), false; + case 1: + if (returnFiber = sourceFiber.type, wrapperError = sourceFiber.stateNode, 0 === (sourceFiber.flags & 128) && ("function" === typeof returnFiber.getDerivedStateFromError || null !== wrapperError && "function" === typeof wrapperError.componentDidCatch && (null === legacyErrorBoundariesThatAlreadyFailed || !legacyErrorBoundariesThatAlreadyFailed.has(wrapperError)))) + return sourceFiber.flags |= 65536, rootRenderLanes &= -rootRenderLanes, sourceFiber.lanes |= rootRenderLanes, rootRenderLanes = createClassErrorUpdate(rootRenderLanes), initializeClassErrorUpdate( + rootRenderLanes, + root3, + sourceFiber, + value + ), enqueueCapturedUpdate(sourceFiber, rootRenderLanes), false; + } + sourceFiber = sourceFiber.return; + } while (null !== sourceFiber); + return false; + } + var SelectiveHydrationException = Error(formatProdErrorMessage(461)), didReceiveUpdate = false; + function reconcileChildren(current, workInProgress2, nextChildren, renderLanes2) { + workInProgress2.child = null === current ? mountChildFibers(workInProgress2, null, nextChildren, renderLanes2) : reconcileChildFibers( + workInProgress2, + current.child, + nextChildren, + renderLanes2 + ); + } + function updateForwardRef(current, workInProgress2, Component, nextProps, renderLanes2) { + Component = Component.render; + var ref = workInProgress2.ref; + if ("ref" in nextProps) { + var propsWithoutRef = {}; + for (var key in nextProps) + "ref" !== key && (propsWithoutRef[key] = nextProps[key]); + } else propsWithoutRef = nextProps; + prepareToReadContext(workInProgress2); + nextProps = renderWithHooks( + current, + workInProgress2, + Component, + propsWithoutRef, + ref, + renderLanes2 + ); + key = checkDidRenderIdHook(); + if (null !== current && !didReceiveUpdate) + return bailoutHooks(current, workInProgress2, renderLanes2), bailoutOnAlreadyFinishedWork(current, workInProgress2, renderLanes2); + isHydrating && key && pushMaterializedTreeId(workInProgress2); + workInProgress2.flags |= 1; + reconcileChildren(current, workInProgress2, nextProps, renderLanes2); + return workInProgress2.child; + } + function updateMemoComponent(current, workInProgress2, Component, nextProps, renderLanes2) { + if (null === current) { + var type = Component.type; + if ("function" === typeof type && !shouldConstruct(type) && void 0 === type.defaultProps && null === Component.compare) + return workInProgress2.tag = 15, workInProgress2.type = type, updateSimpleMemoComponent( + current, + workInProgress2, + type, + nextProps, + renderLanes2 + ); + current = createFiberFromTypeAndProps( + Component.type, + null, + nextProps, + workInProgress2, + workInProgress2.mode, + renderLanes2 + ); + current.ref = workInProgress2.ref; + current.return = workInProgress2; + return workInProgress2.child = current; + } + type = current.child; + if (!checkScheduledUpdateOrContext(current, renderLanes2)) { + var prevProps = type.memoizedProps; + Component = Component.compare; + Component = null !== Component ? Component : shallowEqual; + if (Component(prevProps, nextProps) && current.ref === workInProgress2.ref) + return bailoutOnAlreadyFinishedWork(current, workInProgress2, renderLanes2); + } + workInProgress2.flags |= 1; + current = createWorkInProgress(type, nextProps); + current.ref = workInProgress2.ref; + current.return = workInProgress2; + return workInProgress2.child = current; + } + function updateSimpleMemoComponent(current, workInProgress2, Component, nextProps, renderLanes2) { + if (null !== current) { + var prevProps = current.memoizedProps; + if (shallowEqual(prevProps, nextProps) && current.ref === workInProgress2.ref) + if (didReceiveUpdate = false, workInProgress2.pendingProps = nextProps = prevProps, checkScheduledUpdateOrContext(current, renderLanes2)) + 0 !== (current.flags & 131072) && (didReceiveUpdate = true); + else + return workInProgress2.lanes = current.lanes, bailoutOnAlreadyFinishedWork(current, workInProgress2, renderLanes2); + } + return updateFunctionComponent( + current, + workInProgress2, + Component, + nextProps, + renderLanes2 + ); + } + function updateOffscreenComponent(current, workInProgress2, renderLanes2) { + var nextProps = workInProgress2.pendingProps, nextChildren = nextProps.children, prevState = null !== current ? current.memoizedState : null; + if ("hidden" === nextProps.mode) { + if (0 !== (workInProgress2.flags & 128)) { + nextProps = null !== prevState ? prevState.baseLanes | renderLanes2 : renderLanes2; + if (null !== current) { + nextChildren = workInProgress2.child = current.child; + for (prevState = 0; null !== nextChildren; ) + prevState = prevState | nextChildren.lanes | nextChildren.childLanes, nextChildren = nextChildren.sibling; + workInProgress2.childLanes = prevState & ~nextProps; + } else workInProgress2.childLanes = 0, workInProgress2.child = null; + return deferHiddenOffscreenComponent( + current, + workInProgress2, + nextProps, + renderLanes2 + ); + } + if (0 !== (renderLanes2 & 536870912)) + workInProgress2.memoizedState = { baseLanes: 0, cachePool: null }, null !== current && pushTransition( + workInProgress2, + null !== prevState ? prevState.cachePool : null + ), null !== prevState ? pushHiddenContext(workInProgress2, prevState) : reuseHiddenContextOnStack(), pushOffscreenSuspenseHandler(workInProgress2); + else + return workInProgress2.lanes = workInProgress2.childLanes = 536870912, deferHiddenOffscreenComponent( + current, + workInProgress2, + null !== prevState ? prevState.baseLanes | renderLanes2 : renderLanes2, + renderLanes2 + ); + } else + null !== prevState ? (pushTransition(workInProgress2, prevState.cachePool), pushHiddenContext(workInProgress2, prevState), reuseSuspenseHandlerOnStack(), workInProgress2.memoizedState = null) : (null !== current && pushTransition(workInProgress2, null), reuseHiddenContextOnStack(), reuseSuspenseHandlerOnStack()); + reconcileChildren(current, workInProgress2, nextChildren, renderLanes2); + return workInProgress2.child; + } + function deferHiddenOffscreenComponent(current, workInProgress2, nextBaseLanes, renderLanes2) { + var JSCompiler_inline_result = peekCacheFromPool(); + JSCompiler_inline_result = null === JSCompiler_inline_result ? null : { parent: CacheContext._currentValue, pool: JSCompiler_inline_result }; + workInProgress2.memoizedState = { + baseLanes: nextBaseLanes, + cachePool: JSCompiler_inline_result + }; + null !== current && pushTransition(workInProgress2, null); + reuseHiddenContextOnStack(); + pushOffscreenSuspenseHandler(workInProgress2); + null !== current && propagateParentContextChanges(current, workInProgress2, renderLanes2, true); + return null; + } + function markRef(current, workInProgress2) { + var ref = workInProgress2.ref; + if (null === ref) + null !== current && null !== current.ref && (workInProgress2.flags |= 4194816); + else { + if ("function" !== typeof ref && "object" !== typeof ref) + throw Error(formatProdErrorMessage(284)); + if (null === current || current.ref !== ref) + workInProgress2.flags |= 4194816; + } + } + function updateFunctionComponent(current, workInProgress2, Component, nextProps, renderLanes2) { + prepareToReadContext(workInProgress2); + Component = renderWithHooks( + current, + workInProgress2, + Component, + nextProps, + void 0, + renderLanes2 + ); + nextProps = checkDidRenderIdHook(); + if (null !== current && !didReceiveUpdate) + return bailoutHooks(current, workInProgress2, renderLanes2), bailoutOnAlreadyFinishedWork(current, workInProgress2, renderLanes2); + isHydrating && nextProps && pushMaterializedTreeId(workInProgress2); + workInProgress2.flags |= 1; + reconcileChildren(current, workInProgress2, Component, renderLanes2); + return workInProgress2.child; + } + function replayFunctionComponent(current, workInProgress2, nextProps, Component, secondArg, renderLanes2) { + prepareToReadContext(workInProgress2); + workInProgress2.updateQueue = null; + nextProps = renderWithHooksAgain( + workInProgress2, + Component, + nextProps, + secondArg + ); + finishRenderingHooks(current); + Component = checkDidRenderIdHook(); + if (null !== current && !didReceiveUpdate) + return bailoutHooks(current, workInProgress2, renderLanes2), bailoutOnAlreadyFinishedWork(current, workInProgress2, renderLanes2); + isHydrating && Component && pushMaterializedTreeId(workInProgress2); + workInProgress2.flags |= 1; + reconcileChildren(current, workInProgress2, nextProps, renderLanes2); + return workInProgress2.child; + } + function updateClassComponent(current, workInProgress2, Component, nextProps, renderLanes2) { + prepareToReadContext(workInProgress2); + if (null === workInProgress2.stateNode) { + var context = emptyContextObject, contextType = Component.contextType; + "object" === typeof contextType && null !== contextType && (context = readContext(contextType)); + context = new Component(nextProps, context); + workInProgress2.memoizedState = null !== context.state && void 0 !== context.state ? context.state : null; + context.updater = classComponentUpdater; + workInProgress2.stateNode = context; + context._reactInternals = workInProgress2; + context = workInProgress2.stateNode; + context.props = nextProps; + context.state = workInProgress2.memoizedState; + context.refs = {}; + initializeUpdateQueue(workInProgress2); + contextType = Component.contextType; + context.context = "object" === typeof contextType && null !== contextType ? readContext(contextType) : emptyContextObject; + context.state = workInProgress2.memoizedState; + contextType = Component.getDerivedStateFromProps; + "function" === typeof contextType && (applyDerivedStateFromProps( + workInProgress2, + Component, + contextType, + nextProps + ), context.state = workInProgress2.memoizedState); + "function" === typeof Component.getDerivedStateFromProps || "function" === typeof context.getSnapshotBeforeUpdate || "function" !== typeof context.UNSAFE_componentWillMount && "function" !== typeof context.componentWillMount || (contextType = context.state, "function" === typeof context.componentWillMount && context.componentWillMount(), "function" === typeof context.UNSAFE_componentWillMount && context.UNSAFE_componentWillMount(), contextType !== context.state && classComponentUpdater.enqueueReplaceState(context, context.state, null), processUpdateQueue(workInProgress2, nextProps, context, renderLanes2), suspendIfUpdateReadFromEntangledAsyncAction(), context.state = workInProgress2.memoizedState); + "function" === typeof context.componentDidMount && (workInProgress2.flags |= 4194308); + nextProps = true; + } else if (null === current) { + context = workInProgress2.stateNode; + var unresolvedOldProps = workInProgress2.memoizedProps, oldProps = resolveClassComponentProps(Component, unresolvedOldProps); + context.props = oldProps; + var oldContext = context.context, contextType$jscomp$0 = Component.contextType; + contextType = emptyContextObject; + "object" === typeof contextType$jscomp$0 && null !== contextType$jscomp$0 && (contextType = readContext(contextType$jscomp$0)); + var getDerivedStateFromProps = Component.getDerivedStateFromProps; + contextType$jscomp$0 = "function" === typeof getDerivedStateFromProps || "function" === typeof context.getSnapshotBeforeUpdate; + unresolvedOldProps = workInProgress2.pendingProps !== unresolvedOldProps; + contextType$jscomp$0 || "function" !== typeof context.UNSAFE_componentWillReceiveProps && "function" !== typeof context.componentWillReceiveProps || (unresolvedOldProps || oldContext !== contextType) && callComponentWillReceiveProps( + workInProgress2, + context, + nextProps, + contextType + ); + hasForceUpdate = false; + var oldState = workInProgress2.memoizedState; + context.state = oldState; + processUpdateQueue(workInProgress2, nextProps, context, renderLanes2); + suspendIfUpdateReadFromEntangledAsyncAction(); + oldContext = workInProgress2.memoizedState; + unresolvedOldProps || oldState !== oldContext || hasForceUpdate ? ("function" === typeof getDerivedStateFromProps && (applyDerivedStateFromProps( + workInProgress2, + Component, + getDerivedStateFromProps, + nextProps + ), oldContext = workInProgress2.memoizedState), (oldProps = hasForceUpdate || checkShouldComponentUpdate( + workInProgress2, + Component, + oldProps, + nextProps, + oldState, + oldContext, + contextType + )) ? (contextType$jscomp$0 || "function" !== typeof context.UNSAFE_componentWillMount && "function" !== typeof context.componentWillMount || ("function" === typeof context.componentWillMount && context.componentWillMount(), "function" === typeof context.UNSAFE_componentWillMount && context.UNSAFE_componentWillMount()), "function" === typeof context.componentDidMount && (workInProgress2.flags |= 4194308)) : ("function" === typeof context.componentDidMount && (workInProgress2.flags |= 4194308), workInProgress2.memoizedProps = nextProps, workInProgress2.memoizedState = oldContext), context.props = nextProps, context.state = oldContext, context.context = contextType, nextProps = oldProps) : ("function" === typeof context.componentDidMount && (workInProgress2.flags |= 4194308), nextProps = false); + } else { + context = workInProgress2.stateNode; + cloneUpdateQueue(current, workInProgress2); + contextType = workInProgress2.memoizedProps; + contextType$jscomp$0 = resolveClassComponentProps(Component, contextType); + context.props = contextType$jscomp$0; + getDerivedStateFromProps = workInProgress2.pendingProps; + oldState = context.context; + oldContext = Component.contextType; + oldProps = emptyContextObject; + "object" === typeof oldContext && null !== oldContext && (oldProps = readContext(oldContext)); + unresolvedOldProps = Component.getDerivedStateFromProps; + (oldContext = "function" === typeof unresolvedOldProps || "function" === typeof context.getSnapshotBeforeUpdate) || "function" !== typeof context.UNSAFE_componentWillReceiveProps && "function" !== typeof context.componentWillReceiveProps || (contextType !== getDerivedStateFromProps || oldState !== oldProps) && callComponentWillReceiveProps( + workInProgress2, + context, + nextProps, + oldProps + ); + hasForceUpdate = false; + oldState = workInProgress2.memoizedState; + context.state = oldState; + processUpdateQueue(workInProgress2, nextProps, context, renderLanes2); + suspendIfUpdateReadFromEntangledAsyncAction(); + var newState = workInProgress2.memoizedState; + contextType !== getDerivedStateFromProps || oldState !== newState || hasForceUpdate || null !== current && null !== current.dependencies && checkIfContextChanged(current.dependencies) ? ("function" === typeof unresolvedOldProps && (applyDerivedStateFromProps( + workInProgress2, + Component, + unresolvedOldProps, + nextProps + ), newState = workInProgress2.memoizedState), (contextType$jscomp$0 = hasForceUpdate || checkShouldComponentUpdate( + workInProgress2, + Component, + contextType$jscomp$0, + nextProps, + oldState, + newState, + oldProps + ) || null !== current && null !== current.dependencies && checkIfContextChanged(current.dependencies)) ? (oldContext || "function" !== typeof context.UNSAFE_componentWillUpdate && "function" !== typeof context.componentWillUpdate || ("function" === typeof context.componentWillUpdate && context.componentWillUpdate(nextProps, newState, oldProps), "function" === typeof context.UNSAFE_componentWillUpdate && context.UNSAFE_componentWillUpdate( + nextProps, + newState, + oldProps + )), "function" === typeof context.componentDidUpdate && (workInProgress2.flags |= 4), "function" === typeof context.getSnapshotBeforeUpdate && (workInProgress2.flags |= 1024)) : ("function" !== typeof context.componentDidUpdate || contextType === current.memoizedProps && oldState === current.memoizedState || (workInProgress2.flags |= 4), "function" !== typeof context.getSnapshotBeforeUpdate || contextType === current.memoizedProps && oldState === current.memoizedState || (workInProgress2.flags |= 1024), workInProgress2.memoizedProps = nextProps, workInProgress2.memoizedState = newState), context.props = nextProps, context.state = newState, context.context = oldProps, nextProps = contextType$jscomp$0) : ("function" !== typeof context.componentDidUpdate || contextType === current.memoizedProps && oldState === current.memoizedState || (workInProgress2.flags |= 4), "function" !== typeof context.getSnapshotBeforeUpdate || contextType === current.memoizedProps && oldState === current.memoizedState || (workInProgress2.flags |= 1024), nextProps = false); + } + context = nextProps; + markRef(current, workInProgress2); + nextProps = 0 !== (workInProgress2.flags & 128); + context || nextProps ? (context = workInProgress2.stateNode, Component = nextProps && "function" !== typeof Component.getDerivedStateFromError ? null : context.render(), workInProgress2.flags |= 1, null !== current && nextProps ? (workInProgress2.child = reconcileChildFibers( + workInProgress2, + current.child, + null, + renderLanes2 + ), workInProgress2.child = reconcileChildFibers( + workInProgress2, + null, + Component, + renderLanes2 + )) : reconcileChildren(current, workInProgress2, Component, renderLanes2), workInProgress2.memoizedState = context.state, current = workInProgress2.child) : current = bailoutOnAlreadyFinishedWork( + current, + workInProgress2, + renderLanes2 + ); + return current; + } + function mountHostRootWithoutHydrating(current, workInProgress2, nextChildren, renderLanes2) { + resetHydrationState(); + workInProgress2.flags |= 256; + reconcileChildren(current, workInProgress2, nextChildren, renderLanes2); + return workInProgress2.child; + } + var SUSPENDED_MARKER = { + dehydrated: null, + treeContext: null, + retryLane: 0, + hydrationErrors: null + }; + function mountSuspenseOffscreenState(renderLanes2) { + return { baseLanes: renderLanes2, cachePool: getSuspendedCache() }; + } + function getRemainingWorkInPrimaryTree(current, primaryTreeDidDefer, renderLanes2) { + current = null !== current ? current.childLanes & ~renderLanes2 : 0; + primaryTreeDidDefer && (current |= workInProgressDeferredLane); + return current; + } + function updateSuspenseComponent(current, workInProgress2, renderLanes2) { + var nextProps = workInProgress2.pendingProps, showFallback = false, didSuspend = 0 !== (workInProgress2.flags & 128), JSCompiler_temp; + (JSCompiler_temp = didSuspend) || (JSCompiler_temp = null !== current && null === current.memoizedState ? false : 0 !== (suspenseStackCursor.current & 2)); + JSCompiler_temp && (showFallback = true, workInProgress2.flags &= -129); + JSCompiler_temp = 0 !== (workInProgress2.flags & 32); + workInProgress2.flags &= -33; + if (null === current) { + if (isHydrating) { + showFallback ? pushPrimaryTreeSuspenseHandler(workInProgress2) : reuseSuspenseHandlerOnStack(); + if (isHydrating) { + var nextInstance = nextHydratableInstance, JSCompiler_temp$jscomp$0; + if (JSCompiler_temp$jscomp$0 = nextInstance) { + c: { + JSCompiler_temp$jscomp$0 = nextInstance; + for (nextInstance = rootOrSingletonContext; 8 !== JSCompiler_temp$jscomp$0.nodeType; ) { + if (!nextInstance) { + nextInstance = null; + break c; + } + JSCompiler_temp$jscomp$0 = getNextHydratable( + JSCompiler_temp$jscomp$0.nextSibling + ); + if (null === JSCompiler_temp$jscomp$0) { + nextInstance = null; + break c; + } + } + nextInstance = JSCompiler_temp$jscomp$0; + } + null !== nextInstance ? (workInProgress2.memoizedState = { + dehydrated: nextInstance, + treeContext: null !== treeContextProvider ? { id: treeContextId, overflow: treeContextOverflow } : null, + retryLane: 536870912, + hydrationErrors: null + }, JSCompiler_temp$jscomp$0 = createFiberImplClass( + 18, + null, + null, + 0 + ), JSCompiler_temp$jscomp$0.stateNode = nextInstance, JSCompiler_temp$jscomp$0.return = workInProgress2, workInProgress2.child = JSCompiler_temp$jscomp$0, hydrationParentFiber = workInProgress2, nextHydratableInstance = null, JSCompiler_temp$jscomp$0 = true) : JSCompiler_temp$jscomp$0 = false; + } + JSCompiler_temp$jscomp$0 || throwOnHydrationMismatch(workInProgress2); + } + nextInstance = workInProgress2.memoizedState; + if (null !== nextInstance && (nextInstance = nextInstance.dehydrated, null !== nextInstance)) + return isSuspenseInstanceFallback(nextInstance) ? workInProgress2.lanes = 32 : workInProgress2.lanes = 536870912, null; + popSuspenseHandler(workInProgress2); + } + nextInstance = nextProps.children; + nextProps = nextProps.fallback; + if (showFallback) + return reuseSuspenseHandlerOnStack(), showFallback = workInProgress2.mode, nextInstance = mountWorkInProgressOffscreenFiber( + { mode: "hidden", children: nextInstance }, + showFallback + ), nextProps = createFiberFromFragment( + nextProps, + showFallback, + renderLanes2, + null + ), nextInstance.return = workInProgress2, nextProps.return = workInProgress2, nextInstance.sibling = nextProps, workInProgress2.child = nextInstance, showFallback = workInProgress2.child, showFallback.memoizedState = mountSuspenseOffscreenState(renderLanes2), showFallback.childLanes = getRemainingWorkInPrimaryTree( + current, + JSCompiler_temp, + renderLanes2 + ), workInProgress2.memoizedState = SUSPENDED_MARKER, nextProps; + pushPrimaryTreeSuspenseHandler(workInProgress2); + return mountSuspensePrimaryChildren(workInProgress2, nextInstance); + } + JSCompiler_temp$jscomp$0 = current.memoizedState; + if (null !== JSCompiler_temp$jscomp$0 && (nextInstance = JSCompiler_temp$jscomp$0.dehydrated, null !== nextInstance)) { + if (didSuspend) + workInProgress2.flags & 256 ? (pushPrimaryTreeSuspenseHandler(workInProgress2), workInProgress2.flags &= -257, workInProgress2 = retrySuspenseComponentWithoutHydrating( + current, + workInProgress2, + renderLanes2 + )) : null !== workInProgress2.memoizedState ? (reuseSuspenseHandlerOnStack(), workInProgress2.child = current.child, workInProgress2.flags |= 128, workInProgress2 = null) : (reuseSuspenseHandlerOnStack(), showFallback = nextProps.fallback, nextInstance = workInProgress2.mode, nextProps = mountWorkInProgressOffscreenFiber( + { mode: "visible", children: nextProps.children }, + nextInstance + ), showFallback = createFiberFromFragment( + showFallback, + nextInstance, + renderLanes2, + null + ), showFallback.flags |= 2, nextProps.return = workInProgress2, showFallback.return = workInProgress2, nextProps.sibling = showFallback, workInProgress2.child = nextProps, reconcileChildFibers( + workInProgress2, + current.child, + null, + renderLanes2 + ), nextProps = workInProgress2.child, nextProps.memoizedState = mountSuspenseOffscreenState(renderLanes2), nextProps.childLanes = getRemainingWorkInPrimaryTree( + current, + JSCompiler_temp, + renderLanes2 + ), workInProgress2.memoizedState = SUSPENDED_MARKER, workInProgress2 = showFallback); + else if (pushPrimaryTreeSuspenseHandler(workInProgress2), isSuspenseInstanceFallback(nextInstance)) { + JSCompiler_temp = nextInstance.nextSibling && nextInstance.nextSibling.dataset; + if (JSCompiler_temp) var digest = JSCompiler_temp.dgst; + JSCompiler_temp = digest; + nextProps = Error(formatProdErrorMessage(419)); + nextProps.stack = ""; + nextProps.digest = JSCompiler_temp; + queueHydrationError({ value: nextProps, source: null, stack: null }); + workInProgress2 = retrySuspenseComponentWithoutHydrating( + current, + workInProgress2, + renderLanes2 + ); + } else if (didReceiveUpdate || propagateParentContextChanges(current, workInProgress2, renderLanes2, false), JSCompiler_temp = 0 !== (renderLanes2 & current.childLanes), didReceiveUpdate || JSCompiler_temp) { + JSCompiler_temp = workInProgressRoot; + if (null !== JSCompiler_temp && (nextProps = renderLanes2 & -renderLanes2, nextProps = 0 !== (nextProps & 42) ? 1 : getBumpedLaneForHydrationByLane(nextProps), nextProps = 0 !== (nextProps & (JSCompiler_temp.suspendedLanes | renderLanes2)) ? 0 : nextProps, 0 !== nextProps && nextProps !== JSCompiler_temp$jscomp$0.retryLane)) + throw JSCompiler_temp$jscomp$0.retryLane = nextProps, enqueueConcurrentRenderForLane(current, nextProps), scheduleUpdateOnFiber(JSCompiler_temp, current, nextProps), SelectiveHydrationException; + "$?" === nextInstance.data || renderDidSuspendDelayIfPossible(); + workInProgress2 = retrySuspenseComponentWithoutHydrating( + current, + workInProgress2, + renderLanes2 + ); + } else + "$?" === nextInstance.data ? (workInProgress2.flags |= 192, workInProgress2.child = current.child, workInProgress2 = null) : (current = JSCompiler_temp$jscomp$0.treeContext, nextHydratableInstance = getNextHydratable( + nextInstance.nextSibling + ), hydrationParentFiber = workInProgress2, isHydrating = true, hydrationErrors = null, rootOrSingletonContext = false, null !== current && (idStack[idStackIndex++] = treeContextId, idStack[idStackIndex++] = treeContextOverflow, idStack[idStackIndex++] = treeContextProvider, treeContextId = current.id, treeContextOverflow = current.overflow, treeContextProvider = workInProgress2), workInProgress2 = mountSuspensePrimaryChildren( + workInProgress2, + nextProps.children + ), workInProgress2.flags |= 4096); + return workInProgress2; + } + if (showFallback) + return reuseSuspenseHandlerOnStack(), showFallback = nextProps.fallback, nextInstance = workInProgress2.mode, JSCompiler_temp$jscomp$0 = current.child, digest = JSCompiler_temp$jscomp$0.sibling, nextProps = createWorkInProgress(JSCompiler_temp$jscomp$0, { + mode: "hidden", + children: nextProps.children + }), nextProps.subtreeFlags = JSCompiler_temp$jscomp$0.subtreeFlags & 65011712, null !== digest ? showFallback = createWorkInProgress(digest, showFallback) : (showFallback = createFiberFromFragment( + showFallback, + nextInstance, + renderLanes2, + null + ), showFallback.flags |= 2), showFallback.return = workInProgress2, nextProps.return = workInProgress2, nextProps.sibling = showFallback, workInProgress2.child = nextProps, nextProps = showFallback, showFallback = workInProgress2.child, nextInstance = current.child.memoizedState, null === nextInstance ? nextInstance = mountSuspenseOffscreenState(renderLanes2) : (JSCompiler_temp$jscomp$0 = nextInstance.cachePool, null !== JSCompiler_temp$jscomp$0 ? (digest = CacheContext._currentValue, JSCompiler_temp$jscomp$0 = JSCompiler_temp$jscomp$0.parent !== digest ? { parent: digest, pool: digest } : JSCompiler_temp$jscomp$0) : JSCompiler_temp$jscomp$0 = getSuspendedCache(), nextInstance = { + baseLanes: nextInstance.baseLanes | renderLanes2, + cachePool: JSCompiler_temp$jscomp$0 + }), showFallback.memoizedState = nextInstance, showFallback.childLanes = getRemainingWorkInPrimaryTree( + current, + JSCompiler_temp, + renderLanes2 + ), workInProgress2.memoizedState = SUSPENDED_MARKER, nextProps; + pushPrimaryTreeSuspenseHandler(workInProgress2); + renderLanes2 = current.child; + current = renderLanes2.sibling; + renderLanes2 = createWorkInProgress(renderLanes2, { + mode: "visible", + children: nextProps.children + }); + renderLanes2.return = workInProgress2; + renderLanes2.sibling = null; + null !== current && (JSCompiler_temp = workInProgress2.deletions, null === JSCompiler_temp ? (workInProgress2.deletions = [current], workInProgress2.flags |= 16) : JSCompiler_temp.push(current)); + workInProgress2.child = renderLanes2; + workInProgress2.memoizedState = null; + return renderLanes2; + } + function mountSuspensePrimaryChildren(workInProgress2, primaryChildren) { + primaryChildren = mountWorkInProgressOffscreenFiber( + { mode: "visible", children: primaryChildren }, + workInProgress2.mode + ); + primaryChildren.return = workInProgress2; + return workInProgress2.child = primaryChildren; + } + function mountWorkInProgressOffscreenFiber(offscreenProps, mode) { + offscreenProps = createFiberImplClass(22, offscreenProps, null, mode); + offscreenProps.lanes = 0; + offscreenProps.stateNode = { + _visibility: 1, + _pendingMarkers: null, + _retryCache: null, + _transitions: null + }; + return offscreenProps; + } + function retrySuspenseComponentWithoutHydrating(current, workInProgress2, renderLanes2) { + reconcileChildFibers(workInProgress2, current.child, null, renderLanes2); + current = mountSuspensePrimaryChildren( + workInProgress2, + workInProgress2.pendingProps.children + ); + current.flags |= 2; + workInProgress2.memoizedState = null; + return current; + } + function scheduleSuspenseWorkOnFiber(fiber, renderLanes2, propagationRoot) { + fiber.lanes |= renderLanes2; + var alternate = fiber.alternate; + null !== alternate && (alternate.lanes |= renderLanes2); + scheduleContextWorkOnParentPath(fiber.return, renderLanes2, propagationRoot); + } + function initSuspenseListRenderState(workInProgress2, isBackwards, tail, lastContentRow, tailMode) { + var renderState = workInProgress2.memoizedState; + null === renderState ? workInProgress2.memoizedState = { + isBackwards, + rendering: null, + renderingStartTime: 0, + last: lastContentRow, + tail, + tailMode + } : (renderState.isBackwards = isBackwards, renderState.rendering = null, renderState.renderingStartTime = 0, renderState.last = lastContentRow, renderState.tail = tail, renderState.tailMode = tailMode); + } + function updateSuspenseListComponent(current, workInProgress2, renderLanes2) { + var nextProps = workInProgress2.pendingProps, revealOrder = nextProps.revealOrder, tailMode = nextProps.tail; + reconcileChildren(current, workInProgress2, nextProps.children, renderLanes2); + nextProps = suspenseStackCursor.current; + if (0 !== (nextProps & 2)) + nextProps = nextProps & 1 | 2, workInProgress2.flags |= 128; + else { + if (null !== current && 0 !== (current.flags & 128)) + a: for (current = workInProgress2.child; null !== current; ) { + if (13 === current.tag) + null !== current.memoizedState && scheduleSuspenseWorkOnFiber(current, renderLanes2, workInProgress2); + else if (19 === current.tag) + scheduleSuspenseWorkOnFiber(current, renderLanes2, workInProgress2); + else if (null !== current.child) { + current.child.return = current; + current = current.child; + continue; + } + if (current === workInProgress2) break a; + for (; null === current.sibling; ) { + if (null === current.return || current.return === workInProgress2) + break a; + current = current.return; + } + current.sibling.return = current.return; + current = current.sibling; + } + nextProps &= 1; + } + push(suspenseStackCursor, nextProps); + switch (revealOrder) { + case "forwards": + renderLanes2 = workInProgress2.child; + for (revealOrder = null; null !== renderLanes2; ) + current = renderLanes2.alternate, null !== current && null === findFirstSuspended(current) && (revealOrder = renderLanes2), renderLanes2 = renderLanes2.sibling; + renderLanes2 = revealOrder; + null === renderLanes2 ? (revealOrder = workInProgress2.child, workInProgress2.child = null) : (revealOrder = renderLanes2.sibling, renderLanes2.sibling = null); + initSuspenseListRenderState( + workInProgress2, + false, + revealOrder, + renderLanes2, + tailMode + ); + break; + case "backwards": + renderLanes2 = null; + revealOrder = workInProgress2.child; + for (workInProgress2.child = null; null !== revealOrder; ) { + current = revealOrder.alternate; + if (null !== current && null === findFirstSuspended(current)) { + workInProgress2.child = revealOrder; + break; + } + current = revealOrder.sibling; + revealOrder.sibling = renderLanes2; + renderLanes2 = revealOrder; + revealOrder = current; + } + initSuspenseListRenderState( + workInProgress2, + true, + renderLanes2, + null, + tailMode + ); + break; + case "together": + initSuspenseListRenderState(workInProgress2, false, null, null, void 0); + break; + default: + workInProgress2.memoizedState = null; + } + return workInProgress2.child; + } + function bailoutOnAlreadyFinishedWork(current, workInProgress2, renderLanes2) { + null !== current && (workInProgress2.dependencies = current.dependencies); + workInProgressRootSkippedLanes |= workInProgress2.lanes; + if (0 === (renderLanes2 & workInProgress2.childLanes)) + if (null !== current) { + if (propagateParentContextChanges( + current, + workInProgress2, + renderLanes2, + false + ), 0 === (renderLanes2 & workInProgress2.childLanes)) + return null; + } else return null; + if (null !== current && workInProgress2.child !== current.child) + throw Error(formatProdErrorMessage(153)); + if (null !== workInProgress2.child) { + current = workInProgress2.child; + renderLanes2 = createWorkInProgress(current, current.pendingProps); + workInProgress2.child = renderLanes2; + for (renderLanes2.return = workInProgress2; null !== current.sibling; ) + current = current.sibling, renderLanes2 = renderLanes2.sibling = createWorkInProgress(current, current.pendingProps), renderLanes2.return = workInProgress2; + renderLanes2.sibling = null; + } + return workInProgress2.child; + } + function checkScheduledUpdateOrContext(current, renderLanes2) { + if (0 !== (current.lanes & renderLanes2)) return true; + current = current.dependencies; + return null !== current && checkIfContextChanged(current) ? true : false; + } + function attemptEarlyBailoutIfNoScheduledUpdate(current, workInProgress2, renderLanes2) { + switch (workInProgress2.tag) { + case 3: + pushHostContainer(workInProgress2, workInProgress2.stateNode.containerInfo); + pushProvider(workInProgress2, CacheContext, current.memoizedState.cache); + resetHydrationState(); + break; + case 27: + case 5: + pushHostContext(workInProgress2); + break; + case 4: + pushHostContainer(workInProgress2, workInProgress2.stateNode.containerInfo); + break; + case 10: + pushProvider( + workInProgress2, + workInProgress2.type, + workInProgress2.memoizedProps.value + ); + break; + case 13: + var state = workInProgress2.memoizedState; + if (null !== state) { + if (null !== state.dehydrated) + return pushPrimaryTreeSuspenseHandler(workInProgress2), workInProgress2.flags |= 128, null; + if (0 !== (renderLanes2 & workInProgress2.child.childLanes)) + return updateSuspenseComponent(current, workInProgress2, renderLanes2); + pushPrimaryTreeSuspenseHandler(workInProgress2); + current = bailoutOnAlreadyFinishedWork( + current, + workInProgress2, + renderLanes2 + ); + return null !== current ? current.sibling : null; + } + pushPrimaryTreeSuspenseHandler(workInProgress2); + break; + case 19: + var didSuspendBefore = 0 !== (current.flags & 128); + state = 0 !== (renderLanes2 & workInProgress2.childLanes); + state || (propagateParentContextChanges( + current, + workInProgress2, + renderLanes2, + false + ), state = 0 !== (renderLanes2 & workInProgress2.childLanes)); + if (didSuspendBefore) { + if (state) + return updateSuspenseListComponent( + current, + workInProgress2, + renderLanes2 + ); + workInProgress2.flags |= 128; + } + didSuspendBefore = workInProgress2.memoizedState; + null !== didSuspendBefore && (didSuspendBefore.rendering = null, didSuspendBefore.tail = null, didSuspendBefore.lastEffect = null); + push(suspenseStackCursor, suspenseStackCursor.current); + if (state) break; + else return null; + case 22: + case 23: + return workInProgress2.lanes = 0, updateOffscreenComponent(current, workInProgress2, renderLanes2); + case 24: + pushProvider(workInProgress2, CacheContext, current.memoizedState.cache); + } + return bailoutOnAlreadyFinishedWork(current, workInProgress2, renderLanes2); + } + function beginWork(current, workInProgress2, renderLanes2) { + if (null !== current) + if (current.memoizedProps !== workInProgress2.pendingProps) + didReceiveUpdate = true; + else { + if (!checkScheduledUpdateOrContext(current, renderLanes2) && 0 === (workInProgress2.flags & 128)) + return didReceiveUpdate = false, attemptEarlyBailoutIfNoScheduledUpdate( + current, + workInProgress2, + renderLanes2 + ); + didReceiveUpdate = 0 !== (current.flags & 131072) ? true : false; + } + else + didReceiveUpdate = false, isHydrating && 0 !== (workInProgress2.flags & 1048576) && pushTreeId(workInProgress2, treeForkCount, workInProgress2.index); + workInProgress2.lanes = 0; + switch (workInProgress2.tag) { + case 16: + a: { + current = workInProgress2.pendingProps; + var lazyComponent = workInProgress2.elementType, init = lazyComponent._init; + lazyComponent = init(lazyComponent._payload); + workInProgress2.type = lazyComponent; + if ("function" === typeof lazyComponent) + shouldConstruct(lazyComponent) ? (current = resolveClassComponentProps(lazyComponent, current), workInProgress2.tag = 1, workInProgress2 = updateClassComponent( + null, + workInProgress2, + lazyComponent, + current, + renderLanes2 + )) : (workInProgress2.tag = 0, workInProgress2 = updateFunctionComponent( + null, + workInProgress2, + lazyComponent, + current, + renderLanes2 + )); + else { + if (void 0 !== lazyComponent && null !== lazyComponent) { + if (init = lazyComponent.$$typeof, init === REACT_FORWARD_REF_TYPE) { + workInProgress2.tag = 11; + workInProgress2 = updateForwardRef( + null, + workInProgress2, + lazyComponent, + current, + renderLanes2 + ); + break a; + } else if (init === REACT_MEMO_TYPE) { + workInProgress2.tag = 14; + workInProgress2 = updateMemoComponent( + null, + workInProgress2, + lazyComponent, + current, + renderLanes2 + ); + break a; + } + } + workInProgress2 = getComponentNameFromType(lazyComponent) || lazyComponent; + throw Error(formatProdErrorMessage(306, workInProgress2, "")); + } + } + return workInProgress2; + case 0: + return updateFunctionComponent( + current, + workInProgress2, + workInProgress2.type, + workInProgress2.pendingProps, + renderLanes2 + ); + case 1: + return lazyComponent = workInProgress2.type, init = resolveClassComponentProps( + lazyComponent, + workInProgress2.pendingProps + ), updateClassComponent( + current, + workInProgress2, + lazyComponent, + init, + renderLanes2 + ); + case 3: + a: { + pushHostContainer( + workInProgress2, + workInProgress2.stateNode.containerInfo + ); + if (null === current) throw Error(formatProdErrorMessage(387)); + lazyComponent = workInProgress2.pendingProps; + var prevState = workInProgress2.memoizedState; + init = prevState.element; + cloneUpdateQueue(current, workInProgress2); + processUpdateQueue(workInProgress2, lazyComponent, null, renderLanes2); + var nextState = workInProgress2.memoizedState; + lazyComponent = nextState.cache; + pushProvider(workInProgress2, CacheContext, lazyComponent); + lazyComponent !== prevState.cache && propagateContextChanges( + workInProgress2, + [CacheContext], + renderLanes2, + true + ); + suspendIfUpdateReadFromEntangledAsyncAction(); + lazyComponent = nextState.element; + if (prevState.isDehydrated) + if (prevState = { + element: lazyComponent, + isDehydrated: false, + cache: nextState.cache + }, workInProgress2.updateQueue.baseState = prevState, workInProgress2.memoizedState = prevState, workInProgress2.flags & 256) { + workInProgress2 = mountHostRootWithoutHydrating( + current, + workInProgress2, + lazyComponent, + renderLanes2 + ); + break a; + } else if (lazyComponent !== init) { + init = createCapturedValueAtFiber( + Error(formatProdErrorMessage(424)), + workInProgress2 + ); + queueHydrationError(init); + workInProgress2 = mountHostRootWithoutHydrating( + current, + workInProgress2, + lazyComponent, + renderLanes2 + ); + break a; + } else { + current = workInProgress2.stateNode.containerInfo; + switch (current.nodeType) { + case 9: + current = current.body; + break; + default: + current = "HTML" === current.nodeName ? current.ownerDocument.body : current; + } + nextHydratableInstance = getNextHydratable(current.firstChild); + hydrationParentFiber = workInProgress2; + isHydrating = true; + hydrationErrors = null; + rootOrSingletonContext = true; + renderLanes2 = mountChildFibers( + workInProgress2, + null, + lazyComponent, + renderLanes2 + ); + for (workInProgress2.child = renderLanes2; renderLanes2; ) + renderLanes2.flags = renderLanes2.flags & -3 | 4096, renderLanes2 = renderLanes2.sibling; + } + else { + resetHydrationState(); + if (lazyComponent === init) { + workInProgress2 = bailoutOnAlreadyFinishedWork( + current, + workInProgress2, + renderLanes2 + ); + break a; + } + reconcileChildren( + current, + workInProgress2, + lazyComponent, + renderLanes2 + ); + } + workInProgress2 = workInProgress2.child; + } + return workInProgress2; + case 26: + return markRef(current, workInProgress2), null === current ? (renderLanes2 = getResource( + workInProgress2.type, + null, + workInProgress2.pendingProps, + null + )) ? workInProgress2.memoizedState = renderLanes2 : isHydrating || (renderLanes2 = workInProgress2.type, current = workInProgress2.pendingProps, lazyComponent = getOwnerDocumentFromRootContainer( + rootInstanceStackCursor.current + ).createElement(renderLanes2), lazyComponent[internalInstanceKey] = workInProgress2, lazyComponent[internalPropsKey] = current, setInitialProperties(lazyComponent, renderLanes2, current), markNodeAsHoistable(lazyComponent), workInProgress2.stateNode = lazyComponent) : workInProgress2.memoizedState = getResource( + workInProgress2.type, + current.memoizedProps, + workInProgress2.pendingProps, + current.memoizedState + ), null; + case 27: + return pushHostContext(workInProgress2), null === current && isHydrating && (lazyComponent = workInProgress2.stateNode = resolveSingletonInstance( + workInProgress2.type, + workInProgress2.pendingProps, + rootInstanceStackCursor.current + ), hydrationParentFiber = workInProgress2, rootOrSingletonContext = true, init = nextHydratableInstance, isSingletonScope(workInProgress2.type) ? (previousHydratableOnEnteringScopedSingleton = init, nextHydratableInstance = getNextHydratable( + lazyComponent.firstChild + )) : nextHydratableInstance = init), reconcileChildren( + current, + workInProgress2, + workInProgress2.pendingProps.children, + renderLanes2 + ), markRef(current, workInProgress2), null === current && (workInProgress2.flags |= 4194304), workInProgress2.child; + case 5: + if (null === current && isHydrating) { + if (init = lazyComponent = nextHydratableInstance) + lazyComponent = canHydrateInstance( + lazyComponent, + workInProgress2.type, + workInProgress2.pendingProps, + rootOrSingletonContext + ), null !== lazyComponent ? (workInProgress2.stateNode = lazyComponent, hydrationParentFiber = workInProgress2, nextHydratableInstance = getNextHydratable( + lazyComponent.firstChild + ), rootOrSingletonContext = false, init = true) : init = false; + init || throwOnHydrationMismatch(workInProgress2); + } + pushHostContext(workInProgress2); + init = workInProgress2.type; + prevState = workInProgress2.pendingProps; + nextState = null !== current ? current.memoizedProps : null; + lazyComponent = prevState.children; + shouldSetTextContent(init, prevState) ? lazyComponent = null : null !== nextState && shouldSetTextContent(init, nextState) && (workInProgress2.flags |= 32); + null !== workInProgress2.memoizedState && (init = renderWithHooks( + current, + workInProgress2, + TransitionAwareHostComponent, + null, + null, + renderLanes2 + ), HostTransitionContext._currentValue = init); + markRef(current, workInProgress2); + reconcileChildren(current, workInProgress2, lazyComponent, renderLanes2); + return workInProgress2.child; + case 6: + if (null === current && isHydrating) { + if (current = renderLanes2 = nextHydratableInstance) + renderLanes2 = canHydrateTextInstance( + renderLanes2, + workInProgress2.pendingProps, + rootOrSingletonContext + ), null !== renderLanes2 ? (workInProgress2.stateNode = renderLanes2, hydrationParentFiber = workInProgress2, nextHydratableInstance = null, current = true) : current = false; + current || throwOnHydrationMismatch(workInProgress2); + } + return null; + case 13: + return updateSuspenseComponent(current, workInProgress2, renderLanes2); + case 4: + return pushHostContainer( + workInProgress2, + workInProgress2.stateNode.containerInfo + ), lazyComponent = workInProgress2.pendingProps, null === current ? workInProgress2.child = reconcileChildFibers( + workInProgress2, + null, + lazyComponent, + renderLanes2 + ) : reconcileChildren( + current, + workInProgress2, + lazyComponent, + renderLanes2 + ), workInProgress2.child; + case 11: + return updateForwardRef( + current, + workInProgress2, + workInProgress2.type, + workInProgress2.pendingProps, + renderLanes2 + ); + case 7: + return reconcileChildren( + current, + workInProgress2, + workInProgress2.pendingProps, + renderLanes2 + ), workInProgress2.child; + case 8: + return reconcileChildren( + current, + workInProgress2, + workInProgress2.pendingProps.children, + renderLanes2 + ), workInProgress2.child; + case 12: + return reconcileChildren( + current, + workInProgress2, + workInProgress2.pendingProps.children, + renderLanes2 + ), workInProgress2.child; + case 10: + return lazyComponent = workInProgress2.pendingProps, pushProvider(workInProgress2, workInProgress2.type, lazyComponent.value), reconcileChildren( + current, + workInProgress2, + lazyComponent.children, + renderLanes2 + ), workInProgress2.child; + case 9: + return init = workInProgress2.type._context, lazyComponent = workInProgress2.pendingProps.children, prepareToReadContext(workInProgress2), init = readContext(init), lazyComponent = lazyComponent(init), workInProgress2.flags |= 1, reconcileChildren(current, workInProgress2, lazyComponent, renderLanes2), workInProgress2.child; + case 14: + return updateMemoComponent( + current, + workInProgress2, + workInProgress2.type, + workInProgress2.pendingProps, + renderLanes2 + ); + case 15: + return updateSimpleMemoComponent( + current, + workInProgress2, + workInProgress2.type, + workInProgress2.pendingProps, + renderLanes2 + ); + case 19: + return updateSuspenseListComponent(current, workInProgress2, renderLanes2); + case 31: + return lazyComponent = workInProgress2.pendingProps, renderLanes2 = workInProgress2.mode, lazyComponent = { + mode: lazyComponent.mode, + children: lazyComponent.children + }, null === current ? (renderLanes2 = mountWorkInProgressOffscreenFiber( + lazyComponent, + renderLanes2 + ), renderLanes2.ref = workInProgress2.ref, workInProgress2.child = renderLanes2, renderLanes2.return = workInProgress2, workInProgress2 = renderLanes2) : (renderLanes2 = createWorkInProgress(current.child, lazyComponent), renderLanes2.ref = workInProgress2.ref, workInProgress2.child = renderLanes2, renderLanes2.return = workInProgress2, workInProgress2 = renderLanes2), workInProgress2; + case 22: + return updateOffscreenComponent(current, workInProgress2, renderLanes2); + case 24: + return prepareToReadContext(workInProgress2), lazyComponent = readContext(CacheContext), null === current ? (init = peekCacheFromPool(), null === init && (init = workInProgressRoot, prevState = createCache(), init.pooledCache = prevState, prevState.refCount++, null !== prevState && (init.pooledCacheLanes |= renderLanes2), init = prevState), workInProgress2.memoizedState = { + parent: lazyComponent, + cache: init + }, initializeUpdateQueue(workInProgress2), pushProvider(workInProgress2, CacheContext, init)) : (0 !== (current.lanes & renderLanes2) && (cloneUpdateQueue(current, workInProgress2), processUpdateQueue(workInProgress2, null, null, renderLanes2), suspendIfUpdateReadFromEntangledAsyncAction()), init = current.memoizedState, prevState = workInProgress2.memoizedState, init.parent !== lazyComponent ? (init = { parent: lazyComponent, cache: lazyComponent }, workInProgress2.memoizedState = init, 0 === workInProgress2.lanes && (workInProgress2.memoizedState = workInProgress2.updateQueue.baseState = init), pushProvider(workInProgress2, CacheContext, lazyComponent)) : (lazyComponent = prevState.cache, pushProvider(workInProgress2, CacheContext, lazyComponent), lazyComponent !== init.cache && propagateContextChanges( + workInProgress2, + [CacheContext], + renderLanes2, + true + ))), reconcileChildren( + current, + workInProgress2, + workInProgress2.pendingProps.children, + renderLanes2 + ), workInProgress2.child; + case 29: + throw workInProgress2.pendingProps; + } + throw Error(formatProdErrorMessage(156, workInProgress2.tag)); + } + function markUpdate(workInProgress2) { + workInProgress2.flags |= 4; + } + function preloadResourceAndSuspendIfNeeded(workInProgress2, resource) { + if ("stylesheet" !== resource.type || 0 !== (resource.state.loading & 4)) + workInProgress2.flags &= -16777217; + else if (workInProgress2.flags |= 16777216, !preloadResource(resource)) { + resource = suspenseHandlerStackCursor.current; + if (null !== resource && ((workInProgressRootRenderLanes & 4194048) === workInProgressRootRenderLanes ? null !== shellBoundary : (workInProgressRootRenderLanes & 62914560) !== workInProgressRootRenderLanes && 0 === (workInProgressRootRenderLanes & 536870912) || resource !== shellBoundary)) + throw suspendedThenable = noopSuspenseyCommitThenable, SuspenseyCommitException; + workInProgress2.flags |= 8192; + } + } + function scheduleRetryEffect(workInProgress2, retryQueue) { + null !== retryQueue && (workInProgress2.flags |= 4); + workInProgress2.flags & 16384 && (retryQueue = 22 !== workInProgress2.tag ? claimNextRetryLane() : 536870912, workInProgress2.lanes |= retryQueue, workInProgressSuspendedRetryLanes |= retryQueue); + } + function cutOffTailIfNeeded(renderState, hasRenderedATailFallback) { + if (!isHydrating) + switch (renderState.tailMode) { + case "hidden": + hasRenderedATailFallback = renderState.tail; + for (var lastTailNode = null; null !== hasRenderedATailFallback; ) + null !== hasRenderedATailFallback.alternate && (lastTailNode = hasRenderedATailFallback), hasRenderedATailFallback = hasRenderedATailFallback.sibling; + null === lastTailNode ? renderState.tail = null : lastTailNode.sibling = null; + break; + case "collapsed": + lastTailNode = renderState.tail; + for (var lastTailNode$113 = null; null !== lastTailNode; ) + null !== lastTailNode.alternate && (lastTailNode$113 = lastTailNode), lastTailNode = lastTailNode.sibling; + null === lastTailNode$113 ? hasRenderedATailFallback || null === renderState.tail ? renderState.tail = null : renderState.tail.sibling = null : lastTailNode$113.sibling = null; + } + } + function bubbleProperties(completedWork) { + var didBailout = null !== completedWork.alternate && completedWork.alternate.child === completedWork.child, newChildLanes = 0, subtreeFlags = 0; + if (didBailout) + for (var child$114 = completedWork.child; null !== child$114; ) + newChildLanes |= child$114.lanes | child$114.childLanes, subtreeFlags |= child$114.subtreeFlags & 65011712, subtreeFlags |= child$114.flags & 65011712, child$114.return = completedWork, child$114 = child$114.sibling; + else + for (child$114 = completedWork.child; null !== child$114; ) + newChildLanes |= child$114.lanes | child$114.childLanes, subtreeFlags |= child$114.subtreeFlags, subtreeFlags |= child$114.flags, child$114.return = completedWork, child$114 = child$114.sibling; + completedWork.subtreeFlags |= subtreeFlags; + completedWork.childLanes = newChildLanes; + return didBailout; + } + function completeWork(current, workInProgress2, renderLanes2) { + var newProps = workInProgress2.pendingProps; + popTreeContext(workInProgress2); + switch (workInProgress2.tag) { + case 31: + case 16: + case 15: + case 0: + case 11: + case 7: + case 8: + case 12: + case 9: + case 14: + return bubbleProperties(workInProgress2), null; + case 1: + return bubbleProperties(workInProgress2), null; + case 3: + renderLanes2 = workInProgress2.stateNode; + newProps = null; + null !== current && (newProps = current.memoizedState.cache); + workInProgress2.memoizedState.cache !== newProps && (workInProgress2.flags |= 2048); + popProvider(CacheContext); + popHostContainer(); + renderLanes2.pendingContext && (renderLanes2.context = renderLanes2.pendingContext, renderLanes2.pendingContext = null); + if (null === current || null === current.child) + popHydrationState(workInProgress2) ? markUpdate(workInProgress2) : null === current || current.memoizedState.isDehydrated && 0 === (workInProgress2.flags & 256) || (workInProgress2.flags |= 1024, upgradeHydrationErrorsToRecoverable()); + bubbleProperties(workInProgress2); + return null; + case 26: + return renderLanes2 = workInProgress2.memoizedState, null === current ? (markUpdate(workInProgress2), null !== renderLanes2 ? (bubbleProperties(workInProgress2), preloadResourceAndSuspendIfNeeded(workInProgress2, renderLanes2)) : (bubbleProperties(workInProgress2), workInProgress2.flags &= -16777217)) : renderLanes2 ? renderLanes2 !== current.memoizedState ? (markUpdate(workInProgress2), bubbleProperties(workInProgress2), preloadResourceAndSuspendIfNeeded(workInProgress2, renderLanes2)) : (bubbleProperties(workInProgress2), workInProgress2.flags &= -16777217) : (current.memoizedProps !== newProps && markUpdate(workInProgress2), bubbleProperties(workInProgress2), workInProgress2.flags &= -16777217), null; + case 27: + popHostContext(workInProgress2); + renderLanes2 = rootInstanceStackCursor.current; + var type = workInProgress2.type; + if (null !== current && null != workInProgress2.stateNode) + current.memoizedProps !== newProps && markUpdate(workInProgress2); + else { + if (!newProps) { + if (null === workInProgress2.stateNode) + throw Error(formatProdErrorMessage(166)); + bubbleProperties(workInProgress2); + return null; + } + current = contextStackCursor.current; + popHydrationState(workInProgress2) ? prepareToHydrateHostInstance(workInProgress2) : (current = resolveSingletonInstance(type, newProps, renderLanes2), workInProgress2.stateNode = current, markUpdate(workInProgress2)); + } + bubbleProperties(workInProgress2); + return null; + case 5: + popHostContext(workInProgress2); + renderLanes2 = workInProgress2.type; + if (null !== current && null != workInProgress2.stateNode) + current.memoizedProps !== newProps && markUpdate(workInProgress2); + else { + if (!newProps) { + if (null === workInProgress2.stateNode) + throw Error(formatProdErrorMessage(166)); + bubbleProperties(workInProgress2); + return null; + } + current = contextStackCursor.current; + if (popHydrationState(workInProgress2)) + prepareToHydrateHostInstance(workInProgress2); + else { + type = getOwnerDocumentFromRootContainer( + rootInstanceStackCursor.current + ); + switch (current) { + case 1: + current = type.createElementNS( + "http://www.w3.org/2000/svg", + renderLanes2 + ); + break; + case 2: + current = type.createElementNS( + "http://www.w3.org/1998/Math/MathML", + renderLanes2 + ); + break; + default: + switch (renderLanes2) { + case "svg": + current = type.createElementNS( + "http://www.w3.org/2000/svg", + renderLanes2 + ); + break; + case "math": + current = type.createElementNS( + "http://www.w3.org/1998/Math/MathML", + renderLanes2 + ); + break; + case "script": + current = type.createElement("div"); + current.innerHTML = " + + diff --git a/dist/popup.js b/dist/popup.js new file mode 100644 index 0000000..096be96 --- /dev/null +++ b/dist/popup.js @@ -0,0 +1,93 @@ +// Extension state management +let extensionEnabled = true; + +// Initialize extension state on load +document.addEventListener('DOMContentLoaded', function() { + // Load saved state (default to enabled) + extensionEnabled = true; + updateUI(); + updateVersion(); + loadDynamicIcon(); + + // Add event listeners + const extensionToggle = document.getElementById('extensionToggle'); + if (extensionToggle) { + extensionToggle.addEventListener('click', toggleExtension); + } + + // Add click listeners to all rule cards + const ruleCards = document.querySelectorAll('.interzept-rule'); + ruleCards.forEach(card => { + card.addEventListener('click', () => { + openInterzept(); + }); + }); + + // Add click listeners to all open buttons + const openButtons = document.querySelectorAll('.interzept-btn-primary'); + openButtons.forEach(button => { + button.addEventListener('click', () => openInterzept()); + }); +}); + +function toggleExtension() { + extensionEnabled = !extensionEnabled; + updateUI(); +} + +function updateUI() { + const toggle = document.getElementById('extensionToggle'); + const statusBadge = document.querySelector('.interzept-status'); + const statusText = statusBadge.querySelector('span'); + const statusDot = document.querySelector('.interzept-status-dot'); + + if (extensionEnabled) { + toggle.classList.add('active'); + statusBadge.style.background = 'rgba(34, 211, 238, 0.1)'; + statusBadge.style.borderColor = 'rgba(34, 211, 238, 0.2)'; + statusBadge.style.color = '#22d3ee'; + statusDot.style.background = '#22d3ee'; + statusText.textContent = 'Ready'; + } else { + toggle.classList.remove('active'); + statusBadge.style.background = 'rgba(100, 116, 139, 0.1)'; + statusBadge.style.borderColor = 'rgba(100, 116, 139, 0.2)'; + statusBadge.style.color = '#64748b'; + statusDot.style.background = '#64748b'; + statusText.textContent = 'Disabled'; + } +} + +function openInterzept() { + // Open the extension's options page + chrome.runtime.openOptionsPage(); + window.close(); +} + +function updateVersion() { + // Get version from manifest and update display + const manifest = chrome.runtime.getManifest(); + const versionElement = document.querySelector('.interzept-version'); + if (versionElement && manifest.version) { + versionElement.textContent = `v${manifest.version}`; + } +} + +function loadDynamicIcon() { + // Load icon dynamically from manifest + const manifest = chrome.runtime.getManifest(); + const logoImage = document.getElementById('logoImage'); + + if (logoImage && manifest.action && manifest.action.default_icon) { + // Use the largest available icon (128px) or fallback to 48px + const iconPath = manifest.action.default_icon['128'] || + manifest.action.default_icon['48'] || + manifest.action.default_icon['16']; + + if (iconPath) { + // Use chrome.runtime.getURL for proper extension resource URL + const iconUrl = chrome.runtime.getURL(iconPath); + logoImage.src = iconUrl; + } + } +} diff --git a/icons/icon128.png b/icons/icon128.png new file mode 100644 index 0000000000000000000000000000000000000000..59dfa55302d5cc0735de3828dd13359db9ca4bb9 GIT binary patch literal 20461 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 literal 0 HcmV?d00001 diff --git a/icons/icon16.png b/icons/icon16.png new file mode 100644 index 0000000000000000000000000000000000000000..10e5aae26d3ddd3280b185d5eba7ea641c519e81 GIT binary patch literal 889 zcmV-<1BU#GP)upzEuj{%qvomu}XI962>kL1fnfbr}{v(JJynW+{!AKRL&mgh} zT23zLlSzR1D9ExOn8N@}0Ky0mE`%tG&!>GFxN_(&247U4hKh~%acqKvLy-#wun?$t z(2;=H;+7VWE$$8i5&wt{Kvfmkx3+7NKR4^d^w1#ZlHVl5@ejbL;`-qZB07`{5e6v& zBOGi6qGU6}a^$?l+okdTn5nGGMYZ$i_2}V)SK&WrP0etZlQ08;a51)Ry0%lI z;D*M*Dk|P99Xr`5!uR{aE09~@*Q+1aLL?%x7fK?IlGap@`72(uU{wg)D$)H$C8DZ+ zZgG)B!g|y#AdoJdfmOg^Rfdmp_iZlqYGaGcnRbQ3jr}csglmSn#a5NzKVi z^i+jsJipPSW@I!!uxtr$*&#G%B82%x+kC$1R`!yzbLMz=Jt1Sm^&VW_n2I{RQ+Zle zVR{z!Kzn|nbu^jmjx|F**MW-qRKF2T7KkyXgi(tnN83pnLq5gz| P00000NkvXXu0mjfP%V@t literal 0 HcmV?d00001 diff --git a/icons/icon48.png b/icons/icon48.png new file mode 100644 index 0000000000000000000000000000000000000000..0f197d036c961abd65a82168ce5e0fd6df7e5b70 GIT binary patch literal 4418 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"], + "background": { + "service_worker": "background.js" + }, + "content_scripts": [ + { + "matches": [""], + "js": ["content.js"], + "run_at": "document_start" + } + ], "action": { "default_popup": "popup.html", "default_icon": { @@ -12,6 +23,7 @@ "128": "icons/interzept128.png" } }, + "options_page": "options.html", "icons": { "16": "icons/interzept16.png", "48": "icons/interzept48.png", diff --git a/package.json b/package.json index 6de0fc8..80c2419 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,15 @@ { - "name": "my-v0-project", - "version": "0.1.0", + "name": "interzept-extension", + "version": "25.6.4", "private": true, "scripts": { "dev": "vite", "build": "vite build", + "build:extension": "npm run build && npm run copy:extension", + "build:fast": "vite build --minify false && npm run copy:extension", + "copy:extension": "node scripts/prepare-extension.js", + "watch:extension": "nodemon --watch src --watch *.js --watch *.html --watch manifest.json -e tsx,ts,js,html,json --exec \"npm run build:fast\"", + "dev:help": "node scripts/dev-helper.js", "preview": "vite preview", "lint": "eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0" }, @@ -61,6 +66,7 @@ "@types/react": "^19", "@types/react-dom": "^19", "@vitejs/plugin-react": "^4.5.1", + "nodemon": "^3.1.10", "postcss": "^8", "react-dom": "^19", "tailwindcss": "^3.4.17", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c135ab0..7d4d36f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -159,6 +159,9 @@ importers: '@vitejs/plugin-react': specifier: ^4.5.1 version: 4.5.1(vite@6.3.5(@types/node@22.15.29)(jiti@1.21.7)(yaml@2.8.0)) + nodemon: + specifier: ^3.1.10 + version: 3.1.10 postcss: specifier: ^8 version: 8.5.4 @@ -1338,6 +1341,9 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} @@ -1385,6 +1391,9 @@ packages: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} @@ -1570,10 +1579,17 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + ignore-by-default@1.0.1: + resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} + input-otp@1.4.1: resolution: {integrity: sha512-+yvpmKYKHi9jIGngxagY9oWiiblPB7+nEO75F2l2o4vs+6vpPZZmUl4tBNYuTCvQjhvEIbdNeJu70bhfYP2nbw==} peerDependencies: @@ -1664,6 +1680,9 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} @@ -1686,6 +1705,11 @@ packages: node-releases@2.0.19: resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + nodemon@3.1.10: + resolution: {integrity: sha512-WDjw3pJ0/0jMFmyNDp3gvY2YizjLmmOUQo6DEBY+JgdvW/yQ9mEeSw6H5ythl5Ny2ytb7f9C2nIbjSxMNzbJXw==} + engines: {node: '>=10'} + hasBin: true + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -1779,6 +1803,9 @@ packages: prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + pstree.remy@1.1.8: + resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -1902,6 +1929,11 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true + semver@7.7.2: + resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} + engines: {node: '>=10'} + hasBin: true + shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -1914,6 +1946,10 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} + simple-update-notifier@2.0.0: + resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} + engines: {node: '>=10'} + sonner@1.7.4: resolution: {integrity: sha512-DIS8z4PfJRbIyfVFDVnK9rO3eYDtse4Omcm6bt0oEr5/jtLgysmjuBl1frJ9E/EQZrFmKx2A8m/s5s9CRXIzhw==} peerDependencies: @@ -1945,6 +1981,10 @@ packages: engines: {node: '>=16 || 14 >=14.17'} hasBin: true + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -1980,6 +2020,10 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + touch@3.1.1: + resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} + hasBin: true + ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} @@ -1991,6 +2035,9 @@ packages: engines: {node: '>=14.17'} hasBin: true + undefsafe@2.0.5: + resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} + undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} @@ -2131,7 +2178,7 @@ snapshots: '@babel/traverse': 7.27.4 '@babel/types': 7.27.3 convert-source-map: 2.0.0 - debug: 4.4.1 + debug: 4.4.1(supports-color@5.5.0) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -2212,7 +2259,7 @@ snapshots: '@babel/parser': 7.27.5 '@babel/template': 7.27.2 '@babel/types': 7.27.3 - debug: 4.4.1 + debug: 4.4.1(supports-color@5.5.0) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -3221,6 +3268,11 @@ snapshots: binary-extensions@2.3.0: {} + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + brace-expansion@2.0.1: dependencies: balanced-match: 1.0.2 @@ -3278,6 +3330,8 @@ snapshots: commander@4.1.1: {} + concat-map@0.0.1: {} + convert-source-map@2.0.0: {} cross-spawn@7.0.6: @@ -3330,9 +3384,11 @@ snapshots: date-fns@4.1.0: {} - debug@4.4.1: + debug@4.4.1(supports-color@5.5.0): dependencies: ms: 2.1.3 + optionalDependencies: + supports-color: 5.5.0 decimal.js-light@2.5.1: {} @@ -3456,10 +3512,14 @@ snapshots: globals@11.12.0: {} + has-flag@3.0.0: {} + hasown@2.0.2: dependencies: function-bind: 1.1.2 + ignore-by-default@1.0.1: {} + input-otp@1.4.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 @@ -3528,6 +3588,10 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 @@ -3546,6 +3610,19 @@ snapshots: node-releases@2.0.19: {} + nodemon@3.1.10: + dependencies: + chokidar: 3.6.0 + debug: 4.4.1(supports-color@5.5.0) + ignore-by-default: 1.0.1 + minimatch: 3.1.2 + pstree.remy: 1.1.8 + semver: 7.7.2 + simple-update-notifier: 2.0.0 + supports-color: 5.5.0 + touch: 3.1.1 + undefsafe: 2.0.5 + normalize-path@3.0.0: {} normalize-range@0.1.2: {} @@ -3618,6 +3695,8 @@ snapshots: object-assign: 4.1.1 react-is: 16.13.1 + pstree.remy@1.1.8: {} + queue-microtask@1.2.3: {} react-day-picker@8.10.1(date-fns@4.1.0)(react@19.1.0): @@ -3758,6 +3837,8 @@ snapshots: semver@6.3.1: {} + semver@7.7.2: {} + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 @@ -3766,6 +3847,10 @@ snapshots: signal-exit@4.1.0: {} + simple-update-notifier@2.0.0: + dependencies: + semver: 7.7.2 + sonner@1.7.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 @@ -3803,6 +3888,10 @@ snapshots: pirates: 4.0.7 ts-interface-checker: 0.1.13 + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + supports-preserve-symlinks-flag@1.0.0: {} tailwind-merge@2.6.0: {} @@ -3857,12 +3946,16 @@ snapshots: dependencies: is-number: 7.0.0 + touch@3.1.1: {} + ts-interface-checker@0.1.13: {} tslib@2.8.1: {} typescript@5.8.3: {} + undefsafe@2.0.5: {} + undici-types@6.21.0: {} update-browserslist-db@1.1.3(browserslist@4.25.0): diff --git a/popup.js b/popup.js index 75de77b..096be96 100644 --- a/popup.js +++ b/popup.js @@ -59,8 +59,8 @@ function updateUI() { } function openInterzept() { - // Simple redirect to Interzept website - chrome.tabs.create({ url: 'https://interzept.dev/' }); + // Open the extension's options page + chrome.runtime.openOptionsPage(); window.close(); } diff --git a/scripts/dev-helper.js b/scripts/dev-helper.js new file mode 100644 index 0000000..63dbe28 --- /dev/null +++ b/scripts/dev-helper.js @@ -0,0 +1,58 @@ +#!/usr/bin/env node + +/** + * Development helper for Chrome Extension + * This script provides useful development commands + */ + +const { execSync } = require('child_process'); +const fs = require('fs'); +const path = require('path'); + +function showHelp() { + console.log(` +๐Ÿ”ง Interzept Extension Development Helper + +Available commands: + npm run build:fast - Quick build (no minification) + npm run watch:extension - Auto-rebuild on file changes + +๐Ÿš€ Quick Setup: + 1. Run: npm run build:extension + 2. Load dist/ folder in Chrome extensions + 3. For development: npm run watch:extension + 4. Make changes and the extension will auto-rebuild + 5. Click reload button in Chrome extensions page + +๐Ÿ’ก Tips: + - Use Ctrl+R in extension popup to see changes + - Use F12 in options page to debug React app + - Check Chrome DevTools > Extensions for background script logs + - Use chrome://extensions/ to manage your extension + `); +} + +function checkDistFolder() { + const distPath = path.join(__dirname, '../dist'); + if (fs.existsSync(distPath)) { + console.log('โœ… dist/ folder exists and ready for Chrome'); + console.log('๐Ÿ“‚ Load this folder in Chrome: ' + distPath); + } else { + console.log('โŒ dist/ folder not found. Run: npm run build:extension'); + } +} + +const command = process.argv[2]; + +switch (command) { + case 'help': + case '--help': + case '-h': + showHelp(); + break; + case 'check': + checkDistFolder(); + break; + default: + showHelp(); +} diff --git a/scripts/prepare-extension.js b/scripts/prepare-extension.js index e69de29..20e7965 100644 --- a/scripts/prepare-extension.js +++ b/scripts/prepare-extension.js @@ -0,0 +1,74 @@ +const fs = require('fs'); +const path = require('path'); + +// Copy extension files to dist +const copyFile = (src, dest) => { + const destDir = path.dirname(dest); + if (!fs.existsSync(destDir)) { + fs.mkdirSync(destDir, { recursive: true }); + } + fs.copyFileSync(src, dest); + console.log(`Copied: ${src} -> ${dest}`); +}; + +// Move file function +const moveFile = (src, dest) => { + if (fs.existsSync(src)) { + const destDir = path.dirname(dest); + if (!fs.existsSync(destDir)) { + fs.mkdirSync(destDir, { recursive: true }); + } + fs.renameSync(src, dest); + console.log(`Moved: ${src} -> ${dest}`); + } +}; + +// Files to copy to dist for the extension +const filesToCopy = [ + { src: 'manifest.json', dest: 'dist/manifest.json' }, + { src: 'popup.html', dest: 'dist/popup.html' }, + { src: 'popup.js', dest: 'dist/popup.js' }, + { src: 'background.js', dest: 'dist/background.js' }, + { src: 'content.js', dest: 'dist/content.js' } +]; + +// Copy icon files +const iconFiles = [ + { src: 'icons/interzept16.png', dest: 'dist/icons/interzept16.png' }, + { src: 'icons/interzept48.png', dest: 'dist/icons/interzept48.png' }, + { src: 'icons/interzept128.png', dest: 'dist/icons/interzept128.png' } +]; + +console.log('๐Ÿ”ง Preparing Chrome Extension...'); + +// Copy main files +filesToCopy.forEach(({ src, dest }) => { + if (fs.existsSync(src)) { + copyFile(src, dest); + } else { + console.log(`โš ๏ธ Warning: ${src} not found`); + } +}); + +// Copy icons +iconFiles.forEach(({ src, dest }) => { + if (fs.existsSync(src)) { + copyFile(src, dest); + } else { + console.log(`โš ๏ธ Warning: ${src} not found`); + } +}); + +// Move the options.html to the correct location +if (fs.existsSync('dist/src/options/index.html')) { + moveFile('dist/src/options/index.html', 'dist/options.html'); + + // Clean up the entire src directory structure + if (fs.existsSync('dist/src')) { + fs.rmSync('dist/src', { recursive: true, force: true }); + console.log('๐Ÿงน Cleaned up unnecessary src/ folder from extension'); + } +} + +console.log('โœ… Chrome Extension prepared in dist/ folder'); +console.log('๐Ÿ’ก Load the dist/ folder as an unpacked extension in Chrome'); \ No newline at end of file diff --git a/src/options/Options.tsx b/src/options/Options.tsx new file mode 100644 index 0000000..5bce093 --- /dev/null +++ b/src/options/Options.tsx @@ -0,0 +1,954 @@ +import React, { useState, useEffect, useCallback } from "react"; +import { Tabs, TabsContent, TabsList, TabsTrigger } from "../../components/ui/tabs"; +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "../../components/ui/card"; +import { Button } from "../../components/ui/button"; +import { Input } from "../../components/ui/input"; +import { Label } from "../../components/ui/label"; +import { + PlusCircle, + Trash2, + Save, + Globe, + ArrowRight, + FileJson, + Heading as Headers, + Search, + Download, + Upload, + Zap, +} from "lucide-react"; +import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "../../components/ui/select"; +import { Textarea } from "../../components/ui/textarea"; +import { ThemeProvider } from "../../components/theme-provider"; +import "../../styles/globals.css"; + +// Set page title +document.title = "Interzept Options - API Request Interceptor"; + +// Types +interface Rule { + id: string; + name: string; + type: "overrides" | "redirect" | "headers"; + enabled: boolean; + source: string; + destination?: string; + responseBody?: string; + responseCode?: number; + responseHeaders?: { name: string; value: string }[]; + headers?: { name: string; value: string; operation: string }[]; + description?: string; +} + +// Utility functions +const isMobile = () => { + if (typeof window === "undefined") return false; + return ( + /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || + window.innerWidth < 768 + ); +}; + +// Environment detection and Chrome API handling +declare global { + interface Window { + chrome?: any; + } +} + +const isExtensionEnvironment = () => { + return typeof window !== 'undefined' && + typeof window.chrome !== 'undefined' && + window.chrome.runtime && + window.chrome.runtime.id; +}; + +// Mock chrome APIs for standalone development +const mockChrome = { + storage: { + local: { + get: (keys: any) => Promise.resolve({}), + set: (items: any) => Promise.resolve(), + } + }, + runtime: { + sendMessage: (message: any) => Promise.resolve(), + } +}; + +// Use real chrome API in extension, mock in standalone +const chromeAPI = isExtensionEnvironment() ? window.chrome : mockChrome; + +// Rule Templates +const ruleTemplates = { + "api-mock": { + name: "API Mock Response", + type: "overrides" as const, + enabled: true, + source: "*/api/users", + responseBody: '{\n "success": true,\n "data": [\n {"id": 1, "name": "John Doe"},\n {"id": 2, "name": "Jane Smith"}\n ]\n}', + responseCode: 200, + responseHeaders: [{ name: "Content-Type", value: "application/json" }], + description: "Mock API response with sample user data", + }, + "cors-bypass": { + name: "CORS Bypass Headers", + type: "headers" as const, + enabled: true, + source: "*/api/*", + headers: [ + { name: "Access-Control-Allow-Origin", value: "*", operation: "add" }, + { name: "Access-Control-Allow-Methods", value: "GET, POST, PUT, DELETE", operation: "add" }, + { name: "Access-Control-Allow-Headers", value: "Content-Type, Authorization", operation: "add" }, + ], + description: "Add CORS headers to bypass restrictions", + }, + "auth-header": { + name: "Authorization Header", + type: "headers" as const, + enabled: true, + source: "*/api/*", + headers: [{ name: "Authorization", value: "Bearer your-token-here", operation: "add" }], + description: "Automatically add authorization header to requests", + }, + "redirect-prod": { + name: "Production to Development", + type: "redirect" as const, + enabled: true, + source: "https://api.production.com/*", + destination: "http://localhost:3000/*", + description: "Redirect production API calls to local development server", + }, +}; + +// Mobile Not Supported Component +const MobileNotSupported = () => ( +
+
+
+ Interzept +

Interzept

+
+ +
+

Desktop Only

+

+ Interzept is a browser extension designed for desktop development workflows. Mobile browsers don't support the + extension APIs needed for request interception. +

+

Please visit this page on a desktop browser to use Interzept.

+
+ + +
+
+); + +// Main Component +export default function App() { + const [rules, setRules] = useState([]); + const [filteredRules, setFilteredRules] = useState([]); + const [searchQuery, setSearchQuery] = useState(""); + const [editMode, setEditMode] = useState(false); + const [activeRule, setActiveRule] = useState(null); + const [lockedTab, setLockedTab] = useState(null); + + // Filter rules based on search + useEffect(() => { + if (searchQuery) { + const filtered = rules.filter( + (rule) => + rule.name.toLowerCase().includes(searchQuery.toLowerCase()) || + rule.description?.toLowerCase().includes(searchQuery.toLowerCase()) || + rule.source.toLowerCase().includes(searchQuery.toLowerCase()), + ); + setFilteredRules(filtered); + } else { + setFilteredRules(rules); + } + }, [rules, searchQuery]); + + // Load rules from localStorage when component mounts + useEffect(() => { + const savedRules = localStorage.getItem("interzept-rules"); + if (savedRules) { + try { + const parsedRules = JSON.parse(savedRules); + setRules(parsedRules); + } catch (error) { + console.error("Error loading saved rules:", error); + } + } + }, []); + + // Save rules to localStorage when they change + useEffect(() => { + localStorage.setItem("interzept-rules", JSON.stringify(rules)); + }, [rules]); + + const handleRuleToggle = (id: string) => { + const rule = rules.find((r) => r.id === id); + if (rule && rule.type !== "overrides") { + return; // Don't allow toggling non-override rules + } + setRules(rules.map((rule) => (rule.id === id ? { ...rule, enabled: !rule.enabled } : rule))); + }; + + const handleDeleteRule = (id: string) => { + setRules(rules.filter((rule) => rule.id !== id)); + }; + + const handleEditRule = (rule: Rule) => { + setActiveRule(rule); + setEditMode(true); + setLockedTab(null); // Allow free tab switching for existing rules + }; + + const handleNewRule = () => { + const newRule: Rule = { + id: Date.now().toString(), + name: "New Rule", + type: "overrides", + enabled: true, + source: "", + responseBody: '{\n "success": true,\n "data": {}\n}', + responseCode: 200, + responseHeaders: [{ name: "Content-Type", value: "application/json" }], + description: "", + }; + setActiveRule(newRule); + setEditMode(true); + setLockedTab(null); // Allow free tab switching for manual rules + }; + const createRuleFromTemplate = (templateId: string) => { + const template = ruleTemplates[templateId as keyof typeof ruleTemplates]; + if (!template) return; + + const newRule: Rule = { + id: Date.now().toString(), + ...template, + }; + setActiveRule(newRule); + setEditMode(true); + + // Lock the tab to match template type - don't allow switching + setLockedTab(template.type); + + // Navigate to the correct tab immediately + setTimeout(() => { + const tabTrigger = document.querySelector(`[value="${template.type}"]`); + if (tabTrigger) { + (tabTrigger as HTMLElement).click(); + } + }, 0); + }; + + const saveRule = () => { + if (!activeRule) return; + + // Prevent saving non-override rules + if (activeRule.type !== "overrides") { + alert("Only Override rules can be saved at this time. Redirect and Headers features are coming soon!"); + return; + } + + // Check if this is a new rule or an edit + const isNewRule = !rules.some((rule) => rule.id === activeRule.id); + + if (isNewRule) { + setRules([...rules, activeRule]); + } else { + setRules(rules.map((rule) => (rule.id === activeRule.id ? activeRule : rule))); + } + + setEditMode(false); + setActiveRule(null); + setLockedTab(null); + }; + + const updateActiveRule = (field: string, value: any) => { + if (!activeRule) return; + setActiveRule({ + ...activeRule, + [field]: value, + }); + }; + + const updateNestedField = (parentField: string, index: number, field: string, value: any) => { + if (!activeRule || !activeRule[parentField as keyof Rule]) return; + + const updatedArray = [...(activeRule[parentField as keyof Rule] as any[])]; + updatedArray[index] = { + ...updatedArray[index], + [field]: value, + }; + + setActiveRule({ + ...activeRule, + [parentField]: updatedArray, + }); + }; + + const addHeader = () => { + if (!activeRule) return; + + const headers = activeRule.headers || []; + setActiveRule({ + ...activeRule, + headers: [...headers, { name: "", value: "", operation: "add" }], + }); + }; + + const removeHeader = (index: number) => { + if (!activeRule || !activeRule.headers) return; + + const headers = [...activeRule.headers]; + headers.splice(index, 1); + + setActiveRule({ + ...activeRule, + headers: headers, + }); + }; + + const exportRules = () => { + const dataStr = JSON.stringify(rules, null, 2); + const dataBlob = new Blob([dataStr], { type: "application/json" }); + const url = URL.createObjectURL(dataBlob); + + const link = document.createElement("a"); + link.href = url; + link.download = `interzept-rules-${new Date().toISOString().split("T")[0]}.json`; + link.click(); + + URL.revokeObjectURL(url); + }; + + const importRules = (event: React.ChangeEvent) => { + const file = event.target.files?.[0]; + if (!file) return; + + const reader = new FileReader(); + reader.onload = (e) => { + try { + const importedRules = JSON.parse(e.target?.result as string); + if (Array.isArray(importedRules)) { + const maxId = Math.max(0, ...rules.map((r) => parseInt(r.id))); + const newRules = importedRules.map((rule: any, index: number) => ({ + ...rule, + id: (maxId + index + 1).toString(), + })); + + setRules([...rules, ...newRules]); + alert(`Successfully imported ${newRules.length} rules!`); + } else { + alert("Invalid file format. Please select a valid JSON file."); + } + } catch (error) { + alert("Error parsing file. Please select a valid JSON file."); + } + }; + reader.readAsText(file); + event.target.value = ""; + }; + + const getRuleTypeIcon = (type: string) => { + switch (type) { + case "redirect": + return ; + case "headers": + return ; + case "overrides": + return ; + default: + return ; + } + }; + + // Replace the existing return statement with: + if (isMobile()) { + return ; + } + + return ( + +
+ {/* Header */} +
+
+
+
+
+ Interzept + Interzept +
+ + {/* Search */} +
+ + setSearchQuery(e.target.value)} + onClick={exportRules} + className="border-slate-600 text-slate-300 hover:bg-slate-700 hover:text-slate-100" + > + + Export + + + + + + +
+
+
+
+ + {/* Main Content */} +
+
+
+ {/* Rules List */} +
+ + + + + Rules ({filteredRules.length}) + + Manage your API interception rules + + +
+ {filteredRules.map((rule) => ( +
handleEditRule(rule)} + > +
+
+
+ {getRuleTypeIcon(rule.type)} +
+
+
+ {rule.name} +
+
+ {rule.type === "overrides" + ? "Response Override" + : rule.type === "redirect" + ? "URL Redirect" + : "Header Modification"} +
+ {rule.description && ( +
{rule.description}
+ )} +
+
+
+ + +
+
+
+ ))} + {filteredRules.length === 0 && ( +
+ {searchQuery + ? "No rules match your search." + : 'No rules created yet. Click "New Rule" to get started.'} +
+ )} +
+
+
+
+ + {/* Rule Editor */} +
+ {editMode && activeRule ? ( + + + + {rules.some((r) => r.id === activeRule.id) ? "Edit Rule" : "Create New Rule"} + + + Configure how API requests should be intercepted and modified + + + + updateActiveRule("type", value)} + className="space-y-6" + > +
+
+
+ + updateActiveRule("name", e.target.value)} + className="bg-slate-700 border-slate-600 text-slate-100 focus:border-cyan-400 focus:ring-cyan-400/20" + /> +
+
+ + +
+
+ +
+ + + updateActiveRule("type", "overrides")} + disabled={!!(lockedTab && lockedTab !== "overrides")} + className="data-[state=active]:bg-cyan-500 data-[state=active]:text-slate-900 disabled:opacity-50 disabled:cursor-not-allowed" + > + Overrides + updateActiveRule("type", "redirect")} + disabled={!!(lockedTab && lockedTab !== "redirect")} + className="data-[state=active]:bg-cyan-500 data-[state=active]:text-slate-900 disabled:opacity-50 disabled:cursor-not-allowed" + > + Redirect + + updateActiveRule("type", "headers")} + disabled={!!(lockedTab && lockedTab !== "headers")} + className="data-[state=active]:bg-cyan-500 data-[state=active]:text-slate-900 disabled:opacity-50 disabled:cursor-not-allowed" + > + Headers + + + {lockedTab && ( +

+ Template selected - rule type is locked to {lockedTab} +

+ )} +
+ +
+ + updateActiveRule("source", e.target.value)} + placeholder="https://example.com/*" + className="bg-slate-700 border-slate-600 text-slate-100 focus:border-cyan-400 focus:ring-cyan-400/20" + /> +

+ Use * as wildcard, e.g., https://api.example.com/* matches all paths +

+
+ +
+ + updateActiveRule("description", e.target.value)} + className="bg-slate-700 border-slate-600 text-slate-100 focus:border-cyan-400 focus:ring-cyan-400/20" + /> +
+
+ + +
+ +
+ updateActiveRule("destination", e.target.value)} + placeholder="https://new-example.com/$1" + disabled={true} + className="bg-slate-700/50 border-slate-600 text-slate-400 focus:border-cyan-400 focus:ring-cyan-400/20 cursor-not-allowed" + /> + +
+

+ Use $1, $2, etc. to reference captured groups from the source URL +

+
+

+ ๐Ÿšง URL Redirection feature is coming soon! Stay tuned for updates. +

+
+
+
+ + +
+
+ + +
+ + {activeRule.headers && + activeRule.headers.map((header, index) => ( +
+
+ +
+
+ updateNestedField("headers", index, "name", e.target.value)} + placeholder="Header name" + disabled={true} + className="bg-slate-700/50 border-slate-600 text-slate-400 focus:border-cyan-400 focus:ring-cyan-400/20 cursor-not-allowed" + /> +
+
+ updateNestedField("headers", index, "value", e.target.value)} + placeholder="Header value" + disabled={true} + className="bg-slate-700/50 border-slate-600 text-slate-400 focus:border-cyan-400 focus:ring-cyan-400/20 cursor-not-allowed" + /> +
+
+ +
+
+ ))} + +
+

+ ๐Ÿšง Header Modification feature is coming soon! Stay tuned for updates. +

+
+
+
+ + +
+
+ + updateActiveRule("responseCode", Number.parseInt(e.target.value))} + className="bg-slate-700 border-slate-600 text-slate-100 focus:border-cyan-400 focus:ring-cyan-400/20" + /> +
+
+ + +
+
+ +
+ +