(function(){const c=document.createElement("link").relList;if(c&&c.supports&&c.supports("modulepreload"))return;for(const m of document.querySelectorAll('link[rel="modulepreload"]'))o(m);new MutationObserver(m=>{for(const b of m)if(b.type==="childList")for(const j of b.addedNodes)j.tagName==="LINK"&&j.rel==="modulepreload"&&o(j)}).observe(document,{childList:!0,subtree:!0});function u(m){const b={};return m.integrity&&(b.integrity=m.integrity),m.referrerPolicy&&(b.referrerPolicy=m.referrerPolicy),m.crossOrigin==="use-credentials"?b.credentials="include":m.crossOrigin==="anonymous"?b.credentials="omit":b.credentials="same-origin",b}function o(m){if(m.ep)return;m.ep=!0;const b=u(m);fetch(m.href,b)}})();var xr={exports:{}},Oi={};var mm;function Yp(){if(mm)return Oi;mm=1;var r=Symbol.for("react.transitional.element"),c=Symbol.for("react.fragment");function u(o,m,b){var j=null;if(b!==void 0&&(j=""+b),m.key!==void 0&&(j=""+m.key),"key"in m){b={};for(var q in m)q!=="key"&&(b[q]=m[q])}else b=m;return m=b.ref,{$$typeof:r,type:o,key:j,ref:m!==void 0?m:null,props:b}}return Oi.Fragment=c,Oi.jsx=u,Oi.jsxs=u,Oi}var hm;function Jp(){return hm||(hm=1,xr.exports=Yp()),xr.exports}var i=Jp(),Nr={exports:{}},xe={};var pm;function Qp(){if(pm)return xe;pm=1;var r=Symbol.for("react.transitional.element"),c=Symbol.for("react.portal"),u=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),m=Symbol.for("react.profiler"),b=Symbol.for("react.consumer"),j=Symbol.for("react.context"),q=Symbol.for("react.forward_ref"),D=Symbol.for("react.suspense"),v=Symbol.for("react.memo"),V=Symbol.for("react.lazy"),k=Symbol.for("react.activity"),H=Symbol.iterator;function J(g){return g===null||typeof g!="object"?null:(g=H&&g[H]||g["@@iterator"],typeof g=="function"?g:null)}var P={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Z=Object.assign,G={};function B(g,O,K){this.props=g,this.context=O,this.refs=G,this.updater=K||P}B.prototype.isReactComponent={},B.prototype.setState=function(g,O){if(typeof g!="object"&&typeof g!="function"&&g!=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,g,O,"setState")},B.prototype.forceUpdate=function(g){this.updater.enqueueForceUpdate(this,g,"forceUpdate")};function fe(){}fe.prototype=B.prototype;function ae(g,O,K){this.props=g,this.context=O,this.refs=G,this.updater=K||P}var Q=ae.prototype=new fe;Q.constructor=ae,Z(Q,B.prototype),Q.isPureReactComponent=!0;var ye=Array.isArray;function pe(){}var le={H:null,A:null,T:null,S:null},Ve=Object.prototype.hasOwnProperty;function ee(g,O,K){var W=K.ref;return{$$typeof:r,type:g,key:O,ref:W!==void 0?W:null,props:K}}function je(g,O){return ee(g.type,O,g.props)}function Se(g){return typeof g=="object"&&g!==null&&g.$$typeof===r}function de(g){var O={"=":"=0",":":"=2"};return"$"+g.replace(/[=:]/g,function(K){return O[K]})}var ve=/\/+/g;function Ee(g,O){return typeof g=="object"&&g!==null&&g.key!=null?de(""+g.key):O.toString(36)}function F(g){switch(g.status){case"fulfilled":return g.value;case"rejected":throw g.reason;default:switch(typeof g.status=="string"?g.then(pe,pe):(g.status="pending",g.then(function(O){g.status==="pending"&&(g.status="fulfilled",g.value=O)},function(O){g.status==="pending"&&(g.status="rejected",g.reason=O)})),g.status){case"fulfilled":return g.value;case"rejected":throw g.reason}}throw g}function C(g,O,K,W,re){var se=typeof g;(se==="undefined"||se==="boolean")&&(g=null);var I=!1;if(g===null)I=!0;else switch(se){case"bigint":case"string":case"number":I=!0;break;case"object":switch(g.$$typeof){case r:case c:I=!0;break;case V:return I=g._init,C(I(g._payload),O,K,W,re)}}if(I)return re=re(g),I=W===""?"."+Ee(g,0):W,ye(re)?(K="",I!=null&&(K=I.replace(ve,"$&/")+"/"),C(re,O,K,"",function(Dt){return Dt})):re!=null&&(Se(re)&&(re=je(re,K+(re.key==null||g&&g.key===re.key?"":(""+re.key).replace(ve,"$&/")+"/")+I)),O.push(re)),1;I=0;var ge=W===""?".":W+":";if(ye(g))for(var Be=0;Be>>1,Ne=C[Ae];if(0>>1;Aem(K,te))Wm(re,K)?(C[Ae]=re,C[W]=te,Ae=W):(C[Ae]=K,C[O]=te,Ae=O);else if(Wm(re,te))C[Ae]=re,C[W]=te,Ae=W;else break e}}return X}function m(C,X){var te=C.sortIndex-X.sortIndex;return te!==0?te:C.id-X.id}if(r.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var b=performance;r.unstable_now=function(){return b.now()}}else{var j=Date,q=j.now();r.unstable_now=function(){return j.now()-q}}var D=[],v=[],V=1,k=null,H=3,J=!1,P=!1,Z=!1,G=!1,B=typeof setTimeout=="function"?setTimeout:null,fe=typeof clearTimeout=="function"?clearTimeout:null,ae=typeof setImmediate<"u"?setImmediate:null;function Q(C){for(var X=u(v);X!==null;){if(X.callback===null)o(v);else if(X.startTime<=C)o(v),X.sortIndex=X.expirationTime,c(D,X);else break;X=u(v)}}function ye(C){if(Z=!1,Q(C),!P)if(u(D)!==null)P=!0,pe||(pe=!0,de());else{var X=u(v);X!==null&&F(ye,X.startTime-C)}}var pe=!1,le=-1,Ve=5,ee=-1;function je(){return G?!0:!(r.unstable_now()-eeC&&je());){var Ae=k.callback;if(typeof Ae=="function"){k.callback=null,H=k.priorityLevel;var Ne=Ae(k.expirationTime<=C);if(C=r.unstable_now(),typeof Ne=="function"){k.callback=Ne,Q(C),X=!0;break t}k===u(D)&&o(D),Q(C)}else o(D);k=u(D)}if(k!==null)X=!0;else{var g=u(v);g!==null&&F(ye,g.startTime-C),X=!1}}break e}finally{k=null,H=te,J=!1}X=void 0}}finally{X?de():pe=!1}}}var de;if(typeof ae=="function")de=function(){ae(Se)};else if(typeof MessageChannel<"u"){var ve=new MessageChannel,Ee=ve.port2;ve.port1.onmessage=Se,de=function(){Ee.postMessage(null)}}else de=function(){B(Se,0)};function F(C,X){le=B(function(){C(r.unstable_now())},X)}r.unstable_IdlePriority=5,r.unstable_ImmediatePriority=1,r.unstable_LowPriority=4,r.unstable_NormalPriority=3,r.unstable_Profiling=null,r.unstable_UserBlockingPriority=2,r.unstable_cancelCallback=function(C){C.callback=null},r.unstable_forceFrameRate=function(C){0>C||125Ae?(C.sortIndex=te,c(v,C),u(D)===null&&C===u(v)&&(Z?(fe(le),le=-1):Z=!0,F(ye,te-Ae))):(C.sortIndex=Ne,c(D,C),P||J||(P=!0,pe||(pe=!0,de()))),C},r.unstable_shouldYield=je,r.unstable_wrapCallback=function(C){var X=H;return function(){var te=H;H=X;try{return C.apply(this,arguments)}finally{H=te}}}})(Er)),Er}var bm;function Zp(){return bm||(bm=1,Cr.exports=Xp()),Cr.exports}var Tr={exports:{}},Ct={};var ym;function Kp(){if(ym)return Ct;ym=1;var r=Or();function c(D){var v="https://react.dev/errors/"+D;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(r)}catch(c){console.error(c)}}return r(),Tr.exports=Kp(),Tr.exports}var Sm;function Fp(){if(Sm)return Ui;Sm=1;var r=Zp(),c=Or(),u=Om();function o(e){var t="https://react.dev/errors/"+e;if(1Ne||(e.current=Ae[Ne],Ae[Ne]=null,Ne--)}function K(e,t){Ne++,Ae[Ne]=e.current,e.current=t}var W=g(null),re=g(null),se=g(null),I=g(null);function ge(e,t){switch(K(se,t),K(re,e),K(W,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Lf(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Lf(t),e=Rf(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}O(W),K(W,e)}function Be(){O(W),O(re),O(se)}function Dt(e){e.memoizedState!==null&&K(I,e);var t=W.current,a=Rf(t,e.type);t!==a&&(K(re,e),K(W,a))}function _t(e){re.current===e&&(O(W),O(re)),I.current===e&&(O(I),_i._currentValue=te)}var Et,L;function me(e){if(Et===void 0)try{throw Error()}catch(a){var t=a.stack.trim().match(/\n( *(at )?)/);Et=t&&t[1]||"",L=-1)":-1l||p[n]!==A[l]){var M=` `+p[n].replace(" at new "," at ");return e.displayName&&M.includes("")&&(M=M.replace("",e.displayName)),M}while(1<=n&&0<=l);break}}}finally{x=!1,Error.prepareStackTrace=a}return(a=e?e.displayName||e.name:"")?me(a):""}function ue(e,t){switch(e.tag){case 26:case 27:case 5:return me(e.type);case 16:return me("Lazy");case 13:return e.child!==t&&t!==null?me("Suspense Fallback"):me("Suspense");case 19:return me("SuspenseList");case 0:case 15:return Y(e.type,!1);case 11:return Y(e.type.render,!1);case 1:return Y(e.type,!0);case 31:return me("Activity");default:return""}}function be(e){try{var t="",a=null;do t+=ue(e,a),a=e,e=e.return;while(e);return t}catch(n){return` Error generating stack: `+n.message+` `+n.stack}}var De=Object.prototype.hasOwnProperty,Ie=r.unstable_scheduleCallback,gt=r.unstable_cancelCallback,kt=r.unstable_shouldYield,Ye=r.unstable_requestPaint,$e=r.unstable_now,sa=r.unstable_getCurrentPriorityLevel,zt=r.unstable_ImmediatePriority,An=r.unstable_UserBlockingPriority,Aa=r.unstable_NormalPriority,In=r.unstable_LowPriority,Qa=r.unstable_IdlePriority,$n=r.log,Cn=r.unstable_setDisableYieldValue,ha=null,vt=null;function qt(e){if(typeof $n=="function"&&Cn(e),vt&&typeof vt.setStrictMode=="function")try{vt.setStrictMode(ha,e)}catch{}}var ht=Math.clz32?Math.clz32:At,$=Math.log,we=Math.LN2;function At(e){return e>>>=0,e===0?32:31-($(e)/we|0)|0}var En=256,Tn=262144,wn=4194304;function pa(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 Dn(e,t,a){var n=e.pendingLanes;if(n===0)return 0;var l=0,s=e.suspendedLanes,d=e.pingedLanes;e=e.warmLanes;var f=n&134217727;return f!==0?(n=f&~s,n!==0?l=pa(n):(d&=f,d!==0?l=pa(d):a||(a=f&~e,a!==0&&(l=pa(a))))):(f=n&~s,f!==0?l=pa(f):d!==0?l=pa(d):a||(a=n&~e,a!==0&&(l=pa(a)))),l===0?0:t!==0&&t!==l&&(t&s)===0&&(s=l&-l,a=t&-t,s>=a||s===32&&(a&4194048)!==0)?t:l}function Xa(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Hi(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 Vl(){var e=wn;return wn<<=1,(wn&62914560)===0&&(wn=4194304),e}function _n(e){for(var t=[],a=0;31>a;a++)t.push(e);return t}function ga(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Bl(e,t,a,n,l,s){var d=e.pendingLanes;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=a,e.entangledLanes&=a,e.errorRecoveryDisabledLanes&=a,e.shellSuspendCounter=0;var f=e.entanglements,p=e.expirationTimes,A=e.hiddenUpdates;for(a=d&~a;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var Sc=/[\n"\\]/g;function Ot(e){return e.replace(Sc,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function Jl(e,t,a,n,l,s,d,f){e.name="",d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"?e.type=d:e.removeAttribute("type"),t!=null?d==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+Tt(t)):e.value!==""+Tt(t)&&(e.value=""+Tt(t)):d!=="submit"&&d!=="reset"||e.removeAttribute("value"),t!=null?Ql(e,d,Tt(t)):a!=null?Ql(e,d,Tt(a)):n!=null&&e.removeAttribute("value"),l==null&&s!=null&&(e.defaultChecked=!!s),l!=null&&(e.checked=l&&typeof l!="function"&&typeof l!="symbol"),f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"?e.name=""+Tt(f):e.removeAttribute("name")}function Ki(e,t,a,n,l,s,d,f){if(s!=null&&typeof s!="function"&&typeof s!="symbol"&&typeof s!="boolean"&&(e.type=s),t!=null||a!=null){if(!(s!=="submit"&&s!=="reset"||t!=null)){Yl(e);return}a=a!=null?""+Tt(a):"",t=t!=null?""+Tt(t):a,f||t===e.value||(e.value=t),e.defaultValue=t}n=n??l,n=typeof n!="function"&&typeof n!="symbol"&&!!n,e.checked=f?e.checked:!!n,e.defaultChecked=!!n,d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"&&(e.name=d),Yl(e)}function Ql(e,t,a){t==="number"&&al(e.ownerDocument)===e||e.defaultValue===""+a||(e.defaultValue=""+a)}function ba(e,t,a,n){if(e=e.options,t){t={};for(var l=0;l"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),ce=!1;if(w)try{var Ke={};Object.defineProperty(Ke,"passive",{get:function(){ce=!0}}),window.addEventListener("test",Ke,Ke),window.removeEventListener("test",Ke,Ke)}catch{ce=!1}var ut=null,ra=null,oa=null;function Ur(){if(oa)return oa;var e,t=ra,a=t.length,n,l="value"in ut?ut.value:ut.textContent,s=l.length;for(e=0;e=$l),qr=" ",Gr=!1;function Yr(e,t){switch(e){case"keyup":return dh.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Jr(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var sl=!1;function mh(e,t){switch(e){case"compositionend":return Jr(t);case"keypress":return t.which!==32?null:(Gr=!0,qr);case"textInput":return e=t.data,e===qr&&Gr?null:e;default:return null}}function hh(e,t){if(sl)return e==="compositionend"||!wc&&Yr(e,t)?(e=Ur(),oa=ra=ut=null,sl=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:a,offset:t-e};e=n}e:{for(;a;){if(a.nextSibling){a=a.nextSibling;break e}a=a.parentNode}a=void 0}a=Wr(a)}}function eo(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?eo(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function to(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=al(e.document);t instanceof e.HTMLIFrameElement;){try{var a=typeof t.contentWindow.location.href=="string"}catch{a=!1}if(a)e=t.contentWindow;else break;t=al(e.document)}return t}function kc(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 xh=w&&"documentMode"in document&&11>=document.documentMode,cl=null,zc=null,ti=null,Mc=!1;function ao(e,t,a){var n=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;Mc||cl==null||cl!==al(n)||(n=cl,"selectionStart"in n&&kc(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),ti&&ei(ti,n)||(ti=n,n=Qs(zc,"onSelect"),0>=d,l-=d,ja=1<<32-ht(t)+l|a<Te?(Me=ie,ie=null):Me=ie.sibling;var Re=E(S,ie,N[Te],U);if(Re===null){ie===null&&(ie=Me);break}e&&ie&&Re.alternate===null&&t(S,ie),y=s(Re,y,Te),Le===null?oe=Re:Le.sibling=Re,Le=Re,ie=Me}if(Te===N.length)return a(S,ie),Ue&&Da(S,Te),oe;if(ie===null){for(;TeTe?(Me=ie,ie=null):Me=ie.sibling;var xn=E(S,ie,Re.value,U);if(xn===null){ie===null&&(ie=Me);break}e&&ie&&xn.alternate===null&&t(S,ie),y=s(xn,y,Te),Le===null?oe=xn:Le.sibling=xn,Le=xn,ie=Me}if(Re.done)return a(S,ie),Ue&&Da(S,Te),oe;if(ie===null){for(;!Re.done;Te++,Re=N.next())Re=R(S,Re.value,U),Re!==null&&(y=s(Re,y,Te),Le===null?oe=Re:Le.sibling=Re,Le=Re);return Ue&&Da(S,Te),oe}for(ie=n(ie);!Re.done;Te++,Re=N.next())Re=_(ie,S,Te,Re.value,U),Re!==null&&(e&&Re.alternate!==null&&ie.delete(Re.key===null?Te:Re.key),y=s(Re,y,Te),Le===null?oe=Re:Le.sibling=Re,Le=Re);return e&&ie.forEach(function(Gp){return t(S,Gp)}),Ue&&Da(S,Te),oe}function Xe(S,y,N,U){if(typeof N=="object"&&N!==null&&N.type===Z&&N.key===null&&(N=N.props.children),typeof N=="object"&&N!==null){switch(N.$$typeof){case J:e:{for(var oe=N.key;y!==null;){if(y.key===oe){if(oe=N.type,oe===Z){if(y.tag===7){a(S,y.sibling),U=l(y,N.props.children),U.return=S,S=U;break e}}else if(y.elementType===oe||typeof oe=="object"&&oe!==null&&oe.$$typeof===Ve&&Gn(oe)===y.type){a(S,y.sibling),U=l(y,N.props),ci(U,N),U.return=S,S=U;break e}a(S,y);break}else t(S,y);y=y.sibling}N.type===Z?(U=Rn(N.props.children,S.mode,U,N.key),U.return=S,S=U):(U=us(N.type,N.key,N.props,null,S.mode,U),ci(U,N),U.return=S,S=U)}return d(S);case P:e:{for(oe=N.key;y!==null;){if(y.key===oe)if(y.tag===4&&y.stateNode.containerInfo===N.containerInfo&&y.stateNode.implementation===N.implementation){a(S,y.sibling),U=l(y,N.children||[]),U.return=S,S=U;break e}else{a(S,y);break}else t(S,y);y=y.sibling}U=Hc(N,S.mode,U),U.return=S,S=U}return d(S);case Ve:return N=Gn(N),Xe(S,y,N,U)}if(F(N))return ne(S,y,N,U);if(de(N)){if(oe=de(N),typeof oe!="function")throw Error(o(150));return N=oe.call(N),he(S,y,N,U)}if(typeof N.then=="function")return Xe(S,y,ps(N),U);if(N.$$typeof===ae)return Xe(S,y,ds(S,N),U);gs(S,N)}return typeof N=="string"&&N!==""||typeof N=="number"||typeof N=="bigint"?(N=""+N,y!==null&&y.tag===6?(a(S,y.sibling),U=l(y,N),U.return=S,S=U):(a(S,y),U=Bc(N,S.mode,U),U.return=S,S=U),d(S)):a(S,y)}return function(S,y,N,U){try{si=0;var oe=Xe(S,y,N,U);return bl=null,oe}catch(ie){if(ie===vl||ie===ms)throw ie;var Le=Jt(29,ie,null,S.mode);return Le.lanes=U,Le.return=S,Le}}}var Jn=Eo(!0),To=Eo(!1),ln=!1;function Wc(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Pc(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 sn(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function cn(e,t,a){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,(He&2)!==0){var l=n.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),n.pending=t,t=cs(e),ro(e,null,a),t}return ss(e,n,t,a),cs(e)}function ui(e,t,a){if(t=t.updateQueue,t!==null&&(t=t.shared,(a&4194048)!==0)){var n=t.lanes;n&=e.pendingLanes,a|=n,t.lanes=a,Wn(e,a)}}function eu(e,t){var a=e.updateQueue,n=e.alternate;if(n!==null&&(n=n.updateQueue,a===n)){var l=null,s=null;if(a=a.firstBaseUpdate,a!==null){do{var d={lane:a.lane,tag:a.tag,payload:a.payload,callback:null,next:null};s===null?l=s=d:s=s.next=d,a=a.next}while(a!==null);s===null?l=s=t:s=s.next=t}else l=s=t;a={baseState:n.baseState,firstBaseUpdate:l,lastBaseUpdate:s,shared:n.shared,callbacks:n.callbacks},e.updateQueue=a;return}e=a.lastBaseUpdate,e===null?a.firstBaseUpdate=t:e.next=t,a.lastBaseUpdate=t}var tu=!1;function ri(){if(tu){var e=gl;if(e!==null)throw e}}function oi(e,t,a,n){tu=!1;var l=e.updateQueue;ln=!1;var s=l.firstBaseUpdate,d=l.lastBaseUpdate,f=l.shared.pending;if(f!==null){l.shared.pending=null;var p=f,A=p.next;p.next=null,d===null?s=A:d.next=A,d=p;var M=e.alternate;M!==null&&(M=M.updateQueue,f=M.lastBaseUpdate,f!==d&&(f===null?M.firstBaseUpdate=A:f.next=A,M.lastBaseUpdate=p))}if(s!==null){var R=l.baseState;d=0,M=A=p=null,f=s;do{var E=f.lane&-536870913,_=E!==f.lane;if(_?(ze&E)===E:(n&E)===E){E!==0&&E===pl&&(tu=!0),M!==null&&(M=M.next={lane:0,tag:f.tag,payload:f.payload,callback:null,next:null});e:{var ne=e,he=f;E=t;var Xe=a;switch(he.tag){case 1:if(ne=he.payload,typeof ne=="function"){R=ne.call(Xe,R,E);break e}R=ne;break e;case 3:ne.flags=ne.flags&-65537|128;case 0:if(ne=he.payload,E=typeof ne=="function"?ne.call(Xe,R,E):ne,E==null)break e;R=k({},R,E);break e;case 2:ln=!0}}E=f.callback,E!==null&&(e.flags|=64,_&&(e.flags|=8192),_=l.callbacks,_===null?l.callbacks=[E]:_.push(E))}else _={lane:E,tag:f.tag,payload:f.payload,callback:f.callback,next:null},M===null?(A=M=_,p=R):M=M.next=_,d|=E;if(f=f.next,f===null){if(f=l.shared.pending,f===null)break;_=f,f=_.next,_.next=null,l.lastBaseUpdate=_,l.shared.pending=null}}while(!0);M===null&&(p=R),l.baseState=p,l.firstBaseUpdate=A,l.lastBaseUpdate=M,s===null&&(l.shared.lanes=0),fn|=d,e.lanes=d,e.memoizedState=R}}function wo(e,t){if(typeof e!="function")throw Error(o(191,e));e.call(t)}function Do(e,t){var a=e.callbacks;if(a!==null)for(e.callbacks=null,e=0;es?s:8;var d=C.T,f={};C.T=f,ju(e,!1,t,a);try{var p=l(),A=C.S;if(A!==null&&A(f,p),p!==null&&typeof p=="object"&&typeof p.then=="function"){var M=kh(p,n);mi(e,t,M,Ft(e))}else mi(e,t,n,Ft(e))}catch(R){mi(e,t,{then:function(){},status:"rejected",reason:R},Ft())}finally{X.p=s,d!==null&&f.types!==null&&(d.types=f.types),C.T=d}}function Rh(){}function bu(e,t,a,n){if(e.tag!==5)throw Error(o(476));var l=cd(e).queue;sd(e,l,t,te,a===null?Rh:function(){return ud(e),a(n)})}function cd(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:te,baseState:te,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ma,lastRenderedState:te},next:null};var a={};return t.next={memoizedState:a,baseState:a,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ma,lastRenderedState:a},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function ud(e){var t=cd(e);t.next===null&&(t=e.alternate.memoizedState),mi(e,t.next.queue,{},Ft())}function yu(){return St(_i)}function rd(){return st().memoizedState}function od(){return st().memoizedState}function Vh(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var a=Ft();e=sn(a);var n=cn(t,e,a);n!==null&&(Ht(n,t,a),ui(n,t,a)),t={cache:Kc()},e.payload=t;return}t=t.return}}function Bh(e,t,a){var n=Ft();a={lane:n,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},Es(e)?fd(t,a):(a=Rc(e,t,a,n),a!==null&&(Ht(a,e,n),md(a,t,n)))}function dd(e,t,a){var n=Ft();mi(e,t,a,n)}function mi(e,t,a,n){var l={lane:n,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null};if(Es(e))fd(t,l);else{var s=e.alternate;if(e.lanes===0&&(s===null||s.lanes===0)&&(s=t.lastRenderedReducer,s!==null))try{var d=t.lastRenderedState,f=s(d,a);if(l.hasEagerState=!0,l.eagerState=f,Yt(f,d))return ss(e,t,l,0),Fe===null&&is(),!1}catch{}if(a=Rc(e,t,l,n),a!==null)return Ht(a,e,n),md(a,t,n),!0}return!1}function ju(e,t,a,n){if(n={lane:2,revertLane:Wu(),gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Es(e)){if(t)throw Error(o(479))}else t=Rc(e,a,n,2),t!==null&&Ht(t,e,2)}function Es(e){var t=e.alternate;return e===Ce||t!==null&&t===Ce}function fd(e,t){jl=ys=!0;var a=e.pending;a===null?t.next=t:(t.next=a.next,a.next=t),e.pending=t}function md(e,t,a){if((a&4194048)!==0){var n=t.lanes;n&=e.pendingLanes,a|=n,t.lanes=a,Wn(e,a)}}var hi={readContext:St,use:xs,useCallback:at,useContext:at,useEffect:at,useImperativeHandle:at,useLayoutEffect:at,useInsertionEffect:at,useMemo:at,useReducer:at,useRef:at,useState:at,useDebugValue:at,useDeferredValue:at,useTransition:at,useSyncExternalStore:at,useId:at,useHostTransitionStatus:at,useFormState:at,useActionState:at,useOptimistic:at,useMemoCache:at,useCacheRefresh:at};hi.useEffectEvent=at;var hd={readContext:St,use:xs,useCallback:function(e,t){return wt().memoizedState=[e,t===void 0?null:t],e},useContext:St,useEffect:$o,useImperativeHandle:function(e,t,a){a=a!=null?a.concat([e]):null,As(4194308,4,td.bind(null,t,e),a)},useLayoutEffect:function(e,t){return As(4194308,4,e,t)},useInsertionEffect:function(e,t){As(4,2,e,t)},useMemo:function(e,t){var a=wt();t=t===void 0?null:t;var n=e();if(Qn){qt(!0);try{e()}finally{qt(!1)}}return a.memoizedState=[n,t],n},useReducer:function(e,t,a){var n=wt();if(a!==void 0){var l=a(t);if(Qn){qt(!0);try{a(t)}finally{qt(!1)}}}else l=t;return n.memoizedState=n.baseState=l,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:l},n.queue=e,e=e.dispatch=Bh.bind(null,Ce,e),[n.memoizedState,e]},useRef:function(e){var t=wt();return e={current:e},t.memoizedState=e},useState:function(e){e=mu(e);var t=e.queue,a=dd.bind(null,Ce,t);return t.dispatch=a,[e.memoizedState,a]},useDebugValue:gu,useDeferredValue:function(e,t){var a=wt();return vu(a,e,t)},useTransition:function(){var e=mu(!1);return e=sd.bind(null,Ce,e.queue,!0,!1),wt().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,a){var n=Ce,l=wt();if(Ue){if(a===void 0)throw Error(o(407));a=a()}else{if(a=t(),Fe===null)throw Error(o(349));(ze&127)!==0||Uo(n,t,a)}l.memoizedState=a;var s={value:a,getSnapshot:t};return l.queue=s,$o(Ro.bind(null,n,s,e),[e]),n.flags|=2048,xl(9,{destroy:void 0},Lo.bind(null,n,s,a,t),null),a},useId:function(){var e=wt(),t=Fe.identifierPrefix;if(Ue){var a=Sa,n=ja;a=(n&~(1<<32-ht(n)-1)).toString(32)+a,t="_"+t+"R_"+a,a=js++,0<\/script>",s=s.removeChild(s.firstChild);break;case"select":s=typeof n.is=="string"?d.createElement("select",{is:n.is}):d.createElement("select"),n.multiple?s.multiple=!0:n.size&&(s.size=n.size);break;default:s=typeof n.is=="string"?d.createElement(l,{is:n.is}):d.createElement(l)}}s[et]=t,s[bt]=n;e:for(d=t.child;d!==null;){if(d.tag===5||d.tag===6)s.appendChild(d.stateNode);else if(d.tag!==4&&d.tag!==27&&d.child!==null){d.child.return=d,d=d.child;continue}if(d===t)break e;for(;d.sibling===null;){if(d.return===null||d.return===t)break e;d=d.return}d.sibling.return=d.return,d=d.sibling}t.stateNode=s;e:switch(Nt(s,l,n),l){case"button":case"input":case"select":case"textarea":n=!!n.autoFocus;break e;case"img":n=!0;break e;default:n=!1}n&&Ua(t)}}return Pe(t),Ou(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,a),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==n&&Ua(t);else{if(typeof n!="string"&&t.stateNode===null)throw Error(o(166));if(e=se.current,ml(t)){if(e=t.stateNode,a=t.memoizedProps,n=null,l=jt,l!==null)switch(l.tag){case 27:case 5:n=l.memoizedProps}e[et]=t,e=!!(e.nodeValue===a||n!==null&&n.suppressHydrationWarning===!0||Of(e.nodeValue,a)),e||an(t,!0)}else e=Xs(e).createTextNode(n),e[et]=t,t.stateNode=e}return Pe(t),null;case 31:if(a=t.memoizedState,e===null||e.memoizedState!==null){if(n=ml(t),a!==null){if(e===null){if(!n)throw Error(o(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(o(557));e[et]=t}else Vn(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Pe(t),e=!1}else a=Jc(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),e=!0;if(!e)return t.flags&256?(Xt(t),t):(Xt(t),null);if((t.flags&128)!==0)throw Error(o(558))}return Pe(t),null;case 13:if(n=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(l=ml(t),n!==null&&n.dehydrated!==null){if(e===null){if(!l)throw Error(o(318));if(l=t.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(o(317));l[et]=t}else Vn(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Pe(t),l=!1}else l=Jc(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=l),l=!0;if(!l)return t.flags&256?(Xt(t),t):(Xt(t),null)}return Xt(t),(t.flags&128)!==0?(t.lanes=a,t):(a=n!==null,e=e!==null&&e.memoizedState!==null,a&&(n=t.child,l=null,n.alternate!==null&&n.alternate.memoizedState!==null&&n.alternate.memoizedState.cachePool!==null&&(l=n.alternate.memoizedState.cachePool.pool),s=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(s=n.memoizedState.cachePool.pool),s!==l&&(n.flags|=2048)),a!==e&&a&&(t.child.flags|=8192),ks(t,t.updateQueue),Pe(t),null);case 4:return Be(),e===null&&ar(t.stateNode.containerInfo),Pe(t),null;case 10:return ka(t.type),Pe(t),null;case 19:if(O(it),n=t.memoizedState,n===null)return Pe(t),null;if(l=(t.flags&128)!==0,s=n.rendering,s===null)if(l)gi(n,!1);else{if(nt!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(s=bs(e),s!==null){for(t.flags|=128,gi(n,!1),e=s.updateQueue,t.updateQueue=e,ks(t,e),t.subtreeFlags=0,e=a,a=t.child;a!==null;)oo(a,e),a=a.sibling;return K(it,it.current&1|2),Ue&&Da(t,n.treeForkCount),t.child}e=e.sibling}n.tail!==null&&$e()>Ls&&(t.flags|=128,l=!0,gi(n,!1),t.lanes=4194304)}else{if(!l)if(e=bs(s),e!==null){if(t.flags|=128,l=!0,e=e.updateQueue,t.updateQueue=e,ks(t,e),gi(n,!0),n.tail===null&&n.tailMode==="hidden"&&!s.alternate&&!Ue)return Pe(t),null}else 2*$e()-n.renderingStartTime>Ls&&a!==536870912&&(t.flags|=128,l=!0,gi(n,!1),t.lanes=4194304);n.isBackwards?(s.sibling=t.child,t.child=s):(e=n.last,e!==null?e.sibling=s:t.child=s,n.last=s)}return n.tail!==null?(e=n.tail,n.rendering=e,n.tail=e.sibling,n.renderingStartTime=$e(),e.sibling=null,a=it.current,K(it,l?a&1|2:a&1),Ue&&Da(t,n.treeForkCount),e):(Pe(t),null);case 22:case 23:return Xt(t),nu(),n=t.memoizedState!==null,e!==null?e.memoizedState!==null!==n&&(t.flags|=8192):n&&(t.flags|=8192),n?(a&536870912)!==0&&(t.flags&128)===0&&(Pe(t),t.subtreeFlags&6&&(t.flags|=8192)):Pe(t),a=t.updateQueue,a!==null&&ks(t,a.retryQueue),a=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(a=e.memoizedState.cachePool.pool),n=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(n=t.memoizedState.cachePool.pool),n!==a&&(t.flags|=2048),e!==null&&O(qn),null;case 24:return a=null,e!==null&&(a=e.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),ka(rt),Pe(t),null;case 25:return null;case 30:return null}throw Error(o(156,t.tag))}function Jh(e,t){switch(Gc(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return ka(rt),Be(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return _t(t),null;case 31:if(t.memoizedState!==null){if(Xt(t),t.alternate===null)throw Error(o(340));Vn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(Xt(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(o(340));Vn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return O(it),null;case 4:return Be(),null;case 10:return ka(t.type),null;case 22:case 23:return Xt(t),nu(),e!==null&&O(qn),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return ka(rt),null;case 25:return null;default:return null}}function Vd(e,t){switch(Gc(t),t.tag){case 3:ka(rt),Be();break;case 26:case 27:case 5:_t(t);break;case 4:Be();break;case 31:t.memoizedState!==null&&Xt(t);break;case 13:Xt(t);break;case 19:O(it);break;case 10:ka(t.type);break;case 22:case 23:Xt(t),nu(),e!==null&&O(qn);break;case 24:ka(rt)}}function vi(e,t){try{var a=t.updateQueue,n=a!==null?a.lastEffect:null;if(n!==null){var l=n.next;a=l;do{if((a.tag&e)===e){n=void 0;var s=a.create,d=a.inst;n=s(),d.destroy=n}a=a.next}while(a!==l)}}catch(f){Ge(t,t.return,f)}}function on(e,t,a){try{var n=t.updateQueue,l=n!==null?n.lastEffect:null;if(l!==null){var s=l.next;n=s;do{if((n.tag&e)===e){var d=n.inst,f=d.destroy;if(f!==void 0){d.destroy=void 0,l=t;var p=a,A=f;try{A()}catch(M){Ge(l,p,M)}}}n=n.next}while(n!==s)}}catch(M){Ge(t,t.return,M)}}function Bd(e){var t=e.updateQueue;if(t!==null){var a=e.stateNode;try{Do(t,a)}catch(n){Ge(e,e.return,n)}}}function Hd(e,t,a){a.props=Xn(e.type,e.memoizedProps),a.state=e.memoizedState;try{a.componentWillUnmount()}catch(n){Ge(e,t,n)}}function bi(e,t){try{var a=e.ref;if(a!==null){switch(e.tag){case 26:case 27:case 5:var n=e.stateNode;break;case 30:n=e.stateNode;break;default:n=e.stateNode}typeof a=="function"?e.refCleanup=a(n):a.current=n}}catch(l){Ge(e,t,l)}}function xa(e,t){var a=e.ref,n=e.refCleanup;if(a!==null)if(typeof n=="function")try{n()}catch(l){Ge(e,t,l)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof a=="function")try{a(null)}catch(l){Ge(e,t,l)}else a.current=null}function qd(e){var t=e.type,a=e.memoizedProps,n=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":a.autoFocus&&n.focus();break e;case"img":a.src?n.src=a.src:a.srcSet&&(n.srcset=a.srcSet)}}catch(l){Ge(e,e.return,l)}}function Uu(e,t,a){try{var n=e.stateNode;fp(n,e.type,a,t),n[bt]=t}catch(l){Ge(e,e.return,l)}}function Gd(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&vn(e.type)||e.tag===4}function Lu(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Gd(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&&vn(e.type)||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 Ru(e,t,a){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?(a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a).insertBefore(e,t):(t=a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a,t.appendChild(e),a=a._reactRootContainer,a!=null||t.onclick!==null||(t.onclick=ca));else if(n!==4&&(n===27&&vn(e.type)&&(a=e.stateNode,t=null),e=e.child,e!==null))for(Ru(e,t,a),e=e.sibling;e!==null;)Ru(e,t,a),e=e.sibling}function zs(e,t,a){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?a.insertBefore(e,t):a.appendChild(e);else if(n!==4&&(n===27&&vn(e.type)&&(a=e.stateNode),e=e.child,e!==null))for(zs(e,t,a),e=e.sibling;e!==null;)zs(e,t,a),e=e.sibling}function Yd(e){var t=e.stateNode,a=e.memoizedProps;try{for(var n=e.type,l=t.attributes;l.length;)t.removeAttributeNode(l[0]);Nt(t,n,a),t[et]=e,t[bt]=a}catch(s){Ge(e,e.return,s)}}var La=!1,ft=!1,Vu=!1,Jd=typeof WeakSet=="function"?WeakSet:Set,yt=null;function Qh(e,t){if(e=e.containerInfo,ir=Ps,e=to(e),kc(e)){if("selectionStart"in e)var a={start:e.selectionStart,end:e.selectionEnd};else e:{a=(a=e.ownerDocument)&&a.defaultView||window;var n=a.getSelection&&a.getSelection();if(n&&n.rangeCount!==0){a=n.anchorNode;var l=n.anchorOffset,s=n.focusNode;n=n.focusOffset;try{a.nodeType,s.nodeType}catch{a=null;break e}var d=0,f=-1,p=-1,A=0,M=0,R=e,E=null;t:for(;;){for(var _;R!==a||l!==0&&R.nodeType!==3||(f=d+l),R!==s||n!==0&&R.nodeType!==3||(p=d+n),R.nodeType===3&&(d+=R.nodeValue.length),(_=R.firstChild)!==null;)E=R,R=_;for(;;){if(R===e)break t;if(E===a&&++A===l&&(f=d),E===s&&++M===n&&(p=d),(_=R.nextSibling)!==null)break;R=E,E=R.parentNode}R=_}a=f===-1||p===-1?null:{start:f,end:p}}else a=null}a=a||{start:0,end:0}}else a=null;for(sr={focusedElem:e,selectionRange:a},Ps=!1,yt=t;yt!==null;)if(t=yt,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,yt=e;else for(;yt!==null;){switch(t=yt,s=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(a=0;a title"))),Nt(s,n,a),s[et]=e,ct(s),n=s;break e;case"link":var d=$f("link","href",l).get(n+(a.href||""));if(d){for(var f=0;fXe&&(d=Xe,Xe=he,he=d);var S=Pr(f,he),y=Pr(f,Xe);if(S&&y&&(_.rangeCount!==1||_.anchorNode!==S.node||_.anchorOffset!==S.offset||_.focusNode!==y.node||_.focusOffset!==y.offset)){var N=R.createRange();N.setStart(S.node,S.offset),_.removeAllRanges(),he>Xe?(_.addRange(N),_.extend(y.node,y.offset)):(N.setEnd(y.node,y.offset),_.addRange(N))}}}}for(R=[],_=f;_=_.parentNode;)_.nodeType===1&&R.push({element:_,left:_.scrollLeft,top:_.scrollTop});for(typeof f.focus=="function"&&f.focus(),f=0;fa?32:a,C.T=null,a=Qu,Qu=null;var s=hn,d=qa;if(pt=0,Tl=hn=null,qa=0,(He&6)!==0)throw Error(o(331));var f=He;if(He|=4,tf(s.current),Wd(s,s.current,d,a),He=f,Ai(0,!1),vt&&typeof vt.onPostCommitFiberRoot=="function")try{vt.onPostCommitFiberRoot(ha,s)}catch{}return!0}finally{X.p=l,C.T=n,jf(e,t)}}function xf(e,t,a){t=Wt(a,t),t=Au(e.stateNode,t,2),e=cn(e,t,2),e!==null&&(ga(e,2),Na(e))}function Ge(e,t,a){if(e.tag===3)xf(e,e,a);else for(;t!==null;){if(t.tag===3){xf(t,e,a);break}else if(t.tag===1){var n=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof n.componentDidCatch=="function"&&(mn===null||!mn.has(n))){e=Wt(a,e),a=xd(2),n=cn(t,a,2),n!==null&&(Nd(a,n,t,e),ga(n,2),Na(n));break}}t=t.return}}function Fu(e,t,a){var n=e.pingCache;if(n===null){n=e.pingCache=new Kh;var l=new Set;n.set(t,l)}else l=n.get(t),l===void 0&&(l=new Set,n.set(t,l));l.has(a)||(qu=!0,l.add(a),e=Ph.bind(null,e,t,a),t.then(e,e))}function Ph(e,t,a){var n=e.pingCache;n!==null&&n.delete(t),e.pingedLanes|=e.suspendedLanes&a,e.warmLanes&=~a,Fe===e&&(ze&a)===a&&(nt===4||nt===3&&(ze&62914560)===ze&&300>$e()-Us?(He&2)===0&&wl(e,0):Gu|=a,El===ze&&(El=0)),Na(e)}function Nf(e,t){t===0&&(t=Vl()),e=Ln(e,t),e!==null&&(ga(e,t),Na(e))}function ep(e){var t=e.memoizedState,a=0;t!==null&&(a=t.retryLane),Nf(e,a)}function tp(e,t){var a=0;switch(e.tag){case 31:case 13:var n=e.stateNode,l=e.memoizedState;l!==null&&(a=l.retryLane);break;case 19:n=e.stateNode;break;case 22:n=e.stateNode._retryCache;break;default:throw Error(o(314))}n!==null&&n.delete(t),Nf(e,a)}function ap(e,t){return Ie(e,t)}var Gs=null,_l=null,Iu=!1,Ys=!1,$u=!1,gn=0;function Na(e){e!==_l&&e.next===null&&(_l===null?Gs=_l=e:_l=_l.next=e),Ys=!0,Iu||(Iu=!0,lp())}function Ai(e,t){if(!$u&&Ys){$u=!0;do for(var a=!1,n=Gs;n!==null;){if(e!==0){var l=n.pendingLanes;if(l===0)var s=0;else{var d=n.suspendedLanes,f=n.pingedLanes;s=(1<<31-ht(42|e)+1)-1,s&=l&~(d&~f),s=s&201326741?s&201326741|1:s?s|2:0}s!==0&&(a=!0,Tf(n,s))}else s=ze,s=Dn(n,n===Fe?s:0,n.cancelPendingCommit!==null||n.timeoutHandle!==-1),(s&3)===0||Xa(n,s)||(a=!0,Tf(n,s));n=n.next}while(a);$u=!1}}function np(){Af()}function Af(){Ys=Iu=!1;var e=0;gn!==0&&hp()&&(e=gn);for(var t=$e(),a=null,n=Gs;n!==null;){var l=n.next,s=Cf(n,t);s===0?(n.next=null,a===null?Gs=l:a.next=l,l===null&&(_l=a)):(a=n,(e!==0||(s&3)!==0)&&(Ys=!0)),n=l}pt!==0&&pt!==5||Ai(e),gn!==0&&(gn=0)}function Cf(e,t){for(var a=e.suspendedLanes,n=e.pingedLanes,l=e.expirationTimes,s=e.pendingLanes&-62914561;0f)break;var M=p.transferSize,R=p.initiatorType;M&&Uf(R)&&(p=p.responseEnd,d+=M*(p"u"?null:document;function Zf(e,t,a){var n=kl;if(n&&typeof t=="string"&&t){var l=Ot(t);l='link[rel="'+e+'"][href="'+l+'"]',typeof a=="string"&&(l+='[crossorigin="'+a+'"]'),Xf.has(l)||(Xf.add(l),e={rel:e,crossOrigin:a,href:t},n.querySelector(l)===null&&(t=n.createElement("link"),Nt(t,"link",e),ct(t),n.head.appendChild(t)))}}function Np(e){Ga.D(e),Zf("dns-prefetch",e,null)}function Ap(e,t){Ga.C(e,t),Zf("preconnect",e,t)}function Cp(e,t,a){Ga.L(e,t,a);var n=kl;if(n&&e&&t){var l='link[rel="preload"][as="'+Ot(t)+'"]';t==="image"&&a&&a.imageSrcSet?(l+='[imagesrcset="'+Ot(a.imageSrcSet)+'"]',typeof a.imageSizes=="string"&&(l+='[imagesizes="'+Ot(a.imageSizes)+'"]')):l+='[href="'+Ot(e)+'"]';var s=l;switch(t){case"style":s=zl(e);break;case"script":s=Ml(e)}la.has(s)||(e=k({rel:"preload",href:t==="image"&&a&&a.imageSrcSet?void 0:e,as:t},a),la.set(s,e),n.querySelector(l)!==null||t==="style"&&n.querySelector(wi(s))||t==="script"&&n.querySelector(Di(s))||(t=n.createElement("link"),Nt(t,"link",e),ct(t),n.head.appendChild(t)))}}function Ep(e,t){Ga.m(e,t);var a=kl;if(a&&e){var n=t&&typeof t.as=="string"?t.as:"script",l='link[rel="modulepreload"][as="'+Ot(n)+'"][href="'+Ot(e)+'"]',s=l;switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":s=Ml(e)}if(!la.has(s)&&(e=k({rel:"modulepreload",href:e},t),la.set(s,e),a.querySelector(l)===null)){switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(a.querySelector(Di(s)))return}n=a.createElement("link"),Nt(n,"link",e),ct(n),a.head.appendChild(n)}}}function Tp(e,t,a){Ga.S(e,t,a);var n=kl;if(n&&e){var l=Ia(n).hoistableStyles,s=zl(e);t=t||"default";var d=l.get(s);if(!d){var f={loading:0,preload:null};if(d=n.querySelector(wi(s)))f.loading=5;else{e=k({rel:"stylesheet",href:e,"data-precedence":t},a),(a=la.get(s))&&mr(e,a);var p=d=n.createElement("link");ct(p),Nt(p,"link",e),p._p=new Promise(function(A,M){p.onload=A,p.onerror=M}),p.addEventListener("load",function(){f.loading|=1}),p.addEventListener("error",function(){f.loading|=2}),f.loading|=4,Ks(d,t,n)}d={type:"stylesheet",instance:d,count:1,state:f},l.set(s,d)}}}function wp(e,t){Ga.X(e,t);var a=kl;if(a&&e){var n=Ia(a).hoistableScripts,l=Ml(e),s=n.get(l);s||(s=a.querySelector(Di(l)),s||(e=k({src:e,async:!0},t),(t=la.get(l))&&hr(e,t),s=a.createElement("script"),ct(s),Nt(s,"link",e),a.head.appendChild(s)),s={type:"script",instance:s,count:1,state:null},n.set(l,s))}}function Dp(e,t){Ga.M(e,t);var a=kl;if(a&&e){var n=Ia(a).hoistableScripts,l=Ml(e),s=n.get(l);s||(s=a.querySelector(Di(l)),s||(e=k({src:e,async:!0,type:"module"},t),(t=la.get(l))&&hr(e,t),s=a.createElement("script"),ct(s),Nt(s,"link",e),a.head.appendChild(s)),s={type:"script",instance:s,count:1,state:null},n.set(l,s))}}function Kf(e,t,a,n){var l=(l=se.current)?Zs(l):null;if(!l)throw Error(o(446));switch(e){case"meta":case"title":return null;case"style":return typeof a.precedence=="string"&&typeof a.href=="string"?(t=zl(a.href),a=Ia(l).hoistableStyles,n=a.get(t),n||(n={type:"style",instance:null,count:0,state:null},a.set(t,n)),n):{type:"void",instance:null,count:0,state:null};case"link":if(a.rel==="stylesheet"&&typeof a.href=="string"&&typeof a.precedence=="string"){e=zl(a.href);var s=Ia(l).hoistableStyles,d=s.get(e);if(d||(l=l.ownerDocument||l,d={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},s.set(e,d),(s=l.querySelector(wi(e)))&&!s._p&&(d.instance=s,d.state.loading=5),la.has(e)||(a={rel:"preload",as:"style",href:a.href,crossOrigin:a.crossOrigin,integrity:a.integrity,media:a.media,hrefLang:a.hrefLang,referrerPolicy:a.referrerPolicy},la.set(e,a),s||_p(l,e,a,d.state))),t&&n===null)throw Error(o(528,""));return d}if(t&&n!==null)throw Error(o(529,""));return null;case"script":return t=a.async,a=a.src,typeof a=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Ml(a),a=Ia(l).hoistableScripts,n=a.get(t),n||(n={type:"script",instance:null,count:0,state:null},a.set(t,n)),n):{type:"void",instance:null,count:0,state:null};default:throw Error(o(444,e))}}function zl(e){return'href="'+Ot(e)+'"'}function wi(e){return'link[rel="stylesheet"]['+e+"]"}function Ff(e){return k({},e,{"data-precedence":e.precedence,precedence:null})}function _p(e,t,a,n){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?n.loading=1:(t=e.createElement("link"),n.preload=t,t.addEventListener("load",function(){return n.loading|=1}),t.addEventListener("error",function(){return n.loading|=2}),Nt(t,"link",a),ct(t),e.head.appendChild(t))}function Ml(e){return'[src="'+Ot(e)+'"]'}function Di(e){return"script[async]"+e}function If(e,t,a){if(t.count++,t.instance===null)switch(t.type){case"style":var n=e.querySelector('style[data-href~="'+Ot(a.href)+'"]');if(n)return t.instance=n,ct(n),n;var l=k({},a,{"data-href":a.href,"data-precedence":a.precedence,href:null,precedence:null});return n=(e.ownerDocument||e).createElement("style"),ct(n),Nt(n,"style",l),Ks(n,a.precedence,e),t.instance=n;case"stylesheet":l=zl(a.href);var s=e.querySelector(wi(l));if(s)return t.state.loading|=4,t.instance=s,ct(s),s;n=Ff(a),(l=la.get(l))&&mr(n,l),s=(e.ownerDocument||e).createElement("link"),ct(s);var d=s;return d._p=new Promise(function(f,p){d.onload=f,d.onerror=p}),Nt(s,"link",n),t.state.loading|=4,Ks(s,a.precedence,e),t.instance=s;case"script":return s=Ml(a.src),(l=e.querySelector(Di(s)))?(t.instance=l,ct(l),l):(n=a,(l=la.get(s))&&(n=k({},a),hr(n,l)),e=e.ownerDocument||e,l=e.createElement("script"),ct(l),Nt(l,"link",n),e.head.appendChild(l),t.instance=l);case"void":return null;default:throw Error(o(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(n=t.instance,t.state.loading|=4,Ks(n,a.precedence,e));return t.instance}function Ks(e,t,a){for(var n=a.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),l=n.length?n[n.length-1]:null,s=l,d=0;d title"):null)}function kp(e,t,a){if(a===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;return t.rel==="stylesheet"?(e=t.disabled,typeof t.precedence=="string"&&e==null):!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 Pf(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function zp(e,t,a,n){if(a.type==="stylesheet"&&(typeof n.media!="string"||matchMedia(n.media).matches!==!1)&&(a.state.loading&4)===0){if(a.instance===null){var l=zl(n.href),s=t.querySelector(wi(l));if(s){t=s._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=Is.bind(e),t.then(e,e)),a.state.loading|=4,a.instance=s,ct(s);return}s=t.ownerDocument||t,n=Ff(n),(l=la.get(l))&&mr(n,l),s=s.createElement("link"),ct(s);var d=s;d._p=new Promise(function(f,p){d.onload=f,d.onerror=p}),Nt(s,"link",n),a.instance=s}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(a,t),(t=a.state.preload)&&(a.state.loading&3)===0&&(e.count++,a=Is.bind(e),t.addEventListener("load",a),t.addEventListener("error",a))}}var pr=0;function Mp(e,t){return e.stylesheets&&e.count===0&&Ws(e,e.stylesheets),0pr?50:800)+t);return e.unsuspend=a,function(){e.unsuspend=null,clearTimeout(n),clearTimeout(l)}}:null}function Is(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Ws(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var $s=null;function Ws(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,$s=new Map,t.forEach(Op,e),$s=null,Is.call(e))}function Op(e,t){if(!(t.state.loading&4)){var a=$s.get(e);if(a)var n=a.get(null);else{a=new Map,$s.set(e,a);for(var l=e.querySelectorAll("link[data-precedence],style[data-precedence]"),s=0;s"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(r)}catch(c){console.error(c)}}return r(),Ar.exports=Fp(),Ar.exports}var $p=Ip();function Wp({isLoading:r,onSubmit:c}){const[u,o]=h.useState("");async function m(b){b.preventDefault(),await c(u)}return i.jsxs("form",{className:"auth-form",onSubmit:m,children:[i.jsx("p",{className:"helper-text",children:"Indtast din email, så sender vi en anmodning om nulstilling af kodeord."}),i.jsx("label",{className:"field-label",htmlFor:"forgot-email",children:"Email"}),i.jsx("input",{id:"forgot-email",className:"field-input",type:"email",value:u,onChange:b=>o(b.target.value),placeholder:"you@arbejd.com",required:!0}),i.jsx("button",{className:"primary-btn",type:"submit",disabled:r,children:r?"Sender...":"Send anmodning"})]})}function Pp({isLoading:r,onSubmit:c}){const[u,o]=h.useState(""),[m,b]=h.useState(""),[j,q]=h.useState(!0);async function D(v){v.preventDefault(),await c(u,m,j)}return i.jsxs("form",{className:"auth-form",onSubmit:D,children:[i.jsx("label",{className:"field-label",htmlFor:"login-email",children:"Email"}),i.jsx("input",{id:"login-email",className:"field-input",type:"email",value:u,onChange:v=>o(v.target.value),placeholder:"you@arbejd.com",required:!0}),i.jsx("label",{className:"field-label",htmlFor:"login-password",children:"Adgangskode"}),i.jsx("input",{id:"login-password",className:"field-input",type:"password",value:m,onChange:v=>b(v.target.value),placeholder:"••••••••",required:!0}),i.jsxs("label",{className:"check-row",children:[i.jsx("input",{type:"checkbox",checked:j,onChange:v=>q(v.target.checked)}),i.jsx("span",{children:"Husk mig"})]}),i.jsx("button",{className:"primary-btn",type:"submit",disabled:r,children:r?"Logger ind...":"Log ind"})]})}function eg({isLoading:r,onSubmit:c}){const[u,o]=h.useState({firstName:"",lastName:"",email:"",password:"",zip:"",zipName:"",subscribe:!0});function m(j,q){o(D=>({...D,[j]:q}))}async function b(j){j.preventDefault(),await c(u)}return i.jsxs("form",{className:"auth-form",onSubmit:b,children:[i.jsxs("div",{className:"field-grid",children:[i.jsxs("div",{children:[i.jsx("label",{className:"field-label",htmlFor:"register-first-name",children:"Fornavn"}),i.jsx("input",{id:"register-first-name",className:"field-input",value:u.firstName,onChange:j=>m("firstName",j.target.value),required:!0})]}),i.jsxs("div",{children:[i.jsx("label",{className:"field-label",htmlFor:"register-last-name",children:"Efternavn"}),i.jsx("input",{id:"register-last-name",className:"field-input",value:u.lastName,onChange:j=>m("lastName",j.target.value),required:!0})]})]}),i.jsx("label",{className:"field-label",htmlFor:"register-email",children:"Email"}),i.jsx("input",{id:"register-email",className:"field-input",type:"email",value:u.email,onChange:j=>m("email",j.target.value),required:!0}),i.jsx("label",{className:"field-label",htmlFor:"register-password",children:"Adgangskode"}),i.jsx("input",{id:"register-password",className:"field-input",type:"password",value:u.password,onChange:j=>m("password",j.target.value),required:!0}),i.jsxs("div",{className:"field-grid",children:[i.jsxs("div",{children:[i.jsx("label",{className:"field-label",htmlFor:"register-zip",children:"Postnummer"}),i.jsx("input",{id:"register-zip",className:"field-input",value:u.zip,onChange:j=>m("zip",j.target.value),required:!0})]}),i.jsxs("div",{children:[i.jsx("label",{className:"field-label",htmlFor:"register-zip-name",children:"By"}),i.jsx("input",{id:"register-zip-name",className:"field-input",value:u.zipName,onChange:j=>m("zipName",j.target.value),required:!0})]})]}),i.jsxs("label",{className:"check-row",children:[i.jsx("input",{type:"checkbox",checked:u.subscribe,onChange:j=>m("subscribe",j.target.checked)}),i.jsx("span",{children:"Modtag opdateringer"})]}),i.jsx("button",{className:"primary-btn",type:"submit",disabled:r,children:r?"Opretter konto...":"Opret konto"})]})}function Nm({itemKey:r}){return r==="dashboard"?i.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,children:[i.jsx("rect",{x:"3",y:"3",width:"8",height:"8",rx:"2"}),i.jsx("rect",{x:"13",y:"3",width:"8",height:"5",rx:"2"}),i.jsx("rect",{x:"13",y:"10",width:"8",height:"11",rx:"2"}),i.jsx("rect",{x:"3",y:"13",width:"8",height:"8",rx:"2"})]}):r==="cv"?i.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,children:[i.jsx("path",{d:"M8 3h8l5 5v13H8z"}),i.jsx("path",{d:"M16 3v5h5"}),i.jsx("path",{d:"M11 13h7"}),i.jsx("path",{d:"M11 17h7"}),i.jsx("circle",{cx:"7",cy:"16",r:"3"})]}):r==="jobs"?i.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,children:[i.jsx("rect",{x:"3",y:"7",width:"18",height:"13",rx:"3"}),i.jsx("path",{d:"M9 7V5a3 3 0 0 1 6 0v2"}),i.jsx("path",{d:"M3 12h18"})]}):r==="beskeder"?i.jsx("svg",{viewBox:"0 0 24 24","aria-hidden":!0,children:i.jsx("path",{d:"M4 5h16a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H9l-5 4v-4H4a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2z"})}):r==="ai-jobagent"?i.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,children:[i.jsx("path",{d:"M10 6l1.8-3L13.6 6l3.4 1.4-3.4 1.4-1.8 3-1.8-3L6.6 7.4z"}),i.jsx("path",{d:"M16 12l1-1.8 1 1.8 1.8 1-1.8 1-1 1.8-1-1.8-1.8-1z"}),i.jsx("path",{d:"M4 18h8"}),i.jsx("path",{d:"M8 14v8"})]}):r==="ai-agent"?i.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,children:[i.jsx("rect",{x:"5",y:"7",width:"14",height:"10",rx:"4"}),i.jsx("path",{d:"M12 3v4"}),i.jsx("circle",{cx:"10",cy:"12",r:"1"}),i.jsx("circle",{cx:"14",cy:"12",r:"1"}),i.jsx("path",{d:"M9 15h6"})]}):r==="simulator"?i.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,children:[i.jsx("rect",{x:"3",y:"8",width:"18",height:"10",rx:"4"}),i.jsx("circle",{cx:"8",cy:"13",r:"1.5"}),i.jsx("path",{d:"M8 11.5v3"}),i.jsx("path",{d:"M6.5 13h3"}),i.jsx("circle",{cx:"16.5",cy:"12",r:"1.2"}),i.jsx("circle",{cx:"18.8",cy:"14.3",r:"1.2"})]}):i.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,children:[i.jsx("rect",{x:"3",y:"5",width:"18",height:"14",rx:"3"}),i.jsx("path",{d:"M3 10h18"}),i.jsx("path",{d:"M7 15h4"})]})}function Ya({collapsed:r,activeKey:c,onToggle:u,onSelect:o}){const m=h.useMemo(()=>[{key:"dashboard",label:"Dashboard",description:"Oversigt over aktivitet, jobs, beskeder og evalueringer."},{key:"cv",label:"CV",description:"Administrer profil, erfaring, uddannelse og kvalifikationer."},{key:"jobs",label:"Jobs",description:"Find nye job, filtrer resultater og gem relevante stillinger."},{key:"beskeder",label:"Beskeder",description:"Læs og send beskeder med virksomheder og support.",badge:!0},{key:"ai-jobagent",label:"AI JobAgent",description:"Opsæt jobagent og få AI-baserede jobnotifikationer.",accent:!0},{key:"ai-agent",label:"AI Agent",description:"Få forslag til at forbedre dit CV og profil-match.",accent:!0},{key:"simulator",label:"Simulator",description:"Træn jobsamtaler og se interviewforløb."},{key:"abonnement",label:"Abonnement",description:"Se plan, funktioner og status for dit abonnement."}],[]);return i.jsxs("aside",{id:"sidebar",className:r?"dashboard-sidebar collapsed glass-panel":"dashboard-sidebar glass-panel",children:[i.jsxs("div",{className:"sidebar-header",children:[i.jsx("div",{className:"brand-chip",children:i.jsx("span",{children:"Ar"})}),i.jsx("span",{className:"sidebar-logo-text",children:"Arbejd"})]}),i.jsx("nav",{className:"sidebar-nav",children:m.map(b=>{const j=b.key===c,q=b.key==="ai-jobagent"||b.key==="ai-agent";return i.jsxs("button",{type:"button",className:j?"sidebar-item nav-item active":"sidebar-item nav-item",title:b.label,onClick:()=>o?.(b.key),children:[i.jsx("span",{className:["sidebar-icon",b.accent?"accent":"",q?"ai-spark":""].join(" ").trim(),children:i.jsx(Nm,{itemKey:b.key})}),i.jsx("span",{className:"sidebar-label nav-text",children:b.label}),b.badge&&i.jsx("span",{className:"sidebar-badge"}),i.jsxs("span",{className:"sidebar-tooltip","aria-hidden":!0,children:[i.jsxs("strong",{children:[i.jsx("span",{className:["sidebar-tooltip-icon",b.accent?"accent":"",q?"ai-spark":""].join(" ").trim(),children:i.jsx(Nm,{itemKey:b.key})}),b.label]}),i.jsx("small",{children:b.description})]})]},b.key)})}),i.jsx("div",{className:"sidebar-footer",children:i.jsx("button",{type:"button",className:"sidebar-toggle",onClick:u,children:r?"→":"←"})})]})}function Um({className:r}){const[c,u]=h.useState(()=>typeof window>"u"?!1:window.localStorage.getItem("ui-theme")==="dark");return h.useEffect(()=>{if(typeof window>"u")return;const{body:o}=window.document;o.classList.toggle("theme-dark",c),window.localStorage.setItem("ui-theme",c?"dark":"light")},[c]),i.jsxs("button",{className:r?`topbar-theme-toggle ${r}`:"topbar-theme-toggle",type:"button","aria-label":c?"Skift til lyst tema":"Skift til mørkt tema",onClick:()=>u(o=>!o),children:[i.jsx("span",{className:c?void 0:"is-active",children:"☀︎"}),i.jsx("span",{className:c?"is-active":void 0,children:"☾"})]})}class Fn{searchParams;constructor(c){this.searchParams=c?new URLSearchParams(c):new URLSearchParams}append(c,u){const o=new URLSearchParams(this.searchParams);return o.append(c,String(u)),new Fn(o)}set(c,u){const o=new URLSearchParams(this.searchParams);return o.set(c,String(u)),new Fn(o)}toString(){return this.searchParams.toString()}}function sc(r,c){if(!c)return r;const u=new URL(r);if(c instanceof Fn){const o=c.toString();return o&&new URLSearchParams(o).forEach((b,j)=>u.searchParams.append(j,b)),u.toString()}return Object.entries(c).forEach(([o,m])=>{if(Array.isArray(m)){m.forEach(b=>u.searchParams.append(o,String(b)));return}u.searchParams.set(o,String(m))}),u.toString()}async function cc(r,c="json"){if(!r.ok){const u=await r.text();throw new Error(u||`HTTP ${r.status}`)}if(r.status!==204)return c==="blob"?await r.blob():await r.json()}function uc(r){const c=typeof window>"u"?null:window.localStorage.getItem("token");return{...c?{Authorization:`Bearer ${c}`}:{},...r??{}}}class tg{async get(c,u){const o=await fetch(sc(c,u?.params),{method:"GET",headers:uc(u?.headers)});return cc(o,u?.responseType)}async post(c,u,o){const m=await fetch(sc(c,o?.params),{method:"POST",headers:{"Content-Type":"application/json",...uc(o?.headers)},body:u===void 0?void 0:JSON.stringify(u)});return cc(m)}async put(c,u,o){const m=await fetch(sc(c,o?.params),{method:"PUT",headers:{"Content-Type":"application/json",...uc(o?.headers)},body:u===void 0?void 0:JSON.stringify(u)});return cc(m)}async delete(c,u){const o=await fetch(sc(c,u?.params),{method:"DELETE",headers:uc(u?.headers)});return cc(o)}}const lt=new tg,z={backendApi:"https://api.arbejd.com/",backendApiV2:"https://api2.arbejd.com/api/"};class ag{observers=new Set;next(c){this.observers.forEach(u=>u(c))}asObservable(){return{subscribe:c=>(this.observers.add(c),{unsubscribe:()=>this.observers.delete(c)})}}}class ng extends ag{currentValue;constructor(c){super(),this.currentValue=c}next(c){this.currentValue=c,super.next(c)}get value(){return this.currentValue}asObservable(){return{subscribe:c=>(c(this.currentValue),super.asObservable().subscribe(c))}}}class lg{authId="id";authToken="token";authEmail="email";runOutDate="runOutDate";authTokenSubject=new ng(null);constructor(){}async loadAuthTokenFromStorage(){const c=window.localStorage.getItem(this.authToken);this.authTokenSubject.next(c)}async setAuthData(c,u){if(await this.setPreference(this.authId,c.id),await this.setPreference(this.authToken,c.token),await this.setPreference(this.authEmail,c.email),u)await this.setPreference(this.runOutDate,"forever");else{const o=new Date,m=new Date(o);m.setDate(o.getDate()+1);const b=m.toISOString();await this.setPreference(this.runOutDate,b)}}async setPreference(c,u){window.localStorage.setItem(c,u)}async getCandidateId(){return window.localStorage.getItem(this.authId)}async getCandidateEmail(){return window.localStorage.getItem(this.authEmail)}async getAuthToken(){return window.localStorage.getItem(this.authToken)}getAuthTokenNoneAsync(){return this.authTokenSubject.value}async getRunOutDate(){return window.localStorage.getItem(this.runOutDate)}async clearCredentials(){window.localStorage.removeItem(this.authId),window.localStorage.removeItem(this.authToken),window.localStorage.removeItem(this.runOutDate)}async getAuth(){let c=await this.getCandidateId(),u=await this.getAuthToken(),o=await this.getCandidateEmail(),m=await this.getRunOutDate();return c&&u&&o&&m?{id:c,token:u,email:o,runOutDate:m}:null}getAuthTokenWithoutWindow(){const c=this.getAuthTokenNoneAsync();return c||""}getAuthWithoutWindow(){const c=this.getAuthTokenNoneAsync();return c?{id:"",token:c,email:"",runOutDate:"forever"}:null}}const Rl=new lg;class Bi{constructor(c=lt,u=Rl){this.http=c,this.localStorageService=u}closeAccount(c){let u=z.backendApi+"api/1.1.0/candidate/"+c.toLowerCase();return this.http.delete(u)}accountRetention(c){let u=z.backendApi+"api/1.1.0/candidate/"+c+"/account-retention/";return this.http.get(u)}getCandidatesQualifications(){let c=z.backendApi+"api/1.1.0/candidate/skill/";return this.http.get(c)}getCandidatesCertifications(){let c=z.backendApi+"api/1.1.0/candidate/certificate/";return this.http.get(c)}getCandidatesLanguages(){let c=z.backendApi+"api/1.1.0/candidate/language/";return this.http.get(c)}getCandidatesDriverLicenses(){let c=z.backendApi+"api/1.1.0/candidate/driversLicense/";return this.http.get(c)}changePassword(c,u){let o=z.backendApi+"api/1.1.0/candidate/resetPassword",m={key:c,password:u};return this.http.post(o,m)}getCandidatesEducations(){let c=z.backendApiV2+"1.0.0/client/candidate_education";return this.http.get(c)}updateExperience(c,u){let o=z.backendApiV2+"1.0.0/client/candidate_experience/"+c.id,m={comments:c.comments,company_name:c.companyName,is_current:c.isCurrent,from_date:c.fromDate,to_date:c.toDate,language:u};return this.http.put(o,m)}createAccountV2(c){let u=z.backendApiV2+"1.0.0/client/candidate";return this.http.post(u,c)}updateCandidate(c,u){let o=z.backendApiV2+"1.0.0/client/candidate/v2/"+c.id,m={...c};c.birthday&&(c.birthday=new Date(c.birthday)),c.birthday instanceof Date&&(m.birthday=c.birthday.toISOString());let b={language:u,candidate:m};return this.http.put(o,b)}getCandidate(){let c=z.backendApiV2+"1.0.0/client/candidate";return this.http.get(c)}getCvSuggestion(){let c=z.backendApiV2+"1.0.0/client/suggestion";return this.http.get(c)}saveExperience(c,u){let o=z.backendApiV2+"1.0.0/client/candidate_experience",m={comments:c.comments,company_name:c.companyName,is_current:c.isCurrent,esco_id:c.occupation.id,from_date:c.fromDate,to_date:c.toDate,language:u};return this.http.post(o,m)}removeExperience(c){let u=z.backendApiV2+"1.0.0/client/candidate_experience/"+c;return this.http.delete(u)}getCandidatesExperiences(){let c=z.backendApiV2+"1.0.0/client/candidate_experience";return this.http.get(c)}getJobAgentFilters(){let c=z.backendApiV2+"1.0.0/client/job_agent_filter";return this.http.get(c)}updateJobAgentFilter(c){let u=z.backendApiV2+"1.0.0/client/job_agent_filter/"+c.id,o=c;return this.http.put(u,o)}removeJobAgentFilter(c){let u=z.backendApiV2+"1.0.0/client/job_agent_filter/"+c;return this.http.delete(u)}updateCandidateJobSeeker(c){let u=z.backendApiV2+"1.0.0/client/candidate/update_job_seeker/"+c.id;return this.http.put(u,c)}updateCvUploadProfileText(c,u,o){let m=z.backendApiV2+"1.0.0/client/candidate/update_cv_upload_profile/"+c,b={description:u,language:o};return this.http.put(m,b)}saveExperienceV2(c,u){let o=z.backendApiV2+"1.0.0/client/candidate_experience",m={comments:c.comments,company_name:c.companyName,is_current:c.isCurrent,esco_id:c.escoId,from_date:c.fromDate,to_date:c.toDate,language:u};return this.http.post(o,m)}updateProfileText(c){let u=z.backendApiV2+"1.0.0/client/candidate/update_profile_text";return this.http.put(u,c)}}let rc=null;function ig(r){const c=r.firstName?.trim()??"",u=r.lastName?.trim()??"",o=`${c} ${u}`.trim();return o||r.name?.trim()||""}function sg(r){const c=r.imageUrl?.trim();return c||r.image?.trim()||null}function Ja({title:r,userName:c,planLabel:u,onLogout:o,actions:m}){const[b,j]=h.useState(rc),q=h.useMemo(()=>new Bi,[]);h.useEffect(()=>{let V=!0;return rc?(j(rc),()=>{V=!1}):(q.getCandidate().then(k=>{!V||!k||(rc=k,j(k))}).catch(()=>{}),()=>{V=!1})},[q]);const D=b?ig(b):c,v=b?sg(b):null;return i.jsxs("header",{className:"dashboard-topbar",children:[i.jsxs("div",{className:"topbar-left",children:[i.jsx("div",{className:"topbar-home-dot",children:"⌂"}),i.jsx("h2",{children:r})]}),i.jsxs("div",{className:"topbar-right",children:[m,i.jsx(Um,{}),i.jsxs("div",{className:"topbar-profile-wrap",children:[i.jsxs("button",{className:"topbar-profile glass-button",type:"button",children:[v?i.jsx("img",{className:"avatar-img",src:v,alt:D}):i.jsx("div",{className:"avatar",children:D.trim().slice(0,1).toUpperCase()||"A"}),i.jsxs("div",{className:"profile-text",children:[i.jsx("span",{children:D}),i.jsx("small",{children:u})]}),i.jsx("span",{className:"profile-caret",children:"▾"})]}),i.jsxs("div",{className:"topbar-dropdown",children:[i.jsx("button",{className:"dropdown-item",type:"button",children:"Profile"}),i.jsx("button",{className:"dropdown-item",type:"button",children:"Settings"}),i.jsx("button",{className:"dropdown-item",type:"button",children:"Notifications"}),i.jsx("div",{className:"dropdown-divider"}),i.jsx("button",{className:"dropdown-item danger",type:"button",onClick:()=>{o()},children:"Log ud"})]})]})]})]})}class pc{http;constructor(c=lt){this.http=c}getSearchWords(){let c=z.backendApiV2+"1.0.0/client/candidate_search/list_search_words";return this.http.get(c)}getJobs(c,u,o){let m=z.backendApi+"api/1.1.0/jobs/all/"+u+"/"+o;return this.http.post(m,c)}getJobsV2(c,u,o,m){let b=z.backendApiV2+"1.0.0/client/candidate_search/v2/"+c+"/"+u+"/"+o,j=new Fn;return m.length>0&&m.forEach(q=>{j=j.append("terms",q)}),this.http.get(b,{params:j})}getSavedJobs(c,u){let o=z.backendApi+"api/1.1.0/candidate/jobs/saved";return this.http.get(o)}getSavedJobsV2(c,u){let o=z.backendApiV2+"1.0.0/client/job/bookmarked_jobs/"+c+"/"+u;return this.http.get(o)}getAppliedJobs(c,u){let o=z.backendApi+"api/1.1.0/applications/candidate/";return this.http.get(o)}getAppliedJobsV2(c,u){let o=z.backendApiV2+"1.0.0/client/job/applied_jobs/"+c+"/"+u;return this.http.get(o)}payWithStripe(c,u){const o=z.backendApiV2+"1.0.0/client/payment/create-payment-intent",m={paymentMethodId:c,amount:u};return this.http.post(o,m)}bookmarkJob(c){let u=z.backendApi+"api/1.1.0/candidate/jobs/"+c+"/jobnet/updateSavedStatus",o={saved:!0};return this.http.post(u,o)}unbookmarkJob(c){let u=z.backendApi+"api/1.1.0/candidate/jobs/"+c+"/jobnet/updateSavedStatus",o={saved:!1};return this.http.post(u,o)}bookmarkJobV2(c,u,o){let m=z.backendApiV2+"1.0.0/client/job/bookmark/"+c,b={job_type:o,save:u};return this.http.post(m,b)}getJobNetJobDetail(c){let u=z.backendApiV2+"1.0.0/client/job/detail/star/"+c;return this.http.get(u)}getJobDetail(c){let u=z.backendApi+"api/1.1.0/jobs/"+c;return this.http.get(u)}getOccupationCategorizations(){let c=z.backendApiV2+"1.0.0/client/ds_tree";return this.http.get(c)}getJobSummary(c){let u=z.backendApi+"api/1.1.0/jobs/"+c+"/summary";return this.http.get(u)}applyJob(c){let u=z.backendApi+"api/1.1.0/applications/job/"+c,o={jobPostingId:c};return this.http.post(u,o)}undoApplyJob(c){let u=z.backendApi+"api/1.1.0/applications/"+c;return this.http.delete(u)}toggleApplyJobnetjob(c,u){let o=z.backendApiV2+"1.0.0/client/job/detail/star/apply/"+c,m={apply:u};return this.http.put(o,m)}}class Lm{constructor(c=lt){this.http=c}getNotificationSetting(){const c=z.backendApiV2+"2.0.0/client/notification/settings";return this.http.get(c)}createNotificationSetting(c){const u=z.backendApiV2+"2.0.0/client/notification/settings";return this.http.post(u,c)}updateNotificationSetting(c,u){const o=z.backendApiV2+"2.0.0/client/notification/settings/"+c;return this.http.put(o,u)}deleteNotificationSetting(c){const u=z.backendApiV2+"2.0.0/client/notification/settings/"+c;return this.http.delete(u)}getNewNotificationCount(){let c=z.backendApiV2+"1.0.0/client/notification/unseen_notifications";return this.http.get(c)}getNotifications(c,u){let o=z.backendApiV2+"1.0.0/client/notification/"+c+"/"+u;return this.http.get(o)}notificationSeenByUser(c){let u=z.backendApiV2+"1.0.0/client/notification/seen_by_user/"+c,o={};return this.http.put(u,o)}}class Rm{constructor(c=lt,u=Rl){this.http=c,this.localStorage=u}listSimulationPersonalities(){let c=z.backendApiV2+"client/simulation/1.0.0/list_simulation_personalities",u=new Fn().set("language","da");return this.http.get(c,{params:u})}getInterviewEvaluation(c){const u=z.backendApiV2+`client/simulation/1.0.0/interview_evaluation/${c}`;return this.http.get(u)}listInterviews(c=20,u=0){const o=z.backendApiV2+"client/job_simulator/1.0.0/list_interviews",m=new Fn().set("limit",c.toString()).set("offset",u.toString());return this.http.get(o,{params:m})}submitEvaluationRating(c,u,o){const m=z.backendApiV2+"client/simulation/1.0.0/evaluation_rating",b={interview_id:c,rating:u,rating_text:o};return this.http.post(m,b)}submitInterviewRating(c,u,o){const m=z.backendApiV2+"client/simulation/1.0.0/interview_rating",b={interview_id:c,rating:u,rating_text:o};return this.http.post(m,b)}}class gc{constructor(c=lt){this.http=c}getPaymentOverview(){let c=z.backendApiV2+"client/end_user_subscription/1.0.0/payment_overview";return this.http.get(c)}getSubscriptionProducts(){let c=z.backendApiV2+"client/end_user_subscription/1.0.0/get_products";return this.http.get(c)}deactivateAutoRenew(){let c=z.backendApiV2+"client/end_user_subscription/1.0.0/deactivate_auto_renew";return this.http.put(c,{})}activateAutoRenew(){let c=z.backendApiV2+"client/end_user_subscription/1.0.0/activate_auto_renew";return this.http.put(c,{})}redeemCode(c){let u=z.backendApiV2+"client/candidate_redeem_code/v1";return this.http.post(u,{code:c})}}class cg{constructor(c=lt){this.http=c}chatMessageThreads=[];getChatMessages(){let c=z.backendApi+"api/1.1.0/chatMessages/forCandidate/";return this.http.get(c)}sendMessage(c){let u=z.backendApi+"api/1.1.0/chatMessages/"+c.threadId+"/fromCandidate";return this.http.post(u,c)}markThreadRead(c){let u=z.backendApi+"api/1.1.0/chatMessages/markRead/"+c;return this.http.get(u)}}class ug{constructor(c=lt){this.http=c}getUnreadMessages(){let c=z.backendApi+"api/1.1.0/chatMessages/getUnreadCount";return this.http.get(c)}}function oc(r){if(!r)return 0;const u=(r instanceof Date?r:new Date(r)).getTime();return Number.isNaN(u)?0:u}function wr(r,c){const u=r?.timeSent?new Date(r.timeSent):new Date,o=r?.seen?new Date(r.seen):void 0;return{id:r?.id,threadId:r?.threadId??c,timeSent:u,fromCandidate:!!r?.fromCandidate,text:r?.text??"",seen:o}}class Vm{constructor(c=new cg,u=new ug){this.chatMessagesService=c,this.messageService=u}async getThreads(){return(await this.chatMessagesService.getChatMessages()??[]).map(u=>{const o=(u.allMessages??[]).map(b=>wr(b,u.id));o.sort((b,j)=>oc(b.timeSent)-oc(j.timeSent));const m=u.latestMessage?wr(u.latestMessage,u.id):o[o.length-1]??wr(void 0,u.id);return{...u,allMessages:o,latestMessage:m}}).sort((u,o)=>oc(o.latestMessage?.timeSent)-oc(u.latestMessage?.timeSent))}async getUnreadCount(){const c=await this.messageService.getUnreadMessages();return Number(c?.unreadCount??0)}async sendMessage(c,u){const o={threadId:c,text:u.trim(),fromCandidate:!0,timeSent:new Date};return this.chatMessagesService.sendMessage(o)}async markThreadReadByMessageId(c){c&&await this.chatMessagesService.markThreadRead(c)}}function Vi(r){return typeof r=="object"&&r!==null?r:null}function ia(r){return typeof r=="string"?r:""}function rg(r){return typeof r=="number"?r:null}function og(r){const c=Vi(r);if(!c)return null;const o=Vi(c.jobPosting)??c,m=ia(o.id);return m?{id:m,title:ia(o.title),companyName:ia(o.companyName),address:ia(o.address),applicationDeadline:ia(o.applicationDeadline),candidateDistance:rg(o.candidateDistance),fromJobnet:!!o.fromJobnet,logoUrl:ia(o.logoUrl),companyLogoImage:ia(o.companyLogoImage)}:null}function dg(r){const c=Vi(r);return(Array.isArray(c?.interviews)?c.interviews:[]).map(o=>{const m=Vi(o);if(!m)return null;const b=ia(m.id);return b?{id:b,jobName:ia(m.job_name)||"Interview",companyName:ia(m.company_name)||null,interviewDate:ia(m.interview_date)||null,recommendation:ia(m.recommendation)||null,isCompleted:!!m.is_completed}:null}).filter(o=>!!o).sort((o,m)=>{const b=o.interviewDate?new Date(o.interviewDate).getTime():0;return(m.interviewDate?new Date(m.interviewDate).getTime():0)-b}).slice(0,5)}function fg(r){const c=Vi(r);return c?Array.isArray(c.searchList)?c.searchList:[]:[]}class mg{constructor(c=new Bi,u=new Lm,o=new pc,m=new gc,b=new Rm,j=new Vm){this.candidateService=c,this.notificationService=u,this.jobService=o,this.subscriptionService=m,this.simulationService=b,this.messagesViewModel=j}async loadInitialData(){const[c,u,o,m,b,j]=await Promise.allSettled([this.candidateService.getCandidate(),this.notificationService.getNotifications(0,5),this.messagesViewModel.getThreads(),this.loadBestJobs(),this.subscriptionService.getPaymentOverview(),this.simulationService.listInterviews(5,0)]);return{candidate:c.status==="fulfilled"?c.value:null,notifications:u.status==="fulfilled"?u.value.slice(0,5):[],messages:o.status==="fulfilled"?o.value.slice(0,5):[],bestJobs:m.status==="fulfilled"?m.value:[],subscription:b.status==="fulfilled"?b.value:null,evaluations:j.status==="fulfilled"?dg(j.value):[]}}async loadBestJobs(){const c=await this.jobService.getJobsV2(10,0,5,[]);return fg(c).map(o=>og(o)).filter(o=>!!o).slice(0,5)}}const hg={candidate:null,notifications:[],messages:[],bestJobs:[],subscription:null,evaluations:[]};function pg(){const r=h.useMemo(()=>new mg,[]),[c,u]=h.useState(hg),[o,m]=h.useState(!1),[b,j]=h.useState(null),q=h.useCallback(async()=>{m(!0),j(null);try{const D=await r.loadInitialData();u(D)}catch(D){j(D instanceof Error?D.message:"Could not load dashboard data.")}finally{m(!1)}},[r]);return{...c,isLoading:o,error:b,load:q}}function gg(r){if(!r)return"Ingen dato";const c=r instanceof Date?r:new Date(r);return Number.isNaN(c.getTime())?"Ingen dato":c.toLocaleDateString("da-DK",{day:"2-digit",month:"short",year:"numeric"})}function vg(r){return r.trim().slice(0,1).toUpperCase()||"A"}function bg(r){const c={proceed_to_second_interview:"Anbefalet til 2. samtale",consider:"Har potentiale",reject:"Afvist",needs_followup:"Kræver opfølgning",hire:"Stærk kandidat"};return r?c[r]??r:"Afventer evaluering"}const Am=["Tilpas de første 3 linjer i dit CV til stillingsopslaget for højere svarrate.","Skriv en kort motivation med konkrete resultater fra dit seneste job.","Gem interessante jobs med det samme, så du kan sammenligne dem senere.","Hold din profil opdateret med nye certificeringer og erfaringer.","Brug 10 minutter dagligt på at svare hurtigt på nye beskeder.","Prioriter jobs med tydelig rollebeskrivelse og realistisk afstand.","Gennemgå dine seneste evalueringer og anvend ét konkret forbedringspunkt."];function yg({onLogout:r,onNavigate:c,onOpenJob:u}){const[o,m]=h.useState(()=>window.localStorage.getItem("arbejd.sidebar.collapsed")==="1"),{candidate:b,notifications:j,messages:q,bestJobs:D,subscription:v,evaluations:V,isLoading:k,error:H,load:J}=pg(),P=b?.firstName?.trim()||b?.name?.trim()||"Anders",Z=j.length>0?j.length:12,G=h.useMemo(()=>{const B=Math.floor(Date.now()/864e5);return Am[B%Am.length]},[]);return h.useEffect(()=>{J()},[J]),i.jsxs("section",{className:"dashboard-layout",children:[i.jsx(Ya,{collapsed:o,activeKey:"dashboard",onToggle:()=>m(B=>{const fe=!B;return window.localStorage.setItem("arbejd.sidebar.collapsed",fe?"1":"0"),fe}),onSelect:B=>{(B==="dashboard"||B==="cv"||B==="jobs"||B==="beskeder"||B==="ai-jobagent"||B==="ai-agent"||B==="simulator"||B==="abonnement")&&c(B)}}),i.jsxs("main",{className:"dashboard-main",children:[i.jsx(Ja,{title:"Oversigt",userName:P,planLabel:v?.productTypeName||"Jobseeker Pro",onLogout:r}),i.jsxs("div",{className:"dashboard-scroll",children:[H?i.jsx("p",{className:"status error",children:H}):null,i.jsxs("section",{className:"dashboard-hero-grid",children:[i.jsxs("article",{className:"glass-panel dash-card hero dashboard-main-hero",children:[i.jsxs("h3",{children:["Velkommen tilbage, ",P]}),i.jsxs("p",{children:["Din AI Agent har arbejdet i baggrunden. Vi har fundet",i.jsxs("strong",{children:[" ",Z," nye jobs"]}),", der matcher din profil, og optimeret dit CV."]}),i.jsxs("div",{className:"dashboard-hero-status",children:[i.jsx("div",{className:"dashboard-hero-progress",children:i.jsx("span",{style:{width:`${Math.min(100,Math.max(24,Z*8))}%`}})}),i.jsx("small",{children:"AI Agent: Aktiv"})]}),i.jsxs("p",{className:"dashboard-tip",children:["Dagens tip: ",G]}),i.jsx("button",{className:"glass-button hero-cta",type:"button",onClick:()=>c("jobs"),children:"Gå til jobs"})]}),i.jsxs("article",{className:"glass-panel dash-card dashboard-quick-actions-card",children:[i.jsx("h4",{children:"Quick Actions"}),i.jsxs("div",{className:"dashboard-quick-actions-grid",children:[i.jsx("button",{type:"button",className:"primary-btn dashboard-quick-btn",onClick:()=>c("simulator"),children:"Start Interview Simulator"}),i.jsx("button",{type:"button",className:"primary-btn dashboard-quick-btn",onClick:()=>c("beskeder"),children:"Send a message"}),i.jsx("button",{type:"button",className:"primary-btn dashboard-quick-btn",onClick:()=>c("ai-agent"),children:"Set AI Agent"}),i.jsx("button",{type:"button",className:"primary-btn dashboard-quick-btn",onClick:()=>c("abonnement"),children:"Check Abonnement"})]})]})]}),i.jsxs("div",{className:"dashboard-overview-grid",children:[i.jsxs("article",{className:"glass-panel dash-card dashboard-feed-card",children:[i.jsxs("div",{className:"dash-header",children:[i.jsx("h4",{children:"5 nyeste notifikationer"}),i.jsx("span",{className:"dashboard-count-pill",children:j.length})]}),k?i.jsx("p",{children:"Indlæser..."}):null,!k&&j.length===0?i.jsx("p",{children:"Ingen notifikationer endnu."}):null,i.jsx("ul",{className:"dashboard-feed-list",children:j.map(B=>i.jsx("li",{children:i.jsxs("button",{type:"button",className:"dashboard-feed-item",onClick:()=>{const fe=!!B.jobnetPostingId,ae=fe?B.jobnetPostingId:B.jobPostingId;ae&&u(ae,fe)},children:[i.jsx("strong",{children:B.jobTitle||"Jobagent match"}),i.jsx("span",{children:B.companyName||"Ukendt virksomhed"})]})},B.id))})]}),i.jsxs("article",{className:"glass-panel dash-card dashboard-feed-card dashboard-evaluations-card",children:[i.jsxs("div",{className:"dash-header",children:[i.jsx("h4",{children:"Seneste evalueringer"}),i.jsx("span",{className:"dashboard-count-pill",children:V.length})]}),k?i.jsx("p",{children:"Indlæser..."}):null,!k&&V.length===0?i.jsx("p",{children:"Ingen evalueringer endnu."}):null,i.jsx("ul",{className:"dashboard-feed-list",children:V.map(B=>i.jsx("li",{children:i.jsxs("button",{type:"button",className:"dashboard-feed-item",onClick:()=>c("ai-agent"),children:[i.jsx("strong",{children:B.jobName}),i.jsxs("span",{children:[B.companyName||"Ukendt virksomhed"," • ",bg(B.recommendation)]})]})},B.id))})]}),i.jsxs("article",{className:"glass-panel dash-card dashboard-feed-card dashboard-messages-card",children:[i.jsxs("div",{className:"dash-header",children:[i.jsx("h4",{children:"Seneste 5 beskeder"}),i.jsx("button",{className:"primary-btn jobs-apply-btn",type:"button",onClick:()=>c("beskeder"),children:"Åbn"})]}),k?i.jsx("p",{children:"Indlæser..."}):null,!k&&q.length===0?i.jsx("p",{children:"Ingen beskeder endnu."}):null,i.jsx("ul",{className:"dashboard-message-list",children:q.map(B=>i.jsx("li",{children:i.jsxs("button",{type:"button",className:"dashboard-message-item",onClick:()=>c("beskeder"),children:[i.jsx("span",{className:"dashboard-message-avatar",children:(B.companyName||"S").trim().slice(0,1).toUpperCase()}),i.jsxs("span",{className:"dashboard-message-main",children:[i.jsx("strong",{children:B.companyName||"Samtale"}),i.jsx("span",{children:B.latestMessage?.text||"Ingen besked"})]})]})},B.id))})]}),i.jsxs("article",{className:"glass-panel dash-card dashboard-feed-card dashboard-best-card",children:[i.jsxs("div",{className:"dash-header",children:[i.jsx("h4",{children:"Seneste 5 bedste jobs"}),i.jsx("button",{className:"primary-btn jobs-apply-btn",type:"button",onClick:()=>c("jobs"),children:"Alle jobs"})]}),k?i.jsx("p",{children:"Indlæser..."}):null,!k&&D.length===0?i.jsx("p",{children:"Ingen jobforslag endnu."}):null,i.jsx("div",{className:"dashboard-best-list",children:D.map(B=>i.jsxs("button",{type:"button",className:"dashboard-best-item",onClick:()=>u(B.id,B.fromJobnet),children:[i.jsxs("div",{className:"dashboard-best-brand",children:[B.logoUrl||B.companyLogoImage?i.jsx("img",{src:B.logoUrl||B.companyLogoImage,alt:B.companyName,className:"jobs-result-logo-img"}):i.jsx("div",{className:"jobs-result-logo",children:vg(B.companyName)}),i.jsxs("div",{children:[i.jsx("strong",{children:B.title||"Stilling"}),i.jsx("span",{children:B.companyName||"Ukendt virksomhed"})]})]}),i.jsxs("div",{className:"dashboard-best-meta",children:[i.jsx("span",{children:B.candidateDistance!=null?`${B.candidateDistance.toFixed(1)} km`:"Distance ukendt"}),i.jsxs("span",{children:["Frist: ",gg(B.applicationDeadline)]})]})]},B.id))})]})]})]})]})]})}var Cm=Om();class jg{constructor(c=lt){this.http=c}generateApplication(c,u,o,m){let b=z.backendApiV2+"1.0.0/client/ai_handler/create_my_application",j={isStar:c,jobId:u,language:o,userInput:m};return this.http.post(b,j)}listGeneratedJobApplications(c){let u=z.backendApiV2+"1.0.0/client/ai_handler/list_created_job_application/"+c;return this.http.get(u)}listPredefinedUserInput(){let c=z.backendApiV2+"1.0.0/client/ai_handler/list_predefined_user_input";return this.http.get(c)}getJobApplication(c){let u=z.backendApiV2+"1.0.0/client/ai_handler/"+c;return this.http.get(u)}updateMyCvDescriptions(c){let u=z.backendApiV2+"1.0.0/client/ai_handler/update_my_cv_descriptions",o={language:c};return this.http.post(u,o)}updateStatesOnMyCvDescription(c,u,o){let m=z.backendApiV2+"1.0.0/client/ai_handler/update_states_on_my_cv_descriptions/"+c,b={state:u,subState:o};return this.http.put(m,b)}getMyCvDescriptions(){let c=z.backendApiV2+"1.0.0/client/ai_handler/get_my_cv_descriptions";return this.http.get(c)}submitJobApplicationRating(c,u,o){let m=z.backendApiV2+"1.0.0/client/ai_handler/job_application_rating",b={ai_generated_job_application_id:c,rating:u,rating_text:o};return this.http.post(m,b)}startApplicationExamination(c){const u=z.backendApiV2+"1.0.0/client/ai_handler/create_application_examination",o={ai_generated_job_application_id:c};return this.http.post(u,o)}getApplicationExamination(c){const u=z.backendApiV2+"1.0.0/client/ai_handler/application_examination/"+encodeURIComponent(c);return this.http.get(u)}getApplicationExaminationByJobApplicationId(c){const u=z.backendApiV2+"1.0.0/client/ai_handler/application_examination_by_job_application/"+c;return this.http.get(u)}}class Sg{constructor(c=lt){this.http=c}searchForCertification(c){let u=encodeURIComponent(c),o=z.backendApiV2+`1.0.0/client/certificate?search_text=${u}`;return this.http.get(o)}saveCertification(c){let u=z.backendApiV2+"1.0.0/client/candidate_certificate",o={qualification_id:c};return this.http.post(u,o)}updateCertification(c){let u=z.backendApiV2+"1.0.0/client/candidate_certificate/"+c.id,o=c;return this.http.put(u,o)}removeCertification(c){let u=z.backendApiV2+"1.0.0/client/candidate_certificate/"+c;return this.http.delete(u)}addUnknownCertificate(c){let u=z.backendApiV2+"1.0.0/client/certificate",o={certificate_name:c};return this.http.post(u,o)}}class xg{constructor(c=lt){this.http=c}sendMyCvToEmail(){let c=z.backendApi+"api/1.1.0/candidate/sendPdf",u={};return this.http.post(c,u)}getMyCv(){let c=z.backendApiV2+"1.0.0/client/candidate/pdf";return this.http.get(c,{responseType:"blob"})}getMyCvV2(c){let u=z.backendApiV2+"1.0.0/client/candidate/pdf_url?language="+c;return this.http.get(u)}generateCv(c){let u=z.backendApiV2+"1.0.0/client/candidate/generateCv",o={language:c};return this.http.post(u,o)}}class Ng{constructor(c=lt,u=Rl){this.http=c,this.localStorageService=u}uploadCv(c,u){const o=z.backendApiV2+"1.0.0/client/cv_upload";return this.http.post(o,c,{headers:{Authorization:`Bearer ${u}`}})}getCvUploadData(){let c=z.backendApiV2+"1.0.0/client/cv_upload/get_upload_cv";return this.http.get(c)}setProfileTextToDone(c){let u=z.backendApiV2+"1.0.0/client/cv_upload/profile_text_is_done/"+c,o={};return this.http.put(u,o)}setExperienceToDone(c){let u=z.backendApiV2+"1.0.0/client/cv_upload/experience_is_done/"+c,o={};return this.http.put(u,o)}setEducationToDone(c){let u=z.backendApiV2+"1.0.0/client/cv_upload/education_is_done/"+c,o={};return this.http.put(u,o)}setQualificationToDone(c){let u=z.backendApiV2+"1.0.0/client/cv_upload/qualification_is_done/"+c,o={};return this.http.put(u,o)}setCertificateToDone(c){let u=z.backendApiV2+"1.0.0/client/cv_upload/certificate_is_done/"+c,o={};return this.http.put(u,o)}setLanguageToDone(c){let u=z.backendApiV2+"1.0.0/client/cv_upload/language_is_done/"+c,o={};return this.http.put(u,o)}setDriversLicenseToDone(c){let u=z.backendApiV2+"1.0.0/client/cv_upload/drivers_license_is_done/"+c,o={};return this.http.put(u,o)}setCvUploadToDone(c){let u=z.backendApiV2+"1.0.0/client/cv_upload/cv_is_done/"+c,o={};return this.http.put(u,o)}}class Ag{constructor(c=lt){this.http=c}getAllDriverLicenses(){let c=z.backendApi+"api/1.1.0/driversLicenses";return this.http.get(c)}updateDriverLicense(c,u){let o=z.backendApi+"api/1.1.0/candidate/driversLicense/"+c,m={};return this.http.put(o,m)}removeLanguage(c){let u=z.backendApiV2+"1.0.0/client/candidate_drivers_license/"+c;return this.http.delete(u)}saveDriverLicense(c,u){let o=z.backendApiV2+"1.0.0/client/candidate_drivers_license",m={level:u,drivers_license_id:c.id};return this.http.post(o,m)}saveDriverLicenseV2(c,u){let o=z.backendApiV2+"1.0.0/client/candidate_drivers_license",m={level:c,drivers_license_id:u};return this.http.post(o,m)}}class Cg{constructor(c=lt){this.http=c}searchForEducations(c){let u=z.backendApi+"api/1.1.0/educations/search/"+c;return this.http.get(u)}searchForSchools(c){let u=z.backendApi+"api/1.1.0/institutions/search/"+c;return this.http.get(u)}saveEducation(c,u){let o=z.backendApiV2+"1.0.0/client/candidate_education",m={comments:c.comments,education_disced_15:c.education.disced15,from_date:c.fromDate,to_date:c.toDate,institution_number:c.institution?.instNumber,is_current:c.isCurrent,language:u};return this.http.post(o,m)}removeEducation(c){let u=z.backendApiV2+"1.0.0/client/candidate_education/"+c;return this.http.delete(u)}updateEducation(c,u,o){let m=z.backendApiV2+"1.0.0/client/candidate_education/"+c,b={comments:u.comments,from_date:u.fromDate,to_date:u.toDate,is_current:u.isCurrent,language:o};return this.http.put(m,b)}getEducationOccupationSuggestions(c){let u=z.backendApi+"api/1.1.0/educations/suggestions/occupation/"+c;return this.http.get(u)}saveUnknownEducation(c){let u=z.backendApiV2+"1.0.0/client/education/save_unknown_education",o={education_name:c};return this.http.post(u,o)}saveEducationV2(c,u){let o=z.backendApiV2+"1.0.0/client/candidate_education",m={comments:c.comments,education_disced_15:c.education_disced_15,from_date:c.from_date,to_date:c.to_date,institution_number:c.institution_number,is_current:c.is_current,language:u};return this.http.post(o,m)}}class Eg{constructor(c=lt){this.http=c}getAllLanguages(){let c=z.backendApi+"api/1.1.0/languages";return this.http.get(c)}saveLanguage(c,u){let o=z.backendApiV2+"1.0.0/client/candidate_language",m={language_id:u.id,level:c};return this.http.post(o,m)}updateLanguage(c,u,o){let m=z.backendApiV2+"1.0.0/client/candidate_language/"+c,b={level:u};return this.http.put(m,b)}removeLanguage(c){let u=z.backendApiV2+"1.0.0/client/candidate_language/"+c;return this.http.delete(u)}saveLanguageV2(c,u){let o=z.backendApiV2+"1.0.0/client/candidate_language",m={language_id:u,level:c};return this.http.post(o,m)}}class Tg{constructor(c=lt){this.http=c}searchForQualification(c){let u=z.backendApi+"api/1.1.0/qualifications/type/3/search/"+c;return this.http.get(u)}updateQualification(c,u){let o=z.backendApiV2+"1.0.0/client/candidate_qualification/"+c,m={level:u};return this.http.put(o,m)}saveQualification(c){let u=z.backendApiV2+"1.0.0/client/candidate_qualification",o={level:c.level,qualification_id:c.qualification.id};return this.http.post(u,o)}removeQualification(c){let u=z.backendApiV2+"1.0.0/client/candidate_qualification/"+c;return this.http.delete(u)}getQualificationsOccupationSuggestions(c,u){let o=z.backendApi+"api/1.1.0/qualifications/type/"+u+"/suggestions/occupation/"+c;return this.http.get(o)}addUnknownQualification(c){let u=z.backendApi+"api/1.1.0/qualifications/type/3/fromCandidate",o={name:c,type:3};return this.http.post(u,o)}saveQualificationV2(c){let u=z.backendApiV2+"1.0.0/client/candidate_qualification",o={level:c.level,qualification_id:c.qualification_id};return this.http.post(u,o)}}class Bm{constructor(c=lt){this.http=c}listEscoByParent(c){let u=z.backendApiV2+"1.0.0/client/esco";return c&&(u+="/"+c),this.http.get(u)}listAllEscos(){let c=z.backendApiV2+"1.0.0/client/esco";return this.http.get(c)}}class wg{constructor(c=lt){this.http=c}addUnknownOccupation(c){let u=z.backendApi+"api/1.1.0/occupations/fromCandidate",o={name:c};return this.http.post(u,o)}}class Dg{constructor(c=lt){this.http=c}saveUnknownInstitution(c){let u=z.backendApiV2+"1.0.0/client/institution/save_unknown_institution",o={institution_name:c};return this.http.post(u,o)}}class _g{constructor(c=new Bi,u=new xg,o=new Ng,m=new gc,b=new jg,j=new Cg,q=new Tg,D=new Sg,v=new Eg,V=new Ag,k=new Bm,H=new wg,J=new Dg,P=Rl){this.candidateService=c,this.cvService=u,this.cvUploadService=o,this.subscriptionService=m,this.aiHandlerService=b,this.educationService=j,this.qualificationService=q,this.certificationService=D,this.languageService=v,this.driverLicenseService=V,this.escoService=k,this.occupationService=H,this.institutionService=J,this.localStorageService=P}escosCache=null;async getSnapshot(){const[c,u,o,m,b,j,q,D,v,V]=await Promise.allSettled([this.candidateService.getCandidate(),this.candidateService.getCandidatesExperiences(),this.candidateService.getCandidatesEducations(),this.candidateService.getCandidatesQualifications(),this.candidateService.getCandidatesCertifications(),this.candidateService.getCandidatesLanguages(),this.candidateService.getCandidatesDriverLicenses(),this.subscriptionService.getPaymentOverview(),this.cvUploadService.getCvUploadData(),this.aiHandlerService.getMyCvDescriptions()]);return{candidate:c.status==="fulfilled"?c.value:null,experiences:u.status==="fulfilled"?u.value:[],educations:o.status==="fulfilled"?o.value:[],skills:m.status==="fulfilled"?m.value:[],certifications:b.status==="fulfilled"?b.value:[],languages:j.status==="fulfilled"?j.value:[],driverLicenses:q.status==="fulfilled"?q.value:[],paymentOverview:D.status==="fulfilled"?D.value:null,cvUploadData:v.status==="fulfilled"?v.value:null,aiGeneratedCVDescription:V.status==="fulfilled"&&V.value?.id?V.value:null}}async setActiveSeeker(c,u,o){const m={...c,isActive:u};return this.candidateService.updateCandidate(m,o)}async updateCandidate(c,u){return this.candidateService.updateCandidate(c,u)}async generateCv(c){await this.cvService.generateCv(c)}async getCvDownloadUrl(c){return(await this.cvService.getMyCvV2(c)).url}async uploadCv(c,u){const o=await this.localStorageService.getAuthToken();if(!o)throw new Error("No auth token found.");await this.cvUploadService.uploadCv({base_64_cv_file:c,cv_file_type:u},o)}async optimizeCv(c){await this.aiHandlerService.updateMyCvDescriptions(c)}async updateExperience(c,u){await this.candidateService.updateExperience(c,u)}async updateEducation(c,u){const o={comments:c.comments,education:c.education,institution:c.institution,fromDate:new Date(c.fromDate),toDate:new Date(c.toDate),isCurrent:c.isCurrent};await this.educationService.updateEducation(c.id,o,u)}async updateCertification(c){await this.certificationService.updateCertification(c)}async updateLanguage(c){const u={id:c.language.id,isO639:c.language.isO639,name:c.language.name,ownName:c.language.ownName,priority:c.language.priority};await this.languageService.updateLanguage(c.id,c.level,u)}async removeExperience(c){await this.candidateService.removeExperience(c)}async removeEducation(c){await this.educationService.removeEducation(c)}async removeQualification(c){await this.qualificationService.removeQualification(c)}async removeCertification(c){await this.certificationService.removeCertification(c)}async removeLanguage(c){await this.languageService.removeLanguage(c)}async removeDriverLicense(c){await this.driverLicenseService.removeLanguage(c)}async getEscoSuggestions(c,u=25){this.escosCache||(this.escosCache=await this.escoService.listAllEscos());const o=c.trim().toLowerCase();return o?this.escosCache.filter(m=>m.preferedLabelDa.toLowerCase().includes(o)).slice(0,u):this.escosCache.slice(0,u)}async getLanguageOptions(){return(await this.languageService.getAllLanguages()).allLanguages??[]}async getDriverLicenseOptions(){return this.driverLicenseService.getAllDriverLicenses()}async createExperience(c,u){let o=c.escoId??null;if(!o&&c.occupationName?.trim()&&(o=(await this.occupationService.addUnknownOccupation(c.occupationName.trim())).id),!o)throw new Error("Vælg eller opret en stilling først.");await this.candidateService.saveExperienceV2({companyName:c.companyName,comments:c.comments,fromDate:c.fromDate,toDate:c.toDate,isCurrent:c.isCurrent,escoId:o},u)}async createEducation(c,u){let o=c.educationDisced15??null;if(!o&&c.educationName?.trim()&&(o=(await this.educationService.saveUnknownEducation(c.educationName)).disced15),!o)throw new Error("Vælg eller opret en uddannelse først.");let m=c.institutionNumber;!m&&c.institutionName?.trim()&&(m=(await this.institutionService.saveUnknownInstitution(c.institutionName.trim())).inst_number),await this.educationService.saveEducationV2({comments:c.comments,institution_number:m,from_date:c.fromDate,to_date:c.toDate,education_disced_15:o,is_current:c.isCurrent},u)}async createCertification(c){let u=c.certificateId??null;if(!u&&c.certificateName?.trim()&&(u=(await this.certificationService.addUnknownCertificate(c.certificateName.trim())).certificate_id),!u)throw new Error("Vælg eller opret et certifikat først.");await this.certificationService.saveCertification(u)}async createLanguage(c,u){await this.languageService.saveLanguageV2(u,c)}async getQualificationSuggestions(c){const u=c.trim();return u?this.qualificationService.searchForQualification(u):[]}async createQualification(c){let u=c.qualificationId?.trim()||"";if(!u&&c.qualificationName?.trim()&&(u=(await this.qualificationService.addUnknownQualification(c.qualificationName.trim())).id),!u)throw new Error("Vælg eller opret en kvalifikation først.");await this.qualificationService.saveQualificationV2({qualification_id:u,level:c.level})}async getEducationSuggestions(c){const u=c.trim();return u?this.educationService.searchForEducations(u):[]}async getSchoolSuggestions(c){const u=c.trim();return u?this.educationService.searchForSchools(u):[]}async getCertificationSuggestions(c){const u=c.trim();return u?this.certificationService.searchForCertification(u):[]}async createDriverLicense(c,u){await this.driverLicenseService.saveDriverLicenseV2(u,c)}}function kg(){const r=h.useMemo(()=>new _g,[]),[c,u]=h.useState(null),[o,m]=h.useState([]),[b,j]=h.useState([]),[q,D]=h.useState([]),[v,V]=h.useState([]),[k,H]=h.useState([]),[J,P]=h.useState([]),[Z,G]=h.useState(null),[B,fe]=h.useState(null),[ae,Q]=h.useState(null),[ye,pe]=h.useState([]),[le,Ve]=h.useState([]),[ee,je]=h.useState([]),[Se,de]=h.useState([]),[ve,Ee]=h.useState([]),[F,C]=h.useState([]),[X,te]=h.useState([]),[Ae,Ne]=h.useState(!1),[g,O]=h.useState({generate:!1,download:!1,upload:!1,optimize:!1,"toggle-active":!1,"update-profile":!1,"remove-entry":!1,"update-entry":!1,"create-entry":!1}),[K,W]=h.useState(null),[re,se]=h.useState(null),I=h.useCallback(async()=>{Ne(!0),W(null);try{const $=await r.getSnapshot();u($.candidate),m($.experiences),j($.educations),D($.skills),V($.certifications),H($.languages),P($.driverLicenses),G($.paymentOverview),fe($.cvUploadData),Q($.aiGeneratedCVDescription)}catch($){W($ instanceof Error?$.message:"Could not load CV data.")}finally{Ne(!1)}},[r]);async function ge($,we){O(At=>({...At,[$]:!0})),W(null),se(null);try{return await we()}catch(At){throw W(At instanceof Error?At.message:"An action failed."),At}finally{O(At=>({...At,[$]:!1}))}}const Be=h.useCallback(async($,we)=>{c&&await ge("toggle-active",async()=>{const At=await r.setActiveSeeker(c,$,we);u(At)})},[c,r]),Dt=h.useCallback(async $=>{await ge("generate",async()=>{await r.generateCv($),se("CV-generering er startet."),await I()})},[I,r]),_t=h.useCallback(async $=>{await ge("download",async()=>{const we=await r.getCvDownloadUrl($);window.open(we,"_blank","noopener,noreferrer")})},[r]),Et=h.useCallback(async($,we)=>{await ge("upload",async()=>{await r.uploadCv($,we),se("CV er uploadet og behandles nu."),await I()})},[I,r]),L=h.useCallback(async $=>{await ge("optimize",async()=>{await r.optimizeCv($),se("CV-optimering er sat i gang."),await I()})},[I,r]),me=h.useCallback(async($,we)=>{await ge("update-profile",async()=>{const At=await r.updateCandidate($,we);u(At),se("Profiloplysninger er opdateret.")})},[r]),x=h.useCallback(async($,we)=>{await ge("update-entry",async()=>{await r.updateExperience($,we),await I()})},[I,r]),Y=h.useCallback(async($,we)=>{await ge("update-entry",async()=>{await r.updateEducation($,we),await I()})},[I,r]),ue=h.useCallback(async $=>{await ge("update-entry",async()=>{await r.updateCertification($),await I()})},[I,r]),be=h.useCallback(async $=>{await ge("update-entry",async()=>{await r.updateLanguage($),await I()})},[I,r]),De=h.useCallback(async $=>{await ge("remove-entry",async()=>{await r.removeExperience($),await I()})},[I,r]),Ie=h.useCallback(async $=>{await ge("remove-entry",async()=>{await r.removeEducation($),await I()})},[I,r]),gt=h.useCallback(async $=>{await ge("remove-entry",async()=>{await r.removeQualification($),await I()})},[I,r]),kt=h.useCallback(async $=>{await ge("remove-entry",async()=>{await r.removeCertification($),await I()})},[I,r]),Ye=h.useCallback(async $=>{await ge("remove-entry",async()=>{await r.removeLanguage($),await I()})},[I,r]),$e=h.useCallback(async $=>{await ge("remove-entry",async()=>{await r.removeDriverLicense($),await I()})},[I,r]),sa=h.useCallback(async $=>{try{const we=await r.getEscoSuggestions($);je(we)}catch{je([])}},[r]),zt=h.useCallback(async $=>{try{const we=await r.getQualificationSuggestions($);de(we)}catch{de([])}},[r]),An=h.useCallback(async $=>{try{const we=await r.getEducationSuggestions($);Ee(we)}catch{Ee([])}},[r]),Aa=h.useCallback(async $=>{try{const we=await r.getSchoolSuggestions($);C(we)}catch{C([])}},[r]),In=h.useCallback(async $=>{try{const we=await r.getCertificationSuggestions($);te(we)}catch{te([])}},[r]),Qa=h.useCallback(async()=>{try{const[$,we]=await Promise.all([r.getLanguageOptions(),r.getDriverLicenseOptions()]);pe($),Ve(we)}catch{pe([]),Ve([])}},[r]),$n=h.useCallback(async($,we)=>{await ge("create-entry",async()=>{await r.createExperience($,we),se("Erfaring er tilføjet."),await I()})},[I,r]),Cn=h.useCallback(async($,we)=>{await ge("create-entry",async()=>{await r.createEducation($,we),se("Uddannelse er tilføjet."),await I()})},[I,r]),ha=h.useCallback(async $=>{await ge("create-entry",async()=>{await r.createCertification($),se("Certifikat er tilføjet."),await I()})},[I,r]),vt=h.useCallback(async($,we)=>{await ge("create-entry",async()=>{await r.createLanguage($,we),se("Sprog er tilføjet."),await I()})},[I,r]),qt=h.useCallback(async $=>{await ge("create-entry",async()=>{await r.createQualification($),se("Kvalifikation er tilføjet."),await I()})},[I,r]),ht=h.useCallback(async($,we)=>{await ge("create-entry",async()=>{await r.createDriverLicense($,we),se("Kørekort er tilføjet."),await I()})},[I,r]);return{candidate:c,experiences:o,educations:b,skills:q,certifications:v,languages:k,driverLicenses:J,paymentOverview:Z,cvUploadData:B,aiGeneratedCVDescription:ae,languageOptions:ye,driverLicenseOptions:le,escoSuggestions:ee,qualificationSuggestions:Se,educationSuggestions:ve,schoolSuggestions:F,certificationSuggestions:X,isLoading:Ae,actionLoading:g,error:K,info:re,load:I,setActiveSeeker:Be,updateCandidate:me,updateExperience:x,updateEducation:Y,updateCertification:ue,updateLanguage:be,generateCv:Dt,downloadCv:_t,uploadCv:Et,optimizeCv:L,removeExperience:De,removeEducation:Ie,removeQualification:gt,removeCertification:kt,removeLanguage:Ye,removeDriverLicense:$e,searchEscoSuggestions:sa,searchQualificationSuggestions:zt,searchEducationSuggestions:An,searchSchoolSuggestions:Aa,searchCertificationSuggestions:In,loadCreateOptions:Qa,createExperience:$n,createEducation:Cn,createCertification:ha,createLanguage:vt,createQualification:qt,createDriverLicense:ht}}const zg=[{shortCode:"da",name:"Dansk"},{shortCode:"en",name:"English"}];function dc(r){if(!r)return"Nu";const c=r instanceof Date?r:new Date(r);return Number.isNaN(c.getTime())?"Nu":c.toLocaleDateString("da-DK",{month:"short",year:"numeric"})}function Mg(r){if(!r)return"Ikke angivet";const c=r instanceof Date?r:new Date(r);return Number.isNaN(c.getTime())?"Ikke angivet":c.toLocaleDateString("da-DK",{day:"2-digit",month:"2-digit",year:"numeric"})}function Og(r){return/<[^>]+>/.test(r)}function Ug(r){const c=(r??"").trim();return c?c.split(" ")[0]??c:"dig"}function Lg(r){return r?"Ja":"Nej"}function Rg(r){if(!r)return"Adresse ikke angivet";const c=`${r.road??""} ${r.houseNum??""}`.trim(),u=r.additionalCityName||r.zipName||"",o=`${r.zip??""} ${u}`.trim();return[c,o].filter(Boolean).join(", ")||"Adresse ikke angivet"}function Vg(r,c){const u=(r??"").trim().slice(0,1),o=(c??"").trim().slice(0,1);return`${u}${o}`.toUpperCase()||"AR"}function Bg({onLogout:r,onNavigate:c}){const[u,o]=h.useState(()=>window.localStorage.getItem("arbejd.sidebar.collapsed")==="1"),[m,b]=h.useState("da"),[j,q]=h.useState(!1),[D,v]=h.useState(""),[V,k]=h.useState(""),[H,J]=h.useState(null),[P,Z]=h.useState(!1),[G,B]=h.useState(null),[fe,ae]=h.useState(""),[Q,ye]=h.useState(""),[pe,le]=h.useState(""),[Ve,ee]=h.useState(""),[je,Se]=h.useState(""),[de,ve]=h.useState(""),[Ee,F]=h.useState(""),[C,X]=h.useState(null),[te,Ae]=h.useState(""),[Ne,g]=h.useState(null),[O,K]=h.useState(""),[W,re]=h.useState(""),[se,I]=h.useState(""),[ge,Be]=h.useState(""),[Dt,_t]=h.useState(""),[Et,L]=h.useState(""),[me,x]=h.useState(3),[Y,ue]=h.useState(""),[be,De]=h.useState(""),[Ie,gt]=h.useState(3),[kt,Ye]=h.useState(""),[$e,sa]=h.useState(3),[zt,An]=h.useState(""),[Aa,In]=h.useState(""),[Qa,$n]=h.useState(""),[Cn,ha]=h.useState(""),[vt,qt]=h.useState(""),[ht,$]=h.useState(""),[we,At]=h.useState(""),[En,Tn]=h.useState(1),[wn,pa]=h.useState(1),Dn=h.useRef(null),Xa=h.useRef(null),Hi=h.useRef(null),Vl=h.useRef(null),_n=h.useRef({}),ga=h.useRef(null),[Bl,Hl]=h.useState(null),[Wn,ql]=h.useState(null),{candidate:Oe,experiences:va,educations:Ca,skills:kn,certifications:Mt,languages:et,driverLicenses:bt,paymentOverview:Za,cvUploadData:Gl,aiGeneratedCVDescription:vc,isLoading:qi,actionLoading:Ze,error:Ka,info:Pn,load:Ea,setActiveSeeker:Fa,updateCandidate:zn,updateExperience:Ia,updateEducation:ct,updateCertification:Gi,updateLanguage:Yi,generateCv:Ta,downloadCv:$a,uploadCv:bc,optimizeCv:Ji,removeExperience:Qi,removeEducation:yc,removeCertification:el,removeLanguage:tl,searchEscoSuggestions:Gt,loadCreateOptions:Tt,createExperience:Xi,createEducation:jc,createCertification:Yl,createLanguage:Zi,createQualification:al,createDriverLicense:Sc,languageOptions:Ot,driverLicenseOptions:Jl,escoSuggestions:Ki,qualificationSuggestions:Ql,searchQualificationSuggestions:ba,searchEducationSuggestions:nl,searchSchoolSuggestions:ll,searchCertificationSuggestions:ya,educationSuggestions:xc,schoolSuggestions:Fi,certificationSuggestions:Ii}=kg();h.useEffect(()=>{Ea(),Tt()},[Ea,Tt]);const Xl=h.useMemo(()=>Oe?.cvs?.find(T=>T.language===m),[Oe?.cvs,m]),il=!!Za?.productType,Nc=!!Xl?.generatedCv;function Wa(T,w){return`${T}:${w}`}h.useEffect(()=>{v(Oe?.phoneNumber??""),k(Oe?.personalDescription??"")},[Oe?.phoneNumber,Oe?.personalDescription]);async function ca(T){const w=T.target.files?.[0];if(!w||!["application/pdf","application/vnd.openxmlformats-officedocument.wordprocessingml.document"].includes(w.type))return;const Ke=w.type==="application/pdf"?"pdf":"docx",ut=new FileReader;ut.onload=async()=>{const ra=String(ut.result??""),oa=ra.includes(",")?ra.split(",")[1]:ra;oa&&await bc(oa,Ke)},ut.readAsDataURL(w),T.target.value=""}async function Zl(){Oe&&(await zn({...Oe,phoneNumber:D.trim(),personalDescription:V},m),q(!1))}function Pa(T,w){if(J({type:T,id:w}),T==="experience"){const ce=va.find(Ke=>Ke.id===w);An(ce?.companyName??""),In(ce?.comments??""),$n(ce?.fromDate?new Date(ce.fromDate).toISOString().slice(0,10):""),ha(ce?.toDate?new Date(ce.toDate).toISOString().slice(0,10):"")}if(T==="education"){const ce=Ca.find(Ke=>Ke.id===w);qt(ce?.comments??""),$(ce?.fromDate?new Date(ce.fromDate).toISOString().slice(0,10):""),At(ce?.toDate?new Date(ce.toDate).toISOString().slice(0,10):"")}if(T==="certification"){const ce=Mt.find(Ke=>Ke.id===w);Tn(ce?.level??1)}if(T==="language"){const ce=et.find(Ke=>Ke.id===w);pa(ce?.level??1)}}function ua(T,w,ce){_n.current[Wa(T,w)]=ce}h.useEffect(()=>{if(!H){Hl(null);return}const T=()=>{const w=_n.current[Wa(H.type,H.id)];if(!w)return;const ce=w.getBoundingClientRect(),Ke=320,ut=10,ra=Math.max(ut,Math.min(ce.right-Ke,window.innerWidth-Ke-ut)),oa=Math.min(ce.bottom+8,window.innerHeight-20);Hl({top:oa,left:ra})};return T(),window.addEventListener("resize",T),window.addEventListener("scroll",T,!0),()=>{window.removeEventListener("resize",T),window.removeEventListener("scroll",T,!0)}},[H]),h.useEffect(()=>{if(!G){ql(null);return}const T=()=>{const w=ga.current;if(!w)return;const ce=w.getBoundingClientRect(),Ke=350,ut=10,ra=Math.max(ut,Math.min(ce.right-Ke,window.innerWidth-Ke-ut)),oa=Math.min(ce.bottom+8,window.innerHeight-20);ql({top:oa,left:ra})};return T(),window.addEventListener("resize",T),window.addEventListener("scroll",T,!0),()=>{window.removeEventListener("resize",T),window.removeEventListener("scroll",T,!0)}},[G]),h.useEffect(()=>{if(!H)return;const T=ce=>{const Ke=ce.target,ut=_n.current[Wa(H.type,H.id)];Xa.current?.contains(Ke)||ut?.contains(Ke)||J(null)},w=ce=>{ce.key==="Escape"&&J(null)};return document.addEventListener("mousedown",T),document.addEventListener("keydown",w),()=>{document.removeEventListener("mousedown",T),document.removeEventListener("keydown",w)}},[H]),h.useEffect(()=>{if(!G)return;const T=ce=>{const Ke=ce.target;Hi.current?.contains(Ke)||ga.current?.contains(Ke)||B(null)},w=ce=>{ce.key==="Escape"&&B(null)};return document.addEventListener("mousedown",T),document.addEventListener("keydown",w),()=>{document.removeEventListener("mousedown",T),document.removeEventListener("keydown",w)}},[G]),h.useEffect(()=>{if(!P)return;const T=w=>{const ce=w.target;Vl.current?.contains(ce)||ga.current?.contains(ce)||Z(!1)};return document.addEventListener("mousedown",T),()=>{document.removeEventListener("mousedown",T)}},[P]),h.useEffect(()=>{if(!Q.trim()){Gt("");return}Gt(Q)},[Q,Gt]),h.useEffect(()=>{if(!Y.trim()){ba("");return}ba(Y)},[Y,ba]),h.useEffect(()=>{if(!Ee.trim()){nl("");return}nl(Ee)},[Ee,nl]),h.useEffect(()=>{if(!te.trim()){ll("");return}ll(te)},[te,ll]),h.useEffect(()=>{if(!ge.trim()){ya("");return}ya(ge)},[ge,ya]);async function It(){if(H){if(H.type==="experience"){const T=va.find(w=>w.id===H.id);if(T){const w={...T,companyName:zt,comments:Aa,fromDate:Qa?new Date(Qa):T.fromDate,toDate:Cn?new Date(Cn):T.toDate};await Ia(w,m)}}if(H.type==="education"){const T=Ca.find(w=>w.id===H.id);if(T){const w={...T,comments:vt,fromDate:ht?new Date(ht):T.fromDate,toDate:we?new Date(we):T.toDate};await ct(w,m)}}if(H.type==="certification"){const T=Mt.find(w=>w.id===H.id);if(T){const w={...T,level:En};await Gi(w)}}if(H.type==="language"){const T=et.find(w=>w.id===H.id);if(T){const w={...T,level:wn};await Yi(w)}}J(null)}}async function $i(){if(G){if(G==="experience"){const T=Number(fe);if((!Number.isFinite(T)||T<=0)&&!Q.trim())return;await Xi({companyName:pe.trim(),comments:Ve.trim(),fromDate:je?new Date(je):null,toDate:de?new Date(de):null,isCurrent:!de,escoId:Number.isFinite(T)&&T>0?T:null,occupationName:Q.trim()||void 0},m)}if(G==="education"){if(!Ee.trim())return;await jc({educationName:Ee.trim()||void 0,educationDisced15:C,institutionName:te.trim()||void 0,institutionNumber:Ne,comments:O.trim(),fromDate:W?new Date(W):null,toDate:se?new Date(se):null,isCurrent:!se},m)}if(G==="certification"){if(!ge.trim())return;await Yl({certificateId:Dt||void 0,certificateName:ge.trim()})}if(G==="language"){if(!Et)return;await Zi(Et,me)}if(G==="qualification"){if(!be&&!Y.trim())return;await al({qualificationId:be||void 0,qualificationName:Y.trim(),level:Ie})}if(G==="driverLicense"){if(!kt)return;await Sc(kt,$e)}B(null),ye(""),ae(""),le(""),ee(""),Se(""),ve(""),F(""),X(null),Ae(""),g(null),K(""),re(""),I(""),Be(""),_t(""),L(""),x(3),ue(""),De(""),gt(3),Ye(""),sa(3)}}function Kl(){if(!H||!Bl||typeof document>"u")return null;const T=i.jsxs("div",{className:"cv-popover-actions",children:[i.jsx("button",{type:"button",onClick:()=>J(null),children:"Luk"}),i.jsx("button",{type:"button",onClick:()=>{It()},disabled:Ze["update-entry"],children:Ze["update-entry"]?"Gemmer...":"Gem"})]});let w=null;return H.type==="experience"&&(w=i.jsxs(i.Fragment,{children:[i.jsxs("label",{className:"cv-popover-field",children:[i.jsx("span",{children:"Virksomhed"}),i.jsx("input",{className:"field-input cv-inline-input",value:zt,onChange:ce=>An(ce.target.value)})]}),i.jsxs("label",{className:"cv-popover-field",children:[i.jsx("span",{children:"Fra dato"}),i.jsx("input",{type:"date",className:"field-input cv-inline-input",value:Qa,onChange:ce=>$n(ce.target.value)})]}),i.jsxs("label",{className:"cv-popover-field",children:[i.jsx("span",{children:"Til dato"}),i.jsx("input",{type:"date",className:"field-input cv-inline-input",value:Cn,onChange:ce=>ha(ce.target.value)})]}),i.jsxs("label",{className:"cv-popover-field",children:[i.jsx("span",{children:"Beskrivelse"}),i.jsx("textarea",{className:"field-input cv-profile-textarea",value:Aa,onChange:ce=>In(ce.target.value),rows:3})]}),i.jsxs("div",{className:"cv-popover-actions",children:[i.jsx("button",{type:"button",onClick:()=>J(null),children:"Luk"}),i.jsx("button",{type:"button",onClick:()=>{It()},disabled:Ze["update-entry"],children:Ze["update-entry"]?"Gemmer...":"Gem"}),i.jsx("button",{type:"button",className:"danger",onClick:()=>{Qi(H.id),J(null)},children:"Slet"})]})]})),H.type==="education"&&(w=i.jsxs(i.Fragment,{children:[i.jsxs("label",{className:"cv-popover-field",children:[i.jsx("span",{children:"Fra dato"}),i.jsx("input",{type:"date",className:"field-input cv-inline-input",value:ht,onChange:ce=>$(ce.target.value)})]}),i.jsxs("label",{className:"cv-popover-field",children:[i.jsx("span",{children:"Til dato"}),i.jsx("input",{type:"date",className:"field-input cv-inline-input",value:we,onChange:ce=>At(ce.target.value)})]}),i.jsxs("label",{className:"cv-popover-field",children:[i.jsx("span",{children:"Beskrivelse"}),i.jsx("textarea",{className:"field-input cv-profile-textarea",value:vt,onChange:ce=>qt(ce.target.value),rows:3})]}),i.jsxs("div",{className:"cv-popover-actions",children:[i.jsx("button",{type:"button",onClick:()=>J(null),children:"Luk"}),i.jsx("button",{type:"button",onClick:()=>{It()},disabled:Ze["update-entry"],children:Ze["update-entry"]?"Gemmer...":"Gem"}),i.jsx("button",{type:"button",className:"danger",onClick:()=>{yc(H.id),J(null)},children:"Slet"})]})]})),H.type==="certification"&&(w=i.jsxs(i.Fragment,{children:[i.jsxs("label",{className:"cv-popover-field",children:[i.jsx("span",{children:"Niveau (1-5)"}),i.jsx("input",{type:"number",min:1,max:5,className:"field-input cv-inline-input",value:En,onChange:ce=>Tn(Number(ce.target.value))})]}),i.jsxs("div",{className:"cv-popover-actions",children:[i.jsx("button",{type:"button",onClick:()=>J(null),children:"Luk"}),i.jsx("button",{type:"button",onClick:()=>{It()},disabled:Ze["update-entry"],children:Ze["update-entry"]?"Gemmer...":"Gem"}),i.jsx("button",{type:"button",className:"danger",onClick:()=>{el(H.id),J(null)},children:"Slet"})]})]})),H.type==="language"&&(w=i.jsxs(i.Fragment,{children:[i.jsxs("label",{className:"cv-popover-field",children:[i.jsx("span",{children:"Niveau (1-5)"}),i.jsx("input",{type:"number",min:1,max:5,className:"field-input cv-inline-input",value:wn,onChange:ce=>pa(Number(ce.target.value))})]}),i.jsxs("div",{className:"cv-popover-actions",children:[i.jsx("button",{type:"button",onClick:()=>J(null),children:"Luk"}),i.jsx("button",{type:"button",onClick:()=>{It()},disabled:Ze["update-entry"],children:Ze["update-entry"]?"Gemmer...":"Gem"}),i.jsx("button",{type:"button",className:"danger",onClick:()=>{tl(H.id),J(null)},children:"Slet"})]})]})),Cm.createPortal(i.jsx("div",{ref:Xa,className:"cv-entry-menu-popover cv-entry-menu-popover-floating",style:{top:`${Bl.top}px`,left:`${Bl.left}px`},children:w??T}),document.body)}function Wi(){if(!G||!Wn||typeof document>"u")return null;let T=null;return G==="experience"&&(T=i.jsxs(i.Fragment,{children:[i.jsxs("label",{className:"cv-popover-field",children:[i.jsx("span",{children:"Stilling"}),i.jsx("input",{className:"field-input cv-inline-input",value:Q,onChange:w=>ye(w.target.value),placeholder:"Søg stilling"})]}),i.jsx("div",{className:"cv-add-suggestion-list",children:Ki.map(w=>i.jsx("button",{type:"button",className:String(w.id)===fe?"tab-btn active":"tab-btn",onClick:()=>{ae(String(w.id)),ye(w.preferedLabelDa)},children:w.preferedLabelDa},w.id))}),i.jsxs("label",{className:"cv-popover-field",children:[i.jsx("span",{children:"Virksomhed"}),i.jsx("input",{className:"field-input cv-inline-input",value:pe,onChange:w=>le(w.target.value)})]}),i.jsxs("label",{className:"cv-popover-field",children:[i.jsx("span",{children:"Fra dato"}),i.jsx("input",{type:"date",className:"field-input cv-inline-input",value:je,onChange:w=>Se(w.target.value)})]}),i.jsxs("label",{className:"cv-popover-field",children:[i.jsx("span",{children:"Til dato"}),i.jsx("input",{type:"date",className:"field-input cv-inline-input",value:de,onChange:w=>ve(w.target.value)})]}),i.jsxs("label",{className:"cv-popover-field",children:[i.jsx("span",{children:"Beskrivelse"}),i.jsx("textarea",{className:"field-input cv-profile-textarea",value:Ve,onChange:w=>ee(w.target.value),rows:3})]})]})),G==="education"&&(T=i.jsxs(i.Fragment,{children:[i.jsxs("label",{className:"cv-popover-field",children:[i.jsx("span",{children:"Uddannelsesnavn"}),i.jsx("input",{className:"field-input cv-inline-input",value:Ee,onChange:w=>F(w.target.value)})]}),i.jsx("div",{className:"cv-add-suggestion-list",children:xc.map(w=>i.jsx("button",{type:"button",className:w.disced15===C?"tab-btn active":"tab-btn",onClick:()=>{X(w.disced15),F(w.name)},children:w.name},`${w.disced15}-${w.name}`))}),i.jsxs("label",{className:"cv-popover-field",children:[i.jsx("span",{children:"Skole/Institution"}),i.jsx("input",{className:"field-input cv-inline-input",value:te,onChange:w=>Ae(w.target.value)})]}),i.jsx("div",{className:"cv-add-suggestion-list",children:Fi.map(w=>i.jsx("button",{type:"button",className:w.instNumber===Ne?"tab-btn active":"tab-btn",onClick:()=>{g(w.instNumber),Ae(w.name)},children:w.name},`${w.instNumber}-${w.name}`))}),i.jsxs("label",{className:"cv-popover-field",children:[i.jsx("span",{children:"Fra dato"}),i.jsx("input",{type:"date",className:"field-input cv-inline-input",value:W,onChange:w=>re(w.target.value)})]}),i.jsxs("label",{className:"cv-popover-field",children:[i.jsx("span",{children:"Til dato"}),i.jsx("input",{type:"date",className:"field-input cv-inline-input",value:se,onChange:w=>I(w.target.value)})]}),i.jsxs("label",{className:"cv-popover-field",children:[i.jsx("span",{children:"Beskrivelse"}),i.jsx("textarea",{className:"field-input cv-profile-textarea",value:O,onChange:w=>K(w.target.value),rows:3})]})]})),G==="certification"&&(T=i.jsxs(i.Fragment,{children:[i.jsxs("label",{className:"cv-popover-field",children:[i.jsx("span",{children:"Certifikatnavn"}),i.jsx("input",{className:"field-input cv-inline-input",value:ge,onChange:w=>Be(w.target.value)})]}),i.jsx("div",{className:"cv-add-suggestion-list",children:Ii.map(w=>i.jsx("button",{type:"button",className:w.id===Dt?"tab-btn active":"tab-btn",onClick:()=>{_t(w.id),Be(String(w.name??""))},children:String(w.name??"")},w.id))})]})),G==="language"&&(T=i.jsxs(i.Fragment,{children:[i.jsxs("label",{className:"cv-popover-field",children:[i.jsx("span",{children:"Sprog"}),i.jsxs("select",{className:"field-input cv-inline-input",value:Et,onChange:w=>L(w.target.value),children:[i.jsx("option",{value:"",children:"Vælg sprog"}),Ot.map(w=>i.jsx("option",{value:w.id,children:w.name},w.id))]})]}),i.jsxs("label",{className:"cv-popover-field",children:[i.jsx("span",{children:"Niveau (1-5)"}),i.jsx("input",{type:"number",min:1,max:5,className:"field-input cv-inline-input",value:me,onChange:w=>x(Number(w.target.value))})]})]})),G==="qualification"&&(T=i.jsxs(i.Fragment,{children:[i.jsxs("label",{className:"cv-popover-field",children:[i.jsx("span",{children:"Kvalifikation"}),i.jsx("input",{className:"field-input cv-inline-input",value:Y,onChange:w=>ue(w.target.value),placeholder:"Søg kvalifikation"})]}),i.jsx("div",{className:"cv-add-suggestion-list",children:Ql.map(w=>i.jsx("button",{type:"button",className:w.id===be?"tab-btn active":"tab-btn",onClick:()=>{De(w.id),ue(w.name)},children:w.name},w.id))}),i.jsxs("label",{className:"cv-popover-field",children:[i.jsx("span",{children:"Niveau (1-5)"}),i.jsx("input",{type:"number",min:1,max:5,className:"field-input cv-inline-input",value:Ie,onChange:w=>gt(Number(w.target.value))})]})]})),G==="driverLicense"&&(T=i.jsxs(i.Fragment,{children:[i.jsxs("label",{className:"cv-popover-field",children:[i.jsx("span",{children:"Kørekortstype"}),i.jsxs("select",{className:"field-input cv-inline-input",value:kt,onChange:w=>Ye(w.target.value),children:[i.jsx("option",{value:"",children:"Vælg kørekort"}),Jl.map(w=>i.jsx("option",{value:w.id,children:w.name},w.id))]})]}),i.jsxs("label",{className:"cv-popover-field",children:[i.jsx("span",{children:"Niveau (1-5)"}),i.jsx("input",{type:"number",min:1,max:5,className:"field-input cv-inline-input",value:$e,onChange:w=>sa(Number(w.target.value))})]})]})),Cm.createPortal(i.jsxs("div",{ref:Hi,className:"cv-entry-menu-popover cv-entry-menu-popover-floating",style:{top:`${Wn.top}px`,left:`${Wn.left}px`},children:[T,i.jsxs("div",{className:"cv-popover-actions",children:[i.jsx("button",{type:"button",onClick:()=>B(null),children:"Luk"}),i.jsx("button",{type:"button",onClick:()=>{$i()},disabled:Ze["create-entry"],children:Ze["create-entry"]?"Tilføjer...":"Tilføj"})]})]}),document.body)}return i.jsxs("section",{className:"dashboard-layout",children:[i.jsx(Ya,{collapsed:u,activeKey:"cv",onToggle:()=>o(T=>{const w=!T;return window.localStorage.setItem("arbejd.sidebar.collapsed",w?"1":"0"),w}),onSelect:T=>{(T==="dashboard"||T==="cv"||T==="jobs"||T==="beskeder"||T==="ai-jobagent"||T==="ai-agent"||T==="simulator"||T==="abonnement")&&c(T)}}),i.jsxs("main",{className:"dashboard-main",children:[i.jsx(Ja,{title:"CV",userName:"Anders Jensen",planLabel:"Jobseeker Pro",onLogout:r,actions:i.jsxs("div",{className:"cv-add-entry-wrap",children:[i.jsx("button",{ref:ga,type:"button",className:"primary-btn",onClick:()=>Z(T=>!T),children:"Tilføj til CV"}),P?i.jsxs("div",{ref:Vl,className:"cv-add-entry-dropdown",children:[i.jsx("button",{className:"dropdown-item",type:"button",onClick:()=>{B("education"),Z(!1)},children:"Tilføj uddannelse"}),i.jsx("button",{className:"dropdown-item",type:"button",onClick:()=>{B("experience"),Z(!1)},children:"Tilføj erfaring"}),i.jsx("button",{className:"dropdown-item",type:"button",onClick:()=>{B("qualification"),Z(!1)},children:"Tilføj kvalifikation"}),i.jsx("button",{className:"dropdown-item",type:"button",onClick:()=>{B("certification"),Z(!1)},children:"Tilføj certifikat"}),i.jsx("button",{className:"dropdown-item",type:"button",onClick:()=>{B("driverLicense"),Z(!1)},children:"Tilføj kørekort"}),i.jsx("button",{className:"dropdown-item",type:"button",onClick:()=>{B("language"),Z(!1)},children:"Tilføj sprog"})]}):null]})}),i.jsxs("div",{className:"dashboard-scroll",children:[qi?i.jsxs(i.Fragment,{children:[i.jsxs("section",{className:"cv-top-grid","aria-hidden":!0,children:[i.jsxs("article",{className:"glass-panel dash-card cv-skeleton-card cv-top-main",children:[i.jsx("div",{className:"jobs-skeleton-line w-35"}),i.jsx("div",{className:"jobs-skeleton-line w-80"}),i.jsx("div",{className:"jobs-skeleton-line w-70"}),i.jsxs("div",{className:"cv-skeleton-stat-grid",children:[i.jsx("div",{className:"jobs-skeleton-line w-55"}),i.jsx("div",{className:"jobs-skeleton-line w-55"}),i.jsx("div",{className:"jobs-skeleton-line w-55"}),i.jsx("div",{className:"jobs-skeleton-line w-55"})]})]}),i.jsxs("article",{className:"glass-panel dash-card cv-skeleton-card cv-top-actions",children:[i.jsx("div",{className:"jobs-skeleton-line w-55"}),i.jsx("div",{className:"jobs-skeleton-line w-90"}),i.jsx("div",{className:"jobs-skeleton-line w-90"}),i.jsx("div",{className:"jobs-skeleton-line w-80"})]})]}),i.jsx("section",{className:"cv-section-grid","aria-hidden":!0,children:Array.from({length:6}).map((T,w)=>i.jsxs("article",{className:"glass-panel dash-card cv-section-card cv-skeleton-card",children:[i.jsx("div",{className:"jobs-skeleton-line w-35"}),i.jsx("div",{className:"jobs-skeleton-line w-90"}),i.jsx("div",{className:"jobs-skeleton-line w-80"}),i.jsx("div",{className:"jobs-skeleton-line w-70"})]},`cv-skeleton-${w}`))})]}):null,qi?null:i.jsxs(i.Fragment,{children:[i.jsxs("section",{className:"cv-top-grid",children:[i.jsxs("article",{className:"glass-panel dash-card cv-hero-card cv-top-main",children:[i.jsxs("div",{className:"cv-hero-top",children:[i.jsxs("div",{children:[i.jsx("h3",{children:"CV Center"}),i.jsxs("p",{children:["Hej ",Ug(Oe?.firstName),". Her er dit samlede CV-overblik med samme flow som Angular CV, nu i det nye design."]})]}),i.jsx("div",{className:"cv-language-switch",children:zg.map(T=>i.jsx("button",{type:"button",className:m===T.shortCode?"tab-btn active":"tab-btn",onClick:()=>b(T.shortCode),children:T.name},T.shortCode))})]}),i.jsxs("div",{className:"cv-stats-grid",children:[i.jsxs("div",{className:"cv-stat-tile",children:[i.jsx("span",{children:"Erfaringer"}),i.jsx("strong",{children:va.length})]}),i.jsxs("div",{className:"cv-stat-tile",children:[i.jsx("span",{children:"Uddannelser"}),i.jsx("strong",{children:Ca.length})]}),i.jsxs("div",{className:"cv-stat-tile",children:[i.jsx("span",{children:"Kvalifikationer"}),i.jsx("strong",{children:kn.length})]}),i.jsxs("div",{className:"cv-stat-tile",children:[i.jsx("span",{children:"Sprog"}),i.jsx("strong",{children:et.length})]})]})]}),i.jsxs("article",{className:"glass-panel dash-card cv-action-card cv-action-card-top cv-top-actions",children:[i.jsx("h4",{children:"CV handlinger"}),i.jsxs("div",{className:"cv-button-stack",children:[Nc?i.jsx("button",{type:"button",className:"primary-btn cv-action-btn",disabled:Ze.download,onClick:()=>{$a(m)},children:Ze.download?"Henter...":`Download ${m.toUpperCase()} CV`}):i.jsx("button",{type:"button",className:"primary-btn cv-action-btn",disabled:Ze.generate||!il,onClick:()=>{Ta(m)},children:Ze.generate?"Genererer...":`Generér ${m.toUpperCase()} CV`}),i.jsx("button",{type:"button",className:"secondary-btn cv-action-btn",disabled:Ze.upload||!il,onClick:()=>Dn.current?.click(),children:Ze.upload?"Uploader...":Gl?.cv_upload_data_id?"Se upload CV":"Upload CV"}),i.jsx("button",{type:"button",className:"secondary-btn cv-action-btn",disabled:Ze.optimize||!il,onClick:()=>{Ji(m)},children:Ze.optimize?"Optimerer...":vc?"Opdater optimeret CV":"Optimer CV"})]}),il?null:i.jsx("p",{className:"helper-text",children:"Denne funktion kræver et aktivt abonnement."}),i.jsx("input",{ref:Dn,type:"file",accept:".pdf,.docx",className:"cv-hidden-input",onChange:T=>{ca(T)}})]})]}),Ka?i.jsx("p",{className:"status error",children:Ka}):null,Pn?i.jsx("p",{className:"status success",children:Pn}):null,i.jsxs("section",{className:"cv-section-grid",children:[i.jsxs("article",{className:"glass-panel dash-card cv-section-card cv-card-profile",children:[i.jsxs("div",{className:"cv-section-head",children:[i.jsx("h4",{children:"Profil"}),i.jsx("button",{type:"button",className:"secondary-btn cv-inline-btn",onClick:()=>{j&&(v(Oe?.phoneNumber??""),k(Oe?.personalDescription??"")),q(T=>!T)},children:j?"Annuller":"Rediger"})]}),i.jsxs("div",{className:"cv-profile-head",children:[Oe?.imageUrl?i.jsx("img",{className:"cv-profile-avatar",src:Oe.imageUrl,alt:Oe?.name||"Profilbillede"}):i.jsx("div",{className:"cv-profile-avatar cv-profile-avatar-fallback",children:Vg(Oe?.firstName,Oe?.lastName)}),i.jsx("div",{className:"cv-profile-head-text",children:i.jsx("p",{className:"cv-profile-name",children:Oe?.name||`${Oe?.firstName??""} ${Oe?.lastName??""}`.trim()||"Ukendt kandidat"})})]}),i.jsxs("div",{className:"cv-profile-description-box",children:[i.jsx("span",{className:"cv-profile-description-label",children:"Beskrivelse"}),j?i.jsx("textarea",{className:"field-input cv-profile-textarea",value:V,onChange:T=>k(T.target.value),rows:6}):Oe?.personalDescription?Og(Oe.personalDescription)?i.jsx("div",{className:"cv-profile-description cv-profile-description-richtext",dangerouslySetInnerHTML:{__html:Oe.personalDescription}}):i.jsx("p",{className:"cv-profile-description",children:Oe.personalDescription}):i.jsx("p",{className:"cv-profile-description",children:"Ingen profiltekst endnu."})]}),i.jsxs("div",{className:"cv-profile-info-grid",children:[i.jsxs("div",{className:"cv-profile-info-item",children:[i.jsx("span",{children:"Telefon"}),j?i.jsx("input",{className:"field-input cv-inline-input",value:D,onChange:T=>v(T.target.value)}):i.jsx("strong",{children:Oe?.phoneNumber||"Ikke angivet"})]}),i.jsxs("div",{className:"cv-profile-info-item",children:[i.jsx("span",{children:"E-mail"}),i.jsx("strong",{children:Oe?.email||"Ikke angivet"})]}),i.jsxs("div",{className:"cv-profile-info-item",children:[i.jsx("span",{children:"Adresse"}),i.jsx("strong",{children:Rg(Oe?.address)})]}),i.jsxs("div",{className:"cv-profile-info-item",children:[i.jsx("span",{children:"Fødselsdato"}),i.jsx("strong",{children:Mg(Oe?.birthday)})]}),i.jsxs("div",{className:"cv-profile-info-item",children:[i.jsx("span",{children:"Aktiv ansøger"}),i.jsx("strong",{children:Lg(Oe?.isActive)})]})]}),j?i.jsx("button",{type:"button",className:"primary-btn cv-save-btn",onClick:()=>{Zl()},disabled:Ze["update-profile"],children:Ze["update-profile"]?"Gemmer...":"Gem profil"}):null,i.jsx("p",{className:"helper-text",children:"Som aktiv ansøger bliver dit CV tilgængeligt for virksomheder."}),i.jsxs("label",{className:"cv-active-toggle",htmlFor:"cv-active-switch",children:[i.jsx("input",{id:"cv-active-switch",type:"checkbox",checked:!!Oe?.isActive,disabled:!Oe||Ze["toggle-active"],onChange:T=>{Fa(T.target.checked,m)}}),i.jsx("span",{className:"cv-active-track",children:i.jsx("span",{className:"cv-active-thumb"})}),i.jsx("span",{className:"cv-active-label",children:Ze["toggle-active"]?"Gemmer...":Oe?.isActive?"Aktiv ansøger":"Inaktiv ansøger"})]})]}),i.jsxs("article",{className:"glass-panel dash-card cv-section-card cv-card-experience",children:[i.jsxs("h4",{children:["Erfaring (",va.length,")"]}),va.length===0?i.jsx("p",{children:"Ingen erfaringer endnu."}):null,i.jsx("ul",{className:"cv-list scrollable",children:va.map(T=>i.jsxs("li",{children:[i.jsxs("div",{className:"cv-list-row",children:[i.jsx("strong",{children:T.companyName}),T.id?i.jsx("div",{className:"cv-entry-menu-wrap",children:i.jsx("button",{type:"button",className:"cv-entry-menu-btn",ref:w=>ua("experience",T.id,w),onClick:()=>{if(H?.type==="experience"&&H.id===T.id){J(null);return}Pa("experience",T.id)},"aria-label":"Åbn menu",title:"Flere handlinger",children:"..."})}):null]}),i.jsx("span",{children:T.occupation?.name??"Stilling ikke angivet"}),i.jsxs("small",{children:[dc(T.fromDate)," - ",T.isCurrent?"Nu":dc(T.toDate)]})]},T.id??`${T.companyName}-${T.fromDate}`))})]}),i.jsxs("article",{className:"glass-panel dash-card cv-section-card cv-card-education",children:[i.jsxs("h4",{children:["Uddannelse (",Ca.length,")"]}),Ca.length===0?i.jsx("p",{children:"Ingen uddannelser endnu."}):null,i.jsx("ul",{className:"cv-list scrollable",children:Ca.map(T=>i.jsxs("li",{children:[i.jsxs("div",{className:"cv-list-row",children:[i.jsx("strong",{children:T.education?.name??"Uddannelse"}),i.jsx("div",{className:"cv-entry-menu-wrap",children:i.jsx("button",{type:"button",className:"cv-entry-menu-btn",ref:w=>ua("education",T.id,w),onClick:()=>{if(H?.type==="education"&&H.id===T.id){J(null);return}Pa("education",T.id)},"aria-label":"Åbn menu",title:"Flere handlinger",children:"..."})})]}),i.jsx("span",{children:T.institution?.name??"Institution ikke angivet"}),i.jsxs("small",{children:[dc(T.fromDate)," - ",T.isCurrent?"Nu":dc(T.toDate)]})]},T.id))})]}),i.jsxs("article",{className:"glass-panel dash-card cv-section-card cv-card-qualifications",children:[i.jsxs("h4",{children:["Kvalifikationer (",kn.length,")"]}),kn.length===0?i.jsx("p",{children:"Ingen kvalifikationer endnu."}):null,i.jsx("div",{className:"jobs-pill-row cv-qual-pill-row",children:kn.slice(0,30).map(T=>i.jsx("span",{className:"jobs-pill",children:T.qualification.name},T.id??T.qualification.id))})]}),i.jsxs("article",{className:"glass-panel dash-card cv-section-card cv-card-certifications",children:[i.jsxs("h4",{children:["Certifikater (",Mt.length,")"]}),Mt.length===0?i.jsx("p",{children:"Ingen certifikater endnu."}):null,i.jsx("ul",{className:"cv-list compact scrollable",children:Mt.map(T=>i.jsxs("li",{children:[i.jsxs("div",{className:"cv-list-row",children:[i.jsx("strong",{children:T.qualification?.name??"Certifikat"}),i.jsx("div",{className:"cv-entry-menu-wrap",children:i.jsx("button",{type:"button",className:"cv-entry-menu-btn",ref:w=>ua("certification",T.id,w),onClick:()=>{if(H?.type==="certification"&&H.id===T.id){J(null);return}Pa("certification",T.id)},"aria-label":"Åbn menu",title:"Flere handlinger",children:"..."})})]}),i.jsx("small",{children:T.levelName||"Niveau ikke angivet"})]},T.id))})]}),i.jsxs("article",{className:"glass-panel dash-card cv-section-card cv-card-languages",children:[i.jsxs("h4",{children:["Sprog (",et.length,")"]}),et.length===0?i.jsx("p",{children:"Ingen sprog endnu."}):null,i.jsx("ul",{className:"cv-list compact scrollable",children:et.map(T=>i.jsxs("li",{children:[i.jsxs("div",{className:"cv-list-row",children:[i.jsx("strong",{children:T.language?.name}),i.jsx("div",{className:"cv-entry-menu-wrap",children:i.jsx("button",{type:"button",className:"cv-entry-menu-btn",ref:w=>ua("language",T.id,w),onClick:()=>{if(H?.type==="language"&&H.id===T.id){J(null);return}Pa("language",T.id)},"aria-label":"Åbn menu",title:"Flere handlinger",children:"..."})})]}),i.jsx("small",{children:T.levelName||`Niveau ${T.level}`})]},T.id))})]}),i.jsxs("article",{className:"glass-panel dash-card cv-section-card cv-card-licenses",children:[i.jsxs("h4",{children:["Kørekort (",bt.length,")"]}),bt.length===0?i.jsx("p",{children:"Ingen kørekort endnu."}):null,i.jsx("div",{className:"cv-chip-wrap",children:bt.map(T=>i.jsxs("span",{className:"cv-chip",children:[T.driversLicense?.name," · ",T.levelName||`Niveau ${T.level}`]},T.id))})]})]}),Kl(),Wi()]})]})]})]})}class Hg{constructor(c=lt){this.http=c}saveJobFilter(c){let u=z.backendApiV2+"1.0.0/client/candidate_search_filter";return this.http.post(u,c)}getJobFilter(){let c=z.backendApiV2+"1.0.0/client/candidate_search_filter";return this.http.get(c)}resetJobFilter(){let c=z.backendApiV2+"1.0.0/client/candidate_search_filter/reset_job_filter";return this.http.put(c,{})}}class Hm{constructor(c=lt){this.http=c}searchPlaces(c){const u=z.backendApiV2+"client/google_maps/1.0.0/get_places?query="+encodeURIComponent(c);return this.http.get(u)}getPlaceDetails(c){const u=z.backendApiV2+"client/google_maps/1.0.0/get_place_details?place_id="+encodeURIComponent(c);return this.http.get(u)}}const Dr={escoIds:[],workTypePermanent:!1,workTypePartTime:!1,workDistance:50,partTimeHours:null,distanceCenterName:"",latitude:null,longitude:null};function mt(r){return typeof r=="string"?r:""}function Li(r){return typeof r=="object"&&r!==null?r:null}function _r(r,c){if(!r)return[];const u=r[c];return Array.isArray(u)?u:[]}function kr(r){if(Array.isArray(r))return r;const c=Li(r);if(!c)return[];const u=_r(c,"searchList");if(u.length>0)return u;const o=Li(c.data),m=_r(o,"searchList");if(m.length>0)return m;const b=_r(c,"items");return b.length>0?b:[]}function Em(r,c){if(!r)return null;const u=r[c];return typeof u=="number"?u:null}function qg(r,c){return{id:mt(r.id),title:mt(r.title),companyName:mt(r.companyName),occupationName:mt(r.occupationName),descriptionIntro:mt(r.descriptionIntro),address:mt(r.address),time:mt(r.time),applicationDeadline:r.applicationDeadline instanceof Date?r.applicationDeadline.toISOString():mt(String(r.applicationDeadline??"")),candidateDistance:typeof r.candidateDistance=="number"?r.candidateDistance:null,logoUrl:mt(r.logoUrl),companyLogoImage:mt(r.companyLogoImage),fromJobnet:!!r.fromJobnet,isSaved:!!r.saved,matchPercent:c}}function Tm(r){return{id:mt(r.id),title:mt(r.title),companyName:mt(r.companyName),occupationName:mt(r.occupationName),descriptionIntro:mt(r.descriptionIntro),address:mt(r.address),time:mt(r.time),applicationDeadline:r.applicationDeadline instanceof Date?r.applicationDeadline.toISOString():mt(String(r.applicationDeadline??"")),candidateDistance:typeof r.candidateDistance=="number"?r.candidateDistance:null,logoUrl:mt(r.logoUrl),companyLogoImage:mt(r.companyLogoImage),isActive:typeof r.isActive=="boolean"?r.isActive:void 0,fromJobnet:!!r.fromJobnet,isSaved:!0}}class Gg{constructor(c=new pc,u=new Hg,o=new Hm){this.jobService=c,this.filterService=u,this.placesService=o}async getOccupationOptions(){const c=await this.jobService.getOccupationCategorizations(),u=[];for(const o of c)for(const m of o.subAreas)for(const b of m.occupations)typeof b.id=="number"&&typeof b.name=="string"&&b.name.trim().length>0&&u.push({id:b.id,name:b.name});return u.sort((o,m)=>o.name.localeCompare(m.name,"da"))}async getJobSearchWords(){return(await this.jobService.getSearchWords()).filter(u=>typeof u=="string"&&u.trim().length>0)}async getSavedFilter(){try{const c=await this.filterService.getJobFilter(),u=c?.candidateSearchFilter;return u?{escoIds:c.escoIds??[],workTypePermanent:!!u.workTypePermanent,workTypePartTime:!!u.workTypePartTime,workDistance:u.workDistance??u.defaultDistance??50,partTimeHours:u.partTimeHours??null,distanceCenterName:u.distanceCenterName??u.defaultCenterName??"",latitude:u.latitude??null,longitude:u.longitude??null}:{...Dr}}catch{return{...Dr}}}async saveFilter(c){const u=c.workTypePartTime&&c.partTimeHours&&c.partTimeHours>0&&c.partTimeHours<=37?c.partTimeHours:null,o={escoIds:c.escoIds,candidateSearchFilter:{workTimeDay:!1,workTimeEvening:!1,workTimeNight:!1,workTimeWeekend:!1,workTypePermanent:c.workTypePermanent,workTypeFreelance:!1,workTypePartTime:c.workTypePartTime,workTypeSubstitute:!1,workTypeTemporary:!1,workDistance:c.workDistance,partTimeHours:u,distanceCenterName:c.distanceCenterName,latitude:c.latitude,longitude:c.longitude}};await this.filterService.saveJobFilter(o)}async resetFilter(){return await this.filterService.resetJobFilter(),{...Dr}}async searchPlaceSuggestions(c){const u=c.trim();return u.length<3?[]:((await this.placesService.searchPlaces(u)).predictions??[]).filter(m=>typeof m.place_id=="string"&&typeof m.description=="string").map(m=>({placeId:m.place_id,description:m.description}))}async getPlaceSelection(c){const o=(await this.placesService.getPlaceDetails(c)).result;return!o||typeof o.formatted_address!="string"?null:{description:o.formatted_address,latitude:typeof o.geometry?.location?.lat=="number"?o.geometry.location.lat:null,longitude:typeof o.geometry?.location?.lng=="number"?o.geometry.location.lng:null}}async getTabItems(c,u){if(c==="gemte"){const o=await this.jobService.getSavedJobsV2(0,100);return kr(o).map(b=>Tm(b))}if(c==="sogte"){const o=await this.jobService.getAppliedJobsV2(0,100);return kr(o).map(b=>Tm(b))}return this.getJobsFeedItems(u)}async toggleBookmark(c,u){const o=c.fromJobnet?"star":"arbejd.com";await this.jobService.bookmarkJobV2(c.id,u,o)}async getJobsFeedItems(c){let o=10,m=0;const b=12,j=120,q=new Set,D=[],v=c?.trim()??"";let V=[];if(v.length>0)V=[v];else try{V=(await this.jobService.getSearchWords()).filter(H=>typeof H=="string"&&H.trim().length>0)}catch{V=[]}for(let k=0;knew Gg,[]),[c,u]=h.useState(!1),[o,m]=h.useState(!1),[b,j]=h.useState([]),[q,D]=h.useState({}),[v,V]=h.useState([]),[k,H]=h.useState([]),[J,P]=h.useState([]),[Z,G]=h.useState(null),[B,fe]=h.useState(null),ae=h.useCallback(async(ee,je,Se)=>{u(!0),fe(null);try{const de=je??await r.getSavedFilter(),[ve,Ee]=await Promise.all([r.getOccupationOptions(),r.getJobSearchWords()]);G(de),V(ve),H(Ee);try{const F=await r.getTabItems(ee,Se);j(F)}catch(F){j([]),fe(F instanceof Error?F.message:"Could not load jobs list.")}}catch(de){fe(de instanceof Error?de.message:"Could not load jobs data.")}finally{u(!1)}},[r]),Q=h.useCallback(async(ee,je,Se)=>{m(!0),fe(null);try{await r.saveFilter(je),G(je);const de=await r.getTabItems(ee,Se);j(de)}catch(de){fe(de instanceof Error?de.message:"Could not save filter.")}finally{m(!1)}},[r]),ye=h.useCallback(async(ee,je)=>{m(!0),fe(null);try{const Se=await r.resetFilter();G(Se);const de=await r.getTabItems(ee,je);j(de)}catch(Se){fe(Se instanceof Error?Se.message:"Could not reset filter.")}finally{m(!1)}},[r]),pe=h.useCallback(async ee=>{try{const je=await r.searchPlaceSuggestions(ee);P(je)}catch{P([])}},[r]),le=h.useCallback(async ee=>{const je=await r.getPlaceSelection(ee);je&&(G(Se=>Se&&{...Se,distanceCenterName:je.description,latitude:je.latitude,longitude:je.longitude}),P([]))},[r]),Ve=h.useCallback(async(ee,je,Se=!1)=>{D(de=>({...de,[ee.id]:!0})),fe(null);try{await r.toggleBookmark(ee,je),j(de=>de.map(ve=>ve.id===ee.id?{...ve,isSaved:je}:ve).filter(ve=>!(Se&&ve.id===ee.id)))}catch(de){fe(de instanceof Error?de.message:"Could not update bookmark.")}finally{D(de=>{const ve={...de};return delete ve[ee.id],ve})}},[r]);return{isLoading:c,isSavingFilter:o,items:b,occupationOptions:v,jobSearchWords:k,placeSuggestions:J,filter:Z,error:B,load:ae,applyFilter:Q,resetFilter:ye,searchPlaceSuggestions:pe,choosePlaceSuggestion:le,toggleBookmark:Ve,bookmarkingIds:q,setFilter:G}}const Jg=[{key:"workTypePermanent",label:"Fast"},{key:"workTypePartTime",label:"Deltid"}];function Qg(r){return"jobs"}function Xg({onLogout:r,onNavigate:c,onOpenJob:u}){const[o,m]=h.useState(()=>window.localStorage.getItem("arbejd.sidebar.collapsed")==="1"),[b,j]=h.useState("jobs"),[q,D]=h.useState(""),[v,V]=h.useState(!1),[k,H]=h.useState(!1),[J,P]=h.useState("areas"),[Z,G]=h.useState(!1),[B,fe]=h.useState(""),{isLoading:ae,isSavingFilter:Q,items:ye,occupationOptions:pe,jobSearchWords:le,placeSuggestions:Ve,filter:ee,error:je,load:Se,applyFilter:de,resetFilter:ve,searchPlaceSuggestions:Ee,choosePlaceSuggestion:F,toggleBookmark:C,bookmarkingIds:X,setFilter:te}=Yg();h.useEffect(()=>{Se(b,void 0,b==="jobs"?B:void 0)},[b,Se]),h.useEffect(()=>{const L=ee?.distanceCenterName??"";if(J!=="settings"||!Z||L.trim().length<3)return;const me=window.setTimeout(()=>{Ee(L)},300);return()=>window.clearTimeout(me)},[ee?.distanceCenterName,J,Z,Ee]);const Ae=h.useMemo(()=>{const L=q.trim().toLowerCase(),me=new Set(ee?.escoIds??[]);return pe.filter(x=>!me.has(x.id)).filter(x=>L?x.name.toLowerCase().includes(L):!0).slice(0,8)},[q,pe,ee]);function Ne(L){ee&&te({...ee,...L})}function g(L){ee&&Ne({[L]:!ee[L]})}function O(L){ee&&(ee.escoIds.includes(L)||(te({...ee,escoIds:[...ee.escoIds,L]}),D(""),V(!1)))}function K(L){ee&&te({...ee,escoIds:ee.escoIds.filter(me=>me!==L)})}async function W(){ee&&await de(b,ee,b==="jobs"?B:void 0)}const re=h.useMemo(()=>{const L=ee?.escoIds??[],me=new Map(pe.map(x=>[x.id,x.name]));return L.map(x=>({id:x,name:me.get(x)??`ESCO #${x}`}))},[pe,ee]),se=h.useMemo(()=>k?re:re.slice(0,12),[k,re]),I=Math.max(0,re.length-se.length);function ge(L){const me=L.trim();return me.length>0?me.charAt(0).toUpperCase():"A"}function Be(L){if(!L)return"Ingen frist";const me=new Date(L);return Number.isNaN(me.getTime())?L:me.toLocaleDateString("da-DK",{day:"2-digit",month:"short",year:"numeric"})}async function Dt(){await ve(b,b==="jobs"?B:void 0),D(""),V(!1)}function _t(){b==="jobs"&&Se("jobs",ee??void 0,B)}const Et=h.useMemo(()=>{const L=B.trim().toLowerCase();return L?le.filter(me=>me.toLowerCase().includes(L)).slice(0,8):le.slice(0,8)},[le,B]);return i.jsxs("section",{className:"dashboard-layout",children:[i.jsx(Ya,{collapsed:o,activeKey:Qg(),onToggle:()=>m(L=>{const me=!L;return window.localStorage.setItem("arbejd.sidebar.collapsed",me?"1":"0"),me}),onSelect:L=>{(L==="dashboard"||L==="cv"||L==="jobs"||L==="beskeder"||L==="ai-jobagent"||L==="ai-agent"||L==="simulator"||L==="abonnement")&&c(L)}}),i.jsxs("main",{className:"dashboard-main",children:[i.jsx(Ja,{title:"Jobs",userName:"Anders Jensen",planLabel:"Jobseeker Pro",onLogout:r}),i.jsxs("div",{className:"dashboard-scroll",children:[i.jsxs("article",{className:"glass-panel dash-card jobs-filter-card",children:[i.jsxs("div",{className:"jobs-filter-top",children:[i.jsxs("div",{children:[i.jsx("h4",{children:"Filtre"}),i.jsx("p",{className:"jobs-filter-subtitle",children:"Tilpas visningen med arbejdsområde, jobtype og afstand."})]}),i.jsxs("div",{className:"jobs-filter-actions",children:[i.jsx("button",{className:"secondary-btn",type:"button",onClick:()=>{Dt()},disabled:Q,children:"Nulstil"}),i.jsx("button",{className:"primary-btn jobs-apply-btn",type:"button",onClick:()=>{W()},disabled:Q||ae||!ee,children:Q?"Gemmer...":"Anvend filtre"})]})]}),i.jsxs("div",{className:"jobs-filter-tab-nav",children:[i.jsx("button",{type:"button",className:J==="areas"?"tab-btn active":"tab-btn",onClick:()=>P("areas"),children:"Arbejdsområde"}),i.jsx("button",{type:"button",className:J==="settings"?"tab-btn active":"tab-btn",onClick:()=>P("settings"),children:"Indstillinger"})]}),J==="areas"?i.jsxs("div",{className:"jobs-filter-section",children:[i.jsxs("div",{className:"jobs-search-box",children:[i.jsx("label",{className:"field-label",htmlFor:"jobs-term-search",children:"Søg og vælg jobs/fagområder"}),i.jsx("input",{id:"jobs-term-search",className:"field-input",value:q,onFocus:()=>V(!0),onBlur:()=>setTimeout(()=>V(!1),120),onChange:L=>D(L.target.value),placeholder:"Søg arbejdsområde"}),v&&Ae.length>0&&i.jsx("div",{className:"jobs-suggestions glass-panel",children:Ae.map(L=>i.jsx("button",{type:"button",className:"jobs-suggestion-item",onMouseDown:()=>O(L.id),children:L.name},L.id))})]}),i.jsxs("div",{className:"jobs-pill-meta",children:[i.jsxs("span",{className:"chip",children:[re.length," valgte"]}),re.length>12?i.jsx("button",{type:"button",className:"jobs-pill-toggle",onClick:()=>H(L=>!L),children:k?"Vis færre":`Vis flere${I>0?` (+${I})`:""}`}):null]}),i.jsx("div",{className:k?"jobs-pill-row expanded":"jobs-pill-row",children:se.map(L=>i.jsxs("button",{type:"button",className:"jobs-pill",onClick:()=>K(L.id),children:[L.name," ",i.jsx("span",{"aria-hidden":!0,children:"×"})]},L.id))})]}):i.jsx("div",{className:"jobs-filter-section",children:i.jsxs("div",{className:"jobs-filter-groups",children:[i.jsxs("div",{className:"jobs-filter-group",children:[i.jsx("p",{children:"Jobtype"}),i.jsx("div",{className:"jobs-switch-grid",children:Jg.map(L=>i.jsxs("button",{type:"button",className:ee?.[L.key]?"jobs-switch is-on":"jobs-switch",onClick:()=>g(L.key),"aria-pressed":!!ee?.[L.key],children:[i.jsx("span",{className:"jobs-switch-track",children:i.jsx("span",{className:"jobs-switch-thumb"})}),i.jsx("span",{className:"jobs-switch-label",children:L.label})]},L.key))})]}),i.jsxs("div",{className:"jobs-filter-group",children:[i.jsx("p",{children:"Arbejdssted (center)"}),i.jsxs("div",{className:"jobs-address-box",children:[i.jsx("input",{className:"field-input jobs-inline-input",type:"text",value:ee?.distanceCenterName??"",onFocus:()=>G(!0),onBlur:()=>setTimeout(()=>G(!1),120),onChange:L=>{Ne({distanceCenterName:L.target.value,latitude:null,longitude:null})},placeholder:"Søg adresse"}),Z&&Ve.length>0?i.jsx("div",{className:"jobs-place-suggestions glass-panel",children:Ve.map(L=>i.jsx("button",{type:"button",className:"jobs-suggestion-item",onMouseDown:()=>{F(L.placeId)},children:L.description},L.placeId))}):null]})]}),i.jsxs("div",{className:"jobs-filter-group",children:[i.jsxs("p",{children:["Afstand fra center (",Math.round(ee?.workDistance??0)," km)"]}),i.jsx("input",{className:"jobs-distance-slider",type:"range",min:0,max:500,value:ee?.workDistance??"",onChange:L=>{const me=L.target.value;Ne({workDistance:me?Number(me):null})}})]}),ee?.workTypePartTime?i.jsxs("div",{className:"jobs-filter-group",children:[i.jsx("p",{children:"Deltidstimer pr. uge"}),i.jsx("input",{className:"field-input jobs-inline-input",type:"number",min:1,max:37,value:ee?.partTimeHours??"",onChange:L=>{const me=L.target.value;Ne({partTimeHours:me?Number(me):null})},placeholder:"Fx 20"})]}):null]})})]}),i.jsx("article",{className:"glass-panel dash-card jobs-tabs-card",children:i.jsxs("div",{className:"mode-tabs jobs-tabs",children:[i.jsx("button",{type:"button",className:b==="jobs"?"tab-btn active":"tab-btn",onClick:()=>j("jobs"),children:"Jobs"}),i.jsx("button",{type:"button",className:b==="gemte"?"tab-btn active":"tab-btn",onClick:()=>j("gemte"),children:"Gemte"}),i.jsx("button",{type:"button",className:b==="sogte"?"tab-btn active":"tab-btn",onClick:()=>j("sogte"),children:"Søgte jobs"})]})}),i.jsxs("section",{className:"jobs-results-section",children:[i.jsxs("div",{className:"dash-header",children:[i.jsx("h4",{children:b==="jobs"?"Jobs":b==="gemte"?"Gemte jobs":"Søgte jobs"}),i.jsxs("div",{className:"jobs-results-tools",children:[b==="jobs"?i.jsxs("div",{className:"jobs-top-search",children:[i.jsx("input",{className:"field-input jobs-top-search-input",list:"jobs-search-words",value:B,onChange:L=>fe(L.target.value),onKeyDown:L=>{L.key==="Enter"&&(L.preventDefault(),_t())},placeholder:"Søg jobtitel eller nøgleord"}),i.jsx("datalist",{id:"jobs-search-words",children:Et.map(L=>i.jsx("option",{value:L},L))}),i.jsx("button",{type:"button",className:"secondary-btn",onClick:_t,children:"Søg"})]}):null,i.jsxs("span",{className:"chip",children:[ye.length," resultater"]})]})]}),ae?i.jsx("p",{children:"Indlæser jobs..."}):null,je?i.jsx("p",{className:"status error",children:je}):null,ae?i.jsx("div",{className:"jobs-results-grid","aria-hidden":!0,children:Array.from({length:6}).map((L,me)=>i.jsxs("article",{className:"glass-panel jobs-result-card jobs-skeleton-card",children:[i.jsx("div",{className:"jobs-skeleton-line w-55"}),i.jsx("div",{className:"jobs-skeleton-line w-35"}),i.jsx("div",{className:"jobs-skeleton-line w-70"}),i.jsx("div",{className:"jobs-skeleton-line w-90"}),i.jsx("div",{className:"jobs-skeleton-line w-80"}),i.jsxs("div",{className:"jobs-skeleton-row",children:[i.jsx("div",{className:"jobs-skeleton-pill"}),i.jsx("div",{className:"jobs-skeleton-pill"})]})]},`skeleton-${me}`))}):null,!ae&&!je&&ye.length===0?i.jsx("p",{children:"Ingen jobs fundet endnu."}):null,!ae&&!je&&ye.length>0?i.jsx("div",{className:"jobs-results-grid",children:ye.map(L=>i.jsxs("article",{className:"glass-panel jobs-result-card",role:"button",tabIndex:0,onClick:()=>u(L.id,L.fromJobnet),onKeyDown:me=>{(me.key==="Enter"||me.key===" ")&&(me.preventDefault(),u(L.id,L.fromJobnet))},children:[i.jsxs("div",{className:"jobs-result-top",children:[i.jsxs("div",{className:"jobs-result-brand",children:[L.logoUrl||L.companyLogoImage?i.jsx("img",{className:"jobs-result-logo-img",src:L.logoUrl||L.companyLogoImage,alt:L.companyName}):i.jsx("div",{className:"jobs-result-logo",children:ge(L.companyName)}),i.jsxs("div",{children:[i.jsx("p",{className:"jobs-result-company",children:L.companyName}),i.jsx("p",{className:"jobs-result-address",children:L.address||"Ukendt lokation"})]})]}),i.jsx("button",{type:"button",className:L.isSaved?"jobs-bookmark-icon active":"jobs-bookmark-icon",disabled:!!X[L.id],onClick:()=>{C(L,!L.isSaved,b==="gemte"&&L.isSaved)},onMouseDown:me=>me.stopPropagation(),onClickCapture:me=>me.stopPropagation(),"aria-label":L.isSaved?"Fjern gemt job":"Gem job",title:L.isSaved?"Fjern gemt":"Gem job",children:X[L.id]?"…":L.isSaved?"★":"☆"})]}),i.jsx("h5",{className:"jobs-result-title",children:L.title}),i.jsx("p",{className:"jobs-result-occupation",children:L.occupationName||"Ikke angivet"}),i.jsx("p",{className:"jobs-result-description",children:L.descriptionIntro||"Ingen beskrivelse."}),i.jsxs("div",{className:"jobs-result-tags",children:[i.jsxs("span",{className:"chip",children:["Frist: ",Be(L.applicationDeadline)]}),typeof L.candidateDistance=="number"?i.jsxs("span",{className:"chip",children:[L.candidateDistance.toFixed(1)," km"]}):null,i.jsx("span",{className:"chip",children:b==="jobs"?"Nyt match":b==="gemte"?"Favorit":"Ansøgt"})]}),i.jsx("div",{className:"jobs-result-footer",children:i.jsx("button",{type:"button",className:"primary-btn jobs-card-primary-btn",onClick:me=>{me.stopPropagation(),u(L.id,L.fromJobnet)},children:b==="sogte"?"Se ansøgning":"Åbn job"})})]},L.id))}):null]})]})]})]})}function Ri(r){return r instanceof Date?r.toISOString():typeof r=="string"?r:""}function wm(r){const c=[r.road,r.houseNum,r.zip,r.zipName].filter(u=>typeof u=="string"&&u.trim().length>0).join(" ");return{id:r.id,title:r.title??"Job",companyName:r.hiringCompanyName??"Ukendt virksomhed",occupationName:r.occupation?.name??"",address:c||r.zipName||"Ukendt adresse",description:r.description??"",applicationDeadline:Ri(r.applicationDeadline),websiteUrl:r.applicationUrl||r.hiringCompanyUrl||"",logoUrl:r.logoUrl||"",fromJobnet:!0,isSaved:!1,isApplied:!!r.applied,isFullTime:typeof r.isFullTime=="boolean"?r.isFullTime:null,workTimes:Array.isArray(r.workTimes)?r.workTimes:[],contactName:r.contactName??"",hiringCompanyName:r.hiringCompanyName??"",datePosted:Ri(r.datePosted),employmentDate:Ri(r.employmentDate),startAsSoonAsPossible:typeof r.startAsSoonAsPossible=="boolean"?r.startAsSoonAsPossible:null,numberOfPositions:typeof r.numberOfPositions=="number"?r.numberOfPositions:null}}function Dm(r,c){return{id:r,title:c.title??"Job",companyName:c.companyName??"Ukendt virksomhed",occupationName:c.position??"",address:"",description:[c.descriptionIntro,c.descriptionPosition,c.descriptionOffer].filter(u=>typeof u=="string"&&u.trim().length>0).join(` `),applicationDeadline:Ri(c.applicationDeadline),websiteUrl:c.website??"",logoUrl:"",fromJobnet:!1,isSaved:!1,isApplied:!!c.appliedJob,isFullTime:null,workTimes:Array.isArray(c.workTimes)?c.workTimes:[],contactName:"",hiringCompanyName:c.companyName??"",datePosted:"",employmentDate:Ri(c.fromDate),startAsSoonAsPossible:null,numberOfPositions:typeof c.numberOfPositions=="number"?c.numberOfPositions:null}}class Zg{constructor(c=new pc){this.jobService=c}async getDetail(c,u){if(u)try{const o=await this.jobService.getJobNetJobDetail(c);return wm(o)}catch{const o=await this.jobService.getJobDetail(c);return Dm(c,o)}try{const o=await this.jobService.getJobDetail(c);return Dm(c,o)}catch{const o=await this.jobService.getJobNetJobDetail(c);return wm(o)}}async toggleBookmark(c,u,o){const m=u?"star":"arbejd.com";await this.jobService.bookmarkJobV2(c,o,m)}async markAsApplied(c,u){if(u){await this.jobService.toggleApplyJobnetjob(c,!0);return}await this.jobService.applyJob(c)}}function hc(r){if(!r)return"Ingen frist";const c=new Date(r);return Number.isNaN(c.getTime())?r:c.toLocaleDateString("da-DK",{day:"2-digit",month:"short",year:"numeric"})}function Kg(r){return/<[^>]+>/.test(r)}function Fg(r){if(r.workTimes.length===0)return"Ikke opgivet";const c={1:"Dag",2:"Aften",3:"Nat",4:"Weekend"};return r.workTimes.map(u=>c[u]??`Type ${u}`).join(", ")}function Ig(r){return r.startAsSoonAsPossible?"Snarest muligt":r.employmentDate?hc(r.employmentDate):"Ikke opgivet"}function $g(r){const c=r.trim();return c.length>0?c:"Ikke opgivet"}function Nn({label:r,value:c}){return i.jsxs("div",{className:"job-info-row",children:[i.jsx("span",{children:r}),i.jsx("strong",{children:c})]})}function Wg({jobId:r,fromJobnet:c,onLogout:u,onNavigate:o}){const[m,b]=h.useState(()=>window.localStorage.getItem("arbejd.sidebar.collapsed")==="1"),[j,q]=h.useState(null),[D,v]=h.useState(!0),[V,k]=h.useState(null),[H,J]=h.useState(!1),[P,Z]=h.useState(!1),G=h.useMemo(()=>new Zg,[]);h.useEffect(()=>{let ae=!0;return v(!0),k(null),G.getDetail(r,c).then(Q=>{ae&&q(Q)}).catch(Q=>{ae&&k(Q instanceof Error?Q.message:"Could not load job detail.")}).finally(()=>{ae&&v(!1)}),()=>{ae=!1}},[r,c,G]);async function B(){if(j){J(!0),k(null);try{await G.toggleBookmark(j.id,j.fromJobnet,!j.isSaved),q({...j,isSaved:!j.isSaved})}catch(ae){k(ae instanceof Error?ae.message:"Could not update saved state.")}finally{J(!1)}}}async function fe(){if(j){Z(!0),k(null);try{await G.markAsApplied(j.id,j.fromJobnet),q({...j,isApplied:!0})}catch(ae){k(ae instanceof Error?ae.message:"Could not mark as applied.")}finally{Z(!1)}}}return i.jsxs("section",{className:"dashboard-layout",children:[i.jsx(Ya,{collapsed:m,activeKey:"jobs",onToggle:()=>b(ae=>{const Q=!ae;return window.localStorage.setItem("arbejd.sidebar.collapsed",Q?"1":"0"),Q}),onSelect:ae=>{(ae==="dashboard"||ae==="cv"||ae==="jobs"||ae==="beskeder"||ae==="ai-jobagent"||ae==="ai-agent"||ae==="simulator"||ae==="abonnement")&&o(ae)}}),i.jsxs("main",{className:"dashboard-main",children:[i.jsx(Ja,{title:"Jobdetaljer",userName:"Anders Jensen",planLabel:"Jobseeker Pro",onLogout:u}),i.jsx("div",{className:"dashboard-scroll",children:i.jsxs("section",{className:"job-detail-layout",children:[i.jsxs("article",{className:"glass-panel dash-card job-detail-main",children:[D?i.jsx("p",{children:"Indlæser jobdetaljer..."}):null,V?i.jsx("p",{className:"status error",children:V}):null,!D&&!V&&j?i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"job-detail-head",children:[i.jsx("div",{className:"job-detail-logo-wrap",children:j.logoUrl?i.jsx("img",{src:j.logoUrl,alt:j.companyName,className:"job-detail-logo"}):i.jsx("div",{className:"job-detail-logo-fallback",children:j.companyName.slice(0,1).toUpperCase()||"A"})}),i.jsxs("div",{children:[i.jsx("h3",{children:j.title}),i.jsx("p",{className:"job-detail-company",children:j.companyName}),j.occupationName?i.jsx("p",{className:"job-detail-meta",children:j.occupationName}):null,j.address?i.jsx("p",{className:"job-detail-meta",children:j.address}):null,i.jsxs("p",{className:"job-detail-meta",children:["Ansøgningsfrist: ",hc(j.applicationDeadline)]})]})]}),i.jsxs("div",{className:"job-detail-description",children:[i.jsx("h4",{children:"Om jobbet"}),j.description?Kg(j.description)?i.jsx("div",{className:"job-detail-richtext",dangerouslySetInnerHTML:{__html:j.description}}):i.jsx("p",{children:j.description}):i.jsx("p",{children:"Ingen beskrivelse tilgængelig."})]})]}):null]}),i.jsxs("aside",{className:"job-detail-side",children:[j?i.jsxs("article",{className:"glass-panel dash-card job-detail-info-card",children:[i.jsx("h4",{children:"Info"}),i.jsxs("div",{className:"job-info-grid",children:[i.jsx(Nn,{label:"Arbejdstype",value:j.isFullTime==null?"Ikke opgivet":j.isFullTime?"Fuldtid":"Deltid"}),i.jsx(Nn,{label:"Arbejdstid",value:Fg(j)}),i.jsx(Nn,{label:"Kontaktperson",value:$g(j.contactName)}),i.jsx(Nn,{label:"Arbejdsgiver",value:j.hiringCompanyName?.trim()?j.hiringCompanyName:"Anonym"}),i.jsx(Nn,{label:"Oprettet",value:j.datePosted?hc(j.datePosted):"Ikke opgivet"}),i.jsx(Nn,{label:"Ansøgningsfrist",value:j.applicationDeadline?hc(j.applicationDeadline):"Ikke opgivet"}),i.jsx(Nn,{label:"Ansættelsesdato",value:Ig(j)}),i.jsx(Nn,{label:"Antal stillinger",value:j.numberOfPositions==null?"Ikke opgivet":String(j.numberOfPositions)})]})]}):null,i.jsxs("article",{className:"glass-panel dash-card job-detail-actions",children:[i.jsx("h4",{children:"Handlinger"}),i.jsxs("button",{type:"button",className:j?.isSaved?"job-action-btn save active":"job-action-btn save",onClick:()=>{B()},disabled:!j||H,children:[i.jsx("span",{className:"job-action-icon","aria-hidden":!0,children:"★"}),i.jsx("span",{children:H?"Gemmer...":j?.isSaved?"Fjern gemt job":"Gem job"})]}),i.jsxs("button",{type:"button",className:"job-action-btn website",onClick:()=>{j?.websiteUrl&&window.open(j.websiteUrl,"_blank","noopener,noreferrer")},disabled:!j?.websiteUrl,children:[i.jsx("span",{className:"job-action-icon","aria-hidden":!0,children:"↗"}),i.jsx("span",{children:"Åbn hjemmeside"})]}),i.jsxs("button",{type:"button",className:j?.isApplied?"job-action-btn applied active":"job-action-btn applied",onClick:()=>{fe()},disabled:!j||P||!!j?.isApplied,children:[i.jsx("span",{className:"job-action-icon","aria-hidden":!0,children:"✓"}),i.jsx("span",{children:P?"Opdaterer...":j?.isApplied?"Markeret som søgt":"Marker som søgt"})]}),i.jsxs("button",{type:"button",className:"job-action-btn simulator",onClick:()=>window.alert("Interview-træning kobles på i næste step."),children:[i.jsx("span",{className:"job-action-icon","aria-hidden":!0,children:"✨"}),i.jsx("span",{children:"Træn jobsamtale"})]}),i.jsxs("button",{type:"button",className:"job-action-btn application",onClick:()=>window.alert("Ansøgningsgenerator kobles på i næste step."),children:[i.jsx("span",{className:"job-action-icon","aria-hidden":!0,children:"✦"}),i.jsx("span",{children:"Generer ansøgning"})]})]})]})]})})]})]})}function Pg(){const r=h.useMemo(()=>new Vm,[]),[c,u]=h.useState([]),[o,m]=h.useState(!1),[b,j]=h.useState(!1),[q,D]=h.useState(0),[v,V]=h.useState(null),k=h.useCallback(async()=>{m(!0),V(null);try{const[P,Z]=await Promise.all([r.getThreads(),r.getUnreadCount().catch(()=>0)]);u(P),D(Z)}catch(P){V(P instanceof Error?P.message:"Could not load messages.")}finally{m(!1)}},[r]),H=h.useCallback(async(P,Z)=>{if(Z.trim()){j(!0),V(null);try{await r.sendMessage(P,Z),await k()}catch(G){V(G instanceof Error?G.message:"Could not send message.")}finally{j(!1)}}},[k,r]),J=h.useCallback(async P=>{try{await r.markThreadReadByMessageId(P),u(Z=>Z.map(G=>{if(!P)return G;const B=G.allMessages.map(fe=>fe.id===P||!fe.fromCandidate&&!fe.seen?{...fe,seen:new Date}:fe);return{...G,allMessages:B,latestMessage:G.latestMessage?.id===P?{...G.latestMessage,seen:new Date}:G.latestMessage}}))}catch{}},[r]);return{threads:c,unreadCount:q,isLoading:o,isSending:b,error:v,load:k,sendMessage:H,markThreadRead:J}}function _m(r){if(!r)return"";const c=r instanceof Date?r:new Date(r);return Number.isNaN(c.getTime())?"":c.toLocaleString("da-DK",{day:"2-digit",month:"short",hour:"2-digit",minute:"2-digit"})}function ev(r){const c=(r??"").trim();return c.length>0?c.slice(0,1).toUpperCase():"A"}function tv({onLogout:r,onNavigate:c}){const[u,o]=h.useState(()=>window.localStorage.getItem("arbejd.sidebar.collapsed")==="1"),[m,b]=h.useState(""),[j,q]=h.useState(""),{threads:D,unreadCount:v,isLoading:V,isSending:k,error:H,load:J,sendMessage:P,markThreadRead:Z}=Pg();h.useEffect(()=>{J()},[J]),h.useEffect(()=>{if(D.length===0){b("");return}b(Q=>Q&&D.some(ye=>ye.id===Q)?Q:D[0].id)},[D]);const G=h.useMemo(()=>D.find(Q=>Q.id===m)??null,[D,m]),B=(G?.allMessages?.length??0)>0;async function fe(Q){b(Q);const pe=D.find(le=>le.id===Q)?.allMessages.find(le=>!le.fromCandidate&&!le.seen&&le.id);pe?.id&&await Z(pe.id)}async function ae(Q){if(Q.preventDefault(),!G||!j.trim()||k)return;const ye=G.id,pe=j;q(""),await P(ye,pe)}return i.jsxs("section",{className:"dashboard-layout",children:[i.jsx(Ya,{collapsed:u,activeKey:"beskeder",onToggle:()=>o(Q=>{const ye=!Q;return window.localStorage.setItem("arbejd.sidebar.collapsed",ye?"1":"0"),ye}),onSelect:Q=>{(Q==="dashboard"||Q==="cv"||Q==="jobs"||Q==="beskeder"||Q==="ai-jobagent"||Q==="ai-agent"||Q==="simulator"||Q==="abonnement")&&c(Q)}}),i.jsxs("main",{className:"dashboard-main",children:[i.jsx(Ja,{title:"Beskeder",userName:"Anders Jensen",planLabel:"Jobseeker Pro",onLogout:r}),i.jsx("div",{className:"dashboard-scroll",children:i.jsxs("section",{className:"messages-layout",children:[i.jsxs("aside",{className:"glass-panel dash-card messages-threads-card",children:[i.jsxs("div",{className:"messages-list-head",children:[i.jsx("h4",{children:"Samtaler"}),i.jsxs("span",{className:"messages-unread-chip",children:["Ulæste: ",v]})]}),V?i.jsx("p",{children:"Indlæser beskeder..."}):null,H?i.jsx("p",{className:"status error",children:H}):null,!V&&D.length===0?i.jsx("p",{children:"Ingen beskeder endnu."}):null,i.jsx("div",{className:"messages-thread-list",children:D.map(Q=>{const ye=Q.id===m,pe=Q.allMessages.some(le=>!le.fromCandidate&&!le.seen);return i.jsxs("button",{type:"button",className:ye?"messages-thread-item active":"messages-thread-item",onClick:()=>{fe(Q.id)},children:[i.jsxs("div",{className:"messages-thread-avatar-wrap",children:[Q.companyLogoUrl?i.jsx("img",{src:Q.companyLogoUrl,alt:Q.companyName,className:"messages-thread-avatar"}):i.jsx("div",{className:"messages-thread-avatar messages-thread-avatar-fallback",children:ev(Q.companyName)}),pe?i.jsx("span",{className:"messages-thread-dot"}):null]}),i.jsxs("div",{className:"messages-thread-content",children:[i.jsxs("div",{className:"messages-thread-row",children:[i.jsx("strong",{children:Q.companyName||"Firma"}),i.jsx("span",{children:_m(Q.latestMessage?.timeSent)})]}),i.jsx("p",{className:"messages-thread-title",children:Q.title||Q.jobPosting?.title||"Samtale"}),i.jsx("p",{className:"messages-thread-preview",children:Q.latestMessage?.text||"Ingen besked"})]})]},Q.id)})})]}),i.jsx("article",{className:"glass-panel dash-card messages-chat-card",children:G?i.jsxs(i.Fragment,{children:[i.jsxs("header",{className:"messages-chat-head",children:[i.jsxs("div",{children:[i.jsx("h4",{children:G.companyName}),i.jsx("p",{children:G.title||G.jobPosting?.title||"Samtale om job"})]}),i.jsx("button",{className:"secondary-btn",type:"button",onClick:()=>{J()},children:"Opdater"})]}),i.jsx("div",{className:"messages-chat-scroll",children:B?G.allMessages.map((Q,ye)=>{const pe=Q.fromCandidate;return i.jsxs("div",{className:pe?"message-bubble message-bubble-own":"message-bubble",children:[i.jsx("p",{children:Q.text}),i.jsx("span",{children:_m(Q.timeSent)})]},Q.id??`${G.id}-${ye}`)}):i.jsx("p",{children:"Ingen beskeder i denne tråd endnu."})}),i.jsxs("form",{className:"messages-composer",onSubmit:Q=>{ae(Q)},children:[i.jsx("input",{className:"field-input messages-composer-input",value:j,onChange:Q=>q(Q.target.value),placeholder:"Skriv en besked..."}),i.jsx("button",{className:"primary-btn",type:"submit",disabled:k||!j.trim(),children:k?"Sender...":"Send"})]})]}):i.jsx("p",{children:"Vælg en samtale for at se beskeder."})})]})})]})]})}class av{constructor(c=lt){this.http=c}addEscoToJobAgent(c){let u=z.backendApiV2+"1.0.0/client/job_agent_filter",o={esco_id:c};return this.http.post(u,o)}removeJobAgentFilter(c){let u=z.backendApiV2+"1.0.0/client/job_agent_filter/"+c;return this.http.delete(u)}}class nv{constructor(c=new Bi,u=new gc,o=new av,m=new Bm){this.candidateService=c,this.subscriptionService=u,this.jobAgentService=o,this.escoService=m}async loadInitialData(){const[c,u,o,m]=await Promise.allSettled([this.subscriptionService.getPaymentOverview(),this.candidateService.getJobAgentFilters(),this.candidateService.getCvSuggestion(),this.escoService.listAllEscos()]);return{paymentOverview:c.status==="fulfilled"?c.value:null,jobAgentFilters:u.status==="fulfilled"?u.value:[],cvSuggestions:o.status==="fulfilled"?this.withImprovements(o.value):[],escos:m.status==="fulfilled"?m.value:[]}}async addEscoToFilter(c){await this.jobAgentService.addEscoToJobAgent(c)}async removeFilter(c){await this.jobAgentService.removeJobAgentFilter(c)}async setFilterVisibility(c,u){await this.candidateService.updateJobAgentFilter({...c,visible:u})}getEscoSuggestions(c,u,o){const m=c.trim().toLowerCase();if(!m)return[];const b=new Set(o.map(j=>j.escoId));return u.filter(j=>!b.has(j.id)).filter(j=>j.preferedLabelDa.toLowerCase().includes(m)).slice(0,10)}getSuggestionText(c){return c>=0&&c<50?"Et godt første skridt mod flere relevante job.":c>=50&&c<100?"Kan styrke dine chancer i ansøgningsbunken.":c>=100&&c<150?"Ofte efterspurgt og forbedrer dine jobmuligheder markant.":c>=150&&c<200?"Et klart plus som gør dig mere attraktiv for arbejdsgivere.":c>=200?"En afgørende faktor der åbner langt flere jobmuligheder.":"Forbedrer din profil til kommende jobmatch."}withImprovements(c){return c.map(u=>{const o=[],m=[{items:u.jobImprovementSuggestion.educations??[],type:"education"},{items:u.jobImprovementSuggestion.languages??[],type:"language"},{items:u.jobImprovementSuggestion.driversLicenses??[],type:"driversLicense"},{items:u.jobImprovementSuggestion.qualifications??[],type:"qualification"},{items:u.jobImprovementSuggestion.certificates??[],type:"certificate"}];for(const b of m)for(const j of b.items)o.push({...j,improvementType:b.type});return o.sort((b,j)=>j.jobChanceIncrease-b.jobChanceIncrease),{...u,improvements:o}})}}const lv={paymentOverview:null,jobAgentFilters:[],cvSuggestions:[],escos:[]};function iv(){const r=h.useMemo(()=>new nv,[]),[c,u]=h.useState(lv),[o,m]=h.useState(!1),[b,j]=h.useState(!1),[q,D]=h.useState(null),v=h.useCallback(async()=>{m(!0),D(null);try{const J=await r.loadInitialData();u(J)}catch(J){D(J instanceof Error?J.message:"Could not load AI Agent data.")}finally{m(!1)}},[r]),V=h.useCallback(async J=>{j(!0),D(null);try{await r.addEscoToFilter(J);const P=await r.loadInitialData();u(P)}catch(P){D(P instanceof Error?P.message:"Could not add AI filter.")}finally{j(!1)}},[r]),k=h.useCallback(async J=>{j(!0),D(null);try{await r.removeFilter(J);const P=await r.loadInitialData();u(P)}catch(P){D(P instanceof Error?P.message:"Could not remove AI filter.")}finally{j(!1)}},[r]),H=h.useCallback(async(J,P)=>{j(!0),D(null);try{await r.setFilterVisibility(J,P),u(Z=>({...Z,jobAgentFilters:Z.jobAgentFilters.map(G=>G.id===J.id?{...G,visible:P}:G)}))}catch(Z){D(Z instanceof Error?Z.message:"Could not update AI filter visibility.")}finally{j(!1)}},[r]);return{...c,isLoading:o,isMutating:b,error:q,load:v,addEscoToFilter:V,removeFilter:k,setFilterVisibility:H,getEscoSuggestions:J=>r.getEscoSuggestions(J,c.escos,c.jobAgentFilters),getSuggestionText:J=>r.getSuggestionText(J)}}function sv(r){return r==="qualification"?"★":r==="driversLicense"?"↗":r==="certificate"?"✓":r==="education"?"▦":"◉"}function km(r){return r==="qualification"?"ai-notification-card qualification":r==="driversLicense"?"ai-notification-card drivers":r==="certificate"?"ai-notification-card certificate":r==="education"?"ai-notification-card education":"ai-notification-card language"}function cv(r){return typeof r.improvementType=="string"}function uv({onLogout:r,onNavigate:c,activeNavKey:u="ai-agent"}){const[o,m]=h.useState(()=>window.localStorage.getItem("arbejd.sidebar.collapsed")==="1"),[b,j]=h.useState(!1),[q,D]=h.useState(""),[v,V]=h.useState(null),[k,H]=h.useState(!1),[J,P]=h.useState(null),{paymentOverview:Z,jobAgentFilters:G,cvSuggestions:B,isLoading:fe,isMutating:ae,error:Q,load:ye,addEscoToFilter:pe,getEscoSuggestions:le,getSuggestionText:Ve}=iv();h.useEffect(()=>{ye()},[ye]),h.useEffect(()=>{if(!v&&B.length>0){V(B[0].escoId);return}v&&!B.some(F=>F.escoId===v)&&V(B[0]?.escoId??null)},[v,B]);const ee=h.useMemo(()=>le(q),[le,q]),je=h.useMemo(()=>B.find(F=>F.escoId===v)??B[0]??null,[B,v]),Se=h.useMemo(()=>{const C=(je?.improvements??[]).filter(cv);return k?C:C.slice(0,8)},[je,k]),de=(je?.improvements?.length??0)>8,ve=!!Z?.careerAgent;async function Ee(F){await pe(F),D("")}return i.jsxs("section",{className:"dashboard-layout",children:[i.jsx(Ya,{collapsed:o,activeKey:u,onToggle:()=>m(F=>{const C=!F;return window.localStorage.setItem("arbejd.sidebar.collapsed",C?"1":"0"),C}),onSelect:F=>{(F==="dashboard"||F==="cv"||F==="jobs"||F==="beskeder"||F==="ai-jobagent"||F==="ai-agent"||F==="simulator"||F==="abonnement")&&c(F)}}),i.jsxs("main",{className:"dashboard-main",children:[i.jsx(Ja,{title:"AI Agent",userName:"Anders Jensen",planLabel:"Jobseeker Pro",onLogout:r}),i.jsxs("div",{className:"dashboard-scroll",children:[i.jsxs("article",{className:"glass-panel dash-card ai-agent-hero",children:[i.jsx("h3",{children:"Din AI Agent"}),i.jsx("p",{children:"Din AI Agent analyserer dit CV og giver dig anbefalinger til, hvordan du kan forbedre dit CV og styrke dine jobmuligheder."})]}),Q?i.jsx("p",{className:"status error",children:Q}):null,i.jsxs("article",{className:"glass-panel dash-card ai-notification-section",children:[i.jsxs("div",{className:"ai-notification-head",children:[i.jsx("h4",{children:"Karriereagent"}),i.jsx("strong",{className:"ai-notification-kicker",children:"DIN KARRIEREAGENT FORESLÅR"}),i.jsx("p",{children:"Boost din profil ved hjælp af kunstig intelligens. Forslagene er udvalgt til din profil, ud fra 100.000+ jobopslag"})]}),i.jsx("div",{className:"ai-inline-controls",children:i.jsx("button",{type:"button",className:"primary-btn ai-add-filter-btn",onClick:()=>j(F=>!F),disabled:ae,children:b?"Luk filter":"+ Tilføj filter"})}),b?i.jsxs("div",{className:"ai-filter-search-wrap",children:[i.jsx("input",{className:"field-input ai-filter-search",value:q,onChange:F=>D(F.target.value),placeholder:"Søg stilling (ESCO)..."}),q.trim().length>0&&ee.length>0?i.jsx("div",{className:"ai-filter-suggestions glass-panel",children:ee.map(F=>i.jsx("button",{type:"button",className:"ai-filter-suggestion-item",onClick:()=>{Ee(F.id)},disabled:ae,children:F.preferedLabelDa},F.id))}):null]}):null,fe?i.jsx("p",{children:"Indlæser AI filtre..."}):null,!fe&&G.length===0?i.jsx("p",{className:"helper-text",children:"Ingen aktive AI filtre endnu. Tilføj en stilling for at starte."}):null,ve?null:i.jsx("p",{className:"helper-text",children:"Denne funktion kræver et aktivt abonnement med Karriereagent."}),ve&&B.length>0?i.jsx("div",{className:"ai-notification-source-tabs",children:B.map(F=>i.jsx("button",{type:"button",className:je?.escoId===F.escoId?"tab-btn active":"tab-btn",onClick:()=>{V(F.escoId),H(!1)},children:F.escoName},F.escoId))}):null,ve&&B.length===0&&!fe?i.jsx("p",{className:"helper-text",children:"Systemet beregner stadig på dine AI filtre. Kom tilbage om lidt."}):null,i.jsx("div",{className:"ai-notification-grid",children:Se.map(F=>{const C=`${F.escoId}-${F.improvementType}-${F.name}`,X=J===C;return i.jsxs("article",{className:X?`${km(F.improvementType)} expanded`:km(F.improvementType),role:"button",tabIndex:0,onClick:()=>P(te=>te===C?null:C),onKeyDown:te=>{(te.key==="Enter"||te.key===" ")&&(te.preventDefault(),P(Ae=>Ae===C?null:C))},children:[i.jsx("div",{className:"ai-notification-icon","aria-hidden":!0,children:sv(F.improvementType)}),i.jsxs("div",{children:[i.jsx("strong",{children:F.name}),i.jsx("p",{children:Ve(F.jobChanceIncrease)}),i.jsxs("span",{children:["+",F.jobChanceIncrease,"% relevans"]}),i.jsx("div",{className:X?"ai-notification-extra-wrap expanded":"ai-notification-extra-wrap",children:i.jsxs("div",{className:"ai-notification-extra",children:[i.jsx("p",{children:F.description||"Ingen ekstra beskrivelse tilgængelig endnu."}),typeof F.estimatedDurationMonths=="number"?i.jsxs("small",{children:["Estimeret varighed: ",F.estimatedDurationMonths," måneder"]}):null]})})]})]},C)})}),de?i.jsx("button",{type:"button",className:"secondary-btn ai-show-more-btn",onClick:()=>H(F=>!F),children:k?"Vis færre":"Vis flere"}):null]})]})]})]})}class rv{constructor(c=new Lm,u=new pc,o=new Hm){this.notificationService=c,this.jobService=u,this.placesService=o}async getNotificationSettings(){const c=await this.notificationService.getNotificationSetting();return Array.isArray(c)?c:[]}async getOccupationTree(){const c=await this.jobService.getOccupationCategorizations();return Array.isArray(c)?c:[]}async getNotifications(c,u){const o=await this.notificationService.getNotifications(c,u);return Array.isArray(o)?o:[]}async saveNotificationSetting(c,u){if(c==="new"){const o={...u};delete o.id,await this.notificationService.createNotificationSetting(o);return}await this.notificationService.updateNotificationSetting(c,u)}async deleteNotificationSetting(c){await this.notificationService.deleteNotificationSetting(c)}async markNotificationSeen(c){await this.notificationService.notificationSeenByUser(c)}async toggleNotificationBookmark(c,u){const o=!!c.jobnetPostingId,m=o?c.jobnetPostingId:c.jobPostingId;m&&await this.jobService.bookmarkJobV2(m,u,o?"star":"arbejd.com")}async searchPlaces(c){return(await this.placesService.searchPlaces(c)).predictions??[]}async getPlaceDetails(c){const o=(await this.placesService.getPlaceDetails(c)).result;return o?.formatted_address?{address:o.formatted_address,latitude:typeof o.geometry?.location?.lat=="number"?o.geometry.location.lat:null,longitude:typeof o.geometry?.location?.lng=="number"?o.geometry.location.lng:null}:null}}const fc=20;function Ll(){return{id:null,jobAgentName:"",workTimeDay:!1,workTimeEvening:!1,workTimeNight:!1,workTimeWeekend:!1,workTypePermanent:!1,workTypeFreelance:!1,workTypePartTime:!1,workTypeSubstitute:!1,workTypeTemporary:!1,workDistance:50,distanceCenterName:"",latitude:null,longitude:null,partTimeHours:null,notifyOnPush:!1,notifyOnSms:!1,searchText:"",escoIds:[]}}function mc(r){return{...Ll(),...r,id:r.id??null,jobAgentName:r.jobAgentName??"",distanceCenterName:r.distanceCenterName??"",searchText:r.searchText??"",escoIds:Array.isArray(r.escoIds)?r.escoIds:[],workDistance:typeof r.workDistance=="number"?r.workDistance:50}}function ov(r){return r.map(c=>({...c,expanded:!!c.expanded,activated:!!c.activated,someIsActive:!!c.someIsActive,subAreas:c.subAreas.map(u=>({...u,expanded:!!u.expanded,activated:!!u.activated,someIsActive:!!u.someIsActive,occupations:u.occupations.map(o=>({...o,activated:!!o.activated}))}))}))}function Ul(r,c){const u=new Set(c);return r.map(o=>{const m=o.subAreas.map(q=>{const D=q.occupations.map(V=>({...V,activated:u.has(V.id)})),v=D.filter(V=>V.activated).length;return{...q,occupations:D,activated:v>0&&v===D.length,someIsActive:v>0&&v0&&m.every(q=>q.activated),j=m.some(q=>q.activated||q.someIsActive);return{...o,subAreas:m,activated:b,someIsActive:j&&!b}})}function zm(r){const c=[];for(const u of r)for(const o of u.subAreas)for(const m of o.occupations)m.activated&&c.push(m.id);return c}function dv(r){const c=r instanceof Date?r:new Date(r);return Number.isNaN(c.getTime())?"":c.toLocaleDateString("da-DK",{day:"2-digit",month:"short",year:"numeric"})}function fv(r){return r?.trim()?r.trim().slice(0,1).toUpperCase():"Ar"}function mv(r){return r.some(c=>(c.escoIds?.length??0)>0)}function hv({onLogout:r,onNavigate:c,onOpenJob:u}){const[o,m]=h.useState(()=>window.localStorage.getItem("arbejd.sidebar.collapsed")==="1"),[b,j]=h.useState(!1),[q,D]=h.useState(!1),[v,V]=h.useState(!0),[k,H]=h.useState(!0),[J,P]=h.useState(!1),[Z,G]=h.useState(!1),[B,fe]=h.useState(!1),[ae,Q]=h.useState(!0),[ye,pe]=h.useState(null),[le,Ve]=h.useState([]),[ee,je]=h.useState([]),[Se,de]=h.useState("new"),[ve,Ee]=h.useState(Ll()),[F,C]=h.useState([]),[X,te]=h.useState(""),[Ae,Ne]=h.useState([]),g=h.useMemo(()=>new rv,[]);h.useEffect(()=>{let x=!0;async function Y(){pe(null),V(!0),H(!0);try{const[ue,be,De]=await Promise.all([g.getNotificationSettings(),g.getOccupationTree(),g.getNotifications(0,fc)]);if(!x)return;const Ie=ue.map(mc),gt=ov(be),kt=Ie[0]??Ll(),Ye=Ie[0]?.id??"new";Ve(Ie),de(Ye),Ee(kt),C(Ul(gt,kt.escoIds)),je(De),Q(De.length===fc)}catch(ue){if(!x)return;pe(ue instanceof Error?ue.message:"Kunne ikke indlæse AI JobAgent.")}finally{x&&(V(!1),H(!1))}}return Y(),()=>{x=!1}},[g]),h.useEffect(()=>{const x=ve.distanceCenterName?.trim()??"";if(!b||x.length<3){Ne([]);return}const Y=window.setTimeout(()=>{fe(!0),g.searchPlaces(x).then(ue=>{Ne(ue)}).catch(()=>{Ne([])}).finally(()=>fe(!1))},350);return()=>window.clearTimeout(Y)},[ve.distanceCenterName,b,g]);const O=h.useMemo(()=>{const x=X.trim().toLowerCase();if(!x)return[];const Y=[];for(const ue of F)for(const be of ue.subAreas)for(const De of be.occupations)De.name.toLowerCase().includes(x)&&Y.push({areaCode:ue.areaCode,subAreaCode:be.subAreaCode,occupation:De});return Y.slice(0,40)},[F,X]),K=h.useMemo(()=>zm(F).length,[F]),W=h.useMemo(()=>ee.filter(x=>!x.seenByUser).length,[ee]);function re(x){if(de(x),D(!1),te(""),x==="new"){const be=Ll();Ee(be),C(De=>Ul(De,[]));return}const Y=le.find(be=>be.id===x),ue=mc(Y??Ll());Ee(ue),C(be=>Ul(be,ue.escoIds))}function se(x,Y){C(ue=>ue.map(be=>{if(be.areaCode!==x)return be;const De=be.subAreas.map(Ie=>({...Ie,activated:Y,someIsActive:!1,occupations:Ie.occupations.map(gt=>({...gt,activated:Y}))}));return{...be,subAreas:De,activated:Y,someIsActive:!1}}))}function I(x,Y,ue){C(be=>be.map(De=>{if(De.areaCode!==x)return De;const Ie=De.subAreas.map(Ye=>Ye.subAreaCode!==Y?Ye:{...Ye,activated:ue,someIsActive:!1,occupations:Ye.occupations.map($e=>({...$e,activated:ue}))}),gt=Ie.length>0&&Ie.every(Ye=>Ye.activated),kt=Ie.some(Ye=>Ye.activated||Ye.someIsActive);return{...De,subAreas:Ie,activated:gt,someIsActive:kt&&!gt}}))}function ge(x,Y,ue){C(be=>be.map(De=>{if(De.areaCode!==x)return De;const Ie=De.subAreas.map(Ye=>{if(Ye.subAreaCode!==Y)return Ye;const $e=Ye.occupations.map(zt=>zt.id===ue?{...zt,activated:!zt.activated}:zt),sa=$e.filter(zt=>zt.activated).length;return{...Ye,occupations:$e,activated:sa>0&&sa===$e.length,someIsActive:sa>0&&sa<$e.length}}),gt=Ie.length>0&&Ie.every(Ye=>Ye.activated),kt=Ie.some(Ye=>Ye.activated||Ye.someIsActive);return{...De,subAreas:Ie,activated:gt,someIsActive:kt&&!gt}}))}async function Be(){if(ve.jobAgentName?.trim()){G(!0),pe(null);try{const x={...ve,jobAgentName:ve.jobAgentName.trim(),searchText:ve.searchText?.trim()||null,distanceCenterName:ve.distanceCenterName?.trim()||null,escoIds:zm(F)};await g.saveNotificationSetting(Se,x);const Y=(await g.getNotificationSettings()).map(mc);if(Ve(Y),Se==="new"){const ue=Y.find(be=>be.jobAgentName===x.jobAgentName)??Y[0];ue?.id!=null&&(de(ue.id),Ee(ue),C(be=>Ul(be,ue.escoIds)))}else{const ue=Y.find(be=>be.id===Se);ue&&(Ee(ue),C(be=>Ul(be,ue.escoIds)))}j(!1),D(!1)}catch(x){pe(x instanceof Error?x.message:"Kunne ikke gemme jobagent indstillinger.")}finally{G(!1)}}}async function Dt(){if(Se!=="new"){G(!0),pe(null);try{await g.deleteNotificationSetting(Se);const x=(await g.getNotificationSettings()).map(mc);Ve(x);const Y=x[0]??Ll();de(x[0]?.id??"new"),Ee(Y),C(ue=>Ul(ue,Y.escoIds))}catch(x){pe(x instanceof Error?x.message:"Kunne ikke slette jobagent.")}finally{G(!1)}}}async function _t(x){const Y=await g.getPlaceDetails(x);Y&&(Ee(ue=>({...ue,distanceCenterName:Y.address,latitude:Y.latitude,longitude:Y.longitude})),Ne([]))}async function Et(x){x.seenByUser||(g.markNotificationSeen(x.id),je(be=>be.map(De=>De.id===x.id?{...De,seenByUser:!0}:De)));const Y=!!x.jobnetPostingId,ue=Y?x.jobnetPostingId:x.jobPostingId;ue&&u(ue,Y)}async function L(x){const Y=!x.saved;try{await g.toggleNotificationBookmark(x,Y),je(ue=>ue.map(be=>be.id===x.id?{...be,saved:Y}:be))}catch{pe("Kunne ikke opdatere gemt status på notifikation.")}}async function me(){if(!(!ae||J)){P(!0),pe(null);try{const x=await g.getNotifications(ee.length,fc);je(Y=>[...Y,...x]),Q(x.length===fc)}catch(x){pe(x instanceof Error?x.message:"Kunne ikke indlæse flere notifikationer.")}finally{P(!1)}}}return i.jsxs("section",{className:"dashboard-layout",children:[i.jsx(Ya,{collapsed:o,activeKey:"ai-jobagent",onToggle:()=>m(x=>{const Y=!x;return window.localStorage.setItem("arbejd.sidebar.collapsed",Y?"1":"0"),Y}),onSelect:x=>{(x==="dashboard"||x==="cv"||x==="jobs"||x==="beskeder"||x==="ai-jobagent"||x==="ai-agent"||x==="simulator"||x==="abonnement")&&c(x)}}),i.jsxs("main",{className:"dashboard-main",children:[i.jsx(Ja,{title:"AI JobAgent",userName:"Anders Jensen",planLabel:"Jobseeker Pro",onLogout:r}),i.jsxs("div",{className:"dashboard-scroll",children:[ye?i.jsx("p",{className:"status error",children:ye}):null,i.jsxs("article",{className:"glass-panel dash-card jobagent-hero-card",children:[i.jsxs("div",{className:"jobagent-hero-top",children:[i.jsxs("div",{children:[i.jsx("span",{className:"jobagent-kicker",children:"AI JobAgent"}),i.jsx("h3",{children:"Automatisk jobmatch med dit CV"}),i.jsx("p",{children:"Jobagenten følger nye opslag og fremhæver relevante job baseret på dine valgte områder, arbejdstype og afstand."})]}),i.jsx("button",{type:"button",className:"primary-btn",onClick:()=>j(x=>!x),disabled:v,children:b?"Luk indstillinger":"Åbn indstillinger"})]}),v?i.jsx("p",{className:"jobagent-summary-note",children:"Indlæser jobagenter..."}):i.jsxs("div",{className:"jobagent-hero-metrics",children:[i.jsxs("div",{className:"jobagent-metric-pill",children:[i.jsx("span",{children:"Jobagenter"}),i.jsx("strong",{children:le.length})]}),i.jsxs("div",{className:"jobagent-metric-pill",children:[i.jsx("span",{children:"Aktive filtre"}),i.jsx("strong",{children:K})]}),i.jsxs("div",{className:"jobagent-metric-pill",children:[i.jsx("span",{children:"Nye notifikationer"}),i.jsx("strong",{children:W})]}),i.jsx("p",{className:"jobagent-summary-note",children:mv(le)?"Mindst én jobagent er aktiv.":"Vælg stillingstyper og områder for at aktivere en jobagent."})]})]}),i.jsxs("section",{className:"jobagent-layout-grid",children:[b?i.jsxs("article",{className:"glass-panel dash-card jobagent-settings-card",children:[i.jsxs("div",{className:"jobagent-settings-top",children:[i.jsxs("div",{children:[i.jsx("span",{className:"jobagent-kicker",children:"Opsaetning"}),i.jsx("h4",{children:"Jobagent indstillinger"})]}),i.jsxs("div",{className:"jobagent-settings-actions",children:[Se!=="new"?i.jsx("button",{type:"button",className:"secondary-btn danger",onClick:()=>{Dt()},disabled:Z,children:"Slet"}):null,i.jsx("button",{type:"button",className:"primary-btn",onClick:()=>{Be()},disabled:Z||!ve.jobAgentName?.trim(),children:Z?"Gemmer...":"Gem"})]})]}),i.jsxs("div",{className:"jobagent-settings-grid",children:[i.jsxs("label",{className:"jobagent-field",children:[i.jsx("span",{children:"Vælg jobagent"}),i.jsxs("select",{className:"field-input",value:Se==="new"?"new":String(Se),onChange:x=>{const Y=x.target.value;re(Y==="new"?"new":Number(Y))},children:[le.map(x=>i.jsx("option",{value:String(x.id),children:x.jobAgentName?.trim()||"Uden navn"},x.id??Math.random())),i.jsx("option",{value:"new",children:"Opret ny jobagent"})]})]}),i.jsxs("label",{className:"jobagent-field",children:[i.jsx("span",{children:"Jobagent navn"}),i.jsx("input",{className:"field-input",value:ve.jobAgentName??"",onChange:x=>Ee(Y=>({...Y,jobAgentName:x.target.value})),placeholder:"Fx. Min jobagent"})]}),i.jsxs("label",{className:"jobagent-field",children:[i.jsx("span",{children:"Søgetekst"}),i.jsx("input",{className:"field-input",value:ve.searchText??"",onChange:x=>Ee(Y=>({...Y,searchText:x.target.value})),placeholder:"Fritekst til søgning"})]}),i.jsxs("div",{className:"jobagent-field",children:[i.jsx("span",{children:"Arbejdsområder"}),i.jsx("button",{type:"button",className:"secondary-btn",onClick:()=>D(x=>!x),children:q?"Luk arbejdsområder":"Åbn arbejdsområder"})]}),i.jsxs("div",{className:"jobagent-field",children:[i.jsx("span",{children:"Arbejdstype"}),i.jsxs("div",{className:"jobagent-toggle-row",children:[i.jsx("button",{type:"button",className:ve.workTypePermanent?"tab-btn active":"tab-btn",onClick:()=>Ee(x=>({...x,workTypePermanent:!x.workTypePermanent})),children:"Fast"}),i.jsx("button",{type:"button",className:ve.workTypePartTime?"tab-btn active":"tab-btn",onClick:()=>Ee(x=>({...x,workTypePartTime:!x.workTypePartTime})),children:"Deltid"})]}),ve.workTypePartTime?i.jsx("input",{type:"number",min:0,max:37,className:"field-input",value:ve.partTimeHours??"",onChange:x=>Ee(Y=>({...Y,partTimeHours:x.target.value?Number(x.target.value):null})),placeholder:"Timer pr. uge"}):null]}),i.jsxs("div",{className:"jobagent-field jobagent-location-field",children:[i.jsx("span",{children:"Center for afstand"}),i.jsx("input",{className:"field-input",value:ve.distanceCenterName??"",onChange:x=>Ee(Y=>({...Y,distanceCenterName:x.target.value,latitude:null,longitude:null})),placeholder:"Søg adresse"}),B?i.jsx("small",{children:"Søger adresser..."}):null,Ae.length>0?i.jsx("div",{className:"jobagent-place-suggestions glass-panel",children:Ae.map(x=>i.jsx("button",{type:"button",onClick:()=>x.place_id&&void _t(x.place_id),children:x.description},`${x.place_id}-${x.description}`))}):null]}),i.jsxs("div",{className:"jobagent-field jobagent-distance-field",children:[i.jsxs("span",{children:["Arbejdsafstand: ",ve.workDistance??50," km"]}),i.jsx("input",{type:"range",min:0,max:500,value:ve.workDistance??50,onChange:x=>Ee(Y=>({...Y,workDistance:Number(x.target.value)}))})]})]}),q?i.jsxs("section",{className:"jobagent-workareas-card",children:[i.jsxs("div",{className:"jobagent-workareas-top",children:[i.jsx("h5",{children:"Arbejdsområder"}),i.jsxs("span",{children:[K," valgt"]})]}),i.jsxs("div",{className:"jobagent-workareas",children:[i.jsx("input",{className:"field-input",value:X,onChange:x=>te(x.target.value),placeholder:"Søg arbejdsområde"}),X.trim()&&O.length>0?i.jsx("div",{className:"jobagent-workareas-search-list",children:O.map(x=>i.jsxs("label",{className:"jobagent-checkline",children:[i.jsx("input",{type:"checkbox",checked:!!x.occupation.activated,onChange:()=>ge(x.areaCode,x.subAreaCode,x.occupation.id)}),i.jsx("span",{children:x.occupation.name})]},`${x.areaCode}-${x.subAreaCode}-${x.occupation.id}`))}):i.jsx("div",{className:"jobagent-workareas-tree",children:F.map(x=>i.jsxs("div",{className:"jobagent-workarea-node",children:[i.jsxs("div",{className:"jobagent-workarea-row",children:[i.jsx("button",{type:"button",className:"jobagent-expand-btn",onClick:()=>C(Y=>Y.map(ue=>ue.areaCode===x.areaCode?{...ue,expanded:!ue.expanded}:ue)),children:x.expanded?"▾":"▸"}),i.jsxs("label",{className:"jobagent-checkline",children:[i.jsx("input",{type:"checkbox",checked:x.activated||x.someIsActive,onChange:()=>se(x.areaCode,!(x.activated||x.someIsActive))}),i.jsx("span",{children:x.areaName})]})]}),x.expanded?i.jsx("div",{className:"jobagent-workarea-children",children:x.subAreas.map(Y=>i.jsxs("div",{className:"jobagent-workarea-node",children:[i.jsxs("div",{className:"jobagent-workarea-row",children:[i.jsx("button",{type:"button",className:"jobagent-expand-btn",onClick:()=>C(ue=>ue.map(be=>be.areaCode===x.areaCode?{...be,subAreas:be.subAreas.map(De=>De.subAreaCode===Y.subAreaCode?{...De,expanded:!De.expanded}:De)}:be)),children:Y.expanded?"▾":"▸"}),i.jsxs("label",{className:"jobagent-checkline",children:[i.jsx("input",{type:"checkbox",checked:Y.activated||Y.someIsActive,onChange:()=>I(x.areaCode,Y.subAreaCode,!(Y.activated||Y.someIsActive))}),i.jsx("span",{children:Y.subAreaName})]})]}),Y.expanded?i.jsx("div",{className:"jobagent-workarea-children",children:Y.occupations.map(ue=>i.jsxs("label",{className:"jobagent-checkline",children:[i.jsx("input",{type:"checkbox",checked:!!ue.activated,onChange:()=>ge(x.areaCode,Y.subAreaCode,ue.id)}),i.jsx("span",{children:ue.name})]},ue.id))}):null]},`${x.areaCode}-${Y.subAreaCode}`))}):null]},x.areaCode))})]})]}):null]}):null,i.jsxs("article",{className:"glass-panel dash-card jobagent-notifications-card",children:[i.jsxs("div",{className:"jobagent-notifications-top",children:[i.jsxs("div",{children:[i.jsx("span",{className:"jobagent-kicker",children:"Live feed"}),i.jsx("h4",{children:"Notifikationer"})]}),i.jsx("span",{className:"jobagent-notification-count",children:ee.length})]}),k?i.jsx("p",{children:"Indlæser notifikationer..."}):null,!k&&ee.length===0?i.jsx("p",{children:"Ingen notifikationer endnu."}):null,i.jsx("div",{className:"jobagent-notification-list",children:i.jsx("div",{className:"jobs-results-grid jobagent-results-grid",children:ee.map(x=>i.jsxs("article",{className:x.seenByUser?"glass-panel jobs-result-card jobagent-result-card":"glass-panel jobs-result-card jobagent-result-card unseen",role:"button",tabIndex:0,onClick:()=>{Et(x)},onKeyDown:Y=>{(Y.key==="Enter"||Y.key===" ")&&(Y.preventDefault(),Et(x))},children:[i.jsxs("div",{className:"jobs-result-top",children:[i.jsxs("div",{className:"jobs-result-brand",children:[x.logoUrl?i.jsx("img",{className:"jobs-result-logo-img",src:x.logoUrl,alt:x.companyName||"Virksomhed"}):i.jsx("div",{className:"jobs-result-logo",children:fv(x.companyName)}),i.jsxs("div",{children:[i.jsx("p",{className:"jobs-result-company",children:x.companyName||"Ukendt virksomhed"}),i.jsx("p",{className:"jobs-result-address",children:x.city?`${x.city} ${x.zip||""}`:"Ukendt lokation"})]})]}),i.jsx("button",{type:"button",className:x.saved?"jobs-bookmark-icon active":"jobs-bookmark-icon",onMouseDown:Y=>Y.stopPropagation(),onClickCapture:Y=>Y.stopPropagation(),onClick:()=>{L(x)},"aria-label":x.saved?"Fjern gemt job":"Gem job",title:x.saved?"Fjern gemt":"Gem job",children:x.saved?"★":"☆"})]}),i.jsx("h5",{className:"jobs-result-title",children:x.jobTitle||"Jobagent match"}),i.jsx("p",{className:"jobs-result-occupation",children:x.escoTitle||"AI JobAgent forslag"}),i.jsx("p",{className:"jobs-result-description",children:x.seenByUser?"Match fra din jobagent baseret på dine valgte filtre.":"Nyt match fra din jobagent."}),i.jsxs("div",{className:"jobs-result-tags",children:[i.jsx("span",{className:"chip",children:dv(x.notificationDate)}),x.distance?i.jsxs("span",{className:"chip",children:[Number(x.distance).toFixed(1)," km"]}):null,i.jsx("span",{className:"chip",children:x.seenByUser?"Set":"Ny"})]}),i.jsx("div",{className:"jobs-result-footer",children:i.jsx("button",{type:"button",className:"primary-btn jobs-card-primary-btn",onClick:Y=>{Y.stopPropagation(),Et(x)},children:"Åbn job"})})]},x.id))})}),ae?i.jsx("button",{type:"button",className:"secondary-btn jobagent-load-more",onClick:()=>{me()},disabled:J,children:J?"Indlæser...":"Indlæs flere"}):null]})]})]})]})]})}function pv(r){if(!r||typeof r!="object")return[];const c=r;return Array.isArray(c.interviews)?c.interviews.map(u=>{if(!u||typeof u!="object")return null;const o=u,m=typeof o.id=="string"?o.id:"";return m?{id:m,job_name:typeof o.job_name=="string"?o.job_name:"Interview",company_name:typeof o.company_name=="string"?o.company_name:null,interview_date:typeof o.interview_date=="string"?o.interview_date:null,is_completed:!!o.is_completed}:null}).filter(u=>!!u).slice(0,6):[]}function gv(r){if(!r)return"Ingen dato";const c=new Date(r);return Number.isNaN(c.getTime())?"Ingen dato":c.toLocaleDateString("da-DK",{day:"2-digit",month:"short",year:"numeric"})}function vv({onLogout:r,onNavigate:c}){const[u,o]=h.useState(()=>window.localStorage.getItem("arbejd.sidebar.collapsed")==="1"),[m,b]=h.useState([]),[j,q]=h.useState(!0),D=h.useMemo(()=>new Rm,[]);return h.useEffect(()=>{let v=!0;return q(!0),D.listInterviews(10,0).then(V=>{v&&b(pv(V))}).catch(()=>{v&&b([])}).finally(()=>{v&&q(!1)}),()=>{v=!1}},[D]),i.jsxs("section",{className:"dashboard-layout",children:[i.jsx(Ya,{collapsed:u,activeKey:"simulator",onToggle:()=>o(v=>{const V=!v;return window.localStorage.setItem("arbejd.sidebar.collapsed",V?"1":"0"),V}),onSelect:v=>{(v==="dashboard"||v==="cv"||v==="jobs"||v==="beskeder"||v==="ai-jobagent"||v==="ai-agent"||v==="simulator"||v==="abonnement")&&c(v)}}),i.jsxs("main",{className:"dashboard-main",children:[i.jsx(Ja,{title:"Interview Simulator",userName:"Anders Jensen",planLabel:"Jobseeker Pro",onLogout:r}),i.jsx("div",{className:"dashboard-scroll",children:i.jsxs("article",{className:"glass-panel dash-card",children:[i.jsxs("div",{className:"dash-header",children:[i.jsx("h4",{children:"Seneste interviews"}),i.jsx("button",{type:"button",className:"primary-btn jobs-apply-btn",children:"Start nyt interview"})]}),j?i.jsx("p",{children:"Indlæser interviews..."}):null,!j&&m.length===0?i.jsx("p",{children:"Ingen interviews endnu."}):null,i.jsx("ul",{className:"dashboard-feed-list",children:m.map(v=>i.jsx("li",{children:i.jsxs("div",{className:"dashboard-feed-item",children:[i.jsx("strong",{children:v.job_name}),i.jsxs("span",{children:[v.company_name||"Ukendt virksomhed"," • ",gv(v.interview_date)," • ",v.is_completed?"Gennemført":"Ikke færdig"]})]})},v.id))})]})})]})]})}function Mm(r){if(!r)return"Ikke tilgængelig";const c=r instanceof Date?r:new Date(r);return Number.isNaN(c.getTime())?"Ikke tilgængelig":c.toLocaleDateString("da-DK",{day:"2-digit",month:"short",year:"numeric"})}function bv({onLogout:r,onNavigate:c}){const[u,o]=h.useState(()=>window.localStorage.getItem("arbejd.sidebar.collapsed")==="1"),[m,b]=h.useState(null),[j,q]=h.useState(!0),D=h.useMemo(()=>new gc,[]);return h.useEffect(()=>{let v=!0;return q(!0),D.getPaymentOverview().then(V=>{v&&b(V)}).catch(()=>{v&&b(null)}).finally(()=>{v&&q(!1)}),()=>{v=!1}},[D]),i.jsxs("section",{className:"dashboard-layout",children:[i.jsx(Ya,{collapsed:u,activeKey:"abonnement",onToggle:()=>o(v=>{const V=!v;return window.localStorage.setItem("arbejd.sidebar.collapsed",V?"1":"0"),V}),onSelect:v=>{(v==="dashboard"||v==="cv"||v==="jobs"||v==="beskeder"||v==="ai-jobagent"||v==="ai-agent"||v==="simulator"||v==="abonnement")&&c(v)}}),i.jsxs("main",{className:"dashboard-main",children:[i.jsx(Ja,{title:"Abonnement",userName:"Anders Jensen",planLabel:"Jobseeker Pro",onLogout:r}),i.jsx("div",{className:"dashboard-scroll",children:i.jsxs("article",{className:"glass-panel dash-card",children:[i.jsx("h4",{children:"Din plan"}),j?i.jsx("p",{children:"Indlæser abonnement..."}):null,!j&&!m?i.jsx("p",{children:"Kunne ikke hente abonnement."}):null,m?i.jsxs("div",{className:"dashboard-subscription-content",children:[i.jsxs("p",{children:["Produkt: ",m.productTypeName||m.productType||"Ukendt"]}),i.jsxs("p",{children:["Fornyes: ",Mm(m.renewDate)]}),i.jsxs("p",{children:["Aktiv til: ",Mm(m.activeToDate)]}),i.jsxs("div",{className:"dashboard-feature-pills",children:[m.generateApplication?i.jsx("span",{className:"chip",children:"Ansøgninger"}):null,m.careerAgent?i.jsx("span",{className:"chip",children:"Karriereagent"}):null,m.downloadCv?i.jsx("span",{className:"chip",children:"CV download"}):null,m.jobInterviewSimulation?i.jsx("span",{className:"chip",children:"Simulator"}):null]})]}):null]})})]})]})}class yv{http;constructor(c=lt){this.http=c}login(c,u){let o=z.backendApi+"api/1.1.0/candidate/login",m={email:c,password:u};return this.http.post(o,m)}forgotPassword(c){let u=z.backendApi+"api/1.1.0/candidate/resetPassword/"+c.toLowerCase();return this.http.get(u)}}function zr(r,c){const u=r[c];return typeof u=="string"?u:null}class jv{authService;candidateService;constructor(c=new yv,u=new Bi){this.authService=c,this.candidateService=u}async login(c,u,o){const b=await this.authService.login(c,u)??{},j=zr(b,"token");if(!j)return{ok:!1,message:"Login fejlede: token mangler i svaret fra serveren."};const q={id:zr(b,"id")??"",token:j,email:zr(b,"email")??c,runOutDate:"forever"};return await Rl.setAuthData(q,o),{ok:!0,message:"Du er nu logget ind."}}async forgotPassword(c){return await this.authService.forgotPassword(c),{ok:!0,message:"Anmodning om nulstilling af kodeord er sendt."}}async register(c){const u=Number.parseInt(c.zip,10);if(Number.isNaN(u))return{ok:!1,message:"Postnummer skal være et tal."};const o={email:c.email,password:c.password,zip:u,zipName:c.zipName,awsUrl:"",latitude:0,longitude:0,firstName:c.firstName,lastName:c.lastName,subscribe:c.subscribe};return await this.candidateService.createAccountV2(o),{ok:!0,message:"Kontoen er oprettet."}}}function Sv(){const r=h.useMemo(()=>new jv,[]),[c,u]=h.useState(!1),[o,m]=h.useState(null);async function b(v){u(!0),m(null);try{const V=await v();return m(V),V}catch(V){const k={ok:!1,message:V instanceof Error?V.message:"Noget gik galt."};return m(k),k}finally{u(!1)}}function j(v,V,k){return b(()=>r.login(v,V,k))}function q(v){return b(()=>r.register(v))}function D(v){return b(()=>r.forgotPassword(v))}return{isLoading:c,result:o,login:j,register:q,forgotPassword:D}}function Mr(r){return!r||r==="/"?"/login":r.endsWith("/")&&r.length>1?r.slice(0,-1):r}function xv(){const[r,c]=h.useState(()=>Mr(window.location.pathname));h.useEffect(()=>{const o=()=>{c(Mr(window.location.pathname))};return window.addEventListener("popstate",o),()=>window.removeEventListener("popstate",o)},[]);const u=h.useCallback((o,m=!1)=>{const b=Mr(o);m?window.history.replaceState({},"",b):window.history.pushState({},"",b),c(b)},[]);return{path:r,navigate:u}}function Nv(){const{path:r,navigate:c}=xv(),{isLoading:u,result:o,login:m,register:b,forgotPassword:j}=Sv(),q=r.startsWith("/jobs/"),D=q?r.match(/^\/jobs\/([^/]+)\/(jobnet|arbejd)$/):null,v=D?decodeURIComponent(D[1]):"",V=D?D[2]==="jobnet":!1,k=r==="/register"?"register":r==="/forgot-password"?"forgot":r==="/dashboard"?"dashboard":r==="/cv"?"cv":r==="/jobs"?"jobs":r==="/beskeder"?"beskeder":r==="/ai-jobagent"?"ai-jobagent":r==="/ai-agent"?"ai-agent":r==="/simulator"?"simulator":r==="/abonnement"?"abonnement":q?"job-detail":"login";h.useEffect(()=>{const Z=window.localStorage.getItem("token"),G=r==="/login"||r==="/register"||r==="/forgot-password"||r==="/";if((r==="/dashboard"||r==="/cv"||r==="/jobs"||r==="/beskeder"||r==="/ai-jobagent"||r==="/ai-agent"||r==="/simulator"||r==="/abonnement"||q)&&!Z){c("/login",!0);return}G&&Z&&c("/dashboard",!0)},[r,c,q]);async function H(){await Rl.clearCredentials(),c("/login",!0)}function J(Z){if(Z==="dashboard"){c("/dashboard");return}if(Z==="cv"){c("/cv");return}if(Z==="jobs"){c("/jobs");return}if(Z==="ai-jobagent"){c("/ai-jobagent");return}if(Z==="ai-agent"){c("/ai-agent");return}if(Z==="simulator"){c("/simulator");return}if(Z==="abonnement"){c("/abonnement");return}c("/beskeder")}const P=k==="dashboard"||k==="cv"||k==="jobs"||k==="job-detail"||k==="beskeder"||k==="ai-jobagent"||k==="ai-agent"||k==="simulator"||k==="abonnement";return i.jsxs("main",{className:P?"auth-root dashboard-mode":"auth-root",children:[i.jsx("div",{className:"orb orb-1"}),i.jsx("div",{className:"orb orb-2"}),i.jsx("div",{className:"orb orb-3"}),k==="dashboard"?i.jsx(yg,{onLogout:H,onNavigate:J,onOpenJob:(Z,G)=>c(`/jobs/${encodeURIComponent(Z)}/${G?"jobnet":"arbejd"}`)}):k==="cv"?i.jsx(Bg,{onLogout:H,onNavigate:J}):k==="beskeder"?i.jsx(tv,{onLogout:H,onNavigate:J}):k==="ai-jobagent"?i.jsx(hv,{onLogout:H,onNavigate:J,onOpenJob:(Z,G)=>c(`/jobs/${encodeURIComponent(Z)}/${G?"jobnet":"arbejd"}`)}):k==="ai-agent"?i.jsx(uv,{onLogout:H,onNavigate:J,activeNavKey:"ai-agent"}):k==="simulator"?i.jsx(vv,{onLogout:H,onNavigate:J}):k==="abonnement"?i.jsx(bv,{onLogout:H,onNavigate:J}):k==="job-detail"&&D?i.jsx(Wg,{jobId:v,fromJobnet:V,onLogout:H,onNavigate:J}):k==="jobs"?i.jsx(Xg,{onLogout:H,onNavigate:J,onOpenJob:(Z,G)=>c(`/jobs/${encodeURIComponent(Z)}/${G?"jobnet":"arbejd"}`)}):i.jsxs("section",{className:"auth-shell glass-panel",children:[i.jsxs("aside",{className:"brand-panel",children:[i.jsx("div",{className:"brand-chip",children:i.jsx("span",{children:"Ar"})}),i.jsx("h1",{children:"Arbejd.com"}),i.jsx("p",{children:"AI-assisteret jobsøgning med glasdesign og fokus på flow."}),i.jsxs("ul",{className:"brand-list",children:[i.jsx("li",{children:"Log ind"}),i.jsx("li",{children:"Opret konto"}),i.jsx("li",{children:"Glemt kodeord"})]})]}),i.jsxs("section",{className:"form-panel glass-panel",children:[i.jsx("div",{className:"auth-theme-row",children:i.jsx(Um,{})}),i.jsxs("div",{className:"mode-tabs",children:[i.jsx("button",{className:k==="login"?"tab-btn active":"tab-btn",onClick:()=>c("/login"),type:"button",children:"Log ind"}),i.jsx("button",{className:k==="register"?"tab-btn active":"tab-btn",onClick:()=>c("/register"),type:"button",children:"Opret konto"}),i.jsx("button",{className:k==="forgot"?"tab-btn active":"tab-btn",onClick:()=>c("/forgot-password"),type:"button",children:"Glemt kode"})]}),k==="login"&&i.jsx(Pp,{isLoading:u,onSubmit:async(Z,G,B)=>{(await m(Z,G,B)).ok&&c("/dashboard")}}),k==="register"&&i.jsx(eg,{isLoading:u,onSubmit:async Z=>{(await b(Z)).ok&&c("/login")}}),k==="forgot"&&i.jsx(Wp,{isLoading:u,onSubmit:async Z=>{(await j(Z)).ok&&c("/login")}}),o&&i.jsx("p",{className:o.ok?"status success":"status error",children:o.message})]})]})]})}$p.createRoot(document.getElementById("root")).render(i.jsx(h.StrictMode,{children:i.jsx(Nv,{})}));