1import{P as e,St as t,f as n}from"./82eqqkYy.js";import{g as r}from"./AYldlSiK.js";import{p as i}from"./CLD1paPK.js";import{i as a}from"./BNqa9wDI.js";import{t as o}from"./D9n7Oern.js";import{t as s}from"./Cq9Aqw5K.js";import{a as c,n as l}from"./CL7Uu-9A.js";import{n as u,r as d,t as f}from"./DU7vJwm-.js";import{a as p}from"./DXLrD4t_.js";import{a as m,r as h}from"./-aphUgPd.js";import{i as g}from"./CiIoPtQ7.js";var _=f` 2 fragment userFragment on User { 3 __typename 4 type 5 personId 6 givenName 7 familyName 8 isElectedMember 9 hashedPid 10 kind 11 metadata { 12 userTemplate 13 personTemplate 14 } 15 segmentationGroups { 16 __typename 17 name 18 id 19 } 20 authMethod 21 invalidAfter 22 personalNumber 23 email 24 regionName 25 regionId 26 version 27} 28 `,v=f` 29 fragment lastActivity on UserActivity { 30 remainingTime 31 lastActivity 32} 33 `,y=f` 34 fragment address on Address { 35 country 36 line1 37 line2 38 postalCode 39 postalRegion 40} 41 `,b=f` 42 fragment currentUserFull on FullUser { 43 addressHome { 44 ...address 45 } 46 age 47 educationLevel 48 educationLevelCode 49 email 50 familyName 51 givenName 52 personalNumber 53 phone 54 pid 55 privateConflictEmail 56 privateConflictPhone 57 protectedIdentity 58 regionId 59 regionName 60 sex 61 memberFrom 62} 63 `,x=f` 64 query currentUser { 65 currentUser { 66 ...userFragment 67 } 68} 69 ${_}`,S=f` 70 query currentUserFull { 71 currentUserFull { 72 ...currentUserFull 73 } 74} 75 ${b} 76${y}`,C=f` 77 query loginInitiated($authorizeUrl: String!, $returnUrl: String) { 78 loginInitiated(authorizeUrl: $authorizeUrl, returnUrl: $returnUrl) { 79 __typename 80 intent 81 redirectUrl 82 } 83} 84 `,w=f` 85 query getLastActivity { 86 lastActivity { 87 ...lastActivity 88 } 89} 90 ${v}`,T=f` 91 mutation setLastActivity($lastActive: String!) { 92 lastActivity(lastActive: $lastActive) { 93 ...lastActivity 94 } 95} 96 ${v}`,E=f` 97 mutation userAuthorize($authorizeInput: AuthorizeInput!) { 98 postApiUserAuthorize(authorizeInput: $authorizeInput) { 99 __typename 100 redirectUrl 101 rejectAfter 102 user { 103 ...userFragment 104 } 105 } 106} 107 ${_}`,D=f` 108 mutation userLogout($logoutRequestInput: LogoutRequestInput!) { 109 postApiUserLogout(logoutRequestInput: $logoutRequestInput) { 110 __typename 111 redirectUrl 112 } 113} 114 `,O=f` 115 mutation expireMe { 116 expireMeIn30Seconds { 117 ...lastActivity 118 } 119} 120 ${v}`,k=(e,t={})=>u({operationType:`query`,operation:x,clientId:`nuxtloginmicroservice`,variables:e},{...t,server:!0}),A=e=>d({operationType:`query`,operation:S,clientId:`nuxtloginmicroservice`,variables:e}),j=e=>d({operationType:`query`,operation:C,clientId:`nuxtloginmicroservice`,variables:e}),M=e=>d({operationType:`query`,operation:w,clientId:`nuxtloginmicroservice`,variables:e}),N=(e,t)=>u({operationType:`mutation`,operation:T,clientId:`nuxtloginmicroservice`,variables:e},t),P=(e,t)=>u({operationType:`mutation`,operation:E,clientId:`nuxtloginmicroservice`,variables:e},t),F=(e,t)=>u({operationType:`mutation`,operation:D,clientId:`nuxtloginmicroservice`,variables:e},t),I=(e,t)=>u({operationType:`mutation`,operation:O,clientId:`nuxtloginmicroservice`,variables:e},t),L=o.withTag(`user store`);function R(e){return t=>t!==null&&t.name===e}var z=3e4,B={kontaktuppgifter_medlem_uppdatera:`all`,anstallning_medlem_uppdatera:`user`,anstallning_medlem_avsluta:`user`,agarskap_medlem_avsluta:`user`,agarskap_medlem_uppdatera:`user`,arbetsmarknadsstatus_medlem_uppdatera:`user`,medlemskap_student_yrkesverksam_konvertera:`user`,utbildningsniva_medlem_uppdatera:`fullUser`},V={0:`anonymous`,1:`employable`,3:`pensioner`,4:`student`,8:`tria_student`,10:`self_employed`,11:`guest`,non_member:`none`},H=[`0`,`11`,`non_member`],U={0:`Anonym`,1:`Yrkesverksam`,3:`Pensionär`,4:`Studerande`,8:`Tria-studerande`,10:`Egenföretagare`,11:`Gästmedlem`,non_member:`none`},W=l(`user`,()=>{let o=t(null),l=t(null),u=t(``),d=t(`idle`),f=t([]);function _(e){u.value=e,d.value=`pending`,e&&L.log(`initiateLogin has intent set`)}function v(e,t){if(e.type===`0`){w(),d.value=`success`;return}if(!e.personId&&!H.includes(e.type)&&e.kind!==`mock`)throw L.error(`Cannot update user without personId`),Error(`Cannot update user without personId`);o.value=e,u.value=``,L.log(`intent reset by updateUser`),t?(d.value=`partial`,setTimeout(()=>{if(d.value===`partial`)throw w(),d.value=`error`,Error(`Did not manage to fulfill login in time!`)},t),N().catch(e=>{e.name!==`AbortError`&&L.error(`Failed to initialize user`,e)})):d.value=`success`}function y(e){return!!(o.value?.segmentationGroups??[]).find(R(e))}async function b(){try{d.value===`idle`&&await e(),await r(d).toMatch(e=>e!==`pending`&&e!==`partial`,{timeout:z,throwOnTimeout:!0})}catch(e){throw d.value=`error`,Error(`Reached max wait time to confirm user`,{cause:e})}}async function x(){try{await r(l).toBeTruthy({timeout:z,throwOnTimeout:!0})}catch(e){throw d.value=`error`,Error(`Reached max wait time to load full user data`,{cause:e})}}function S(e){f.value.push(e)}async function C(t=!1){if(!o.value?.authMethod&&!t)return;d.value=`pending`;let n=F({logoutRequestInput:{redirectUrl:`/`}});
120try{f.value.forEach(e=>{if(typeof e!=`function`){L.error(`Invalid logout listener`);return}e()})}catch(e){L.error(`Caught error in logout listeners`,e)}h(),await g(n.status,[`error`,`success`]);let{redirectUrl:r=`https://login.unionen.se/adfs/ls?wa=wsignout1.0&wreply=string`}=n.data.value?.postApiUserLogout??{};w(),d.value=`success`,i(),localStorage.setItem(`user`,JSON.stringify({"user-has-logged-out":!0})),await e(),a(r,{external:!0})}function w(){o.value=null,l.value=null,u.value=``,d.value=`idle`,f.value=[],L.log(`userStore reset, intent value reset`)}let{status:T,data:E,error:D,execute:O}=k({},{immediate:!1}),j=async()=>{try{if(d.value=`pending`,await O(),T.value===`error`&&(D.value&&L.error(JSON.stringify(D.value)),await O()),T.value!==`success`||!E.value?.currentUser){D.value&&L.error(JSON.stringify(D.value)),w(),d.value=`error`;return}v(E.value.currentUser)}catch(e){L.error(`Something went wrong fetching user login`),e&&L.error(JSON.stringify(e)),w(),d.value=`error`;return}L.debug(`user data fetched`)},M=async()=>A({}).then(e=>{e?.currentUserFull&&(l.value=e.currentUserFull),L.debug(`full user data fetched`)}).catch(e=>{L.error(`Failed to load full user object. Error: ${JSON.stringify(e)}`)});async function N(){if(await e(),u.value){L.log(`Have intent set, early return from user init`);return}try{if((d.value===`idle`||d.value===`partial`)&&await j(),o.value?.kind===`mock`&&o.value?.personId!==`mock`)throw Error(`Nuxt backend failed to set mock personId!`);if(!I.value||!K.value||!o.value?.personId)return;let e=p({includeSettled:!1}).then(e=>{e?.pendingForms&&m().initRequests(e.pendingForms)}).catch(e=>{throw L.error(`Failed to load pending forms for user. Error: ${JSON.stringify(e)}`),e});await Promise.all([M(),e])}catch(e){L.error(`Something went wrong fetching user login`),e&&L.error(e),w(),o.value=null,d.value=`error`,a(`/mitt-unionen/ej-medlem`,{external:!0})}L.debug(`user initialize done`)}let P=n(()=>d.value!==`pending`&&d.value!==`partial`&&(!o.value||o.value.type===`0`)),I=n(()=>d.value===`success`&&!!o.value?.authMethod||d.value===`partial`),W=n(()=>{if(d.value===`success`&&!o.value)return`anonymous`;if(d.value===`pending`||d.value===`idle`||!o.value)return`none`;if(o.value.type){let e=o.value?.type.toLowerCase();if(!Object.keys(V).includes(e))throw Error(`Unhandled member type "${o.value.type}"`);return V[e]}return`none`}),G=n(()=>{if(d.value===`success`&&!o.value)return`Anonym`;if(d.value===`pending`||d.value===`idle`||!o.value)return`none`;if(o.value.type){let e=o.value.type.toLowerCase();if(!Object.keys(U).includes(e))throw Error(`Unhandled member type sv "${o.value.type}"`);return U[e]}return`none`}),K=n(()=>d.value!==`pending`&&W.value!==`none`&&W.value!==`anonymous`),q=n(()=>o.value?.kind===`mock`),J=n(()=>(d.value===`partial`||d.value===`success`)&&!!o.value?.isElectedMember),Y=n(()=>d.value===`partial`||d.value===`success`&&o.value?.authMethod?o.value:null),X=n(()=>o.value?.authMethod&&typeof o.value.personId==`string`?s(o.value.personId):``),Z=n(()=>J.value?`Förtroendevald`:K.value?`Vanlig medlem`:`anonymous`);return N().catch(e=>{e.name!==`AbortError`&&L.error(`Failed to initialize user`,e)}),{user:o,userFull:c(l),intent:u,status:d,logoutListeners:c(f),initiateLogin:_,updateUser:v,hasGroup:y,waitForData:b,waitForFullUser:x,registerLogoutListener:S,logout:C,$reset:w,$updateOnFormServiceStatusChange:e=>{!e||e&&!B[e]||(B[e]===`user`?j():B[e]===`fullUser`?M():B[e]===`all`&&(j(),M()))},isAnonymous:P,hasLoggedIn:I,isMember:K,isMock:q,hasAssignment:J,authenticatedUser:Y,encryptedId:X,memberRole:Z,memberType:W,memberTypeSv:G}},{persist:{pick:[`intent`],afterHydrate(e){e.store.$state.intent.value&&e.store.$state.status.value===`error`?(e.store.$state.intent.value=``,L.log(`intent reset in userStore afterHydrate`)):e.store.$state.intent.value&&L.log(`intent set in userStore afterHydrate`)}},share:{enable:!0},formServiceDependencies:B});export{N as a,j as i,I as n,P as o,M as r,W as t};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.