{"version":3,"file":"veilederLut-DmBKlCUD.js","sources":["../../../Features/VeilederLut/Store/Valg/Types.ts","../../../Features/VeilederLut/Store/Resultat/Types.ts","../../../Features/VeilederLut/Store/Resultat/Actions.ts","../../../Features/VeilederLut/Utilities/A-VerdensdelValg.ts","../../../Features/VeilederLut/Store/Valg/Actions.ts","../../../Features/VeilederLut/Ids.ts","../../../Features/VeilederLut/Utilities/D-HelsefagValg.ts","../../../Features/VeilederLut/Components/ModalKlikkComponent.tsx","../../../Features/VeilederLut/Components/ResultatAComponent.tsx","../../../Features/VeilederLut/Components/ResultatBComponent.tsx","../../../Features/VeilederLut/Components/EkstraboksContainer.tsx","../../../Features/VeilederLut/App.tsx","../../../Features/VeilederLut/Store/Valg/Reducers.ts","../../../Features/VeilederLut/Store/Resultat/Reducers.ts","../../../Features/VeilederLut/Store/LutData/Types.ts","../../../Features/VeilederLut/Store/LutData/Reducers.ts","../../../Features/VeilederLut/Store/index.ts","../../../Features/VeilederLut/Utilities/LutApi.ts","../../../Features/VeilederLut/Store/LutData/Actions.ts","../../../Features/VeilederLut/index.tsx"],"sourcesContent":["import Valg from '../../../Shared/Scripts/Models/Valg';\r\n\r\nexport interface ValgState {\r\n aVerdensdel?: Valg;\r\n bLand?: Valg;\r\n cLarested?: Valg;\r\n dHelsefag?: Valg;\r\n eEkstraboks: boolean;\r\n visVilkar: boolean;\r\n visModal: boolean;\r\n}\r\n\r\nexport const UPDATE_VALG = 'UPDATE_VALG';\r\nexport const TOGGLE_VILKAR = 'TOGGLE_VILKAR';\r\nexport const TOGGLE_MODAL = 'TOGGLE_MODAL';\r\n\r\ninterface UpdateValgAction {\r\n type: typeof UPDATE_VALG;\r\n payload: Partial;\r\n}\r\n\r\nexport interface ToggleVilkarAction {\r\n type: typeof TOGGLE_VILKAR;\r\n}\r\n\r\nexport interface ToggleModalAction {\r\n type: typeof TOGGLE_MODAL;\r\n}\r\n\r\nexport type ValgStateActionTypes = UpdateValgAction | ToggleVilkarAction | ToggleModalAction;\r\n","export type ResultatValg = ResultatValgVisning;\r\n\r\nexport interface ResultatValgVisning {\r\n visBoksB: boolean;\r\n visBoksC: boolean;\r\n visBoksD: boolean;\r\n visResultatA: boolean;\r\n visResultatB: boolean;\r\n visGenerellFeil: boolean;\r\n visEkstraboks: 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 VeilederLutDto from '../Models/VeilederLutDto';\r\nimport { RadioButtonValgModel } from '../../Shared/Scripts/Components/RadioButtonValg';\r\n\r\nconst afrika = 'a1-afrika';\r\nconst asia = 'a2-asia';\r\nconst europa = 'a3-europa';\r\nconst nordMellomAmerika = 'a4-nordMellomAmerika';\r\nconst oseania = 'a5-oseania';\r\nconst sorAmerika = 'a6-sorAmerika';\r\n\r\nconst aValg: RadioButtonValgModel[] = [\r\n { id: 'AFR', value: afrika, tekst: 'valgAfrika' },\r\n { id: 'ASI', value: asia, tekst: 'valgAsia' },\r\n { id: 'EUR', value: europa, tekst: 'valgEuropa' },\r\n { id: 'NMA', value: nordMellomAmerika, tekst: 'valgNordMellomAmerika' },\r\n { id: 'OSE', value: oseania, tekst: 'valgOseania' },\r\n { id: 'SAM', value: sorAmerika, tekst: 'valgSorAmerika' }, \r\n];\r\n\r\nexport default {\r\n a1_afrika: afrika,\r\n a2_asia: asia,\r\n a3_europa: europa,\r\n a4_nordMellomAmerika: nordMellomAmerika,\r\n a5_oseania: oseania,\r\n a6_sorAmerika: sorAmerika,\r\n aValg,\r\n};","import {\r\n ValgStateActionTypes,\r\n ValgState,\r\n UPDATE_VALG,\r\n TOGGLE_VILKAR,\r\n ToggleVilkarAction,\r\n TOGGLE_MODAL,\r\n ToggleModalAction\r\n} from './Types';\r\nimport { ThunkAction, ThunkDispatch } from 'redux-thunk';\r\nimport { VeilederLutAppState } from '..';\r\nimport { AnyAction } from 'redux';\r\nimport { setVisning } from '../Resultat/Actions';\r\nimport VerdensdelValg from '../../Utilities/A-VerdensdelValg';\r\nimport { VerdensdelViewModel, LandViewModel, LarestedViewModel } from '../../Utilities/LutApi';\r\n\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 toggleVilkar(): ToggleVilkarAction {\r\n return {\r\n type: TOGGLE_VILKAR,\r\n };\r\n}\r\n\r\nexport function toggleModal(): ToggleModalAction {\r\n return {\r\n type: TOGGLE_MODAL,\r\n };\r\n}\r\n\r\nexport const updateVisning = (): ThunkAction => {\r\n return (dispatch: ThunkDispatch, getState: () => VeilederLutAppState): void => {\r\n const currentState = getState();\r\n\r\n const visBoksB = visB(currentState);\r\n const visBoksC = visC(currentState);\r\n const visBoksD = visD(currentState);\r\n\r\n const visResultatA = visResA(currentState);\r\n const visResultatB = visResB(currentState);\r\n const visEkstraboks = visEkstr(currentState);\r\n\r\n dispatch(setVisning({ visBoksB, visBoksC, visBoksD, visResultatA, visResultatB, visEkstraboks }));\r\n };\r\n};\r\n\r\nconst visB = (state: VeilederLutAppState): boolean => {\r\n if (state.valg.aVerdensdel !== null\r\n && (state.valg.aVerdensdel!.value === VerdensdelValg.a1_afrika \r\n || state.valg.aVerdensdel!.value === VerdensdelValg.a2_asia\r\n || state.valg.aVerdensdel!.value === VerdensdelValg.a3_europa\r\n || state.valg.aVerdensdel!.value === VerdensdelValg.a4_nordMellomAmerika\r\n || state.valg.aVerdensdel!.value === VerdensdelValg.a5_oseania\r\n || state.valg.aVerdensdel!.value === VerdensdelValg.a6_sorAmerika))\r\n return true;\r\n\r\n return false;\r\n};\r\n\r\nconst visC = (state: VeilederLutAppState): boolean => {\r\n\r\n // sett blankt lærested dersom valgt land ikke er parent til valgt lærested - forutsatt at \"Nei\" ikke er satt\r\n if (state.valg.cLarested !== undefined) {\r\n if (LarestedTilhorerLand(state.lutData!.Verdensdeler, state.valg.cLarested.id, state.valg.bLand!.id, state.valg.aVerdensdel!.id)) {\r\n return true;\r\n } else {\r\n if (LandHarLaresteder(state.lutData!.Verdensdeler, state.valg.bLand!.id)) {\r\n if (state.valg.cLarested.id == \"Nei\") {\r\n return true;\r\n }\r\n state.valg.cLarested = undefined;\r\n return true;\r\n } else {\r\n state.valg.cLarested = undefined;\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n // om c ikke er satt, sjekk om b har læresteder - skjul c-boks dersom vi ikke har noen\r\n if (state.valg.bLand !== undefined) {\r\n if (LandHarLaresteder(state.lutData!.Verdensdeler, state.valg.bLand.id)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst visD = (state: VeilederLutAppState): boolean => {\r\n if (state.valg.cLarested !== undefined && state.valg.cLarested.value !== \"Nei\" ) return true;\r\n return false;\r\n};\r\n\r\nconst visResA = (state: VeilederLutAppState): boolean => {\r\n if (state.valg.cLarested?.value !== \"Nei\" && state.valg.dHelsefag !== undefined) return true;\r\n return false;\r\n}\r\n\r\nconst visResB = (state: VeilederLutAppState): boolean => { \r\n if (state.valg.cLarested !== undefined && state.valg.cLarested.value === \"Nei\") {\r\n return true;\r\n }\r\n\r\n if (state.valg.cLarested === undefined && state.valg.bLand && !LandHarLaresteder(state.lutData!.Verdensdeler, state.valg.bLand?.id)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n\r\nconst visEkstr = (state: VeilederLutAppState): boolean => {\r\n if (visResA(state) && state.valg.eEkstraboks) return true;\r\n return false;\r\n}\r\n\r\nconst LandHarLaresteder = (verdensdeler: VerdensdelViewModel[], landkode: string): boolean => {\r\n for (let i = 0; i < verdensdeler.length; i++) {\r\n let landListe: LandViewModel[] = verdensdeler[i].LandListe;\r\n for (let j = 0; j < landListe.length; j++) {\r\n let land = landListe[j];\r\n if (land.LandKode === landkode) {\r\n if (land.Laresteder!.length > 0) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n}\r\n\r\nconst LarestedTilhorerLand = (verdensdeler: VerdensdelViewModel[], larestedId: string, valgtlandkode: string, valgtverdensdelkode: string): boolean => {\r\n for (let i = 0; i < verdensdeler.length; i++) {\r\n if (verdensdeler[i].VerdensdelKode === valgtverdensdelkode) {\r\n let landListe: LandViewModel[] = verdensdeler[i].LandListe;\r\n for (let j = 0; j < landListe.length; j++) {\r\n let land = landListe[j];\r\n if (land.LandKode === valgtlandkode && land.Laresteder !== undefined) {\r\n let larestedser: LarestedViewModel[] = land.Laresteder;\r\n if (larestedser?.length > 0) {\r\n for (let k = 0; k < larestedser.length; k++) {\r\n let la = larestedser[k];\r\n if (la.LarestedId.toString() == larestedId) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n}\r\n","export const AppContainerId = 'veilederlarestederiutlandet';\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 BoksResultatA = 'resultat-a';\r\nexport const BoksResultatB = 'resultat-b';\r\nexport const BoksEkstraboks = 'ekstraboks';\r\n","import VeilederLutDto from '../Models/VeilederLutDto';\r\nimport { RadioButtonValgModel } from '../../Shared/Scripts/Components/RadioButtonValg';\r\n\r\nconst ja = 'd1-ja';\r\nconst nei = 'd2-nei';\r\n\r\nconst dValg: RadioButtonValgModel[] = [\r\n {\r\n id: 'd1',\r\n value: ja,\r\n tekst: 'valgJa',\r\n },\r\n {\r\n id: 'd2',\r\n value: nei,\r\n tekst: 'valgNei',\r\n },\r\n];\r\n\r\nexport default {\r\n d1_ja: ja,\r\n d2_nei: nei,\r\n dValg,\r\n};\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { VeilederLutAppState } from '../Store';\r\nimport { toggleModal } from '../Store/Valg/Actions';\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 * as ValgTypes from '../Store/Valg/Types';\r\n\r\ninterface ModalKlikkPropsOwnProps {\r\n valg: ValgTypes.ValgState;\r\n lenketekst: JSX.Element | null;\r\n overskrift: JSX.Element | null;\r\n content: JSX.Element | null;\r\n ariaLabel: string;\r\n}\r\n\r\ntype ModalKlikkProps = MapStateToProps & MapDispatchToProps & ModalKlikkPropsOwnProps;\r\n\r\nclass ModalKlikkComponent extends React.PureComponent {\r\n constructor(props: ModalKlikkProps) {\r\n super(props);\r\n this.onModalClick = this.onModalClick.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.toggleModal();\r\n }\r\n\r\n onModalClick(event: React.MouseEvent): void {\r\n this.props.updateZIndex(2);\r\n this.props.toggleModal();\r\n }\r\n\r\n render(): JSX.Element {\r\n const { visModal, lenketekst, overskrift, content, ariaLabel } = this.props;\r\n\r\n return (\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 visModal: boolean;\r\n}\r\n\r\ninterface MapDispatchToProps {\r\n toggleModal: typeof toggleModal;\r\n updateZIndex: typeof updateZIndex;\r\n}\r\n\r\nexport default connect(\r\n (state: VeilederLutAppState): MapStateToProps => {\r\n return {\r\n visModal: state.valg.visModal,\r\n };\r\n },\r\n { toggleModal, updateZIndex },\r\n)(ModalKlikkComponent);\r\n","import React, { useEffect, useState } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { EpiContext } from '../../Shared/Scripts/Store/EpiContext/Types';\r\nimport contentResolver from '../../Shared/Scripts/Utilities/EpiContentResolver';\r\nimport VeilederLutDto from '../Models/VeilederLutDto';\r\nimport { VeilederLutAppState } from '../Store';\r\nimport { ResultatValg } from '../Store/Resultat/Types';\r\nimport { BoksResultatA } from '../Ids';\r\nimport HelsefagValg from '../Utilities/D-HelsefagValg';\r\nimport Valg from '../../Shared/Scripts/Models/Valg';\r\nimport { updateLiveMessage } from '../../Shared/Scripts/Utilities/LiveMessage';\r\nimport { LarestedViewModel } from '../Utilities/LutApi';\r\n\r\n\r\ninterface ResultatOwnProps {\r\n visEkstraboksHandler: any,\r\n helsefagValg: Valg | undefined,\r\n landMerknad: string,\r\n larested?: Larested,\r\n}\r\n\r\nexport interface Larested {\r\n LarestedWebAdresse: string;\r\n UtdanningListe: LarestedViewModel['UtdanningsoppleggListe'];\r\n LarestedKundeveiledningstekst: string,\r\n}\r\n\r\ntype ResultatDisplayProps = ResultatOwnProps & MapStateToProps;\r\n\r\nfunction ResultatAComponent(props: ResultatDisplayProps): JSX.Element {\r\n const { epiContext, helsefagValg, landMerknad, larested } = props;\r\n\r\n const [visEkstraboks, setVisEkstraboks] = useState(false);\r\n useEffect(() => {\r\n updateLiveMessage();\r\n }, []);\r\n function onVisEkstraboks(): void {\r\n if (visEkstraboks) {\r\n setVisEkstraboks(false);\r\n props.visEkstraboksHandler(false);\r\n } else {\r\n setVisEkstraboks(true);\r\n props.visEkstraboksHandler(true);\r\n }\r\n }\r\n\r\n let overskriftMerknadLarested = contentResolver(epiContext, 'overskriftMerknad');\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

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

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

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

\r\n
\r\n {contentResolver(epiContext, 'infoResultatJa')}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {(landMerknad || larested?.LarestedKundeveiledningstekst) &&\r\n

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

\r\n }\r\n {landMerknad &&\r\n
\r\n {
}\r\n
\r\n }\r\n {overskriftMerknadLarested && larested?.LarestedKundeveiledningstekst &&\r\n
{overskriftMerknadLarested}
\r\n }\r\n {larested?.LarestedKundeveiledningstekst &&\r\n
\r\n {
}\r\n
\r\n }\r\n
\r\n
\r\n
\r\n

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

\r\n
\r\n {contentResolver(epiContext, 'infoStudiestotteResultatJa')}\r\n
\r\n
\r\n {helsefagValg?.value === HelsefagValg.d1_ja &&\r\n
\r\n

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

\r\n
\r\n {contentResolver(epiContext, 'infoHelsefagResultatJa')}\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}\r\n\r\ninterface MapStateToProps {\r\n epiContext: EpiContext;\r\n resultat: ResultatValg;\r\n}\r\n\r\nexport default connect(\r\n (state: VeilederLutAppState, ownProps: ResultatOwnProps): MapStateToProps => {\r\n return {\r\n epiContext: state.epiContext,\r\n resultat: state.resultat,\r\n };\r\n }\r\n)(ResultatAComponent);\r\n","import React, { useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { EpiContext } from '../../Shared/Scripts/Store/EpiContext/Types';\r\nimport contentResolver, { resolveLinkCollection } from '../../Shared/Scripts/Utilities/EpiContentResolver';\r\nimport VeilederLutDto from '../Models/VeilederLutDto';\r\nimport { VeilederLutAppState } from '../Store';\r\nimport { ResultatValg } from '../Store/Resultat/Types';\r\nimport { BoksResultatB } from '../../VeilederLut/Ids';\r\nimport { updateLiveMessage } from '../../Shared/Scripts/Utilities/LiveMessage';\r\n\r\ninterface ResultatOwnProps {\r\n //valg: ValgTypes.ValgState,\r\n}\r\n\r\ntype ResultatDisplayProps = ResultatOwnProps & MapStateToProps;\r\n\r\nfunction ResultatBComponent(props: ResultatDisplayProps): JSX.Element {\r\n const { epiContext } = props;\r\n useEffect(() => {\r\n updateLiveMessage();\r\n }, []);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

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

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

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

\r\n
\r\n {contentResolver(epiContext, 'infoResultatKanskje')}\r\n
\r\n {resolveLinkCollection(\r\n epiContext,\r\n 'lenkeResultatKanskje',\r\n 'c-veileder__linkwrapper',\r\n 'c-knapp c-knapp--cta c-knapp--primary',\r\n )}\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\ninterface MapStateToProps {\r\n epiContext: EpiContext;\r\n resultat: ResultatValg;\r\n}\r\n\r\nexport default connect(\r\n (state: VeilederLutAppState, ownProps: ResultatOwnProps): MapStateToProps => {\r\n return {\r\n epiContext: state.epiContext,\r\n resultat: state.resultat,\r\n };\r\n }\r\n)(ResultatBComponent);\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { EpiContext } from '../../Shared/Scripts/Store/EpiContext/Types';\r\nimport contentResolver from '../../Shared/Scripts/Utilities/EpiContentResolver';\r\nimport VeilederLutDto from '../Models/VeilederLutDto';\r\nimport { VeilederLutAppState } from '../Store';\r\nimport { ResultatValg } from '../Store/Resultat/Types';\r\nimport * as Ids from './../Ids';\r\nimport * as LutApi from './../Utilities/LutApi';\r\nimport { Larested } from './ResultatAComponent';\r\n\r\ninterface ResultatOwnProps {\r\n larested: Larested;\r\n}\r\n\r\ntype ResultatDisplayProps = ResultatOwnProps & MapStateToProps;\r\n\r\nfunction EkstraboksComponent(props: ResultatDisplayProps): JSX.Element {\r\n const { epiContext, larested } = props;\r\n return (\r\n \r\n
\r\n
\r\n

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

\r\n
\r\n

{contentResolver(epiContext, 'infoEkstraboks')}

\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{contentResolver(epiContext, 'overskriftTabellEkstraboks')}
\r\n
\r\n {\r\n larested?.UtdanningListe?.map((utdanning: LutApi.UtdanningViewModel, i: number) => {\r\n return (\r\n
\r\n
\r\n {utdanning.Sprakvarianter.find(s => s.SprakKode === epiContext.epiModel?.language.name)?.Navn}\r\n
\r\n
\r\n )\r\n })\r\n }\r\n
\r\n
\r\n
\r\n
\r\n {larested.LarestedWebAdresse &&\r\n \r\n }\r\n
\r\n )\r\n}\r\n\r\ninterface MapStateToProps {\r\n epiContext: EpiContext;\r\n resultat: ResultatValg;\r\n}\r\n\r\nexport default connect(\r\n (state: VeilederLutAppState, ownProps: ResultatOwnProps): MapStateToProps => {\r\n return {\r\n epiContext: state.epiContext,\r\n resultat: state.resultat,\r\n };\r\n }\r\n)(EkstraboksComponent);\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 { resolveRawText } from '../Shared/Scripts/Utilities/EpiContentResolver';\r\nimport { FeilmeldingComponent } from '../Shared/Scripts/Components/FeilmeldingComponent';\r\nimport contentResolver from '../Shared/Scripts/Utilities/EpiContentResolver';\r\nimport RadioButtonsStegContainer from '../Shared/Scripts/Components/RadioButtonsStegComponent';\r\nimport Valg from '../Shared/Scripts/Models/Valg';\r\nimport { DisplayValue } from '../Shared/Scripts/Models/Valg';\r\nimport SelectOptionStegDisplay from '../Shared/Scripts/Components/SelectOptionStegComponent';\r\nimport VelgUniversitetComponent from '../Shared/Scripts/Components/VelgUniversitetComponent';\r\n\r\nimport VeilederLutDto from './Models/VeilederLutDto';\r\nimport { LandViewModel, LutData } from './Utilities/LutApi';\r\nimport { VeilederLutAppState } from './Store';\r\nimport * as ValgTypes from './Store/Valg/Types';\r\nimport { ResultatValg } from './Store/Resultat/Types';\r\nimport { updateValg, updateVisning } from './Store/Valg/Actions';\r\nimport * as Ids from './Ids';\r\nimport VerdensdelValg from './Utilities/A-VerdensdelValg';\r\nimport HelsefagValg from './Utilities/D-HelsefagValg';\r\nimport ModalKlikkContainer from './Components/ModalKlikkComponent';\r\nimport ResultatAComponent, { Larested } from './Components/ResultatAComponent';\r\nimport ResultatBComponent from './Components/ResultatBComponent';\r\nimport EkstraboksComponent from './Components/EkstraboksContainer';\r\nimport { epiResolveLanguage } from '../Shared/Scripts/Utilities/EpiResolveLanguage';\r\n\r\ninterface AppOwnProps { }\r\n\r\nconst RadioButtonsStegComponent = RadioButtonsStegContainer();\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}\r\n\r\nconst currentLanguage = epiResolveLanguage()\r\n\r\nclass App extends React.Component {\r\n constructor(props: AppProps) {\r\n super(props);\r\n this.state = {\r\n };\r\n }\r\n\r\n render(): JSX.Element {\r\n const { valg, dispatchUpdateValg, epiContext, lutData: nullableLutData, resultat } = this.props;\r\n const lutData = nullableLutData as LutData; // FIX SUGGESTION: We assume that nullable LutData property is never null\r\n const { epiModel } = this.props.epiContext;\r\n\r\n // Målet er å sortere LandListe basert på Navn til Land på språket som brukeren har valgt\r\n // Dette er gjort ved .find og .sort og .localeCompare\r\n const sortLandListe = (a: LandViewModel, b: LandViewModel): number =>\r\n // Fin navn til a på riktig språk\r\n a.Sprakvarianter\r\n .find(s => s.SprakKode === currentLanguage)?.Navn\r\n // Sammenlign med b sitt navn\r\n ?.localeCompare(\r\n b.Sprakvarianter.find(s => s.SprakKode === currentLanguage)?.Navn\r\n ?? \"\"\r\n ) ?? 0;\r\n\r\n function getLand(): DisplayValue[] {\r\n const items: DisplayValue[] = [];\r\n const lutModel: LutData = lutData;\r\n\r\n lutModel.Verdensdeler.forEach(v => {\r\n if (v.VerdensdelKode === valg.aVerdensdel?.id) {\r\n if (v.LandListe !== undefined) {\r\n v.LandListe\r\n ?.sort(sortLandListe)\r\n .forEach(l => {\r\n items.push({ id: l.LandKode, displayValue: l.Sprakvarianter.find(s => s.SprakKode === currentLanguage)?.Navn ?? \"\" });\r\n });\r\n }\r\n }\r\n });\r\n\r\n return items;\r\n }\r\n\r\n function getLandMerknad(): string {\r\n const lutModel: LutData = lutData;\r\n let landMerknad: string = \"\";\r\n\r\n lutModel.Verdensdeler.forEach(v => {\r\n if (v.VerdensdelKode === valg.aVerdensdel?.id) {\r\n v.LandListe\r\n ?.sort(sortLandListe)\r\n .forEach(l => {\r\n if (v.LandListe !== undefined) {\r\n if (valg.bLand?.id === l.LandKode) {\r\n landMerknad = l.Sprakvarianter.find(s => s.SprakKode === currentLanguage)?.Kundeveiledning ?? \"\";\r\n }\r\n }\r\n });\r\n }\r\n });\r\n\r\n return landMerknad;\r\n }\r\n\r\n function getLarested(): Larested | null {\r\n let larested: Larested | null = null;\r\n const lutModel: LutData = lutData;\r\n\r\n lutModel.Verdensdeler.forEach(v => {\r\n if (v.VerdensdelKode === valg.aVerdensdel?.id) {\r\n v.LandListe\r\n ?.sort(sortLandListe)\r\n .forEach(l => {\r\n if (v.LandListe !== undefined) {\r\n if (valg.bLand?.id === l.LandKode && l.Laresteder !== undefined) {\r\n l.Laresteder.forEach(la => {\r\n if (valg.cLarested?.id === la.LarestedId.toString()) {\r\n larested = {\r\n LarestedKundeveiledningstekst: la.Sprakvarianter.find(s => s.SprakKode === currentLanguage)?.Kundeveiledning ?? la.Sprakvarianter[0].Kundeveiledning ?? \"\",\r\n UtdanningListe: la.UtdanningsoppleggListe,\r\n LarestedWebAdresse: la.LarestedWebAdresse\r\n };\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n });\r\n\r\n return larested;\r\n }\r\n\r\n function getLaresteder(): DisplayValue[] {\r\n const items: DisplayValue[] = [];\r\n const lutModel: LutData = lutData;\r\n\r\n lutModel.Verdensdeler.forEach(v => {\r\n if (v.VerdensdelKode === valg.aVerdensdel?.id) {\r\n v.LandListe\r\n ?.sort(sortLandListe)\r\n .forEach(l => {\r\n if (v.LandListe !== undefined && valg.bLand?.id === l.LandKode && l.Laresteder !== undefined) {\r\n l.Laresteder.forEach(la => {\r\n items.push({ id: la.LarestedId.toString(), displayValue: la.Sprakvarianter.find(s => s.SprakKode === currentLanguage)?.Navn ?? la.Sprakvarianter[0].Navn ?? \"\" })\r\n });\r\n }\r\n });\r\n }\r\n });\r\n\r\n return items;\r\n }\r\n\r\n if (epiContext.epiModelFeilet || resultat.visGenerellFeil) {\r\n return ;\r\n }\r\n\r\n if (epiModel != null && lutData !== null) {\r\n const modalKlikkRad: JSX.Element = (\r\n \r\n );\r\n\r\n return (\r\n
\r\n {contentResolver(epiContext, 'infoVerdensdel')}

}\r\n sporsmal=\"ledetekstVerdensdel\"\r\n valg={VerdensdelValg.aValg}\r\n onInputChange={(nyttValg: Valg): void => {\r\n dispatchUpdateValg({ aVerdensdel: nyttValg });\r\n }}\r\n neverCollapse={true}\r\n classModifier=\"c-veileder__panel--input-white\"\r\n value={valg.aVerdensdel}\r\n customBottomRow={modalKlikkRad}\r\n />\r\n {resultat.visBoksB\r\n && (\r\n ): void => {\r\n dispatchUpdateValg({\r\n bLand: nyttValg,\r\n dHelsefag: undefined,\r\n eEkstraboks: false,\r\n });\r\n }}\r\n value={valg.bLand}\r\n showSearch={true}\r\n />\r\n )}\r\n {resultat.visBoksC\r\n && (\r\n ): void => {\r\n dispatchUpdateValg({\r\n cLarested: nyttValg,\r\n dHelsefag: undefined,\r\n eEkstraboks: false,\r\n });\r\n }}\r\n value={valg.cLarested}\r\n showSearch={true}\r\n />\r\n )}\r\n {resultat.visBoksD\r\n && (\r\n ): void => {\r\n dispatchUpdateValg({ dHelsefag: nyttValg });\r\n }}\r\n value={valg.dHelsefag}\r\n />\r\n )}\r\n {resultat.visResultatA\r\n && getLarested() && ( // FIX SUGGESTION - validate on getLarested function call that it returns a value\r\n {\r\n dispatchUpdateValg({ eEkstraboks: visE });\r\n }}\r\n helsefagValg={valg.dHelsefag}\r\n landMerknad={getLandMerknad()}\r\n larested={getLarested()!} // FIX SUGGESTION: Force return type \r\n />\r\n )}\r\n {resultat.visResultatB\r\n && (\r\n \r\n )}\r\n {resultat.visEkstraboks\r\n && getLarested() && ( // FIX SUGGESTION - validate on getLarested function call that it returns a value\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 lutData: LutData | 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: VeilederLutAppState): MapStateToProps => ({\r\n valg: state.valg,\r\n epiContext: state.epiContext,\r\n resultat: state.resultat,\r\n lutData: state.lutData,\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(App);\r\n","import {\r\n ValgStateActionTypes,\r\n ValgState,\r\n UPDATE_VALG,\r\n TOGGLE_VILKAR,\r\n TOGGLE_MODAL,\r\n} from './Types';\r\n\r\nexport const initialState: ValgState = {\r\n aVerdensdel: undefined,\r\n bLand: undefined,\r\n cLarested: undefined,\r\n dHelsefag: undefined,\r\n eEkstraboks: false,\r\n visVilkar: false,\r\n visModal: 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 if (action.payload.aVerdensdel) {\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_VILKAR: {\r\n return {\r\n ...state,\r\n visVilkar: !state.visVilkar,\r\n };\r\n }\r\n case TOGGLE_MODAL: {\r\n return {\r\n ...state,\r\n visModal: !state.visModal,\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n }\r\n}\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 visBoksC: false,\r\n visBoksD: false,\r\n visResultatA: false,\r\n visResultatB: false,\r\n visEkstraboks: false,\r\n visGenerellFeil: 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 { LutData } from '../../Utilities/LutApi';\r\n\r\nexport const SET_LUTDATA = 'SET_LUTDATA';\r\n\r\nexport interface SetLutDataAction {\r\n type: typeof SET_LUTDATA;\r\n payload: LutData;\r\n}\r\n\r\nexport type LutDataActionTypes = SetLutDataAction;\r\n","import { SET_LUTDATA, LutDataActionTypes } from './Types';\r\nimport { LutData } from '../../Utilities/LutApi';\r\n\r\nconst initialState: LutData | null = null;\r\n\r\nexport function lutDataReducer(state: LutData | null = initialState, action: LutDataActionTypes): LutData | null {\r\n switch (action.type) {\r\n case SET_LUTDATA: {\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 { EpiContext, UpdateEpiContextActionTypes } from '../../Shared/Scripts/Store/EpiContext/Types';\r\nimport { epiContextReducer } from '../../Shared/Scripts/Store/EpiContext/Reducers';\r\nimport { stegVisningReducer } from '../../Shared/Scripts/Store/StegVisning/Reducers';\r\nimport { EpiAppStateMedSteg } from '../../Shared/Scripts/Store/Types';\r\n\r\nimport VeilederLutDto from '../Models/VeilederLutDto';\r\n\r\nimport { valgReducer } from './Valg/Reducers';\r\nimport { resultatReducer } from './Resultat/Reducers';\r\nimport { lutDataReducer } from './LutData/Reducers';\r\n\r\nconst rootReducer = combineReducers({\r\n valg: valgReducer,\r\n epiContext: (\r\n state: EpiContext | undefined,\r\n action: UpdateEpiContextActionTypes,\r\n ): EpiContext => epiContextReducer(state, action),\r\n stegVisning: stegVisningReducer,\r\n resultat: resultatReducer,\r\n lutData: lutDataReducer,\r\n});\r\n\r\nexport type VeilederLutAppState = EpiAppStateMedSteg & {\r\n valg: ReturnType;\r\n resultat: ReturnType;\r\n lutData: ReturnType;\r\n};\r\n\r\nexport default function configureStore(): Store {\r\n return createStore(rootReducer, applyMiddleware(ReduxThunk));\r\n}","import axios, { AxiosResponse } from 'axios';\r\n\r\nexport const getLutData = (): Promise> => {\r\n return axios.get('/api/mt1535/lut');\r\n};\r\n\r\nexport const getFakeLutData = (): LutData => {\r\n let data =\r\n {\r\n Verdensdeler:\r\n [\r\n {\r\n VerdensdelKode: \"AFR\",\r\n VerdensdelNavn: \"Afrika\",\r\n LandListe: [{ LandKode: \"\", LandNavn: \"\" }]\r\n },\r\n {\r\n VerdensdelKode: \"ASI\",\r\n VerdensdelNavn: \"Asia\",\r\n LandListe: [{ LandKode: \"\", LandNavn: \"\" }]\r\n },\r\n {\r\n VerdensdelKode: \"EUR\",\r\n VerdensdelNavn: \"Europa untatt Norden\",\r\n LandListe:\r\n [\r\n {\r\n LandKode: \"LAN\",\r\n LandNavn: \"Langtvekkistan\",\r\n LandKundeveiledningstekst: \"

Lånekassen kan gi stipend og lån til hele bachelorgraden i dette landet. Merk at det første året av graden likevel ikke blir godkjent som høyere utdanning i Norge. Les om godkjenning av utenlandsk utdanning på NOKUT sine nettsider.

\",\r\n Laresteder:\r\n [\r\n {\r\n LarestedId: \"HOG\",\r\n LarestedLandKode: \"LAN\",\r\n LarestedNavn: \"Hogwarts\",\r\n },\r\n {\r\n LarestedId: \"SWE\",\r\n LarestedLandKode: \"LAN\",\r\n LarestedNavn: \"Sweet Valley High\",\r\n },\r\n ]\r\n },\r\n {\r\n LandKode: \"XAN\",\r\n LandNavn: \"Xanadu\",\r\n LandKundeveiledningstekst: \"

Lånekassen kan gi stipend og lån til hele bachelorgraden i dette landet. Merk at det første året av graden likevel ikke blir godkjent som høyere utdanning i Norge. Les om godkjenning av utenlandsk utdanning på NOKUT sine nettsider.

\",\r\n Laresteder:\r\n [\r\n {\r\n LarestedId: \"SUN\",\r\n LarestedLandKode: \"XAN\",\r\n LarestedNavn: \"Sunnydale High\",\r\n LarestedKundeveiledningstekst: \"
Ver merksam på at Lånekassen berre gir støtte til treårige bachelorgradar ved denne lærestaden. Toårige diplomas er ikkje godkjende for støtte. På opptaksbeviset må det komme fram at du er teken opp i ein treårig bachelorgrad.
\",\r\n UtdanningListe:\r\n [\r\n {\r\n UtdanningsoppleggId: 101,\r\n OppleggNavn: \"Varulver\"\r\n },\r\n {\r\n UtdanningsoppleggId: 102,\r\n OppleggNavn: \"Vampyrer\"\r\n },\r\n {\r\n UtdanningsoppleggId: 103,\r\n OppleggNavn: \"Hekser\"\r\n },\r\n ]\r\n },\r\n {\r\n LarestedId: \"HAR\",\r\n LarestedLandKode: \"XAN\",\r\n LarestedNavn: \"Hardtvig Nissen\",\r\n LarestedKundeveiledningstekst: \"Vær oppmerksom på at Lånekassen bare gir støtte til treårige bachelorgrader ved dette lærestedet. Toårige diplomas er ikke godkjent for støtte. På opptaksbeviset må det komme fram at du er tatt opp i en treårig bachelorgrad.\",\r\n UtdanningListe:\r\n [\r\n {\r\n UtdanningsoppleggId: 201,\r\n OppleggNavn: \"Kokkekunst\"\r\n },\r\n {\r\n UtdanningsoppleggId: 202,\r\n OppleggNavn: \"Magedans\"\r\n },\r\n {\r\n UtdanningsoppleggId: 203,\r\n OppleggNavn: \"Skuespill\"\r\n },\r\n ]\r\n },\r\n ]\r\n },\r\n ]\r\n },\r\n {\r\n VerdensdelKode: \"NMA\",\r\n VerdensdelNavn: \"Nord- og Mellom-Amerika\",\r\n LandListe: [{ LandKode: \"\", LandNavn: \"\" }]\r\n },\r\n {\r\n VerdensdelKode: \"OSE\",\r\n VerdensdelNavn: \"Oseania\",\r\n LandListe: [{ LandKode: \"\", LandNavn: \"\" }]\r\n },\r\n {\r\n VerdensdelKode: \"SAM\",\r\n VerdensdelNavn: \"Sør-Amerika\",\r\n LandListe: [{ LandKode: \"\", LandNavn: \"\" }]\r\n },\r\n ]\r\n };\r\n\r\n return data;\r\n}\r\n\r\n\r\nexport interface LutData {\r\n Verdensdeler: VerdensdelViewModel[];\r\n}\r\n\r\nexport interface VerdensdelViewModel {\r\n VerdensdelKode: string;\r\n LandListe: LandViewModel[];\r\n}\r\n\r\nexport interface LandViewModel {\r\n LandKode: string;\r\n ValutaKode: string;\r\n Sprakvarianter: Sprakvarianter[];\r\n Laresteder: LarestedViewModel[];\r\n}\r\n\r\nexport interface LarestedViewModel {\r\n LarestedId: number;\r\n Sprakvarianter: Sprakvarianter[];\r\n LarestedWebAdresse: string;\r\n UtdanningsoppleggListe: UtdanningViewModel[];\r\n}\r\n\r\nexport interface Sprakvarianter {\r\n Navn: string;\r\n SprakKode: SprakKode;\r\n Kundeveiledning: string;\r\n}\r\n\r\nexport type SprakKode = \"\" | \"nb-NO\" | \"en-US\" | \"nn-NO\";\r\n\r\nexport interface UtdanningViewModel {\r\n UtdanningsoppleggId: number;\r\n Sprakvarianter: Sprakvarianter[];\r\n}\r\n","import { SET_LUTDATA, SetLutDataAction } from './Types';\r\nimport { LutData } from '../../Utilities/LutApi';\r\n\r\nexport function setLutData(lutData: LutData): SetLutDataAction {\r\n return {\r\n type: SET_LUTDATA,\r\n payload: lutData,\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 { AxiosResponse } from 'axios';\r\nimport * as LutApi from './Utilities/LutApi';\r\nimport { setLutData } from './Store/LutData/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 LutApi.getLutData()\r\n .then((response: AxiosResponse): void => {\r\n store.dispatch(setLutData(response.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":["jsxs","jsx","useState","useEffect","contentResolver","Ids.BoksEkstraboks","Ids.AppContainerId","Ids.BoksA","Ids.BoksB","Ids.BoksC","Ids.BoksD","ResultatAComponent","ResultatBComponent","EkstraboksComponent","initialState","ReduxThunk","createRoot","LutApi.getLutData","App"],"mappings":"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"}