{"version":3,"file":"byttefastlege.D1PrSmWz.js","sources":["../../../src/byttefastlege/hooks/useTypedDispatch.ts","../../../src/byttefastlege/hooks/useTypedSelector.ts","../../../src/types/ExtendEnums.ts","../../../src/utils/api-client.ts","../../../src/byttefastlege/utils/shared-constants.ts","../../../src/byttefastlege/stores/helper.tsx","../../../src/byttefastlege/stores/slice-select-fastlege/thunks.ts","../../../src/byttefastlege/stores/slice-select-fastlege/reducer.ts","../../../src/byttefastlege/components/din-fastlege-banner/barn-info/barn-info.tsx","../../../src/byttefastlege/components/din-fastlege-banner/index.tsx","../../../src/byttefastlege/components/info-meldinger/info-meldinger.tsx","../../../src/byttefastlege/components/innloggings-knapp/innloggings-knapp.tsx","../../../src/byttefastlege/utils/url-utils.ts","../../../src/byttefastlege/utils/filter-utils.ts","../../../src/byttefastlege/stores/slice-search-fastlege/helper.tsx","../../../src/byttefastlege/stores/slice-search-fastlege/thunks.ts","../../../src/byttefastlege/stores/slice-search-fastlege/reducer.ts","../../../src/byttefastlege/components/sokeresultat-header/sokeresultat-header.tsx","../../../src/byttefastlege/components/resultatside/helper.ts","../../../src/byttefastlege/components/resultatside/filter-component.tsx","../../../src/byttefastlege/components/resultatside/tabell/ekspandertInnhold/fastlege-spesialiteter.tsx","../../../src/byttefastlege/components/resultatside/tabell/ekspandertInnhold/helper.ts","../../../src/byttefastlege/components/action-containere/helper.ts","../../../src/byttefastlege/components/resultatside/tabell/ekspandertInnhold/vikar-element.tsx","../../../src/byttefastlege/components/resultatside/tabell/ekspandertInnhold/fastlege-info.tsx","../../../src/byttefastlege/components/resultatside/tabell/ekspandertInnhold/omLegesenteret/personList/personList.tsx","../../../src/byttefastlege/components/resultatside/tabell/ekspandertInnhold/omLegesenteret/om-legesenteret.tsx","../../../src/byttefastlege/components/resultatside/tabell/ekspandertInnhold/ekspandert-innhold.tsx","../../../src/byttefastlege/components/resultatside/tabell/tabellcell/antall-paa-venteliste-cell/antall-paa-venteliste-cell.tsx","../../../src/byttefastlege/components/resultatside/tabell/tabellcell/fastlegecell/fastlege-cell.tsx","../../../src/byttefastlege/components/resultatside/tabell/tabellcell/fastlegekontor-cell.tsx","../../../src/byttefastlege/components/resultatside/tabell/tabellcell/handlinger-cell/handling-knapp.tsx","../../../src/byttefastlege/components/resultatside/tabell/tabellcell/handlinger-cell/handlinger-cell.tsx","../../../src/byttefastlege/components/resultatside/tabell/tabellcell/ledige-plasser-cell/ledige-plasser-cell.tsx","../../../src/byttefastlege/utils/sort-utils.tsx","../../../src/byttefastlege/components/resultatside/tabell/tabell.tsx","../../../src/byttefastlege/components/action-containere/bytte/steg1-velg-personer/steg1-velg-personer.tsx","../../../src/byttefastlege/components/action-containere/bytte/steg2-bekreft/steg2-bekreft.tsx","../../../src/byttefastlege/components/action-containere/bytte/steg3-kvittering/steg3-kvittering.tsx","../../../src/byttefastlege/components/step-component/step-container-step.tsx","../../../src/byttefastlege/components/step-component/step-container.tsx","../../../src/byttefastlege/components/step-component/step-indicator-step.tsx","../../../src/byttefastlege/components/step-component/step-indicator.tsx","../../../src/byttefastlege/components/action-containere/bytte/bytte-component.tsx","../../../src/byttefastlege/components/action-containere/bytte/index.tsx","../../../src/byttefastlege/components/action-containere/initial-choice/initial-component.tsx","../../../src/byttefastlege/components/action-containere/initial-choice/index.tsx","../../../src/byttefastlege/stores/slice-init-data/reducer.ts","../../../src/byttefastlege/stores/slice-innbyggers-barn/thunks.ts","../../../src/byttefastlege/stores/slice-init-data/thunks.ts","../../../src/byttefastlege/components/action-containere/venteliste/meld-av-steg1/meld-av-steg1.tsx","../../../src/byttefastlege/components/action-containere/venteliste/meld-av-steg2/meld-av-steg2.tsx","../../../src/byttefastlege/components/action-containere/venteliste/meld-paa-steg1/meld-paa-steg1.tsx","../../../src/byttefastlege/components/action-containere/venteliste/meld-paa-steg2/meld-paa-steg2.tsx","../../../src/byttefastlege/components/action-containere/venteliste/meld-paa-steg3/meld-paa-steg3.tsx","../../../src/byttefastlege/components/action-containere/venteliste/venteliste-component .tsx","../../../src/byttefastlege/components/action-containere/venteliste/index.tsx","../../../src/byttefastlege/components/action-containere/index.tsx","../../../src/byttefastlege/components/resultatside/index.tsx","../../../src/utils/adobe-analytics.ts","../../../src/byttefastlege/components/startside/fylker/fylkerad/kommuner/finn-fastlege-knapp.tsx","../../../src/byttefastlege/utils/sort-rows-as-cols.tsx","../../../src/byttefastlege/components/startside/fylker/fylkerad/kommuner/kommune/kommune.tsx","../../../src/byttefastlege/components/startside/fylker/fylkerad/kommuner/kommuner.tsx","../../../src/byttefastlege/components/startside/fylker/fylkerad/fylkerad.tsx","../../../src/byttefastlege/components/startside/fylker/helper.ts","../../../src/byttefastlege/components/startside/fylker/fylker.tsx","../../../src/byttefastlege/components/startside/sokefelt/sokefelt.tsx","../../../src/byttefastlege/components/startside/index.tsx","../../../src/byttefastlege/components/bytte-fastlege/index.tsx","../../../src/byttefastlege/stores/slice-innbyggers-barn/reducer.ts","../../../src/byttefastlege/root.ts","../../../src/byttefastlege/index.tsx"],"sourcesContent":["import { useDispatch } from 'react-redux';\nimport { Action } from 'redux';\nimport { ThunkDispatch } from '@reduxjs/toolkit';\n\nimport { BytteFastLegeState } from '../root';\n\nexport const useTypedDispatch = (): ThunkDispatch =>\n useDispatch>();\n","import { TypedUseSelectorHook, useSelector } from 'react-redux';\n\nimport { BytteFastLegeState } from '../root';\n\nexport const useTypedSelector: TypedUseSelectorHook = useSelector;\n","export enum ApiStatus {\n Idle = 0,\n InProgress = 1,\n Error = 2,\n Success = 3,\n}\n\nexport enum SelectedType {\n Fastlege = 'Fastlege',\n Fastlegekontor = 'Fastlegekontor',\n LedigePlasser = 'LedigePlasser',\n AntallPaVenteliste = 'AntallPaVenteliste',\n Lokasjon = 'Lokasjon',\n}\n\nexport enum UrlSokeType {\n fastlege = 'fastlege',\n legekontor = 'legekontor',\n}\n\nexport enum ActionContainerType {\n InitChoice = 0,\n BytteFastlege = 1,\n MeldePaaVenteliste = 2,\n BytteVenteliste = 3,\n MeldeAvVenteliste = 4,\n}\n","import { post, get, remove } from '@helsenorge/framework-utils/hn-proxy-service';\n\nfunction handleError(err: unknown): unknown {\n if (err === 'TypeError: Failed to fetch') {\n throw new Error('Det har skjedd en teknisk feil. Prøv igjen senere.');\n } else {\n throw err;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function postPr(proxyName: string, serviceName: string, params: TRequest): Promise {\n try {\n const response = await post('fastlegeinternal', `${proxyName}/${serviceName}`, params);\n if (response === null) {\n throw new Error();\n }\n if (Object.keys(response).length === 0) {\n throw new Error();\n }\n return response;\n } catch (err) {\n handleError(err);\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function getPr(proxyName: string, serviceName: string, params?: any): Promise {\n try {\n return await get('fastlegeinternal', `${proxyName}/${serviceName}`, params);\n } catch (err) {\n handleError(err);\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function removePr(proxyName: string, endPoint: string, params?: TRequest): Promise {\n try {\n return await remove('fastlegeinternal', `${proxyName}/${endPoint}`, params);\n } catch (err) {\n handleError(err);\n }\n}\n","export const name = 'fastlegeinternal';\n// chnage to hn-service\nexport const api = 'api/v1';\n\nexport const dinFastlegeUrl = '/Fastlegen';\nexport const idPortenUrl = '/auth/signin';\nexport const phaUrl = '/personlig-helsearkiv';\n","import { BytteFastLegeState } from 'byttefastlege/root';\n\nimport { ApiStatus } from '../../types/ExtendEnums';\n\nexport const venteListeCondition = (getState: () => unknown): boolean => {\n const state = getState() as BytteFastLegeState;\n const apiStatus = state.selectFastlegeSlice.apiStatus;\n if (apiStatus === ApiStatus.Success || apiStatus === ApiStatus.InProgress) {\n return false;\n }\n return true;\n};\n","import { createAsyncThunk } from '@reduxjs/toolkit';\nimport { postPr as post, removePr as remove } from '../../../utils/api-client';\n\nimport {\n RemoveVentelisteRequest,\n RemoveVentelisteResponse,\n SetListeTilhorighetRequest,\n SetListeTilhorighetResponse,\n SetVentelisteRequest,\n SetVentelisteResponse,\n} from 'types/Fastlege.EntitiesEntities';\n\nimport { api, name } from '../../utils/shared-constants';\nimport { venteListeCondition } from '../helper';\n\nexport const selectFastlege = createAsyncThunk(\n `${name}/SetListeTilhorighet`,\n async ({ AvtaleId, PersonIdListe }: SetListeTilhorighetRequest) => {\n const serviceName = 'SetListeTilhorighet';\n const parameters = { AvtaleId, PersonIdListe };\n return (await post(api, serviceName, parameters)) as SetListeTilhorighetResponse;\n },\n {\n condition: (_arg, { getState }) => venteListeCondition(getState),\n }\n);\n\ninterface VentelisteArg extends SetVentelisteRequest {\n isChange: boolean;\n}\n\nexport const setVentelisteFastlege = createAsyncThunk(\n `${name}/selectFastlege`,\n async ({ AvtaleId, PersonIdListe, isChange }: VentelisteArg) => {\n const serviceName: string = isChange ? 'ChangeVenteliste' : 'SetVenteliste';\n const parameters = { AvtaleId, PersonIdListe };\n return (await post(api, serviceName, parameters)) as SetVentelisteResponse;\n },\n {\n condition: (_arg, { getState }) => venteListeCondition(getState),\n }\n);\n\nexport const removeVentelisteFastlege = createAsyncThunk(\n `${name}/RemoveVenteliste`,\n async ({ PersonIdListe }: RemoveVentelisteRequest) => {\n const serviceName = 'RemoveVenteliste';\n const parameters = { PersonIdListe };\n return (await remove(api, serviceName, parameters)) as RemoveVentelisteResponse;\n },\n {\n condition: (_arg, { getState }) => venteListeCondition(getState),\n }\n);\n","import { createSlice } from '@reduxjs/toolkit';\n\nimport { ApiStatus, ActionContainerType } from '../../../types/ExtendEnums';\nimport {\n SetListeTilhorighetResponse,\n SetVentelisteResponse,\n RemoveVentelisteResponse,\n FastlegeAvtale,\n} from 'types/Fastlege.EntitiesEntities';\n\nimport { selectFastlege, setVentelisteFastlege, removeVentelisteFastlege } from './thunks';\nimport { name } from '../../utils/shared-constants';\n\nexport type selectFastlegeState = {\n apiStatus: ApiStatus;\n apiStatusVenteListe: ApiStatus;\n listeTilhorlighet: SetListeTilhorighetResponse | undefined | null;\n showActionContainer: boolean;\n actionContainerContent: ActionContainerType | undefined;\n selectedFastlege: FastlegeAvtale | null;\n dispatchedFrom: ActionContainerType | undefined;\n setVentelisteResponse: SetVentelisteResponse | null;\n removeFromVentelisteResponse: RemoveVentelisteResponse | null;\n};\n\nexport const initialState: selectFastlegeState = {\n apiStatus: ApiStatus.Idle,\n apiStatusVenteListe: ApiStatus.Idle,\n listeTilhorlighet: undefined,\n showActionContainer: false,\n actionContainerContent: undefined,\n setVentelisteResponse: null,\n removeFromVentelisteResponse: null,\n selectedFastlege: null,\n dispatchedFrom: undefined,\n};\n\nexport const selectFastlegeSlice = createSlice({\n name,\n initialState,\n reducers: {\n resetSliceState: () => initialState,\n setShowActionContainer: (\n state,\n {\n payload,\n }: {\n payload: {\n show: boolean;\n type: ActionContainerType | undefined;\n selectedFastlege?: FastlegeAvtale;\n dispatchedFrom?: ActionContainerType;\n };\n }\n ) => {\n state.showActionContainer = payload.show;\n state.actionContainerContent = payload.type;\n if (payload.selectedFastlege) {\n state.selectedFastlege = payload.selectedFastlege;\n }\n if (payload.dispatchedFrom) {\n state.dispatchedFrom = payload.dispatchedFrom;\n }\n },\n resetVentelisteRespons: state => {\n state.setVentelisteResponse = null;\n state.removeFromVentelisteResponse = null;\n state.apiStatusVenteListe = ApiStatus.Idle;\n },\n },\n extraReducers: builder => {\n builder\n .addCase(selectFastlege.pending, state => {\n state.apiStatus = ApiStatus.InProgress;\n })\n .addCase(selectFastlege.fulfilled, (state, { payload }) => {\n state.apiStatus = ApiStatus.Success;\n state.listeTilhorlighet = payload;\n })\n .addCase(selectFastlege.rejected, state => {\n state.apiStatus = ApiStatus.Error;\n });\n builder\n .addCase(setVentelisteFastlege.pending, state => {\n state.apiStatusVenteListe = ApiStatus.InProgress;\n })\n .addCase(setVentelisteFastlege.fulfilled, (state, { payload }) => {\n state.apiStatusVenteListe = ApiStatus.Success;\n state.setVentelisteResponse = payload;\n })\n .addCase(setVentelisteFastlege.rejected, state => {\n state.apiStatusVenteListe = ApiStatus.Error;\n });\n builder\n .addCase(removeVentelisteFastlege.pending, state => {\n state.apiStatusVenteListe = ApiStatus.InProgress;\n })\n .addCase(removeVentelisteFastlege.fulfilled, (state, { payload }) => {\n state.apiStatusVenteListe = ApiStatus.Success;\n state.removeFromVentelisteResponse = payload;\n })\n .addCase(removeVentelisteFastlege.rejected, state => {\n state.apiStatusVenteListe = ApiStatus.Error;\n });\n },\n});\n\nexport const { setShowActionContainer, resetVentelisteRespons } = selectFastlegeSlice.actions;\nexport default selectFastlegeSlice.reducer;\n","import React from 'react';\n\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { InnbyggersBarn } from 'types/Fastlege.EntitiesEntities';\n\nimport { Hjelpetrigger } from '@helsenorge/core-framework/prosesshjelp/index';\nimport { format } from '@helsenorge/core-utils/string-utils';\nimport SafeHTML from '@helsenorge/framework-utils/components/safe-html';\n\nexport const BarnInfo = ({ resources }: { resources: HNByttFastlegeJS }): React.ReactElement => {\n const { innbyggersBarn } = useTypedSelector(state => state.innbyggersBarnSlice);\n\n const barnInfoElement: JSX.Element = (\n

\n \n\n \n \n \n

\n );\n\n return (\n
\n {barnInfoElement}\n {innbyggersBarn?.map((child: InnbyggersBarn, index: number) => {\n if (resources) {\n let ventelisteElement: JSX.Element | undefined;\n let currentFastlegeText: string;\n\n const gjenstBytte: number = child.GjenstBytte;\n const antallBytterText: string =\n gjenstBytte > 1 || gjenstBytte === 0\n ? resources.bfl_DinFastlegeBanner_FastlegeAntallBytter\n : resources.bfl_DinFastlegeBanner_FastlegeAntallBytte;\n\n const bytterIgjenText: string = format(resources.bfl_DinFastlegeBanner_Children_FastlegeBytteInfo, [\n gjenstBytte.toString(),\n antallBytterText,\n new Date().getFullYear().toString(),\n ]);\n\n if (child.Venteliste && child.Fornavn) {\n const ventelisteLegenavn: string =\n child.Venteliste.Legenavn !== null ? child.Venteliste.Legenavn : resources.bfl_DinFastlegeBanner_VikarTitle;\n\n const ventelisteText: string = format(resources.bfl_DinFastlegeBanner_Children_VentelisteInfo, [\n child.Fornavn,\n ventelisteLegenavn,\n child.Venteliste.KoPlassNummer.toString(),\n child.Venteliste.AntallPaVenteliste ? child.Venteliste.AntallPaVenteliste.toString() : '',\n ]);\n\n ventelisteElement = ;\n }\n\n const legenavn: string =\n child?.Tilhorighet?.Legenavn && child.Tilhorighet.Legenavn !== ''\n ? child.Tilhorighet.Legenavn\n : resources.bfl_DinFastlegeBanner_VikarTitle.toLowerCase();\n\n if (child?.Tilhorighet?.Legenavn) {\n currentFastlegeText = format(resources.bfl_DinFastlegeBanner_Children_CurrentFastlege, [legenavn]);\n } else {\n currentFastlegeText = resources.bfl_DinFastlegeBanner_LegeUtenListe;\n }\n\n const currentFastlegeElement =
{currentFastlegeText}
;\n\n return (\n
\n

\n \n {child.Fornavn !== null ? `${child.Fornavn} ` : null}\n {child.Mellomnavn !== null ? `${child.Mellomnavn} ` : null}\n {child.Etternavn !== null ? `${child.Etternavn} ` : null}\n \n {bytterIgjenText}\n

\n {ventelisteElement}\n {currentFastlegeElement}\n
\n );\n }\n return null;\n })}\n
\n );\n};\n","import React, { useEffect, useState } from 'react';\n\nimport { useTypedDispatch } from 'byttefastlege/hooks/useTypedDispatch';\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\nimport { setShowActionContainer } from 'byttefastlege/stores/slice-select-fastlege/reducer';\nimport { dinFastlegeUrl } from 'byttefastlege/utils/shared-constants';\nimport classNames from 'classnames';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { ActionContainerType, ApiStatus } from 'types/ExtendEnums';\nimport { ByttfastlegeJSProject } from 'types/project-name-constant';\n\nimport AnchorLink from '@helsenorge/designsystem-react/components/AnchorLink';\nimport Button from '@helsenorge/designsystem-react/components/Button';\nimport Expander from '@helsenorge/designsystem-react/components/Expander';\nimport NotificationPanel from '@helsenorge/designsystem-react/components/NotificationPanel';\nimport Spacer from '@helsenorge/designsystem-react/components/Spacer';\n\nimport { Hjelpetrigger } from '@helsenorge/core-framework/prosesshjelp/index';\n\nimport { format } from '@helsenorge/core-utils/string-utils';\nimport { trackSelfService } from '@helsenorge/framework-utils/adobe-analytics';\nimport SafeHTML from '@helsenorge/framework-utils/components/safe-html';\nimport { isAuthorized } from '@helsenorge/framework-utils/hn-authorize';\nimport { getResources as getSotResources } from 'resources';\nimport { BarnInfo } from './barn-info/barn-info';\n\nimport './styles.scss';\nimport useResources from '@helsenorge/framework-utils/resources/useResources';\n\nexport const DinFastlegeBanner: React.FC = (): JSX.Element | null => {\n const [showChildren, setShowChildren] = useState(false);\n\n const resources = useResources(ByttfastlegeJSProject, getSotResources) as HNByttFastlegeJS;\n const { venteliste, innbygger, tilhorighetMelding, tilhorighetFremtidigMelding, tilhorighetFastlegeAvtale } = useTypedSelector(\n state => state.initDataSlice\n );\n const { innbyggersBarn, apiStatus } = useTypedSelector(state => state.innbyggersBarnSlice);\n const innbyggersBarnApiStatus = useTypedSelector(state => state.innbyggersBarnSlice).apiStatus;\n const { showActionContainer } = useTypedSelector(state => state.selectFastlegeSlice);\n\n const dispatch = useTypedDispatch();\n\n const onInnbyggersBarnUpdated = (): void => {\n const childrenComponent: boolean =\n innbyggersBarnApiStatus === ApiStatus.Success && innbyggersBarn !== null && innbyggersBarn.length > 0;\n setShowChildren(childrenComponent);\n };\n\n useEffect(() => {\n onInnbyggersBarnUpdated();\n }, [innbyggersBarn]);\n\n if (apiStatus !== ApiStatus.Success || !isAuthorized() || innbygger?.ErReservert || innbygger?.ErUtmeldt || showActionContainer) {\n return null;\n }\n\n const childrenErrorComponent = innbyggersBarnApiStatus === ApiStatus.Error && (\n \n {resources.bfl_ErrorMessage_Body}\n \n );\n\n const showChildrenComponent = showChildren ? (\n <>\n \n \n \n \n \n ) : null;\n\n const meldAvVenteliste = (): void => {\n venteliste && dispatch(setShowActionContainer({ show: true, type: ActionContainerType.MeldeAvVenteliste }));\n trackSelfService('start', 'bytte fastlege', 'meld av venteliste', 'prosess');\n };\n\n const fremtidigBytteMelding: JSX.Element | null =\n tilhorighetFremtidigMelding?.Title && tilhorighetFremtidigMelding?.Beskjed ? (\n \n \n \n ) : null;\n\n const onVenteliste: boolean = venteliste !== null;\n\n const ventelisteElement = (): JSX.Element | null => {\n if (onVenteliste && venteliste && resources) {\n let ventelisteFastlegeNavn: string;\n if (venteliste && venteliste.Legenavn !== null) {\n ventelisteFastlegeNavn = venteliste.Legenavn;\n } else {\n ventelisteFastlegeNavn = resources.bfl_DinFastlegeBanner_VikarTitle;\n }\n\n const koPlassNummer: number = venteliste.KoPlassNummer;\n const antallPaVenteliste = venteliste.AntallPaVenteliste;\n\n const ventelisteText: string = format(resources.bfl_DinFastlegeBanner_VentelisteInfo, [\n ventelisteFastlegeNavn,\n koPlassNummer.toString(),\n antallPaVenteliste !== null ? antallPaVenteliste.toString() : '',\n ]);\n\n const meldAvVentelisteButton: JSX.Element = (\n \n );\n\n return (\n
\n
{ventelisteText}
\n {meldAvVentelisteButton}\n
\n );\n } else {\n return null;\n }\n };\n\n const fastlegebytterElement = (): JSX.Element | null => {\n if (innbygger) {\n const erSio: boolean = innbygger.ErSio;\n const gjenstBytte: number = innbygger.GjenstBytte;\n const antallBytterText: string =\n gjenstBytte > 1 || gjenstBytte === 0\n ? resources.bfl_DinFastlegeBanner_FastlegeAntallBytter\n : resources.bfl_DinFastlegeBanner_FastlegeAntallBytte;\n\n const fastlegebytterText: string =\n erSio || onVenteliste ? resources.bfl_DinFastlegeBanner_FastlegeBytteInfo : resources.bfl_DinFastlegeBanner_FastlegeBytteInfo_alt;\n\n const gjenstBytteText: string = gjenstBytte.toString();\n\n const fastlegebytterTextFormatted: string = format(fastlegebytterText, [\n gjenstBytteText,\n antallBytterText,\n new Date().getFullYear().toString(),\n ]);\n\n const fastlegebytterClasses: string = classNames({\n 'none-left': gjenstBytte === 0,\n });\n\n return (\n
\n \n {fastlegebytterTextFormatted}\n \n \n \n \n
\n );\n } else {\n return null;\n }\n };\n\n // Ingen fastlege registrert, viser melding\n const currentFastlegeElement = (): JSX.Element | null => {\n if (tilhorighetFastlegeAvtale === null && tilhorighetMelding !== null) {\n const melding = `${tilhorighetMelding.Title}. ${tilhorighetMelding.Beskjed}`;\n return (\n
\n \n \n \n {showChildrenComponent}\n
\n );\n } else if (tilhorighetFastlegeAvtale) {\n const fastlegeNavn = tilhorighetFastlegeAvtale?.Fastlege\n ? `${tilhorighetFastlegeAvtale.Fastlege.Fornavn} ${tilhorighetFastlegeAvtale.Fastlege.Etternavn}`\n : resources.bfl_DinFastlegeBanner_VikarTitle;\n\n return (\n
\n \n {`${resources.bfl_DinFastlegeBanner_CurrentFastlege} `}\n \n {fastlegeNavn}\n {'.'}\n \n \n {showChildrenComponent}\n
\n );\n } else {\n return null;\n }\n };\n\n return (\n
\n {fremtidigBytteMelding}\n
\n
\n {ventelisteElement()}\n {fastlegebytterElement()}\n {currentFastlegeElement()}\n {childrenErrorComponent}\n
\n
\n
\n );\n};\n","import React from 'react';\n\nimport { Melding } from 'types/Fastlege.EntitiesEntities';\n\nimport NotificationPanel from '@helsenorge/designsystem-react/components/NotificationPanel';\n\nimport SafeHTML from '@helsenorge/framework-utils/components/safe-html';\nimport { isAuthorized } from '@helsenorge/framework-utils/hn-authorize';\n\nexport const InfoMeldinger = ({ meldinger }: { meldinger: Melding[] | null | undefined }): JSX.Element | null =>\n isAuthorized() && meldinger ? (\n
\n {meldinger.map((message: Melding, index: number) => {\n const meldingsType = message.Type === 1 ? 'warn' : 'error';\n const type = message.Type === 0 ? 'info' : meldingsType;\n return (\n \n {message.Beskjed && }\n \n );\n })}\n
\n ) : null;\n","import React from 'react';\n\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\nimport { idPortenUrl } from 'byttefastlege/utils/shared-constants';\n\nimport Button from '@helsenorge/designsystem-react/components/Button';\nimport Icon from '@helsenorge/designsystem-react/components/Icon';\nimport Lock from '@helsenorge/designsystem-react/components/Icons/Lock';\nimport Spacer from '@helsenorge/designsystem-react/components/Spacer';\n\nimport { isAuthorized } from '@helsenorge/framework-utils/hn-authorize';\n\nexport const InnLoggingsKnapp = ({ btnText }: { btnText: string }): JSX.Element | null => {\n const { useMock } = useTypedSelector(state => state.initDataSlice);\n const getLoginUrl = (): string => {\n return `${idPortenUrl}?Source=${encodeURIComponent(window.location.href)}`;\n };\n const login = (\n e: React.MouseEvent | React.FormEvent<{}> | React.KeyboardEvent | null | undefined\n ): void => {\n e?.preventDefault();\n\n if (useMock) {\n const parameterStart: string = window.location.search !== '' ? '&' : '?';\n window.history.replaceState(window.history.state, '', `${window.location.search + parameterStart}loggedIn=true`);\n } else {\n window.history.replaceState(window.history.state, '', getLoginUrl());\n }\n window.location.reload();\n };\n\n if (isAuthorized()) {\n return null;\n }\n\n return (\n
\n \n \n \n
\n );\n};\n","import { ActiveFilter } from '@helsenorge/filter/components/filter/useFilters';\nimport { FylkeCheckedKommune, CheckedKommune, ParamObject, ExtendedFilter } from 'types/ExtendTypes';\n\nexport type Location = {\n fylkeId: string | null;\n fylkeIndex: number | null;\n fylker: FylkeCheckedKommune[] | null;\n};\n\n// Creates a new parameter string for the url based on paramObj, and either replaces or pushes it to the window.history state\nexport const createNewUrlString = (paramObj: ParamObject): void => {\n const paramObject = { ...paramObj };\n Object.keys(paramObject).forEach(key => paramObject[key] === undefined && delete paramObject[key]);\n let newUrlString = '?';\n let counter = 0;\n for (const param in paramObject) {\n if (param) {\n if (paramObject[param] !== null && paramObject[param] !== undefined) {\n newUrlString += counter === 0 ? `${param}=` : `&${param}=`;\n newUrlString += paramObject[param];\n }\n counter++;\n }\n }\n window.history.pushState({ isResultPage: true }, '', newUrlString);\n};\n\n// Reassigns paramObj based on current url\nexport const findUrlParametersValue = (): ParamObject => {\n const urlParameters: string[] = window.location.search.replace('?', '').split('&');\n let paramObject: ParamObject = {};\n let setNewUrl = false;\n\n urlParameters.forEach(urlParameter => {\n const urlParameterType: string = decodeURI(urlParameter).split('=')[0];\n const urlParameterValue: string = decodeURI(urlParameter).split('=')[1];\n const validUrlParamTypes = ['searchquery', 'searchquerytype', 'fylke', 'kommuner', 'bydeler'];\n\n if (validUrlParamTypes.includes(urlParameterType)) {\n paramObject[urlParameterType] = decodeURIComponent(urlParameterValue).split(',');\n } else if (urlParameterValue) {\n setNewUrl = true;\n }\n });\n\n if (paramObject.kommuner) {\n let fixedUrlKommuner: string[] = [];\n paramObject.kommuner.forEach(urlKommune => {\n if (!isNaN(parseInt(urlKommune, 10))) {\n fixedUrlKommuner = fixedUrlKommuner.concat([decodeURI(urlKommune)]);\n }\n });\n paramObject = { ...paramObject, kommuner: fixedUrlKommuner };\n }\n\n if (paramObject.bydeler) {\n let fixedUrlBydeler: string[] = [];\n paramObject.bydeler.forEach(urlBydel => {\n if (!isNaN(parseInt(urlBydel, 10))) {\n fixedUrlBydeler = fixedUrlBydeler.concat([decodeURI(urlBydel)]);\n }\n });\n paramObject = { ...paramObject, bydeler: fixedUrlBydeler };\n }\n\n setNewUrl && createNewUrlString(paramObject);\n return paramObject;\n};\n\n// Adds a parameter string to the parameterResetTypes list\nconst addToParameterResetTypes = (parameterString: string): void => {\n // parameterresetTypes må hentes fra state\n // denne skal virke slik at man kan reset alle filter\n let parameterResetTypes: string[] = [];\n if (parameterResetTypes?.indexOf(parameterString) <= -1) {\n parameterResetTypes = parameterResetTypes.concat(parameterString);\n }\n};\n\n// Updates the url with parameters for the filters that have been selected\nexport const onUpdateUrlFilters = (filters: ExtendedFilter[], newActiveFilters: ExtendedFilter[]): void => {\n let paramObj = findUrlParametersValue();\n\n if (filters) {\n filters.forEach(filter => {\n paramObj = { ...paramObj, [filter.urlParameter]: null };\n });\n }\n\n if (newActiveFilters.length > 0) {\n newActiveFilters.forEach(filter => {\n let selectedValues: string[] = [];\n filter.values.forEach(filterValue => {\n if (filterValue.checked || filterValue.selected) {\n selectedValues = selectedValues.concat(filterValue.value);\n }\n });\n if (selectedValues.length > 0) {\n paramObj = { ...paramObj, [filter.urlParameter]: selectedValues };\n }\n\n addToParameterResetTypes(filter.urlParameter);\n });\n }\n\n createNewUrlString(paramObj);\n};\n\nexport const onUpdateUrlFiltersNy = (activeFilters: ActiveFilter[]): void => {\n let paramObj = findUrlParametersValue();\n\n const filterMapping: { [key: string]: { param: string; value: string } } = {\n 'Kjonn: Menn': { param: 'kjonn', value: 'mann' },\n 'Kjonn: Kvinner': { param: 'kjonn', value: 'kvinne' },\n 'Andre: Lokaler tilpasset bevegelseshemmede': { param: 'Andre', value: 'universell' },\n 'Andre: Samisktalende leger': { param: 'Andre', value: 'samisk' },\n 'Andre: Leger for SiO-medlemmer': { param: 'Andre', value: 'sio' },\n 'Andre: Kontorer med primærhelseteam': { param: 'Andre', value: 'primaerhelseteam' },\n filterKunLedige: { param: 'filterKunLedige', value: 'true' },\n 'Alder: Under 30 år': { param: 'Alder', value: '0-29' },\n 'Alder: 30-39 år': { param: 'Alder', value: '30-39' },\n 'Alder: 40-49 år': { param: 'Alder', value: '40-49' },\n 'Alder: 50-59 år': { param: 'Alder', value: '50-59' },\n 'Alder: Over 60 år': { param: 'Alder', value: '60-150' },\n };\n\n activeFilters.forEach(filter => {\n const mapping = filterMapping[filter.name];\n if (mapping) {\n const { param, value } = mapping;\n if (paramObj[param]) {\n paramObj[param] = `${paramObj[param]},${value}`;\n } else {\n paramObj[param] = value;\n }\n addToParameterResetTypes(value);\n }\n });\n\n createNewUrlString(paramObj);\n};\n\n// Returns a url parameter string with only the locations.\nexport const getLocationUrl = (fylkeId: string | undefined, kommuner: CheckedKommune[] | undefined): string => {\n let newUrl = '';\n newUrl += `?fylke=${fylkeId}`;\n newUrl += '&kommuner=';\n\n let selectedBydeler: string[] = [];\n\n if (kommuner) {\n kommuner.forEach(kommune => {\n if (kommune.checked) {\n newUrl += `${kommune.Id},`;\n }\n\n if (kommune.Bydeler !== null) {\n kommune.Bydeler.forEach(bydel => {\n if (bydel.checked && bydel.Id) {\n selectedBydeler = selectedBydeler.concat(bydel.Id);\n }\n });\n }\n });\n }\n\n if (newUrl.charAt(newUrl.length - 1) === ',') {\n newUrl = newUrl.substring(0, newUrl.length - 1);\n }\n\n if (selectedBydeler.length > 0) {\n newUrl += '&bydeler=';\n selectedBydeler.forEach(bydel => {\n newUrl += `${bydel},`;\n });\n }\n\n if (newUrl.charAt(newUrl.length - 1) === ',') {\n newUrl = newUrl.substring(0, newUrl.length - 1);\n }\n\n return newUrl;\n};\n","import update from 'immutability-helper';\n\nimport { ExtendedFilter } from 'types/ExtendTypes';\nimport { FastlegeAvtale } from 'types/Fastlege.EntitiesEntities';\n\nimport { findUrlParametersValue } from './url-utils';\nimport { ActiveFilter } from '@helsenorge/filter/components/filter/useFilters';\n\nexport const filterFastleger = (fastlegeAvtaler: FastlegeAvtale[] | null, activeFilters: ActiveFilter[]): FastlegeAvtale[] | null => {\n if (fastlegeAvtaler === null) {\n return fastlegeAvtaler;\n }\n\n let fastlegeAvtalerFiltered: FastlegeAvtale[] = [...fastlegeAvtaler];\n\n if (activeFilters !== null && activeFilters.length > 0) {\n fastlegeAvtalerFiltered = fastlegeAvtalerFiltered.filter(fastlegeAvtale => {\n const alder: string | number | null = fastlegeAvtale.Fastlege !== null ? fastlegeAvtale.Fastlege.Alder : -1;\n const kjonn: string | null = fastlegeAvtale.Fastlege !== null ? fastlegeAvtale.Fastlege.Kjonn : '';\n const universeltUtformet: boolean = fastlegeAvtale.Legekontor !== null ? fastlegeAvtale.Legekontor.UniverseltUtformet : false;\n const samisk: boolean = fastlegeAvtale.Fastlege !== null ? fastlegeAvtale.Fastlege.Samisk : false;\n const sio: boolean = fastlegeAvtale.ErSio;\n const PrimarHelseTeamId: number | null = fastlegeAvtale.PrimarHelseTeamId;\n const valgbar: boolean = fastlegeAvtale.Valgbar;\n\n let someAlderIsChecked = false;\n let thisAlderIsValid = false;\n\n let someKjonnIsChecked = false;\n let thisKjonnIsValid = false;\n\n let universeltIsChecked = false;\n let thisUniverseltIsValid = false;\n\n let samiskIsChecked = false;\n let thisSamiskIsValid = false;\n\n let sioIsChecked = false;\n let thisSioIsValid = false;\n\n let primaerHelseTeamChecked = false;\n let thisPrimaerHelseTeamIsValid = false;\n\n let kunLedigeIsChecked = false;\n let thisKunLedigeIsValid = false;\n\n if (activeFilters) {\n // Filtrerer alder\n const numAlder = Number(alder);\n\n const filterUnder30 = activeFilters.find(filter => filter.name === 'Alder: Under 30 år');\n if (filterUnder30) {\n someAlderIsChecked = true;\n if (!isNaN(numAlder) && numAlder >= 0 && numAlder <= 29) {\n thisAlderIsValid = true;\n }\n }\n\n const filterAlder30til39 = activeFilters.find(filter => filter.name === 'Alder: 30-39 år');\n if (filterAlder30til39) {\n someAlderIsChecked = true;\n if (!isNaN(numAlder) && numAlder >= 30 && numAlder <= 39) {\n thisAlderIsValid = true;\n }\n }\n\n const filterAlder40til49 = activeFilters.find(filter => filter.name === 'Alder: 40-49 år');\n if (filterAlder40til49) {\n someAlderIsChecked = true;\n if (!isNaN(numAlder) && numAlder >= 40 && numAlder <= 49) {\n thisAlderIsValid = true;\n }\n }\n\n const filterAlder50til59 = activeFilters.find(filter => filter.name === 'Alder: 50-59 år');\n if (filterAlder50til59) {\n someAlderIsChecked = true;\n if (!isNaN(numAlder) && numAlder >= 50 && numAlder <= 59) {\n thisAlderIsValid = true;\n }\n }\n\n const filterOver60 = activeFilters.find(filter => filter.name === 'Alder: Over 60 år');\n if (filterOver60) {\n someAlderIsChecked = true;\n if (!isNaN(numAlder) && numAlder >= 60 && numAlder <= 150) {\n thisAlderIsValid = true;\n }\n }\n\n // Filtrerer menn\n const filterMenn = activeFilters.find(filter => filter.name === 'Kjonn: Menn');\n if (filterMenn) {\n someKjonnIsChecked = true;\n if (kjonn && kjonn.toLowerCase() === 'mann') {\n thisKjonnIsValid = true;\n }\n }\n\n // Filtrerer kvinner\n const filterKvinner = activeFilters.find(filter => filter.name === 'Kjonn: Kvinner');\n if (filterKvinner) {\n someKjonnIsChecked = true;\n if (kjonn && kjonn.toLowerCase() === 'kvinne') {\n thisKjonnIsValid = true;\n }\n }\n\n // Filtrerer universelt utformet\n const filterValueUniverselt = activeFilters.find(filter => filter.name === 'Andre: Lokaler tilpasset bevegelseshemmede');\n if (filterValueUniverselt) {\n universeltIsChecked = true;\n if (universeltIsChecked === universeltUtformet) {\n thisUniverseltIsValid = true;\n }\n }\n\n // Filtrerer samisk\n const filterValueSamisk = activeFilters.find(filter => filter.name === 'Andre: Samisktalende leger');\n if (filterValueSamisk) {\n samiskIsChecked = true;\n if (samiskIsChecked === samisk) {\n thisSamiskIsValid = true;\n }\n }\n\n // Filtrerer SiO\n const filterValueSio = activeFilters.find(filter => filter.name === 'Andre: Leger for SiO-medlemmer');\n if (filterValueSio) {\n sioIsChecked = true;\n if (sioIsChecked === sio) {\n thisSioIsValid = true;\n }\n }\n\n // Filtrerer primaerhelseteam\n const filterValuePrimaerhelseteam = activeFilters.find(filter => filter.name === 'Andre: Kontorer med primærhelseteam');\n if (filterValuePrimaerhelseteam && filterValuePrimaerhelseteam) {\n primaerHelseTeamChecked = true;\n if (PrimarHelseTeamId) {\n thisPrimaerHelseTeamIsValid = true;\n }\n }\n\n // Filtrerer kun ledige (valgbare)\n const filterValueKunLedige = activeFilters.find(filter => filter.name === 'filterKunLedige');\n if (filterValueKunLedige) {\n kunLedigeIsChecked = true;\n if (kunLedigeIsChecked === valgbar) {\n thisKunLedigeIsValid = true;\n }\n }\n\n // Returns true for each filter value if no value is checked,\n // and if one or more are checked, then return whether this fastlegeavtale is valid or not\n const alderRetVal: boolean = someAlderIsChecked ? thisAlderIsValid : true;\n const kjonnRetVal: boolean = someKjonnIsChecked ? thisKjonnIsValid : true;\n const universeltRetVal: boolean = universeltIsChecked ? thisUniverseltIsValid : true;\n const samiskRetVal: boolean = samiskIsChecked ? thisSamiskIsValid : true;\n const sioRetVal: boolean = sioIsChecked ? thisSioIsValid : true;\n const primaerHelseTeamVal: boolean = primaerHelseTeamChecked ? thisPrimaerHelseTeamIsValid : true;\n const kunLedigeRetVal: boolean = kunLedigeIsChecked ? thisKunLedigeIsValid : true;\n\n return alderRetVal && kjonnRetVal && universeltRetVal && samiskRetVal && sioRetVal && kunLedigeRetVal && primaerHelseTeamVal;\n }\n });\n }\n\n return fastlegeAvtalerFiltered;\n};\n\nexport const setActiveFiltersFromUrl = (filters: ExtendedFilter[]): { newActive: ExtendedFilter[]; filterStartExpanded: boolean } => {\n const paramObj = { ...findUrlParametersValue() };\n\n let newActive: ExtendedFilter[] = [...filters];\n let filterStartExpanded = false;\n if (filters) {\n filters.forEach((el, index) => {\n const paramValue = paramObj[el.urlParameter];\n if (paramValue) {\n // Ensure paramValue is an array\n const paramArray = Array.isArray(paramValue) ? paramValue : [paramValue];\n el.values.forEach((val, valIndex) => {\n paramArray.forEach((urlVal: string) => {\n if (val.value === urlVal) {\n if (!filterStartExpanded) {\n filterStartExpanded = true;\n }\n newActive = update(newActive, {\n [index]: {\n values: {\n [valIndex]: {\n checked: { $set: true },\n },\n },\n },\n });\n }\n });\n });\n }\n });\n }\n\n return { newActive, filterStartExpanded };\n};\n","import { UrlSokeType } from '../../../types/ExtendEnums';\nimport { CheckedKommune, ParamObject, RequestUrl, FastlegeSok, CheckedBydel } from 'types/ExtendTypes';\nimport { AvtaleSokRequest, Kommune } from 'types/Fastlege.EntitiesEntities';\n\nexport const avtaleSokRequest: AvtaleSokRequest = {\n Kommuner: null,\n Bydeler: null,\n LegekontorNavn: null,\n LegeNavn: null,\n};\n\nexport const getAvtaleRequestLokasjon = (sokeData: CheckedKommune[]): AvtaleSokRequest => {\n const data = { ...avtaleSokRequest };\n const kommunerIdList: string[] = [];\n const bydelerIdList: string[] = [];\n\n sokeData.forEach(l => {\n l.checked && l.Id && kommunerIdList.push(l.Id);\n l.Bydeler && l.Bydeler.filter(bydel => bydel.checked && bydel.Id && bydelerIdList.push(bydel.Id));\n });\n return {\n ...data,\n Kommuner: kommunerIdList,\n Bydeler: bydelerIdList,\n };\n};\n\nexport const getAvtaleRequestString = (sokeData: FastlegeSok): AvtaleSokRequest => {\n const data = { ...avtaleSokRequest };\n return sokeData.fastlegeNavnSok ? { ...data, LegeNavn: sokeData.searchString } : { ...data, LegekontorNavn: sokeData.searchString };\n};\n\nexport const createParamObj = (obj: RequestUrl): ParamObject => {\n const searchType = obj.LegeNavn ? UrlSokeType.fastlege : UrlSokeType.legekontor;\n return {\n searchquery: (obj.LegeNavn && [obj.LegeNavn]) || (obj.LegekontorNavn && [obj.LegekontorNavn]) || undefined,\n searchquerytype: obj.LegeNavn || obj.LegekontorNavn ? [searchType] : undefined,\n fylke: (obj.fylkeId && [obj.fylkeId]) || undefined,\n kommuner: (obj.Kommuner?.length && obj.Kommuner) || undefined,\n bydeler: (obj.Bydeler?.length && obj.Bydeler) || undefined,\n };\n};\n\nexport const getSearchArray = (sokeData: CheckedKommune[] | FastlegeSok): string[] | null => {\n if ('searchString' in sokeData) {\n return [sokeData.searchString];\n } else if (typeof sokeData === 'object') {\n const sokeArray: string[] = [];\n\n sokeData.forEach(s => {\n if (s.checked) {\n if (s.Bydeler?.length) {\n const checkedBydeler = s.Bydeler.map(b => (b.checked && b.Navn !== null ? b.Navn : '')).filter(Boolean);\n checkedBydeler.length ? sokeArray.push(...checkedBydeler) : s.Navn && sokeArray.push(s.Navn);\n } else {\n s.Navn && sokeArray.push(s.Navn);\n }\n }\n });\n\n return sokeArray;\n }\n return null;\n};\n\nexport const getSelectedOmraader = (kommuner: Kommune[], kommunerId: string[], bydelerId?: string[] | null): CheckedKommune[] => {\n const checkedKommuner: CheckedKommune[] = [];\n\n kommuner.forEach(k => {\n if (k.Id && kommunerId.includes(k.Id)) {\n let selectedKommune = { ...k, checked: true };\n\n if (selectedKommune?.Bydeler?.length && bydelerId?.length) {\n const selectedBydeler: CheckedBydel[] = [];\n selectedKommune.Bydeler.forEach(b => {\n if (b.Id && bydelerId.includes(b.Id)) {\n selectedBydeler.push({ ...b, checked: true });\n }\n });\n selectedKommune = { ...selectedKommune, Bydeler: selectedBydeler };\n }\n checkedKommuner.push(selectedKommune);\n }\n });\n return checkedKommuner;\n};\n","import { createAsyncThunk, Dispatch } from '@reduxjs/toolkit';\n\nimport { SelectedType } from '../../../types/ExtendEnums';\nimport { CheckedKommune, FastlegeDetailsObject, FastlegeSok } from '../../../types/ExtendTypes';\nimport {\n AvtaleSokRequest,\n AvtaleSokResponse,\n GetAvtaleDetaljerRequest,\n GetAvtaleDetaljerResponse,\n} from '../../../types/Fastlege.EntitiesEntities';\n\nimport { getAvtaleRequestLokasjon, getAvtaleRequestString } from './helper';\nimport { setSelectedSted, setShowStartpage, setSok } from './reducer';\nimport { postPr as post } from '../../../utils/api-client';\nimport { isInnlogget } from '../../../utils/utils';\nimport { api, name } from '../../utils/shared-constants';\n\nexport const fetchFastleger = createAsyncThunk(`${name}/AvtaleSok`, async (data: AvtaleSokRequest) => {\n const serviceName = isInnlogget() ? 'AvtaleSok' : 'AvtaleSokAnonym';\n return (await post(api, serviceName, data)) as AvtaleSokResponse;\n});\n\nexport const getFastleger =\n (sokeData: CheckedKommune[] | FastlegeSok) =>\n async (dispatch: Dispatch): Promise => {\n dispatch(setShowStartpage(false));\n let avtaleRequest;\n if ('searchString' in sokeData) {\n dispatch(setSelectedSted(null));\n avtaleRequest = getAvtaleRequestString(sokeData);\n dispatch(setSok({ type: avtaleRequest.LegeNavn ? SelectedType.Fastlege : SelectedType.Fastlegekontor, sokerPaa: sokeData }));\n } else {\n avtaleRequest = getAvtaleRequestLokasjon(sokeData);\n dispatch(setSok({ type: SelectedType.Lokasjon, sokerPaa: sokeData }));\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dispatch(fetchFastleger(avtaleRequest) as any);\n return avtaleRequest;\n };\n\nexport const fetchFastlegeDetails = async (data: GetAvtaleDetaljerRequest): Promise => {\n const serviceName = isInnlogget() ? 'GetAvtaleDetaljer' : 'GetAvtaleDetaljerAnonym';\n const res = (await post(api, serviceName, data)) as GetAvtaleDetaljerResponse;\n\n const details = res.AvtaleDetaljer;\n const avtaleId = data.AvtaleId;\n const feilkildeList = res.AvtaleDetaljer?.FeilKildeListe;\n const error = feilkildeList && Object.keys(feilkildeList).find(e => feilkildeList[e as keyof typeof feilkildeList]);\n\n return {\n Details: details,\n AvtaleId: avtaleId,\n Error: error\n ? {\n Title: 'Kunne ikke hente data',\n Body: '',\n }\n : null,\n };\n};\n","import { createSlice } from '@reduxjs/toolkit';\nimport { filterFastleger } from '../../utils/filter-utils';\n\nimport { ApiStatus, SelectedType } from '../../../types/ExtendEnums';\nimport { CheckedKommune, FastlegeSok, SelectedSted } from 'types/ExtendTypes';\nimport { FastlegeAvtale } from 'types/Fastlege.EntitiesEntities';\n\nimport { getSearchArray } from './helper';\nimport { fetchFastleger } from './thunks';\nimport { name } from '../../utils/shared-constants';\nimport { ActiveFilter } from '@helsenorge/filter/components/filter/useFilters';\n\nexport type SearchFastlegeState = {\n apiStatus: ApiStatus;\n showStartPage: boolean;\n fastlegeAvtaler: FastlegeAvtale[] | null;\n fastlegeAvtalerModified: FastlegeAvtale[] | null;\n sok: { type: SelectedType; sokerPaa: string[] | null } | null;\n selectedSted: SelectedSted | null;\n};\n\nexport const initialState: SearchFastlegeState = {\n apiStatus: ApiStatus.Idle,\n showStartPage: true,\n selectedSted: null,\n fastlegeAvtaler: null,\n fastlegeAvtalerModified: null,\n sok: null,\n};\n\nexport const searchFastlegeSlice = createSlice({\n name,\n initialState,\n reducers: {\n resetState: () => initialState,\n setSelectedSted: (state, { payload }: { payload: SelectedSted | null }) => {\n state.selectedSted = payload;\n },\n setSok: (state, { payload }: { payload: { type: SelectedType; sokerPaa: CheckedKommune[] | FastlegeSok } }) => {\n state.sok = { type: payload.type, sokerPaa: getSearchArray(payload.sokerPaa) };\n },\n setShowStartpage: (state, { payload }) => {\n state.showStartPage = payload;\n },\n filterFastlegeAvtaler: (state, { payload }: { payload: ActiveFilter[] }) => {\n state.fastlegeAvtalerModified = filterFastleger(state.fastlegeAvtaler, payload);\n },\n },\n extraReducers: builder => {\n builder\n .addCase(fetchFastleger.pending, state => {\n state.apiStatus = ApiStatus.InProgress;\n })\n .addCase(fetchFastleger.fulfilled, (state, action) => {\n state.apiStatus = ApiStatus.Success;\n state.fastlegeAvtaler = action.payload.Resultater?.Resultater || null;\n state.fastlegeAvtalerModified = action.payload.Resultater?.Resultater || null;\n state.showStartPage = false;\n })\n .addCase(fetchFastleger.rejected, state => {\n state.apiStatus = ApiStatus.Error;\n });\n },\n});\nexport const { resetState, setSelectedSted, setSok, setShowStartpage, filterFastlegeAvtaler } = searchFastlegeSlice.actions;\nexport default searchFastlegeSlice.reducer;\n","import React from 'react';\n\nimport { useTypedDispatch } from 'byttefastlege/hooks/useTypedDispatch';\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\nimport { setShowStartpage } from 'byttefastlege/stores/slice-search-fastlege/reducer';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { ApiStatus } from 'types/ExtendEnums';\n\nimport Icon from '@helsenorge/designsystem-react/components/Icon';\nimport ChevronRight from '@helsenorge/designsystem-react/components/Icons/ChevronRight';\nimport Spacer from '@helsenorge/designsystem-react/components/Spacer';\n\nimport './styles.scss';\nimport AnchorLink, { AnchorLinkOnClickEvent } from '@helsenorge/designsystem-react/components/AnchorLink';\n\nexport const SokeResultatHeader = ({ resources }: { resources: HNByttFastlegeJS; apiStatus: ApiStatus }): JSX.Element | null => {\n const { apiStatus, fastlegeAvtaler, sok } = useTypedSelector(state => state.searchFastlegeSlice);\n const dispatch = useTypedDispatch();\n\n const onEndreSokClick = (e?: AnchorLinkOnClickEvent): void => {\n if (e) {\n e.preventDefault();\n window.history.pushState({}, '', window.location.pathname);\n dispatch(setShowStartpage(true));\n }\n };\n\n const searchResults = fastlegeAvtaler !== null && fastlegeAvtaler.length > 0;\n\n if (apiStatus === ApiStatus.InProgress) {\n return null;\n }\n\n return (\n
\n \n \n {searchResults ? resources.bfl_ResultPage_SearchResults_Text : resources.bfl_ResultPage_SearchResults_Text_None}\n \n {' '}\n {sok?.sokerPaa?.join(', ')}\n {'. '}\n \n \n \n {resources.bfl_ResultPage_SearchResults_Change}\n \n {/* --- Vise tips om ingen søkeresultat --- */}\n {!searchResults && (\n
\n
\n {resources.bfl_Header_Tips_Title}\n
\n
\n \n \n \n {resources.bfl_Header_Tips_Tip1}\n
\n
\n \n \n \n {resources.bfl_Header_Tips_Tip2}\n
\n
\n )}\n
\n );\n};\n","import { HNByttFastlegeJS } from 'HNResources';\n\nimport { InnbyggersBarn } from 'types/Fastlege.EntitiesEntities';\n\nimport { FilterResources } from '@helsenorge/filter/components/filter';\n\nexport const getChildName = (child: InnbyggersBarn): string => {\n let childName = '';\n if (child.Fornavn !== null) {\n childName += `${child.Fornavn} `;\n }\n if (child.Mellomnavn !== null) {\n childName += `${child.Mellomnavn} `;\n }\n if (child.Etternavn !== null) {\n childName += `${child.Etternavn} `;\n }\n return childName;\n};\n\nexport const filterStringsObj = (resources: HNByttFastlegeJS): FilterResources => {\n return {\n showFilter: resources.showFilter,\n hideFilter: resources.hideFilter,\n showResults: resources.showResults,\n useFilter: resources.showResults,\n resetFilters: resources.resetFilters,\n filterMobileNavigateBack: resources.filterMobileNavigateBack,\n cancel: resources.cancelFilters,\n };\n};\n","import React, { useEffect } from 'react';\n\nimport { useTypedDispatch } from 'byttefastlege/hooks/useTypedDispatch';\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\nimport { filterFastlegeAvtaler } from 'byttefastlege/stores/slice-search-fastlege/reducer';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { SelectedType } from 'types/ExtendEnums';\nimport Filter from '@helsenorge/filter/components/filter';\nimport { useFilters } from '@helsenorge/filter/components/filter/useFilters';\n\nimport { filterStringsObj } from './helper';\nimport Checkbox from '@helsenorge/designsystem-react/components/Checkbox';\nimport Label from '@helsenorge/designsystem-react/components/Label';\nimport { onUpdateUrlFiltersNy } from '../../utils/url-utils';\n\ninterface FilterComponentProps {\n resources: HNByttFastlegeJS;\n sortValue: SelectedType;\n sortValueAsc: boolean;\n sortFastleger: (id: SelectedType, ascending: boolean) => void;\n mdToLg?: boolean;\n}\n\nexport type Filters = {\n [key: string]: boolean | string | undefined;\n};\n\nconst FilterComponent = (props: FilterComponentProps): React.ReactElement => {\n const { fastlegeAvtalerModified, fastlegeAvtaler } = useTypedSelector(state => state.searchFastlegeSlice);\n const { erInnlogget } = useTypedSelector(state => state.initDataSlice);\n const { resources } = props;\n\n const { filters, setFilter, activeFilters, setDelayedFilter, updateFilters } = useFilters();\n const filtersStrings = filterStringsObj(resources);\n\n const dispatch = useTypedDispatch();\n\n const alder: string[] = [\n resources?.bfl_ResultPage_Filter_Age_Under30,\n resources?.bfl_ResultPage_Filter_Age_30to39,\n resources?.bfl_ResultPage_Filter_Age_40to49,\n resources?.bfl_ResultPage_Filter_Age_50to59,\n resources?.bfl_ResultPage_Filter_Age_Over60,\n ];\n\n const kjonn: string[] = [resources?.bfl_ResultPage_Filter_Sex_Male, resources?.bfl_ResultPage_Filter_Sex_Female];\n\n const flereValg: string[] = [\n resources?.bfl_ResultPage_Filter_Other_Universell,\n resources?.bfl_ResultPage_Filter_Other_Samisk,\n resources?.bfl_ResultPage_Filter_Other_SIO,\n resources?.bfl_ResultPage_Filter_Other_Primaerhelseteam,\n ];\n\n useEffect(() => {\n if (activeFilters) {\n onUpdateUrlFiltersNy(activeFilters);\n dispatch(filterFastlegeAvtaler(activeFilters));\n }\n }, [filters]);\n\n return (\n
\n {activeFilters !== null ? (\n \n }\n checked={!!filters?.filterKunLedige}\n onChange={e => setFilter('filterKunLedige', e.target.checked ? e.target.value : '')}\n />\n ),\n },\n {\n placeholder: resources?.bfl_ResultPage_Filter_Age,\n label: resources?.bfl_ResultPage_Filter_Age,\n type: 'dropdown',\n onClose: () => updateFilters(),\n children: alder.map(x => (\n setDelayedFilter('Alder: ' + x, e.target.checked ? e.target.value : '')}\n />\n )),\n },\n {\n placeholder: resources?.bfl_ResultPage_Filter_Sex,\n label: resources?.bfl_ResultPage_Filter_Sex,\n type: 'dropdown',\n onClose: () => updateFilters(),\n children: kjonn.map(x => (\n setDelayedFilter('Kjonn: ' + x, e.target.checked ? e.target.value : '')}\n />\n )),\n },\n {\n placeholder: resources?.bfl_ResultPage_Filter_Other,\n label: resources?.bfl_ResultPage_Filter_Other,\n type: 'dropdown',\n onClose: () => updateFilters(),\n children: flereValg.map(x => (\n setDelayedFilter('Andre: ' + x, e.target.checked ? e.target.value : '')}\n />\n )),\n },\n ]}\n statusText={\n fastlegeAvtalerModified && fastlegeAvtaler !== null ? fastlegeAvtalerModified.length.toString() + ' fastleger' : undefined\n }\n />\n ) : null}\n
\n );\n};\nexport default FilterComponent;\n","import React from 'react';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { FastlegeDetailsObject } from 'types/ExtendTypes';\n\ninterface Props {\n resources: HNByttFastlegeJS;\n fastlegeDetails: FastlegeDetailsObject;\n}\n\nexport const FastlegeSpesialiteter = ({ fastlegeDetails, resources }: Props): JSX.Element | null => {\n if (\n fastlegeDetails.Details !== undefined &&\n fastlegeDetails.Details !== null &&\n fastlegeDetails.Details.LegensSpesialiteter !== undefined &&\n fastlegeDetails.Details.LegensSpesialiteter !== null &&\n fastlegeDetails.Details.LegensSpesialiteter.length > 0\n ) {\n const spesialiteter: string[] = fastlegeDetails.Details.LegensSpesialiteter;\n\n return (\n
\n {resources ? resources.bfl_ResultPage_Table_Fastlege_Spesialitet : null} \n {spesialiteter.map((spesialitet: string, index: number) => {\n const comma: string | null = index !== 0 ? ', ' : null;\n return (\n \n {comma}\n {spesialitet.toLowerCase()}\n \n );\n })}\n
\n );\n }\n return null;\n};\n","import { FastlegeAvtale, GetAvtaleDetaljerRequest } from 'types/Fastlege.EntitiesEntities';\n\nexport const avtaleDetaljerRequest = (rowData: FastlegeAvtale): GetAvtaleDetaljerRequest => {\n return {\n HprNummer: rowData.Fastlege ? rowData.Fastlege.HprNummer : 0,\n AvtaleId: typeof rowData.Id === 'number' ? rowData.Id : rowData.Id !== null ? parseInt(rowData.Id, 10) : 0,\n KontorId: rowData.Legekontor ? rowData.Legekontor.Id : 0,\n PrimarHelseTeamId: rowData.PrimarHelseTeamId === null ? 0 : rowData.PrimarHelseTeamId,\n Fellesliste: rowData.Fellesliste,\n Gruppepraksis: rowData.Legekontor ? rowData.Legekontor.Gruppepraksis : false,\n };\n};\n\nexport const firstToLowerCase = (string: string): string => string[0].toLowerCase() + string.slice(1);\nexport const firstToUpperCase = (string: string): string => string[0].toUpperCase() + string.slice(1).toLowerCase();\n","import { HNByttFastlegeJS } from 'HNResources';\n\nimport { sanitize } from '@helsenorge/framework-utils/trusted-types';\n\nimport { format, parseISO } from 'date-fns';\nimport { nb } from 'date-fns/locale';\n\n// Lager et element på bunnen av document body som brukes for printing\nexport const createPrintElement = (bottomPrintText: string): void => {\n const oldPrintElement: Element | null = document.querySelector('.byttedialog-print');\n const element: Element | null = document.querySelector('.print-content');\n\n if (oldPrintElement === null) {\n const newPrintElement: HTMLElement = document.createElement('div');\n const printStyle: HTMLElement = document.createElement('style');\n\n // Style to hide all elements in the body except the print element, when in print mode\n printStyle.innerHTML = sanitize(\n '.byttedialog-print { display: none; } @media print { body >' +\n ' *:not(.byttedialog-print) { display: none; } .byttedialog-print { display: block; }}'\n );\n\n printStyle.className = 'byttedialog-print-style';\n\n newPrintElement.innerHTML = sanitize(element ? element.innerHTML : '');\n newPrintElement.className = 'byttedialog-print';\n\n const bottomText = newPrintElement.querySelector('.print-bottom-text i') as HTMLElement;\n if (bottomText && bottomPrintText) {\n bottomText.innerHTML = sanitize(bottomPrintText);\n }\n\n document.body.appendChild(printStyle);\n document.body.appendChild(newPrintElement);\n } else {\n const bottomText = oldPrintElement.querySelector('.print-bottom-text i') as HTMLElement;\n if (bottomText && bottomPrintText) {\n bottomText.innerHTML = sanitize(bottomPrintText);\n }\n document.body.appendChild(oldPrintElement);\n }\n};\n\nexport const removePrintElement = (): void => {\n const printElement = document.querySelector('.byttedialog-print');\n const printElementStyle = document.querySelector('.byttedialog-print-style');\n if (printElement !== null && printElement.parentNode) {\n printElement.parentNode.removeChild(printElement);\n }\n if (printElementStyle !== null && printElementStyle.parentNode) {\n printElementStyle.parentNode.removeChild(printElementStyle);\n }\n};\n\ninterface StepLocalizationT {\n title: string;\n step: string;\n of: string;\n active: string;\n inactive: string;\n}\ninterface StepLocalizationProps {\n stepLocalization: StepLocalizationT;\n step1Localization: StepLocalizationT;\n step2Localization: StepLocalizationT;\n step3Localization: StepLocalizationT;\n}\nexport const stepLocation = (resources: HNByttFastlegeJS): StepLocalizationProps => {\n const stepLocalization = {\n title: '',\n step: 'Steg',\n of: 'av',\n active: 'aktiv',\n inactive: ' - ',\n };\n\n const step1Localization = {\n ...stepLocalization,\n title: resources.bfl_ResultPage_Byttedialog_Step1,\n };\n\n const step2Localization = {\n ...stepLocalization,\n title: resources.bfl_ResultPage_Byttedialog_Step2,\n };\n\n const step3Localization = {\n ...stepLocalization,\n title: resources.bfl_ResultPage_Byttedialog_Step3,\n };\n return { stepLocalization, step1Localization, step2Localization, step3Localization };\n};\n\nexport const print = (\n ansvarligText: string,\n e?: React.MouseEvent | React.FormEvent | React.KeyboardEvent | null\n): void => {\n e?.preventDefault();\n createPrintElement(ansvarligText);\n window.print();\n};\n\nexport const getFormattedDateString = (date: string): string => {\n return format(parseISO(date), 'dd.MM.yyyy', { locale: nb });\n};\n","import React from 'react';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { VikarFastlege, FastlegeAvtale } from 'types/Fastlege.EntitiesEntities';\n\nimport Title from '@helsenorge/designsystem-react/components/Title';\n\nimport { getFormattedDateString } from '../../../action-containere/helper';\n\ninterface VikarElementProps {\n resources: HNByttFastlegeJS;\n fastlegeAvtale: FastlegeAvtale | undefined;\n}\n\nexport const VikarerElement = (props: VikarElementProps): JSX.Element | null => {\n const { resources, fastlegeAvtale } = props;\n const vikarer = fastlegeAvtale?.Vikarer;\n\n if (vikarer === null || vikarer === undefined) {\n return null;\n }\n\n const getVikarElement = (vikar: VikarFastlege, index: number): JSX.Element => {\n const fornavn: string | null = vikar.Fornavn !== null && vikar.Fornavn !== '' ? vikar.Fornavn : null;\n const etternavn: string | null = vikar.Etternavn !== null && vikar.Etternavn !== '' ? vikar.Etternavn : null;\n const alder: string | null = vikar.Alder !== null && vikar.Alder !== '' ? vikar.Alder : null;\n const kjonn: string | null = vikar.Kjonn !== null && vikar.Kjonn !== '' ? vikar.Kjonn.toLowerCase() : null;\n const fradato: string | null =\n vikar.FraDato !== null && vikar.FraDato !== undefined && vikar.FraDato.toString() !== ''\n ? getFormattedDateString(vikar.FraDato.toString())\n : null;\n const tildato: string | null =\n vikar.TilDato !== null && vikar.TilDato !== undefined && vikar.TilDato.toString() !== ''\n ? getFormattedDateString(vikar.TilDato.toString())\n : null;\n const navn: string | null = resources.bfl_ResultPage_Table_Fastlege_Vikar_Navn;\n const periode: string | null = resources.bfl_ResultPage_Table_Fastlege_Vikar_Periode;\n const fra: string | null = resources.bfl_ResultPage_Table_Fastlege_Vikar_PeriodeFra;\n const til: string | null = resources.bfl_ResultPage_Table_Fastlege_Vikar_PeriodeTil;\n\n const navnElement =\n fornavn || etternavn ? (\n \n {' '}\n {navn} {fornavn} {etternavn}{' '}\n \n ) : null;\n\n const vikarOgKjonnElement =\n alder || kjonn ? (\n \n {'('}\n {kjonn || null}\n {kjonn && alder ? ', ' : null}\n {alder ? `${alder} ${resources.bfl_ResultPage_Table_Fastlege_Year || null}` : null}\n {')'}\n \n ) : null;\n\n const prosent =\n vikar.Prosentandel !== null && vikar.Prosentandel !== undefined && vikar.Prosentandel.toString() !== '' ? (\n \n {resources.bfl_ResultPage_Table_Fastlege_Vikar_Stilling}\n {vikar.Prosentandel} \n {resources.bfl_ResultPage_Table_Fastlege_Vikar_Prosent}\n \n ) : null;\n\n const periodeElement =\n fradato || tildato ? (\n \n {periode} {fradato && fra} {fradato} {tildato && til} {tildato}\n \n ) : null;\n\n return (\n

\n {navnElement}\n {vikarOgKjonnElement}\n {navnElement !== null ?
: null}\n {prosent}\n {prosent !== null ?
: null}\n {periodeElement}\n

\n );\n };\n\n const fastlegeId = fastlegeAvtale?.Fastlege?.Id;\n const fastlegeFornavn = fastlegeAvtale?.Fastlege?.Fornavn;\n const fastlegeEtternavn = fastlegeAvtale?.Fastlege?.Etternavn;\n const delelisteLegeId = fastlegeAvtale?.Delelistelege?.Id;\n const delelisteLegeFornavn = fastlegeAvtale?.Delelistelege?.Fornavn;\n const delelisteLegeEtternavn = fastlegeAvtale?.Delelistelege?.Etternavn;\n\n const fastlegeVikarer: VikarFastlege[] = vikarer.filter(vikar => vikar.VikarFor === fastlegeId);\n const delelisteLegeVikarer: VikarFastlege[] = vikarer.filter(vikar => vikar.VikarFor === delelisteLegeId);\n const legelosVikarer: VikarFastlege[] = vikarer.filter(vikar => vikar.VikarFor === null || vikar.VikarFor === '');\n\n if ((fastlegeVikarer.length > 0 || delelisteLegeVikarer.length > 0 || legelosVikarer.length > 0) && resources) {\n return (\n
\n \n {resources.bfl_ResultPage_Table_Fastlege_Vikar}\n \n {fastlegeVikarer.length > 0 ? (\n
\n

\n {fastlegeFornavn} {fastlegeEtternavn} {resources.bfl_ResultPage_Table_Fastlege_Vikar_HarVikar}\n

\n {fastlegeVikarer.map((vikar, index) => getVikarElement(vikar, index))}\n
\n ) : null}\n {delelisteLegeVikarer.length > 0 ? (\n
\n

\n {delelisteLegeFornavn} {delelisteLegeEtternavn} {resources.bfl_ResultPage_Table_Fastlege_Vikar_HarVikar}\n

\n\n {delelisteLegeVikarer.map((vikar, index) => getVikarElement(vikar, index))}\n
\n ) : null}\n\n {legelosVikarer.length > 0 ?
{legelosVikarer.map((vikar, index) => getVikarElement(vikar, index))}
: null}\n
\n );\n } else {\n return null;\n }\n};\n","import React from 'react';\n\nimport classNames from 'classnames';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { FastlegeDetailsObject } from 'types/ExtendTypes';\nimport { Fastlege, FastlegeAvtale, AvtaleDetaljer } from 'types/Fastlege.EntitiesEntities';\n\nimport Icon from '@helsenorge/designsystem-react/components/Icon';\nimport FemaleDoctor from '@helsenorge/designsystem-react/components/Icons/FemaleDoctor';\nimport MaleDoctor from '@helsenorge/designsystem-react/components/Icons/MaleDoctor';\nimport NotificationPanel from '@helsenorge/designsystem-react/components/NotificationPanel';\nimport Title from '@helsenorge/designsystem-react/components/Title';\n\nimport { Hjelpetrigger } from '@helsenorge/core-framework/prosesshjelp';\nimport SafeHTML from '@helsenorge/framework-utils/components/safe-html';\n\nimport { FastlegeSpesialiteter } from './fastlege-spesialiteter';\nimport { firstToLowerCase, firstToUpperCase } from './helper';\nimport { VikarerElement } from './vikar-element';\nimport { getFormattedDateString } from '../../../action-containere/helper';\n\ninterface Props {\n resources: HNByttFastlegeJS;\n fastlegeDetails: FastlegeDetailsObject | null;\n fastlegeAvtale?: FastlegeAvtale;\n}\n\nexport const FastlegeInfo = ({ resources, fastlegeDetails, fastlegeAvtale }: Props): JSX.Element | null => {\n if (!fastlegeAvtale || fastlegeAvtale === null) {\n return null;\n }\n const fastlege: Fastlege | null = fastlegeAvtale.Fastlege;\n const erSio: boolean | null = fastlegeAvtale.ErSio;\n const antallPlasser: number | null = fastlegeAvtale.AntallPlasser;\n const ledigePlaser: number | null = fastlegeAvtale.LedigePlasser;\n const ventelistePlasser = fastlegeAvtale.AntallPaVenteliste;\n\n const fastlegeFornavn = fastlege?.Fornavn || 'ukjent';\n const fastlegeEtternavn = fastlege?.Etternavn || 'ukjent';\n const fastlegeAutorisert = fastlege?.Autorisert;\n const fastlegeSamisk = fastlege?.Samisk;\n\n const avtaleDetaljer: AvtaleDetaljer | null = fastlegeDetails && fastlegeDetails.Details ? fastlegeDetails.Details : null;\n\n const avtaleDato: string | null =\n fastlegeAvtale && fastlegeAvtale.Avtaledato !== null && fastlegeAvtale.Avtaledato !== undefined\n ? getFormattedDateString(fastlegeAvtale.Avtaledato.toString())\n : null;\n\n const poststed: string | null = fastlegeAvtale?.Legekontor?.Poststed ? firstToUpperCase(fastlegeAvtale.Legekontor.Poststed) : null;\n\n const avtaleStartetText: string | null =\n poststed !== null && poststed !== ''\n ? resources.bfl_ResultPage_Table_Fastlege_Pasientliste_Startet\n : resources\n ? resources.bfl_ResultPage_Table_Fastlege_Pasientliste_Startet_UtenPoststed\n : null;\n\n const avtaleDatoElement: JSX.Element | null =\n avtaleDato !== undefined && avtaleDato !== null && avtaleDato !== '' ? (\n {`${avtaleStartetText} ${poststed}${`:`} ${avtaleDato}`}\n ) : null;\n\n const delelisteLege = fastlegeAvtale ? fastlegeAvtale.Delelistelege : null;\n let delelisteLegeFornavn: string | null = null;\n let delelisteLegeEtternavn: string | null = null;\n let delelisteLegeAlder: string | null = null;\n let delelisteLegeKjonn: string | null = null;\n\n // deleliste lege\n if (delelisteLege !== null && delelisteLege !== undefined) {\n delelisteLegeFornavn = delelisteLege.Fornavn;\n delelisteLegeEtternavn = delelisteLege.Etternavn;\n delelisteLegeAlder = delelisteLege.Alder;\n delelisteLegeKjonn = delelisteLege.Kjonn;\n }\n\n const fastlegeNavnElement = (\n \n {fastlege !== null ? `${fastlegeFornavn} ${fastlegeEtternavn}` : resources.bfl_ResultPage_Table_Vikar}\n \n );\n\n const samisktalendeEllerSioElement = fastlegeSamisk ? (\n \n {resources.bfl_ResultPage_Table_Fastlege_Samisk}\n {fastlegeSamisk && erSio && `, ${firstToLowerCase(resources.bfl_ResultPage_Table_Fastlege_Sio)}`}\n {erSio && ` ${resources.bfl_ResultPage_Table_Fastlege_Sio}`}\n \n ) : null;\n\n const sjekkForError = (avtaledetaljer: AvtaleDetaljer, type: string): boolean => {\n if (avtaledetaljer.FeilKildeListe) {\n return !!avtaledetaljer.FeilKildeListe[type as keyof typeof avtaledetaljer.FeilKildeListe];\n } else {\n return false;\n }\n };\n\n // felles liste\n const fellesliste =\n resources && fastlegeAvtale && fastlegeAvtale.Fellesliste ? (\n
\n

\n {resources.bfl_OmLegekontoret_Fellesliste_Text}\n \n \n \n

\n\n {avtaleDetaljer?.Fellesliste && !sjekkForError(avtaleDetaljer, 'Fellesliste') ? (\n
    \n {avtaleDetaljer.Fellesliste.map((person, index) => (\n
  • {`${person.Fornavn} ${person.Etternavn} (${person.Kjonn?.toLowerCase()}, ${person.Alder} ${\n resources && resources.bfl_Year\n })`}
  • \n ))}\n
\n ) : avtaleDetaljer && sjekkForError(avtaleDetaljer, 'Fellesliste') ? (\n \n \n \n ) : null}\n
\n ) : null;\n\n const fastlegeSpesialitetElement = fastlegeDetails ? (\n \n ) : null;\n\n const fastlegeAutorisertElement =\n fastlegeAutorisert !== '' ? (\n \n {resources.bfl_ResultPage_Table_Fastlege_Autorisert} {fastlegeAutorisert}\n \n ) : null;\n\n const pasientListeClasses: string = classNames({\n block: !(fastlegeAutorisertElement === null && fastlegeSpesialitetElement === null && samisktalendeEllerSioElement === null),\n });\n\n return (\n
\n {fastlege !== null && fastlege.Kjonn === 'Kvinne' ? (\n \n ) : (\n \n )}\n
\n {fastlegeNavnElement}\n {fastlegeDetails && fastlegeDetails.Error ? (\n \n {resources.bfl_ResultPage_PartialErrorMessage_Body}\n \n ) : null}\n

\n {fastlegeAutorisertElement} {fastlegeAutorisertElement !== null ?
: null}\n {fastlegeSpesialitetElement}\n {samisktalendeEllerSioElement} {samisktalendeEllerSioElement !== null ?
: null}\n {avtaleDatoElement} {avtaleDatoElement !== null ?
: null}\n

\n {/* Pasientliste */}\n
\n
\n \n {resources.bfl_ResultPage_Table_Fastlege_Pasientliste}\n \n \n \n \n
\n\n

\n {resources.bfl_ResultPage_Table_Fastlege_Pasientliste_TotaltAntall} {antallPlasser}\n
\n {resources.bfl_ResultPage_Table_Fastlege_Pasientliste_AntallLedige} {ledigePlaser}\n
\n {ventelistePlasser !== null && ventelistePlasser !== undefined && ventelistePlasser > 0 ? (\n \n {`${resources.bfl_ResultPage_Table_Fastlege_Pasientliste_AntallVenteliste} `}\n {ventelistePlasser}\n
\n
\n ) : null}\n

\n
\n {/* Fellesliste */}\n {fellesliste}\n {/* Delelisten */}\n {delelisteLege !== null && delelisteLege !== undefined ? (\n
\n \n {resources.bfl_ResultPage_Table_Fastlege_Delelisten}\n <span className=\"atom_helptrigger-container\">\n <Hjelpetrigger hjelpetekstId=\"hjelpetrigger_bflEkspandertDelelisten\" />\n </span>\n \n\n

\n {resources.bfl_ResultPage_Table_Fastlege_Delelisten_Text}\n
\n \n {delelisteLegeFornavn} {delelisteLegeEtternavn}\n \n
\n {delelisteLegeAlder !== '' ? (\n \n {delelisteLegeAlder} {resources.bfl_ResultPage_Table_Fastlege_Year}\n \n ) : null}\n {delelisteLegeAlder !== '' && delelisteLegeKjonn !== '' ? {', '} : null}\n {delelisteLegeKjonn && delelisteLegeKjonn !== '' ? (\n \n {delelisteLegeKjonn.toLowerCase()}\n
\n
\n ) : null}\n

\n
\n ) : null}\n {/* Vikar */}\n \n
\n
\n );\n};\n","import React from 'react';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { HelsePerson, PrimarHelsePerson, TextMessage } from 'types/Fastlege.EntitiesEntities';\n\nimport NotificationPanel from '@helsenorge/designsystem-react/components/NotificationPanel';\nimport Title from '@helsenorge/designsystem-react/components/Title';\n\nimport { Hjelpetrigger } from '@helsenorge/core-framework/prosesshjelp/index';\nimport SafeHTML from '@helsenorge/framework-utils/components/safe-html';\n\ninterface PersonListProps {\n resourceStrings: HNByttFastlegeJS;\n list: HelsePerson[] | null;\n title?: string;\n infoText?: string;\n listHeader?: string;\n triggerId?: string;\n error: TextMessage | null;\n}\n\nexport const PersonList = (props: PersonListProps): React.ReactElement => {\n const { title, resourceStrings, list, listHeader, error, triggerId, infoText } = props;\n\n const getPersonElement = (person: HelsePerson): JSX.Element | string => {\n if (person === null) {\n return resourceStrings.bfl_OmLegekontoret_ListeUtenFast;\n } else {\n return (\n \n {(person as PrimarHelsePerson).Rolle ? {`${(person as PrimarHelsePerson).Rolle} `} : null}\n {`${person.Fornavn ? person.Fornavn : 'ukjent'} ${\n person.Etternavn ? person.Etternavn : 'ukjent'\n } (${person.Kjonn?.toLowerCase()}, ${person.Alder} ${resourceStrings.bfl_Year})`}\n \n );\n }\n };\n const personList = (): JSX.Element => {\n return (\n
\n

{listHeader}

\n {list && list.length > 0 && !error ? (\n
    \n {list.map((person, index) => (\n
  • {getPersonElement(person)}
  • \n ))}\n
\n ) : error ? (\n \n \n \n ) : null}\n
\n );\n };\n\n return (\n
\n
\n \n {title}\n \n \n \n \n
\n

{infoText}

\n {personList()}\n
\n );\n};\n","import React from 'react';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { ByttfastlegeJSProject } from '../../../../../../types/project-name-constant';\nimport { FastlegeDetailsObject } from 'types/ExtendTypes';\nimport { AvtaleDetaljer, FastlegeAvtale, Legekontor, Utekontor } from 'types/Fastlege.EntitiesEntities';\n\nimport AnchorLink from '@helsenorge/designsystem-react/components/AnchorLink';\nimport ExpanderList from '@helsenorge/designsystem-react/components/ExpanderList';\nimport Icon from '@helsenorge/designsystem-react/components/Icon';\nimport Wheelchair from '@helsenorge/designsystem-react/components/Icons/Wheelchair';\nimport Title from '@helsenorge/designsystem-react/components/Title';\n\nimport { Hjelpetrigger } from '@helsenorge/core-framework/prosesshjelp/index';\nimport { format } from '@helsenorge/core-utils/string-utils';\n\nimport { PersonList } from './personList/personList';\nimport { PhoneLink } from '../../../../../../shared/phone-link';\nimport { getResources as getSotResources } from 'resources';\n\nimport './styles.scss';\nimport useResources from '@helsenorge/framework-utils/resources/useResources';\n\ninterface OmlegesenteretProps {\n legesenter: Legekontor | null;\n fastlegeAvtale?: FastlegeAvtale;\n fastlegeDetails?: FastlegeDetailsObject;\n}\n\nexport const OmLegesenteret = (props: OmlegesenteretProps): React.ReactElement | null => {\n const { legesenter, fastlegeAvtale, fastlegeDetails } = props;\n\n const resources = useResources(ByttfastlegeJSProject, getSotResources) as HNByttFastlegeJS;\n\n const getUtekontorString = (utekontor: Utekontor): string => {\n let adresse = utekontor.Adresse;\n if (utekontor.Adresse && (utekontor.Postnummer || utekontor.Poststed)) {\n adresse += `, `;\n }\n if (utekontor.Postnummer && utekontor.Poststed) {\n adresse += `${utekontor.Postnummer} ${utekontor.Poststed}`;\n } else if (utekontor.Postnummer) {\n adresse += `${utekontor.Postnummer}`;\n } else if (utekontor.Poststed) {\n adresse += `${utekontor.Poststed}`;\n }\n\n if (resources && adresse && utekontor.Navn) {\n return format(resources.bfl_ResultPage_Table_Fastlege_Legekontoret_Utekontor_Text, [adresse, utekontor.Navn]);\n } else {\n return '';\n }\n };\n\n if (legesenter && resources) {\n let legesenterNavn: string | undefined = '';\n let legesenterAdresse: string | undefined = '';\n const legesenterTelefon: string | null = legesenter.Telefon;\n const legesenterApningstider: string | null = legesenter.Apningstider;\n const legesenterUniverselt: boolean | undefined = legesenter.UniverseltUtformet;\n\n const legesenterUrl: string | null = legesenter.Url ? legesenter.Url.toString() : null;\n\n const avtaleDetaljer: AvtaleDetaljer | null = fastlegeDetails && fastlegeDetails.Details ? fastlegeDetails.Details : null;\n\n const utekontorer: Utekontor[] =\n fastlegeDetails && fastlegeDetails.Details && fastlegeDetails.Details.Utekontor ? fastlegeDetails.Details.Utekontor : [];\n\n if (legesenter.Navn !== null && legesenter.Navn !== '') {\n legesenterNavn = legesenter.Navn;\n }\n if (legesenter.Adresse !== null && legesenter.Adresse !== '') {\n legesenterAdresse = legesenter.Adresse;\n if (legesenter.Postnr !== null && legesenter.Postnr !== '') {\n legesenterAdresse += `, ${legesenter.Postnr}`;\n }\n if (legesenter.Poststed !== null && legesenter.Poststed !== '') {\n legesenterAdresse += ` ${legesenter.Poststed}`;\n }\n }\n\n return (\n
\n \n \n <>\n {/* Adresse (og navn) */}\n {legesenterNavn !== '' && (\n
\n \n {resources.bfl_ResultPage_Table_Fastlege_Legekontoret_Adresse}\n \n

\n {legesenterNavn}\n
\n {legesenterAdresse !== '' && legesenterAdresse}\n

\n
\n )}\n {/* Universelt utformet */}\n {legesenterUniverselt && (\n

\n \n {resources.bfl_ResultPage_Table_Fastlege_Legekontoret_Universell}\n

\n )}\n {/* Url */}\n {legesenterUrl !== null && legesenterUrl !== '' && (\n

\n \n {resources.bfl_ResultPage_Table_Fastlege_Legekontoret_Nettside}\n \n

\n )}\n {/* Telefonnummer */}\n {legesenterTelefon !== null && legesenterTelefon !== '' && (\n
\n \n {resources.bfl_ResultPage_Table_Fastlege_Legekontoret_Tlfnr}\n \n

\n \n

\n
\n )}\n {/* Gruppepraksis */}\n {avtaleDetaljer &&\n fastlegeAvtale &&\n fastlegeAvtale.Legekontor &&\n fastlegeAvtale.Legekontor.Gruppepraksis &&\n !fastlegeAvtale.PrimarHelseTeamId && (\n \n )}\n {/* Primærhelseteam */}\n {fastlegeAvtale && avtaleDetaljer && !!fastlegeAvtale.PrimarHelseTeamId && (\n \n )}\n {/* Utekontor */}\n {utekontorer.length > 0 && (\n
\n \n {resources ? resources.bfl_ResultPage_Table_Fastlege_Legekontoret_Utekontor : null}\n <span className=\"atom_helptrigger-container\">\n <Hjelpetrigger hjelpetekstId=\"hjelpetrigger_bflUtekontor\" />\n </span>\n \n {utekontorer.map((utekontor: Utekontor, index: number) => {\n return

{getUtekontorString(utekontor)}

;\n })}\n
\n )}\n {/* Åpningstider */}\n {legesenterApningstider !== null &&\n legesenterApningstider !== '' && [\n \n {resources.bfl_ResultPage_Table_Fastlege_Legekontoret_Åpningstid}\n ,\n

{legesenterApningstider}

,\n ]}\n \n
\n
\n
\n );\n }\n return null;\n};\n","import React, { useEffect, useRef, memo } from 'react';\n\nimport { fetchFastlegeDetails } from 'byttefastlege/stores/slice-search-fastlege/thunks';\nimport { HNByttFastlegeJS } from 'HNResources';\nimport { ByttfastlegeJSProject } from '../../../../../types/project-name-constant';\nimport { FastlegeDetailsObject } from 'types/ExtendTypes';\nimport { FastlegeAvtale, GetAvtaleDetaljerRequest } from 'types/Fastlege.EntitiesEntities';\n\nimport Loader from '@helsenorge/designsystem-react/components/Loader';\n\nimport { FastlegeInfo } from './fastlege-info';\nimport { avtaleDetaljerRequest } from './helper';\nimport { OmLegesenteret } from './omLegesenteret/om-legesenteret';\nimport './ekspandertInnhold.scss';\nimport useResources from '@helsenorge/framework-utils/resources/useResources';\nimport { getResources as getSotResources } from 'resources';\n\ninterface EkspandertInnholdProps {\n rowData?: FastlegeAvtale;\n expanded?: boolean;\n numCols?: number;\n}\n\nexport const EkspandertInnhold = memo((props: EkspandertInnholdProps): React.ReactElement => {\n const { rowData, expanded } = props;\n const [fastlegeDetails, setFastlegeDetails] = React.useState();\n const [loaded, isLoaded] = React.useState(false);\n\n const resources = useResources(ByttfastlegeJSProject, getSotResources) as HNByttFastlegeJS;\n const pRowData = useRef();\n\n const loadFastlegeDetails = async (): Promise => {\n if (rowData && rowData.Id) {\n const parameters: GetAvtaleDetaljerRequest = avtaleDetaljerRequest(rowData);\n await fetchFastlegeDetails(parameters).then(res => {\n setFastlegeDetails(res);\n isLoaded(true);\n });\n }\n };\n\n useEffect(() => {\n if (expanded && (!fastlegeDetails || pRowData.current !== rowData?.Fastlege?.HprNummer)) {\n loadFastlegeDetails();\n pRowData.current = rowData?.Fastlege?.HprNummer;\n }\n }, [expanded]);\n\n const content =\n fastlegeDetails && loaded ? (\n
\n \n \n
\n ) : (\n
\n \n
\n );\n\n const loading: boolean = !loaded || !fastlegeDetails;\n\n return (\n
\n {content}\n
\n );\n});\n\nEkspandertInnhold.displayName = 'EkspandertInnhold';\n","import React from 'react';\n\nimport classNames from 'classnames';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { FastlegeAvtale } from 'types/Fastlege.EntitiesEntities';\nimport { Cell } from '@helsenorge/data-table/components/table';\n\nimport './styles.scss';\nimport { useBreakpoint, Breakpoint } from '@helsenorge/designsystem-react/hooks/useBreakpoint';\n\ninterface TabellradProps {\n resources: HNByttFastlegeJS;\n rowData?: FastlegeAvtale;\n}\n\nconst AntallPaaVentelisteCell = ({ resources, rowData }: TabellradProps): React.ReactElement => {\n const isVenteliste = (): boolean => !!rowData?.VentelisteTilgjengelig;\n const breakpoint = useBreakpoint();\n const mobile = breakpoint < Breakpoint.sm;\n\n const getAntallPaVenteliste = (): number | null => (rowData?.VentelisteTilgjengelig ? rowData?.AntallPaVenteliste : 0);\n\n const getVenteListeElement = (mobile: boolean): JSX.Element | null => {\n let retVal: JSX.Element | null = null;\n\n if (mobile && !isVenteliste()) {\n return null;\n }\n\n const className: string = classNames(\n { 'venteliste-plasser-desktop': !mobile },\n { 'venteliste-plasser-mobile': mobile },\n {\n 'ingen-ventelisteplasser': isVenteliste() && getAntallPaVenteliste() === 0,\n }\n );\n\n const value: string | null = isVenteliste() ? `${getAntallPaVenteliste()}` : null;\n const noVenteliste = !isVenteliste() ? resources.bfl_ResultPage_TableHeader_Venteliste_IkkeTilgjengelig : null;\n const columnTitle = mobile ? `${resources.bfl_ResultPage_TableHeader_Venteliste}:` : noVenteliste;\n\n retVal = (\n
\n {mobile ? (\n \n {columnTitle} {value}\n \n ) : (\n \n {columnTitle}\n {value}\n \n )}\n
\n );\n\n return retVal;\n };\n\n const venteListeDesktopElement = getVenteListeElement(mobile);\n const venteListeMobilElement = getVenteListeElement(mobile);\n\n return (\n \n {!mobile && venteListeDesktopElement}\n {mobile && venteListeMobilElement}\n \n );\n};\n\nexport default AntallPaaVentelisteCell;\n","import React from 'react';\n\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\nimport classNames from 'classnames';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { FastlegeAvtale, Fastlege, VikarFastlege } from 'types/Fastlege.EntitiesEntities';\n\nimport Title from '@helsenorge/designsystem-react/components/Title';\n\nimport { format } from '@helsenorge/core-utils/string-utils';\nimport { Cell } from '@helsenorge/data-table/components/table/cell';\nimport { isAuthorized } from '@helsenorge/framework-utils/hn-authorize';\n\nimport { getFormattedDateString } from '../../../../action-containere/helper';\n\nimport './styles.scss';\n\ninterface TabellradProps {\n resources: HNByttFastlegeJS;\n rowData?: FastlegeAvtale;\n}\n\nexport const FastlegeCell = (props: TabellradProps): React.ReactElement => {\n const { resources, rowData } = props;\n const { venteliste, tilhorighetFastlegeAvtale } = useTypedSelector(state => state.initDataSlice);\n\n const isOnVenteliste = (fastlegeAvtale: FastlegeAvtale): boolean | null => {\n return (\n isAuthorized() && venteliste && fastlegeAvtale && venteliste.AvtaleId !== null && fastlegeAvtale.Id === venteliste.AvtaleId.toString()\n );\n };\n\n const getVikarerText = (vikarer: Array): string | null => {\n if (vikarer.length === 0) {\n return null;\n }\n\n if (vikarer.length === 1) {\n const vikar: VikarFastlege = vikarer[0];\n const tilDato = vikar?.TilDato ? getFormattedDateString(vikar.TilDato) : '';\n\n if (tilDato && vikar.Prosentandel) {\n return format(resources.bfl_ResultPage_Table_Fastlege_HarVikarIProsentTil, [vikar.Prosentandel.toString(), tilDato]);\n }\n\n if (tilDato) {\n return format(resources.bfl_ResultPage_Table_Fastlege_HarVikarTil, [tilDato]);\n }\n\n if (vikar.Prosentandel) {\n return format(resources.bfl_ResultPage_Table_Fastlege_HarVikarIProsent, [vikar.Prosentandel.toString()]);\n }\n\n return resources.bfl_ResultPage_Table_Fastlege_HarVikar;\n }\n\n if (vikarer.length === 2) {\n const vikar1: VikarFastlege = vikarer[0];\n const vikar2: VikarFastlege = vikarer[1];\n\n const tilDato1 = vikar1.TilDato ? getFormattedDateString(vikar1.TilDato) : '';\n const tilDato2 = vikar2.TilDato ? getFormattedDateString(vikar2.TilDato) : '';\n\n if (!tilDato1 || !vikar1.Prosentandel || !tilDato2 || !vikar2.Prosentandel) {\n return resources.bfl_ResultPage_Table_Fastlege_HarVikarer;\n }\n\n if (tilDato1 && tilDato2) {\n if (tilDato1 === tilDato2) {\n return format(resources.bfl_ResultPage_Table_Fastlege_HarVikarerIProsentSammeTilDato, [\n vikar1.Prosentandel.toString(),\n vikar2.Prosentandel.toString(),\n tilDato1,\n ]);\n }\n\n return format(resources.bfl_ResultPage_Table_Fastlege_HarVikarerIProsentUlikTilDato, [\n vikar1.Prosentandel.toString(),\n tilDato1,\n vikar2.Prosentandel.toString(),\n tilDato2,\n ]);\n }\n }\n return resources.bfl_ResultPage_Table_Fastlege_HarVikarer;\n };\n\n const getContent = (fastlegeAvtale: FastlegeAvtale): JSX.Element => {\n const fastlege: Fastlege | null = fastlegeAvtale.Fastlege;\n const delelistelege = fastlegeAvtale.Delelistelege;\n const vikarer: VikarFastlege[] | null = rowData ? fastlegeAvtale.Vikarer : null;\n\n let isYourFastlege = false;\n let fastlegeFullname: string | undefined = '';\n let fastlegeCell: JSX.Element | null = null;\n let delelistelegeElement: JSX.Element | null = null;\n\n let fastlegeVikarer: VikarFastlege[] = [];\n let delelistelegeVikarer: VikarFastlege[] = [];\n let listeUtenFastlegeVikarer: VikarFastlege[] = [];\n\n if (vikarer !== null && vikarer && vikarer.length > 0) {\n const fastlegeId: string | null = fastlege?.Id ?? null;\n const delelistelegeId: string | null = delelistelege?.Id ?? null;\n\n vikarer.forEach(vikar => {\n const vikarForId: string | null = vikar.VikarFor;\n if (fastlegeId === vikarForId) {\n fastlegeVikarer = fastlegeVikarer.concat(vikar);\n }\n if (delelistelegeId === vikarForId) {\n delelistelegeVikarer = delelistelegeVikarer.concat(vikar);\n }\n if (vikarForId === null || vikarForId === '') {\n listeUtenFastlegeVikarer = listeUtenFastlegeVikarer.concat(vikar);\n }\n });\n }\n\n if (fastlegeAvtale) {\n isYourFastlege = isAuthorized() && tilhorighetFastlegeAvtale?.Id === fastlegeAvtale.Id;\n }\n\n if (delelistelege !== null && delelistelege !== undefined) {\n const delelistelegeFornavn: string | null = delelistelege.Fornavn ?? null;\n const delelistelegeEtternavn: string | null = delelistelege.Etternavn ?? null;\n const delelistelegeAlder: string | null = delelistelege.Alder ?? null;\n const delelistelegeKjonn: string | null = delelistelege.Kjonn ?? null;\n\n delelistelegeElement = (\n
\n
{resources.bfl_ResultPage_Table_DelerListen}
\n \n {delelistelegeEtternavn && <span>{`${delelistelegeEtternavn}, `}</span>}\n {delelistelegeFornavn && <span>{delelistelegeFornavn}</span>}\n \n {delelistelegeAlder !== null ? (\n \n {delelistelegeAlder} {resources.bfl_ResultPage_Table_Fastlege_Year}\n \n ) : null}\n {delelistelegeAlder !== null && delelistelegeKjonn !== null ? {', '} : null}\n {delelistelegeKjonn !== null ? {delelistelegeKjonn.toLowerCase()} : null}\n {delelistelegeVikarer.length > 0 ?
{getVikarerText(delelistelegeVikarer)}
: null}\n
\n );\n }\n\n if (fastlege && fastlege !== null && fastlege.Etternavn !== null && fastlege.Fornavn !== null) {\n fastlegeFullname = `${fastlege?.Etternavn}, ${fastlege?.Fornavn}`;\n fastlegeCell = (\n
\n {isYourFastlege &&
{resources.bfl_ResultPage_Table_DinFastlege}
}\n \n {fastlegeFullname}\n \n \n {fastlege?.Alder} {resources.bfl_ResultPage_Table_Fastlege_Year}\n {', '}\n {fastlege?.Kjonn?.toLowerCase() ?? null}\n \n {fastlegeVikarer.length > 0 &&
{getVikarerText(fastlegeVikarer)}
}\n\n {delelistelegeElement}\n
\n );\n } else {\n // Liste uten fast lege\n const wrapperClasses: string = classNames({\n 'legewrapper-dinfastlege': isYourFastlege || isOnVenteliste(fastlegeAvtale),\n });\n fastlegeFullname = resources.bfl_ResultPage_Table_Vikar;\n fastlegeCell = (\n
\n {isYourFastlege &&
{resources.bfl_ResultPage_Table_DinFastlege}
}\n \n {fastlegeFullname}\n \n {listeUtenFastlegeVikarer.length > 0 &&
{getVikarerText(listeUtenFastlegeVikarer)}
}\n
\n );\n }\n return fastlegeCell;\n };\n\n return (\n \n
{rowData && getContent(rowData)}
\n
\n );\n};\n","import React from 'react';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { FastlegeAvtale } from 'types/Fastlege.EntitiesEntities';\n\nimport { Cell } from '@helsenorge/data-table/components/table';\n\ninterface TabellradProps {\n resources?: HNByttFastlegeJS;\n rowData?: FastlegeAvtale;\n}\n\nexport const LegekontorCell = ({ rowData }: TabellradProps): React.ReactElement => {\n const legeKontor = rowData?.Legekontor;\n let legeKontorName: string | null = '';\n let legeKontorAdresse: string | null = '';\n\n if (legeKontor !== null && legeKontor !== undefined) {\n legeKontorName = legeKontor.Navn;\n legeKontorAdresse = legeKontor.Adresse;\n }\n\n return (\n \n {legeKontorName !== '' ?
{legeKontorName}
: null}\n {legeKontorAdresse !== '' ? (\n \n {legeKontorAdresse}\n {', '}\n \n ) : null}\n {legeKontor !== undefined && legeKontor !== null ? (\n \n {legeKontor.Postnr} {legeKontor.Poststed}\n \n ) : null}\n
\n );\n};\n","import React from 'react';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { FastlegeAvtale, Innbygger } from 'types/Fastlege.EntitiesEntities';\n\nimport Button from '@helsenorge/designsystem-react/components/Button';\n\nimport { isAuthorized } from '@helsenorge/framework-utils/hn-authorize';\n\ntype HandlingKnappProps = {\n resources: HNByttFastlegeJS;\n rowData: FastlegeAvtale;\n handleSelectFastlege: (\n e: React.MouseEvent | React.FormEvent<{}> | React.KeyboardEvent | null | undefined\n ) => void;\n meldPaaVenteliste: (\n e: React.MouseEvent | React.FormEvent<{}> | React.KeyboardEvent | null | undefined\n ) => void;\n meldAvVenteliste: (\n e: React.MouseEvent | React.FormEvent<{}> | React.KeyboardEvent | null | undefined\n ) => void;\n innbygger: Innbygger | null | undefined;\n isOnVenteliste: () => boolean;\n};\n\nexport const HandlingKnapp = (props: HandlingKnappProps): React.ReactElement | null => {\n const { resources, rowData, handleSelectFastlege, meldPaaVenteliste, meldAvVenteliste, innbygger, isOnVenteliste } = props;\n\n const getActionButton = (): JSX.Element | null => {\n let retVal: JSX.Element | null = null;\n const valgbar: boolean = rowData.Valgbar || false;\n const isOnVenteListe: boolean = isOnVenteliste();\n const isVenteListe: boolean | undefined = rowData?.VentelisteTilgjengelig;\n const notAvailable: boolean = !valgbar && !isVenteListe;\n const onlySio: boolean | null | undefined = rowData && rowData.ErSio && innbygger && !innbygger.ErSio;\n const changeButtonDisabled: boolean = !valgbar ? true : false;\n\n if (!isAuthorized() || innbygger?.ErReservert || innbygger?.ErUtmeldt) {\n return retVal;\n } else if (onlySio) {\n retVal = (\n
\n {resources.bfl_ResultPage_Table_OnlySiO}\n
\n );\n } else if (notAvailable) {\n retVal = (\n
\n {resources.bfl_ResultPage_Table_NotAvailable}\n
\n );\n } else if (isOnVenteListe) {\n retVal = (\n \n );\n } else if (valgbar) {\n retVal = (\n \n );\n } else if (!valgbar && isVenteListe) {\n retVal = (\n \n );\n }\n\n return retVal;\n };\n\n return getActionButton();\n};\n","import React from 'react';\n\nimport { useTypedDispatch } from 'byttefastlege/hooks/useTypedDispatch';\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\nimport { setShowActionContainer } from 'byttefastlege/stores/slice-select-fastlege/reducer';\nimport { dinFastlegeUrl } from 'byttefastlege/utils/shared-constants';\nimport classNames from 'classnames';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { ActionContainerType } from 'types/ExtendEnums';\nimport { FastlegeAvtale, Fastlege, VikarFastlege } from 'types/Fastlege.EntitiesEntities';\n\nimport AnchorLink from '@helsenorge/designsystem-react/components/AnchorLink';\nimport Icon from '@helsenorge/designsystem-react/components/Icon';\nimport Journal from '@helsenorge/designsystem-react/components/Icons/Journal';\nimport MaleDoctor from '@helsenorge/designsystem-react/components/Icons/MaleDoctor';\n\nimport { Cell } from '@helsenorge/data-table/components/table';\nimport { trackSelfService } from '@helsenorge/framework-utils/adobe-analytics';\nimport { isAuthorized } from '@helsenorge/framework-utils/hn-authorize';\n\nimport './styles.scss';\n\nimport { HandlingKnapp } from './handling-knapp';\n\ninterface HandlingerCellProps {\n resources: HNByttFastlegeJS;\n rowData?: FastlegeAvtale;\n}\n\nexport const HandlingerCell = (props: HandlingerCellProps): React.ReactElement => {\n const { resources, rowData } = props;\n\n const { innbygger, venteliste, tilhorighetFastlegeAvtale } = useTypedSelector(state => state.initDataSlice);\n\n const dispatch = useTypedDispatch();\n\n const handleSelectFastlege = (\n e: React.MouseEvent | React.FormEvent<{}> | React.KeyboardEvent | null | undefined\n ): void => {\n e?.preventDefault();\n e?.stopPropagation();\n if (isAuthorized()) {\n //bytt til velg fastlege side\n venteliste\n ? dispatch(\n setShowActionContainer({\n show: true,\n type: ActionContainerType.InitChoice,\n selectedFastlege: rowData,\n dispatchedFrom: ActionContainerType.BytteFastlege,\n })\n )\n : dispatch(setShowActionContainer({ show: true, type: ActionContainerType.BytteFastlege, selectedFastlege: rowData }));\n trackSelfService('start', 'bytte fastlege', ' bytte', 'prosess');\n }\n };\n\n const isOnVenteliste = (): boolean =>\n (isAuthorized() && venteliste?.AvtaleId !== null && rowData?.Id === venteliste?.AvtaleId.toString()) || false;\n\n const meldPaaVenteliste = async (\n event: React.MouseEvent | React.FormEvent<{}> | React.KeyboardEvent | null | undefined\n ): Promise => {\n event?.stopPropagation();\n if (isAuthorized()) {\n venteliste\n ? dispatch(\n setShowActionContainer({\n show: true,\n type: ActionContainerType.InitChoice,\n selectedFastlege: rowData,\n dispatchedFrom: ActionContainerType.MeldePaaVenteliste,\n })\n )\n : dispatch(setShowActionContainer({ show: true, type: ActionContainerType.MeldePaaVenteliste, selectedFastlege: rowData }));\n trackSelfService('start', 'bytte fastlege', 'sette på venteliste', 'prosess');\n }\n };\n\n const meldAvVenteliste = (\n event: React.MouseEvent | React.FormEvent<{}> | React.KeyboardEvent | null | undefined\n ): void => {\n event?.stopPropagation();\n if (isAuthorized()) {\n dispatch(setShowActionContainer({ show: true, type: ActionContainerType.MeldeAvVenteliste, selectedFastlege: rowData }));\n trackSelfService('start', 'bytte fastlege', 'meld av venteliste', 'prosess');\n }\n };\n\n const fastlege: Fastlege | null = rowData?.Fastlege ?? null;\n const delelistelege = rowData ? rowData.Delelistelege : undefined;\n const vikarer: VikarFastlege[] | null = rowData ? rowData.Vikarer : null;\n\n let dinFastlegeFlapp: JSX.Element | null = null;\n let ventelisteFlapp: JSX.Element | null = null;\n let isYourFastlege = false;\n\n let fastlegeVikarer: VikarFastlege[] = [];\n let delelistelegeVikarer: VikarFastlege[] = [];\n let listeUtenFastlegeVikarer: VikarFastlege[] = [];\n if (vikarer !== null && vikarer && vikarer.length > 0) {\n const fastlegeId: string | null = fastlege && fastlege !== null ? fastlege.Id : null;\n const delelistelegeId: string | null = delelistelege && delelistelege !== null ? delelistelege.Id : null;\n\n vikarer.forEach(vikar => {\n const vikarForId: string | null = vikar.VikarFor;\n if (fastlegeId === vikarForId) {\n fastlegeVikarer = fastlegeVikarer.concat(vikar);\n }\n if (delelistelegeId === vikarForId) {\n delelistelegeVikarer = delelistelegeVikarer.concat(vikar);\n }\n if (vikarForId === null || vikarForId === '') {\n listeUtenFastlegeVikarer = listeUtenFastlegeVikarer.concat(vikar);\n }\n });\n }\n\n if (rowData) {\n isYourFastlege = isAuthorized() && tilhorighetFastlegeAvtale !== null ? tilhorighetFastlegeAvtale.Id === rowData.Id : false;\n }\n\n if (tilhorighetFastlegeAvtale !== null && rowData && rowData.Fastlege !== null) {\n dinFastlegeFlapp = isYourFastlege ? : null;\n }\n\n if (isOnVenteliste()) {\n ventelisteFlapp = ;\n }\n\n const handlingClasses: string = classNames('handling', {\n onlyMobile: !isAuthorized() || (innbygger && (innbygger.ErReservert || innbygger.ErUtmeldt)) ? true : false,\n });\n\n const stopPropagation = (event: React.KeyboardEvent & { cancelBubble: boolean }): void => {\n event.stopPropagation();\n event.cancelBubble = true;\n };\n\n return (\n \n {!isYourFastlege && rowData ? (\n
\n \n
\n ) : (\n
\n
\n \n {resources.bfl_ResultPage_Table_DinFastlegeLink}\n \n
\n {dinFastlegeFlapp}\n
\n )}\n {ventelisteFlapp}\n
\n );\n};\n","import React from 'react';\n\nimport classNames from 'classnames';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { FastlegeAvtale } from 'types/Fastlege.EntitiesEntities';\n\nimport { Cell } from '@helsenorge/data-table/components/table';\n\nimport './styles.scss';\n\ninterface TabellradProps {\n resources: HNByttFastlegeJS;\n rowData?: FastlegeAvtale;\n}\n\nexport const LedigePlasserCell = ({ resources, rowData }: TabellradProps): React.ReactElement | null => {\n const ledigePlasserDesktopClasses: string = classNames('ledige-plasser-desktop', {\n 'ingen-ledige': rowData && rowData.LedigePlasser === 0 ? true : false,\n });\n\n return rowData ? (\n \n
\n {rowData.LedigePlasser} \n \n {`av`} {rowData.AntallPlasser}\n \n
\n
\n \n \n {resources.bfl_ResultPage_TableHeader_Ledige}\n {`:`}{' '}\n \n {rowData.LedigePlasser}\n {` av `}\n {rowData.AntallPlasser}\n \n
\n
\n ) : null;\n};\n","import { FastlegeAvtale, Fastlege } from 'types/Fastlege.EntitiesEntities';\n\nexport const getCustomSetSortValue = (fastlegeAvtaler: unknown, value: string, columnKey: string): string | null => {\n if (fastlegeAvtaler) {\n // Fastlegenavn\n const fastlegeAvtalerObj = fastlegeAvtaler as FastlegeAvtale;\n\n if (columnKey === 'Fastlege') {\n const fastlegeObj = value as unknown as Fastlege;\n\n return fastlegeObj?.Etternavn || null;\n } else if (columnKey === 'Fastlegekontor' && fastlegeAvtalerObj?.Legekontor?.Navn) {\n // Legesenter\n return fastlegeAvtalerObj.Legekontor.Navn;\n } else if (columnKey === 'AntallPaVenteliste' && !!fastlegeAvtalerObj.VentelisteTilgjengelig) {\n // Venteliste plasser\n return `${fastlegeAvtalerObj.AntallPaVenteliste}`;\n }\n }\n return `${value}`;\n};\n","import React from 'react';\n\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { FastlegeAvtale } from 'types/Fastlege.EntitiesEntities';\n\nimport PageLoader from '@helsenorge/core-framework/page-loader/page-loader';\nimport { Table, Column, ExpandableRow } from '@helsenorge/data-table/components/table';\n\nimport { EkspandertInnhold } from './ekspandertInnhold/ekspandert-innhold';\nimport AntallPaaVentelisteCell from './tabellcell/antall-paa-venteliste-cell/antall-paa-venteliste-cell';\nimport { FastlegeCell } from './tabellcell/fastlegecell/fastlege-cell';\nimport { LegekontorCell } from './tabellcell/fastlegekontor-cell';\nimport { HandlingerCell } from './tabellcell/handlinger-cell/handlinger-cell';\nimport { LedigePlasserCell } from './tabellcell/ledige-plasser-cell/ledige-plasser-cell';\nimport { getCustomSetSortValue } from '../../../utils/sort-utils';\nimport './styles.scss';\n\ninterface TabellProps {\n resources: HNByttFastlegeJS;\n sortAsc: boolean;\n sortColumn: string | undefined;\n sortFastleger?: (id: string, ascending?: boolean) => void;\n borders?: boolean;\n}\n\nexport const Tabell = (props: TabellProps): JSX.Element => {\n const { resources, sortAsc, sortColumn, sortFastleger } = props;\n\n const { fastlegeAvtalerModified } = useTypedSelector(state => state.searchFastlegeSlice);\n const { innbygger, erInnlogget } = useTypedSelector(state => state.initDataSlice);\n\n const resultsPerClick = 15;\n\n const rowdata: FastlegeAvtale[] | null = fastlegeAvtalerModified !== null ? fastlegeAvtalerModified : null;\n\n return (\n \n
\n \n getCustomSetSortValue(object, value, columnKey) || resources.bfl_ResultPage_Table_Vikar\n }\n useNumericSort\n tableClassNames=\"resultat__table\"\n rowClassNames=\"resultat__table__row\"\n noAnchorLinkWrapper\n >\n \n \n \n }\n />\n }\n />\n }\n />\n }\n />\n\n {erInnlogget && !innbygger?.ErReservert && !innbygger?.ErUtmeldt && (\n }\n />\n )}\n \n
\n
\n );\n};\n","import React, { useEffect, useRef } from 'react';\n\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { ApiStatus } from 'types/ExtendEnums';\nimport { FastlegeAvtale, InnbyggersBarn } from 'types/Fastlege.EntitiesEntities';\n\nimport Button from '@helsenorge/designsystem-react/components/Button';\nimport Checkbox from '@helsenorge/designsystem-react/components/Checkbox';\nimport Label, { Sublabel } from '@helsenorge/designsystem-react/components/Label';\nimport NotificationPanel from '@helsenorge/designsystem-react/components/NotificationPanel';\nimport Title from '@helsenorge/designsystem-react/components/Title';\n\nimport { format } from '@helsenorge/core-utils/string-utils';\nimport SafeHTML from '@helsenorge/framework-utils/components/safe-html';\n\nimport { getChildName } from '../../../resultatside/helper';\n\ninterface Steg1VelgPersonerProps {\n resources: HNByttFastlegeJS;\n fastlege: FastlegeAvtale;\n toggleSelectedChild?: (index: number) => void;\n selectedChildren: Array;\n goToNextStep: (e: React.MouseEvent | React.FormEvent<{}> | null | undefined) => void;\n closeActionContainer: () => void;\n}\n\nexport const Steg1VelgPersoner = (props: Steg1VelgPersonerProps): React.ReactElement | null => {\n const { resources, fastlege, toggleSelectedChild, selectedChildren, goToNextStep, closeActionContainer } = props;\n const headerRef = useRef(null);\n\n const { innbyggersBarn } = useTypedSelector(state => state.innbyggersBarnSlice);\n const innbyggersBarnApiStatus = useTypedSelector(state => state.innbyggersBarnSlice).apiStatus;\n const { innbygger, tilhorighetFastlegeAvtale } = useTypedSelector(state => state.initDataSlice);\n\n useEffect(() => {\n if (headerRef && headerRef.current) {\n setTimeout(() => {\n if (headerRef && headerRef.current) {\n headerRef.current.focus();\n }\n }, 50);\n }\n }, []);\n\n const toggleSelectChild = (index: number): void => {\n if (toggleSelectedChild) {\n toggleSelectedChild(index);\n }\n };\n\n const bytterIgjen = (antall: number): string =>\n antall === 1 ? resources.bfl_ResultPage_Byttedialog_BytteIgjen : resources.bfl_ResultPage_Byttedialog_BytterIgjen;\n\n if (!innbygger) {\n return null;\n }\n const bytteIgjenText: string = bytterIgjen(innbygger.GjenstBytte);\n\n let currentFastlegeNavn: string | null = null;\n if (tilhorighetFastlegeAvtale !== null && tilhorighetFastlegeAvtale.Fastlege !== null) {\n currentFastlegeNavn = `${tilhorighetFastlegeAvtale.Fastlege.Fornavn} ${tilhorighetFastlegeAvtale.Fastlege.Etternavn}`;\n }\n\n let thisFastlegeNavn: string | null = null;\n let header: string | null = null;\n if (fastlege.Fastlege) {\n thisFastlegeNavn = `${fastlege.Fastlege.Fornavn} ${fastlege.Fastlege.Etternavn}`;\n header = `${resources.bfl_ResultPage_Byttedialog_Title1_1} ${resources.bfl_ResultPage_Byttedialog_Title1_2} ${thisFastlegeNavn}`;\n } else {\n header = `${resources.bfl_ResultPage_Byttedialog_Title1_1} ${resources.bfl_ResultPage_Byttedialog_Vikar.toLowerCase()}`;\n }\n\n const getBarnWarning = innbyggersBarnApiStatus === ApiStatus.Error && (\n \n \n \n );\n\n const innbyggersBarnListe =\n innbyggersBarn !== null && innbyggersBarn.length > 0\n ? innbyggersBarn.map((child: InnbyggersBarn, index: number) => {\n const handleSelectChild: () => void = () => {\n if (child.GjenstBytte > 0) {\n toggleSelectChild(index);\n }\n };\n\n const checked: boolean = selectedChildren.indexOf(index) > -1 || false;\n const bytteIgjenTextBarn: string = bytterIgjen(child.GjenstBytte);\n\n const showFastlegeNavn = Boolean(child?.Tilhorighet?.Legenavn);\n\n let disabled = false;\n if (child.GjenstBytte === 0 || child.ErReservert || child.ErUtmeldt) {\n disabled = true;\n }\n\n let disabledText: string | null = null;\n if (fastlege && thisFastlegeNavn) {\n if (child?.Tilhorighet?.AvtaleId === fastlege.Id) {\n disabled = true;\n disabledText = format(resources.bfl_ResultPage_Byttedialog_AlleredeFastlege, [thisFastlegeNavn]);\n } else if (child?.Tilhorighet?.FremtidigAvtaleId === fastlege.Id) {\n disabled = true;\n disabledText = format(resources.bfl_ResultPage_Byttedialog_FremtidigFastlege, [thisFastlegeNavn]);\n }\n }\n const childLabelStrings = [\n getChildName ? getChildName(child) : '',\n showFastlegeNavn ? `${resources.bfl_ResultPage_Byttedialog_FastlegeNow}: ${child?.Tilhorighet?.Legenavn}` : '',\n ` ${child.GjenstBytte} ${bytteIgjenTextBarn} ${new Date().getFullYear()}`,\n disabledText || '',\n ].filter(text => text);\n\n return (\n
  • \n }\n onColor=\"onwhite\"\n name=\"checkbox\"\n checked={checked}\n inputId={`child-${index}`}\n disabled={disabled}\n onChange={handleSelectChild}\n />\n
  • \n );\n })\n : null;\n const naavarendeFastlegeText =\n currentFastlegeNavn !== null ? `${resources.bfl_ResultPage_VentelisteDialog_FastlegeNow} ${currentFastlegeNavn}` : '';\n const gjenstBytteText = `${innbygger.GjenstBytte} ${bytteIgjenText} ${new Date().getFullYear()}`;\n\n return (\n
    \n
    \n
    {resources.bfl_ResultPage_Byttedialog_VelgPersoner}
    \n \n {header}\n \n
    \n\n
      \n
    1. \n \n }\n />\n }\n onColor=\"onwhite\"\n name=\"checkbox\"\n onChange={(): void => {}}\n inputId={'user'}\n checked\n disabled\n />\n
    2. \n\n {innbyggersBarnListe}\n {getBarnWarning}\n
    \n
    \n \n \n
    \n
    \n );\n};\n","import React from 'react';\n\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\nimport classNames from 'classnames';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { ApiStatus } from 'types/ExtendEnums';\nimport { FastlegeAvtale } from 'types/Fastlege.EntitiesEntities';\n\nimport Button from '@helsenorge/designsystem-react/components/Button';\nimport Icon from '@helsenorge/designsystem-react/components/Icon';\nimport ArrowLeft from '@helsenorge/designsystem-react/components/Icons/ArrowLeft';\nimport Loader from '@helsenorge/designsystem-react/components/Loader';\nimport NotificationPanel from '@helsenorge/designsystem-react/components/NotificationPanel';\nimport Spacer from '@helsenorge/designsystem-react/components/Spacer';\nimport Title from '@helsenorge/designsystem-react/components/Title';\n\nimport SafeHTML from '@helsenorge/framework-utils/components/safe-html';\n\nimport { getChildName } from '../../../resultatside/helper';\n\ninterface Steg2BekreftProps {\n resources: HNByttFastlegeJS;\n goToStep: (index: number) => void;\n fastlegeAvtale: FastlegeAvtale;\n selectedChildren?: Array;\n hasChildren?: boolean;\n bekreftByttet: (\n e: React.MouseEvent | React.FormEvent<{}> | React.KeyboardEvent | null | undefined\n ) => void;\n closeActionContainer: () => void;\n}\n\nexport const Steg2Bekreft = (props: Steg2BekreftProps): React.ReactElement => {\n const { resources, goToStep, fastlegeAvtale, selectedChildren, hasChildren, bekreftByttet, closeActionContainer } = props;\n\n const { innbygger } = useTypedSelector(state => state.initDataSlice);\n const { innbyggersBarn } = useTypedSelector(state => state.innbyggersBarnSlice);\n const { apiStatus } = useTypedSelector(state => state.selectFastlegeSlice);\n const currentHash = window.location.search;\n\n const goBackToStep1 = (\n e: React.MouseEvent | React.FormEvent<{}> | React.KeyboardEvent | null | undefined\n ): void => {\n e?.preventDefault();\n goToStep(1);\n window.history.pushState({ isBytteDialogSteg1: true }, '', currentHash);\n };\n\n const getSelectedChildrenNames = (): string[] => {\n let selectedChildrenNames: string[] = [];\n if (selectedChildren && getChildName) {\n selectedChildren.forEach(selectedChild => {\n if (innbyggersBarn) {\n selectedChildrenNames = selectedChildrenNames.concat(getChildName(innbyggersBarn[selectedChild]));\n }\n });\n }\n return selectedChildrenNames;\n };\n\n const classes: string = classNames('action-container-steg-content', 'bekreft', { 'no-top-padding': hasChildren });\n\n let thisFastlegeNavn: string | null = null;\n\n if (fastlegeAvtale && fastlegeAvtale.Fastlege !== null) {\n thisFastlegeNavn = `${resources.bfl_ResultPage_Byttedialog_SetFastlegeError_Title1_2} ${fastlegeAvtale.Fastlege.Fornavn} ${fastlegeAvtale.Fastlege.Etternavn}`;\n } else {\n thisFastlegeNavn = resources.bfl_ResultPage_Byttedialog_Vikar.toLowerCase();\n }\n const backToStep1Element =\n hasChildren && apiStatus !== ApiStatus.InProgress ? (\n \n ) : null;\n\n // Laster setfastlege\n const spinner: JSX.Element | null = apiStatus === ApiStatus.InProgress ? : null;\n const setFastlegeErrorTitle = `${resources.bfl_ResultPage_Byttedialog_SetFastlegeError_Title1} ${thisFastlegeNavn} ${resources.bfl_ResultPage_Byttedialog_SetFastlegeError_Title2}`;\n const error: JSX.Element | null =\n apiStatus === ApiStatus.Error ? (\n
    \n \n \n \n\n
    \n \n
    \n
    \n
    \n ) : null;\n\n const content =\n error || spinner ? null : (\n
    \n \n {backToStep1Element}\n
    \n {resources.bfl_ResultPage_Byttedialog_BekreftBytte}\n \n <span>\n {resources.bfl_ResultPage_Byttedialog_Title2_1} {thisFastlegeNavn}\n {resources.bfl_ResultPage_Byttedialog_Title2_2}\n {` ${resources.bfl_ResultPage_Byttedialog_Title2_3}`}\n {` ${resources.bfl_ResultPage_Byttedialog_Title2_4} `}\n </span>\n \n
    \n {resources.bfl_ResultPage_Byttedialog_BytterFor}\n
    \n \n {innbygger?.Fornavn} {innbygger?.Etternavn}\n
    \n
    \n {getSelectedChildrenNames().map((childName, index) => (\n \n {childName}\n
    \n
    \n ))}\n {resources.bfl_ResultPage_Byttedialog_BekreftInfo_Old}\n
    \n \n \n
    \n
    \n );\n\n return (\n
    \n {spinner}\n {error}\n {content}\n
    \n );\n};\n","import React, { useRef, useEffect } from 'react';\n\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\nimport { dinFastlegeUrl } from 'byttefastlege/utils/shared-constants';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { FremtidigAvtale, Innbygger } from 'types/Fastlege.EntitiesEntities';\n\nimport Button from '@helsenorge/designsystem-react/components/Button';\nimport Icon from '@helsenorge/designsystem-react/components/Icon';\nimport Printer from '@helsenorge/designsystem-react/components/Icons/Printer';\nimport Title from '@helsenorge/designsystem-react/components/Title';\n\nimport { PhoneLink } from '../../../../../shared/phone-link';\nimport { getChildName } from '../../../resultatside/helper';\nimport { getFormattedDateString, print } from '../../helper';\n\ninterface Steg3KvitteringProps {\n resources: HNByttFastlegeJS;\n closeLightBox?: () => void;\n selectedChildren?: Array;\n children?: Array;\n}\n\nexport const Steg3Kvittering = (props: Steg3KvitteringProps): React.ReactElement | null => {\n const { resources, selectedChildren } = props;\n\n const headerRef = useRef(null);\n\n const { innbygger } = useTypedSelector(state => state.initDataSlice);\n const { innbyggersBarn } = useTypedSelector(state => state.innbyggersBarnSlice);\n const { listeTilhorlighet } = useTypedSelector(state => state.selectFastlegeSlice);\n\n useEffect(() => {\n if (headerRef && headerRef.current) {\n headerRef.current.focus();\n }\n });\n\n const getSelectedChildrenNames = (): string[] => {\n let selectedChildrenNames: string[] = [];\n if (selectedChildren && getChildName) {\n selectedChildren.forEach(selectedChild => {\n if (innbyggersBarn) {\n selectedChildrenNames = selectedChildrenNames.concat(getChildName(innbyggersBarn[selectedChild]));\n }\n });\n }\n return selectedChildrenNames;\n };\n\n const tilFastlege = (): void => {\n window.open(dinFastlegeUrl, '_self');\n };\n\n const fremtidig: FremtidigAvtale | null = listeTilhorlighet?.Response?.Fremtidig ?? null;\n if (!fremtidig) {\n return null;\n }\n\n const fraDato: JSX.Element | null =\n fremtidig.FraDato !== null ? (\n
    \n \n {resources.bfl_ResultPage_Byttedialog_Dato}\n \n

    \n {resources.bfl_ResultPage_Byttedialog_DatoInfo} \n {getFormattedDateString(fremtidig.FraDato.toString())}\n

    \n
    \n ) : null;\n\n // Registert dato for bytte (i dag)\n const registrertDato: JSX.Element | null =\n fremtidig.RegistrertDato !== null ? (\n
    \n {resources.bfl_ResultPage_Byttedialog_ByttetRegistrert || ''}\n {getFormattedDateString(fremtidig.RegistrertDato.toString())}\n
    \n ) : null;\n\n const postNrPostSted: JSX.Element | null =\n (fremtidig.Postnr === null && fremtidig.Poststed === null) || (fremtidig.Postnr === '' && fremtidig.Poststed === '') ? null : (\n
    \n {fremtidig.Postnr} \n {fremtidig.Poststed}\n
    \n );\n\n const telefonnummer: JSX.Element | null = fremtidig?.Telefonnummer ? (\n
    \n {resources.bfl_ResultPage_Byttedialog_KontaktInfo_Telefon}\n {`:`} \n
    \n ) : null;\n\n return (\n
    \n
    \n
    \n
    \n
    {resources.bfl_ResultPage_Byttedialog_Kvittering}
    \n \n <span>{resources.bfl_ResultPage_Byttedialog_Title3_1 || null} </span>\n <span>{fremtidig.Legenavn} </span>\n {resources.bfl_ResultPage_Byttedialog_Title3_2 || null}\n \n
    \n\n {registrertDato}\n {fraDato}\n\n \n {resources.bfl_ResultPage_Byttedialog_KontaktInfo}\n \n {fremtidig.Legekontor &&
    {fremtidig.Legekontor}
    }\n {fremtidig.Adresse &&
    {fremtidig.Adresse}
    }\n {postNrPostSted}\n {telefonnummer}\n\n \n {resources.bfl_ResultPage_Byttedialog_Gjelder}\n \n

    \n {innbygger?.Fornavn} \n {innbygger?.Etternavn}\n
    \n {getSelectedChildrenNames().map((childName, index) => (\n \n {childName}\n
    \n
    \n ))}\n

    \n\n
    \n \n
    \n
    \n\n
    \n

    \n {resources &&\n (listeTilhorlighet?.KvitteringSendt\n ? resources.bfl_ResultPage_Byttedialog_Print_Info\n : resources.bfl_ResultPage_Byttedialog_PostPhaError)}\n

    \n {listeTilhorlighet?.KvitteringSendt && (\n print(resources.bfl_ResultPage_Byttedialog_Print_Ansvarlig, e)}\n testId=\"bf-print-btn\"\n >\n \n {resources.bfl_ResultPage_Byttedialog_Print}\n \n )}\n
    \n \n
    \n
    \n
    \n
    \n );\n};\n","import * as React from 'react';\n\nimport classNames from 'classnames';\nimport './styles.scss';\n\nimport { FocusableElement } from 'tabbable';\n\nimport { setTabIndex, resetTabIndex } from '@helsenorge/core-utils/tabbable-utils';\n\nexport interface StepContainerStepProps {\n children?: React.ReactNode;\n additionalWrapperCss?: string;\n active?: boolean;\n /**\n * Har ingen funksjon.\n * @deprecated\n */\n relativePosition?: boolean;\n narrowPadding?: boolean;\n testId?: string;\n}\nexport class StepContainerStep extends React.Component {\n stepInner: React.RefObject;\n unmounted = false;\n\n private tabbableElements: Array | undefined;\n private previousTabIndexes: Array | undefined;\n\n constructor(props: StepContainerStepProps) {\n super(props);\n this.stepInner = React.createRef();\n }\n\n componentDidMount(): void {\n if (!this.props.active) {\n setTimeout(() => {\n if (!this.unmounted) {\n this.setTabIndex();\n }\n }, 100);\n }\n }\n\n componentDidUpdate(prevProps: StepContainerStepProps): void {\n if (prevProps.active && !this.props.active) {\n this.setTabIndex();\n } else if (!prevProps.active && this.props.active) {\n // if the content is going from hidden to visible > reset tabindex\n const updatedTabbableElements = resetTabIndex(this.tabbableElements || [], this.previousTabIndexes || []);\n this.tabbableElements = updatedTabbableElements;\n } else if (!prevProps.children && this.props.children) {\n this.setTabIndex();\n }\n }\n\n componentWillUnmount(): void {\n this.unmounted = true;\n }\n\n setTabIndex(): void {\n // This makes sure the children components are not focusable\n if (this.stepInner?.current) {\n const { tabbableElements, previousTabIndexes } = setTabIndex(this.stepInner.current);\n this.tabbableElements = tabbableElements;\n this.previousTabIndexes = previousTabIndexes;\n }\n }\n\n focusOnStep(): void {\n if (this.stepInner?.current) {\n this.stepInner.current.focus();\n }\n }\n\n render(): React.JSX.Element {\n const css: string = classNames(`js-step step`, this.props.additionalWrapperCss, {\n 'narrow-padding': this.props.narrowPadding,\n });\n\n const style: React.CSSProperties = {\n position: this.props.active ? 'relative' : 'absolute',\n };\n\n return (\n \n {this.props.children}\n \n );\n }\n}\n","import * as React from 'react';\n\nimport classNames from 'classnames';\nimport './styles.scss';\n\nimport { StepContainerStep, StepContainerStepProps } from './step-container-step';\n\ninterface StepContainerProps extends React.PropsWithChildren<{}> {\n additionalWrapperCss?: string;\n noHeight?: boolean;\n noTransition?: boolean;\n startStep?: number;\n isInLightbox?: boolean;\n testId?: string;\n}\n\ninterface StepContainerState {\n currentStep: number;\n height?: number | string;\n}\n\nexport class StepContainer extends React.Component {\n unmounted = false;\n stepRefs: { [key: string]: React.RefObject };\n\n constructor(props: StepContainerProps) {\n super(props);\n this.stepRefs = {};\n this.state = {\n currentStep: props.startStep ? props.startStep : 1,\n height: 'auto',\n };\n }\n\n getSnapshotBeforeUpdate(_prevProps: StepContainerProps, prevState: StepContainerState): null {\n if (this.state.currentStep !== prevState.currentStep) {\n const currentStep = this.stepRefs[`step${this.state.currentStep}`].current;\n const nextStep = this.stepRefs[`step${this.state.currentStep}`].current;\n if (!nextStep || !currentStep) {\n return null;\n }\n if (nextStep instanceof Element && currentStep instanceof Element) {\n const thisHeight = currentStep.clientHeight;\n const nextHeight: number = nextStep.clientHeight;\n this.setHeight(thisHeight);\n this.setState({ height: nextHeight });\n }\n }\n\n return null;\n }\n\n componentDidUpdate(_prevProps: StepContainerProps, prevState: StepContainerState): void {\n if (prevState.currentStep !== this.state.currentStep) {\n this.setHeight('auto');\n }\n }\n\n componentWillUnmount(): void {\n this.unmounted = true;\n this.stepRefs = {};\n }\n\n getOrCreateStepRef = (id: string): React.RefObject => {\n if (!this.stepRefs.hasOwnProperty(id)) {\n this.stepRefs[id] = React.createRef();\n }\n return this.stepRefs[id];\n };\n\n setHeight = (height: number | string): void => {\n if (height === 'auto') {\n setTimeout(() => {\n if (!this.unmounted) {\n this.setState({ height });\n }\n }, 150);\n } else {\n this.setState({ height });\n }\n };\n\n reset(): void {\n this.setState({\n currentStep: 1,\n });\n }\n\n previousStep(): void {\n this.setState(\n {\n currentStep: this.state.currentStep - 1,\n },\n () => {\n const prevStep = this.stepRefs[`step${this.state.currentStep}`].current;\n\n if (prevStep) {\n setTimeout(() => {\n prevStep.focusOnStep();\n }, 500);\n }\n }\n );\n }\n\n nextStep(): void {\n this.setState(\n {\n currentStep: this.state.currentStep + 1,\n },\n () => {\n const nextStep = this.stepRefs[`step${this.state.currentStep}`].current;\n if (nextStep) {\n setTimeout(() => {\n nextStep.focusOnStep();\n }, 500);\n }\n }\n );\n }\n\n render(): React.JSX.Element {\n const css = classNames(\n 'step-container js-step-container',\n {\n 'step-container--lightbox': this.props.isInLightbox,\n 'no-transition': this.props.noTransition,\n },\n this.props.additionalWrapperCss\n );\n\n const childrenWithProps: React.JSX.Element[] | undefined | null = React.Children.map(\n this.props.children as React.ReactElement[],\n (step: React.ReactElement, index) => {\n const count = index + 1;\n const active: boolean = this.state.currentStep === count;\n\n if (active) {\n return ;\n } else {\n return (\n \n );\n }\n }\n );\n\n const noHeightStyle = this.props.noTransition ? { height: 'auto' } : undefined;\n const style = this.props.noHeight ? noHeightStyle : { height: this.state.height };\n\n return (\n
    \n {childrenWithProps}\n
    \n );\n }\n}\n","import * as React from 'react';\nimport './styles.scss';\n\ninterface StepIndicatorStepLocalization {\n title: string;\n step: string;\n of: string;\n active: string;\n inactive: string;\n}\n\ninterface StepIndicatorStepProps {\n localization?: StepIndicatorStepLocalization;\n title?: string;\n step?: number;\n active?: boolean;\n stepCount?: number;\n activeText?: string;\n inactiveText?: string;\n testId?: string;\n}\n\nexport class StepIndicatorStep extends React.Component {\n constructor(props: StepIndicatorStepProps) {\n super(props);\n }\n\n static replacePlaceholder(placeholder: string, text: string, value: string): string {\n if (!text) {\n return '';\n }\n\n const expression = new RegExp(placeholder, 'g');\n return text.replace(expression, value as string);\n }\n\n getAccessibilityText(): string {\n if (!this.props.localization || !this.props.step) {\n return '';\n }\n\n if (this.props.activeText && this.props.inactiveText && this.props.stepCount) {\n let text: string;\n if (this.props.active) {\n text = StepIndicatorStep.replacePlaceholder('{step}', this.props.activeText, this.props.step.toString());\n } else {\n text = StepIndicatorStep.replacePlaceholder('{step}', this.props.inactiveText, this.props.step.toString());\n }\n text = StepIndicatorStep.replacePlaceholder('{total}', text, this.props.stepCount.toString());\n return text;\n }\n const active: string = this.props.active ? this.props.localization.active : this.props.localization.inactive;\n\n return `${this.props.localization.step} ${this.props.step} ${this.props.localization.of} ${this.props.stepCount} ${active}`;\n }\n\n getTitle(): string {\n return this.props.title ? this.props.title : this.props.localization ? this.props.localization.title : '';\n }\n\n render(): React.JSX.Element {\n return (\n
  • \n
    \n \n {this.getAccessibilityText()}\n \n {this.props.step}\n
    \n
    {this.getTitle()}
    \n
  • \n );\n }\n}\n","import * as React from 'react';\n\nimport { StepIndicatorStep } from './step-indicator-step';\nimport './styles.scss';\n\ninterface StepIndicatorState {\n currentStep: number;\n}\ninterface StepIndicatorProps {\n startStep?: number;\n wrapperClassName?: string;\n isInLightbox?: boolean;\n testId?: string;\n children?: React.ReactNode;\n}\n\nexport class StepIndicator extends React.Component {\n constructor(props: StepIndicatorProps) {\n super(props);\n this.state = {\n currentStep: props.startStep ? props.startStep : 1,\n };\n }\n\n reset(): void {\n this.setState({\n currentStep: 1,\n });\n }\n\n previousStep(): void {\n this.setState({\n currentStep: this.state.currentStep - 1,\n });\n }\n\n nextStep(): void {\n const next: number = this.state.currentStep + 1;\n\n if (next > (this.props.children as []).length) {\n return;\n }\n\n this.setState({\n currentStep: next,\n });\n }\n\n render(): React.JSX.Element {\n const childCount: number = (this.props.children as []).length;\n\n let count = 0;\n const childrenWithProps: JSX.Element[] | undefined | null = React.Children.map(this.props.children, x => {\n count += 1;\n const step: React.ReactElement<{}> = x as React.ReactElement<{}>;\n const isCurrentStep: boolean = this.state.currentStep === count;\n return ;\n });\n\n return (\n
    \n \n {childrenWithProps}\n \n
    \n );\n }\n}\n","import React, { useEffect, useState, useRef } from 'react';\n\nimport { useTypedDispatch } from 'byttefastlege/hooks/useTypedDispatch';\nimport { selectFastlege } from 'byttefastlege/stores/slice-select-fastlege/thunks';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { InnbyggersBarn, FastlegeAvtale } from 'types/Fastlege.EntitiesEntities';\n\nimport Loader from '@helsenorge/designsystem-react/components/Loader';\n\nimport { trackSelfService } from '@helsenorge/framework-utils/adobe-analytics';\n\nimport { Steg1VelgPersoner } from './steg1-velg-personer/steg1-velg-personer';\nimport { Steg2Bekreft } from './steg2-bekreft/steg2-bekreft';\nimport { Steg3Kvittering } from './steg3-kvittering/steg3-kvittering';\nimport { StepContainer } from '../../step-component/step-container';\nimport { StepContainerStep } from '../../step-component/step-container-step';\nimport { StepIndicator } from '../../step-component/step-indicator';\nimport { StepIndicatorStep } from '../../step-component/step-indicator-step';\nimport { stepLocation, removePrintElement } from '../helper';\n\ninterface BytteProps {\n resources: HNByttFastlegeJS;\n innbyggersBarn: InnbyggersBarn[] | null;\n selectedFastlege: FastlegeAvtale;\n hasChildren: boolean;\n closeActionContainer: () => void;\n}\n\nexport const BytteComponent = (props: BytteProps): React.ReactElement => {\n const { resources, innbyggersBarn, selectedFastlege, hasChildren, closeActionContainer } = props;\n const stepIndicatorRef = useRef(null);\n const stepContainerRef = useRef(null);\n\n const [currentStep, setCurrentStep] = useState();\n const [selectedChildren, setSelectedChildren] = useState([]);\n\n const dispatch = useTypedDispatch();\n\n const goToStep = (step: number): void => {\n if (currentStep && stepIndicatorRef.current && stepContainerRef.current) {\n if (step > currentStep) {\n stepIndicatorRef.current.nextStep();\n stepContainerRef.current.nextStep();\n } else if (step < currentStep) {\n stepIndicatorRef.current.previousStep();\n stepContainerRef.current.previousStep();\n }\n }\n\n setCurrentStep(step);\n };\n\n // Browser arrows: Returns to result page if in step 1 or 3, goes to step 1 if in step 2\n const popStateListener = (e: Event): void => {\n e.preventDefault();\n e.stopPropagation();\n\n if (selectedFastlege === null) {\n window.history.replaceState(null, '', window.location.href);\n window.location.reload();\n } else if (window.history.state.isBytteDialogSteg1 !== undefined && window.history.state.isBytteDialogSteg1) {\n closeActionContainer();\n } else if (window.history.state.isBytteDialogSteg2 !== undefined && window.history.state.isBytteDialogSteg2) {\n if (!hasChildren) {\n closeActionContainer();\n } else {\n goToStep(1);\n }\n } else if (currentStep === 3) {\n closeActionContainer();\n }\n };\n\n useEffect(() => {\n window.addEventListener('popstate', popStateListener);\n if (window.history.state.isBytteDialogSteg3) {\n setCurrentStep(3);\n } else {\n setCurrentStep(hasChildren ? 1 : 2);\n }\n return () => {\n window.removeEventListener('popstate', popStateListener);\n removePrintElement();\n };\n }, []);\n\n const goToNextStep = (e: React.MouseEvent | React.FormEvent<{}> | null | undefined): void => {\n e?.preventDefault();\n goToStep(2);\n trackSelfService('step', 'bytte fastlege', 'bytte', 'prosess');\n window.history.pushState({ isBytteDialogSteg2: true }, '', window.location.href);\n };\n\n const bekreftByttet = (\n e: React.MouseEvent | React.FormEvent<{}> | React.KeyboardEvent | null | undefined\n ): void => {\n e?.preventDefault();\n\n let selectedChildrenIDs: number[] = [];\n if (selectedChildren && innbyggersBarn !== null && innbyggersBarn.length > 0) {\n selectedChildren.forEach(childIndex => {\n selectedChildrenIDs = selectedChildrenIDs.concat(innbyggersBarn[childIndex].Id);\n });\n }\n if (selectedFastlege?.Id) {\n const request = { AvtaleId: parseFloat(selectedFastlege.Id), PersonIdListe: selectedChildrenIDs };\n dispatch(selectFastlege(request)).then(resp => {\n if (resp.meta.requestStatus === 'fulfilled') {\n window.history.pushState({ isBytteDialogSteg3: true }, '', window.location.href);\n goToStep(3);\n trackSelfService('complete', 'bytte fastlege', 'bytte', 'prosess');\n }\n });\n }\n };\n\n const toggleSelectedChild = (childIndex: number): void => {\n if (selectedChildren) {\n const selectedChildIndex: number = selectedChildren.indexOf(childIndex);\n\n if (selectedChildIndex === -1) {\n setSelectedChildren(selectedChildren.concat(childIndex));\n } else {\n const newSelectedChildren: number[] = selectedChildren.filter((_item, index) => index !== selectedChildIndex);\n setSelectedChildren(newSelectedChildren);\n }\n }\n };\n\n if (currentStep === undefined) {\n return ;\n }\n\n const { step1Localization, step2Localization, step3Localization } = stepLocation(resources);\n return (\n <>\n {hasChildren ? (\n \n \n \n \n \n ) : (\n \n \n \n \n )}\n\n {currentStep && (\n \n \n \n \n \n \n \n \n \n \n \n )}\n \n );\n};\n","import React, { useEffect } from 'react';\nimport { useTypedDispatch } from 'byttefastlege/hooks/useTypedDispatch';\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\nimport { setShowActionContainer } from 'byttefastlege/stores/slice-select-fastlege/reducer';\n\nimport { ApiStatus } from 'types/ExtendEnums';\nimport { ByttfastlegeJSProject } from 'types/project-name-constant';\n\nimport PageLoader from '@helsenorge/core-framework/page-loader/page-loader';\nimport { BytteComponent } from './bytte-component';\nimport useResources from '@helsenorge/framework-utils/resources/useResources';\nimport { getResources as getSotResources } from 'resources';\nimport { HNByttFastlegeJS } from '../../../../types/Resources';\n\nexport const BytteContainer = (): JSX.Element | null => {\n const currentHash = window.location.search;\n\n const { innbyggersBarn } = useTypedSelector(state => state.innbyggersBarnSlice);\n const innbyggersBarnApiStatus = useTypedSelector(state => state.innbyggersBarnSlice).apiStatus;\n const resources = useResources(ByttfastlegeJSProject, getSotResources) as HNByttFastlegeJS;\n\n const { selectedFastlege } = useTypedSelector(state => state.selectFastlegeSlice);\n\n const hasChildren = innbyggersBarnApiStatus === ApiStatus.Success && innbyggersBarn !== null && innbyggersBarn.length !== 0;\n const dispatch = useTypedDispatch();\n\n useEffect(() => {\n if (window.history.state.isBytteDialogSteg1 === undefined && window.history.state.isBytteDialogSteg2 === undefined) {\n if (hasChildren) {\n window.history.pushState({ isBytteDialogSteg1: true }, '', currentHash);\n } else {\n window.history.pushState({ isBytteDialogSteg2: true }, '', currentHash);\n }\n }\n }, []);\n\n if (!selectedFastlege) {\n return null;\n }\n\n const closeActionContainer = (): void => {\n dispatch(setShowActionContainer({ show: false, type: undefined }));\n };\n\n return (\n \n \n \n );\n};\n","import React from 'react';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { ActionContainerType } from 'types/ExtendEnums';\nimport { Venteliste } from 'types/Fastlege.EntitiesEntities';\n\nimport Button from '@helsenorge/designsystem-react/components/Button';\nimport FormGroup from '@helsenorge/designsystem-react/components/FormGroup';\nimport Label from '@helsenorge/designsystem-react/components/Label';\nimport RadioButton from '@helsenorge/designsystem-react/components/RadioButton';\nimport Title from '@helsenorge/designsystem-react/components/Title';\n\nimport { format } from '@helsenorge/core-utils/string-utils';\n\ninterface InitialCompProps {\n resources: HNByttFastlegeJS;\n venteliste: Venteliste | null;\n dispatchedFrom: ActionContainerType | undefined;\n goToMeldeAv: () => void;\n backToResultPage: () => void;\n goToBytteFastlege: () => void;\n showValidation: boolean;\n onChange: (value?: string) => void;\n checkedOption: CheckedAlternative;\n}\n\nenum CheckedAlternative {\n alt1 = 'alt1',\n alt2 = 'alt2',\n}\n\nexport const InitialChoiceComponent = (props: InitialCompProps): React.ReactElement | null => {\n const { resources, venteliste, backToResultPage, goToBytteFastlege, dispatchedFrom, onChange, checkedOption, goToMeldeAv } = props;\n const [selectedValue, setSelectedValue] = React.useState(checkedOption);\n\n const handleRadioChange = (event: React.ChangeEvent) => {\n const value = event.target.value as CheckedAlternative;\n setSelectedValue(value);\n onChange(value);\n };\n\n const ventelisteFastlegenavn: string =\n venteliste !== null && venteliste.Legenavn !== null\n ? venteliste.Legenavn\n : resources.bfl_ResultPage_InitialChoice_ListeUtenLege.toLowerCase();\n\n const ventelisteAntallPlasser: string | null =\n venteliste !== null && venteliste.AntallPaVenteliste !== null ? venteliste.AntallPaVenteliste.toString() : null;\n\n const ventelistePlass: string | null = venteliste !== null ? venteliste.KoPlassNummer.toString() : null;\n\n const userOnWaitingList = (): JSX.Element | null => {\n if (dispatchedFrom !== ActionContainerType.MeldePaaVenteliste) {\n return null;\n }\n\n let meldePaaInfoText1 = '';\n if (ventelistePlass && ventelisteAntallPlasser && ventelisteFastlegenavn) {\n meldePaaInfoText1 = format(resources.bfl_ResultPage_InitialChoice_MeldePaa_Info1, [\n ventelistePlass,\n ventelisteAntallPlasser,\n ventelisteFastlegenavn,\n ]);\n }\n const meldePaaInfoText3: string = format(resources.bfl_ResultPage_InitialChoice_MeldePaa_Info3, [ventelisteFastlegenavn]);\n\n return (\n
    \n \n {resources.bfl_ResultPage_InitialChoice_MeldePaa_Header}\n \n
    \n \n {meldePaaInfoText1}\n \n
    \n
    \n {meldePaaInfoText3}\n
    \n \n \n
    \n
    \n );\n };\n\n const userIsOnWaitingList = (): JSX.Element => {\n const bytteFastlegeHeader: string = format(resources.bfl_ResultPage_InitialChoice_BytteFastlege_Header, [ventelisteFastlegenavn]);\n let bytteFastlegeInfo = '';\n if (ventelistePlass && ventelisteAntallPlasser && ventelisteFastlegenavn) {\n bytteFastlegeInfo = format(resources.bfl_ResultPage_InitialChoice_BytteFastlege_Info, [\n ventelisteFastlegenavn,\n ventelistePlass,\n ventelisteAntallPlasser,\n ]);\n }\n\n return (\n
    \n \n <b>{bytteFastlegeHeader}</b>\n \n
    \n\n \n {bytteFastlegeInfo}\n \n
    \n
    \n\n \n \n }\n inputId=\"alleredeVentelisteByttfastlegeRadioGroup-hn-0\"\n onColor=\"onwhite\"\n name=\"radio\"\n value=\"alt1\"\n onChange={handleRadioChange}\n defaultChecked={selectedValue === 'alt1'}\n />\n \n }\n inputId=\"alleredeVentelisteByttfastlegeRadioGroup-hn-1\"\n onColor=\"onwhite\"\n name=\"radio\"\n value=\"alt2\"\n onChange={handleRadioChange}\n defaultChecked={selectedValue === 'alt2'}\n />\n \n\n
    \n \n \n
    \n
    \n );\n };\n\n return dispatchedFrom === ActionContainerType.BytteFastlege ? userIsOnWaitingList() : userOnWaitingList();\n};\n","import React, { useEffect, useState } from 'react';\nimport { useTypedDispatch } from 'byttefastlege/hooks/useTypedDispatch';\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\nimport { setShowActionContainer } from 'byttefastlege/stores/slice-select-fastlege/reducer';\nimport { getResources as getSotResources } from 'resources';\nimport { ActionContainerType } from 'types/ExtendEnums';\nimport { ByttfastlegeJSProject } from 'types/project-name-constant';\nimport { trackSelfService } from '@helsenorge/framework-utils/adobe-analytics';\nimport { isAuthorized } from '@helsenorge/framework-utils/hn-authorize';\n\nimport { InitialChoiceComponent } from './initial-component';\nimport useResources from '@helsenorge/framework-utils/resources/useResources';\nimport { HNByttFastlegeJS } from '../../../../types/Resources';\n\nenum CheckedAlternative {\n alt1 = 'alt1',\n alt2 = 'alt2',\n}\n\nexport const InitialChoiceContainer: React.FC = () => {\n const [checkedOption, setCheckedOption] = useState(CheckedAlternative.alt1);\n const [showValidation, setShowValidation] = useState(false);\n\n const dispatch = useTypedDispatch();\n\n const resources = useResources(ByttfastlegeJSProject, getSotResources) as HNByttFastlegeJS;\n\n const { venteliste } = useTypedSelector(state => state.initDataSlice);\n const { dispatchedFrom, selectedFastlege } = useTypedSelector(state => state.selectFastlegeSlice);\n\n useEffect(() => {\n window.history.pushState({ isVentelisteDialog: true }, '', window.location.search);\n }, []);\n\n const goToMeldeAv = (): void => {\n if (isAuthorized()) {\n dispatch(\n setShowActionContainer({\n show: true,\n type: ActionContainerType.MeldePaaVenteliste,\n dispatchedFrom: ActionContainerType.BytteVenteliste,\n })\n );\n trackSelfService('start', 'bytte fastlege', 'sette på venteliste', 'prosess');\n }\n };\n\n const backToResultPage = (): void => {\n dispatch(setShowActionContainer({ show: false, type: undefined }));\n };\n\n const goToBytteFastlege = (): void => {\n if (checkedOption === CheckedAlternative.alt1) {\n selectedFastlege && dispatch(setShowActionContainer({ show: true, type: ActionContainerType.BytteFastlege, selectedFastlege }));\n trackSelfService('start', 'bytte fastlege', 'bytte', 'prosess');\n } else if (checkedOption === CheckedAlternative.alt2) {\n dispatch(\n setShowActionContainer({\n show: true,\n type: ActionContainerType.MeldeAvVenteliste,\n dispatchedFrom: ActionContainerType.BytteFastlege,\n })\n );\n trackSelfService('start', 'bytte fastlege', 'meld av venteliste', 'prosess');\n } else {\n setShowValidation(true);\n }\n };\n\n const onChange = (value: string | undefined): void => {\n const option = value === 'alt1' ? CheckedAlternative.alt1 : CheckedAlternative.alt2;\n setCheckedOption(option);\n setShowValidation(false);\n };\n\n return (\n \n );\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { createSlice } from '@reduxjs/toolkit';\nimport { createAsyncThunk } from '@reduxjs/toolkit';\nimport { postPr as post } from '../../../utils/api-client';\n\nimport { FylkeCheckedKommune } from 'types/ExtendTypes';\nimport {\n Fylke,\n Innbygger,\n Melding,\n Venteliste,\n FastlegeAvtale,\n GetInitialDataInnloggetResponse,\n GetInitialDataResponse,\n GetInitialDataRequest,\n} from 'types/Fastlege.EntitiesEntities';\n\nimport { api, name } from '../../utils/shared-constants';\nimport { ApiStatus } from '../../../types/ExtendEnums';\nimport { isInnlogget } from '../../../utils/utils';\n\nexport const fetchInitialData = createAsyncThunk<\n GetInitialDataResponse | GetInitialDataInnloggetResponse,\n undefined,\n { rejectValue: string }\n>(`${name}/initialData`, async (_, { rejectWithValue }) => {\n try {\n const serviceName = isInnlogget() ? 'GetInitialData' : 'GetInitialDataAnonym';\n const parameters: GetInitialDataRequest = { OmitFylker: false, PaVenteliste: true };\n const response = await post(api, serviceName, parameters);\n return response as GetInitialDataResponse | GetInitialDataInnloggetResponse;\n } catch (error: any) {\n let errorMessage = 'Teknisk feil. En ukjent feil oppstod'; // Default error message\n\n if (error.response) {\n if (error.response.status === 403 || error.response.code === 'FL-000109') {\n errorMessage = 'Du har ikke tilgang til denne tjenesten. Kontakt Veiledning Helsenorge på telefon 23 32 70 00 for mer informasjon.';\n }\n if (error.response.status === 403 || error.response.code === 'FL-009000') {\n errorMessage =\n 'Vi har et teknisk problem. Du får ikke byttet fastlege akkurat nå. Vi jobber med å rette feilen. Prøv igjen senere.';\n } else if (error.response.code === 'FL-000104') {\n errorMessage =\n 'Du kan ikke bytte fastlege. Du har reservert deg mot fastlegeordningen og kan ikke bytte fastlege på helsenorge.no. For å fjerne reservasjonen, slik at du kan få tildelt fastlege, må du kontakte brukerstøtte Veiledning for helsenorge.no (23 32 70 00).';\n }\n }\n\n return rejectWithValue(errorMessage);\n }\n});\n\nexport type InitDataState = {\n erInnlogget: boolean;\n apiStatus: ApiStatus;\n innbygger: Innbygger | null | undefined;\n meldinger: Melding[] | null | undefined;\n fylker: Fylke[] | FylkeCheckedKommune[] | null;\n venteliste: Venteliste | null;\n tilhorighetFastlegeAvtale: FastlegeAvtale | null;\n tilhorighetFremtidigMelding: Melding | null;\n tilhorighetMelding: Melding | null;\n useMock: boolean;\n errorMessage: string | null;\n};\n\nexport const initialState: InitDataState = {\n erInnlogget: false,\n apiStatus: ApiStatus.Idle,\n innbygger: null,\n meldinger: null,\n fylker: null,\n venteliste: null,\n tilhorighetFastlegeAvtale: null,\n tilhorighetFremtidigMelding: null,\n tilhorighetMelding: null,\n useMock: false,\n errorMessage: null,\n};\n\nexport const initDataSlice = createSlice({\n name,\n initialState,\n reducers: {\n resetState: () => initialState,\n },\n extraReducers: builder => {\n builder\n .addCase(fetchInitialData.pending, state => {\n state.apiStatus = ApiStatus.InProgress;\n })\n .addCase(fetchInitialData.fulfilled, (state, { payload }) => {\n state.apiStatus = ApiStatus.Success;\n if (payload.InitialData && 'Innbygger' in payload.InitialData) {\n state.innbygger = payload.InitialData?.Innbygger;\n state.meldinger = payload.InitialData?.Meldinger;\n state.erInnlogget = true;\n }\n\n state.fylker = payload.InitialData?.Fylker || null;\n state.venteliste = payload.InitialData?.Venteliste || null;\n state.tilhorighetFastlegeAvtale = payload.InitialData?.Tilhorighet?.FastlegeAvtale || null;\n state.tilhorighetFremtidigMelding = payload.InitialData?.Tilhorighet?.FremtidigMelding || null;\n state.tilhorighetMelding = payload.InitialData?.Tilhorighet?.Melding || null;\n });\n builder.addCase(fetchInitialData.rejected, (state, action) => {\n state.apiStatus = ApiStatus.Error;\n state.errorMessage = (action.payload as string) || null;\n });\n },\n});\nexport const { resetState } = initDataSlice.actions;\nexport default initDataSlice.reducer;\n","import { createAsyncThunk } from '@reduxjs/toolkit';\nimport { getPr as get } from '../../../utils/api-client';\n\nimport { GetInnbyggersBarnResponse } from 'types/Fastlege.EntitiesEntities';\n\nimport { api, name } from '../../utils/shared-constants';\n\nexport const getInnbyggersBarn = createAsyncThunk(`${name}/GetInnbyggersBarn`, async () => {\n const response: GetInnbyggersBarnResponse = await get(api, 'GetInnbyggersBarn');\n return response.Response;\n});\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { BytteFastLegeState } from 'byttefastlege/root';\nimport { fetchInitialData } from 'byttefastlege/stores/slice-init-data/reducer';\nimport { findUrlParametersValue } from 'byttefastlege/utils/url-utils';\n\nimport { SelectedType } from '../../../types/ExtendEnums';\nimport { ParamObject } from '../../../types/ExtendTypes';\nimport { AvtaleSokRequest } from '../../../types/Fastlege.EntitiesEntities';\n\nimport { AppDispatch } from '../../../byttefastlege';\nimport { isInnlogget } from '../../../utils/utils';\nimport { getInnbyggersBarn } from '../slice-innbyggers-barn/thunks';\nimport { getSelectedOmraader } from '../slice-search-fastlege/helper';\nimport { setShowStartpage, setSok } from '../slice-search-fastlege/reducer';\nimport { fetchFastleger } from '../slice-search-fastlege/thunks';\n\nexport const searchFromUrl =\n (urlParameters: ParamObject) =>\n async (dispatch: AppDispatch): Promise => {\n const { kommuner, bydeler, searchquery, searchquerytype } = urlParameters;\n const data: AvtaleSokRequest = {\n Kommuner: kommuner || null,\n Bydeler: bydeler || null,\n LegeNavn: searchquery && searchquerytype && searchquerytype[0] === 'fastlege' ? searchquery[0] : null,\n LegekontorNavn: searchquery && searchquerytype && searchquerytype && searchquerytype[0] === 'legekontor' ? searchquery[0] : null,\n };\n dispatch(setShowStartpage(false));\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dispatch(fetchFastleger(data) as any);\n };\n\nconst setSokeStringFromUrl =\n (urlParameters: ParamObject) =>\n async (dispatch: AppDispatch, getState: () => BytteFastLegeState): Promise => {\n const { kommuner, bydeler, searchquery, fylke } = urlParameters;\n const isSearchString = !!searchquery;\n if (isSearchString) {\n searchquery?.length && dispatch(setSok({ type: SelectedType.Fastlege, sokerPaa: { searchString: searchquery[0] } }));\n } else {\n const fylker = getState().initDataSlice.fylker;\n const valgtOmraade = fylke && fylker?.find(f => f.Id === fylke[0])?.Kommuner;\n const setChecked = valgtOmraade && kommuner && getSelectedOmraader(valgtOmraade, kommuner, bydeler);\n setChecked && dispatch(setSok({ type: SelectedType.Lokasjon, sokerPaa: setChecked }));\n }\n };\n\nexport const getInitialData =\n () =>\n async (dispatch: AppDispatch): Promise => {\n dispatch(fetchInitialData() as any);\n isInnlogget() && dispatch(getInnbyggersBarn() as any);\n const urlParameters = findUrlParametersValue();\n if (Object.keys(urlParameters).length) {\n dispatch(searchFromUrl(urlParameters) as any);\n dispatch(setSokeStringFromUrl(urlParameters) as any);\n }\n };\n","import React, { useEffect, useRef } from 'react';\n\nimport { getChildName } from 'byttefastlege/components/resultatside/helper';\nimport { useTypedDispatch } from 'byttefastlege/hooks/useTypedDispatch';\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\nimport { removeVentelisteFastlege } from 'byttefastlege/stores/slice-select-fastlege/thunks';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { ApiStatus } from 'types/ExtendEnums';\nimport { InnbyggersBarn } from 'types/Fastlege.EntitiesEntities';\n\nimport Button from '@helsenorge/designsystem-react/components/Button';\nimport Checkbox from '@helsenorge/designsystem-react/components/Checkbox';\nimport Label from '@helsenorge/designsystem-react/components/Label';\nimport Loader from '@helsenorge/designsystem-react/components/Loader';\nimport NotificationPanel from '@helsenorge/designsystem-react/components/NotificationPanel';\nimport Spacer from '@helsenorge/designsystem-react/components/Spacer';\nimport Title from '@helsenorge/designsystem-react/components/Title';\n\nimport { format } from '@helsenorge/core-utils/string-utils';\nimport { trackSelfService } from '@helsenorge/framework-utils/adobe-analytics';\nimport SafeHTML from '@helsenorge/framework-utils/components/safe-html';\n\ninterface MeldavSteg1Props {\n resources: HNByttFastlegeJS;\n goToStep: (step: number) => void;\n noChildren: boolean;\n closeActionContainer: () => void;\n selectedChildren?: number[];\n toggleSelectedChild: (index: number) => void;\n childCanMeldeAv: (child: InnbyggersBarn) => boolean;\n currentHash: string;\n}\n\nexport const MeldAvSteg1 = (props: MeldavSteg1Props): React.ReactElement => {\n const { resources, goToStep, noChildren, closeActionContainer, selectedChildren, toggleSelectedChild, childCanMeldeAv, currentHash } =\n props;\n\n const headerRef = useRef(null);\n\n const { apiStatusVenteListe, apiStatus } = useTypedSelector(state => state.selectFastlegeSlice);\n const { innbyggersBarn } = useTypedSelector(state => state.innbyggersBarnSlice);\n const innbyggersBarnApiStatus = useTypedSelector(state => state.innbyggersBarnSlice).apiStatus;\n const { venteliste, innbygger } = useTypedSelector(state => state.initDataSlice);\n\n const dispatch = useTypedDispatch();\n\n useEffect(() => {\n if (headerRef && headerRef.current) {\n setTimeout(() => {\n if (headerRef && headerRef.current) {\n headerRef.current.focus();\n }\n }, 50);\n }\n }, []);\n\n const bekreft = (\n e?: React.MouseEvent | React.FormEvent<{}> | React.KeyboardEvent | null | undefined\n ): void => {\n e?.preventDefault();\n let selectedChildrenIDs: number[] = [];\n if (innbyggersBarn !== null && innbyggersBarn.length > 0 && selectedChildren) {\n selectedChildren.forEach(childIndex => {\n if (innbyggersBarn) {\n selectedChildrenIDs = selectedChildrenIDs.concat(innbyggersBarn[childIndex].Id);\n }\n });\n }\n if (apiStatusVenteListe !== ApiStatus.InProgress) {\n dispatch(removeVentelisteFastlege({ PersonIdListe: selectedChildrenIDs })).then(data => {\n data.meta.requestStatus === 'fulfilled' && goToStep(3);\n trackSelfService('complete', 'bytte fastlege', 'meld av venteliste', 'prosess');\n });\n window.history.pushState({ isVentelisteDialogSteg2: true }, '', currentHash);\n }\n };\n\n const thisFastlegeNavn =\n venteliste && venteliste.Legenavn ? venteliste.Legenavn : resources.bfl_ResultPage_VentelisteDialog_ListeUtenLege.toLowerCase();\n\n const header =\n venteliste && venteliste.Legenavn\n ? `${resources.bfl_ResultPage_VentelisteDialog_MeldAv_Header} ${thisFastlegeNavn}`\n : `${resources.bfl_ResultPage_VentelisteDialog_MeldAv_Header_Vikar} ${thisFastlegeNavn}`;\n\n const getBarnWarning = innbyggersBarnApiStatus === ApiStatus.Error && (\n \n \n \n );\n\n const error = apiStatusVenteListe === ApiStatus.Error && (\n <>\n \n \n {resources.bfl_ErrorMessage_Body}\n
    \n \n
    \n
    \n \n );\n\n const innbyggersBarnListe =\n innbyggersBarn !== null &&\n innbyggersBarn.length > 0 &&\n innbyggersBarn.map((child, index) => {\n if (!childCanMeldeAv(child)) {\n return null;\n }\n const toggleSelectChild: () => void = () => {\n toggleSelectedChild(index);\n };\n\n const checked: boolean = selectedChildren ? selectedChildren.indexOf(index) > -1 : false;\n\n const showFastlegeNavn = !!child.Tilhorighet?.Legenavn;\n\n return (\n
  • \n }\n inputId={`child-${index}`}\n onColor=\"onwhite\"\n name=\"checkbox\"\n checked={checked}\n onChange={toggleSelectChild}\n />\n {showFastlegeNavn && (\n
    \n {`${resources.bfl_ResultPage_VentelisteDialog_FastlegeNow}`}\n {child.Tilhorighet?.Legenavn}\n
    \n )}\n
  • \n );\n });\n\n const childrenSelectorElement: JSX.Element | null = !noChildren ? (\n
      \n
    1. \n }\n inputId={'user'}\n onColor=\"onwhite\"\n name=\"checkbox\"\n checked={true}\n onChange={(): void => {}}\n disabled\n />\n
    2. \n\n {resources.bfl_ResultPage_VentelisteDialog_MeldAv_ChildrenInfo}\n\n {innbyggersBarnListe}\n {getBarnWarning}\n
    \n ) : null;\n const placeInVenteliste: number | null = venteliste?.KoPlassNummer ?? null;\n const antallPaVenteliste: number | null = venteliste?.AntallPaVenteliste ?? null;\n const infoText1 =\n placeInVenteliste &&\n antallPaVenteliste &&\n format(resources.bfl_ResultPage_VentelisteDialog_MeldAv_Info1, [\n placeInVenteliste.toString(),\n antallPaVenteliste.toString(),\n thisFastlegeNavn,\n ]);\n\n const content = !error && (\n
    \n
    \n
    {resources.bfl_ResultPage_VentelisteDialog_Step2_MeldAv}
    \n \n {header}\n \n
    \n\n {childrenSelectorElement}\n {childrenSelectorElement !== null ?
    : null}\n\n {infoText1 && (\n \n {infoText1}\n \n )}\n
    \n
    \n\n {resources.bfl_ResultPage_VentelisteDialog_MeldAv_Info2}\n\n
    \n \n \n
    \n
    \n );\n\n return (\n
    \n {apiStatus === ApiStatus.InProgress && }\n {error}\n {content}\n
    \n );\n};\n","import React, { useRef, useEffect } from 'react';\n\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\nimport { resetVentelisteRespons, setShowActionContainer } from 'byttefastlege/stores/slice-select-fastlege/reducer';\nimport { useDispatch } from 'react-redux';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { ActionContainerType } from 'types/ExtendEnums';\nimport { FastlegeAvtale } from 'types/Fastlege.EntitiesEntities';\n\nimport Button from '@helsenorge/designsystem-react/components/Button';\nimport Icon from '@helsenorge/designsystem-react/components/Icon';\nimport Printer from '@helsenorge/designsystem-react/components/Icons/Printer';\nimport Spacer from '@helsenorge/designsystem-react/components/Spacer';\nimport Title from '@helsenorge/designsystem-react/components/Title';\n\nimport { getChildName } from '../../../resultatside/helper';\nimport { getFormattedDateString, print } from '../../helper';\n\ninterface MeldavSteg2Props {\n resources: HNByttFastlegeJS;\n closeActionContainer: () => void;\n isMeldeAvMeldePaa: boolean;\n resetSelectedChildren: () => void;\n selectedChildren: number[];\n fastlegeAvtale: FastlegeAvtale | null;\n noChildren: boolean;\n}\n\nexport const MeldAvSteg2 = (props: MeldavSteg2Props): React.ReactElement => {\n const { resources, closeActionContainer, resetSelectedChildren, selectedChildren } = props;\n\n const headerRef = useRef(null);\n\n const { innbyggersBarn } = useTypedSelector(state => state.innbyggersBarnSlice);\n const { venteliste, innbygger } = useTypedSelector(state => state.initDataSlice);\n const { removeFromVentelisteResponse, dispatchedFrom } = useTypedSelector(state => state.selectFastlegeSlice);\n\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (headerRef && headerRef.current) {\n headerRef.current.focus();\n }\n }, []);\n\n const getSelectedChildrenNames = (): string[] => {\n let selectedChildrenNames: string[] = [];\n\n selectedChildren.forEach(selectedChild => {\n if (getChildName && innbyggersBarn) {\n selectedChildrenNames = selectedChildrenNames.concat(getChildName(innbyggersBarn[selectedChild]));\n }\n });\n\n return selectedChildrenNames;\n };\n\n const goToNextStep = (event: React.MouseEvent | React.FormEvent<{}> | null | undefined): void => {\n event?.stopPropagation();\n if (dispatchedFrom === ActionContainerType.BytteFastlege) {\n dispatch(setShowActionContainer({ show: true, type: ActionContainerType.BytteFastlege }));\n } else if (dispatchedFrom === ActionContainerType.BytteVenteliste) {\n dispatch(setShowActionContainer({ show: true, type: ActionContainerType.BytteVenteliste }));\n } else {\n resetSelectedChildren();\n closeActionContainer();\n }\n\n dispatch(resetVentelisteRespons());\n };\n\n const registrertDato: JSX.Element = (\n
    \n {resources ? `${resources.bfl_ResultPage_VentelisteDialog_MeldAv_Registrert} ` : null}\n \n {removeFromVentelisteResponse && removeFromVentelisteResponse?.RemoveVenteliste?.Dato\n ? getFormattedDateString(removeFromVentelisteResponse.RemoveVenteliste.Dato.toString())\n : null}\n \n
    \n );\n\n let header: string | null = null;\n let thisFastlegeNavn: string | null = null;\n\n if (venteliste && venteliste.Legenavn && resources) {\n thisFastlegeNavn = venteliste.Legenavn;\n header = `${resources.bfl_ResultPage_VentelisteDialog_MeldAv_Receipt_Header} ${thisFastlegeNavn}`;\n } else if (resources) {\n thisFastlegeNavn = resources.bfl_ResultPage_Byttedialog_Vikar.toLowerCase();\n header = `${resources.bfl_ResultPage_VentelisteDialog_MeldAv_Receipt_Header_Vikar} ${thisFastlegeNavn}`;\n }\n\n const nextStepButtonText =\n dispatchedFrom === ActionContainerType.MeldePaaVenteliste\n ? resources.bfl_ResultPage_VentelisteDialog_MeldAv_Next1\n : dispatchedFrom === ActionContainerType.BytteFastlege\n ? resources.bfl_ResultPage_VentelisteDialog_MeldAv_Next2\n : null;\n\n const nextStepButton: JSX.Element | null = nextStepButtonText ? : null;\n\n return (\n
    \n
    \n
    \n
    {resources ? resources.bfl_ResultPage_VentelisteDialog_Step3 : null}
    \n \n {header}\n \n
    \n\n {registrertDato}\n\n {selectedChildren && selectedChildren.length > 0 ? (\n
    \n \n {resources && `${resources.bfl_ResultPage_VentelisteDialog_MeldAv_Receipt_Gjelder}:`}\n \n

    \n \n {innbygger?.Fornavn} \n {innbygger?.Etternavn}\n \n
    \n {getSelectedChildrenNames().map((childName, index) => (\n \n {childName}\n
    \n
    \n ))}\n

    \n
    \n ) : null}\n
    \n
    \n

    \n {removeFromVentelisteResponse?.KvitteringSendt\n ? resources.bfl_ResultPage_VentelisteDialog_Receipt_PHAInfo\n : resources.bfl_ResultPage_Byttedialog_PostPhaError}\n

    \n
    \n
    \n \n
    \n
    \n {removeFromVentelisteResponse?.KvitteringSendt && (\n
    \n print(resources.bfl_ResultPage_Byttedialog_Print_Ansvarlig, e)}\n testId=\"bf-print-btn\"\n >\n \n {resources.bfl_ResultPage_Byttedialog_Print}\n \n \n
    \n )}\n\n
    \n {nextStepButton}\n \n
    \n
    \n );\n};\n","import React, { useEffect, useRef } from 'react';\n\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { ApiStatus } from 'types/ExtendEnums';\nimport { FastlegeAvtale, InnbyggersBarn } from 'types/Fastlege.EntitiesEntities';\n\nimport Button from '@helsenorge/designsystem-react/components/Button';\nimport Checkbox from '@helsenorge/designsystem-react/components/Checkbox';\nimport Label from '@helsenorge/designsystem-react/components/Label';\nimport NotificationPanel from '@helsenorge/designsystem-react/components/NotificationPanel';\nimport Title from '@helsenorge/designsystem-react/components/Title';\n\nimport { format } from '@helsenorge/core-utils/string-utils';\nimport SafeHTML from '@helsenorge/framework-utils/components/safe-html';\n\nimport { getChildName } from '../../../resultatside/helper';\n\ninterface MeldPaaSteg1Props {\n resources: HNByttFastlegeJS;\n goToStep: (step: number) => void;\n fastlegeAvtale: FastlegeAvtale | null;\n currentHash: string;\n toggleSelectedChild: (index: number) => void;\n isMeldeAvMeldePaa: boolean;\n selectedChildren?: number[];\n childCanMeldeAv: (child: InnbyggersBarn) => boolean;\n closeActionContainer: () => void;\n}\n\nexport const MeldPaaSteg1 = (props: MeldPaaSteg1Props): React.ReactElement => {\n const {\n resources,\n fastlegeAvtale,\n goToStep,\n currentHash,\n toggleSelectedChild,\n isMeldeAvMeldePaa,\n selectedChildren,\n childCanMeldeAv,\n closeActionContainer,\n } = props;\n\n const headerRef = useRef(null);\n\n const { innbyggersBarn } = useTypedSelector(state => state.innbyggersBarnSlice);\n const innbyggersBarnApiStatus = useTypedSelector(state => state.innbyggersBarnSlice).apiStatus;\n const { venteliste, innbygger } = useTypedSelector(state => state.initDataSlice);\n\n useEffect(() => {\n setTimeout(() => {\n if (headerRef && headerRef.current) {\n headerRef.current.focus();\n }\n }, 50);\n }, []);\n\n const goToNextStep = (e: React.MouseEvent | React.FormEvent<{}> | null | undefined): void => {\n e?.preventDefault();\n\n goToStep(2);\n\n window.history.pushState({ isVentelisteDialogSteg2: true }, '', currentHash);\n };\n\n const currentVentelisteLegenavn: string =\n venteliste?.Legenavn !== null\n ? `${resources.bfl_ResultPage_VentelisteDialog_MeldPaa_Change_Fastlege} ${venteliste?.Legenavn}`\n : resources.bfl_ResultPage_VentelisteDialog_ListeUtenLege.toLowerCase();\n\n const thisFastlegeNavn =\n fastlegeAvtale?.Fastlege !== null\n ? `${fastlegeAvtale?.Fastlege.Fornavn} ${fastlegeAvtale?.Fastlege.Etternavn}`\n : resources.bfl_ResultPage_VentelisteDialog_ListeUtenLege.toLowerCase();\n\n const settVenteliste =\n fastlegeAvtale?.Fastlege !== null\n ? `${resources.bfl_ResultPage_VentelisteDialog_MeldPaa_Header} ${thisFastlegeNavn}`\n : `${resources.bfl_ResultPage_VentelisteDialog_MeldPaa_Header_Vikar} ${thisFastlegeNavn}`;\n const header =\n isMeldeAvMeldePaa && currentVentelisteLegenavn && thisFastlegeNavn\n ? format(resources.bfl_ResultPage_VentelisteDialog_MeldPaa_Change_Header1, [currentVentelisteLegenavn, thisFastlegeNavn])\n : settVenteliste;\n\n const velgBarnInfo =\n isMeldeAvMeldePaa && currentVentelisteLegenavn && thisFastlegeNavn\n ? resources.bfl_ResultPage_VentelisteDialog_MeldPaa_Change_ChildrenInfo\n : resources.bfl_ResultPage_VentelisteDialog_MeldPaa_ChildrenInfo;\n\n const checkboxLabel = `${innbygger?.Fornavn} ${innbygger?.Etternavn}`;\n\n const getBarnWarning = innbyggersBarnApiStatus === ApiStatus.Error && (\n \n \n \n );\n\n return (\n
    \n
    \n
    {resources.bfl_ResultPage_VentelisteDialog_VelgPersoner}
    \n \n {header}\n \n
    \n\n
      \n
    1. \n }\n inputId={'user'}\n onColor=\"onwhite\"\n name=\"checkbox\"\n checked={true}\n onChange={(): void => {}}\n disabled\n />\n
    2. \n {velgBarnInfo}\n\n {innbyggersBarn !== null && innbyggersBarn.length > 0\n ? innbyggersBarn.map((child, index) => {\n const toggleSelectChild: () => void = () => {\n toggleSelectedChild(index);\n };\n\n const checked: boolean = selectedChildren ? selectedChildren.indexOf(index) > -1 : false;\n let disabled: boolean = child.ErReservert || child.ErUtmeldt;\n if (isMeldeAvMeldePaa && !childCanMeldeAv(child)) {\n disabled = true;\n }\n\n let disabledText: string | null = null;\n const showFastlegeNavn = !!child?.Tilhorighet?.Legenavn;\n\n if (fastlegeAvtale && thisFastlegeNavn) {\n if (child?.Venteliste?.AvtaleId?.toString() === fastlegeAvtale.Id) {\n disabled = true;\n disabledText = format(resources.bfl_ResultPage_VentelisteDialog_AlleredePaaVenteliste, [thisFastlegeNavn]);\n } else if (child?.Venteliste?.AvtaleId === fastlegeAvtale.Id) {\n disabled = true;\n disabledText = format(resources.bfl_ResultPage_VentelisteDialog_AlleredeFastlege, [thisFastlegeNavn]);\n } else if (child?.Tilhorighet?.FremtidigAvtaleId === fastlegeAvtale.Id) {\n disabled = true;\n disabledText = format(resources.bfl_ResultPage_VentelisteDialog_FremtidigFastlege, [thisFastlegeNavn]);\n }\n }\n\n return (\n
    3. \n }\n inputId={`child-${index}`}\n onColor=\"onwhite\"\n name=\"checkbox\"\n checked={checked}\n onChange={toggleSelectChild}\n disabled={disabled}\n />\n {showFastlegeNavn && (\n
      \n {resources.bfl_ResultPage_VentelisteDialog_FastlegeNow} {child.Tilhorighet?.Legenavn}\n
      \n )}\n {disabledText &&
      {disabledText}
      }\n
    4. \n );\n })\n : null}\n\n {getBarnWarning}\n
    \n
    \n \n \n
    \n
    \n );\n};\n","import React, { useRef, useEffect } from 'react';\n\nimport { useTypedDispatch } from 'byttefastlege/hooks/useTypedDispatch';\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\nimport { setVentelisteFastlege } from 'byttefastlege/stores/slice-select-fastlege/thunks';\nimport classNames from 'classnames';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { ApiStatus } from 'types/ExtendEnums';\nimport { FastlegeAvtale } from 'types/Fastlege.EntitiesEntities';\n\nimport Button from '@helsenorge/designsystem-react/components/Button';\nimport Icon from '@helsenorge/designsystem-react/components/Icon';\nimport ArrowLeft from '@helsenorge/designsystem-react/components/Icons/ArrowLeft';\nimport Loader from '@helsenorge/designsystem-react/components/Loader';\nimport NotificationPanel from '@helsenorge/designsystem-react/components/NotificationPanel';\nimport Spacer from '@helsenorge/designsystem-react/components/Spacer';\nimport Title from '@helsenorge/designsystem-react/components/Title';\n\nimport { format } from '@helsenorge/core-utils/string-utils';\nimport { trackSelfService } from '@helsenorge/framework-utils/adobe-analytics';\n\ninterface MeldPaaSteg2Props {\n resources: HNByttFastlegeJS;\n goToStep: (step: number) => void;\n fastlegeAvtale: FastlegeAvtale | null;\n closeActionContainer: () => void;\n hasChildren: boolean;\n isMeldeAvMeldePaa: boolean;\n selectedChildren?: number[];\n isMeldePaa: boolean;\n}\n\nexport const MeldPaaSteg2 = (props: MeldPaaSteg2Props): React.ReactElement => {\n const { resources, fastlegeAvtale, goToStep, closeActionContainer, hasChildren, isMeldeAvMeldePaa, selectedChildren, isMeldePaa } = props;\n\n const headerRef = useRef(null);\n\n const { innbyggersBarn } = useTypedSelector(state => state.innbyggersBarnSlice);\n const { venteliste } = useTypedSelector(state => state.initDataSlice);\n const { apiStatus, apiStatusVenteListe } = useTypedSelector(state => state.selectFastlegeSlice);\n\n const currentHash = window.location.search;\n\n const dispatch = useTypedDispatch();\n useEffect(() => {\n if (headerRef && headerRef.current) {\n setTimeout(() => {\n if (headerRef && headerRef.current) {\n headerRef.current.focus();\n }\n }, 50);\n }\n }, []);\n\n const bekreft = (\n e: React.MouseEvent | React.FormEvent<{}> | React.KeyboardEvent | null | undefined\n ): void => {\n e?.preventDefault();\n\n // Gets list of selected children Ids\n const selectedChildrenIDs: number[] = [];\n if (innbyggersBarn !== null && innbyggersBarn.length > 0 && selectedChildren) {\n selectedChildren.forEach(childIndex => {\n if (innbyggersBarn && innbyggersBarn[childIndex]) {\n selectedChildrenIDs.push(innbyggersBarn[childIndex].Id);\n }\n });\n }\n\n if (fastlegeAvtale?.Id && (isMeldeAvMeldePaa || isMeldePaa)) {\n const requestArg = {\n AvtaleId: parseInt(fastlegeAvtale.Id),\n PersonIdListe: selectedChildrenIDs,\n isChange: isMeldeAvMeldePaa,\n };\n dispatch(setVentelisteFastlege(requestArg)).then(data => {\n if (data.meta.requestStatus === 'fulfilled') {\n window.history.pushState({ isVentelisteDialogSteg3: true }, '', window.location.href);\n goToStep(3);\n trackSelfService('complete', 'bytte fastlege', 'sette på venteliste', 'prosess');\n }\n });\n }\n };\n\n const goBackToStep1 = (e: React.MouseEvent | React.FormEvent<{}> | React.KeyboardEvent | null | undefined): void => {\n e?.preventDefault();\n goToStep(1);\n window.history.pushState({ isBytteDialogSteg1: true }, '', currentHash);\n };\n\n const backToStep1Element: JSX.Element | null = hasChildren ? (\n \n ) : null;\n\n const currentVentelisteLegenavn =\n venteliste && venteliste.Legenavn && venteliste.Legenavn !== null\n ? `${resources.bfl_ResultPage_VentelisteDialog_MeldPaa_Change_Fastlege} ${venteliste.Legenavn}`\n : venteliste\n ? resources.bfl_ResultPage_VentelisteDialog_ListeUtenLege.toLowerCase()\n : null;\n\n const thisFastlegeNavn =\n fastlegeAvtale && fastlegeAvtale.Fastlege && fastlegeAvtale.Fastlege !== null\n ? `${fastlegeAvtale.Fastlege.Fornavn} ${fastlegeAvtale.Fastlege.Etternavn}`\n : resources.bfl_ResultPage_VentelisteDialog_ListeUtenLege.toLowerCase();\n\n const fastlegeMedNavn =\n fastlegeAvtale?.Fastlege !== null\n ? `${resources.bfl_ResultPage_VentelisteDialog_MeldPaa_Header} ${thisFastlegeNavn}`\n : `${resources.bfl_ResultPage_VentelisteDialog_MeldPaa_Header_Vikar} ${thisFastlegeNavn}`;\n\n const header =\n isMeldeAvMeldePaa && currentVentelisteLegenavn\n ? format(resources.bfl_ResultPage_VentelisteDialog_MeldPaa_Change_Header1, [currentVentelisteLegenavn, thisFastlegeNavn])\n : fastlegeMedNavn;\n\n const spinner: JSX.Element | null =\n apiStatusVenteListe === ApiStatus.InProgress || apiStatus === ApiStatus.InProgress ? : null;\n\n const error: JSX.Element | null =\n apiStatusVenteListe === ApiStatus.Error ? (\n
    \n \n \n {resources.bfl_ErrorMessage_Body}\n
    \n \n
    \n
    \n
    \n ) : null;\n\n const antallPaVenteliste: number = fastlegeAvtale?.AntallPaVenteliste ?? 0;\n\n const infoText1: string | null =\n antallPaVenteliste === 1\n ? format(resources.bfl_ResultPage_VentelisteDialog_MeldPaa_Info1_alt, [antallPaVenteliste.toString()])\n : format(resources.bfl_ResultPage_VentelisteDialog_MeldPaa_Info1, [antallPaVenteliste.toString()]);\n\n const infoText2: string = resources.bfl_ResultPage_VentelisteDialog_MeldPaa_Info2;\n const infoText3: string | null =\n thisFastlegeNavn &&\n currentVentelisteLegenavn &&\n format(resources.bfl_ResultPage_VentelisteDialog_MeldPaa_Change_Info, [thisFastlegeNavn, currentVentelisteLegenavn]);\n\n const content: JSX.Element | null =\n spinner || error ? null : (\n
    \n {backToStep1Element}\n
    \n
    {resources.bfl_ResultPage_VentelisteDialog_Step2_MeldPaa}
    \n \n {header}\n \n
    \n {!isMeldeAvMeldePaa && (\n <>\n {infoText1 !== null && (\n
    \n {infoText1}\n
    \n
    \n
    \n )}\n\n {infoText3 && (\n
    \n {infoText3}\n
    \n
    \n
    \n )}\n \n )}\n\n {infoText2}\n
    \n
    \n \n \n
    \n
    \n );\n\n const classes: string = classNames('action-container-steg-content', 'bekreft', {\n 'no-top-padding': hasChildren,\n 'venteliste-error': apiStatusVenteListe === ApiStatus.Error,\n });\n\n return (\n
    \n {spinner}\n {error}\n {content}\n
    \n );\n};\n","import React, { useRef, useEffect } from 'react';\n\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { ApiStatus } from 'types/ExtendEnums';\n\nimport Button from '@helsenorge/designsystem-react/components/Button';\nimport Icon from '@helsenorge/designsystem-react/components/Icon';\nimport Printer from '@helsenorge/designsystem-react/components/Icons/Printer';\nimport Loader from '@helsenorge/designsystem-react/components/Loader';\nimport Spacer from '@helsenorge/designsystem-react/components/Spacer';\nimport Title from '@helsenorge/designsystem-react/components/Title';\n\nimport { format } from '@helsenorge/core-utils/string-utils';\n\nimport { getChildName } from '../../../resultatside/helper';\nimport { print, getFormattedDateString } from '../../helper';\n\ninterface MeldPaaSteg3Props {\n resources: HNByttFastlegeJS;\n isMeldeAvMeldePaa: boolean;\n closeActionContainer: (refetch: boolean) => void;\n selectedChildren?: number[];\n}\n\nexport const MeldPaaSteg3 = (props: MeldPaaSteg3Props): React.ReactElement => {\n const { resources, selectedChildren, isMeldeAvMeldePaa, closeActionContainer } = props;\n\n const headerRef = useRef(null);\n\n const { innbyggersBarn } = useTypedSelector(state => state.innbyggersBarnSlice);\n const { venteliste, innbygger } = useTypedSelector(state => state.initDataSlice);\n const { setVentelisteResponse, apiStatusVenteListe } = useTypedSelector(state => state.selectFastlegeSlice);\n\n useEffect(() => {\n if (headerRef && headerRef.current) {\n headerRef.current.focus();\n }\n }, []);\n\n const getSelectedChildrenNames = (): string[] => {\n let selectedChildrenNames: string[] = [];\n\n if (selectedChildren) {\n selectedChildren.forEach(selectedChild => {\n if (innbyggersBarn) {\n selectedChildrenNames = selectedChildrenNames.concat(getChildName(innbyggersBarn[selectedChild]));\n }\n });\n }\n\n return selectedChildrenNames;\n };\n\n const getRegisteredDate = (): string | null => {\n if (setVentelisteResponse?.Venteliste?.FraDato) {\n return getFormattedDateString(setVentelisteResponse.Venteliste.FraDato.toString());\n }\n return '';\n };\n\n const registrertDato: JSX.Element = (\n
    \n {resources.bfl_ResultPage_VentelisteDialog_MeldPaa_Registrert} \n {getRegisteredDate()}\n
    \n );\n\n let header: string | undefined;\n let thisFastlegeNavn: string | undefined;\n\n if (setVentelisteResponse?.Venteliste?.Legenavn !== null) {\n thisFastlegeNavn = `${resources.bfl_ResultPage_VentelisteDialog_MeldPaa_Change_Fastlege} ${setVentelisteResponse?.Venteliste?.Legenavn}`;\n } else if (resources) {\n thisFastlegeNavn = resources.bfl_ResultPage_VentelisteDialog_ListeUtenLege.toLowerCase();\n }\n\n const placeInVenteliste: number = setVentelisteResponse?.Venteliste?.KoPlassNummer ? setVentelisteResponse.Venteliste.KoPlassNummer : 0;\n\n if (thisFastlegeNavn) {\n header = format(resources.bfl_ResultPage_VentelisteDialog_MeldPaa_Receipt_Header, [placeInVenteliste.toString(), thisFastlegeNavn]);\n }\n\n if (isMeldeAvMeldePaa) {\n let currentVentelisteLegenavn: string | undefined;\n if (venteliste !== null) {\n if (venteliste.Legenavn !== null) {\n currentVentelisteLegenavn = `${resources.bfl_ResultPage_VentelisteDialog_MeldPaa_Change_Fastlege} ${venteliste.Legenavn}`;\n } else {\n currentVentelisteLegenavn = resources.bfl_ResultPage_VentelisteDialog_ListeUtenLege.toLowerCase();\n }\n }\n\n if (currentVentelisteLegenavn) {\n header += `. ${format(resources.bfl_ResultPage_VentelisteDialog_MeldPaa_Change_KvitteringHeader, [currentVentelisteLegenavn])}`;\n }\n }\n\n if (apiStatusVenteListe === ApiStatus.InProgress) {\n return (\n <>\n \n \n \n );\n }\n\n return (\n
    \n
    \n
    \n
    {resources.bfl_ResultPage_Byttedialog_Kvittering}
    \n \n {header}\n \n
    \n\n {registrertDato}\n\n

    {resources.bfl_ResultPage_VentelisteDialog_MeldPaa_Receipt_Info}

    \n\n {selectedChildren && selectedChildren.length > 0 && innbygger && (\n
    \n {`${resources.bfl_ResultPage_VentelisteDialog_MeldPaa_Receipt_Info2}:`}\n

    \n \n {innbygger.Fornavn} {innbygger.Etternavn}\n \n
    \n {getSelectedChildrenNames().map((childName, index) => (\n \n {childName}\n
    \n
    \n ))}\n

    \n
    \n )}\n
    \n
    \n

    \n {setVentelisteResponse?.KvitteringSendt\n ? resources.bfl_ResultPage_Byttedialog_Print_Info\n : resources.bfl_ResultPage_Byttedialog_PostPhaError}\n

    \n
    \n
    \n \n
    \n
    \n {setVentelisteResponse?.KvitteringSendt && (\n
    \n print(resources.bfl_ResultPage_Byttedialog_Print_Ansvarlig, e)}\n testId=\"bf-print-btn\"\n >\n \n {resources.bfl_ResultPage_Byttedialog_Print}\n \n
    \n )}\n \n
    \n );\n};\n","import React, { useEffect, useState, useRef } from 'react';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { ActionContainerType } from 'types/ExtendEnums';\nimport { FastlegeAvtale, InnbyggersBarn, Venteliste } from 'types/Fastlege.EntitiesEntities';\n\nimport { MeldAvSteg1 } from './meld-av-steg1/meld-av-steg1';\nimport { MeldAvSteg2 } from './meld-av-steg2/meld-av-steg2';\nimport { MeldPaaSteg1 } from './meld-paa-steg1/meld-paa-steg1';\nimport { MeldPaaSteg2 } from './meld-paa-steg2/meld-paa-steg2';\nimport { MeldPaaSteg3 } from './meld-paa-steg3/meld-paa-steg3';\nimport { StepContainer } from '../../step-component/step-container';\nimport { StepContainerStep } from '../../step-component/step-container-step';\nimport { StepIndicator } from '../../step-component/step-indicator';\nimport { StepIndicatorStep } from '../../step-component/step-indicator-step';\nimport { stepLocation, removePrintElement } from '../helper';\n\ninterface VentelisteComponentProps {\n resources: HNByttFastlegeJS;\n actionContainerContent: ActionContainerType | undefined;\n closeActionContainer: () => void;\n fastlegeAvtale: FastlegeAvtale | null;\n innbyggersBarn: InnbyggersBarn[] | null;\n venteliste: Venteliste | null;\n hasChildren: boolean;\n}\n\nexport const VentelisteComponent = (props: VentelisteComponentProps): React.ReactElement => {\n const { resources, fastlegeAvtale, closeActionContainer, innbyggersBarn, venteliste, actionContainerContent, hasChildren } = props;\n const stepIndicatorRef = useRef(null);\n const stepContainerRef = useRef(null);\n\n const currentHash = window.location.search;\n\n const [currentStep, setCurrentStep] = useState();\n const [selectedChildren, setSelectedChildren] = useState([]);\n\n const goToStep = (step: number): void => {\n if (currentStep && stepIndicatorRef.current && stepContainerRef.current) {\n if (step > currentStep) {\n stepIndicatorRef.current.nextStep();\n stepContainerRef.current.nextStep();\n } else if (step < currentStep) {\n stepIndicatorRef.current.previousStep();\n stepContainerRef.current.previousStep();\n }\n }\n setCurrentStep(step);\n };\n\n // Goes back if the action container is in step 1 or 3, goes to step 1 if in step 2\n const popStateListener = (e: Event): void => {\n e.preventDefault();\n e.stopPropagation();\n if (fastlegeAvtale === null) {\n window.history.replaceState(null, '', window.location.href);\n window.location.reload();\n } else if (window.history.state.isVentelisteDialog !== undefined && window.history.state.isVentelisteDialog) {\n if (currentStep === 2) {\n goToStep(1);\n }\n } else if (window.history.state.isVentelisteDialogSteg2 !== undefined && window.history.state.isVentelisteDialogSteg2) {\n if (currentStep === 1) {\n goToStep(2);\n } else if (currentStep === 3) {\n closeActionContainer();\n }\n }\n closeActionContainer();\n };\n\n useEffect(() => {\n setCurrentStep(hasChildren ? 1 : 2);\n window.addEventListener('popstate', popStateListener);\n return () => {\n window.removeEventListener('popstate', popStateListener);\n removePrintElement();\n };\n }, []);\n\n const isMeldePaa: boolean = actionContainerContent === ActionContainerType.MeldePaaVenteliste;\n const isMeldeAv: boolean = actionContainerContent === ActionContainerType.MeldeAvVenteliste;\n const isMeldeAvMeldePaa: boolean = actionContainerContent === ActionContainerType.BytteVenteliste;\n\n const toggleSelectedChild = (childIndex: number): void => {\n if (selectedChildren) {\n const selectedChildIndex: number = selectedChildren.indexOf(childIndex);\n\n if (selectedChildIndex === -1) {\n setSelectedChildren(selectedChildren.concat(childIndex));\n } else {\n const newSelectedChildren: number[] = selectedChildren.filter((_item, index) => index !== selectedChildIndex);\n setSelectedChildren(newSelectedChildren);\n }\n }\n };\n\n const resetSelectedChildren = (): void => {\n setSelectedChildren([]);\n };\n\n const childCanMeldeAv = (child: InnbyggersBarn): boolean =>\n child.Venteliste !== null && venteliste !== null && child.Venteliste.AvtaleId === venteliste.AvtaleId;\n\n const noChildrenWithSameVenteliste = !innbyggersBarn?.find(child => childCanMeldeAv(child));\n\n const { stepLocalization, step1Localization, step3Localization } = stepLocation(resources);\n\n const step2Text = isMeldeAv\n ? resources.bfl_ResultPage_VentelisteDialog_Step2_MeldAv\n : resources.bfl_ResultPage_VentelisteDialog_Step2_MeldPaa;\n\n const step2Localization = {\n ...stepLocalization,\n title: step2Text,\n };\n\n return (\n
    \n {!hasChildren || isMeldeAv ? (\n \n \n \n \n ) : (\n \n \n \n \n \n )}\n\n {(isMeldePaa || isMeldeAvMeldePaa) && currentStep && (\n \n \n \n \n \n \n \n \n \n \n \n )}\n {isMeldeAv && (\n \n \n \n \n \n \n \n \n )}\n
    \n );\n};\n","import React, { useEffect } from 'react';\nimport { ThunkAction, Action } from '@reduxjs/toolkit';\nimport { useTypedDispatch } from 'byttefastlege/hooks/useTypedDispatch';\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\nimport { getInitialData } from 'byttefastlege/stores/slice-init-data/thunks';\nimport { resetVentelisteRespons, setShowActionContainer } from 'byttefastlege/stores/slice-select-fastlege/reducer';\nimport { getResources as getSotResources } from 'resources';\nimport { HNByttFastlegeJS } from 'HNResources';\nimport { ApiStatus } from 'types/ExtendEnums';\nimport { ByttfastlegeJSProject } from 'types/project-name-constant';\nimport PageLoader from '@helsenorge/core-framework/page-loader/page-loader';\nimport { VentelisteComponent } from './venteliste-component ';\nimport { BytteFastLegeState } from '../../../root';\nimport useResources from '@helsenorge/framework-utils/resources/useResources';\n\nexport const VentelisteContainer: React.FC = () => {\n const currentHash = window.location.search;\n\n useEffect(() => {\n if (!window.history.state.isVentelisteDialog) {\n window.history.pushState({ isVentelisteDialog: true }, '', currentHash);\n }\n }, []);\n\n const resources = useResources(ByttfastlegeJSProject, getSotResources);\n const { innbyggersBarn } = useTypedSelector(state => state.innbyggersBarnSlice);\n const apiStatusInnbyggersBarn = useTypedSelector(state => state.innbyggersBarnSlice).apiStatus;\n const { venteliste } = useTypedSelector(state => state.initDataSlice);\n const { selectedFastlege, actionContainerContent, apiStatus } = useTypedSelector(state => state.selectFastlegeSlice);\n\n const dispatch = useTypedDispatch();\n\n const hasChildren = apiStatusInnbyggersBarn === ApiStatus.Success && innbyggersBarn !== null && innbyggersBarn.length !== 0;\n\n const closeActionContainer = (refetch = false): void => {\n dispatch(setShowActionContainer({ show: false, type: undefined }));\n if (refetch) {\n dispatch(getInitialData() as ThunkAction>);\n }\n dispatch(resetVentelisteRespons());\n };\n\n return resources ? (\n \n \n \n ) : (\n <>\n );\n};\n","import React, { useEffect } from 'react';\n\nimport { ActionContainerType } from 'types/ExtendEnums';\n\nimport { BytteContainer } from './bytte';\nimport { InitialChoiceContainer } from './initial-choice';\nimport { VentelisteContainer } from './venteliste';\n\nimport './styles.scss';\n\ninterface ActionContainerProps {\n actionContainerContent: ActionContainerType | undefined;\n}\n\nexport const ActionContainer = ({ actionContainerContent }: ActionContainerProps): React.ReactElement | null => {\n if (actionContainerContent === undefined) {\n return null;\n }\n\n const scrollToTop = (): void => {\n window.scroll({ top: 0, behavior: 'smooth' });\n };\n\n useEffect(() => {\n scrollToTop();\n return () => window.history.pushState({ isResultPage: true }, '', window.location.href);\n }, []);\n\n const actionContainer = (containerContent: ActionContainerType): JSX.Element => {\n switch (containerContent) {\n case ActionContainerType.BytteFastlege:\n case ActionContainerType.BytteVenteliste:\n return ;\n case ActionContainerType.MeldePaaVenteliste:\n case ActionContainerType.MeldeAvVenteliste:\n return ;\n case ActionContainerType.InitChoice:\n return ;\n default:\n return <>;\n }\n };\n\n return actionContainer(actionContainerContent);\n};\n","import React, { useEffect, useState } from 'react';\n\nimport { SokeResultatHeader } from 'byttefastlege/components/sokeresultat-header/sokeresultat-header';\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\nimport classNames from 'classnames';\nimport { isInnlogget } from 'utils/utils';\n\nimport { ApiStatus, SelectedType } from 'types/ExtendEnums';\nimport { ByttfastlegeJSProject } from 'types/project-name-constant';\n\nimport Loader from '@helsenorge/designsystem-react/components/Loader';\nimport NotificationPanel from '@helsenorge/designsystem-react/components/NotificationPanel';\nimport Spacer from '@helsenorge/designsystem-react/components/Spacer';\n\nimport { getResources as getSotResources } from 'resources';\nimport FilterComponent from './filter-component';\nimport { Tabell } from './tabell/tabell';\nimport { ActionContainer } from '../action-containere';\nimport useResources from '@helsenorge/framework-utils/resources/useResources';\nimport { HNByttFastlegeJS } from '../../../types/Resources';\n\ninterface ResultatsideProps {\n mdToLg?: boolean;\n}\n\nconst Resultateside = (props: ResultatsideProps): React.ReactElement => {\n const [sortValue, setSortValue] = useState(SelectedType.Fastlege);\n const [sortValueAsc, setSortValueAsc] = useState(true);\n const mdToLg = props.mdToLg;\n const resources = useResources(ByttfastlegeJSProject, getSotResources) as HNByttFastlegeJS;\n\n const { showActionContainer, actionContainerContent } = useTypedSelector(state => state.selectFastlegeSlice);\n const { apiStatus } = useTypedSelector(state => state.searchFastlegeSlice);\n\n useEffect(() => {\n // Hide article tiles - finnes denne?\n const tiles = document.getElementsByClassName('article_tiles')[0] as HTMLElement;\n if (tiles !== undefined) {\n tiles.style.display = 'none';\n tiles.classList.add('hidden');\n }\n // Set focus to header\n const sidetittel: HTMLElement | null = document.getElementById('sidetittel');\n if (sidetittel) {\n sidetittel.focus();\n }\n }, [showActionContainer]);\n\n const sortFastleger = (id: string, ascending: boolean | undefined): void => {\n if (id !== sortValue || ascending !== sortValueAsc) {\n setSortValue(SelectedType[id as keyof typeof SelectedType]);\n ascending && setSortValueAsc(ascending);\n }\n };\n\n const error: JSX.Element | null =\n apiStatus === ApiStatus.Error ? (\n \n {resources.bfl_ErrorMessage_Body}\n \n ) : null;\n\n const loader: JSX.Element | null =\n apiStatus === ApiStatus.InProgress ? (\n <>\n \n
    \n \n \n \n
    \n \n ) : null;\n\n const classes: string = classNames('oversikt', { loggedIn: isInnlogget() });\n\n return (\n
    \n
    \n {!showActionContainer && }\n {apiStatus === ApiStatus.Success && !showActionContainer ? (\n
    \n \n \n
    \n ) : (\n \n )}\n
    \n {error}\n {loader}\n
    \n );\n};\n\nexport default Resultateside;\n","import { CustomData, pushToDataLayer } from '@helsenorge/framework-utils/adobe-analytics';\n\nexport const trackSearch = (label: string): void => {\n const payload: CustomData = {\n event: 'component click',\n component: {\n label: label,\n type: 'Navigasjon',\n name: 'Bytte fastlege: søk',\n },\n };\n pushToDataLayer(payload);\n};\n","import React from 'react';\n\nimport { getLocationUrl } from 'byttefastlege/utils/url-utils';\nimport { trackSearch } from 'utils/adobe-analytics';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { CheckedKommune } from 'types/ExtendTypes';\nimport { ByttfastlegeJSProject } from 'types/project-name-constant';\n\nimport Button from '@helsenorge/designsystem-react/components/Button';\nimport Spacer from '@helsenorge/designsystem-react/components/Spacer';\nimport { getResources as getSotResources } from 'resources';\n\nimport useResources from '@helsenorge/framework-utils/resources/useResources';\n\ninterface FinnFastlegeProps {\n disabled: boolean;\n fylkeId: string | null;\n kommuner: CheckedKommune[] | null | undefined;\n searchFastlege: () => void;\n}\n\nexport const FinnFastlegeKnapp = (props: FinnFastlegeProps): React.ReactElement => {\n const { disabled, fylkeId, kommuner, searchFastlege } = props;\n\n const resources = useResources(ByttfastlegeJSProject, getSotResources) as HNByttFastlegeJS;\n\n const doLocationSearch = (\n event: React.MouseEvent | React.FormEvent<{}> | React.KeyboardEvent | null | undefined\n ): void => {\n event?.preventDefault();\n trackSearch('Bytte fastlege: søk fylke');\n if (event instanceof MouseEvent && event.ctrlKey && fylkeId && kommuner) {\n const finnFastlegeUrl: string = window.location.origin + window.location.pathname + getLocationUrl(fylkeId, kommuner);\n\n window.open(finnFastlegeUrl, '_blank');\n } else {\n searchFastlege();\n }\n };\n\n return (\n <>\n \n \n \n \n );\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/*\n * Sort list of rows as cols:\n *\n * a - b - c a - d - g\n * d - e - f => b - e - h\n * g - h - i c - f - i\n */\nexport function sortRowsAsCols(items: (any | null)[] | null | undefined, columns: number | undefined): (Record | null)[] {\n if (items && columns) {\n // Calculate total nr of rows\n const rows: number = Math.ceil(items.length / columns);\n\n let index = 0;\n const table: (Record | null)[][] = [];\n for (let i = 0; i < columns; i++) {\n // Create one array for each column\n table.push([]);\n\n for (let j = 0; j < rows; j++) {\n if (items.length > index) {\n table[i] = table[i].concat(items[index]);\n index += 1;\n }\n }\n }\n\n const sortedItems: (Record | null)[] = [];\n for (let i = 0; i < rows; i++) {\n for (let j = 0; j < table.length; j++) {\n if (table[j][i] !== undefined) {\n sortedItems.push(table[j][i]);\n } else {\n // empty item\n sortedItems.push(null);\n }\n }\n }\n return sortedItems;\n }\n return [];\n}\n","import React from 'react';\n\nimport classNames from 'classnames';\n\nimport { CheckedBydel as Bydel, CheckedKommune } from 'types/ExtendTypes';\n\nimport Checkbox from '@helsenorge/designsystem-react/components/Checkbox';\nimport FormLayout from '@helsenorge/designsystem-react/components/FormLayout';\nimport Label from '@helsenorge/designsystem-react/components/Label';\nimport Spacer from '@helsenorge/designsystem-react/components/Spacer';\n\nimport { sortRowsAsCols } from '../../../../../../utils/sort-rows-as-cols';\n\nimport './styles.scss';\ninterface KommuneProps {\n onlyOne?: boolean;\n kommune?: CheckedKommune;\n columns?: number;\n handleSelectKommune: (inputId: string) => void;\n handleSelectAllKommune: (inputIds: string[], selectAll: boolean) => void;\n isExpanded?: boolean;\n}\n\nexport const Kommune = (props: KommuneProps): React.ReactElement => {\n const { handleSelectKommune, onlyOne } = props;\n const OsloKommunenr = '0301';\n\n const getBydeler = (): Bydel[] => {\n const defaultColumns: number = props.columns ? props.columns : 0;\n const columns: number = defaultColumns === 1 ? defaultColumns : defaultColumns + 1;\n\n let bydeler: Bydel[];\n if (props.kommune) {\n const updatedBydeler = sortRowsAsCols(props.kommune.Bydeler, columns);\n bydeler = updatedBydeler as Bydel[];\n } else {\n bydeler = [];\n }\n\n return bydeler;\n };\n\n const getBydelerFilter = (): Bydel[] => {\n const bydeler: Bydel[] = getBydeler();\n return bydeler.filter((bydel: Bydel) => bydel !== null && bydel !== undefined);\n };\n\n const getBydelerSorted = (bydeler: Bydel[]): Bydel[] => {\n return bydeler.sort((a, b) => {\n if (a.Navn !== null && b.Navn !== null) {\n return a.Navn.toLocaleLowerCase().localeCompare(b.Navn.toLocaleLowerCase(), 'nb', { sensitivity: 'base' });\n }\n return 0;\n });\n };\n const getBydelerCheckbox = () => {\n const bydeler: Bydel[] = getBydelerFilter();\n const sortedBydeler: Bydel[] = getBydelerSorted(bydeler);\n return sortedBydeler.map((bydel: Bydel) => {\n return {\n inputId: bydel.Id ? bydel.Id : '',\n label: bydel.Navn ? bydel.Navn : '',\n checked: bydel.checked ? bydel.checked : false,\n };\n });\n };\n\n let content: JSX.Element | undefined;\n\n const isOslo = props?.kommune?.Id === OsloKommunenr;\n const isStavanger = props?.kommune?.Id === '1103';\n\n const shouldShowBydeler = React.useMemo(() => {\n return !!props.kommune?.checked || props.isExpanded || isOslo;\n }, [props.kommune, props.isExpanded, isOslo]);\n\n const [selectAll, setSelectAll] = React.useState(false);\n const kommunedelerStyles = classNames(isOslo ? '' : 'kommune-bydeler');\n const kommunedelerKnappStyles = classNames(isOslo ? 'oslo-knapp' : '');\n\n const handleSelectAll = () => {\n const newSelectAll = !selectAll;\n setSelectAll(newSelectAll);\n\n const allBydelerIds = getBydelerCheckbox().map(bydel => bydel.inputId);\n props.handleSelectAllKommune(allBydelerIds, newSelectAll);\n };\n\n React.useEffect(() => {\n let isMounted = true;\n const allChecked = getBydelerCheckbox().every(bydel => bydel.checked);\n if (isMounted) {\n setSelectAll(allChecked);\n }\n return () => {\n isMounted = false;\n };\n }, [props.kommune]);\n\n React.useEffect(() => {\n let isMounted = false;\n\n const someChecked = getBydelerCheckbox().some(bydel => bydel.checked);\n\n if (isMounted && (props.kommune?.checked === true || isOslo) && !someChecked) {\n setSelectAll(false);\n\n const allBydelerIds = getBydelerCheckbox().map(bydel => bydel.inputId);\n props.handleSelectAllKommune(allBydelerIds, false);\n }\n\n return () => {\n isMounted = false;\n };\n }, [props.kommune?.checked]);\n\n const labelText = isStavanger ? 'Alle kommunedeler' : 'Alle bydeler';\n\n if (props.kommune) {\n content = (\n
    \n {!onlyOne}\n\n {shouldShowBydeler ? (\n <>\n
    \n {!isOslo && }\n \n }\n checked={selectAll}\n />\n \n {getBydelerCheckbox().map((bydel, i) => (\n handleSelectKommune(bydel.inputId ? bydel.inputId : '')}\n inputId={bydel.inputId}\n label={bydel.label}\n checked={bydel.checked}\n key={i}\n >\n ))}\n \n
    \n \n ) : null}\n
    \n );\n }\n\n return
    {content}
    ;\n};\n","import React from 'react';\n\nimport { useTypedDispatch } from 'byttefastlege/hooks/useTypedDispatch';\nimport { createParamObj } from 'byttefastlege/stores/slice-search-fastlege/helper';\nimport { getFastleger } from 'byttefastlege/stores/slice-search-fastlege/thunks';\nimport { createNewUrlString } from 'byttefastlege/utils/url-utils';\n\nimport { AvtaleSokRequest } from '../../../../../../types/Fastlege.EntitiesEntities';\nimport { CheckedKommune, FylkeCheckedKommune } from 'types/ExtendTypes';\n\nimport Checkbox from '@helsenorge/designsystem-react/components/Checkbox';\n\nimport { FinnFastlegeKnapp } from './finn-fastlege-knapp';\nimport { Kommune } from './kommune/kommune';\nimport { BytteFastLegeState } from '../../../../../root';\nimport { sortRowsAsCols } from '../../../../../utils/sort-rows-as-cols';\n\nimport './styles.scss';\nimport { Action, ThunkAction } from '@reduxjs/toolkit';\n\ninterface KommunerProps {\n fylke: FylkeCheckedKommune;\n columns: number;\n handleSelectKommune: (inputId: string) => void;\n kommuner?: CheckedKommune[] | null;\n selected?: boolean;\n handleSelectAllKommune: (inputIds: string[], selectAll: boolean) => void;\n isExpanded?: boolean;\n}\n\nenum DeviceType {\n Mobile = 'mobile',\n Tablet = 'tablet',\n Desktop = 'desktop',\n}\n\nexport const Kommuner = (props: KommunerProps): JSX.Element | null => {\n const { fylke, columns, handleSelectKommune, kommuner, selected, handleSelectAllKommune } = props;\n\n const dispatch = useTypedDispatch();\n const OsloKommunenr = '0301';\n\n const getKommuner = (): {\n kommunerMedBydeler: CheckedKommune[];\n kommunerUtenBydeler: CheckedKommune[];\n alleKommuner: CheckedKommune[];\n } => {\n let kommunerMedBydeler: CheckedKommune[] = kommuner?.filter(kommune => kommune.Bydeler?.length) || [];\n let kommunerUtenBydeler: CheckedKommune[] = kommuner?.filter(kommune => !kommune.Bydeler?.length) || [];\n let alleKommuner: CheckedKommune[] = kommuner || [];\n\n if (columns) {\n const antallColumns: number = columns === 1 ? columns : columns + 1;\n kommunerMedBydeler = sortRowsAsCols(kommunerMedBydeler, antallColumns) as CheckedKommune[];\n kommunerUtenBydeler = sortRowsAsCols(kommunerUtenBydeler, antallColumns) as CheckedKommune[];\n alleKommuner = sortRowsAsCols(alleKommuner, antallColumns) as CheckedKommune[];\n }\n return { kommunerMedBydeler, kommunerUtenBydeler, alleKommuner };\n };\n\n const sortAndRearrange = (unsortedKommuner: CheckedKommune[], deviceType: DeviceType): CheckedKommune[] => {\n const nonNullKommuner = unsortedKommuner.filter(k => k !== null);\n\n const sortedKommuner = nonNullKommuner.sort((a, b) => {\n if (a && b) {\n return (a.Navn || '').localeCompare(b.Navn || '', 'nb', { sensitivity: 'base' });\n }\n if (a) return -1;\n if (b) return 1;\n return 0;\n });\n\n if (deviceType === DeviceType.Mobile) {\n return sortedKommuner;\n }\n\n let cols = 3;\n if (deviceType === DeviceType.Tablet) {\n cols = 2;\n }\n\n const reorderedKommuner = reorderForColumns(sortedKommuner, cols);\n\n return reorderedKommuner;\n };\n\n const reorderForColumns = (sortedKommuner: CheckedKommune[], cols: number): CheckedKommune[] => {\n // Filtrere ut Oslo kommune før placeholdersjekken\n const filteredKommuner = sortedKommuner.filter(kommune => kommune.Id !== OsloKommunenr);\n\n const remainder = filteredKommuner.length % cols;\n const itemsToAdd = remainder === 0 ? 0 : cols - remainder;\n\n const placeholders = Array(itemsToAdd)\n .fill(null)\n .map(() => ({\n // Lager en placeholder kommune for å supplere listene korrekt\n Bydeler: [],\n Id: 'placeholder',\n Navn: '',\n }));\n\n const paddedKommuner = filteredKommuner.concat(placeholders);\n\n // Tar tilbake Oslo kommune etter at placeholder er lagt til\n const finalKommuner = sortedKommuner.some(k => k.Id === OsloKommunenr)\n ? [...sortedKommuner.filter(k => k.Id === OsloKommunenr), ...paddedKommuner]\n : paddedKommuner;\n\n const rows = Math.ceil(finalKommuner.length / cols);\n const matrix = new Array(rows).fill(null).map(() => new Array(cols).fill(null));\n\n let index = 0;\n for (let col = 0; col < cols; col++) {\n for (let row = 0; row < rows; row++) {\n matrix[row][col] = finalKommuner[index];\n index++;\n }\n }\n\n return matrix.flat().filter(kommune => kommune && Object.keys(kommune).length > 0);\n };\n\n const getSortedKommuner = (): CheckedKommune[] => {\n const allKommuner = getKommuner().alleKommuner;\n\n let deviceType = DeviceType.Desktop;\n if (window.innerWidth <= 564) {\n deviceType = DeviceType.Mobile;\n } else if (window.innerWidth <= 1088) {\n deviceType = DeviceType.Tablet;\n }\n\n const sortedAndRearrangedKommuner = sortAndRearrange(allKommuner, deviceType);\n return sortedAndRearrangedKommuner;\n };\n\n const sortedKommuner = getSortedKommuner();\n\n const getLocation = (): CheckedKommune[] | null => {\n if (kommuner) {\n let nyeKommuner = [...kommuner];\n if (nyeKommuner[0].Id === OsloKommunenr) {\n nyeKommuner = nyeKommuner.map(k => ({ ...k, checked: true }));\n }\n return nyeKommuner;\n }\n return null;\n };\n\n const hasSelectedKommune = (): boolean => {\n const isOsloKommune = !!kommuner?.find(kommune => kommune.Id === OsloKommunenr);\n const kommuneIsSelected = !!kommuner?.find(kommune => kommune.checked);\n return isOsloKommune || kommuneIsSelected;\n };\n\n const kommunerGammel: {\n kommunerMedBydeler: CheckedKommune[];\n kommunerUtenBydeler: CheckedKommune[];\n alleKommuner: CheckedKommune[];\n } = getKommuner();\n\n let onlyOne = false;\n\n const searchFastlegeLocation = async (): Promise => {\n const nyeKommuner = getLocation();\n if (nyeKommuner && fylke.Id) {\n const avtaleRequest = await dispatch(getFastleger(nyeKommuner) as ThunkAction>);\n const data = createParamObj({ ...(avtaleRequest as AvtaleSokRequest), fylkeId: fylke.Id });\n createNewUrlString(data);\n }\n };\n\n if (\n kommunerGammel.kommunerMedBydeler.filter(el => el !== null).length === 1 &&\n kommunerGammel.kommunerUtenBydeler.filter(el => el !== null).length === 0\n ) {\n onlyOne = true;\n }\n const [selectedKommune, setSelectedKommune] = React.useState>({});\n\n const handleKommuneSelection = (kommuneId: string) => {\n handleSelectKommune(kommuneId);\n setSelectedKommune(prevSelected => ({\n ...prevSelected,\n [kommuneId]: !prevSelected[kommuneId],\n }));\n };\n\n const kommunerUtenBydelerListe: JSX.Element | null = sortedKommuner.length ? (\n
    \n {sortedKommuner.map((kommune, i) => (\n \n {kommune.Id !== OsloKommunenr && kommune.Id !== 'placeholder' ? (\n
    \n handleKommuneSelection(kommune.Id || '')}\n inputId={kommune.Id || ''}\n label={kommune.Navn || ''}\n checked={kommune.checked || false}\n />\n
    \n ) : kommune.Id === 'placeholder' ? (\n
    \n ) : (\n
    \n \n
    \n )}\n {kommune.checked && kommune.Bydeler?.length && kommune.Id !== OsloKommunenr ? (\n
    \n \n
    \n ) : null}\n
    \n ))}\n \n ) : null;\n\n return selected ? (\n
    \n {kommunerUtenBydelerListe}\n \n
    \n ) : null;\n};\n","import React, { useState } from 'react';\n\nimport { CheckedKommune, FylkeCheckedKommune } from 'types/ExtendTypes';\n\nimport Label from '@helsenorge/designsystem-react/components/Label';\nimport Select from '@helsenorge/designsystem-react/components/Select';\n\nimport { Kommuner } from './kommuner/kommuner';\n\nimport './styles.scss';\n\ninterface FylkeradProps {\n toggleFylkeRad?: (rowNr: number | undefined, id: string) => void;\n rowNr: number;\n columns: number;\n kommuner?: CheckedKommune[] | null;\n handleSelectKommune: (inputId: string) => void;\n handleSelectAllKommune: (inputIds: string[], selectAll: boolean) => void;\n selectedFylke?: FylkeCheckedKommune;\n fylker: FylkeCheckedKommune[];\n}\n\nconst Fylkerad = (props: FylkeradProps): React.ReactElement | null => {\n const { handleSelectKommune, handleSelectAllKommune, rowNr, toggleFylkeRad, kommuner, columns, selectedFylke, fylker } = props;\n\n const [selectedFylkeId, setSelectedFylkeId] = useState(selectedFylke?.Id ?? null);\n\n const sortedFylker = [...(fylker || [])].sort((a, b) => (a.Navn || '').localeCompare(b.Navn || ''));\n\n if (sortedFylker) {\n const fylkerOptions: JSX.Element[] = sortedFylker\n .map((location, index) => {\n return location === null ? null : (\n \n );\n })\n .filter((option): option is JSX.Element => option !== null);\n\n const kommuneElement: (JSX.Element | null)[] = sortedFylker.map((location, index) => {\n return location === null ? null : (\n \n );\n });\n\n return (\n ) => {\n if (e.target instanceof HTMLSelectElement) {\n const newSelectedFylkeId = e.target.value;\n setSelectedFylkeId(newSelectedFylkeId);\n\n if (toggleFylkeRad) {\n toggleFylkeRad(rowNr, newSelectedFylkeId);\n }\n }\n }}\n >\n }\n className=\"select-bredde\"\n testId=\"DropdownBtn\"\n value={selectedFylkeId ?? ''}\n >\n \n {fylkerOptions}\n \n {kommuneElement}\n \n );\n }\n return null;\n};\n\nexport default Fylkerad;\n","import { CheckedKommune } from 'types/ExtendTypes';\n\nexport const updateSelectKommune = (id: string, kommuner: CheckedKommune[], selectAll?: boolean): CheckedKommune[] => {\n // Bydeler har 4+ siffer\n const erBydelTil: string | false = id.length > 4 ? id.slice(0, 4) : false;\n\n return erBydelTil\n ? kommuner.map(k =>\n k.Bydeler?.length && k.Id === erBydelTil\n ? // Toggler checked for bydeler\n {\n ...k,\n Bydeler: k.Bydeler.map(b =>\n b.Id === id\n ? selectAll === true\n ? { ...b, checked: true }\n : b.checked\n ? { ...b, checked: false }\n : { ...b, checked: true }\n : b\n ),\n }\n : k\n )\n : kommuner.map(k =>\n k.Id === id\n ? // Toggler checked for bydeler. Dersom kommunen blir false settes også bydeler til false.\n k.checked\n ? { ...k, checked: false, Bydeler: k.Bydeler?.length ? k.Bydeler.map(b => (b.checked ? { ...b, checked: false } : b)) : [] }\n : { ...k, checked: true }\n : k\n );\n};\n\nexport const updateSelectAllKommuner = (id: string[], kommuner: CheckedKommune[], selectAll?: boolean): CheckedKommune[] => {\n let newKommuner = [...kommuner];\n\n id.forEach(id => {\n newKommuner = updateSelectKommune(id, newKommuner, selectAll);\n });\n\n return newKommuner;\n};\n","import React, { useState, useEffect } from 'react';\n\nimport { useTypedDispatch } from 'byttefastlege/hooks/useTypedDispatch';\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\nimport { setSelectedSted } from 'byttefastlege/stores/slice-search-fastlege/reducer';\n\nimport { FylkeCheckedKommune } from 'types/ExtendTypes';\nimport { Fylke } from 'types/Fastlege.EntitiesEntities';\n\nimport { theme } from '@helsenorge/designsystem-react';\n\nimport Fylkerad from './fylkerad/fylkerad';\nimport { updateSelectKommune, updateSelectAllKommuner } from './helper';\nimport { sortRowsAsCols } from '../../../utils/sort-rows-as-cols';\n\nimport './styles.scss';\n\nexport const Fylker = (): JSX.Element => {\n const [columns, setColumns] = useState();\n\n const initFylker = useTypedSelector(state => state.initDataSlice.fylker);\n const { selectedSted } = useTypedSelector(state => state.searchFastlegeSlice);\n const dispatch = useTypedDispatch();\n\n const getColumns = (): number => {\n if (window.matchMedia(theme.screen.lg).matches) return 4;\n else if (window.matchMedia(theme.screen.md).matches) return 3;\n else if (window.matchMedia(theme.screen.sm).matches) return 2;\n else return 1;\n };\n\n const handleResize = (): void => {\n const newColumns: number = getColumns();\n if (newColumns !== columns) {\n setColumns(newColumns);\n }\n };\n\n useEffect(() => {\n setColumns(getColumns());\n }, []);\n\n useEffect(() => {\n window.addEventListener('resize', handleResize);\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n }, []);\n\n const getFylkeFraId = (fylkeId: string | undefined): FylkeCheckedKommune | undefined => {\n return initFylker?.find((fylke: Fylke) => fylke.Id === fylkeId);\n };\n\n const toggleFylkeRad = (_index: number | undefined, fylkeId: string): void => {\n const kommuner = getFylkeFraId(fylkeId)?.Kommuner;\n\n if (fylkeId === selectedSted?.fylkeId) {\n dispatch(setSelectedSted(null));\n } else {\n kommuner && dispatch(setSelectedSted({ fylkeId, checkedKommuner: kommuner }));\n }\n };\n\n const handleSelectKommune = (inputId: string | string[], selectAll?: boolean): void => {\n if (Array.isArray(inputId)) {\n const updatedKommuner = updateSelectAllKommuner(inputId, selectedSted?.checkedKommuner || [], selectAll);\n dispatch(setSelectedSted({ ...selectedSted, checkedKommuner: updatedKommuner }));\n } else {\n const oppdatertKommune = selectedSted?.checkedKommuner && updateSelectKommune(inputId, selectedSted?.checkedKommuner);\n dispatch(setSelectedSted({ ...selectedSted, checkedKommuner: oppdatertKommune }));\n }\n };\n\n const sortedFylker: Fylke[] = (sortRowsAsCols(initFylker, columns) as (Fylke | null)[]).filter(f => f !== null) as Fylke[];\n const fylkeRader: JSX.Element[] | null = [];\n\n if (sortedFylker.length > 0) {\n const cols = columns || 1;\n fylkeRader.push(\n \n );\n }\n return
    {fylkeRader}
    ;\n};\n\nexport default Fylker;\n","import React, { useEffect, useRef, useState } from 'react';\n\nimport { useTypedDispatch } from 'byttefastlege/hooks/useTypedDispatch';\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\nimport { createParamObj } from 'byttefastlege/stores/slice-search-fastlege/helper';\nimport { getFastleger } from 'byttefastlege/stores/slice-search-fastlege/thunks';\nimport { createNewUrlString } from 'byttefastlege/utils/url-utils';\nimport { trackSearch } from 'utils/adobe-analytics';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { AvtaleSokRequest } from '../../../../types/Fastlege.EntitiesEntities';\nimport { SelectedType } from 'types/ExtendEnums';\n\nimport Button from '@helsenorge/designsystem-react/components/Button';\nimport FormGroup from '@helsenorge/designsystem-react/components/FormGroup';\nimport FormLayout from '@helsenorge/designsystem-react/components/FormLayout';\nimport Icon from '@helsenorge/designsystem-react/components/Icon';\nimport Search from '@helsenorge/designsystem-react/components/Icons/Search';\nimport Input from '@helsenorge/designsystem-react/components/Input';\nimport Label from '@helsenorge/designsystem-react/components/Label';\nimport RadioButton from '@helsenorge/designsystem-react/components/RadioButton';\n\nimport './styles.scss';\nimport { ThunkAction, Action } from '@reduxjs/toolkit';\n\nimport { BytteFastLegeState } from '../../../root';\n\ninterface SokefeltProps {\n resources: HNByttFastlegeJS;\n}\nexport const Sokefelt = ({ resources }: SokefeltProps): React.ReactElement => {\n const searchInputRef = useRef(null);\n\n const [inputValue, setInputValue] = useState('');\n const [selectedSearchType, setSelectedSearchType] = useState(SelectedType.Fastlege);\n\n const dispatch = useTypedDispatch();\n const { sok } = useTypedSelector(state => state.searchFastlegeSlice);\n const isFastlegeNavnSok = (value: SelectedType | string): boolean => value === SelectedType.Fastlege;\n\n useEffect(() => {\n if (sok?.type === SelectedType.Fastlege || sok?.type === SelectedType.Fastlegekontor) {\n sok.sokerPaa && setInputValue(sok.sokerPaa[0]);\n setSelectedSearchType(sok.type);\n }\n }, []);\n\n const updateInputValue = (e: React.ChangeEvent): void => {\n const newValue = e.target.value;\n setInputValue(newValue);\n };\n\n const isValidCharacter = (text: string | undefined, allowSlash: boolean): boolean => {\n const pattern = allowSlash ? '[0-9./-]+' : '[0-9.-]+';\n const reg = new RegExp(pattern); // Matches number, forward slash, dash, or dot\n if (text) {\n return reg.test(text);\n }\n\n return false;\n };\n const removeSpecialCharacters = (text: string | undefined): string => {\n if (text) {\n const lower: string = text.toLowerCase();\n const upper: string = text.toUpperCase();\n let result = '';\n for (let i = 0; i < lower.length; ++i) {\n const allowSlash = selectedSearchType === SelectedType.Fastlegekontor;\n if (isValidCharacter(text[i], allowSlash) || lower[i] !== upper[i] || lower[i].trim() === '') {\n result += text[i];\n }\n }\n return result;\n }\n return '';\n };\n\n const searchFastlegeName = async (searchString: string, searchType: SelectedType): Promise => {\n const fastlegeNavnSok = isFastlegeNavnSok(searchType);\n const avtaleRequest = await dispatch(\n getFastleger({ searchString, fastlegeNavnSok }) as ThunkAction, BytteFastLegeState, void, Action>\n );\n const data = createParamObj({ ...avtaleRequest, fylkeId: undefined });\n createNewUrlString(data);\n };\n\n const triggerSearch = (): void => {\n if (inputValue && inputValue.length > 2) {\n if (isFastlegeNavnSok(selectedSearchType)) {\n trackSearch('Bytte fastlege: søk navn');\n } else {\n trackSearch('Bytte fastlege: søk legekontor');\n }\n const searchString: string = removeSpecialCharacters(inputValue);\n searchFastlegeName(searchString, selectedSearchType);\n } else if (searchInputRef && searchInputRef.current) {\n searchInputRef.current.focus();\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent): void => {\n if (event.key === 'Enter') {\n event.preventDefault();\n triggerSearch();\n }\n };\n\n const doSearch = (\n event: React.MouseEvent | React.FormEvent<{}> | React.KeyboardEvent | null | undefined\n ): void => {\n if (event instanceof MouseEvent && event?.ctrlKey) {\n const searchValue = searchInputRef && searchInputRef.current ? searchInputRef.current.value : '';\n\n const finnFastlegeUrl: string =\n `${window.location.origin + window.location.pathname}?` +\n `searchquery=${searchValue}&searchquerytype=${selectedSearchType.toLocaleLowerCase()}`;\n\n window.open(finnFastlegeUrl, '_blank');\n } else {\n event?.preventDefault();\n if (inputValue && inputValue.length > 2) {\n if (isFastlegeNavnSok(selectedSearchType)) {\n trackSearch('Bytte fastlege: søk navn');\n } else {\n trackSearch('Bytte fastlege: søk legekontor');\n }\n const searchString: string = removeSpecialCharacters(inputValue);\n //Filter on redux store\n searchFastlegeName(searchString, selectedSearchType);\n } else if (searchInputRef && searchInputRef.current) {\n searchInputRef.current.focus();\n }\n }\n };\n\n const handleRadioChange = (event: React.ChangeEvent) => {\n const value = event.target.value;\n setSelectedSearchType(isFastlegeNavnSok(value) ? SelectedType.Fastlege : SelectedType.Fastlegekontor);\n };\n\n return (\n \n {/* {resources.bfl_StartPage_Search_Title} */}\n \n }\n inputId=\"soekPaaFastlege\"\n onColor=\"onwhite\"\n name=\"radio\"\n value={SelectedType.Fastlege}\n onChange={handleRadioChange}\n defaultChecked={selectedSearchType === SelectedType.Fastlege}\n />\n }\n inputId=\"soekPaaLegekontor\"\n onColor=\"onwhite\"\n name=\"radio\"\n value={SelectedType.Fastlegekontor}\n onChange={handleRadioChange}\n defaultChecked={selectedSearchType === SelectedType.Fastlegekontor}\n />\n \n
    \n \n\n \n
    \n
    \n );\n};\n","import React, { useEffect } from 'react';\n\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { ByttfastlegeJSProject } from 'types/project-name-constant';\n\nimport Spacer from '@helsenorge/designsystem-react/components/Spacer';\nimport Title from '@helsenorge/designsystem-react/components/Title';\n\nimport { ActionContainer } from '../action-containere';\nimport Fylker from './fylker/fylker';\nimport { Sokefelt } from './sokefelt/sokefelt';\nimport { getResources as getSotResources } from 'resources';\n\nimport './styles.scss';\nimport useResources from '@helsenorge/framework-utils/resources/useResources';\n\nexport const Startside: React.FC = () => {\n const resources = useResources(ByttfastlegeJSProject, getSotResources) as HNByttFastlegeJS;\n const { showActionContainer, actionContainerContent } = useTypedSelector(state => state.selectFastlegeSlice);\n\n useEffect(() => {\n // Show tiles - Sjekk hva dette er\n const tiles: HTMLElement = document.getElementsByClassName('article_tiles')[0] as HTMLElement;\n if (tiles !== undefined) {\n tiles.style.display = 'block';\n tiles.classList.remove('hide');\n }\n }, []);\n\n return (\n <>\n {!showActionContainer ? (\n
    \n \n
    \n \n {resources.bfl_StartPage_Locations_ButtonText}\n \n
    \n\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n
    \n
    \n ) : (\n \n )}\n \n );\n};\n","import React, { useEffect } from 'react';\n\nimport { ThunkAction, Action } from '@reduxjs/toolkit';\nimport { DinFastlegeBanner } from 'byttefastlege/components/din-fastlege-banner';\nimport { InfoMeldinger } from 'byttefastlege/components/info-meldinger/info-meldinger';\nimport { InnLoggingsKnapp } from 'byttefastlege/components/innloggings-knapp/innloggings-knapp';\nimport Resultatside from 'byttefastlege/components/resultatside';\nimport { Startside } from 'byttefastlege/components/startside';\nimport { useTypedDispatch } from 'byttefastlege/hooks/useTypedDispatch';\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\nimport { getInitialData } from 'byttefastlege/stores/slice-init-data/thunks';\nimport { setShowStartpage } from 'byttefastlege/stores/slice-search-fastlege/reducer';\nimport { setShowActionContainer } from 'byttefastlege/stores/slice-select-fastlege/reducer';\nimport { getResources as getSotResources } from 'resources';\nimport { ApiStatus } from 'types/ExtendEnums';\nimport { ByttfastlegeJSProject } from 'types/project-name-constant';\nimport useResources from '@helsenorge/framework-utils/resources/useResources';\nimport NotificationPanel from '@helsenorge/designsystem-react/components/NotificationPanel';\nimport PageLoader from '@helsenorge/core-framework/page-loader/page-loader';\nimport './styles.scss';\nimport { BytteFastLegeState } from '../../root';\nimport { HNByttFastlegeJS } from '../../../types/Resources';\n\nexport const ByttFastlegeContainer = (): JSX.Element => {\n const windowState = window.history.state !== null ? window.history.state : { isResultPage: false };\n window.history.replaceState(windowState, '', window.location.href);\n\n const dispatch = useTypedDispatch();\n const errorMessage = useTypedSelector(state => state.initDataSlice.errorMessage);\n\n const resources = useResources(ByttfastlegeJSProject, getSotResources);\n\n const getNotificationVariant = (errorMessage: string) => {\n if (errorMessage.includes('Du har ikke tilgang')) {\n return 'info'; // Use \"warning\" for access-related issues\n }\n if (errorMessage.includes('Vi har et teknisk problem')) {\n return 'error';\n } else if (errorMessage.includes('Teknisk feil')) {\n return 'error'; // Use \"error\" for technical issues\n }\n };\n\n // Optional: Call the initial data fetch once the component mounts\n useEffect(() => {\n dispatch(getInitialData() as ThunkAction>);\n }, []);\n const { apiStatus, meldinger } = useTypedSelector(state => state.initDataSlice);\n const apiStatusInnbyggerBarn = useTypedSelector(state => state.innbyggersBarnSlice).apiStatus;\n const { showStartPage } = useTypedSelector(state => state.searchFastlegeSlice);\n const { showActionContainer } = useTypedSelector(state => state.selectFastlegeSlice);\n\n // Event listener for when the user presses the Back-button or Forward-button in browser\n const popStateListener = async (e: PopStateEvent): Promise => {\n e.preventDefault();\n e.stopPropagation();\n\n if (e.state.isResultPage !== undefined && e.state.isResultPage) {\n if (showActionContainer) {\n dispatch(setShowActionContainer({ show: false, type: undefined }));\n }\n } else {\n dispatch(setShowStartpage(true));\n }\n };\n\n useEffect(() => {\n window.addEventListener('popstate', popStateListener);\n return () => window.removeEventListener('popstate', popStateListener);\n }, [showActionContainer]);\n\n const inProgress = apiStatus === ApiStatus.InProgress || apiStatusInnbyggerBarn === ApiStatus.InProgress;\n const error = apiStatus === ApiStatus.Error;\n\n if (errorMessage) {\n const variant = getNotificationVariant(errorMessage);\n return (\n \n {errorMessage}\n \n );\n }\n return resources ? (\n \n \n \n \n\n
    \n {showStartPage ? : }\n
    \n \n ) : (\n <>\n );\n};\n","import { createSlice } from '@reduxjs/toolkit';\n\nimport { ApiStatus } from '../../../types/ExtendEnums';\nimport { InnbyggersBarn } from 'types/Fastlege.EntitiesEntities';\n\nimport { getInnbyggersBarn } from './thunks';\nimport { name } from '../../utils/shared-constants';\n\nexport type InnbyggersBarnState = {\n innbyggersBarn: InnbyggersBarn[] | null;\n apiStatus: ApiStatus;\n};\n\nexport const initialState: InnbyggersBarnState = {\n innbyggersBarn: null,\n apiStatus: ApiStatus.Idle,\n};\n\nexport const innbyggersBarnSlice = createSlice({\n name,\n initialState,\n reducers: {\n resetState: () => initialState,\n },\n extraReducers: builder => {\n builder\n .addCase(getInnbyggersBarn.pending, state => {\n state.apiStatus = ApiStatus.InProgress;\n })\n .addCase(getInnbyggersBarn.fulfilled, (state, { payload }) => {\n state.apiStatus = ApiStatus.Success;\n state.innbyggersBarn = payload?.InnbyggersBarn || null;\n })\n .addCase(getInnbyggersBarn.rejected, state => {\n state.apiStatus = ApiStatus.Error;\n });\n },\n});\nexport const { resetState } = innbyggersBarnSlice.actions;\nexport default innbyggersBarnSlice.reducer;\n","import { combineReducers, Reducer } from 'redux';\n\nimport hjelpeskuff, { HjelpeskuffState } from '@helsenorge/core-framework/prosesshjelp/hjelpeskuff/hjelpeskuff-state';\nimport cmsTjenesteTekster, { GlobalStateWithCmsTjenesteTekster } from '@helsenorge/framework-utils/cms-tjeneste-tekster';\nimport resources, { GlobalStateWithResources } from '@helsenorge/framework-utils/resources';\nimport language from '@helsenorge/framework-utils/language';\nimport initDataSlice, { InitDataState } from './stores/slice-init-data/reducer';\nimport innbyggersBarnSlice, { InnbyggersBarnState } from './stores/slice-innbyggers-barn/reducer';\nimport searchFastlegeSlice, { SearchFastlegeState } from './stores/slice-search-fastlege/reducer';\nimport selectFastlegeSlice, { selectFastlegeState } from './stores/slice-select-fastlege/reducer';\n\nconst rootReducer: Reducer = combineReducers({\n language,\n cmsTjenesteTekster,\n resources,\n hjelpeskuff,\n initDataSlice,\n innbyggersBarnSlice,\n searchFastlegeSlice,\n selectFastlegeSlice,\n});\n\nexport interface BytteFastLegeState extends GlobalStateWithResources, GlobalStateWithCmsTjenesteTekster {\n hjelpeskuff: HjelpeskuffState;\n initDataSlice: InitDataState;\n innbyggersBarnSlice: InnbyggersBarnState;\n searchFastlegeSlice: SearchFastlegeState;\n selectFastlegeSlice: selectFastlegeState;\n}\n\nexport default rootReducer;\n","// eslint-disable-next-line import/default\nimport React from 'react';\n\nimport ReactDOM from 'react-dom/client';\nimport { Provider } from 'react-redux';\nimport { configureStore } from '@reduxjs/toolkit';\nimport { BrowserRouter as Router } from 'react-router-dom';\n\nimport PageRoot from '@helsenorge/core-framework/pageroot/';\nimport { getPath } from '@helsenorge/framework-utils/hn-page';\nimport { captureErrors } from '@helsenorge/framework-utils/logger';\n\nimport { ByttFastlegeContainer } from './components/bytte-fastlege';\nimport rootReducer from './root';\n\nimport './styles.scss';\n\nconst store = configureStore({ reducer: rootReducer });\n\ncaptureErrors();\n\nasync function enableMocking(): Promise {\n if (import.meta.env.MODE !== 'mocks') {\n return;\n }\n const { worker } = await import('../mocks/browser');\n return worker.start({\n onUnhandledRequest: 'bypass',\n });\n}\n\nenableMocking().then(() => {\n ReactDOM.createRoot(document.getElementById('main-content-wrapper')!).render(\n \n \n {' '}\n \n \n \n \n \n );\n});\n\nexport type RootState = ReturnType;\nexport type AppDispatch = typeof store.dispatch;\n"],"names":["useTypedDispatch","useDispatch","useTypedSelector","useSelector","ApiStatus","SelectedType","UrlSokeType","ActionContainerType","handleError","err","postPr","proxyName","serviceName","params","response","post","getPr","get","removePr","endPoint","remove","name","api","dinFastlegeUrl","idPortenUrl","venteListeCondition","getState","apiStatus","selectFastlege","createAsyncThunk","AvtaleId","PersonIdListe","_arg","setVentelisteFastlege","isChange","removeVentelisteFastlege","initialState","selectFastlegeSlice","createSlice","state","payload","builder","setShowActionContainer","resetVentelisteRespons","selectFastlegeSlice$1","BarnInfo","resources","innbyggersBarn","barnInfoElement","jsx","SafeHTML","Hjelpetrigger","child","index","ventelisteElement","currentFastlegeText","gjenstBytte","antallBytterText","bytterIgjenText","format","ventelisteLegenavn","ventelisteText","legenavn","_a","_b","currentFastlegeElement","jsxs","useEffect","DinFastlegeBanner","showChildren","setShowChildren","useState","useResources","ByttfastlegeJSProject","getSotResources","venteliste","innbygger","tilhorighetMelding","tilhorighetFremtidigMelding","tilhorighetFastlegeAvtale","innbyggersBarnApiStatus","showActionContainer","dispatch","onInnbyggersBarnUpdated","childrenComponent","isAuthorized","childrenErrorComponent","NotificationPanel","showChildrenComponent","Fragment","Spacer","Expander","meldAvVenteliste","trackSelfService","fremtidigBytteMelding","onVenteliste","ventelisteFastlegeNavn","koPlassNummer","antallPaVenteliste","meldAvVentelisteButton","Button","fastlegebytterElement","erSio","fastlegebytterText","gjenstBytteText","fastlegebytterTextFormatted","fastlegebytterClasses","classNames","melding","fastlegeNavn","AnchorLink","InfoMeldinger","meldinger","message","meldingsType","type","InnLoggingsKnapp","btnText","useMock","getLoginUrl","login","e","parameterStart","Icon","Lock","createNewUrlString","paramObj","paramObject","key","newUrlString","counter","param","findUrlParametersValue","urlParameters","setNewUrl","urlParameter","urlParameterType","urlParameterValue","fixedUrlKommuner","urlKommune","fixedUrlBydeler","urlBydel","addToParameterResetTypes","parameterString","parameterResetTypes","onUpdateUrlFiltersNy","activeFilters","filterMapping","filter","mapping","value","getLocationUrl","fylkeId","kommuner","newUrl","selectedBydeler","kommune","bydel","filterFastleger","fastlegeAvtaler","fastlegeAvtalerFiltered","fastlegeAvtale","alder","kjonn","universeltUtformet","samisk","sio","PrimarHelseTeamId","valgbar","someAlderIsChecked","thisAlderIsValid","someKjonnIsChecked","thisKjonnIsValid","universeltIsChecked","thisUniverseltIsValid","samiskIsChecked","thisSamiskIsValid","sioIsChecked","thisSioIsValid","primaerHelseTeamChecked","thisPrimaerHelseTeamIsValid","kunLedigeIsChecked","thisKunLedigeIsValid","numAlder","filterValuePrimaerhelseteam","avtaleSokRequest","getAvtaleRequestLokasjon","sokeData","data","kommunerIdList","bydelerIdList","getAvtaleRequestString","createParamObj","obj","searchType","getSearchArray","sokeArray","s","checkedBydeler","b","getSelectedOmraader","kommunerId","bydelerId","checkedKommuner","k","selectedKommune","fetchFastleger","isInnlogget","getFastleger","setShowStartpage","avtaleRequest","setSelectedSted","setSok","fetchFastlegeDetails","res","details","avtaleId","feilkildeList","error","searchFastlegeSlice","action","resetState","filterFastlegeAvtaler","searchFastlegeSlice$1","SokeResultatHeader","sok","onEndreSokClick","searchResults","ChevronRight","getChildName","childName","filterStringsObj","FilterComponent","props","fastlegeAvtalerModified","erInnlogget","filters","setFilter","setDelayedFilter","updateFilters","useFilters","filtersStrings","flereValg","Filter","Checkbox","Label","x","FastlegeSpesialiteter","fastlegeDetails","spesialiteter","spesialitet","comma","avtaleDetaljerRequest","rowData","firstToLowerCase","string","firstToUpperCase","createPrintElement","bottomPrintText","oldPrintElement","element","newPrintElement","printStyle","sanitize","bottomText","removePrintElement","printElement","printElementStyle","stepLocation","stepLocalization","step1Localization","step2Localization","step3Localization","print","ansvarligText","getFormattedDateString","date","parseISO","nb","VikarerElement","vikarer","getVikarElement","vikar","fornavn","etternavn","fradato","tildato","navn","periode","fra","til","navnElement","vikarOgKjonnElement","prosent","periodeElement","fastlegeId","fastlegeFornavn","fastlegeEtternavn","_c","delelisteLegeId","_d","delelisteLegeFornavn","_e","delelisteLegeEtternavn","_f","fastlegeVikarer","delelisteLegeVikarer","legelosVikarer","Title","FastlegeInfo","fastlege","antallPlasser","ledigePlaser","ventelistePlasser","fastlegeAutorisert","fastlegeSamisk","avtaleDetaljer","avtaleDato","poststed","avtaleStartetText","avtaleDatoElement","delelisteLege","delelisteLegeAlder","delelisteLegeKjonn","fastlegeNavnElement","samisktalendeEllerSioElement","sjekkForError","avtaledetaljer","fellesliste","person","fastlegeSpesialitetElement","fastlegeAutorisertElement","pasientListeClasses","FemaleDoctor","MaleDoctor","PersonList","title","resourceStrings","list","listHeader","triggerId","infoText","getPersonElement","personList","OmLegesenteret","legesenter","getUtekontorString","utekontor","adresse","legesenterNavn","legesenterAdresse","legesenterTelefon","legesenterApningstider","legesenterUniverselt","legesenterUrl","utekontorer","ExpanderList","Wheelchair","PhoneLink","React","EkspandertInnhold","memo","expanded","setFastlegeDetails","loaded","isLoaded","pRowData","useRef","loadFastlegeDetails","parameters","content","Loader","loading","AntallPaaVentelisteCell","isVenteliste","mobile","useBreakpoint","Breakpoint","getAntallPaVenteliste","getVenteListeElement","retVal","className","noVenteliste","columnTitle","venteListeDesktopElement","venteListeMobilElement","Cell","FastlegeCell","isOnVenteliste","getVikarerText","tilDato","vikar1","vikar2","tilDato1","tilDato2","getContent","delelistelege","isYourFastlege","fastlegeFullname","fastlegeCell","delelistelegeElement","delelistelegeVikarer","listeUtenFastlegeVikarer","delelistelegeId","vikarForId","delelistelegeFornavn","delelistelegeEtternavn","delelistelegeAlder","delelistelegeKjonn","_h","_g","wrapperClasses","LegekontorCell","legeKontor","legeKontorName","legeKontorAdresse","HandlingKnapp","handleSelectFastlege","meldPaaVenteliste","isOnVenteListe","isVenteListe","notAvailable","onlySio","changeButtonDisabled","HandlingerCell","event","dinFastlegeFlapp","ventelisteFlapp","Journal","handlingClasses","stopPropagation","LedigePlasserCell","ledigePlasserDesktopClasses","getCustomSetSortValue","columnKey","fastlegeAvtalerObj","fastlegeObj","Tabell","sortAsc","sortColumn","sortFastleger","resultsPerClick","rowdata","PageLoader","Table","object","ExpandableRow","Column","Steg1VelgPersoner","toggleSelectedChild","selectedChildren","goToNextStep","closeActionContainer","headerRef","toggleSelectChild","bytterIgjen","antall","bytteIgjenText","currentFastlegeNavn","thisFastlegeNavn","header","getBarnWarning","innbyggersBarnListe","handleSelectChild","checked","bytteIgjenTextBarn","showFastlegeNavn","disabled","disabledText","childLabelStrings","text","naavarendeFastlegeText","Sublabel","Steg2Bekreft","goToStep","hasChildren","bekreftByttet","currentHash","goBackToStep1","getSelectedChildrenNames","selectedChildrenNames","selectedChild","classes","backToStep1Element","ArrowLeft","spinner","setFastlegeErrorTitle","Steg3Kvittering","listeTilhorlighet","tilFastlege","fremtidig","fraDato","registrertDato","postNrPostSted","telefonnummer","Printer","StepContainerStep","__publicField","prevProps","updatedTabbableElements","resetTabIndex","tabbableElements","previousTabIndexes","setTabIndex","css","style","StepContainer","id","height","_prevProps","prevState","currentStep","nextStep","thisHeight","nextHeight","prevStep","childrenWithProps","step","count","active","noHeightStyle","StepIndicatorStep","placeholder","expression","StepIndicator","next","childCount","isCurrentStep","BytteComponent","selectedFastlege","stepIndicatorRef","stepContainerRef","setCurrentStep","setSelectedChildren","popStateListener","selectedChildrenIDs","childIndex","request","resp","selectedChildIndex","newSelectedChildren","_item","BytteContainer","InitialChoiceComponent","backToResultPage","goToBytteFastlege","dispatchedFrom","onChange","checkedOption","goToMeldeAv","selectedValue","setSelectedValue","handleRadioChange","ventelisteFastlegenavn","ventelisteAntallPlasser","ventelistePlass","userOnWaitingList","meldePaaInfoText1","meldePaaInfoText3","userIsOnWaitingList","bytteFastlegeHeader","bytteFastlegeInfo","FormGroup","RadioButton","InitialChoiceContainer","setCheckedOption","showValidation","setShowValidation","fetchInitialData","_","rejectWithValue","errorMessage","initDataSlice","_j","_i","initDataSlice$1","getInnbyggersBarn","searchFromUrl","bydeler","searchquery","searchquerytype","setSokeStringFromUrl","fylke","fylker","valgtOmraade","f","setChecked","getInitialData","MeldAvSteg1","noChildren","childCanMeldeAv","apiStatusVenteListe","bekreft","childrenSelectorElement","placeInVenteliste","infoText1","MeldAvSteg2","resetSelectedChildren","removeFromVentelisteResponse","nextStepButtonText","nextStepButton","MeldPaaSteg1","isMeldeAvMeldePaa","currentVentelisteLegenavn","settVenteliste","velgBarnInfo","checkboxLabel","MeldPaaSteg2","isMeldePaa","requestArg","fastlegeMedNavn","infoText2","infoText3","MeldPaaSteg3","setVentelisteResponse","getRegisteredDate","VentelisteComponent","actionContainerContent","isMeldeAv","noChildrenWithSameVenteliste","step2Text","VentelisteContainer","apiStatusInnbyggersBarn","refetch","ActionContainer","scrollToTop","containerContent","Resultateside","sortValue","setSortValue","sortValueAsc","setSortValueAsc","mdToLg","tiles","sidetittel","ascending","loader","trackSearch","label","pushToDataLayer","FinnFastlegeKnapp","searchFastlege","doLocationSearch","finnFastlegeUrl","sortRowsAsCols","items","columns","rows","table","j","sortedItems","Kommune","handleSelectKommune","onlyOne","OsloKommunenr","getBydeler","defaultColumns","getBydelerFilter","getBydelerSorted","a","getBydelerCheckbox","isOslo","isStavanger","shouldShowBydeler","selectAll","setSelectAll","kommunedelerStyles","kommunedelerKnappStyles","handleSelectAll","newSelectAll","allBydelerIds","isMounted","allChecked","someChecked","labelText","FormLayout","i","Kommuner","selected","handleSelectAllKommune","getKommuner","kommunerMedBydeler","kommunerUtenBydeler","alleKommuner","antallColumns","sortAndRearrange","unsortedKommuner","deviceType","sortedKommuner","cols","reorderForColumns","filteredKommuner","remainder","itemsToAdd","placeholders","paddedKommuner","finalKommuner","matrix","col","row","allKommuner","getLocation","nyeKommuner","hasSelectedKommune","isOsloKommune","kommuneIsSelected","kommunerGammel","searchFastlegeLocation","el","setSelectedKommune","handleKommuneSelection","kommuneId","prevSelected","kommunerUtenBydelerListe","Fylkerad","rowNr","toggleFylkeRad","selectedFylke","selectedFylkeId","setSelectedFylkeId","sortedFylker","fylkerOptions","location","option","kommuneElement","newSelectedFylkeId","Select","updateSelectKommune","erBydelTil","updateSelectAllKommuner","newKommuner","Fylker","setColumns","initFylker","selectedSted","getColumns","theme","handleResize","newColumns","getFylkeFraId","_index","inputId","updatedKommuner","oppdatertKommune","fylkeRader","Sokefelt","searchInputRef","inputValue","setInputValue","selectedSearchType","setSelectedSearchType","isFastlegeNavnSok","updateInputValue","newValue","isValidCharacter","allowSlash","pattern","reg","removeSpecialCharacters","lower","upper","result","searchFastlegeName","searchString","fastlegeNavnSok","triggerSearch","handleKeyDown","doSearch","searchValue","Input","Search","Startside","ByttFastlegeContainer","windowState","getNotificationVariant","apiStatusInnbyggerBarn","showStartPage","inProgress","variant","Resultatside","innbyggersBarnSlice","innbyggersBarnSlice$1","rootReducer","combineReducers","language","cmsTjenesteTekster","hjelpeskuff","store","configureStore","captureErrors","enableMocking","ReactDOM","Provider","Router","getPath","PageRoot"],"mappings":"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"}