{"version":3,"file":"deposit-5219fd47.js","sources":["../../../client-app/src/apps/deposit/i18n.ts","../../../client-app/src/apps/deposit/pages/Application/stages-se.tsx","../../../client-app/src/apps/deposit/pages/Application/stages-no.tsx","../../../client-app/src/apps/deposit/pages/Application/index.tsx","../../../client-app/src/apps/deposit/pages/Offer/loader.ts","../../../client-app/src/apps/deposit/pages/Offer/index.tsx","../../../client-app/src/apps/deposit/pages/Sign/actions.ts","../../../client-app/src/apps/deposit/pages/Sign/loader.ts","../../../client-app/src/apps/deposit/pages/Sign/index.tsx","../../../client-app/src/apps/deposit/App.tsx","../../../client-app/src/apps/deposit/main.tsx"],"sourcesContent":["import i18next from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport HttpApi from 'i18next-http-backend';\nimport { getRuntime } from '../../common/lib/runtime';\nimport { DocumentLanguageDetector } from '@n2-common/lib/DocumentLanguageDetector';\n\nconst runtime = getRuntime();\n\ni18next //\n    .use(initReactI18next)\n    .use(HttpApi)\n    .use(DocumentLanguageDetector)\n    .init({\n        interpolation: { escapeValue: false },\n        debug: false, //!runtime.isProd,\n        ns: ['common', 'validation', 'deposit'],\n        backend: {\n            loadPath: `${runtime.isProd ? '/client-apps' : ''}/locales/{{lng}}/{{ns}}.json?v=${runtime.build}`,\n        },\n        fallbackLng: 'se',\n    });\n","import { WizardStage } from '@n2-common/components/MultiStageOnePageWizard/types';\nimport { CreditCardNoApplicationInputModel } from '@n2-common/serverGeneratedTypings/creditCardNoApplicationInputModel';\nimport { TFunction } from 'i18next';\nimport { Config } from '.';\nimport { FormikValues } from 'formik';\nimport { EmailInput,  PhoneNumberInput, SwedishSsnInput } from '@n2-common/ui/CustomInput';\nimport { swedishPhoneNumber } from '@n2-common/validation/se/phoneNumber';\nimport { emailRequired } from '@n2-common/validation/common/email';\nimport { swedishNationalId } from '@n2-common/validation/se/nationalId';\nimport { stringRequired } from '@n2-common/validation/common/string';\nimport { addPleaseSelectOption } from '@n2-common/components/MultiStageOnePageWizard';\nimport { employmentStatusCodeSe } from '@n2-common/uiFieldValues/applicationFormFields';\nimport { FormikSelect } from '@n2-common/ui';\ntype FormValues = {\n    Applicant: Record<string, unknown>;\n    Consents: Record<string, boolean>,\n};\n\nfunction cleanup(values: FormikValues): CreditCardNoApplicationInputModel {\n    return values as CreditCardNoApplicationInputModel;\n}\n\nconst initialValues: FormValues = { Applicant: {}, Consents: {} };\n\nfunction resolveStages(t: TFunction): WizardStage<FormValues>[] {\n    return [\n        {\n            legend: '',\n            sectionNameForTracking: 'PersonalInformation',\n            fields: [\n                {\n                    name: 'Applicant.Email',\n                    validation: emailRequired(t),\n                    componentProps: {\n                        label: 'E-postadress',\n                    },\n                    Component: EmailInput,\n                },\n                {\n                    name: 'Applicant.Phonenumber',\n                    validation: swedishPhoneNumber(t),\n                    componentProps: {\n                        label: 'Mobilnummer',\n                    },\n                    Component: PhoneNumberInput,\n                },\n                {\n                    name: 'Applicant.NationalId',\n                    validation: swedishNationalId(),\n                    componentProps: {\n                        label: 'Personnummer',\n                    },\n                    Component: SwedishSsnInput,\n                },\n                  {\n                    name: 'Applicant.EmploymentStatus',\n                    validation: stringRequired(t),\n                    componentProps: {\n                        label: 'Din arbetssituation',\n                    },\n                    Component: (props)  => <FormikSelect {...props} options={addPleaseSelectOption(employmentStatusCodeSe, t)} />,\n                },\n            ],\n        }\n    ];\n}\n\nexport const config: Config<FormValues, CreditCardNoApplicationInputModel> = { cleanup, initialValues, resolveStages };\n","import { WizardStage } from '@n2-common/components/MultiStageOnePageWizard/types';\nimport { CreditCardNoApplicationInputModel } from '@n2-common/serverGeneratedTypings/creditCardNoApplicationInputModel';\nimport { TFunction } from 'i18next';\nimport { Config } from '.';\nimport { FormikValues } from 'formik';\nimport { EmailInput, NationalIdInput, PhoneNumberInput } from '@n2-common/ui/CustomInput';\nimport { nationalId } from '@n2-common/validation/no';\nimport { emailRequired } from '@n2-common/validation/common/email';\nimport { norwegianPhoneNumber } from '@n2-common/validation/no/phoneNumber';\nimport { stringRequired } from '@n2-common/validation/common/string';\nimport { employmentStatusCodeNo } from '@n2-common/uiFieldValues/applicationFormFields';\nimport { addPleaseSelectOption } from '@n2-common/components/MultiStageOnePageWizard';\nimport { FormikSelect } from '@n2-common/ui';\n\ntype FormValues = {\n    Applicant: Record<string, unknown>;\n    Consents: Record<string, boolean>,\n};\n\nfunction cleanup(values: FormikValues): CreditCardNoApplicationInputModel {\n    return values as CreditCardNoApplicationInputModel;\n}\n\nconst initialValues: FormValues = { Applicant: {}, Consents: {} };\n\nfunction resolveStages(t: TFunction): WizardStage<FormValues>[] {\n    return [\n        {\n            legend: '',\n            sectionNameForTracking: 'PersonalInformation',\n            fields: [\n                {\n                    name: 'Applicant.Email',\n                    validation: emailRequired(t),\n                    componentProps: {\n                        label: 'E-postadresse',\n                    },\n                    Component: EmailInput,\n                },\n                {\n                    name: 'Applicant.Phonenumber',\n                    validation: norwegianPhoneNumber(t),\n                    componentProps: {\n                        label: 'Mobilnummer',\n                    },\n                    Component: PhoneNumberInput,\n                },\n                {\n                    name: 'Applicant.NationalId',\n                    validation: nationalId.norwegianNationalId(),\n                    componentProps: {\n                        label: 'Personnummer',\n                    },\n                    Component: NationalIdInput,\n                },\n                  {\n                    name: 'Applicant.EmploymentStatus',\n                    validation: stringRequired(t),\n                    componentProps: {\n                        label: 'Din arbeidssituation',\n                    },\n                    Component: (props)  => <FormikSelect {...props} options={addPleaseSelectOption(employmentStatusCodeNo, t)} />,\n                },\n            ],\n        }\n    ];\n}\n\nexport const config: Config<FormValues, CreditCardNoApplicationInputModel> = { cleanup, initialValues, resolveStages };\n","import { Headline, useDismissableErrorMessage } from '@n2-common/ui';\nimport { useTranslation } from 'react-i18next';\nimport { MultiStageOnePageWizard } from '@n2-common/components';\nimport type { SubmitState, WizardStage } from '@n2-common/components/MultiStageOnePageWizard/types';\nimport { useCallback, useEffect, useLayoutEffect, useMemo, useState } from 'react';\nimport { getApplicatId, pollForExpectedApplicationState, postLoanApplication, submitSsnToGetGpid } from '@n2-common/services/legacyApplicationApiService';\nimport { N2ApplicationStatusToECommerceStatus, trackCoreBankEvent, trackEcommerceEvent } from '@n2-common/lib/gtm';\nimport { ApplicationStatusModel } from '@n2-common/serverGeneratedTypings/applicationStatusModel';\nimport { navigateToStep, ApplicationPaths } from '@n2-common/applicationPages/ApplicationFormsHelpers';\nimport { N2ApplicationStatus } from '@n2-common/serverGeneratedTypings/n2ApplicationStatus';\nimport { navigateToCorrectStep } from '../../App';\nimport { useNavigate } from 'react-router-dom';\nimport { useApplicationIdContext } from '@n2-common/components/ApplicationContext';\nimport { config as configSE } from './stages-se';\nimport { config as configNO } from './stages-no';\nimport { FormikValues } from 'formik';\nimport { TFunction } from 'i18next';\nimport { N2MajorApplicationStatus } from '@n2-common/serverGeneratedTypings/n2MajorApplicationStatus';\nimport { errorToAction } from '@n2-common/applicationPages/applicationErrorHelper';\n\nexport default function WizardApp() {\n    const { country, productType } = useApplicationIdContext(false, false);\n    const { t } = useTranslation(['common', 'validation', 'deposit']);\n    const navigate = useNavigate();\n    const { setErrorMessage, ErrorOutput } = useDismissableErrorMessage();\n    const [gpid, setGpid] = useState(\"\");\n\n    useLayoutEffect(() => {\n        document.title = t<string>('deposit:wizard.headline');\n    }, [t]);\n\n    useEffect(() => {\n        trackCoreBankEvent(productType, country, 'application_start');\n        trackEcommerceEvent(productType, country, 'view_item', 0);\n    }, [country, productType]);\n\n    const { resolveStages, initialValues, cleanup } = useMemo(() => {\n        switch (country) {\n            case 'SE':\n                return configSE;\n            case 'NO':\n                return configNO;\n\n            default:\n                console.log(`Missing stages for country ${country}`);\n                return {} as never;\n        }\n    }, [country]);\n    const stages = useMemo(() => resolveStages(t), [resolveStages, t]) as WizardStage<typeof initialValues>[];\n\n    const [isSubmitting, setIsSubmitting] = useState(false);\n\n    \n    const onSsnStepFinished = useCallback(\n        async (values: typeof initialValues) => {\n           \n            const cleanedValues = cleanup(values);\n  \n            try {\n                const [, res] = await submitSsnToGetGpid({Ssn : cleanedValues.Applicant.NationalId});\n                setGpid(res.Gpid);\n                trackEcommerceEvent(productType, country, 'begin_checkout', 0, res.Gpid); \n   \n            } catch (err) {\n                console.error(err);\n                return;\n            }     \n        },\n        [cleanup, country, productType]\n    );\n\n\n    const submit = useCallback(\n        async (values: typeof initialValues, setSubmitState: (state: SubmitState) => void) => {\n            if (isSubmitting) {\n                return;\n            }\n            setIsSubmitting(true);\n            const cleanedValues = cleanup(values);\n            setSubmitState('Submitted');\n            try {\n                const [, res] = await postLoanApplication(cleanedValues, `/api/n2/depositapplication/${country}/submit`);\n\n                trackCoreBankEvent(productType, country, 'application_sent');\n                setSubmitState('Processing');\n                const model = res;\n                console.log(`ApplicationId: ${model.ApplicationGuid}`);\n\n                const status = await pollForExpectedApplicationState(\n                    model.ApplicationGuid,\n                    '',\n                    (res: ApplicationStatusModel) =>\n                        res.Status === N2ApplicationStatus.ReadyForSigning || res.Status === N2ApplicationStatus.Declined,\n                    false\n                );\n\n                if (!status) {\n                    navigateToStep(ApplicationPaths.loadApplication, model.ApplicationGuid, navigate, null);\n                    return;\n                }\n\n                trackEcommerceEvent(productType, country, 'add_shipping_info', 0, gpid, model.ApplicationGuid, N2ApplicationStatusToECommerceStatus(status.MajorStatus));\n                trackCoreBankEvent(\n                    productType,\n                    country,\n                    'application_status',\n                    status.MajorStatus === N2MajorApplicationStatus.Aproved ? 'approved' : 'declined'\n                );\n                const applicantIdModel = await getApplicatId(model.ApplicationGuid);\n                if (!applicantIdModel.ApplicantId) {\n                    throw new Error('Error fetching applicantId after submitting');\n                }\n\n                setSubmitState('Done');\n                setIsSubmitting(false);\n                navigateToCorrectStep({ ...status, IsMainApplicant: true }, applicantIdModel.ApplicantId, navigate);\n            } catch (err) {\n                const action = errorToAction(err, `${productType}-${country}`, undefined, undefined);\n                if (action) {\n                    setErrorMessage(action);\n                } else {\n                    navigateToStep(ApplicationPaths.error, undefined, navigate, undefined);\n                }\n                setIsSubmitting(false);\n                setSubmitState('Error');\n                return;\n            }\n        },\n        [cleanup, country, gpid, isSubmitting, navigate, productType, setErrorMessage]\n    );\n    return (\n        <>\n            <Headline>{t<string>('deposit:wizard.headline')}</Headline>\n            <MultiStageOnePageWizard\n                stages={stages}\n                initialValues={initialValues}\n                onSubmit={submit}\n                formName={`${productType}-${country}`}\n                majorNumberUsedForTracking={'1'}\n                onSsnStepFinished={onSsnStepFinished}\n                ssnStep={0}\n\n            />\n            <ErrorOutput />\n        </>\n    );\n}\n\nexport type Config<TFormValues extends FormikValues, TInputModel> = {\n    cleanup: (values: FormikValues) => TInputModel;\n    initialValues: TFormValues;\n    resolveStages: (t: TFunction) => WizardStage<TFormValues>[];\n};\n","import { ApplicationPaths } from '@n2-common/applicationPages/ApplicationFormsHelpers';\nimport { getRedirectUrl } from '@n2-common/applicationPages/applicationStatusHelpers';\nimport { assertDataIsNotResponse } from '@n2-common/asserts';\nimport { getApplicationIds } from '@n2-common/components/ApplicationContext';\nimport { ApplicationStatusModel } from '@n2-common/serverGeneratedTypings/applicationStatusModel';\nimport { N2ApplicationStatus } from '@n2-common/serverGeneratedTypings/n2ApplicationStatus';\nimport { N2Product } from '@n2-common/serverGeneratedTypings/n2Product';\nimport { getApplicationStatus } from '@n2-common/services/legacyApplicationApiService';\nimport { logErrorToServerside } from '@n2-common/services/serverSideLogging';\nimport { generatePath, LoaderFunctionArgs, redirect, useLoaderData } from 'react-router-dom';\n\nexport async function offerPageLoader({ request }: LoaderFunctionArgs) {\n    const { applicantId, applicationId } = await getApplicationIds(request);\n\n    if (applicantId === null || applicationId === null) {\n        return redirect(generatePath(ApplicationPaths.error));\n    }\n\n    try {\n        const applicationStatus = await getApplicationStatus(applicationId, applicantId, request.signal);\n\n        if (!readyForOffer(applicationStatus)) {\n            return redirect(getRedirectUrl(applicationStatus, applicantId));\n        }\n\n        return { applicationId, applicantId, applicationStatus };\n    } catch (err) {\n        logErrorToServerside(`Error loading data for OfferPage.`, applicationId, applicantId, err || {});\n        return redirect(generatePath(ApplicationPaths.error));\n    }\n}\n\nexport function useOfferPageLoaderData() {\n    const data = useLoaderData() as Awaited<ReturnType<typeof offerPageLoader>>;\n    assertDataIsNotResponse(data);\n    return data;\n}\n\nfunction readyForOffer(applicationStatus: ApplicationStatusModel) {\n    if (applicationStatus.Product !== N2Product.Deposit) {\n        return false;\n    }\n    if (applicationStatus.Status !== N2ApplicationStatus.Offer && applicationStatus.Status !== N2ApplicationStatus.ReadyForSigning) {\n        return false;\n    }\n    if (!applicationStatus.IsMainApplicant) {\n        return false;\n    }\n    return true;\n}\n","import { ApplicationPaths, navigateToStep } from '@n2-common/applicationPages/ApplicationFormsHelpers';\nimport { trackSectionView } from '@n2-common/lib/gtm';\nimport { Button, ButtonRowContainer, Headline, Paragraph } from '@n2-common/ui';\nimport { useEffect, useCallback } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { useApplicationIdContext } from '@n2-common/components/ApplicationContext';\nexport * from './loader';\n\nexport function Offer() {\n    const { applicationId, applicantId, country } = useApplicationIdContext();\n    const { t } = useTranslation('deposit');\n\n    const navigate = useNavigate();\n\n    const handleNext = useCallback(\n        () => navigateToStep(ApplicationPaths.cdd, applicationId, navigate, applicantId),\n        [applicantId, applicationId, navigate]\n    );\n\n    useEffect(() => {\n        document.title = t('offer.title');\n        trackSectionView('SA', country, '2.0', 'Offer');\n    }, [country, t]);\n\n    return (\n        <>\n            <Headline>{t<string>('offer.headline')}</Headline>\n            <Paragraph>{t<string>('offer.text')}</Paragraph>\n            <ButtonRowContainer>\n                <Button onClick={handleNext}>{t<string>('offer.acceptButtonText')}</Button>\n            </ButtonRowContainer>\n        </>\n    );\n}\n","import { type ApplicationSignStatusModel } from '@n2-common/serverGeneratedTypings/applicationSignStatusModel';\nimport { Action, ActionState } from '@n2-common/ui/ActionList';\nimport { N2ApplicationStatus } from '@n2-common/serverGeneratedTypings/n2ApplicationStatus';\nimport { SignLoaderData } from './loader';\nimport { DocumentRequirement } from '@n2-common/components/UploadDocuments';\nimport { TFunction } from 'i18next';\nimport { assertDataIsNotResponse } from '@n2-common/asserts';\nimport { getDocumentationState } from '@n2-common/applicationPages/applicationStatusHelpers';\n\nexport function getActions(status: SignLoaderData, documentStatus: DocumentRequirement[], t: TFunction) {\n    assertDataIsNotResponse(status);\n    const { applicationStatus, applicationSignStatus } = status;\n    const actions: Action<'start-signing' | 'documents'>[] = [];\n    if (applicationStatus && applicationStatus.Status == N2ApplicationStatus.ReadyForSigning) {\n        const state = getSignatureState(applicationSignStatus);\n \n        actions.push({\n            name: t<string>(`signature.actions.start-signing.${state}.title`),\n            parameter: 'start-signing',\n            state,\n            description: ``,\n            iconName: 'signIcon',\n        });\n    }\n    if (documentStatus && documentStatus.length) {\n        const state = getDocumentationState(documentStatus);\n        actions.push({\n            name: t<string>(`signature.actions.documents.${state}.title`),\n            description: t<string>(`signature.actions.documents.${state}.description`),\n            parameter: 'documents',\n            state,\n            iconName: 'multipleDocumentIcon',\n        });\n    }\n\n    return actions;\n}\n\nfunction getSignatureState(signStatus?: ApplicationSignStatusModel | null): ActionState {\n    if (!signStatus) {\n        return 'invalid';\n    }\n    return signStatus.MainApplicantHasSigned ? 'final' : 'ready';\n}","import { ApplicationPaths } from '@n2-common/applicationPages/ApplicationFormsHelpers';\nimport { getRedirectUrl } from '@n2-common/applicationPages/applicationStatusHelpers';\nimport { assertDataIsNotResponse } from '@n2-common/asserts';\nimport { getApplicationIds } from '@n2-common/components/ApplicationContext';\nimport { ApplicationStatusModel } from '@n2-common/serverGeneratedTypings/applicationStatusModel';\nimport { N2ApplicationStatus } from '@n2-common/serverGeneratedTypings/n2ApplicationStatus';\nimport { N2Product } from '@n2-common/serverGeneratedTypings/n2Product';\nimport { getApplicationDocumentStatus, getApplicationSignStatus, getApplicationStatus } from '@n2-common/services/legacyApplicationApiService';\nimport { logErrorToServerside } from '@n2-common/services/serverSideLogging';\nimport { generatePath, LoaderFunctionArgs, redirect, useLoaderData } from 'react-router-dom';\n\nexport async function signPageLoader({ request }: LoaderFunctionArgs) {\n    const { applicantId, applicationId } = await getApplicationIds(request);\n\n    if (applicantId === null || applicationId === null) {\n        return redirect(generatePath(ApplicationPaths.error));\n    }\n    try {\n        const applicationStatus = await getApplicationStatus(applicationId, applicantId, request.signal);\n\n        if (!readyForSignPage(applicationStatus)) {\n            return redirect(getRedirectUrl(applicationStatus, applicantId));\n        }\n\n        const [documentStatus, applicationSignStatus] = await Promise.all([\n            getApplicationDocumentStatus(applicationId, applicantId, request.signal),\n            getApplicationSignStatus(applicationId, request.signal),\n        ]);\n\n        return { applicantId, applicationId, applicationStatus, documentStatus, applicationSignStatus };\n    } catch (err) {\n        logErrorToServerside(`Error loading data for SignPage.`, applicationId, applicantId, err || {});\n        return redirect(generatePath(ApplicationPaths.error));\n    }\n}\nexport type SignLoaderData = Awaited<ReturnType<typeof signPageLoader>>;\n\nexport function useSignPageLoaderData() {\n    const data = useLoaderData() as SignLoaderData;\n    assertDataIsNotResponse(data);\n    return data;\n}\n\nfunction readyForSignPage(applicationStatus: ApplicationStatusModel) {\n    if (applicationStatus.Product !== N2Product.Deposit) {\n        return false;\n    }\n    if (![N2ApplicationStatus.ReadyForSigning].includes(applicationStatus.Status)) {\n        return false;\n    }\n    if (applicationStatus.IsMainApplicant) {\n        return !applicationStatus.ApplicantCddPending;\n    }\n    return true;\n}\n","import { ActionList, Button, ButtonRowContainer, Headline, Hero, Paragraph } from '@n2-common/ui';\nimport { ApplicationSignContextProps } from '@n2-common/components/Sign/SignCommon';\nimport { getActions } from './actions';\nimport { Dispatch, SetStateAction, useEffect, useLayoutEffect, useMemo, useState } from 'react';\nimport { SubmitProgressBox, type SubmitProgressBoxProps } from '@n2-common/ui/SubmitProgress';\nimport { ApplicationPaths, navigateToStep } from '@n2-common/applicationPages/ApplicationFormsHelpers';\nimport { NavigateFunction, useNavigate } from 'react-router-dom';\nimport { useSignPageLoaderData } from './loader';\nimport { useTranslation } from 'react-i18next';\nimport { TFunction } from 'i18next';\nimport { startDepositSigning } from '@n2-common/services/legacyApplicationApiService';\nimport { O1DocumentationContextProvider, useDocumentationContext } from '@n2-common/components/UploadDocuments';\nimport { trackCoreBankEvent, trackSectionView } from '@n2-common/lib/gtm';\nimport { useApplicationIdContext } from '@n2-common/components/ApplicationContext';\nimport { CmsNotification } from '@n2-common/components';\nimport { logInfoToServerSide } from '@n2-common/services/serverSideLogging';\nexport * from './loader';\n\ntype ActionDispatcher = (actionType: ReturnType<typeof getActions>[number]['parameter']) => void;\n\nexport function SignaturePage(): JSX.Element {\n    return (\n        <O1DocumentationContextProvider>\n            <SignatureComponent />\n        </O1DocumentationContextProvider>\n    );\n}\nexport function SignatureComponent(): JSX.Element {\n\n    const navigate = useNavigate();\n    const { t } = useTranslation(['deposit', 'common']);\n    const status = useSignPageLoaderData();\n    const { requirements } = useDocumentationContext();\n    const {  country } = useApplicationIdContext();\n    const actions = useMemo(() => getActions(status, requirements, t), [requirements, status, t]);\n    const showComplete = useMemo(() => actions.every((a) => ['final', 'completed'].includes(a.state)), [actions]);\n    const [processing, setProcessing] = useState<SubmitProgressBoxProps>();\n    const dispatch = useMemo(() => getDispatcher(navigate, status, setProcessing, t), [navigate, status, t]);\n\n    useEffect(() => {\n        trackSectionView('SA', country, '4.0', 'Sign Overview');\n    }, [country, t]);\n    \n    useEffect(() => {\n        if(showComplete) {\n         trackCoreBankEvent('SA', country, 'application_complete',\n          undefined, status.applicationStatus.ApplicationId, status.applicationStatus?.IsAgentApplication);\n         logInfoToServerSide(`All steps completed`,  status.applicationId, status.applicantId);\n        }\n     }, [country, showComplete, status]);\n \n\n    useLayoutEffect(() => {\n        document.title = t('signature.title');\n\n    }, [t]);\n\n    return (\n        <> <CmsNotification cmsKey={`sign_deposit_${country}`}/>\n\n        <Headline>{t('signature.headline')}</Headline>\n        <Paragraph>{t('signature.description')}</Paragraph>\n    \n           \n            <ActionList actions={actions} ui={'compact'} execute={dispatch} />\n            {showComplete && (\n                <>\n                    <Hero ui=\"secondary\">{t<string>('common:Sign.AllDone')}</Hero>\n                    <ButtonRowContainer>\n                        <Button\n                            onClick={() =>\n                                navigateToStep(ApplicationPaths.applicantActionsCompleted, status.applicationId, navigate, status.applicantId)\n                            }\n                        >\n                            {t<string>('common:Sign.Complete')}\n                        </Button>\n                    </ButtonRowContainer>\n                </>\n            )}\n\n            {processing && <SubmitProgressBox {...processing} />}\n        </>\n    );\n}\n\nfunction getDispatcher(\n    navigate: NavigateFunction,\n    status: Partial<ApplicationSignContextProps>,\n    setProgress: Dispatch<SetStateAction<SubmitProgressBoxProps | undefined>>,\n    t: TFunction\n) {\n    const dispatch: ActionDispatcher = (actionType) => {\n        const { applicantId, applicationId } = status;\n        if (!applicantId || !applicationId) {\n            return navigate(ApplicationPaths.error);\n        }\n        switch (actionType) {\n            case 'start-signing':\n                {\n                    setProgress({\n                        processingText: t('signature.actions.start-signing.progress.processingText'),\n                        state: 'Processing',\n                        submitText: t('signature.actions.start-signing.progress.submitText'),\n                    });\n                    startDepositSigning(applicationId, applicantId).then(\n                        (result) => {\n                            setProgress(undefined);\n                            location.replace(result.Url);\n                        },\n                        () => {\n                            navigateToStep(ApplicationPaths.error, applicationId, navigate, applicantId);\n                        }\n                    );\n                }\n                break;\n            case 'documents':\n                navigateToStep(ApplicationPaths.uploadDocuments, applicationId, navigate, applicantId);\n                break;\n\n            default:\n                throw new Error(`Action '${actionType}' is not implemented`);\n        }\n    };\n    return dispatch;\n}\n","import { createHashRouter, NavigateFunction, RouterProvider } from 'react-router-dom';\nimport { ApplicationStatusModel } from '../../common/serverGeneratedTypings/applicationStatusModel';\nimport ApplicantActionsCompletedPage from '../../common/applicationPages/ApplicantActionsCompletedPage';\nimport CanceledPage from '../../common/applicationPages/CanceledPage';\nimport CompletedPage from '../../common/applicationPages/CompletedPage';\nimport DeclinedPage from '../../common/applicationPages/DeclinedPage';\nimport { CddPage, LoadApplicationPage, SblCompleted } from '../../common/applicationPages';\nimport ErrorPage from '../../common/applicationPages/ErrorPage';\nimport NotFoundPage from '../../common/applicationPages/NotFoundPage';\n\nimport { SignCompletedPage } from '../../common/applicationPages/SignCompleted';\n\nimport { UploadDocumentsPage } from '../../common/applicationPages/UploadDocuments';\nimport { ReactRouterErrorBoundary } from '../../common/applicationPages/ReactRouterErrorBoundary';\nimport { navigateToStep, ApplicationPaths } from '../../common/applicationPages/ApplicationFormsHelpers';\nimport { PageLayout } from '../../common/applicationPages/AppBase/AppBase';\n\nimport InProgressPage from '../../common/applicationPages/InProgressPage';\nimport { N2Product } from '@n2-common/serverGeneratedTypings/n2Product';\n\nimport { commonNavigateToCorrectStepForSingleApplicantProducts } from '@n2-common/applicationPages/applicationStatusHelpers';\nimport WizardApp from './pages/Application';\nimport { Offer, offerPageLoader } from './pages/Offer';\nimport { SignaturePage, signPageLoader } from './pages/Sign';\n\nexport const navigateToCorrectStep = (application: ApplicationStatusModel, applicantId: string, navigate: NavigateFunction) => {\n    if (application.Product !== N2Product.Deposit) {\n        console.log('product is not deposit, navigating to notfound');\n        navigateToStep(ApplicationPaths.notFound, application.ApplicationId, navigate, applicantId);\n        return;\n    }\n\n    return commonNavigateToCorrectStepForSingleApplicantProducts(application, applicantId, navigate);\n};\ntype AppProps = { antiforgeryToken: string | undefined; country: Country };\n\nexport const App = ({ antiforgeryToken, country }: AppProps) => {\n    const depositRouter = createHashRouter([\n        {\n            element: <PageLayout productType=\"SA\" country={country} antiforgeryToken={antiforgeryToken} />,\n            children: [\n                {\n                    path: ApplicationPaths.wizard,\n                    element: <WizardApp />,\n                },\n                {\n                    path: ApplicationPaths.offer,\n                    loader: offerPageLoader,\n                    element: <Offer />,\n                },\n                {\n                    path: ApplicationPaths.cdd,\n                    element: (\n                        <CddPage\n                            product={'deposit'}\n                            afterCddFunc={(applicationStatus: ApplicationStatusModel, applicantId: string, navigate: NavigateFunction) => {\n                                navigateToStep(ApplicationPaths.sign, applicationStatus.ApplicationId, navigate, applicantId);\n                            }}\n                            navigateToCorrectStepFunc={navigateToCorrectStep}\n                        />\n                    ),\n                },\n\n                {\n                    path: ApplicationPaths.sign,\n                    loader: signPageLoader,\n                    element: <SignaturePage />,\n                },\n                /*   {\n          path: ApplicationPaths.signDetails,\n          element: <SignDetails />\n        },*/\n                {\n                    path: ApplicationPaths.signCompleted,\n                    element: <SignCompletedPage navigateToCorrectStepFunc={navigateToCorrectStep} />,\n                },\n                {\n                    path: ApplicationPaths.sblCompleted,\n                    element: <SblCompleted navigateToCorrectStepFunc={navigateToCorrectStep} />,\n                },\n                {\n                    path: ApplicationPaths.uploadDocuments,\n                    element: <UploadDocumentsPage navigateToCorrectStepFunc={navigateToCorrectStep} />,\n                },\n                {\n                    path: ApplicationPaths.applicantActionsCompleted,\n                    element: <ApplicantActionsCompletedPage navigateToCorrectStepFunc={navigateToCorrectStep} />,\n                },\n                {\n                    path: ApplicationPaths.declined,\n                    element: <DeclinedPage navigateToCorrectStepFunc={navigateToCorrectStep} />,\n                },\n                {\n                    path: ApplicationPaths.declinedFromAgent,\n                    element: <DeclinedPage navigateToCorrectStepFunc={navigateToCorrectStep} />,\n                },\n                {\n                    path: ApplicationPaths.canceled,\n                    element: <CanceledPage navigateToCorrectStepFunc={navigateToCorrectStep} />,\n                },\n                {\n                    path: ApplicationPaths.completed,\n                    element: <CompletedPage navigateToCorrectStepFunc={navigateToCorrectStep} />,\n                },\n                {\n                    path: ApplicationPaths.error,\n                    element: <ErrorPage />,\n                },\n                {\n                    path: ApplicationPaths.notFound,\n                    element: <NotFoundPage navigateToCorrectStepFunc={navigateToCorrectStep} />,\n                },\n                {\n                    path: ApplicationPaths.inProgress,\n                    element: <InProgressPage navigateToCorrectStepFunc={navigateToCorrectStep} />,\n                },\n                {\n                    path: ApplicationPaths.loadApplication,\n                    element: <LoadApplicationPage navigateToCorrectStepFunc={navigateToCorrectStep} />,\n                },\n            ],\n            errorElement: <ReactRouterErrorBoundary />,\n        },\n    ]);\n\n    return (\n        <>\n            <RouterProvider router={depositRouter} />\n        </>\n    );\n};\n","import './i18n';\nimport CookieConsent from '@n2-common/components/CookieConsent';\nimport React from 'react';\nimport ReactDOM from 'react-dom/client';\n\nimport { App } from './App';\n\nconst rootEl = document.getElementById('root');\nif (!rootEl) {\n    throw new Error(\"Missing root element with id='root' in DOM\");\n}\n//const model = JSON.parse(rootEl.dataset.model || \"{}\");\nconst country = rootEl.dataset.country as Country;\n\n//loadGtm(window.document.getElementById('head')?.dataset.gtmid || '');\nReactDOM.createRoot(rootEl as HTMLElement).render(\n    <React.StrictMode>\n        <CookieConsent country={country} />\n        <App antiforgeryToken={rootEl.dataset.antiforgerytoken} country={rootEl.dataset.country as Country} />\n    </React.StrictMode>\n);\n"],"names":["runtime","getRuntime","i18next","initReactI18next","HttpApi","DocumentLanguageDetector","cleanup","values","initialValues","resolveStages","emailRequired","EmailInput","swedishPhoneNumber","PhoneNumberInput","swedishNationalId","SwedishSsnInput","stringRequired","props","jsx","FormikSelect","addPleaseSelectOption","employmentStatusCodeSe","config","norwegianPhoneNumber","nationalId.norwegianNationalId","NationalIdInput","employmentStatusCodeNo","WizardApp","country","productType","useApplicationIdContext","t","useTranslation","navigate","useNavigate","setErrorMessage","ErrorOutput","useDismissableErrorMessage","gpid","setGpid","useState","useLayoutEffect","useEffect","trackCoreBankEvent","trackEcommerceEvent","useMemo","configSE","configNO","stages","isSubmitting","setIsSubmitting","onSsnStepFinished","useCallback","cleanedValues","res","submitSsnToGetGpid","err","submit","setSubmitState","postLoanApplication","model","status","pollForExpectedApplicationState","N2ApplicationStatus","navigateToStep","ApplicationPaths","N2ApplicationStatusToECommerceStatus","N2MajorApplicationStatus","applicantIdModel","getApplicatId","navigateToCorrectStep","action","errorToAction","jsxs","Fragment","Headline","MultiStageOnePageWizard","offerPageLoader","request","applicantId","applicationId","getApplicationIds","redirect","generatePath","applicationStatus","getApplicationStatus","readyForOffer","getRedirectUrl","logErrorToServerside","N2Product","Offer","handleNext","trackSectionView","Paragraph","ButtonRowContainer","Button","getActions","documentStatus","assertDataIsNotResponse","applicationSignStatus","actions","state","getSignatureState","getDocumentationState","signStatus","signPageLoader","readyForSignPage","getApplicationDocumentStatus","getApplicationSignStatus","useSignPageLoaderData","data","useLoaderData","SignaturePage","O1DocumentationContextProvider","SignatureComponent","requirements","useDocumentationContext","showComplete","a","processing","setProcessing","dispatch","getDispatcher","_a","logInfoToServerSide","CmsNotification","ActionList","Hero","SubmitProgressBox","setProgress","actionType","startDepositSigning","result","application","commonNavigateToCorrectStepForSingleApplicantProducts","App","antiforgeryToken","depositRouter","createHashRouter","PageLayout","CddPage","SignCompletedPage","SblCompleted","UploadDocumentsPage","ApplicantActionsCompletedPage","DeclinedPage","CanceledPage","CompletedPage","ErrorPage","NotFoundPage","InProgressPage","LoadApplicationPage","ReactRouterErrorBoundary","RouterProvider","rootEl","ReactDOM","React","CookieConsent"],"mappings":"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"}