{"version":3,"file":"C63mFbBk.js","sources":["../../../../middleware/authenticated.client.ts"],"sourcesContent":["import { RegistrationStatus, type Client } from '~/models/clients';\r\n\r\nconst ROUTES_TO_AUTHENTICATE = ['account', 'dashboard'] as const;\r\n\r\nexport default defineNuxtRouteMiddleware(async (to, from) => {\r\n if (import.meta.server) {\r\n return;\r\n }\r\n\r\n const {\r\n // using $localePath instead of useLocalePath will not result in warning:\r\n // Calling useRoute within middleware may lead to misleading results\r\n $localePath: localePath,\r\n } = useNuxtApp();\r\n const authStore = useAuthStore();\r\n const layoutStore = useLayoutStore();\r\n const questionnairesStore = useQuestionnairesStore();\r\n\r\n const targetName = to.name as string | undefined | null;\r\n const shouldAuthenticate = ROUTES_TO_AUTHENTICATE.some((route) => targetName?.includes(route));\r\n\r\n if (shouldAuthenticate) {\r\n if (!authStore.isLoggedIn || !!authStore.user) {\r\n await authStore.hydrate();\r\n\r\n if (!authStore.isLoggedIn) {\r\n layoutStore.setAfterLoginPage({ page: to });\r\n\r\n return await navigateTo(localePath('login'));\r\n }\r\n }\r\n\r\n const fromName = from.name as string | null | undefined;\r\n if (\r\n !to.redirectedFrom &&\r\n !(targetName?.includes('account-') && fromName?.includes('account-'))\r\n ) {\r\n await questionnairesStore.getAll();\r\n if (\r\n !questionnairesStore.latestQuestionnaire ||\r\n (questionnairesStore.latestQuestionnaire &&\r\n (!questionnairesStore.latestQuestionnaire.IsCompleted ||\r\n (questionnairesStore.latestQuestionnaire.IsCompleted &&\r\n questionnairesStore.latestQuestionnaire.Blocked)))\r\n ) {\r\n return await navigateTo(localePath('account-questionnaire'));\r\n }\r\n\r\n if (\r\n authStore.user.RegistrationStatus === RegistrationStatus.InProgress ||\r\n authStore.user.RegistrationStatus === RegistrationStatus.ClientResponseNeeded\r\n ) {\r\n if (shouldRedirectToContractSigning(authStore.user)) {\r\n return await navigateTo(localePath('account-contract-signing'));\r\n }\r\n }\r\n }\r\n }\r\n});\r\n\r\nfunction shouldRedirectToContractSigning(user: Client) {\r\n return user.RegistrationStatus > RegistrationStatus.InProgress && !user.IsAgreedWithTerms;\r\n}\r\n"],"names":["ROUTES_TO_AUTHENTICATE","authenticated_client","defineNuxtRouteMiddleware","to","from","__temp","__restore","localePath","useNuxtApp","authStore","layoutStore","questionnairesStore","useQuestionnairesStore","targetName","route","__executeAsync","navigateTo","fromName","RegistrationStatus","shouldRedirectToContractSigning","user"],"mappings":"uFAIA,MAAeA,EAAA,CAAA,UAAiC,WAAa,EAC3DC,EAAwBC,EAAA,MAAAC,EAAAC,IAAA,CAAA,IAAAC,EAAAC,EAIlB,KAAA,aAISC,CACf,EAAAC,IACMC,MACAC,MAEAC,EAAgBC,IAChBC,EAAAV,EAAA,KAGJ,GADsBH,EAAA,KAAAc,GAAAD,GAAA,YAAAA,EAAA,SAAAC,EAAA,EACP,CACb,IAAA,CAAAL,EAAA,YAAAA,EAAA,QAEI,CAAAJ,GAAuB,EAAAU,EAAA,IAAAN,EAAA,QAAA,CAAA,EAAA,MAAAJ,EAAAC,EAAA,EACzB,CAAAG,EAA8B,YAE9B,OAAAC,8BACF,CAAAL,EAAAC,CAAA,EAAAS,EAAA,IAAAC,EAAAT,EAAA,OAAA,CAAA,CAAA,EAAAF,EAAA,MAAAA,EAAAC,EAAA,EAAAD,EAKA,MAAIY,EAAAb,EAAA,KAGJ,0DAAiCa,GAAA,MAAAA,0BAQ/B,GAPF,CACEZ,EAACC,CAAA,EAAAS,EACA,IAAAJ,EAAA,oBACG,EAIJ,CAAAA,EAAA,qBAAAA,EAAmC,sBAAA,CAAAA,mCAAwBA,EAAA,oBAAA,aAAAA,EAAA,oBAAA,SAC7D,MAAA,CAAAN,EAAAC,CAAA,EAAAS,EAAA,IAAAC,EAAAT,EAAA,uBAAA,CAAA,CAAA,EAAAF,EAAA,MAAAA,EAAAC,EAAA,EAAAD,EAMM,IAAAI,EAAA,KAAA,qBAA0CS,EAAO,YAAAT,EAAA,KAAA,qBAAAS,EAAA,uBACnDC,EAAaV,EAAA,IAAA,EACf,MAAA,CAAAJ,EAAAC,CAAA,EAAAS,EAAA,IAAAC,EAAAT,EAAA,0BAAA,CAAA,CAAA,EAAAF,EAAA,MAAAA,EAAAC,EAAA,EAAAD,CAGN,CACD,CAED,CAAA,EACE,SAAOc,EAA6CC,EAAA,CACtD,OAAAA,EAAA,mBAAAF,EAAA,YAAA,CAAAE,EAAA"}