var e=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports);(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var t=e((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var ee=Array.isArray;function S(){}var C={H:null,A:null,T:null,S:null},te=Object.prototype.hasOwnProperty;function ne(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function re(e,t){return ne(e.type,t,e.props)}function w(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function ie(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var ae=/\/+/g;function oe(e,t){return typeof e==`object`&&e&&e.key!=null?ie(``+e.key):t.toString(36)}function se(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(S,S):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function ce(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,ce(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+oe(e,0):a,ee(o)?(i=``,c!=null&&(i=c.replace(ae,`$&/`)+`/`),ce(o,r,i,``,function(e){return e})):o!=null&&(w(o)&&(o=re(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(ae,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(ee(e))for(var u=0;u{n.exports=t()})),r=e((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0>>1,a=e[r];if(0>>1;ri(c,n))li(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(li(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m){if(n(c)!==null)m=!0,ee||(ee=!0,w());else{var t=n(l);t!==null&&oe(x,t.startTime-e)}}}var ee=!1,S=-1,C=5,te=-1;function ne(){return g?!0:!(e.unstable_now()-tet&&ne());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&oe(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?w():ee=!1}}}var w;if(typeof y==`function`)w=function(){y(re)};else if(typeof MessageChannel<`u`){var ie=new MessageChannel,ae=ie.port2;ie.port1.onmessage=re,w=function(){ae.postMessage(null)}}else w=function(){_(re,0)};function oe(t,n){S=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(S),S=-1):h=!0,oe(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,ee||(ee=!0,w()))),r},e.unstable_shouldYield=ne,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),i=e(((e,t)=>{t.exports=r()})),a=e((e=>{var t=n();function r(e){var t=`https://react.dev/errors/`+e;if(1{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=a()})),s=e((e=>{var t=i(),r=n(),a=o();function s(e){var t=`https://react.dev/errors/`+e;if(1pe||(e.current=fe[pe],fe[pe]=null,pe--)}function O(e,t){pe++,fe[pe]=e.current,e.current=t}var he=me(null),ge=me(null),_e=me(null),ve=me(null);function ye(e,t){switch(O(_e,t),O(ge,e),O(he,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Vd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Vd(t),e=Hd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}D(he),O(he,e)}function be(){D(he),D(ge),D(_e)}function xe(e){e.memoizedState!==null&&O(ve,e);var t=he.current,n=Hd(t,e.type);t!==n&&(O(ge,e),O(he,n))}function Se(e){ge.current===e&&(D(he),D(ge)),ve.current===e&&(D(ve),Qf._currentValue=de)}var Ce,we;function Te(e){if(Ce===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);Ce=t&&t[1]||``,we=-1)`:-1i||c[r]!==l[i]){var u=` `+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{Ee=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?Te(n):``}function Oe(e,t){switch(e.tag){case 26:case 27:case 5:return Te(e.type);case 16:return Te(`Lazy`);case 13:return e.child!==t&&t!==null?Te(`Suspense Fallback`):Te(`Suspense`);case 19:return Te(`SuspenseList`);case 0:case 15:return De(e.type,!1);case 11:return De(e.type.render,!1);case 1:return De(e.type,!0);case 31:return Te(`Activity`);default:return``}}function ke(e){try{var t=``,n=null;do t+=Oe(e,n),n=e,e=e.return;while(e);return t}catch(e){return` Error generating stack: `+e.message+` `+e.stack}}var Ae=Object.prototype.hasOwnProperty,je=t.unstable_scheduleCallback,Me=t.unstable_cancelCallback,Ne=t.unstable_shouldYield,Pe=t.unstable_requestPaint,Fe=t.unstable_now,Ie=t.unstable_getCurrentPriorityLevel,Le=t.unstable_ImmediatePriority,Re=t.unstable_UserBlockingPriority,ze=t.unstable_NormalPriority,Be=t.unstable_LowPriority,Ve=t.unstable_IdlePriority,He=t.log,Ue=t.unstable_setDisableYieldValue,We=null,Ge=null;function Ke(e){if(typeof He==`function`&&Ue(e),Ge&&typeof Ge.setStrictMode==`function`)try{Ge.setStrictMode(We,e)}catch{}}var qe=Math.clz32?Math.clz32:Xe,Je=Math.log,Ye=Math.LN2;function Xe(e){return e>>>=0,e===0?32:31-(Je(e)/Ye|0)|0}var Ze=256,Qe=262144,$e=4194304;function et(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function tt(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=et(n))):i=et(o):i=et(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=et(n))):i=et(o)):i=et(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function nt(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function rt(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function it(){var e=$e;return $e<<=1,!($e&62914560)&&($e=4194304),e}function at(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function ot(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function st(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0`u`||window.document===void 0||window.document.createElement===void 0),yn=!1;if(vn)try{var bn={};Object.defineProperty(bn,"passive",{get:function(){yn=!0}}),window.addEventListener(`test`,bn,bn),window.removeEventListener(`test`,bn,bn)}catch{yn=!1}var xn=null,Sn=null,Cn=null;function wn(){if(Cn)return Cn;var e,t=Sn,n=t.length,r,i=`value`in xn?xn.value:xn.textContent,a=i.length;for(e=0;e=nr),ar=` `,or=!1;function sr(e,t){switch(e){case`keyup`:return er.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function cr(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var lr=!1;function ur(e,t){switch(e){case`compositionend`:return cr(t);case`keypress`:return t.which===32?(or=!0,ar):null;case`textInput`:return e=t.data,e===ar&&or?null:e;default:return null}}function dr(e,t){if(lr)return e===`compositionend`||!tr&&sr(e,t)?(e=wn(),Cn=Sn=xn=null,lr=!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}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=Nr(n)}}function Fr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Fr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Ir(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Gt(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Gt(e.document)}return t}function Lr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Rr=vn&&`documentMode`in document&&11>=document.documentMode,zr=null,Br=null,Vr=null,Hr=!1;function Ur(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Hr||zr==null||zr!==Gt(r)||(r=zr,`selectionStart`in r&&Lr(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}),Vr&&Mr(Vr,r)||(Vr=r,r=Ed(Br,`onSelect`),0>=o,i-=o,Fi=1<<32-qe(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),o=a(_,o,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),j&&Li(i,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(i,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(i,h),o=a(y,o,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(i,h),j&&Li(i,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(i,v.value,l),v!==null&&(o=a(v,o,g),d===null?u=v:d.sibling=v,d=v);return j&&Li(i,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,i,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),o=a(v,o,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(i,e)}),j&&Li(i,g),u}function b(e,r,a,c){if(typeof a==`object`&&a&&a.type===y&&a.key===null&&(a=a.props.children),typeof a==`object`&&a){switch(a.$$typeof){case _:a:{for(var l=a.key;r!==null;){if(r.key===l){if(l=a.type,l===y){if(r.tag===7){n(e,r.sibling),c=i(r,a.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===w&&Fa(l)===r.type){n(e,r.sibling),c=i(r,a.props),Ha(c,a),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}a.type===y?(c=Si(a.props.children,e.mode,c,a.key),c.return=e,e=c):(c=xi(a.type,a.key,a.props,null,e.mode,c),Ha(c,a),c.return=e,e=c)}return o(e);case v:a:{for(l=a.key;r!==null;){if(r.key===l){if(r.tag===4&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){n(e,r.sibling),c=i(r,a.children||[]),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}c=Ti(a,e.mode,c),c.return=e,e=c}return o(e);case w:return a=Fa(a),b(e,r,a,c)}if(ue(a))return h(e,r,a,c);if(se(a)){if(l=se(a),typeof l!=`function`)throw Error(s(150));return a=l.call(a),g(e,r,a,c)}if(typeof a.then==`function`)return b(e,r,Va(a),c);if(a.$$typeof===S)return b(e,r,ua(e,a),c);Ua(e,a)}return typeof a==`string`&&a!==``||typeof a==`number`||typeof a==`bigint`?(a=``+a,r!==null&&r.tag===6?(n(e,r.sibling),c=i(r,a),c.return=e,e=c):(n(e,r),c=Ci(a,e.mode,c),c.return=e,e=c),o(e)):n(e,r)}return function(e,t,n,r){try{Ba=0;var i=b(e,t,n,r);return za=null,i}catch(t){if(t===ka||t===ja)throw t;var a=_i(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Ga=Wa(!0),Ka=Wa(!1),qa=!1;function Ja(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Ya(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Xa(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Za(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,W&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=mi(e),pi(e,null,n),t}return ui(e,r,t,n),mi(e)}function Qa(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,lt(e,n)}}function $a(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var eo=!1;function to(){if(eo){var e=ba;if(e!==null)throw e}}function no(e,t,n,r){eo=!1;var i=e.updateQueue;qa=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(q&f)===f:(r&f)===f){f!==0&&f===ya&&(eo=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var m=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(m=g.payload,typeof m==`function`){d=m.call(_,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=g.payload,f=typeof m==`function`?m.call(_,d,f):m,f==null)break a;d=h({},d,f);break a;case 2:qa=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Kl|=o,e.lanes=o,e.memoizedState=d}}function ro(e,t){if(typeof e!=`function`)throw Error(s(191,e));e.call(t)}function io(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=T.T,s={};T.T=s,zs(e,!1,t,n);try{var c=i(),l=T.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Rs(e,t,Ca(c,r),pu(e)):Rs(e,t,r,pu(e))}catch(n){Rs(e,t,{then:function(){},status:`rejected`,reason:n},pu())}finally{E.p=a,o!==null&&s.types!==null&&(o.types=s.types),T.T=o}}function Os(){}function ks(e,t,n,r){if(e.tag!==5)throw Error(s(476));var i=As(e).queue;Ds(e,i,t,de,n===null?Os:function(){return js(e),n(r)})}function As(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:de,baseState:de,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Bo,lastRenderedState:de},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Bo,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function js(e){var t=As(e);t.next===null&&(t=e.alternate.memoizedState),Rs(e,t.next.queue,{},pu())}function Ms(){return la(Qf)}function Ns(){return R().memoizedState}function Ps(){return R().memoizedState}function Fs(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=pu();e=Xa(n);var r=Za(t,e,n);r!==null&&(hu(r,t,n),Qa(r,t,n)),t={cache:ha()},e.payload=t;return}t=t.return}}function Is(e,t,n){var r=pu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Bs(e)?Vs(t,n):(n=di(e,t,n,r),n!==null&&(hu(n,e,r),Hs(n,t,r)))}function Ls(e,t,n){Rs(e,t,n,pu())}function Rs(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Bs(e))Vs(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,jr(s,o))return ui(e,t,i,0),G===null&&li(),!1}catch{}if(n=di(e,t,i,r),n!==null)return hu(n,e,r),Hs(n,t,r),!0}return!1}function zs(e,t,n,r){if(r={lane:2,revertLane:dd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Bs(e)){if(t)throw Error(s(479))}else t=di(e,n,r,2),t!==null&&hu(t,e,2)}function Bs(e){var t=e.alternate;return e===P||t!==null&&t===P}function Vs(e,t){xo=bo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Hs(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,lt(e,n)}}var Us={readContext:la,use:Ro,useCallback:L,useContext:L,useEffect:L,useImperativeHandle:L,useLayoutEffect:L,useInsertionEffect:L,useMemo:L,useReducer:L,useRef:L,useState:L,useDebugValue:L,useDeferredValue:L,useTransition:L,useSyncExternalStore:L,useId:L,useHostTransitionStatus:L,useFormState:L,useActionState:L,useOptimistic:L,useMemoCache:L,useCacheRefresh:L};Us.useEffectEvent=L;var Ws={readContext:la,use:Ro,useCallback:function(e,t){return Fo().memoizedState=[e,t===void 0?null:t],e},useContext:la,useEffect:ms,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),fs(4194308,4,bs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return fs(4194308,4,e,t)},useInsertionEffect:function(e,t){fs(4,2,e,t)},useMemo:function(e,t){var n=Fo();t=t===void 0?null:t;var r=e();if(So){Ke(!0);try{e()}finally{Ke(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Fo();if(n!==void 0){var i=n(t);if(So){Ke(!0);try{n(t)}finally{Ke(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=Is.bind(null,P,e),[r.memoizedState,e]},useRef:function(e){var t=Fo();return e={current:e},t.memoizedState=e},useState:function(e){e=Xo(e);var t=e.queue,n=Ls.bind(null,P,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Ss,useDeferredValue:function(e,t){return Ts(Fo(),e,t)},useTransition:function(){var e=Xo(!1);return e=Ds.bind(null,P,e.queue,!0,!1),Fo().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=P,i=Fo();if(j){if(n===void 0)throw Error(s(407));n=n()}else{if(n=t(),G===null)throw Error(s(349));q&127||Go(r,t,n)}i.memoizedState=n;var a={value:n,getSnapshot:t};return i.queue=a,ms(qo.bind(null,r,a,e),[e]),r.flags|=2048,us(9,{destroy:void 0},Ko.bind(null,r,a,n,t),null),n},useId:function(){var e=Fo(),t=G.identifierPrefix;if(j){var n=Ii,r=Fi;n=(r&~(1<<32-qe(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=Co++,0<\/script>`,a=a.removeChild(a.firstChild);break;case`select`:a=typeof r.is==`string`?o.createElement(`select`,{is:r.is}):o.createElement(`select`),r.multiple?a.multiple=!0:r.size&&(a.size=r.size);break;default:a=typeof r.is==`string`?o.createElement(i,{is:r.is}):o.createElement(i)}}a[gt]=t,a[_t]=r;a:for(o=t.child;o!==null;){if(o.tag===5||o.tag===6)a.appendChild(o.stateNode);else if(o.tag!==4&&o.tag!==27&&o.child!==null){o.child.return=o,o=o.child;continue}if(o===t)break a;for(;o.sibling===null;){if(o.return===null||o.return===t)break a;o=o.return}o.sibling.return=o.return,o=o.sibling}t.stateNode=a;a:switch(Pd(a,i,r),i){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&Lc(t)}}return B(t),Rc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Lc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(s(166));if(e=_e.current,Yi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,i=Hi,i!==null)switch(i.tag){case 27:case 5:r=i.memoizedProps}e[gt]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Md(e.nodeValue,n)),e||Ki(t,!0)}else e=Bd(e).createTextNode(r),e[gt]=t,t.stateNode=e}return B(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Yi(t),n!==null){if(e===null){if(!r)throw Error(s(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(s(557));e[gt]=t}else Xi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;B(t),e=!1}else n=Zi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(_o(t),t):(_o(t),null);if(t.flags&128)throw Error(s(558))}return B(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(i=Yi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!i)throw Error(s(318));if(i=t.memoizedState,i=i===null?null:i.dehydrated,!i)throw Error(s(317));i[gt]=t}else Xi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;B(t),i=!1}else i=Zi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return t.flags&256?(_o(t),t):(_o(t),null)}return _o(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,i=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(i=r.alternate.memoizedState.cachePool.pool),a=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(a=r.memoizedState.cachePool.pool),a!==i&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Bc(t,t.updateQueue),B(t),null);case 4:return be(),e===null&&Sd(t.stateNode.containerInfo),B(t),null;case 10:return ra(t.type),B(t),null;case 19:if(D(N),r=t.memoizedState,r===null)return B(t),null;if(i=!!(t.flags&128),a=r.rendering,a===null){if(i)Vc(r,!1);else{if(Y!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(a=vo(e),a!==null){for(t.flags|=128,Vc(r,!1),e=a.updateQueue,t.updateQueue=e,Bc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)bi(n,e),n=n.sibling;return O(N,N.current&1|2),j&&Li(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Fe()>nu&&(t.flags|=128,i=!0,Vc(r,!1),t.lanes=4194304)}}else{if(!i){if(e=vo(a),e!==null){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,Bc(t,e),Vc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!a.alternate&&!j)return B(t),null}else 2*Fe()-r.renderingStartTime>nu&&n!==536870912&&(t.flags|=128,i=!0,Vc(r,!1),t.lanes=4194304)}r.isBackwards?(a.sibling=t.child,t.child=a):(e=r.last,e===null?t.child=a:e.sibling=a,r.last=a)}return r.tail===null?(B(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Fe(),e.sibling=null,n=N.current,O(N,i?n&1|2:n&1),j&&Li(t,r.treeForkCount),e);case 22:case 23:return _o(t),lo(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(B(t),t.subtreeFlags&6&&(t.flags|=8192)):B(t),n=t.updateQueue,n!==null&&Bc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&D(Ta),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),ra(M),B(t),null;case 25:return null;case 30:return null}throw Error(s(156,t.tag))}function Uc(e,t){switch(Bi(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return ra(M),be(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Se(t),null;case 31:if(t.memoizedState!==null){if(_o(t),t.alternate===null)throw Error(s(340));Xi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(_o(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(s(340));Xi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return D(N),null;case 4:return be(),null;case 10:return ra(t.type),null;case 22:case 23:return _o(t),lo(),e!==null&&D(Ta),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return ra(M),null;case 25:return null;default:return null}}function Wc(e,t){switch(Bi(t),t.tag){case 3:ra(M),be();break;case 26:case 27:case 5:Se(t);break;case 4:be();break;case 31:t.memoizedState!==null&&_o(t);break;case 13:_o(t);break;case 19:D(N);break;case 10:ra(t.type);break;case 22:case 23:_o(t),lo(),e!==null&&D(Ta);break;case 24:ra(M)}}function Gc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Z(t,t.return,e)}}function Kc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Z(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Z(t,t.return,e)}}function qc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{io(t,n)}catch(t){Z(e,e.return,t)}}}function Jc(e,t,n){n.props=Zs(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Z(e,t,n)}}function Yc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Z(e,t,n)}}function Xc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null){if(typeof r==`function`)try{r()}catch(n){Z(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Z(e,t,n)}else n.current=null}}function Zc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Z(e,e.return,t)}}function Qc(e,t,n){try{var r=e.stateNode;Fd(r,e.type,n,t),r[_t]=t}catch(t){Z(e,e.return,t)}}function $c(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Zd(e.type)||e.tag===4}function el(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||$c(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.tag===27&&Zd(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function tl(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=ln));else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(tl(e,t,n),e=e.sibling;e!==null;)tl(e,t,n),e=e.sibling}function nl(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&&(r===27&&Zd(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(nl(e,t,n),e=e.sibling;e!==null;)nl(e,t,n),e=e.sibling}function rl(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Pd(t,r,n),t[gt]=e,t[_t]=n}catch(t){Z(e,e.return,t)}}var il=!1,V=!1,al=!1,ol=typeof WeakSet==`function`?WeakSet:Set,H=null;function sl(e,t){if(e=e.containerInfo,Rd=sp,e=Ir(e),Lr(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,a=r.focusNode;r=r.focusOffset;try{n.nodeType,a.nodeType}catch{n=null;break a}var o=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||i!==0&&f.nodeType!==3||(c=o+i),f!==a||r!==0&&f.nodeType!==3||(l=o+r),f.nodeType===3&&(o+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===i&&(c=o),p===a&&++d===r&&(l=o),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(zd={focusedElem:e,selectionRange:n},sp=!1,H=t;H!==null;)if(t=H,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,H=e;else for(;H!==null;){switch(t=H,a=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n title`))),Pd(a,r,n),a[gt]=e,k(a),r=a;break a;case`link`:var o=Vf(`link`,`href`,i).get(r+(n.href||``));if(o){for(var c=0;cg&&(o=g,g=h,h=o);var _=Pr(s,h),v=Pr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,T.T=null,n=lu,lu=null;var a=au,o=su;if(X=0,ou=au=null,su=0,W&6)throw Error(s(331));var c=W;if(W|=4,Il(a.current),Ol(a,a.current,o,n),W=c,id(0,!1),Ge&&typeof Ge.onPostCommitFiberRoot==`function`)try{Ge.onPostCommitFiberRoot(We,a)}catch{}return!0}finally{E.p=i,T.T=r,Vu(e,t)}}function Wu(e,t,n){t=Di(n,t),t=rc(e.stateNode,t,2),e=Za(e,t,2),e!==null&&(ot(e,2),rd(e))}function Z(e,t,n){if(e.tag===3)Wu(e,e,n);else for(;t!==null;){if(t.tag===3){Wu(t,e,n);break}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(iu===null||!iu.has(r))){e=Di(n,e),n=ic(2),r=Za(t,n,2),r!==null&&(ac(n,r,t,e),ot(r,2),rd(r));break}}t=t.return}}function Gu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Bl;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Wl=!0,i.add(n),e=Ku.bind(null,e,t,n),t.then(e,e))}function Ku(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,G===e&&(q&n)===n&&(Y===4||Y===3&&(q&62914560)===q&&300>Fe()-eu?!(W&2)&&Su(e,0):Jl|=n,Xl===q&&(Xl=0)),rd(e)}function qu(e,t){t===0&&(t=it()),e=fi(e,t),e!==null&&(ot(e,t),rd(e))}function Ju(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),qu(e,n)}function Yu(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(s(314))}r!==null&&r.delete(t),qu(e,n)}function Xu(e,t){return je(e,t)}var Zu=null,Qu=null,$u=!1,ed=!1,td=!1,nd=0;function rd(e){e!==Qu&&e.next===null&&(Qu===null?Zu=Qu=e:Qu=Qu.next=e),ed=!0,$u||($u=!0,ud())}function id(e,t){if(!td&&ed){td=!0;do for(var n=!1,r=Zu;r!==null;){if(!t){if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-qe(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,ld(r,a))}else a=q,a=tt(r,r===G?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||nt(r,a)||(n=!0,ld(r,a))}r=r.next}while(n);td=!1}}function ad(){od()}function od(){ed=$u=!1;var e=0;nd!==0&&Gd()&&(e=nd);for(var t=Fe(),n=null,r=Zu;r!==null;){var i=r.next,a=sd(r,t);a===0?(r.next=null,n===null?Zu=i:n.next=i,i===null&&(Qu=n)):(n=r,(e!==0||a&3)&&(ed=!0)),r=i}X!==0&&X!==5||id(e,!1),nd!==0&&(nd=0)}function sd(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&Id(d)&&(c=c.responseEnd,o+=u*(c`u`?null:document;function xf(e,t,n){var r=bf;if(r&&typeof t==`string`&&t){var i=qt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),hf.has(i)||(hf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Pd(t,`link`,e),k(t),r.head.appendChild(t)))}}function Sf(e){_f.D(e),xf(`dns-prefetch`,e,null)}function Cf(e,t){_f.C(e,t),xf(`preconnect`,e,t)}function wf(e,t,n){_f.L(e,t,n);var r=bf;if(r&&e&&t){var i=`link[rel="preload"][as="`+qt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+qt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+qt(n.imageSizes)+`"]`)):i+=`[href="`+qt(e)+`"]`;var a=i;switch(t){case`style`:a=Af(e);break;case`script`:a=Pf(e)}mf.has(a)||(e=h({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),mf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(jf(a))||t===`script`&&r.querySelector(Ff(a))||(t=r.createElement(`link`),Pd(t,`link`,e),k(t),r.head.appendChild(t)))}}function Tf(e,t){_f.m(e,t);var n=bf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+qt(r)+`"][href="`+qt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Pf(e)}if(!mf.has(a)&&(e=h({rel:`modulepreload`,href:e},t),mf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Ff(a)))return}r=n.createElement(`link`),Pd(r,`link`,e),k(r),n.head.appendChild(r)}}}function Ef(e,t,n){_f.S(e,t,n);var r=bf;if(r&&e){var i=Ot(r).hoistableStyles,a=Af(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(jf(a)))s.loading=5;else{e=h({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=mf.get(a))&&Rf(e,n);var c=o=r.createElement(`link`);k(c),Pd(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Lf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Df(e,t){_f.X(e,t);var n=bf;if(n&&e){var r=Ot(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=h({src:e,async:!0},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),k(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Of(e,t){_f.M(e,t);var n=bf;if(n&&e){var r=Ot(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=h({src:e,async:!0,type:`module`},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),k(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function kf(e,t,n,r){var i=(i=_e.current)?gf(i):null;if(!i)throw Error(s(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Af(n.href),n=Ot(i).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Af(n.href);var a=Ot(i).hoistableStyles,o=a.get(e);if(o||(i=i.ownerDocument||i,o={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},a.set(e,o),(a=i.querySelector(jf(e)))&&!a._p&&(o.instance=a,o.state.loading=5),mf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},mf.set(e,n),a||Nf(i,e,n,o.state))),t&&r===null)throw Error(s(528,``));return o}if(t&&r!==null)throw Error(s(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Pf(n),n=Ot(i).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(s(444,e))}}function Af(e){return`href="`+qt(e)+`"`}function jf(e){return`link[rel="stylesheet"][`+e+`]`}function Mf(e){return h({},e,{"data-precedence":e.precedence,precedence:null})}function Nf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Pd(t,`link`,n),k(t),e.head.appendChild(t))}function Pf(e){return`[src="`+qt(e)+`"]`}function Ff(e){return`script[async]`+e}function If(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+qt(n.href)+`"]`);if(r)return t.instance=r,k(r),r;var i=h({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),k(r),Pd(r,`style`,i),Lf(r,n.precedence,e),t.instance=r;case`stylesheet`:i=Af(n.href);var a=e.querySelector(jf(i));if(a)return t.state.loading|=4,t.instance=a,k(a),a;r=Mf(n),(i=mf.get(i))&&Rf(r,i),a=(e.ownerDocument||e).createElement(`link`),k(a);var o=a;return o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Pd(a,`link`,r),t.state.loading|=4,Lf(a,n.precedence,e),t.instance=a;case`script`:return a=Pf(n.src),(i=e.querySelector(Ff(a)))?(t.instance=i,k(i),i):(r=n,(i=mf.get(a))&&(r=h({},n),zf(r,i)),e=e.ownerDocument||e,i=e.createElement(`script`),k(i),Pd(i,`link`,r),e.head.appendChild(i),t.instance=i);case`void`:return null;default:throw Error(s(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Lf(r,n.precedence,e));return t.instance}function Lf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function Uf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Wf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Gf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Af(r.href),a=t.querySelector(jf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Jf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,k(a);return}a=t.ownerDocument||t,r=Mf(r),(i=mf.get(i))&&Rf(r,i),a=a.createElement(`link`),k(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Pd(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Jf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Kf=0;function qf(e,t){return e.stylesheets&&e.count===0&&Xf(e,e.stylesheets),0Kf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Jf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Xf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Yf=null;function Xf(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Yf=new Map,t.forEach(Zf,e),Yf=null,Jf.call(e))}function Zf(e,t){if(!(t.state.loading&4)){var n=Yf.get(e);if(n)var r=n.get(null);else{n=new Map,Yf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=s()})),l=n(),u=c(),d=e((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),f=e(((e,t)=>{t.exports=d()}))(),p={administrator:`管理员`,channel_administrator:`渠道管理员`,channel_user:`渠道用户`},m={CN:`国服`,TW:`台服`,KR:`韩服`,INTL:`国际服`},h={"team.automation":`组队`,"afk.automation":`挂机`};async function g(e,t){let n=await fetch(e,{...t,credentials:`include`,headers:{"Content-Type":`application/json`,...t?.headers}}),r=await n.json().catch(()=>({}));if(!n.ok)throw Error(r.message||r.code||`请求失败`);return r}function _(e){return`${e}-${typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}`}function v({onLogin:e}){let[t,n]=(0,l.useState)(``),[r,i]=(0,l.useState)(``),[a,o]=(0,l.useState)(``),[s,c]=(0,l.useState)(``),[u,d]=(0,l.useState)(!1);async function p(n){n.preventDefault(),d(!0),c(``);try{let n=await g(`/api/auth/login`,{method:`POST`,body:JSON.stringify({username:t,password:r,totp:a||void 0})});e({user_id:n.user.id,role:n.user.role,channel_id:n.user.channel_id,expires_at:``})}catch(e){c(e instanceof Error?e.message:`登录失败`)}finally{d(!1)}}return(0,f.jsx)(`main`,{className:`auth-shell`,children:(0,f.jsxs)(`section`,{className:`auth-panel`,children:[(0,f.jsx)(`p`,{className:`eyebrow`,children:`RXDEV LICENSE`}),(0,f.jsx)(`h1`,{children:`卡密管理台`}),(0,f.jsxs)(`form`,{onSubmit:p,className:`auth-form`,children:[(0,f.jsxs)(`label`,{children:[`账号`,(0,f.jsx)(`input`,{value:t,onChange:e=>n(e.target.value),autoComplete:`username`,required:!0})]}),(0,f.jsxs)(`label`,{children:[`密码`,(0,f.jsx)(`input`,{type:`password`,value:r,onChange:e=>i(e.target.value),autoComplete:`current-password`,required:!0})]}),(0,f.jsxs)(`label`,{children:[`验证器代码`,(0,f.jsx)(`input`,{inputMode:`numeric`,pattern:`[0-9]*`,maxLength:6,value:a,onChange:e=>o(e.target.value),autoComplete:`one-time-code`})]}),s&&(0,f.jsx)(`p`,{className:`error`,role:`alert`,children:s}),(0,f.jsx)(`button`,{className:`primary full`,disabled:u,children:u?`登录中...`:`登录`})]})]})})}var y=[{name:`总览`,roles:[`administrator`,`channel_administrator`,`channel_user`]},{name:`用户与渠道`,roles:[`administrator`]},{name:`额度账本`,roles:[`administrator`,`channel_administrator`,`channel_user`]},{name:`卡片模板`,roles:[`administrator`,`channel_administrator`,`channel_user`]},{name:`卡密批次`,roles:[`administrator`,`channel_administrator`,`channel_user`]},{name:`机器与窗口`,roles:[`administrator`,`channel_administrator`,`channel_user`]},{name:`统计`,roles:[`administrator`,`channel_administrator`]},{name:`审计日志`,roles:[`administrator`,`channel_administrator`]}];function b({onNotice:e}){let[t,n]=(0,l.useState)(``),[r,i]=(0,l.useState)(``),[a,o]=(0,l.useState)(`channel_user`),[s,c]=(0,l.useState)(``),[u,d]=(0,l.useState)(!1),[m,h]=(0,l.useState)(``),[_,v]=(0,l.useState)(``),[y,b]=(0,l.useState)(!1),[x,ee]=(0,l.useState)([]),[S,C]=(0,l.useState)([]),[te,ne]=(0,l.useState)(!0),[re,w]=(0,l.useState)(``),ie=(0,l.useCallback)(async()=>{ne(!0);try{let[e,t]=await Promise.all([g(`/api/admin/v1/users?limit=100`),g(`/api/admin/v1/channels?limit=100`)]);ee(e.items),C(t.items)}catch(t){e(t instanceof Error?t.message:`用户和渠道加载失败`)}finally{ne(!1)}},[e]);(0,l.useEffect)(()=>{ie()},[ie]);async function ae(o){o.preventDefault(),d(!0);try{e(`已创建 ${(await g(`/api/admin/v1/users`,{method:`POST`,body:JSON.stringify({username:t,password:r,role:a,channel_id:s||void 0})})).username}`),n(``),i(``),c(``),await ie()}catch(t){e(t instanceof Error?t.message:`创建用户失败`)}finally{d(!1)}}async function oe(t){t.preventDefault(),b(!0);try{e(`已创建渠道 ${(await g(`/api/admin/v1/channels`,{method:`POST`,body:JSON.stringify({name:m,parent_id:_||void 0})})).name}`),h(``),v(``),await ie()}catch(t){e(t instanceof Error?t.message:`创建渠道失败`)}finally{b(!1)}}async function se(t){if(!(t.disabled_at||!window.confirm(`确认停用用户 ${t.username}?`))){w(t.id);try{await g(`/api/admin/v1/users/${t.id}/disable`,{method:`POST`}),e(`已停用 ${t.username}`),await ie()}catch(t){e(t instanceof Error?t.message:`停用用户失败`)}finally{w(``)}}}return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(`section`,{className:`panel`,children:[(0,f.jsx)(`div`,{className:`panel-head`,children:(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`h2`,{children:`新增渠道`}),(0,f.jsx)(`p`,{className:`muted`,children:`渠道节点由管理员创建,渠道管理员和渠道用户只能绑定已有节点。`})]})}),(0,f.jsxs)(`form`,{className:`form-grid`,onSubmit:oe,children:[(0,f.jsxs)(`label`,{children:[`渠道名称`,(0,f.jsx)(`input`,{value:m,onChange:e=>h(e.target.value),minLength:2,maxLength:128,required:!0})]}),(0,f.jsxs)(`label`,{children:[`上级渠道`,(0,f.jsxs)(`select`,{value:_,onChange:e=>v(e.target.value),children:[(0,f.jsx)(`option`,{value:``,children:`根渠道`}),S.map(e=>(0,f.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}),(0,f.jsx)(`div`,{className:`form-action`,children:(0,f.jsx)(`button`,{className:`primary`,disabled:y,children:y?`创建中...`:`创建渠道`})})]})]}),(0,f.jsxs)(`section`,{className:`panel`,children:[(0,f.jsx)(`div`,{className:`panel-head`,children:(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`h2`,{children:`新增用户`}),(0,f.jsx)(`p`,{className:`muted`,children:`仅管理员可创建账号;渠道范围由服务端校验。`})]})}),(0,f.jsxs)(`form`,{className:`form-grid`,onSubmit:ae,children:[(0,f.jsxs)(`label`,{children:[`账号`,(0,f.jsx)(`input`,{value:t,onChange:e=>n(e.target.value),minLength:3,required:!0})]}),(0,f.jsxs)(`label`,{children:[`初始密码`,(0,f.jsx)(`input`,{type:`password`,value:r,onChange:e=>i(e.target.value),minLength:8,required:!0})]}),(0,f.jsxs)(`label`,{children:[`角色`,(0,f.jsxs)(`select`,{value:a,onChange:e=>o(e.target.value),children:[(0,f.jsx)(`option`,{value:`channel_user`,children:`渠道用户`}),(0,f.jsx)(`option`,{value:`channel_administrator`,children:`渠道管理员`}),(0,f.jsx)(`option`,{value:`administrator`,children:`管理员`})]})]}),(0,f.jsxs)(`label`,{children:[`渠道`,(0,f.jsxs)(`select`,{value:s,onChange:e=>c(e.target.value),required:a!==`administrator`,disabled:a===`administrator`,children:[(0,f.jsx)(`option`,{value:``,children:a===`administrator`?`管理员不需要渠道`:`选择渠道`}),S.map(e=>(0,f.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}),(0,f.jsx)(`div`,{className:`form-action`,children:(0,f.jsx)(`button`,{className:`primary`,disabled:u,children:u?`保存中...`:`创建用户`})})]})]}),(0,f.jsxs)(`section`,{className:`panel table-panel`,children:[(0,f.jsxs)(`div`,{className:`panel-head`,children:[(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`h2`,{children:`用户列表`}),(0,f.jsx)(`p`,{className:`muted`,children:`显示当前管理员可见的完整用户范围。`})]}),(0,f.jsx)(`span`,{className:`count`,children:te?`加载中`:`${x.length} 人`})]}),(0,f.jsx)(`div`,{className:`table-wrap`,children:(0,f.jsxs)(`table`,{children:[(0,f.jsx)(`thead`,{children:(0,f.jsxs)(`tr`,{children:[(0,f.jsx)(`th`,{children:`账号`}),(0,f.jsx)(`th`,{children:`角色`}),(0,f.jsx)(`th`,{children:`渠道`}),(0,f.jsx)(`th`,{children:`额度`}),(0,f.jsx)(`th`,{children:`状态`}),(0,f.jsx)(`th`,{children:`创建时间`}),(0,f.jsx)(`th`,{children:`操作`})]})}),(0,f.jsxs)(`tbody`,{children:[x.map(e=>(0,f.jsxs)(`tr`,{children:[(0,f.jsxs)(`td`,{children:[(0,f.jsx)(`strong`,{children:e.username}),(0,f.jsx)(`small`,{className:`subtle mono`,children:e.id})]}),(0,f.jsx)(`td`,{children:p[e.role]}),(0,f.jsx)(`td`,{className:`mono`,children:e.channel_id||`全局`}),(0,f.jsx)(`td`,{children:e.balance}),(0,f.jsx)(`td`,{children:(0,f.jsx)(`span`,{className:e.disabled_at?`status off`:`status`,children:e.disabled_at?`停用`:`正常`})}),(0,f.jsx)(`td`,{children:new Date(e.created_at).toLocaleString()}),(0,f.jsx)(`td`,{className:`actions`,children:!e.disabled_at&&(0,f.jsx)(`button`,{className:`ghost`,type:`button`,onClick:()=>void se(e),disabled:re===e.id,children:re===e.id?`停用中...`:`停用用户`})})]},e.id)),!te&&x.length===0&&(0,f.jsx)(`tr`,{children:(0,f.jsx)(`td`,{colSpan:7,className:`empty-cell`,children:`暂无用户`})})]})]})})]}),(0,f.jsxs)(`section`,{className:`panel table-panel`,children:[(0,f.jsxs)(`div`,{className:`panel-head`,children:[(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`h2`,{children:`渠道树`}),(0,f.jsx)(`p`,{className:`muted`,children:`渠道管理员只能看到自身节点及子节点。`})]}),(0,f.jsxs)(`span`,{className:`count`,children:[S.length,` 个`]})]}),(0,f.jsx)(`div`,{className:`table-wrap`,children:(0,f.jsxs)(`table`,{children:[(0,f.jsx)(`thead`,{children:(0,f.jsxs)(`tr`,{children:[(0,f.jsx)(`th`,{children:`渠道`}),(0,f.jsx)(`th`,{children:`上级渠道`}),(0,f.jsx)(`th`,{children:`用户数`}),(0,f.jsx)(`th`,{children:`额度`}),(0,f.jsx)(`th`,{children:`创建时间`})]})}),(0,f.jsxs)(`tbody`,{children:[S.map(e=>(0,f.jsxs)(`tr`,{children:[(0,f.jsxs)(`td`,{children:[(0,f.jsx)(`strong`,{children:e.name}),(0,f.jsx)(`small`,{className:`subtle mono`,children:e.id})]}),(0,f.jsx)(`td`,{className:`mono`,children:e.parent_id||`根节点`}),(0,f.jsx)(`td`,{children:e.user_count}),(0,f.jsx)(`td`,{children:e.balance}),(0,f.jsx)(`td`,{children:new Date(e.created_at).toLocaleString()})]},e.id)),!te&&S.length===0&&(0,f.jsx)(`tr`,{children:(0,f.jsx)(`td`,{colSpan:5,className:`empty-cell`,children:`暂无渠道`})})]})]})})]})]})}function x({session:e,balance:t,refreshBalance:n,onNotice:r}){let[i,a]=(0,l.useState)(``),[o,s]=(0,l.useState)(1),[c,u]=(0,l.useState)(``),[d,p]=(0,l.useState)(!1),[m,h]=(0,l.useState)(e.role===`administrator`?`adjust`:`allocate`),[v,y]=(0,l.useState)(``),[b,x]=(0,l.useState)(10),[ee,S]=(0,l.useState)(`运营充值`),[C,te]=(0,l.useState)(!1),[ne,re]=(0,l.useState)(``);async function w(e){e.preventDefault(),p(!0);try{let e=m===`adjust`?`/api/admin/v1/wallet/adjustments`:`/api/channel/v1/wallet/allocations`,t=m===`adjust`?{user_id:i,amount:o,reason:c,idempotency_key:_(`adjust`)}:{to_user_id:i,amount:o,reason:c,idempotency_key:_(`allocate`)};await g(e,{method:`POST`,body:JSON.stringify(t)}),r(m===`adjust`?`调账事务已入账`:`额度分配已入账`),a(``),u(``),await n()}catch(e){r(e instanceof Error?e.message:`额度操作失败`)}finally{p(!1)}}async function ie(e){e.preventDefault(),te(!0),re(``);try{let e=await g(`/api/admin/v1/topup-codes`,{method:`POST`,body:JSON.stringify({amount:b,reason:ee,idempotency_key:_(`issue-topup`)})});re(e.code||e.masked_code),r(`充值码已签发;明文仅在本次响应显示`)}catch(e){r(e instanceof Error?e.message:`充值码签发失败`)}finally{te(!1)}}async function ae(e){e.preventDefault(),te(!0);try{let e=await g(`/api/portal/v1/topup-codes/redeem`,{method:`POST`,body:JSON.stringify({code:v,idempotency_key:_(`redeem-topup`)})});y(``),r(`充值 ${e.amount} 额度成功,余额 ${e.balance}`),await n()}catch(e){r(e instanceof Error?e.message:`充值码兑换失败`)}finally{te(!1)}}return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(`section`,{className:`metrics compact`,children:(0,f.jsxs)(`article`,{children:[(0,f.jsx)(`span`,{children:`本人可用额度`}),(0,f.jsx)(`strong`,{children:t??`-`}),(0,f.jsx)(`small`,{children:`整数额度`})]})}),(0,f.jsxs)(`section`,{className:`panel`,children:[(0,f.jsxs)(`div`,{className:`panel-head`,children:[(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`h2`,{children:m===`adjust`?`管理员调账`:`渠道额度分配`}),(0,f.jsx)(`p`,{className:`muted`,children:`所有变更通过服务端双分录和幂等请求记录。`})]}),e.role===`administrator`&&(0,f.jsxs)(`div`,{className:`segmented`,children:[(0,f.jsx)(`button`,{type:`button`,className:m===`adjust`?`selected`:``,onClick:()=>h(`adjust`),children:`调账`}),(0,f.jsx)(`button`,{type:`button`,className:m===`allocate`?`selected`:``,onClick:()=>h(`allocate`),children:`分配`})]})]}),(0,f.jsxs)(`form`,{className:`form-grid`,onSubmit:w,children:[(0,f.jsxs)(`label`,{children:[`目标用户 ID`,(0,f.jsx)(`input`,{value:i,onChange:e=>a(e.target.value),required:!0})]}),(0,f.jsxs)(`label`,{children:[`额度`,(0,f.jsx)(`input`,{type:`number`,value:o,min:m===`allocate`?1:void 0,onChange:e=>s(Number(e.target.value)),required:!0})]}),(0,f.jsxs)(`label`,{className:`span-2`,children:[`原因`,(0,f.jsx)(`input`,{value:c,onChange:e=>u(e.target.value),required:!0})]}),(0,f.jsx)(`div`,{className:`form-action`,children:(0,f.jsx)(`button`,{className:`primary`,disabled:d,children:d?`提交中...`:`确认入账`})})]})]}),(0,f.jsxs)(`section`,{className:`panel`,children:[(0,f.jsx)(`div`,{className:`panel-head`,children:(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`h2`,{children:`充值码`}),(0,f.jsx)(`p`,{className:`muted`,children:`充值码只保存摘要,签发明文只显示一次。`})]})}),e.role===`administrator`&&(0,f.jsxs)(`form`,{className:`form-grid`,onSubmit:ie,children:[(0,f.jsxs)(`label`,{children:[`充值额度`,(0,f.jsx)(`input`,{type:`number`,min:1,value:b,onChange:e=>x(Number(e.target.value)),required:!0})]}),(0,f.jsxs)(`label`,{children:[`签发原因`,(0,f.jsx)(`input`,{value:ee,onChange:e=>S(e.target.value),required:!0})]}),(0,f.jsx)(`div`,{className:`form-action`,children:(0,f.jsx)(`button`,{className:`primary`,disabled:C,children:C?`签发中...`:`签发充值码`})})]}),ne&&(0,f.jsxs)(`div`,{className:`one-time-secret`,role:`status`,children:[(0,f.jsx)(`span`,{children:`本次明文`}),(0,f.jsx)(`strong`,{className:`mono`,children:ne})]}),(0,f.jsxs)(`form`,{className:`form-grid topup-redeem`,onSubmit:ae,children:[(0,f.jsxs)(`label`,{className:`span-2`,children:[`兑换充值码`,(0,f.jsx)(`input`,{className:`mono`,value:v,onChange:e=>y(e.target.value),placeholder:`TOPUP-......`,required:!0})]}),(0,f.jsx)(`div`,{className:`form-action`,children:(0,f.jsx)(`button`,{className:`ghost`,disabled:C,children:C?`兑换中...`:`兑换并入账`})})]})]})]})}function ee({templates:e}){return(0,f.jsxs)(`section`,{className:`panel table-panel`,children:[(0,f.jsxs)(`div`,{className:`panel-head`,children:[(0,f.jsx)(`h2`,{children:`当前模板`}),(0,f.jsx)(`span`,{className:`count`,children:e.length})]}),(0,f.jsx)(`div`,{className:`table-wrap`,children:(0,f.jsxs)(`table`,{children:[(0,f.jsx)(`thead`,{children:(0,f.jsxs)(`tr`,{children:[(0,f.jsx)(`th`,{children:`模板`}),(0,f.jsx)(`th`,{children:`版本`}),(0,f.jsx)(`th`,{children:`区服/能力`}),(0,f.jsx)(`th`,{children:`有效期`}),(0,f.jsx)(`th`,{children:`机器/窗口`}),(0,f.jsx)(`th`,{children:`额度`}),(0,f.jsx)(`th`,{children:`状态`})]})}),(0,f.jsxs)(`tbody`,{children:[e.map(e=>(0,f.jsxs)(`tr`,{children:[(0,f.jsx)(`td`,{children:e.id}),(0,f.jsxs)(`td`,{children:[`v`,e.version]}),(0,f.jsxs)(`td`,{children:[e.allowed_regions?.join(`/`)||`-`,` · `,(e.allowed_capabilities||[]).map(e=>h[e]).join(`/`)||`-`]}),(0,f.jsxs)(`td`,{children:[e.validity_days,` 天`]}),(0,f.jsxs)(`td`,{children:[e.max_bound_machines,` / `,e.max_concurrent_windows]}),(0,f.jsx)(`td`,{children:e.unit_credit_cost}),(0,f.jsx)(`td`,{children:(0,f.jsx)(`span`,{className:e.enabled?`status`:`status off`,children:e.enabled?`启用`:`停用`})})]},`${e.id}-${e.version}`)),e.length===0&&(0,f.jsx)(`tr`,{children:(0,f.jsx)(`td`,{colSpan:7,className:`empty-cell`,children:`暂无模板`})})]})]})})]})}function S({session:e,templates:t,refresh:n,onNotice:r}){let[i,a]=(0,l.useState)(`rxjh-standard`),[o,s]=(0,l.useState)([`CN`,`TW`,`KR`,`INTL`]),[c,u]=(0,l.useState)([`team.automation`,`afk.automation`]),[d,p]=(0,l.useState)(30),[_,v]=(0,l.useState)(1),[y,b]=(0,l.useState)(1),[x,S]=(0,l.useState)(1),[C,te]=(0,l.useState)(!0),[ne,re]=(0,l.useState)(!0),[w,ie]=(0,l.useState)(!0),[ae,oe]=(0,l.useState)(!1);function se(e,t,n){n(e.includes(t)?e.filter(e=>e!==t):[...e,t])}async function ce(e){e.preventDefault(),oe(!0);try{await g(`/api/admin/v1/card-templates`,{method:`POST`,body:JSON.stringify({id:i,game_id:`rxjh`,allowed_regions:o,allowed_capabilities:c,validity_mode:C?`from_first_activation`:`from_generation`,validity_days:d,unit_credit_cost:_,max_bound_machines:y,max_concurrent_windows:x,self_unbind_enabled:ne,unbind_penalty_seconds:7200,enabled:w})}),r(`模板新版本已创建`),await n()}catch(e){r(e instanceof Error?e.message:`模板保存失败`)}finally{oe(!1)}}return(0,f.jsxs)(f.Fragment,{children:[e.role===`administrator`&&(0,f.jsxs)(`section`,{className:`panel`,children:[(0,f.jsx)(`div`,{className:`panel-head`,children:(0,f.jsx)(`h2`,{children:`创建模板版本`})}),(0,f.jsxs)(`form`,{className:`form-grid`,onSubmit:ce,children:[(0,f.jsxs)(`label`,{children:[`模板标识`,(0,f.jsx)(`input`,{value:i,onChange:e=>a(e.target.value),required:!0})]}),(0,f.jsxs)(`label`,{children:[`有效天数`,(0,f.jsx)(`input`,{type:`number`,min:1,max:3650,value:d,onChange:e=>p(Number(e.target.value)),required:!0})]}),(0,f.jsxs)(`label`,{children:[`单张额度`,(0,f.jsx)(`input`,{type:`number`,min:1,value:_,onChange:e=>v(Number(e.target.value)),required:!0})]}),(0,f.jsxs)(`label`,{children:[`最大机器数`,(0,f.jsx)(`input`,{type:`number`,min:1,value:y,onChange:e=>b(Number(e.target.value)),required:!0})]}),(0,f.jsxs)(`label`,{children:[`最大窗口并发`,(0,f.jsx)(`input`,{type:`number`,min:1,value:x,onChange:e=>S(Number(e.target.value)),required:!0})]}),(0,f.jsxs)(`fieldset`,{className:`span-2`,children:[(0,f.jsx)(`legend`,{children:`区服`}),(0,f.jsx)(`div`,{className:`check-row`,children:Object.keys(m).map(e=>(0,f.jsxs)(`label`,{className:`check`,children:[(0,f.jsx)(`input`,{type:`checkbox`,checked:o.includes(e),onChange:()=>se(o,e,s)}),m[e]]},e))})]}),(0,f.jsxs)(`fieldset`,{className:`span-2`,children:[(0,f.jsx)(`legend`,{children:`能力`}),(0,f.jsx)(`div`,{className:`check-row`,children:Object.keys(h).map(e=>(0,f.jsxs)(`label`,{className:`check`,children:[(0,f.jsx)(`input`,{type:`checkbox`,checked:c.includes(e),onChange:()=>se(c,e,u)}),h[e]]},e))})]}),(0,f.jsxs)(`div`,{className:`toggle-row span-2`,children:[(0,f.jsxs)(`label`,{className:`check`,children:[(0,f.jsx)(`input`,{type:`checkbox`,checked:C,onChange:e=>te(e.target.checked)}),`首次激活计时`]}),(0,f.jsxs)(`label`,{className:`check`,children:[(0,f.jsx)(`input`,{type:`checkbox`,checked:ne,onChange:e=>re(e.target.checked)}),`允许自助解绑`]}),(0,f.jsxs)(`label`,{className:`check`,children:[(0,f.jsx)(`input`,{type:`checkbox`,checked:w,onChange:e=>ie(e.target.checked)}),`启用`]})]}),(0,f.jsx)(`div`,{className:`form-action`,children:(0,f.jsx)(`button`,{className:`primary`,disabled:ae||o.length===0,children:ae?`保存中...`:`创建版本`})})]})]}),(0,f.jsx)(ee,{templates:t})]})}function C({templates:e,refreshBalance:t,onNotice:n}){let r=e.filter(e=>e.enabled),[i,a]=(0,l.useState)(``),[o,s]=(0,l.useState)(1),[c,u]=(0,l.useState)(null),[d,p]=(0,l.useState)(!1),m=r.find(e=>e.id===i)||r[0];(0,l.useEffect)(()=>{!i&&r.length>0&&a(r[0].id)},[r,i]);async function h(e){if(e.preventDefault(),m){p(!0);try{let e=await g(`/api/portal/v1/card-batches`,{method:`POST`,body:JSON.stringify({template_id:m.id,quantity:o,idempotency_key:_(`batch`)})});u(e),n(`批次已生成,共 ${e.cards.length} 张`),await t()}catch(e){n(e instanceof Error?e.message:`卡密生成失败`)}finally{p(!1)}}}async function v(e){try{let t=await g(`/api/portal/v1/cards/${e.id}/extract`,{method:`POST`,body:JSON.stringify({idempotency_key:_(`extract`)})}),r=[`card_number=${t.card_number}`,`card_id=${t.card_id}`,`extracted_at=${t.extracted_at}`,`game_id=${t.snapshot.game_id}`,`regions=${t.snapshot.allowed_regions.join(`,`)}`,`max_bound_machines=${t.snapshot.max_bound_machines}`,`max_concurrent_windows=${t.snapshot.max_concurrent_windows}`].join(`\r `),i=URL.createObjectURL(new Blob([r],{type:`text/plain;charset=utf-8`})),a=document.createElement(`a`);a.href=i,a.download=`rxdev-card-${e.id}.txt`,a.click(),URL.revokeObjectURL(i),u(t=>t&&{...t,cards:t.cards.map(t=>t.id===e.id?{...t,status:`extracted`}:t)}),n(`卡密已一次提取并下载`)}catch(e){n(e instanceof Error?e.message:`卡密提取失败`)}}return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(`section`,{className:`panel`,children:[(0,f.jsxs)(`div`,{className:`panel-head`,children:[(0,f.jsx)(`h2`,{children:`生成卡密`}),m&&(0,f.jsxs)(`span`,{className:`count`,children:[`预计 `,m.unit_credit_cost*o,` 额度`]})]}),(0,f.jsxs)(`form`,{className:`form-grid`,onSubmit:h,children:[(0,f.jsxs)(`label`,{children:[`模板`,(0,f.jsx)(`select`,{value:i,onChange:e=>a(e.target.value),required:!0,children:r.map(e=>(0,f.jsxs)(`option`,{value:e.id,children:[e.id,` · v`,e.version]},e.id))})]}),(0,f.jsxs)(`label`,{children:[`数量`,(0,f.jsx)(`input`,{type:`number`,min:1,max:1e4,value:o,onChange:e=>s(Number(e.target.value)),required:!0})]}),(0,f.jsx)(`div`,{className:`form-action`,children:(0,f.jsx)(`button`,{className:`primary`,disabled:d||!m,children:d?`生成中...`:`生成卡密`})})]})]}),c&&(0,f.jsxs)(`section`,{className:`panel table-panel`,children:[(0,f.jsxs)(`div`,{className:`panel-head`,children:[(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`h2`,{children:`最近批次`}),(0,f.jsx)(`p`,{className:`muted mono`,children:c.batch_id})]}),(0,f.jsxs)(`span`,{className:`count`,children:[c.cards.length,` 张 · `,c.total_cost,` 额度`]})]}),(0,f.jsx)(`div`,{className:`table-wrap`,children:(0,f.jsxs)(`table`,{children:[(0,f.jsx)(`thead`,{children:(0,f.jsxs)(`tr`,{children:[(0,f.jsx)(`th`,{children:`卡片`}),(0,f.jsx)(`th`,{children:`有效期`}),(0,f.jsx)(`th`,{children:`区服`}),(0,f.jsx)(`th`,{children:`机器/窗口`}),(0,f.jsx)(`th`,{children:`状态`}),(0,f.jsx)(`th`,{})]})}),(0,f.jsx)(`tbody`,{children:c.cards.map(e=>(0,f.jsxs)(`tr`,{children:[(0,f.jsxs)(`td`,{children:[(0,f.jsx)(`span`,{className:`mono`,children:e.masked}),(0,f.jsx)(`small`,{className:`subtle mono`,children:e.id})]}),(0,f.jsxs)(`td`,{children:[e.snapshot.validity_days,` 天`]}),(0,f.jsx)(`td`,{children:e.snapshot.allowed_regions.join(`/`)}),(0,f.jsxs)(`td`,{children:[e.snapshot.max_bound_machines,` / `,e.snapshot.max_concurrent_windows]}),(0,f.jsx)(`td`,{children:e.status===`generated`?`待提取`:`已提取`}),(0,f.jsx)(`td`,{className:`actions`,children:e.status===`generated`&&(0,f.jsx)(`button`,{className:`ghost`,onClick:()=>v(e),children:`提取`})})]},e.id))})]})})]})]})}function te({onNotice:e}){let[t,n]=(0,l.useState)([]),[r,i]=(0,l.useState)(!0);return(0,l.useEffect)(()=>{g(`/api/admin/v1/audit?limit=100`).then(e=>n(e.items)).catch(t=>e(t instanceof Error?t.message:`审计日志加载失败`)).finally(()=>i(!1))},[e]),(0,f.jsxs)(`section`,{className:`panel table-panel`,children:[(0,f.jsxs)(`div`,{className:`panel-head`,children:[(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`h2`,{children:`审计日志`}),(0,f.jsx)(`p`,{className:`muted`,children:`操作人、角色、实体和变更原因均来自追加式服务端记录。`})]}),(0,f.jsx)(`span`,{className:`count`,children:r?`加载中`:`${t.length} 条`})]}),(0,f.jsx)(`div`,{className:`table-wrap`,children:(0,f.jsxs)(`table`,{children:[(0,f.jsx)(`thead`,{children:(0,f.jsxs)(`tr`,{children:[(0,f.jsx)(`th`,{children:`时间`}),(0,f.jsx)(`th`,{children:`动作`}),(0,f.jsx)(`th`,{children:`实体`}),(0,f.jsx)(`th`,{children:`操作人`}),(0,f.jsx)(`th`,{children:`原因`}),(0,f.jsx)(`th`,{children:`变更摘要`})]})}),(0,f.jsxs)(`tbody`,{children:[t.map(e=>(0,f.jsxs)(`tr`,{children:[(0,f.jsx)(`td`,{children:new Date(e.created_at).toLocaleString()}),(0,f.jsx)(`td`,{className:`mono`,children:e.action}),(0,f.jsxs)(`td`,{children:[e.entity_type,(0,f.jsx)(`small`,{className:`subtle mono`,children:e.entity_id||`-`})]}),(0,f.jsxs)(`td`,{children:[(0,f.jsx)(`span`,{children:e.actor_role}),(0,f.jsx)(`small`,{className:`subtle mono`,children:e.actor_id||`-`})]}),(0,f.jsx)(`td`,{children:e.reason||`-`}),(0,f.jsx)(`td`,{children:(0,f.jsxs)(`details`,{children:[(0,f.jsx)(`summary`,{children:`查看`}),(0,f.jsx)(`pre`,{className:`json-detail`,children:e.after_json||e.before_json||`无字段变更`})]})})]},e.id)),!r&&t.length===0&&(0,f.jsx)(`tr`,{children:(0,f.jsx)(`td`,{colSpan:6,className:`empty-cell`,children:`暂无审计记录`})})]})]})})]})}function ne({stats:e,onNotice:t}){let[n,r]=(0,l.useState)(!e),[i,a]=(0,l.useState)(e);return(0,l.useEffect)(()=>{if(e){a(e),r(!1);return}g(`/api/admin/v1/statistics`).then(a).catch(e=>t(e instanceof Error?e.message:`统计加载失败`)).finally(()=>r(!1))},[t,e]),n?(0,f.jsx)(`section`,{className:`panel`,children:(0,f.jsx)(`div`,{className:`empty-state`,children:`统计加载中...`})}):i?(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(`section`,{className:`metrics`,children:[(0,f.jsxs)(`article`,{children:[(0,f.jsx)(`span`,{children:`范围用户`}),(0,f.jsx)(`strong`,{children:i.scope_user_count}),(0,f.jsx)(`small`,{children:`当前权限范围`})]}),(0,f.jsxs)(`article`,{children:[(0,f.jsx)(`span`,{children:`范围渠道`}),(0,f.jsx)(`strong`,{children:i.scope_channel_count}),(0,f.jsx)(`small`,{children:`渠道树节点`})]}),(0,f.jsxs)(`article`,{children:[(0,f.jsx)(`span`,{children:`当前余额`}),(0,f.jsx)(`strong`,{children:i.credit.current_balance}),(0,f.jsx)(`small`,{children:`整数额度`})]}),(0,f.jsxs)(`article`,{children:[(0,f.jsx)(`span`,{children:`审计事件`}),(0,f.jsx)(`strong`,{children:i.audit.event_count}),(0,f.jsx)(`small`,{children:i.audit.last_event?new Date(i.audit.last_event).toLocaleString():`暂无事件`})]})]}),(0,f.jsxs)(`section`,{className:`panel`,children:[(0,f.jsx)(`div`,{className:`panel-head`,children:(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`h2`,{children:`额度流转`}),(0,f.jsx)(`p`,{className:`muted`,children:`账本统计不包含任何卡密明文。`})]})}),(0,f.jsxs)(`div`,{className:`stats-grid`,children:[(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:`充值累计`}),(0,f.jsx)(`strong`,{children:i.credit.topup_total})]}),(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:`分配流入`}),(0,f.jsx)(`strong`,{children:i.credit.allocation_in})]}),(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:`分配流出`}),(0,f.jsx)(`strong`,{children:i.credit.allocation_out})]}),(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:`卡密预留`}),(0,f.jsx)(`strong`,{children:i.credit.card_reserved})]}),(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:`卡密消耗`}),(0,f.jsx)(`strong`,{children:i.credit.card_consumed})]})]})]})]}):(0,f.jsx)(`section`,{className:`panel`,children:(0,f.jsx)(`div`,{className:`empty-state`,children:`暂无统计数据`})})}function re(e){return e?new Date(e).toLocaleString():`-`}function w({onNotice:e}){let[t,n]=(0,l.useState)({items:[]}),[r,i]=(0,l.useState)(!0),a=(0,l.useCallback)(async()=>{i(!0);try{n(await g(`/api/portal/v1/license-capacity?limit=100`))}catch(t){e(t instanceof Error?t.message:`机器与窗口加载失败`)}finally{i(!1)}},[e]);(0,l.useEffect)(()=>{a()},[a]);let o=t.items.reduce((e,t)=>e+t.bound_machines,0),s=t.items.reduce((e,t)=>e+t.active_windows,0);return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(`section`,{className:`metrics compact capacity-metrics`,children:[(0,f.jsxs)(`article`,{children:[(0,f.jsx)(`span`,{children:`可见卡片`}),(0,f.jsx)(`strong`,{children:r?`-`:t.items.length}),(0,f.jsx)(`small`,{children:`当前权限范围`})]}),(0,f.jsxs)(`article`,{children:[(0,f.jsx)(`span`,{children:`绑定机器`}),(0,f.jsx)(`strong`,{children:r?`-`:o}),(0,f.jsx)(`small`,{children:`实时绑定数量`})]}),(0,f.jsxs)(`article`,{children:[(0,f.jsx)(`span`,{children:`运行窗口`}),(0,f.jsx)(`strong`,{children:r?`-`:s}),(0,f.jsx)(`small`,{children:`未过期租约`})]})]}),(0,f.jsxs)(`section`,{className:`panel table-panel`,children:[(0,f.jsxs)(`div`,{className:`panel-head`,children:[(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`h2`,{children:`机器与窗口`}),(0,f.jsx)(`p`,{className:`muted`,children:`卡密与硬件信息仅显示掩码和绑定标签;租约到期后会自动回收并释放并发容量。`})]}),(0,f.jsx)(`button`,{className:`ghost`,onClick:()=>void a(),disabled:r,children:r?`刷新中...`:`刷新`})]}),(0,f.jsx)(`div`,{className:`table-wrap`,children:(0,f.jsxs)(`table`,{className:`capacity-table`,children:[(0,f.jsx)(`thead`,{children:(0,f.jsxs)(`tr`,{children:[(0,f.jsx)(`th`,{children:`卡密`}),(0,f.jsx)(`th`,{children:`归属 / 游戏`}),(0,f.jsx)(`th`,{children:`机器`}),(0,f.jsx)(`th`,{children:`窗口`}),(0,f.jsx)(`th`,{children:`最近心跳`}),(0,f.jsx)(`th`,{children:`绑定详情`})]})}),(0,f.jsxs)(`tbody`,{children:[t.items.map(e=>(0,f.jsxs)(`tr`,{children:[(0,f.jsxs)(`td`,{children:[(0,f.jsx)(`strong`,{className:`mono`,children:e.masked_card}),(0,f.jsxs)(`small`,{className:`subtle`,children:[e.status,` · 到期 `,re(e.expires_at)]})]}),(0,f.jsxs)(`td`,{children:[(0,f.jsx)(`strong`,{children:e.owner_username||`未分配`}),(0,f.jsx)(`small`,{className:`subtle mono`,children:e.game_id||`-`})]}),(0,f.jsxs)(`td`,{children:[e.bound_machines,` / `,e.max_bound_machines]}),(0,f.jsxs)(`td`,{children:[e.active_windows,` / `,e.max_concurrent_windows]}),(0,f.jsx)(`td`,{children:re(e.last_heartbeat_at)}),(0,f.jsx)(`td`,{children:(0,f.jsxs)(`details`,{children:[(0,f.jsxs)(`summary`,{children:[e.bindings.length,` 个绑定`]}),(0,f.jsx)(`div`,{className:`binding-list`,children:e.bindings.map(e=>(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`strong`,{className:`mono`,children:e.binding_tag}),(0,f.jsxs)(`span`,{children:[e.state===`active`?`已绑定`:`已解绑`,` · 会话 `,e.active_sessions,` · 窗口 `,e.active_windows]}),(0,f.jsxs)(`small`,{children:[`心跳 `,re(e.last_heartbeat_at),` · 租约 `,re(e.lease_expires_at)]})]},e.binding_tag))})]})})]},e.card_id)),!r&&t.items.length===0&&(0,f.jsx)(`tr`,{children:(0,f.jsx)(`td`,{colSpan:6,className:`empty-cell`,children:`暂无可见机器或窗口记录`})})]})]})})]})]})}function ie({session:e,onLogout:t}){let[n,r]=(0,l.useState)(`总览`),[i,a]=(0,l.useState)(`会话已建立`),[o,s]=(0,l.useState)(null),[c,u]=(0,l.useState)([]),[d,m]=(0,l.useState)(null),h=(0,l.useMemo)(()=>y.filter(t=>t.roles.includes(e.role)),[e.role]),_=(0,l.useCallback)(async()=>{let e=await g(`/api/portal/v1/wallet`);s(e.balance)},[]),v=(0,l.useCallback)(async()=>{let e=await g(`/api/portal/v1/card-templates`);u(e)},[]),re=(0,l.useCallback)(async()=>{if(e.role===`channel_user`)return;let t=await g(`/api/admin/v1/statistics`);m(t)},[e.role]);return(0,l.useEffect)(()=>{_().catch(e=>a(e instanceof Error?e.message:`额度加载失败`)),v().catch(e=>a(e instanceof Error?e.message:`模板加载失败`)),re().catch(e=>a(e instanceof Error?e.message:`统计加载失败`))},[_,v,re]),(0,f.jsxs)(`div`,{className:`shell`,children:[(0,f.jsxs)(`header`,{className:`topbar`,children:[(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`strong`,{children:`RXDEV`}),(0,f.jsx)(`span`,{children:`卡密管理台`})]}),(0,f.jsxs)(`div`,{className:`top-actions`,children:[(0,f.jsx)(`span`,{className:`role-badge`,children:p[e.role]}),(0,f.jsx)(`button`,{className:`ghost`,onClick:t,children:`退出`})]})]}),(0,f.jsxs)(`div`,{className:`layout`,children:[(0,f.jsxs)(`aside`,{className:`sidebar`,children:[(0,f.jsx)(`div`,{className:`side-title`,children:`工作区`}),h.map(e=>(0,f.jsx)(`button`,{className:n===e.name?`nav active`:`nav`,onClick:()=>r(e.name),children:e.name},e.name))]}),(0,f.jsxs)(`main`,{className:`content`,children:[(0,f.jsxs)(`div`,{className:`heading`,children:[(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`p`,{className:`eyebrow`,children:`授权运营`}),(0,f.jsx)(`h1`,{children:n}),(0,f.jsxs)(`p`,{className:`muted mono`,children:[e.user_id,` · `,e.channel_id||`全局渠道`]})]}),n!==`卡密批次`&&(0,f.jsx)(`button`,{className:`primary`,onClick:()=>r(`卡密批次`),children:`生成卡密`})]}),n===`总览`&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(`section`,{className:`metrics`,children:[(0,f.jsxs)(`article`,{children:[(0,f.jsx)(`span`,{children:`可用额度`}),(0,f.jsx)(`strong`,{children:o??`-`}),(0,f.jsx)(`small`,{children:`实时账本`})]}),(0,f.jsxs)(`article`,{children:[(0,f.jsx)(`span`,{children:`可用模板`}),(0,f.jsx)(`strong`,{children:c.filter(e=>e.enabled).length}),(0,f.jsx)(`small`,{children:`最新版本`})]}),(0,f.jsxs)(`article`,{children:[(0,f.jsx)(`span`,{children:`支持区服`}),(0,f.jsx)(`strong`,{children:`4`}),(0,f.jsx)(`small`,{children:`CN/TW/KR/INTL`})]}),(0,f.jsxs)(`article`,{children:[(0,f.jsx)(`span`,{children:`范围用户`}),(0,f.jsx)(`strong`,{children:d?.scope_user_count??`-`}),(0,f.jsx)(`small`,{children:e.role===`channel_user`?`当前角色`:`服务端统计`})]})]}),(0,f.jsx)(ee,{templates:c.slice(0,5)})]}),n===`用户与渠道`&&(0,f.jsx)(b,{onNotice:a}),n===`额度账本`&&(0,f.jsx)(x,{session:e,balance:o,refreshBalance:_,onNotice:a}),n===`卡片模板`&&(0,f.jsx)(S,{session:e,templates:c,refresh:v,onNotice:a}),n===`卡密批次`&&(0,f.jsx)(C,{templates:c,refreshBalance:_,onNotice:a}),n===`统计`&&(0,f.jsx)(ne,{stats:d,onNotice:a}),n===`审计日志`&&(0,f.jsx)(te,{onNotice:a}),n===`机器与窗口`&&(0,f.jsx)(w,{onNotice:a}),(0,f.jsx)(`div`,{className:`notice`,role:`status`,children:i})]})]})]})}function ae(){let[e,t]=(0,l.useState)(null),[n,r]=(0,l.useState)(!0);return(0,l.useEffect)(()=>{g(`/api/auth/session`).then(t).catch(()=>t(null)).finally(()=>r(!1))},[]),n?(0,f.jsx)(`main`,{className:`auth-shell`,children:(0,f.jsx)(`p`,{className:`muted`,children:`正在检查会话...`})}):e?(0,f.jsx)(ie,{session:e,onLogout:()=>{g(`/api/auth/logout`,{method:`POST`}).finally(()=>t(null))}}):(0,f.jsx)(v,{onLogin:t})}(0,u.createRoot)(document.getElementById(`root`)).render((0,f.jsx)(ae,{}));