{"version":3,"file":"consents-7bb0ef2b.js","sources":["../../../client-app/src/common/validation/fi/nationalId.ts","../../../client-app/src/common/uiFieldValues/consents.tsx"],"sourcesContent":["import * as Yup from 'yup';\nimport { getI18n } from 'react-i18next';\n\nexport const getNationalIdValidation = () => {\n const { t } = getI18n();\n return Yup.string()\n .required(t('validation:string.required'))\n .test((val, ctx) => {\n if (!val || !checkFinnishSsn(val)) {\n return ctx.createError({ message: 'Ei kelvollinen henkilötunnus' });\n }\n return true;\n });\n};\n\nconst SSN_RE = /^(\\d{6})[-+abcdefyxwvu](\\d{3})([\\da-y]){1}$/;\nfunction checkFinnishSsn(ssn: string) {\n ssn = ssn.toLowerCase();\n const m = ssn.match(SSN_RE);\n\n if (!m) {\n return false;\n }\n\n const c = [];\n const base = 35;\n const n = parseInt(m[1] + m[2], 10) % 31;\n\n for (let i = 0; i < base; i++) {\n const e = i.toString(base);\n if ('gioq'.indexOf(e) < 0) {\n c.push(e);\n }\n }\n\n return c[n] == m[3];\n}\n","import { StageField } from '@n2-common/components/MultiStageOnePageWizard/types';\nimport { FormikCheckBox } from '@n2-common/ui/Input/CheckBox';\nimport { TFunction } from 'i18next';\nimport * as Yup from 'yup';\n\nexport type ConsentType = {\n MKT_1_PROFILING_1?: boolean;\n MKT_2_COOP_1?: boolean;\n MKT_3_COMM_1?: boolean;\n ConfirmSA?: boolean;\n MKT_3_COMM_1_kredittkort?: boolean;\n MKT_3_COMM_1_sparing?: boolean;\n};\n\nexport function getConsent(name: keyof ConsentType, country: Country) {\n const CONSENTS = country == 'FI' ? CONSENTS_FI : country == 'NO' ? CONSENTS_NO : country == 'SE' ? CONSENTS_SE : [];\n\n const consent = CONSENTS.find((c) => c.name == name);\n if (!consent) {\n throw new Error(`Consent '${name}' for '${country}' was not found.`);\n }\n return consent;\n}\n\nexport function getConsentFieldDef>(\n name: keyof ConsentType,\n t: TFunction,\n country: Country,\n consentName: 'Consents' | 'consents' = 'Consents'\n): StageField {\n const consent = getConsent(name, country);\n return {\n name: `${consentName}.${name}` as StageField['name'],\n Component: FormikCheckBox,\n componentProps: { label: consent.text, helptext: consent.popupBody ? consent.popupBody({}) : undefined },\n validation: consent.mandatory\n ? Yup.boolean().nullable().required(t('validation:consent.required')).oneOf([true], t('validation:consent.required'))\n : Yup.boolean().nullable(),\n };\n}\n\nexport type ConsentDef = {\n name: keyof ConsentType | string;\n popupBody?: React.FC;\n text: string;\n mandatory: boolean;\n applicationFieldName?: string;\n};\n\n// Data grabbed from Sitecore in prod 2023/01/20\nconst CONSENTS_FI: ConsentDef[] = [\n {\n name: 'MKT_1_PROFILING_1',\n popupBody: () => (\n
\n Haluamme tarjota sinulle asiakkaana parasta mahdollista neuvontaa ja tarjouksia eri palveluistamme. Pankki käyttää\n tähän tarkoitukseen tietoja, joita pankilla on sinusta. Tämä sisältää esimerkiksi maksu- ja\n tilitapahtumahistorian sekä pankin palveluiden, kuten verkkosivujemme käytön.\n
\n
\n Lue lisää siitä, kuinka pankki käsittelee henkilökohtaisia tietojasi{' '}\n täällä.
\n
\n Voit muuttaa suostumustietojasi Omilla Sivuilla.\n
\n
 
\n
\n ),\n text: 'Haluan pankin ymmärtävän tarpeeni',\n mandatory: false,\n },\n {\n name: 'MKT_2_COOP_1',\n popupBody: () => (\n
\n Voidaksemme lähettää asiakkaillemme yksilöityjä ja asiaankuuluvia tarjouksia, haluamme käyttää\n sekä saada mahdollisuuden vaihtaa tietojasi kolmannen osapuolen kanssa. Tämä sisältää esimerkiksi maksu-\n ja käteisvarahistorian sekä pankin palveluiden, kuten verkkosivujemme käytön. Täten voit vastaanottaa\n tarjouksia yhteistyökumppaneidemme tuotteista. Listaus pankin tytäryhtiöistä löytyy{' '}\n täältä. \n
\n
\n Lue lisää siitä, kuinka pankki käsittelee henkilökohtaisia tietojasi{' '}\n täällä.
\n
\n Koska pankki on velvollinen informoimaan Morrow Bank luottokortti asiakkaita mahdollisuudesta tienata bonuspalkkioita, kortinhaltijat\n vastaanottavat suostumustiedoistaan huolimatta tarjouksia sellaisista yhteistyökumppaneiden tuotteista, jotka kuuluvat\n kanta-asiakasohjelmaan.\n
\n
\n Voit muuttaa suostumustietojasi Omilla Sivuilla.\n
\n
 
\n
\n ),\n text: 'Haluan vastaanottaa pankin yhteistyökumppaneilta yksilöityjä ja asiaankuuluvia tarjouksia',\n mandatory: false,\n },\n {\n name: 'MKT_3_COMM_1',\n applicationFieldName: 'AgreesCreditCheck',\n popupBody: () => null,\n text: `Vahvistan, että antamani tiedot ovat oikein ja hakemani luotto tulee omaan henkilökohtaiseen käyttööni. Hyväksyn luottotietojeni käytön sähköisesti ja hyväksyn, että kommunikointi tapahtuu elektronisesti esim. sähköpostitse ja puhelimitse ja että rekisteröityjä tietojani voidaan käyttää sähköiseen tiedon ja markkinointimateriaalin lähettämiseen Morrow Bankilta ja sen yhteistyökumppaneilta.`,\n mandatory: true,\n },\n {\n name: 'MKT_3_COMM_1_kredittkort',\n applicationFieldName: 'AgreesCreditCheck',\n popupBody: () => null,\n text: `Vahvistan, että antamani tiedot ovat oikein ja hakemani luotto tulee omaan henkilökohtaiseen käyttööni. Hyväksyn luottotietojeni käytön sähköisesti ja hyväksyn, että kommunikointi tapahtuu elektronisesti esim. sähköpostitse ja puhelimitse ja että rekisteröityjä tietojani voidaan käyttää sähköiseen tiedon ja markkinointimateriaalin lähettämiseen Morrow Bankilta ja sen yhteistyökumppaneilta.`,\n mandatory: true,\n },\n {\n name: 'MKT_3_COMM_1_sparing',\n applicationFieldName: 'AgreesCreditCheck',\n popupBody: () => null,\n text: `Vahvistan, että antamani tiedot ovat oikein ja hakemani luotto tulee omaan henkilökohtaiseen käyttööni. Hyväksyn luottotietojeni käytön sähköisesti ja hyväksyn, että kommunikointi tapahtuu elektronisesti esim. sähköpostitse ja puhelimitse ja että rekisteröityjä tietojani voidaan käyttää sähköiseen tiedon ja markkinointimateriaalin lähettämiseen Morrow Bankilta ja sen yhteistyökumppaneilta.`,\n mandatory: true,\n },\n {\n name: 'ConfirmSA',\n applicationFieldName: 'AgreesCreditCheck',\n popupBody: () => (\n
\n Annan suostumukseni sille, että luotonantajat luovuttavat näitä minua koskevia tietoja toisille luotonantajille.\n Näitä tietoja Morrow Bank ASA kysyy Suomen Asiakastieto Oy:n ylläpitämän teknisen\n kyselyjärjestelmän avulla järjestelmään osallistuvilta yhtiöiltä.\n
\n
\n \n Kulutusluottojen kyselyjärjestelmästä saatavia tietoja käsittelee ainoastaan Morrow Bank ASA ja Suomen\n Asiakastieto Oy toimii tiedon välittäjänä.\n \n
\n
\n Käsiteltävät tiedot koskevat luottoja ja niiden hoitamista.\n
\n
\n \n Tietoja kerätään vain luottohakemuksen käsittelyä varten. Luottohakemuksen yhteydessä\n kerättyjä tietoja ei luovuteta ulkopuolisille ilman lainmukaista velvoitetta. Viranomaisilla voi olla pääsy\n näihin tietoihin omassa toiminnassaan.\n \n
\n
\n \n Mikäli luotto myönnetään, tiedot säilytetään viiden vuoden ajan siitä, kun luotto on\n kokonaisuudessaan erääntynyt maksettavaksi, ellei laissa säädetä velvollisuutta säilyttää\n niitä tätä pidempään. Mikäli luottoa ei myönnetä, tiedot poistetaan kahden vuoden kuluttua\n luottohakemuksen tekemisestä.\n \n
\n
\n \n Tiedot luovutetaan Suomen Asiakastieto Oy:n ylläpitämän Kuluttajaluottojen kyselyjärjestelmän kautta.\n \n
\n
\n \n Luotonhakijalla on oikeus tarkistaa mille tahoille ja mitä tietoja Kuluttajaluottojen kyselyjärjestelmän kautta on\n luovutettu. Tarkistusoikeuden toteuttaa Suomen Asiakastieto Oy.\n \n
\n
\n \n Lisätietoja Suomen Asiakastieto Oy:n ylläpitämästä Kuluttajaluottojen\n kyselyjärjestelmästä, sekä järjestelmän tietojen vaihtoon osallistuvat yhtiöt löydät\n täältä. \n \n
\n ),\n text: `Annan toimeksiannon Morrow Bank ASA:lle kerätä ja käsitellä muilta luotonantajilta saatavia tietoja voimassa olevista luotoistani ja muista sitoumuksistani sisältäen tiedot, jotka olen antanut näille luotonantajille (kuten tiedot tuloistani) käytettäväksi luottohakemuksen käsittelyä varten.`,\n mandatory: true,\n },\n];\n\nconst CONSENTS_NO: ConsentDef[] = [\n {\n name: 'MKT_1_PROFILING_1',\n popupBody: () => (\n
\n For å kunne tilpasse våre råd og tilbud best mulig til deg som kunde, på tvers av produktkategorier\n ønsker banken å benytte de opplysningene den har om deg. Dette omfatter eksempelvis transaksjons- og kontohistorikk og\n hvordan du benytter bankens tjenester, eksempelvis våre nettsider.\n
\n
\n Les mer om hvordan banken behandler personopplysninger{' '}\n \n her.\n \n
\n
\n Du kan endre samtykkeinnstillingene dine på Min Side etter at konto er opprettet.\n
\n ),\n mandatory: false,\n text: 'Jeg ønsker at banken skal forstå hva jeg trenger',\n applicationFieldName: '',\n },\n {\n name: 'MKT_2_COOP_1',\n popupBody: () => (\n
\n For å kunne sende deg relevante tilbud som er tilpasset deg som kunde, ønsker banken å benytte og ha mulighet til\n å utveksle de opplysningene den har om deg. Dette omfatter eksempelvis transaksjons- og beholdningshistorikk og hvordan du\n benytter bankens tjenester, eksempelvis våre nettsider. Du vil da kunne motta tilbud om våre samarbeidspartneres\n produkter. En oversikt over bankens samarbeidspartnere finner du{' '}\n \n her\n \n .\n
\n
\n

Les mer om hvordan banken behandler personopplysninger 

\n \n her\n \n .\n
\n
\n

\n Siden banken plikter å holde kunder av Morrow Bank kredittkort informert om opptjeningsmuligheter for bonus, vil kortkunder\n uavhengig av dette samtykket motta tilbud om produkter fra de samarbeidspartnere som inngår i lojalitetsprogrammet.\n
\n
\n

\n

Du kan endre samtykkeinnstillingene dine på Min Side.

\n
\n ),\n mandatory: false,\n text: 'Jeg ønsker å motta relevante tilbud fra bankens samarbeidspartnere',\n applicationFieldName: '',\n },\n {\n name: 'MKT_3_COMM_1',\n applicationFieldName: 'AgreesCreditCheck',\n popupBody: () => null,\n text: `Ved å trykke \"Send søknad\" godtar jeg at det blir foretatt en kredittsjekk, samt et oppslag hos gjeldsinformasjonsforetak.`,\n mandatory: true,\n },\n {\n name: 'MKT_3_COMM_1_kredittkort',\n popupBody: () => null,\n mandatory: true,\n text: 'Jeg bekrefter at jeg søker på egne vegne og at opplysningene er riktige, samt godkjenner at kredittopplysninger innhentes og at all kommunikasjon skjer elektronisk.',\n applicationFieldName: 'AgreesCreditCheck',\n },\n {\n name: 'MKT_3_COMM_1_sparing',\n applicationFieldName: 'AgreesCreditCheck',\n popupBody: () => null,\n text: 'Jeg bekrefter at jeg søker på egne vegne og at opplysningene er riktige, samt godkjenner at kredittopplysninger innhentes og at all kommunikasjon skjer elektronisk.',\n mandatory: true,\n },\n];\nconst CONSENTS_SE: ConsentDef[] = [\n {\n name: 'MKT_1_PROFILING_1',\n popupBody: () => (\n
\n För att kunna anpassa våra råd och erbjudanden på bästa möjliga sätt till dig som kund, i alla\n produktkategorier, önskar banken använda de upplysningar den har om dig. Detta omfattar exempelvis transaktions- och\n kontohistorik och hur du använder bankens tjänster, exempelvis våra hemsidor. \n
\n
\n Läs mer om hur banken behandlar personuppgifter{' '}\n \n här\n \n .
\n
\n Du kan ändra dina samtyckesinställningar på Mina Sidor.\n
\n
 
\n
\n ),\n mandatory: false,\n text: 'Jag önskar att banken ska förstå vad jag behöver',\n applicationFieldName: '',\n },\n {\n name: 'MKT_2_COOP_1',\n popupBody: () => (\n
\n För att kunna skicka relevanta och anpassade erbjudanden till dig som kund, önskar banken att använda och ha\n möjlighet till att utbyta upplysningarna den har om dig. Detta omfattar exempelvis transaktions- och kontohistorik och hur du\n använder bankens tjänster, exempelvis våra hemsidor.  Du kommer då kunna ta emot erbjudanden om våra\n samarbetspartners produkter. En översikt över bankens samarbetspartners finner du{' '}\n \n här\n \n .  \n
\n
\n Läs mer om hur banken behandlar personuppgifter{' '}\n \n här\n \n .   \n
\n
\n Du kan ändra dina samtyckesinställningar på Mina Sidor.\n
\n
\n ),\n mandatory: false,\n text: 'Jag önskar ta emot relevanta erbjudanden från bankens samarbetspartners',\n applicationFieldName: '',\n },\n {\n name: 'MKT_3_COMM_1',\n applicationFieldName: 'AgreesCreditCheck',\n popupBody: () => null,\n text: `Jag/vi bekräftar att jag/vi ansöker för egen räkning och att informationen är korrekt, samt godkänner att kreditupplysningen inhämtas och att all kommunikation görs elektroniskt.`,\n mandatory: true,\n },\n {\n name: 'MKT_3_COMM_1_kredittkort',\n popupBody: () => null,\n mandatory: true,\n text: 'Jag/vi bekräftar att jag/vi ansöker för egen räkning och att informationen är korrekt, samt godkänner att kreditupplysningen inhämtas och att all kommunikation görs elektroniskt.',\n applicationFieldName: 'AgreesCreditCheck',\n },\n {\n name: 'MKT_3_COMM_1_sparing',\n applicationFieldName: 'AgreesCreditCheck',\n popupBody: () => null,\n text: `Jag/vi bekräftar att jag/vi ansöker för egen räkning och att informationen är korrekt, samt godkänner att all kommunikation görs elektroniskt.`,\n mandatory: true,\n },\n];\n"],"names":["getNationalIdValidation","t","getI18n","Yup.string","val","ctx","checkFinnishSsn","SSN_RE","ssn","m","c","base","i","e","getConsent","name","country","consent","CONSENTS_FI","CONSENTS_NO","CONSENTS_SE","getConsentFieldDef","consentName","FormikCheckBox","Yup.boolean","jsxs","jsx"],"mappings":"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"}