diff --git a/vite-app/dist/assets/index-CpPWargc.js b/vite-app/dist/assets/index-CpPWargc.js deleted file mode 100644 index 402c97cd..00000000 --- a/vite-app/dist/assets/index-CpPWargc.js +++ /dev/null @@ -1,93 +0,0 @@ -(function(){const l=document.createElement("link").relList;if(l&&l.supports&&l.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))u(o);new MutationObserver(o=>{for(const f of o)if(f.type==="childList")for(const d of f.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&u(d)}).observe(document,{childList:!0,subtree:!0});function r(o){const f={};return o.integrity&&(f.integrity=o.integrity),o.referrerPolicy&&(f.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?f.credentials="include":o.crossOrigin==="anonymous"?f.credentials="omit":f.credentials="same-origin",f}function u(o){if(o.ep)return;o.ep=!0;const f=r(o);fetch(o.href,f)}})();function mg(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Ic={exports:{}},ir={};/** - * @license React - * react-jsx-runtime.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Fm;function w_(){if(Fm)return ir;Fm=1;var n=Symbol.for("react.transitional.element"),l=Symbol.for("react.fragment");function r(u,o,f){var d=null;if(f!==void 0&&(d=""+f),o.key!==void 0&&(d=""+o.key),"key"in o){f={};for(var v in o)v!=="key"&&(f[v]=o[v])}else f=o;return o=f.ref,{$$typeof:n,type:u,key:d,ref:o!==void 0?o:null,props:f}}return ir.Fragment=l,ir.jsx=r,ir.jsxs=r,ir}var Wm;function A_(){return Wm||(Wm=1,Ic.exports=w_()),Ic.exports}var y=A_(),ef={exports:{}},fe={};/** - * @license React - * react.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Im;function T_(){if(Im)return fe;Im=1;var n=Symbol.for("react.transitional.element"),l=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),u=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),f=Symbol.for("react.consumer"),d=Symbol.for("react.context"),v=Symbol.for("react.forward_ref"),m=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),b=Symbol.for("react.lazy"),x=Symbol.iterator;function O(S){return S===null||typeof S!="object"?null:(S=x&&S[x]||S["@@iterator"],typeof S=="function"?S:null)}var C={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},k=Object.assign,L={};function G(S,$,J){this.props=S,this.context=$,this.refs=L,this.updater=J||C}G.prototype.isReactComponent={},G.prototype.setState=function(S,$){if(typeof S!="object"&&typeof S!="function"&&S!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,S,$,"setState")},G.prototype.forceUpdate=function(S){this.updater.enqueueForceUpdate(this,S,"forceUpdate")};function j(){}j.prototype=G.prototype;function H(S,$,J){this.props=S,this.context=$,this.refs=L,this.updater=J||C}var V=H.prototype=new j;V.constructor=H,k(V,G.prototype),V.isPureReactComponent=!0;var X=Array.isArray,K={H:null,A:null,T:null,S:null,V:null},ce=Object.prototype.hasOwnProperty;function pe(S,$,J,P,q,le){return J=le.ref,{$$typeof:n,type:S,key:$,ref:J!==void 0?J:null,props:le}}function we(S,$){return pe(S.type,$,void 0,void 0,void 0,S.props)}function ae(S){return typeof S=="object"&&S!==null&&S.$$typeof===n}function Ce(S){var $={"=":"=0",":":"=2"};return"$"+S.replace(/[=:]/g,function(J){return $[J]})}var Fe=/\/+/g;function He(S,$){return typeof S=="object"&&S!==null&&S.key!=null?Ce(""+S.key):$.toString(36)}function At(){}function dn(S){switch(S.status){case"fulfilled":return S.value;case"rejected":throw S.reason;default:switch(typeof S.status=="string"?S.then(At,At):(S.status="pending",S.then(function($){S.status==="pending"&&(S.status="fulfilled",S.value=$)},function($){S.status==="pending"&&(S.status="rejected",S.reason=$)})),S.status){case"fulfilled":return S.value;case"rejected":throw S.reason}}throw S}function Ve(S,$,J,P,q){var le=typeof S;(le==="undefined"||le==="boolean")&&(S=null);var ne=!1;if(S===null)ne=!0;else switch(le){case"bigint":case"string":case"number":ne=!0;break;case"object":switch(S.$$typeof){case n:case l:ne=!0;break;case b:return ne=S._init,Ve(ne(S._payload),$,J,P,q)}}if(ne)return q=q(S),ne=P===""?"."+He(S,0):P,X(q)?(J="",ne!=null&&(J=ne.replace(Fe,"$&/")+"/"),Ve(q,$,J,"",function(Ht){return Ht})):q!=null&&(ae(q)&&(q=we(q,J+(q.key==null||S&&S.key===q.key?"":(""+q.key).replace(Fe,"$&/")+"/")+ne)),$.push(q)),1;ne=0;var gt=P===""?".":P+":";if(X(S))for(var Ze=0;Ze>>1,S=D[be];if(0>>1;be<$;){var J=2*(be+1)-1,P=D[J],q=J+1,le=D[q];if(0>o(P,ie))qo(le,P)?(D[be]=le,D[q]=ie,be=q):(D[be]=P,D[J]=ie,be=J);else if(qo(le,ie))D[be]=le,D[q]=ie,be=q;else break e}}return Q}function o(D,Q){var ie=D.sortIndex-Q.sortIndex;return ie!==0?ie:D.id-Q.id}if(n.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var f=performance;n.unstable_now=function(){return f.now()}}else{var d=Date,v=d.now();n.unstable_now=function(){return d.now()-v}}var m=[],p=[],b=1,x=null,O=3,C=!1,k=!1,L=!1,G=!1,j=typeof setTimeout=="function"?setTimeout:null,H=typeof clearTimeout=="function"?clearTimeout:null,V=typeof setImmediate<"u"?setImmediate:null;function X(D){for(var Q=r(p);Q!==null;){if(Q.callback===null)u(p);else if(Q.startTime<=D)u(p),Q.sortIndex=Q.expirationTime,l(m,Q);else break;Q=r(p)}}function K(D){if(L=!1,X(D),!k)if(r(m)!==null)k=!0,ce||(ce=!0,He());else{var Q=r(p);Q!==null&&Ve(K,Q.startTime-D)}}var ce=!1,pe=-1,we=5,ae=-1;function Ce(){return G?!0:!(n.unstable_now()-aeD&&Ce());){var be=x.callback;if(typeof be=="function"){x.callback=null,O=x.priorityLevel;var S=be(x.expirationTime<=D);if(D=n.unstable_now(),typeof S=="function"){x.callback=S,X(D),Q=!0;break t}x===r(m)&&u(m),X(D)}else u(m);x=r(m)}if(x!==null)Q=!0;else{var $=r(p);$!==null&&Ve(K,$.startTime-D),Q=!1}}break e}finally{x=null,O=ie,C=!1}Q=void 0}}finally{Q?He():ce=!1}}}var He;if(typeof V=="function")He=function(){V(Fe)};else if(typeof MessageChannel<"u"){var At=new MessageChannel,dn=At.port2;At.port1.onmessage=Fe,He=function(){dn.postMessage(null)}}else He=function(){j(Fe,0)};function Ve(D,Q){pe=j(function(){D(n.unstable_now())},Q)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(D){D.callback=null},n.unstable_forceFrameRate=function(D){0>D||125be?(D.sortIndex=ie,l(p,D),r(m)===null&&D===r(p)&&(L?(H(pe),pe=-1):L=!0,Ve(K,ie-be))):(D.sortIndex=S,l(m,D),k||C||(k=!0,ce||(ce=!0,He()))),D},n.unstable_shouldYield=Ce,n.unstable_wrapCallback=function(D){var Q=O;return function(){var ie=O;O=Q;try{return D.apply(this,arguments)}finally{O=ie}}}}(af)),af}var np;function z_(){return np||(np=1,nf.exports=R_()),nf.exports}var lf={exports:{}},dt={};/** - * @license React - * react-dom.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var ap;function N_(){if(ap)return dt;ap=1;var n=Eo();function l(m){var p="https://react.dev/errors/"+m;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(l){console.error(l)}}return n(),lf.exports=N_(),lf.exports}/** - * @license React - * react-dom-client.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var ip;function j_(){if(ip)return rr;ip=1;var n=z_(),l=Eo(),r=pg();function u(e){var t="https://react.dev/errors/"+e;if(1S||(e.current=be[S],be[S]=null,S--)}function P(e,t){S++,be[S]=e.current,e.current=t}var q=$(null),le=$(null),ne=$(null),gt=$(null);function Ze(e,t){switch(P(ne,t),P(le,e),P(q,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?wm(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=wm(t),e=Am(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}J(q),P(q,e)}function Ht(){J(q),J(le),J(ne)}function ri(e){e.memoizedState!==null&&P(gt,e);var t=q.current,a=Am(t,e.type);t!==a&&(P(le,e),P(q,a))}function rl(e){le.current===e&&(J(q),J(le)),gt.current===e&&(J(gt),er._currentValue=ie)}var Fn=Object.prototype.hasOwnProperty,Wn=n.unstable_scheduleCallback,ui=n.unstable_cancelCallback,ld=n.unstable_shouldYield,lb=n.unstable_requestPaint,hn=n.unstable_now,ib=n.unstable_getCurrentPriorityLevel,id=n.unstable_ImmediatePriority,rd=n.unstable_UserBlockingPriority,Rr=n.unstable_NormalPriority,rb=n.unstable_LowPriority,ud=n.unstable_IdlePriority,ub=n.log,ob=n.unstable_setDisableYieldValue,oi=null,Tt=null;function In(e){if(typeof ub=="function"&&ob(e),Tt&&typeof Tt.setStrictMode=="function")try{Tt.setStrictMode(oi,e)}catch{}}var Rt=Math.clz32?Math.clz32:fb,sb=Math.log,cb=Math.LN2;function fb(e){return e>>>=0,e===0?32:31-(sb(e)/cb|0)|0}var zr=256,Nr=4194304;function za(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function jr(e,t,a){var i=e.pendingLanes;if(i===0)return 0;var s=0,c=e.suspendedLanes,h=e.pingedLanes;e=e.warmLanes;var g=i&134217727;return g!==0?(i=g&~c,i!==0?s=za(i):(h&=g,h!==0?s=za(h):a||(a=g&~e,a!==0&&(s=za(a))))):(g=i&~c,g!==0?s=za(g):h!==0?s=za(h):a||(a=i&~e,a!==0&&(s=za(a)))),s===0?0:t!==0&&t!==s&&(t&c)===0&&(c=s&-s,a=t&-t,c>=a||c===32&&(a&4194048)!==0)?t:s}function si(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function db(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function od(){var e=zr;return zr<<=1,(zr&4194048)===0&&(zr=256),e}function sd(){var e=Nr;return Nr<<=1,(Nr&62914560)===0&&(Nr=4194304),e}function Vo(e){for(var t=[],a=0;31>a;a++)t.push(e);return t}function ci(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function hb(e,t,a,i,s,c){var h=e.pendingLanes;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=a,e.entangledLanes&=a,e.errorRecoveryDisabledLanes&=a,e.shellSuspendCounter=0;var g=e.entanglements,_=e.expirationTimes,R=e.hiddenUpdates;for(a=h&~a;0)":-1s||_[i]!==R[s]){var M=` -`+_[i].replace(" at new "," at ");return e.displayName&&M.includes("")&&(M=M.replace("",e.displayName)),M}while(1<=i&&0<=s);break}}}finally{Qo=!1,Error.prepareStackTrace=a}return(a=e?e.displayName||e.name:"")?dl(a):""}function bb(e){switch(e.tag){case 26:case 27:case 5:return dl(e.type);case 16:return dl("Lazy");case 13:return dl("Suspense");case 19:return dl("SuspenseList");case 0:case 15:return Po(e.type,!1);case 11:return Po(e.type.render,!1);case 1:return Po(e.type,!0);case 31:return dl("Activity");default:return""}}function bd(e){try{var t="";do t+=bb(e),e=e.return;while(e);return t}catch(a){return` -Error generating stack: `+a.message+` -`+a.stack}}function Vt(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function _d(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function _b(e){var t=_d(e)?"checked":"value",a=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),i=""+e[t];if(!e.hasOwnProperty(t)&&typeof a<"u"&&typeof a.get=="function"&&typeof a.set=="function"){var s=a.get,c=a.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(h){i=""+h,c.call(this,h)}}),Object.defineProperty(e,t,{enumerable:a.enumerable}),{getValue:function(){return i},setValue:function(h){i=""+h},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Mr(e){e._valueTracker||(e._valueTracker=_b(e))}function Sd(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var a=t.getValue(),i="";return e&&(i=_d(e)?e.checked?"true":"false":e.value),e=i,e!==a?(t.setValue(e),!0):!1}function Ur(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var Sb=/[\n"\\]/g;function qt(e){return e.replace(Sb,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function Jo(e,t,a,i,s,c,h,g){e.name="",h!=null&&typeof h!="function"&&typeof h!="symbol"&&typeof h!="boolean"?e.type=h:e.removeAttribute("type"),t!=null?h==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+Vt(t)):e.value!==""+Vt(t)&&(e.value=""+Vt(t)):h!=="submit"&&h!=="reset"||e.removeAttribute("value"),t!=null?Fo(e,h,Vt(t)):a!=null?Fo(e,h,Vt(a)):i!=null&&e.removeAttribute("value"),s==null&&c!=null&&(e.defaultChecked=!!c),s!=null&&(e.checked=s&&typeof s!="function"&&typeof s!="symbol"),g!=null&&typeof g!="function"&&typeof g!="symbol"&&typeof g!="boolean"?e.name=""+Vt(g):e.removeAttribute("name")}function xd(e,t,a,i,s,c,h,g){if(c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"&&(e.type=c),t!=null||a!=null){if(!(c!=="submit"&&c!=="reset"||t!=null))return;a=a!=null?""+Vt(a):"",t=t!=null?""+Vt(t):a,g||t===e.value||(e.value=t),e.defaultValue=t}i=i??s,i=typeof i!="function"&&typeof i!="symbol"&&!!i,e.checked=g?e.checked:!!i,e.defaultChecked=!!i,h!=null&&typeof h!="function"&&typeof h!="symbol"&&typeof h!="boolean"&&(e.name=h)}function Fo(e,t,a){t==="number"&&Ur(e.ownerDocument)===e||e.defaultValue===""+a||(e.defaultValue=""+a)}function hl(e,t,a,i){if(e=e.options,t){t={};for(var s=0;s"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),ns=!1;if(zn)try{var vi={};Object.defineProperty(vi,"passive",{get:function(){ns=!0}}),window.addEventListener("test",vi,vi),window.removeEventListener("test",vi,vi)}catch{ns=!1}var ta=null,as=null,Br=null;function zd(){if(Br)return Br;var e,t=as,a=t.length,i,s="value"in ta?ta.value:ta.textContent,c=s.length;for(e=0;e=gi),Ud=" ",Zd=!1;function Bd(e,t){switch(e){case"keyup":return Pb.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Ld(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var gl=!1;function Fb(e,t){switch(e){case"compositionend":return Ld(t);case"keypress":return t.which!==32?null:(Zd=!0,Ud);case"textInput":return e=t.data,e===Ud&&Zd?null:e;default:return null}}function Wb(e,t){if(gl)return e==="compositionend"||!os&&Bd(e,t)?(e=zd(),Br=as=ta=null,gl=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:a,offset:t-e};e=i}e:{for(;a;){if(a.nextSibling){a=a.nextSibling;break e}a=a.parentNode}a=void 0}a=Xd(a)}}function Qd(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Qd(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Pd(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Ur(e.document);t instanceof e.HTMLIFrameElement;){try{var a=typeof t.contentWindow.location.href=="string"}catch{a=!1}if(a)e=t.contentWindow;else break;t=Ur(e.document)}return t}function fs(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var r0=zn&&"documentMode"in document&&11>=document.documentMode,yl=null,ds=null,Si=null,hs=!1;function Jd(e,t,a){var i=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;hs||yl==null||yl!==Ur(i)||(i=yl,"selectionStart"in i&&fs(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),Si&&_i(Si,i)||(Si=i,i=Tu(ds,"onSelect"),0>=h,s-=h,jn=1<<32-Rt(t)+s|a<c?c:8;var h=D.T,g={};D.T=g,Ws(e,!1,t,a);try{var _=s(),R=D.S;if(R!==null&&R(g,_),_!==null&&typeof _=="object"&&typeof _.then=="function"){var M=m0(_,i);Zi(e,t,M,Mt(e))}else Zi(e,t,i,Mt(e))}catch(B){Zi(e,t,{then:function(){},status:"rejected",reason:B},Mt())}finally{Q.p=c,D.T=h}}function _0(){}function Js(e,t,a,i){if(e.tag!==5)throw Error(u(476));var s=Fh(e).queue;Jh(e,s,t,ie,a===null?_0:function(){return Wh(e),a(i)})}function Fh(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:ie,baseState:ie,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Un,lastRenderedState:ie},next:null};var a={};return t.next={memoizedState:a,baseState:a,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Un,lastRenderedState:a},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Wh(e){var t=Fh(e).next.queue;Zi(e,t,{},Mt())}function Fs(){return ft(er)}function Ih(){return Ie().memoizedState}function ev(){return Ie().memoizedState}function S0(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var a=Mt();e=la(a);var i=ia(t,e,a);i!==null&&(Ut(i,t,a),Ni(i,t,a)),t={cache:Ts()},e.payload=t;return}t=t.return}}function x0(e,t,a){var i=Mt();a={lane:i,revertLane:0,action:a,hasEagerState:!1,eagerState:null,next:null},uu(e)?nv(t,a):(a=gs(e,t,a,i),a!==null&&(Ut(a,e,i),av(a,t,i)))}function tv(e,t,a){var i=Mt();Zi(e,t,a,i)}function Zi(e,t,a,i){var s={lane:i,revertLane:0,action:a,hasEagerState:!1,eagerState:null,next:null};if(uu(e))nv(t,s);else{var c=e.alternate;if(e.lanes===0&&(c===null||c.lanes===0)&&(c=t.lastRenderedReducer,c!==null))try{var h=t.lastRenderedState,g=c(h,a);if(s.hasEagerState=!0,s.eagerState=g,zt(g,h))return Gr(e,t,s,0),De===null&&qr(),!1}catch{}finally{}if(a=gs(e,t,s,i),a!==null)return Ut(a,e,i),av(a,t,i),!0}return!1}function Ws(e,t,a,i){if(i={lane:2,revertLane:Nc(),action:i,hasEagerState:!1,eagerState:null,next:null},uu(e)){if(t)throw Error(u(479))}else t=gs(e,a,i,2),t!==null&&Ut(t,e,2)}function uu(e){var t=e.alternate;return e===de||t!==null&&t===de}function nv(e,t){Rl=tu=!0;var a=e.pending;a===null?t.next=t:(t.next=a.next,a.next=t),e.pending=t}function av(e,t,a){if((a&4194048)!==0){var i=t.lanes;i&=e.pendingLanes,a|=i,t.lanes=a,fd(e,a)}}var ou={readContext:ft,use:au,useCallback:Pe,useContext:Pe,useEffect:Pe,useImperativeHandle:Pe,useLayoutEffect:Pe,useInsertionEffect:Pe,useMemo:Pe,useReducer:Pe,useRef:Pe,useState:Pe,useDebugValue:Pe,useDeferredValue:Pe,useTransition:Pe,useSyncExternalStore:Pe,useId:Pe,useHostTransitionStatus:Pe,useFormState:Pe,useActionState:Pe,useOptimistic:Pe,useMemoCache:Pe,useCacheRefresh:Pe},lv={readContext:ft,use:au,useCallback:function(e,t){return _t().memoizedState=[e,t===void 0?null:t],e},useContext:ft,useEffect:Hh,useImperativeHandle:function(e,t,a){a=a!=null?a.concat([e]):null,ru(4194308,4,Yh.bind(null,t,e),a)},useLayoutEffect:function(e,t){return ru(4194308,4,e,t)},useInsertionEffect:function(e,t){ru(4,2,e,t)},useMemo:function(e,t){var a=_t();t=t===void 0?null:t;var i=e();if(Va){In(!0);try{e()}finally{In(!1)}}return a.memoizedState=[i,t],i},useReducer:function(e,t,a){var i=_t();if(a!==void 0){var s=a(t);if(Va){In(!0);try{a(t)}finally{In(!1)}}}else s=t;return i.memoizedState=i.baseState=s,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:s},i.queue=e,e=e.dispatch=x0.bind(null,de,e),[i.memoizedState,e]},useRef:function(e){var t=_t();return e={current:e},t.memoizedState=e},useState:function(e){e=Xs(e);var t=e.queue,a=tv.bind(null,de,t);return t.dispatch=a,[e.memoizedState,a]},useDebugValue:Qs,useDeferredValue:function(e,t){var a=_t();return Ps(a,e,t)},useTransition:function(){var e=Xs(!1);return e=Jh.bind(null,de,e.queue,!0,!1),_t().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,a){var i=de,s=_t();if(xe){if(a===void 0)throw Error(u(407));a=a()}else{if(a=t(),De===null)throw Error(u(349));(ge&124)!==0||wh(i,t,a)}s.memoizedState=a;var c={value:a,getSnapshot:t};return s.queue=c,Hh(Th.bind(null,i,c,e),[e]),i.flags|=2048,Nl(9,iu(),Ah.bind(null,i,c,a,t),null),a},useId:function(){var e=_t(),t=De.identifierPrefix;if(xe){var a=Cn,i=jn;a=(i&~(1<<32-Rt(i)-1)).toString(32)+a,t="«"+t+"R"+a,a=nu++,0ue?(it=te,te=null):it=te.sibling;var _e=z(w,te,T[ue],Z);if(_e===null){te===null&&(te=it);break}e&&te&&_e.alternate===null&&t(w,te),E=c(_e,E,ue),he===null?F=_e:he.sibling=_e,he=_e,te=it}if(ue===T.length)return a(w,te),xe&&Za(w,ue),F;if(te===null){for(;ueue?(it=te,te=null):it=te.sibling;var xa=z(w,te,_e.value,Z);if(xa===null){te===null&&(te=it);break}e&&te&&xa.alternate===null&&t(w,te),E=c(xa,E,ue),he===null?F=xa:he.sibling=xa,he=xa,te=it}if(_e.done)return a(w,te),xe&&Za(w,ue),F;if(te===null){for(;!_e.done;ue++,_e=T.next())_e=B(w,_e.value,Z),_e!==null&&(E=c(_e,E,ue),he===null?F=_e:he.sibling=_e,he=_e);return xe&&Za(w,ue),F}for(te=i(te);!_e.done;ue++,_e=T.next())_e=N(te,w,ue,_e.value,Z),_e!==null&&(e&&_e.alternate!==null&&te.delete(_e.key===null?ue:_e.key),E=c(_e,E,ue),he===null?F=_e:he.sibling=_e,he=_e);return e&&te.forEach(function(O_){return t(w,O_)}),xe&&Za(w,ue),F}function Re(w,E,T,Z){if(typeof T=="object"&&T!==null&&T.type===k&&T.key===null&&(T=T.props.children),typeof T=="object"&&T!==null){switch(T.$$typeof){case O:e:{for(var F=T.key;E!==null;){if(E.key===F){if(F=T.type,F===k){if(E.tag===7){a(w,E.sibling),Z=s(E,T.props.children),Z.return=w,w=Z;break e}}else if(E.elementType===F||typeof F=="object"&&F!==null&&F.$$typeof===we&&rv(F)===E.type){a(w,E.sibling),Z=s(E,T.props),Li(Z,T),Z.return=w,w=Z;break e}a(w,E);break}else t(w,E);E=E.sibling}T.type===k?(Z=Ma(T.props.children,w.mode,Z,T.key),Z.return=w,w=Z):(Z=Xr(T.type,T.key,T.props,null,w.mode,Z),Li(Z,T),Z.return=w,w=Z)}return h(w);case C:e:{for(F=T.key;E!==null;){if(E.key===F)if(E.tag===4&&E.stateNode.containerInfo===T.containerInfo&&E.stateNode.implementation===T.implementation){a(w,E.sibling),Z=s(E,T.children||[]),Z.return=w,w=Z;break e}else{a(w,E);break}else t(w,E);E=E.sibling}Z=_s(T,w.mode,Z),Z.return=w,w=Z}return h(w);case we:return F=T._init,T=F(T._payload),Re(w,E,T,Z)}if(Ve(T))return oe(w,E,T,Z);if(He(T)){if(F=He(T),typeof F!="function")throw Error(u(150));return T=F.call(T),re(w,E,T,Z)}if(typeof T.then=="function")return Re(w,E,su(T),Z);if(T.$$typeof===V)return Re(w,E,Jr(w,T),Z);cu(w,T)}return typeof T=="string"&&T!==""||typeof T=="number"||typeof T=="bigint"?(T=""+T,E!==null&&E.tag===6?(a(w,E.sibling),Z=s(E,T),Z.return=w,w=Z):(a(w,E),Z=bs(T,w.mode,Z),Z.return=w,w=Z),h(w)):a(w,E)}return function(w,E,T,Z){try{Bi=0;var F=Re(w,E,T,Z);return jl=null,F}catch(te){if(te===Ri||te===Wr)throw te;var he=Nt(29,te,null,w.mode);return he.lanes=Z,he.return=w,he}finally{}}}var Cl=uv(!0),ov=uv(!1),Qt=$(null),mn=null;function ua(e){var t=e.alternate;P(tt,tt.current&1),P(Qt,e),mn===null&&(t===null||Tl.current!==null||t.memoizedState!==null)&&(mn=e)}function sv(e){if(e.tag===22){if(P(tt,tt.current),P(Qt,e),mn===null){var t=e.alternate;t!==null&&t.memoizedState!==null&&(mn=e)}}else oa()}function oa(){P(tt,tt.current),P(Qt,Qt.current)}function Zn(e){J(Qt),mn===e&&(mn=null),J(tt)}var tt=$(0);function fu(e){for(var t=e;t!==null;){if(t.tag===13){var a=t.memoizedState;if(a!==null&&(a=a.dehydrated,a===null||a.data==="$?"||Vc(a)))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}function Is(e,t,a,i){t=e.memoizedState,a=a(i,t),a=a==null?t:b({},t,a),e.memoizedState=a,e.lanes===0&&(e.updateQueue.baseState=a)}var ec={enqueueSetState:function(e,t,a){e=e._reactInternals;var i=Mt(),s=la(i);s.payload=t,a!=null&&(s.callback=a),t=ia(e,s,i),t!==null&&(Ut(t,e,i),Ni(t,e,i))},enqueueReplaceState:function(e,t,a){e=e._reactInternals;var i=Mt(),s=la(i);s.tag=1,s.payload=t,a!=null&&(s.callback=a),t=ia(e,s,i),t!==null&&(Ut(t,e,i),Ni(t,e,i))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var a=Mt(),i=la(a);i.tag=2,t!=null&&(i.callback=t),t=ia(e,i,a),t!==null&&(Ut(t,e,a),Ni(t,e,a))}};function cv(e,t,a,i,s,c,h){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(i,c,h):t.prototype&&t.prototype.isPureReactComponent?!_i(a,i)||!_i(s,c):!0}function fv(e,t,a,i){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(a,i),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(a,i),t.state!==e&&ec.enqueueReplaceState(t,t.state,null)}function qa(e,t){var a=t;if("ref"in t){a={};for(var i in t)i!=="ref"&&(a[i]=t[i])}if(e=e.defaultProps){a===t&&(a=b({},a));for(var s in e)a[s]===void 0&&(a[s]=e[s])}return a}var du=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)};function dv(e){du(e)}function hv(e){console.error(e)}function vv(e){du(e)}function hu(e,t){try{var a=e.onUncaughtError;a(t.value,{componentStack:t.stack})}catch(i){setTimeout(function(){throw i})}}function mv(e,t,a){try{var i=e.onCaughtError;i(a.value,{componentStack:a.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(s){setTimeout(function(){throw s})}}function tc(e,t,a){return a=la(a),a.tag=3,a.payload={element:null},a.callback=function(){hu(e,t)},a}function pv(e){return e=la(e),e.tag=3,e}function gv(e,t,a,i){var s=a.type.getDerivedStateFromError;if(typeof s=="function"){var c=i.value;e.payload=function(){return s(c)},e.callback=function(){mv(t,a,i)}}var h=a.stateNode;h!==null&&typeof h.componentDidCatch=="function"&&(e.callback=function(){mv(t,a,i),typeof s!="function"&&(va===null?va=new Set([this]):va.add(this));var g=i.stack;this.componentDidCatch(i.value,{componentStack:g!==null?g:""})})}function O0(e,t,a,i,s){if(a.flags|=32768,i!==null&&typeof i=="object"&&typeof i.then=="function"){if(t=a.alternate,t!==null&&wi(t,a,s,!0),a=Qt.current,a!==null){switch(a.tag){case 13:return mn===null?wc():a.alternate===null&&Ke===0&&(Ke=3),a.flags&=-257,a.flags|=65536,a.lanes=s,i===Ns?a.flags|=16384:(t=a.updateQueue,t===null?a.updateQueue=new Set([i]):t.add(i),Tc(e,i,s)),!1;case 22:return a.flags|=65536,i===Ns?a.flags|=16384:(t=a.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([i])},a.updateQueue=t):(a=t.retryQueue,a===null?t.retryQueue=new Set([i]):a.add(i)),Tc(e,i,s)),!1}throw Error(u(435,a.tag))}return Tc(e,i,s),wc(),!1}if(xe)return t=Qt.current,t!==null?((t.flags&65536)===0&&(t.flags|=256),t.flags|=65536,t.lanes=s,i!==Es&&(e=Error(u(422),{cause:i}),Oi(Gt(e,a)))):(i!==Es&&(t=Error(u(423),{cause:i}),Oi(Gt(t,a))),e=e.current.alternate,e.flags|=65536,s&=-s,e.lanes|=s,i=Gt(i,a),s=tc(e.stateNode,i,s),Ds(e,s),Ke!==4&&(Ke=2)),!1;var c=Error(u(520),{cause:i});if(c=Gt(c,a),Yi===null?Yi=[c]:Yi.push(c),Ke!==4&&(Ke=2),t===null)return!0;i=Gt(i,a),a=t;do{switch(a.tag){case 3:return a.flags|=65536,e=s&-s,a.lanes|=e,e=tc(a.stateNode,i,e),Ds(a,e),!1;case 1:if(t=a.type,c=a.stateNode,(a.flags&128)===0&&(typeof t.getDerivedStateFromError=="function"||c!==null&&typeof c.componentDidCatch=="function"&&(va===null||!va.has(c))))return a.flags|=65536,s&=-s,a.lanes|=s,s=pv(s),gv(s,e,a,i),Ds(a,s),!1}a=a.return}while(a!==null);return!1}var yv=Error(u(461)),at=!1;function ut(e,t,a,i){t.child=e===null?ov(t,null,a,i):Cl(t,e.child,a,i)}function bv(e,t,a,i,s){a=a.render;var c=t.ref;if("ref"in i){var h={};for(var g in i)g!=="ref"&&(h[g]=i[g])}else h=i;return ka(t),i=Ls(e,t,a,h,c,s),g=$s(),e!==null&&!at?(ks(e,t,s),Bn(e,t,s)):(xe&&g&&Ss(t),t.flags|=1,ut(e,t,i,s),t.child)}function _v(e,t,a,i,s){if(e===null){var c=a.type;return typeof c=="function"&&!ys(c)&&c.defaultProps===void 0&&a.compare===null?(t.tag=15,t.type=c,Sv(e,t,c,i,s)):(e=Xr(a.type,null,i,t,t.mode,s),e.ref=t.ref,e.return=t,t.child=e)}if(c=e.child,!sc(e,s)){var h=c.memoizedProps;if(a=a.compare,a=a!==null?a:_i,a(h,i)&&e.ref===t.ref)return Bn(e,t,s)}return t.flags|=1,e=Nn(c,i),e.ref=t.ref,e.return=t,t.child=e}function Sv(e,t,a,i,s){if(e!==null){var c=e.memoizedProps;if(_i(c,i)&&e.ref===t.ref)if(at=!1,t.pendingProps=i=c,sc(e,s))(e.flags&131072)!==0&&(at=!0);else return t.lanes=e.lanes,Bn(e,t,s)}return nc(e,t,a,i,s)}function xv(e,t,a){var i=t.pendingProps,s=i.children,c=e!==null?e.memoizedState:null;if(i.mode==="hidden"){if((t.flags&128)!==0){if(i=c!==null?c.baseLanes|a:a,e!==null){for(s=t.child=e.child,c=0;s!==null;)c=c|s.lanes|s.childLanes,s=s.sibling;t.childLanes=c&~i}else t.childLanes=0,t.child=null;return Ev(e,t,i,a)}if((a&536870912)!==0)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&Fr(t,c!==null?c.cachePool:null),c!==null?Sh(t,c):Us(),sv(t);else return t.lanes=t.childLanes=536870912,Ev(e,t,c!==null?c.baseLanes|a:a,a)}else c!==null?(Fr(t,c.cachePool),Sh(t,c),oa(),t.memoizedState=null):(e!==null&&Fr(t,null),Us(),oa());return ut(e,t,s,a),t.child}function Ev(e,t,a,i){var s=zs();return s=s===null?null:{parent:et._currentValue,pool:s},t.memoizedState={baseLanes:a,cachePool:s},e!==null&&Fr(t,null),Us(),sv(t),e!==null&&wi(e,t,i,!0),null}function vu(e,t){var a=t.ref;if(a===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof a!="function"&&typeof a!="object")throw Error(u(284));(e===null||e.ref!==a)&&(t.flags|=4194816)}}function nc(e,t,a,i,s){return ka(t),a=Ls(e,t,a,i,void 0,s),i=$s(),e!==null&&!at?(ks(e,t,s),Bn(e,t,s)):(xe&&i&&Ss(t),t.flags|=1,ut(e,t,a,s),t.child)}function Ov(e,t,a,i,s,c){return ka(t),t.updateQueue=null,a=Eh(t,i,a,s),xh(e),i=$s(),e!==null&&!at?(ks(e,t,c),Bn(e,t,c)):(xe&&i&&Ss(t),t.flags|=1,ut(e,t,a,c),t.child)}function wv(e,t,a,i,s){if(ka(t),t.stateNode===null){var c=xl,h=a.contextType;typeof h=="object"&&h!==null&&(c=ft(h)),c=new a(i,c),t.memoizedState=c.state!==null&&c.state!==void 0?c.state:null,c.updater=ec,t.stateNode=c,c._reactInternals=t,c=t.stateNode,c.props=i,c.state=t.memoizedState,c.refs={},js(t),h=a.contextType,c.context=typeof h=="object"&&h!==null?ft(h):xl,c.state=t.memoizedState,h=a.getDerivedStateFromProps,typeof h=="function"&&(Is(t,a,h,i),c.state=t.memoizedState),typeof a.getDerivedStateFromProps=="function"||typeof c.getSnapshotBeforeUpdate=="function"||typeof c.UNSAFE_componentWillMount!="function"&&typeof c.componentWillMount!="function"||(h=c.state,typeof c.componentWillMount=="function"&&c.componentWillMount(),typeof c.UNSAFE_componentWillMount=="function"&&c.UNSAFE_componentWillMount(),h!==c.state&&ec.enqueueReplaceState(c,c.state,null),Ci(t,i,c,s),ji(),c.state=t.memoizedState),typeof c.componentDidMount=="function"&&(t.flags|=4194308),i=!0}else if(e===null){c=t.stateNode;var g=t.memoizedProps,_=qa(a,g);c.props=_;var R=c.context,M=a.contextType;h=xl,typeof M=="object"&&M!==null&&(h=ft(M));var B=a.getDerivedStateFromProps;M=typeof B=="function"||typeof c.getSnapshotBeforeUpdate=="function",g=t.pendingProps!==g,M||typeof c.UNSAFE_componentWillReceiveProps!="function"&&typeof c.componentWillReceiveProps!="function"||(g||R!==h)&&fv(t,c,i,h),aa=!1;var z=t.memoizedState;c.state=z,Ci(t,i,c,s),ji(),R=t.memoizedState,g||z!==R||aa?(typeof B=="function"&&(Is(t,a,B,i),R=t.memoizedState),(_=aa||cv(t,a,_,i,z,R,h))?(M||typeof c.UNSAFE_componentWillMount!="function"&&typeof c.componentWillMount!="function"||(typeof c.componentWillMount=="function"&&c.componentWillMount(),typeof c.UNSAFE_componentWillMount=="function"&&c.UNSAFE_componentWillMount()),typeof c.componentDidMount=="function"&&(t.flags|=4194308)):(typeof c.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=i,t.memoizedState=R),c.props=i,c.state=R,c.context=h,i=_):(typeof c.componentDidMount=="function"&&(t.flags|=4194308),i=!1)}else{c=t.stateNode,Cs(e,t),h=t.memoizedProps,M=qa(a,h),c.props=M,B=t.pendingProps,z=c.context,R=a.contextType,_=xl,typeof R=="object"&&R!==null&&(_=ft(R)),g=a.getDerivedStateFromProps,(R=typeof g=="function"||typeof c.getSnapshotBeforeUpdate=="function")||typeof c.UNSAFE_componentWillReceiveProps!="function"&&typeof c.componentWillReceiveProps!="function"||(h!==B||z!==_)&&fv(t,c,i,_),aa=!1,z=t.memoizedState,c.state=z,Ci(t,i,c,s),ji();var N=t.memoizedState;h!==B||z!==N||aa||e!==null&&e.dependencies!==null&&Pr(e.dependencies)?(typeof g=="function"&&(Is(t,a,g,i),N=t.memoizedState),(M=aa||cv(t,a,M,i,z,N,_)||e!==null&&e.dependencies!==null&&Pr(e.dependencies))?(R||typeof c.UNSAFE_componentWillUpdate!="function"&&typeof c.componentWillUpdate!="function"||(typeof c.componentWillUpdate=="function"&&c.componentWillUpdate(i,N,_),typeof c.UNSAFE_componentWillUpdate=="function"&&c.UNSAFE_componentWillUpdate(i,N,_)),typeof c.componentDidUpdate=="function"&&(t.flags|=4),typeof c.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof c.componentDidUpdate!="function"||h===e.memoizedProps&&z===e.memoizedState||(t.flags|=4),typeof c.getSnapshotBeforeUpdate!="function"||h===e.memoizedProps&&z===e.memoizedState||(t.flags|=1024),t.memoizedProps=i,t.memoizedState=N),c.props=i,c.state=N,c.context=_,i=M):(typeof c.componentDidUpdate!="function"||h===e.memoizedProps&&z===e.memoizedState||(t.flags|=4),typeof c.getSnapshotBeforeUpdate!="function"||h===e.memoizedProps&&z===e.memoizedState||(t.flags|=1024),i=!1)}return c=i,vu(e,t),i=(t.flags&128)!==0,c||i?(c=t.stateNode,a=i&&typeof a.getDerivedStateFromError!="function"?null:c.render(),t.flags|=1,e!==null&&i?(t.child=Cl(t,e.child,null,s),t.child=Cl(t,null,a,s)):ut(e,t,a,s),t.memoizedState=c.state,e=t.child):e=Bn(e,t,s),e}function Av(e,t,a,i){return Ei(),t.flags|=256,ut(e,t,a,i),t.child}var ac={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function lc(e){return{baseLanes:e,cachePool:hh()}}function ic(e,t,a){return e=e!==null?e.childLanes&~a:0,t&&(e|=Pt),e}function Tv(e,t,a){var i=t.pendingProps,s=!1,c=(t.flags&128)!==0,h;if((h=c)||(h=e!==null&&e.memoizedState===null?!1:(tt.current&2)!==0),h&&(s=!0,t.flags&=-129),h=(t.flags&32)!==0,t.flags&=-33,e===null){if(xe){if(s?ua(t):oa(),xe){var g=Xe,_;if(_=g){e:{for(_=g,g=vn;_.nodeType!==8;){if(!g){g=null;break e}if(_=an(_.nextSibling),_===null){g=null;break e}}g=_}g!==null?(t.memoizedState={dehydrated:g,treeContext:Ua!==null?{id:jn,overflow:Cn}:null,retryLane:536870912,hydrationErrors:null},_=Nt(18,null,null,0),_.stateNode=g,_.return=t,t.child=_,vt=t,Xe=null,_=!0):_=!1}_||La(t)}if(g=t.memoizedState,g!==null&&(g=g.dehydrated,g!==null))return Vc(g)?t.lanes=32:t.lanes=536870912,null;Zn(t)}return g=i.children,i=i.fallback,s?(oa(),s=t.mode,g=mu({mode:"hidden",children:g},s),i=Ma(i,s,a,null),g.return=t,i.return=t,g.sibling=i,t.child=g,s=t.child,s.memoizedState=lc(a),s.childLanes=ic(e,h,a),t.memoizedState=ac,i):(ua(t),rc(t,g))}if(_=e.memoizedState,_!==null&&(g=_.dehydrated,g!==null)){if(c)t.flags&256?(ua(t),t.flags&=-257,t=uc(e,t,a)):t.memoizedState!==null?(oa(),t.child=e.child,t.flags|=128,t=null):(oa(),s=i.fallback,g=t.mode,i=mu({mode:"visible",children:i.children},g),s=Ma(s,g,a,null),s.flags|=2,i.return=t,s.return=t,i.sibling=s,t.child=i,Cl(t,e.child,null,a),i=t.child,i.memoizedState=lc(a),i.childLanes=ic(e,h,a),t.memoizedState=ac,t=s);else if(ua(t),Vc(g)){if(h=g.nextSibling&&g.nextSibling.dataset,h)var R=h.dgst;h=R,i=Error(u(419)),i.stack="",i.digest=h,Oi({value:i,source:null,stack:null}),t=uc(e,t,a)}else if(at||wi(e,t,a,!1),h=(a&e.childLanes)!==0,at||h){if(h=De,h!==null&&(i=a&-a,i=(i&42)!==0?1:qo(i),i=(i&(h.suspendedLanes|a))!==0?0:i,i!==0&&i!==_.retryLane))throw _.retryLane=i,Sl(e,i),Ut(h,e,i),yv;g.data==="$?"||wc(),t=uc(e,t,a)}else g.data==="$?"?(t.flags|=192,t.child=e.child,t=null):(e=_.treeContext,Xe=an(g.nextSibling),vt=t,xe=!0,Ba=null,vn=!1,e!==null&&(Xt[Kt++]=jn,Xt[Kt++]=Cn,Xt[Kt++]=Ua,jn=e.id,Cn=e.overflow,Ua=t),t=rc(t,i.children),t.flags|=4096);return t}return s?(oa(),s=i.fallback,g=t.mode,_=e.child,R=_.sibling,i=Nn(_,{mode:"hidden",children:i.children}),i.subtreeFlags=_.subtreeFlags&65011712,R!==null?s=Nn(R,s):(s=Ma(s,g,a,null),s.flags|=2),s.return=t,i.return=t,i.sibling=s,t.child=i,i=s,s=t.child,g=e.child.memoizedState,g===null?g=lc(a):(_=g.cachePool,_!==null?(R=et._currentValue,_=_.parent!==R?{parent:R,pool:R}:_):_=hh(),g={baseLanes:g.baseLanes|a,cachePool:_}),s.memoizedState=g,s.childLanes=ic(e,h,a),t.memoizedState=ac,i):(ua(t),a=e.child,e=a.sibling,a=Nn(a,{mode:"visible",children:i.children}),a.return=t,a.sibling=null,e!==null&&(h=t.deletions,h===null?(t.deletions=[e],t.flags|=16):h.push(e)),t.child=a,t.memoizedState=null,a)}function rc(e,t){return t=mu({mode:"visible",children:t},e.mode),t.return=e,e.child=t}function mu(e,t){return e=Nt(22,e,null,t),e.lanes=0,e.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},e}function uc(e,t,a){return Cl(t,e.child,null,a),e=rc(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Rv(e,t,a){e.lanes|=t;var i=e.alternate;i!==null&&(i.lanes|=t),ws(e.return,t,a)}function oc(e,t,a,i,s){var c=e.memoizedState;c===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:i,tail:a,tailMode:s}:(c.isBackwards=t,c.rendering=null,c.renderingStartTime=0,c.last=i,c.tail=a,c.tailMode=s)}function zv(e,t,a){var i=t.pendingProps,s=i.revealOrder,c=i.tail;if(ut(e,t,i.children,a),i=tt.current,(i&2)!==0)i=i&1|2,t.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Rv(e,a,t);else if(e.tag===19)Rv(e,a,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}i&=1}switch(P(tt,i),s){case"forwards":for(a=t.child,s=null;a!==null;)e=a.alternate,e!==null&&fu(e)===null&&(s=a),a=a.sibling;a=s,a===null?(s=t.child,t.child=null):(s=a.sibling,a.sibling=null),oc(t,!1,s,a,c);break;case"backwards":for(a=null,s=t.child,t.child=null;s!==null;){if(e=s.alternate,e!==null&&fu(e)===null){t.child=s;break}e=s.sibling,s.sibling=a,a=s,s=e}oc(t,!0,a,null,c);break;case"together":oc(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Bn(e,t,a){if(e!==null&&(t.dependencies=e.dependencies),ha|=t.lanes,(a&t.childLanes)===0)if(e!==null){if(wi(e,t,a,!1),(a&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(u(153));if(t.child!==null){for(e=t.child,a=Nn(e,e.pendingProps),t.child=a,a.return=t;e.sibling!==null;)e=e.sibling,a=a.sibling=Nn(e,e.pendingProps),a.return=t;a.sibling=null}return t.child}function sc(e,t){return(e.lanes&t)!==0?!0:(e=e.dependencies,!!(e!==null&&Pr(e)))}function w0(e,t,a){switch(t.tag){case 3:Ze(t,t.stateNode.containerInfo),na(t,et,e.memoizedState.cache),Ei();break;case 27:case 5:ri(t);break;case 4:Ze(t,t.stateNode.containerInfo);break;case 10:na(t,t.type,t.memoizedProps.value);break;case 13:var i=t.memoizedState;if(i!==null)return i.dehydrated!==null?(ua(t),t.flags|=128,null):(a&t.child.childLanes)!==0?Tv(e,t,a):(ua(t),e=Bn(e,t,a),e!==null?e.sibling:null);ua(t);break;case 19:var s=(e.flags&128)!==0;if(i=(a&t.childLanes)!==0,i||(wi(e,t,a,!1),i=(a&t.childLanes)!==0),s){if(i)return zv(e,t,a);t.flags|=128}if(s=t.memoizedState,s!==null&&(s.rendering=null,s.tail=null,s.lastEffect=null),P(tt,tt.current),i)break;return null;case 22:case 23:return t.lanes=0,xv(e,t,a);case 24:na(t,et,e.memoizedState.cache)}return Bn(e,t,a)}function Nv(e,t,a){if(e!==null)if(e.memoizedProps!==t.pendingProps)at=!0;else{if(!sc(e,a)&&(t.flags&128)===0)return at=!1,w0(e,t,a);at=(e.flags&131072)!==0}else at=!1,xe&&(t.flags&1048576)!==0&&rh(t,Qr,t.index);switch(t.lanes=0,t.tag){case 16:e:{e=t.pendingProps;var i=t.elementType,s=i._init;if(i=s(i._payload),t.type=i,typeof i=="function")ys(i)?(e=qa(i,e),t.tag=1,t=wv(null,t,i,e,a)):(t.tag=0,t=nc(null,t,i,e,a));else{if(i!=null){if(s=i.$$typeof,s===X){t.tag=11,t=bv(null,t,i,e,a);break e}else if(s===pe){t.tag=14,t=_v(null,t,i,e,a);break e}}throw t=dn(i)||i,Error(u(306,t,""))}}return t;case 0:return nc(e,t,t.type,t.pendingProps,a);case 1:return i=t.type,s=qa(i,t.pendingProps),wv(e,t,i,s,a);case 3:e:{if(Ze(t,t.stateNode.containerInfo),e===null)throw Error(u(387));i=t.pendingProps;var c=t.memoizedState;s=c.element,Cs(e,t),Ci(t,i,null,a);var h=t.memoizedState;if(i=h.cache,na(t,et,i),i!==c.cache&&As(t,[et],a,!0),ji(),i=h.element,c.isDehydrated)if(c={element:i,isDehydrated:!1,cache:h.cache},t.updateQueue.baseState=c,t.memoizedState=c,t.flags&256){t=Av(e,t,i,a);break e}else if(i!==s){s=Gt(Error(u(424)),t),Oi(s),t=Av(e,t,i,a);break e}else{switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName==="HTML"?e.ownerDocument.body:e}for(Xe=an(e.firstChild),vt=t,xe=!0,Ba=null,vn=!0,a=ov(t,null,i,a),t.child=a;a;)a.flags=a.flags&-3|4096,a=a.sibling}else{if(Ei(),i===s){t=Bn(e,t,a);break e}ut(e,t,i,a)}t=t.child}return t;case 26:return vu(e,t),e===null?(a=Mm(t.type,null,t.pendingProps,null))?t.memoizedState=a:xe||(a=t.type,e=t.pendingProps,i=zu(ne.current).createElement(a),i[ct]=t,i[yt]=e,st(i,a,e),nt(i),t.stateNode=i):t.memoizedState=Mm(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return ri(t),e===null&&xe&&(i=t.stateNode=jm(t.type,t.pendingProps,ne.current),vt=t,vn=!0,s=Xe,ga(t.type)?(qc=s,Xe=an(i.firstChild)):Xe=s),ut(e,t,t.pendingProps.children,a),vu(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&xe&&((s=i=Xe)&&(i=I0(i,t.type,t.pendingProps,vn),i!==null?(t.stateNode=i,vt=t,Xe=an(i.firstChild),vn=!1,s=!0):s=!1),s||La(t)),ri(t),s=t.type,c=t.pendingProps,h=e!==null?e.memoizedProps:null,i=c.children,$c(s,c)?i=null:h!==null&&$c(s,h)&&(t.flags|=32),t.memoizedState!==null&&(s=Ls(e,t,g0,null,null,a),er._currentValue=s),vu(e,t),ut(e,t,i,a),t.child;case 6:return e===null&&xe&&((e=a=Xe)&&(a=e_(a,t.pendingProps,vn),a!==null?(t.stateNode=a,vt=t,Xe=null,e=!0):e=!1),e||La(t)),null;case 13:return Tv(e,t,a);case 4:return Ze(t,t.stateNode.containerInfo),i=t.pendingProps,e===null?t.child=Cl(t,null,i,a):ut(e,t,i,a),t.child;case 11:return bv(e,t,t.type,t.pendingProps,a);case 7:return ut(e,t,t.pendingProps,a),t.child;case 8:return ut(e,t,t.pendingProps.children,a),t.child;case 12:return ut(e,t,t.pendingProps.children,a),t.child;case 10:return i=t.pendingProps,na(t,t.type,i.value),ut(e,t,i.children,a),t.child;case 9:return s=t.type._context,i=t.pendingProps.children,ka(t),s=ft(s),i=i(s),t.flags|=1,ut(e,t,i,a),t.child;case 14:return _v(e,t,t.type,t.pendingProps,a);case 15:return Sv(e,t,t.type,t.pendingProps,a);case 19:return zv(e,t,a);case 31:return i=t.pendingProps,a=t.mode,i={mode:i.mode,children:i.children},e===null?(a=mu(i,a),a.ref=t.ref,t.child=a,a.return=t,t=a):(a=Nn(e.child,i),a.ref=t.ref,t.child=a,a.return=t,t=a),t;case 22:return xv(e,t,a);case 24:return ka(t),i=ft(et),e===null?(s=zs(),s===null&&(s=De,c=Ts(),s.pooledCache=c,c.refCount++,c!==null&&(s.pooledCacheLanes|=a),s=c),t.memoizedState={parent:i,cache:s},js(t),na(t,et,s)):((e.lanes&a)!==0&&(Cs(e,t),Ci(t,null,null,a),ji()),s=e.memoizedState,c=t.memoizedState,s.parent!==i?(s={parent:i,cache:i},t.memoizedState=s,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=s),na(t,et,i)):(i=c.cache,na(t,et,i),i!==s.cache&&As(t,[et],a,!0))),ut(e,t,t.pendingProps.children,a),t.child;case 29:throw t.pendingProps}throw Error(u(156,t.tag))}function Ln(e){e.flags|=4}function jv(e,t){if(t.type!=="stylesheet"||(t.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!$m(t)){if(t=Qt.current,t!==null&&((ge&4194048)===ge?mn!==null:(ge&62914560)!==ge&&(ge&536870912)===0||t!==mn))throw zi=Ns,vh;e.flags|=8192}}function pu(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag!==22?sd():536870912,e.lanes|=t,Zl|=t)}function $i(e,t){if(!xe)switch(e.tailMode){case"hidden":t=e.tail;for(var a=null;t!==null;)t.alternate!==null&&(a=t),t=t.sibling;a===null?e.tail=null:a.sibling=null;break;case"collapsed":a=e.tail;for(var i=null;a!==null;)a.alternate!==null&&(i=a),a=a.sibling;i===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:i.sibling=null}}function qe(e){var t=e.alternate!==null&&e.alternate.child===e.child,a=0,i=0;if(t)for(var s=e.child;s!==null;)a|=s.lanes|s.childLanes,i|=s.subtreeFlags&65011712,i|=s.flags&65011712,s.return=e,s=s.sibling;else for(s=e.child;s!==null;)a|=s.lanes|s.childLanes,i|=s.subtreeFlags,i|=s.flags,s.return=e,s=s.sibling;return e.subtreeFlags|=i,e.childLanes=a,t}function A0(e,t,a){var i=t.pendingProps;switch(xs(t),t.tag){case 31:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return qe(t),null;case 1:return qe(t),null;case 3:return a=t.stateNode,i=null,e!==null&&(i=e.memoizedState.cache),t.memoizedState.cache!==i&&(t.flags|=2048),Mn(et),Ht(),a.pendingContext&&(a.context=a.pendingContext,a.pendingContext=null),(e===null||e.child===null)&&(xi(t)?Ln(t):e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,sh())),qe(t),null;case 26:return a=t.memoizedState,e===null?(Ln(t),a!==null?(qe(t),jv(t,a)):(qe(t),t.flags&=-16777217)):a?a!==e.memoizedState?(Ln(t),qe(t),jv(t,a)):(qe(t),t.flags&=-16777217):(e.memoizedProps!==i&&Ln(t),qe(t),t.flags&=-16777217),null;case 27:rl(t),a=ne.current;var s=t.type;if(e!==null&&t.stateNode!=null)e.memoizedProps!==i&&Ln(t);else{if(!i){if(t.stateNode===null)throw Error(u(166));return qe(t),null}e=q.current,xi(t)?uh(t):(e=jm(s,i,a),t.stateNode=e,Ln(t))}return qe(t),null;case 5:if(rl(t),a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==i&&Ln(t);else{if(!i){if(t.stateNode===null)throw Error(u(166));return qe(t),null}if(e=q.current,xi(t))uh(t);else{switch(s=zu(ne.current),e){case 1:e=s.createElementNS("http://www.w3.org/2000/svg",a);break;case 2:e=s.createElementNS("http://www.w3.org/1998/Math/MathML",a);break;default:switch(a){case"svg":e=s.createElementNS("http://www.w3.org/2000/svg",a);break;case"math":e=s.createElementNS("http://www.w3.org/1998/Math/MathML",a);break;case"script":e=s.createElement("div"),e.innerHTML=" - + +
diff --git a/vite-app/src/GlobalState.tsx b/vite-app/src/GlobalState.tsx index 4d7f6de1..94f760c5 100644 --- a/vite-app/src/GlobalState.tsx +++ b/vite-app/src/GlobalState.tsx @@ -11,11 +11,10 @@ const DEFAULT_PIVOT_CONFIG: PivotConfig = { selectedColumnFields: ["$.input_metadata.completion_params.model"], selectedValueField: "$.evaluation_result.score", selectedAggregator: "avg", - filters: [], }; -// Default table filter configuration -const DEFAULT_TABLE_FILTER_CONFIG: FilterGroup[] = []; +// Default filter configuration +const DEFAULT_FILTER_CONFIG: FilterGroup[] = []; // Default pagination configuration const DEFAULT_PAGINATION_CONFIG = { @@ -31,10 +30,10 @@ export class GlobalState { expandedRows: Record = {}; // Pivot configuration pivotConfig: PivotConfig; - // Table filter configuration - tableFilterConfig: FilterGroup[]; - // Debounced, actually applied table filter configuration (for performance while typing) - appliedTableFilterConfig: FilterGroup[]; + // Unified filter configuration for both pivot and table views + filterConfig: FilterGroup[]; + // Debounced, actually applied filter configuration (for performance while typing) + appliedFilterConfig: FilterGroup[]; // Pagination configuration currentPage: number; pageSize: number; @@ -49,19 +48,18 @@ export class GlobalState { // Debounce timers for localStorage saves and filter application private savePivotConfigTimer: ReturnType | null = null; - private saveTableFilterConfigTimer: ReturnType | null = - null; + private saveFilterConfigTimer: ReturnType | null = null; private savePaginationConfigTimer: ReturnType | null = null; - private applyTableFilterTimer: ReturnType | null = null; + private applyFilterTimer: ReturnType | null = null; constructor() { // Load pivot config from localStorage or use defaults this.pivotConfig = this.loadPivotConfig(); - // Load table filter config from localStorage or use defaults - this.tableFilterConfig = this.loadTableFilterConfig(); + // Load filter config from localStorage or use defaults + this.filterConfig = this.loadFilterConfig(); // Initialize applied filter config with current value - this.appliedTableFilterConfig = this.tableFilterConfig.slice(); + this.appliedFilterConfig = this.filterConfig.slice(); // Load pagination config from localStorage or use defaults const paginationConfig = this.loadPaginationConfig(); this.currentPage = paginationConfig.currentPage; @@ -84,21 +82,18 @@ export class GlobalState { return { ...DEFAULT_PIVOT_CONFIG }; } - // Load table filter configuration from localStorage - private loadTableFilterConfig(): FilterGroup[] { + // Load filter configuration from localStorage + private loadFilterConfig(): FilterGroup[] { try { - const stored = localStorage.getItem("tableFilterConfig"); + const stored = localStorage.getItem("filterConfig"); if (stored) { const parsed = JSON.parse(stored); - return Array.isArray(parsed) ? parsed : DEFAULT_TABLE_FILTER_CONFIG; + return Array.isArray(parsed) ? parsed : DEFAULT_FILTER_CONFIG; } } catch (error) { - console.warn( - "Failed to load table filter config from localStorage:", - error - ); + console.warn("Failed to load filter config from localStorage:", error); } - return DEFAULT_TABLE_FILTER_CONFIG; + return DEFAULT_FILTER_CONFIG; } // Load pagination configuration from localStorage @@ -116,7 +111,7 @@ export class GlobalState { error ); } - return { ...DEFAULT_PAGINATION_CONFIG }; + return DEFAULT_PAGINATION_CONFIG; } // Save pivot configuration to localStorage @@ -131,21 +126,14 @@ export class GlobalState { }, 200); } - // Save table filter configuration to localStorage - private saveTableFilterConfig() { - if (this.saveTableFilterConfigTimer) - clearTimeout(this.saveTableFilterConfigTimer); - this.saveTableFilterConfigTimer = setTimeout(() => { + // Save filter configuration to localStorage + private saveFilterConfig() { + if (this.saveFilterConfigTimer) clearTimeout(this.saveFilterConfigTimer); + this.saveFilterConfigTimer = setTimeout(() => { try { - localStorage.setItem( - "tableFilterConfig", - JSON.stringify(this.tableFilterConfig) - ); + localStorage.setItem("filterConfig", JSON.stringify(this.filterConfig)); } catch (error) { - console.warn( - "Failed to save table filter config to localStorage:", - error - ); + console.warn("Failed to save filter config to localStorage:", error); } }, 200); } @@ -178,15 +166,15 @@ export class GlobalState { this.savePivotConfig(); } - // Update table filter configuration and save to localStorage - updateTableFilterConfig(filters: FilterGroup[]) { - this.tableFilterConfig = filters; - this.saveTableFilterConfig(); + // Update filter configuration and save to localStorage + updateFilterConfig(filters: FilterGroup[]) { + this.filterConfig = filters; + this.saveFilterConfig(); // Debounce application of filters to avoid re-filtering on every keystroke - if (this.applyTableFilterTimer) clearTimeout(this.applyTableFilterTimer); - this.applyTableFilterTimer = setTimeout(() => { - this.appliedTableFilterConfig = this.tableFilterConfig.slice(); + if (this.applyFilterTimer) clearTimeout(this.applyFilterTimer); + this.applyFilterTimer = setTimeout(() => { + this.appliedFilterConfig = this.filterConfig.slice(); }, 150); } @@ -205,18 +193,15 @@ export class GlobalState { // Reset pivot configuration to defaults resetPivotConfig() { - this.pivotConfig = { - ...DEFAULT_PIVOT_CONFIG, - filters: [], // Ensure filters is an empty array of FilterGroups - }; + this.pivotConfig = { ...DEFAULT_PIVOT_CONFIG }; this.savePivotConfig(); } - // Reset table filter configuration to defaults - resetTableFilterConfig() { - this.tableFilterConfig = [...DEFAULT_TABLE_FILTER_CONFIG]; - this.appliedTableFilterConfig = [...DEFAULT_TABLE_FILTER_CONFIG]; - this.saveTableFilterConfig(); + // Reset filter configuration to defaults + resetFilterConfig() { + this.filterConfig = [...DEFAULT_FILTER_CONFIG]; + this.appliedFilterConfig = [...DEFAULT_FILTER_CONFIG]; + this.saveFilterConfig(); } // Reset pagination configuration to defaults @@ -315,20 +300,20 @@ export class GlobalState { } get filteredFlattenedDataset() { - if (this.appliedTableFilterConfig.length === 0) { + if (this.appliedFilterConfig.length === 0) { return this.flattenedDataset; } - const filterFunction = createFilterFunction(this.appliedTableFilterConfig)!; + const filterFunction = createFilterFunction(this.appliedFilterConfig)!; return this.flattenedDataset.filter(filterFunction); } get filteredOriginalDataset() { - if (this.appliedTableFilterConfig.length === 0) { + if (this.appliedFilterConfig.length === 0) { return this.sortedDataset; } - const filterFunction = createFilterFunction(this.appliedTableFilterConfig)!; + const filterFunction = createFilterFunction(this.appliedFilterConfig)!; return this.sortedIds .filter((id) => filterFunction(this.flattenedById[id])) .map((id) => this.dataset[id]); diff --git a/vite-app/src/components/EvaluationRow.tsx b/vite-app/src/components/EvaluationRow.tsx index 03412e61..66712836 100644 --- a/vite-app/src/components/EvaluationRow.tsx +++ b/vite-app/src/components/EvaluationRow.tsx @@ -5,6 +5,110 @@ import { MetadataSection } from "./MetadataSection"; import StatusIndicator from "./StatusIndicator"; import { state } from "../App"; import { TableCell, TableRowInteractive } from "./TableContainer"; +import { useState } from "react"; +import type { FilterGroup, FilterConfig } from "../types/filters"; +import { Tooltip } from "./Tooltip"; + +// Add filter button component +const AddFilterButton = observer( + ({ + fieldPath, + value, + label, + }: { + fieldPath: string; + value: string; + label: string; + }) => { + const [added, setAdded] = useState(false); + + const handleClick = (e: React.MouseEvent) => { + e.stopPropagation(); // Prevent row expansion + + // Create a new filter for this field/value + const newFilter: FilterConfig = { + field: fieldPath, + operator: "==", + value: value, + type: "text", + }; + + // Add the filter to the existing filter configuration + const currentFilters = state.filterConfig; + let newFilters: FilterGroup[]; + + if (currentFilters.length === 0) { + // If no filters exist, create a new filter group + newFilters = [ + { + logic: "AND", + filters: [newFilter], + }, + ]; + } else { + // Add to the first filter group (assuming AND logic) + newFilters = [...currentFilters]; + newFilters[0] = { + ...newFilters[0], + filters: [...newFilters[0].filters, newFilter], + }; + } + + state.updateFilterConfig(newFilters); + setAdded(true); + + // Reset to "Add Filter" state after 2 seconds + setTimeout(() => setAdded(false), 2000); + }; + + return ( + +
+ +
+
+ ); + } +); // Small, focused components following "dereference values late" principle const ExpandIcon = observer(({ rolloutId }: { rolloutId?: string }) => { @@ -64,6 +168,22 @@ const RolloutId = observer( } ); +const InvocationId = observer(({ invocationId }: { invocationId?: string }) => { + if (!invocationId) { + return null; + } + return ( + + {invocationId} + + + ); +}); + const RowModel = observer(({ model }: { model: string | undefined }) => ( {model || "N/A"} )); @@ -224,6 +344,13 @@ export const EvaluationRow = observer( /> + {/* Invocation ID */} + + + + {/* Rollout ID */} @@ -248,7 +375,7 @@ export const EvaluationRow = observer( {/* Expanded Content Row */} {isExpanded && ( - + { }; const handleFiltersChange = (filters: any[]) => { - state.updateTableFilterConfig(filters); + state.updateFilterConfig(filters); }; return ( @@ -59,7 +59,7 @@ export const EvaluationTable = observer(() => {

Table Filters

- {state.tableFilterConfig.length > 0 ? ( + {state.filterConfig.length > 0 ? ( <> Showing {totalRows} of {state.sortedDataset.length} rows {totalRows !== state.sortedDataset.length && ( @@ -74,7 +74,7 @@ export const EvaluationTable = observer(() => {
{   Name Status + Invocation ID Rollout ID Model Score diff --git a/vite-app/src/components/PivotTab.tsx b/vite-app/src/components/PivotTab.tsx index a381022c..0daa4fc3 100644 --- a/vite-app/src/components/PivotTab.tsx +++ b/vite-app/src/components/PivotTab.tsx @@ -148,7 +148,7 @@ const PivotTab = observer(() => { }; const updateFilters = (filters: FilterGroup[]) => { - state.updatePivotConfig({ filters }); + state.updateFilterConfig(filters); }; const createFieldHandler = ( @@ -246,7 +246,7 @@ const PivotTab = observer(() => { /> { } showRowTotals showColumnTotals - filter={createFilterFunction(pivotConfig.filters)} + filter={createFilterFunction(state.filterConfig)} />
); diff --git a/vite-app/src/components/Tooltip.tsx b/vite-app/src/components/Tooltip.tsx new file mode 100644 index 00000000..96bbfc53 --- /dev/null +++ b/vite-app/src/components/Tooltip.tsx @@ -0,0 +1,41 @@ +import React from "react"; + +interface TooltipProps { + children: React.ReactNode; + content: string; + position?: "top" | "bottom" | "left" | "right"; + className?: string; +} + +export const Tooltip: React.FC = ({ + children, + content, + position = "top", + className = "", +}) => { + const getPositionClasses = () => { + switch (position) { + case "top": + return "bottom-full left-1/2 transform -translate-x-1/2 mb-2"; + case "bottom": + return "top-full left-1/2 transform -translate-x-1/2 mt-2"; + case "left": + return "right-full top-1/2 transform -translate-y-1/2 mr-2"; + case "right": + return "left-full top-1/2 transform -translate-y-1/2 ml-2"; + default: + return "bottom-full left-1/2 transform -translate-x-1/2 mb-2"; + } + }; + + return ( +
+ {children} +
+ {content} +
+
+ ); +}; diff --git a/vite-app/src/types/filters.ts b/vite-app/src/types/filters.ts index dbd3a7b7..c73bf61f 100644 --- a/vite-app/src/types/filters.ts +++ b/vite-app/src/types/filters.ts @@ -1,16 +1,18 @@ +export type Operator = "==" | "!=" | ">" | "<" | ">=" | "<=" | "contains" | "!contains" | "between"; + // Filter configuration interface export interface FilterConfig { field: string; - operator: string; + operator: Operator; value: string; value2?: string; // For filtering between dates type?: "text" | "date" | "date-range"; } -export interface FilterOperator { - value: string; +export type FilterOperator = { + value: Operator; label: string; -} +}; // Filter group interface for AND/OR logic export interface FilterGroup { @@ -24,5 +26,4 @@ export interface PivotConfig { selectedColumnFields: string[]; selectedValueField: string; selectedAggregator: string; - filters: FilterGroup[]; } diff --git a/vite-app/src/util/filter-utils.ts b/vite-app/src/util/filter-utils.ts index 2f6c90c2..7a311476 100644 --- a/vite-app/src/util/filter-utils.ts +++ b/vite-app/src/util/filter-utils.ts @@ -1,4 +1,4 @@ -import type { FilterConfig, FilterGroup } from "../types/filters"; +import type { FilterConfig, FilterGroup, FilterOperator } from "../types/filters"; // Filter utilities export const isDateField = (field: string): boolean => { @@ -14,7 +14,7 @@ export const getFieldType = (field: string): "text" | "date" | "date-range" => { return isDateField(field) ? "date" : "text"; }; -export const getOperatorsForField = (field: string, type?: string) => { +export const getOperatorsForField = (field: string, type?: string): FilterOperator[] => { if (type === "date" || type === "date-range" || isDateField(field)) { return [ { value: ">=", label: "on or after" },