From 1331145333985a0b4120e468c37e6177389c8da6 Mon Sep 17 00:00:00 2001 From: Igor Katson Date: Sat, 9 Dec 2023 13:50:56 +0000 Subject: [PATCH] Fix Web UI logs in compiled server --- crates/librqbit/webui/dist/assets/index.js | 4 ++-- crates/librqbit/webui/dist/manifest.json | 2 +- crates/librqbit/webui/src/api-types.ts | 2 +- .../webui/src/components/LogStream.tsx | 19 ++++++------------- .../webui/src/components/LogStreamModal.tsx | 6 +++--- crates/librqbit/webui/src/context.tsx | 4 ++-- crates/librqbit/webui/src/http-api.ts | 2 +- desktop/src/api.tsx | 13 +++++++++---- 8 files changed, 25 insertions(+), 27 deletions(-) diff --git a/crates/librqbit/webui/dist/assets/index.js b/crates/librqbit/webui/dist/assets/index.js index c0a4a5f..5a1e3c4 100644 --- a/crates/librqbit/webui/dist/assets/index.js +++ b/crates/librqbit/webui/dist/assets/index.js @@ -37,8 +37,8 @@ `+l[i].replace(" at new "," at ");return e.displayName&&s.includes("")&&(s=s.replace("",e.displayName)),s}while(1<=i&&0<=u);break}}}finally{Eo=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?or(e):""}function jp(e){switch(e.tag){case 5:return or(e.type);case 16:return or("Lazy");case 13:return or("Suspense");case 19:return or("SuspenseList");case 0:case 2:case 15:return e=ko(e.type,!1),e;case 11:return e=ko(e.type.render,!1),e;case 1:return e=ko(e.type,!0),e;default:return""}}function ri(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 gn:return"Fragment";case vn:return"Portal";case ei:return"Profiler";case iu:return"StrictMode";case ti:return"Suspense";case ni:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Ka:return(e.displayName||"Context")+".Consumer";case Qa:return(e._context.displayName||"Context")+".Provider";case uu:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case su:return t=e.displayName||null,t!==null?t:ri(e.type)||"Memo";case wt:t=e._payload,e=e._init;try{return ri(e(t))}catch{}}return null}function Lp(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 ri(t);case 8:return t===iu?"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 zt(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Xa(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Op(e){var t=Xa(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 l=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(i){r=""+i,o.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 Xr(e){e._valueTracker||(e._valueTracker=Op(e))}function Ya(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Xa(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Cl(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 li(e,t){var n=t.checked;return Y({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function cs(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=zt(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 Za(e,t){t=t.checked,t!=null&&ou(e,"checked",t,!1)}function oi(e,t){Za(e,t);var n=zt(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")?ii(e,t.type,n):t.hasOwnProperty("defaultValue")&&ii(e,t.type,zt(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function fs(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 ii(e,t,n){(t!=="number"||Cl(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var ir=Array.isArray;function Ln(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=Yr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function xr(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var cr={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},Rp=["Webkit","ms","Moz","O"];Object.keys(cr).forEach(function(e){Rp.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),cr[t]=cr[e]})});function ec(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||cr.hasOwnProperty(e)&&cr[e]?(""+t).trim():t+"px"}function tc(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,l=ec(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}var Pp=Y({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 ai(e,t){if(t){if(Pp[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(k(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(k(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(k(61))}if(t.style!=null&&typeof t.style!="object")throw Error(k(62))}}function ci(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 fi=null;function au(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var di=null,On=null,Rn=null;function ms(e){if(e=Br(e)){if(typeof di!="function")throw Error(k(280));var t=e.stateNode;t&&(t=ro(t),di(e.stateNode,e.type,t))}}function nc(e){On?Rn?Rn.push(e):Rn=[e]:On=e}function rc(){if(On){var e=On,t=Rn;if(Rn=On=null,ms(e),t)for(e=0;e>>=0,e===0?32:31-(Wp(e)/Vp|0)|0}var Zr=64,Jr=4194304;function ur(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 jl(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,l=e.suspendedLanes,o=e.pingedLanes,i=n&268435455;if(i!==0){var u=i&~l;u!==0?r=ur(u):(o&=i,o!==0&&(r=ur(o)))}else i=n&~l,i!==0?r=ur(i):o!==0&&(r=ur(o));if(r===0)return 0;if(t!==0&&t!==r&&!(t&l)&&(l=r&-r,o=t&-t,l>=o||l===16&&(o&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Dr(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Ve(t),e[t]=n}function Xp(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=dr),ks=String.fromCharCode(32),Cs=!1;function kc(e,t){switch(e){case"keyup":return Em.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Cc(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var yn=!1;function Cm(e,t){switch(e){case"compositionend":return Cc(t);case"keypress":return t.which!==32?null:(Cs=!0,ks);case"textInput":return e=t.data,e===ks&&Cs?null:e;default:return null}}function Tm(e,t){if(yn)return e==="compositionend"||!gu&&kc(e,t)?(e=Sc(),ml=mu=Ct=null,yn=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=js(n)}}function jc(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?jc(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Lc(){for(var e=window,t=Cl();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Cl(e.document)}return t}function yu(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 Mm(e){var t=Lc(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&jc(n.ownerDocument.documentElement,n)){if(r!==null&&yu(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 l=n.textContent.length,o=Math.min(r.start,l);r=r.end===void 0?o:Math.min(r.end,l),!e.extend&&o>r&&(l=r,r=o,o=l),l=Ls(n,o);var i=Ls(n,r);l&&i&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),o>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=document.documentMode,wn=null,yi=null,mr=null,wi=!1;function Os(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;wi||wn==null||wn!==Cl(r)||(r=wn,"selectionStart"in r&&yu(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}),mr&&Nr(mr,r)||(mr=r,r=Rl(yi,"onSelect"),0En||(e.current=Ti[En],Ti[En]=null,En--)}function U(e,t){En++,Ti[En]=e.current,e.current=t}var It={},de=At(It),Se=At(!1),bt=It;function In(e,t){var n=e.type.contextTypes;if(!n)return It;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l={},o;for(o in n)l[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function Ee(e){return e=e.childContextTypes,e!=null}function Fl(){V(Se),V(de)}function $s(e,t,n){if(de.current!==It)throw Error(k(168));U(de,t),U(Se,n)}function Dc(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in t))throw Error(k(108,Lp(e)||"Unknown",l));return Y({},n,r)}function Ml(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||It,bt=de.current,U(de,e),U(Se,Se.current),!0}function Ds(e,t,n){var r=e.stateNode;if(!r)throw Error(k(169));n?(e=Dc(e,t,bt),r.__reactInternalMemoizedMergedChildContext=e,V(Se),V(de),U(de,e)):V(Se),U(Se,n)}var lt=null,lo=!1,$o=!1;function Ac(e){lt===null?lt=[e]:lt.push(e)}function Km(e){lo=!0,Ac(e)}function Bt(){if(!$o&<!==null){$o=!0;var e=0,t=A;try{var n=lt;for(A=1;e>=i,l-=i,ot=1<<32-Ve(t)+l|n<_?($=C,C=null):$=C.sibling;var P=d(m,C,g[_],S);if(P===null){C===null&&(C=$);break}e&&C&&P.alternate===null&&t(m,C),f=o(P,f,_),E===null?N=P:E.sibling=P,E=P,C=$}if(_===g.length)return n(m,C),Q&&Wt(m,_),N;if(C===null){for(;__?($=C,C=null):$=C.sibling;var se=d(m,C,P.value,S);if(se===null){C===null&&(C=$);break}e&&C&&se.alternate===null&&t(m,C),f=o(se,f,_),E===null?N=se:E.sibling=se,E=se,C=$}if(P.done)return n(m,C),Q&&Wt(m,_),N;if(C===null){for(;!P.done;_++,P=g.next())P=p(m,P.value,S),P!==null&&(f=o(P,f,_),E===null?N=P:E.sibling=P,E=P);return Q&&Wt(m,_),N}for(C=r(m,C);!P.done;_++,P=g.next())P=w(C,m,_,P.value,S),P!==null&&(e&&P.alternate!==null&&C.delete(P.key===null?_:P.key),f=o(P,f,_),E===null?N=P:E.sibling=P,E=P);return e&&C.forEach(function(Ge){return t(m,Ge)}),Q&&Wt(m,_),N}function L(m,f,g,S){if(typeof g=="object"&&g!==null&&g.type===gn&&g.key===null&&(g=g.props.children),typeof g=="object"&&g!==null){switch(g.$$typeof){case Gr:e:{for(var N=g.key,E=f;E!==null;){if(E.key===N){if(N=g.type,N===gn){if(E.tag===7){n(m,E.sibling),f=l(E,g.props.children),f.return=m,m=f;break e}}else if(E.elementType===N||typeof N=="object"&&N!==null&&N.$$typeof===wt&&Qs(N)===E.type){n(m,E.sibling),f=l(E,g.props),f.ref=nr(m,E,g),f.return=m,m=f;break e}n(m,E);break}else t(m,E);E=E.sibling}g.type===gn?(f=Jt(g.props.children,m.mode,S,g.key),f.return=m,m=f):(S=El(g.type,g.key,g.props,null,m.mode,S),S.ref=nr(m,f,g),S.return=m,m=S)}return i(m);case vn:e:{for(E=g.key;f!==null;){if(f.key===E)if(f.tag===4&&f.stateNode.containerInfo===g.containerInfo&&f.stateNode.implementation===g.implementation){n(m,f.sibling),f=l(f,g.children||[]),f.return=m,m=f;break e}else{n(m,f);break}else t(m,f);f=f.sibling}f=Qo(g,m.mode,S),f.return=m,m=f}return i(m);case wt:return E=g._init,L(m,f,E(g._payload),S)}if(ir(g))return y(m,f,g,S);if(Jn(g))return x(m,f,g,S);ll(m,g)}return typeof g=="string"&&g!==""||typeof g=="number"?(g=""+g,f!==null&&f.tag===6?(n(m,f.sibling),f=l(f,g),f.return=m,m=f):(n(m,f),f=Vo(g,m.mode,S),f.return=m,m=f),i(m)):n(m,f)}return L}var Dn=Gc(!0),Xc=Gc(!1),Ur={},et=At(Ur),Or=At(Ur),Rr=At(Ur);function Yt(e){if(e===Ur)throw Error(k(174));return e}function _u(e,t){switch(U(Rr,t),U(Or,e),U(et,Ur),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:si(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=si(t,e)}V(et),U(et,t)}function An(){V(et),V(Or),V(Rr)}function Yc(e){Yt(Rr.current);var t=Yt(et.current),n=si(t,e.type);t!==n&&(U(Or,e),U(et,n))}function ju(e){Or.current===e&&(V(et),V(Or))}var G=At(0);function Bl(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 Do=[];function Lu(){for(var e=0;en?n:4,e(!0);var r=Ao.transition;Ao.transition={};try{e(!1),t()}finally{A=n,Ao.transition=r}}function df(){return Ae().memoizedState}function Zm(e,t,n){var r=Pt(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},pf(e))mf(t,n);else if(n=Wc(e,t,n,r),n!==null){var l=ve();Qe(n,e,r,l),hf(n,t,r)}}function Jm(e,t,n){var r=Pt(e),l={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(pf(e))mf(t,l);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var i=t.lastRenderedState,u=o(i,n);if(l.hasEagerState=!0,l.eagerState=u,Ke(u,i)){var s=t.interleaved;s===null?(l.next=l,Tu(t)):(l.next=s.next,s.next=l),t.interleaved=l;return}}catch{}finally{}n=Wc(e,t,l,r),n!==null&&(l=ve(),Qe(n,e,r,l),hf(n,t,r))}}function pf(e){var t=e.alternate;return e===X||t!==null&&t===X}function mf(e,t){hr=Ul=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function hf(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,fu(e,n)}}var Hl={readContext:De,useCallback:ae,useContext:ae,useEffect:ae,useImperativeHandle:ae,useInsertionEffect:ae,useLayoutEffect:ae,useMemo:ae,useReducer:ae,useRef:ae,useState:ae,useDebugValue:ae,useDeferredValue:ae,useTransition:ae,useMutableSource:ae,useSyncExternalStore:ae,useId:ae,unstable_isNewReconciler:!1},qm={readContext:De,useCallback:function(e,t){return Je().memoizedState=[e,t===void 0?null:t],e},useContext:De,useEffect:Gs,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,yl(4194308,4,uf.bind(null,t,e),n)},useLayoutEffect:function(e,t){return yl(4194308,4,e,t)},useInsertionEffect:function(e,t){return yl(4,2,e,t)},useMemo:function(e,t){var n=Je();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Je();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=Zm.bind(null,X,e),[r.memoizedState,e]},useRef:function(e){var t=Je();return e={current:e},t.memoizedState=e},useState:Ks,useDebugValue:Mu,useDeferredValue:function(e){return Je().memoizedState=e},useTransition:function(){var e=Ks(!1),t=e[0];return e=Ym.bind(null,e[1]),Je().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=X,l=Je();if(Q){if(n===void 0)throw Error(k(407));n=n()}else{if(n=t(),le===null)throw Error(k(349));tn&30||qc(r,t,n)}l.memoizedState=n;var o={value:n,getSnapshot:t};return l.queue=o,Gs(ef.bind(null,r,o,e),[e]),r.flags|=2048,Mr(9,bc.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=Je(),t=le.identifierPrefix;if(Q){var n=it,r=ot;n=(r&~(1<<32-Ve(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Pr++,0<\/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[qe]=t,e[Lr]=r,Cf(e,t,!1,!1),t.stateNode=e;e:{switch(i=ci(n,r),n){case"dialog":W("cancel",e),W("close",e),l=r;break;case"iframe":case"object":case"embed":W("load",e),l=r;break;case"video":case"audio":for(l=0;lUn&&(t.flags|=128,r=!0,rr(o,!1),t.lanes=4194304)}else{if(!r)if(e=Bl(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),rr(o,!0),o.tail===null&&o.tailMode==="hidden"&&!i.alternate&&!Q)return ce(t),null}else 2*J()-o.renderingStartTime>Un&&n!==1073741824&&(t.flags|=128,r=!0,rr(o,!1),t.lanes=4194304);o.isBackwards?(i.sibling=t.child,t.child=i):(n=o.last,n!==null?n.sibling=i:t.child=i,o.last=i)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=J(),t.sibling=null,n=G.current,U(G,r?n&1|2:n&1),t):(ce(t),null);case 22:case 23:return Bu(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Ce&1073741824&&(ce(t),t.subtreeFlags&6&&(t.flags|=8192)):ce(t),null;case 24:return null;case 25:return null}throw Error(k(156,t.tag))}function ih(e,t){switch(xu(t),t.tag){case 1:return Ee(t.type)&&Fl(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return An(),V(Se),V(de),Lu(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return ju(t),null;case 13:if(V(G),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(k(340));$n()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return V(G),null;case 4:return An(),null;case 10:return Cu(t.type._context),null;case 22:case 23:return Bu(),null;case 24:return null;default:return null}}var il=!1,fe=!1,uh=typeof WeakSet=="function"?WeakSet:Set,j=null;function Nn(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Z(e,t,r)}else n.current=null}function $i(e,t,n){try{n()}catch(r){Z(e,t,r)}}var na=!1;function sh(e,t){if(xi=Ll,e=Lc(),yu(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 l=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var i=0,u=-1,s=-1,a=0,h=0,p=e,d=null;t:for(;;){for(var w;p!==n||l!==0&&p.nodeType!==3||(u=i+l),p!==o||r!==0&&p.nodeType!==3||(s=i+r),p.nodeType===3&&(i+=p.nodeValue.length),(w=p.firstChild)!==null;)d=p,p=w;for(;;){if(p===e)break t;if(d===n&&++a===l&&(u=i),d===o&&++h===r&&(s=i),(w=p.nextSibling)!==null)break;p=d,d=p.parentNode}p=w}n=u===-1||s===-1?null:{start:u,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(Si={focusedElem:e,selectionRange:n},Ll=!1,j=t;j!==null;)if(t=j,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,j=e;else for(;j!==null;){t=j;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 x=y.memoizedProps,L=y.memoizedState,m=t.stateNode,f=m.getSnapshotBeforeUpdate(t.elementType===t.type?x:Ue(t.type,x),L);m.__reactInternalSnapshotBeforeUpdate=f}break;case 3:var g=t.stateNode.containerInfo;g.nodeType===1?g.textContent="":g.nodeType===9&&g.documentElement&&g.removeChild(g.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(k(163))}}catch(S){Z(t,t.return,S)}if(e=t.sibling,e!==null){e.return=t.return,j=e;break}j=t.return}return y=na,na=!1,y}function vr(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var o=l.destroy;l.destroy=void 0,o!==void 0&&$i(t,n,o)}l=l.next}while(l!==r)}}function uo(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 Di(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 _f(e){var t=e.alternate;t!==null&&(e.alternate=null,_f(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[qe],delete t[Lr],delete t[Ci],delete t[Vm],delete t[Qm])),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 jf(e){return e.tag===5||e.tag===3||e.tag===4}function ra(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||jf(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 Ai(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=Pl));else if(r!==4&&(e=e.child,e!==null))for(Ai(e,t,n),e=e.sibling;e!==null;)Ai(e,t,n),e=e.sibling}function Bi(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(Bi(e,t,n),e=e.sibling;e!==null;)Bi(e,t,n),e=e.sibling}var oe=null,He=!1;function gt(e,t,n){for(n=n.child;n!==null;)Lf(e,t,n),n=n.sibling}function Lf(e,t,n){if(be&&typeof be.onCommitFiberUnmount=="function")try{be.onCommitFiberUnmount(bl,n)}catch{}switch(n.tag){case 5:fe||Nn(n,t);case 6:var r=oe,l=He;oe=null,gt(e,t,n),oe=r,He=l,oe!==null&&(He?(e=oe,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):oe.removeChild(n.stateNode));break;case 18:oe!==null&&(He?(e=oe,n=n.stateNode,e.nodeType===8?Io(e.parentNode,n):e.nodeType===1&&Io(e,n),Cr(e)):Io(oe,n.stateNode));break;case 4:r=oe,l=He,oe=n.stateNode.containerInfo,He=!0,gt(e,t,n),oe=r,He=l;break;case 0:case 11:case 14:case 15:if(!fe&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var o=l,i=o.destroy;o=o.tag,i!==void 0&&(o&2||o&4)&&$i(n,t,i),l=l.next}while(l!==r)}gt(e,t,n);break;case 1:if(!fe&&(Nn(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(u){Z(n,t,u)}gt(e,t,n);break;case 21:gt(e,t,n);break;case 22:n.mode&1?(fe=(r=fe)||n.memoizedState!==null,gt(e,t,n),fe=r):gt(e,t,n);break;default:gt(e,t,n)}}function la(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new uh),t.forEach(function(r){var l=gh.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function Be(e,t){var n=t.deletions;if(n!==null)for(var r=0;rl&&(l=i),r&=~o}if(r=l,r=J()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*ch(r/1960))-r,10e?16:e,Tt===null)var r=!1;else{if(e=Tt,Tt=null,Ql=0,z&6)throw Error(k(331));var l=z;for(z|=4,j=e.current;j!==null;){var o=j,i=o.child;if(j.flags&16){var u=o.deletions;if(u!==null){for(var s=0;sJ()-Du?Zt(e,0):$u|=n),ke(e,t)}function $f(e,t){t===0&&(e.mode&1?(t=Jr,Jr<<=1,!(Jr&130023424)&&(Jr=4194304)):t=1);var n=ve();e=ft(e,t),e!==null&&(Dr(e,t,n),ke(e,n))}function vh(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),$f(e,n)}function gh(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(k(314))}r!==null&&r.delete(t),$f(e,n)}var Df;Df=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Se.current)xe=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return xe=!1,lh(e,t,n);xe=!!(e.flags&131072)}else xe=!1,Q&&t.flags&1048576&&Bc(t,Il,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;wl(e,t),e=t.pendingProps;var l=In(t,de.current);Fn(t,n),l=Ru(null,t,r,e,l,n);var o=Pu();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Ee(r)?(o=!0,Ml(t)):o=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,Nu(t),l.updater=oo,t.stateNode=l,l._reactInternals=t,Oi(t,r,e,n),t=Fi(null,t,r,!0,o,n)):(t.tag=0,Q&&o&&wu(t),me(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(wl(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=wh(r),e=Ue(r,e),l){case 0:t=Pi(null,t,r,e,n);break e;case 1:t=bs(null,t,r,e,n);break e;case 11:t=Js(null,t,r,e,n);break e;case 14:t=qs(null,t,r,Ue(r.type,e),n);break e}throw Error(k(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Ue(r,l),Pi(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Ue(r,l),bs(e,t,r,l,n);case 3:e:{if(Sf(t),e===null)throw Error(k(387));r=t.pendingProps,o=t.memoizedState,l=o.element,Vc(e,t),Al(t,r,null,n);var i=t.memoizedState;if(r=i.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){l=Bn(Error(k(423)),t),t=ea(e,t,r,n,l);break e}else if(r!==l){l=Bn(Error(k(424)),t),t=ea(e,t,r,n,l);break e}else for(Te=Lt(t.stateNode.containerInfo.firstChild),Ne=t,Q=!0,We=null,n=Xc(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if($n(),r===l){t=dt(e,t,n);break e}me(e,t,r,n)}t=t.child}return t;case 5:return Yc(t),e===null&&_i(t),r=t.type,l=t.pendingProps,o=e!==null?e.memoizedProps:null,i=l.children,Ei(r,l)?i=null:o!==null&&Ei(r,o)&&(t.flags|=32),xf(e,t),me(e,t,i,n),t.child;case 6:return e===null&&_i(t),null;case 13:return Ef(e,t,n);case 4:return _u(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Dn(t,null,r,n):me(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Ue(r,l),Js(e,t,r,l,n);case 7:return me(e,t,t.pendingProps,n),t.child;case 8:return me(e,t,t.pendingProps.children,n),t.child;case 12:return me(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,o=t.memoizedProps,i=l.value,U($l,r._currentValue),r._currentValue=i,o!==null)if(Ke(o.value,i)){if(o.children===l.children&&!Se.current){t=dt(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var u=o.dependencies;if(u!==null){i=o.child;for(var s=u.firstContext;s!==null;){if(s.context===r){if(o.tag===1){s=ut(-1,n&-n),s.tag=2;var a=o.updateQueue;if(a!==null){a=a.shared;var h=a.pending;h===null?s.next=s:(s.next=h.next,h.next=s),a.pending=s}}o.lanes|=n,s=o.alternate,s!==null&&(s.lanes|=n),ji(o.return,n,t),u.lanes|=n;break}s=s.next}}else if(o.tag===10)i=o.type===t.type?null:o.child;else if(o.tag===18){if(i=o.return,i===null)throw Error(k(341));i.lanes|=n,u=i.alternate,u!==null&&(u.lanes|=n),ji(i,n,t),i=o.sibling}else i=o.child;if(i!==null)i.return=o;else for(i=o;i!==null;){if(i===t){i=null;break}if(o=i.sibling,o!==null){o.return=i.return,i=o;break}i=i.return}o=i}me(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,Fn(t,n),l=De(l),r=r(l),t.flags|=1,me(e,t,r,n),t.child;case 14:return r=t.type,l=Ue(r,t.pendingProps),l=Ue(r.type,l),qs(e,t,r,l,n);case 15:return yf(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Ue(r,l),wl(e,t),t.tag=1,Ee(r)?(e=!0,Ml(t)):e=!1,Fn(t,n),Kc(t,r,l),Oi(t,r,l,n),Fi(null,t,r,!0,e,n);case 19:return kf(e,t,n);case 22:return wf(e,t,n)}throw Error(k(156,t.tag))};function Af(e,t){return cc(e,t)}function yh(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 Ie(e,t,n,r){return new yh(e,t,n,r)}function Hu(e){return e=e.prototype,!(!e||!e.isReactComponent)}function wh(e){if(typeof e=="function")return Hu(e)?1:0;if(e!=null){if(e=e.$$typeof,e===uu)return 11;if(e===su)return 14}return 2}function Ft(e,t){var n=e.alternate;return n===null?(n=Ie(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 El(e,t,n,r,l,o){var i=2;if(r=e,typeof e=="function")Hu(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case gn:return Jt(n.children,l,o,t);case iu:i=8,l|=8;break;case ei:return e=Ie(12,n,t,l|2),e.elementType=ei,e.lanes=o,e;case ti:return e=Ie(13,n,t,l),e.elementType=ti,e.lanes=o,e;case ni:return e=Ie(19,n,t,l),e.elementType=ni,e.lanes=o,e;case Ga:return ao(n,l,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Qa:i=10;break e;case Ka:i=9;break e;case uu:i=11;break e;case su:i=14;break e;case wt:i=16,r=null;break e}throw Error(k(130,e==null?e:typeof e,""))}return t=Ie(i,n,t,l),t.elementType=e,t.type=r,t.lanes=o,t}function Jt(e,t,n,r){return e=Ie(7,e,r,t),e.lanes=n,e}function ao(e,t,n,r){return e=Ie(22,e,r,t),e.elementType=Ga,e.lanes=n,e.stateNode={isHidden:!1},e}function Vo(e,t,n){return e=Ie(6,e,null,t),e.lanes=n,e}function Qo(e,t,n){return t=Ie(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function xh(e,t,n,r,l){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=To(0),this.expirationTimes=To(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=To(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function Wu(e,t,n,r,l,o,i,u,s){return e=new xh(e,t,n,u,s),t===1?(t=1,o===!0&&(t|=8)):t=0,o=Ie(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Nu(o),e}function Sh(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Wf)}catch(e){console.error(e)}}Wf(),Ba.exports=je;var Vf=Ba.exports;const jn=Ir(Vf);var da=Vf;qo.createRoot=da.createRoot,qo.hydrateRoot=da.hydrateRoot;const Ut=v.createContext({listTorrents:()=>{throw new Error("Function not implemented.")},getTorrentDetails:()=>{throw new Error("Function not implemented.")},getTorrentStats:()=>{throw new Error("Function not implemented.")},uploadTorrent:()=>{throw new Error("Function not implemented.")},pause:()=>{throw new Error("Function not implemented.")},start:()=>{throw new Error("Function not implemented.")},forget:()=>{throw new Error("Function not implemented.")},delete:()=>{throw new Error("Function not implemented.")},getHttpBaseUrl:()=>{throw new Error("Function not implemented.")}}),Hr=v.createContext({setCloseableError:e=>{},refreshTorrents:()=>{}}),Qf=v.createContext({refresh:()=>{}});var Kf={exports:{}};/*! +`+o.stack}return{value:e,source:t,stack:l,digest:null}}function Ho(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function Ri(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var th=typeof WeakMap=="function"?WeakMap:Map;function vf(e,t,n){n=ut(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Vl||(Vl=!0,Ui=r),Ri(e,t)},n}function gf(e,t,n){n=ut(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var l=t.value;n.payload=function(){return r(l)},n.callback=function(){Ri(e,t)}}var o=e.stateNode;return o!==null&&typeof o.componentDidCatch=="function"&&(n.callback=function(){Ri(e,t),typeof r!="function"&&(Rt===null?Rt=new Set([this]):Rt.add(this));var i=t.stack;this.componentDidCatch(t.value,{componentStack:i!==null?i:""})}),n}function Xs(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new th;var l=new Set;r.set(t,l)}else l=r.get(t),l===void 0&&(l=new Set,r.set(t,l));l.has(n)||(l.add(n),e=hh.bind(null,e,t,n),t.then(e,e))}function Ys(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 Zs(e,t,n,r,l){return e.mode&1?(e.flags|=65536,e.lanes=l,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=ut(-1,1),t.tag=2,Ot(n,t,1))),n.lanes|=1),e)}var nh=mt.ReactCurrentOwner,xe=!1;function me(e,t,n,r){t.child=e===null?Xc(t,null,n,r):Dn(t,e.child,n,r)}function Js(e,t,n,r,l){n=n.render;var o=t.ref;return Fn(t,l),r=Ru(e,t,n,r,o,l),n=Pu(),e!==null&&!xe?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~l,dt(e,t,l)):(Q&&n&&wu(t),t.flags|=1,me(e,t,r,l),t.child)}function qs(e,t,n,r,l){if(e===null){var o=n.type;return typeof o=="function"&&!Hu(o)&&o.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=o,yf(e,t,o,r,l)):(e=El(n.type,null,r,t,t.mode,l),e.ref=t.ref,e.return=t,t.child=e)}if(o=e.child,!(e.lanes&l)){var i=o.memoizedProps;if(n=n.compare,n=n!==null?n:Nr,n(i,r)&&e.ref===t.ref)return dt(e,t,l)}return t.flags|=1,e=Ft(o,r),e.ref=t.ref,e.return=t,t.child=e}function yf(e,t,n,r,l){if(e!==null){var o=e.memoizedProps;if(Nr(o,r)&&e.ref===t.ref)if(xe=!1,t.pendingProps=r=o,(e.lanes&l)!==0)e.flags&131072&&(xe=!0);else return t.lanes=e.lanes,dt(e,t,l)}return Pi(e,t,n,r,l)}function wf(e,t,n){var r=t.pendingProps,l=r.children,o=e!==null?e.memoizedState:null;if(r.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},U(_n,Ce),Ce|=n;else{if(!(n&1073741824))return e=o!==null?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,U(_n,Ce),Ce|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=o!==null?o.baseLanes:n,U(_n,Ce),Ce|=r}else o!==null?(r=o.baseLanes|n,t.memoizedState=null):r=n,U(_n,Ce),Ce|=r;return me(e,t,l,n),t.child}function xf(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Pi(e,t,n,r,l){var o=Ee(n)?bt:de.current;return o=In(t,o),Fn(t,l),n=Ru(e,t,n,r,o,l),r=Pu(),e!==null&&!xe?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~l,dt(e,t,l)):(Q&&r&&wu(t),t.flags|=1,me(e,t,n,l),t.child)}function bs(e,t,n,r,l){if(Ee(n)){var o=!0;Ml(t)}else o=!1;if(Fn(t,l),t.stateNode===null)wl(e,t),Kc(t,n,r),Oi(t,n,r,l),r=!0;else if(e===null){var i=t.stateNode,u=t.memoizedProps;i.props=u;var s=i.context,a=n.contextType;typeof a=="object"&&a!==null?a=De(a):(a=Ee(n)?bt:de.current,a=In(t,a));var h=n.getDerivedStateFromProps,p=typeof h=="function"||typeof i.getSnapshotBeforeUpdate=="function";p||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(u!==r||s!==a)&&Vs(t,i,r,a),xt=!1;var d=t.memoizedState;i.state=d,Al(t,r,i,l),s=t.memoizedState,u!==r||d!==s||Se.current||xt?(typeof h=="function"&&(Li(t,n,h,r),s=t.memoizedState),(u=xt||Ws(t,n,u,r,d,s,a))?(p||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=s),i.props=r,i.state=s,i.context=a,r=u):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,Vc(e,t),u=t.memoizedProps,a=t.type===t.elementType?u:Ue(t.type,u),i.props=a,p=t.pendingProps,d=i.context,s=n.contextType,typeof s=="object"&&s!==null?s=De(s):(s=Ee(n)?bt:de.current,s=In(t,s));var w=n.getDerivedStateFromProps;(h=typeof w=="function"||typeof i.getSnapshotBeforeUpdate=="function")||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(u!==p||d!==s)&&Vs(t,i,r,s),xt=!1,d=t.memoizedState,i.state=d,Al(t,r,i,l);var y=t.memoizedState;u!==p||d!==y||Se.current||xt?(typeof w=="function"&&(Li(t,n,w,r),y=t.memoizedState),(a=xt||Ws(t,n,a,r,d,y,s)||!1)?(h||typeof i.UNSAFE_componentWillUpdate!="function"&&typeof i.componentWillUpdate!="function"||(typeof i.componentWillUpdate=="function"&&i.componentWillUpdate(r,y,s),typeof i.UNSAFE_componentWillUpdate=="function"&&i.UNSAFE_componentWillUpdate(r,y,s)),typeof i.componentDidUpdate=="function"&&(t.flags|=4),typeof i.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof i.componentDidUpdate!="function"||u===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||u===e.memoizedProps&&d===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=y),i.props=r,i.state=y,i.context=s,r=a):(typeof i.componentDidUpdate!="function"||u===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||u===e.memoizedProps&&d===e.memoizedState||(t.flags|=1024),r=!1)}return Fi(e,t,n,r,o,l)}function Fi(e,t,n,r,l,o){xf(e,t);var i=(t.flags&128)!==0;if(!r&&!i)return l&&Ds(t,n,!1),dt(e,t,o);r=t.stateNode,nh.current=t;var u=i&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&i?(t.child=Dn(t,e.child,null,o),t.child=Dn(t,null,u,o)):me(e,t,u,o),t.memoizedState=r.state,l&&Ds(t,n,!0),t.child}function Sf(e){var t=e.stateNode;t.pendingContext?$s(e,t.pendingContext,t.pendingContext!==t.context):t.context&&$s(e,t.context,!1),_u(e,t.containerInfo)}function ea(e,t,n,r,l){return $n(),Su(l),t.flags|=256,me(e,t,n,r),t.child}var Mi={dehydrated:null,treeContext:null,retryLane:0};function zi(e){return{baseLanes:e,cachePool:null,transitions:null}}function Ef(e,t,n){var r=t.pendingProps,l=G.current,o=!1,i=(t.flags&128)!==0,u;if((u=i)||(u=e!==null&&e.memoizedState===null?!1:(l&2)!==0),u?(o=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(l|=1),U(G,l&1),e===null)return _i(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,o?(r=t.mode,o=t.child,i={mode:"hidden",children:i},!(r&1)&&o!==null?(o.childLanes=0,o.pendingProps=i):o=ao(i,r,0,null),e=Jt(e,r,n,null),o.return=t,e.return=t,o.sibling=e,t.child=o,t.child.memoizedState=zi(n),t.memoizedState=Mi,e):zu(t,i));if(l=e.memoizedState,l!==null&&(u=l.dehydrated,u!==null))return rh(e,t,i,r,u,l,n);if(o){o=r.fallback,i=t.mode,l=e.child,u=l.sibling;var s={mode:"hidden",children:r.children};return!(i&1)&&t.child!==l?(r=t.child,r.childLanes=0,r.pendingProps=s,t.deletions=null):(r=Ft(l,s),r.subtreeFlags=l.subtreeFlags&14680064),u!==null?o=Ft(u,o):(o=Jt(o,i,n,null),o.flags|=2),o.return=t,r.return=t,r.sibling=o,t.child=r,r=o,o=t.child,i=e.child.memoizedState,i=i===null?zi(n):{baseLanes:i.baseLanes|n,cachePool:null,transitions:i.transitions},o.memoizedState=i,o.childLanes=e.childLanes&~n,t.memoizedState=Mi,r}return o=e.child,e=o.sibling,r=Ft(o,{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 zu(e,t){return t=ao({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function ol(e,t,n,r){return r!==null&&Su(r),Dn(t,e.child,null,n),e=zu(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function rh(e,t,n,r,l,o,i){if(n)return t.flags&256?(t.flags&=-257,r=Ho(Error(k(422))),ol(e,t,i,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(o=r.fallback,l=t.mode,r=ao({mode:"visible",children:r.children},l,0,null),o=Jt(o,l,i,null),o.flags|=2,r.return=t,o.return=t,r.sibling=o,t.child=r,t.mode&1&&Dn(t,e.child,null,i),t.child.memoizedState=zi(i),t.memoizedState=Mi,o);if(!(t.mode&1))return ol(e,t,i,null);if(l.data==="$!"){if(r=l.nextSibling&&l.nextSibling.dataset,r)var u=r.dgst;return r=u,o=Error(k(419)),r=Ho(o,r,void 0),ol(e,t,i,r)}if(u=(i&e.childLanes)!==0,xe||u){if(r=le,r!==null){switch(i&-i){case 4:l=2;break;case 16:l=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:l=32;break;case 536870912:l=268435456;break;default:l=0}l=l&(r.suspendedLanes|i)?0:l,l!==0&&l!==o.retryLane&&(o.retryLane=l,ft(e,l),Qe(r,e,l,-1))}return Uu(),r=Ho(Error(k(421))),ol(e,t,i,r)}return l.data==="$?"?(t.flags|=128,t.child=e.child,t=vh.bind(null,e),l._reactRetry=t,null):(e=o.treeContext,Te=Lt(l.nextSibling),Ne=t,Q=!0,We=null,e!==null&&(Fe[Me++]=ot,Fe[Me++]=it,Fe[Me++]=en,ot=e.id,it=e.overflow,en=t),t=zu(t,r.children),t.flags|=4096,t)}function ta(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),ji(e.return,t,n)}function Wo(e,t,n,r,l){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:l}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=l)}function kf(e,t,n){var r=t.pendingProps,l=r.revealOrder,o=r.tail;if(me(e,t,r.children,n),r=G.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&&ta(e,n,t);else if(e.tag===19)ta(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(U(G,r),!(t.mode&1))t.memoizedState=null;else switch(l){case"forwards":for(n=t.child,l=null;n!==null;)e=n.alternate,e!==null&&Bl(e)===null&&(l=n),n=n.sibling;n=l,n===null?(l=t.child,t.child=null):(l=n.sibling,n.sibling=null),Wo(t,!1,l,n,o);break;case"backwards":for(n=null,l=t.child,t.child=null;l!==null;){if(e=l.alternate,e!==null&&Bl(e)===null){t.child=l;break}e=l.sibling,l.sibling=n,n=l,l=e}Wo(t,!0,n,null,o);break;case"together":Wo(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function wl(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function dt(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),nn|=t.lanes,!(n&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(k(153));if(t.child!==null){for(e=t.child,n=Ft(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=Ft(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function lh(e,t,n){switch(t.tag){case 3:Sf(t),$n();break;case 5:Yc(t);break;case 1:Ee(t.type)&&Ml(t);break;case 4:_u(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,l=t.memoizedProps.value;U($l,r._currentValue),r._currentValue=l;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(U(G,G.current&1),t.flags|=128,null):n&t.child.childLanes?Ef(e,t,n):(U(G,G.current&1),e=dt(e,t,n),e!==null?e.sibling:null);U(G,G.current&1);break;case 19:if(r=(n&t.childLanes)!==0,e.flags&128){if(r)return kf(e,t,n);t.flags|=128}if(l=t.memoizedState,l!==null&&(l.rendering=null,l.tail=null,l.lastEffect=null),U(G,G.current),r)break;return null;case 22:case 23:return t.lanes=0,wf(e,t,n)}return dt(e,t,n)}var Cf,Ii,Tf,Nf;Cf=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}};Ii=function(){};Tf=function(e,t,n,r){var l=e.memoizedProps;if(l!==r){e=t.stateNode,Yt(et.current);var o=null;switch(n){case"input":l=li(e,l),r=li(e,r),o=[];break;case"select":l=Y({},l,{value:void 0}),r=Y({},r,{value:void 0}),o=[];break;case"textarea":l=ui(e,l),r=ui(e,r),o=[];break;default:typeof l.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=Pl)}ai(n,r);var i;n=null;for(a in l)if(!r.hasOwnProperty(a)&&l.hasOwnProperty(a)&&l[a]!=null)if(a==="style"){var u=l[a];for(i in u)u.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else a!=="dangerouslySetInnerHTML"&&a!=="children"&&a!=="suppressContentEditableWarning"&&a!=="suppressHydrationWarning"&&a!=="autoFocus"&&(wr.hasOwnProperty(a)?o||(o=[]):(o=o||[]).push(a,null));for(a in r){var s=r[a];if(u=l!=null?l[a]:void 0,r.hasOwnProperty(a)&&s!==u&&(s!=null||u!=null))if(a==="style")if(u){for(i in u)!u.hasOwnProperty(i)||s&&s.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in s)s.hasOwnProperty(i)&&u[i]!==s[i]&&(n||(n={}),n[i]=s[i])}else n||(o||(o=[]),o.push(a,n)),n=s;else a==="dangerouslySetInnerHTML"?(s=s?s.__html:void 0,u=u?u.__html:void 0,s!=null&&u!==s&&(o=o||[]).push(a,s)):a==="children"?typeof s!="string"&&typeof s!="number"||(o=o||[]).push(a,""+s):a!=="suppressContentEditableWarning"&&a!=="suppressHydrationWarning"&&(wr.hasOwnProperty(a)?(s!=null&&a==="onScroll"&&W("scroll",e),o||u===s||(o=[])):(o=o||[]).push(a,s))}n&&(o=o||[]).push("style",n);var a=o;(t.updateQueue=a)&&(t.flags|=4)}};Nf=function(e,t,n,r){n!==r&&(t.flags|=4)};function rr(e,t){if(!Q)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 ce(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var l=e.child;l!==null;)n|=l.lanes|l.childLanes,r|=l.subtreeFlags&14680064,r|=l.flags&14680064,l.return=e,l=l.sibling;else for(l=e.child;l!==null;)n|=l.lanes|l.childLanes,r|=l.subtreeFlags,r|=l.flags,l.return=e,l=l.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function oh(e,t,n){var r=t.pendingProps;switch(xu(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return ce(t),null;case 1:return Ee(t.type)&&Fl(),ce(t),null;case 3:return r=t.stateNode,An(),V(Se),V(de),Lu(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(rl(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,We!==null&&(Vi(We),We=null))),Ii(e,t),ce(t),null;case 5:ju(t);var l=Yt(Rr.current);if(n=t.type,e!==null&&t.stateNode!=null)Tf(e,t,n,r,l),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(k(166));return ce(t),null}if(e=Yt(et.current),rl(t)){r=t.stateNode,n=t.type;var o=t.memoizedProps;switch(r[qe]=t,r[Lr]=o,e=(t.mode&1)!==0,n){case"dialog":W("cancel",r),W("close",r);break;case"iframe":case"object":case"embed":W("load",r);break;case"video":case"audio":for(l=0;l<\/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[qe]=t,e[Lr]=r,Cf(e,t,!1,!1),t.stateNode=e;e:{switch(i=ci(n,r),n){case"dialog":W("cancel",e),W("close",e),l=r;break;case"iframe":case"object":case"embed":W("load",e),l=r;break;case"video":case"audio":for(l=0;lUn&&(t.flags|=128,r=!0,rr(o,!1),t.lanes=4194304)}else{if(!r)if(e=Bl(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),rr(o,!0),o.tail===null&&o.tailMode==="hidden"&&!i.alternate&&!Q)return ce(t),null}else 2*J()-o.renderingStartTime>Un&&n!==1073741824&&(t.flags|=128,r=!0,rr(o,!1),t.lanes=4194304);o.isBackwards?(i.sibling=t.child,t.child=i):(n=o.last,n!==null?n.sibling=i:t.child=i,o.last=i)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=J(),t.sibling=null,n=G.current,U(G,r?n&1|2:n&1),t):(ce(t),null);case 22:case 23:return Bu(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Ce&1073741824&&(ce(t),t.subtreeFlags&6&&(t.flags|=8192)):ce(t),null;case 24:return null;case 25:return null}throw Error(k(156,t.tag))}function ih(e,t){switch(xu(t),t.tag){case 1:return Ee(t.type)&&Fl(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return An(),V(Se),V(de),Lu(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return ju(t),null;case 13:if(V(G),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(k(340));$n()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return V(G),null;case 4:return An(),null;case 10:return Cu(t.type._context),null;case 22:case 23:return Bu(),null;case 24:return null;default:return null}}var il=!1,fe=!1,uh=typeof WeakSet=="function"?WeakSet:Set,j=null;function Nn(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Z(e,t,r)}else n.current=null}function $i(e,t,n){try{n()}catch(r){Z(e,t,r)}}var na=!1;function sh(e,t){if(xi=Ll,e=Lc(),yu(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 l=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var i=0,u=-1,s=-1,a=0,h=0,p=e,d=null;t:for(;;){for(var w;p!==n||l!==0&&p.nodeType!==3||(u=i+l),p!==o||r!==0&&p.nodeType!==3||(s=i+r),p.nodeType===3&&(i+=p.nodeValue.length),(w=p.firstChild)!==null;)d=p,p=w;for(;;){if(p===e)break t;if(d===n&&++a===l&&(u=i),d===o&&++h===r&&(s=i),(w=p.nextSibling)!==null)break;p=d,d=p.parentNode}p=w}n=u===-1||s===-1?null:{start:u,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(Si={focusedElem:e,selectionRange:n},Ll=!1,j=t;j!==null;)if(t=j,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,j=e;else for(;j!==null;){t=j;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 x=y.memoizedProps,L=y.memoizedState,m=t.stateNode,f=m.getSnapshotBeforeUpdate(t.elementType===t.type?x:Ue(t.type,x),L);m.__reactInternalSnapshotBeforeUpdate=f}break;case 3:var g=t.stateNode.containerInfo;g.nodeType===1?g.textContent="":g.nodeType===9&&g.documentElement&&g.removeChild(g.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(k(163))}}catch(S){Z(t,t.return,S)}if(e=t.sibling,e!==null){e.return=t.return,j=e;break}j=t.return}return y=na,na=!1,y}function vr(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var o=l.destroy;l.destroy=void 0,o!==void 0&&$i(t,n,o)}l=l.next}while(l!==r)}}function uo(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 Di(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 _f(e){var t=e.alternate;t!==null&&(e.alternate=null,_f(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[qe],delete t[Lr],delete t[Ci],delete t[Vm],delete t[Qm])),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 jf(e){return e.tag===5||e.tag===3||e.tag===4}function ra(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||jf(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 Ai(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=Pl));else if(r!==4&&(e=e.child,e!==null))for(Ai(e,t,n),e=e.sibling;e!==null;)Ai(e,t,n),e=e.sibling}function Bi(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(Bi(e,t,n),e=e.sibling;e!==null;)Bi(e,t,n),e=e.sibling}var oe=null,He=!1;function gt(e,t,n){for(n=n.child;n!==null;)Lf(e,t,n),n=n.sibling}function Lf(e,t,n){if(be&&typeof be.onCommitFiberUnmount=="function")try{be.onCommitFiberUnmount(bl,n)}catch{}switch(n.tag){case 5:fe||Nn(n,t);case 6:var r=oe,l=He;oe=null,gt(e,t,n),oe=r,He=l,oe!==null&&(He?(e=oe,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):oe.removeChild(n.stateNode));break;case 18:oe!==null&&(He?(e=oe,n=n.stateNode,e.nodeType===8?Io(e.parentNode,n):e.nodeType===1&&Io(e,n),Cr(e)):Io(oe,n.stateNode));break;case 4:r=oe,l=He,oe=n.stateNode.containerInfo,He=!0,gt(e,t,n),oe=r,He=l;break;case 0:case 11:case 14:case 15:if(!fe&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var o=l,i=o.destroy;o=o.tag,i!==void 0&&(o&2||o&4)&&$i(n,t,i),l=l.next}while(l!==r)}gt(e,t,n);break;case 1:if(!fe&&(Nn(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(u){Z(n,t,u)}gt(e,t,n);break;case 21:gt(e,t,n);break;case 22:n.mode&1?(fe=(r=fe)||n.memoizedState!==null,gt(e,t,n),fe=r):gt(e,t,n);break;default:gt(e,t,n)}}function la(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new uh),t.forEach(function(r){var l=gh.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function Be(e,t){var n=t.deletions;if(n!==null)for(var r=0;rl&&(l=i),r&=~o}if(r=l,r=J()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*ch(r/1960))-r,10e?16:e,Tt===null)var r=!1;else{if(e=Tt,Tt=null,Ql=0,z&6)throw Error(k(331));var l=z;for(z|=4,j=e.current;j!==null;){var o=j,i=o.child;if(j.flags&16){var u=o.deletions;if(u!==null){for(var s=0;sJ()-Du?Zt(e,0):$u|=n),ke(e,t)}function $f(e,t){t===0&&(e.mode&1?(t=Jr,Jr<<=1,!(Jr&130023424)&&(Jr=4194304)):t=1);var n=ve();e=ft(e,t),e!==null&&(Dr(e,t,n),ke(e,n))}function vh(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),$f(e,n)}function gh(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(k(314))}r!==null&&r.delete(t),$f(e,n)}var Df;Df=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Se.current)xe=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return xe=!1,lh(e,t,n);xe=!!(e.flags&131072)}else xe=!1,Q&&t.flags&1048576&&Bc(t,Il,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;wl(e,t),e=t.pendingProps;var l=In(t,de.current);Fn(t,n),l=Ru(null,t,r,e,l,n);var o=Pu();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Ee(r)?(o=!0,Ml(t)):o=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,Nu(t),l.updater=oo,t.stateNode=l,l._reactInternals=t,Oi(t,r,e,n),t=Fi(null,t,r,!0,o,n)):(t.tag=0,Q&&o&&wu(t),me(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(wl(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=wh(r),e=Ue(r,e),l){case 0:t=Pi(null,t,r,e,n);break e;case 1:t=bs(null,t,r,e,n);break e;case 11:t=Js(null,t,r,e,n);break e;case 14:t=qs(null,t,r,Ue(r.type,e),n);break e}throw Error(k(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Ue(r,l),Pi(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Ue(r,l),bs(e,t,r,l,n);case 3:e:{if(Sf(t),e===null)throw Error(k(387));r=t.pendingProps,o=t.memoizedState,l=o.element,Vc(e,t),Al(t,r,null,n);var i=t.memoizedState;if(r=i.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){l=Bn(Error(k(423)),t),t=ea(e,t,r,n,l);break e}else if(r!==l){l=Bn(Error(k(424)),t),t=ea(e,t,r,n,l);break e}else for(Te=Lt(t.stateNode.containerInfo.firstChild),Ne=t,Q=!0,We=null,n=Xc(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if($n(),r===l){t=dt(e,t,n);break e}me(e,t,r,n)}t=t.child}return t;case 5:return Yc(t),e===null&&_i(t),r=t.type,l=t.pendingProps,o=e!==null?e.memoizedProps:null,i=l.children,Ei(r,l)?i=null:o!==null&&Ei(r,o)&&(t.flags|=32),xf(e,t),me(e,t,i,n),t.child;case 6:return e===null&&_i(t),null;case 13:return Ef(e,t,n);case 4:return _u(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Dn(t,null,r,n):me(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Ue(r,l),Js(e,t,r,l,n);case 7:return me(e,t,t.pendingProps,n),t.child;case 8:return me(e,t,t.pendingProps.children,n),t.child;case 12:return me(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,o=t.memoizedProps,i=l.value,U($l,r._currentValue),r._currentValue=i,o!==null)if(Ke(o.value,i)){if(o.children===l.children&&!Se.current){t=dt(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var u=o.dependencies;if(u!==null){i=o.child;for(var s=u.firstContext;s!==null;){if(s.context===r){if(o.tag===1){s=ut(-1,n&-n),s.tag=2;var a=o.updateQueue;if(a!==null){a=a.shared;var h=a.pending;h===null?s.next=s:(s.next=h.next,h.next=s),a.pending=s}}o.lanes|=n,s=o.alternate,s!==null&&(s.lanes|=n),ji(o.return,n,t),u.lanes|=n;break}s=s.next}}else if(o.tag===10)i=o.type===t.type?null:o.child;else if(o.tag===18){if(i=o.return,i===null)throw Error(k(341));i.lanes|=n,u=i.alternate,u!==null&&(u.lanes|=n),ji(i,n,t),i=o.sibling}else i=o.child;if(i!==null)i.return=o;else for(i=o;i!==null;){if(i===t){i=null;break}if(o=i.sibling,o!==null){o.return=i.return,i=o;break}i=i.return}o=i}me(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,Fn(t,n),l=De(l),r=r(l),t.flags|=1,me(e,t,r,n),t.child;case 14:return r=t.type,l=Ue(r,t.pendingProps),l=Ue(r.type,l),qs(e,t,r,l,n);case 15:return yf(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Ue(r,l),wl(e,t),t.tag=1,Ee(r)?(e=!0,Ml(t)):e=!1,Fn(t,n),Kc(t,r,l),Oi(t,r,l,n),Fi(null,t,r,!0,e,n);case 19:return kf(e,t,n);case 22:return wf(e,t,n)}throw Error(k(156,t.tag))};function Af(e,t){return cc(e,t)}function yh(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 Ie(e,t,n,r){return new yh(e,t,n,r)}function Hu(e){return e=e.prototype,!(!e||!e.isReactComponent)}function wh(e){if(typeof e=="function")return Hu(e)?1:0;if(e!=null){if(e=e.$$typeof,e===uu)return 11;if(e===su)return 14}return 2}function Ft(e,t){var n=e.alternate;return n===null?(n=Ie(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 El(e,t,n,r,l,o){var i=2;if(r=e,typeof e=="function")Hu(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case gn:return Jt(n.children,l,o,t);case iu:i=8,l|=8;break;case ei:return e=Ie(12,n,t,l|2),e.elementType=ei,e.lanes=o,e;case ti:return e=Ie(13,n,t,l),e.elementType=ti,e.lanes=o,e;case ni:return e=Ie(19,n,t,l),e.elementType=ni,e.lanes=o,e;case Ga:return ao(n,l,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Qa:i=10;break e;case Ka:i=9;break e;case uu:i=11;break e;case su:i=14;break e;case wt:i=16,r=null;break e}throw Error(k(130,e==null?e:typeof e,""))}return t=Ie(i,n,t,l),t.elementType=e,t.type=r,t.lanes=o,t}function Jt(e,t,n,r){return e=Ie(7,e,r,t),e.lanes=n,e}function ao(e,t,n,r){return e=Ie(22,e,r,t),e.elementType=Ga,e.lanes=n,e.stateNode={isHidden:!1},e}function Vo(e,t,n){return e=Ie(6,e,null,t),e.lanes=n,e}function Qo(e,t,n){return t=Ie(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function xh(e,t,n,r,l){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=To(0),this.expirationTimes=To(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=To(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function Wu(e,t,n,r,l,o,i,u,s){return e=new xh(e,t,n,u,s),t===1?(t=1,o===!0&&(t|=8)):t=0,o=Ie(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Nu(o),e}function Sh(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Wf)}catch(e){console.error(e)}}Wf(),Ba.exports=je;var Vf=Ba.exports;const jn=Ir(Vf);var da=Vf;qo.createRoot=da.createRoot,qo.hydrateRoot=da.hydrateRoot;const Ut=v.createContext({listTorrents:()=>{throw new Error("Function not implemented.")},getTorrentDetails:()=>{throw new Error("Function not implemented.")},getTorrentStats:()=>{throw new Error("Function not implemented.")},uploadTorrent:()=>{throw new Error("Function not implemented.")},pause:()=>{throw new Error("Function not implemented.")},start:()=>{throw new Error("Function not implemented.")},forget:()=>{throw new Error("Function not implemented.")},delete:()=>{throw new Error("Function not implemented.")},getStreamLogsUrl:()=>null}),Hr=v.createContext({setCloseableError:e=>{},refreshTorrents:()=>{}}),Qf=v.createContext({refresh:()=>{}});var Kf={exports:{}};/*! Copyright (c) 2018 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames -*/(function(e){(function(){var t={}.hasOwnProperty;function n(){for(var r=[],l=0;l=0)&&(n[l]=e[l]);return n}function pa(e){return"default"+e.charAt(0).toUpperCase()+e.substr(1)}function _h(e){var t=jh(e,"string");return typeof t=="symbol"?t:String(t)}function jh(e,t){if(typeof e!="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Lh(e,t,n){var r=v.useRef(e!==void 0),l=v.useState(t),o=l[0],i=l[1],u=e!==void 0,s=r.current;return r.current=u,!u&&s&&o!==t&&i(t),[u?e:o,v.useCallback(function(a){for(var h=arguments.length,p=new Array(h>1?h-1:0),d=1;d{o.target===e&&(l(),t(o))},n+r)}function bh(e){e.offsetHeight}const va=e=>!e||typeof e=="function"?e:t=>{e.current=t};function ev(e,t){const n=va(e),r=va(t);return l=>{n&&n(l),r&&r(l)}}function go(e,t){return v.useMemo(()=>ev(e,t),[e,t])}function tv(e){return e&&"setState"in e?jn.findDOMNode(e):e??null}const nv=he.forwardRef(({onEnter:e,onEntering:t,onEntered:n,onExit:r,onExiting:l,onExited:o,addEndListener:i,children:u,childRef:s,...a},h)=>{const p=v.useRef(null),d=go(p,s),w=E=>{d(tv(E))},y=E=>C=>{E&&p.current&&E(p.current,C)},x=v.useCallback(y(e),[e]),L=v.useCallback(y(t),[t]),m=v.useCallback(y(n),[n]),f=v.useCallback(y(r),[r]),g=v.useCallback(y(l),[l]),S=v.useCallback(y(o),[o]),N=v.useCallback(y(i),[i]);return c.jsx(Xh,{ref:h,...a,onEnter:x,onEntered:m,onEntering:L,onExit:f,onExited:S,onExiting:g,addEndListener:N,nodeRef:p,children:typeof u=="function"?(E,C)=>u(E,{...C,ref:w}):he.cloneElement(u,{ref:w})})}),rv=nv;function lv(e){const t=v.useRef(e);return v.useEffect(()=>{t.current=e},[e]),t}function ze(e){const t=lv(e);return v.useCallback(function(...n){return t.current&&t.current(...n)},[t])}const nd=e=>v.forwardRef((t,n)=>c.jsx("div",{...t,ref:n,className:M(t.className,e)})),rd=nd("h4");rd.displayName="DivStyledAsH4";const ld=v.forwardRef(({className:e,bsPrefix:t,as:n=rd,...r},l)=>(t=H(t,"alert-heading"),c.jsx(n,{ref:l,className:M(e,t),...r})));ld.displayName="AlertHeading";const ov=ld;function iv(){return v.useState(null)}function uv(){const e=v.useRef(!0),t=v.useRef(()=>e.current);return v.useEffect(()=>(e.current=!0,()=>{e.current=!1}),[]),t.current}function sv(e){const t=v.useRef(null);return v.useEffect(()=>{t.current=e}),t.current}const av=typeof global<"u"&&global.navigator&&global.navigator.product==="ReactNative",cv=typeof document<"u",ga=cv||av?v.useLayoutEffect:v.useEffect,fv=["as","disabled"];function dv(e,t){if(e==null)return{};var n={},r=Object.keys(e),l,o;for(o=0;o=0)&&(n[l]=e[l]);return n}function pv(e){return!e||e.trim()==="#"}function Gu({tagName:e,disabled:t,href:n,target:r,rel:l,role:o,onClick:i,tabIndex:u=0,type:s}){e||(n!=null||r!=null||l!=null?e="a":e="button");const a={tagName:e};if(e==="button")return[{type:s||"button",disabled:t},a];const h=d=>{if((t||e==="a"&&pv(n))&&d.preventDefault(),t){d.stopPropagation();return}i==null||i(d)},p=d=>{d.key===" "&&(d.preventDefault(),h(d))};return e==="a"&&(n||(n="#"),t&&(n=void 0)),[{role:o??"button",disabled:void 0,tabIndex:t?void 0:u,href:n,target:e==="a"?r:void 0,"aria-disabled":t||void 0,rel:e==="a"?l:void 0,onClick:h,onKeyDown:p},a]}const mv=v.forwardRef((e,t)=>{let{as:n,disabled:r}=e,l=dv(e,fv);const[o,{tagName:i}]=Gu(Object.assign({tagName:n,disabled:r},l));return c.jsx(i,Object.assign({},l,o,{ref:t}))});mv.displayName="Button";const hv=["onKeyDown"];function vv(e,t){if(e==null)return{};var n={},r=Object.keys(e),l,o;for(o=0;o=0)&&(n[l]=e[l]);return n}function gv(e){return!e||e.trim()==="#"}const od=v.forwardRef((e,t)=>{let{onKeyDown:n}=e,r=vv(e,hv);const[l]=Gu(Object.assign({tagName:"a"},r)),o=ze(i=>{l.onKeyDown(i),n==null||n(i)});return gv(r.href)||r.role==="button"?c.jsx("a",Object.assign({ref:t},r,l,{onKeyDown:o})):c.jsx("a",Object.assign({ref:t},r,{onKeyDown:n}))});od.displayName="Anchor";const yv=od,id=v.forwardRef(({className:e,bsPrefix:t,as:n=yv,...r},l)=>(t=H(t,"alert-link"),c.jsx(n,{ref:l,className:M(e,t),...r})));id.displayName="AlertLink";const wv=id,xv={[St]:"show",[Kt]:"show"},ud=v.forwardRef(({className:e,children:t,transitionClasses:n={},onEnter:r,...l},o)=>{const i={in:!1,timeout:300,mountOnEnter:!1,unmountOnExit:!1,appear:!1,...l},u=v.useCallback((s,a)=>{bh(s),r==null||r(s,a)},[r]);return c.jsx(rv,{ref:o,addEndListener:qh,...i,onEnter:u,childRef:t.ref,children:(s,a)=>v.cloneElement(t,{...a,className:M("fade",e,t.props.className,xv[s],n[s])})})});ud.displayName="Fade";const Yl=ud,Sv={"aria-label":st.string,onClick:st.func,variant:st.oneOf(["white"])},Xu=v.forwardRef(({className:e,variant:t,"aria-label":n="Close",...r},l)=>c.jsx("button",{ref:l,type:"button",className:M("btn-close",t&&`btn-close-${t}`,e),"aria-label":n,...r}));Xu.displayName="CloseButton";Xu.propTypes=Sv;const sd=Xu,ad=v.forwardRef((e,t)=>{const{bsPrefix:n,show:r=!0,closeLabel:l="Close alert",closeVariant:o,className:i,children:u,variant:s="primary",onClose:a,dismissible:h,transition:p=Yl,...d}=Oh(e,{show:"onClose"}),w=H(n,"alert"),y=ze(m=>{a&&a(!1,m)}),x=p===!0?Yl:p,L=c.jsxs("div",{role:"alert",...x?void 0:d,ref:t,className:M(i,w,s&&`${w}-${s}`,h&&`${w}-dismissible`),children:[h&&c.jsx(sd,{onClick:y,"aria-label":l,variant:o}),u]});return x?c.jsx(x,{unmountOnExit:!0,...d,ref:void 0,in:r,children:L}):r?L:null});ad.displayName="Alert";const ya=Object.assign(ad,{Link:wv,Heading:ov}),cd=v.forwardRef(({as:e,bsPrefix:t,variant:n="primary",size:r,active:l=!1,disabled:o=!1,className:i,...u},s)=>{const a=H(t,"btn"),[h,{tagName:p}]=Gu({tagName:e,disabled:o,...u}),d=p;return c.jsx(d,{...h,...u,ref:s,disabled:o,className:M(i,a,l&&"active",n&&`${a}-${n}`,r&&`${a}-${r}`,u.href&&o&&"disabled")})});cd.displayName="Button";const $t=cd;function Ev(e){const t=v.useRef(e);return t.current=e,t}function fd(e){const t=Ev(e);v.useEffect(()=>()=>t.current(),[])}function kv(e,t){let n=0;return v.Children.map(e,r=>v.isValidElement(r)?t(r,n++):r)}function Cv(e,t){return v.Children.toArray(e).some(n=>v.isValidElement(n)&&n.type===t)}function Tv({as:e,bsPrefix:t,className:n,...r}){t=H(t,"col");const l=Xf(),o=Yf(),i=[],u=[];return l.forEach(s=>{const a=r[s];delete r[s];let h,p,d;typeof a=="object"&&a!=null?{span:h,offset:p,order:d}=a:h=a;const w=s!==o?`-${s}`:"";h&&i.push(h===!0?`${t}${w}`:`${t}${w}-${h}`),d!=null&&u.push(`order${w}-${d}`),p!=null&&u.push(`offset${w}-${p}`)}),[{...r,className:M(n,...i,...u)},{as:e,bsPrefix:t,spans:i}]}const dd=v.forwardRef((e,t)=>{const[{className:n,...r},{as:l="div",bsPrefix:o,spans:i}]=Tv(e);return c.jsx(l,{...r,ref:t,className:M(n,!i.length&&o)})});dd.displayName="Col";const Yu=dd,pd=v.forwardRef(({bsPrefix:e,fluid:t=!1,as:n="div",className:r,...l},o)=>{const i=H(e,"container"),u=typeof t=="string"?`-${t}`:"-fluid";return c.jsx(n,{ref:o,...l,className:M(r,t?`${i}${u}`:i)})});pd.displayName="Container";const Nv=pd;var _v=Function.prototype.bind.call(Function.prototype.call,[].slice);function mn(e,t){return _v(e.querySelectorAll(t))}function wa(e,t){if(e.contains)return e.contains(t);if(e.compareDocumentPosition)return e===t||!!(e.compareDocumentPosition(t)&16)}const jv="data-rr-ui-";function Lv(e){return`${jv}${e}`}const md=v.createContext(Kn?window:void 0);md.Provider;function Zu(){return v.useContext(md)}const Ov={type:st.string,tooltip:st.bool,as:st.elementType},Ju=v.forwardRef(({as:e="div",className:t,type:n="valid",tooltip:r=!1,...l},o)=>c.jsx(e,{...l,ref:o,className:M(t,`${n}-${r?"tooltip":"feedback"}`)}));Ju.displayName="Feedback";Ju.propTypes=Ov;const hd=Ju,Rv=v.createContext({}),pt=Rv,vd=v.forwardRef(({id:e,bsPrefix:t,className:n,type:r="checkbox",isValid:l=!1,isInvalid:o=!1,as:i="input",...u},s)=>{const{controlId:a}=v.useContext(pt);return t=H(t,"form-check-input"),c.jsx(i,{...u,ref:s,type:r,id:e||a,className:M(n,t,l&&"is-valid",o&&"is-invalid")})});vd.displayName="FormCheckInput";const gd=vd,yd=v.forwardRef(({bsPrefix:e,className:t,htmlFor:n,...r},l)=>{const{controlId:o}=v.useContext(pt);return e=H(e,"form-check-label"),c.jsx("label",{...r,ref:l,htmlFor:n||o,className:M(t,e)})});yd.displayName="FormCheckLabel";const Ji=yd,wd=v.forwardRef(({id:e,bsPrefix:t,bsSwitchPrefix:n,inline:r=!1,reverse:l=!1,disabled:o=!1,isValid:i=!1,isInvalid:u=!1,feedbackTooltip:s=!1,feedback:a,feedbackType:h,className:p,style:d,title:w="",type:y="checkbox",label:x,children:L,as:m="input",...f},g)=>{t=H(t,"form-check"),n=H(n,"form-switch");const{controlId:S}=v.useContext(pt),N=v.useMemo(()=>({controlId:e||S}),[S,e]),E=!L&&x!=null&&x!==!1||Cv(L,Ji),C=c.jsx(gd,{...f,type:y==="switch"?"checkbox":y,ref:g,isValid:i,isInvalid:u,disabled:o,as:m});return c.jsx(pt.Provider,{value:N,children:c.jsx("div",{style:d,className:M(p,E&&t,r&&`${t}-inline`,l&&`${t}-reverse`,y==="switch"&&n),children:L||c.jsxs(c.Fragment,{children:[C,E&&c.jsx(Ji,{title:w,children:x}),a&&c.jsx(hd,{type:h,tooltip:s,children:a})]})})})});wd.displayName="FormCheck";const Zl=Object.assign(wd,{Input:gd,Label:Ji}),xd=v.forwardRef(({bsPrefix:e,type:t,size:n,htmlSize:r,id:l,className:o,isValid:i=!1,isInvalid:u=!1,plaintext:s,readOnly:a,as:h="input",...p},d)=>{const{controlId:w}=v.useContext(pt);return e=H(e,"form-control"),c.jsx(h,{...p,type:t,size:r,ref:d,readOnly:a,id:l||w,className:M(o,s?`${e}-plaintext`:e,n&&`${e}-${n}`,t==="color"&&`${e}-color`,i&&"is-valid",u&&"is-invalid")})});xd.displayName="FormControl";const Pv=Object.assign(xd,{Feedback:hd}),Sd=v.forwardRef(({className:e,bsPrefix:t,as:n="div",...r},l)=>(t=H(t,"form-floating"),c.jsx(n,{ref:l,className:M(e,t),...r})));Sd.displayName="FormFloating";const Fv=Sd,Ed=v.forwardRef(({controlId:e,as:t="div",...n},r)=>{const l=v.useMemo(()=>({controlId:e}),[e]);return c.jsx(pt.Provider,{value:l,children:c.jsx(t,{...n,ref:r})})});Ed.displayName="FormGroup";const kd=Ed,Cd=v.forwardRef(({as:e="label",bsPrefix:t,column:n=!1,visuallyHidden:r=!1,className:l,htmlFor:o,...i},u)=>{const{controlId:s}=v.useContext(pt);t=H(t,"form-label");let a="col-form-label";typeof n=="string"&&(a=`${a} ${a}-${n}`);const h=M(l,t,r&&"visually-hidden",n&&a);return o=o||s,n?c.jsx(Yu,{ref:u,as:"label",className:h,htmlFor:o,...i}):c.jsx(e,{ref:u,className:h,htmlFor:o,...i})});Cd.displayName="FormLabel";const Mv=Cd,Td=v.forwardRef(({bsPrefix:e,className:t,id:n,...r},l)=>{const{controlId:o}=v.useContext(pt);return e=H(e,"form-range"),c.jsx("input",{...r,type:"range",ref:l,className:M(t,e),id:n||o})});Td.displayName="FormRange";const zv=Td,Nd=v.forwardRef(({bsPrefix:e,size:t,htmlSize:n,className:r,isValid:l=!1,isInvalid:o=!1,id:i,...u},s)=>{const{controlId:a}=v.useContext(pt);return e=H(e,"form-select"),c.jsx("select",{...u,size:n,ref:s,className:M(r,e,t&&`${e}-${t}`,l&&"is-valid",o&&"is-invalid"),id:i||a})});Nd.displayName="FormSelect";const Iv=Nd,_d=v.forwardRef(({bsPrefix:e,className:t,as:n="small",muted:r,...l},o)=>(e=H(e,"form-text"),c.jsx(n,{...l,ref:o,className:M(t,e,r&&"text-muted")})));_d.displayName="FormText";const $v=_d,jd=v.forwardRef((e,t)=>c.jsx(Zl,{...e,ref:t,type:"switch"}));jd.displayName="Switch";const Dv=Object.assign(jd,{Input:Zl.Input,Label:Zl.Label}),Ld=v.forwardRef(({bsPrefix:e,className:t,children:n,controlId:r,label:l,...o},i)=>(e=H(e,"form-floating"),c.jsxs(kd,{ref:i,className:M(t,e),controlId:r,...o,children:[n,c.jsx("label",{htmlFor:r,children:l})]})));Ld.displayName="FloatingLabel";const Av=Ld,Bv={_ref:st.any,validated:st.bool,as:st.elementType},qu=v.forwardRef(({className:e,validated:t,as:n="form",...r},l)=>c.jsx(n,{...r,ref:l,className:M(e,t&&"was-validated")}));qu.displayName="Form";qu.propTypes=Bv;const re=Object.assign(qu,{Group:kd,Control:Pv,Floating:Fv,Check:Zl,Switch:Dv,Label:Mv,Text:$v,Range:zv,Select:Iv,FloatingLabel:Av});var cl;function xa(e){if((!cl&&cl!==0||e)&&Kn){var t=document.createElement("div");t.style.position="absolute",t.style.top="-9999px",t.style.width="50px",t.style.height="50px",t.style.overflow="scroll",document.body.appendChild(t),cl=t.offsetWidth-t.clientWidth,document.body.removeChild(t)}return cl}function Go(e){e===void 0&&(e=vo());try{var t=e.activeElement;return!t||!t.nodeName?null:t}catch{return e.body}}function Uv(e=document){const t=e.defaultView;return Math.abs(t.innerWidth-e.documentElement.clientWidth)}const Sa=Lv("modal-open");class Hv{constructor({ownerDocument:t,handleContainerOverflow:n=!0,isRTL:r=!1}={}){this.handleContainerOverflow=n,this.isRTL=r,this.modals=[],this.ownerDocument=t}getScrollbarWidth(){return Uv(this.ownerDocument)}getElement(){return(this.ownerDocument||document).body}setModalAttributes(t){}removeModalAttributes(t){}setContainerStyle(t){const n={overflow:"hidden"},r=this.isRTL?"paddingLeft":"paddingRight",l=this.getElement();t.style={overflow:l.style.overflow,[r]:l.style[r]},t.scrollBarWidth&&(n[r]=`${parseInt(qt(l,r)||"0",10)+t.scrollBarWidth}px`),l.setAttribute(Sa,""),qt(l,n)}reset(){[...this.modals].forEach(t=>this.remove(t))}removeContainerStyle(t){const n=this.getElement();n.removeAttribute(Sa),Object.assign(n.style,t.style)}add(t){let n=this.modals.indexOf(t);return n!==-1||(n=this.modals.length,this.modals.push(t),this.setModalAttributes(t),n!==0)||(this.state={scrollBarWidth:this.getScrollbarWidth(),style:{}},this.handleContainerOverflow&&this.setContainerStyle(this.state)),n}remove(t){const n=this.modals.indexOf(t);n!==-1&&(this.modals.splice(n,1),!this.modals.length&&this.handleContainerOverflow&&this.removeContainerStyle(this.state),this.removeModalAttributes(t))}isTopModal(t){return!!this.modals.length&&this.modals[this.modals.length-1]===t}}const bu=Hv,Xo=(e,t)=>Kn?e==null?(t||vo()).body:(typeof e=="function"&&(e=e()),e&&"current"in e&&(e=e.current),e&&("nodeType"in e||e.getBoundingClientRect)?e:null):null;function Wv(e,t){const n=Zu(),[r,l]=v.useState(()=>Xo(e,n==null?void 0:n.document));if(!r){const o=Xo(e);o&&l(o)}return v.useEffect(()=>{t&&r&&t(r)},[t,r]),v.useEffect(()=>{const o=Xo(e);o!==r&&l(o)},[e,r]),r}function Vv({children:e,in:t,onExited:n,mountOnEnter:r,unmountOnExit:l}){const o=v.useRef(null),i=v.useRef(t),u=ze(n);v.useEffect(()=>{t?i.current=!0:u(o.current)},[t,u]);const s=go(o,e.ref),a=v.cloneElement(e,{ref:s});return t?a:l||!i.current&&r?null:a}function Qv({in:e,onTransition:t}){const n=v.useRef(null),r=v.useRef(!0),l=ze(t);return ga(()=>{if(!n.current)return;let o=!1;return l({in:e,element:n.current,initial:r.current,isStale:()=>o}),()=>{o=!0}},[e,l]),ga(()=>(r.current=!1,()=>{r.current=!0}),[]),n}function Kv({children:e,in:t,onExited:n,onEntered:r,transition:l}){const[o,i]=v.useState(!t);t&&o&&i(!1);const u=Qv({in:!!t,onTransition:a=>{const h=()=>{a.isStale()||(a.in?r==null||r(a.element,a.initial):(i(!0),n==null||n(a.element)))};Promise.resolve(l(a)).then(h,p=>{throw a.in||i(!0),p})}}),s=go(u,e.ref);return o&&!t?null:v.cloneElement(e,{ref:s})}function Ea(e,t,n){return e?c.jsx(e,Object.assign({},n)):t?c.jsx(Kv,Object.assign({},n,{transition:t})):c.jsx(Vv,Object.assign({},n))}function Gv(e){return e.code==="Escape"||e.keyCode===27}const Xv=["show","role","className","style","children","backdrop","keyboard","onBackdropClick","onEscapeKeyDown","transition","runTransition","backdropTransition","runBackdropTransition","autoFocus","enforceFocus","restoreFocus","restoreFocusOptions","renderDialog","renderBackdrop","manager","container","onShow","onHide","onExit","onExited","onExiting","onEnter","onEntering","onEntered"];function Yv(e,t){if(e==null)return{};var n={},r=Object.keys(e),l,o;for(o=0;o=0)&&(n[l]=e[l]);return n}let Yo;function Zv(e){return Yo||(Yo=new bu({ownerDocument:e==null?void 0:e.document})),Yo}function Jv(e){const t=Zu(),n=e||Zv(t),r=v.useRef({dialog:null,backdrop:null});return Object.assign(r.current,{add:()=>n.add(r.current),remove:()=>n.remove(r.current),isTopModal:()=>n.isTopModal(r.current),setDialogRef:v.useCallback(l=>{r.current.dialog=l},[]),setBackdropRef:v.useCallback(l=>{r.current.backdrop=l},[])})}const Od=v.forwardRef((e,t)=>{let{show:n=!1,role:r="dialog",className:l,style:o,children:i,backdrop:u=!0,keyboard:s=!0,onBackdropClick:a,onEscapeKeyDown:h,transition:p,runTransition:d,backdropTransition:w,runBackdropTransition:y,autoFocus:x=!0,enforceFocus:L=!0,restoreFocus:m=!0,restoreFocusOptions:f,renderDialog:g,renderBackdrop:S=K=>c.jsx("div",Object.assign({},K)),manager:N,container:E,onShow:C,onHide:_=()=>{},onExit:$,onExited:P,onExiting:se,onEnter:Ge,onEntering:Xe,onEntered:sn}=e,Gn=Yv(e,Xv);const Oe=Zu(),Ye=Wv(E),T=Jv(N),O=uv(),R=sv(n),[D,B]=v.useState(!n),pe=v.useRef(null);v.useImperativeHandle(t,()=>T,[T]),Kn&&!R&&n&&(pe.current=Go(Oe==null?void 0:Oe.document)),n&&D&&B(!1);const Re=ze(()=>{if(T.add(),cn.current=Xl(document,"keydown",wo),an.current=Xl(document,"focus",()=>setTimeout(Pe),!0),C&&C(),x){var K,Vr;const Zn=Go((K=(Vr=T.dialog)==null?void 0:Vr.ownerDocument)!=null?K:Oe==null?void 0:Oe.document);T.dialog&&Zn&&!wa(T.dialog,Zn)&&(pe.current=Zn,T.dialog.focus())}}),tt=ze(()=>{if(T.remove(),cn.current==null||cn.current(),an.current==null||an.current(),m){var K;(K=pe.current)==null||K.focus==null||K.focus(f),pe.current=null}});v.useEffect(()=>{!n||!Ye||Re()},[n,Ye,Re]),v.useEffect(()=>{D&&tt()},[D,tt]),fd(()=>{tt()});const Pe=ze(()=>{if(!L||!O()||!T.isTopModal())return;const K=Go(Oe==null?void 0:Oe.document);T.dialog&&K&&!wa(T.dialog,K)&&T.dialog.focus()}),vt=ze(K=>{K.target===K.currentTarget&&(a==null||a(K),u===!0&&_())}),wo=ze(K=>{s&&Gv(K)&&T.isTopModal()&&(h==null||h(K),K.defaultPrevented||_())}),an=v.useRef(),cn=v.useRef(),Xn=(...K)=>{B(!0),P==null||P(...K)};if(!Ye)return null;const Wr=Object.assign({role:r,ref:T.setDialogRef,"aria-modal":r==="dialog"?!0:void 0},Gn,{style:o,className:l,tabIndex:-1});let Yn=g?g(Wr):c.jsx("div",Object.assign({},Wr,{children:v.cloneElement(i,{role:"document"})}));Yn=Ea(p,d,{unmountOnExit:!0,mountOnEnter:!0,appear:!0,in:!!n,onExit:$,onExiting:se,onExited:Xn,onEnter:Ge,onEntering:Xe,onEntered:sn,children:Yn});let Ht=null;return u&&(Ht=S({ref:T.setBackdropRef,onClick:vt}),Ht=Ea(w,y,{in:!!n,appear:!0,mountOnEnter:!0,unmountOnExit:!0,children:Ht})),c.jsx(c.Fragment,{children:jn.createPortal(c.jsxs(c.Fragment,{children:[Ht,Yn]}),Ye)})});Od.displayName="Modal";const qv=Object.assign(Od,{Manager:bu});function bv(e,t){return e.classList?!!t&&e.classList.contains(t):(" "+(e.className.baseVal||e.className)+" ").indexOf(" "+t+" ")!==-1}function e0(e,t){e.classList?e.classList.add(t):bv(e,t)||(typeof e.className=="string"?e.className=e.className+" "+t:e.setAttribute("class",(e.className&&e.className.baseVal||"")+" "+t))}function ka(e,t){return e.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}function t0(e,t){e.classList?e.classList.remove(t):typeof e.className=="string"?e.className=ka(e.className,t):e.setAttribute("class",ka(e.className&&e.className.baseVal||"",t))}const hn={FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top",NAVBAR_TOGGLER:".navbar-toggler"};class n0 extends bu{adjustAndStore(t,n,r){const l=n.style[t];n.dataset[t]=l,qt(n,{[t]:`${parseFloat(qt(n,t))+r}px`})}restore(t,n){const r=n.dataset[t];r!==void 0&&(delete n.dataset[t],qt(n,{[t]:r}))}setContainerStyle(t){super.setContainerStyle(t);const n=this.getElement();if(e0(n,"modal-open"),!t.scrollBarWidth)return;const r=this.isRTL?"paddingLeft":"paddingRight",l=this.isRTL?"marginLeft":"marginRight";mn(n,hn.FIXED_CONTENT).forEach(o=>this.adjustAndStore(r,o,t.scrollBarWidth)),mn(n,hn.STICKY_CONTENT).forEach(o=>this.adjustAndStore(l,o,-t.scrollBarWidth)),mn(n,hn.NAVBAR_TOGGLER).forEach(o=>this.adjustAndStore(l,o,t.scrollBarWidth))}removeContainerStyle(t){super.removeContainerStyle(t);const n=this.getElement();t0(n,"modal-open");const r=this.isRTL?"paddingLeft":"paddingRight",l=this.isRTL?"marginLeft":"marginRight";mn(n,hn.FIXED_CONTENT).forEach(o=>this.restore(r,o)),mn(n,hn.STICKY_CONTENT).forEach(o=>this.restore(l,o)),mn(n,hn.NAVBAR_TOGGLER).forEach(o=>this.restore(l,o))}}let Zo;function r0(e){return Zo||(Zo=new n0(e)),Zo}const Rd=v.forwardRef(({className:e,bsPrefix:t,as:n="div",...r},l)=>(t=H(t,"modal-body"),c.jsx(n,{ref:l,className:M(e,t),...r})));Rd.displayName="ModalBody";const l0=Rd,o0=v.createContext({onHide(){}}),Pd=o0,Fd=v.forwardRef(({bsPrefix:e,className:t,contentClassName:n,centered:r,size:l,fullscreen:o,children:i,scrollable:u,...s},a)=>{e=H(e,"modal");const h=`${e}-dialog`,p=typeof o=="string"?`${e}-fullscreen-${o}`:`${e}-fullscreen`;return c.jsx("div",{...s,ref:a,className:M(h,t,l&&`${e}-${l}`,r&&`${h}-centered`,u&&`${h}-scrollable`,o&&p),children:c.jsx("div",{className:M(`${e}-content`,n),children:i})})});Fd.displayName="ModalDialog";const Md=Fd,zd=v.forwardRef(({className:e,bsPrefix:t,as:n="div",...r},l)=>(t=H(t,"modal-footer"),c.jsx(n,{ref:l,className:M(e,t),...r})));zd.displayName="ModalFooter";const i0=zd,u0=v.forwardRef(({closeLabel:e="Close",closeVariant:t,closeButton:n=!1,onHide:r,children:l,...o},i)=>{const u=v.useContext(Pd),s=ze(()=>{u==null||u.onHide(),r==null||r()});return c.jsxs("div",{ref:i,...o,children:[l,n&&c.jsx(sd,{"aria-label":e,variant:t,onClick:s})]})}),s0=u0,Id=v.forwardRef(({bsPrefix:e,className:t,closeLabel:n="Close",closeButton:r=!1,...l},o)=>(e=H(e,"modal-header"),c.jsx(s0,{ref:o,...l,className:M(t,e),closeLabel:n,closeButton:r})));Id.displayName="ModalHeader";const a0=Id,c0=nd("h4"),$d=v.forwardRef(({className:e,bsPrefix:t,as:n=c0,...r},l)=>(t=H(t,"modal-title"),c.jsx(n,{ref:l,className:M(e,t),...r})));$d.displayName="ModalTitle";const f0=$d;function d0(e){return c.jsx(Yl,{...e,timeout:null})}function p0(e){return c.jsx(Yl,{...e,timeout:null})}const Dd=v.forwardRef(({bsPrefix:e,className:t,style:n,dialogClassName:r,contentClassName:l,children:o,dialogAs:i=Md,"aria-labelledby":u,"aria-describedby":s,"aria-label":a,show:h=!1,animation:p=!0,backdrop:d=!0,keyboard:w=!0,onEscapeKeyDown:y,onShow:x,onHide:L,container:m,autoFocus:f=!0,enforceFocus:g=!0,restoreFocus:S=!0,restoreFocusOptions:N,onEntered:E,onExit:C,onExiting:_,onEnter:$,onEntering:P,onExited:se,backdropClassName:Ge,manager:Xe,...sn},Gn)=>{const[Oe,Ye]=v.useState({}),[T,O]=v.useState(!1),R=v.useRef(!1),D=v.useRef(!1),B=v.useRef(null),[pe,Re]=iv(),tt=go(Gn,Re),Pe=ze(L),vt=Mh();e=H(e,"modal");const wo=v.useMemo(()=>({onHide:Pe}),[Pe]);function an(){return Xe||r0({isRTL:vt})}function cn(I){if(!Kn)return;const fn=an().getScrollbarWidth()>0,rs=I.scrollHeight>vo(I).documentElement.clientHeight;Ye({paddingRight:fn&&!rs?xa():void 0,paddingLeft:!fn&&rs?xa():void 0})}const Xn=ze(()=>{pe&&cn(pe.dialog)});fd(()=>{Zi(window,"resize",Xn),B.current==null||B.current()});const Wr=()=>{R.current=!0},Yn=I=>{R.current&&pe&&I.target===pe.dialog&&(D.current=!0),R.current=!1},Ht=()=>{O(!0),B.current=td(pe.dialog,()=>{O(!1)})},K=I=>{I.target===I.currentTarget&&Ht()},Vr=I=>{if(d==="static"){K(I);return}if(D.current||I.target!==I.currentTarget){D.current=!1;return}L==null||L()},Zn=I=>{w?y==null||y(I):(I.preventDefault(),d==="static"&&Ht())},Zd=(I,fn)=>{I&&cn(I),$==null||$(I,fn)},Jd=I=>{B.current==null||B.current(),C==null||C(I)},qd=(I,fn)=>{P==null||P(I,fn),ed(window,"resize",Xn)},bd=I=>{I&&(I.style.display=""),se==null||se(I),Zi(window,"resize",Xn)},ep=v.useCallback(I=>c.jsx("div",{...I,className:M(`${e}-backdrop`,Ge,!p&&"show")}),[p,Ge,e]),ns={...n,...Oe};ns.display="block";const tp=I=>c.jsx("div",{role:"dialog",...I,style:ns,className:M(t,e,T&&`${e}-static`,!p&&"show"),onClick:d?Vr:void 0,onMouseUp:Yn,"aria-label":a,"aria-labelledby":u,"aria-describedby":s,children:c.jsx(i,{...sn,onMouseDown:Wr,className:r,contentClassName:l,children:o})});return c.jsx(Pd.Provider,{value:wo,children:c.jsx(qv,{show:h,ref:tt,backdrop:d,container:m,keyboard:!0,autoFocus:f,enforceFocus:g,restoreFocus:S,restoreFocusOptions:N,onEscapeKeyDown:Zn,onShow:x,onHide:L,onEnter:Zd,onEntering:qd,onEntered:E,onExit:Jd,onExiting:_,onExited:bd,manager:an(),transition:p?d0:void 0,backdropTransition:p?p0:void 0,renderBackdrop:ep,renderDialog:tp})})});Dd.displayName="Modal";const ee=Object.assign(Dd,{Body:l0,Header:a0,Title:f0,Footer:i0,Dialog:Md,TRANSITION_DURATION:300,BACKDROP_TRANSITION_DURATION:150}),Ca=1e3;function m0(e,t,n){const r=(e-t)/(n-t)*100;return Math.round(r*Ca)/Ca}function Ta({min:e,now:t,max:n,label:r,visuallyHidden:l,striped:o,animated:i,className:u,style:s,variant:a,bsPrefix:h,...p},d){return c.jsx("div",{ref:d,...p,role:"progressbar",className:M(u,`${h}-bar`,{[`bg-${a}`]:a,[`${h}-bar-animated`]:i,[`${h}-bar-striped`]:i||o}),style:{width:`${m0(t,e,n)}%`,...s},"aria-valuenow":t,"aria-valuemin":e,"aria-valuemax":n,children:l?c.jsx("span",{className:"visually-hidden",children:r}):r})}const Ad=v.forwardRef(({isChild:e=!1,...t},n)=>{const r={min:0,max:100,animated:!1,visuallyHidden:!1,striped:!1,...t};if(r.bsPrefix=H(r.bsPrefix,"progress"),e)return Ta(r,n);const{min:l,now:o,max:i,label:u,visuallyHidden:s,striped:a,animated:h,bsPrefix:p,variant:d,className:w,children:y,...x}=r;return c.jsx("div",{ref:n,...x,className:M(w,p),children:y?kv(y,L=>v.cloneElement(L,{isChild:!0})):Ta({min:l,now:o,max:i,label:u,visuallyHidden:s,striped:a,animated:h,bsPrefix:p,variant:d},n)})});Ad.displayName="ProgressBar";const h0=Ad,Bd=v.forwardRef(({bsPrefix:e,className:t,as:n="div",...r},l)=>{const o=H(e,"row"),i=Xf(),u=Yf(),s=`${o}-cols`,a=[];return i.forEach(h=>{const p=r[h];delete r[h];let d;p!=null&&typeof p=="object"?{cols:d}=p:d=p;const w=h!==u?`-${h}`:"";d!=null&&a.push(`${s}${w}-${d}`)}),c.jsx(n,{ref:l,...r,className:M(t,o,...a)})});Bd.displayName="Row";const Ud=Bd,Hd=v.forwardRef(({bsPrefix:e,variant:t,animation:n="border",size:r,as:l="div",className:o,...i},u)=>{e=H(e,"spinner");const s=`${e}-${n}`;return c.jsx(l,{ref:u,...i,className:M(o,s,r&&`${s}-${r}`,t&&`text-${t}`)})});Hd.displayName="Spinner";const Hn=Hd,Jl="initializing",Wd="paused",Vd="live",v0="error";function es(e,t){let n,r=t;const l=async()=>{if(r=await e(),r==null)throw"asyncCallback returned null or undefined";o()};let o=()=>{n=setTimeout(l,r)};return o(),()=>{clearTimeout(n)}}function Qd(e,t){let n;const r=async()=>{await e().then(()=>!1,()=>!0)&&l()};let l=o=>{n=setTimeout(r,o!==void 0?o:t)};return l(0),()=>clearTimeout(n)}const kl=e=>{const{onClick:t,disabled:n,color:r,children:l,className:o,...i}=e,u=a=>{a.stopPropagation(),!n&&t()},s=r?`text-${r}`:"";return c.jsx("a",{className:`p-1 ${s} ${o}`,onClick:u,href:"#",...i,children:l})},ln=e=>{var r,l,o;let{error:t,remove:n}=e;return t==null?null:c.jsxs(ya,{variant:"danger",onClose:n,dismissible:n!=null,children:[c.jsx(ya.Heading,{children:t.text}),((r=t.details)==null?void 0:r.statusText)&&c.jsx("p",{children:c.jsx("strong",{children:(l=t.details)==null?void 0:l.statusText})}),c.jsx("pre",{children:(o=t.details)==null?void 0:o.text})]})},g0=({id:e,show:t,onHide:n})=>{if(!t)return null;const[r,l]=v.useState(!1),[o,i]=v.useState(null),[u,s]=v.useState(!1),a=v.useContext(Hr),h=v.useContext(Ut),p=()=>{l(!1),i(null),s(!1),n()},d=()=>{s(!0),(r?h.delete:h.forget)(e).then(()=>{a.refreshTorrents(),p()}).catch(y=>{i({text:`Error deleting torrent id=${e}`,details:y}),s(!1)})};return c.jsxs(ee,{show:t,onHide:p,children:[c.jsx(ee.Header,{closeButton:!0,children:"Delete torrent"}),c.jsxs(ee.Body,{children:[c.jsx(re,{children:c.jsx(re.Group,{controlId:"delete-torrent",children:c.jsx(re.Check,{type:"checkbox",label:"Also delete files",checked:r,onChange:()=>l(!r)})})}),o&&c.jsx(ln,{error:o})]}),c.jsxs(ee.Footer,{children:[u&&c.jsx(Hn,{}),c.jsx($t,{variant:"primary",onClick:d,disabled:u,children:"OK"}),c.jsx($t,{variant:"secondary",onClick:p,children:"Cancel"})]})]})};var Kd={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},Na=he.createContext&&he.createContext(Kd),Mt=globalThis&&globalThis.__assign||function(){return Mt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n{let n=t.state,[r,l]=v.useState(!1),[o,i]=v.useState(!1),u=v.useContext(Qf);const s=n=="live",a=n=="paused"||n=="error",h=v.useContext(Hr),p=v.useContext(Ut),d=()=>{l(!0),p.start(e).then(()=>{u.refresh()},L=>{h.setCloseableError({text:`Error starting torrent id=${e}`,details:L})}).finally(()=>l(!1))},w=()=>{l(!0),p.pause(e).then(()=>{u.refresh()},L=>{h.setCloseableError({text:`Error pausing torrent id=${e}`,details:L})}).finally(()=>l(!1))},y=()=>{l(!0),i(!0)},x=()=>{l(!1),i(!1)};return c.jsx(Ud,{children:c.jsxs(Yu,{children:[a&&c.jsx(kl,{onClick:d,disabled:r,color:"success",children:c.jsx(E0,{})}),s&&c.jsx(kl,{onClick:w,disabled:r,children:c.jsx(S0,{})}),c.jsx(kl,{onClick:y,disabled:r,color:"danger",children:c.jsx(k0,{})}),c.jsx(g0,{id:e,show:o,onHide:x})]})})};function ts(e){if(e===0)return"0 Bytes";const t=1024,n=["Bytes","KB","MB","GB"],r=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/Math.pow(t,r)).toFixed(2))+" "+n[r]}const T0=({statsResponse:e})=>{var t,n;switch(e.state){case Wd:return"Paused";case Jl:return"Checking files";case v0:return"Error"}return e.state!="live"||e.live===null?e.state:c.jsxs(c.Fragment,{children:[!e.finished&&c.jsxs("div",{className:"download-speed",children:["↓ ",(t=e.live.download_speed)==null?void 0:t.human_readable]}),c.jsxs("div",{className:"upload-speed",children:["↑ ",(n=e.live.upload_speed)==null?void 0:n.human_readable,e.live.snapshot.uploaded_bytes>0&&c.jsxs("span",{children:[" ","(",ts(e.live.snapshot.uploaded_bytes),")"]})]})]})},yt=({size:e,label:t,children:n})=>c.jsxs(Yu,{md:e||1,className:"py-3",children:[c.jsx("div",{className:"fw-bold",children:t}),n]});function N0(e){return e.files.filter(n=>n.included).reduce((n,r)=>n.length>r.length?n:r).name}function _0(e){const t=Math.floor(e/3600),n=Math.floor(e%3600/60),r=e%60,l=(o,i)=>o>0?`${o}${i}`:"";return t>0?`${l(t,"h")} ${l(n,"m")}`.trim():n>0?`${l(n,"m")} ${l(r,"s")}`.trim():`${l(r,"s")}`.trim()}function j0(e){var n,r,l;let t=(l=(r=(n=e==null?void 0:e.live)==null?void 0:n.time_remaining)==null?void 0:r.duration)==null?void 0:l.secs;return t==null?"N/A":_0(t)}const L0=({id:e,detailsResponse:t,statsResponse:n})=>{const r=(n==null?void 0:n.state)??"",l=n==null?void 0:n.error,o=(n==null?void 0:n.total_bytes)??1,i=(n==null?void 0:n.progress_bytes)??0,u=(n==null?void 0:n.finished)||!1,s=l?100:i/o*100,a=(r==Jl||r==Vd)&&!u,h=l?"Error":`${s.toFixed(2)}%`,p=l?"danger":u?"success":r==Jl?"warning":"primary",d=()=>{var x;let y=(x=n==null?void 0:n.live)==null?void 0:x.snapshot.peer_stats;return y?`${y.live} / ${y.seen}`:""};let w=[];return l?w.push("bg-warning"):e%2==0&&w.push("bg-light"),c.jsxs(Ud,{className:w.join(" "),children:[c.jsx(yt,{size:3,label:"Name",children:t?c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"text-truncate",children:N0(t)}),l&&c.jsxs("p",{className:"text-danger",children:[c.jsx("strong",{children:"Error:"})," ",l]})]}):c.jsx(Hn,{})}),n?c.jsxs(c.Fragment,{children:[c.jsx(yt,{label:"Size",children:`${ts(o)} `}),c.jsx(yt,{size:2,label:(r==Wd,"Progress"),children:c.jsx(h0,{now:s,label:h,animated:a,variant:p})}),c.jsx(yt,{size:2,label:"Speed",children:c.jsx(T0,{statsResponse:n})}),c.jsx(yt,{label:"ETA",children:j0(n)}),c.jsx(yt,{size:2,label:"Live / Seen",children:d()}),c.jsx(yt,{label:"Actions",children:c.jsx(C0,{id:e,statsResponse:n})})]}):c.jsx(yt,{label:"Loading stats",size:8,children:c.jsx(Hn,{})})]})},O0=({id:e,torrent:t})=>{const[n,r]=v.useState(null),[l,o]=v.useState(null),[i,u]=v.useState(0),s=v.useContext(Ut),a=()=>{u(i+1)};return v.useEffect(()=>{if(n===null)return Qd(async()=>{await s.getTorrentDetails(t.id).then(r)},1e3)},[n]),v.useEffect(()=>es(async()=>s.getTorrentStats(t.id).then(w=>(o(w),w)).then(w=>w.state==Jl||w.state==Vd?1e3:1e4,()=>1e4),0),[i]),c.jsx(Qf.Provider,{value:{refresh:a},children:c.jsx(L0,{id:e,detailsResponse:n,statsResponse:l})})},R0=e=>{if(e.torrents===null&&e.loading)return c.jsx(Hn,{});if(e.torrents!==null)return e.torrents.length===0?c.jsx("div",{className:"text-center",children:c.jsx("p",{children:"No existing torrents found. Add them through buttons below."})}):c.jsx("div",{style:{fontSize:"smaller"},children:e.torrents.map(t=>c.jsx(O0,{id:t.id,torrent:t},t.id))})},P0=e=>{let{onHide:t,listTorrentResponse:n,listTorrentError:r,listTorrentLoading:l,data:o}=e;const[i,u]=v.useState([]),[s,a]=v.useState(!1),[h,p]=v.useState(null),[d,w]=v.useState(!1),[y,x]=v.useState(""),L=v.useContext(Hr),m=v.useContext(Ut);v.useEffect(()=>{console.log(n),u(n?n.details.files.map((E,C)=>C):[]),x((n==null?void 0:n.output_folder)||"")},[n]);const f=()=>{t(),u([]),p(null),a(!1)},g=E=>{i.includes(E)?u(i.filter(C=>C!==E)):u([...i,E])},S=async()=>{if(!n)return;a(!0);let E=n.seen_peers?n.seen_peers.slice(0,32):null,C={overwrite:!0,only_files:i,initial_peers:E,output_folder:y};d&&(C.peer_opts={connect_timeout:20,read_write_timeout:60}),m.uploadTorrent(o,C).then(()=>{t(),L.refreshTorrents()},_=>{p({text:"Error starting torrent",details:_})}).finally(()=>a(!1))},N=()=>{if(l)return c.jsx(Hn,{});if(r)return c.jsx(ln,{error:r});if(n)return c.jsxs(re,{children:[c.jsxs("fieldset",{className:"mb-4",children:[c.jsx("legend",{children:"Pick the files to download"}),n.details.files.map((E,C)=>c.jsx(re.Group,{controlId:`check-${C}`,children:c.jsx(re.Check,{type:"checkbox",label:`${E.name} (${ts(E.length)})`,checked:i.includes(C),onChange:()=>g(C)})},C))]}),c.jsxs("fieldset",{children:[c.jsx("legend",{children:"Options"}),c.jsxs(re.Group,{controlId:"output-folder",className:"mb-3",children:[c.jsx(re.Label,{children:"Output folder"}),c.jsx(re.Control,{type:"text",value:y,onChange:E=>x(E.target.value)})]}),c.jsxs(re.Group,{controlId:"unpopular-torrent",className:"mb-3",children:[c.jsx(re.Check,{type:"checkbox",label:"Increase timeouts",checked:d,onChange:()=>w(!d)}),c.jsx("small",{id:"emailHelp",className:"form-text text-muted",children:"This might be useful for unpopular torrents with few peers. It will slow down fast torrents though."})]})]})]})};return c.jsxs(ee,{show:!0,onHide:f,size:"lg",children:[c.jsx(ee.Header,{closeButton:!0,children:c.jsx(ee.Title,{children:"Add torrent"})}),c.jsxs(ee.Body,{children:[N(),c.jsx(ln,{error:h})]}),c.jsxs(ee.Footer,{children:[s&&c.jsx(Hn,{}),c.jsx($t,{variant:"primary",onClick:S,disabled:l||s||i.length==0,children:"OK"}),c.jsx($t,{variant:"secondary",onClick:f,children:"Cancel"})]})]})},Xd=({buttonText:e,onClick:t,data:n,resetData:r,variant:l})=>{const[o,i]=v.useState(!1),[u,s]=v.useState(null),[a,h]=v.useState(null),p=v.useContext(Ut);v.useEffect(()=>{if(n===null)return;let w=setTimeout(async()=>{i(!0);try{const y=await p.uploadTorrent(n,{list_only:!0});s(y)}catch(y){h({text:"Error listing torrent files",details:y})}finally{i(!1)}},0);return()=>clearTimeout(w)},[n]);const d=()=>{r(),h(null),s(null),i(!1)};return c.jsxs(c.Fragment,{children:[c.jsx($t,{variant:l,onClick:t,className:"m-1",children:e}),n&&c.jsx(P0,{onHide:d,listTorrentError:a,listTorrentResponse:u,data:n,listTorrentLoading:o})]})},F0=({show:e,setUrl:t,cancel:n})=>{let[r,l]=v.useState("");return c.jsxs(ee,{show:e,onHide:n,size:"lg",children:[c.jsx(ee.Header,{closeButton:!0,children:c.jsx(ee.Title,{children:"Add torrent"})}),c.jsx(ee.Body,{children:c.jsx(re,{children:c.jsxs(re.Group,{className:"mb-3",controlId:"url",children:[c.jsx(re.Label,{children:"Enter magnet or HTTP(S) URL to the .torrent"}),c.jsx(re.Control,{value:r,placeholder:"magnet:?xt=urn:btih:...",onChange:o=>{l(o.target.value)}})]})})}),c.jsxs(ee.Footer,{children:[c.jsx($t,{variant:"primary",onClick:()=>{t(r),l("")},disabled:r.length==0,children:"OK"}),c.jsx($t,{variant:"secondary",onClick:n,children:"Cancel"})]})]})},M0=()=>{let[e,t]=v.useState(null),[n,r]=v.useState(!1);return c.jsxs(c.Fragment,{children:[c.jsx(Xd,{variant:"primary",buttonText:"Add Torrent from Magnet / URL",onClick:()=>{r(!0)},data:e,resetData:()=>t(null)}),c.jsx(F0,{show:n,setUrl:l=>{r(!1),t(l)},cancel:()=>{r(!1),t(null)}})]})},z0=()=>{const e=v.useRef(),[t,n]=v.useState(null),r=async()=>{var u;if(!((u=e==null?void 0:e.current)!=null&&u.files))return;const i=e.current.files[0];n(i)},l=()=>{e!=null&&e.current&&(e.current.value="",n(null))},o=()=>{e!=null&&e.current&&e.current.click()};return c.jsxs(c.Fragment,{children:[c.jsx("input",{type:"file",ref:e,accept:".torrent",onChange:r,className:"d-none"}),c.jsx(Xd,{variant:"secondary",buttonText:"Upload .torrent File",onClick:o,data:t,resetData:l})]})},I0=()=>c.jsxs("div",{id:"buttons-container",className:"mt-3",children:[c.jsx(M0,{}),c.jsx(z0,{})]}),$0=e=>{let t=v.useContext(Hr);return c.jsxs(Nv,{children:[c.jsx(ln,{error:e.closeableError,remove:()=>t.setCloseableError(null)}),c.jsx(ln,{error:e.otherError}),c.jsx(R0,{torrents:e.torrents,loading:e.torrentsLoading}),c.jsx(I0,{})]})};var D0="Expected a function",_a=0/0,A0="[object Symbol]",B0=/^\s+|\s+$/g,U0=/^[-+]0x[0-9a-f]+$/i,H0=/^0b[01]+$/i,W0=/^0o[0-7]+$/i,V0=parseInt,Q0=typeof Qr=="object"&&Qr&&Qr.Object===Object&&Qr,K0=typeof self=="object"&&self&&self.Object===Object&&self,G0=Q0||K0||Function("return this")(),X0=Object.prototype,Y0=X0.toString,Z0=Math.max,J0=Math.min,Jo=function(){return G0.Date.now()};function q0(e,t,n){var r,l,o,i,u,s,a=0,h=!1,p=!1,d=!0;if(typeof e!="function")throw new TypeError(D0);t=ja(t)||0,qi(n)&&(h=!!n.leading,p="maxWait"in n,o=p?Z0(ja(n.maxWait)||0,t):o,d="trailing"in n?!!n.trailing:d);function w(E){var C=r,_=l;return r=l=void 0,a=E,i=e.apply(_,C),i}function y(E){return a=E,u=setTimeout(m,t),h?w(E):i}function x(E){var C=E-s,_=E-a,$=t-C;return p?J0($,o-_):$}function L(E){var C=E-s,_=E-a;return s===void 0||C>=t||C<0||p&&_>=o}function m(){var E=Jo();if(L(E))return f(E);u=setTimeout(m,x(E))}function f(E){return u=void 0,d&&r?w(E):(r=l=void 0,i)}function g(){u!==void 0&&clearTimeout(u),a=0,r=s=l=u=void 0}function S(){return u===void 0?i:f(Jo())}function N(){var E=Jo(),C=L(E);if(r=arguments,l=this,s=E,C){if(u===void 0)return y(s);if(p)return u=setTimeout(m,t),w(s)}return u===void 0&&(u=setTimeout(m,t)),i}return N.cancel=g,N.flush=S,N}function qi(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function b0(e){return!!e&&typeof e=="object"}function eg(e){return typeof e=="symbol"||b0(e)&&Y0.call(e)==A0}function ja(e){if(typeof e=="number")return e;if(eg(e))return _a;if(qi(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=qi(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=e.replace(B0,"");var n=H0.test(e);return n||W0.test(e)?V0(e.slice(2),n?2:8):U0.test(e)?_a:+e}var tg=q0;const ng=Ir(tg),rg=({span:e})=>{let t=Object.entries(e).filter(([n,r])=>n!="name");return t.length==0?null:c.jsxs(c.Fragment,{children:["{",t.map(([n,r])=>c.jsxs("span",{children:[n," = ",r]},n)).reduce((n,r)=>c.jsxs(c.Fragment,{children:[n,", ",r]})),"}"]})},lg=({span:e})=>c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"fw-bold",children:e.name}),c.jsx(rg,{span:e})]}),og=({fields:e})=>c.jsxs("span",{className:`m-1 ${e.message.match(/error|fail/g)?"text-danger":"text-muted"}`,children:[e.message,Object.entries(e).filter(([t,n])=>t!="message").map(([t,n])=>c.jsxs("span",{className:"m-1",children:[c.jsx("span",{className:"fst-italic fw-bold",children:t}),"=",n]},t))]}),ig=he.memo(({line:e})=>{var r;const t=e,n=l=>{switch(l){case"DEBUG":return"text-primary";case"INFO":return"text-success";case"WARN":return"text-warning";case"ERROR":return"text-danger";default:return"text-muted"}};return c.jsxs("p",{className:"font-monospace m-0 text-break",style:{fontSize:"10px"},children:[c.jsx("span",{className:"m-1",children:t.timestamp}),c.jsx("span",{className:`m-1 ${n(t.level)}`,children:t.level}),c.jsx("span",{className:"m-1",children:(r=t.spans)==null?void 0:r.map((l,o)=>c.jsx(lg,{span:l},o))}),c.jsx("span",{className:"m-1 text-muted",children:t.target}),c.jsx(og,{fields:t.fields})]})}),ug=(e,t)=>{if(e.length===0)return t;if(t.length===0)return e;const n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n},sg=(e,t,n)=>{const r=new AbortController,l=r.signal;let o=!1;const i=()=>{console.log("cancelling fetch"),o=!0,r.abort()},u=async()=>{let a=await fetch(e+"/stream_logs",{signal:l});if(!a.ok){let d=await a.text();throw n({text:"error fetching logs",details:{statusText:a.statusText,text:d}}),new Error("retry")}if(!a.body){n({text:"error fetching logs: ReadableStream not supported."});return}n(null);const h=a.body.getReader();let p=new Uint8Array;for(;;){const{done:d,value:w}=await h.read();if(d)throw n({text:"log stream terminated"}),new Error("retry");p=ug(p,w);for(let y;(y=p.indexOf(10))!==-1;){let x=p.slice(0,y),L=new TextDecoder().decode(x);t(L),p=p.slice(y+1)}}};let s=Qd(()=>u().then(()=>{},a=>{if(!o)throw n({text:"error streaming logs",details:{text:a.toString()}}),a}),1e3);return()=>{i(),s()}},ag=({httpApiBase:e,maxLines:t})=>{const[n,r]=v.useState([]),[l,o]=v.useState(null),[i,u]=v.useState(""),s=v.useRef(null),a=t??1e3,h=v.useCallback(y=>{r(x=>[{id:x.length==0?0:x[0].id+1,content:y,parsed:JSON.parse(y),show:s.current?!!y.match(s.current):!0},...x.slice(0,a-1)])},[s.current,t]),p=v.useRef(h);p.current=h;const d=ng(y=>{let x=null;try{x=new RegExp(y)}catch{return}s.current=x,r(L=>{let m=[...L];for(let f of m)f.show=!!f.content.match(x);return m})},200),w=y=>{u(y),d(y)};return v.useEffect(()=>d.cancel,[]),v.useEffect(()=>sg(e,y=>p.current(y),o),[e]),c.jsxs("div",{children:[c.jsx(ln,{error:l}),c.jsxs("div",{className:"mb-3",children:["Showing last ",a," logs since this window was opened"]}),c.jsx(re,{children:c.jsx(re.Group,{className:"mb-3",children:c.jsx(re.Control,{type:"text",value:i,name:"filter",placeholder:"Enter filter (regex)",onChange:y=>w(y.target.value)})})}),n.map(y=>c.jsx("div",{hidden:!y.show,children:c.jsx(ig,{line:y.parsed},y.id)}))]})},cg=({show:e,onClose:t})=>{const r=v.useContext(Ut).getHttpBaseUrl();return c.jsxs(ee,{size:"xl",show:e,onHide:t,children:[c.jsx(ee.Header,{closeButton:!0,children:c.jsx(ee.Title,{children:"rqbit server logs"})}),c.jsx(ee.Body,{children:r?c.jsx(ag,{httpApiBase:r}):c.jsx(ln,{error:{text:"HTTP API not available to stream logs"}})}),c.jsx(ee.Footer,{children:c.jsx($t,{variant:"primary",onClick:t,children:"Close"})})]})},fg=e=>{const[t,n]=v.useState(null),[r,l]=v.useState(null),[o,i]=v.useState(null),[u,s]=v.useState(!1);let[a,h]=v.useState(!1);const p=v.useContext(Ut),d=async()=>{s(!0);let y=await p.listTorrents().finally(()=>s(!1));i(y.torrents)};v.useEffect(()=>es(async()=>d().then(()=>(l(null),5e3),y=>(l({text:"Error refreshing torrents",details:y}),console.error(y),5e3)),0),[]);const w={setCloseableError:n,refreshTorrents:d};return c.jsxs(Hr.Provider,{value:w,children:[c.jsxs("div",{className:"text-center",children:[c.jsx("h1",{className:"mt-3 mb-4",children:e.title}),c.jsx($0,{closeableError:t,otherError:r,torrents:o,torrentsLoading:u})]}),c.jsxs("div",{className:"position-absolute top-0 start-0 p-1",children:[e.menuButtons&&e.menuButtons.map((y,x)=>c.jsx("span",{children:y},x)),c.jsx(kl,{onClick:()=>h(!0),children:c.jsx(x0,{})})]}),c.jsx(cg,{show:a,onClose:()=>h(!1)})]})},Yd=window.origin==="null"||window.origin==="http://localhost:3031"?"http://localhost:3030":"",nt=async(e,t,n)=>{console.log(e,t);const r=Yd+t,l={method:e,headers:{Accept:"application/json"},body:n};let o={method:e,path:t,text:""},i;try{i=await fetch(r,l)}catch{return o.text="network error",Promise.reject(o)}if(o.status=i.status,o.statusText=`${i.status} ${i.statusText}`,!i.ok){const s=await i.text();try{const a=JSON.parse(s);o.text=a.human_readable!==void 0?a.human_readable:JSON.stringify(a,null,2)}catch{o.text=s}return Promise.reject(o)}return await i.json()},La={getHttpBaseUrl:()=>Yd,listTorrents:()=>nt("GET","/torrents"),getTorrentDetails:e=>nt("GET",`/torrents/${e}`),getTorrentStats:e=>nt("GET",`/torrents/${e}/stats/v1`),uploadTorrent:(e,t)=>{var r,l;let n="/torrents?&overwrite=true";return t!=null&&t.list_only&&(n+="&list_only=true"),(t==null?void 0:t.only_files)!=null&&(n+=`&only_files=${t.only_files.join(",")}`),(r=t==null?void 0:t.peer_opts)!=null&&r.connect_timeout&&(n+=`&peer_connect_timeout=${t.peer_opts.connect_timeout}`),(l=t==null?void 0:t.peer_opts)!=null&&l.read_write_timeout&&(n+=`&peer_read_write_timeout=${t.peer_opts.read_write_timeout}`),t!=null&&t.initial_peers&&(n+=`&initial_peers=${t.initial_peers.join(",")}`),t!=null&&t.output_folder&&(n+=`&output_folder=${t.output_folder}`),typeof e=="string"&&(n+="&is_url=true"),nt("POST",n,e)},pause:e=>nt("POST",`/torrents/${e}/pause`),start:e=>nt("POST",`/torrents/${e}/start`),forget:e=>nt("POST",`/torrents/${e}/forget`),delete:e=>nt("POST",`/torrents/${e}/delete`),getVersion:async()=>(await nt("GET","/")).version},dg=()=>{let[e,t]=v.useState("rqbit web UI");return v.useEffect(()=>es(()=>La.getVersion().then(r=>{const l=`rqbit web UI - v${r}`;return t(l),document.title=l,1e4},r=>1e3),0),[]),c.jsx(v.StrictMode,{children:c.jsx(Ut.Provider,{value:La,children:c.jsx(fg,{title:e})})})};qo.createRoot(document.getElementById("app")).render(c.jsx(dg,{})); +*/(function(e){(function(){var t={}.hasOwnProperty;function n(){for(var r=[],l=0;l=0)&&(n[l]=e[l]);return n}function pa(e){return"default"+e.charAt(0).toUpperCase()+e.substr(1)}function _h(e){var t=jh(e,"string");return typeof t=="symbol"?t:String(t)}function jh(e,t){if(typeof e!="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Lh(e,t,n){var r=v.useRef(e!==void 0),l=v.useState(t),o=l[0],i=l[1],u=e!==void 0,s=r.current;return r.current=u,!u&&s&&o!==t&&i(t),[u?e:o,v.useCallback(function(a){for(var h=arguments.length,p=new Array(h>1?h-1:0),d=1;d{o.target===e&&(l(),t(o))},n+r)}function bh(e){e.offsetHeight}const va=e=>!e||typeof e=="function"?e:t=>{e.current=t};function ev(e,t){const n=va(e),r=va(t);return l=>{n&&n(l),r&&r(l)}}function go(e,t){return v.useMemo(()=>ev(e,t),[e,t])}function tv(e){return e&&"setState"in e?jn.findDOMNode(e):e??null}const nv=he.forwardRef(({onEnter:e,onEntering:t,onEntered:n,onExit:r,onExiting:l,onExited:o,addEndListener:i,children:u,childRef:s,...a},h)=>{const p=v.useRef(null),d=go(p,s),w=E=>{d(tv(E))},y=E=>C=>{E&&p.current&&E(p.current,C)},x=v.useCallback(y(e),[e]),L=v.useCallback(y(t),[t]),m=v.useCallback(y(n),[n]),f=v.useCallback(y(r),[r]),g=v.useCallback(y(l),[l]),S=v.useCallback(y(o),[o]),N=v.useCallback(y(i),[i]);return c.jsx(Xh,{ref:h,...a,onEnter:x,onEntered:m,onEntering:L,onExit:f,onExited:S,onExiting:g,addEndListener:N,nodeRef:p,children:typeof u=="function"?(E,C)=>u(E,{...C,ref:w}):he.cloneElement(u,{ref:w})})}),rv=nv;function lv(e){const t=v.useRef(e);return v.useEffect(()=>{t.current=e},[e]),t}function ze(e){const t=lv(e);return v.useCallback(function(...n){return t.current&&t.current(...n)},[t])}const nd=e=>v.forwardRef((t,n)=>c.jsx("div",{...t,ref:n,className:M(t.className,e)})),rd=nd("h4");rd.displayName="DivStyledAsH4";const ld=v.forwardRef(({className:e,bsPrefix:t,as:n=rd,...r},l)=>(t=H(t,"alert-heading"),c.jsx(n,{ref:l,className:M(e,t),...r})));ld.displayName="AlertHeading";const ov=ld;function iv(){return v.useState(null)}function uv(){const e=v.useRef(!0),t=v.useRef(()=>e.current);return v.useEffect(()=>(e.current=!0,()=>{e.current=!1}),[]),t.current}function sv(e){const t=v.useRef(null);return v.useEffect(()=>{t.current=e}),t.current}const av=typeof global<"u"&&global.navigator&&global.navigator.product==="ReactNative",cv=typeof document<"u",ga=cv||av?v.useLayoutEffect:v.useEffect,fv=["as","disabled"];function dv(e,t){if(e==null)return{};var n={},r=Object.keys(e),l,o;for(o=0;o=0)&&(n[l]=e[l]);return n}function pv(e){return!e||e.trim()==="#"}function Gu({tagName:e,disabled:t,href:n,target:r,rel:l,role:o,onClick:i,tabIndex:u=0,type:s}){e||(n!=null||r!=null||l!=null?e="a":e="button");const a={tagName:e};if(e==="button")return[{type:s||"button",disabled:t},a];const h=d=>{if((t||e==="a"&&pv(n))&&d.preventDefault(),t){d.stopPropagation();return}i==null||i(d)},p=d=>{d.key===" "&&(d.preventDefault(),h(d))};return e==="a"&&(n||(n="#"),t&&(n=void 0)),[{role:o??"button",disabled:void 0,tabIndex:t?void 0:u,href:n,target:e==="a"?r:void 0,"aria-disabled":t||void 0,rel:e==="a"?l:void 0,onClick:h,onKeyDown:p},a]}const mv=v.forwardRef((e,t)=>{let{as:n,disabled:r}=e,l=dv(e,fv);const[o,{tagName:i}]=Gu(Object.assign({tagName:n,disabled:r},l));return c.jsx(i,Object.assign({},l,o,{ref:t}))});mv.displayName="Button";const hv=["onKeyDown"];function vv(e,t){if(e==null)return{};var n={},r=Object.keys(e),l,o;for(o=0;o=0)&&(n[l]=e[l]);return n}function gv(e){return!e||e.trim()==="#"}const od=v.forwardRef((e,t)=>{let{onKeyDown:n}=e,r=vv(e,hv);const[l]=Gu(Object.assign({tagName:"a"},r)),o=ze(i=>{l.onKeyDown(i),n==null||n(i)});return gv(r.href)||r.role==="button"?c.jsx("a",Object.assign({ref:t},r,l,{onKeyDown:o})):c.jsx("a",Object.assign({ref:t},r,{onKeyDown:n}))});od.displayName="Anchor";const yv=od,id=v.forwardRef(({className:e,bsPrefix:t,as:n=yv,...r},l)=>(t=H(t,"alert-link"),c.jsx(n,{ref:l,className:M(e,t),...r})));id.displayName="AlertLink";const wv=id,xv={[St]:"show",[Kt]:"show"},ud=v.forwardRef(({className:e,children:t,transitionClasses:n={},onEnter:r,...l},o)=>{const i={in:!1,timeout:300,mountOnEnter:!1,unmountOnExit:!1,appear:!1,...l},u=v.useCallback((s,a)=>{bh(s),r==null||r(s,a)},[r]);return c.jsx(rv,{ref:o,addEndListener:qh,...i,onEnter:u,childRef:t.ref,children:(s,a)=>v.cloneElement(t,{...a,className:M("fade",e,t.props.className,xv[s],n[s])})})});ud.displayName="Fade";const Yl=ud,Sv={"aria-label":st.string,onClick:st.func,variant:st.oneOf(["white"])},Xu=v.forwardRef(({className:e,variant:t,"aria-label":n="Close",...r},l)=>c.jsx("button",{ref:l,type:"button",className:M("btn-close",t&&`btn-close-${t}`,e),"aria-label":n,...r}));Xu.displayName="CloseButton";Xu.propTypes=Sv;const sd=Xu,ad=v.forwardRef((e,t)=>{const{bsPrefix:n,show:r=!0,closeLabel:l="Close alert",closeVariant:o,className:i,children:u,variant:s="primary",onClose:a,dismissible:h,transition:p=Yl,...d}=Oh(e,{show:"onClose"}),w=H(n,"alert"),y=ze(m=>{a&&a(!1,m)}),x=p===!0?Yl:p,L=c.jsxs("div",{role:"alert",...x?void 0:d,ref:t,className:M(i,w,s&&`${w}-${s}`,h&&`${w}-dismissible`),children:[h&&c.jsx(sd,{onClick:y,"aria-label":l,variant:o}),u]});return x?c.jsx(x,{unmountOnExit:!0,...d,ref:void 0,in:r,children:L}):r?L:null});ad.displayName="Alert";const ya=Object.assign(ad,{Link:wv,Heading:ov}),cd=v.forwardRef(({as:e,bsPrefix:t,variant:n="primary",size:r,active:l=!1,disabled:o=!1,className:i,...u},s)=>{const a=H(t,"btn"),[h,{tagName:p}]=Gu({tagName:e,disabled:o,...u}),d=p;return c.jsx(d,{...h,...u,ref:s,disabled:o,className:M(i,a,l&&"active",n&&`${a}-${n}`,r&&`${a}-${r}`,u.href&&o&&"disabled")})});cd.displayName="Button";const $t=cd;function Ev(e){const t=v.useRef(e);return t.current=e,t}function fd(e){const t=Ev(e);v.useEffect(()=>()=>t.current(),[])}function kv(e,t){let n=0;return v.Children.map(e,r=>v.isValidElement(r)?t(r,n++):r)}function Cv(e,t){return v.Children.toArray(e).some(n=>v.isValidElement(n)&&n.type===t)}function Tv({as:e,bsPrefix:t,className:n,...r}){t=H(t,"col");const l=Xf(),o=Yf(),i=[],u=[];return l.forEach(s=>{const a=r[s];delete r[s];let h,p,d;typeof a=="object"&&a!=null?{span:h,offset:p,order:d}=a:h=a;const w=s!==o?`-${s}`:"";h&&i.push(h===!0?`${t}${w}`:`${t}${w}-${h}`),d!=null&&u.push(`order${w}-${d}`),p!=null&&u.push(`offset${w}-${p}`)}),[{...r,className:M(n,...i,...u)},{as:e,bsPrefix:t,spans:i}]}const dd=v.forwardRef((e,t)=>{const[{className:n,...r},{as:l="div",bsPrefix:o,spans:i}]=Tv(e);return c.jsx(l,{...r,ref:t,className:M(n,!i.length&&o)})});dd.displayName="Col";const Yu=dd,pd=v.forwardRef(({bsPrefix:e,fluid:t=!1,as:n="div",className:r,...l},o)=>{const i=H(e,"container"),u=typeof t=="string"?`-${t}`:"-fluid";return c.jsx(n,{ref:o,...l,className:M(r,t?`${i}${u}`:i)})});pd.displayName="Container";const Nv=pd;var _v=Function.prototype.bind.call(Function.prototype.call,[].slice);function mn(e,t){return _v(e.querySelectorAll(t))}function wa(e,t){if(e.contains)return e.contains(t);if(e.compareDocumentPosition)return e===t||!!(e.compareDocumentPosition(t)&16)}const jv="data-rr-ui-";function Lv(e){return`${jv}${e}`}const md=v.createContext(Kn?window:void 0);md.Provider;function Zu(){return v.useContext(md)}const Ov={type:st.string,tooltip:st.bool,as:st.elementType},Ju=v.forwardRef(({as:e="div",className:t,type:n="valid",tooltip:r=!1,...l},o)=>c.jsx(e,{...l,ref:o,className:M(t,`${n}-${r?"tooltip":"feedback"}`)}));Ju.displayName="Feedback";Ju.propTypes=Ov;const hd=Ju,Rv=v.createContext({}),pt=Rv,vd=v.forwardRef(({id:e,bsPrefix:t,className:n,type:r="checkbox",isValid:l=!1,isInvalid:o=!1,as:i="input",...u},s)=>{const{controlId:a}=v.useContext(pt);return t=H(t,"form-check-input"),c.jsx(i,{...u,ref:s,type:r,id:e||a,className:M(n,t,l&&"is-valid",o&&"is-invalid")})});vd.displayName="FormCheckInput";const gd=vd,yd=v.forwardRef(({bsPrefix:e,className:t,htmlFor:n,...r},l)=>{const{controlId:o}=v.useContext(pt);return e=H(e,"form-check-label"),c.jsx("label",{...r,ref:l,htmlFor:n||o,className:M(t,e)})});yd.displayName="FormCheckLabel";const Ji=yd,wd=v.forwardRef(({id:e,bsPrefix:t,bsSwitchPrefix:n,inline:r=!1,reverse:l=!1,disabled:o=!1,isValid:i=!1,isInvalid:u=!1,feedbackTooltip:s=!1,feedback:a,feedbackType:h,className:p,style:d,title:w="",type:y="checkbox",label:x,children:L,as:m="input",...f},g)=>{t=H(t,"form-check"),n=H(n,"form-switch");const{controlId:S}=v.useContext(pt),N=v.useMemo(()=>({controlId:e||S}),[S,e]),E=!L&&x!=null&&x!==!1||Cv(L,Ji),C=c.jsx(gd,{...f,type:y==="switch"?"checkbox":y,ref:g,isValid:i,isInvalid:u,disabled:o,as:m});return c.jsx(pt.Provider,{value:N,children:c.jsx("div",{style:d,className:M(p,E&&t,r&&`${t}-inline`,l&&`${t}-reverse`,y==="switch"&&n),children:L||c.jsxs(c.Fragment,{children:[C,E&&c.jsx(Ji,{title:w,children:x}),a&&c.jsx(hd,{type:h,tooltip:s,children:a})]})})})});wd.displayName="FormCheck";const Zl=Object.assign(wd,{Input:gd,Label:Ji}),xd=v.forwardRef(({bsPrefix:e,type:t,size:n,htmlSize:r,id:l,className:o,isValid:i=!1,isInvalid:u=!1,plaintext:s,readOnly:a,as:h="input",...p},d)=>{const{controlId:w}=v.useContext(pt);return e=H(e,"form-control"),c.jsx(h,{...p,type:t,size:r,ref:d,readOnly:a,id:l||w,className:M(o,s?`${e}-plaintext`:e,n&&`${e}-${n}`,t==="color"&&`${e}-color`,i&&"is-valid",u&&"is-invalid")})});xd.displayName="FormControl";const Pv=Object.assign(xd,{Feedback:hd}),Sd=v.forwardRef(({className:e,bsPrefix:t,as:n="div",...r},l)=>(t=H(t,"form-floating"),c.jsx(n,{ref:l,className:M(e,t),...r})));Sd.displayName="FormFloating";const Fv=Sd,Ed=v.forwardRef(({controlId:e,as:t="div",...n},r)=>{const l=v.useMemo(()=>({controlId:e}),[e]);return c.jsx(pt.Provider,{value:l,children:c.jsx(t,{...n,ref:r})})});Ed.displayName="FormGroup";const kd=Ed,Cd=v.forwardRef(({as:e="label",bsPrefix:t,column:n=!1,visuallyHidden:r=!1,className:l,htmlFor:o,...i},u)=>{const{controlId:s}=v.useContext(pt);t=H(t,"form-label");let a="col-form-label";typeof n=="string"&&(a=`${a} ${a}-${n}`);const h=M(l,t,r&&"visually-hidden",n&&a);return o=o||s,n?c.jsx(Yu,{ref:u,as:"label",className:h,htmlFor:o,...i}):c.jsx(e,{ref:u,className:h,htmlFor:o,...i})});Cd.displayName="FormLabel";const Mv=Cd,Td=v.forwardRef(({bsPrefix:e,className:t,id:n,...r},l)=>{const{controlId:o}=v.useContext(pt);return e=H(e,"form-range"),c.jsx("input",{...r,type:"range",ref:l,className:M(t,e),id:n||o})});Td.displayName="FormRange";const zv=Td,Nd=v.forwardRef(({bsPrefix:e,size:t,htmlSize:n,className:r,isValid:l=!1,isInvalid:o=!1,id:i,...u},s)=>{const{controlId:a}=v.useContext(pt);return e=H(e,"form-select"),c.jsx("select",{...u,size:n,ref:s,className:M(r,e,t&&`${e}-${t}`,l&&"is-valid",o&&"is-invalid"),id:i||a})});Nd.displayName="FormSelect";const Iv=Nd,_d=v.forwardRef(({bsPrefix:e,className:t,as:n="small",muted:r,...l},o)=>(e=H(e,"form-text"),c.jsx(n,{...l,ref:o,className:M(t,e,r&&"text-muted")})));_d.displayName="FormText";const $v=_d,jd=v.forwardRef((e,t)=>c.jsx(Zl,{...e,ref:t,type:"switch"}));jd.displayName="Switch";const Dv=Object.assign(jd,{Input:Zl.Input,Label:Zl.Label}),Ld=v.forwardRef(({bsPrefix:e,className:t,children:n,controlId:r,label:l,...o},i)=>(e=H(e,"form-floating"),c.jsxs(kd,{ref:i,className:M(t,e),controlId:r,...o,children:[n,c.jsx("label",{htmlFor:r,children:l})]})));Ld.displayName="FloatingLabel";const Av=Ld,Bv={_ref:st.any,validated:st.bool,as:st.elementType},qu=v.forwardRef(({className:e,validated:t,as:n="form",...r},l)=>c.jsx(n,{...r,ref:l,className:M(e,t&&"was-validated")}));qu.displayName="Form";qu.propTypes=Bv;const re=Object.assign(qu,{Group:kd,Control:Pv,Floating:Fv,Check:Zl,Switch:Dv,Label:Mv,Text:$v,Range:zv,Select:Iv,FloatingLabel:Av});var cl;function xa(e){if((!cl&&cl!==0||e)&&Kn){var t=document.createElement("div");t.style.position="absolute",t.style.top="-9999px",t.style.width="50px",t.style.height="50px",t.style.overflow="scroll",document.body.appendChild(t),cl=t.offsetWidth-t.clientWidth,document.body.removeChild(t)}return cl}function Go(e){e===void 0&&(e=vo());try{var t=e.activeElement;return!t||!t.nodeName?null:t}catch{return e.body}}function Uv(e=document){const t=e.defaultView;return Math.abs(t.innerWidth-e.documentElement.clientWidth)}const Sa=Lv("modal-open");class Hv{constructor({ownerDocument:t,handleContainerOverflow:n=!0,isRTL:r=!1}={}){this.handleContainerOverflow=n,this.isRTL=r,this.modals=[],this.ownerDocument=t}getScrollbarWidth(){return Uv(this.ownerDocument)}getElement(){return(this.ownerDocument||document).body}setModalAttributes(t){}removeModalAttributes(t){}setContainerStyle(t){const n={overflow:"hidden"},r=this.isRTL?"paddingLeft":"paddingRight",l=this.getElement();t.style={overflow:l.style.overflow,[r]:l.style[r]},t.scrollBarWidth&&(n[r]=`${parseInt(qt(l,r)||"0",10)+t.scrollBarWidth}px`),l.setAttribute(Sa,""),qt(l,n)}reset(){[...this.modals].forEach(t=>this.remove(t))}removeContainerStyle(t){const n=this.getElement();n.removeAttribute(Sa),Object.assign(n.style,t.style)}add(t){let n=this.modals.indexOf(t);return n!==-1||(n=this.modals.length,this.modals.push(t),this.setModalAttributes(t),n!==0)||(this.state={scrollBarWidth:this.getScrollbarWidth(),style:{}},this.handleContainerOverflow&&this.setContainerStyle(this.state)),n}remove(t){const n=this.modals.indexOf(t);n!==-1&&(this.modals.splice(n,1),!this.modals.length&&this.handleContainerOverflow&&this.removeContainerStyle(this.state),this.removeModalAttributes(t))}isTopModal(t){return!!this.modals.length&&this.modals[this.modals.length-1]===t}}const bu=Hv,Xo=(e,t)=>Kn?e==null?(t||vo()).body:(typeof e=="function"&&(e=e()),e&&"current"in e&&(e=e.current),e&&("nodeType"in e||e.getBoundingClientRect)?e:null):null;function Wv(e,t){const n=Zu(),[r,l]=v.useState(()=>Xo(e,n==null?void 0:n.document));if(!r){const o=Xo(e);o&&l(o)}return v.useEffect(()=>{t&&r&&t(r)},[t,r]),v.useEffect(()=>{const o=Xo(e);o!==r&&l(o)},[e,r]),r}function Vv({children:e,in:t,onExited:n,mountOnEnter:r,unmountOnExit:l}){const o=v.useRef(null),i=v.useRef(t),u=ze(n);v.useEffect(()=>{t?i.current=!0:u(o.current)},[t,u]);const s=go(o,e.ref),a=v.cloneElement(e,{ref:s});return t?a:l||!i.current&&r?null:a}function Qv({in:e,onTransition:t}){const n=v.useRef(null),r=v.useRef(!0),l=ze(t);return ga(()=>{if(!n.current)return;let o=!1;return l({in:e,element:n.current,initial:r.current,isStale:()=>o}),()=>{o=!0}},[e,l]),ga(()=>(r.current=!1,()=>{r.current=!0}),[]),n}function Kv({children:e,in:t,onExited:n,onEntered:r,transition:l}){const[o,i]=v.useState(!t);t&&o&&i(!1);const u=Qv({in:!!t,onTransition:a=>{const h=()=>{a.isStale()||(a.in?r==null||r(a.element,a.initial):(i(!0),n==null||n(a.element)))};Promise.resolve(l(a)).then(h,p=>{throw a.in||i(!0),p})}}),s=go(u,e.ref);return o&&!t?null:v.cloneElement(e,{ref:s})}function Ea(e,t,n){return e?c.jsx(e,Object.assign({},n)):t?c.jsx(Kv,Object.assign({},n,{transition:t})):c.jsx(Vv,Object.assign({},n))}function Gv(e){return e.code==="Escape"||e.keyCode===27}const Xv=["show","role","className","style","children","backdrop","keyboard","onBackdropClick","onEscapeKeyDown","transition","runTransition","backdropTransition","runBackdropTransition","autoFocus","enforceFocus","restoreFocus","restoreFocusOptions","renderDialog","renderBackdrop","manager","container","onShow","onHide","onExit","onExited","onExiting","onEnter","onEntering","onEntered"];function Yv(e,t){if(e==null)return{};var n={},r=Object.keys(e),l,o;for(o=0;o=0)&&(n[l]=e[l]);return n}let Yo;function Zv(e){return Yo||(Yo=new bu({ownerDocument:e==null?void 0:e.document})),Yo}function Jv(e){const t=Zu(),n=e||Zv(t),r=v.useRef({dialog:null,backdrop:null});return Object.assign(r.current,{add:()=>n.add(r.current),remove:()=>n.remove(r.current),isTopModal:()=>n.isTopModal(r.current),setDialogRef:v.useCallback(l=>{r.current.dialog=l},[]),setBackdropRef:v.useCallback(l=>{r.current.backdrop=l},[])})}const Od=v.forwardRef((e,t)=>{let{show:n=!1,role:r="dialog",className:l,style:o,children:i,backdrop:u=!0,keyboard:s=!0,onBackdropClick:a,onEscapeKeyDown:h,transition:p,runTransition:d,backdropTransition:w,runBackdropTransition:y,autoFocus:x=!0,enforceFocus:L=!0,restoreFocus:m=!0,restoreFocusOptions:f,renderDialog:g,renderBackdrop:S=K=>c.jsx("div",Object.assign({},K)),manager:N,container:E,onShow:C,onHide:_=()=>{},onExit:$,onExited:P,onExiting:se,onEnter:Ge,onEntering:Xe,onEntered:sn}=e,Gn=Yv(e,Xv);const Oe=Zu(),Ye=Wv(E),T=Jv(N),O=uv(),R=sv(n),[D,B]=v.useState(!n),pe=v.useRef(null);v.useImperativeHandle(t,()=>T,[T]),Kn&&!R&&n&&(pe.current=Go(Oe==null?void 0:Oe.document)),n&&D&&B(!1);const Re=ze(()=>{if(T.add(),cn.current=Xl(document,"keydown",wo),an.current=Xl(document,"focus",()=>setTimeout(Pe),!0),C&&C(),x){var K,Vr;const Zn=Go((K=(Vr=T.dialog)==null?void 0:Vr.ownerDocument)!=null?K:Oe==null?void 0:Oe.document);T.dialog&&Zn&&!wa(T.dialog,Zn)&&(pe.current=Zn,T.dialog.focus())}}),tt=ze(()=>{if(T.remove(),cn.current==null||cn.current(),an.current==null||an.current(),m){var K;(K=pe.current)==null||K.focus==null||K.focus(f),pe.current=null}});v.useEffect(()=>{!n||!Ye||Re()},[n,Ye,Re]),v.useEffect(()=>{D&&tt()},[D,tt]),fd(()=>{tt()});const Pe=ze(()=>{if(!L||!O()||!T.isTopModal())return;const K=Go(Oe==null?void 0:Oe.document);T.dialog&&K&&!wa(T.dialog,K)&&T.dialog.focus()}),vt=ze(K=>{K.target===K.currentTarget&&(a==null||a(K),u===!0&&_())}),wo=ze(K=>{s&&Gv(K)&&T.isTopModal()&&(h==null||h(K),K.defaultPrevented||_())}),an=v.useRef(),cn=v.useRef(),Xn=(...K)=>{B(!0),P==null||P(...K)};if(!Ye)return null;const Wr=Object.assign({role:r,ref:T.setDialogRef,"aria-modal":r==="dialog"?!0:void 0},Gn,{style:o,className:l,tabIndex:-1});let Yn=g?g(Wr):c.jsx("div",Object.assign({},Wr,{children:v.cloneElement(i,{role:"document"})}));Yn=Ea(p,d,{unmountOnExit:!0,mountOnEnter:!0,appear:!0,in:!!n,onExit:$,onExiting:se,onExited:Xn,onEnter:Ge,onEntering:Xe,onEntered:sn,children:Yn});let Ht=null;return u&&(Ht=S({ref:T.setBackdropRef,onClick:vt}),Ht=Ea(w,y,{in:!!n,appear:!0,mountOnEnter:!0,unmountOnExit:!0,children:Ht})),c.jsx(c.Fragment,{children:jn.createPortal(c.jsxs(c.Fragment,{children:[Ht,Yn]}),Ye)})});Od.displayName="Modal";const qv=Object.assign(Od,{Manager:bu});function bv(e,t){return e.classList?!!t&&e.classList.contains(t):(" "+(e.className.baseVal||e.className)+" ").indexOf(" "+t+" ")!==-1}function e0(e,t){e.classList?e.classList.add(t):bv(e,t)||(typeof e.className=="string"?e.className=e.className+" "+t:e.setAttribute("class",(e.className&&e.className.baseVal||"")+" "+t))}function ka(e,t){return e.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}function t0(e,t){e.classList?e.classList.remove(t):typeof e.className=="string"?e.className=ka(e.className,t):e.setAttribute("class",ka(e.className&&e.className.baseVal||"",t))}const hn={FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top",NAVBAR_TOGGLER:".navbar-toggler"};class n0 extends bu{adjustAndStore(t,n,r){const l=n.style[t];n.dataset[t]=l,qt(n,{[t]:`${parseFloat(qt(n,t))+r}px`})}restore(t,n){const r=n.dataset[t];r!==void 0&&(delete n.dataset[t],qt(n,{[t]:r}))}setContainerStyle(t){super.setContainerStyle(t);const n=this.getElement();if(e0(n,"modal-open"),!t.scrollBarWidth)return;const r=this.isRTL?"paddingLeft":"paddingRight",l=this.isRTL?"marginLeft":"marginRight";mn(n,hn.FIXED_CONTENT).forEach(o=>this.adjustAndStore(r,o,t.scrollBarWidth)),mn(n,hn.STICKY_CONTENT).forEach(o=>this.adjustAndStore(l,o,-t.scrollBarWidth)),mn(n,hn.NAVBAR_TOGGLER).forEach(o=>this.adjustAndStore(l,o,t.scrollBarWidth))}removeContainerStyle(t){super.removeContainerStyle(t);const n=this.getElement();t0(n,"modal-open");const r=this.isRTL?"paddingLeft":"paddingRight",l=this.isRTL?"marginLeft":"marginRight";mn(n,hn.FIXED_CONTENT).forEach(o=>this.restore(r,o)),mn(n,hn.STICKY_CONTENT).forEach(o=>this.restore(l,o)),mn(n,hn.NAVBAR_TOGGLER).forEach(o=>this.restore(l,o))}}let Zo;function r0(e){return Zo||(Zo=new n0(e)),Zo}const Rd=v.forwardRef(({className:e,bsPrefix:t,as:n="div",...r},l)=>(t=H(t,"modal-body"),c.jsx(n,{ref:l,className:M(e,t),...r})));Rd.displayName="ModalBody";const l0=Rd,o0=v.createContext({onHide(){}}),Pd=o0,Fd=v.forwardRef(({bsPrefix:e,className:t,contentClassName:n,centered:r,size:l,fullscreen:o,children:i,scrollable:u,...s},a)=>{e=H(e,"modal");const h=`${e}-dialog`,p=typeof o=="string"?`${e}-fullscreen-${o}`:`${e}-fullscreen`;return c.jsx("div",{...s,ref:a,className:M(h,t,l&&`${e}-${l}`,r&&`${h}-centered`,u&&`${h}-scrollable`,o&&p),children:c.jsx("div",{className:M(`${e}-content`,n),children:i})})});Fd.displayName="ModalDialog";const Md=Fd,zd=v.forwardRef(({className:e,bsPrefix:t,as:n="div",...r},l)=>(t=H(t,"modal-footer"),c.jsx(n,{ref:l,className:M(e,t),...r})));zd.displayName="ModalFooter";const i0=zd,u0=v.forwardRef(({closeLabel:e="Close",closeVariant:t,closeButton:n=!1,onHide:r,children:l,...o},i)=>{const u=v.useContext(Pd),s=ze(()=>{u==null||u.onHide(),r==null||r()});return c.jsxs("div",{ref:i,...o,children:[l,n&&c.jsx(sd,{"aria-label":e,variant:t,onClick:s})]})}),s0=u0,Id=v.forwardRef(({bsPrefix:e,className:t,closeLabel:n="Close",closeButton:r=!1,...l},o)=>(e=H(e,"modal-header"),c.jsx(s0,{ref:o,...l,className:M(t,e),closeLabel:n,closeButton:r})));Id.displayName="ModalHeader";const a0=Id,c0=nd("h4"),$d=v.forwardRef(({className:e,bsPrefix:t,as:n=c0,...r},l)=>(t=H(t,"modal-title"),c.jsx(n,{ref:l,className:M(e,t),...r})));$d.displayName="ModalTitle";const f0=$d;function d0(e){return c.jsx(Yl,{...e,timeout:null})}function p0(e){return c.jsx(Yl,{...e,timeout:null})}const Dd=v.forwardRef(({bsPrefix:e,className:t,style:n,dialogClassName:r,contentClassName:l,children:o,dialogAs:i=Md,"aria-labelledby":u,"aria-describedby":s,"aria-label":a,show:h=!1,animation:p=!0,backdrop:d=!0,keyboard:w=!0,onEscapeKeyDown:y,onShow:x,onHide:L,container:m,autoFocus:f=!0,enforceFocus:g=!0,restoreFocus:S=!0,restoreFocusOptions:N,onEntered:E,onExit:C,onExiting:_,onEnter:$,onEntering:P,onExited:se,backdropClassName:Ge,manager:Xe,...sn},Gn)=>{const[Oe,Ye]=v.useState({}),[T,O]=v.useState(!1),R=v.useRef(!1),D=v.useRef(!1),B=v.useRef(null),[pe,Re]=iv(),tt=go(Gn,Re),Pe=ze(L),vt=Mh();e=H(e,"modal");const wo=v.useMemo(()=>({onHide:Pe}),[Pe]);function an(){return Xe||r0({isRTL:vt})}function cn(I){if(!Kn)return;const fn=an().getScrollbarWidth()>0,rs=I.scrollHeight>vo(I).documentElement.clientHeight;Ye({paddingRight:fn&&!rs?xa():void 0,paddingLeft:!fn&&rs?xa():void 0})}const Xn=ze(()=>{pe&&cn(pe.dialog)});fd(()=>{Zi(window,"resize",Xn),B.current==null||B.current()});const Wr=()=>{R.current=!0},Yn=I=>{R.current&&pe&&I.target===pe.dialog&&(D.current=!0),R.current=!1},Ht=()=>{O(!0),B.current=td(pe.dialog,()=>{O(!1)})},K=I=>{I.target===I.currentTarget&&Ht()},Vr=I=>{if(d==="static"){K(I);return}if(D.current||I.target!==I.currentTarget){D.current=!1;return}L==null||L()},Zn=I=>{w?y==null||y(I):(I.preventDefault(),d==="static"&&Ht())},Zd=(I,fn)=>{I&&cn(I),$==null||$(I,fn)},Jd=I=>{B.current==null||B.current(),C==null||C(I)},qd=(I,fn)=>{P==null||P(I,fn),ed(window,"resize",Xn)},bd=I=>{I&&(I.style.display=""),se==null||se(I),Zi(window,"resize",Xn)},ep=v.useCallback(I=>c.jsx("div",{...I,className:M(`${e}-backdrop`,Ge,!p&&"show")}),[p,Ge,e]),ns={...n,...Oe};ns.display="block";const tp=I=>c.jsx("div",{role:"dialog",...I,style:ns,className:M(t,e,T&&`${e}-static`,!p&&"show"),onClick:d?Vr:void 0,onMouseUp:Yn,"aria-label":a,"aria-labelledby":u,"aria-describedby":s,children:c.jsx(i,{...sn,onMouseDown:Wr,className:r,contentClassName:l,children:o})});return c.jsx(Pd.Provider,{value:wo,children:c.jsx(qv,{show:h,ref:tt,backdrop:d,container:m,keyboard:!0,autoFocus:f,enforceFocus:g,restoreFocus:S,restoreFocusOptions:N,onEscapeKeyDown:Zn,onShow:x,onHide:L,onEnter:Zd,onEntering:qd,onEntered:E,onExit:Jd,onExiting:_,onExited:bd,manager:an(),transition:p?d0:void 0,backdropTransition:p?p0:void 0,renderBackdrop:ep,renderDialog:tp})})});Dd.displayName="Modal";const ee=Object.assign(Dd,{Body:l0,Header:a0,Title:f0,Footer:i0,Dialog:Md,TRANSITION_DURATION:300,BACKDROP_TRANSITION_DURATION:150}),Ca=1e3;function m0(e,t,n){const r=(e-t)/(n-t)*100;return Math.round(r*Ca)/Ca}function Ta({min:e,now:t,max:n,label:r,visuallyHidden:l,striped:o,animated:i,className:u,style:s,variant:a,bsPrefix:h,...p},d){return c.jsx("div",{ref:d,...p,role:"progressbar",className:M(u,`${h}-bar`,{[`bg-${a}`]:a,[`${h}-bar-animated`]:i,[`${h}-bar-striped`]:i||o}),style:{width:`${m0(t,e,n)}%`,...s},"aria-valuenow":t,"aria-valuemin":e,"aria-valuemax":n,children:l?c.jsx("span",{className:"visually-hidden",children:r}):r})}const Ad=v.forwardRef(({isChild:e=!1,...t},n)=>{const r={min:0,max:100,animated:!1,visuallyHidden:!1,striped:!1,...t};if(r.bsPrefix=H(r.bsPrefix,"progress"),e)return Ta(r,n);const{min:l,now:o,max:i,label:u,visuallyHidden:s,striped:a,animated:h,bsPrefix:p,variant:d,className:w,children:y,...x}=r;return c.jsx("div",{ref:n,...x,className:M(w,p),children:y?kv(y,L=>v.cloneElement(L,{isChild:!0})):Ta({min:l,now:o,max:i,label:u,visuallyHidden:s,striped:a,animated:h,bsPrefix:p,variant:d},n)})});Ad.displayName="ProgressBar";const h0=Ad,Bd=v.forwardRef(({bsPrefix:e,className:t,as:n="div",...r},l)=>{const o=H(e,"row"),i=Xf(),u=Yf(),s=`${o}-cols`,a=[];return i.forEach(h=>{const p=r[h];delete r[h];let d;p!=null&&typeof p=="object"?{cols:d}=p:d=p;const w=h!==u?`-${h}`:"";d!=null&&a.push(`${s}${w}-${d}`)}),c.jsx(n,{ref:l,...r,className:M(t,o,...a)})});Bd.displayName="Row";const Ud=Bd,Hd=v.forwardRef(({bsPrefix:e,variant:t,animation:n="border",size:r,as:l="div",className:o,...i},u)=>{e=H(e,"spinner");const s=`${e}-${n}`;return c.jsx(l,{ref:u,...i,className:M(o,s,r&&`${s}-${r}`,t&&`text-${t}`)})});Hd.displayName="Spinner";const Hn=Hd,Jl="initializing",Wd="paused",Vd="live",v0="error";function es(e,t){let n,r=t;const l=async()=>{if(r=await e(),r==null)throw"asyncCallback returned null or undefined";o()};let o=()=>{n=setTimeout(l,r)};return o(),()=>{clearTimeout(n)}}function Qd(e,t){let n;const r=async()=>{await e().then(()=>!1,()=>!0)&&l()};let l=o=>{n=setTimeout(r,o!==void 0?o:t)};return l(0),()=>clearTimeout(n)}const kl=e=>{const{onClick:t,disabled:n,color:r,children:l,className:o,...i}=e,u=a=>{a.stopPropagation(),!n&&t()},s=r?`text-${r}`:"";return c.jsx("a",{className:`p-1 ${s} ${o}`,onClick:u,href:"#",...i,children:l})},ln=e=>{var r,l,o;let{error:t,remove:n}=e;return t==null?null:c.jsxs(ya,{variant:"danger",onClose:n,dismissible:n!=null,children:[c.jsx(ya.Heading,{children:t.text}),((r=t.details)==null?void 0:r.statusText)&&c.jsx("p",{children:c.jsx("strong",{children:(l=t.details)==null?void 0:l.statusText})}),c.jsx("pre",{children:(o=t.details)==null?void 0:o.text})]})},g0=({id:e,show:t,onHide:n})=>{if(!t)return null;const[r,l]=v.useState(!1),[o,i]=v.useState(null),[u,s]=v.useState(!1),a=v.useContext(Hr),h=v.useContext(Ut),p=()=>{l(!1),i(null),s(!1),n()},d=()=>{s(!0),(r?h.delete:h.forget)(e).then(()=>{a.refreshTorrents(),p()}).catch(y=>{i({text:`Error deleting torrent id=${e}`,details:y}),s(!1)})};return c.jsxs(ee,{show:t,onHide:p,children:[c.jsx(ee.Header,{closeButton:!0,children:"Delete torrent"}),c.jsxs(ee.Body,{children:[c.jsx(re,{children:c.jsx(re.Group,{controlId:"delete-torrent",children:c.jsx(re.Check,{type:"checkbox",label:"Also delete files",checked:r,onChange:()=>l(!r)})})}),o&&c.jsx(ln,{error:o})]}),c.jsxs(ee.Footer,{children:[u&&c.jsx(Hn,{}),c.jsx($t,{variant:"primary",onClick:d,disabled:u,children:"OK"}),c.jsx($t,{variant:"secondary",onClick:p,children:"Cancel"})]})]})};var Kd={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},Na=he.createContext&&he.createContext(Kd),Mt=globalThis&&globalThis.__assign||function(){return Mt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n{let n=t.state,[r,l]=v.useState(!1),[o,i]=v.useState(!1),u=v.useContext(Qf);const s=n=="live",a=n=="paused"||n=="error",h=v.useContext(Hr),p=v.useContext(Ut),d=()=>{l(!0),p.start(e).then(()=>{u.refresh()},L=>{h.setCloseableError({text:`Error starting torrent id=${e}`,details:L})}).finally(()=>l(!1))},w=()=>{l(!0),p.pause(e).then(()=>{u.refresh()},L=>{h.setCloseableError({text:`Error pausing torrent id=${e}`,details:L})}).finally(()=>l(!1))},y=()=>{l(!0),i(!0)},x=()=>{l(!1),i(!1)};return c.jsx(Ud,{children:c.jsxs(Yu,{children:[a&&c.jsx(kl,{onClick:d,disabled:r,color:"success",children:c.jsx(E0,{})}),s&&c.jsx(kl,{onClick:w,disabled:r,children:c.jsx(S0,{})}),c.jsx(kl,{onClick:y,disabled:r,color:"danger",children:c.jsx(k0,{})}),c.jsx(g0,{id:e,show:o,onHide:x})]})})};function ts(e){if(e===0)return"0 Bytes";const t=1024,n=["Bytes","KB","MB","GB"],r=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/Math.pow(t,r)).toFixed(2))+" "+n[r]}const T0=({statsResponse:e})=>{var t,n;switch(e.state){case Wd:return"Paused";case Jl:return"Checking files";case v0:return"Error"}return e.state!="live"||e.live===null?e.state:c.jsxs(c.Fragment,{children:[!e.finished&&c.jsxs("div",{className:"download-speed",children:["↓ ",(t=e.live.download_speed)==null?void 0:t.human_readable]}),c.jsxs("div",{className:"upload-speed",children:["↑ ",(n=e.live.upload_speed)==null?void 0:n.human_readable,e.live.snapshot.uploaded_bytes>0&&c.jsxs("span",{children:[" ","(",ts(e.live.snapshot.uploaded_bytes),")"]})]})]})},yt=({size:e,label:t,children:n})=>c.jsxs(Yu,{md:e||1,className:"py-3",children:[c.jsx("div",{className:"fw-bold",children:t}),n]});function N0(e){return e.files.filter(n=>n.included).reduce((n,r)=>n.length>r.length?n:r).name}function _0(e){const t=Math.floor(e/3600),n=Math.floor(e%3600/60),r=e%60,l=(o,i)=>o>0?`${o}${i}`:"";return t>0?`${l(t,"h")} ${l(n,"m")}`.trim():n>0?`${l(n,"m")} ${l(r,"s")}`.trim():`${l(r,"s")}`.trim()}function j0(e){var n,r,l;let t=(l=(r=(n=e==null?void 0:e.live)==null?void 0:n.time_remaining)==null?void 0:r.duration)==null?void 0:l.secs;return t==null?"N/A":_0(t)}const L0=({id:e,detailsResponse:t,statsResponse:n})=>{const r=(n==null?void 0:n.state)??"",l=n==null?void 0:n.error,o=(n==null?void 0:n.total_bytes)??1,i=(n==null?void 0:n.progress_bytes)??0,u=(n==null?void 0:n.finished)||!1,s=l?100:i/o*100,a=(r==Jl||r==Vd)&&!u,h=l?"Error":`${s.toFixed(2)}%`,p=l?"danger":u?"success":r==Jl?"warning":"primary",d=()=>{var x;let y=(x=n==null?void 0:n.live)==null?void 0:x.snapshot.peer_stats;return y?`${y.live} / ${y.seen}`:""};let w=[];return l?w.push("bg-warning"):e%2==0&&w.push("bg-light"),c.jsxs(Ud,{className:w.join(" "),children:[c.jsx(yt,{size:3,label:"Name",children:t?c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"text-truncate",children:N0(t)}),l&&c.jsxs("p",{className:"text-danger",children:[c.jsx("strong",{children:"Error:"})," ",l]})]}):c.jsx(Hn,{})}),n?c.jsxs(c.Fragment,{children:[c.jsx(yt,{label:"Size",children:`${ts(o)} `}),c.jsx(yt,{size:2,label:(r==Wd,"Progress"),children:c.jsx(h0,{now:s,label:h,animated:a,variant:p})}),c.jsx(yt,{size:2,label:"Speed",children:c.jsx(T0,{statsResponse:n})}),c.jsx(yt,{label:"ETA",children:j0(n)}),c.jsx(yt,{size:2,label:"Live / Seen",children:d()}),c.jsx(yt,{label:"Actions",children:c.jsx(C0,{id:e,statsResponse:n})})]}):c.jsx(yt,{label:"Loading stats",size:8,children:c.jsx(Hn,{})})]})},O0=({id:e,torrent:t})=>{const[n,r]=v.useState(null),[l,o]=v.useState(null),[i,u]=v.useState(0),s=v.useContext(Ut),a=()=>{u(i+1)};return v.useEffect(()=>{if(n===null)return Qd(async()=>{await s.getTorrentDetails(t.id).then(r)},1e3)},[n]),v.useEffect(()=>es(async()=>s.getTorrentStats(t.id).then(w=>(o(w),w)).then(w=>w.state==Jl||w.state==Vd?1e3:1e4,()=>1e4),0),[i]),c.jsx(Qf.Provider,{value:{refresh:a},children:c.jsx(L0,{id:e,detailsResponse:n,statsResponse:l})})},R0=e=>{if(e.torrents===null&&e.loading)return c.jsx(Hn,{});if(e.torrents!==null)return e.torrents.length===0?c.jsx("div",{className:"text-center",children:c.jsx("p",{children:"No existing torrents found. Add them through buttons below."})}):c.jsx("div",{style:{fontSize:"smaller"},children:e.torrents.map(t=>c.jsx(O0,{id:t.id,torrent:t},t.id))})},P0=e=>{let{onHide:t,listTorrentResponse:n,listTorrentError:r,listTorrentLoading:l,data:o}=e;const[i,u]=v.useState([]),[s,a]=v.useState(!1),[h,p]=v.useState(null),[d,w]=v.useState(!1),[y,x]=v.useState(""),L=v.useContext(Hr),m=v.useContext(Ut);v.useEffect(()=>{console.log(n),u(n?n.details.files.map((E,C)=>C):[]),x((n==null?void 0:n.output_folder)||"")},[n]);const f=()=>{t(),u([]),p(null),a(!1)},g=E=>{i.includes(E)?u(i.filter(C=>C!==E)):u([...i,E])},S=async()=>{if(!n)return;a(!0);let E=n.seen_peers?n.seen_peers.slice(0,32):null,C={overwrite:!0,only_files:i,initial_peers:E,output_folder:y};d&&(C.peer_opts={connect_timeout:20,read_write_timeout:60}),m.uploadTorrent(o,C).then(()=>{t(),L.refreshTorrents()},_=>{p({text:"Error starting torrent",details:_})}).finally(()=>a(!1))},N=()=>{if(l)return c.jsx(Hn,{});if(r)return c.jsx(ln,{error:r});if(n)return c.jsxs(re,{children:[c.jsxs("fieldset",{className:"mb-4",children:[c.jsx("legend",{children:"Pick the files to download"}),n.details.files.map((E,C)=>c.jsx(re.Group,{controlId:`check-${C}`,children:c.jsx(re.Check,{type:"checkbox",label:`${E.name} (${ts(E.length)})`,checked:i.includes(C),onChange:()=>g(C)})},C))]}),c.jsxs("fieldset",{children:[c.jsx("legend",{children:"Options"}),c.jsxs(re.Group,{controlId:"output-folder",className:"mb-3",children:[c.jsx(re.Label,{children:"Output folder"}),c.jsx(re.Control,{type:"text",value:y,onChange:E=>x(E.target.value)})]}),c.jsxs(re.Group,{controlId:"unpopular-torrent",className:"mb-3",children:[c.jsx(re.Check,{type:"checkbox",label:"Increase timeouts",checked:d,onChange:()=>w(!d)}),c.jsx("small",{id:"emailHelp",className:"form-text text-muted",children:"This might be useful for unpopular torrents with few peers. It will slow down fast torrents though."})]})]})]})};return c.jsxs(ee,{show:!0,onHide:f,size:"lg",children:[c.jsx(ee.Header,{closeButton:!0,children:c.jsx(ee.Title,{children:"Add torrent"})}),c.jsxs(ee.Body,{children:[N(),c.jsx(ln,{error:h})]}),c.jsxs(ee.Footer,{children:[s&&c.jsx(Hn,{}),c.jsx($t,{variant:"primary",onClick:S,disabled:l||s||i.length==0,children:"OK"}),c.jsx($t,{variant:"secondary",onClick:f,children:"Cancel"})]})]})},Xd=({buttonText:e,onClick:t,data:n,resetData:r,variant:l})=>{const[o,i]=v.useState(!1),[u,s]=v.useState(null),[a,h]=v.useState(null),p=v.useContext(Ut);v.useEffect(()=>{if(n===null)return;let w=setTimeout(async()=>{i(!0);try{const y=await p.uploadTorrent(n,{list_only:!0});s(y)}catch(y){h({text:"Error listing torrent files",details:y})}finally{i(!1)}},0);return()=>clearTimeout(w)},[n]);const d=()=>{r(),h(null),s(null),i(!1)};return c.jsxs(c.Fragment,{children:[c.jsx($t,{variant:l,onClick:t,className:"m-1",children:e}),n&&c.jsx(P0,{onHide:d,listTorrentError:a,listTorrentResponse:u,data:n,listTorrentLoading:o})]})},F0=({show:e,setUrl:t,cancel:n})=>{let[r,l]=v.useState("");return c.jsxs(ee,{show:e,onHide:n,size:"lg",children:[c.jsx(ee.Header,{closeButton:!0,children:c.jsx(ee.Title,{children:"Add torrent"})}),c.jsx(ee.Body,{children:c.jsx(re,{children:c.jsxs(re.Group,{className:"mb-3",controlId:"url",children:[c.jsx(re.Label,{children:"Enter magnet or HTTP(S) URL to the .torrent"}),c.jsx(re.Control,{value:r,placeholder:"magnet:?xt=urn:btih:...",onChange:o=>{l(o.target.value)}})]})})}),c.jsxs(ee.Footer,{children:[c.jsx($t,{variant:"primary",onClick:()=>{t(r),l("")},disabled:r.length==0,children:"OK"}),c.jsx($t,{variant:"secondary",onClick:n,children:"Cancel"})]})]})},M0=()=>{let[e,t]=v.useState(null),[n,r]=v.useState(!1);return c.jsxs(c.Fragment,{children:[c.jsx(Xd,{variant:"primary",buttonText:"Add Torrent from Magnet / URL",onClick:()=>{r(!0)},data:e,resetData:()=>t(null)}),c.jsx(F0,{show:n,setUrl:l=>{r(!1),t(l)},cancel:()=>{r(!1),t(null)}})]})},z0=()=>{const e=v.useRef(),[t,n]=v.useState(null),r=async()=>{var u;if(!((u=e==null?void 0:e.current)!=null&&u.files))return;const i=e.current.files[0];n(i)},l=()=>{e!=null&&e.current&&(e.current.value="",n(null))},o=()=>{e!=null&&e.current&&e.current.click()};return c.jsxs(c.Fragment,{children:[c.jsx("input",{type:"file",ref:e,accept:".torrent",onChange:r,className:"d-none"}),c.jsx(Xd,{variant:"secondary",buttonText:"Upload .torrent File",onClick:o,data:t,resetData:l})]})},I0=()=>c.jsxs("div",{id:"buttons-container",className:"mt-3",children:[c.jsx(M0,{}),c.jsx(z0,{})]}),$0=e=>{let t=v.useContext(Hr);return c.jsxs(Nv,{children:[c.jsx(ln,{error:e.closeableError,remove:()=>t.setCloseableError(null)}),c.jsx(ln,{error:e.otherError}),c.jsx(R0,{torrents:e.torrents,loading:e.torrentsLoading}),c.jsx(I0,{})]})};var D0="Expected a function",_a=0/0,A0="[object Symbol]",B0=/^\s+|\s+$/g,U0=/^[-+]0x[0-9a-f]+$/i,H0=/^0b[01]+$/i,W0=/^0o[0-7]+$/i,V0=parseInt,Q0=typeof Qr=="object"&&Qr&&Qr.Object===Object&&Qr,K0=typeof self=="object"&&self&&self.Object===Object&&self,G0=Q0||K0||Function("return this")(),X0=Object.prototype,Y0=X0.toString,Z0=Math.max,J0=Math.min,Jo=function(){return G0.Date.now()};function q0(e,t,n){var r,l,o,i,u,s,a=0,h=!1,p=!1,d=!0;if(typeof e!="function")throw new TypeError(D0);t=ja(t)||0,qi(n)&&(h=!!n.leading,p="maxWait"in n,o=p?Z0(ja(n.maxWait)||0,t):o,d="trailing"in n?!!n.trailing:d);function w(E){var C=r,_=l;return r=l=void 0,a=E,i=e.apply(_,C),i}function y(E){return a=E,u=setTimeout(m,t),h?w(E):i}function x(E){var C=E-s,_=E-a,$=t-C;return p?J0($,o-_):$}function L(E){var C=E-s,_=E-a;return s===void 0||C>=t||C<0||p&&_>=o}function m(){var E=Jo();if(L(E))return f(E);u=setTimeout(m,x(E))}function f(E){return u=void 0,d&&r?w(E):(r=l=void 0,i)}function g(){u!==void 0&&clearTimeout(u),a=0,r=s=l=u=void 0}function S(){return u===void 0?i:f(Jo())}function N(){var E=Jo(),C=L(E);if(r=arguments,l=this,s=E,C){if(u===void 0)return y(s);if(p)return u=setTimeout(m,t),w(s)}return u===void 0&&(u=setTimeout(m,t)),i}return N.cancel=g,N.flush=S,N}function qi(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function b0(e){return!!e&&typeof e=="object"}function eg(e){return typeof e=="symbol"||b0(e)&&Y0.call(e)==A0}function ja(e){if(typeof e=="number")return e;if(eg(e))return _a;if(qi(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=qi(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=e.replace(B0,"");var n=H0.test(e);return n||W0.test(e)?V0(e.slice(2),n?2:8):U0.test(e)?_a:+e}var tg=q0;const ng=Ir(tg),rg=({span:e})=>{let t=Object.entries(e).filter(([n,r])=>n!="name");return t.length==0?null:c.jsxs(c.Fragment,{children:["{",t.map(([n,r])=>c.jsxs("span",{children:[n," = ",r]},n)).reduce((n,r)=>c.jsxs(c.Fragment,{children:[n,", ",r]})),"}"]})},lg=({span:e})=>c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"fw-bold",children:e.name}),c.jsx(rg,{span:e})]}),og=({fields:e})=>c.jsxs("span",{className:`m-1 ${e.message.match(/error|fail/g)?"text-danger":"text-muted"}`,children:[e.message,Object.entries(e).filter(([t,n])=>t!="message").map(([t,n])=>c.jsxs("span",{className:"m-1",children:[c.jsx("span",{className:"fst-italic fw-bold",children:t}),"=",n]},t))]}),ig=he.memo(({line:e})=>{var r;const t=e,n=l=>{switch(l){case"DEBUG":return"text-primary";case"INFO":return"text-success";case"WARN":return"text-warning";case"ERROR":return"text-danger";default:return"text-muted"}};return c.jsxs("p",{className:"font-monospace m-0 text-break",style:{fontSize:"10px"},children:[c.jsx("span",{className:"m-1",children:t.timestamp}),c.jsx("span",{className:`m-1 ${n(t.level)}`,children:t.level}),c.jsx("span",{className:"m-1",children:(r=t.spans)==null?void 0:r.map((l,o)=>c.jsx(lg,{span:l},o))}),c.jsx("span",{className:"m-1 text-muted",children:t.target}),c.jsx(og,{fields:t.fields})]})}),ug=(e,t)=>{if(e.length===0)return t;if(t.length===0)return e;const n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n},sg=(e,t,n)=>{const r=new AbortController,l=r.signal;let o=!1;const i=()=>{console.log("cancelling fetch"),o=!0,r.abort()},u=async()=>{let a=await fetch(e,{signal:l});if(!a.ok){let d=await a.text();throw n({text:"error fetching logs",details:{statusText:a.statusText,text:d}}),new Error("retry")}if(!a.body){n({text:"error fetching logs: ReadableStream not supported."});return}n(null);const h=a.body.getReader();let p=new Uint8Array;for(;;){const{done:d,value:w}=await h.read();if(d)throw n({text:"log stream terminated"}),new Error("retry");p=ug(p,w);for(let y;(y=p.indexOf(10))!==-1;){let x=p.slice(0,y),L=new TextDecoder().decode(x);t(L),p=p.slice(y+1)}}};let s=Qd(()=>u().then(()=>{},a=>{if(!o)throw n({text:"error streaming logs",details:{text:a.toString()}}),a}),1e3);return()=>{i(),s()}},ag=({url:e,maxLines:t})=>{const[n,r]=v.useState([]),[l,o]=v.useState(null),[i,u]=v.useState(""),s=v.useRef(null),a=t??1e3,h=v.useCallback(y=>{r(x=>[{id:x.length==0?0:x[0].id+1,content:y,parsed:JSON.parse(y),show:s.current?!!y.match(s.current):!0},...x.slice(0,a-1)])},[s.current,t]),p=v.useRef(h);p.current=h;const d=ng(y=>{let x=null;try{x=new RegExp(y)}catch{return}s.current=x,r(L=>{let m=[...L];for(let f of m)f.show=!!f.content.match(x);return m})},200),w=y=>{u(y),d(y)};return v.useEffect(()=>d.cancel,[]),v.useEffect(()=>sg(e,y=>p.current(y),o),[e]),c.jsxs("div",{children:[c.jsx(ln,{error:l}),c.jsxs("div",{className:"mb-3",children:["Showing last ",a," logs since this window was opened"]}),c.jsx(re,{children:c.jsx(re.Group,{className:"mb-3",children:c.jsx(re.Control,{type:"text",value:i,name:"filter",placeholder:"Enter filter (regex)",onChange:y=>w(y.target.value)})})}),n.map(y=>c.jsx("div",{hidden:!y.show,children:c.jsx(ig,{line:y.parsed},y.id)}))]})},cg=({show:e,onClose:t})=>{let r=v.useContext(Ut).getStreamLogsUrl();return c.jsxs(ee,{size:"xl",show:e,onHide:t,children:[c.jsx(ee.Header,{closeButton:!0,children:c.jsx(ee.Title,{children:"rqbit server logs"})}),c.jsx(ee.Body,{children:r?c.jsx(ag,{url:r}):c.jsx(ln,{error:{text:"HTTP API not available to stream logs"}})}),c.jsx(ee.Footer,{children:c.jsx($t,{variant:"primary",onClick:t,children:"Close"})})]})},fg=e=>{const[t,n]=v.useState(null),[r,l]=v.useState(null),[o,i]=v.useState(null),[u,s]=v.useState(!1);let[a,h]=v.useState(!1);const p=v.useContext(Ut),d=async()=>{s(!0);let y=await p.listTorrents().finally(()=>s(!1));i(y.torrents)};v.useEffect(()=>es(async()=>d().then(()=>(l(null),5e3),y=>(l({text:"Error refreshing torrents",details:y}),console.error(y),5e3)),0),[]);const w={setCloseableError:n,refreshTorrents:d};return c.jsxs(Hr.Provider,{value:w,children:[c.jsxs("div",{className:"text-center",children:[c.jsx("h1",{className:"mt-3 mb-4",children:e.title}),c.jsx($0,{closeableError:t,otherError:r,torrents:o,torrentsLoading:u})]}),c.jsxs("div",{className:"position-absolute top-0 start-0 p-1",children:[e.menuButtons&&e.menuButtons.map((y,x)=>c.jsx("span",{children:y},x)),c.jsx(kl,{onClick:()=>h(!0),children:c.jsx(x0,{})})]}),c.jsx(cg,{show:a,onClose:()=>h(!1)})]})},Yd=window.origin==="null"||window.origin==="http://localhost:3031"?"http://localhost:3030":"",nt=async(e,t,n)=>{console.log(e,t);const r=Yd+t,l={method:e,headers:{Accept:"application/json"},body:n};let o={method:e,path:t,text:""},i;try{i=await fetch(r,l)}catch{return o.text="network error",Promise.reject(o)}if(o.status=i.status,o.statusText=`${i.status} ${i.statusText}`,!i.ok){const s=await i.text();try{const a=JSON.parse(s);o.text=a.human_readable!==void 0?a.human_readable:JSON.stringify(a,null,2)}catch{o.text=s}return Promise.reject(o)}return await i.json()},La={getStreamLogsUrl:()=>Yd+"/stream_logs",listTorrents:()=>nt("GET","/torrents"),getTorrentDetails:e=>nt("GET",`/torrents/${e}`),getTorrentStats:e=>nt("GET",`/torrents/${e}/stats/v1`),uploadTorrent:(e,t)=>{var r,l;let n="/torrents?&overwrite=true";return t!=null&&t.list_only&&(n+="&list_only=true"),(t==null?void 0:t.only_files)!=null&&(n+=`&only_files=${t.only_files.join(",")}`),(r=t==null?void 0:t.peer_opts)!=null&&r.connect_timeout&&(n+=`&peer_connect_timeout=${t.peer_opts.connect_timeout}`),(l=t==null?void 0:t.peer_opts)!=null&&l.read_write_timeout&&(n+=`&peer_read_write_timeout=${t.peer_opts.read_write_timeout}`),t!=null&&t.initial_peers&&(n+=`&initial_peers=${t.initial_peers.join(",")}`),t!=null&&t.output_folder&&(n+=`&output_folder=${t.output_folder}`),typeof e=="string"&&(n+="&is_url=true"),nt("POST",n,e)},pause:e=>nt("POST",`/torrents/${e}/pause`),start:e=>nt("POST",`/torrents/${e}/start`),forget:e=>nt("POST",`/torrents/${e}/forget`),delete:e=>nt("POST",`/torrents/${e}/delete`),getVersion:async()=>(await nt("GET","/")).version},dg=()=>{let[e,t]=v.useState("rqbit web UI");return v.useEffect(()=>es(()=>La.getVersion().then(r=>{const l=`rqbit web UI - v${r}`;return t(l),document.title=l,1e4},r=>1e3),0),[]),c.jsx(v.StrictMode,{children:c.jsx(Ut.Provider,{value:La,children:c.jsx(fg,{title:e})})})};qo.createRoot(document.getElementById("app")).render(c.jsx(dg,{})); diff --git a/crates/librqbit/webui/dist/manifest.json b/crates/librqbit/webui/dist/manifest.json index 8469bb7..7156632 100644 --- a/crates/librqbit/webui/dist/manifest.json +++ b/crates/librqbit/webui/dist/manifest.json @@ -4,7 +4,7 @@ "src": "assets/logo.svg" }, "index.html": { - "file": "assets/index-b02909de.js", + "file": "assets/index-b804d1c8.js", "isEntry": true, "src": "index.html" } diff --git a/crates/librqbit/webui/src/api-types.ts b/crates/librqbit/webui/src/api-types.ts index f323c96..b014a7b 100644 --- a/crates/librqbit/webui/src/api-types.ts +++ b/crates/librqbit/webui/src/api-types.ts @@ -159,7 +159,7 @@ export interface JSONLogLine { } export interface RqbitAPI { - getHttpBaseUrl: () => string | null; + getStreamLogsUrl: () => string | null; listTorrents: () => Promise; getTorrentDetails: (index: number) => Promise; getTorrentStats: (index: number) => Promise; diff --git a/crates/librqbit/webui/src/components/LogStream.tsx b/crates/librqbit/webui/src/components/LogStream.tsx index 0d331fa..d0f7cce 100644 --- a/crates/librqbit/webui/src/components/LogStream.tsx +++ b/crates/librqbit/webui/src/components/LogStream.tsx @@ -14,7 +14,7 @@ import { LogLine } from "./LogLine"; import { JSONLogLine } from "../api-types"; interface LogStreamProps { - httpApiBase: string; + url: string; maxLines?: number; } @@ -39,7 +39,7 @@ const mergeBuffers = (a1: Uint8Array, a2: Uint8Array): Uint8Array => { }; const streamLogs = ( - httpApiBase: string, + url: string, addLine: (text: string) => void, setError: (error: ErrorWithLabel | null) => void ): (() => void) => { @@ -55,7 +55,7 @@ const streamLogs = ( }; const runOnce = async () => { - let response = await fetch(httpApiBase + "/stream_logs", { signal }); + let response = await fetch(url, { signal }); if (!response.ok) { let text = await response.text(); @@ -128,10 +128,7 @@ const streamLogs = ( }; }; -export const LogStream: React.FC = ({ - httpApiBase, - maxLines, -}) => { +export const LogStream: React.FC = ({ url, maxLines }) => { const [logLines, setLogLines] = useState([]); const [error, setError] = useState(null); const [filter, setFilter] = useState(""); @@ -189,12 +186,8 @@ export const LogStream: React.FC = ({ useEffect(() => updateFilter.cancel, []); useEffect(() => { - return streamLogs( - httpApiBase, - (line) => addLineRef.current(line), - setError - ); - }, [httpApiBase]); + return streamLogs(url, (line) => addLineRef.current(line), setError); + }, [url]); return (
diff --git a/crates/librqbit/webui/src/components/LogStreamModal.tsx b/crates/librqbit/webui/src/components/LogStreamModal.tsx index 5787245..1a8d639 100644 --- a/crates/librqbit/webui/src/components/LogStreamModal.tsx +++ b/crates/librqbit/webui/src/components/LogStreamModal.tsx @@ -11,7 +11,7 @@ interface Props { export const LogStreamModal: React.FC = ({ show, onClose }) => { const api = useContext(APIContext); - const apiBase = api.getHttpBaseUrl(); + let logsUrl = api.getStreamLogsUrl(); return ( @@ -19,8 +19,8 @@ export const LogStreamModal: React.FC = ({ show, onClose }) => { rqbit server logs - {apiBase ? ( - + {logsUrl ? ( + ) : ( ({ delete: () => { throw new Error("Function not implemented."); }, - getHttpBaseUrl: () => { - throw new Error("Function not implemented."); + getStreamLogsUrl: () => { + return null; }, }); export const AppContext = createContext({ diff --git a/crates/librqbit/webui/src/http-api.ts b/crates/librqbit/webui/src/http-api.ts index 60a81a9..bad5cb0 100644 --- a/crates/librqbit/webui/src/http-api.ts +++ b/crates/librqbit/webui/src/http-api.ts @@ -64,7 +64,7 @@ const makeRequest = async ( }; export const API: RqbitAPI & { getVersion: () => Promise } = { - getHttpBaseUrl: () => apiUrl, + getStreamLogsUrl: () => apiUrl + "/stream_logs", listTorrents: (): Promise => makeRequest("GET", "/torrents"), getTorrentDetails: (index: number): Promise => { diff --git a/desktop/src/api.tsx b/desktop/src/api.tsx index d497f27..b2e1810 100644 --- a/desktop/src/api.tsx +++ b/desktop/src/api.tsx @@ -69,10 +69,15 @@ async function readFileAsBase64(file: File): Promise { export const makeAPI = (configuration: RqbitDesktopConfig): RqbitAPI => { return { - getHttpBaseUrl: () => { - return configuration.http_api.listen_addr - ? `http://${configuration.http_api.listen_addr}` - : null; + getStreamLogsUrl: () => { + if (!configuration.http_api.listen_addr) { + return null; + } + let port = configuration.http_api.listen_addr.split(":")[1]; + if (!port) { + return null; + } + return `http://127.0.0.1:${port}/stream_logs`; }, listTorrents: async function (): Promise { return await invokeAPI("torrents_list");