{"version":3,"file":"byttefastlege.CpTPD6QZ.js","sources":["../../../src/byttefastlege/hooks/get-resources.ts","../../../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 { ResourceItems } from '@helsenorge/core-framework/prosesshjelp/hjelpeskuff/hjelpeskuff-state';\nimport { getResources as getResources2, Resource } from '@helsenorge/framework-utils/resources';\n\nexport const getResources = (resources: { [key: string]: Resource }, project: string, language: string): ResourceItems | null => {\n return getResources2(resources, project, language);\n};\n","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 designsystemtypography from '@helsenorge/designsystem-react/scss/typography.module.scss';\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 { getResources } from 'byttefastlege/hooks/get-resources';\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';\nimport designsystemtypography from '@helsenorge/designsystem-react/scss/typography.module.scss';\n\nimport { Hjelpetrigger } from '@helsenorge/core-framework/prosesshjelp/index';\nimport Languages from '@helsenorge/core-utils/constants/languages';\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';\n\nimport { BarnInfo } from './barn-info/barn-info';\n\nimport './styles.scss';\n\nexport const DinFastlegeBanner: React.FC = (): JSX.Element | null => {\n const [showChildren, setShowChildren] = useState(false);\n\n const resources = useTypedSelector(state =>\n getResources(state.resources, ByttfastlegeJSProject, Languages.NORWEGIAN)\n ) 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';\nimport designsystemtypography from '@helsenorge/designsystem-react/scss/typography.module.scss';\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';\nimport designsystemtypography from '@helsenorge/designsystem-react/scss/typography.module.scss';\n\nimport './styles.scss';\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: React.MouseEvent): void => {\n if (!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)) {\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 \n {resources.bfl_ResultPage_SearchResults_Change}\n \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';\n\nimport layoutChange, { OriginalProps as LayoutChangeProps } from '@helsenorge/core-utils/hoc/layout-change';\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 layoutChangeProps?: LayoutChangeProps;\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 layoutChange(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';\nimport designsystemtypography from '@helsenorge/designsystem-react/scss/typography.module.scss';\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';\nimport designsystemtypography from '@helsenorge/designsystem-react/scss/typography.module.scss';\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 { getResources } from 'byttefastlege/hooks/get-resources';\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\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 Languages from '@helsenorge/core-utils/constants/languages';\nimport { format } from '@helsenorge/core-utils/string-utils';\n\nimport { PersonList } from './personList/personList';\nimport { PhoneLink } from '../../../../../../shared/phone-link';\n\nimport './styles.scss';\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 = useTypedSelector(state =>\n getResources(state.resources, ByttfastlegeJSProject, Languages.NORWEGIAN)\n ) 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 { getResources } from 'byttefastlege/hooks/get-resources';\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\nimport { fetchFastlegeDetails } from 'byttefastlege/stores/slice-search-fastlege/thunks';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\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 Languages from '@helsenorge/core-utils/constants/languages';\n\nimport { FastlegeInfo } from './fastlege-info';\nimport { avtaleDetaljerRequest } from './helper';\nimport { OmLegesenteret } from './omLegesenteret/om-legesenteret';\nimport './ekspandertInnhold.scss';\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 = useTypedSelector(state =>\n getResources(state.resources, ByttfastlegeJSProject, Languages.NORWEGIAN)\n ) as HNByttFastlegeJS;\n\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';\n\nimport LayoutChange from '@helsenorge/core-utils/hoc/layout-change';\nimport { Cell } from '@helsenorge/data-table/components/table';\n\nimport './styles.scss';\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\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(false);\n const venteListeMobilElement = getVenteListeElement(true);\n\n return (\n \n {venteListeDesktopElement}\n {venteListeMobilElement}\n \n );\n};\n\nexport default LayoutChange(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';\nimport designsystemtypography from '@helsenorge/designsystem-react/scss/typography.module.scss';\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';\nimport designsystemtypography from '@helsenorge/designsystem-react/scss/typography.module.scss';\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';\n\nimport { getResources } from 'byttefastlege/hooks/get-resources';\nimport { useTypedDispatch } from 'byttefastlege/hooks/useTypedDispatch';\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\nimport { setShowActionContainer } from 'byttefastlege/stores/slice-select-fastlege/reducer';\n\nimport { HNByttFastlegeJS } from 'HNResources';\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 Languages from '@helsenorge/core-utils/constants/languages';\n\nimport { BytteComponent } from './bytte-component';\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 = useTypedSelector(state =>\n getResources(state.resources, ByttfastlegeJSProject, Languages.NORWEGIAN)\n ) 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';\n\nimport { getResources } from 'byttefastlege/hooks/get-resources';\nimport { useTypedDispatch } from 'byttefastlege/hooks/useTypedDispatch';\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\nimport { setShowActionContainer } from 'byttefastlege/stores/slice-select-fastlege/reducer';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { ActionContainerType } from 'types/ExtendEnums';\nimport { ByttfastlegeJSProject } from 'types/project-name-constant';\n\nimport Languages from '@helsenorge/core-utils/constants/languages';\nimport { trackSelfService } from '@helsenorge/framework-utils/adobe-analytics';\nimport { isAuthorized } from '@helsenorge/framework-utils/hn-authorize';\n\nimport { InitialChoiceComponent } from './initial-component';\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 = useTypedSelector(state =>\n getResources(state.resources, ByttfastlegeJSProject, Languages.NORWEGIAN)\n ) 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';\nimport designsystemtypography from '@helsenorge/designsystem-react/scss/typography.module.scss';\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';\nimport designsystemtypography from '@helsenorge/designsystem-react/scss/typography.module.scss';\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';\n\nimport { ThunkAction, Action } from '@reduxjs/toolkit';\nimport { getResources } from 'byttefastlege/hooks/get-resources';\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';\n\nimport { HNByttFastlegeJS } from 'HNResources';\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 Languages from '@helsenorge/core-utils/constants/languages';\nimport { fetchResources } from '@helsenorge/framework-utils/resources';\n\nimport { VentelisteComponent } from './venteliste-component ';\nimport { BytteFastLegeState } from '../../../root';\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 = useTypedSelector(state =>\n getResources(state.resources, ByttfastlegeJSProject, Languages.NORWEGIAN)\n ) as HNByttFastlegeJS;\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(fetchResources(ByttfastlegeJSProject, Languages.NORWEGIAN, getSotResources));\n dispatch(getInitialData() as ThunkAction>);\n }\n dispatch(resetVentelisteRespons());\n };\n\n return (\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 { getResources } from 'byttefastlege/hooks/get-resources';\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\nimport classNames from 'classnames';\nimport { isInnlogget } from 'utils/utils';\n\nimport { HNByttFastlegeJS } from 'HNResources';\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 Languages from '@helsenorge/core-utils/constants/languages';\nimport layoutChange, { OriginalProps as LayoutChangeProps } from '@helsenorge/core-utils/hoc/layout-change';\n\nimport FilterComponent from './filter-component';\nimport { Tabell } from './tabell/tabell';\nimport { ActionContainer } from '../action-containere';\n\ninterface ResultatsideProps {\n layoutChangeProps?: LayoutChangeProps;\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\n const resources = useTypedSelector(state =>\n getResources(state.resources, ByttfastlegeJSProject, Languages.NORWEGIAN)\n ) 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 layoutChange(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 { getResources } from 'byttefastlege/hooks/get-resources';\nimport { useTypedSelector } from 'byttefastlege/hooks/useTypedSelector';\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';\n\nimport Languages from '@helsenorge/core-utils/constants/languages';\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 = useTypedSelector(state =>\n getResources(state.resources, ByttfastlegeJSProject, Languages.NORWEGIAN)\n ) 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 layoutChange from '@helsenorge/core-utils/hoc/layout-change';\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 layoutChange(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 { getResources } from 'byttefastlege/hooks/get-resources';\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 Languages from '@helsenorge/core-utils/constants/languages';\n\nimport { ActionContainer } from '../action-containere';\nimport Fylker from './fylker/fylker';\nimport { Sokefelt } from './sokefelt/sokefelt';\n\nimport './styles.scss';\n\nexport const Startside: React.FC = () => {\n const resources = useTypedSelector(state =>\n getResources(state.resources, ByttfastlegeJSProject, Languages.NORWEGIAN)\n ) 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 { getResources } from 'byttefastlege/hooks/get-resources';\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';\n\nimport { HNByttFastlegeJS } from 'HNResources';\n\nimport { ApiStatus } from 'types/ExtendEnums';\nimport { ByttfastlegeJSProject } from 'types/project-name-constant';\n\nimport NotificationPanel from '@helsenorge/designsystem-react/components/NotificationPanel';\n\nimport PageLoader from '@helsenorge/core-framework/page-loader/page-loader';\nimport Languages from '@helsenorge/core-utils/constants/languages';\nimport { fetchResources } from '@helsenorge/framework-utils/resources';\nimport './styles.scss';\n\nimport { BytteFastLegeState } from '../../root';\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 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 useEffect(() => {\n dispatch(fetchResources(ByttfastlegeJSProject, Languages.NORWEGIAN, getSotResources));\n dispatch(getInitialData() as ThunkAction>);\n }, []);\n\n const resources = useTypedSelector(state =>\n getResources(state.resources, ByttfastlegeJSProject, Languages.NORWEGIAN)\n ) as HNByttFastlegeJS;\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 (\n \n \n \n \n\n
    \n {showStartPage ? : }\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';\n\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 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 { initialize } from '@helsenorge/core-utils/date-fns-utils';\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();\ninitialize();\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":["getResources","resources","project","language","getResources2","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","innbyggersBarn","barnInfoElement","jsx","SafeHTML","designsystemtypography","Hjelpetrigger","child","index","ventelisteElement","currentFastlegeText","gjenstBytte","antallBytterText","bytterIgjenText","format","ventelisteLegenavn","ventelisteText","legenavn","_a","_b","currentFastlegeElement","jsxs","useEffect","DinFastlegeBanner","showChildren","setShowChildren","useState","ByttfastlegeJSProject","Languages","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","FilterComponent$1","layoutChange","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","getAntallPaVenteliste","getVenteListeElement","mobile","retVal","className","noVenteliste","columnTitle","venteListeDesktopElement","venteListeMobilElement","Cell","LayoutChange","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","fetchResources","getSotResources","ActionContainer","scrollToTop","containerContent","Resultateside","sortValue","setSortValue","sortValueAsc","setSortValueAsc","mdToLg","tiles","sidetittel","ascending","loader","Resultatside","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","Fylker$1","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","innbyggersBarnSlice","innbyggersBarnSlice$1","rootReducer","combineReducers","cmsTjenesteTekster","hjelpeskuff","store","configureStore","captureErrors","initialize","enableMocking","ReactDOM","Provider","Router","getPath","PageRoot"],"mappings":"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"}