{"version":3,"file":"veilederVgsUtenUngdomsrett-D8PeYw5i.js","sources":["../../../Features/VeilederVgsUtenUngdomsrett/Utilities/B-VarighetValg.ts","../../../Features/VeilederVgsUtenUngdomsrett/Kalkulator.ts","../../../Features/VeilederVgsUtenUngdomsrett/Utilities/A-StudieretningValg.ts","../../../Features/VeilederVgsUtenUngdomsrett/Utilities/C-FulltidDeltidValg.ts","../../../Features/VeilederVgsUtenUngdomsrett/Utilities/D-ArstimerProsent.ts","../../../Features/VeilederVgsUtenUngdomsrett/Utilities/E-SkolepengerValg.ts","../../../Features/VeilederVgsUtenUngdomsrett/Utilities/H-BostedValg.ts","../../../Features/VeilederVgsUtenUngdomsrett/Veileder.ts","../../../Features/VeilederVgsUtenUngdomsrett/Store/Valg/Types.ts","../../../Features/VeilederVgsUtenUngdomsrett/Utilities/ValideringParameters.ts","../../../Features/VeilederVgsUtenUngdomsrett/Store/Resultat/Types.ts","../../../Features/VeilederVgsUtenUngdomsrett/Store/Resultat/Actions.ts","../../../Features/VeilederVgsUtenUngdomsrett/Store/Valg/Actions.ts","../../../Features/VeilederVgsUtenUngdomsrett/Ids.ts","../../../Features/VeilederVgsUtenUngdomsrett/Components/G-ResultatComponent.tsx","../../../Features/VeilederVgsUtenUngdomsrett/Components/GX-ResultatComponent.tsx","../../../Features/VeilederVgsUtenUngdomsrett/Components/I-ResultatComponent.tsx","../../../Features/VeilederVgsUtenUngdomsrett/Components/UtbetalingSemesterComponent.tsx","../../../Features/VeilederVgsUtenUngdomsrett/Components/GU-ResultatComponent.tsx","../../../Features/VeilederVgsUtenUngdomsrett/Components/D-ArstimerProsentComponent.tsx","../../../Features/VeilederVgsUtenUngdomsrett/App.tsx","../../../Features/VeilederVgsUtenUngdomsrett/Store/Valg/Reducers.ts","../../../Features/VeilederVgsUtenUngdomsrett/Store/Resultat/Reducers.ts","../../../Features/VeilederVgsUtenUngdomsrett/Store/Satser/Types.ts","../../../Features/VeilederVgsUtenUngdomsrett/Store/Satser/Reducers.ts","../../../node_modules/.pnpm/@redux-devtools+extension@3.3.0_redux@4.2.1/node_modules/@redux-devtools/extension/lib/esm/index.js","../../../Features/VeilederVgsUtenUngdomsrett/Store/index.ts","../../../Features/VeilederVgsUtenUngdomsrett/Utilities/SatserApi.ts","../../../Features/VeilederVgsUtenUngdomsrett/Store/Satser/Actions.ts","../../../Features/VeilederVgsUtenUngdomsrett/index.tsx"],"sourcesContent":["import { RadioButtonValgModel } from '../../Shared/Scripts/Components/RadioButtonValg';\r\nimport VeilederVgsUrDto from '../Models/VeilederVgsUrDto';\r\n\r\nconst heltAr = 'b1-heltAr';\r\nconst host = 'b2-host';\r\nconst vaar = 'b3-var';\r\n\r\nconst map = {\r\n 'b1-heltAr': 10,\r\n 'b2-host': 5,\r\n 'b3-var': 5,\r\n};\r\n\r\nconst bValg: RadioButtonValgModel[] = [\r\n { id: 'b1', value: heltAr, tekst: 'valgHeltAr' },\r\n { id: 'b2', value: host, tekst: 'valgHost' },\r\n { id: 'b3', value: vaar, tekst: 'valgVar' },\r\n];\r\n\r\nexport default {\r\n b1_heltAr: heltAr,\r\n b2_host: host,\r\n b3_var: vaar,\r\n bValg,\r\n\r\n antallMnd: (semesterType: string): number => {\r\n return map[semesterType];\r\n },\r\n};\r\n","import { Termin, Utbetalingsplan } from './Models/Utbetalingsplan';\r\nimport B from './Utilities/B-VarighetValg';\r\n\r\nexport const beregnStipendOgLan = (\r\n antallManeder: number,\r\n skolepengebelop: number,\r\n basisstottePerMnd: number,\r\n andelBelastning: number,\r\n): number => {\r\n return antallManeder * basisstottePerMnd * andelBelastning + skolepengebelop;\r\n};\r\n\r\nexport const beregnStipend = (borteboer: boolean, totalsum: number, skolepenger: number, ST01_MaksBasisstotteperManed: number, antallManeder: number, vetIkkeAarstimer: boolean, ST01_MaksSkolepengestottePerAr: number): number => {\r\n if(!borteboer) {\r\n return 0;\r\n }\r\n \r\n if(vetIkkeAarstimer) {\r\n return (antallManeder * ST01_MaksBasisstotteperManed) * 0.4;\r\n }\r\n return (totalsum - skolepenger) * 0.4;\r\n};\r\n\r\nexport const beregnLan = (borteboer: boolean, totalsum: number, skolepenger: number, ST01_MaksBasisstotteperManed: number, antallManeder: number, vetIkkeAarstimer: boolean, ST01_MaksSkolepengestottePerAr: number, varighet: string): number => {\r\n if(!borteboer) {\r\n return totalsum;\r\n }\r\n if(vetIkkeAarstimer) {\r\n\r\n var nevner: number = 1;\r\n if(varighet !== B.b1_heltAr)\r\n nevner = 2;\r\n\r\n return ((antallManeder * ST01_MaksBasisstotteperManed) * 0.6) + (ST01_MaksSkolepengestottePerAr / nevner); \r\n }\r\n return (totalsum - skolepenger) * 0.6 + skolepenger;\r\n};\r\n\r\nexport const beregnUtbetalingsplan = (\r\n hostManeder: number,\r\n varManeder: number,\r\n stipendOgLan: number,\r\n skolepenger: number,\r\n): Utbetalingsplan => {\r\n const stipendOgLanUtenSkolepenger = stipendOgLan - skolepenger;\r\n const skalHaJuniBetaling = varManeder === 6;\r\n const harHostPeriode = hostManeder > 0;\r\n const harVarPeriode = varManeder > 0;\r\n const heltSkolear = harHostPeriode && harVarPeriode;\r\n\r\n const stipendOgLanDeltPaAntallManeder = stipendOgLanUtenSkolepenger / (varManeder + hostManeder);\r\n\r\n const stipendOgLanVar = stipendOgLanDeltPaAntallManeder * varManeder;\r\n const stipendOgLanHost = stipendOgLanDeltPaAntallManeder * hostManeder;\r\n\r\n const stipendOgLanJuni = skalHaJuniBetaling ? stipendOgLanVar / varManeder : 0;\r\n const stipendOgLanVanUtenJuni = stipendOgLanVar - stipendOgLanJuni;\r\n const skolepengerHalvar = heltSkolear ? skolepenger / 2 : skolepenger;\r\n\r\n const hostPeriode = harHostPeriode\r\n ? beregnPeriode(8, hostManeder, stipendOgLanHost, skolepengerHalvar)\r\n : new Array();\r\n const vanligeVarManeder = skalHaJuniBetaling ? varManeder - 1 : varManeder;\r\n const varPeriode = harVarPeriode\r\n ? beregnPeriode(1, vanligeVarManeder, stipendOgLanVanUtenJuni, skolepengerHalvar)\r\n : new Array();\r\n\r\n if (skalHaJuniBetaling) {\r\n varPeriode.push({\r\n mnd: 6,\r\n terminbelop: stipendOgLanJuni,\r\n });\r\n }\r\n\r\n return {\r\n terminerhost: harHostPeriode\r\n ? {\r\n sum: stipendOgLanHost + skolepengerHalvar,\r\n terminer: hostPeriode,\r\n }\r\n : null,\r\n terminervar: harVarPeriode\r\n ? {\r\n sum: stipendOgLanVar + skolepengerHalvar,\r\n terminer: varPeriode,\r\n }\r\n : null,\r\n };\r\n};\r\n\r\nconst beregnPeriode = (\r\n startManed: number,\r\n antallManeder: number,\r\n stipendOgLanPeriode: number,\r\n skolepengerPeriode: number,\r\n): Termin[] => {\r\n const periode = new Array();\r\n periode.push({\r\n mnd: startManed,\r\n terminbelop: stipendOgLanPeriode * 0.4 + skolepengerPeriode,\r\n });\r\n\r\n const andreManed = startManed + 1;\r\n const sisteManed = startManed + antallManeder;\r\n for (let maned = andreManed; maned < sisteManed; maned++) {\r\n periode.push({\r\n mnd: maned,\r\n terminbelop: stipendOgLanPeriode * 0.15,\r\n });\r\n }\r\n\r\n return periode;\r\n};\r\n","import { RadioButtonValgModel } from '../../Shared/Scripts/Components/RadioButtonValg';\r\nimport VeilederVgsUrDto from '../Models/VeilederVgsUrDto';\r\n\r\nconst studieforbedrende = 'a1-studieforbedrende';\r\nconst yrkesfag = 'a2-yrkesfag';\r\nconst pabygg = 'a3-pabygg';\r\n\r\nconst aValg: RadioButtonValgModel[] = [\r\n {\r\n id: 'a1',\r\n value: studieforbedrende,\r\n tekst: 'valgStudieforberedende',\r\n },\r\n {\r\n id: 'a2',\r\n value: yrkesfag,\r\n tekst: 'valgYrkesfag',\r\n },\r\n { id: 'a3', value: pabygg, tekst: 'valgPabygging' },\r\n];\r\n\r\nexport default {\r\n a1_studieforbedrende: studieforbedrende,\r\n a2_yrkesfag: yrkesfag,\r\n a3_pabygg: pabygg,\r\n aValg,\r\n};\r\n","import { RadioButtonValgModel } from '../../Shared/Scripts/Components/RadioButtonValg';\r\nimport VeilederVgsUrDto from '../Models/VeilederVgsUrDto';\r\n\r\nconst heltAr = 'c1-fulltid';\r\nconst host = 'c2-deltid';\r\n\r\nconst cValg: RadioButtonValgModel[] = [\r\n { id: 'c1', value: heltAr, tekst: 'valgFulltid' },\r\n { id: 'c2', value: host, tekst: 'valgDeltid' },\r\n];\r\n\r\nexport default {\r\n c1_fulltid: heltAr,\r\n c2_deltid: host,\r\n cValg,\r\n};\r\n","const arstimer = 'd1-arstimer';\r\nconst prosent = 'd2-prosent';\r\n\r\nexport default {\r\n d1_arstimer: arstimer,\r\n d2_prosent: prosent,\r\n};\r\n","import { RadioButtonValgModel } from '../../Shared/Scripts/Components/RadioButtonValg';\r\nimport VeilederVgsUrDto from '../Models/VeilederVgsUrDto';\r\n\r\nconst ja = 'e1-ja';\r\nconst nei = 'e2-nei';\r\n\r\nconst eValg: RadioButtonValgModel[] = [\r\n {\r\n id: 'e1',\r\n value: ja,\r\n tekst: 'valgBetalerSkolepenger',\r\n },\r\n {\r\n id: 'e2',\r\n value: nei,\r\n tekst: 'valgBetalerIkkeSkolepenger',\r\n },\r\n];\r\n\r\nexport default {\r\n e1_ja: ja,\r\n e2_nei: nei,\r\n eValg,\r\n};\r\n","import { RadioButtonValgModel } from '../../Shared/Scripts/Components/RadioButtonValg';\r\nimport VeilederVgsUrDto from '../Models/VeilederVgsUrDto';\r\n\r\nconst borte = 'h1-borte';\r\nconst hjemme = 'h2-hjemme';\r\n\r\nconst dValg: RadioButtonValgModel[] = [\r\n { id: 'h1', value: borte, tekst: 'valgBorForMegSelv' },\r\n {\r\n id: 'h2',\r\n value: hjemme,\r\n tekst: 'valgBorMedForeldre',\r\n },\r\n];\r\n\r\nexport default {\r\n h1_hjemme: hjemme,\r\n h2_borte: borte,\r\n hValg: dValg,\r\n};\r\n","import * as Kalkulator from './Kalkulator';\r\nimport A from './Utilities/A-StudieretningValg';\r\nimport B from './Utilities/B-VarighetValg';\r\nimport C from './Utilities/C-FulltidDeltidValg';\r\nimport D from './Utilities/D-ArstimerProsent';\r\nimport E from './Utilities/E-SkolepengerValg';\r\nimport H from './Utilities/H-BostedValg';\r\nimport { ValgState } from './Store/Valg/Types';\r\nimport Resultat from './Models/Resultat';\r\nimport { Utbetalingsplan } from './Models/Utbetalingsplan';\r\nimport { Satser } from './Utilities/SatserApi';\r\n\r\nexport const fulltidArstimer = (state: ValgState): number => {\r\n return state.aStudieretning?.value === A.a2_yrkesfag ? 980 : 840;\r\n};\r\n\r\nexport const finnMaksArstimer = (state: ValgState, fulltid: number): number => {\r\n return state.bVarighet?.value === B.b1_heltAr ? fulltid : fulltid / 2;\r\n};\r\n\r\nconst hentAngittArstimer = (state: ValgState, maksArstimer: number): number => {\r\n if (state.dArstimerProsent?.vetIkke === true) {\r\n return maksArstimer;\r\n }\r\n\r\n if (!state.dArstimerProsent?.verdi) {\r\n throw Error('Årstimer/Prosent kan ikke være undefined');\r\n }\r\n\r\n const verdi = Number(state.dArstimerProsent.verdi)\r\n\r\n return state.dArstimerProsent.type === D.d2_prosent\r\n ? (verdi * maksArstimer) / 100\r\n : verdi;\r\n};\r\n\r\nconst hentArstimerForState = (state: ValgState, arstimerMaks: number): number => {\r\n return state.cFulltidDeltid?.value === C.c1_fulltid ? arstimerMaks : hentAngittArstimer(state, arstimerMaks);\r\n};\r\n\r\nexport const maksSkolepenger = (state: ValgState, satser: Satser): number => {\r\n const fullArstimer = fulltidArstimer(state);\r\n const arstimerMaks = finnMaksArstimer(state, fullArstimer);\r\n const angitt = hentArstimerForState(state, arstimerMaks);\r\n\r\n return Math.ceil((satser.HoyskoleOgUniversitet.ST01_MaksSkolepengestottePerAr * angitt) / fullArstimer);\r\n};\r\n\r\nexport const beregnStipendOgLan = (state: ValgState, satser: Satser): number => {\r\n const fullArstimer = fulltidArstimer(state);\r\n const arstimerMaks = finnMaksArstimer(state, fullArstimer);\r\n const angitt = hentArstimerForState(state, arstimerMaks);\r\n\r\n const antallMnd = getAntallMndForBeregning(state);\r\n const skolepenger = hentSkolepenger(state, satser);\r\n\r\n return Kalkulator.beregnStipendOgLan(\r\n antallMnd,\r\n skolepenger,\r\n satser.HoyskoleOgUniversitet.ST01_MaksBasisstotteperManed,\r\n angitt / arstimerMaks,\r\n );\r\n};\r\n\r\nexport const beregnStipendDelvis = (state: ValgState, satser: Satser): number => {\r\n const antallMnd = getAntallMndForBeregning(state);\r\n return Kalkulator.beregnStipendOgLan(antallMnd, 0, satser.HoyskoleOgUniversitet.ST01_MaksBasisstotteperManed, 1);\r\n};\r\n\r\nexport const beregnAndelStipendOgLan = (state: ValgState, stipendOgLan: number, satser: Satser): Resultat => {\r\n const skolepenger = hentSkolepenger(state, satser);\r\n const erBorteboer = state.hBosted?.value === H.h2_borte;\r\n \r\n var vetIkkeAarstimer: boolean = false;\r\n if(state.dArstimerProsent !== null && state.dArstimerProsent !== undefined && state.dArstimerProsent.verdi == undefined) \r\n vetIkkeAarstimer = true;\r\n\r\n const antallMnd = getAntallMndForBeregning(state);\r\n const varighet = getSemesterTypeForBeregning(state);\r\n\r\n return {\r\n stipendOgLan,\r\n stipend: Kalkulator.beregnStipend(erBorteboer, stipendOgLan, skolepenger, satser.HoyskoleOgUniversitet.ST01_MaksBasisstotteperManed, antallMnd, vetIkkeAarstimer, satser.HoyskoleOgUniversitet.ST01_MaksSkolepengestottePerAr),\r\n lan: Kalkulator.beregnLan(erBorteboer, stipendOgLan, skolepenger, satser.HoyskoleOgUniversitet.ST01_MaksBasisstotteperManed, antallMnd, vetIkkeAarstimer, satser.HoyskoleOgUniversitet.ST01_MaksSkolepengestottePerAr, varighet),\r\n };\r\n};\r\n\r\nexport const utbetalingsplan = (state: ValgState, stipendOgLan: number, satser: Satser): Utbetalingsplan => {\r\n const skolepenger = hentSkolepenger(state, satser);\r\n\r\n const semesterType = getSemesterTypeForBeregning(state);\r\n const antallMnd = getAntallMndForBeregning(state);\r\n let hostperiode = 0;\r\n let varperiode = 0;\r\n\r\n if (semesterType === B.b1_heltAr) {\r\n hostperiode = 5;\r\n varperiode = 5;\r\n } else {\r\n hostperiode = semesterType === B.b2_host ? antallMnd : 0;\r\n varperiode = semesterType === B.b3_var ? antallMnd : 0;\r\n }\r\n\r\n return Kalkulator.beregnUtbetalingsplan(hostperiode, varperiode, stipendOgLan, skolepenger);\r\n};\r\n\r\nexport const hentSkolepenger = (state: ValgState, satser: Satser): number => {\r\n return state.eSkolepenger?.value === E.e1_ja && state.fSpBelop\r\n ? Math.max(Math.min(state.fSpBelop, maksSkolepenger(state, satser)), 0)\r\n : 0;\r\n};\r\n\r\nconst getAntallMndForBeregning = (state: ValgState): number => {\r\n if (!state.bVarighet) {\r\n throw Error('Varighet må være satt for beregning');\r\n }\r\n\r\n return B.antallMnd(state.bVarighet.value);\r\n};\r\n\r\nconst getSemesterTypeForBeregning = (state: ValgState): string => {\r\n if (!state.bVarighet?.value) {\r\n throw new Error('Beregning feilet pga. B ikke er satt');\r\n }\r\n return state.bVarighet.value;\r\n};\r\n","import Valg from '../../../Shared/Scripts/Models/Valg';\r\nimport { ArstimerProsentValg } from '../../Models/ArstimerProsentValg';\r\n\r\nexport interface ValgState {\r\n aStudieretning?: Valg;\r\n bVarighet?: Valg;\r\n cFulltidDeltid?: Valg;\r\n dArstimerProsent?: ArstimerProsentValg;\r\n eSkolepenger?: Valg;\r\n fSpBelop?: number;\r\n hBosted?: Valg;\r\n visUtbetalingsplan: boolean;\r\n visVilkar: boolean;\r\n visFordeling: boolean;\r\n}\r\n\r\nexport const UPDATE_VALG = 'UPDATE_VALG';\r\nexport const TOGGLE_UTBETALINGSPLAN = 'TOGGLE_UTBETALINGSPLAN';\r\nexport const TOGGLE_VILKAR = 'TOGGLE_VILKAR';\r\nexport const TOGGLE_FORDELING = 'TOGGLE_FORDELING';\r\n\r\nexport interface UpdateValgAction {\r\n type: typeof UPDATE_VALG;\r\n payload: Partial;\r\n}\r\n\r\nexport interface ToogleUtbetalingsplanAction {\r\n type: typeof TOGGLE_UTBETALINGSPLAN;\r\n}\r\n\r\nexport interface ToogleVilkarAction {\r\n type: typeof TOGGLE_VILKAR;\r\n}\r\n\r\nexport interface ToogleFordelingAction {\r\n type: typeof TOGGLE_FORDELING;\r\n}\r\n\r\nexport type ValgStateActionTypes =\r\n | UpdateValgAction\r\n | ToogleVilkarAction\r\n | ToogleFordelingAction\r\n | ToogleUtbetalingsplanAction;\r\n","import { NumberValidering } from '../../Shared/Scripts/Utilities/Validering';\r\nimport VeilederVgsUrDto from '../Models/VeilederVgsUrDto';\r\nimport { tilPengerFormat } from '../../Shared/Scripts/Utilities/Formatters';\r\n\r\nexport const fSkolepengerValidering = (maxVerdi: number, locale: string): NumberValidering => {\r\n return {\r\n min: 0,\r\n max: maxVerdi,\r\n minFeil: 'obsMeldingMinSkolepengerBelop',\r\n maxFeil: 'obsMeldingMaxSkolepengerBelop',\r\n variablesMap: new Map([\r\n ['${min}', '0'],\r\n ['${max}', tilPengerFormat(maxVerdi, locale)],\r\n ]),\r\n };\r\n};\r\n\r\nexport const dArstimerValidering = (maxVerdi: number): NumberValidering => {\r\n return {\r\n min: 1,\r\n max: maxVerdi,\r\n minFeil: 'obsMeldingMinArstimer',\r\n maxFeil: 'obsMeldingMaxArstimer',\r\n variablesMap: new Map([\r\n ['${min}', '1'],\r\n ['${max}', maxVerdi.toString()],\r\n ]),\r\n };\r\n};\r\n\r\nexport const dProsentValidering: NumberValidering = {\r\n min: 1,\r\n max: 100,\r\n minFeil: 'obsMeldingMinProsent',\r\n maxFeil: 'obsMeldingMaxProsent',\r\n variablesMap: new Map([\r\n ['${min}', '1'],\r\n ['${max}', '100'],\r\n ]),\r\n};\r\n","import { ValideringsResultat } from '../../../Shared/Scripts/Models/ValideringsResultat';\r\n\r\nexport type ResultatValg = ResultatValgVisning & ResultatValgValidering;\r\n\r\nexport interface ResultatValgVisning {\r\n visBoksB: boolean;\r\n visBoksC: boolean;\r\n visBoksD: boolean;\r\n visBoksE: boolean;\r\n visBoksF: boolean;\r\n visDelvisResultat: boolean;\r\n visResultat: boolean;\r\n visFordeling: boolean;\r\n visGenerellFeil: boolean;\r\n}\r\n\r\nexport interface ResultatValgValidering {\r\n dValidation?: ValideringsResultat;\r\n fValidation?: ValideringsResultat;\r\n}\r\n\r\nexport const UPDATE_VALIDERING = 'UPDATE_VALIDERING';\r\nexport const SET_VISNING = 'SET_VISNING';\r\n\r\nexport interface UpdateValidationAction {\r\n type: typeof UPDATE_VALIDERING;\r\n payload: Partial;\r\n}\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 | UpdateValidationAction;\r\n","import {\r\n SetVisningAction,\r\n SET_VISNING,\r\n ResultatValgVisning,\r\n ResultatValgValidering,\r\n UPDATE_VALIDERING,\r\n UpdateValidationAction,\r\n} 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\r\nexport function updateValidation(validation: Partial): UpdateValidationAction {\r\n return {\r\n type: UPDATE_VALIDERING,\r\n payload: validation,\r\n };\r\n}\r\n","import {\r\n ValgStateActionTypes,\r\n TOGGLE_UTBETALINGSPLAN,\r\n ToogleUtbetalingsplanAction,\r\n TOGGLE_VILKAR,\r\n ToogleFordelingAction,\r\n ToogleVilkarAction,\r\n TOGGLE_FORDELING,\r\n UPDATE_VALG,\r\n} from './Types';\r\n\r\nimport { ThunkAction, ThunkDispatch } from 'redux-thunk';\r\nimport { VeilederVgsUtenUrAppState } from '..';\r\nimport { AnyAction } from 'redux';\r\nimport { maksSkolepenger, finnMaksArstimer, fulltidArstimer } from '../../Veileder';\r\nimport { fSkolepengerValidering, dArstimerValidering, dProsentValidering } from '../../Utilities/ValideringParameters';\r\nimport { validerMinMax } from '../../../Shared/Scripts/Utilities/Validering';\r\nimport { setVisning, updateValidation } from '../Resultat/Actions';\r\nimport C from '../../Utilities/C-FulltidDeltidValg';\r\nimport D from '../../Utilities/D-ArstimerProsent';\r\nimport E from '../../Utilities/E-SkolepengerValg';\r\nimport { ValideringsResultat } from '../../../Shared/Scripts/Models/ValideringsResultat';\r\nimport { ValgState } from '../../../VeilederOmgjoringBasisLan/Store/Valg/Types';\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 function toggleUtbetalingsplan(): ToogleUtbetalingsplanAction {\r\n return {\r\n type: TOGGLE_UTBETALINGSPLAN,\r\n };\r\n}\r\n\r\nexport function toggleVilkar(): ToogleVilkarAction {\r\n return {\r\n type: TOGGLE_VILKAR,\r\n };\r\n}\r\n\r\nexport function toggleFordeling(): ToogleFordelingAction {\r\n return {\r\n type: TOGGLE_FORDELING,\r\n };\r\n}\r\n\r\nexport const updateVisning = (): ThunkAction => {\r\n return (\r\n dispatch: ThunkDispatch,\r\n getState: () => VeilederVgsUtenUrAppState,\r\n ): void => {\r\n const currentState = getState();\r\n const visBoksB = visB(currentState);\r\n const visBoksC = visC(currentState, visBoksB);\r\n const visBoksD = visD(currentState, visBoksC);\r\n const dValidation = isDvalid(currentState, visBoksD);\r\n const visBoksE = visE(currentState, visBoksC, visBoksD, dValidation);\r\n const visBoksF = visF(currentState, visBoksE);\r\n const fValidation = isFValid(currentState, visBoksF);\r\n const visResultat = visRes(currentState, visBoksE, visBoksF, fValidation);\r\n const visDelvisResultat = visResGx(currentState, visBoksD);\r\n const visFordeling = visResFordeling(currentState, visResultat, visDelvisResultat);\r\n dispatch(updateValidation({ dValidation }));\r\n dispatch(updateValidation({ fValidation }));\r\n dispatch(\r\n setVisning({\r\n visBoksB,\r\n visBoksC,\r\n visBoksD,\r\n visBoksE,\r\n visBoksF,\r\n visFordeling,\r\n visResultat,\r\n visDelvisResultat,\r\n }),\r\n );\r\n };\r\n};\r\n\r\nconst visB = (state: VeilederVgsUtenUrAppState): boolean => {\r\n return state.valg.aStudieretning !== undefined;\r\n};\r\n\r\nconst visC = (state: VeilederVgsUtenUrAppState, visBoksB: boolean): boolean => {\r\n return visBoksB && state.valg.bVarighet !== undefined;\r\n};\r\n\r\nconst visD = (state: VeilederVgsUtenUrAppState, visBoksC: boolean): boolean => {\r\n return visBoksC && state.valg.cFulltidDeltid?.value === C.c2_deltid;\r\n};\r\n\r\nconst visE = (state: VeilederVgsUtenUrAppState, visBoksC: boolean, visBoksD: boolean, dValidation?: ValideringsResultat): boolean => {\r\n return (\r\n (visBoksC && state.valg.cFulltidDeltid?.value === C.c1_fulltid) ||\r\n (visBoksD && dValidation?.isValid === true && state.valg.dArstimerProsent?.vetIkke === false)\r\n );\r\n};\r\n\r\nconst visF = (state: VeilederVgsUtenUrAppState, visBoksE: boolean): boolean => {\r\n return visBoksE && state.valg.eSkolepenger?.value === E.e1_ja;\r\n};\r\n\r\nconst visRes = (\r\n state: VeilederVgsUtenUrAppState,\r\n visBoksE: boolean,\r\n visBoksF: boolean,\r\n fValidation: ValideringsResultat | undefined,\r\n): boolean => {\r\n return (\r\n (visBoksE && state.valg.eSkolepenger?.value === E.e2_nei) ||\r\n (visBoksF && state.valg.fSpBelop !== undefined && isValid(fValidation))\r\n );\r\n};\r\n\r\nconst visResGx = (state: VeilederVgsUtenUrAppState, visBoksD: boolean): boolean => {\r\n return visBoksD && state.valg.dArstimerProsent?.vetIkke === true;\r\n};\r\n\r\nconst visResFordeling = (state: VeilederVgsUtenUrAppState, visResultat: boolean, visResultatGx: boolean): boolean => {\r\n return (visResultat || visResultatGx) && state.valg.hBosted !== undefined;\r\n};\r\n\r\nconst isFValid = (state: VeilederVgsUtenUrAppState, visBoksF: boolean): ValideringsResultat | undefined => {\r\n if (visBoksF && state.valg.fSpBelop !== undefined && state.satser != null) {\r\n const maxSkolepenger = maksSkolepenger(state.valg, state.satser);\r\n const valideringParameters = fSkolepengerValidering(maxSkolepenger, state.epiContext.locale);\r\n const validering = validerMinMax(state.epiContext, state.valg.fSpBelop, valideringParameters);\r\n return validering;\r\n }\r\n return undefined;\r\n};\r\n\r\nconst isDvalid = (state: VeilederVgsUtenUrAppState, visBoksD: boolean): ValideringsResultat | undefined => {\r\n if (visBoksD && state.valg.dArstimerProsent?.verdi !== undefined) {\r\n if (state.valg.dArstimerProsent.type === D.d1_arstimer) {\r\n const fulltid = fulltidArstimer(state.valg);\r\n const maksArstimer = finnMaksArstimer(state.valg, fulltid);\r\n const valideringParameters = dArstimerValidering(maksArstimer);\r\n return validerMinMax(state.epiContext, state.valg.dArstimerProsent.verdi, valideringParameters);\r\n } else {\r\n return validerMinMax(state.epiContext, state.valg.dArstimerProsent.verdi, dProsentValidering);\r\n }\r\n }\r\n return undefined;\r\n};\r\n\r\nconst isValid = (resultat: ValideringsResultat | undefined): boolean => {\r\n return resultat?.isValid === true;\r\n};\r\n","export const AppContainerId = 'veilederVgsUtenUngdomsrett';\r\nexport const BoksA = 'boks-a';\r\nexport const BoksB = 'boks-b';\r\nexport const BoksC = 'boks-c';\r\nexport const BoksD = 'boks-d';\r\nexport const BoksE = 'boks-e';\r\nexport const BoksF = 'boks-f';\r\nexport const ResultatG = 'resultat-g';\r\nexport const ResultatGu = 'resultat-gu';\r\nexport const ResultatGx = 'resultat-gx';\r\nexport const BoksH = 'boks-h';\r\nexport const ResultatF = 'resultat-f';\r\n","import React from 'react';\r\nimport BVarighetValg from '../Utilities/B-VarighetValg';\r\nimport { tilPengerFormat } from '../../Shared/Scripts/Utilities/Formatters';\r\nimport { Utbetalingsplan } from '../Models/Utbetalingsplan';\r\nimport { EpiContext } from '../../Shared/Scripts/Store/EpiContext/Types';\r\nimport VeilederVgsUrDto from '../Models/VeilederVgsUrDto';\r\nimport { connect } from 'react-redux';\r\nimport { VeilederVgsUtenUrAppState } from '../Store';\r\nimport { toggleUtbetalingsplan, toggleVilkar } from '../Store/Valg/Actions';\r\nimport contentResolver, { resolveRawText } from '../../Shared/Scripts/Utilities/EpiContentResolver';\r\nimport { ResultatG } from '../Ids';\r\nimport { ModalCompontent } from '../../Shared/Scripts/Components/ModalComponent';\r\nimport { updateZIndex } from '../../Shared/Scripts/Store/EpiContext/Actions';\r\nimport { ArticleContentComponent } from '../../Shared/Scripts/Components/ArticleContentComponent';\r\nimport { updateLiveMessage } from '../../Shared/Scripts/Utilities/LiveMessage';\r\n\r\ninterface GResultOwnProps {\r\n idA?: string;\r\n idB?: string;\r\n verdiF?: number;\r\n resultat: number;\r\n utbetalingsplan: Utbetalingsplan;\r\n}\r\n\r\ntype GResultatProps = MapStateToProps & MapDispatchToProps & GResultOwnProps;\r\n\r\nclass GResultatComponent extends React.PureComponent {\r\n utbetalingsplanRef = React.createRef();\r\n\r\n constructor(props: GResultatProps) {\r\n super(props);\r\n this.onVilkarClick = this.onVilkarClick.bind(this);\r\n this.onVisUtbetalingClicked = this.onVisUtbetalingClicked.bind(this);\r\n this.onRequestClose = this.onRequestClose.bind(this);\r\n }\r\n componentDidMount(): void {\r\n updateLiveMessage();\r\n }\r\n\r\n onVisUtbetalingClicked(event: React.MouseEvent): void {\r\n this.props.toggleUtbetalingsplan();\r\n }\r\n\r\n onRequestClose(): void {\r\n this.props.updateZIndex(1);\r\n this.props.toggleVilkar();\r\n }\r\n\r\n onVilkarClick(event: React.MouseEvent): void {\r\n this.props.updateZIndex(2);\r\n this.props.toggleVilkar();\r\n }\r\n\r\n erHeltAr = (valgA: string | undefined, valgB: string | undefined): boolean => {\r\n\r\n if(valgB === BVarighetValg.b1_heltAr)\r\n return true;\r\n\r\n return false;\r\n };\r\n\r\n harSkolepenger = (skolepengelan: number | undefined): boolean => {\r\n return (skolepengelan ? skolepengelan : 0) > 0;\r\n };\r\n\r\n render(): JSX.Element {\r\n const { idA, idB, verdiF, resultat, visUtbetalingsplan, visVilkar, epiContext } = this.props;\r\n const { locale } = this.props.epiContext;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

\r\n {contentResolver(\r\n epiContext,\r\n this.erHeltAr(idA, idB) ? 'tittelEttSkolear' : 'tittelEttSemester',\r\n )}\r\n

\r\n
\r\n
\r\n
\r\n {tilPengerFormat(resultat, locale)}\r\n  {epiContext.valuta}\r\n
\r\n

\r\n {contentResolver(epiContext, 'ytelserBasisstotte')}\r\n {this.harSkolepenger(verdiF) ? ( {contentResolver(epiContext, 'ytelserSkolepenger')}) : null}\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 {contentResolver(epiContext, 'lenketekstUtbetalingsplan')}\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 visUtbetalingsplan: boolean;\r\n visVilkar: boolean;\r\n}\r\n\r\ninterface MapDispatchToProps {\r\n toggleUtbetalingsplan: typeof toggleUtbetalingsplan;\r\n toggleVilkar: typeof toggleVilkar;\r\n updateZIndex: typeof updateZIndex;\r\n}\r\n\r\nexport default connect(\r\n (state: VeilederVgsUtenUrAppState): MapStateToProps => {\r\n return {\r\n epiContext: state.epiContext,\r\n visUtbetalingsplan: state.valg.visUtbetalingsplan,\r\n visVilkar: state.valg.visVilkar,\r\n };\r\n },\r\n { toggleUtbetalingsplan, toggleVilkar, updateZIndex },\r\n)(GResultatComponent);\r\n","import React from 'react';\r\nimport { tilPengerFormat } from '../../Shared/Scripts/Utilities/Formatters';\r\nimport { EpiContext } from '../../Shared/Scripts/Store/EpiContext/Types';\r\nimport VeilederVgsUrDto from '../Models/VeilederVgsUrDto';\r\nimport { connect } from 'react-redux';\r\nimport { VeilederVgsUtenUrAppState } from '../Store';\r\nimport { toggleUtbetalingsplan, toggleVilkar } from '../Store/Valg/Actions';\r\nimport contentResolver, { resolveRawText } from '../../Shared/Scripts/Utilities/EpiContentResolver';\r\nimport { ResultatGx } from '../Ids';\r\nimport { ModalCompontent } from '../../Shared/Scripts/Components/ModalComponent';\r\nimport { updateZIndex } from '../../Shared/Scripts/Store/EpiContext/Actions';\r\nimport { ArticleContentComponent } from '../../Shared/Scripts/Components/ArticleContentComponent';\r\nimport { updateLiveMessage } from '../../Shared/Scripts/Utilities/LiveMessage';\r\n\r\ninterface GxResultOwnProps {\r\n basisstotte: number;\r\n skolepengelan: number;\r\n}\r\n\r\ntype GxResultatProps = MapStateToProps & MapDispatchToProps & GxResultOwnProps;\r\n\r\nclass GxResultatComponent extends React.PureComponent {\r\n constructor(props: GxResultatProps) {\r\n super(props);\r\n this.onVilkarClick = this.onVilkarClick.bind(this);\r\n this.onRequestClose = this.onRequestClose.bind(this);\r\n }\r\n\r\n onRequestClose(): void {\r\n this.props.updateZIndex(1);\r\n this.props.toggleVilkar();\r\n }\r\n\r\n componentDidMount(): void {\r\n updateLiveMessage();\r\n }\r\n\r\n onVilkarClick(event: React.MouseEvent): void {\r\n this.props.updateZIndex(2);\r\n this.props.toggleVilkar();\r\n }\r\n\r\n render(): JSX.Element {\r\n const { skolepengelan, basisstotte, visVilkar, epiContext } = this.props;\r\n const { locale } = this.props.epiContext;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

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

\r\n {contentResolver(epiContext, 'brodtekstResultatX')}\r\n
\r\n
\r\n
\r\n {tilPengerFormat(basisstotte, locale)}\r\n \r\n  {epiContext.valuta}\r\n \r\n
\r\n

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

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {tilPengerFormat(skolepengelan, locale)}\r\n \r\n  {epiContext.valuta}\r\n \r\n
\r\n

\r\n {contentResolver(epiContext, 'ytelserSkolepengerRx')}\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\ninterface MapStateToProps {\r\n epiContext: EpiContext;\r\n visVilkar: boolean;\r\n}\r\n\r\ninterface MapDispatchToProps {\r\n toggleVilkar: typeof toggleVilkar;\r\n updateZIndex: typeof updateZIndex;\r\n}\r\n\r\nexport default connect(\r\n (state: VeilederVgsUtenUrAppState): MapStateToProps => {\r\n return {\r\n epiContext: state.epiContext,\r\n visVilkar: state.valg.visVilkar,\r\n };\r\n },\r\n { toggleUtbetalingsplan, toggleVilkar, updateZIndex },\r\n)(GxResultatComponent);\r\n","import React from 'react';\r\nimport Resultat from '../Models/Resultat';\r\nimport H from '../Utilities/H-BostedValg';\r\nimport { tilPengerFormat } from '../../Shared/Scripts/Utilities/Formatters';\r\nimport VeilederVgsUrDto from '../Models/VeilederVgsUrDto';\r\nimport { EpiContext } from '../../Shared/Scripts/Store/EpiContext/Types';\r\nimport { VeilederVgsUtenUrAppState } from '../Store';\r\nimport { connect } from 'react-redux';\r\nimport { toggleFordeling } from '../Store/Valg/Actions';\r\nimport contentResolver, { resolveRawText } from '../../Shared/Scripts/Utilities/EpiContentResolver';\r\nimport { ResultatGu } from '../Ids';\r\nimport { ModalCompontent } from '../../Shared/Scripts/Components/ModalComponent';\r\nimport { updateZIndex } from '../../Shared/Scripts/Store/EpiContext/Actions';\r\nimport { ArticleContentComponent } from '../../Shared/Scripts/Components/ArticleContentComponent';\r\nimport { updateLiveMessage } from '../../Shared/Scripts/Utilities/LiveMessage';\r\n\r\ninterface HResultatOwnProps {\r\n verdiD: string | undefined;\r\n resultat: Resultat;\r\n}\r\n\r\ntype HResultatProps = HResultatOwnProps & MapStateToProps & MapDispatchToProps & {};\r\n\r\nclass HResultatComponent extends React.PureComponent {\r\n constructor(props: HResultatProps) {\r\n super(props);\r\n this.onStipendOgLanClick = this.onStipendOgLanClick.bind(this);\r\n this.onRequestClose = this.onRequestClose.bind(this);\r\n }\r\n \r\n componentDidMount(): void {\r\n updateLiveMessage();\r\n }\r\n\r\n onRequestClose(): void {\r\n this.props.updateZIndex(1);\r\n this.props.toggleFordeling();\r\n }\r\n\r\n borBorte = (verdiH: string | undefined): boolean => {\r\n return verdiH === H.h2_borte;\r\n };\r\n\r\n onStipendOgLanClick(event: React.MouseEvent): void {\r\n this.props.updateZIndex(2);\r\n this.props.toggleFordeling();\r\n }\r\n\r\n render(): JSX.Element {\r\n const { resultat, verdiD: verdiH, visFordeling, epiContext } = this.props;\r\n\r\n const { locale } = this.props.epiContext;\r\n\r\n const undertittelStipend: keyof VeilederVgsUrDto = this.borBorte(verdiH)\r\n ? 'undertittelStipendBorte'\r\n : 'undertittelStipendHjemme';\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

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

\r\n
\r\n
\r\n
\r\n {tilPengerFormat(resultat.stipend, locale)}\r\n  {epiContext.valuta}\r\n
\r\n

{contentResolver(epiContext, undertittelStipend)}

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

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

\r\n
\r\n\r\n
\r\n
\r\n {tilPengerFormat(resultat.lan, locale)}\r\n  {epiContext.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\n }\r\n}\r\n\r\ninterface MapStateToProps {\r\n epiContext: EpiContext;\r\n visFordeling: boolean;\r\n}\r\n\r\ninterface MapDispatchToProps {\r\n toggleFordeling: typeof toggleFordeling;\r\n updateZIndex: typeof updateZIndex;\r\n}\r\n\r\nexport default connect(\r\n (state: VeilederVgsUtenUrAppState): MapStateToProps => {\r\n return {\r\n epiContext: state.epiContext,\r\n visFordeling: state.valg.visFordeling,\r\n };\r\n },\r\n { toggleFordeling, updateZIndex },\r\n)(HResultatComponent);\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { tilPengerFormat, tilDagOgManed } from '../../Shared/Scripts/Utilities/Formatters';\r\nimport { TerminPeriode, Termin } from '../Models/Utbetalingsplan';\r\nimport { EpiAppStateMedSteg } from '../../Shared/Scripts/Store/Types';\r\nimport VeilederVgsUrDto from '../Models/VeilederVgsUrDto';\r\nimport { EpiContext } from '../../Shared/Scripts/Store/EpiContext/Types';\r\nimport contentResolver from '../../Shared/Scripts/Utilities/EpiContentResolver';\r\n\r\ninterface UtbetalingSemesterOwnProps {\r\n terminer: TerminPeriode | null;\r\n erVar?: boolean;\r\n tabellOverskriftKey: keyof VeilederVgsUrDto;\r\n}\r\n\r\ntype UtbetalingSemesterProps = UtbetalingSemesterOwnProps & MapStateToProps & {};\r\n\r\nconst utbetalingSemesterComponent = (props: UtbetalingSemesterProps): JSX.Element | null => {\r\n if (props.terminer != null) {\r\n const { locale } = props.epiContext;\r\n const { erVar, tabellOverskriftKey, epiContext } = props;\r\n\r\n const headerCellStyles = ['c-table__header-cell', erVar === true ? 'c-table__header-cell--lilac' : ''].join(\r\n ' ',\r\n );\r\n\r\n return (\r\n
\r\n

\r\n {contentResolver(epiContext, tabellOverskriftKey)}\r\n

\r\n
\r\n
\r\n
\r\n {contentResolver(epiContext, 'kolonneTttelDato')}\r\n
\r\n
\r\n {contentResolver(epiContext, 'kolonneTittelBelop')}\r\n
\r\n
\r\n {props.terminer.terminer.map(\r\n (termin: Termin): JSX.Element => (\r\n
\r\n
\r\n {tilDagOgManed(termin.mnd - 1, 15, locale)}\r\n
\r\n
{`${tilPengerFormat(\r\n termin.terminbelop,\r\n locale,\r\n )} ${epiContext.valuta}`}
\r\n
\r\n ),\r\n )}\r\n
\r\n
\r\n );\r\n } else {\r\n return null;\r\n }\r\n};\r\n\r\ninterface MapStateToProps {\r\n epiContext: EpiContext;\r\n}\r\n\r\nexport default connect(\r\n (state: EpiAppStateMedSteg): MapStateToProps => {\r\n return {\r\n epiContext: state.epiContext,\r\n };\r\n },\r\n)(utbetalingSemesterComponent);\r\n","import React, { useEffect } from 'react';\r\nimport UtbetalingSemesterContainer from './UtbetalingSemesterComponent';\r\nimport { EpiContext } from '../../Shared/Scripts/Store/EpiContext/Types';\r\nimport VeilederVgsUrDto from '../Models/VeilederVgsUrDto';\r\nimport { VeilederVgsUtenUrAppState } from '../Store';\r\nimport { connect } from 'react-redux';\r\nimport { Utbetalingsplan } from '../Models/Utbetalingsplan';\r\nimport contentResolver from '../../Shared/Scripts/Utilities/EpiContentResolver';\r\nimport { ResultatGu } from '../Ids';\r\nimport { updateLiveMessage } from '../../Shared/Scripts/Utilities/LiveMessage';\r\n\r\ninterface GuResultatOwnProps {\r\n utbetalingsplan: Utbetalingsplan;\r\n}\r\n\r\n\r\ntype GuResultatProps = GuResultatOwnProps & MapStateToProps & {};\r\n\r\nconst GuResultatComponent = (props: GuResultatProps): JSX.Element => {\r\n const { utbetalingsplan, epiContext } = props;\r\n useEffect(() => {\r\n updateLiveMessage();\r\n }, []);\r\n\r\n return (\r\n
\r\n
\r\n {utbetalingsplan.terminerhost && (\r\n \r\n )}\r\n {utbetalingsplan.terminervar && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n

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

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

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

\r\n {contentResolver(epiContext, 'hoyreSpalte')}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {contentResolver(epiContext, 'informasjonIBunnen')}\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: VeilederVgsUtenUrAppState): MapStateToProps => {\r\n return {\r\n epiContext: state.epiContext,\r\n };\r\n },\r\n)(GuResultatComponent);\r\n","import React from 'react';\r\nimport { NumberInputDisplay } from '../../Shared/Scripts/Components/ValgDisplayFunctions';\r\nimport VeilederStegComponent, { VeilederStegBaseProps } from '../../Shared/Scripts/Components/VeilederStegComponent';\r\nimport { EpiAppStateMedSteg } from '../../Shared/Scripts/Store/Types';\r\nimport { connect } from 'react-redux';\r\nimport { setCollapsed } from '../../Shared/Scripts/Store/StegVisning/Actions';\r\nimport contentResolver from '../../Shared/Scripts/Utilities/EpiContentResolver';\r\nimport { EpiContext } from '../../Shared/Scripts/Store/EpiContext/Types';\r\nimport { ValideringsResultat } from '../../Shared/Scripts/Models/ValideringsResultat';\r\nimport { NumberValidering, validerMinMax } from '../../Shared/Scripts/Utilities/Validering';\r\nimport { ArstimerProsentValg } from '../Models/ArstimerProsentValg';\r\nimport { LegendWithErrorComponent } from '../../Shared/Scripts/Components/LegendWithErrorComponent';\r\n\r\nexport interface NumberFormatter {\r\n // Konverterer tall til en streng formattert for visning\r\n toFormattetString: (tall: number) => string;\r\n // Konverterer en streng som er formattert for visning til en streng som kan parses til tall\r\n toParsableAsNumber: (verdi: string) => string;\r\n}\r\n\r\nexport interface NumberInputType {\r\n inputTypeId: string;\r\n inputTypeLabel: string;\r\n placeholder: string;\r\n validering: NumberValidering;\r\n preValidation?: ValideringsResultat;\r\n}\r\n\r\ntype NumberInputOwnProps = VeilederStegBaseProps & {\r\n inputId: string;\r\n sporsmal: keyof T;\r\n value?: number | string;\r\n vetIkke: boolean;\r\n vetIkkeLabel: string;\r\n selectLabel: string;\r\n isSmall?: boolean;\r\n decimals: number;\r\n ctaText: keyof T;\r\n inputTypes: Array>;\r\n onInputChange: (valg?: ArstimerProsentValg) => void;\r\n onValidationChanged: (result: ValideringsResultat | undefined) => void;\r\n};\r\n\r\ntype NumberInputProps = NumberInputOwnProps & MapStateToProps & MapDispatchToProps;\r\n\r\ninterface NumberInputState {\r\n verdi: number | string;\r\n currentInputTypeId: string;\r\n vetIkke: boolean;\r\n valideringsResultat?: ValideringsResultat;\r\n isInErrorState: boolean;\r\n isValidValue: boolean\r\n}\r\n\r\nclass DArstimerProsentComponent extends React.PureComponent, NumberInputState> {\r\n constructor(props: NumberInputProps) {\r\n super(props);\r\n this.state = {\r\n verdi: props.value !== undefined ? props.value : '',\r\n currentInputTypeId: props.inputTypes[0].inputTypeId,\r\n valideringsResultat: props.inputTypes[0].preValidation,\r\n vetIkke: props.vetIkke,\r\n isInErrorState: false,\r\n isValidValue: false\r\n };\r\n\r\n this.onInputChange = this.onInputChange.bind(this);\r\n this.confirmValue = this.confirmValue.bind(this);\r\n this.onSelectedValueChange = this.onSelectedValueChange.bind(this);\r\n }\r\n\r\n onInputKeyUp(e: KeyboardEvent): void {\r\n if (e.key === 'enter') {\r\n this.confirmValue();\r\n }\r\n }\r\n\r\n confirmValue(): void {\r\n const {\r\n onInputChange,\r\n stegVisningSetCollapsed,\r\n sporsmalId,\r\n epiContext,\r\n onValidationChanged,\r\n inputTypes,\r\n } = this.props;\r\n const { currentInputTypeId, vetIkke, verdi } = this.state;\r\n const currentInputType = inputTypes.find((v) => v.inputTypeId === currentInputTypeId) as NumberInputType;\r\n const resultat = this.valider(verdi, epiContext, currentInputType.validering);\r\n onValidationChanged(resultat);\r\n onInputChange({\r\n type: currentInputTypeId,\r\n verdi: verdi,\r\n vetIkke: vetIkke,\r\n });\r\n if ((resultat && resultat.isValid) || vetIkke) {\r\n this.visErrorMessage(false);\r\n stegVisningSetCollapsed({ id: sporsmalId, isCollapsed: true });\r\n\r\n this.setState({\r\n valideringsResultat: resultat,\r\n isValidValue: true,\r\n });\r\n } else {\r\n this.visErrorMessage(true);\r\n this.setState({\r\n valideringsResultat: resultat,\r\n isValidValue: false,\r\n });\r\n }\r\n }\r\n\r\n onSelectedValueChange(e: React.ChangeEvent): void {\r\n this.visErrorMessage(false);\r\n this.setState({\r\n verdi: '',\r\n valideringsResultat: undefined,\r\n currentInputTypeId: e.target.value,\r\n });\r\n }\r\n\r\n onInputChange(e: React.ChangeEvent): void {\r\n this.setState({\r\n verdi: e.target.value,\r\n });\r\n }\r\n\r\n valider(\r\n verdi: number | string,\r\n epiContext: EpiContext,\r\n validering: NumberValidering,\r\n ): ValideringsResultat | undefined {\r\n return validerMinMax(epiContext, verdi, validering);\r\n }\r\n\r\n visErrorMessage(show: boolean): void {\r\n document.getElementById(this.props.inputId)?.focus();\r\n this.setState((previousState) => ({ ...previousState, isInErrorState: show }));\r\n }\r\n\r\n displayElement(\r\n parsedVerdi: number | string,\r\n sporsmalId: string,\r\n postfix: string,\r\n vetIkke: boolean,\r\n vetIkkeLabel: string,\r\n ): JSX.Element {\r\n if (vetIkke) {\r\n return (\r\n
\r\n {vetIkkeLabel}\r\n
\r\n );\r\n }\r\n\r\n return parsedVerdi !== null ? (\r\n NumberInputDisplay(sporsmalId, {\r\n id: '',\r\n displayValue: `${parsedVerdi} ${postfix}`,\r\n })\r\n ) : (\r\n
\r\n );\r\n }\r\n\r\n render(): JSX.Element {\r\n const {\r\n inputId,\r\n sporsmalId,\r\n tittel,\r\n forklaring,\r\n sporsmal,\r\n epiContext,\r\n ctaText,\r\n inputTypes,\r\n vetIkkeLabel,\r\n selectLabel,\r\n } = this.props;\r\n\r\n const {\r\n currentInputTypeId,\r\n valideringsResultat: currentResultat,\r\n vetIkke,\r\n isInErrorState\r\n } = this.state;\r\n\r\n const currentInputType = inputTypes.find((v) => v.inputTypeId === currentInputTypeId) as NumberInputType;\r\n\r\n const selectOptions = inputTypes.map((v) => (\r\n \r\n {v.inputTypeLabel}\r\n \r\n ));\r\n\r\n const selectId = sporsmalId + '-select';\r\n const vetIkkeInputId = sporsmalId + '-vetIkkeInput';\r\n return (\r\n \r\n \r\n
\r\n \r\n

\r\n {contentResolver(epiContext, sporsmal)}\r\n

\r\n \r\n \r\n {\r\n if (e.key === 'Enter') {\r\n this.confirmValue();\r\n }\r\n }}\r\n onChange={this.onInputChange}\r\n value={this.state.verdi}\r\n disabled={vetIkke}\r\n />\r\n
\r\n \r\n {selectOptions}\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n {\r\n this.setState({ vetIkke: v.target.checked });\r\n }}\r\n >\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n }\r\n displayElement={this.displayElement(\r\n this.state.verdi,\r\n sporsmalId,\r\n currentInputType.inputTypeLabel,\r\n vetIkke,\r\n vetIkkeLabel,\r\n )}\r\n canCollapse={this.state.isValidValue && (!isInErrorState || vetIkke)}\r\n neverCollapse={false}\r\n />\r\n );\r\n }\r\n}\r\n\r\ninterface MapStateToProps {\r\n epiContext: EpiContext;\r\n}\r\n\r\ninterface MapDispatchToProps {\r\n stegVisningSetCollapsed: typeof setCollapsed;\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nexport default function DArstimerProsentContainer() {\r\n return connect(\r\n (state: EpiAppStateMedSteg): MapStateToProps => {\r\n return {\r\n epiContext: state.epiContext,\r\n };\r\n },\r\n { stegVisningSetCollapsed: setCollapsed },\r\n )(DArstimerProsentComponent as new (props: NumberInputProps) => DArstimerProsentComponent);\r\n}\r\n","import React from 'react';\r\nimport ReactModal from 'react-modal';\r\nimport * as VeilederLogikk from './Veileder';\r\nimport GResultatContainer from './Components/G-ResultatComponent';\r\nimport GxResultatContainer from './Components/GX-ResultatComponent';\r\nimport HResultatContainer from './Components/I-ResultatComponent';\r\nimport IResultatContainer from './Components/GU-ResultatComponent';\r\nimport DArstimerProsentContainer from './Components/D-ArstimerProsentComponent';\r\nimport Valg from '../Shared/Scripts/Models/Valg';\r\nimport NumberInputStegContainer, { NumberFormatter } from '../Shared/Scripts/Components/NumberInputStegComponent';\r\nimport { tilPengerFormat, fraPengerFormat } from '../Shared/Scripts/Utilities/Formatters';\r\nimport A from './Utilities/A-StudieretningValg';\r\nimport RadioButtonsStegContainer from '../Shared/Scripts/Components/RadioButtonsStegComponent';\r\nimport B from './Utilities/B-VarighetValg';\r\nimport H from './Utilities/H-BostedValg';\r\nimport E from './Utilities/E-SkolepengerValg';\r\nimport D from './Utilities/D-ArstimerProsent';\r\nimport * as ValgTypes from './Store/Valg/Types';\r\nimport VeilederVgsUrDto from './Models/VeilederVgsUrDto';\r\nimport { updateValg, updateVisning } from './Store/Valg/Actions';\r\nimport { VeilederVgsUtenUrAppState } from './Store';\r\nimport { connect } from 'react-redux';\r\nimport { EpiContext } from '../Shared/Scripts/Store/EpiContext/Types';\r\nimport { ResultatValg, ResultatValgValidering } from './Store/Resultat/Types';\r\nimport * as Validering from './Utilities/ValideringParameters';\r\nimport * as Ids from './Ids';\r\nimport contentResolver, { resolveRawText } from '../Shared/Scripts/Utilities/EpiContentResolver';\r\nimport { ThunkDispatch } from 'redux-thunk';\r\nimport { AnyAction } from 'redux';\r\nimport { ValideringsResultat } from '../Shared/Scripts/Models/ValideringsResultat';\r\nimport { updateValidation } from './Store/Resultat/Actions';\r\nimport { Satser } from './Utilities/SatserApi';\r\nimport { FeilmeldingComponent } from '../Shared/Scripts/Components/FeilmeldingComponent';\r\nimport CFulltidDeltidValg from './Utilities/C-FulltidDeltidValg';\r\nimport { NumberInputType } from './Components/D-ArstimerProsentComponent';\r\nimport { ArstimerProsentValg } from './Models/ArstimerProsentValg';\r\nimport SiteImproveHandler, { SiteImproveState, SiteImproveEvents, SiteImproveKategorier } from '../Shared/Scripts/Utilities/SiteImproveEventsHandler';\r\n\r\ninterface AppOwnProps {}\r\n\r\ntype AppProps = AppOwnProps & MapStateToProps & MapDispatchToProps;\r\n\r\nconst RadioButtonsStegComponent = RadioButtonsStegContainer();\r\nconst NumberInputStegComponent = NumberInputStegContainer();\r\nconst DArstimerProsentComponent = DArstimerProsentContainer();\r\n\r\nReactModal.setAppElement(document.getElementById(Ids.AppContainerId) as HTMLElement);\r\n\r\nexport class App extends React.Component {\r\n constructor(props: AppProps) {\r\n super(props);\r\n }\r\n\r\n render(): JSX.Element {\r\n const { valg, resultat, dispatchUpdateValg, dispatchUpdateValidering, epiContext, satser } = this.props;\r\n const { epiModel, locale, valuta } = this.props.epiContext;\r\n\r\n if (resultat.visGenerellFeil || epiContext.epiModelFeilet) {\r\n return ;\r\n }\r\n\r\n if (epiModel != null) {\r\n let resultatElement: JSX.Element | undefined;\r\n let fordelingResultat: JSX.Element | undefined;\r\n let utbetalingsPlanElement: JSX.Element | undefined;\r\n let delvisResultatElement: JSX.Element | undefined;\r\n\r\n if (satser != null) {\r\n let stipendOgLan;\r\n\r\n if (resultat.visResultat) {\r\n stipendOgLan = VeilederLogikk.beregnStipendOgLan(valg, satser);\r\n const utbetalingsplan = VeilederLogikk.utbetalingsplan(valg, stipendOgLan, satser);\r\n if (valg.visUtbetalingsplan) {\r\n utbetalingsPlanElement = ;\r\n }\r\n\r\n resultatElement = (\r\n \r\n );\r\n } else if (resultat.visDelvisResultat) {\r\n const basisstotte = VeilederLogikk.beregnStipendDelvis(valg, satser);\r\n const skolepengeLan = VeilederLogikk.maksSkolepenger(valg, satser);\r\n stipendOgLan = basisstotte + skolepengeLan;\r\n\r\n delvisResultatElement = (\r\n \r\n );\r\n }\r\n\r\n if (resultat.visFordeling && stipendOgLan) {\r\n const andelStipendOgLan = VeilederLogikk.beregnAndelStipendOgLan(valg, stipendOgLan, satser);\r\n fordelingResultat = (\r\n \r\n );\r\n }\r\n }\r\n\r\n function registerSiteImproveEvents(): void {\r\n if(!SiteImproveState.Startet) {\r\n if(resultat.visBoksB) {\r\n //veileder påstartet\r\n SiteImproveState.Startet = true;\r\n SiteImproveHandler.registerSiteImproveEvent(SiteImproveKategorier.Veileder, SiteImproveEvents.VeilederStart, SiteImproveHandler.hentOverskrift());\r\n }\r\n }\r\n\r\n if(!SiteImproveState.Fullfort) {\r\n if(resultat.visResultat) {\r\n //veileder fullført\r\n SiteImproveState.Fullfort = true;\r\n SiteImproveHandler.registerSiteImproveEvent(SiteImproveKategorier.Veileder, SiteImproveEvents.VeilederFullfort, SiteImproveHandler.hentOverskrift());\r\n }\r\n }\r\n\r\n if(!SiteImproveState.Fullfort_del2) {\r\n if(resultat.visFordeling) {\r\n SiteImproveState.Fullfort_del2 = true;\r\n SiteImproveHandler.registerSiteImproveEvent(SiteImproveKategorier.Veileder, SiteImproveEvents.VeilederFullfort_del2, SiteImproveHandler.hentOverskrift());\r\n }\r\n }\r\n }\r\n\r\n return (\r\n
\r\n {registerSiteImproveEvents()}\r\n ): void => {\r\n dispatchUpdateValg({ aStudieretning: nyttValg });\r\n }}\r\n neverCollapse={true}\r\n classModifier=\"c-veileder__panel--input-white\"\r\n value={valg.aStudieretning}\r\n />\r\n {resultat.visBoksB && (\r\n ): void => {\r\n dispatchUpdateValg({ bVarighet: nyttValg });\r\n }}\r\n value={valg.bVarighet}\r\n />\r\n )}\r\n {resultat.visBoksC && (\r\n ): void => {\r\n dispatchUpdateValg({ cFulltidDeltid: nyttValg });\r\n }}\r\n value={valg.cFulltidDeltid}\r\n />\r\n )}\r\n {resultat.visBoksD &&\r\n this.arstimerProsentBoks(\r\n valg,\r\n resultat,\r\n locale,\r\n dispatchUpdateValg,\r\n dispatchUpdateValidering,\r\n epiContext,\r\n )}\r\n {resultat.visBoksE && (\r\n ): void => {\r\n dispatchUpdateValg({ eSkolepenger: nyttValg });\r\n }}\r\n value={valg.eSkolepenger}\r\n />\r\n )}\r\n {resultat.visBoksF &&\r\n satser != null &&\r\n this.skolepengerBoks(\r\n valg,\r\n resultat,\r\n locale,\r\n dispatchUpdateValg,\r\n dispatchUpdateValidering,\r\n epiContext,\r\n satser,\r\n valuta,\r\n )}\r\n {resultatElement}\r\n {utbetalingsPlanElement}\r\n {delvisResultatElement}\r\n {(resultat.visResultat || resultat.visDelvisResultat) && (\r\n ): void => {\r\n dispatchUpdateValg({ hBosted: nyttValg });\r\n }}\r\n value={valg.hBosted}\r\n classModifier=\"c-veileder__panel--input-white\"\r\n neverCollapse={true}\r\n />\r\n )}\r\n {fordelingResultat}\r\n
\r\n );\r\n } else {\r\n return

Laster...

;\r\n }\r\n }\r\n\r\n private skolepengerBoks(\r\n valg: ValgTypes.ValgState,\r\n resultat: ResultatValg,\r\n locale: string,\r\n dispatchUpdateValg: (newValg: Partial) => void,\r\n dispatchUpdateValidering: (result: Partial) => void,\r\n epiContext: EpiContext,\r\n satser: Satser,\r\n valuta: string,\r\n ): React.ReactNode {\r\n const maxSkolepenger = VeilederLogikk.maksSkolepenger(valg, satser);\r\n const maxskolepengerFormatert = `${tilPengerFormat(maxSkolepenger, locale)} ${valuta}`;\r\n const map = new Map();\r\n map.set('${maxBelop}', maxskolepengerFormatert);\r\n\r\n const formatter: NumberFormatter = {\r\n toFormattetString: (v: number): string => tilPengerFormat(v, locale),\r\n toParsableAsNumber: (v: string): string => fraPengerFormat(v, locale),\r\n };\r\n\r\n return (\r\n {\r\n dispatchUpdateValg({ fSpBelop: nyttValg });\r\n }}\r\n onValidationChanged={(result: ValideringsResultat | undefined): void =>\r\n dispatchUpdateValidering({ fValidation: result })\r\n }\r\n preValidation={resultat.fValidation}\r\n validationChecksum={maxSkolepenger}\r\n />\r\n );\r\n }\r\n\r\n private arstimerProsentBoks(\r\n valg: ValgTypes.ValgState,\r\n resultat: ResultatValg,\r\n locale: string,\r\n dispatchUpdateValg: (newValg: Partial) => void,\r\n dispatchUpdateValidering: (result: Partial) => void,\r\n epiContext: EpiContext,\r\n ): React.ReactNode {\r\n const fulltid = VeilederLogikk.fulltidArstimer(valg);\r\n const maksVerdi = VeilederLogikk.finnMaksArstimer(valg, fulltid);\r\n\r\n const inputTypes: NumberInputType[] = [\r\n {\r\n inputTypeId: D.d1_arstimer,\r\n inputTypeLabel: resolveRawText(epiContext, 'valgArstimer'),\r\n placeholder: resolveRawText(epiContext, 'placeholderArstimerProsent'),\r\n validering: Validering.dArstimerValidering(maksVerdi),\r\n preValidation: valg.dArstimerProsent?.type === D.d1_arstimer ? resultat.dValidation : undefined,\r\n },\r\n {\r\n inputTypeId: D.d2_prosent,\r\n inputTypeLabel: resolveRawText(epiContext, 'valgProsent'),\r\n placeholder: resolveRawText(epiContext, 'placeholderArstimerProsent'),\r\n validering: Validering.dProsentValidering,\r\n preValidation: valg.dArstimerProsent?.type === D.d2_prosent ? resultat.dValidation : undefined,\r\n },\r\n ];\r\n\r\n return (\r\n {\r\n dispatchUpdateValg({ dArstimerProsent: nyttValg });\r\n }}\r\n onValidationChanged={(result: ValideringsResultat | undefined): void =>\r\n dispatchUpdateValidering({ dValidation: result })\r\n }\r\n vetIkke={valg.dArstimerProsent?.vetIkke ?? false}\r\n vetIkkeLabel={resolveRawText(epiContext, 'vetIkkeArstimerProsent')}\r\n selectLabel={resolveRawText(epiContext, 'dropdownLabelArstimerProsent')}\r\n />\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 dispatchUpdateValidering: (validation: 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 dispatchUpdateValidering: (validation: Partial): void => {\r\n dispatch(updateValidation(validation));\r\n dispatch(updateVisning());\r\n },\r\n});\r\n\r\nconst mapStateToProps = (state: VeilederVgsUtenUrAppState): 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 {\r\n ValgStateActionTypes,\r\n ValgState,\r\n TOGGLE_UTBETALINGSPLAN,\r\n TOGGLE_FORDELING,\r\n TOGGLE_VILKAR,\r\n UPDATE_VALG,\r\n} from './Types';\r\n\r\nexport const initialState: ValgState = {\r\n aStudieretning: undefined,\r\n bVarighet: undefined,\r\n hBosted: undefined,\r\n eSkolepenger: undefined,\r\n fSpBelop: undefined,\r\n visUtbetalingsplan: false,\r\n visFordeling: false,\r\n visVilkar: false,\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 // Reset to inital state when aStotte is changed\r\n if (action.payload.aStudieretning) {\r\n return {\r\n ...initialState,\r\n ...action.payload,\r\n };\r\n } else {\r\n return {\r\n ...state,\r\n ...action.payload,\r\n };\r\n }\r\n }\r\n case TOGGLE_UTBETALINGSPLAN: {\r\n return {\r\n ...state,\r\n visUtbetalingsplan: !state.visUtbetalingsplan,\r\n };\r\n }\r\n case TOGGLE_FORDELING: {\r\n return {\r\n ...state,\r\n visFordeling: !state.visFordeling,\r\n };\r\n }\r\n case TOGGLE_VILKAR: {\r\n return {\r\n ...state,\r\n visVilkar: !state.visVilkar,\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n }\r\n}\r\n","import { ResultatValg, SET_VISNING, ResultatActionTypes, UPDATE_VALIDERING } from './Types';\r\n\r\nconst initialState: ResultatValg = {\r\n visBoksB: false,\r\n visBoksC: false,\r\n visBoksD: false,\r\n visBoksE: false,\r\n visBoksF: false,\r\n visDelvisResultat: false,\r\n visResultat: false,\r\n visFordeling: false,\r\n fValidation: undefined,\r\n visGenerellFeil: false,\r\n};\r\n\r\nexport function resultatReducer(state: ResultatValg = initialState, action: ResultatActionTypes): 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 case UPDATE_VALIDERING: {\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 { 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 { compose } from 'redux';\nfunction extensionComposeStub() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n if (funcs.length === 0) return undefined;\n if (typeof funcs[0] === 'object') return compose;\n return compose(...funcs);\n}\nexport const composeWithDevTools = typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : extensionComposeStub;\nexport const devToolsEnhancer = typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__ : function () {\n return function (noop) {\n return noop;\n };\n};\nexport { composeWithDevTools as composeWithDevToolsDevelopmentOnly, devToolsEnhancer as devToolsEnhancerDevelopmentOnly } from './developmentOnly';\nexport { composeWithDevTools as composeWithDevToolsLogOnly, devToolsEnhancer as devToolsEnhancerLogOnly } from './logOnly';\nexport { composeWithDevTools as composeWithDevToolsLogOnlyInProduction, devToolsEnhancer as devToolsEnhancerLogOnlyInProduction } from './logOnlyInProduction';","import ReduxThunk from 'redux-thunk';\r\nimport { createStore, combineReducers, Store, applyMiddleware } from 'redux';\r\nimport { valgReducer } from './Valg/Reducers';\r\nimport VeilederVgsUrDto from '../Models/VeilederVgsUrDto';\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 { satserReducer } from './Satser/Reducers';\r\nimport { EpiAppStateMedSteg } from '../../Shared/Scripts/Store/Types';\r\nimport { composeWithDevTools } from '@redux-devtools/extension';\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 VeilederVgsUtenUrAppState = 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, composeWithDevTools(applyMiddleware(ReduxThunk)));\r\n}\r\n","export const getSatser = async (): Promise => {\r\n const response = await fetch('/api/mt1535/satser');\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 HoyskoleOgUniversitet: {\r\n ST01_MaksBasisstotteperManed: number;\r\n ST01_MaksSkolepengestottePerAr: number;\r\n };\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 { createRoot } from 'react-dom/client';\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 './Ids';\r\nimport { getSatser } from './Utilities/SatserApi';\r\nimport { setSatser } from './Store/Satser/Actions';\r\nimport { setVisning } from './Store/Resultat/Actions';\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":["heltAr","host","beregnStipendOgLan","C","Kalkulator.beregnStipendOgLan","Kalkulator.beregnStipend","Kalkulator.beregnLan","Kalkulator.beregnUtbetalingsplan","BVarighetValg","jsxs","jsx","contentResolver","utbetalingsplan","useEffect","DArstimerProsentComponent","Ids.AppContainerId","VeilederLogikk.beregnStipendOgLan","VeilederLogikk.utbetalingsplan","VeilederLogikk.beregnStipendDelvis","VeilederLogikk.maksSkolepenger","VeilederLogikk.beregnAndelStipendOgLan","Ids.BoksA","Ids.BoksB","Ids.BoksC","Ids.BoksE","Ids.BoksH","map","Ids.BoksF","Validering.fSkolepengerValidering","VeilederLogikk.fulltidArstimer","VeilederLogikk.finnMaksArstimer","Validering.dArstimerValidering","Validering.dProsentValidering","Ids.BoksD","initialState","ReduxThunk","createRoot","App"],"mappings":"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","x_google_ignoreList":[25]}