agentdog 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -4
- package/dist/ai-gateway/auth.d.ts.map +1 -1
- package/dist/ai-gateway/auth.js +7 -1
- package/dist/ai-gateway/auth.js.map +1 -1
- package/dist/ai-gateway/auth.test.js +11 -4
- package/dist/ai-gateway/auth.test.js.map +1 -1
- package/dist/ai-gateway/call-log.d.ts +18 -0
- package/dist/ai-gateway/call-log.d.ts.map +1 -0
- package/dist/ai-gateway/call-log.js +136 -0
- package/dist/ai-gateway/call-log.js.map +1 -0
- package/dist/ai-gateway/call-log.test.d.ts +2 -0
- package/dist/ai-gateway/call-log.test.d.ts.map +1 -0
- package/dist/ai-gateway/call-log.test.js +136 -0
- package/dist/ai-gateway/call-log.test.js.map +1 -0
- package/dist/ai-gateway/count-tokens.d.ts.map +1 -1
- package/dist/ai-gateway/count-tokens.js +11 -1
- package/dist/ai-gateway/count-tokens.js.map +1 -1
- package/dist/ai-gateway/dialects.d.ts +1 -0
- package/dist/ai-gateway/dialects.d.ts.map +1 -1
- package/dist/ai-gateway/dialects.js +7 -0
- package/dist/ai-gateway/dialects.js.map +1 -1
- package/dist/ai-gateway/gateway-server.d.ts +2 -3
- package/dist/ai-gateway/gateway-server.d.ts.map +1 -1
- package/dist/ai-gateway/gateway-server.js +183 -67
- package/dist/ai-gateway/gateway-server.js.map +1 -1
- package/dist/ai-gateway/integration.test.js +237 -3
- package/dist/ai-gateway/integration.test.js.map +1 -1
- package/dist/ai-gateway/ir/anthropic-out.d.ts +15 -0
- package/dist/ai-gateway/ir/anthropic-out.d.ts.map +1 -0
- package/dist/ai-gateway/ir/anthropic-out.js +173 -0
- package/dist/ai-gateway/ir/anthropic-out.js.map +1 -0
- package/dist/ai-gateway/ir/anthropic-out.test.d.ts +2 -0
- package/dist/ai-gateway/ir/anthropic-out.test.d.ts.map +1 -0
- package/dist/ai-gateway/ir/anthropic-out.test.js +173 -0
- package/dist/ai-gateway/ir/anthropic-out.test.js.map +1 -0
- package/dist/ai-gateway/ir/openai-in.d.ts +3 -0
- package/dist/ai-gateway/ir/openai-in.d.ts.map +1 -0
- package/dist/ai-gateway/ir/openai-in.js +133 -0
- package/dist/ai-gateway/ir/openai-in.js.map +1 -0
- package/dist/ai-gateway/ir/openai-in.test.d.ts +2 -0
- package/dist/ai-gateway/ir/openai-in.test.d.ts.map +1 -0
- package/dist/ai-gateway/ir/openai-in.test.js +108 -0
- package/dist/ai-gateway/ir/openai-in.test.js.map +1 -0
- package/dist/ai-gateway/ir/openai-sse.d.ts +22 -0
- package/dist/ai-gateway/ir/openai-sse.d.ts.map +1 -0
- package/dist/ai-gateway/ir/openai-sse.js +166 -0
- package/dist/ai-gateway/ir/openai-sse.js.map +1 -0
- package/dist/ai-gateway/ir/openai-sse.test.d.ts +2 -0
- package/dist/ai-gateway/ir/openai-sse.test.d.ts.map +1 -0
- package/dist/ai-gateway/ir/openai-sse.test.js +119 -0
- package/dist/ai-gateway/ir/openai-sse.test.js.map +1 -0
- package/dist/ai-gateway/ir-channel.d.ts +14 -1
- package/dist/ai-gateway/ir-channel.d.ts.map +1 -1
- package/dist/ai-gateway/ir-channel.js +52 -11
- package/dist/ai-gateway/ir-channel.js.map +1 -1
- package/dist/ai-gateway/model-router.d.ts.map +1 -1
- package/dist/ai-gateway/model-router.js +3 -0
- package/dist/ai-gateway/model-router.js.map +1 -1
- package/dist/ai-gateway/model-router.test.js +10 -0
- package/dist/ai-gateway/model-router.test.js.map +1 -1
- package/dist/ai-gateway/models-list.d.ts +9 -0
- package/dist/ai-gateway/models-list.d.ts.map +1 -0
- package/dist/ai-gateway/models-list.js +42 -0
- package/dist/ai-gateway/models-list.js.map +1 -0
- package/dist/ai-gateway/models-list.test.d.ts +2 -0
- package/dist/ai-gateway/models-list.test.d.ts.map +1 -0
- package/dist/ai-gateway/models-list.test.js +47 -0
- package/dist/ai-gateway/models-list.test.js.map +1 -0
- package/dist/ai-gateway/openai-errors.d.ts +7 -0
- package/dist/ai-gateway/openai-errors.d.ts.map +1 -0
- package/dist/ai-gateway/openai-errors.js +23 -0
- package/dist/ai-gateway/openai-errors.js.map +1 -0
- package/dist/ai-gateway/openai-errors.test.d.ts +2 -0
- package/dist/ai-gateway/openai-errors.test.d.ts.map +1 -0
- package/dist/ai-gateway/openai-errors.test.js +38 -0
- package/dist/ai-gateway/openai-errors.test.js.map +1 -0
- package/dist/ai-gateway/passthrough.d.ts +1 -0
- package/dist/ai-gateway/passthrough.d.ts.map +1 -1
- package/dist/ai-gateway/passthrough.js +104 -0
- package/dist/ai-gateway/passthrough.js.map +1 -1
- package/dist/ai-gateway/passthrough.test.js +66 -1
- package/dist/ai-gateway/passthrough.test.js.map +1 -1
- package/dist/daemon/agentdog-daemon.d.ts +1 -1
- package/dist/daemon/agentdog-daemon.d.ts.map +1 -1
- package/dist/daemon/agentdog-daemon.js +27 -1
- package/dist/daemon/agentdog-daemon.js.map +1 -1
- package/dist/daemon/daemon-web-server.ai.test.js +30 -3
- package/dist/daemon/daemon-web-server.ai.test.js.map +1 -1
- package/dist/daemon/daemon-web-server.d.ts +2 -0
- package/dist/daemon/daemon-web-server.d.ts.map +1 -1
- package/dist/daemon/daemon-web-server.js +83 -11
- package/dist/daemon/daemon-web-server.js.map +1 -1
- package/dist/logging/jsonl-store.d.ts +23 -0
- package/dist/logging/jsonl-store.d.ts.map +1 -0
- package/dist/logging/jsonl-store.js +107 -0
- package/dist/logging/jsonl-store.js.map +1 -0
- package/dist/logging/jsonl-store.test.d.ts +2 -0
- package/dist/logging/jsonl-store.test.d.ts.map +1 -0
- package/dist/logging/jsonl-store.test.js +89 -0
- package/dist/logging/jsonl-store.test.js.map +1 -0
- package/dist/logging/server-log-manager.d.ts +3 -0
- package/dist/logging/server-log-manager.d.ts.map +1 -1
- package/dist/logging/server-log-manager.js +20 -0
- package/dist/logging/server-log-manager.js.map +1 -1
- package/dist/types/index.d.ts +20 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +3 -2
- package/web/dist/assets/index-CHSrrPtl.css +1 -0
- package/web/dist/assets/index-gdp_c7vR.js +106 -0
- package/web/dist/assets/index-gdp_c7vR.js.map +1 -0
- package/web/dist/index.html +2 -2
- package/web/dist/assets/index-BdEVyQ8g.js +0 -118
- package/web/dist/assets/index-BdEVyQ8g.js.map +0 -1
- package/web/dist/assets/index-Bsl7BWhF.css +0 -1
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
var Zf=Object.defineProperty;var eh=(e,t,n)=>t in e?Zf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var ja=(e,t,n)=>eh(e,typeof t!="symbol"?t+"":t,n);function th(e,t){for(var n=0;n<t.length;n++){const r=t[n];if(typeof r!="string"&&!Array.isArray(r)){for(const s in r)if(s!=="default"&&!(s in e)){const l=Object.getOwnPropertyDescriptor(r,s);l&&Object.defineProperty(e,s,l.get?l:{enumerable:!0,get:()=>r[s]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const l of s)if(l.type==="childList")for(const i of l.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const l={};return s.integrity&&(l.integrity=s.integrity),s.referrerPolicy&&(l.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?l.credentials="include":s.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function r(s){if(s.ep)return;s.ep=!0;const l=n(s);fetch(s.href,l)}})();function lu(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var ou={exports:{}},al={},iu={exports:{}},U={};/**
|
|
2
|
+
* @license React
|
|
3
|
+
* react.production.min.js
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/var Qr=Symbol.for("react.element"),nh=Symbol.for("react.portal"),rh=Symbol.for("react.fragment"),sh=Symbol.for("react.strict_mode"),lh=Symbol.for("react.profiler"),oh=Symbol.for("react.provider"),ih=Symbol.for("react.context"),ah=Symbol.for("react.forward_ref"),ch=Symbol.for("react.suspense"),uh=Symbol.for("react.memo"),dh=Symbol.for("react.lazy"),Ca=Symbol.iterator;function fh(e){return e===null||typeof e!="object"?null:(e=Ca&&e[Ca]||e["@@iterator"],typeof e=="function"?e:null)}var au={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},cu=Object.assign,uu={};function Gn(e,t,n){this.props=e,this.context=t,this.refs=uu,this.updater=n||au}Gn.prototype.isReactComponent={};Gn.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Gn.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function du(){}du.prototype=Gn.prototype;function Si(e,t,n){this.props=e,this.context=t,this.refs=uu,this.updater=n||au}var bi=Si.prototype=new du;bi.constructor=Si;cu(bi,Gn.prototype);bi.isPureReactComponent=!0;var Ea=Array.isArray,fu=Object.prototype.hasOwnProperty,ki={current:null},hu={key:!0,ref:!0,__self:!0,__source:!0};function pu(e,t,n){var r,s={},l=null,i=null;if(t!=null)for(r in t.ref!==void 0&&(i=t.ref),t.key!==void 0&&(l=""+t.key),t)fu.call(t,r)&&!hu.hasOwnProperty(r)&&(s[r]=t[r]);var a=arguments.length-2;if(a===1)s.children=n;else if(1<a){for(var c=Array(a),f=0;f<a;f++)c[f]=arguments[f+2];s.children=c}if(e&&e.defaultProps)for(r in a=e.defaultProps,a)s[r]===void 0&&(s[r]=a[r]);return{$$typeof:Qr,type:e,key:l,ref:i,props:s,_owner:ki.current}}function hh(e,t){return{$$typeof:Qr,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function ji(e){return typeof e=="object"&&e!==null&&e.$$typeof===Qr}function ph(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var _a=/\/+/g;function Ol(e,t){return typeof e=="object"&&e!==null&&e.key!=null?ph(""+e.key):t.toString(36)}function xs(e,t,n,r,s){var l=typeof e;(l==="undefined"||l==="boolean")&&(e=null);var i=!1;if(e===null)i=!0;else switch(l){case"string":case"number":i=!0;break;case"object":switch(e.$$typeof){case Qr:case nh:i=!0}}if(i)return i=e,s=s(i),e=r===""?"."+Ol(i,0):r,Ea(s)?(n="",e!=null&&(n=e.replace(_a,"$&/")+"/"),xs(s,t,n,"",function(f){return f})):s!=null&&(ji(s)&&(s=hh(s,n+(!s.key||i&&i.key===s.key?"":(""+s.key).replace(_a,"$&/")+"/")+e)),t.push(s)),1;if(i=0,r=r===""?".":r+":",Ea(e))for(var a=0;a<e.length;a++){l=e[a];var c=r+Ol(l,a);i+=xs(l,t,n,c,s)}else if(c=fh(e),typeof c=="function")for(e=c.call(e),a=0;!(l=e.next()).done;)l=l.value,c=r+Ol(l,a++),i+=xs(l,t,n,c,s);else if(l==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return i}function Zr(e,t,n){if(e==null)return e;var r=[],s=0;return xs(e,r,"","",function(l){return t.call(n,l,s++)}),r}function mh(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var je={current:null},ws={transition:null},gh={ReactCurrentDispatcher:je,ReactCurrentBatchConfig:ws,ReactCurrentOwner:ki};function mu(){throw Error("act(...) is not supported in production builds of React.")}U.Children={map:Zr,forEach:function(e,t,n){Zr(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return Zr(e,function(){t++}),t},toArray:function(e){return Zr(e,function(t){return t})||[]},only:function(e){if(!ji(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};U.Component=Gn;U.Fragment=rh;U.Profiler=lh;U.PureComponent=Si;U.StrictMode=sh;U.Suspense=ch;U.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=gh;U.act=mu;U.cloneElement=function(e,t,n){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var r=cu({},e.props),s=e.key,l=e.ref,i=e._owner;if(t!=null){if(t.ref!==void 0&&(l=t.ref,i=ki.current),t.key!==void 0&&(s=""+t.key),e.type&&e.type.defaultProps)var a=e.type.defaultProps;for(c in t)fu.call(t,c)&&!hu.hasOwnProperty(c)&&(r[c]=t[c]===void 0&&a!==void 0?a[c]:t[c])}var c=arguments.length-2;if(c===1)r.children=n;else if(1<c){a=Array(c);for(var f=0;f<c;f++)a[f]=arguments[f+2];r.children=a}return{$$typeof:Qr,type:e.type,key:s,ref:l,props:r,_owner:i}};U.createContext=function(e){return e={$$typeof:ih,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:oh,_context:e},e.Consumer=e};U.createElement=pu;U.createFactory=function(e){var t=pu.bind(null,e);return t.type=e,t};U.createRef=function(){return{current:null}};U.forwardRef=function(e){return{$$typeof:ah,render:e}};U.isValidElement=ji;U.lazy=function(e){return{$$typeof:dh,_payload:{_status:-1,_result:e},_init:mh}};U.memo=function(e,t){return{$$typeof:uh,type:e,compare:t===void 0?null:t}};U.startTransition=function(e){var t=ws.transition;ws.transition={};try{e()}finally{ws.transition=t}};U.unstable_act=mu;U.useCallback=function(e,t){return je.current.useCallback(e,t)};U.useContext=function(e){return je.current.useContext(e)};U.useDebugValue=function(){};U.useDeferredValue=function(e){return je.current.useDeferredValue(e)};U.useEffect=function(e,t){return je.current.useEffect(e,t)};U.useId=function(){return je.current.useId()};U.useImperativeHandle=function(e,t,n){return je.current.useImperativeHandle(e,t,n)};U.useInsertionEffect=function(e,t){return je.current.useInsertionEffect(e,t)};U.useLayoutEffect=function(e,t){return je.current.useLayoutEffect(e,t)};U.useMemo=function(e,t){return je.current.useMemo(e,t)};U.useReducer=function(e,t,n){return je.current.useReducer(e,t,n)};U.useRef=function(e){return je.current.useRef(e)};U.useState=function(e){return je.current.useState(e)};U.useSyncExternalStore=function(e,t,n){return je.current.useSyncExternalStore(e,t,n)};U.useTransition=function(){return je.current.useTransition()};U.version="18.3.1";iu.exports=U;var w=iu.exports;const cl=lu(w),vh=th({__proto__:null,default:cl},[w]);/**
|
|
10
|
+
* @license React
|
|
11
|
+
* react-jsx-runtime.production.min.js
|
|
12
|
+
*
|
|
13
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
14
|
+
*
|
|
15
|
+
* This source code is licensed under the MIT license found in the
|
|
16
|
+
* LICENSE file in the root directory of this source tree.
|
|
17
|
+
*/var yh=w,xh=Symbol.for("react.element"),wh=Symbol.for("react.fragment"),Nh=Object.prototype.hasOwnProperty,Sh=yh.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,bh={key:!0,ref:!0,__self:!0,__source:!0};function gu(e,t,n){var r,s={},l=null,i=null;n!==void 0&&(l=""+n),t.key!==void 0&&(l=""+t.key),t.ref!==void 0&&(i=t.ref);for(r in t)Nh.call(t,r)&&!bh.hasOwnProperty(r)&&(s[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)s[r]===void 0&&(s[r]=t[r]);return{$$typeof:xh,type:e,key:l,ref:i,props:s,_owner:Sh.current}}al.Fragment=wh;al.jsx=gu;al.jsxs=gu;ou.exports=al;var o=ou.exports,go={},vu={exports:{}},Ie={},yu={exports:{}},xu={};/**
|
|
18
|
+
* @license React
|
|
19
|
+
* scheduler.production.min.js
|
|
20
|
+
*
|
|
21
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
22
|
+
*
|
|
23
|
+
* This source code is licensed under the MIT license found in the
|
|
24
|
+
* LICENSE file in the root directory of this source tree.
|
|
25
|
+
*/(function(e){function t(S,E){var _=S.length;S.push(E);e:for(;0<_;){var A=_-1>>>1,$=S[A];if(0<s($,E))S[A]=E,S[_]=$,_=A;else break e}}function n(S){return S.length===0?null:S[0]}function r(S){if(S.length===0)return null;var E=S[0],_=S.pop();if(_!==E){S[0]=_;e:for(var A=0,$=S.length,K=$>>>1;A<K;){var pe=2*(A+1)-1,qe=S[pe],se=pe+1,st=S[se];if(0>s(qe,_))se<$&&0>s(st,qe)?(S[A]=st,S[se]=_,A=se):(S[A]=qe,S[pe]=_,A=pe);else if(se<$&&0>s(st,_))S[A]=st,S[se]=_,A=se;else break e}}return E}function s(S,E){var _=S.sortIndex-E.sortIndex;return _!==0?_:S.id-E.id}if(typeof performance=="object"&&typeof performance.now=="function"){var l=performance;e.unstable_now=function(){return l.now()}}else{var i=Date,a=i.now();e.unstable_now=function(){return i.now()-a}}var c=[],f=[],g=1,v=null,d=3,h=!1,y=!1,N=!1,b=typeof setTimeout=="function"?setTimeout:null,m=typeof clearTimeout=="function"?clearTimeout:null,u=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function p(S){for(var E=n(f);E!==null;){if(E.callback===null)r(f);else if(E.startTime<=S)r(f),E.sortIndex=E.expirationTime,t(c,E);else break;E=n(f)}}function x(S){if(N=!1,p(S),!y)if(n(c)!==null)y=!0,Zt(k);else{var E=n(f);E!==null&&ne(x,E.startTime-S)}}function k(S,E){y=!1,N&&(N=!1,m(R),R=-1),h=!0;var _=d;try{for(p(E),v=n(c);v!==null&&(!(v.expirationTime>E)||S&&!he());){var A=v.callback;if(typeof A=="function"){v.callback=null,d=v.priorityLevel;var $=A(v.expirationTime<=E);E=e.unstable_now(),typeof $=="function"?v.callback=$:v===n(c)&&r(c),p(E)}else r(c);v=n(c)}if(v!==null)var K=!0;else{var pe=n(f);pe!==null&&ne(x,pe.startTime-E),K=!1}return K}finally{v=null,d=_,h=!1}}var T=!1,P=null,R=-1,W=5,I=-1;function he(){return!(e.unstable_now()-I<W)}function He(){if(P!==null){var S=e.unstable_now();I=S;var E=!0;try{E=P(!0,S)}finally{E?pt():(T=!1,P=null)}}else T=!1}var pt;if(typeof u=="function")pt=function(){u(He)};else if(typeof MessageChannel<"u"){var Xt=new MessageChannel,tr=Xt.port2;Xt.port1.onmessage=He,pt=function(){tr.postMessage(null)}}else pt=function(){b(He,0)};function Zt(S){P=S,T||(T=!0,pt())}function ne(S,E){R=b(function(){S(e.unstable_now())},E)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(S){S.callback=null},e.unstable_continueExecution=function(){y||h||(y=!0,Zt(k))},e.unstable_forceFrameRate=function(S){0>S||125<S?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):W=0<S?Math.floor(1e3/S):5},e.unstable_getCurrentPriorityLevel=function(){return d},e.unstable_getFirstCallbackNode=function(){return n(c)},e.unstable_next=function(S){switch(d){case 1:case 2:case 3:var E=3;break;default:E=d}var _=d;d=E;try{return S()}finally{d=_}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(S,E){switch(S){case 1:case 2:case 3:case 4:case 5:break;default:S=3}var _=d;d=S;try{return E()}finally{d=_}},e.unstable_scheduleCallback=function(S,E,_){var A=e.unstable_now();switch(typeof _=="object"&&_!==null?(_=_.delay,_=typeof _=="number"&&0<_?A+_:A):_=A,S){case 1:var $=-1;break;case 2:$=250;break;case 5:$=1073741823;break;case 4:$=1e4;break;default:$=5e3}return $=_+$,S={id:g++,callback:E,priorityLevel:S,startTime:_,expirationTime:$,sortIndex:-1},_>A?(S.sortIndex=_,t(f,S),n(c)===null&&S===n(f)&&(N?(m(R),R=-1):N=!0,ne(x,_-A))):(S.sortIndex=$,t(c,S),y||h||(y=!0,Zt(k))),S},e.unstable_shouldYield=he,e.unstable_wrapCallback=function(S){var E=d;return function(){var _=d;d=E;try{return S.apply(this,arguments)}finally{d=_}}}})(xu);yu.exports=xu;var kh=yu.exports;/**
|
|
26
|
+
* @license React
|
|
27
|
+
* react-dom.production.min.js
|
|
28
|
+
*
|
|
29
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
30
|
+
*
|
|
31
|
+
* This source code is licensed under the MIT license found in the
|
|
32
|
+
* LICENSE file in the root directory of this source tree.
|
|
33
|
+
*/var jh=w,Me=kh;function C(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var wu=new Set,Er={};function gn(e,t){Un(e,t),Un(e+"Capture",t)}function Un(e,t){for(Er[e]=t,e=0;e<t.length;e++)wu.add(t[e])}var wt=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),vo=Object.prototype.hasOwnProperty,Ch=/^[: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]*$/,Ta={},Pa={};function Eh(e){return vo.call(Pa,e)?!0:vo.call(Ta,e)?!1:Ch.test(e)?Pa[e]=!0:(Ta[e]=!0,!1)}function _h(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Th(e,t,n,r){if(t===null||typeof t>"u"||_h(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Ce(e,t,n,r,s,l,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=s,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=l,this.removeEmptyString=i}var ve={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){ve[e]=new Ce(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];ve[t]=new Ce(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){ve[e]=new Ce(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){ve[e]=new Ce(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){ve[e]=new Ce(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){ve[e]=new Ce(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){ve[e]=new Ce(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){ve[e]=new Ce(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){ve[e]=new Ce(e,5,!1,e.toLowerCase(),null,!1,!1)});var Ci=/[\-:]([a-z])/g;function Ei(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Ci,Ei);ve[t]=new Ce(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Ci,Ei);ve[t]=new Ce(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Ci,Ei);ve[t]=new Ce(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){ve[e]=new Ce(e,1,!1,e.toLowerCase(),null,!1,!1)});ve.xlinkHref=new Ce("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){ve[e]=new Ce(e,1,!1,e.toLowerCase(),null,!0,!0)});function _i(e,t,n,r){var s=ve.hasOwnProperty(t)?ve[t]:null;(s!==null?s.type!==0:r||!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&(Th(t,n,s,r)&&(n=null),r||s===null?Eh(t)&&(n===null?e.removeAttribute(t):e.setAttribute(t,""+n)):s.mustUseProperty?e[s.propertyName]=n===null?s.type===3?!1:"":n:(t=s.attributeName,r=s.attributeNamespace,n===null?e.removeAttribute(t):(s=s.type,n=s===3||s===4&&n===!0?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}var kt=jh.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,es=Symbol.for("react.element"),Nn=Symbol.for("react.portal"),Sn=Symbol.for("react.fragment"),Ti=Symbol.for("react.strict_mode"),yo=Symbol.for("react.profiler"),Nu=Symbol.for("react.provider"),Su=Symbol.for("react.context"),Pi=Symbol.for("react.forward_ref"),xo=Symbol.for("react.suspense"),wo=Symbol.for("react.suspense_list"),Li=Symbol.for("react.memo"),_t=Symbol.for("react.lazy"),bu=Symbol.for("react.offscreen"),La=Symbol.iterator;function nr(e){return e===null||typeof e!="object"?null:(e=La&&e[La]||e["@@iterator"],typeof e=="function"?e:null)}var te=Object.assign,Al;function fr(e){if(Al===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);Al=t&&t[1]||""}return`
|
|
34
|
+
`+Al+e}var Ml=!1;function Il(e,t){if(!e||Ml)return"";Ml=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(f){var r=f}Reflect.construct(e,[],t)}else{try{t.call()}catch(f){r=f}e.call(t.prototype)}else{try{throw Error()}catch(f){r=f}e()}}catch(f){if(f&&r&&typeof f.stack=="string"){for(var s=f.stack.split(`
|
|
35
|
+
`),l=r.stack.split(`
|
|
36
|
+
`),i=s.length-1,a=l.length-1;1<=i&&0<=a&&s[i]!==l[a];)a--;for(;1<=i&&0<=a;i--,a--)if(s[i]!==l[a]){if(i!==1||a!==1)do if(i--,a--,0>a||s[i]!==l[a]){var c=`
|
|
37
|
+
`+s[i].replace(" at new "," at ");return e.displayName&&c.includes("<anonymous>")&&(c=c.replace("<anonymous>",e.displayName)),c}while(1<=i&&0<=a);break}}}finally{Ml=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?fr(e):""}function Ph(e){switch(e.tag){case 5:return fr(e.type);case 16:return fr("Lazy");case 13:return fr("Suspense");case 19:return fr("SuspenseList");case 0:case 2:case 15:return e=Il(e.type,!1),e;case 11:return e=Il(e.type.render,!1),e;case 1:return e=Il(e.type,!0),e;default:return""}}function No(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Sn:return"Fragment";case Nn:return"Portal";case yo:return"Profiler";case Ti:return"StrictMode";case xo:return"Suspense";case wo:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Su:return(e.displayName||"Context")+".Consumer";case Nu:return(e._context.displayName||"Context")+".Provider";case Pi:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Li:return t=e.displayName||null,t!==null?t:No(e.type)||"Memo";case _t:t=e._payload,e=e._init;try{return No(e(t))}catch{}}return null}function Lh(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return No(t);case 8:return t===Ti?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Ht(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function ku(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Rh(e){var t=ku(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var s=n.get,l=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(i){r=""+i,l.call(this,i)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function ts(e){e._valueTracker||(e._valueTracker=Rh(e))}function ju(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=ku(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Ms(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}}function So(e,t){var n=t.checked;return te({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Ra(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Ht(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Cu(e,t){t=t.checked,t!=null&&_i(e,"checked",t,!1)}function bo(e,t){Cu(e,t);var n=Ht(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?ko(e,t.type,n):t.hasOwnProperty("defaultValue")&&ko(e,t.type,Ht(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Oa(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function ko(e,t,n){(t!=="number"||Ms(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var hr=Array.isArray;function On(e,t,n,r){if(e=e.options,t){t={};for(var s=0;s<n.length;s++)t["$"+n[s]]=!0;for(n=0;n<e.length;n++)s=t.hasOwnProperty("$"+e[n].value),e[n].selected!==s&&(e[n].selected=s),s&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Ht(n),t=null,s=0;s<e.length;s++){if(e[s].value===n){e[s].selected=!0,r&&(e[s].defaultSelected=!0);return}t!==null||e[s].disabled||(t=e[s])}t!==null&&(t.selected=!0)}}function jo(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(C(91));return te({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function Aa(e,t){var n=t.value;if(n==null){if(n=t.children,t=t.defaultValue,n!=null){if(t!=null)throw Error(C(92));if(hr(n)){if(1<n.length)throw Error(C(93));n=n[0]}t=n}t==null&&(t=""),n=t}e._wrapperState={initialValue:Ht(n)}}function Eu(e,t){var n=Ht(t.value),r=Ht(t.defaultValue);n!=null&&(n=""+n,n!==e.value&&(e.value=n),t.defaultValue==null&&e.defaultValue!==n&&(e.defaultValue=n)),r!=null&&(e.defaultValue=""+r)}function Ma(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}function _u(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Co(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?_u(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var ns,Tu=function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,n,r,s){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,s)})}:e}(function(e,t){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=t;else{for(ns=ns||document.createElement("div"),ns.innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=ns.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function _r(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var vr={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Oh=["Webkit","ms","Moz","O"];Object.keys(vr).forEach(function(e){Oh.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),vr[t]=vr[e]})});function Pu(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||vr.hasOwnProperty(e)&&vr[e]?(""+t).trim():t+"px"}function Lu(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,s=Pu(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,s):e[n]=s}}var Ah=te({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Eo(e,t){if(t){if(Ah[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(C(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(C(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(C(61))}if(t.style!=null&&typeof t.style!="object")throw Error(C(62))}}function _o(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){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!1;default:return!0}}var To=null;function Ri(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Po=null,An=null,Mn=null;function Ia(e){if(e=Yr(e)){if(typeof Po!="function")throw Error(C(280));var t=e.stateNode;t&&(t=pl(t),Po(e.stateNode,e.type,t))}}function Ru(e){An?Mn?Mn.push(e):Mn=[e]:An=e}function Ou(){if(An){var e=An,t=Mn;if(Mn=An=null,Ia(e),t)for(e=0;e<t.length;e++)Ia(t[e])}}function Au(e,t){return e(t)}function Mu(){}var $l=!1;function Iu(e,t,n){if($l)return e(t,n);$l=!0;try{return Au(e,t,n)}finally{$l=!1,(An!==null||Mn!==null)&&(Mu(),Ou())}}function Tr(e,t){var n=e.stateNode;if(n===null)return null;var r=pl(n);if(r===null)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(e=e.type,r=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!r;break e;default:e=!1}if(e)return null;if(n&&typeof n!="function")throw Error(C(231,t,typeof n));return n}var Lo=!1;if(wt)try{var rr={};Object.defineProperty(rr,"passive",{get:function(){Lo=!0}}),window.addEventListener("test",rr,rr),window.removeEventListener("test",rr,rr)}catch{Lo=!1}function Mh(e,t,n,r,s,l,i,a,c){var f=Array.prototype.slice.call(arguments,3);try{t.apply(n,f)}catch(g){this.onError(g)}}var yr=!1,Is=null,$s=!1,Ro=null,Ih={onError:function(e){yr=!0,Is=e}};function $h(e,t,n,r,s,l,i,a,c){yr=!1,Is=null,Mh.apply(Ih,arguments)}function zh(e,t,n,r,s,l,i,a,c){if($h.apply(this,arguments),yr){if(yr){var f=Is;yr=!1,Is=null}else throw Error(C(198));$s||($s=!0,Ro=f)}}function vn(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function $u(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function $a(e){if(vn(e)!==e)throw Error(C(188))}function Dh(e){var t=e.alternate;if(!t){if(t=vn(e),t===null)throw Error(C(188));return t!==e?null:e}for(var n=e,r=t;;){var s=n.return;if(s===null)break;var l=s.alternate;if(l===null){if(r=s.return,r!==null){n=r;continue}break}if(s.child===l.child){for(l=s.child;l;){if(l===n)return $a(s),e;if(l===r)return $a(s),t;l=l.sibling}throw Error(C(188))}if(n.return!==r.return)n=s,r=l;else{for(var i=!1,a=s.child;a;){if(a===n){i=!0,n=s,r=l;break}if(a===r){i=!0,r=s,n=l;break}a=a.sibling}if(!i){for(a=l.child;a;){if(a===n){i=!0,n=l,r=s;break}if(a===r){i=!0,r=l,n=s;break}a=a.sibling}if(!i)throw Error(C(189))}}if(n.alternate!==r)throw Error(C(190))}if(n.tag!==3)throw Error(C(188));return n.stateNode.current===n?e:t}function zu(e){return e=Dh(e),e!==null?Du(e):null}function Du(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=Du(e);if(t!==null)return t;e=e.sibling}return null}var Uu=Me.unstable_scheduleCallback,za=Me.unstable_cancelCallback,Uh=Me.unstable_shouldYield,Fh=Me.unstable_requestPaint,le=Me.unstable_now,Bh=Me.unstable_getCurrentPriorityLevel,Oi=Me.unstable_ImmediatePriority,Fu=Me.unstable_UserBlockingPriority,zs=Me.unstable_NormalPriority,Vh=Me.unstable_LowPriority,Bu=Me.unstable_IdlePriority,ul=null,ut=null;function Wh(e){if(ut&&typeof ut.onCommitFiberRoot=="function")try{ut.onCommitFiberRoot(ul,e,void 0,(e.current.flags&128)===128)}catch{}}var et=Math.clz32?Math.clz32:Kh,Hh=Math.log,qh=Math.LN2;function Kh(e){return e>>>=0,e===0?32:31-(Hh(e)/qh|0)|0}var rs=64,ss=4194304;function pr(e){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: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 e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Ds(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,s=e.suspendedLanes,l=e.pingedLanes,i=n&268435455;if(i!==0){var a=i&~s;a!==0?r=pr(a):(l&=i,l!==0&&(r=pr(l)))}else i=n&~s,i!==0?r=pr(i):l!==0&&(r=pr(l));if(r===0)return 0;if(t!==0&&t!==r&&!(t&s)&&(s=r&-r,l=t&-t,s>=l||s===16&&(l&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0<t;)n=31-et(t),s=1<<n,r|=e[n],t&=~s;return r}function Qh(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64: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:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Gh(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,s=e.expirationTimes,l=e.pendingLanes;0<l;){var i=31-et(l),a=1<<i,c=s[i];c===-1?(!(a&n)||a&r)&&(s[i]=Qh(a,t)):c<=t&&(e.expiredLanes|=a),l&=~a}}function Oo(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function Vu(){var e=rs;return rs<<=1,!(rs&4194240)&&(rs=64),e}function zl(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Gr(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-et(t),e[t]=n}function Jh(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var s=31-et(n),l=1<<s;t[s]=0,r[s]=-1,e[s]=-1,n&=~l}}function Ai(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-et(n),s=1<<r;s&t|e[r]&t&&(e[r]|=t),n&=~s}}var q=0;function Wu(e){return e&=-e,1<e?4<e?e&268435455?16:536870912:4:1}var Hu,Mi,qu,Ku,Qu,Ao=!1,ls=[],Mt=null,It=null,$t=null,Pr=new Map,Lr=new Map,Pt=[],Yh="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Da(e,t){switch(e){case"focusin":case"focusout":Mt=null;break;case"dragenter":case"dragleave":It=null;break;case"mouseover":case"mouseout":$t=null;break;case"pointerover":case"pointerout":Pr.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Lr.delete(t.pointerId)}}function sr(e,t,n,r,s,l){return e===null||e.nativeEvent!==l?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:l,targetContainers:[s]},t!==null&&(t=Yr(t),t!==null&&Mi(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,s!==null&&t.indexOf(s)===-1&&t.push(s),e)}function Xh(e,t,n,r,s){switch(t){case"focusin":return Mt=sr(Mt,e,t,n,r,s),!0;case"dragenter":return It=sr(It,e,t,n,r,s),!0;case"mouseover":return $t=sr($t,e,t,n,r,s),!0;case"pointerover":var l=s.pointerId;return Pr.set(l,sr(Pr.get(l)||null,e,t,n,r,s)),!0;case"gotpointercapture":return l=s.pointerId,Lr.set(l,sr(Lr.get(l)||null,e,t,n,r,s)),!0}return!1}function Gu(e){var t=sn(e.target);if(t!==null){var n=vn(t);if(n!==null){if(t=n.tag,t===13){if(t=$u(n),t!==null){e.blockedOn=t,Qu(e.priority,function(){qu(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Ns(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=Mo(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);To=r,n.target.dispatchEvent(r),To=null}else return t=Yr(n),t!==null&&Mi(t),e.blockedOn=n,!1;t.shift()}return!0}function Ua(e,t,n){Ns(e)&&n.delete(t)}function Zh(){Ao=!1,Mt!==null&&Ns(Mt)&&(Mt=null),It!==null&&Ns(It)&&(It=null),$t!==null&&Ns($t)&&($t=null),Pr.forEach(Ua),Lr.forEach(Ua)}function lr(e,t){e.blockedOn===t&&(e.blockedOn=null,Ao||(Ao=!0,Me.unstable_scheduleCallback(Me.unstable_NormalPriority,Zh)))}function Rr(e){function t(s){return lr(s,e)}if(0<ls.length){lr(ls[0],e);for(var n=1;n<ls.length;n++){var r=ls[n];r.blockedOn===e&&(r.blockedOn=null)}}for(Mt!==null&&lr(Mt,e),It!==null&&lr(It,e),$t!==null&&lr($t,e),Pr.forEach(t),Lr.forEach(t),n=0;n<Pt.length;n++)r=Pt[n],r.blockedOn===e&&(r.blockedOn=null);for(;0<Pt.length&&(n=Pt[0],n.blockedOn===null);)Gu(n),n.blockedOn===null&&Pt.shift()}var In=kt.ReactCurrentBatchConfig,Us=!0;function ep(e,t,n,r){var s=q,l=In.transition;In.transition=null;try{q=1,Ii(e,t,n,r)}finally{q=s,In.transition=l}}function tp(e,t,n,r){var s=q,l=In.transition;In.transition=null;try{q=4,Ii(e,t,n,r)}finally{q=s,In.transition=l}}function Ii(e,t,n,r){if(Us){var s=Mo(e,t,n,r);if(s===null)Ql(e,t,r,Fs,n),Da(e,r);else if(Xh(s,e,t,n,r))r.stopPropagation();else if(Da(e,r),t&4&&-1<Yh.indexOf(e)){for(;s!==null;){var l=Yr(s);if(l!==null&&Hu(l),l=Mo(e,t,n,r),l===null&&Ql(e,t,r,Fs,n),l===s)break;s=l}s!==null&&r.stopPropagation()}else Ql(e,t,r,null,n)}}var Fs=null;function Mo(e,t,n,r){if(Fs=null,e=Ri(r),e=sn(e),e!==null)if(t=vn(e),t===null)e=null;else if(n=t.tag,n===13){if(e=$u(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Fs=e,null}function Ju(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Bh()){case Oi:return 1;case Fu:return 4;case zs:case Vh:return 16;case Bu:return 536870912;default:return 16}default:return 16}}var Rt=null,$i=null,Ss=null;function Yu(){if(Ss)return Ss;var e,t=$i,n=t.length,r,s="value"in Rt?Rt.value:Rt.textContent,l=s.length;for(e=0;e<n&&t[e]===s[e];e++);var i=n-e;for(r=1;r<=i&&t[n-r]===s[l-r];r++);return Ss=s.slice(e,1<r?1-r:void 0)}function bs(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function os(){return!0}function Fa(){return!1}function $e(e){function t(n,r,s,l,i){this._reactName=n,this._targetInst=s,this.type=r,this.nativeEvent=l,this.target=i,this.currentTarget=null;for(var a in e)e.hasOwnProperty(a)&&(n=e[a],this[a]=n?n(l):l[a]);return this.isDefaultPrevented=(l.defaultPrevented!=null?l.defaultPrevented:l.returnValue===!1)?os:Fa,this.isPropagationStopped=Fa,this}return te(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=os)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=os)},persist:function(){},isPersistent:os}),t}var Jn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},zi=$e(Jn),Jr=te({},Jn,{view:0,detail:0}),np=$e(Jr),Dl,Ul,or,dl=te({},Jr,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Di,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==or&&(or&&e.type==="mousemove"?(Dl=e.screenX-or.screenX,Ul=e.screenY-or.screenY):Ul=Dl=0,or=e),Dl)},movementY:function(e){return"movementY"in e?e.movementY:Ul}}),Ba=$e(dl),rp=te({},dl,{dataTransfer:0}),sp=$e(rp),lp=te({},Jr,{relatedTarget:0}),Fl=$e(lp),op=te({},Jn,{animationName:0,elapsedTime:0,pseudoElement:0}),ip=$e(op),ap=te({},Jn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),cp=$e(ap),up=te({},Jn,{data:0}),Va=$e(up),dp={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},fp={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"},hp={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function pp(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=hp[e])?!!t[e]:!1}function Di(){return pp}var mp=te({},Jr,{key:function(e){if(e.key){var t=dp[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=bs(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?fp[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Di,charCode:function(e){return e.type==="keypress"?bs(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?bs(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),gp=$e(mp),vp=te({},dl,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Wa=$e(vp),yp=te({},Jr,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Di}),xp=$e(yp),wp=te({},Jn,{propertyName:0,elapsedTime:0,pseudoElement:0}),Np=$e(wp),Sp=te({},dl,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),bp=$e(Sp),kp=[9,13,27,32],Ui=wt&&"CompositionEvent"in window,xr=null;wt&&"documentMode"in document&&(xr=document.documentMode);var jp=wt&&"TextEvent"in window&&!xr,Xu=wt&&(!Ui||xr&&8<xr&&11>=xr),Ha=" ",qa=!1;function Zu(e,t){switch(e){case"keyup":return kp.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ed(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var bn=!1;function Cp(e,t){switch(e){case"compositionend":return ed(t);case"keypress":return t.which!==32?null:(qa=!0,Ha);case"textInput":return e=t.data,e===Ha&&qa?null:e;default:return null}}function Ep(e,t){if(bn)return e==="compositionend"||!Ui&&Zu(e,t)?(e=Yu(),Ss=$i=Rt=null,bn=!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.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Xu&&t.locale!=="ko"?null:t.data;default:return null}}var _p={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Ka(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!_p[e.type]:t==="textarea"}function td(e,t,n,r){Ru(r),t=Bs(t,"onChange"),0<t.length&&(n=new zi("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var wr=null,Or=null;function Tp(e){fd(e,0)}function fl(e){var t=Cn(e);if(ju(t))return e}function Pp(e,t){if(e==="change")return t}var nd=!1;if(wt){var Bl;if(wt){var Vl="oninput"in document;if(!Vl){var Qa=document.createElement("div");Qa.setAttribute("oninput","return;"),Vl=typeof Qa.oninput=="function"}Bl=Vl}else Bl=!1;nd=Bl&&(!document.documentMode||9<document.documentMode)}function Ga(){wr&&(wr.detachEvent("onpropertychange",rd),Or=wr=null)}function rd(e){if(e.propertyName==="value"&&fl(Or)){var t=[];td(t,Or,e,Ri(e)),Iu(Tp,t)}}function Lp(e,t,n){e==="focusin"?(Ga(),wr=t,Or=n,wr.attachEvent("onpropertychange",rd)):e==="focusout"&&Ga()}function Rp(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return fl(Or)}function Op(e,t){if(e==="click")return fl(t)}function Ap(e,t){if(e==="input"||e==="change")return fl(t)}function Mp(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var rt=typeof Object.is=="function"?Object.is:Mp;function Ar(e,t){if(rt(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var s=n[r];if(!vo.call(t,s)||!rt(e[s],t[s]))return!1}return!0}function Ja(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Ya(e,t){var n=Ja(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Ja(n)}}function sd(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?sd(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function ld(){for(var e=window,t=Ms();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Ms(e.document)}return t}function Fi(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")}function Ip(e){var t=ld(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&sd(n.ownerDocument.documentElement,n)){if(r!==null&&Fi(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var s=n.textContent.length,l=Math.min(r.start,s);r=r.end===void 0?l:Math.min(r.end,s),!e.extend&&l>r&&(s=r,r=l,l=s),s=Ya(n,l);var i=Ya(n,r);s&&i&&(e.rangeCount!==1||e.anchorNode!==s.node||e.anchorOffset!==s.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(s.node,s.offset),e.removeAllRanges(),l>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n<t.length;n++)e=t[n],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var $p=wt&&"documentMode"in document&&11>=document.documentMode,kn=null,Io=null,Nr=null,$o=!1;function Xa(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;$o||kn==null||kn!==Ms(r)||(r=kn,"selectionStart"in r&&Fi(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Nr&&Ar(Nr,r)||(Nr=r,r=Bs(Io,"onSelect"),0<r.length&&(t=new zi("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=kn)))}function is(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var jn={animationend:is("Animation","AnimationEnd"),animationiteration:is("Animation","AnimationIteration"),animationstart:is("Animation","AnimationStart"),transitionend:is("Transition","TransitionEnd")},Wl={},od={};wt&&(od=document.createElement("div").style,"AnimationEvent"in window||(delete jn.animationend.animation,delete jn.animationiteration.animation,delete jn.animationstart.animation),"TransitionEvent"in window||delete jn.transitionend.transition);function hl(e){if(Wl[e])return Wl[e];if(!jn[e])return e;var t=jn[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in od)return Wl[e]=t[n];return e}var id=hl("animationend"),ad=hl("animationiteration"),cd=hl("animationstart"),ud=hl("transitionend"),dd=new Map,Za="abort auxClick 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(" ");function Qt(e,t){dd.set(e,t),gn(t,[e])}for(var Hl=0;Hl<Za.length;Hl++){var ql=Za[Hl],zp=ql.toLowerCase(),Dp=ql[0].toUpperCase()+ql.slice(1);Qt(zp,"on"+Dp)}Qt(id,"onAnimationEnd");Qt(ad,"onAnimationIteration");Qt(cd,"onAnimationStart");Qt("dblclick","onDoubleClick");Qt("focusin","onFocus");Qt("focusout","onBlur");Qt(ud,"onTransitionEnd");Un("onMouseEnter",["mouseout","mouseover"]);Un("onMouseLeave",["mouseout","mouseover"]);Un("onPointerEnter",["pointerout","pointerover"]);Un("onPointerLeave",["pointerout","pointerover"]);gn("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));gn("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));gn("onBeforeInput",["compositionend","keypress","textInput","paste"]);gn("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));gn("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));gn("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var mr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Up=new Set("cancel close invalid load scroll toggle".split(" ").concat(mr));function ec(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,zh(r,t,void 0,e),e.currentTarget=null}function fd(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var r=e[n],s=r.event;r=r.listeners;e:{var l=void 0;if(t)for(var i=r.length-1;0<=i;i--){var a=r[i],c=a.instance,f=a.currentTarget;if(a=a.listener,c!==l&&s.isPropagationStopped())break e;ec(s,a,f),l=c}else for(i=0;i<r.length;i++){if(a=r[i],c=a.instance,f=a.currentTarget,a=a.listener,c!==l&&s.isPropagationStopped())break e;ec(s,a,f),l=c}}}if($s)throw e=Ro,$s=!1,Ro=null,e}function G(e,t){var n=t[Bo];n===void 0&&(n=t[Bo]=new Set);var r=e+"__bubble";n.has(r)||(hd(t,e,2,!1),n.add(r))}function Kl(e,t,n){var r=0;t&&(r|=4),hd(n,e,r,t)}var as="_reactListening"+Math.random().toString(36).slice(2);function Mr(e){if(!e[as]){e[as]=!0,wu.forEach(function(n){n!=="selectionchange"&&(Up.has(n)||Kl(n,!1,e),Kl(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[as]||(t[as]=!0,Kl("selectionchange",!1,t))}}function hd(e,t,n,r){switch(Ju(t)){case 1:var s=ep;break;case 4:s=tp;break;default:s=Ii}n=s.bind(null,t,n,e),s=void 0,!Lo||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(s=!0),r?s!==void 0?e.addEventListener(t,n,{capture:!0,passive:s}):e.addEventListener(t,n,!0):s!==void 0?e.addEventListener(t,n,{passive:s}):e.addEventListener(t,n,!1)}function Ql(e,t,n,r,s){var l=r;if(!(t&1)&&!(t&2)&&r!==null)e:for(;;){if(r===null)return;var i=r.tag;if(i===3||i===4){var a=r.stateNode.containerInfo;if(a===s||a.nodeType===8&&a.parentNode===s)break;if(i===4)for(i=r.return;i!==null;){var c=i.tag;if((c===3||c===4)&&(c=i.stateNode.containerInfo,c===s||c.nodeType===8&&c.parentNode===s))return;i=i.return}for(;a!==null;){if(i=sn(a),i===null)return;if(c=i.tag,c===5||c===6){r=l=i;continue e}a=a.parentNode}}r=r.return}Iu(function(){var f=l,g=Ri(n),v=[];e:{var d=dd.get(e);if(d!==void 0){var h=zi,y=e;switch(e){case"keypress":if(bs(n)===0)break e;case"keydown":case"keyup":h=gp;break;case"focusin":y="focus",h=Fl;break;case"focusout":y="blur",h=Fl;break;case"beforeblur":case"afterblur":h=Fl;break;case"click":if(n.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":h=Ba;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":h=sp;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":h=xp;break;case id:case ad:case cd:h=ip;break;case ud:h=Np;break;case"scroll":h=np;break;case"wheel":h=bp;break;case"copy":case"cut":case"paste":h=cp;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":h=Wa}var N=(t&4)!==0,b=!N&&e==="scroll",m=N?d!==null?d+"Capture":null:d;N=[];for(var u=f,p;u!==null;){p=u;var x=p.stateNode;if(p.tag===5&&x!==null&&(p=x,m!==null&&(x=Tr(u,m),x!=null&&N.push(Ir(u,x,p)))),b)break;u=u.return}0<N.length&&(d=new h(d,y,null,n,g),v.push({event:d,listeners:N}))}}if(!(t&7)){e:{if(d=e==="mouseover"||e==="pointerover",h=e==="mouseout"||e==="pointerout",d&&n!==To&&(y=n.relatedTarget||n.fromElement)&&(sn(y)||y[Nt]))break e;if((h||d)&&(d=g.window===g?g:(d=g.ownerDocument)?d.defaultView||d.parentWindow:window,h?(y=n.relatedTarget||n.toElement,h=f,y=y?sn(y):null,y!==null&&(b=vn(y),y!==b||y.tag!==5&&y.tag!==6)&&(y=null)):(h=null,y=f),h!==y)){if(N=Ba,x="onMouseLeave",m="onMouseEnter",u="mouse",(e==="pointerout"||e==="pointerover")&&(N=Wa,x="onPointerLeave",m="onPointerEnter",u="pointer"),b=h==null?d:Cn(h),p=y==null?d:Cn(y),d=new N(x,u+"leave",h,n,g),d.target=b,d.relatedTarget=p,x=null,sn(g)===f&&(N=new N(m,u+"enter",y,n,g),N.target=p,N.relatedTarget=b,x=N),b=x,h&&y)t:{for(N=h,m=y,u=0,p=N;p;p=xn(p))u++;for(p=0,x=m;x;x=xn(x))p++;for(;0<u-p;)N=xn(N),u--;for(;0<p-u;)m=xn(m),p--;for(;u--;){if(N===m||m!==null&&N===m.alternate)break t;N=xn(N),m=xn(m)}N=null}else N=null;h!==null&&tc(v,d,h,N,!1),y!==null&&b!==null&&tc(v,b,y,N,!0)}}e:{if(d=f?Cn(f):window,h=d.nodeName&&d.nodeName.toLowerCase(),h==="select"||h==="input"&&d.type==="file")var k=Pp;else if(Ka(d))if(nd)k=Ap;else{k=Rp;var T=Lp}else(h=d.nodeName)&&h.toLowerCase()==="input"&&(d.type==="checkbox"||d.type==="radio")&&(k=Op);if(k&&(k=k(e,f))){td(v,k,n,g);break e}T&&T(e,d,f),e==="focusout"&&(T=d._wrapperState)&&T.controlled&&d.type==="number"&&ko(d,"number",d.value)}switch(T=f?Cn(f):window,e){case"focusin":(Ka(T)||T.contentEditable==="true")&&(kn=T,Io=f,Nr=null);break;case"focusout":Nr=Io=kn=null;break;case"mousedown":$o=!0;break;case"contextmenu":case"mouseup":case"dragend":$o=!1,Xa(v,n,g);break;case"selectionchange":if($p)break;case"keydown":case"keyup":Xa(v,n,g)}var P;if(Ui)e:{switch(e){case"compositionstart":var R="onCompositionStart";break e;case"compositionend":R="onCompositionEnd";break e;case"compositionupdate":R="onCompositionUpdate";break e}R=void 0}else bn?Zu(e,n)&&(R="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(R="onCompositionStart");R&&(Xu&&n.locale!=="ko"&&(bn||R!=="onCompositionStart"?R==="onCompositionEnd"&&bn&&(P=Yu()):(Rt=g,$i="value"in Rt?Rt.value:Rt.textContent,bn=!0)),T=Bs(f,R),0<T.length&&(R=new Va(R,e,null,n,g),v.push({event:R,listeners:T}),P?R.data=P:(P=ed(n),P!==null&&(R.data=P)))),(P=jp?Cp(e,n):Ep(e,n))&&(f=Bs(f,"onBeforeInput"),0<f.length&&(g=new Va("onBeforeInput","beforeinput",null,n,g),v.push({event:g,listeners:f}),g.data=P))}fd(v,t)})}function Ir(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Bs(e,t){for(var n=t+"Capture",r=[];e!==null;){var s=e,l=s.stateNode;s.tag===5&&l!==null&&(s=l,l=Tr(e,n),l!=null&&r.unshift(Ir(e,l,s)),l=Tr(e,t),l!=null&&r.push(Ir(e,l,s))),e=e.return}return r}function xn(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function tc(e,t,n,r,s){for(var l=t._reactName,i=[];n!==null&&n!==r;){var a=n,c=a.alternate,f=a.stateNode;if(c!==null&&c===r)break;a.tag===5&&f!==null&&(a=f,s?(c=Tr(n,l),c!=null&&i.unshift(Ir(n,c,a))):s||(c=Tr(n,l),c!=null&&i.push(Ir(n,c,a)))),n=n.return}i.length!==0&&e.push({event:t,listeners:i})}var Fp=/\r\n?/g,Bp=/\u0000|\uFFFD/g;function nc(e){return(typeof e=="string"?e:""+e).replace(Fp,`
|
|
38
|
+
`).replace(Bp,"")}function cs(e,t,n){if(t=nc(t),nc(e)!==t&&n)throw Error(C(425))}function Vs(){}var zo=null,Do=null;function Uo(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Fo=typeof setTimeout=="function"?setTimeout:void 0,Vp=typeof clearTimeout=="function"?clearTimeout:void 0,rc=typeof Promise=="function"?Promise:void 0,Wp=typeof queueMicrotask=="function"?queueMicrotask:typeof rc<"u"?function(e){return rc.resolve(null).then(e).catch(Hp)}:Fo;function Hp(e){setTimeout(function(){throw e})}function Gl(e,t){var n=t,r=0;do{var s=n.nextSibling;if(e.removeChild(n),s&&s.nodeType===8)if(n=s.data,n==="/$"){if(r===0){e.removeChild(s),Rr(t);return}r--}else n!=="$"&&n!=="$?"&&n!=="$!"||r++;n=s}while(n);Rr(t)}function zt(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?")break;if(t==="/$")return null}}return e}function sc(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="$"||n==="$!"||n==="$?"){if(t===0)return e;t--}else n==="/$"&&t++}e=e.previousSibling}return null}var Yn=Math.random().toString(36).slice(2),ct="__reactFiber$"+Yn,$r="__reactProps$"+Yn,Nt="__reactContainer$"+Yn,Bo="__reactEvents$"+Yn,qp="__reactListeners$"+Yn,Kp="__reactHandles$"+Yn;function sn(e){var t=e[ct];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Nt]||n[ct]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=sc(e);e!==null;){if(n=e[ct])return n;e=sc(e)}return t}e=n,n=e.parentNode}return null}function Yr(e){return e=e[ct]||e[Nt],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function Cn(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(C(33))}function pl(e){return e[$r]||null}var Vo=[],En=-1;function Gt(e){return{current:e}}function J(e){0>En||(e.current=Vo[En],Vo[En]=null,En--)}function Q(e,t){En++,Vo[En]=e.current,e.current=t}var qt={},Ne=Gt(qt),Te=Gt(!1),un=qt;function Fn(e,t){var n=e.type.contextTypes;if(!n)return qt;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var s={},l;for(l in n)s[l]=t[l];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function Pe(e){return e=e.childContextTypes,e!=null}function Ws(){J(Te),J(Ne)}function lc(e,t,n){if(Ne.current!==qt)throw Error(C(168));Q(Ne,t),Q(Te,n)}function pd(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var s in r)if(!(s in t))throw Error(C(108,Lh(e)||"Unknown",s));return te({},n,r)}function Hs(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||qt,un=Ne.current,Q(Ne,e),Q(Te,Te.current),!0}function oc(e,t,n){var r=e.stateNode;if(!r)throw Error(C(169));n?(e=pd(e,t,un),r.__reactInternalMemoizedMergedChildContext=e,J(Te),J(Ne),Q(Ne,e)):J(Te),Q(Te,n)}var gt=null,ml=!1,Jl=!1;function md(e){gt===null?gt=[e]:gt.push(e)}function Qp(e){ml=!0,md(e)}function Jt(){if(!Jl&>!==null){Jl=!0;var e=0,t=q;try{var n=gt;for(q=1;e<n.length;e++){var r=n[e];do r=r(!0);while(r!==null)}gt=null,ml=!1}catch(s){throw gt!==null&&(gt=gt.slice(e+1)),Uu(Oi,Jt),s}finally{q=t,Jl=!1}}return null}var _n=[],Tn=0,qs=null,Ks=0,ze=[],De=0,dn=null,vt=1,yt="";function nn(e,t){_n[Tn++]=Ks,_n[Tn++]=qs,qs=e,Ks=t}function gd(e,t,n){ze[De++]=vt,ze[De++]=yt,ze[De++]=dn,dn=e;var r=vt;e=yt;var s=32-et(r)-1;r&=~(1<<s),n+=1;var l=32-et(t)+s;if(30<l){var i=s-s%5;l=(r&(1<<i)-1).toString(32),r>>=i,s-=i,vt=1<<32-et(t)+s|n<<s|r,yt=l+e}else vt=1<<l|n<<s|r,yt=e}function Bi(e){e.return!==null&&(nn(e,1),gd(e,1,0))}function Vi(e){for(;e===qs;)qs=_n[--Tn],_n[Tn]=null,Ks=_n[--Tn],_n[Tn]=null;for(;e===dn;)dn=ze[--De],ze[De]=null,yt=ze[--De],ze[De]=null,vt=ze[--De],ze[De]=null}var Ae=null,Oe=null,Y=!1,Ze=null;function vd(e,t){var n=Fe(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,t=e.deletions,t===null?(e.deletions=[n],e.flags|=16):t.push(n)}function ic(e,t){switch(e.tag){case 5:var n=e.type;return t=t.nodeType!==1||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,Ae=e,Oe=zt(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,Ae=e,Oe=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(n=dn!==null?{id:vt,overflow:yt}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},n=Fe(18,null,null,0),n.stateNode=t,n.return=e,e.child=n,Ae=e,Oe=null,!0):!1;default:return!1}}function Wo(e){return(e.mode&1)!==0&&(e.flags&128)===0}function Ho(e){if(Y){var t=Oe;if(t){var n=t;if(!ic(e,t)){if(Wo(e))throw Error(C(418));t=zt(n.nextSibling);var r=Ae;t&&ic(e,t)?vd(r,n):(e.flags=e.flags&-4097|2,Y=!1,Ae=e)}}else{if(Wo(e))throw Error(C(418));e.flags=e.flags&-4097|2,Y=!1,Ae=e}}}function ac(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;Ae=e}function us(e){if(e!==Ae)return!1;if(!Y)return ac(e),Y=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!=="head"&&t!=="body"&&!Uo(e.type,e.memoizedProps)),t&&(t=Oe)){if(Wo(e))throw yd(),Error(C(418));for(;t;)vd(e,t),t=zt(t.nextSibling)}if(ac(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(C(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"){if(t===0){Oe=zt(e.nextSibling);break e}t--}else n!=="$"&&n!=="$!"&&n!=="$?"||t++}e=e.nextSibling}Oe=null}}else Oe=Ae?zt(e.stateNode.nextSibling):null;return!0}function yd(){for(var e=Oe;e;)e=zt(e.nextSibling)}function Bn(){Oe=Ae=null,Y=!1}function Wi(e){Ze===null?Ze=[e]:Ze.push(e)}var Gp=kt.ReactCurrentBatchConfig;function ir(e,t,n){if(e=n.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(n._owner){if(n=n._owner,n){if(n.tag!==1)throw Error(C(309));var r=n.stateNode}if(!r)throw Error(C(147,e));var s=r,l=""+e;return t!==null&&t.ref!==null&&typeof t.ref=="function"&&t.ref._stringRef===l?t.ref:(t=function(i){var a=s.refs;i===null?delete a[l]:a[l]=i},t._stringRef=l,t)}if(typeof e!="string")throw Error(C(284));if(!n._owner)throw Error(C(290,e))}return e}function ds(e,t){throw e=Object.prototype.toString.call(t),Error(C(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function cc(e){var t=e._init;return t(e._payload)}function xd(e){function t(m,u){if(e){var p=m.deletions;p===null?(m.deletions=[u],m.flags|=16):p.push(u)}}function n(m,u){if(!e)return null;for(;u!==null;)t(m,u),u=u.sibling;return null}function r(m,u){for(m=new Map;u!==null;)u.key!==null?m.set(u.key,u):m.set(u.index,u),u=u.sibling;return m}function s(m,u){return m=Bt(m,u),m.index=0,m.sibling=null,m}function l(m,u,p){return m.index=p,e?(p=m.alternate,p!==null?(p=p.index,p<u?(m.flags|=2,u):p):(m.flags|=2,u)):(m.flags|=1048576,u)}function i(m){return e&&m.alternate===null&&(m.flags|=2),m}function a(m,u,p,x){return u===null||u.tag!==6?(u=ro(p,m.mode,x),u.return=m,u):(u=s(u,p),u.return=m,u)}function c(m,u,p,x){var k=p.type;return k===Sn?g(m,u,p.props.children,x,p.key):u!==null&&(u.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===_t&&cc(k)===u.type)?(x=s(u,p.props),x.ref=ir(m,u,p),x.return=m,x):(x=Ps(p.type,p.key,p.props,null,m.mode,x),x.ref=ir(m,u,p),x.return=m,x)}function f(m,u,p,x){return u===null||u.tag!==4||u.stateNode.containerInfo!==p.containerInfo||u.stateNode.implementation!==p.implementation?(u=so(p,m.mode,x),u.return=m,u):(u=s(u,p.children||[]),u.return=m,u)}function g(m,u,p,x,k){return u===null||u.tag!==7?(u=cn(p,m.mode,x,k),u.return=m,u):(u=s(u,p),u.return=m,u)}function v(m,u,p){if(typeof u=="string"&&u!==""||typeof u=="number")return u=ro(""+u,m.mode,p),u.return=m,u;if(typeof u=="object"&&u!==null){switch(u.$$typeof){case es:return p=Ps(u.type,u.key,u.props,null,m.mode,p),p.ref=ir(m,null,u),p.return=m,p;case Nn:return u=so(u,m.mode,p),u.return=m,u;case _t:var x=u._init;return v(m,x(u._payload),p)}if(hr(u)||nr(u))return u=cn(u,m.mode,p,null),u.return=m,u;ds(m,u)}return null}function d(m,u,p,x){var k=u!==null?u.key:null;if(typeof p=="string"&&p!==""||typeof p=="number")return k!==null?null:a(m,u,""+p,x);if(typeof p=="object"&&p!==null){switch(p.$$typeof){case es:return p.key===k?c(m,u,p,x):null;case Nn:return p.key===k?f(m,u,p,x):null;case _t:return k=p._init,d(m,u,k(p._payload),x)}if(hr(p)||nr(p))return k!==null?null:g(m,u,p,x,null);ds(m,p)}return null}function h(m,u,p,x,k){if(typeof x=="string"&&x!==""||typeof x=="number")return m=m.get(p)||null,a(u,m,""+x,k);if(typeof x=="object"&&x!==null){switch(x.$$typeof){case es:return m=m.get(x.key===null?p:x.key)||null,c(u,m,x,k);case Nn:return m=m.get(x.key===null?p:x.key)||null,f(u,m,x,k);case _t:var T=x._init;return h(m,u,p,T(x._payload),k)}if(hr(x)||nr(x))return m=m.get(p)||null,g(u,m,x,k,null);ds(u,x)}return null}function y(m,u,p,x){for(var k=null,T=null,P=u,R=u=0,W=null;P!==null&&R<p.length;R++){P.index>R?(W=P,P=null):W=P.sibling;var I=d(m,P,p[R],x);if(I===null){P===null&&(P=W);break}e&&P&&I.alternate===null&&t(m,P),u=l(I,u,R),T===null?k=I:T.sibling=I,T=I,P=W}if(R===p.length)return n(m,P),Y&&nn(m,R),k;if(P===null){for(;R<p.length;R++)P=v(m,p[R],x),P!==null&&(u=l(P,u,R),T===null?k=P:T.sibling=P,T=P);return Y&&nn(m,R),k}for(P=r(m,P);R<p.length;R++)W=h(P,m,R,p[R],x),W!==null&&(e&&W.alternate!==null&&P.delete(W.key===null?R:W.key),u=l(W,u,R),T===null?k=W:T.sibling=W,T=W);return e&&P.forEach(function(he){return t(m,he)}),Y&&nn(m,R),k}function N(m,u,p,x){var k=nr(p);if(typeof k!="function")throw Error(C(150));if(p=k.call(p),p==null)throw Error(C(151));for(var T=k=null,P=u,R=u=0,W=null,I=p.next();P!==null&&!I.done;R++,I=p.next()){P.index>R?(W=P,P=null):W=P.sibling;var he=d(m,P,I.value,x);if(he===null){P===null&&(P=W);break}e&&P&&he.alternate===null&&t(m,P),u=l(he,u,R),T===null?k=he:T.sibling=he,T=he,P=W}if(I.done)return n(m,P),Y&&nn(m,R),k;if(P===null){for(;!I.done;R++,I=p.next())I=v(m,I.value,x),I!==null&&(u=l(I,u,R),T===null?k=I:T.sibling=I,T=I);return Y&&nn(m,R),k}for(P=r(m,P);!I.done;R++,I=p.next())I=h(P,m,R,I.value,x),I!==null&&(e&&I.alternate!==null&&P.delete(I.key===null?R:I.key),u=l(I,u,R),T===null?k=I:T.sibling=I,T=I);return e&&P.forEach(function(He){return t(m,He)}),Y&&nn(m,R),k}function b(m,u,p,x){if(typeof p=="object"&&p!==null&&p.type===Sn&&p.key===null&&(p=p.props.children),typeof p=="object"&&p!==null){switch(p.$$typeof){case es:e:{for(var k=p.key,T=u;T!==null;){if(T.key===k){if(k=p.type,k===Sn){if(T.tag===7){n(m,T.sibling),u=s(T,p.props.children),u.return=m,m=u;break e}}else if(T.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===_t&&cc(k)===T.type){n(m,T.sibling),u=s(T,p.props),u.ref=ir(m,T,p),u.return=m,m=u;break e}n(m,T);break}else t(m,T);T=T.sibling}p.type===Sn?(u=cn(p.props.children,m.mode,x,p.key),u.return=m,m=u):(x=Ps(p.type,p.key,p.props,null,m.mode,x),x.ref=ir(m,u,p),x.return=m,m=x)}return i(m);case Nn:e:{for(T=p.key;u!==null;){if(u.key===T)if(u.tag===4&&u.stateNode.containerInfo===p.containerInfo&&u.stateNode.implementation===p.implementation){n(m,u.sibling),u=s(u,p.children||[]),u.return=m,m=u;break e}else{n(m,u);break}else t(m,u);u=u.sibling}u=so(p,m.mode,x),u.return=m,m=u}return i(m);case _t:return T=p._init,b(m,u,T(p._payload),x)}if(hr(p))return y(m,u,p,x);if(nr(p))return N(m,u,p,x);ds(m,p)}return typeof p=="string"&&p!==""||typeof p=="number"?(p=""+p,u!==null&&u.tag===6?(n(m,u.sibling),u=s(u,p),u.return=m,m=u):(n(m,u),u=ro(p,m.mode,x),u.return=m,m=u),i(m)):n(m,u)}return b}var Vn=xd(!0),wd=xd(!1),Qs=Gt(null),Gs=null,Pn=null,Hi=null;function qi(){Hi=Pn=Gs=null}function Ki(e){var t=Qs.current;J(Qs),e._currentValue=t}function qo(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function $n(e,t){Gs=e,Hi=Pn=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(_e=!0),e.firstContext=null)}function Ve(e){var t=e._currentValue;if(Hi!==e)if(e={context:e,memoizedValue:t,next:null},Pn===null){if(Gs===null)throw Error(C(308));Pn=e,Gs.dependencies={lanes:0,firstContext:e}}else Pn=Pn.next=e;return t}var ln=null;function Qi(e){ln===null?ln=[e]:ln.push(e)}function Nd(e,t,n,r){var s=t.interleaved;return s===null?(n.next=n,Qi(t)):(n.next=s.next,s.next=n),t.interleaved=n,St(e,r)}function St(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var Tt=!1;function Gi(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Sd(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function xt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Dt(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,V&2){var s=r.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),r.pending=t,St(e,n)}return s=r.interleaved,s===null?(t.next=t,Qi(r)):(t.next=s.next,s.next=t),r.interleaved=t,St(e,n)}function ks(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ai(e,n)}}function uc(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var s=null,l=null;if(n=n.firstBaseUpdate,n!==null){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};l===null?s=l=i:l=l.next=i,n=n.next}while(n!==null);l===null?s=l=t:l=l.next=t}else s=l=t;n={baseState:r.baseState,firstBaseUpdate:s,lastBaseUpdate:l,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Js(e,t,n,r){var s=e.updateQueue;Tt=!1;var l=s.firstBaseUpdate,i=s.lastBaseUpdate,a=s.shared.pending;if(a!==null){s.shared.pending=null;var c=a,f=c.next;c.next=null,i===null?l=f:i.next=f,i=c;var g=e.alternate;g!==null&&(g=g.updateQueue,a=g.lastBaseUpdate,a!==i&&(a===null?g.firstBaseUpdate=f:a.next=f,g.lastBaseUpdate=c))}if(l!==null){var v=s.baseState;i=0,g=f=c=null,a=l;do{var d=a.lane,h=a.eventTime;if((r&d)===d){g!==null&&(g=g.next={eventTime:h,lane:0,tag:a.tag,payload:a.payload,callback:a.callback,next:null});e:{var y=e,N=a;switch(d=t,h=n,N.tag){case 1:if(y=N.payload,typeof y=="function"){v=y.call(h,v,d);break e}v=y;break e;case 3:y.flags=y.flags&-65537|128;case 0:if(y=N.payload,d=typeof y=="function"?y.call(h,v,d):y,d==null)break e;v=te({},v,d);break e;case 2:Tt=!0}}a.callback!==null&&a.lane!==0&&(e.flags|=64,d=s.effects,d===null?s.effects=[a]:d.push(a))}else h={eventTime:h,lane:d,tag:a.tag,payload:a.payload,callback:a.callback,next:null},g===null?(f=g=h,c=v):g=g.next=h,i|=d;if(a=a.next,a===null){if(a=s.shared.pending,a===null)break;d=a,a=d.next,d.next=null,s.lastBaseUpdate=d,s.shared.pending=null}}while(!0);if(g===null&&(c=v),s.baseState=c,s.firstBaseUpdate=f,s.lastBaseUpdate=g,t=s.shared.interleaved,t!==null){s=t;do i|=s.lane,s=s.next;while(s!==t)}else l===null&&(s.shared.lanes=0);hn|=i,e.lanes=i,e.memoizedState=v}}function dc(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var r=e[t],s=r.callback;if(s!==null){if(r.callback=null,r=n,typeof s!="function")throw Error(C(191,s));s.call(r)}}}var Xr={},dt=Gt(Xr),zr=Gt(Xr),Dr=Gt(Xr);function on(e){if(e===Xr)throw Error(C(174));return e}function Ji(e,t){switch(Q(Dr,t),Q(zr,e),Q(dt,Xr),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:Co(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=Co(t,e)}J(dt),Q(dt,t)}function Wn(){J(dt),J(zr),J(Dr)}function bd(e){on(Dr.current);var t=on(dt.current),n=Co(t,e.type);t!==n&&(Q(zr,e),Q(dt,n))}function Yi(e){zr.current===e&&(J(dt),J(zr))}var X=Gt(0);function Ys(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==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)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}var Yl=[];function Xi(){for(var e=0;e<Yl.length;e++)Yl[e]._workInProgressVersionPrimary=null;Yl.length=0}var js=kt.ReactCurrentDispatcher,Xl=kt.ReactCurrentBatchConfig,fn=0,Z=null,ce=null,de=null,Xs=!1,Sr=!1,Ur=0,Jp=0;function ye(){throw Error(C(321))}function Zi(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!rt(e[n],t[n]))return!1;return!0}function ea(e,t,n,r,s,l){if(fn=l,Z=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,js.current=e===null||e.memoizedState===null?em:tm,e=n(r,s),Sr){l=0;do{if(Sr=!1,Ur=0,25<=l)throw Error(C(301));l+=1,de=ce=null,t.updateQueue=null,js.current=nm,e=n(r,s)}while(Sr)}if(js.current=Zs,t=ce!==null&&ce.next!==null,fn=0,de=ce=Z=null,Xs=!1,t)throw Error(C(300));return e}function ta(){var e=Ur!==0;return Ur=0,e}function at(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return de===null?Z.memoizedState=de=e:de=de.next=e,de}function We(){if(ce===null){var e=Z.alternate;e=e!==null?e.memoizedState:null}else e=ce.next;var t=de===null?Z.memoizedState:de.next;if(t!==null)de=t,ce=e;else{if(e===null)throw Error(C(310));ce=e,e={memoizedState:ce.memoizedState,baseState:ce.baseState,baseQueue:ce.baseQueue,queue:ce.queue,next:null},de===null?Z.memoizedState=de=e:de=de.next=e}return de}function Fr(e,t){return typeof t=="function"?t(e):t}function Zl(e){var t=We(),n=t.queue;if(n===null)throw Error(C(311));n.lastRenderedReducer=e;var r=ce,s=r.baseQueue,l=n.pending;if(l!==null){if(s!==null){var i=s.next;s.next=l.next,l.next=i}r.baseQueue=s=l,n.pending=null}if(s!==null){l=s.next,r=r.baseState;var a=i=null,c=null,f=l;do{var g=f.lane;if((fn&g)===g)c!==null&&(c=c.next={lane:0,action:f.action,hasEagerState:f.hasEagerState,eagerState:f.eagerState,next:null}),r=f.hasEagerState?f.eagerState:e(r,f.action);else{var v={lane:g,action:f.action,hasEagerState:f.hasEagerState,eagerState:f.eagerState,next:null};c===null?(a=c=v,i=r):c=c.next=v,Z.lanes|=g,hn|=g}f=f.next}while(f!==null&&f!==l);c===null?i=r:c.next=a,rt(r,t.memoizedState)||(_e=!0),t.memoizedState=r,t.baseState=i,t.baseQueue=c,n.lastRenderedState=r}if(e=n.interleaved,e!==null){s=e;do l=s.lane,Z.lanes|=l,hn|=l,s=s.next;while(s!==e)}else s===null&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function eo(e){var t=We(),n=t.queue;if(n===null)throw Error(C(311));n.lastRenderedReducer=e;var r=n.dispatch,s=n.pending,l=t.memoizedState;if(s!==null){n.pending=null;var i=s=s.next;do l=e(l,i.action),i=i.next;while(i!==s);rt(l,t.memoizedState)||(_e=!0),t.memoizedState=l,t.baseQueue===null&&(t.baseState=l),n.lastRenderedState=l}return[l,r]}function kd(){}function jd(e,t){var n=Z,r=We(),s=t(),l=!rt(r.memoizedState,s);if(l&&(r.memoizedState=s,_e=!0),r=r.queue,na(_d.bind(null,n,r,e),[e]),r.getSnapshot!==t||l||de!==null&&de.memoizedState.tag&1){if(n.flags|=2048,Br(9,Ed.bind(null,n,r,s,t),void 0,null),fe===null)throw Error(C(349));fn&30||Cd(n,t,s)}return s}function Cd(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=Z.updateQueue,t===null?(t={lastEffect:null,stores:null},Z.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Ed(e,t,n,r){t.value=n,t.getSnapshot=r,Td(t)&&Pd(e)}function _d(e,t,n){return n(function(){Td(t)&&Pd(e)})}function Td(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!rt(e,n)}catch{return!0}}function Pd(e){var t=St(e,1);t!==null&&tt(t,e,1,-1)}function fc(e){var t=at();return typeof e=="function"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Fr,lastRenderedState:e},t.queue=e,e=e.dispatch=Zp.bind(null,Z,e),[t.memoizedState,e]}function Br(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},t=Z.updateQueue,t===null?(t={lastEffect:null,stores:null},Z.updateQueue=t,t.lastEffect=e.next=e):(n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e)),e}function Ld(){return We().memoizedState}function Cs(e,t,n,r){var s=at();Z.flags|=e,s.memoizedState=Br(1|t,n,void 0,r===void 0?null:r)}function gl(e,t,n,r){var s=We();r=r===void 0?null:r;var l=void 0;if(ce!==null){var i=ce.memoizedState;if(l=i.destroy,r!==null&&Zi(r,i.deps)){s.memoizedState=Br(t,n,l,r);return}}Z.flags|=e,s.memoizedState=Br(1|t,n,l,r)}function hc(e,t){return Cs(8390656,8,e,t)}function na(e,t){return gl(2048,8,e,t)}function Rd(e,t){return gl(4,2,e,t)}function Od(e,t){return gl(4,4,e,t)}function Ad(e,t){if(typeof t=="function")return e=e(),t(e),function(){t(null)};if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function Md(e,t,n){return n=n!=null?n.concat([e]):null,gl(4,4,Ad.bind(null,t,e),n)}function ra(){}function Id(e,t){var n=We();t=t===void 0?null:t;var r=n.memoizedState;return r!==null&&t!==null&&Zi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function $d(e,t){var n=We();t=t===void 0?null:t;var r=n.memoizedState;return r!==null&&t!==null&&Zi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function zd(e,t,n){return fn&21?(rt(n,t)||(n=Vu(),Z.lanes|=n,hn|=n,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,_e=!0),e.memoizedState=n)}function Yp(e,t){var n=q;q=n!==0&&4>n?n:4,e(!0);var r=Xl.transition;Xl.transition={};try{e(!1),t()}finally{q=n,Xl.transition=r}}function Dd(){return We().memoizedState}function Xp(e,t,n){var r=Ft(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Ud(e))Fd(t,n);else if(n=Nd(e,t,n,r),n!==null){var s=ke();tt(n,e,r,s),Bd(n,t,r)}}function Zp(e,t,n){var r=Ft(e),s={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ud(e))Fd(t,s);else{var l=e.alternate;if(e.lanes===0&&(l===null||l.lanes===0)&&(l=t.lastRenderedReducer,l!==null))try{var i=t.lastRenderedState,a=l(i,n);if(s.hasEagerState=!0,s.eagerState=a,rt(a,i)){var c=t.interleaved;c===null?(s.next=s,Qi(t)):(s.next=c.next,c.next=s),t.interleaved=s;return}}catch{}finally{}n=Nd(e,t,s,r),n!==null&&(s=ke(),tt(n,e,r,s),Bd(n,t,r))}}function Ud(e){var t=e.alternate;return e===Z||t!==null&&t===Z}function Fd(e,t){Sr=Xs=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Bd(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ai(e,n)}}var Zs={readContext:Ve,useCallback:ye,useContext:ye,useEffect:ye,useImperativeHandle:ye,useInsertionEffect:ye,useLayoutEffect:ye,useMemo:ye,useReducer:ye,useRef:ye,useState:ye,useDebugValue:ye,useDeferredValue:ye,useTransition:ye,useMutableSource:ye,useSyncExternalStore:ye,useId:ye,unstable_isNewReconciler:!1},em={readContext:Ve,useCallback:function(e,t){return at().memoizedState=[e,t===void 0?null:t],e},useContext:Ve,useEffect:hc,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Cs(4194308,4,Ad.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Cs(4194308,4,e,t)},useInsertionEffect:function(e,t){return Cs(4,2,e,t)},useMemo:function(e,t){var n=at();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=at();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Xp.bind(null,Z,e),[r.memoizedState,e]},useRef:function(e){var t=at();return e={current:e},t.memoizedState=e},useState:fc,useDebugValue:ra,useDeferredValue:function(e){return at().memoizedState=e},useTransition:function(){var e=fc(!1),t=e[0];return e=Yp.bind(null,e[1]),at().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Z,s=at();if(Y){if(n===void 0)throw Error(C(407));n=n()}else{if(n=t(),fe===null)throw Error(C(349));fn&30||Cd(r,t,n)}s.memoizedState=n;var l={value:n,getSnapshot:t};return s.queue=l,hc(_d.bind(null,r,l,e),[e]),r.flags|=2048,Br(9,Ed.bind(null,r,l,n,t),void 0,null),n},useId:function(){var e=at(),t=fe.identifierPrefix;if(Y){var n=yt,r=vt;n=(r&~(1<<32-et(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Ur++,0<n&&(t+="H"+n.toString(32)),t+=":"}else n=Jp++,t=":"+t+"r"+n.toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},tm={readContext:Ve,useCallback:Id,useContext:Ve,useEffect:na,useImperativeHandle:Md,useInsertionEffect:Rd,useLayoutEffect:Od,useMemo:$d,useReducer:Zl,useRef:Ld,useState:function(){return Zl(Fr)},useDebugValue:ra,useDeferredValue:function(e){var t=We();return zd(t,ce.memoizedState,e)},useTransition:function(){var e=Zl(Fr)[0],t=We().memoizedState;return[e,t]},useMutableSource:kd,useSyncExternalStore:jd,useId:Dd,unstable_isNewReconciler:!1},nm={readContext:Ve,useCallback:Id,useContext:Ve,useEffect:na,useImperativeHandle:Md,useInsertionEffect:Rd,useLayoutEffect:Od,useMemo:$d,useReducer:eo,useRef:Ld,useState:function(){return eo(Fr)},useDebugValue:ra,useDeferredValue:function(e){var t=We();return ce===null?t.memoizedState=e:zd(t,ce.memoizedState,e)},useTransition:function(){var e=eo(Fr)[0],t=We().memoizedState;return[e,t]},useMutableSource:kd,useSyncExternalStore:jd,useId:Dd,unstable_isNewReconciler:!1};function Je(e,t){if(e&&e.defaultProps){t=te({},t),e=e.defaultProps;for(var n in e)t[n]===void 0&&(t[n]=e[n]);return t}return t}function Ko(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:te({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var vl={isMounted:function(e){return(e=e._reactInternals)?vn(e)===e:!1},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=ke(),s=Ft(e),l=xt(r,s);l.payload=t,n!=null&&(l.callback=n),t=Dt(e,l,s),t!==null&&(tt(t,e,s,r),ks(t,e,s))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=ke(),s=Ft(e),l=xt(r,s);l.tag=1,l.payload=t,n!=null&&(l.callback=n),t=Dt(e,l,s),t!==null&&(tt(t,e,s,r),ks(t,e,s))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ke(),r=Ft(e),s=xt(n,r);s.tag=2,t!=null&&(s.callback=t),t=Dt(e,s,r),t!==null&&(tt(t,e,r,n),ks(t,e,r))}};function pc(e,t,n,r,s,l,i){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(r,l,i):t.prototype&&t.prototype.isPureReactComponent?!Ar(n,r)||!Ar(s,l):!0}function Vd(e,t,n){var r=!1,s=qt,l=t.contextType;return typeof l=="object"&&l!==null?l=Ve(l):(s=Pe(t)?un:Ne.current,r=t.contextTypes,l=(r=r!=null)?Fn(e,s):qt),t=new t(n,l),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=vl,e.stateNode=t,t._reactInternals=e,r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=s,e.__reactInternalMemoizedMaskedChildContext=l),t}function mc(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&vl.enqueueReplaceState(t,t.state,null)}function Qo(e,t,n,r){var s=e.stateNode;s.props=n,s.state=e.memoizedState,s.refs={},Gi(e);var l=t.contextType;typeof l=="object"&&l!==null?s.context=Ve(l):(l=Pe(t)?un:Ne.current,s.context=Fn(e,l)),s.state=e.memoizedState,l=t.getDerivedStateFromProps,typeof l=="function"&&(Ko(e,t,l,n),s.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof s.getSnapshotBeforeUpdate=="function"||typeof s.UNSAFE_componentWillMount!="function"&&typeof s.componentWillMount!="function"||(t=s.state,typeof s.componentWillMount=="function"&&s.componentWillMount(),typeof s.UNSAFE_componentWillMount=="function"&&s.UNSAFE_componentWillMount(),t!==s.state&&vl.enqueueReplaceState(s,s.state,null),Js(e,n,s,r),s.state=e.memoizedState),typeof s.componentDidMount=="function"&&(e.flags|=4194308)}function Hn(e,t){try{var n="",r=t;do n+=Ph(r),r=r.return;while(r);var s=n}catch(l){s=`
|
|
39
|
+
Error generating stack: `+l.message+`
|
|
40
|
+
`+l.stack}return{value:e,source:t,stack:s,digest:null}}function to(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function Go(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var rm=typeof WeakMap=="function"?WeakMap:Map;function Wd(e,t,n){n=xt(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){tl||(tl=!0,li=r),Go(e,t)},n}function Hd(e,t,n){n=xt(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var s=t.value;n.payload=function(){return r(s)},n.callback=function(){Go(e,t)}}var l=e.stateNode;return l!==null&&typeof l.componentDidCatch=="function"&&(n.callback=function(){Go(e,t),typeof r!="function"&&(Ut===null?Ut=new Set([this]):Ut.add(this));var i=t.stack;this.componentDidCatch(t.value,{componentStack:i!==null?i:""})}),n}function gc(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new rm;var s=new Set;r.set(t,s)}else s=r.get(t),s===void 0&&(s=new Set,r.set(t,s));s.has(n)||(s.add(n),e=vm.bind(null,e,t,n),t.then(e,e))}function vc(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function yc(e,t,n,r,s){return e.mode&1?(e.flags|=65536,e.lanes=s,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=xt(-1,1),t.tag=2,Dt(n,t,1))),n.lanes|=1),e)}var sm=kt.ReactCurrentOwner,_e=!1;function Se(e,t,n,r){t.child=e===null?wd(t,null,n,r):Vn(t,e.child,n,r)}function xc(e,t,n,r,s){n=n.render;var l=t.ref;return $n(t,s),r=ea(e,t,n,r,l,s),n=ta(),e!==null&&!_e?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~s,bt(e,t,s)):(Y&&n&&Bi(t),t.flags|=1,Se(e,t,r,s),t.child)}function wc(e,t,n,r,s){if(e===null){var l=n.type;return typeof l=="function"&&!da(l)&&l.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=l,qd(e,t,l,r,s)):(e=Ps(n.type,null,r,t,t.mode,s),e.ref=t.ref,e.return=t,t.child=e)}if(l=e.child,!(e.lanes&s)){var i=l.memoizedProps;if(n=n.compare,n=n!==null?n:Ar,n(i,r)&&e.ref===t.ref)return bt(e,t,s)}return t.flags|=1,e=Bt(l,r),e.ref=t.ref,e.return=t,t.child=e}function qd(e,t,n,r,s){if(e!==null){var l=e.memoizedProps;if(Ar(l,r)&&e.ref===t.ref)if(_e=!1,t.pendingProps=r=l,(e.lanes&s)!==0)e.flags&131072&&(_e=!0);else return t.lanes=e.lanes,bt(e,t,s)}return Jo(e,t,n,r,s)}function Kd(e,t,n){var r=t.pendingProps,s=r.children,l=e!==null?e.memoizedState:null;if(r.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Q(Rn,Re),Re|=n;else{if(!(n&1073741824))return e=l!==null?l.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Q(Rn,Re),Re|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=l!==null?l.baseLanes:n,Q(Rn,Re),Re|=r}else l!==null?(r=l.baseLanes|n,t.memoizedState=null):r=n,Q(Rn,Re),Re|=r;return Se(e,t,s,n),t.child}function Qd(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Jo(e,t,n,r,s){var l=Pe(n)?un:Ne.current;return l=Fn(t,l),$n(t,s),n=ea(e,t,n,r,l,s),r=ta(),e!==null&&!_e?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~s,bt(e,t,s)):(Y&&r&&Bi(t),t.flags|=1,Se(e,t,n,s),t.child)}function Nc(e,t,n,r,s){if(Pe(n)){var l=!0;Hs(t)}else l=!1;if($n(t,s),t.stateNode===null)Es(e,t),Vd(t,n,r),Qo(t,n,r,s),r=!0;else if(e===null){var i=t.stateNode,a=t.memoizedProps;i.props=a;var c=i.context,f=n.contextType;typeof f=="object"&&f!==null?f=Ve(f):(f=Pe(n)?un:Ne.current,f=Fn(t,f));var g=n.getDerivedStateFromProps,v=typeof g=="function"||typeof i.getSnapshotBeforeUpdate=="function";v||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(a!==r||c!==f)&&mc(t,i,r,f),Tt=!1;var d=t.memoizedState;i.state=d,Js(t,r,i,s),c=t.memoizedState,a!==r||d!==c||Te.current||Tt?(typeof g=="function"&&(Ko(t,n,g,r),c=t.memoizedState),(a=Tt||pc(t,n,a,r,d,c,f))?(v||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount()),typeof i.componentDidMount=="function"&&(t.flags|=4194308)):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=c),i.props=r,i.state=c,i.context=f,r=a):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,Sd(e,t),a=t.memoizedProps,f=t.type===t.elementType?a:Je(t.type,a),i.props=f,v=t.pendingProps,d=i.context,c=n.contextType,typeof c=="object"&&c!==null?c=Ve(c):(c=Pe(n)?un:Ne.current,c=Fn(t,c));var h=n.getDerivedStateFromProps;(g=typeof h=="function"||typeof i.getSnapshotBeforeUpdate=="function")||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(a!==v||d!==c)&&mc(t,i,r,c),Tt=!1,d=t.memoizedState,i.state=d,Js(t,r,i,s);var y=t.memoizedState;a!==v||d!==y||Te.current||Tt?(typeof h=="function"&&(Ko(t,n,h,r),y=t.memoizedState),(f=Tt||pc(t,n,f,r,d,y,c)||!1)?(g||typeof i.UNSAFE_componentWillUpdate!="function"&&typeof i.componentWillUpdate!="function"||(typeof i.componentWillUpdate=="function"&&i.componentWillUpdate(r,y,c),typeof i.UNSAFE_componentWillUpdate=="function"&&i.UNSAFE_componentWillUpdate(r,y,c)),typeof i.componentDidUpdate=="function"&&(t.flags|=4),typeof i.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof i.componentDidUpdate!="function"||a===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||a===e.memoizedProps&&d===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=y),i.props=r,i.state=y,i.context=c,r=f):(typeof i.componentDidUpdate!="function"||a===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||a===e.memoizedProps&&d===e.memoizedState||(t.flags|=1024),r=!1)}return Yo(e,t,n,r,l,s)}function Yo(e,t,n,r,s,l){Qd(e,t);var i=(t.flags&128)!==0;if(!r&&!i)return s&&oc(t,n,!1),bt(e,t,l);r=t.stateNode,sm.current=t;var a=i&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&i?(t.child=Vn(t,e.child,null,l),t.child=Vn(t,null,a,l)):Se(e,t,a,l),t.memoizedState=r.state,s&&oc(t,n,!0),t.child}function Gd(e){var t=e.stateNode;t.pendingContext?lc(e,t.pendingContext,t.pendingContext!==t.context):t.context&&lc(e,t.context,!1),Ji(e,t.containerInfo)}function Sc(e,t,n,r,s){return Bn(),Wi(s),t.flags|=256,Se(e,t,n,r),t.child}var Xo={dehydrated:null,treeContext:null,retryLane:0};function Zo(e){return{baseLanes:e,cachePool:null,transitions:null}}function Jd(e,t,n){var r=t.pendingProps,s=X.current,l=!1,i=(t.flags&128)!==0,a;if((a=i)||(a=e!==null&&e.memoizedState===null?!1:(s&2)!==0),a?(l=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(s|=1),Q(X,s&1),e===null)return Ho(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.mode&1?e.data==="$!"?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(i=r.children,e=r.fallback,l?(r=t.mode,l=t.child,i={mode:"hidden",children:i},!(r&1)&&l!==null?(l.childLanes=0,l.pendingProps=i):l=wl(i,r,0,null),e=cn(e,r,n,null),l.return=t,e.return=t,l.sibling=e,t.child=l,t.child.memoizedState=Zo(n),t.memoizedState=Xo,e):sa(t,i));if(s=e.memoizedState,s!==null&&(a=s.dehydrated,a!==null))return lm(e,t,i,r,a,s,n);if(l){l=r.fallback,i=t.mode,s=e.child,a=s.sibling;var c={mode:"hidden",children:r.children};return!(i&1)&&t.child!==s?(r=t.child,r.childLanes=0,r.pendingProps=c,t.deletions=null):(r=Bt(s,c),r.subtreeFlags=s.subtreeFlags&14680064),a!==null?l=Bt(a,l):(l=cn(l,i,n,null),l.flags|=2),l.return=t,r.return=t,r.sibling=l,t.child=r,r=l,l=t.child,i=e.child.memoizedState,i=i===null?Zo(n):{baseLanes:i.baseLanes|n,cachePool:null,transitions:i.transitions},l.memoizedState=i,l.childLanes=e.childLanes&~n,t.memoizedState=Xo,r}return l=e.child,e=l.sibling,r=Bt(l,{mode:"visible",children:r.children}),!(t.mode&1)&&(r.lanes=n),r.return=t,r.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function sa(e,t){return t=wl({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function fs(e,t,n,r){return r!==null&&Wi(r),Vn(t,e.child,null,n),e=sa(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function lm(e,t,n,r,s,l,i){if(n)return t.flags&256?(t.flags&=-257,r=to(Error(C(422))),fs(e,t,i,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(l=r.fallback,s=t.mode,r=wl({mode:"visible",children:r.children},s,0,null),l=cn(l,s,i,null),l.flags|=2,r.return=t,l.return=t,r.sibling=l,t.child=r,t.mode&1&&Vn(t,e.child,null,i),t.child.memoizedState=Zo(i),t.memoizedState=Xo,l);if(!(t.mode&1))return fs(e,t,i,null);if(s.data==="$!"){if(r=s.nextSibling&&s.nextSibling.dataset,r)var a=r.dgst;return r=a,l=Error(C(419)),r=to(l,r,void 0),fs(e,t,i,r)}if(a=(i&e.childLanes)!==0,_e||a){if(r=fe,r!==null){switch(i&-i){case 4:s=2;break;case 16:s=8;break;case 64: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:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:s=32;break;case 536870912:s=268435456;break;default:s=0}s=s&(r.suspendedLanes|i)?0:s,s!==0&&s!==l.retryLane&&(l.retryLane=s,St(e,s),tt(r,e,s,-1))}return ua(),r=to(Error(C(421))),fs(e,t,i,r)}return s.data==="$?"?(t.flags|=128,t.child=e.child,t=ym.bind(null,e),s._reactRetry=t,null):(e=l.treeContext,Oe=zt(s.nextSibling),Ae=t,Y=!0,Ze=null,e!==null&&(ze[De++]=vt,ze[De++]=yt,ze[De++]=dn,vt=e.id,yt=e.overflow,dn=t),t=sa(t,r.children),t.flags|=4096,t)}function bc(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),qo(e.return,t,n)}function no(e,t,n,r,s){var l=e.memoizedState;l===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:s}:(l.isBackwards=t,l.rendering=null,l.renderingStartTime=0,l.last=r,l.tail=n,l.tailMode=s)}function Yd(e,t,n){var r=t.pendingProps,s=r.revealOrder,l=r.tail;if(Se(e,t,r.children,n),r=X.current,r&2)r=r&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&bc(e,n,t);else if(e.tag===19)bc(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}r&=1}if(Q(X,r),!(t.mode&1))t.memoizedState=null;else switch(s){case"forwards":for(n=t.child,s=null;n!==null;)e=n.alternate,e!==null&&Ys(e)===null&&(s=n),n=n.sibling;n=s,n===null?(s=t.child,t.child=null):(s=n.sibling,n.sibling=null),no(t,!1,s,n,l);break;case"backwards":for(n=null,s=t.child,t.child=null;s!==null;){if(e=s.alternate,e!==null&&Ys(e)===null){t.child=s;break}e=s.sibling,s.sibling=n,n=s,s=e}no(t,!0,n,null,l);break;case"together":no(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Es(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function bt(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),hn|=t.lanes,!(n&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(C(153));if(t.child!==null){for(e=t.child,n=Bt(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=Bt(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function om(e,t,n){switch(t.tag){case 3:Gd(t),Bn();break;case 5:bd(t);break;case 1:Pe(t.type)&&Hs(t);break;case 4:Ji(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,s=t.memoizedProps.value;Q(Qs,r._currentValue),r._currentValue=s;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(Q(X,X.current&1),t.flags|=128,null):n&t.child.childLanes?Jd(e,t,n):(Q(X,X.current&1),e=bt(e,t,n),e!==null?e.sibling:null);Q(X,X.current&1);break;case 19:if(r=(n&t.childLanes)!==0,e.flags&128){if(r)return Yd(e,t,n);t.flags|=128}if(s=t.memoizedState,s!==null&&(s.rendering=null,s.tail=null,s.lastEffect=null),Q(X,X.current),r)break;return null;case 22:case 23:return t.lanes=0,Kd(e,t,n)}return bt(e,t,n)}var Xd,ei,Zd,ef;Xd=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}};ei=function(){};Zd=function(e,t,n,r){var s=e.memoizedProps;if(s!==r){e=t.stateNode,on(dt.current);var l=null;switch(n){case"input":s=So(e,s),r=So(e,r),l=[];break;case"select":s=te({},s,{value:void 0}),r=te({},r,{value:void 0}),l=[];break;case"textarea":s=jo(e,s),r=jo(e,r),l=[];break;default:typeof s.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=Vs)}Eo(n,r);var i;n=null;for(f in s)if(!r.hasOwnProperty(f)&&s.hasOwnProperty(f)&&s[f]!=null)if(f==="style"){var a=s[f];for(i in a)a.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else f!=="dangerouslySetInnerHTML"&&f!=="children"&&f!=="suppressContentEditableWarning"&&f!=="suppressHydrationWarning"&&f!=="autoFocus"&&(Er.hasOwnProperty(f)?l||(l=[]):(l=l||[]).push(f,null));for(f in r){var c=r[f];if(a=s!=null?s[f]:void 0,r.hasOwnProperty(f)&&c!==a&&(c!=null||a!=null))if(f==="style")if(a){for(i in a)!a.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&a[i]!==c[i]&&(n||(n={}),n[i]=c[i])}else n||(l||(l=[]),l.push(f,n)),n=c;else f==="dangerouslySetInnerHTML"?(c=c?c.__html:void 0,a=a?a.__html:void 0,c!=null&&a!==c&&(l=l||[]).push(f,c)):f==="children"?typeof c!="string"&&typeof c!="number"||(l=l||[]).push(f,""+c):f!=="suppressContentEditableWarning"&&f!=="suppressHydrationWarning"&&(Er.hasOwnProperty(f)?(c!=null&&f==="onScroll"&&G("scroll",e),l||a===c||(l=[])):(l=l||[]).push(f,c))}n&&(l=l||[]).push("style",n);var f=l;(t.updateQueue=f)&&(t.flags|=4)}};ef=function(e,t,n,r){n!==r&&(t.flags|=4)};function ar(e,t){if(!Y)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 r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function xe(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var s=e.child;s!==null;)n|=s.lanes|s.childLanes,r|=s.subtreeFlags&14680064,r|=s.flags&14680064,s.return=e,s=s.sibling;else for(s=e.child;s!==null;)n|=s.lanes|s.childLanes,r|=s.subtreeFlags,r|=s.flags,s.return=e,s=s.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function im(e,t,n){var r=t.pendingProps;switch(Vi(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return xe(t),null;case 1:return Pe(t.type)&&Ws(),xe(t),null;case 3:return r=t.stateNode,Wn(),J(Te),J(Ne),Xi(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(us(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Ze!==null&&(ai(Ze),Ze=null))),ei(e,t),xe(t),null;case 5:Yi(t);var s=on(Dr.current);if(n=t.type,e!==null&&t.stateNode!=null)Zd(e,t,n,r,s),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(C(166));return xe(t),null}if(e=on(dt.current),us(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[ct]=t,r[$r]=l,e=(t.mode&1)!==0,n){case"dialog":G("cancel",r),G("close",r);break;case"iframe":case"object":case"embed":G("load",r);break;case"video":case"audio":for(s=0;s<mr.length;s++)G(mr[s],r);break;case"source":G("error",r);break;case"img":case"image":case"link":G("error",r),G("load",r);break;case"details":G("toggle",r);break;case"input":Ra(r,l),G("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!l.multiple},G("invalid",r);break;case"textarea":Aa(r,l),G("invalid",r)}Eo(n,l),s=null;for(var i in l)if(l.hasOwnProperty(i)){var a=l[i];i==="children"?typeof a=="string"?r.textContent!==a&&(l.suppressHydrationWarning!==!0&&cs(r.textContent,a,e),s=["children",a]):typeof a=="number"&&r.textContent!==""+a&&(l.suppressHydrationWarning!==!0&&cs(r.textContent,a,e),s=["children",""+a]):Er.hasOwnProperty(i)&&a!=null&&i==="onScroll"&&G("scroll",r)}switch(n){case"input":ts(r),Oa(r,l,!0);break;case"textarea":ts(r),Ma(r);break;case"select":case"option":break;default:typeof l.onClick=="function"&&(r.onclick=Vs)}r=s,t.updateQueue=r,r!==null&&(t.flags|=4)}else{i=s.nodeType===9?s:s.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=_u(n)),e==="http://www.w3.org/1999/xhtml"?n==="script"?(e=i.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(n,{is:r.is}):(e=i.createElement(n),n==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,n),e[ct]=t,e[$r]=r,Xd(e,t,!1,!1),t.stateNode=e;e:{switch(i=_o(n,r),n){case"dialog":G("cancel",e),G("close",e),s=r;break;case"iframe":case"object":case"embed":G("load",e),s=r;break;case"video":case"audio":for(s=0;s<mr.length;s++)G(mr[s],e);s=r;break;case"source":G("error",e),s=r;break;case"img":case"image":case"link":G("error",e),G("load",e),s=r;break;case"details":G("toggle",e),s=r;break;case"input":Ra(e,r),s=So(e,r),G("invalid",e);break;case"option":s=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},s=te({},r,{value:void 0}),G("invalid",e);break;case"textarea":Aa(e,r),s=jo(e,r),G("invalid",e);break;default:s=r}Eo(n,s),a=s;for(l in a)if(a.hasOwnProperty(l)){var c=a[l];l==="style"?Lu(e,c):l==="dangerouslySetInnerHTML"?(c=c?c.__html:void 0,c!=null&&Tu(e,c)):l==="children"?typeof c=="string"?(n!=="textarea"||c!=="")&&_r(e,c):typeof c=="number"&&_r(e,""+c):l!=="suppressContentEditableWarning"&&l!=="suppressHydrationWarning"&&l!=="autoFocus"&&(Er.hasOwnProperty(l)?c!=null&&l==="onScroll"&&G("scroll",e):c!=null&&_i(e,l,c,i))}switch(n){case"input":ts(e),Oa(e,r,!1);break;case"textarea":ts(e),Ma(e);break;case"option":r.value!=null&&e.setAttribute("value",""+Ht(r.value));break;case"select":e.multiple=!!r.multiple,l=r.value,l!=null?On(e,!!r.multiple,l,!1):r.defaultValue!=null&&On(e,!!r.multiple,r.defaultValue,!0);break;default:typeof s.onClick=="function"&&(e.onclick=Vs)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return xe(t),null;case 6:if(e&&t.stateNode!=null)ef(e,t,e.memoizedProps,r);else{if(typeof r!="string"&&t.stateNode===null)throw Error(C(166));if(n=on(Dr.current),on(dt.current),us(t)){if(r=t.stateNode,n=t.memoizedProps,r[ct]=t,(l=r.nodeValue!==n)&&(e=Ae,e!==null))switch(e.tag){case 3:cs(r.nodeValue,n,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&cs(r.nodeValue,n,(e.mode&1)!==0)}l&&(t.flags|=4)}else r=(n.nodeType===9?n:n.ownerDocument).createTextNode(r),r[ct]=t,t.stateNode=r}return xe(t),null;case 13:if(J(X),r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(Y&&Oe!==null&&t.mode&1&&!(t.flags&128))yd(),Bn(),t.flags|=98560,l=!1;else if(l=us(t),r!==null&&r.dehydrated!==null){if(e===null){if(!l)throw Error(C(318));if(l=t.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(C(317));l[ct]=t}else Bn(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;xe(t),l=!1}else Ze!==null&&(ai(Ze),Ze=null),l=!0;if(!l)return t.flags&65536?t:null}return t.flags&128?(t.lanes=n,t):(r=r!==null,r!==(e!==null&&e.memoizedState!==null)&&r&&(t.child.flags|=8192,t.mode&1&&(e===null||X.current&1?ue===0&&(ue=3):ua())),t.updateQueue!==null&&(t.flags|=4),xe(t),null);case 4:return Wn(),ei(e,t),e===null&&Mr(t.stateNode.containerInfo),xe(t),null;case 10:return Ki(t.type._context),xe(t),null;case 17:return Pe(t.type)&&Ws(),xe(t),null;case 19:if(J(X),l=t.memoizedState,l===null)return xe(t),null;if(r=(t.flags&128)!==0,i=l.rendering,i===null)if(r)ar(l,!1);else{if(ue!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(i=Ys(e),i!==null){for(t.flags|=128,ar(l,!1),r=i.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;n!==null;)l=n,e=r,l.flags&=14680066,i=l.alternate,i===null?(l.childLanes=0,l.lanes=e,l.child=null,l.subtreeFlags=0,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=i.childLanes,l.lanes=i.lanes,l.child=i.child,l.subtreeFlags=0,l.deletions=null,l.memoizedProps=i.memoizedProps,l.memoizedState=i.memoizedState,l.updateQueue=i.updateQueue,l.type=i.type,e=i.dependencies,l.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return Q(X,X.current&1|2),t.child}e=e.sibling}l.tail!==null&&le()>qn&&(t.flags|=128,r=!0,ar(l,!1),t.lanes=4194304)}else{if(!r)if(e=Ys(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),ar(l,!0),l.tail===null&&l.tailMode==="hidden"&&!i.alternate&&!Y)return xe(t),null}else 2*le()-l.renderingStartTime>qn&&n!==1073741824&&(t.flags|=128,r=!0,ar(l,!1),t.lanes=4194304);l.isBackwards?(i.sibling=t.child,t.child=i):(n=l.last,n!==null?n.sibling=i:t.child=i,l.last=i)}return l.tail!==null?(t=l.tail,l.rendering=t,l.tail=t.sibling,l.renderingStartTime=le(),t.sibling=null,n=X.current,Q(X,r?n&1|2:n&1),t):(xe(t),null);case 22:case 23:return ca(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Re&1073741824&&(xe(t),t.subtreeFlags&6&&(t.flags|=8192)):xe(t),null;case 24:return null;case 25:return null}throw Error(C(156,t.tag))}function am(e,t){switch(Vi(t),t.tag){case 1:return Pe(t.type)&&Ws(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Wn(),J(Te),J(Ne),Xi(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Yi(t),null;case 13:if(J(X),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(C(340));Bn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return J(X),null;case 4:return Wn(),null;case 10:return Ki(t.type._context),null;case 22:case 23:return ca(),null;case 24:return null;default:return null}}var hs=!1,we=!1,cm=typeof WeakSet=="function"?WeakSet:Set,L=null;function Ln(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){re(e,t,r)}else n.current=null}function ti(e,t,n){try{n()}catch(r){re(e,t,r)}}var kc=!1;function um(e,t){if(zo=Us,e=ld(),Fi(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var s=r.anchorOffset,l=r.focusNode;r=r.focusOffset;try{n.nodeType,l.nodeType}catch{n=null;break e}var i=0,a=-1,c=-1,f=0,g=0,v=e,d=null;t:for(;;){for(var h;v!==n||s!==0&&v.nodeType!==3||(a=i+s),v!==l||r!==0&&v.nodeType!==3||(c=i+r),v.nodeType===3&&(i+=v.nodeValue.length),(h=v.firstChild)!==null;)d=v,v=h;for(;;){if(v===e)break t;if(d===n&&++f===s&&(a=i),d===l&&++g===r&&(c=i),(h=v.nextSibling)!==null)break;v=d,d=v.parentNode}v=h}n=a===-1||c===-1?null:{start:a,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(Do={focusedElem:e,selectionRange:n},Us=!1,L=t;L!==null;)if(t=L,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,L=e;else for(;L!==null;){t=L;try{var y=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(y!==null){var N=y.memoizedProps,b=y.memoizedState,m=t.stateNode,u=m.getSnapshotBeforeUpdate(t.elementType===t.type?N:Je(t.type,N),b);m.__reactInternalSnapshotBeforeUpdate=u}break;case 3:var p=t.stateNode.containerInfo;p.nodeType===1?p.textContent="":p.nodeType===9&&p.documentElement&&p.removeChild(p.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(C(163))}}catch(x){re(t,t.return,x)}if(e=t.sibling,e!==null){e.return=t.return,L=e;break}L=t.return}return y=kc,kc=!1,y}function br(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var s=r=r.next;do{if((s.tag&e)===e){var l=s.destroy;s.destroy=void 0,l!==void 0&&ti(t,n,l)}s=s.next}while(s!==r)}}function yl(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function ni(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function tf(e){var t=e.alternate;t!==null&&(e.alternate=null,tf(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[ct],delete t[$r],delete t[Bo],delete t[qp],delete t[Kp])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function nf(e){return e.tag===5||e.tag===3||e.tag===4}function jc(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||nf(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function ri(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Vs));else if(r!==4&&(e=e.child,e!==null))for(ri(e,t,n),e=e.sibling;e!==null;)ri(e,t,n),e=e.sibling}function si(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(si(e,t,n),e=e.sibling;e!==null;)si(e,t,n),e=e.sibling}var me=null,Ye=!1;function Et(e,t,n){for(n=n.child;n!==null;)rf(e,t,n),n=n.sibling}function rf(e,t,n){if(ut&&typeof ut.onCommitFiberUnmount=="function")try{ut.onCommitFiberUnmount(ul,n)}catch{}switch(n.tag){case 5:we||Ln(n,t);case 6:var r=me,s=Ye;me=null,Et(e,t,n),me=r,Ye=s,me!==null&&(Ye?(e=me,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):me.removeChild(n.stateNode));break;case 18:me!==null&&(Ye?(e=me,n=n.stateNode,e.nodeType===8?Gl(e.parentNode,n):e.nodeType===1&&Gl(e,n),Rr(e)):Gl(me,n.stateNode));break;case 4:r=me,s=Ye,me=n.stateNode.containerInfo,Ye=!0,Et(e,t,n),me=r,Ye=s;break;case 0:case 11:case 14:case 15:if(!we&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){s=r=r.next;do{var l=s,i=l.destroy;l=l.tag,i!==void 0&&(l&2||l&4)&&ti(n,t,i),s=s.next}while(s!==r)}Et(e,t,n);break;case 1:if(!we&&(Ln(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(a){re(n,t,a)}Et(e,t,n);break;case 21:Et(e,t,n);break;case 22:n.mode&1?(we=(r=we)||n.memoizedState!==null,Et(e,t,n),we=r):Et(e,t,n);break;default:Et(e,t,n)}}function Cc(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new cm),t.forEach(function(r){var s=xm.bind(null,e,r);n.has(r)||(n.add(r),r.then(s,s))})}}function Qe(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var s=n[r];try{var l=e,i=t,a=i;e:for(;a!==null;){switch(a.tag){case 5:me=a.stateNode,Ye=!1;break e;case 3:me=a.stateNode.containerInfo,Ye=!0;break e;case 4:me=a.stateNode.containerInfo,Ye=!0;break e}a=a.return}if(me===null)throw Error(C(160));rf(l,i,s),me=null,Ye=!1;var c=s.alternate;c!==null&&(c.return=null),s.return=null}catch(f){re(s,t,f)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)sf(t,e),t=t.sibling}function sf(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(Qe(t,e),it(e),r&4){try{br(3,e,e.return),yl(3,e)}catch(N){re(e,e.return,N)}try{br(5,e,e.return)}catch(N){re(e,e.return,N)}}break;case 1:Qe(t,e),it(e),r&512&&n!==null&&Ln(n,n.return);break;case 5:if(Qe(t,e),it(e),r&512&&n!==null&&Ln(n,n.return),e.flags&32){var s=e.stateNode;try{_r(s,"")}catch(N){re(e,e.return,N)}}if(r&4&&(s=e.stateNode,s!=null)){var l=e.memoizedProps,i=n!==null?n.memoizedProps:l,a=e.type,c=e.updateQueue;if(e.updateQueue=null,c!==null)try{a==="input"&&l.type==="radio"&&l.name!=null&&Cu(s,l),_o(a,i);var f=_o(a,l);for(i=0;i<c.length;i+=2){var g=c[i],v=c[i+1];g==="style"?Lu(s,v):g==="dangerouslySetInnerHTML"?Tu(s,v):g==="children"?_r(s,v):_i(s,g,v,f)}switch(a){case"input":bo(s,l);break;case"textarea":Eu(s,l);break;case"select":var d=s._wrapperState.wasMultiple;s._wrapperState.wasMultiple=!!l.multiple;var h=l.value;h!=null?On(s,!!l.multiple,h,!1):d!==!!l.multiple&&(l.defaultValue!=null?On(s,!!l.multiple,l.defaultValue,!0):On(s,!!l.multiple,l.multiple?[]:"",!1))}s[$r]=l}catch(N){re(e,e.return,N)}}break;case 6:if(Qe(t,e),it(e),r&4){if(e.stateNode===null)throw Error(C(162));s=e.stateNode,l=e.memoizedProps;try{s.nodeValue=l}catch(N){re(e,e.return,N)}}break;case 3:if(Qe(t,e),it(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Rr(t.containerInfo)}catch(N){re(e,e.return,N)}break;case 4:Qe(t,e),it(e);break;case 13:Qe(t,e),it(e),s=e.child,s.flags&8192&&(l=s.memoizedState!==null,s.stateNode.isHidden=l,!l||s.alternate!==null&&s.alternate.memoizedState!==null||(ia=le())),r&4&&Cc(e);break;case 22:if(g=n!==null&&n.memoizedState!==null,e.mode&1?(we=(f=we)||g,Qe(t,e),we=f):Qe(t,e),it(e),r&8192){if(f=e.memoizedState!==null,(e.stateNode.isHidden=f)&&!g&&e.mode&1)for(L=e,g=e.child;g!==null;){for(v=L=g;L!==null;){switch(d=L,h=d.child,d.tag){case 0:case 11:case 14:case 15:br(4,d,d.return);break;case 1:Ln(d,d.return);var y=d.stateNode;if(typeof y.componentWillUnmount=="function"){r=d,n=d.return;try{t=r,y.props=t.memoizedProps,y.state=t.memoizedState,y.componentWillUnmount()}catch(N){re(r,n,N)}}break;case 5:Ln(d,d.return);break;case 22:if(d.memoizedState!==null){_c(v);continue}}h!==null?(h.return=d,L=h):_c(v)}g=g.sibling}e:for(g=null,v=e;;){if(v.tag===5){if(g===null){g=v;try{s=v.stateNode,f?(l=s.style,typeof l.setProperty=="function"?l.setProperty("display","none","important"):l.display="none"):(a=v.stateNode,c=v.memoizedProps.style,i=c!=null&&c.hasOwnProperty("display")?c.display:null,a.style.display=Pu("display",i))}catch(N){re(e,e.return,N)}}}else if(v.tag===6){if(g===null)try{v.stateNode.nodeValue=f?"":v.memoizedProps}catch(N){re(e,e.return,N)}}else if((v.tag!==22&&v.tag!==23||v.memoizedState===null||v===e)&&v.child!==null){v.child.return=v,v=v.child;continue}if(v===e)break e;for(;v.sibling===null;){if(v.return===null||v.return===e)break e;g===v&&(g=null),v=v.return}g===v&&(g=null),v.sibling.return=v.return,v=v.sibling}}break;case 19:Qe(t,e),it(e),r&4&&Cc(e);break;case 21:break;default:Qe(t,e),it(e)}}function it(e){var t=e.flags;if(t&2){try{e:{for(var n=e.return;n!==null;){if(nf(n)){var r=n;break e}n=n.return}throw Error(C(160))}switch(r.tag){case 5:var s=r.stateNode;r.flags&32&&(_r(s,""),r.flags&=-33);var l=jc(e);si(e,l,s);break;case 3:case 4:var i=r.stateNode.containerInfo,a=jc(e);ri(e,a,i);break;default:throw Error(C(161))}}catch(c){re(e,e.return,c)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function dm(e,t,n){L=e,lf(e)}function lf(e,t,n){for(var r=(e.mode&1)!==0;L!==null;){var s=L,l=s.child;if(s.tag===22&&r){var i=s.memoizedState!==null||hs;if(!i){var a=s.alternate,c=a!==null&&a.memoizedState!==null||we;a=hs;var f=we;if(hs=i,(we=c)&&!f)for(L=s;L!==null;)i=L,c=i.child,i.tag===22&&i.memoizedState!==null?Tc(s):c!==null?(c.return=i,L=c):Tc(s);for(;l!==null;)L=l,lf(l),l=l.sibling;L=s,hs=a,we=f}Ec(e)}else s.subtreeFlags&8772&&l!==null?(l.return=s,L=l):Ec(e)}}function Ec(e){for(;L!==null;){var t=L;if(t.flags&8772){var n=t.alternate;try{if(t.flags&8772)switch(t.tag){case 0:case 11:case 15:we||yl(5,t);break;case 1:var r=t.stateNode;if(t.flags&4&&!we)if(n===null)r.componentDidMount();else{var s=t.elementType===t.type?n.memoizedProps:Je(t.type,n.memoizedProps);r.componentDidUpdate(s,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var l=t.updateQueue;l!==null&&dc(t,l,r);break;case 3:var i=t.updateQueue;if(i!==null){if(n=null,t.child!==null)switch(t.child.tag){case 5:n=t.child.stateNode;break;case 1:n=t.child.stateNode}dc(t,i,n)}break;case 5:var a=t.stateNode;if(n===null&&t.flags&4){n=a;var c=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":c.autoFocus&&n.focus();break;case"img":c.src&&(n.src=c.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var f=t.alternate;if(f!==null){var g=f.memoizedState;if(g!==null){var v=g.dehydrated;v!==null&&Rr(v)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(C(163))}we||t.flags&512&&ni(t)}catch(d){re(t,t.return,d)}}if(t===e){L=null;break}if(n=t.sibling,n!==null){n.return=t.return,L=n;break}L=t.return}}function _c(e){for(;L!==null;){var t=L;if(t===e){L=null;break}var n=t.sibling;if(n!==null){n.return=t.return,L=n;break}L=t.return}}function Tc(e){for(;L!==null;){var t=L;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{yl(4,t)}catch(c){re(t,n,c)}break;case 1:var r=t.stateNode;if(typeof r.componentDidMount=="function"){var s=t.return;try{r.componentDidMount()}catch(c){re(t,s,c)}}var l=t.return;try{ni(t)}catch(c){re(t,l,c)}break;case 5:var i=t.return;try{ni(t)}catch(c){re(t,i,c)}}}catch(c){re(t,t.return,c)}if(t===e){L=null;break}var a=t.sibling;if(a!==null){a.return=t.return,L=a;break}L=t.return}}var fm=Math.ceil,el=kt.ReactCurrentDispatcher,la=kt.ReactCurrentOwner,Be=kt.ReactCurrentBatchConfig,V=0,fe=null,ie=null,ge=0,Re=0,Rn=Gt(0),ue=0,Vr=null,hn=0,xl=0,oa=0,kr=null,Ee=null,ia=0,qn=1/0,mt=null,tl=!1,li=null,Ut=null,ps=!1,Ot=null,nl=0,jr=0,oi=null,_s=-1,Ts=0;function ke(){return V&6?le():_s!==-1?_s:_s=le()}function Ft(e){return e.mode&1?V&2&&ge!==0?ge&-ge:Gp.transition!==null?(Ts===0&&(Ts=Vu()),Ts):(e=q,e!==0||(e=window.event,e=e===void 0?16:Ju(e.type)),e):1}function tt(e,t,n,r){if(50<jr)throw jr=0,oi=null,Error(C(185));Gr(e,n,r),(!(V&2)||e!==fe)&&(e===fe&&(!(V&2)&&(xl|=n),ue===4&&Lt(e,ge)),Le(e,r),n===1&&V===0&&!(t.mode&1)&&(qn=le()+500,ml&&Jt()))}function Le(e,t){var n=e.callbackNode;Gh(e,t);var r=Ds(e,e===fe?ge:0);if(r===0)n!==null&&za(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(n!=null&&za(n),t===1)e.tag===0?Qp(Pc.bind(null,e)):md(Pc.bind(null,e)),Wp(function(){!(V&6)&&Jt()}),n=null;else{switch(Wu(r)){case 1:n=Oi;break;case 4:n=Fu;break;case 16:n=zs;break;case 536870912:n=Bu;break;default:n=zs}n=pf(n,of.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function of(e,t){if(_s=-1,Ts=0,V&6)throw Error(C(327));var n=e.callbackNode;if(zn()&&e.callbackNode!==n)return null;var r=Ds(e,e===fe?ge:0);if(r===0)return null;if(r&30||r&e.expiredLanes||t)t=rl(e,r);else{t=r;var s=V;V|=2;var l=cf();(fe!==e||ge!==t)&&(mt=null,qn=le()+500,an(e,t));do try{mm();break}catch(a){af(e,a)}while(!0);qi(),el.current=l,V=s,ie!==null?t=0:(fe=null,ge=0,t=ue)}if(t!==0){if(t===2&&(s=Oo(e),s!==0&&(r=s,t=ii(e,s))),t===1)throw n=Vr,an(e,0),Lt(e,r),Le(e,le()),n;if(t===6)Lt(e,r);else{if(s=e.current.alternate,!(r&30)&&!hm(s)&&(t=rl(e,r),t===2&&(l=Oo(e),l!==0&&(r=l,t=ii(e,l))),t===1))throw n=Vr,an(e,0),Lt(e,r),Le(e,le()),n;switch(e.finishedWork=s,e.finishedLanes=r,t){case 0:case 1:throw Error(C(345));case 2:rn(e,Ee,mt);break;case 3:if(Lt(e,r),(r&130023424)===r&&(t=ia+500-le(),10<t)){if(Ds(e,0)!==0)break;if(s=e.suspendedLanes,(s&r)!==r){ke(),e.pingedLanes|=e.suspendedLanes&s;break}e.timeoutHandle=Fo(rn.bind(null,e,Ee,mt),t);break}rn(e,Ee,mt);break;case 4:if(Lt(e,r),(r&4194240)===r)break;for(t=e.eventTimes,s=-1;0<r;){var i=31-et(r);l=1<<i,i=t[i],i>s&&(s=i),r&=~l}if(r=s,r=le()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*fm(r/1960))-r,10<r){e.timeoutHandle=Fo(rn.bind(null,e,Ee,mt),r);break}rn(e,Ee,mt);break;case 5:rn(e,Ee,mt);break;default:throw Error(C(329))}}}return Le(e,le()),e.callbackNode===n?of.bind(null,e):null}function ii(e,t){var n=kr;return e.current.memoizedState.isDehydrated&&(an(e,t).flags|=256),e=rl(e,t),e!==2&&(t=Ee,Ee=n,t!==null&&ai(t)),e}function ai(e){Ee===null?Ee=e:Ee.push.apply(Ee,e)}function hm(e){for(var t=e;;){if(t.flags&16384){var n=t.updateQueue;if(n!==null&&(n=n.stores,n!==null))for(var r=0;r<n.length;r++){var s=n[r],l=s.getSnapshot;s=s.value;try{if(!rt(l(),s))return!1}catch{return!1}}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Lt(e,t){for(t&=~oa,t&=~xl,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-et(t),r=1<<n;e[n]=-1,t&=~r}}function Pc(e){if(V&6)throw Error(C(327));zn();var t=Ds(e,0);if(!(t&1))return Le(e,le()),null;var n=rl(e,t);if(e.tag!==0&&n===2){var r=Oo(e);r!==0&&(t=r,n=ii(e,r))}if(n===1)throw n=Vr,an(e,0),Lt(e,t),Le(e,le()),n;if(n===6)throw Error(C(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,rn(e,Ee,mt),Le(e,le()),null}function aa(e,t){var n=V;V|=1;try{return e(t)}finally{V=n,V===0&&(qn=le()+500,ml&&Jt())}}function pn(e){Ot!==null&&Ot.tag===0&&!(V&6)&&zn();var t=V;V|=1;var n=Be.transition,r=q;try{if(Be.transition=null,q=1,e)return e()}finally{q=r,Be.transition=n,V=t,!(V&6)&&Jt()}}function ca(){Re=Rn.current,J(Rn)}function an(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(n!==-1&&(e.timeoutHandle=-1,Vp(n)),ie!==null)for(n=ie.return;n!==null;){var r=n;switch(Vi(r),r.tag){case 1:r=r.type.childContextTypes,r!=null&&Ws();break;case 3:Wn(),J(Te),J(Ne),Xi();break;case 5:Yi(r);break;case 4:Wn();break;case 13:J(X);break;case 19:J(X);break;case 10:Ki(r.type._context);break;case 22:case 23:ca()}n=n.return}if(fe=e,ie=e=Bt(e.current,null),ge=Re=t,ue=0,Vr=null,oa=xl=hn=0,Ee=kr=null,ln!==null){for(t=0;t<ln.length;t++)if(n=ln[t],r=n.interleaved,r!==null){n.interleaved=null;var s=r.next,l=n.pending;if(l!==null){var i=l.next;l.next=s,r.next=i}n.pending=r}ln=null}return e}function af(e,t){do{var n=ie;try{if(qi(),js.current=Zs,Xs){for(var r=Z.memoizedState;r!==null;){var s=r.queue;s!==null&&(s.pending=null),r=r.next}Xs=!1}if(fn=0,de=ce=Z=null,Sr=!1,Ur=0,la.current=null,n===null||n.return===null){ue=1,Vr=t,ie=null;break}e:{var l=e,i=n.return,a=n,c=t;if(t=ge,a.flags|=32768,c!==null&&typeof c=="object"&&typeof c.then=="function"){var f=c,g=a,v=g.tag;if(!(g.mode&1)&&(v===0||v===11||v===15)){var d=g.alternate;d?(g.updateQueue=d.updateQueue,g.memoizedState=d.memoizedState,g.lanes=d.lanes):(g.updateQueue=null,g.memoizedState=null)}var h=vc(i);if(h!==null){h.flags&=-257,yc(h,i,a,l,t),h.mode&1&&gc(l,f,t),t=h,c=f;var y=t.updateQueue;if(y===null){var N=new Set;N.add(c),t.updateQueue=N}else y.add(c);break e}else{if(!(t&1)){gc(l,f,t),ua();break e}c=Error(C(426))}}else if(Y&&a.mode&1){var b=vc(i);if(b!==null){!(b.flags&65536)&&(b.flags|=256),yc(b,i,a,l,t),Wi(Hn(c,a));break e}}l=c=Hn(c,a),ue!==4&&(ue=2),kr===null?kr=[l]:kr.push(l),l=i;do{switch(l.tag){case 3:l.flags|=65536,t&=-t,l.lanes|=t;var m=Wd(l,c,t);uc(l,m);break e;case 1:a=c;var u=l.type,p=l.stateNode;if(!(l.flags&128)&&(typeof u.getDerivedStateFromError=="function"||p!==null&&typeof p.componentDidCatch=="function"&&(Ut===null||!Ut.has(p)))){l.flags|=65536,t&=-t,l.lanes|=t;var x=Hd(l,a,t);uc(l,x);break e}}l=l.return}while(l!==null)}df(n)}catch(k){t=k,ie===n&&n!==null&&(ie=n=n.return);continue}break}while(!0)}function cf(){var e=el.current;return el.current=Zs,e===null?Zs:e}function ua(){(ue===0||ue===3||ue===2)&&(ue=4),fe===null||!(hn&268435455)&&!(xl&268435455)||Lt(fe,ge)}function rl(e,t){var n=V;V|=2;var r=cf();(fe!==e||ge!==t)&&(mt=null,an(e,t));do try{pm();break}catch(s){af(e,s)}while(!0);if(qi(),V=n,el.current=r,ie!==null)throw Error(C(261));return fe=null,ge=0,ue}function pm(){for(;ie!==null;)uf(ie)}function mm(){for(;ie!==null&&!Uh();)uf(ie)}function uf(e){var t=hf(e.alternate,e,Re);e.memoizedProps=e.pendingProps,t===null?df(e):ie=t,la.current=null}function df(e){var t=e;do{var n=t.alternate;if(e=t.return,t.flags&32768){if(n=am(n,t),n!==null){n.flags&=32767,ie=n;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{ue=6,ie=null;return}}else if(n=im(n,t,Re),n!==null){ie=n;return}if(t=t.sibling,t!==null){ie=t;return}ie=t=e}while(t!==null);ue===0&&(ue=5)}function rn(e,t,n){var r=q,s=Be.transition;try{Be.transition=null,q=1,gm(e,t,n,r)}finally{Be.transition=s,q=r}return null}function gm(e,t,n,r){do zn();while(Ot!==null);if(V&6)throw Error(C(327));n=e.finishedWork;var s=e.finishedLanes;if(n===null)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(C(177));e.callbackNode=null,e.callbackPriority=0;var l=n.lanes|n.childLanes;if(Jh(e,l),e===fe&&(ie=fe=null,ge=0),!(n.subtreeFlags&2064)&&!(n.flags&2064)||ps||(ps=!0,pf(zs,function(){return zn(),null})),l=(n.flags&15990)!==0,n.subtreeFlags&15990||l){l=Be.transition,Be.transition=null;var i=q;q=1;var a=V;V|=4,la.current=null,um(e,n),sf(n,e),Ip(Do),Us=!!zo,Do=zo=null,e.current=n,dm(n),Fh(),V=a,q=i,Be.transition=l}else e.current=n;if(ps&&(ps=!1,Ot=e,nl=s),l=e.pendingLanes,l===0&&(Ut=null),Wh(n.stateNode),Le(e,le()),t!==null)for(r=e.onRecoverableError,n=0;n<t.length;n++)s=t[n],r(s.value,{componentStack:s.stack,digest:s.digest});if(tl)throw tl=!1,e=li,li=null,e;return nl&1&&e.tag!==0&&zn(),l=e.pendingLanes,l&1?e===oi?jr++:(jr=0,oi=e):jr=0,Jt(),null}function zn(){if(Ot!==null){var e=Wu(nl),t=Be.transition,n=q;try{if(Be.transition=null,q=16>e?16:e,Ot===null)var r=!1;else{if(e=Ot,Ot=null,nl=0,V&6)throw Error(C(331));var s=V;for(V|=4,L=e.current;L!==null;){var l=L,i=l.child;if(L.flags&16){var a=l.deletions;if(a!==null){for(var c=0;c<a.length;c++){var f=a[c];for(L=f;L!==null;){var g=L;switch(g.tag){case 0:case 11:case 15:br(8,g,l)}var v=g.child;if(v!==null)v.return=g,L=v;else for(;L!==null;){g=L;var d=g.sibling,h=g.return;if(tf(g),g===f){L=null;break}if(d!==null){d.return=h,L=d;break}L=h}}}var y=l.alternate;if(y!==null){var N=y.child;if(N!==null){y.child=null;do{var b=N.sibling;N.sibling=null,N=b}while(N!==null)}}L=l}}if(l.subtreeFlags&2064&&i!==null)i.return=l,L=i;else e:for(;L!==null;){if(l=L,l.flags&2048)switch(l.tag){case 0:case 11:case 15:br(9,l,l.return)}var m=l.sibling;if(m!==null){m.return=l.return,L=m;break e}L=l.return}}var u=e.current;for(L=u;L!==null;){i=L;var p=i.child;if(i.subtreeFlags&2064&&p!==null)p.return=i,L=p;else e:for(i=u;L!==null;){if(a=L,a.flags&2048)try{switch(a.tag){case 0:case 11:case 15:yl(9,a)}}catch(k){re(a,a.return,k)}if(a===i){L=null;break e}var x=a.sibling;if(x!==null){x.return=a.return,L=x;break e}L=a.return}}if(V=s,Jt(),ut&&typeof ut.onPostCommitFiberRoot=="function")try{ut.onPostCommitFiberRoot(ul,e)}catch{}r=!0}return r}finally{q=n,Be.transition=t}}return!1}function Lc(e,t,n){t=Hn(n,t),t=Wd(e,t,1),e=Dt(e,t,1),t=ke(),e!==null&&(Gr(e,1,t),Le(e,t))}function re(e,t,n){if(e.tag===3)Lc(e,e,n);else for(;t!==null;){if(t.tag===3){Lc(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof r.componentDidCatch=="function"&&(Ut===null||!Ut.has(r))){e=Hn(n,e),e=Hd(t,e,1),t=Dt(t,e,1),e=ke(),t!==null&&(Gr(t,1,e),Le(t,e));break}}t=t.return}}function vm(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),t=ke(),e.pingedLanes|=e.suspendedLanes&n,fe===e&&(ge&n)===n&&(ue===4||ue===3&&(ge&130023424)===ge&&500>le()-ia?an(e,0):oa|=n),Le(e,t)}function ff(e,t){t===0&&(e.mode&1?(t=ss,ss<<=1,!(ss&130023424)&&(ss=4194304)):t=1);var n=ke();e=St(e,t),e!==null&&(Gr(e,t,n),Le(e,n))}function ym(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),ff(e,n)}function xm(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,s=e.memoizedState;s!==null&&(n=s.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(C(314))}r!==null&&r.delete(t),ff(e,n)}var hf;hf=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Te.current)_e=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return _e=!1,om(e,t,n);_e=!!(e.flags&131072)}else _e=!1,Y&&t.flags&1048576&&gd(t,Ks,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Es(e,t),e=t.pendingProps;var s=Fn(t,Ne.current);$n(t,n),s=ea(null,t,r,e,s,n);var l=ta();return t.flags|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Pe(r)?(l=!0,Hs(t)):l=!1,t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,Gi(t),s.updater=vl,t.stateNode=s,s._reactInternals=t,Qo(t,r,e,n),t=Yo(null,t,r,!0,l,n)):(t.tag=0,Y&&l&&Bi(t),Se(null,t,s,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Es(e,t),e=t.pendingProps,s=r._init,r=s(r._payload),t.type=r,s=t.tag=Nm(r),e=Je(r,e),s){case 0:t=Jo(null,t,r,e,n);break e;case 1:t=Nc(null,t,r,e,n);break e;case 11:t=xc(null,t,r,e,n);break e;case 14:t=wc(null,t,r,Je(r.type,e),n);break e}throw Error(C(306,r,""))}return t;case 0:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Je(r,s),Jo(e,t,r,s,n);case 1:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Je(r,s),Nc(e,t,r,s,n);case 3:e:{if(Gd(t),e===null)throw Error(C(387));r=t.pendingProps,l=t.memoizedState,s=l.element,Sd(e,t),Js(t,r,null,n);var i=t.memoizedState;if(r=i.element,l.isDehydrated)if(l={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=l,t.memoizedState=l,t.flags&256){s=Hn(Error(C(423)),t),t=Sc(e,t,r,n,s);break e}else if(r!==s){s=Hn(Error(C(424)),t),t=Sc(e,t,r,n,s);break e}else for(Oe=zt(t.stateNode.containerInfo.firstChild),Ae=t,Y=!0,Ze=null,n=wd(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Bn(),r===s){t=bt(e,t,n);break e}Se(e,t,r,n)}t=t.child}return t;case 5:return bd(t),e===null&&Ho(t),r=t.type,s=t.pendingProps,l=e!==null?e.memoizedProps:null,i=s.children,Uo(r,s)?i=null:l!==null&&Uo(r,l)&&(t.flags|=32),Qd(e,t),Se(e,t,i,n),t.child;case 6:return e===null&&Ho(t),null;case 13:return Jd(e,t,n);case 4:return Ji(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Vn(t,null,r,n):Se(e,t,r,n),t.child;case 11:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Je(r,s),xc(e,t,r,s,n);case 7:return Se(e,t,t.pendingProps,n),t.child;case 8:return Se(e,t,t.pendingProps.children,n),t.child;case 12:return Se(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,s=t.pendingProps,l=t.memoizedProps,i=s.value,Q(Qs,r._currentValue),r._currentValue=i,l!==null)if(rt(l.value,i)){if(l.children===s.children&&!Te.current){t=bt(e,t,n);break e}}else for(l=t.child,l!==null&&(l.return=t);l!==null;){var a=l.dependencies;if(a!==null){i=l.child;for(var c=a.firstContext;c!==null;){if(c.context===r){if(l.tag===1){c=xt(-1,n&-n),c.tag=2;var f=l.updateQueue;if(f!==null){f=f.shared;var g=f.pending;g===null?c.next=c:(c.next=g.next,g.next=c),f.pending=c}}l.lanes|=n,c=l.alternate,c!==null&&(c.lanes|=n),qo(l.return,n,t),a.lanes|=n;break}c=c.next}}else if(l.tag===10)i=l.type===t.type?null:l.child;else if(l.tag===18){if(i=l.return,i===null)throw Error(C(341));i.lanes|=n,a=i.alternate,a!==null&&(a.lanes|=n),qo(i,n,t),i=l.sibling}else i=l.child;if(i!==null)i.return=l;else for(i=l;i!==null;){if(i===t){i=null;break}if(l=i.sibling,l!==null){l.return=i.return,i=l;break}i=i.return}l=i}Se(e,t,s.children,n),t=t.child}return t;case 9:return s=t.type,r=t.pendingProps.children,$n(t,n),s=Ve(s),r=r(s),t.flags|=1,Se(e,t,r,n),t.child;case 14:return r=t.type,s=Je(r,t.pendingProps),s=Je(r.type,s),wc(e,t,r,s,n);case 15:return qd(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:Je(r,s),Es(e,t),t.tag=1,Pe(r)?(e=!0,Hs(t)):e=!1,$n(t,n),Vd(t,r,s),Qo(t,r,s,n),Yo(null,t,r,!0,e,n);case 19:return Yd(e,t,n);case 22:return Kd(e,t,n)}throw Error(C(156,t.tag))};function pf(e,t){return Uu(e,t)}function wm(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Fe(e,t,n,r){return new wm(e,t,n,r)}function da(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Nm(e){if(typeof e=="function")return da(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Pi)return 11;if(e===Li)return 14}return 2}function Bt(e,t){var n=e.alternate;return n===null?(n=Fe(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ps(e,t,n,r,s,l){var i=2;if(r=e,typeof e=="function")da(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case Sn:return cn(n.children,s,l,t);case Ti:i=8,s|=8;break;case yo:return e=Fe(12,n,t,s|2),e.elementType=yo,e.lanes=l,e;case xo:return e=Fe(13,n,t,s),e.elementType=xo,e.lanes=l,e;case wo:return e=Fe(19,n,t,s),e.elementType=wo,e.lanes=l,e;case bu:return wl(n,s,l,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Nu:i=10;break e;case Su:i=9;break e;case Pi:i=11;break e;case Li:i=14;break e;case _t:i=16,r=null;break e}throw Error(C(130,e==null?e:typeof e,""))}return t=Fe(i,n,t,s),t.elementType=e,t.type=r,t.lanes=l,t}function cn(e,t,n,r){return e=Fe(7,e,r,t),e.lanes=n,e}function wl(e,t,n,r){return e=Fe(22,e,r,t),e.elementType=bu,e.lanes=n,e.stateNode={isHidden:!1},e}function ro(e,t,n){return e=Fe(6,e,null,t),e.lanes=n,e}function so(e,t,n){return t=Fe(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Sm(e,t,n,r,s){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=zl(0),this.expirationTimes=zl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=zl(0),this.identifierPrefix=r,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function fa(e,t,n,r,s,l,i,a,c){return e=new Sm(e,t,n,a,c),t===1?(t=1,l===!0&&(t|=8)):t=0,l=Fe(3,null,null,t),e.current=l,l.stateNode=e,l.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Gi(l),e}function bm(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:Nn,key:r==null?null:""+r,children:e,containerInfo:t,implementation:n}}function mf(e){if(!e)return qt;e=e._reactInternals;e:{if(vn(e)!==e||e.tag!==1)throw Error(C(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Pe(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(C(171))}if(e.tag===1){var n=e.type;if(Pe(n))return pd(e,n,t)}return t}function gf(e,t,n,r,s,l,i,a,c){return e=fa(n,r,!0,e,s,l,i,a,c),e.context=mf(null),n=e.current,r=ke(),s=Ft(n),l=xt(r,s),l.callback=t??null,Dt(n,l,s),e.current.lanes=s,Gr(e,s,r),Le(e,r),e}function Nl(e,t,n,r){var s=t.current,l=ke(),i=Ft(s);return n=mf(n),t.context===null?t.context=n:t.pendingContext=n,t=xt(l,i),t.payload={element:e},r=r===void 0?null:r,r!==null&&(t.callback=r),e=Dt(s,t,i),e!==null&&(tt(e,s,i,l),ks(e,s,i)),i}function sl(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function Rc(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function ha(e,t){Rc(e,t),(e=e.alternate)&&Rc(e,t)}function km(){return null}var vf=typeof reportError=="function"?reportError:function(e){console.error(e)};function pa(e){this._internalRoot=e}Sl.prototype.render=pa.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(C(409));Nl(e,t,null,null)};Sl.prototype.unmount=pa.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;pn(function(){Nl(null,e,null,null)}),t[Nt]=null}};function Sl(e){this._internalRoot=e}Sl.prototype.unstable_scheduleHydration=function(e){if(e){var t=Ku();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Pt.length&&t!==0&&t<Pt[n].priority;n++);Pt.splice(n,0,e),n===0&&Gu(e)}};function ma(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function bl(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function Oc(){}function jm(e,t,n,r,s){if(s){if(typeof r=="function"){var l=r;r=function(){var f=sl(i);l.call(f)}}var i=gf(t,r,e,0,null,!1,!1,"",Oc);return e._reactRootContainer=i,e[Nt]=i.current,Mr(e.nodeType===8?e.parentNode:e),pn(),i}for(;s=e.lastChild;)e.removeChild(s);if(typeof r=="function"){var a=r;r=function(){var f=sl(c);a.call(f)}}var c=fa(e,0,!1,null,null,!1,!1,"",Oc);return e._reactRootContainer=c,e[Nt]=c.current,Mr(e.nodeType===8?e.parentNode:e),pn(function(){Nl(t,c,n,r)}),c}function kl(e,t,n,r,s){var l=n._reactRootContainer;if(l){var i=l;if(typeof s=="function"){var a=s;s=function(){var c=sl(i);a.call(c)}}Nl(t,i,e,s)}else i=jm(n,t,e,s,r);return sl(i)}Hu=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=pr(t.pendingLanes);n!==0&&(Ai(t,n|1),Le(t,le()),!(V&6)&&(qn=le()+500,Jt()))}break;case 13:pn(function(){var r=St(e,1);if(r!==null){var s=ke();tt(r,e,1,s)}}),ha(e,1)}};Mi=function(e){if(e.tag===13){var t=St(e,134217728);if(t!==null){var n=ke();tt(t,e,134217728,n)}ha(e,134217728)}};qu=function(e){if(e.tag===13){var t=Ft(e),n=St(e,t);if(n!==null){var r=ke();tt(n,e,t,r)}ha(e,t)}};Ku=function(){return q};Qu=function(e,t){var n=q;try{return q=e,t()}finally{q=n}};Po=function(e,t,n){switch(t){case"input":if(bo(e,n),t=n.name,n.type==="radio"&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var s=pl(r);if(!s)throw Error(C(90));ju(r),bo(r,s)}}}break;case"textarea":Eu(e,n);break;case"select":t=n.value,t!=null&&On(e,!!n.multiple,t,!1)}};Au=aa;Mu=pn;var Cm={usingClientEntryPoint:!1,Events:[Yr,Cn,pl,Ru,Ou,aa]},cr={findFiberByHostInstance:sn,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},Em={bundleType:cr.bundleType,version:cr.version,rendererPackageName:cr.rendererPackageName,rendererConfig:cr.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:kt.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=zu(e),e===null?null:e.stateNode},findFiberByHostInstance:cr.findFiberByHostInstance||km,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var ms=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ms.isDisabled&&ms.supportsFiber)try{ul=ms.inject(Em),ut=ms}catch{}}Ie.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Cm;Ie.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!ma(t))throw Error(C(200));return bm(e,t,null,n)};Ie.createRoot=function(e,t){if(!ma(e))throw Error(C(299));var n=!1,r="",s=vf;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onRecoverableError!==void 0&&(s=t.onRecoverableError)),t=fa(e,1,!1,null,null,n,!1,r,s),e[Nt]=t.current,Mr(e.nodeType===8?e.parentNode:e),new pa(t)};Ie.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(C(188)):(e=Object.keys(e).join(","),Error(C(268,e)));return e=zu(t),e=e===null?null:e.stateNode,e};Ie.flushSync=function(e){return pn(e)};Ie.hydrate=function(e,t,n){if(!bl(t))throw Error(C(200));return kl(null,e,t,!0,n)};Ie.hydrateRoot=function(e,t,n){if(!ma(e))throw Error(C(405));var r=n!=null&&n.hydratedSources||null,s=!1,l="",i=vf;if(n!=null&&(n.unstable_strictMode===!0&&(s=!0),n.identifierPrefix!==void 0&&(l=n.identifierPrefix),n.onRecoverableError!==void 0&&(i=n.onRecoverableError)),t=gf(t,null,e,1,n??null,s,!1,l,i),e[Nt]=t.current,Mr(e),r)for(e=0;e<r.length;e++)n=r[e],s=n._getVersion,s=s(n._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[n,s]:t.mutableSourceEagerHydrationData.push(n,s);return new Sl(t)};Ie.render=function(e,t,n){if(!bl(t))throw Error(C(200));return kl(null,e,t,!1,n)};Ie.unmountComponentAtNode=function(e){if(!bl(e))throw Error(C(40));return e._reactRootContainer?(pn(function(){kl(null,null,e,!1,function(){e._reactRootContainer=null,e[Nt]=null})}),!0):!1};Ie.unstable_batchedUpdates=aa;Ie.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!bl(n))throw Error(C(200));if(e==null||e._reactInternals===void 0)throw Error(C(38));return kl(e,t,n,!1,r)};Ie.version="18.3.1-next-f1338f8080-20240426";function yf(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(yf)}catch(e){console.error(e)}}yf(),vu.exports=Ie;var _m=vu.exports,Ac=_m;go.createRoot=Ac.createRoot,go.hydrateRoot=Ac.hydrateRoot;/**
|
|
41
|
+
* @remix-run/router v1.23.4
|
|
42
|
+
*
|
|
43
|
+
* Copyright (c) Remix Software Inc.
|
|
44
|
+
*
|
|
45
|
+
* This source code is licensed under the MIT license found in the
|
|
46
|
+
* LICENSE.md file in the root directory of this source tree.
|
|
47
|
+
*
|
|
48
|
+
* @license MIT
|
|
49
|
+
*/function Wr(){return Wr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Wr.apply(null,arguments)}var At;(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(At||(At={}));const Mc="popstate";function Tm(e){e===void 0&&(e={});function t(r,s){let{pathname:l,search:i,hash:a}=r.location;return ci("",{pathname:l,search:i,hash:a},s.state&&s.state.usr||null,s.state&&s.state.key||"default")}function n(r,s){return typeof s=="string"?s:ll(s)}return Lm(t,n,null,e)}function ee(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function xf(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function Pm(){return Math.random().toString(36).substr(2,8)}function Ic(e,t){return{usr:e.state,key:e.key,idx:t}}function ci(e,t,n,r){return n===void 0&&(n=null),Wr({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Xn(t):t,{state:n,key:t&&t.key||r||Pm()})}function ll(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function Xn(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function Lm(e,t,n,r){r===void 0&&(r={});let{window:s=document.defaultView,v5Compat:l=!1}=r,i=s.history,a=At.Pop,c=null,f=g();f==null&&(f=0,i.replaceState(Wr({},i.state,{idx:f}),""));function g(){return(i.state||{idx:null}).idx}function v(){a=At.Pop;let b=g(),m=b==null?null:b-f;f=b,c&&c({action:a,location:N.location,delta:m})}function d(b,m){a=At.Push;let u=ci(N.location,b,m);f=g()+1;let p=Ic(u,f),x=N.createHref(u);try{i.pushState(p,"",x)}catch(k){if(k instanceof DOMException&&k.name==="DataCloneError")throw k;s.location.assign(x)}l&&c&&c({action:a,location:N.location,delta:1})}function h(b,m){a=At.Replace;let u=ci(N.location,b,m);f=g();let p=Ic(u,f),x=N.createHref(u);i.replaceState(p,"",x),l&&c&&c({action:a,location:N.location,delta:0})}function y(b){let m=s.location.origin!=="null"?s.location.origin:s.location.href,u=typeof b=="string"?b:ll(b);return u=u.replace(/ $/,"%20"),ee(m,"No window.location.(origin|href) available to create URL for href: "+u),new URL(u,m)}let N={get action(){return a},get location(){return e(s,i)},listen(b){if(c)throw new Error("A history only accepts one active listener");return s.addEventListener(Mc,v),c=b,()=>{s.removeEventListener(Mc,v),c=null}},createHref(b){return t(s,b)},createURL:y,encodeLocation(b){let m=y(b);return{pathname:m.pathname,search:m.search,hash:m.hash}},push:d,replace:h,go(b){return i.go(b)}};return N}var $c;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})($c||($c={}));function Rm(e,t,n){return n===void 0&&(n="/"),Om(e,t,n)}function Om(e,t,n,r){let s=typeof t=="string"?Xn(t):t,l=Kn(s.pathname||"/",n);if(l==null)return null;let i=wf(e);Am(i);let a=null,c=Hm(l);for(let f=0;a==null&&f<i.length;++f)a=Vm(i[f],c);return a}function wf(e,t,n,r){t===void 0&&(t=[]),n===void 0&&(n=[]),r===void 0&&(r="");let s=(l,i,a)=>{let c={relativePath:a===void 0?l.path||"":a,caseSensitive:l.caseSensitive===!0,childrenIndex:i,route:l};c.relativePath.startsWith("/")&&(ee(c.relativePath.startsWith(r),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(r.length));let f=Vt([r,c.relativePath]),g=n.concat(c);l.children&&l.children.length>0&&(ee(l.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+f+'".')),wf(l.children,t,g,f)),!(l.path==null&&!l.index)&&t.push({path:f,score:Fm(f,l.index),routesMeta:g})};return e.forEach((l,i)=>{var a;if(l.path===""||!((a=l.path)!=null&&a.includes("?")))s(l,i);else for(let c of Nf(l.path))s(l,i,c)}),t}function Nf(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,s=n.endsWith("?"),l=n.replace(/\?$/,"");if(r.length===0)return s?[l,""]:[l];let i=Nf(r.join("/")),a=[];return a.push(...i.map(c=>c===""?l:[l,c].join("/"))),s&&a.push(...i),a.map(c=>e.startsWith("/")&&c===""?"/":c)}function Am(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:Bm(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const Mm=/^:[\w-]+$/,Im=3,$m=2,zm=1,Dm=10,Um=-2,zc=e=>e==="*";function Fm(e,t){let n=e.split("/"),r=n.length;return n.some(zc)&&(r+=Um),t&&(r+=$m),n.filter(s=>!zc(s)).reduce((s,l)=>s+(Mm.test(l)?Im:l===""?zm:Dm),r)}function Bm(e,t){return e.length===t.length&&e.slice(0,-1).every((r,s)=>r===t[s])?e[e.length-1]-t[t.length-1]:0}function Vm(e,t,n){let{routesMeta:r}=e,s={},l="/",i=[];for(let a=0;a<r.length;++a){let c=r[a],f=a===r.length-1,g=l==="/"?t:t.slice(l.length)||"/",v=ui({path:c.relativePath,caseSensitive:c.caseSensitive,end:f},g),d=c.route;if(!v)return null;Object.assign(s,v.params),i.push({params:s,pathname:Vt([l,v.pathname]),pathnameBase:Qm(Vt([l,v.pathnameBase])),route:d}),v.pathnameBase!=="/"&&(l=Vt([l,v.pathnameBase]))}return i}function ui(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=Wm(e.path,e.caseSensitive,e.end),s=t.match(n);if(!s)return null;let l=s[0],i=l.replace(/(.)\/+$/,"$1"),a=s.slice(1);return{params:r.reduce((f,g,v)=>{let{paramName:d,isOptional:h}=g;if(d==="*"){let N=a[v]||"";i=l.slice(0,l.length-N.length).replace(/(.)\/+$/,"$1")}const y=a[v];return h&&!y?f[d]=void 0:f[d]=(y||"").replace(/%2F/g,"/"),f},{}),pathname:l,pathnameBase:i,pattern:e}}function Wm(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),xf(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let r=[],s="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(i,a,c)=>(r.push({paramName:a,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),s+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?s+="\\/*$":e!==""&&e!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,t?void 0:"i"),r]}function Hm(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return xf(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function Kn(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}function qm(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:s=""}=typeof e=="string"?Xn(e):e,l;return n?(n=Sf(n),n.startsWith("/")?l=Dc(n.substring(1),"/"):l=Dc(n,t)):l=t,{pathname:l,search:Gm(r),hash:Jm(s)}}function Dc(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(s=>{s===".."?n.length>1&&n.pop():s!=="."&&n.push(s)}),n.length>1?n.join("/"):"/"}function lo(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in <Link to="..."> and the router will parse it for you.'}function Km(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function ga(e,t){let n=Km(e);return t?n.map((r,s)=>s===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function va(e,t,n,r){r===void 0&&(r=!1);let s;typeof e=="string"?s=Xn(e):(s=Wr({},e),ee(!s.pathname||!s.pathname.includes("?"),lo("?","pathname","search",s)),ee(!s.pathname||!s.pathname.includes("#"),lo("#","pathname","hash",s)),ee(!s.search||!s.search.includes("#"),lo("#","search","hash",s)));let l=e===""||s.pathname==="",i=l?"/":s.pathname,a;if(i==null)a=n;else{let v=t.length-1;if(!r&&i.startsWith("..")){let d=i.split("/");for(;d[0]==="..";)d.shift(),v-=1;s.pathname=d.join("/")}a=v>=0?t[v]:"/"}let c=qm(s,a),f=i&&i!=="/"&&i.endsWith("/"),g=(l||i===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(f||g)&&(c.pathname+="/"),c}const Sf=e=>e.replace(/\/\/+/g,"/"),Vt=e=>Sf(e.join("/")),Qm=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),Gm=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Jm=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function Ym(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const bf=["post","put","patch","delete"];new Set(bf);const Xm=["get",...bf];new Set(Xm);/**
|
|
50
|
+
* React Router v6.30.6
|
|
51
|
+
*
|
|
52
|
+
* Copyright (c) Remix Software Inc.
|
|
53
|
+
*
|
|
54
|
+
* This source code is licensed under the MIT license found in the
|
|
55
|
+
* LICENSE.md file in the root directory of this source tree.
|
|
56
|
+
*
|
|
57
|
+
* @license MIT
|
|
58
|
+
*/function Hr(){return Hr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Hr.apply(null,arguments)}const jl=w.createContext(null),kf=w.createContext(null),jt=w.createContext(null),Cl=w.createContext(null),Ct=w.createContext({outlet:null,matches:[],isDataRoute:!1}),jf=w.createContext(null);function Zm(e,t){let{relative:n}=t===void 0?{}:t;Zn()||ee(!1);let{basename:r,navigator:s}=w.useContext(jt),{hash:l,pathname:i,search:a}=El(e,{relative:n}),c=i;return r!=="/"&&(c=i==="/"?r:Vt([r,i])),s.createHref({pathname:c,search:a,hash:l})}function Zn(){return w.useContext(Cl)!=null}function Yt(){return Zn()||ee(!1),w.useContext(Cl).location}function Cf(e){w.useContext(jt).static||w.useLayoutEffect(e)}function yn(){let{isDataRoute:e}=w.useContext(Ct);return e?pg():eg()}function eg(){Zn()||ee(!1);let e=w.useContext(jl),{basename:t,future:n,navigator:r}=w.useContext(jt),{matches:s}=w.useContext(Ct),{pathname:l}=Yt(),i=JSON.stringify(ga(s,n.v7_relativeSplatPath)),a=w.useRef(!1);return Cf(()=>{a.current=!0}),w.useCallback(function(f,g){if(g===void 0&&(g={}),!a.current)return;if(typeof f=="number"){r.go(f);return}let v=va(f,JSON.parse(i),l,g.relative==="path");e==null&&t!=="/"&&(v.pathname=v.pathname==="/"?t:Vt([t,v.pathname])),(g.replace?r.replace:r.push)(v,g.state,g)},[t,r,i,l,e])}const Ef=w.createContext(null);function tg(){return w.useContext(Ef)}function ng(e){let t=w.useContext(Ct).outlet;return t&&w.createElement(Ef.Provider,{value:e},t)}function El(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=w.useContext(jt),{matches:s}=w.useContext(Ct),{pathname:l}=Yt(),i=JSON.stringify(ga(s,r.v7_relativeSplatPath));return w.useMemo(()=>va(e,JSON.parse(i),l,n==="path"),[e,i,l,n])}function rg(e,t){return sg(e,t)}function sg(e,t,n,r){Zn()||ee(!1);let{navigator:s}=w.useContext(jt),{matches:l}=w.useContext(Ct),i=l[l.length-1],a=i?i.params:{};i&&i.pathname;let c=i?i.pathnameBase:"/";i&&i.route;let f=Yt(),g;if(t){var v;let b=typeof t=="string"?Xn(t):t;c==="/"||(v=b.pathname)!=null&&v.startsWith(c)||ee(!1),g=b}else g=f;let d=g.pathname||"/",h=d;if(c!=="/"){let b=c.replace(/^\//,"").split("/");h="/"+d.replace(/^\//,"").split("/").slice(b.length).join("/")}let y=Rm(e,{pathname:h}),N=cg(y&&y.map(b=>Object.assign({},b,{params:Object.assign({},a,b.params),pathname:Vt([c,s.encodeLocation?s.encodeLocation(b.pathname).pathname:b.pathname]),pathnameBase:b.pathnameBase==="/"?c:Vt([c,s.encodeLocation?s.encodeLocation(b.pathnameBase).pathname:b.pathnameBase])})),l,n,r);return t&&N?w.createElement(Cl.Provider,{value:{location:Hr({pathname:"/",search:"",hash:"",state:null,key:"default"},g),navigationType:At.Pop}},N):N}function lg(){let e=hg(),t=Ym(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,s={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return w.createElement(w.Fragment,null,w.createElement("h2",null,"Unexpected Application Error!"),w.createElement("h3",{style:{fontStyle:"italic"}},t),n?w.createElement("pre",{style:s},n):null,null)}const og=w.createElement(lg,null);class ig extends w.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?w.createElement(Ct.Provider,{value:this.props.routeContext},w.createElement(jf.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function ag(e){let{routeContext:t,match:n,children:r}=e,s=w.useContext(jl);return s&&s.static&&s.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=n.route.id),w.createElement(Ct.Provider,{value:t},r)}function cg(e,t,n,r){var s;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var l;if(!n)return null;if(n.errors)e=n.matches;else if((l=r)!=null&&l.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let i=e,a=(s=n)==null?void 0:s.errors;if(a!=null){let g=i.findIndex(v=>v.route.id&&(a==null?void 0:a[v.route.id])!==void 0);g>=0||ee(!1),i=i.slice(0,Math.min(i.length,g+1))}let c=!1,f=-1;if(n&&r&&r.v7_partialHydration)for(let g=0;g<i.length;g++){let v=i[g];if((v.route.HydrateFallback||v.route.hydrateFallbackElement)&&(f=g),v.route.id){let{loaderData:d,errors:h}=n,y=v.route.loader&&d[v.route.id]===void 0&&(!h||h[v.route.id]===void 0);if(v.route.lazy||y){c=!0,f>=0?i=i.slice(0,f+1):i=[i[0]];break}}}return i.reduceRight((g,v,d)=>{let h,y=!1,N=null,b=null;n&&(h=a&&v.route.id?a[v.route.id]:void 0,N=v.route.errorElement||og,c&&(f<0&&d===0?(mg("route-fallback"),y=!0,b=null):f===d&&(y=!0,b=v.route.hydrateFallbackElement||null)));let m=t.concat(i.slice(0,d+1)),u=()=>{let p;return h?p=N:y?p=b:v.route.Component?p=w.createElement(v.route.Component,null):v.route.element?p=v.route.element:p=g,w.createElement(ag,{match:v,routeContext:{outlet:g,matches:m,isDataRoute:n!=null},children:p})};return n&&(v.route.ErrorBoundary||v.route.errorElement||d===0)?w.createElement(ig,{location:n.location,revalidation:n.revalidation,component:N,error:h,children:u(),routeContext:{outlet:null,matches:m,isDataRoute:!0}}):u()},null)}var _f=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(_f||{}),Tf=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(Tf||{});function ug(e){let t=w.useContext(jl);return t||ee(!1),t}function dg(e){let t=w.useContext(kf);return t||ee(!1),t}function fg(e){let t=w.useContext(Ct);return t||ee(!1),t}function Pf(e){let t=fg(),n=t.matches[t.matches.length-1];return n.route.id||ee(!1),n.route.id}function hg(){var e;let t=w.useContext(jf),n=dg(),r=Pf();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function pg(){let{router:e}=ug(_f.UseNavigateStable),t=Pf(Tf.UseNavigateStable),n=w.useRef(!1);return Cf(()=>{n.current=!0}),w.useCallback(function(s,l){l===void 0&&(l={}),n.current&&(typeof s=="number"?e.navigate(s):e.navigate(s,Hr({fromRouteId:t},l)))},[e,t])}const Uc={};function mg(e,t,n){Uc[e]||(Uc[e]=!0)}function gg(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function oo(e){let{to:t,replace:n,state:r,relative:s}=e;Zn()||ee(!1);let{future:l,static:i}=w.useContext(jt),{matches:a}=w.useContext(Ct),{pathname:c}=Yt(),f=yn(),g=va(t,ga(a,l.v7_relativeSplatPath),c,s==="path"),v=JSON.stringify(g);return w.useEffect(()=>f(JSON.parse(v),{replace:n,state:r,relative:s}),[f,v,s,n,r]),null}function vg(e){return ng(e.context)}function Ge(e){ee(!1)}function yg(e){let{basename:t="/",children:n=null,location:r,navigationType:s=At.Pop,navigator:l,static:i=!1,future:a}=e;Zn()&&ee(!1);let c=t.replace(/^\/*/,"/"),f=w.useMemo(()=>({basename:c,navigator:l,static:i,future:Hr({v7_relativeSplatPath:!1},a)}),[c,a,l,i]);typeof r=="string"&&(r=Xn(r));let{pathname:g="/",search:v="",hash:d="",state:h=null,key:y="default"}=r,N=w.useMemo(()=>{let b=Kn(g,c);return b==null?null:{location:{pathname:b,search:v,hash:d,state:h,key:y},navigationType:s}},[c,g,v,d,h,y,s]);return N==null?null:w.createElement(jt.Provider,{value:f},w.createElement(Cl.Provider,{children:n,value:N}))}function xg(e){let{children:t,location:n}=e;return rg(di(t),n)}new Promise(()=>{});function di(e,t){t===void 0&&(t=[]);let n=[];return w.Children.forEach(e,(r,s)=>{if(!w.isValidElement(r))return;let l=[...t,s];if(r.type===w.Fragment){n.push.apply(n,di(r.props.children,l));return}r.type!==Ge&&ee(!1),!r.props.index||!r.props.children||ee(!1);let i={id:r.props.id||l.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(i.children=di(r.props.children,l)),n.push(i)}),n}/**
|
|
59
|
+
* React Router DOM v6.30.6
|
|
60
|
+
*
|
|
61
|
+
* Copyright (c) Remix Software Inc.
|
|
62
|
+
*
|
|
63
|
+
* This source code is licensed under the MIT license found in the
|
|
64
|
+
* LICENSE.md file in the root directory of this source tree.
|
|
65
|
+
*
|
|
66
|
+
* @license MIT
|
|
67
|
+
*/function ol(){return ol=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ol.apply(null,arguments)}function Lf(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function wg(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Ng(e,t){return e.button===0&&(!t||t==="_self")&&!wg(e)}function fi(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map(s=>[n,s]):[[n,r]])},[]))}function Sg(e,t){let n=fi(e);return t&&t.forEach((r,s)=>{n.has(s)||t.getAll(s).forEach(l=>{n.append(s,l)})}),n}const bg=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],kg=["aria-current","caseSensitive","className","end","style","to","viewTransition","children"],jg="6";try{window.__reactRouterVersion=jg}catch{}const Cg=w.createContext({isTransitioning:!1}),Eg="startTransition",Fc=vh[Eg];function _g(e){let{basename:t,children:n,future:r,window:s}=e,l=w.useRef();l.current==null&&(l.current=Tm({window:s,v5Compat:!0}));let i=l.current,[a,c]=w.useState({action:i.action,location:i.location}),{v7_startTransition:f}=r||{},g=w.useCallback(v=>{f&&Fc?Fc(()=>c(v)):c(v)},[c,f]);return w.useLayoutEffect(()=>i.listen(g),[i,g]),w.useEffect(()=>gg(r),[r]),w.createElement(yg,{basename:t,children:n,location:a.location,navigationType:a.action,navigator:i,future:r})}const Tg=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Pg=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Lg=w.forwardRef(function(t,n){let{onClick:r,relative:s,reloadDocument:l,replace:i,state:a,target:c,to:f,preventScrollReset:g,viewTransition:v}=t,d=Lf(t,bg),{basename:h}=w.useContext(jt),y,N=!1;if(typeof f=="string"&&Pg.test(f)&&(y=f,Tg))try{let p=new URL(window.location.href),x=f.startsWith("//")?new URL(p.protocol+f):new URL(f),k=Kn(x.pathname,h);x.origin===p.origin&&k!=null?f=k+x.search+x.hash:N=!0}catch{}let b=Zm(f,{relative:s}),m=Og(f,{replace:i,state:a,target:c,preventScrollReset:g,relative:s,viewTransition:v});function u(p){r&&r(p),p.defaultPrevented||m(p)}return w.createElement("a",ol({},d,{href:y||b,onClick:N||l?r:u,ref:n,target:c}))}),ur=w.forwardRef(function(t,n){let{"aria-current":r="page",caseSensitive:s=!1,className:l="",end:i=!1,style:a,to:c,viewTransition:f,children:g}=t,v=Lf(t,kg),d=El(c,{relative:v.relative}),h=Yt(),y=w.useContext(kf),{navigator:N,basename:b}=w.useContext(jt),m=y!=null&&Mg(d)&&f===!0,u=N.encodeLocation?N.encodeLocation(d).pathname:d.pathname,p=h.pathname,x=y&&y.navigation&&y.navigation.location?y.navigation.location.pathname:null;s||(p=p.toLowerCase(),x=x?x.toLowerCase():null,u=u.toLowerCase()),x&&b&&(x=Kn(x,b)||x);const k=u!=="/"&&u.endsWith("/")?u.length-1:u.length;let T=p===u||!i&&p.startsWith(u)&&p.charAt(k)==="/",P=x!=null&&(x===u||!i&&x.startsWith(u)&&x.charAt(u.length)==="/"),R={isActive:T,isPending:P,isTransitioning:m},W=T?r:void 0,I;typeof l=="function"?I=l(R):I=[l,T?"active":null,P?"pending":null,m?"transitioning":null].filter(Boolean).join(" ");let he=typeof a=="function"?a(R):a;return w.createElement(Lg,ol({},v,{"aria-current":W,className:I,ref:n,style:he,to:c,viewTransition:f}),typeof g=="function"?g(R):g)});var hi;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(hi||(hi={}));var Bc;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(Bc||(Bc={}));function Rg(e){let t=w.useContext(jl);return t||ee(!1),t}function Og(e,t){let{target:n,replace:r,state:s,preventScrollReset:l,relative:i,viewTransition:a}=t===void 0?{}:t,c=yn(),f=Yt(),g=El(e,{relative:i});return w.useCallback(v=>{if(Ng(v,n)){v.preventDefault();let d=r!==void 0?r:ll(f)===ll(g);c(e,{replace:d,state:s,preventScrollReset:l,relative:i,viewTransition:a})}},[f,c,g,r,s,n,e,l,i,a])}function Ag(e){let t=w.useRef(fi(e)),n=w.useRef(!1),r=Yt(),s=w.useMemo(()=>Sg(r.search,n.current?null:t.current),[r.search]),l=yn(),i=w.useCallback((a,c)=>{const f=fi(typeof a=="function"?a(s):a);n.current=!0,l("?"+f,c)},[l,s]);return[s,i]}function Mg(e,t){t===void 0&&(t={});let n=w.useContext(Cg);n==null&&ee(!1);let{basename:r}=Rg(hi.useViewTransitionState),s=El(e,{relative:t.relative});if(!n.isTransitioning)return!1;let l=Kn(n.currentLocation.pathname,r)||n.currentLocation.pathname,i=Kn(n.nextLocation.pathname,r)||n.nextLocation.pathname;return ui(s.pathname,i)!=null||ui(s.pathname,l)!=null}const ht=Object.create(null);ht.open="0";ht.close="1";ht.ping="2";ht.pong="3";ht.message="4";ht.upgrade="5";ht.noop="6";const Ls=Object.create(null);Object.keys(ht).forEach(e=>{Ls[ht[e]]=e});const pi={type:"error",data:"parser error"},Rf=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",Of=typeof ArrayBuffer=="function",Af=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer,ya=({type:e,data:t},n,r)=>Rf&&t instanceof Blob?n?r(t):Vc(t,r):Of&&(t instanceof ArrayBuffer||Af(t))?n?r(t):Vc(new Blob([t]),r):r(ht[e]+(t||"")),Vc=(e,t)=>{const n=new FileReader;return n.onload=function(){const r=n.result.split(",")[1];t("b"+(r||""))},n.readAsDataURL(e)};function Wc(e){return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}let io;function Ig(e,t){if(Rf&&e.data instanceof Blob)return e.data.arrayBuffer().then(Wc).then(t);if(Of&&(e.data instanceof ArrayBuffer||Af(e.data)))return t(Wc(e.data));ya(e,!1,n=>{io||(io=new TextEncoder),t(io.encode(n))})}const Hc="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",gr=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let e=0;e<Hc.length;e++)gr[Hc.charCodeAt(e)]=e;const $g=e=>{let t=e.length*.75,n=e.length,r,s=0,l,i,a,c;e[e.length-1]==="="&&(t--,e[e.length-2]==="="&&t--);const f=new ArrayBuffer(t),g=new Uint8Array(f);for(r=0;r<n;r+=4)l=gr[e.charCodeAt(r)],i=gr[e.charCodeAt(r+1)],a=gr[e.charCodeAt(r+2)],c=gr[e.charCodeAt(r+3)],g[s++]=l<<2|i>>4,g[s++]=(i&15)<<4|a>>2,g[s++]=(a&3)<<6|c&63;return f},zg=typeof ArrayBuffer=="function",xa=(e,t)=>{if(typeof e!="string")return{type:"message",data:Mf(e,t)};const n=e.charAt(0);return n==="b"?{type:"message",data:Dg(e.substring(1),t)}:Ls[n]?e.length>1?{type:Ls[n],data:e.substring(1)}:{type:Ls[n]}:pi},Dg=(e,t)=>{if(zg){const n=$g(e);return Mf(n,t)}else return{base64:!0,data:e}},Mf=(e,t)=>{switch(t){case"blob":return e instanceof Blob?e:new Blob([e]);case"arraybuffer":default:return e instanceof ArrayBuffer?e:e.buffer}},If="",Ug=(e,t)=>{const n=e.length,r=new Array(n);let s=0;e.forEach((l,i)=>{ya(l,!1,a=>{r[i]=a,++s===n&&t(r.join(If))})})},Fg=(e,t)=>{const n=e.split(If),r=[];for(let s=0;s<n.length;s++){const l=xa(n[s],t);if(r.push(l),l.type==="error")break}return r};function Bg(){return new TransformStream({transform(e,t){Ig(e,n=>{const r=n.length;let s;if(r<126)s=new Uint8Array(1),new DataView(s.buffer).setUint8(0,r);else if(r<65536){s=new Uint8Array(3);const l=new DataView(s.buffer);l.setUint8(0,126),l.setUint16(1,r)}else{s=new Uint8Array(9);const l=new DataView(s.buffer);l.setUint8(0,127),l.setBigUint64(1,BigInt(r))}e.data&&typeof e.data!="string"&&(s[0]|=128),t.enqueue(s),t.enqueue(n)})}})}let ao;function gs(e){return e.reduce((t,n)=>t+n.length,0)}function vs(e,t){if(e[0].length===t)return e.shift();const n=new Uint8Array(t);let r=0;for(let s=0;s<t;s++)n[s]=e[0][r++],r===e[0].length&&(e.shift(),r=0);return e.length&&r<e[0].length&&(e[0]=e[0].slice(r)),n}function Vg(e,t){ao||(ao=new TextDecoder);const n=[];let r=0,s=-1,l=!1;return new TransformStream({transform(i,a){for(n.push(i);;){if(r===0){if(gs(n)<1)break;const c=vs(n,1);l=(c[0]&128)===128,s=c[0]&127,s<126?r=3:s===126?r=1:r=2}else if(r===1){if(gs(n)<2)break;const c=vs(n,2);s=new DataView(c.buffer,c.byteOffset,c.length).getUint16(0),r=3}else if(r===2){if(gs(n)<8)break;const c=vs(n,8),f=new DataView(c.buffer,c.byteOffset,c.length),g=f.getUint32(0);if(g>Math.pow(2,21)-1){a.enqueue(pi);break}s=g*Math.pow(2,32)+f.getUint32(4),r=3}else{if(gs(n)<s)break;const c=vs(n,s);a.enqueue(xa(l?c:ao.decode(c),t)),r=0}if(s===0||s>e){a.enqueue(pi);break}}}})}const $f=4;function ae(e){if(e)return Wg(e)}function Wg(e){for(var t in ae.prototype)e[t]=ae.prototype[t];return e}ae.prototype.on=ae.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this};ae.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this};ae.prototype.off=ae.prototype.removeListener=ae.prototype.removeAllListeners=ae.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var n=this._callbacks["$"+e];if(!n)return this;if(arguments.length==1)return delete this._callbacks["$"+e],this;for(var r,s=0;s<n.length;s++)if(r=n[s],r===t||r.fn===t){n.splice(s,1);break}return n.length===0&&delete this._callbacks["$"+e],this};ae.prototype.emit=function(e){this._callbacks=this._callbacks||{};for(var t=new Array(arguments.length-1),n=this._callbacks["$"+e],r=1;r<arguments.length;r++)t[r-1]=arguments[r];if(n){n=n.slice(0);for(var r=0,s=n.length;r<s;++r)n[r].apply(this,t)}return this};ae.prototype.emitReserved=ae.prototype.emit;ae.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks["$"+e]||[]};ae.prototype.hasListeners=function(e){return!!this.listeners(e).length};const _l=typeof Promise=="function"&&typeof Promise.resolve=="function"?t=>Promise.resolve().then(t):(t,n)=>n(t,0),Ue=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),Hg="arraybuffer";function zf(e,...t){return t.reduce((n,r)=>(e.hasOwnProperty(r)&&(n[r]=e[r]),n),{})}const qg=Ue.setTimeout,Kg=Ue.clearTimeout;function Tl(e,t){t.useNativeTimers?(e.setTimeoutFn=qg.bind(Ue),e.clearTimeoutFn=Kg.bind(Ue)):(e.setTimeoutFn=Ue.setTimeout.bind(Ue),e.clearTimeoutFn=Ue.clearTimeout.bind(Ue))}const Qg=1.33;function Gg(e){return typeof e=="string"?Jg(e):Math.ceil((e.byteLength||e.size)*Qg)}function Jg(e){let t=0,n=0;for(let r=0,s=e.length;r<s;r++)t=e.charCodeAt(r),t<128?n+=1:t<2048?n+=2:t<55296||t>=57344?n+=3:(r++,n+=4);return n}function Df(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function Yg(e){let t="";for(let n in e)e.hasOwnProperty(n)&&(t.length&&(t+="&"),t+=encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t}function Xg(e){let t={},n=e.split("&");for(let r=0,s=n.length;r<s;r++){let l=n[r].split("=");t[decodeURIComponent(l[0])]=decodeURIComponent(l[1])}return t}class Zg extends Error{constructor(t,n,r){super(t),this.description=n,this.context=r,this.type="TransportError"}}class wa extends ae{constructor(t){super(),this.writable=!1,Tl(this,t),this.opts=t,this.query=t.query,this.socket=t.socket,this.supportsBinary=!t.forceBase64}onError(t,n,r){return super.emitReserved("error",new Zg(t,n,r)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return(this.readyState==="opening"||this.readyState==="open")&&(this.doClose(),this.onClose()),this}send(t){this.readyState==="open"&&this.write(t)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(t){const n=xa(t,this.socket.binaryType);this.onPacket(n)}onPacket(t){super.emitReserved("packet",t)}onClose(t){this.readyState="closed",super.emitReserved("close",t)}pause(t){}createUri(t,n={}){return t+"://"+this._hostname()+this._port()+this.opts.path+this._query(n)}_hostname(){const t=this.opts.hostname;return t.indexOf(":")===-1?t:"["+t+"]"}_port(){return this.opts.port&&(this.opts.secure&&+(this.opts.port!==443)||!this.opts.secure&&Number(this.opts.port)!==80)?":"+this.opts.port:""}_query(t){const n=Yg(t);return n.length?"?"+n:""}}class ev extends wa{constructor(){super(...arguments),this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(t){this.readyState="pausing";const n=()=>{this.readyState="paused",t()};if(this._polling||!this.writable){let r=0;this._polling&&(r++,this.once("pollComplete",function(){--r||n()})),this.writable||(r++,this.once("drain",function(){--r||n()}))}else n()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(t){const n=r=>{if(this.readyState==="opening"&&r.type==="open"&&this.onOpen(),r.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(r)};Fg(t,this.socket.binaryType).forEach(n),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){const t=()=>{this.write([{type:"close"}])};this.readyState==="open"?t():this.once("open",t)}write(t){this.writable=!1,Ug(t,n=>{this.doWrite(n,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const t=this.opts.secure?"https":"http",n=this.query||{};return this.opts.timestampRequests!==!1&&(n[this.opts.timestampParam]=Df()),!this.supportsBinary&&!n.sid&&(n.b64=1),this.createUri(t,n)}}let Uf=!1;try{Uf=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const tv=Uf;function nv(){}class rv extends ev{constructor(t){if(super(t),typeof location<"u"){const n=location.protocol==="https:";let r=location.port;r||(r=n?"443":"80"),this.xd=typeof location<"u"&&t.hostname!==location.hostname||r!==t.port}}doWrite(t,n){const r=this.request({method:"POST",data:t});r.on("success",n),r.on("error",(s,l)=>{this.onError("xhr post error",s,l)})}doPoll(){const t=this.request();t.on("data",this.onData.bind(this)),t.on("error",(n,r)=>{this.onError("xhr poll error",n,r)}),this.pollXhr=t}}class ft extends ae{constructor(t,n,r){super(),this.createRequest=t,Tl(this,r),this._opts=r,this._method=r.method||"GET",this._uri=n,this._data=r.data!==void 0?r.data:null,this._create()}_create(){var t;const n=zf(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");n.xdomain=!!this._opts.xd;const r=this._xhr=this.createRequest(n);try{r.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){r.setDisableHeaderCheck&&r.setDisableHeaderCheck(!0);for(let s in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(s)&&r.setRequestHeader(s,this._opts.extraHeaders[s])}}catch{}if(this._method==="POST")try{r.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{r.setRequestHeader("Accept","*/*")}catch{}(t=this._opts.cookieJar)===null||t===void 0||t.addCookies(r),"withCredentials"in r&&(r.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(r.timeout=this._opts.requestTimeout),r.onreadystatechange=()=>{var s;r.readyState===3&&((s=this._opts.cookieJar)===null||s===void 0||s.parseCookies(r.getResponseHeader("set-cookie"))),r.readyState===4&&(r.status===200||r.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof r.status=="number"?r.status:0)},0))},r.send(this._data)}catch(s){this.setTimeoutFn(()=>{this._onError(s)},0);return}typeof document<"u"&&(this._index=ft.requestsCount++,ft.requests[this._index]=this)}_onError(t){this.emitReserved("error",t,this._xhr),this._cleanup(!0)}_cleanup(t){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=nv,t)try{this._xhr.abort()}catch{}typeof document<"u"&&delete ft.requests[this._index],this._xhr=null}}_onLoad(){const t=this._xhr.responseText;t!==null&&(this.emitReserved("data",t),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}}ft.requestsCount=0;ft.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",qc);else if(typeof addEventListener=="function"){const e="onpagehide"in Ue?"pagehide":"unload";addEventListener(e,qc,!1)}}function qc(){for(let e in ft.requests)ft.requests.hasOwnProperty(e)&&ft.requests[e].abort()}const sv=function(){const e=Ff({xdomain:!1});return e&&e.responseType!==null}();class lv extends rv{constructor(t){super(t);const n=t&&t.forceBase64;this.supportsBinary=sv&&!n}request(t={}){return Object.assign(t,{xd:this.xd},this.opts),new ft(Ff,this.uri(),t)}}function Ff(e){const t=e.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!t||tv))return new XMLHttpRequest}catch{}if(!t)try{return new Ue[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const Bf=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class ov extends wa{get name(){return"websocket"}doOpen(){const t=this.uri(),n=this.opts.protocols,r=Bf?{}:zf(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(r.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(t,n,r)}catch(s){return this.emitReserved("error",s)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=t=>this.onClose({description:"websocket connection closed",context:t}),this.ws.onmessage=t=>this.onData(t.data),this.ws.onerror=t=>this.onError("websocket error",t)}write(t){this.writable=!1;for(let n=0;n<t.length;n++){const r=t[n],s=n===t.length-1;ya(r,this.supportsBinary,l=>{try{this.doWrite(r,l)}catch{}s&&_l(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){const t=this.opts.secure?"wss":"ws",n=this.query||{};return this.opts.timestampRequests&&(n[this.opts.timestampParam]=Df()),this.supportsBinary||(n.b64=1),this.createUri(t,n)}}const co=Ue.WebSocket||Ue.MozWebSocket;class iv extends ov{createSocket(t,n,r){return Bf?new co(t,n,r):n?new co(t,n):new co(t)}doWrite(t,n){this.ws.send(n)}}class av extends wa{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(t){return this.emitReserved("error",t)}this._transport.closed.then(()=>{this.onClose()}).catch(t=>{this.onError("webtransport error",t)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(t=>{const n=Vg(Number.MAX_SAFE_INTEGER,this.socket.binaryType),r=t.readable.pipeThrough(n).getReader(),s=Bg();s.readable.pipeTo(t.writable),this._writer=s.writable.getWriter();const l=()=>{r.read().then(({done:a,value:c})=>{a||(this.onPacket(c),l())}).catch(a=>{})};l();const i={type:"open"};this.query.sid&&(i.data=`{"sid":"${this.query.sid}"}`),this._writer.write(i).then(()=>this.onOpen())})})}write(t){this.writable=!1;for(let n=0;n<t.length;n++){const r=t[n],s=n===t.length-1;this._writer.write(r).then(()=>{s&&_l(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var t;(t=this._transport)===null||t===void 0||t.close()}}const cv={websocket:iv,webtransport:av,polling:lv},uv=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,dv=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function mi(e){if(e.length>8e3)throw"URI too long";const t=e,n=e.indexOf("["),r=e.indexOf("]");n!=-1&&r!=-1&&(e=e.substring(0,n)+e.substring(n,r).replace(/:/g,";")+e.substring(r,e.length));let s=uv.exec(e||""),l={},i=14;for(;i--;)l[dv[i]]=s[i]||"";return n!=-1&&r!=-1&&(l.source=t,l.host=l.host.substring(1,l.host.length-1).replace(/;/g,":"),l.authority=l.authority.replace("[","").replace("]","").replace(/;/g,":"),l.ipv6uri=!0),l.pathNames=fv(l,l.path),l.queryKey=hv(l,l.query),l}function fv(e,t){const n=/\/{2,9}/g,r=t.replace(n,"/").split("/");return(t.slice(0,1)=="/"||t.length===0)&&r.splice(0,1),t.slice(-1)=="/"&&r.splice(r.length-1,1),r}function hv(e,t){const n={};return t.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(r,s,l){s&&(n[s]=l)}),n}const gi=typeof addEventListener=="function"&&typeof removeEventListener=="function",Rs=[];gi&&addEventListener("offline",()=>{Rs.forEach(e=>e())},!1);class Wt extends ae{constructor(t,n){if(super(),this.binaryType=Hg,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,t&&typeof t=="object"&&(n=t,t=null),t){const r=mi(t);n.hostname=r.host,n.secure=r.protocol==="https"||r.protocol==="wss",n.port=r.port,r.query&&(n.query=r.query)}else n.host&&(n.hostname=mi(n.host).host);Tl(this,n),this.secure=n.secure!=null?n.secure:typeof location<"u"&&location.protocol==="https:",n.hostname&&!n.port&&(n.port=this.secure?"443":"80"),this.hostname=n.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=n.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},n.transports.forEach(r=>{const s=r.prototype.name;this.transports.push(s),this._transportsByName[s]=r}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},n),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=Xg(this.opts.query)),gi&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},Rs.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(t){const n=Object.assign({},this.opts.query);n.EIO=$f,n.transport=t,this.id&&(n.sid=this.id);const r=Object.assign({},this.opts,{query:n,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[t]);return new this._transportsByName[t](r)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}const t=this.opts.rememberUpgrade&&Wt.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";const n=this.createTransport(t);n.open(),this.setTransport(n)}setTransport(t){this.transport&&this.transport.removeAllListeners(),this.transport=t,t.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",n=>this._onClose("transport close",n))}onOpen(){this.readyState="open",Wt.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(t){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",t),this.emitReserved("heartbeat"),t.type){case"open":this.onHandshake(JSON.parse(t.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":const n=new Error("server error");n.code=t.data,this._onError(n);break;case"message":this.emitReserved("data",t.data),this.emitReserved("message",t.data);break}}onHandshake(t){this.emitReserved("handshake",t),this.id=t.sid,this.transport.query.sid=t.sid,this._pingInterval=t.pingInterval,this._pingTimeout=t.pingTimeout,this._maxPayload=t.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);const t=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+t,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},t),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const t=this._getWritablePackets();this.transport.send(t),this._prevBufferLen=t.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let n=1;for(let r=0;r<this.writeBuffer.length;r++){const s=this.writeBuffer[r].data;if(s&&(n+=Gg(s)),r>0&&n>this._maxPayload)return this.writeBuffer.slice(0,r);n+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;const t=Date.now()>this._pingTimeoutTime;return t&&(this._pingTimeoutTime=0,_l(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),t}write(t,n,r){return this._sendPacket("message",t,n,r),this}send(t,n,r){return this._sendPacket("message",t,n,r),this}_sendPacket(t,n,r,s){if(typeof n=="function"&&(s=n,n=void 0),typeof r=="function"&&(s=r,r=null),this.readyState==="closing"||this.readyState==="closed")return;r=r||{},r.compress=r.compress!==!1;const l={type:t,data:n,options:r};this.emitReserved("packetCreate",l),this.writeBuffer.push(l),s&&this.once("flush",s),this.flush()}close(){const t=()=>{this._onClose("forced close"),this.transport.close()},n=()=>{this.off("upgrade",n),this.off("upgradeError",n),t()},r=()=>{this.once("upgrade",n),this.once("upgradeError",n)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?r():t()}):this.upgrading?r():t()),this}_onError(t){if(Wt.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",t),this._onClose("transport error",t)}_onClose(t,n){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),gi&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const r=Rs.indexOf(this._offlineEventListener);r!==-1&&Rs.splice(r,1)}this.readyState="closed",this.id=null,this.emitReserved("close",t,n),this.writeBuffer=[],this._prevBufferLen=0}}}Wt.protocol=$f;class pv extends Wt{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let t=0;t<this._upgrades.length;t++)this._probe(this._upgrades[t])}_probe(t){let n=this.createTransport(t),r=!1;Wt.priorWebsocketSuccess=!1;const s=()=>{r||(n.send([{type:"ping",data:"probe"}]),n.once("packet",v=>{if(!r)if(v.type==="pong"&&v.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",n),!n)return;Wt.priorWebsocketSuccess=n.name==="websocket",this.transport.pause(()=>{r||this.readyState!=="closed"&&(g(),this.setTransport(n),n.send([{type:"upgrade"}]),this.emitReserved("upgrade",n),n=null,this.upgrading=!1,this.flush())})}else{const d=new Error("probe error");d.transport=n.name,this.emitReserved("upgradeError",d)}}))};function l(){r||(r=!0,g(),n.close(),n=null)}const i=v=>{const d=new Error("probe error: "+v);d.transport=n.name,l(),this.emitReserved("upgradeError",d)};function a(){i("transport closed")}function c(){i("socket closed")}function f(v){n&&v.name!==n.name&&l()}const g=()=>{n.removeListener("open",s),n.removeListener("error",i),n.removeListener("close",a),this.off("close",c),this.off("upgrading",f)};n.once("open",s),n.once("error",i),n.once("close",a),this.once("close",c),this.once("upgrading",f),this._upgrades.indexOf("webtransport")!==-1&&t!=="webtransport"?this.setTimeoutFn(()=>{r||n.open()},200):n.open()}onHandshake(t){this._upgrades=this._filterUpgrades(t.upgrades),super.onHandshake(t)}_filterUpgrades(t){const n=[];for(let r=0;r<t.length;r++)~this.transports.indexOf(t[r])&&n.push(t[r]);return n}}let mv=class extends pv{constructor(t,n={}){const r=typeof t=="object"?t:n;(!r.transports||r.transports&&typeof r.transports[0]=="string")&&(r.transports=(r.transports||["polling","websocket","webtransport"]).map(s=>cv[s]).filter(s=>!!s)),super(t,r)}};function gv(e,t="",n){let r=e;n=n||typeof location<"u"&&location,e==null&&(e=n.protocol+"//"+n.host),typeof e=="string"&&(e.charAt(0)==="/"&&(e.charAt(1)==="/"?e=n.protocol+e:e=n.host+e),/^(https?|wss?):\/\//.test(e)||(typeof n<"u"?e=n.protocol+"//"+e:e="https://"+e),r=mi(e)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port="80":/^(http|ws)s$/.test(r.protocol)&&(r.port="443")),r.path=r.path||"/";const l=r.host.indexOf(":")!==-1?"["+r.host+"]":r.host;return r.id=r.protocol+"://"+l+":"+r.port+t,r.href=r.protocol+"://"+l+(n&&n.port===r.port?"":":"+r.port),r}const vv=typeof ArrayBuffer=="function",yv=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer,Vf=Object.prototype.toString,xv=typeof Blob=="function"||typeof Blob<"u"&&Vf.call(Blob)==="[object BlobConstructor]",wv=typeof File=="function"||typeof File<"u"&&Vf.call(File)==="[object FileConstructor]";function Na(e){return vv&&(e instanceof ArrayBuffer||yv(e))||xv&&e instanceof Blob||wv&&e instanceof File}function Os(e,t){if(!e||typeof e!="object")return!1;if(Array.isArray(e)){for(let n=0,r=e.length;n<r;n++)if(Os(e[n]))return!0;return!1}if(Na(e))return!0;if(e.toJSON&&typeof e.toJSON=="function"&&arguments.length===1)return Os(e.toJSON(),!0);for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&Os(e[n]))return!0;return!1}function Nv(e){const t=[],n=e.data,r=e;return r.data=vi(n,t),r.attachments=t.length,{packet:r,buffers:t}}function vi(e,t){if(!e)return e;if(Na(e)){const n={_placeholder:!0,num:t.length};return t.push(e),n}else if(Array.isArray(e)){const n=new Array(e.length);for(let r=0;r<e.length;r++)n[r]=vi(e[r],t);return n}else if(typeof e=="object"&&!(e instanceof Date)){const n={};for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=vi(e[r],t));return n}return e}function Sv(e,t){return e.data=yi(e.data,t),delete e.attachments,e}function yi(e,t){if(!e)return e;if(e&&e._placeholder===!0){if(typeof e.num=="number"&&e.num>=0&&e.num<t.length)return t[e.num];throw new Error("illegal attachments")}else if(Array.isArray(e))for(let n=0;n<e.length;n++)e[n]=yi(e[n],t);else if(typeof e=="object")for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(e[n]=yi(e[n],t));return e}const bv=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"],kv=5;var B;(function(e){e[e.CONNECT=0]="CONNECT",e[e.DISCONNECT=1]="DISCONNECT",e[e.EVENT=2]="EVENT",e[e.ACK=3]="ACK",e[e.CONNECT_ERROR=4]="CONNECT_ERROR",e[e.BINARY_EVENT=5]="BINARY_EVENT",e[e.BINARY_ACK=6]="BINARY_ACK"})(B||(B={}));class jv{constructor(t){this.replacer=t}encode(t){return(t.type===B.EVENT||t.type===B.ACK)&&Os(t)?this.encodeAsBinary({type:t.type===B.EVENT?B.BINARY_EVENT:B.BINARY_ACK,nsp:t.nsp,data:t.data,id:t.id}):[this.encodeAsString(t)]}encodeAsString(t){let n=""+t.type;return(t.type===B.BINARY_EVENT||t.type===B.BINARY_ACK)&&(n+=t.attachments+"-"),t.nsp&&t.nsp!=="/"&&(n+=t.nsp+","),t.id!=null&&(n+=t.id),t.data!=null&&(n+=JSON.stringify(t.data,this.replacer)),n}encodeAsBinary(t){const n=Nv(t),r=this.encodeAsString(n.packet),s=n.buffers;return s.unshift(r),s}}function Kc(e){return Object.prototype.toString.call(e)==="[object Object]"}class Sa extends ae{constructor(t){super(),this.reviver=t}add(t){let n;if(typeof t=="string"){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");n=this.decodeString(t);const r=n.type===B.BINARY_EVENT;r||n.type===B.BINARY_ACK?(n.type=r?B.EVENT:B.ACK,this.reconstructor=new Cv(n),n.attachments===0&&super.emitReserved("decoded",n)):super.emitReserved("decoded",n)}else if(Na(t)||t.base64)if(this.reconstructor)n=this.reconstructor.takeBinaryData(t),n&&(this.reconstructor=null,super.emitReserved("decoded",n));else throw new Error("got binary data when not reconstructing a packet");else throw new Error("Unknown type: "+t)}decodeString(t){let n=0;const r={type:Number(t.charAt(0))};if(B[r.type]===void 0)throw new Error("unknown packet type "+r.type);if(r.type===B.BINARY_EVENT||r.type===B.BINARY_ACK){const l=n+1;for(;t.charAt(++n)!=="-"&&n!=t.length;);const i=t.substring(l,n);if(i!=Number(i)||t.charAt(n)!=="-")throw new Error("Illegal attachments");r.attachments=Number(i)}if(t.charAt(n+1)==="/"){const l=n+1;for(;++n&&!(t.charAt(n)===","||n===t.length););r.nsp=t.substring(l,n)}else r.nsp="/";const s=t.charAt(n+1);if(s!==""&&Number(s)==s){const l=n+1;for(;++n;){const i=t.charAt(n);if(i==null||Number(i)!=i){--n;break}if(n===t.length)break}r.id=Number(t.substring(l,n+1))}if(t.charAt(++n)){const l=this.tryParse(t.substr(n));if(Sa.isPayloadValid(r.type,l))r.data=l;else throw new Error("invalid payload")}return r}tryParse(t){try{return JSON.parse(t,this.reviver)}catch{return!1}}static isPayloadValid(t,n){switch(t){case B.CONNECT:return Kc(n);case B.DISCONNECT:return n===void 0;case B.CONNECT_ERROR:return typeof n=="string"||Kc(n);case B.EVENT:case B.BINARY_EVENT:return Array.isArray(n)&&(typeof n[0]=="number"||typeof n[0]=="string"&&bv.indexOf(n[0])===-1);case B.ACK:case B.BINARY_ACK:return Array.isArray(n)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class Cv{constructor(t){this.packet=t,this.buffers=[],this.reconPack=t}takeBinaryData(t){if(this.buffers.push(t),this.buffers.length===this.reconPack.attachments){const n=Sv(this.reconPack,this.buffers);return this.finishedReconstruction(),n}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}const Ev=Object.freeze(Object.defineProperty({__proto__:null,Decoder:Sa,Encoder:jv,get PacketType(){return B},protocol:kv},Symbol.toStringTag,{value:"Module"}));function Xe(e,t,n){return e.on(t,n),function(){e.off(t,n)}}const _v=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class Wf extends ae{constructor(t,n,r){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=t,this.nsp=n,r&&r.auth&&(this.auth=r.auth),this._opts=Object.assign({},r),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const t=this.io;this.subs=[Xe(t,"open",this.onopen.bind(this)),Xe(t,"packet",this.onpacket.bind(this)),Xe(t,"error",this.onerror.bind(this)),Xe(t,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...t){return t.unshift("message"),this.emit.apply(this,t),this}emit(t,...n){var r,s,l;if(_v.hasOwnProperty(t))throw new Error('"'+t.toString()+'" is a reserved event name');if(n.unshift(t),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(n),this;const i={type:B.EVENT,data:n};if(i.options={},i.options.compress=this.flags.compress!==!1,typeof n[n.length-1]=="function"){const g=this.ids++,v=n.pop();this._registerAckCallback(g,v),i.id=g}const a=(s=(r=this.io.engine)===null||r===void 0?void 0:r.transport)===null||s===void 0?void 0:s.writable,c=this.connected&&!(!((l=this.io.engine)===null||l===void 0)&&l._hasPingExpired());return this.flags.volatile&&!a||(c?(this.notifyOutgoingListeners(i),this.packet(i)):this.sendBuffer.push(i)),this.flags={},this}_registerAckCallback(t,n){var r;const s=(r=this.flags.timeout)!==null&&r!==void 0?r:this._opts.ackTimeout;if(s===void 0){this.acks[t]=n;return}const l=this.io.setTimeoutFn(()=>{delete this.acks[t];for(let a=0;a<this.sendBuffer.length;a++)this.sendBuffer[a].id===t&&this.sendBuffer.splice(a,1);n.call(this,new Error("operation has timed out"))},s),i=(...a)=>{this.io.clearTimeoutFn(l),n.apply(this,a)};i.withError=!0,this.acks[t]=i}emitWithAck(t,...n){return new Promise((r,s)=>{const l=(i,a)=>i?s(i):r(a);l.withError=!0,n.push(l),this.emit(t,...n)})}_addToQueue(t){let n;typeof t[t.length-1]=="function"&&(n=t.pop());const r={id:this._queueSeq++,tryCount:0,pending:!1,args:t,flags:Object.assign({fromQueue:!0},this.flags)};t.push((s,...l)=>r!==this._queue[0]?void 0:(s!==null?r.tryCount>this._opts.retries&&(this._queue.shift(),n&&n(s)):(this._queue.shift(),n&&n(null,...l)),r.pending=!1,this._drainQueue())),this._queue.push(r),this._drainQueue()}_drainQueue(t=!1){if(!this.connected||this._queue.length===0)return;const n=this._queue[0];n.pending&&!t||(n.pending=!0,n.tryCount++,this.flags=n.flags,this.emit.apply(this,n.args))}packet(t){t.nsp=this.nsp,this.io._packet(t)}onopen(){typeof this.auth=="function"?this.auth(t=>{this._sendConnectPacket(t)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(t){this.packet({type:B.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},t):t})}onerror(t){this.connected||this.emitReserved("connect_error",t)}onclose(t,n){this.connected=!1,delete this.id,this.emitReserved("disconnect",t,n),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(t=>{if(!this.sendBuffer.some(r=>String(r.id)===t)){const r=this.acks[t];delete this.acks[t],r.withError&&r.call(this,new Error("socket has been disconnected"))}})}onpacket(t){if(t.nsp===this.nsp)switch(t.type){case B.CONNECT:t.data&&t.data.sid?this.onconnect(t.data.sid,t.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case B.EVENT:case B.BINARY_EVENT:this.onevent(t);break;case B.ACK:case B.BINARY_ACK:this.onack(t);break;case B.DISCONNECT:this.ondisconnect();break;case B.CONNECT_ERROR:this.destroy();const r=new Error(t.data.message);r.data=t.data.data,this.emitReserved("connect_error",r);break}}onevent(t){const n=t.data||[];t.id!=null&&n.push(this.ack(t.id)),this.connected?this.emitEvent(n):this.receiveBuffer.push(Object.freeze(n))}emitEvent(t){if(this._anyListeners&&this._anyListeners.length){const n=this._anyListeners.slice();for(const r of n)r.apply(this,t)}super.emit.apply(this,t),this._pid&&t.length&&typeof t[t.length-1]=="string"&&(this._lastOffset=t[t.length-1])}ack(t){const n=this;let r=!1;return function(...s){r||(r=!0,n.packet({type:B.ACK,id:t,data:s}))}}onack(t){const n=this.acks[t.id];typeof n=="function"&&(delete this.acks[t.id],n.withError&&t.data.unshift(null),n.apply(this,t.data))}onconnect(t,n){this.id=t,this.recovered=n&&this._pid===n,this._pid=n,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(t=>this.emitEvent(t)),this.receiveBuffer=[],this.sendBuffer.forEach(t=>{this.notifyOutgoingListeners(t),this.packet(t)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(t=>t()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:B.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(t){return this.flags.compress=t,this}get volatile(){return this.flags.volatile=!0,this}timeout(t){return this.flags.timeout=t,this}onAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(t),this}prependAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(t),this}offAny(t){if(!this._anyListeners)return this;if(t){const n=this._anyListeners;for(let r=0;r<n.length;r++)if(t===n[r])return n.splice(r,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(t){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(t),this}prependAnyOutgoing(t){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(t),this}offAnyOutgoing(t){if(!this._anyOutgoingListeners)return this;if(t){const n=this._anyOutgoingListeners;for(let r=0;r<n.length;r++)if(t===n[r])return n.splice(r,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(t){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){const n=this._anyOutgoingListeners.slice();for(const r of n)r.apply(this,t.data)}}}function er(e){e=e||{},this.ms=e.min||100,this.max=e.max||1e4,this.factor=e.factor||2,this.jitter=e.jitter>0&&e.jitter<=1?e.jitter:0,this.attempts=0}er.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),n=Math.floor(t*this.jitter*e);e=Math.floor(t*10)&1?e+n:e-n}return Math.min(e,this.max)|0};er.prototype.reset=function(){this.attempts=0};er.prototype.setMin=function(e){this.ms=e};er.prototype.setMax=function(e){this.max=e};er.prototype.setJitter=function(e){this.jitter=e};class xi extends ae{constructor(t,n){var r;super(),this.nsps={},this.subs=[],t&&typeof t=="object"&&(n=t,t=void 0),n=n||{},n.path=n.path||"/socket.io",this.opts=n,Tl(this,n),this.reconnection(n.reconnection!==!1),this.reconnectionAttempts(n.reconnectionAttempts||1/0),this.reconnectionDelay(n.reconnectionDelay||1e3),this.reconnectionDelayMax(n.reconnectionDelayMax||5e3),this.randomizationFactor((r=n.randomizationFactor)!==null&&r!==void 0?r:.5),this.backoff=new er({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(n.timeout==null?2e4:n.timeout),this._readyState="closed",this.uri=t;const s=n.parser||Ev;this.encoder=new s.Encoder,this.decoder=new s.Decoder,this._autoConnect=n.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(t){return arguments.length?(this._reconnection=!!t,t||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(t){return t===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=t,this)}reconnectionDelay(t){var n;return t===void 0?this._reconnectionDelay:(this._reconnectionDelay=t,(n=this.backoff)===null||n===void 0||n.setMin(t),this)}randomizationFactor(t){var n;return t===void 0?this._randomizationFactor:(this._randomizationFactor=t,(n=this.backoff)===null||n===void 0||n.setJitter(t),this)}reconnectionDelayMax(t){var n;return t===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=t,(n=this.backoff)===null||n===void 0||n.setMax(t),this)}timeout(t){return arguments.length?(this._timeout=t,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(t){if(~this._readyState.indexOf("open"))return this;this.engine=new mv(this.uri,this.opts);const n=this.engine,r=this;this._readyState="opening",this.skipReconnect=!1;const s=Xe(n,"open",function(){r.onopen(),t&&t()}),l=a=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",a),t?t(a):this.maybeReconnectOnOpen()},i=Xe(n,"error",l);if(this._timeout!==!1){const a=this._timeout,c=this.setTimeoutFn(()=>{s(),l(new Error("timeout")),n.close()},a);this.opts.autoUnref&&c.unref(),this.subs.push(()=>{this.clearTimeoutFn(c)})}return this.subs.push(s),this.subs.push(i),this}connect(t){return this.open(t)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const t=this.engine;this.subs.push(Xe(t,"ping",this.onping.bind(this)),Xe(t,"data",this.ondata.bind(this)),Xe(t,"error",this.onerror.bind(this)),Xe(t,"close",this.onclose.bind(this)),Xe(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(t){try{this.decoder.add(t)}catch(n){this.onclose("parse error",n)}}ondecoded(t){_l(()=>{this.emitReserved("packet",t)},this.setTimeoutFn)}onerror(t){this.emitReserved("error",t)}socket(t,n){let r=this.nsps[t];return r?this._autoConnect&&!r.active&&r.connect():(r=new Wf(this,t,n),this.nsps[t]=r),r}_destroy(t){const n=Object.keys(this.nsps);for(const r of n)if(this.nsps[r].active)return;this._close()}_packet(t){const n=this.encoder.encode(t);for(let r=0;r<n.length;r++)this.engine.write(n[r],t.options)}cleanup(){this.subs.forEach(t=>t()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(t,n){var r;this.cleanup(),(r=this.engine)===null||r===void 0||r.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",t,n),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const t=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const n=this.backoff.duration();this._reconnecting=!0;const r=this.setTimeoutFn(()=>{t.skipReconnect||(this.emitReserved("reconnect_attempt",t.backoff.attempts),!t.skipReconnect&&t.open(s=>{s?(t._reconnecting=!1,t.reconnect(),this.emitReserved("reconnect_error",s)):t.onreconnect()}))},n);this.opts.autoUnref&&r.unref(),this.subs.push(()=>{this.clearTimeoutFn(r)})}}onreconnect(){const t=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",t)}}const dr={};function As(e,t){typeof e=="object"&&(t=e,e=void 0),t=t||{};const n=gv(e,t.path||"/socket.io"),r=n.source,s=n.id,l=n.path,i=dr[s]&&l in dr[s].nsps,a=t.forceNew||t["force new connection"]||t.multiplex===!1||i;let c;return a?c=new xi(r,t):(dr[s]||(dr[s]=new xi(r,t)),c=dr[s]),n.query&&!t.query&&(t.query=n.queryKey),c.socket(n.path,t)}Object.assign(As,{Manager:xi,Socket:Wf,io:As,connect:As});const Tv={},Qc=e=>{let t;const n=new Set,r=(g,v)=>{const d=typeof g=="function"?g(t):g;if(!Object.is(d,t)){const h=t;t=v??(typeof d!="object"||d===null)?d:Object.assign({},t,d),n.forEach(y=>y(t,h))}},s=()=>t,c={setState:r,getState:s,getInitialState:()=>f,subscribe:g=>(n.add(g),()=>n.delete(g)),destroy:()=>{(Tv?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},f=t=e(r,s,c);return c},Pv=e=>e?Qc(e):Qc;var Hf={exports:{}},qf={},Kf={exports:{}},Qf={};/**
|
|
68
|
+
* @license React
|
|
69
|
+
* use-sync-external-store-shim.production.js
|
|
70
|
+
*
|
|
71
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
72
|
+
*
|
|
73
|
+
* This source code is licensed under the MIT license found in the
|
|
74
|
+
* LICENSE file in the root directory of this source tree.
|
|
75
|
+
*/var Qn=w;function Lv(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Rv=typeof Object.is=="function"?Object.is:Lv,Ov=Qn.useState,Av=Qn.useEffect,Mv=Qn.useLayoutEffect,Iv=Qn.useDebugValue;function $v(e,t){var n=t(),r=Ov({inst:{value:n,getSnapshot:t}}),s=r[0].inst,l=r[1];return Mv(function(){s.value=n,s.getSnapshot=t,uo(s)&&l({inst:s})},[e,n,t]),Av(function(){return uo(s)&&l({inst:s}),e(function(){uo(s)&&l({inst:s})})},[e]),Iv(n),n}function uo(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Rv(e,n)}catch{return!0}}function zv(e,t){return t()}var Dv=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?zv:$v;Qf.useSyncExternalStore=Qn.useSyncExternalStore!==void 0?Qn.useSyncExternalStore:Dv;Kf.exports=Qf;var Uv=Kf.exports;/**
|
|
76
|
+
* @license React
|
|
77
|
+
* use-sync-external-store-shim/with-selector.production.js
|
|
78
|
+
*
|
|
79
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
80
|
+
*
|
|
81
|
+
* This source code is licensed under the MIT license found in the
|
|
82
|
+
* LICENSE file in the root directory of this source tree.
|
|
83
|
+
*/var Pl=w,Fv=Uv;function Bv(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Vv=typeof Object.is=="function"?Object.is:Bv,Wv=Fv.useSyncExternalStore,Hv=Pl.useRef,qv=Pl.useEffect,Kv=Pl.useMemo,Qv=Pl.useDebugValue;qf.useSyncExternalStoreWithSelector=function(e,t,n,r,s){var l=Hv(null);if(l.current===null){var i={hasValue:!1,value:null};l.current=i}else i=l.current;l=Kv(function(){function c(h){if(!f){if(f=!0,g=h,h=r(h),s!==void 0&&i.hasValue){var y=i.value;if(s(y,h))return v=y}return v=h}if(y=v,Vv(g,h))return y;var N=r(h);return s!==void 0&&s(y,N)?(g=h,y):(g=h,v=N)}var f=!1,g,v,d=n===void 0?null:n;return[function(){return c(t())},d===null?void 0:function(){return c(d())}]},[t,n,r,s]);var a=Wv(e,l[0],l[1]);return qv(function(){i.hasValue=!0,i.value=a},[a]),Qv(a),a};Hf.exports=qf;var Gv=Hf.exports;const Jv=lu(Gv),Gf={},{useDebugValue:Yv}=cl,{useSyncExternalStoreWithSelector:Xv}=Jv;let Gc=!1;const Zv=e=>e;function ey(e,t=Zv,n){(Gf?"production":void 0)!=="production"&&n&&!Gc&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),Gc=!0);const r=Xv(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Yv(r),r}const Jc=e=>{(Gf?"production":void 0)!=="production"&&typeof e!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const t=typeof e=="function"?Pv(e):e,n=(r,s)=>ey(t,r,s);return Object.assign(n,t),n},ba=e=>e?Jc(e):Jc;class ty{constructor(){ja(this,"baseURL");this.baseURL=window.location.origin}getAuthHeaders(){const t=localStorage.getItem("agentdog_token"),n={"Content-Type":"application/json"};return t&&(n.Authorization=`Bearer ${t}`),n}async handleResponse(t){if(t.status===401)throw localStorage.removeItem("agentdog_token"),new Error("需要身份验证");if(!t.ok){const n=await t.json().catch(()=>({error:"未知错误"}));throw new Error(n.error||`HTTP error! status: ${t.status}`)}return t.json()}async get(t){const n=await fetch(`${this.baseURL}${t}`,{method:"GET",headers:this.getAuthHeaders()});return this.handleResponse(n)}async post(t,n){const r=await fetch(`${this.baseURL}${t}`,{method:"POST",headers:this.getAuthHeaders(),body:n?JSON.stringify(n):void 0});return this.handleResponse(r)}async put(t,n){const r=await fetch(`${this.baseURL}${t}`,{method:"PUT",headers:this.getAuthHeaders(),body:n?JSON.stringify(n):void 0});return this.handleResponse(r)}async delete(t){const n=await fetch(`${this.baseURL}${t}`,{method:"DELETE",headers:this.getAuthHeaders()});return this.handleResponse(n)}isAuthenticated(){return!!localStorage.getItem("agentdog_token")}getToken(){return localStorage.getItem("agentdog_token")}logout(){localStorage.removeItem("agentdog_token"),window.location.reload()}async checkAuthStatus(){try{return await(await fetch(`${this.baseURL}/api/auth/status`,{method:"GET",headers:this.getAuthHeaders()})).json()}catch{return{authenticated:!1,required:!1}}}async login(t){const n=await fetch(`${this.baseURL}/api/auth/login`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:t})});if(!n.ok){const r=await n.json().catch(()=>({error:"登录失败"}));throw new Error(r.error||"登录失败")}localStorage.setItem("agentdog_token",t)}getGatewayStatus(){return this.get("/api/ai-gateway/status")}updateGatewaySettings(t){return this.put("/api/ai-gateway/settings",t)}getAIProviders(){return this.get("/api/ai-providers")}addAIProvider(t){return this.post("/api/ai-providers",t)}updateAIProvider(t,n){return this.put(`/api/ai-providers/${t}`,n)}deleteAIProvider(t){return this.delete(`/api/ai-providers/${t}`)}testAIProvider(t,n){return this.post(`/api/ai-providers/${t}/test`,n?{apiKey:n}:void 0)}fetchProviderModels(t,n){return this.post(`/api/ai-providers/${t}/models`,n?{apiKey:n}:void 0)}}const H=new ty,be=ba((e,t)=>({config:null,servers:[],selectedServer:null,loading:!1,saving:!1,error:null,authRequired:!1,authToken:null,showClientConfigModal:!1,loadConfig:async()=>{console.log("[ConfigStore] Loading config..."),e({loading:!0,error:null});try{const n=await H.get("/api/config");console.log("[ConfigStore] Fetched config:",n);const r=await H.get("/api/servers");console.log("[ConfigStore] Fetched servers:",r),e({config:n,servers:r,loading:!1}),console.log("[ConfigStore] Config and servers loaded successfully.")}catch(n){console.error("[ConfigStore] Failed to load config:",n),e({error:n.message,loading:!1})}},saveConfig:async()=>{const{config:n}=t();if(n){console.log("[ConfigStore] Saving config...",n),e({saving:!0,error:null});try{await H.put("/api/config",n),e({saving:!1}),console.log("[ConfigStore] Config saved successfully.")}catch(r){console.error("[ConfigStore] Failed to save config:",r),e({error:r.message,saving:!1})}}},updateServerConfig:(n,r)=>{console.log("[ConfigStore] Updating server config:",n,r),e(s=>({servers:s.servers.map(l=>l.name===n?{...l,...r}:l)}))},toggleServer:async(n,r)=>{console.log("[ConfigStore] Toggling server:",n);try{const{servers:s}=t(),l=s.find(i=>i.name===n);if(l){const i=!l.enabled;console.log("[ConfigStore] Local state update for toggle:",n,"enabled:",i),e(a=>({servers:a.servers.map(c=>{var f,g;return c.name===n?{...c,enabled:i,connected:i?c.connected:!1,toolCount:i?c.toolCount:0,enabledToolCount:i&&((f=c.tools)==null?void 0:f.filter(v=>v.enabled).length)||0,tools:i?c.tools:((g=c.tools)==null?void 0:g.map(v=>({...v,enabled:!1})))||[]}:c})}))}console.log("[ConfigStore] Sending toggle API request for",n);try{const i=await H.post(`/api/servers/${n}/toggle`);console.log("[ConfigStore] Server toggle API response:",i),l&&!l.enabled&&r&&(console.log("[ConfigStore] Server was enabled, scheduling tool refresh"),setTimeout(()=>{r()},1500))}catch(i){throw console.error("[ConfigStore] Toggle API request failed for",n),l&&e(a=>({servers:a.servers.map(c=>c.name===n?{...c,enabled:l.enabled,connected:l.connected,toolCount:l.toolCount,enabledToolCount:l.enabledToolCount,tools:l.tools}:c)})),i}}catch(s){throw console.error("[ConfigStore] Error toggling server:",s),e({error:s.message}),s}},toggleServerTool:async(n,r)=>{console.log("[ConfigStore] Toggling tool:",r,"for server:",n);try{const s=await H.post(`/api/servers/${n}/tools/${r}/toggle`);console.log("[ConfigStore] Tool toggle API response:",s),e(l=>({servers:l.servers.map(i=>{var a,c;return i.name===n?{...i,tools:(a=i.tools)==null?void 0:a.map(f=>f.name===r?{...f,enabled:!f.enabled}:f),enabledToolCount:((c=i.tools)==null?void 0:c.map(f=>f.name===r?{...f,enabled:!f.enabled}:f).filter(f=>f.enabled).length)||0}:i})})),console.log("[ConfigStore] Tool toggle state updated locally")}catch(s){throw console.error("[ConfigStore] Error toggling tool:",s),e({error:s.message}),s}},addServer:async(n,r)=>{console.log("[ConfigStore] Adding server:",n,r),e({saving:!0,error:null});try{const s=await H.post("/api/servers",{name:n,config:r});console.log("[ConfigStore] Add server API response:",s),e(l=>({servers:[...l.servers,{...r,name:n,connected:!1,toolCount:0,enabledToolCount:0,tools:[]}],saving:!1})),console.log("[ConfigStore] Server added to local state.")}catch(s){throw console.error("[ConfigStore] Error adding server:",s),e({error:s.message,saving:!1}),s}},removeServer:async n=>{console.log("[ConfigStore] Removing server:",n),e({saving:!0,error:null});try{const r=await H.delete(`/api/servers/${n}`);console.log("[ConfigStore] Remove server API response:",r),e(s=>({servers:s.servers.filter(l=>l.name!==n),saving:!1,selectedServer:s.selectedServer===n?null:s.selectedServer})),console.log("[ConfigStore] Server removed from local state.")}catch(r){throw console.error("[ConfigStore] Error removing server:",r),e({error:r.message,saving:!1}),r}},updateServerTools:async(n,r)=>{console.log("[ConfigStore] Updating server tools for",n,r);try{const s=await H.put(`/api/servers/${n}/tools`,{toolsConfig:r});console.log("[ConfigStore] Update server tools API response:",s),t().updateServerConfig(n,{toolsConfig:r}),console.log("[ConfigStore] Server tools updated locally.")}catch(s){console.error("[ConfigStore] Error updating server tools:",s),e({error:s.message})}},syncServerStatus:(n,r)=>{console.log("[ConfigStore] Syncing server status for",n,r),e(s=>({servers:s.servers.map(l=>l.name===n&&(r.connected!==void 0&&r.connected!==l.connected||r.toolCount!==void 0&&r.toolCount!==l.toolCount||r.enabledToolCount!==void 0&&r.enabledToolCount!==l.enabledToolCount)?{...l,connected:r.connected!==void 0?r.connected:l.connected,toolCount:r.toolCount!==void 0?r.toolCount:l.toolCount,enabledToolCount:r.enabledToolCount!==void 0?r.enabledToolCount:l.enabledToolCount}:l)})),console.log("[ConfigStore] Server status synced locally.")},setServers:n=>{console.log("[ConfigStore] Setting servers:",n),e({servers:n})},setSelectedServer:n=>{console.log("[ConfigStore] Setting selected server:",n),e({selectedServer:n})},showClientConfig:()=>{console.log("[ConfigStore] Showing client config modal."),e({showClientConfigModal:!0})},hideClientConfig:()=>{console.log("[ConfigStore] Hiding client config modal."),e({showClientConfigModal:!1})},generateClientConfig:(n,r)=>{console.log("[ConfigStore] Generating client config for",n);const{config:s}=t();if(!s)throw new Error("没有可用的配置");const l=r||Object.keys(s.servers),i={};switch(l.forEach(a=>{const c=s.servers[a];c&&c.enabled&&(c.transport==="stdio"?i[a]={command:c.command,args:c.args||[],env:c.env}:c.transport==="http-sse"&&(i[a]={type:"sse",url:c.endpoint}))}),n){case"claude-desktop":return{type:"claude-desktop",name:"Claude Desktop 配置",config:{mcpServers:i},instructions:["1. 打开 Claude Desktop 应用","2. 进入 设置 -> 开发者",'3. 找到 "编辑配置" 按钮',"4. 将配置粘贴到 mcpServers 段中","5. 重启 Claude Desktop"]};case"cursor":return{type:"cursor",name:"Cursor 配置",config:{mcp:{mcpServers:i}},instructions:["1. 打开 Cursor 编辑器","2. 按 Cmd/Ctrl + Shift + P 打开命令面板",'3. 搜索 "Preferences: Open Settings (JSON)"',"4. 将配置添加到设置文件中","5. 重启 Cursor"]};default:throw new Error(`不支持的客户端类型: ${n}`)}},setAuthState:(n,r)=>{console.log("[ConfigStore] Setting auth state:",{required:n,hasToken:!!r}),e({authRequired:n,authToken:r||localStorage.getItem("agentdog_token")})}})),Yc=200,Kt=ba((e,t)=>({connected:!1,systemStatus:null,tools:[],events:[],selectedServer:null,selectedTool:null,serverLogs:{},aiLogs:[],setConnected:n=>{e({connected:n})},addServerLog:n=>{e(r=>{const l=[...r.serverLogs[n.serverName]||[],n].slice(-100);return{serverLogs:{...r.serverLogs,[n.serverName]:l}}})},initAiLogs:n=>{e({aiLogs:n.slice(0,Yc)})},addAiLog:n=>{e(r=>({aiLogs:[n,...r.aiLogs].slice(0,Yc)}))},setSystemStatus:n=>{e({systemStatus:n}),n.servers.forEach(r=>{be.getState().syncServerStatus(r.name,{connected:r.connected,toolCount:r.toolCount,enabledToolCount:r.enabledToolCount})})},setTools:n=>{e({tools:n})},addEvent:n=>{const{events:r}=t(),s=[n,...r].slice(0,100);e({events:s})},setSelectedServer:n=>{e({selectedServer:n})},setSelectedTool:n=>{e({selectedTool:n})}})),ny=e=>{const t=w.useRef(null),n=w.useRef(null),{setConnected:r,setSystemStatus:s,addEvent:l,addServerLog:i,addAiLog:a}=Kt(),{loadConfig:c}=be();w.useEffect(()=>{n.current=i},[i]);const f=d=>{console.log("[WebSocket] Updating server status only:",d);const{setServers:h}=be.getState();h(d)};w.useEffect(()=>{t.current=As(e,{transports:["websocket"],autoConnect:!0});const d=t.current;return d.on("connect",()=>{console.log("WebSocket 已连接"),r(!0),d.emit("request-status")}),d.on("disconnect",()=>{console.log("WebSocket 已断开"),r(!1)}),d.on("status-update",h=>{console.log("[WebSocket] Status update received:",h),s(h),console.log("[WebSocket] setSystemStatus called with:",h)}),d.on("config-changed",h=>{console.log("[WebSocket] Config changed event received:",h),!h.context||h.context.changeType!=="server-toggle"?c().then(()=>{console.log("[WebSocket] Config reloaded successfully after config-changed event")}).catch(y=>{console.error("[WebSocket] Failed to reload config after config-changed event:",y)}):console.log("[WebSocket] Skipping config reload for server toggle to avoid page flicker"),d.emit("request-status"),l({type:"config-changed",data:h,timestamp:new Date().toISOString()})}),d.on("server-updated",h=>{console.log("[WebSocket] Server updated event received:",h),l({type:"server-updated",data:h,timestamp:h.timestamp||new Date().toISOString()})}),d.on("server-started",()=>{console.log("[WebSocket] Server started event received"),d.emit("request-status")}),d.on("server-stopped",()=>{console.log("[WebSocket] Server stopped event received"),d.emit("request-status")}),d.on("routes-updated",h=>{console.log("[WebSocket] Routes updated event received:",h),h.isReconnection||d.emit("request-status"),l({type:"routes-updated",data:h,timestamp:new Date().toISOString()})}),d.on("tool-called",h=>{console.log("工具调用:",h),l({type:"tool-called",data:h,timestamp:h.timestamp||new Date().toISOString()})}),d.on("server-status-changed",h=>{if(console.log("[WebSocket] Server status changed event received:",h),h.systemStatus){console.log("[WebSocket] Using embedded system status from server-status-changed event");const{servers:y}=h.systemStatus;y&&!h.event?f(y):s(h.systemStatus)}if(h.event==="server-connected"||h.event==="server-enabled"){if(console.log("[WebSocket] Server enabled/connected, updating state smoothly"),h.event==="server-enabled"){console.log("[WebSocket] Server enabled, waiting for connection event");return}if(h.event==="server-connected"&&(console.log("[WebSocket] Server connected, updating tool state"),h.systemStatus&&h.systemStatus.servers)){const{servers:y}=h.systemStatus,N=y.find(b=>b.name===h.serverName);if(N){console.log("[WebSocket] Updating server state for connected server:",N.name);const{setServers:b}=be.getState(),u=be.getState().servers.map(p=>p.name===N.name?{...p,connected:N.connected,toolCount:N.toolCount,enabledToolCount:N.enabledToolCount,tools:p.tools||[]}:p);b(u),console.log("[WebSocket] Server state updated smoothly without loadConfig")}}}l({type:h.event,data:h.originalData,timestamp:h.timestamp})}),d.on("server-connected",h=>{console.log("[WebSocket] Legacy server connected event received:",h),setTimeout(()=>{console.log("[WebSocket] Requesting delayed status update after server connection"),d.emit("request-status")},500),setTimeout(()=>{console.log("[WebSocket] Requesting second delayed status update after server connection"),d.emit("request-status")},1500),l({type:"server-connected",data:h,timestamp:h.timestamp||new Date().toISOString()})}),d.on("server-disconnected",h=>{console.log("[WebSocket] Server disconnected event received:",h),d.emit("request-status"),l({type:"server-disconnected",data:h,timestamp:h.timestamp||new Date().toISOString()})}),d.on("server-error",h=>{console.log("[WebSocket] Server error event received:",h),l({type:"server-error",data:h,timestamp:h.timestamp||new Date().toISOString()})}),d.on("error",h=>{console.error("WebSocket 错误:",h),l({type:"error",data:h,timestamp:h.timestamp||new Date().toISOString()})}),d.on("server-log",h=>{n.current&&n.current(h)}),d.on("ai-log",h=>{a(h)}),d.on("enhanced-log-added",h=>{console.log("[WebSocket] Enhanced log received:",h),n.current&&!h.logEntry.message.startsWith("Received: {")&&!h.logEntry.message.match(/^\{.*\}$/)&&n.current({serverName:h.serverName,stream:h.logEntry.source||"system",data:`[${h.logEntry.level.toUpperCase()}] ${h.logEntry.message}`,timestamp:h.logEntry.timestamp})}),d.on("server-log-error",h=>{console.log("[WebSocket] Server log error:",h),l({type:"server-error",data:h,timestamp:h.timestamp||new Date().toISOString()})}),d.on("server-connection-status",h=>{console.log("[WebSocket] Server connection status changed:",h),l({type:h.isConnected?"server-connected":"server-disconnected",data:h,timestamp:new Date().toISOString()})}),()=>{d&&d.disconnect()}},[e,r,s,l,a,c]);const g=d=>{var h;(h=t.current)!=null&&h.connected&&(console.log(`[WebSocket] Manually refreshing tools for server: ${d||"all servers"}`),t.current.emit("request-status"))},v=()=>{var d;(d=t.current)!=null&&d.connected&&t.current.emit("request-status")};return{socket:t.current,requestStatus:v,refreshServerTools:g}},Jf=w.createContext(void 0);function fo({children:e}){const[t,n]=w.useState(()=>{if(typeof window<"u"){const l=localStorage.getItem("agentdog-theme");if(l==="light"||l==="dark")return l}return"dark"});w.useEffect(()=>{document.documentElement.setAttribute("data-theme",t),localStorage.setItem("agentdog-theme",t)},[t]);const s={theme:t,toggleTheme:()=>{n(l=>l==="light"?"dark":"light")},setTheme:n};return o.jsx(Jf.Provider,{value:s,children:e})}function ry(){const e=w.useContext(Jf);if(e===void 0)throw new Error("useTheme must be used within a ThemeProvider");return e}var sy={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const ly=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),oy=(e,t)=>{const n=w.forwardRef(({color:r="currentColor",size:s=24,strokeWidth:l=2,absoluteStrokeWidth:i,children:a,...c},f)=>w.createElement("svg",{ref:f,...sy,width:s,height:s,stroke:r,strokeWidth:i?Number(l)*24/Number(s):l,className:`lucide lucide-${ly(e)}`,...c},[...t.map(([g,v])=>w.createElement(g,v)),...(Array.isArray(a)?a:[a])||[]]));return n.displayName=`${e}`,n};var z=oy;const iy=z("AlertCircle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]),ay=z("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]),Xc=z("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]),cy=z("Check",[["polyline",{points:"20 6 9 17 4 12",key:"10jjfj"}]]),uy=z("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]),Cr=z("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]),dy=z("Dog",[["path",{d:"M10 5.172C10 3.782 8.423 2.679 6.5 3c-2.823.47-4.113 6.006-4 7 .08.703 1.725 1.722 3.656 1 1.261-.472 1.96-1.45 2.344-2.5",key:"19br0u"}],["path",{d:"M14.267 5.172c0-1.39 1.577-2.493 3.5-2.172 2.823.47 4.113 6.006 4 7-.08.703-1.725 1.722-3.656 1-1.261-.472-1.855-1.45-2.239-2.5",key:"11n1an"}],["path",{d:"M8 14v.5",key:"1nzgdb"}],["path",{d:"M16 14v.5",key:"1lajdz"}],["path",{d:"M11.25 16.25h1.5L12 17l-.75-.75Z",key:"12kq1m"}],["path",{d:"M4.42 11.247A13.152 13.152 0 0 0 4 14.556C4 18.728 7.582 21 12 21s8-2.272 8-6.444c0-1.061-.162-2.2-.493-3.309m-9.243-6.082A8.801 8.801 0 0 1 12 5c.78 0 1.5.108 2.161.306",key:"wsu29d"}]]),fy=z("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]),hy=z("ExternalLink",[["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}],["polyline",{points:"15 3 21 3 21 9",key:"mznyad"}],["line",{x1:"10",x2:"21",y1:"14",y2:"3",key:"18c3s4"}]]),py=z("FileCog",[["path",{d:"M4 6V4a2 2 0 0 1 2-2h8.5L20 7.5V20a2 2 0 0 1-2 2H4",key:"dba9qu"}],["polyline",{points:"14 2 14 8 20 8",key:"1ew0cm"}],["circle",{cx:"6",cy:"14",r:"3",key:"a1xfv6"}],["path",{d:"M6 10v1",key:"xs0f9j"}],["path",{d:"M6 17v1",key:"idyhc0"}],["path",{d:"M10 14H9",key:"m5fm2q"}],["path",{d:"M3 14H2",key:"19ot09"}],["path",{d:"m9 11-.88.88",key:"lhul2b"}],["path",{d:"M3.88 16.12 3 17",key:"169z9n"}],["path",{d:"m9 17-.88-.88",key:"5io96w"}],["path",{d:"M3.88 11.88 3 11",key:"1ynhy1"}]]),my=z("FileText",[["path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z",key:"1nnpy2"}],["polyline",{points:"14 2 14 8 20 8",key:"1ew0cm"}],["line",{x1:"16",x2:"8",y1:"13",y2:"13",key:"14keom"}],["line",{x1:"16",x2:"8",y1:"17",y2:"17",key:"17nazh"}],["line",{x1:"10",x2:"8",y1:"9",y2:"9",key:"1a5vjj"}]]),gy=z("Github",[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]]),vy=z("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"2",x2:"22",y1:"12",y2:"12",key:"1dnqot"}],["path",{d:"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z",key:"nb9nel"}]]),yy=z("History",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]),xy=z("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]),wy=z("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]),Zc=z("Loader2",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]),Ny=z("LogOut",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]),Sy=z("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]),by=z("Pencil",[["path",{d:"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z",key:"5qss01"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]),ky=z("PlugZap",[["path",{d:"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z",key:"goz73y"}],["path",{d:"m2 22 3-3",key:"19mgm9"}],["path",{d:"M7.5 13.5 10 11",key:"7xgeeb"}],["path",{d:"M10.5 16.5 13 14",key:"10btkg"}],["path",{d:"m18 3-4 4h6l-4 4",key:"16psg9"}]]),mn=z("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]),qr=z("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]),eu=z("Save",[["path",{d:"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z",key:"1owoqh"}],["polyline",{points:"17 21 17 13 7 13 7 21",key:"1md35c"}],["polyline",{points:"7 3 7 8 15 8",key:"8nz8an"}]]),jy=z("ScrollText",[["path",{d:"M8 21h12a2 2 0 0 0 2-2v-2H10v2a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v3h4",key:"13a6an"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M15 12h-5",key:"r7krc0"}]]),wi=z("Server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]),il=z("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),Kr=z("Sparkles",[["path",{d:"m12 3-1.912 5.813a2 2 0 0 1-1.275 1.275L3 12l5.813 1.912a2 2 0 0 1 1.275 1.275L12 21l1.912-5.813a2 2 0 0 1 1.275-1.275L21 12l-5.813-1.912a2 2 0 0 1-1.275-1.275L12 3Z",key:"17u4zn"}],["path",{d:"M5 3v4",key:"bklmnn"}],["path",{d:"M19 17v4",key:"iiml17"}],["path",{d:"M3 5h4",key:"nem4j1"}],["path",{d:"M17 19h4",key:"lbex7p"}]]),Cy=z("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]),Ey=z("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]),_y=z("Timer",[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]]),Yf=z("ToggleLeft",[["rect",{width:"20",height:"12",x:"2",y:"6",rx:"6",ry:"6",key:"f2vt7d"}],["circle",{cx:"8",cy:"12",r:"2",key:"1nvbw3"}]]),Xf=z("ToggleRight",[["rect",{width:"20",height:"12",x:"2",y:"6",rx:"6",ry:"6",key:"f2vt7d"}],["circle",{cx:"16",cy:"12",r:"2",key:"4ma0v8"}]]),Dn=z("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]),Ty=z("Waves",[["path",{d:"M2 6c.6.5 1.2 1 2.5 1C7 7 7 5 9.5 5c2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"knzxuh"}],["path",{d:"M2 12c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"2jd2cc"}],["path",{d:"M2 18c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"rd2r6e"}]]),Py=z("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]),Ll=z("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),ka=z("Zap",[["polygon",{points:"13 2 3 14 12 14 11 22 21 10 12 10 13 2",key:"45s27k"}]]),Ly=({className:e=""})=>{const{theme:t,toggleTheme:n}=ry();return o.jsx("button",{onClick:n,className:`btn btn-ghost btn-sm btn-circle ${e}`,title:t==="light"?"切换到深色模式":"切换到浅色模式",children:t==="light"?o.jsx(Sy,{className:"h-4 w-4"}):o.jsx(Cy,{className:"h-4 w-4"})})},Ry="https://github.com/lzm04521/Agent-Dog",wn={to:"/dashboard",label:"控制台",icon:wy},Ni=[{label:"MCP 服务器",icon:wi,prefix:"/mcp",items:[{to:"/mcp",label:"服务器管理",icon:wi},{to:"/mcp/logs",label:"日志",icon:jy}]},{label:"AI 供应商",icon:Kr,prefix:"/providers",items:[{to:"/providers",label:"供应商管理",icon:Kr},{to:"/providers/logs",label:"调用日志",icon:yy}]}];function tu(e,t){const n=t.items.filter(r=>e===r.to||e.startsWith(r.to+"/"));if(n.length!==0)return n.reduce((r,s)=>s.to.length>r.to.length?s:r)}function nu(e){return Ni.find(t=>e===t.prefix||e.startsWith(t.prefix+"/"))}const Oy=({outletContext:e})=>{const[t,n]=w.useState(""),[r,s]=w.useState(""),{connected:l}=Kt(),i=Yt(),a=yn(),[c,f]=w.useState(void 0);w.useEffect(()=>{H.get("/api/system/info").then(y=>{y!=null&&y.version&&n(String(y.version)),y!=null&&y.configPath&&s(String(y.configPath))}).catch(()=>{})},[]),w.useEffect(()=>{f(void 0)},[i.pathname]);const g=nu(i.pathname),v=c!==void 0?c:(g==null?void 0:g.label)??null,d=y=>{v===y.label?f(null):(f(y.label),a(y.items[0].to))},h=(y,N)=>{const b=tu(i.pathname,N)===y;return o.jsx(ur,{to:y.to,className:`flex items-center gap-2.5 px-3 py-1.5 pl-9 rounded-field text-[13px] transition-colors ${b?"bg-primary/10 text-primary font-semibold":"text-base-content/55 hover:bg-base-100 hover:text-base-content"}`,children:y.label},y.to)};return o.jsxs("div",{className:"min-h-screen bg-base-200 text-base-content",children:[o.jsxs("header",{className:"glass sticky top-0 z-30 flex items-center gap-3 px-4 lg:px-6 py-2.5 border-b border-base-300",children:[o.jsx("div",{className:"w-9 h-9 rounded-xl bg-gradient-to-br from-primary to-accent flex items-center justify-center text-primary-content shadow-md shrink-0",children:o.jsx(dy,{className:"w-5 h-5"})}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("div",{className:"text-base font-bold leading-tight",children:"AgentDog"}),o.jsx("div",{className:"hidden sm:block text-[11px] text-base-content/50",children:"MCP 网关 + AI API 网关"})]}),r&&o.jsxs("div",{className:"hidden xl:flex items-center gap-1.5 ml-2 pl-3 border-l border-base-300 text-[11px] font-mono text-base-content/40 max-w-[340px] cursor-default",title:r,children:[o.jsx(py,{className:"w-3.5 h-3.5 shrink-0"}),o.jsx("span",{className:"truncate",children:r})]}),o.jsxs("div",{className:"ml-auto flex items-center gap-1.5",children:[o.jsxs("span",{className:`badge badge-sm gap-1.5 ${l?"badge-success badge-outline":"badge-warning badge-outline"}`,title:r||void 0,children:[o.jsx("span",{className:`w-1.5 h-1.5 rounded-full ${l?"bg-success":"bg-warning"}`}),l?"运行中":"已断开",t&&o.jsxs("span",{children:["· v",t]})]}),o.jsx(Ly,{}),o.jsx("a",{href:Ry,target:"_blank",rel:"noreferrer",title:"GitHub 仓库",className:"btn btn-ghost btn-sm btn-square",children:o.jsx(gy,{className:"w-4 h-4"})})]})]}),o.jsxs("div",{className:"flex gap-4 lg:gap-6 w-full p-4 lg:p-6 items-start",children:[o.jsxs("aside",{className:"glass w-[240px] shrink-0 sticky top-[4.5rem] hidden md:flex flex-col gap-1 p-3 rounded-box border border-base-300 shadow-sm",children:[o.jsxs(ur,{to:wn.to,className:({isActive:y})=>`flex items-center gap-2.5 px-3 py-2 rounded-field text-sm font-medium transition-colors ${y?"bg-primary/10 text-primary font-semibold":"text-base-content/60 hover:bg-base-100 hover:text-base-content"}`,children:[o.jsx(wn.icon,{className:"w-[18px] h-[18px] shrink-0"}),wn.label]}),Ni.map(y=>{const N=y.icon,b=(g==null?void 0:g.label)===y.label,m=v===y.label;return o.jsxs("div",{className:"flex flex-col gap-0.5",children:[o.jsxs("button",{type:"button",onClick:()=>d(y),className:`flex items-center gap-2.5 px-3 py-2 rounded-field text-sm font-medium transition-colors cursor-pointer ${b?"text-primary font-semibold":"text-base-content/60 hover:bg-base-100 hover:text-base-content"}`,children:[o.jsx(N,{className:"w-[18px] h-[18px] shrink-0"}),y.label,o.jsx(uy,{className:`w-3.5 h-3.5 ml-auto shrink-0 transition-transform ${m?"":"-rotate-90"}`})]}),m&&o.jsx("div",{className:"flex flex-col gap-0.5",children:y.items.map(u=>h(u,y))})]},y.label)})]}),o.jsxs("nav",{className:"md:hidden fixed bottom-3 left-1/2 -translate-x-1/2 z-30 glass flex flex-col gap-1 p-1.5 rounded-2xl border border-base-300 shadow-md max-w-[94vw]",children:[o.jsxs("div",{className:"flex gap-1",children:[o.jsx(ur,{to:wn.to,title:wn.label,className:({isActive:y})=>`flex items-center justify-center w-10 h-10 rounded-full transition-colors ${y?"bg-primary/10 text-primary":"text-base-content/60"}`,children:o.jsx(wn.icon,{className:"w-[18px] h-[18px]"})}),Ni.map(y=>{var m;const N=y.icon,b=((m=nu(i.pathname))==null?void 0:m.label)===y.label;return o.jsx(ur,{to:y.items[0].to,title:y.label,className:()=>`flex items-center justify-center w-10 h-10 rounded-full transition-colors ${b?"bg-primary/10 text-primary":"text-base-content/60"}`,children:o.jsx(N,{className:"w-[18px] h-[18px]"})},y.label)})]}),g&&o.jsx("div",{className:"flex gap-1 px-1 pb-0.5 overflow-x-auto scrollbar-thin",children:g.items.map(y=>{const N=tu(i.pathname,g)===y;return o.jsx(ur,{to:y.to,className:`shrink-0 px-2.5 py-1 rounded-full text-[12px] transition-colors ${N?"bg-primary/10 text-primary font-semibold":"text-base-content/55 hover:text-base-content"}`,children:y.label},y.to)})})]}),o.jsx("main",{className:"flex-1 min-w-0 page-fade pb-24 md:pb-6",children:o.jsx(vg,{context:e})})]})]})},Ay=cl.memo(({server:e,selectedServer:t,setSelectedServer:n})=>{console.log(`[ServerListItem] Rendering: ${e.name}`);const r=t===e.name;return o.jsxs("div",{className:`p-4 cursor-pointer transition-colors relative ${r?"bg-primary/15 ring-1 ring-inset ring-primary/50":"hover:bg-base-200"}`,onClick:()=>n(e.name),children:[r&&o.jsx("div",{className:"absolute top-0 right-0 bottom-0 w-1 bg-primary"}),o.jsxs("div",{className:"flex items-center space-x-3 mb-2",children:[o.jsx("div",{className:`w-3 h-3 rounded-full ${e!=null&&e.connected?"bg-green-500":e!=null&&e.enabled?"bg-yellow-500":"bg-gray-400"}`}),o.jsx("h3",{className:`truncate ${r?"font-semibold text-primary":"font-medium text-base-content"}`,children:(e==null?void 0:e.name)||"未知"})]}),o.jsx("div",{className:"text-sm text-base-content/70 mb-2",children:(e==null?void 0:e.description)||"无描述"}),o.jsxs("div",{className:"flex items-center justify-between text-xs",children:[o.jsx("div",{className:"flex items-center space-x-3",children:(e==null?void 0:e.enabled)&&o.jsx("span",{className:"text-base-content/70",children:e!=null&&e.connected?`${(e==null?void 0:e.enabledToolCount)||0}/${(e==null?void 0:e.toolCount)||0} 个工具`:`${(e==null?void 0:e.toolCount)||0} 个工具`})}),o.jsx("span",{className:`badge ${e!=null&&e.connected?"badge-success":e!=null&&e.enabled?"badge-warning":"badge-neutral"}`,children:e!=null&&e.connected?"已连接":e!=null&&e.enabled?"等待连接":"已禁用"})]})]},e.name)}),My=({server:e})=>{const[t,n]=w.useState([]),[r,s]=w.useState((e==null?void 0:e.toolsConfig)||{mode:"all"}),[l,i]=w.useState(!0),[a]=w.useState(!0),[c,f]=w.useState(""),{toggleServerTool:g,updateServerTools:v}=be();w.useEffect(()=>{if(!(e!=null&&e.name)){i(!1),n([]);return}d().then(()=>{y()})},[e==null?void 0:e.name,e==null?void 0:e.connected,e==null?void 0:e.toolCount]);const d=async()=>{if(!(e!=null&&e.name)){i(!1),n([]);return}i(!0);try{const p=await H.get(`/api/servers/${e==null?void 0:e.name}/tools`);n(p.tools),s(p.toolsConfig)}catch(p){console.error("加载服务器工具失败:",p),n([])}finally{i(!1)}},h=async p=>{if(!(e!=null&&e.name)){console.warn("无法切换工具: 未找到服务器");return}n(x=>x.map(k=>k.name===p?{...k,enabled:!k.enabled}:k));try{await g((e==null?void 0:e.name)||"",p),console.log("工具切换成功,跳过重载以避免界面闪烁")}catch(x){console.error("切换工具状态失败:",x),n(k=>k.map(T=>T.name===p?{...T,enabled:!T.enabled}:T))}},y=async()=>{if(e!=null&&e.name&&r.mode!=="blacklist"){const p={...r,mode:"blacklist"};s(p);try{await v((e==null?void 0:e.name)||"",p),await d()}catch(x){console.warn(`Failed to update tools config for ${e==null?void 0:e.name}:`,x)}}},N=async p=>{if(!(e!=null&&e.name)){console.warn("无法批量切换工具: 未找到服务器");return}const x=b();for(const k of x)k.enabled!==p&&await g((e==null?void 0:e.name)||"",k.name);await d()},b=()=>{let p=t;return c&&(p=p.filter(x=>x.name.toLowerCase().includes(c.toLowerCase())||x.description.toLowerCase().includes(c.toLowerCase()))),p},m=t.filter(p=>p.enabled).length,u=b();return l?o.jsx("div",{className:"p-6 flex items-center justify-center",children:o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"loading loading-spinner loading-lg text-primary"}),o.jsx("p",{className:"text-base-content/70",children:"正在加载工具列表..."})]})}):o.jsxs("div",{className:"p-6",children:[t.length>0&&o.jsx("div",{className:"mb-6 alert alert-info",children:o.jsxs("div",{className:"flex items-start space-x-3",children:[o.jsx(iy,{className:"h-5 w-5"}),o.jsxs("div",{className:"text-sm",children:[o.jsx("p",{className:"font-medium mb-1",children:"关于工具控制"}),o.jsxs("ul",{className:"list-disc list-inside space-y-1",children:[o.jsx("li",{children:"已启用的工具将对 MCP 客户端可见可用"}),o.jsx("li",{children:"已禁用的工具将从 MCP 客户端隐藏"}),o.jsx("li",{children:"更改工具状态后,MCP 客户端可能需要重新连接才能看到变化"}),o.jsx("li",{children:"某些工具可能依赖其他工具,请谨慎禁用"})]})]})]})}),o.jsxs("div",{className:"flex items-center justify-between mb-6",children:[o.jsxs("div",{children:[o.jsx("h3",{className:"text-lg font-medium text-base-content",children:"工具列表"}),o.jsxs("p",{className:"text-sm text-base-content/70 mt-1",children:["查看并管理 ",e==null?void 0:e.name," 服务器提供的工具,可禁用不需要的工具"]})]}),o.jsx("div",{className:"flex items-center space-x-2",children:o.jsxs("button",{onClick:d,className:"btn btn-outline btn-sm flex items-center space-x-2",children:[o.jsx(qr,{className:"h-4 w-4"}),o.jsx("span",{children:"刷新"})]})})]}),o.jsx("div",{className:"bg-base-200 p-4 rounded-lg mb-6",children:o.jsx("div",{className:"flex items-center justify-between mb-4",children:o.jsxs("div",{className:"flex items-center space-x-6",children:[o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"text-2xl font-bold text-primary",children:t.length}),o.jsx("div",{className:"text-sm text-base-content/70",children:"工具总数"})]}),o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"text-2xl font-bold text-success",children:m}),o.jsx("div",{className:"text-sm text-base-content/70",children:"已启用"})]}),o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"text-2xl font-bold text-error",children:t.length-m}),o.jsx("div",{className:"text-sm text-base-content/70",children:"已禁用"})]})]})})}),o.jsxs("div",{className:"flex items-center justify-between mb-6",children:[o.jsx("div",{className:"flex items-center space-x-4",children:o.jsxs("div",{className:"relative",children:[o.jsx("input",{type:"text",placeholder:"搜索工具...",value:c,onChange:p=>f(p.target.value),className:"input input-bordered w-full max-w-xs"}),c&&o.jsx("button",{onClick:()=>f(""),className:"absolute right-3 top-2.5 text-base-content/40 hover:text-base-content/60",children:"×"})]})}),o.jsxs("div",{className:"flex items-center space-x-2",children:[o.jsx("button",{onClick:()=>N(!0),className:"btn btn-outline btn-sm",children:"全部启用"}),o.jsx("button",{onClick:()=>N(!1),className:"btn btn-outline btn-sm",children:"全部禁用"})]})]}),o.jsx("div",{className:"space-y-3",children:u.length===0?o.jsxs("div",{className:"text-center py-8 text-base-content/70",children:[o.jsx(ka,{className:"h-12 w-12 mx-auto mb-4 text-base-content/30"}),o.jsx("p",{className:"mb-2",children:c?"未找到匹配的工具":a?"该服务器未提供任何工具":"没有已启用的工具"}),c&&o.jsx("button",{onClick:()=>f(""),className:"text-primary hover:text-primary-focus text-sm",children:"清除搜索"})]}):u.map(p=>o.jsx("div",{className:`card border transition-all p-4 ${p.enabled?"border-success/30 bg-success/10":"border-base-300 bg-base-100"}`,children:o.jsxs("div",{className:"flex items-center justify-between",children:[o.jsxs("div",{className:"flex-1",children:[o.jsxs("div",{className:"flex items-center space-x-3 mb-2",children:[o.jsx("h4",{className:"font-medium text-base-content",children:p.name}),o.jsx("span",{className:`badge badge-sm ${p.enabled?"badge-success":"badge-ghost"}`,children:p.enabled?"已启用":"已禁用"})]}),o.jsx("p",{className:"text-sm text-base-content/80 mb-3",children:p.description}),p.inputSchema&&o.jsxs("details",{className:"text-xs",children:[o.jsx("summary",{className:"cursor-pointer text-base-content/70 hover:text-base-content",children:"查看参数结构"}),o.jsx("pre",{className:"bg-base-100 p-2 rounded border border-base-300 mt-2 overflow-x-auto text-base-content",children:JSON.stringify(p.inputSchema,null,2)})]})]}),o.jsx("div",{className:"flex items-center space-x-3",children:o.jsx("button",{onClick:()=>h(p.name),className:`btn btn-ghost btn-sm ${p.enabled?"text-success hover:bg-success/20":"text-base-content/40 hover:bg-base-200"}`,title:p.enabled?"禁用该工具":"启用该工具",children:p.enabled?o.jsx(Xf,{className:"h-6 w-6"}):o.jsx(Yf,{className:"h-6 w-6"})})})]})},p.name))})]})},Iy=({serverName:e})=>{const t=Kt(d=>d.serverLogs[e]||[]),n=Kt(d=>d.addServerLog),[r,s]=w.useState("all"),[l,i]=w.useState(!1),[a,c]=w.useState(!1);console.log(`[ServerLogs] Rendering for server: ${e}, logs count: ${t.length}`,t),w.useEffect(()=>{(async()=>{if(!(t.length>0)){c(!0);try{const h=await fetch(`/api/logs/${e}?limit=100`);if(h.ok){const y=await h.json();console.log(`[ServerLogs] Loaded ${y.length} historical logs for ${e}`),y.forEach(N=>{n({serverName:e,stream:N.source||"system",data:`[${N.level.toUpperCase()}] ${N.message}`,timestamp:N.timestamp})})}else console.warn(`[ServerLogs] Failed to load historical logs for ${e}: ${h.status}`)}catch(h){console.error(`[ServerLogs] Error loading historical logs for ${e}:`,h)}finally{c(!1)}}})()},[e,t.length,n]);const f=t.filter(d=>{var h,y;return!l&&((h=d.data)!=null&&h.includes("[DEBUG]"))?!1:r==="all"?!0:(y=d.data)==null?void 0:y.includes(`[${r.toUpperCase()}]`)}),g=(d,h)=>d!=null&&d.includes("[ERROR]")||h==="stderr"?"text-error":d!=null&&d.includes("[WARN]")?"text-warning":d!=null&&d.includes("[DEBUG]")?"text-base-content/60":d!=null&&d.includes("[INFO]")?"text-success":"text-base-content",v=d=>{switch(d){case"stderr":return"🔴";case"stdout":return"🔵";case"system":return"⚙️";default:return"📝"}};return o.jsxs("div",{className:"card bg-base-200 h-full flex flex-col",children:[o.jsxs("div",{className:"p-3 border-b border-base-300 flex items-center justify-between flex-shrink-0",children:[o.jsxs("div",{className:"flex items-center space-x-4",children:[o.jsxs("select",{value:r,onChange:d=>s(d.target.value),className:"select select-sm bg-base-100 text-base-content",children:[o.jsx("option",{value:"all",children:"全部级别"}),o.jsx("option",{value:"info",children:"信息"}),o.jsx("option",{value:"warn",children:"警告"}),o.jsx("option",{value:"error",children:"错误"}),o.jsx("option",{value:"debug",children:"调试"})]}),o.jsxs("label",{className:"label cursor-pointer space-x-2",children:[o.jsx("input",{type:"checkbox",checked:l,onChange:d=>i(d.target.checked),className:"checkbox checkbox-sm"}),o.jsx("span",{className:"label-text",children:"显示调试日志"})]})]}),o.jsxs("div",{className:"text-sm text-base-content/60",children:[f.length," / ",t.length," 条日志"]})]}),o.jsx("div",{className:"font-mono text-sm p-4 flex-1 min-h-0 overflow-y-auto bg-base-100",children:a?o.jsxs("div",{className:"text-center py-8 text-base-content/60",children:[o.jsx("p",{className:"mb-2",children:"📥 正在加载历史日志..."}),o.jsxs("div",{className:"loading loading-dots loading-md",children:["正在为 ",e," 加载服务器日志..."]})]}):f.length===0?o.jsxs("div",{className:"text-center py-8 text-base-content/60",children:[o.jsx("p",{children:"暂无日志记录"}),o.jsx("p",{className:"text-xs mt-2",children:"MCP 服务器连接后运行日志将显示在这里"})]}):f.map((d,h)=>o.jsxs("div",{className:`flex items-start mb-1 ${g(d.data,d.stream)}`,children:[o.jsx("span",{className:"flex-shrink-0 mr-2 text-xs text-base-content/50",children:new Date(d.timestamp).toLocaleTimeString()}),o.jsx("span",{className:"flex-shrink-0 mr-2 text-xs",children:v(d.stream)}),o.jsx("span",{className:"whitespace-pre-wrap break-all",children:d.data})]},h))})]})},ho=/^[a-zA-Z0-9\-_]+$/,$y=({server:e,refreshServerTools:t})=>{var ne;const[n,r]=w.useState("tools"),[s,l]=w.useState(!1),[i,a]=w.useState(e),[c,f]=w.useState(!1),[g,v]=w.useState(!1),[d,h]=w.useState({valid:!0}),{updateServerConfig:y,toggleServer:N,removeServer:b,saving:m}=be();w.useEffect(()=>{a(e),l(!1),h({valid:!0}),r("tools")},[e.name]),w.useEffect(()=>{n==="config"&&l(!0)},[n]);const u=S=>!S||S.trim()===""?{valid:!1,error:"服务器名称不能为空"}:S.length>50?{valid:!1,error:"服务器名称过长(最多 50 个字符)"}:ho.test(S)?{valid:!0}:{valid:!1,error:"服务器名称只能包含字母、数字、连字符和下划线",suggestions:p(S)},p=S=>{const E=[];let _=S.replace(/[^a-zA-Z0-9\-_]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"");_&&ho.test(_)&&E.push(_);let A=S.toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9\-_]/g,"");return A&&ho.test(A)&&E.push(A),E.slice(0,3)},x=async()=>{f(!0);try{await N((e==null?void 0:e.name)||"",()=>t(e==null?void 0:e.name))}catch(S){console.error("切换服务器状态失败:",S)}finally{setTimeout(()=>{f(!1)},1500)}},k=async()=>{if(!(!(e!=null&&e.name)||g)){v(!0);try{e.enabled&&await N((e==null?void 0:e.name)||""),await N((e==null?void 0:e.name)||"",()=>t(e==null?void 0:e.name))}catch(S){console.error("重试连接失败:",S),alert(`重试连接失败: ${S.message}`)}finally{setTimeout(()=>{v(!1)},1500)}}},T=async()=>{if(i.name!==e.name){const E=u(i.name);if(!E.valid){alert(`服务器名称无效: ${E.error}`);return}try{const _=await H.get("/api/servers");if(Object.keys(_).filter(K=>K!==e.name).includes(i.name)){alert(`服务器名称 "${i.name}" 已存在`);return}}catch(_){console.warn("无法检查服务器名称冲突:",_)}}if(i.env&&i.transport==="stdio"){const E=Object.entries(i.env),_=E.filter(([K])=>!K.trim()||!W(K)),A=E.map(([K])=>K),$=A.filter((K,pe)=>A.indexOf(K)!==pe);if(_.length>0){alert("请修正无效的环境变量名称");return}if($.length>0){alert("环境变量名称不能重复");return}}const S={...i};if(S.env){const E={};Object.entries(S.env).forEach(([_,A])=>{_.trim()&&W(_)&&(E[_]=String(A))}),S.env=Object.keys(E).length>0?E:void 0}try{console.log("[ServerPanel] Saving server config:",e==null?void 0:e.name,S),console.log("[ServerPanel] Environment variables:",S.env);const E=await H.put(`/api/servers/${e==null?void 0:e.name}`,S);console.log("[ServerPanel] Server updated successfully:",E),E.server&&y((e==null?void 0:e.name)||"",E.server),console.log("[ServerPanel] Config saved successfully"),l(!1)}catch(E){console.error("更新服务器配置失败:",E),alert(`❌ 保存配置失败:
|
|
84
|
+
|
|
85
|
+
${E.message}`)}},P=(S,E)=>{const _={...i,[S]:E};a(_),S==="name"&&h(u(E))},R=(S,E,_)=>{var K,pe,qe;const A=i.env||{},$=Object.entries(A);if(E==="key"){const se=(K=$[S])==null?void 0:K[0],st=((pe=$[S])==null?void 0:pe[1])||"",lt={...A};se&&delete lt[se],_.trim()&&W(_)&&(lt[_]=st),a({...i,env:lt})}else{const se=(qe=$[S])==null?void 0:qe[0];se&&a({...i,env:{...A,[se]:_}})}},W=S=>/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(S),I=()=>{const S=i.env||{};let E="NEW_VAR",_=1;for(;S[E];)E=`NEW_VAR_${_}`,_++;const A={...S,[E]:""};a({...i,env:A})},he=S=>{var $;const E=i.env||{},A=($=Object.entries(E)[S])==null?void 0:$[0];if(A!==void 0){const K={...E};delete K[A],a({...i,env:K})}},He=(S,E,_)=>{var K,pe,qe;const A=i.headers||{},$=Object.entries(A);if(E==="key"){const se=(K=$[S])==null?void 0:K[0],st=((pe=$[S])==null?void 0:pe[1])||"",lt={...A};se&&delete lt[se],_.trim()&&(lt[_]=st),a({...i,headers:lt})}else{const se=(qe=$[S])==null?void 0:qe[0];se&&a({...i,headers:{...A,[se]:_}})}},pt=()=>{const S=i.headers||{};let E="Header-Name",_=1;for(;S[E];)E=`Header-Name-${_}`,_++;const A={...S,[E]:""};a({...i,headers:A})},Xt=S=>{var $;const E=i.headers||{},A=($=Object.entries(E)[S])==null?void 0:$[0];if(A){const K={...E};delete K[A],a({...i,headers:Object.keys(K).length>0?K:void 0})}},tr=async()=>{if(confirm(`确定要删除服务器 "${e==null?void 0:e.name}" 吗?`))try{await b((e==null?void 0:e.name)||""),console.log("[ServerPanel] 服务器删除成功")}catch(S){console.error("删除服务器失败:",S),alert(`删除服务器失败: ${S.message}`)}},Zt=i.transport==="stdio";return o.jsxs("div",{className:"flex flex-col h-full",children:[o.jsxs("div",{className:"flex items-center justify-between p-6 border-b border-base-300 bg-base-100",children:[o.jsx("div",{className:"flex items-center space-x-4",children:o.jsxs("div",{children:[o.jsxs("h2",{className:"text-xl font-bold text-base-content flex items-center gap-3",children:[e==null?void 0:e.name,o.jsx("span",{className:`badge ${(e==null?void 0:e.transport)==="stdio"?"badge-info":(e==null?void 0:e.transport)==="http-sse"?"badge-success":"badge-secondary"}`,children:(e==null?void 0:e.transport)||"未知"})]}),o.jsx("p",{className:"text-sm text-base-content/70 mt-1",children:(e==null?void 0:e.description)||"无描述"})]})}),o.jsxs("div",{className:"flex items-center space-x-2",children:[(e==null?void 0:e.adminUrl)&&o.jsx("a",{href:e.adminUrl,target:"_blank",rel:"noopener noreferrer",onClick:S=>S.stopPropagation(),title:"打开该 MCP 自带的管理界面",className:"btn btn-ghost btn-square",children:o.jsx(hy,{className:"h-5 w-5"})}),o.jsx("button",{onClick:k,className:"btn btn-ghost btn-square",title:"重试连接",disabled:g,children:g?o.jsx(Zc,{className:"h-5 w-5 animate-spin"}):o.jsx(qr,{className:"h-5 w-5"})}),o.jsx("button",{onClick:tr,className:"btn btn-ghost btn-square text-error",title:"删除该 MCP",children:o.jsx(Dn,{className:"h-5 w-5"})}),o.jsx("button",{onClick:x,className:`btn btn-ghost btn-square ${e!=null&&e.enabled?"text-success":"text-base-content/40"}`,title:e!=null&&e.enabled?"禁用该 MCP":"启用该 MCP",disabled:c,children:c?o.jsx(Zc,{className:"h-5 w-5 animate-spin"}):e!=null&&e.enabled?o.jsx(Xf,{className:"h-5 w-5"}):o.jsx(Yf,{className:"h-5 w-5"})})]})]}),o.jsx("div",{className:"border-b border-base-300",children:o.jsx("div",{className:"tabs tabs-bordered px-6",children:[{id:"tools",label:"工具列表",icon:ka},{id:"config",label:"服务器配置",icon:il},{id:"logs",label:"运行日志",icon:qr}].map(({id:S,label:E,icon:_})=>o.jsxs("button",{onClick:()=>r(S),className:`tab tab-bordered flex items-center gap-2 ${n===S?"tab-active":""}`,children:[o.jsx(_,{className:"h-4 w-4"}),o.jsx("span",{children:E})]},S))})}),o.jsxs("div",{className:"flex-1 overflow-y-auto",children:[n==="config"&&o.jsxs("div",{className:"p-6",children:[o.jsxs("div",{className:"flex items-center justify-between mb-6",children:[o.jsx("h3",{className:"text-lg font-medium text-base-content",children:"服务器配置"}),o.jsx("div",{className:"flex items-center space-x-2",children:s?o.jsxs("button",{onClick:T,disabled:m||!d.valid,className:"btn btn-primary btn-sm flex items-center gap-2",children:[o.jsx(eu,{className:"h-4 w-4"}),o.jsx("span",{children:m?"保存中...":"保存"})]}):o.jsx("button",{onClick:()=>l(!0),className:"btn btn-primary btn-sm",children:"编辑配置"})})]}),o.jsxs("div",{className:"space-y-6",children:[o.jsx("div",{className:"card bg-base-200",children:o.jsxs("div",{className:"card-body",children:[o.jsx("h4",{className:"card-title text-base-content",children:"基本信息"}),o.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[o.jsxs("div",{className:"form-control",children:[o.jsx("label",{className:"label",children:o.jsx("span",{className:"label-text",children:"服务器名称"})}),o.jsx("input",{type:"text",value:i.name,onChange:S=>P("name",S.target.value),disabled:!s,className:`input input-bordered w-full ${d.valid?"":"input-error"}`}),!d.valid&&s&&o.jsx("label",{className:"label",children:o.jsx("span",{className:"label-text-alt text-error",children:d.error})})]}),o.jsxs("div",{className:"form-control",children:[o.jsx("label",{className:"label",children:o.jsx("span",{className:"label-text",children:"传输协议"})}),o.jsxs("select",{value:i.transport,onChange:S=>P("transport",S.target.value),disabled:!s,className:"select select-bordered w-full",children:[o.jsx("option",{value:"stdio",children:"Stdio"}),o.jsx("option",{value:"http-sse",children:"HTTP SSE"}),o.jsx("option",{value:"streamable-http",children:"Streamable HTTP"})]})]}),o.jsxs("div",{className:"col-span-2 form-control",children:[o.jsx("label",{className:"label",children:o.jsx("span",{className:"label-text",children:"描述"})}),o.jsx("textarea",{value:i.description||"",onChange:S=>P("description",S.target.value),disabled:!s,rows:2,className:"textarea textarea-bordered w-full",placeholder:"服务器描述..."})]}),o.jsxs("div",{className:"col-span-2 form-control",children:[o.jsx("label",{className:"label",children:o.jsx("span",{className:"label-text",children:"管理界面地址(可选)"})}),o.jsx("input",{type:"url",value:i.adminUrl||"",onChange:S=>P("adminUrl",S.target.value),disabled:!s,className:"input input-bordered w-full",placeholder:"如 http://127.0.0.1:61823/admin/ —— 该 MCP 自带管理界面的地址"}),o.jsx("label",{className:"label",children:o.jsx("span",{className:"label-text-alt",children:'设置后,服务器标题旁会出现"打开管理页"按钮,直达该 MCP 自带的管理界面'})})]})]})]})}),o.jsx("div",{className:"card bg-base-200",children:o.jsxs("div",{className:"card-body",children:[o.jsx("h4",{className:"card-title text-base-content",children:"连接配置"}),Zt?o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{className:"form-control",children:[o.jsx("label",{className:"label",children:o.jsx("span",{className:"label-text",children:"命令"})}),o.jsx("input",{type:"text",value:i.command||"",onChange:S=>P("command",S.target.value),disabled:!s,className:"input input-bordered w-full",placeholder:"例如:npx, node, python"})]}),o.jsxs("div",{className:"form-control",children:[o.jsx("label",{className:"label",children:o.jsx("span",{className:"label-text",children:"参数(每行一个)"})}),o.jsx("textarea",{value:((ne=i.args)==null?void 0:ne.join(`
|
|
86
|
+
`))||"",onChange:S=>P("args",S.target.value.split(`
|
|
87
|
+
`).filter(Boolean)),disabled:!s,rows:3,className:"textarea textarea-bordered w-full",placeholder:"例如:\\n@modelcontextprotocol/server-filesystem\\n/path/to/directory"})]}),o.jsxs("div",{className:"form-control",children:[o.jsx("label",{className:"label",children:o.jsx("span",{className:"label-text",children:"环境变量"})}),o.jsxs("div",{className:"space-y-2",children:[Object.entries(i.env||{}).map(([S,E],_)=>o.jsxs("div",{className:"flex gap-2",children:[o.jsx("input",{type:"text",value:S,onChange:A=>R(_,"key",A.target.value),disabled:!s,className:"input input-bordered input-sm flex-1",placeholder:"变量名"}),o.jsx("input",{type:"text",value:String(E),onChange:A=>R(_,"value",A.target.value),disabled:!s,className:"input input-bordered input-sm flex-1",placeholder:"值"}),s&&o.jsx("button",{type:"button",onClick:()=>he(_),className:"btn btn-ghost btn-sm btn-square text-error",children:o.jsx(Dn,{className:"h-4 w-4"})})]},_)),s&&o.jsxs("button",{type:"button",onClick:I,className:"btn btn-ghost btn-sm text-primary",children:[o.jsx(mn,{className:"h-4 w-4"}),"添加环境变量"]})]})]})]}):o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{className:"form-control",children:[o.jsx("label",{className:"label",children:o.jsx("span",{className:"label-text",children:"URL"})}),o.jsx("input",{type:"url",value:i.url||i.endpoint||"",onChange:S=>P("url",S.target.value),disabled:!s,className:"input input-bordered w-full",placeholder:"例如:https://api.example.com/mcp"})]}),o.jsxs("div",{className:"form-control",children:[o.jsx("label",{className:"label",children:o.jsx("span",{className:"label-text",children:"请求头"})}),o.jsxs("div",{className:"space-y-2",children:[Object.entries(i.headers||{}).map(([S,E],_)=>o.jsxs("div",{className:"flex gap-2",children:[o.jsx("input",{type:"text",value:S,onChange:A=>He(_,"key",A.target.value),disabled:!s,className:"input input-bordered input-sm flex-1",placeholder:"Header 名称"}),o.jsx("input",{type:"text",value:E,onChange:A=>He(_,"value",A.target.value),disabled:!s,className:"input input-bordered input-sm flex-1",placeholder:"Header 值"}),s&&o.jsx("button",{type:"button",onClick:()=>Xt(_),className:"btn btn-ghost btn-sm btn-square text-error",children:o.jsx(Dn,{className:"h-4 w-4"})})]},_)),s&&o.jsxs("button",{type:"button",onClick:pt,className:"btn btn-ghost btn-sm text-primary",children:[o.jsx(mn,{className:"h-4 w-4"}),"添加请求头"]})]})]})]})]})}),o.jsx("div",{className:"card bg-base-200",children:o.jsxs("div",{className:"card-body",children:[o.jsx("h4",{className:"card-title text-base-content",children:"高级选项"}),o.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[o.jsxs("div",{className:"form-control",children:[o.jsx("label",{className:"label",children:o.jsx("span",{className:"label-text",children:"超时(毫秒)"})}),o.jsx("input",{type:"number",value:i.timeout||"",onChange:S=>P("timeout",S.target.value?parseInt(S.target.value):void 0),disabled:!s,className:"input input-bordered w-full",placeholder:"30000"})]}),o.jsxs("div",{className:"form-control",children:[o.jsx("label",{className:"label",children:o.jsx("span",{className:"label-text",children:"重试次数"})}),o.jsx("input",{type:"number",value:i.retries||"",onChange:S=>P("retries",S.target.value?parseInt(S.target.value):void 0),disabled:!s,className:"input input-bordered w-full",placeholder:"3"})]})]})]})}),s&&o.jsx("div",{className:"flex justify-end pt-4 border-t border-base-300",children:o.jsxs("button",{onClick:T,disabled:m||!d.valid,className:"btn btn-primary btn-sm flex items-center gap-2",children:[o.jsx(eu,{className:"h-4 w-4"}),o.jsx("span",{children:m?"保存中...":"保存"})]})})]})]}),n==="tools"&&o.jsx(My,{server:e}),n==="logs"&&o.jsx(Iy,{serverName:e==null?void 0:e.name})]})]})},zy=()=>{const[e,t]=w.useState(null),[n,r]=w.useState("stdio"),{hideClientConfig:s,authRequired:l,authToken:i}=be(),a=l&&i,c=async(h,y)=>{try{await navigator.clipboard.writeText(h),t(y),setTimeout(()=>t(null),2e3)}catch(N){console.error("复制到剪贴板失败:",N)}},f={mcpServers:{agentdog:{command:"npx",args:["agentdog@latest"]}}},g={mcpServers:{"agentdog-http":{type:"streamable-http",url:"http://localhost:4000",...a&&{headers:{Authorization:`Bearer ${i}`}}}}},d={stdio:{title:"STDIO 连接",description:"标准输入输出连接,适用于 Claude Desktop 等 MCP 客户端",config:JSON.stringify(f,null,2)},http:{title:"HTTP Streamable 连接",description:"基于 HTTP 的流式传输连接",config:JSON.stringify(g,null,2)}}[n];return o.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50",children:o.jsxs("div",{className:"bg-base-100 rounded-lg shadow-xl w-full max-w-4xl max-h-[90vh] overflow-hidden",children:[o.jsxs("div",{className:"flex items-center justify-between p-6 border-b border-base-300",children:[o.jsxs("div",{children:[o.jsx("h2",{className:"text-xl font-bold text-base-content",children:"连接 AGENTDOG"}),o.jsx("p",{className:"text-sm text-base-content/70 mt-1",children:"使用以下 JSON 配置将你的 MCP 客户端连接到 AgentDog"})]}),o.jsx("button",{onClick:s,className:"btn btn-ghost btn-sm btn-circle",children:o.jsx(Ll,{className:"h-6 w-6"})})]}),o.jsxs("div",{className:"p-6 overflow-y-auto max-h-[80vh]",children:[o.jsxs("div",{className:"tabs tabs-boxed justify-center mb-6",children:[o.jsx("button",{className:`tab ${n==="stdio"?"tab-active":""}`,onClick:()=>r("stdio"),children:"STDIO 连接"}),o.jsx("button",{className:`tab ${n==="http"?"tab-active":""}`,onClick:()=>r("http"),children:"HTTP Streamable"})]}),o.jsx("div",{className:"card bg-base-100 border border-base-300",children:o.jsxs("div",{className:"card-body",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsxs("div",{children:[o.jsx("h3",{className:"card-title text-base-content",children:d.title}),o.jsx("p",{className:"text-sm text-base-content/70 mt-1",children:d.description})]}),o.jsx("button",{onClick:()=>c(d.config,n),className:"btn btn-outline btn-sm",children:e===n?o.jsxs(o.Fragment,{children:[o.jsx(cy,{className:"h-4 w-4 mr-2"}),"已复制"]}):o.jsxs(o.Fragment,{children:[o.jsx(Cr,{className:"h-4 w-4 mr-2"}),"复制"]})})]}),o.jsx("div",{className:"mockup-code",children:o.jsx("pre",{className:"text-sm",children:o.jsx("code",{children:d.config})})})]})})]})]})})},Dy=({refreshServerTools:e,onLogout:t})=>{const n=yn(),{servers:r,selectedServer:s,setSelectedServer:l,loading:i,error:a,showClientConfig:c,showClientConfigModal:f,loadConfig:g}=be();w.useEffect(()=>{g()},[g]);const{systemStatus:v}=Kt(),d=(v==null?void 0:v.servers)||[],h=r.map(m=>{const u=d.find(p=>p.name===m.name);return{...m,connected:(u==null?void 0:u.connected)??m.connected,toolCount:(u==null?void 0:u.toolCount)??m.toolCount,enabledToolCount:(u==null?void 0:u.enabledToolCount)??m.enabledToolCount,tools:(u==null?void 0:u.tools)??m.tools}}).sort((m,u)=>m.name.localeCompare(u.name,"en",{sensitivity:"base"}));if(i)return o.jsx("div",{className:"flex items-center justify-center h-64",children:o.jsxs("div",{className:"text-center",children:[o.jsx("span",{className:"loading loading-spinner loading-lg text-primary mb-4"}),o.jsx("p",{className:"text-base-content/70",children:"正在加载配置..."})]})});if(a)return o.jsxs("div",{className:"alert alert-error",children:[o.jsx("svg",{className:"stroke-current shrink-0 h-6 w-6",fill:"none",viewBox:"0 0 24 24",children:o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-medium",children:"配置加载失败"}),o.jsx("p",{className:"text-sm mt-1",children:a})]})]});const y=h.filter(m=>m==null?void 0:m.connected).length,N=h.filter(m=>m==null?void 0:m.enabled).length,b=h.reduce((m,u)=>!(u!=null&&u.enabled)||!(u!=null&&u.connected)||!(u!=null&&u.tools)?m:m+u.tools.filter(p=>p.enabled).length,0);return o.jsxs("div",{className:"h-full flex flex-col",children:[o.jsx("div",{className:"bg-base-100 border border-base-300 rounded-box shadow-sm px-4 lg:px-6 py-3",children:o.jsxs("div",{className:"flex items-center justify-between",children:[o.jsx("div",{children:o.jsxs("div",{className:"flex items-center space-x-6 text-sm text-base-content/70",children:[o.jsxs("span",{children:["总计: ",o.jsx("span",{className:"font-semibold text-secondary",children:h.length})," 个服务器"]}),o.jsxs("span",{children:["已启用: ",o.jsx("span",{className:"font-semibold text-accent",children:N})]}),o.jsxs("span",{children:["已连接: ",o.jsx("span",{className:"font-semibold text-info",children:y})]}),o.jsxs("span",{children:["已启用工具: ",o.jsx("span",{className:"font-semibold text-warning",children:b})]})]})}),o.jsxs("div",{className:"flex items-center space-x-3",children:[t&&o.jsxs("button",{onClick:t,className:"btn btn-outline btn-error btn-sm flex items-center space-x-2",children:[o.jsx(Ny,{className:"h-4 w-4"}),o.jsx("span",{children:"退出登录"})]}),o.jsxs("button",{onClick:c,className:"btn btn-outline btn-sm flex items-center space-x-2",children:[o.jsx(Cr,{className:"h-4 w-4"}),o.jsx("span",{children:"连接 AGENTDOG"})]}),o.jsxs("button",{onClick:()=>n("/mcp/add"),className:"btn btn-primary btn-sm flex items-center space-x-2",children:[o.jsx(mn,{className:"h-4 w-4"}),o.jsx("span",{children:"添加服务器"})]})]})]})}),o.jsxs("div",{className:"flex-1 min-h-0 mt-4 flex overflow-hidden bg-base-100 border border-base-300 rounded-box shadow-sm",children:[o.jsxs("div",{className:"w-80 bg-base-100 border-r border-base-300 flex flex-col",children:[o.jsx("div",{className:"p-4 border-b border-base-300",children:o.jsx("h2",{className:"font-medium text-base-content",children:"服务器列表"})}),o.jsx("div",{className:"flex-1 overflow-y-auto",children:h.length===0?o.jsxs("div",{className:"p-6 text-center text-base-content/70",children:[o.jsx(il,{className:"h-12 w-12 mx-auto mb-4 text-base-content/40"}),o.jsx("p",{className:"mb-2",children:"还没有配置服务器"}),o.jsx("p",{className:"text-sm mb-4",children:"添加你的第一个 MCP 服务器开始使用"}),o.jsx("button",{onClick:()=>n("/mcp/add"),className:"btn btn-primary btn-sm",children:"添加服务器"})]}):o.jsx("div",{className:"divide-y divide-base-300",children:h.map(m=>o.jsx(Ay,{server:m,selectedServer:s,setSelectedServer:l},m.name))})})]}),o.jsx("div",{className:"flex-1 flex flex-col",children:s&&h.find(m=>m.name===s)?o.jsx($y,{server:h.find(m=>m.name===s),refreshServerTools:e}):o.jsx("div",{className:"flex-1 flex items-center justify-center bg-base-200",children:o.jsxs("div",{className:"text-center text-base-content/70",children:[o.jsx(il,{className:"h-16 w-16 mx-auto mb-4 text-base-content/40"}),o.jsx("h3",{className:"text-lg font-medium mb-2",children:"选择一个服务器"}),o.jsx("p",{className:"text-sm",children:"从左侧列表选择一个服务器来查看和编辑其配置"}),h.length===0&&o.jsx("div",{className:"mt-8",children:o.jsx("button",{onClick:()=>n("/mcp/add"),className:"btn btn-primary",children:"添加服务器"})})]})})})]}),f&&o.jsx(zy,{})]})},Uy=()=>tg(),Fy=()=>{const{refreshServerTools:e,onLogout:t}=Uy();return o.jsx("div",{className:"h-[calc(100vh-7.5rem)] min-h-[480px] flex flex-col",children:o.jsx(Dy,{refreshServerTools:e,onLogout:t})})},po=/^[a-zA-Z0-9\-_]+$/,By=[{value:"stdio",title:"Stdio",desc:"本地命令行子进程",icon:Ey},{value:"http-sse",title:"HTTP SSE",desc:"Server-Sent Events 长连接",icon:Ty},{value:"streamable-http",title:"Streamable HTTP",desc:"流式 HTTP(推荐远程)",icon:vy}],Vy=()=>{var lt;const e=yn(),[t]=Ag(),n=t.get("name"),r=!!n,[s,l]=w.useState("json"),[i,a]=w.useState(""),[c,f]=w.useState(""),[g,v]=w.useState({enabled:!0,transport:"stdio",toolsConfig:{mode:"all"}}),[d,h]=w.useState(""),[y,N]=w.useState(""),[b,m]=w.useState(!1),[u,p]=w.useState({valid:!0}),[x,k]=w.useState(!1),[T,P]=w.useState(!r),{servers:R,addServer:W,loadConfig:I,setSelectedServer:he}=be();w.useEffect(()=>{if(!r)return;const j=R.find(O=>O.name===n);j?(f(j.name),v({enabled:j.enabled,transport:j.transport,description:j.description,command:j.command,args:j.args,env:j.env,url:j.url??j.endpoint,headers:j.headers,timeout:j.timeout,retries:j.retries,toolsConfig:j.toolsConfig}),l("form"),p({valid:!0}),P(!0)):I().catch(()=>N("加载服务器配置失败"))},[r,n,R,I]),w.useEffect(()=>{r&&!T&&R.find(j=>j.name===n)&&P(!0)},[r,T,R,n]);const He=j=>!j||j.trim()===""?{valid:!1,error:"服务器名称不能为空"}:j.length>50?{valid:!1,error:"服务器名称过长(最多 50 个字符)"}:po.test(j)?{valid:!0}:{valid:!1,error:"服务器名称只能包含字母、数字、连字符和下划线",suggestions:pt(j)},pt=j=>{const O=[],M=j.replace(/[^a-zA-Z0-9\-_]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"");M&&po.test(M)&&O.push(M);const D=j.toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9\-_]/g,"");return D&&po.test(D)&&O.push(D),O.slice(0,3)},Xt=j=>{f(j),p(He(j))},tr=j=>{if(h(""),!j.trim())return h("请输入配置 JSON"),null;try{const O=JSON.parse(j);let M={};if(O.mcpServers)M=O.mcpServers;else if(O.servers)M=O.servers;else if(typeof O=="object"&&!Array.isArray(O))M=O;else return h("配置格式无效。请提供有效的 MCP 服务器配置 JSON"),null;const D=Object.entries(M);return D.length===0?(h("配置中未找到任何服务器"),null):D.map(([F,oe])=>({name:F,config:oe}))}catch(O){return h(`JSON 解析错误: ${O.message}`),null}},Zt=(j,O)=>{const M=[],D=He(j);return D.valid||M.push(`服务器名称 "${j}": ${D.error}`),!O.command&&!O.endpoint&&!O.url&&M.push(`服务器 "${j}" 缺少命令或 URL 字段`),O.args&&!Array.isArray(O.args)&&M.push(`服务器 "${j}" 的 args 必须是数组`),O.env&&typeof O.env!="object"&&M.push(`服务器 "${j}" 的 env 必须是对象`),M},ne=(j,O)=>{v(M=>({...M,[j]:O}))},S=(j,O,M)=>{var oe,ot,en;const D=g.env||{},F=Object.entries(D);if(O==="key"){const Ke=(oe=F[j])==null?void 0:oe[0],Rl=((ot=F[j])==null?void 0:ot[1])||"",tn={...D};Ke&&delete tn[Ke],M.trim()&&E(M)&&(tn[M]=Rl),ne("env",tn)}else{const Ke=(en=F[j])==null?void 0:en[0];Ke&&ne("env",{...D,[Ke]:M})}},E=j=>/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(j),_=()=>{const j=g.env||{};let O="NEW_VAR",M=1;for(;j[O];)O=`NEW_VAR_${M}`,M++;ne("env",{...j,[O]:""})},A=j=>{var D;const O=g.env||{},M=(D=Object.entries(O)[j])==null?void 0:D[0];if(M!==void 0){const F={...O};delete F[M],ne("env",F)}},$=(j,O,M)=>{var oe,ot,en;const D=g.headers||{},F=Object.entries(D);if(O==="key"){const Ke=(oe=F[j])==null?void 0:oe[0],Rl=((ot=F[j])==null?void 0:ot[1])||"",tn={...D};Ke&&delete tn[Ke],M.trim()&&(tn[M]=Rl),ne("headers",tn)}else{const Ke=(en=F[j])==null?void 0:en[0];Ke&&ne("headers",{...D,[Ke]:M})}},K=()=>{const j=g.headers||{};let O="Header-Name",M=1;for(;j[O];)O=`Header-Name-${M}`,M++;ne("headers",{...j,[O]:""})},pe=j=>{var D;const O=g.headers||{},M=(D=Object.entries(O)[j])==null?void 0:D[0];if(M){const F={...O};delete F[M],ne("headers",Object.keys(F).length>0?F:void 0)}},qe=async()=>{const j=tr(i);if(!j)return;let O=[];try{const F=await H.get("/api/servers");O=Object.keys(F)}catch(F){console.warn("无法检查服务器名称重复:",F)}const M=[],D=[];for(const{name:F,config:oe}of j)M.push(...Zt(F,oe)),O.includes(F)&&D.push(F);if(D.length>0){h(`检测到服务器名称冲突!以下服务器名称已存在:
|
|
88
|
+
${D.map(F=>`• ${F}`).join(`
|
|
89
|
+
`)}
|
|
90
|
+
|
|
91
|
+
请为这些服务器选择其他名称。`);return}if(M.length>0){h(`发现配置错误:
|
|
92
|
+
${M.join(`
|
|
93
|
+
`)}`);return}k(!0);try{for(const{name:F,config:oe}of j){let ot=oe.transport;ot||(oe.url||oe.endpoint?ot=oe.type==="sse"?"http-sse":"streamable-http":ot="stdio");const en={...oe,name:F,enabled:oe.enabled!==void 0?oe.enabled:!0,transport:ot,toolsConfig:{mode:"all"}};await W(F,en)}e("/mcp")}catch(F){const oe=F.message;h(oe.includes("already exists")?"服务器名称冲突!已存在同名服务器,请选择其他名称。":`添加服务器失败: ${oe}`)}finally{k(!1)}},se=async()=>{if(N(""),!c.trim()||!u.valid){N(u.error||"请输入服务器名称");return}if(!r)try{const O=await H.get("/api/servers");if(Object.keys(O).includes(c.trim())){N(`服务器名称 "${c.trim()}" 已存在,请选择其他名称。`);return}}catch(O){console.warn("无法检查服务器名称重复:",O)}const j={name:c,...g};k(!0);try{r?(await H.put(`/api/servers/${n}`,{name:c,config:j}),await I(),he(c)):await W(c,j),e("/mcp")}catch(O){const M=O.message;N(M.includes("already exists")?"服务器名称冲突!已存在同名服务器,请选择其他名称。":`${r?"保存":"添加"}服务器失败: ${M}`)}finally{k(!1)}},st=g.transport==="stdio";return o.jsxs("div",{className:"space-y-4 pb-8",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("button",{className:"btn btn-ghost btn-sm btn-square",onClick:()=>e("/mcp"),title:"返回 MCP 服务器",children:o.jsx(ay,{className:"w-5 h-5"})}),o.jsxs("div",{children:[o.jsx("h1",{className:"text-xl font-bold",children:r?"编辑 MCP 服务器":"添加 MCP 服务器"}),o.jsx("p",{className:"text-xs text-base-content/50 mt-0.5",children:r?`正在编辑 ${n}`:"配置一个新的 MCP 服务器接入网关"})]})]}),!r&&o.jsxs("div",{className:"tabs tabs-boxed w-fit",children:[o.jsxs("button",{type:"button",onClick:()=>l("json"),className:`tab flex items-center gap-2 ${s==="json"?"tab-active":""}`,children:[o.jsx(my,{className:"h-4 w-4"}),o.jsx("span",{children:"JSON 配置"})]}),o.jsxs("button",{type:"button",onClick:()=>l("form"),className:`tab flex items-center gap-2 ${s==="form"?"tab-active":""}`,children:[o.jsx(il,{className:"h-4 w-4"}),o.jsx("span",{children:"表单配置"})]})]}),s==="json"?o.jsx("div",{className:"card bg-base-100 border border-base-300 shadow-sm",children:o.jsxs("div",{className:"card-body",children:[o.jsxs("label",{className:"label",children:[o.jsx("span",{className:"label-text font-medium",children:"服务器配置(JSON)"}),o.jsx("span",{className:"label-text-alt text-base-content/50",children:"支持 mcpServers / servers / 单服务器对象三种格式"})]}),o.jsx("textarea",{value:i,onChange:j=>a(j.target.value),rows:14,className:"textarea textarea-bordered w-full font-mono text-sm leading-relaxed",placeholder:`{
|
|
94
|
+
"mcpServers": {
|
|
95
|
+
"memory": {
|
|
96
|
+
"command": "npx",
|
|
97
|
+
"args": ["-y", "@modelcontextprotocol/server-memory"]
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}`}),d&&o.jsx("div",{className:"alert alert-error mt-2",children:o.jsx("div",{className:"text-sm whitespace-pre-wrap",children:d})})]})}):T&&o.jsxs("div",{className:"space-y-4",children:[o.jsx("div",{className:"card bg-base-100 border border-base-300 shadow-sm",children:o.jsxs("div",{className:"card-body p-5",children:[o.jsx("h4",{className:"font-semibold text-base mb-1",children:"基本信息"}),o.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[o.jsxs("div",{children:[o.jsx("label",{className:"label",children:o.jsx("span",{className:"label-text font-medium",children:"服务器名称 *"})}),o.jsx("input",{type:"text",value:c,onChange:j=>Xt(j.target.value),className:`input input-bordered w-full ${u.valid?"":"input-error"}`,placeholder:"例如:playwright, filesystem-server"}),!u.valid&&o.jsxs("div",{className:"mt-2 text-error text-sm",children:[u.error,u.suggestions&&u.suggestions.length>0&&o.jsxs("div",{className:"mt-1",children:[o.jsx("span",{className:"text-base-content/70",children:"建议: "}),u.suggestions.map((j,O)=>o.jsx("button",{type:"button",onClick:()=>Xt(j),className:"btn btn-link btn-xs p-0 mr-2",children:j},O))]})]}),o.jsx("div",{className:"mt-2 text-xs text-base-content/50",children:"仅允许字母、数字、连字符和下划线"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"label",children:o.jsx("span",{className:"label-text font-medium",children:"描述"})}),o.jsx("textarea",{value:g.description||"",onChange:j=>ne("description",j.target.value),rows:2,className:"textarea textarea-bordered w-full",placeholder:"可选的服务器描述..."})]})]})]})}),o.jsx("div",{className:"card bg-base-100 border border-base-300 shadow-sm",children:o.jsxs("div",{className:"card-body p-5",children:[o.jsx("h4",{className:"font-semibold text-base mb-3",children:"传输方式"}),o.jsx("div",{className:"grid gap-3 sm:grid-cols-3",children:By.map(({value:j,title:O,desc:M,icon:D})=>{const F=g.transport===j;return o.jsxs("button",{type:"button",onClick:()=>ne("transport",j),className:`flex flex-col items-start gap-2 p-4 rounded-box border text-left transition-all ${F?"border-primary bg-primary/5 ring-1 ring-primary/40 shadow-sm":"border-base-300 bg-base-200/40 hover:border-base-content/30 hover:bg-base-200"}`,children:[o.jsx(D,{className:`w-5 h-5 ${F?"text-primary":"text-base-content/50"}`}),o.jsx("div",{className:`font-medium ${F?"text-primary":""}`,children:O}),o.jsx("div",{className:"text-xs text-base-content/50",children:M})]},j)})})]})}),o.jsx("div",{className:"card bg-base-100 border border-base-300 shadow-sm",children:o.jsxs("div",{className:"card-body p-5",children:[o.jsx("h4",{className:"font-semibold text-base mb-3",children:"连接配置"}),st?o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{className:"grid gap-4 md:grid-cols-3",children:[o.jsxs("div",{className:"md:col-span-1",children:[o.jsx("label",{className:"label",children:o.jsx("span",{className:"label-text font-medium",children:"命令 *"})}),o.jsx("input",{type:"text",value:g.command||"",onChange:j=>ne("command",j.target.value),className:"input input-bordered w-full font-mono",placeholder:"npx / node / python"})]}),o.jsxs("div",{className:"md:col-span-2",children:[o.jsx("label",{className:"label",children:o.jsx("span",{className:"label-text font-medium",children:"参数(每行一个)"})}),o.jsx("textarea",{value:((lt=g.args)==null?void 0:lt.join(`
|
|
101
|
+
`))||"",onChange:j=>ne("args",j.target.value.split(`
|
|
102
|
+
`).filter(Boolean)),rows:3,className:"textarea textarea-bordered w-full font-mono",placeholder:`@modelcontextprotocol/server-filesystem
|
|
103
|
+
/path/to/directory`})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"label",children:o.jsx("span",{className:"label-text font-medium",children:"环境变量"})}),o.jsxs("div",{className:"space-y-2",children:[Object.entries(g.env||{}).map(([j,O],M)=>o.jsxs("div",{className:"flex gap-2",children:[o.jsx("input",{type:"text",value:j,onChange:D=>S(M,"key",D.target.value),className:"input input-bordered input-sm flex-1 font-mono",placeholder:"变量名"}),o.jsx("input",{type:"text",value:O,onChange:D=>S(M,"value",D.target.value),className:"input input-bordered input-sm flex-1 font-mono",placeholder:"值"}),o.jsx("button",{type:"button",onClick:()=>A(M),className:"btn btn-ghost btn-sm btn-square text-error",children:o.jsx(Dn,{className:"h-4 w-4"})})]},M)),o.jsxs("button",{type:"button",onClick:_,className:"btn btn-ghost btn-sm gap-2",children:[o.jsx(mn,{className:"h-4 w-4"}),o.jsx("span",{children:"添加环境变量"})]})]})]})]}):o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"label",children:o.jsx("span",{className:"label-text font-medium",children:"URL *"})}),o.jsx("input",{type:"url",value:g.url||g.endpoint||"",onChange:j=>ne("url",j.target.value),className:"input input-bordered w-full font-mono",placeholder:"https://api.example.com/mcp"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"label",children:o.jsx("span",{className:"label-text font-medium",children:"请求头"})}),o.jsxs("div",{className:"space-y-2",children:[Object.entries(g.headers||{}).map(([j,O],M)=>o.jsxs("div",{className:"flex gap-2",children:[o.jsx("input",{type:"text",value:j,onChange:D=>$(M,"key",D.target.value),className:"input input-bordered input-sm flex-1 font-mono",placeholder:"Header 名称"}),o.jsx("input",{type:"text",value:O,onChange:D=>$(M,"value",D.target.value),className:"input input-bordered input-sm flex-1 font-mono",placeholder:"Header 值"}),o.jsx("button",{type:"button",onClick:()=>pe(M),className:"btn btn-ghost btn-sm btn-square text-error",children:o.jsx(Dn,{className:"h-4 w-4"})})]},M)),o.jsxs("button",{type:"button",onClick:K,className:"btn btn-ghost btn-sm gap-2",children:[o.jsx(mn,{className:"h-4 w-4"}),o.jsx("span",{children:"添加请求头"})]})]})]})]})]})}),o.jsx("div",{className:"card bg-base-100 border border-base-300 shadow-sm",children:o.jsxs("div",{className:"card-body p-5",children:[o.jsxs("div",{className:"flex items-center justify-between",children:[o.jsx("h4",{className:"font-semibold text-base",children:"高级选项"}),o.jsxs("button",{type:"button",onClick:()=>m(!b),className:"btn btn-ghost btn-sm",children:[b?"隐藏":"显示","高级"]})]}),b&&o.jsxs("div",{className:"grid gap-4 md:grid-cols-2 mt-2",children:[o.jsxs("div",{children:[o.jsx("label",{className:"label",children:o.jsx("span",{className:"label-text font-medium",children:"超时(毫秒)"})}),o.jsx("input",{type:"number",value:g.timeout||"",onChange:j=>ne("timeout",j.target.value?parseInt(j.target.value):void 0),className:"input input-bordered w-full",placeholder:"30000"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"label",children:o.jsx("span",{className:"label-text font-medium",children:"重试次数"})}),o.jsx("input",{type:"number",value:g.retries||"",onChange:j=>ne("retries",j.target.value?parseInt(j.target.value):void 0),className:"input input-bordered w-full",placeholder:"3"})]})]})]})}),y&&o.jsx("div",{className:"alert alert-error",children:o.jsx("div",{className:"text-sm",children:y})})]}),o.jsxs("div",{className:"sticky bottom-4 z-10 glass border border-base-300 rounded-box shadow-lg px-4 py-3 flex items-center justify-end gap-3",children:[o.jsx("button",{type:"button",className:"btn btn-ghost rounded-box",onClick:()=>e("/mcp"),children:"取消"}),o.jsx("button",{type:"button",className:"btn btn-primary rounded-box",disabled:x||s==="form"&&(!T||!u.valid),onClick:s==="json"?qe:se,children:x?"保存中...":r?"保存修改":"添加服务器"})]})]})},nt=ba((e,t)=>({providers:[],gatewayStatus:null,loading:!1,error:null,testingId:null,showProviderModal:!1,editingProvider:null,selectedProviderId:null,loadAll:async()=>{e({loading:!0,error:null});try{const[n,r]=await Promise.all([H.getAIProviders(),H.getGatewayStatus()]);e({providers:n,gatewayStatus:r,loading:!1})}catch(n){e({error:n.message,loading:!1})}},addProvider:async n=>{await H.addAIProvider(n),await t().loadAll()},updateProvider:async(n,r)=>{await H.updateAIProvider(n,r),await t().loadAll()},removeProvider:async n=>{await H.deleteAIProvider(n),await t().loadAll()},toggleProvider:async(n,r)=>{await H.updateAIProvider(n,{enabled:r}),await t().loadAll()},testProvider:async(n,r)=>{e({testingId:n});try{return await H.testAIProvider(n,r)}finally{e({testingId:null})}},fetchModels:async(n,r)=>{const s=await H.fetchProviderModels(n,r);return await t().loadAll(),s.models},updateGateway:async n=>{await H.updateGatewaySettings(n),await t().loadAll()},setShowProviderModal:(n,r=null)=>{e({showProviderModal:n,editingProvider:r})},setSelectedProvider:n=>{e({selectedProviderId:n})}})),ys="font-mono text-xs bg-base-200/70 border border-base-300/60 rounded-field px-2 py-1 break-all",Wy=({onClose:e})=>{const{gatewayStatus:t,updateGateway:n}=nt(),[r,s]=w.useState(!1);if(!t)return null;const l=`http://${t.host}:${t.port}`,i=async c=>{await navigator.clipboard.writeText(c)},a=async()=>{if(window.confirm("重置后旧 apiKey 立即失效,已接入的客户端需要更新配置。继续?")){s(!0);try{await n({resetApiKey:!0})}finally{s(!1)}}};return o.jsxs("div",{className:"modal modal-open",children:[o.jsxs("div",{className:"modal-box max-w-lg",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsx("h3",{className:"font-bold text-lg",children:"AI API 网关 · 配置信息"}),o.jsx("button",{className:"btn btn-ghost btn-sm btn-square",onClick:e,children:o.jsx(Ll,{className:"w-4 h-4"})})]}),o.jsxs("div",{className:"grid gap-3",children:[o.jsxs("div",{children:[o.jsx("div",{className:"text-xs text-base-content/50 mb-1.5",children:"apiKey(客户端认证用)"}),o.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[o.jsx("code",{className:`${ys} flex-1 min-w-0`,children:t.apiKey}),o.jsx("button",{className:"btn btn-ghost btn-xs btn-square shrink-0",onClick:()=>i(t.apiKey),title:"复制 apiKey",children:o.jsx(Cr,{className:"w-3.5 h-3.5"})}),o.jsx("button",{className:"btn btn-ghost btn-xs btn-square text-warning shrink-0",onClick:a,disabled:r,title:"重置 apiKey",children:r?o.jsx("span",{className:"loading loading-spinner loading-xs"}):o.jsx(qr,{className:"w-3.5 h-3.5"})})]})]}),o.jsxs("div",{children:[o.jsx("div",{className:"text-xs text-base-content/50 mb-1.5",children:"Anthropic 网关地址"}),o.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[o.jsxs("code",{className:`${ys} flex-1 min-w-0`,children:[l,"/anthropic"]}),o.jsx("button",{className:"btn btn-ghost btn-xs btn-square shrink-0",onClick:()=>i(`${l}/anthropic`),title:"复制地址",children:o.jsx(Cr,{className:"w-3.5 h-3.5"})})]}),o.jsxs("div",{className:"text-xs text-base-content/40 mt-1",children:["Claude Code 设 ANTHROPIC_BASE_URL 指向 ",l,"/anthropic"]})]}),o.jsxs("div",{children:[o.jsx("div",{className:"text-xs text-base-content/50 mb-1.5",children:"OpenAI 网关地址"}),o.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[o.jsxs("code",{className:`${ys} flex-1 min-w-0`,children:[l,"/openai/v1"]}),o.jsx("button",{className:"btn btn-ghost btn-xs btn-square shrink-0",onClick:()=>i(`${l}/openai/v1`),title:"复制地址",children:o.jsx(Cr,{className:"w-3.5 h-3.5"})})]}),o.jsxs("div",{className:"text-xs text-base-content/40 mt-1",children:["Cherry Studio / Cline 等 OpenAI 兼容客户端 base URL 指向 ",l,"/openai/v1,API key 填网关 apiKey,模型列表经 /v1/models 自动发现"]})]}),o.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[o.jsxs("div",{children:[o.jsx("div",{className:"text-xs text-base-content/50 mb-1.5",children:"监听(与 Web 管理界面同端口)"}),o.jsxs("code",{className:ys,children:[t.host,":",t.port]})]}),o.jsxs("div",{children:[o.jsx("div",{className:"text-xs text-base-content/50 mb-1.5",children:"运行状态"}),o.jsx("span",{className:`badge ${t.running?"badge-success":"badge-warning"} badge-sm`,children:t.running?"运行中":"已启用(未运行)"})]})]})]}),o.jsxs("div",{className:"text-xs text-base-content/40 mt-4",children:["模型寻址格式:",o.jsx("code",{className:"font-mono",children:"slug:modelId"}),"(如 ",o.jsx("code",{className:"font-mono",children:"deepseek:deepseek-chat"}),"),按供应商 slug 路由到上游。"]}),o.jsx("div",{className:"modal-action",children:o.jsx("button",{className:"btn btn-ghost btn-sm",onClick:e,children:"关闭"})})]}),o.jsx("div",{className:"modal-backdrop",onClick:e})]})},Hy=()=>{const{gatewayStatus:e,updateGateway:t}=nt(),[n,r]=w.useState(!1);if(!e)return null;const s=async()=>{await t({enabled:!e.enabled})};return o.jsxs("div",{className:"flex flex-wrap items-center gap-x-4 gap-y-2 pt-2.5 text-sm",title:"Anthropic Messages 兼容端点(/anthropic 前缀路由),统一接入任意上游供应商",children:[o.jsxs("div",{className:"flex items-center gap-2 shrink-0",children:[o.jsx(ka,{className:`w-4 h-4 ${e.enabled?"text-accent":"text-base-content/40"}`}),o.jsx("span",{className:"font-semibold",children:"AI API 网关"}),e.enabled&&o.jsx("span",{className:`badge ${e.running?"badge-success":"badge-warning"} badge-sm`,children:e.running?"运行中":"已启用(未运行)"})]}),o.jsxs("label",{className:"flex items-center gap-2 cursor-pointer select-none shrink-0",children:[o.jsxs("span",{className:"text-xs text-base-content/60",children:["网关",e.enabled?"开":"关"]}),o.jsx("input",{type:"checkbox",className:"toggle toggle-primary toggle-sm",checked:e.enabled,onChange:s})]}),e.enabled&&o.jsxs("button",{className:"btn btn-ghost btn-xs ml-auto",onClick:()=>r(!0),children:[o.jsx(xy,{className:"w-3.5 h-3.5"}),"配置信息"]}),n&&o.jsx(Wy,{onClose:()=>r(!1)})]})},qy=/^[a-z0-9][a-z0-9-]*$/,Ky=()=>{const{showProviderModal:e,editingProvider:t,providers:n,setShowProviderModal:r,addProvider:s,updateProvider:l}=nt(),i=!!t,[a,c]=w.useState(()=>({slug:(t==null?void 0:t.slug)||"",name:(t==null?void 0:t.name)||"",dialect:(t==null?void 0:t.dialect)||"openai",baseUrl:(t==null?void 0:t.baseUrl)||"",apiKey:"",enabled:(t==null?void 0:t.enabled)??!0,autoFetchModels:(t==null?void 0:t.autoFetchModels)??!0,headersText:t!=null&&t.headers?JSON.stringify(t.headers,null,2):""})),[f,g]=w.useState(!1),[v,d]=w.useState(null);if(!e)return null;const h=n.some(u=>u.slug===a.slug&&u.id!==(t==null?void 0:t.id)),y=a.slug!==""&&!qy.test(a.slug),N=a.headersText.trim()!==""&&(()=>{try{const u=JSON.parse(a.headersText);return typeof u!="object"||u===null||Array.isArray(u)}catch{return!0}})(),b=a.slug&&!y&&!h&&a.baseUrl&&a.dialect&&(!i||a.apiKey!==void 0)&&(i||a.apiKey!=="")&&!N,m=async u=>{u.preventDefault(),g(!0),d(null);try{const p=a.headersText.trim()?JSON.parse(a.headersText):void 0;if(i&&t?await l(t.id,{slug:a.slug,name:a.name||void 0,dialect:a.dialect,baseUrl:a.baseUrl,...a.apiKey?{apiKey:a.apiKey}:{},enabled:a.enabled,autoFetchModels:a.autoFetchModels,...p!==void 0?{headers:p}:{}}):await s({slug:a.slug,name:a.name||void 0,dialect:a.dialect,baseUrl:a.baseUrl,apiKey:a.apiKey,enabled:a.enabled,autoFetchModels:a.autoFetchModels,...p!==void 0?{headers:p}:{}}),a.autoFetchModels)try{const x=nt.getState().providers.find(k=>k.slug===a.slug);x&&await nt.getState().fetchModels(x.id,a.apiKey||void 0)}catch{}r(!1)}catch(p){d(p.message)}finally{g(!1)}};return o.jsxs("div",{className:"modal modal-open",children:[o.jsxs("div",{className:"modal-box max-w-lg",children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsx("h3",{className:"font-bold text-lg",children:i?"编辑供应商":"新增供应商"}),o.jsx("button",{className:"btn btn-ghost btn-sm btn-square",onClick:()=>r(!1),children:o.jsx(Ll,{className:"w-4 h-4"})})]}),o.jsxs("form",{onSubmit:m,children:[o.jsxs("div",{className:"grid gap-3",children:[o.jsxs("div",{className:"form-control",children:[o.jsx("label",{className:"label py-1",children:o.jsx("span",{className:"label-text",children:"slug(寻址名,不可与其他重复)"})}),o.jsx("input",{className:`input input-bordered input-sm font-mono ${y||h?"input-error":a.slug?"input-success":""}`,value:a.slug,onChange:u=>c({...a,slug:u.target.value}),placeholder:"deepseek",disabled:!1}),o.jsx("label",{className:"label py-1",children:o.jsx("span",{className:"label-text-alt text-error",children:y?"格式:小写字母/数字开头,仅 a-z 0-9 -":h?"该 slug 已被占用":"模型寻址格式:slug:modelId"})})]}),o.jsxs("div",{className:"form-control",children:[o.jsx("label",{className:"label py-1",children:o.jsx("span",{className:"label-text",children:"显示名(可选)"})}),o.jsx("input",{className:"input input-bordered input-sm",value:a.name,onChange:u=>c({...a,name:u.target.value}),placeholder:"深度求索"})]}),o.jsxs("div",{className:"form-control",children:[o.jsx("label",{className:"label py-1",children:o.jsx("span",{className:"label-text",children:"上游方言"})}),o.jsxs("select",{className:"select select-bordered select-sm",value:a.dialect,onChange:u=>c({...a,dialect:u.target.value}),children:[o.jsx("option",{value:"openai",children:"openai 兼容"}),o.jsx("option",{value:"anthropic",children:"anthropic(直通)"}),o.jsx("option",{value:"gemini",children:"gemini"})]})]}),o.jsxs("div",{className:"form-control",children:[o.jsx("label",{className:"label py-1",children:o.jsx("span",{className:"label-text",children:"Base URL"})}),o.jsx("input",{className:"input input-bordered input-sm font-mono",value:a.baseUrl,onChange:u=>c({...a,baseUrl:u.target.value}),placeholder:"https://api.deepseek.com"})]}),o.jsxs("div",{className:"form-control",children:[o.jsx("label",{className:"label py-1",children:o.jsxs("span",{className:"label-text",children:["API Key ",i&&"(留空 = 不修改)"]})}),o.jsx("input",{type:"password",className:"input input-bordered input-sm font-mono",value:a.apiKey,onChange:u=>c({...a,apiKey:u.target.value}),placeholder:i?"不修改则留空":"sk-..."})]}),o.jsxs("div",{className:"form-control",children:[o.jsx("label",{className:"label py-1",children:o.jsx("span",{className:"label-text",children:"自定义请求头(可选,JSON)"})}),o.jsx("textarea",{className:`textarea textarea-bordered textarea-sm font-mono ${N?"textarea-error":""}`,rows:3,value:a.headersText,onChange:u=>c({...a,headersText:u.target.value}),placeholder:`{
|
|
104
|
+
"x-custom": "value"
|
|
105
|
+
}`})]}),o.jsxs("label",{className:"label cursor-pointer justify-start gap-3 py-1",children:[o.jsx("input",{type:"checkbox",className:"toggle toggle-sm toggle-primary",checked:a.enabled,onChange:u=>c({...a,enabled:u.target.checked})}),o.jsx("span",{className:"label-text",children:"启用"})]}),o.jsxs("label",{className:"label cursor-pointer justify-start gap-3 py-1",children:[o.jsx("input",{type:"checkbox",className:"toggle toggle-sm toggle-primary",checked:a.autoFetchModels,onChange:u=>c({...a,autoFetchModels:u.target.checked})}),o.jsxs("span",{className:"label-text",children:["自动拉取上游模型",o.jsx("span",{className:"label-text-alt text-base-content/50 ml-1",children:"(打开管理页时自动获取并保存)"})]})]})]}),v&&o.jsx("div",{className:"alert alert-error mt-3 py-2 text-sm",children:v}),o.jsxs("div",{className:"modal-action",children:[o.jsx("button",{type:"button",className:"btn btn-ghost btn-sm",onClick:()=>r(!1),children:"取消"}),o.jsx("button",{type:"submit",className:"btn btn-primary btn-sm",disabled:!b||f,children:f?o.jsx("span",{className:"loading loading-spinner loading-xs"}):i?"保存":"创建"})]})]})]}),o.jsx("div",{className:"modal-backdrop",onClick:()=>r(!1)})]})},Qy=({provider:e})=>{const{fetchModels:t,updateProvider:n}=nt(),[r,s]=w.useState(!1),[l,i]=w.useState(null),[a,c]=w.useState(null),[f,g]=w.useState(null),[v,d]=w.useState(""),h=e.models||[],y=new Set(e.disabledModels||[]),N=async()=>{s(!0),c(null),g(null);try{const x=await t(e.id),k=h.filter(T=>!x.includes(T)).length;g(k>0?`已拉取并入库(新增 ${k} 个模型)`:"已拉取,与现有列表一致")}catch(x){c(x.message)}finally{s(!1)}},b=async(x,k)=>{i(x),c(null);try{const T=new Set(y);k?T.delete(x):T.add(x),await n(e.id,{disabledModels:[...T]})}catch(T){c(T.message)}finally{i(null)}},m=async()=>{const x=v.trim();if(!(!x||h.includes(x))){i(x),c(null);try{await n(e.id,{models:[...h,x]}),d("")}catch(k){c(k.message)}finally{i(null)}}},u=async x=>{i(x),c(null);try{await n(e.id,{models:h.filter(k=>k!==x),disabledModels:(e.disabledModels||[]).filter(k=>k!==x)})}catch(k){c(k.message)}finally{i(null)}},p=h.filter(x=>!y.has(x)).length;return o.jsxs("div",{className:"space-y-3",children:[o.jsxs("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[o.jsxs("h3",{className:"text-sm font-semibold flex items-center gap-2",children:["模型管理",o.jsxs("span",{className:"text-xs font-normal text-base-content/50",children:["共 ",h.length," 个 · ",p," 个对外可用"]})]}),o.jsxs("button",{className:"btn btn-outline btn-xs rounded-field",onClick:N,disabled:r,children:[r?o.jsx("span",{className:"loading loading-spinner loading-xs"}):o.jsx(qr,{className:"w-3.5 h-3.5"}),"拉取上游模型"]})]}),o.jsx("p",{className:"text-xs text-base-content/45",children:"取消勾选即对外部接口隐藏该模型(即时生效,无需保存);拉取的新模型默认勾选并自动保存。"}),a&&o.jsx("div",{className:"alert alert-error py-2 text-sm",children:a}),f&&o.jsx("div",{className:"text-xs text-success",children:f}),o.jsx("div",{className:"rounded-field border border-base-300/70 divide-y divide-base-300/60",children:h.length===0?o.jsxs("div",{className:"p-3 text-sm text-base-content/50 flex items-center gap-2",children:[o.jsx(fy,{className:"w-4 h-4 shrink-0"}),"暂无模型。点击右上「拉取上游模型」自动获取,或在下方手工添加。"]}):h.map(x=>{const k=!y.has(x);return o.jsxs("div",{className:"flex items-center gap-3 px-3 py-2 hover:bg-base-200/40",children:[o.jsx("input",{type:"checkbox",className:"toggle toggle-primary toggle-xs",checked:k,disabled:l===x,onChange:T=>b(x,T.target.checked),title:k?"取消勾选:对外部接口隐藏":"勾选:对外部接口可用"}),o.jsx("span",{className:`text-sm font-mono truncate flex-1 ${k?"":"text-base-content/40 line-through"}`,children:x}),o.jsx("button",{className:"btn btn-ghost btn-xs btn-square text-base-content/40 hover:text-error shrink-0",onClick:()=>u(x),disabled:l===x,title:`从列表删除 ${x}`,children:o.jsx(Ll,{className:"w-3.5 h-3.5"})})]},x)})}),o.jsxs("div",{className:"join w-full",children:[o.jsx("input",{className:"input input-bordered input-sm join-item flex-1 w-full font-mono",value:v,onChange:x=>d(x.target.value),onKeyDown:x=>x.key==="Enter"&&m(),placeholder:"手工添加模型 Id(拉取失败时可作兜底)"}),o.jsx("button",{className:"btn btn-sm btn-primary join-item",onClick:m,disabled:!v.trim()||l!==null,title:"添加模型",children:o.jsx(mn,{className:"w-4 h-4"})})]})]})},ru={openai:"badge-info",anthropic:"badge-secondary",gemini:"badge-success"},Gy=()=>{const{providers:e,loading:t,error:n,testingId:r,selectedProviderId:s,loadAll:l,toggleProvider:i,removeProvider:a,testProvider:c,setShowProviderModal:f,setSelectedProvider:g}=nt(),[v,d]=w.useState({}),h=w.useRef(!1);if(w.useEffect(()=>{l()},[l]),w.useEffect(()=>{if(!(h.current||e.length===0)){h.current=!0;for(const u of e)u.enabled&&u.autoFetchModels&&nt.getState().fetchModels(u.id).catch(()=>{})}},[e]),w.useEffect(()=>{if(e.length===0){s&&g(null);return}(!s||!e.find(u=>u.id===s))&&g(e[0].id)},[e,s,g]),t&&e.length===0)return o.jsx("div",{className:"flex items-center justify-center h-64",children:o.jsx("span",{className:"loading loading-spinner loading-lg text-primary"})});if(n&&e.length===0)return o.jsxs("div",{className:"alert alert-error",children:["加载失败:",n]});const y=async u=>{try{const p=await c(u.id);d(x=>({...x,[u.id]:{ok:p.ok,message:p.ok?`连通(${p.modelCount} 个模型)`:p.message}}))}catch(p){d(x=>({...x,[u.id]:{ok:!1,message:p.message}}))}},N=async u=>{window.confirm(`确认删除供应商 ${u.name||u.slug}?`)&&await a(u.id)},b=e.find(u=>u.id===s)||null,m=e.filter(u=>u.enabled).length;return o.jsxs("div",{className:"flex flex-col gap-4",children:[o.jsxs("div",{className:"bg-base-100 border border-base-300 rounded-box shadow-sm px-4 py-3",children:[o.jsxs("div",{className:"flex items-center justify-between gap-3 flex-wrap pb-2.5 border-b border-base-300/70",children:[o.jsxs("h1",{className:"text-base font-semibold flex items-center gap-3 flex-wrap",children:["供应商",o.jsxs("span",{className:"text-sm font-normal text-base-content/50",children:["共 ",e.length," 个 · ",o.jsx("span",{className:"text-accent font-medium",children:m})," 个已启用"]})]}),o.jsxs("button",{className:"btn btn-primary btn-sm rounded-field",onClick:()=>f(!0),children:[o.jsx(mn,{className:"w-4 h-4"})," 新增供应商"]})]}),o.jsx(Hy,{})]}),o.jsxs("div",{className:"flex items-start bg-base-100 border border-base-300 rounded-box shadow-sm overflow-hidden",children:[o.jsxs("div",{className:"w-72 shrink-0 border-r border-base-300 flex flex-col self-stretch",children:[o.jsx("div",{className:"px-3 py-2.5 border-b border-base-300 text-sm font-medium text-base-content/70",children:"供应商列表"}),o.jsx("div",{className:"p-2 max-h-[30rem] overflow-y-auto",children:e.length===0?o.jsxs("div",{className:"p-6 text-center text-base-content/70",children:[o.jsx(Kr,{className:"h-12 w-12 mx-auto mb-4 text-base-content/40"}),o.jsx("p",{className:"mb-2",children:"还没有配置供应商"}),o.jsxs("p",{className:"text-sm mb-4",children:["新增后客户端通过 ",o.jsx("code",{className:"font-mono",children:"slug:modelId"})," 访问任意上游"]}),o.jsx("button",{className:"btn btn-primary btn-sm",onClick:()=>f(!0),children:"新增供应商"})]}):o.jsx("div",{className:"space-y-1",children:e.map(u=>{var k;const p=u.id===s,x=v[u.id];return o.jsxs("button",{onClick:()=>g(u.id),className:`w-full text-left px-3 py-2 rounded-field border transition-all ${p?"bg-primary/10 border-primary/40":"border-transparent hover:bg-base-200/60"}`,children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("span",{className:`w-1.5 h-1.5 rounded-full shrink-0 ${u.enabled?"bg-success":"bg-base-content/25"}`,title:u.enabled?"已启用":"已禁用"}),o.jsx("span",{className:`font-mono font-medium text-sm truncate ${p?"text-primary":""}`,children:u.slug}),o.jsx("span",{className:`badge ${ru[u.dialect]||"badge-ghost"} badge-xs ml-auto shrink-0`,children:u.dialect})]}),u.name&&o.jsx("div",{className:"text-xs text-base-content/55 mt-1 truncate pl-3.5",children:u.name}),o.jsxs("div",{className:"text-xs text-base-content/45 mt-1 pl-3.5 flex items-center gap-1.5 min-w-0",children:[o.jsxs("span",{className:"shrink-0",children:[((k=u.models)==null?void 0:k.length)||0," 模型"]}),x&&o.jsxs("span",{className:`truncate ${x.ok?"text-success":"text-error"}`,title:x.message,children:[x.ok?"✓":"✕"," ",x.message]})]})]},u.id)})})})]}),o.jsx("div",{className:"flex-1 min-w-0",children:b?o.jsxs("div",{className:"p-5 space-y-5",children:[o.jsxs("div",{className:"flex items-start gap-4 flex-wrap",children:[o.jsx("div",{className:"w-11 h-11 rounded-field bg-gradient-to-br from-primary to-accent flex items-center justify-center text-primary-content font-bold text-lg font-mono shrink-0 shadow-md",children:b.slug.charAt(0).toUpperCase()}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[o.jsx("span",{className:"text-lg font-bold font-mono",children:b.slug}),o.jsx("span",{className:`badge ${ru[b.dialect]||"badge-ghost"} badge-sm`,children:b.dialect}),b.enabled?o.jsx("span",{className:"badge badge-success badge-outline badge-sm",children:"已启用"}):o.jsx("span",{className:"badge badge-ghost badge-sm",children:"已禁用"})]}),b.name&&o.jsx("div",{className:"text-sm text-base-content/60 mt-1",children:b.name}),o.jsx("div",{className:"text-xs font-mono text-base-content/45 mt-1.5 truncate",title:b.baseUrl,children:b.baseUrl}),o.jsxs("div",{className:"text-xs font-mono text-base-content/40 mt-0.5 truncate",title:b.apiKey,children:["key ",b.apiKey]})]}),o.jsxs("div",{className:"flex items-center gap-2 shrink-0",children:[o.jsx("label",{className:"flex items-center gap-2 cursor-pointer pr-3 mr-1 border-r border-base-300",title:"启用/禁用",children:o.jsx("input",{type:"checkbox",className:"toggle toggle-primary toggle-sm",checked:b.enabled,onChange:u=>i(b.id,u.target.checked)})}),o.jsxs("button",{className:"btn btn-outline btn-sm rounded-field",onClick:()=>y(b),disabled:r===b.id,children:[r===b.id?o.jsx("span",{className:"loading loading-spinner loading-xs"}):o.jsx(ky,{className:"w-4 h-4"})," 测试"]}),o.jsxs("button",{className:"btn btn-outline btn-sm rounded-field",onClick:()=>f(!0,b),children:[o.jsx(by,{className:"w-4 h-4"})," 编辑"]}),o.jsxs("button",{className:"btn btn-outline btn-sm btn-error rounded-field",onClick:()=>N(b),children:[o.jsx(Dn,{className:"w-4 h-4"})," 删除"]})]})]}),v[b.id]&&o.jsxs("div",{className:`text-xs ${v[b.id].ok?"text-success":"text-error"}`,children:[v[b.id].ok?"✓ ":"✕ ",v[b.id].message]}),o.jsx("div",{className:"border-t border-base-300 pt-4",children:o.jsx(Qy,{provider:b})})]}):o.jsxs("div",{className:"p-12 text-center text-base-content/70",children:[o.jsx(Kr,{className:"h-16 w-16 mx-auto mb-4 text-base-content/40"}),o.jsx("h3",{className:"text-lg font-medium mb-2",children:"选择一个供应商"}),o.jsx("p",{className:"text-sm",children:"从左侧列表选择一个供应商来查看和管理其模型"})]})})]}),o.jsx(Ky,{})]})},Jy=()=>o.jsx("div",{className:"min-h-[480px] flex flex-col",children:o.jsx(Gy,{})}),Yy=()=>{var b,m;const e=yn(),{systemStatus:t,events:n}=Kt(),r=be(u=>u.servers),s=nt(u=>u.providers),l=nt(u=>u.gatewayStatus),[i,a]=w.useState({});w.useEffect(()=>{be.getState().servers.length===0&&be.getState().loadConfig().catch(()=>{}),H.get("/api/system/info").then(u=>a(u||{})).catch(()=>{}),nt.getState().loadAll().catch(()=>{})},[]);const c=r.filter(u=>u.enabled),f=c.filter(u=>u.connected).length,g=(t==null?void 0:t.totalTools)??r.reduce((u,p)=>u+(p.toolCount||0),0),v=s.filter(u=>u.enabled).length,d=(b=t==null?void 0:t.daemon)==null?void 0:b.uptime,h=i.webPort??(typeof window<"u"&&Number(window.location.port)||void 0),y=d==null?"—":d<60?`${Math.floor(d)}秒`:d<3600?`${Math.floor(d/60)}分`:`${Math.floor(d/86400)}天 ${Math.floor(d%86400/3600)}时 ${Math.floor(d%3600/60)}分`,N=n.slice(0,8);return o.jsxs("div",{className:"flex flex-col gap-4 lg:gap-6",children:[o.jsxs("div",{className:"flex items-baseline gap-3",children:[o.jsx("h1",{className:"text-xl font-bold",children:"控制台"}),o.jsx("span",{className:"text-xs text-base-content/50",children:"系统概览与运行状态"})]}),o.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 xl:grid-cols-4 gap-4",children:[o.jsx("div",{className:"stats bg-base-100 border border-base-300 shadow-sm cursor-pointer",onClick:()=>e("/mcp"),children:o.jsxs("div",{className:"stat p-4",children:[o.jsxs("div",{className:"stat-title text-xs flex items-center gap-1.5",children:[o.jsx(wi,{className:"w-3.5 h-3.5"})," MCP 服务器"]}),o.jsxs("div",{className:"stat-value text-2xl",children:[f,o.jsxs("span",{className:"text-base font-normal text-base-content/40",children:[" / ",r.length]})]}),o.jsxs("div",{className:"stat-desc",children:[c.length," 个启用"]})]})}),o.jsx("div",{className:"stats bg-base-100 border border-base-300 shadow-sm cursor-pointer",onClick:()=>e("/mcp"),children:o.jsxs("div",{className:"stat p-4",children:[o.jsxs("div",{className:"stat-title text-xs flex items-center gap-1.5",children:[o.jsx(Py,{className:"w-3.5 h-3.5"})," 聚合工具"]}),o.jsx("div",{className:"stat-value text-2xl",children:g}),o.jsxs("div",{className:"stat-desc",children:["启用 ",(t==null?void 0:t.enabledTools)??r.reduce((u,p)=>u+(p.enabledToolCount||0),0)," 个"]})]})}),o.jsx("div",{className:"stats bg-base-100 border border-base-300 shadow-sm cursor-pointer",onClick:()=>e("/providers"),children:o.jsxs("div",{className:"stat p-4",children:[o.jsxs("div",{className:"stat-title text-xs flex items-center gap-1.5",children:[o.jsx(Kr,{className:"w-3.5 h-3.5"})," AI 供应商"]}),o.jsxs("div",{className:"stat-value text-2xl",children:[v,o.jsxs("span",{className:"text-base font-normal text-base-content/40",children:[" / ",s.length]})]}),o.jsx("div",{className:"stat-desc",children:l!=null&&l.running?`网关运行中 · ${l.port}`:l!=null&&l.enabled?"网关启动中":"网关未启用"})]})}),o.jsx("div",{className:"stats bg-base-100 border border-base-300 shadow-sm",children:o.jsxs("div",{className:"stat p-4",children:[o.jsxs("div",{className:"stat-title text-xs flex items-center gap-1.5",children:[o.jsx(_y,{className:"w-3.5 h-3.5"})," 运行时长"]}),o.jsx("div",{className:"stat-value text-2xl",children:y}),o.jsx("div",{className:"stat-desc",children:t?((m=t.daemon)==null?void 0:m.isRunning)===!1?"daemon 未运行":"状态实时推送中":"等待状态推送…"})]})})]}),o.jsxs("div",{className:"grid grid-cols-1 xl:grid-cols-2 gap-4 lg:gap-6",children:[o.jsx("div",{className:"card bg-base-100 border border-base-300 shadow-sm",children:o.jsxs("div",{className:"card-body p-5 gap-0",children:[o.jsx("h2",{className:"card-title text-sm mb-2",children:"系统信息"}),[["版本",i.version??"—"],["运行模式",i.mode??"daemon"],["Web 端口",h?`${h} (localhost)`:"—"],["配置路径",i.configPath??"—"]].map(([u,p])=>o.jsxs("div",{className:"flex justify-between py-1.5 text-sm border-b border-dashed border-base-300 last:border-0",children:[o.jsx("span",{className:"text-base-content/60",children:u}),o.jsx("span",{className:"font-medium font-mono text-xs truncate max-w-[60%]",title:p,children:p})]},u))]})}),o.jsx("div",{className:"card bg-base-100 border border-base-300 shadow-sm",children:o.jsxs("div",{className:"card-body p-5",children:[o.jsxs("h2",{className:"card-title text-sm justify-between",children:["服务器状态",o.jsxs("button",{className:"btn btn-ghost btn-xs",onClick:()=>e("/mcp"),children:["管理 ",o.jsx(Xc,{className:"w-3 h-3"})]})]}),r.length===0?o.jsxs("div",{className:"text-sm text-base-content/40 min-h-[120px] flex items-center justify-center text-center",children:["暂无服务器,",o.jsx("span",{className:"text-primary cursor-pointer",onClick:()=>e("/mcp"),children:"去添加"})]}):o.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-2",children:r.map(u=>o.jsxs("div",{className:"flex items-center gap-2 p-2.5 rounded-field border border-base-300 hover:border-primary hover:bg-primary/5 transition-colors cursor-pointer",onClick:()=>e("/mcp"),children:[o.jsx("span",{className:`w-2 h-2 rounded-full shrink-0 ${u.enabled?u.connected?"bg-success":"bg-warning":"bg-base-content/20"}`}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("div",{className:"text-xs font-semibold truncate",children:u.name}),o.jsxs("div",{className:"text-[11px] text-base-content/40",children:[u.transport," · ",u.enabled?`${u.toolCount} 工具`:"已停用"]})]})]},u.name))})]})})]}),o.jsx("div",{className:"card bg-base-100 border border-base-300 shadow-sm",children:o.jsxs("div",{className:"card-body p-5",children:[o.jsxs("h2",{className:"card-title text-sm justify-between",children:["实时事件",o.jsxs("button",{className:"btn btn-ghost btn-xs",onClick:()=>e("/logs"),children:["查看全部 ",o.jsx(Xc,{className:"w-3 h-3"})]})]}),N.length===0?o.jsx("div",{className:"text-sm text-base-content/40 py-4 text-center",children:"暂无事件,等待实时推送…"}):o.jsx("div",{className:"log-terminal max-h-56 overflow-y-auto scrollbar-thin",children:N.map((u,p)=>{var x,k;return o.jsxs("div",{className:"flex gap-3",children:[o.jsx("span",{className:"log-time shrink-0",children:new Date(u.timestamp).toLocaleTimeString("zh-CN")}),o.jsxs("span",{className:u.type==="server-error"||u.type==="error"?"log-err":u.type==="server-connected"||u.type==="tool-called"?"log-ok":"log-info",children:["[",u.type,"]"]}),o.jsx("span",{className:"truncate",children:((x=u.data)==null?void 0:x.serverName)||((k=u.data)==null?void 0:k.toolName)||JSON.stringify(u.data).slice(0,80)})]},`${u.timestamp}-${p}`)})})]})})]})},Xy=()=>{const{events:e,serverLogs:t,addServerLog:n,addEvent:r}=Kt(),s=be(h=>h.servers),[l,i]=w.useState("all"),[a,c]=w.useState(!1),[f,g]=w.useState(!0),v=w.useRef(null);w.useEffect(()=>{e.length>0||Object.keys(t).length>0||H.get("/api/mcp-logs?limit=500").then(h=>{for(const y of h)y.kind==="server-log"?n({serverName:y.serverName,stream:y.source||"system",data:`[${String(y.level||"info").toUpperCase()}] ${y.message}`,timestamp:y.timestamp}):y.kind==="tool-called"&&r({type:"tool-called",data:{serverName:y.serverName,toolName:y.toolName,duration:y.durationMs},timestamp:y.timestamp})}).catch(()=>{})},[]);const d=w.useMemo(()=>{const h=e.map(b=>{var m,u,p;return{time:new Date(b.timestamp).toLocaleTimeString("zh-CN"),level:b.type==="server-error"||b.type==="error"?"err":b.type==="server-disconnected"?"warn":"info",tag:b.type,message:(m=b.data)!=null&&m.serverName?`${b.data.serverName}${(u=b.data)!=null&&u.toolName?` · ${b.data.toolName}`:""}`:JSON.stringify(b.data).slice(0,120),server:((p=b.data)==null?void 0:p.serverName)||"system"}}),y=Object.entries(t).flatMap(([b,m])=>m.map(u=>({time:new Date(u.timestamp).toLocaleTimeString("zh-CN"),level:u.stream==="stderr"?"err":"info",tag:u.stream,message:u.data.replace(/\n$/,""),server:b}))),N=[...h,...y];return l!=="all"?N.filter(b=>b.server===l):N},[e,t,l]);return w.useEffect(()=>{f&&!a&&v.current&&(v.current.scrollTop=0)},[d,f,a]),o.jsxs("div",{className:"flex flex-col gap-4 lg:gap-6",children:[o.jsxs("div",{className:"flex items-baseline gap-3 flex-wrap",children:[o.jsx("h1",{className:"text-xl font-bold",children:"MCP 日志"}),o.jsx("span",{className:"text-xs text-base-content/50",children:"实时事件与服务器输出(最近 100 条,重启后可恢复历史)"})]}),o.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[o.jsxs("select",{className:"select select-bordered select-sm w-48",value:l,onChange:h=>i(h.target.value),children:[o.jsx("option",{value:"all",children:"全部来源"}),s.map(h=>o.jsx("option",{value:h.name,children:h.name},h.name))]}),o.jsx("button",{className:`btn btn-sm ${a?"btn-primary":"btn-outline"}`,onClick:()=>c(h=>!h),children:a?"继续刷新":"暂停刷新"}),o.jsxs("label",{className:"label cursor-pointer gap-2 text-sm text-base-content/60 py-0",children:[o.jsx("input",{type:"checkbox",className:"toggle toggle-sm toggle-primary",checked:f,onChange:h=>g(h.target.checked)}),"自动滚动"]})]}),o.jsx("div",{ref:v,className:"log-terminal min-h-[400px] max-h-[calc(100vh-16rem)] overflow-y-auto scrollbar-thin",children:d.length===0?o.jsx("div",{className:"text-center py-8 opacity-40",children:"暂无日志,等待实时推送…"}):d.map((h,y)=>o.jsxs("div",{className:"flex gap-3 whitespace-nowrap",children:[o.jsx("span",{className:"log-time shrink-0",children:h.time}),o.jsxs("span",{className:`shrink-0 ${h.level==="err"?"log-err":h.level==="warn"?"log-warn":h.level==="ok"?"log-ok":"log-info"}`,children:["[",h.tag,"]"]}),o.jsx("span",{className:"truncate",title:h.message,children:h.message})]},y))},a?"paused":"live")]})};function su(e){return e==null?"":e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}const mo=e=>e.status>=400,Zy=()=>{const{aiLogs:e,initAiLogs:t}=Kt(),[n,r]=w.useState("all"),[s,l]=w.useState("all"),[i,a]=w.useState("all"),[c,f]=w.useState(null);w.useEffect(()=>{H.get("/api/ai-logs?limit=200").then(d=>{t(d)}).catch(()=>{})},[]);const g=w.useMemo(()=>{const d=new Set(e.map(h=>h.providerName).filter(Boolean));return Array.from(d).sort()},[e]),v=w.useMemo(()=>e.filter(d=>!(n!=="all"&&d.providerName!==n||s==="ok"&&mo(d)||s==="fail"&&!mo(d)||i!=="all"&&d.ingress!==i)),[e,n,s,i]);return o.jsxs("div",{className:"flex flex-col gap-4 lg:gap-6",children:[o.jsxs("div",{className:"flex items-baseline gap-3 flex-wrap",children:[o.jsx("h1",{className:"text-xl font-bold",children:"调用日志"}),o.jsx("span",{className:"text-xs text-base-content/50",children:"AI 网关转发请求流水(最近 200 条,重启后可恢复历史)"})]}),o.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[o.jsxs("select",{className:"select select-bordered select-sm w-44",value:n,onChange:d=>r(d.target.value),children:[o.jsx("option",{value:"all",children:"全部供应商"}),g.map(d=>o.jsx("option",{value:d,children:d},d))]}),o.jsxs("select",{className:"select select-bordered select-sm w-32",value:s,onChange:d=>l(d.target.value),children:[o.jsx("option",{value:"all",children:"全部状态"}),o.jsx("option",{value:"ok",children:"成功"}),o.jsx("option",{value:"fail",children:"失败"})]}),o.jsxs("select",{className:"select select-bordered select-sm w-40",value:i,onChange:d=>a(d.target.value),children:[o.jsx("option",{value:"all",children:"全部入口"}),o.jsx("option",{value:"anthropic",children:"/anthropic"}),o.jsx("option",{value:"openai",children:"/openai"})]})]}),o.jsx("div",{className:"log-terminal min-h-[400px] max-h-[calc(100vh-16rem)] overflow-y-auto scrollbar-thin",children:v.length===0?o.jsx("div",{className:"text-center py-8 opacity-40",children:"暂无调用记录,等待请求进入…"}):v.map(d=>{var N,b,m,u;const h=mo(d),y=c===d.id;return o.jsxs("div",{children:[o.jsxs("div",{className:`flex gap-3 whitespace-nowrap items-center ${h?"cursor-pointer hover:bg-base-content/5":""}`,onClick:h?()=>f(y?null:d.id):void 0,children:[o.jsx("span",{className:"log-time shrink-0",children:new Date(d.timestamp).toLocaleTimeString("zh-CN")}),o.jsx("span",{className:`shrink-0 badge badge-xs badge-outline ${d.ingress==="openai"?"badge-info":"badge-secondary"}`,children:d.ingress}),o.jsx("span",{className:"shrink-0 log-info",children:d.providerName?`${d.providerName}/${d.upstreamModel}`:d.model||"(未路由)"}),o.jsx("span",{className:`shrink-0 font-mono ${h?"log-err":"log-ok"}`,children:d.status}),o.jsxs("span",{className:"shrink-0 log-info",children:[d.durationMs,"ms"]}),(((N=d.usage)==null?void 0:N.inputTokens)!==void 0||((b=d.usage)==null?void 0:b.outputTokens)!==void 0)&&o.jsxs("span",{className:"shrink-0 log-time",children:["↑",su((m=d.usage)==null?void 0:m.inputTokens)," ↓",su((u=d.usage)==null?void 0:u.outputTokens)]}),h&&o.jsx("span",{className:"truncate log-err",title:d.error,children:d.error}),h&&o.jsx("span",{className:"ml-auto shrink-0 log-time",children:y?"收起":"详情"})]}),h&&y&&o.jsxs("div",{className:"flex flex-col gap-1 pl-[4.5rem] pr-4 py-1.5 text-xs font-mono whitespace-pre-wrap break-all opacity-80",children:[d.error&&o.jsxs("div",{children:[o.jsx("span",{className:"log-err",children:"[error]"})," ",d.error]}),d.requestExcerpt&&o.jsxs("div",{children:[o.jsx("span",{className:"log-warn",children:"[request]"})," ",d.requestExcerpt]}),d.responseExcerpt&&o.jsxs("div",{children:[o.jsx("span",{className:"log-warn",children:"[response]"})," ",d.responseExcerpt]})]})]},d.id)})})]})};function ex(){const{setAuthState:e}=be(),[t,n]=w.useState({loading:!0,authenticated:!1,required:!1}),{refreshServerTools:r}=ny(window.location.origin);w.useEffect(()=>{s()},[]);const s=async()=>{try{const c=await H.checkAuthStatus();n({loading:!1,authenticated:c.authenticated,required:c.required}),e(c.required,c.authenticated?localStorage.getItem("agentdog_token"):null)}catch(c){console.error("认证状态检查失败:",c),n({loading:!1,authenticated:!1,required:!1}),e(!1,null)}},l=async c=>{try{await H.login(c),n(f=>({...f,authenticated:!0})),e(!0,c)}catch(f){throw f}},i=()=>{H.logout(),n(c=>({...c,authenticated:!1})),e(!0,null)};if(t.loading)return o.jsx(fo,{children:o.jsx("div",{className:"min-h-screen bg-base-200 flex items-center justify-center",children:o.jsxs("div",{className:"text-center",children:[o.jsx("span",{className:"loading loading-spinner loading-lg text-primary"}),o.jsx("p",{className:"mt-2 text-base-content",children:"加载中..."})]})})});if(t.required&&!t.authenticated)return o.jsx(fo,{children:o.jsx(tx,{onLogin:l})});const a={refreshServerTools:r,onLogout:t.required?i:void 0};return o.jsx(fo,{children:o.jsx(_g,{children:o.jsx(xg,{children:o.jsxs(Ge,{element:o.jsx(Oy,{outletContext:a}),children:[o.jsx(Ge,{index:!0,element:o.jsx(oo,{to:"/dashboard",replace:!0})}),o.jsx(Ge,{path:"dashboard",element:o.jsx(Yy,{})}),o.jsx(Ge,{path:"mcp",element:o.jsx(Fy,{})}),o.jsx(Ge,{path:"mcp/add",element:o.jsx(Vy,{})}),o.jsx(Ge,{path:"mcp/logs",element:o.jsx(Xy,{})}),o.jsx(Ge,{path:"providers",element:o.jsx(Jy,{})}),o.jsx(Ge,{path:"providers/logs",element:o.jsx(Zy,{})}),o.jsx(Ge,{path:"logs",element:o.jsx(oo,{to:"/mcp/logs",replace:!0})}),o.jsx(Ge,{path:"*",element:o.jsx(oo,{to:"/dashboard",replace:!0})})]})})})})}function tx({onLogin:e}){const[t,n]=w.useState(""),[r,s]=w.useState(!1),[l,i]=w.useState(""),a=async c=>{if(c.preventDefault(),!t.trim()){i("请输入访问令牌");return}s(!0),i("");try{await e(t.trim())}catch(f){i(f.message||"登录失败")}finally{s(!1)}};return o.jsx("div",{className:"min-h-screen bg-base-200 flex items-center justify-center py-12 px-4 sm:px-6 lg:px-8",children:o.jsx("div",{className:"max-w-md w-full",children:o.jsxs("div",{className:"card bg-base-100 border border-base-300 shadow-sm rounded-2xl p-8",children:[o.jsxs("div",{className:"text-center mb-8",children:[o.jsx("div",{className:"w-12 h-12 mx-auto rounded-2xl bg-gradient-to-br from-primary to-accent flex items-center justify-center text-primary-content text-2xl shadow-md",children:"🐶"}),o.jsx("h2",{className:"mt-4 text-2xl font-bold text-base-content",children:"AgentDog 身份验证"}),o.jsx("p",{className:"mt-2 text-sm text-base-content/60",children:"请输入你的身份验证令牌以继续"})]}),o.jsxs("form",{className:"space-y-5",onSubmit:a,children:[o.jsxs("div",{children:[o.jsx("label",{htmlFor:"token",className:"sr-only",children:"身份验证令牌"}),o.jsx("input",{id:"token",name:"token",type:"password",required:!0,className:"input input-bordered w-full",placeholder:"请输入身份验证令牌",value:t,onChange:c=>n(c.target.value),disabled:r})]}),l&&o.jsx("div",{className:"alert alert-error",children:l}),o.jsx("div",{children:o.jsx("button",{type:"submit",disabled:r,className:"btn btn-primary w-full",children:r?o.jsxs("div",{className:"flex items-center",children:[o.jsx("span",{className:"loading loading-spinner loading-sm mr-2"}),"登录中..."]}):"登录"})})]})]})})})}go.createRoot(document.getElementById("root")).render(o.jsx(cl.StrictMode,{children:o.jsx(ex,{})}));
|
|
106
|
+
//# sourceMappingURL=index-gdp_c7vR.js.map
|