{"version":3,"file":"veilederInntektskalkulator-nSQV_7P9.js","sources":["../../../Features/VeilederInntektskalkulator/Models/Ids.ts","../../../Features/VeilederInntektskalkulator/Store/Valg/Types.ts","../../../Features/VeilederInntektskalkulator/Store/Resultat/Types.ts","../../../Features/VeilederInntektskalkulator/Store/Resultat/Actions.ts","../../../Features/VeilederInntektskalkulator/Store/Valg/Actions.ts","../../../Features/VeilederInntektskalkulator/Utilities/Utregninger.ts","../../../Features/VeilederInntektskalkulator/Components/BoksA.tsx","../../../Features/VeilederInntektskalkulator/Components/BoksB.tsx","../../../Features/VeilederInntektskalkulator/App.tsx","../../../Features/VeilederInntektskalkulator/Store/Resultat/Reducers.ts","../../../Features/VeilederInntektskalkulator/Store/Valg/Reducers.ts","../../../Features/VeilederInntektskalkulator/Store/Satser/Types.ts","../../../Features/VeilederInntektskalkulator/Store/Satser/Reducers.ts","../../../Features/VeilederInntektskalkulator/Store/index.ts","../../../Features/VeilederInntektskalkulator/Utilities/SatserApi.ts","../../../Features/VeilederInntektskalkulator/Store/Satser/Actions.ts","../../../Features/VeilederInntektskalkulator/index.tsx"],"sourcesContent":["export const AppContainerId = 'veilederInntektskalkulator';\r\nexport const boksA = 'inntektkalk-boks-a';\r\nexport const boksB = 'inntektkalk-boks-b';","import Valg from '../../../Shared/Scripts/Models/Valg';\r\n\r\nexport interface ValgState {\r\n inntekt?: Valg;\r\n}\r\n\r\nexport const UPDATE_VALG = 'UPDATE_VALG';\r\n\r\ninterface UpdateValgAction {\r\n type: typeof UPDATE_VALG;\r\n payload: Partial;\r\n}\r\n\r\nexport type ValgStateActionTypes = UpdateValgAction;\r\n","export type ResultatValg = ResultatValgVisning;\r\n\r\nexport interface ResultatValgVisning {\r\n visBoksB: boolean;\r\n}\r\n\r\nexport const SET_VISNING = 'SET_VISNING';\r\n\r\nexport interface SetVisningAction {\r\n type: typeof SET_VISNING;\r\n payload: Partial;\r\n}\r\n\r\nexport type ResultatActionTypes = SetVisningAction;\r\n","import { SetVisningAction, SET_VISNING, ResultatValgVisning } from './Types';\r\n\r\nexport function setVisning(stegVisning: Partial): SetVisningAction {\r\n return {\r\n type: SET_VISNING,\r\n payload: stegVisning,\r\n };\r\n}\r\n","import {\r\n ValgStateActionTypes,\r\n ValgState,\r\n UPDATE_VALG,\r\n} from './Types';\r\n\r\nimport { ThunkAction, ThunkDispatch } from 'redux-thunk';\r\nimport { VeilederInntektskalkulatorAppState } from '..';\r\nimport { AnyAction } from 'redux';\r\nimport { setVisning } from '../Resultat/Actions';\r\n\r\nexport function updateValg(newValg: Partial): ValgStateActionTypes {\r\n return {\r\n type: UPDATE_VALG,\r\n payload: newValg,\r\n };\r\n}\r\n\r\nexport const updateVisning = (): ThunkAction => {\r\n return (dispatch: ThunkDispatch, getState: () => VeilederInntektskalkulatorAppState): void => {\r\n const currentState = getState();\r\n const visBoksB = visB(currentState);\r\n \r\n dispatch(\r\n setVisning({\r\n visBoksB,\r\n }),\r\n );\r\n };\r\n};\r\n\r\nconst visB = (state: VeilederInntektskalkulatorAppState): boolean => {\r\n return false;\r\n};\r\n\r\n","export interface ReturnValues {\r\n belop1: number,\r\n belop2: number | undefined,\r\n belop3: number | undefined,\r\n}\r\n\r\nexport function formatNumber(tall: any, locale: string): string {\r\n let tallSomString: string = tall.toString();\r\n if (locale === 'en-US') {\r\n tallSomString = tallSomString.replace(/(?!^)(?=(?:\\d{3})+(?:\\.|$))/gm, ',');\r\n } else {\r\n tallSomString = tallSomString.replace(/(?!^)(?=(?:\\d{3})+(?:\\.|$))/gm, ' ');\r\n }\r\n\r\n return tallSomString;\r\n}\r\n\r\nexport function RegnUtVisning3(inntekt: number, id36: number, id7: number): ReturnValues {\r\n\r\n // Beløp 1 = (A1 – [ID36]) x 5% x 11 \r\n // Maxverdi beløp 1 = [beløp2]\r\n // Beløp 2 = ([ID7] x 330) x 40%\r\n\r\n let returBelop: ReturnValues = { belop1: 0, belop2: 0, belop3: 0 }; // FIX SUGGESTION: 0 OR \r\n\r\n returBelop.belop1 = Math.round((inntekt - id36) * 0.05 * 11);\r\n returBelop.belop2 = Math.round((id7 * 330) * 0.4);\r\n\r\n if (returBelop.belop1 > returBelop.belop2)\r\n returBelop.belop1 = returBelop.belop2;\r\n\r\n return returBelop;\r\n}\r\n\r\nexport function RegnUtVisning4(inntekt: number, id49: number, id7: number): ReturnValues {\r\n // Beløp 3 = (A1 – [ID49]) x 5% x 6 \r\n // Maxverdi beløp 3 = beløp 4\r\n // Beløp 4 = ([ID7] x 180) x 40%\r\n\r\n let returBelop: ReturnValues = { belop1: 0, belop2: 0, belop3: undefined };\r\n\r\n returBelop.belop1 = Math.round((inntekt - id49) * 0.05 * 6);\r\n returBelop.belop2 = Math.round((id7 * 180) * 0.4);\r\n\r\n if (returBelop.belop1 > returBelop.belop2)\r\n returBelop.belop1 = returBelop.belop2;\r\n\r\n return returBelop;\r\n}\r\n\r\nexport function RegnUtVisning5(inntekt: number, id36: number, id7: number): ReturnValues {\r\n // Beløp 5 = (A1 – [ID36]) x 5% x 11 x 0,75 \r\n // Maxverdi beløp 5 = ([ID7] x 330) x 0,4 x 0,75\r\n // Beløp 6 = (A1 – [ID36]) x 5% x 11 x 0,67 \r\n // Maxverdi beløp 6 = ([ID7] x 330) x 0,4 x 0,67\r\n // Beløp 7 = (A1 – [ID36]) x 5% x 11 x 0,50\r\n // Maxverdi beløp 7 = ([ID7] x 330) x 0,4 x 0,50\r\n\r\n let returBelop: ReturnValues = { belop1: 0, belop2: 0, belop3: undefined };\r\n\r\n returBelop.belop1 = Math.round((inntekt - id36) * 0.05 * 11 * 0.75);\r\n let maxBelop1: number = Math.round((id7 * 330) * 0.4 * 0.75);\r\n\r\n if (returBelop.belop1 > maxBelop1)\r\n returBelop.belop1 = maxBelop1;\r\n\r\n returBelop.belop2 = Math.round((inntekt - id36) * 0.05 * 11 * 0.67);\r\n let maxBelop2: number = Math.round((id7 * 330) * 0.4 * 0.67);\r\n\r\n if (returBelop.belop2 > maxBelop2)\r\n returBelop.belop2 = maxBelop2;\r\n\r\n returBelop.belop3 = Math.round((inntekt - id36) * 0.05 * 11 * 0.5);\r\n let maxBelop3: number = Math.round((id7 * 330) * 0.4 * 0.5);\r\n\r\n if (returBelop.belop3 > maxBelop3)\r\n returBelop.belop3 = maxBelop3;\r\n\r\n return returBelop;\r\n}\r\n\r\nexport function RegnUtVisning6(inntekt: number, id49: number, id7: number): ReturnValues {\r\n // Beløp 8 = (A1 – [ID49]) x 5% x 6 x 0,67\r\n // Maxverdi beløp 8 = ([ID7]x 180) x 0,4 x 0,67\r\n // Beløp 9 = (A1 – [ID49]) x 5% x 6 x 0,50\r\n // Maxverdi beløp 9 = ([ID7]x 180)] x 0,4 x 0,5\r\n // Beløp 10 = (A1 – [ID49]) x 5% x 6 x 0,33\r\n // Maxverdi beløp 10 = ([ID7]x 180) x 0,4 x 0,33\r\n\r\n\r\n let returBelop: ReturnValues = { belop1: 0, belop2: 0, belop3: undefined };\r\n\r\n returBelop.belop1 = Math.round((inntekt - id49) * 0.05 * 6 * 0.67);\r\n let maxBelop1: number = Math.round((id7 * 180) * 0.4 * 0.67);\r\n\r\n if (returBelop.belop1 > maxBelop1)\r\n returBelop.belop1 = maxBelop1;\r\n\r\n returBelop.belop2 = Math.round((inntekt - id49) * 0.05 * 6 * 0.5);\r\n let maxBelop2: number = Math.round((id7 * 180) * 0.4 * 0.5);\r\n\r\n if (returBelop.belop2 > maxBelop2)\r\n returBelop.belop2 = maxBelop2;\r\n\r\n returBelop.belop3 = Math.round((inntekt - id49) * 0.05 * 6 * 0.33);\r\n let maxBelop3: number = Math.round((id7 * 180) * 0.4 * 0.33);\r\n\r\n if (returBelop.belop3 > maxBelop3)\r\n returBelop.belop3 = maxBelop3;\r\n\r\n return returBelop;\r\n}\r\n\r\nexport function RegnUtVisning7(inntekt: number, id36: number): ReturnValues {\r\n // Beløp 11 = (A1 – [ID36]) x 5% x 11 \r\n // Maxverdi beløp 11: Ingen maxverdi\r\n\r\n let returBelop: ReturnValues = { belop1: 0, belop2: undefined, belop3: undefined };\r\n returBelop.belop1 = Math.round((inntekt - id36) * 0.05 * 11);\r\n\r\n return returBelop;\r\n}\r\n\r\nexport function RegnUtVisning8(inntekt: number, id49: number): ReturnValues {\r\n // Beløp 12 = (A1 – [ID36]) x 5% x 6 \r\n // Maxverdi beløp 12: Ingen maxverdi\r\n\r\n let returBelop: ReturnValues = { belop1: 0, belop2: undefined, belop3: undefined };\r\n returBelop.belop1 = Math.round((inntekt - id49) * 0.05 * 6);\r\n\r\n return returBelop;\r\n}\r\n\r\nexport function RegnUtVisning9(inntekt: number, id36: number): ReturnValues {\r\n // Beløp 13 = (A1 – [ID36]) x 5% x 11 x 0,5 \r\n // Maxverdi beløp 13 = ingen maxverdi\r\n\r\n let returBelop: ReturnValues = { belop1: 0, belop2: undefined, belop3: undefined };\r\n returBelop.belop1 = Math.round((inntekt - id36) * 0.05 * 11 * 0.5);\r\n\r\n return returBelop;\r\n}\r\n\r\nexport function RegnUtVisning10(inntekt: number, id49: number): ReturnValues {\r\n // Beløp 14 = (A1 – [ID49]) x 5% x 6 x 0,5 \r\n // Maxverdi beløp 14 = ingen maxverdi\r\n\r\n let returBelop: ReturnValues = { belop1: 0, belop2: undefined, belop3: undefined };\r\n returBelop.belop1 = Math.round((inntekt - id49) * 0.05 * 6 * 0.5);\r\n\r\n return returBelop;\r\n}","import React, {useState} from 'react';\r\nimport { EpiContext } from '../../Shared/Scripts/Store/EpiContext/Types';\r\nimport VeilederInntektskalkulatorDto from '../Models/VeilederInntektskalkulatorDto';\r\nimport contentResolver from '../../Shared/Scripts/Utilities/EpiContentResolver';\r\nimport { resolveRawText } from '../../Shared/Scripts/Utilities/EpiContentResolver';\r\nimport { connect } from 'react-redux';\r\nimport * as ValgTypes from '../Store/Valg/Types';\r\nimport Valg from '../../Shared/Scripts/Models/Valg';\r\nimport { ArticleContentComponent } from '../../Shared/Scripts/Components/ArticleContentComponent';\r\nimport { ModalCompontent } from '../../Shared/Scripts/Components/ModalComponent';\r\nimport * as Ids from '../Models/Ids';\r\nimport { VeilederInntektskalkulatorAppState } from '../Store';\r\nimport * as Utregninger from '../Utilities/Utregninger';\r\n\r\ninterface BoksOwnProps {\r\n valg: ValgTypes.ValgState,\r\n locale: string,\r\n valuta?: string | null,\r\n onInputChange: any;\r\n}\r\n\r\ntype BoksAProps = BoksOwnProps & MapStateToProps & {};\r\n\r\nconst ResultatComponent = (props: BoksAProps): JSX.Element => {\r\n const { epiContext } = props;\r\n const [visModal, setVisModal] = useState(false);\r\n const [inntekt, setInntekt] = useState(\"\");\r\n\r\n function onModalLenkeClick(): void {\r\n setVisModal(true);\r\n }\r\n\r\n function onModalLukkClick(): void {\r\n setVisModal(false);\r\n }\r\n\r\n function inntektHandler(e: React.SyntheticEvent): void {\r\n \r\n let stringVal: string = e.currentTarget.value.replace(/[^0-9]/g,''); \r\n\r\n if(stringVal.length > 7)\r\n return;\r\n\r\n if(stringVal === \"\") {\r\n setInntekt(\"\");\r\n return;\r\n }\r\n\r\n let formatertVerdi: string = Utregninger.formatNumber(stringVal, props.locale);\r\n setInntekt(formatertVerdi);\r\n }\r\n\r\n function enterHandler(e: React.KeyboardEvent): void {\r\n if (e.key === 'Enter') {\r\n let valg: Valg = { id: 'Inntekt', displayValue: 'Inntekt', value: inntekt };\r\n props.onInputChange(valg);\r\n }\r\n }\r\n\r\n function knappKlikk(e: React.SyntheticEvent): void {\r\n let i: string = inntekt;\r\n if (inntekt === \"\") {\r\n setInntekt(\"0\");\r\n i = \"0\";\r\n }\r\n\r\n let valg: Valg = { id: 'Inntekt', displayValue: 'Inntekt', value: i };\r\n props.onInputChange(valg);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n

{contentResolver(epiContext, 'boks1Overskrift')}

\r\n
\r\n
\r\n
{contentResolver(epiContext, 'boks1UnderOverskrift')}
\r\n
\r\n
\r\n {contentResolver(epiContext, 'boks1Ingress')}\r\n
\r\n
\r\n

\r\n \r\n \r\n \r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
{props.valuta}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\ninterface MapStateToProps {\r\n epiContext: EpiContext;\r\n}\r\n\r\nexport default connect(\r\n (state: VeilederInntektskalkulatorAppState): MapStateToProps => {\r\n return {\r\n epiContext: state.epiContext,\r\n };\r\n },\r\n)(ResultatComponent);","import React, { useState, useEffect } from 'react';\r\nimport { EpiContext } from '../../Shared/Scripts/Store/EpiContext/Types';\r\nimport VeilederInntektskalkulatorDto from '../Models/VeilederInntektskalkulatorDto';\r\nimport contentResolver, { resolveRawText } from '../../Shared/Scripts/Utilities/EpiContentResolver';\r\nimport { connect } from 'react-redux';\r\nimport * as ValgTypes from '../Store/Valg/Types';\r\nimport { ArticleContentComponent } from '../../Shared/Scripts/Components/ArticleContentComponent';\r\nimport { ModalCompontent } from '../../Shared/Scripts/Components/ModalComponent';\r\nimport * as Ids from '../Models/Ids';\r\nimport { VeilederInntektskalkulatorAppState } from '../Store';\r\nimport { ResultatValg } from '../Store/Resultat/Types';\r\nimport { Satser } from '../Utilities/SatserApi';\r\nimport * as Utregninger from '../Utilities/Utregninger';\r\nimport { updateLiveMessage } from '../../Shared/Scripts/Utilities/LiveMessage';\r\n\r\ninterface BoksOwnProps {\r\n valg: ValgTypes.ValgState;\r\n locale: string;\r\n valuta?: string | null;\r\n resultat?: ResultatValg | null;\r\n satser: Satser | null;\r\n}\r\n\r\ntype BoksAProps = BoksOwnProps & MapStateToProps & {};\r\n\r\nconst BoksBComponent = (props: BoksAProps): JSX.Element => {\r\n const { epiContext } = props;\r\n const [studererFulltid, setStudererFulltid] = useState(false);\r\n const [mottarBarnestipend, setMottarBarnestipend] = useState(false);\r\n const [stotteHeltAar, setStotteHeltAar] = useState(false);\r\n const [visModal, setVisModal] = useState(false);\r\n\r\n useEffect(() => {\r\n settDefaultInnstillinger();\r\n updateLiveMessage();\r\n }, []);\r\n\r\n function settDefaultInnstillinger(): void {\r\n\r\n if (props.satser == null) return;\r\n\r\n const inntekt: number = parseInt(props.valg.inntekt.value);\r\n\r\n //visning 1\r\n if (inntekt < props.satser.SATS_ST04_INNTEKTSGRENSE_DAGER_211_X) {\r\n setStudererFulltid(true);\r\n setMottarBarnestipend(false);\r\n setStotteHeltAar(true);\r\n }\r\n\r\n //visning 3\r\n\r\n if (inntekt > props.satser.SATS_ST04_INNTEKTSGRENSE_DAGER_211_X) {\r\n setStudererFulltid(true);\r\n setMottarBarnestipend(false);\r\n setStotteHeltAar(true);\r\n }\r\n }\r\n\r\n function hentSvar3(inntekt: number): JSX.Element | null {\r\n\r\n const belop: Utregninger.ReturnValues = Utregninger.RegnUtVisning3(\r\n inntekt,\r\n props.satser.SATS_ST04_INNTEKTSGRENSE_DAGER_211_X,\r\n props.satser.SATS_ST01_MAKS_BASISSTOTTE_DAG,\r\n );\r\n let text: string = resolveRawText(epiContext, 'boks2Svar3');\r\n text = text.replace(\r\n '[belop1]',\r\n '
' +\r\n Utregninger.formatNumber(belop.belop1, props.locale) +\r\n ' ' +\r\n props.valuta +\r\n '
',\r\n );\r\n text = text.replace('[belop2]', Utregninger.formatNumber(belop.belop2, props.locale));\r\n return
;\r\n }\r\n\r\n function hentSvar4(inntekt: number): JSX.Element | null {\r\n\r\n const belop: Utregninger.ReturnValues = Utregninger.RegnUtVisning4(\r\n inntekt,\r\n props.satser.SATS_ST04_INNTEKTSGRENSE_DAGER_0_210,\r\n props.satser.SATS_ST01_MAKS_BASISSTOTTE_DAG,\r\n );\r\n let text: string = resolveRawText(epiContext, 'boks2Svar4');\r\n text = text.replace(\r\n '[belop3]',\r\n '
' +\r\n Utregninger.formatNumber(belop.belop1, props.locale) +\r\n ' ' +\r\n props.valuta +\r\n '
',\r\n );\r\n text = text.replace('[belop4]', Utregninger.formatNumber(belop.belop2, props.locale));\r\n return
;\r\n }\r\n\r\n function hentSvar5(inntekt: number): JSX.Element | null {\r\n\r\n const belop: Utregninger.ReturnValues = Utregninger.RegnUtVisning5(\r\n inntekt,\r\n props.satser.SATS_ST04_INNTEKTSGRENSE_DAGER_211_X,\r\n props.satser.SATS_ST01_MAKS_BASISSTOTTE_DAG,\r\n );\r\n const text: string = resolveRawText(epiContext, 'boks2Svar5');\r\n let sp1: string = resolveRawText(epiContext, 'boks2Svar5_sp1');\r\n let sp2: string = resolveRawText(epiContext, 'boks2Svar5_sp2');\r\n let sp3: string = resolveRawText(epiContext, 'boks2Svar5_sp3');\r\n sp1 = sp1.replace('[belop5]', Utregninger.formatNumber(belop.belop1, props.locale));\r\n sp2 = sp2.replace('[belop6]', Utregninger.formatNumber(belop.belop2, props.locale));\r\n sp3 = sp3.replace('[belop7]', Utregninger.formatNumber(belop.belop3, props.locale));\r\n\r\n return (\r\n
\r\n
{text}
\r\n
{sp1}
\r\n
{sp2}
\r\n
{sp3}
\r\n
\r\n );\r\n }\r\n\r\n function hentSvar6(inntekt: number): JSX.Element | null {\r\n\r\n const belop: Utregninger.ReturnValues = Utregninger.RegnUtVisning6(\r\n inntekt,\r\n props.satser.SATS_ST04_INNTEKTSGRENSE_DAGER_0_210,\r\n props.satser.SATS_ST01_MAKS_BASISSTOTTE_DAG,\r\n );\r\n const text: string = resolveRawText(epiContext, 'boks2Svar6');\r\n let sp1: string = resolveRawText(epiContext, 'boks2Svar6_sp1');\r\n let sp2: string = resolveRawText(epiContext, 'boks2Svar6_sp2');\r\n let sp3: string = resolveRawText(epiContext, 'boks2Svar6_sp3');\r\n sp1 = sp1.replace('[belop8]', Utregninger.formatNumber(belop.belop1, props.locale));\r\n sp2 = sp2.replace('[belop9]', Utregninger.formatNumber(belop.belop2, props.locale));\r\n sp3 = sp3.replace('[belop10]', Utregninger.formatNumber(belop.belop3, props.locale));\r\n\r\n return (\r\n
\r\n
{text}
\r\n
{sp1}
\r\n
{sp2}
\r\n
{sp3}
\r\n
\r\n );\r\n }\r\n\r\n function hentSvar7(inntekt: number): JSX.Element | null {\r\n\r\n const belop: Utregninger.ReturnValues = Utregninger.RegnUtVisning7(\r\n inntekt,\r\n props.satser.SATS_ST04_INNTEKTSGRENSE_DAGER_211_X,\r\n );\r\n const text: string = resolveRawText(epiContext, 'boks2Svar7');\r\n let topplinje: string = resolveRawText(epiContext, 'boks2Svar7_topplinje');\r\n topplinje = topplinje.replace('[belop11]', Utregninger.formatNumber(belop.belop1, props.locale));\r\n\r\n return (\r\n
\r\n
\r\n {topplinje}\r\n
\r\n
{text}
\r\n
\r\n );\r\n }\r\n\r\n function hentSvar8(inntekt: number): JSX.Element | null {\r\n\r\n const belop: Utregninger.ReturnValues = Utregninger.RegnUtVisning8(\r\n inntekt,\r\n props.satser.SATS_ST04_INNTEKTSGRENSE_DAGER_0_210,\r\n );\r\n const text: string = resolveRawText(epiContext, 'boks2Svar8');\r\n let topplinje: string = resolveRawText(epiContext, 'boks2Svar8_topplinje');\r\n topplinje = topplinje.replace('[belop12]', Utregninger.formatNumber(belop.belop1, props.locale));\r\n\r\n return (\r\n
\r\n
\r\n {topplinje}\r\n
\r\n
{text}
\r\n
\r\n );\r\n }\r\n\r\n function hentSvar9(inntekt: number): JSX.Element | null {\r\n\r\n const belop: Utregninger.ReturnValues = Utregninger.RegnUtVisning9(\r\n inntekt,\r\n props.satser.SATS_ST04_INNTEKTSGRENSE_DAGER_211_X,\r\n );\r\n const text: string = resolveRawText(epiContext, 'boks2Svar9');\r\n let topplinje: string = resolveRawText(epiContext, 'boks2Svar9_topplinje');\r\n topplinje = topplinje.replace('[belop13]', Utregninger.formatNumber(belop.belop1, props.locale));\r\n\r\n return (\r\n
\r\n
\r\n {topplinje}\r\n
\r\n
{text}
\r\n
\r\n );\r\n }\r\n\r\n function hentSvar10(inntekt: number): JSX.Element | null {\r\n\r\n const belop: Utregninger.ReturnValues = Utregninger.RegnUtVisning10(\r\n inntekt,\r\n props.satser.SATS_ST04_INNTEKTSGRENSE_DAGER_0_210,\r\n );\r\n const text: string = resolveRawText(epiContext, 'boks2Svar10');\r\n let topplinje: string = resolveRawText(epiContext, 'boks2Svar10_topplinje');\r\n topplinje = topplinje.replace('[belop14]', Utregninger.formatNumber(belop.belop1, props.locale));\r\n\r\n return (\r\n
\r\n
\r\n {topplinje}\r\n
\r\n
{text}
\r\n
\r\n );\r\n }\r\n\r\n function hentVisning(): JSX.Element | null {\r\n //fjerner alle andre tegn enn tall, eks space og komma.\r\n\r\n const stringInntekt: string = props.valg.inntekt?.value.replace(/[^0-9]/g, '');\r\n const inntekt: number = parseInt(stringInntekt);\r\n\r\n //visning 1 - default visning\r\n if (inntekt <= props.satser.SATS_ST04_INNTEKTSGRENSE_DAGER_211_X && stotteHeltAar) {\r\n return (\r\n
\r\n

\r\n {contentResolver(epiContext, 'boks2OverskriftUnderGrensen')}\r\n

\r\n
\r\n
{contentResolver(epiContext, 'boks2Svar1')}
\r\n
\r\n {contentResolver(epiContext, 'boks2Svar1Uthevet')}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n //visning 2 - påvirkes av brukerens valg i innstillingene\r\n\r\n if (inntekt <= props.satser.SATS_ST04_INNTEKTSGRENSE_DAGER_0_210 && !stotteHeltAar) {\r\n return (\r\n
\r\n

\r\n {contentResolver(epiContext, 'boks2OverskriftUnderGrensen')}\r\n

\r\n
\r\n
{contentResolver(epiContext, 'boks2Svar2')}
\r\n
\r\n {contentResolver(epiContext, 'boks2Svar2Uthevet')}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n //visning 3 - default visning\r\n\r\n if (\r\n inntekt > props.satser.SATS_ST04_INNTEKTSGRENSE_DAGER_211_X &&\r\n studererFulltid &&\r\n !mottarBarnestipend &&\r\n stotteHeltAar\r\n ) {\r\n return (\r\n
\r\n

\r\n {contentResolver(epiContext, 'boks2OverskriftOverGrensen')}\r\n

\r\n
{hentSvar3(inntekt)}
\r\n
\r\n );\r\n }\r\n\r\n //visning 4 - påvirkes av brukerens valg i innstillingene\r\n\r\n if (\r\n inntekt > props.satser.SATS_ST04_INNTEKTSGRENSE_DAGER_0_210 &&\r\n studererFulltid &&\r\n !mottarBarnestipend &&\r\n !stotteHeltAar\r\n ) {\r\n return (\r\n
\r\n

\r\n {contentResolver(epiContext, 'boks2OverskriftOverGrensen')}\r\n

\r\n
{hentSvar4(inntekt)}
\r\n
\r\n );\r\n }\r\n\r\n //visning 5 - påvirkes av brukerens valg i innstillingene\r\n\r\n if (\r\n inntekt > props.satser.SATS_ST04_INNTEKTSGRENSE_DAGER_211_X &&\r\n !studererFulltid &&\r\n !mottarBarnestipend &&\r\n stotteHeltAar\r\n ) {\r\n return (\r\n
\r\n

\r\n {contentResolver(epiContext, 'boks2OverskriftOverGrensen')}\r\n

\r\n
{hentSvar5(inntekt)}
\r\n
\r\n );\r\n }\r\n\r\n //visning 6 - påvirkes av brukerens valg i innstillingene\r\n if (\r\n inntekt > props.satser.SATS_ST04_INNTEKTSGRENSE_DAGER_0_210 &&\r\n !studererFulltid &&\r\n !mottarBarnestipend &&\r\n !stotteHeltAar\r\n ) {\r\n return (\r\n
\r\n

\r\n {contentResolver(epiContext, 'boks2OverskriftOverGrensen')}\r\n

\r\n
{hentSvar6(inntekt)}
\r\n
\r\n );\r\n }\r\n\r\n //visning 7 - påvirkes av brukerens valg i innstillingene\r\n\r\n if (\r\n inntekt > props.satser.SATS_ST04_INNTEKTSGRENSE_DAGER_211_X &&\r\n studererFulltid &&\r\n mottarBarnestipend &&\r\n stotteHeltAar\r\n ) {\r\n return (\r\n
\r\n

\r\n {contentResolver(epiContext, 'boks2OverskriftOverGrensen')}\r\n

\r\n
{hentSvar7(inntekt)}
\r\n
\r\n );\r\n }\r\n\r\n //visning 8 - påvirkes av brukerens valg i innstillingene\r\n\r\n if (\r\n inntekt > props.satser.SATS_ST04_INNTEKTSGRENSE_DAGER_0_210 &&\r\n studererFulltid &&\r\n mottarBarnestipend &&\r\n !stotteHeltAar\r\n ) {\r\n return (\r\n
\r\n

\r\n {contentResolver(epiContext, 'boks2OverskriftOverGrensen')}\r\n

\r\n
{hentSvar8(inntekt)}
\r\n
\r\n );\r\n }\r\n\r\n //visning 9 - påvirkes av brukerens valg i innstillingene\r\n\r\n if (\r\n inntekt > props.satser.SATS_ST04_INNTEKTSGRENSE_DAGER_211_X &&\r\n !studererFulltid &&\r\n mottarBarnestipend &&\r\n stotteHeltAar\r\n ) {\r\n return (\r\n
\r\n

\r\n {contentResolver(epiContext, 'boks2OverskriftOverGrensen')}\r\n

\r\n
{hentSvar9(inntekt)}
\r\n
\r\n );\r\n }\r\n\r\n //visning 10 - påvirkes av brukerens valg i innstillingene\r\n if (\r\n inntekt > props.satser.SATS_ST04_INNTEKTSGRENSE_DAGER_0_210 &&\r\n !studererFulltid &&\r\n mottarBarnestipend &&\r\n !stotteHeltAar\r\n ) {\r\n return (\r\n
\r\n

\r\n {contentResolver(epiContext, 'boks2OverskriftOverGrensen')}\r\n

\r\n
{hentSvar10(inntekt)}
\r\n
\r\n );\r\n }\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n
{hentVisning()}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {contentResolver(epiContext, 'innstillingOverskrift')}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n setVisModal(true)}\r\n >\r\n {contentResolver(epiContext, 'boks2ModalLenketekst')}\r\n \r\n setVisModal(false)}\r\n ariaCloseText={resolveRawText(epiContext, 'boks2ModalLukkTekst')}\r\n >\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\ninterface MapStateToProps {\r\n epiContext: EpiContext;\r\n}\r\n\r\nexport default connect(\r\n (state: VeilederInntektskalkulatorAppState): MapStateToProps => {\r\n return {\r\n epiContext: state.epiContext,\r\n };\r\n },\r\n)(BoksBComponent);\r\n","import React from 'react';\r\nimport ReactModal from 'react-modal';\r\nimport { connect } from 'react-redux';\r\nimport { ThunkDispatch } from 'redux-thunk';\r\nimport { AnyAction } from 'redux';\r\n\r\nimport { EpiContext } from '../Shared/Scripts/Store/EpiContext/Types';\r\nimport { FeilmeldingComponent } from '../Shared/Scripts/Components/FeilmeldingComponent';\r\nimport Valg from '../Shared/Scripts/Models/Valg';\r\n\r\nimport VeilederInntektskalkulatorDto from './Models/VeilederInntektskalkulatorDto';\r\nimport { VeilederInntektskalkulatorAppState } from './Store';\r\nimport * as Ids from './Models/Ids';\r\nimport * as ValgTypes from './Store/Valg/Types';\r\nimport { updateValg, updateVisning } from './Store/Valg/Actions';\r\nimport { ResultatValg } from './Store/Resultat/Types';\r\nimport { SiteImproveState } from '../Shared/Scripts/Utilities/SiteImproveEventsHandler';\r\nimport BoksA from './Components/BoksA';\r\nimport BoksB from './Components/BoksB';\r\nimport { Satser } from './Utilities/SatserApi';\r\n\r\ninterface AppOwnProps {}\r\n\r\ntype AppProps = AppOwnProps & MapStateToProps & MapDispatchToProps;\r\n\r\nReactModal.setAppElement(document.getElementById(Ids.AppContainerId) as HTMLElement);\r\n\r\ninterface AppState {\r\n collapsed: boolean\r\n}\r\n\r\nexport class App extends React.Component {\r\n constructor(props: AppProps) {\r\n super(props);\r\n this.state = {collapsed: true}\r\n }\r\n\r\n render(): JSX.Element {\r\n const { valg, resultat, dispatchUpdateValg, epiContext, satser } = this.props;\r\n const { epiModel, locale, valuta } = this.props.epiContext;\r\n\r\n if (epiContext.epiModelFeilet) {\r\n return ;\r\n }\r\n\r\n function hentBreddeKlasse(): string {\r\n if(epiModel?.bredde === undefined || epiModel.bredde.value === \"\") {\r\n return \"c-veileder c-veileder--mini\";\r\n }\r\n return \"c-veileder \" + epiModel.bredde.value;\r\n }\r\n\r\n function registerSiteImproveEvents(): void {\r\n if(!SiteImproveState.Startet) {\r\n //if(valg.visHeleKalkulator) {\r\n //veileder påstartet\r\n //SiteImproveState.Startet = true;\r\n //SiteImproveHandler.registerSiteImproveEvent(SiteImproveKategorier.Veileder, SiteImproveEvents.Klikk, \"Vis betalingskalkulator\");\r\n //}\r\n }\r\n }\r\n\r\n if (epiModel != null) {\r\n return (\r\n
\r\n {registerSiteImproveEvents()}\r\n ): void => {\r\n dispatchUpdateValg({ inntekt: nyttValg });\r\n }}\r\n />\r\n {valg.inntekt !== null && valg.inntekt !== undefined &&\r\n \r\n }\r\n
\r\n );\r\n } else {\r\n return
Laster...
;\r\n }\r\n }\r\n}\r\n\r\ninterface MapStateToProps {\r\n valg: ValgTypes.ValgState;\r\n epiContext: EpiContext;\r\n resultat: ResultatValg;\r\n satser: Satser | null;\r\n}\r\n\r\ninterface MapDispatchToProps {\r\n dispatchUpdateValg: (newValg: Partial) => void;\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch: ThunkDispatch): MapDispatchToProps => ({\r\n dispatchUpdateValg: (newValg: Partial): void => {\r\n dispatch(updateValg(newValg));\r\n dispatch(updateVisning());\r\n },\r\n});\r\n\r\nconst mapStateToProps = (state: VeilederInntektskalkulatorAppState): MapStateToProps => ({\r\n valg: state.valg,\r\n epiContext: state.epiContext,\r\n resultat: state.resultat,\r\n satser: state.satser,\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(App);\r\n","import { ResultatValg, SET_VISNING, ResultatActionTypes } from './Types';\r\nimport { ValgStateActionTypes } from '../Valg/Types';\r\n\r\nconst initialState: ResultatValg = {\r\n visBoksB: false,\r\n};\r\n\r\nexport function resultatReducer(\r\n state: ResultatValg = initialState,\r\n action: ValgStateActionTypes | ResultatActionTypes,\r\n): ResultatValg {\r\n switch (action.type) {\r\n case SET_VISNING: {\r\n return {\r\n ...state,\r\n ...action.payload,\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { ValgStateActionTypes, ValgState, UPDATE_VALG } from './Types';\r\n\r\nexport const initialState: ValgState = {\r\n inntekt: undefined,\r\n};\r\n\r\nexport function valgReducer(state: ValgState = initialState, action: ValgStateActionTypes): ValgState {\r\n const newState = getNewState();\r\n return newState;\r\n\r\n function getNewState(): ValgState {\r\n switch (action.type) {\r\n case UPDATE_VALG: {\r\n \r\n return {\r\n ...state,\r\n ...action.payload,\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n }\r\n}\r\n","import { Satser } from '../../Utilities/SatserApi';\r\n\r\nexport const SET_SATSER = 'SET_SATSER';\r\n\r\nexport interface SetSatserAction {\r\n type: typeof SET_SATSER;\r\n payload: Satser;\r\n}\r\n\r\nexport type SatserActionTypes = SetSatserAction;\r\n","import { SET_SATSER, SatserActionTypes } from './Types';\r\nimport { Satser } from '../../Utilities/SatserApi';\r\n\r\nconst initialState: Satser | null = null;\r\n\r\nexport function satserReducer(state: Satser | null = initialState, action: SatserActionTypes): Satser | null {\r\n switch (action.type) {\r\n case SET_SATSER: {\r\n return action.payload;\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import ReduxThunk from 'redux-thunk';\r\nimport { createStore, combineReducers, Store, applyMiddleware } from 'redux';\r\nimport VeilederInntektskalkulatorDto from '../Models/VeilederInntektskalkulatorDto';\r\nimport { epiContextReducer } from '../../Shared/Scripts/Store/EpiContext/Reducers';\r\nimport { resultatReducer } from './Resultat/Reducers';\r\nimport { EpiContext, UpdateEpiContextActionTypes } from '../../Shared/Scripts/Store/EpiContext/Types';\r\nimport { stegVisningReducer } from '../../Shared/Scripts/Store/StegVisning/Reducers';\r\nimport { EpiAppStateMedSteg } from '../../Shared/Scripts/Store/Types';\r\nimport { valgReducer } from './Valg/Reducers';\r\nimport { satserReducer } from './Satser/Reducers';\r\n\r\nconst rootReducer = combineReducers({\r\n valg: valgReducer,\r\n resultat: resultatReducer,\r\n epiContext: (\r\n state: EpiContext | undefined,\r\n action: UpdateEpiContextActionTypes,\r\n ): EpiContext => epiContextReducer(state, action),\r\n stegVisning: stegVisningReducer,\r\n satser: satserReducer,\r\n});\r\n\r\nexport type VeilederInntektskalkulatorAppState = EpiAppStateMedSteg & {\r\n valg: ReturnType;\r\n resultat: ReturnType;\r\n satser: ReturnType;\r\n};\r\n\r\nexport default function configureStore(): Store {\r\n return createStore(rootReducer, applyMiddleware(ReduxThunk));\r\n}\r\n","export const getSatser = async (): Promise => {\r\n const response = await fetch('/api/mt1535/satser/inntektskalkulator');\r\n\r\n if (!response.ok) {\r\n throw response;\r\n }\r\n\r\n return await response.json();\r\n};\r\n\r\nexport interface Satser {\r\n SATS_ST01_MAKS_BASISSTOTTE_DAG: number;\r\n SATS_ST04_INNTEKTSGRENSE_DAGER_211_X: number;\r\n SATS_ST04_INNTEKTSGRENSE_DAGER_0_210: number;\r\n}\r\n","import { SET_SATSER, SetSatserAction } from './Types';\r\nimport { Satser } from '../../Utilities/SatserApi';\r\n\r\nexport function setSatser(satser: Satser): SetSatserAction {\r\n return {\r\n type: SET_SATSER,\r\n payload: satser,\r\n };\r\n}\r\n","import React from 'react';\r\nimport { Provider } from 'react-redux';\r\nimport App from './App';\r\nimport configureStore from './Store';\r\nimport InitEpiMessages from '../Shared/Scripts/Utilities/EpiMessages';\r\nimport { updateLanguage } from '../Shared/Scripts/Store/EpiContext/Actions';\r\nimport { epiResolveLanguage } from '../Shared/Scripts/Utilities/EpiResolveLanguage';\r\nimport { AppContainerId } from './Models/Ids';\r\nimport { getSatser } from './Utilities/SatserApi';\r\nimport { setSatser } from './Store/Satser/Actions';\r\nimport { createRoot } from 'react-dom/client';\r\n\r\nconst store = configureStore();\r\nstore.dispatch(updateLanguage(epiResolveLanguage()));\r\n\r\nconst container = document.getElementById(AppContainerId);\r\n\r\nif (container != null) {\r\n const root = createRoot(container!);\r\n const contentLink = container.attributes['data-content'].value as string;\r\n InitEpiMessages(store, contentLink);\r\n\r\n getSatser()\r\n .then((data): void => {\r\n store.dispatch(setSatser(data));\r\n })\r\n .catch((reason: any): void => {\r\n //store.dispatch(setVisning({ visGenerellFeil: true }));\r\n });\r\n\r\n const AppRoot = (): JSX.Element => (\r\n \r\n \r\n \r\n );\r\n\r\n root.render();\r\n}\r\n"],"names":["useState","Utregninger.formatNumber","Ids.boksA","jsx","contentResolver","jsxs","useEffect","Utregninger.RegnUtVisning3","Utregninger.RegnUtVisning4","Utregninger.RegnUtVisning5","Utregninger.RegnUtVisning6","Utregninger.RegnUtVisning7","Utregninger.RegnUtVisning8","Utregninger.RegnUtVisning9","Utregninger.RegnUtVisning10","Ids.boksB","Ids.AppContainerId","initialState","ReduxThunk","createRoot","App"],"mappings":"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"}